gorm-1.3.1/0000755000175000017500000000000014360747012011474 5ustar heronherongorm-1.3.1/.git/0000755000175000017500000000000014360755773012352 5ustar heronherongorm-1.3.1/.git/ORIG_HEAD0000644000175000017500000000005114334122122013563 0ustar heronherone3331dc088ed49f7cb043c6c1d6e95518f024b4f gorm-1.3.1/.git/index0000644000175000017500000021210014360755773013400 0ustar heronheronDIRCc\S Yc\S Y 0)0=슒{Dw .cvsignorec\R$N c\R$N U=8C.github/scripts/build.shc\R$N c\R$N N&.9PL d6:O .github/scripts/dependencies.shc\R$N c\R$N iZ&J!b.github/scripts/test.shc\R$Dc\R$D| Yc$z ]s.github/workflows/main.ymlc\R/Lc\R/L @#:jx*H(+o"6 .gitignorec$#Dc$#D JU 9{rAmkڥANNOUNCEc\S Yc\S Y vȫ@ؘ8~1 CODEOWNERSc\R Rc\R R L7!镓}8@COPYINGcl%dcl%d > \\#gBY֐ ChangeLogc\R&c\R& \Ti}k4zF1MgVDocumentation/.cvsignorec\R鳊c\R鳊 VFW`Tv k-Documentation/COPYINGc\RWc\RW s m5n,d>Documentation/Examples/Controller/Controller.gorm/data.classesc\RWc\RW uAp(c7ѷb;Documentation/Examples/Controller/Controller.gorm/data.infoc\RWc\RW t9 Nw&3\>Documentation/Examples/Controller/Controller.gorm/objects.gormc\RNc\RN p,oqĦFK-Documentation/Examples/Controller/GNUmakefilec\RNc\RN l h߳ff0Yq#xI] ^n?SMg|\H0Documentation/GNUmakefilec\R&c\R& [;QgUe#5\mDocumentation/Gorm.texic\R鳊c\R鳊 XO LdD- (@l Documentation/Makefile.postamblec'*Jc'*J ZE) yy8ODocumentation/announce.texic\Rc\R vys"~HmS8,JDocumentation/install.texicS8cS8 wf|&/c޷='E&gDocumentation/news.texic\R&c\R& YfGm:Q-OvDocumentation/readme.texic\R;mc\R;mfEݰBź_d߽$English.lproj/Gorm.gorm/data.classesc\R;mc\R;m!&ABcD["MЬ!English.lproj/Gorm.gorm/data.infoc\R;mc\R;m ەfųإ?$English.lproj/Gorm.gorm/objects.gormc\R /c\R /3;7 _栊=English.lproj/Gorm.rtfd/TXT.rtfc\R!tc\R!tZ"=/тƣA/English.lproj/GormClassEditor.gorm/objects.gormc\R!#fc\R!#fIG']NZg\Rt¡2English.lproj/GormClassInspector.gorm/data.classesc\R!`c\R!`KtOsjwޠo7U/English.lproj/GormClassInspector.gorm/data.infoc\R!#fc\R!#fJidqwfĠ1D2English.lproj/GormClassInspector.gorm/objects.gormc\Rc\R/t̟=W7y7sx\.English.lproj/GormClassPanel.gorm/data.classesc\Rc\R1tOsjwޠo7U+English.lproj/GormClassPanel.gorm/data.infoc\Rc\R0avuWac 乣qxt.English.lproj/GormClassPanel.gorm/objects.gormc\R!`c\R!`M2.F (36 ɧ.S7English.lproj/GormConnectionInspector.gorm/data.classesc\R!`c\R!`OtOsjwޠo7U4English.lproj/GormConnectionInspector.gorm/data.infoc\R!`c\R!`NMDLw\W7English.lproj/GormConnectionInspector.gorm/objects.gormc\R$(c\R$(© .3gD>%V>*8English.lproj/GormCustomClassInspector.gorm/data.classesc\R$(c\R$(tOsjwޠo7U5English.lproj/GormCustomClassInspector.gorm/data.infoc\R$(c\R$();C*P19qPb8English.lproj/GormCustomClassInspector.gorm/objects.gormc\RGc\RG+tV$NTD49N'J,English.lproj/GormDocument.gorm/data.classesc\Rc\R-l}pZ iJп޺Owp)English.lproj/GormDocument.gorm/data.infoc\RGc\RG,6nø35rc]qps7,English.lproj/GormDocument.gorm/objects.gormc\R"T)c\R"T)bqزC~0?r2English.lproj/GormDummyInspector.gorm/data.classesc\R"T)c\R"T)dtOsjwޠo7U/English.lproj/GormDummyInspector.gorm/data.infoc\R"T)c\R"T)c빅2 ϻ] շ2English.lproj/GormDummyInspector.gorm/objects.gormc\R$z;Wc\R$z;WTQ[-B.A*问,English.lproj/GormFontView.gorm/data.classesc\R$z;Wc\R$z;WXc:27+mAU)English.lproj/GormFontView.gorm/data.infoc\R$z;Wc\R$z;W Fb0-94t,English.lproj/GormFontView.gorm/objects.gormc\R#c\R#ǔ{ZCHFCƙCv1English.lproj/GormHelpInspector.gorm/data.classesc\R#Hc\R#H+h{MIkud.English.lproj/GormHelpInspector.gorm/data.infoc\R#Hc\R#HNWPLy &1English.lproj/GormHelpInspector.gorm/objects.gormc\R#I c\R#I x/ gk9yW42English.lproj/GormImageInspector.gorm/data.classesc\R#I c\R#I ztOsjwޠo7U/English.lproj/GormImageInspector.gorm/data.infoc\R#I c\R#I yȢ2-9ٻ#C2English.lproj/GormImageInspector.gorm/objects.gormc\R c\R A&)1b I<l֕AIt38English.lproj/GormInconsistenciesPanel.gorm/data.classesc\R c\R CMR$`?A$]փ5English.lproj/GormInconsistenciesPanel.gorm/data.infoc\R c\R B S=מ.On8English.lproj/GormInconsistenciesPanel.gorm/objects.gormc\R"T)c\R"T)f%1&b% hT:LQ2English.lproj/GormInspectorPanel.gorm/data.classesc\R"c\R"hx~8$/English.lproj/GormInspectorPanel.gorm/data.infoc\R"c\R"gM5$_ixPF2English.lproj/GormInspectorPanel.gorm/objects.gormc\R lVc\R lV9! l@R>8English.lproj/GormNSSplitViewInspector.gorm/data.classesc\R c\R ;&ABcD["MЬ5English.lproj/GormNSSplitViewInspector.gorm/data.infoc\R lVc\R lV:ѺEU6P,'ǂ8English.lproj/GormNSSplitViewInspector.gorm/objects.gormc\R c\R =$y=m(a03English.lproj/GormObjectInspector.gorm/data.classesc\R c\R ?tOsjwޠo7U0English.lproj/GormObjectInspector.gorm/data.infoc\R c\R >&Q,n)x pxj3English.lproj/GormObjectInspector.gorm/objects.gormc\R# 8c\R# 8tc;#5 0English.lproj/GormPalettePanel.gorm/data.classesc\R#I c\R#I vtOsjwޠo7U-English.lproj/GormPalettePanel.gorm/data.infoc\R# 8c\R# 8u |Ȏ|onyU 9[B 0English.lproj/GormPalettePanel.gorm/objects.gormc\Rd7c\Rd7_f\:#z.English.lproj/GormPrefColors.gorm/data.classesc\Rd7c\Rd75p_{M\QO;"$+English.lproj/GormPrefColors.gorm/data.infoc\Rd7c\Rd7+^m%O)&.English.lproj/GormPrefColors.gorm/objects.gormc\R"c\R"^YIܶvF߲YY/English.lproj/GormPrefGeneral.gorm/data.classesc\R"c\R"`caCYMҠ&}K E,English.lproj/GormPrefGeneral.gorm/data.infoc\R"c\R"_vfiY/E D/English.lproj/GormPrefGeneral.gorm/objects.gormc\R!c\R!QimO<@}`0ɻ51English.lproj/GormPrefGuideline.gorm/data.classesc\R!c\R!ScaCYMҠ&}K E.English.lproj/GormPrefGuideline.gorm/data.infoc\R!c\R!Ru0-& X6 O=1English.lproj/GormPrefGuideline.gorm/objects.gormc\R c\R E!C\3XI(c/English.lproj/GormPrefHeaders.gorm/data.classesc\R!#fc\R!#fG5p_{M\QO;"$,English.lproj/GormPrefHeaders.gorm/data.infoc\R!#fc\R!#fF7CŢaKP*aV]/English.lproj/GormPrefHeaders.gorm/objects.gormc\R#c\R#|cP%P|}b>o0English.lproj/GormPrefPalettes.gorm/data.classesc\R#c\R#~5p_{M\QO;"$-English.lproj/GormPrefPalettes.gorm/data.infoc\R#c\R#}c˳ nߜ3]"$7'a0English.lproj/GormPrefPalettes.gorm/objects.gormc\R /c\R /5B%@&%\@/sQ/English.lproj/GormPrefPlugins.gorm/data.classesc\R lVc\R lV7kܫm#vRm\P,English.lproj/GormPrefPlugins.gorm/data.infoc\R lVc\R lV6UhzUkHޝ\1Y/English.lproj/GormPrefPlugins.gorm/objects.gormc\Rxvc\Rxv'+lz4/z\Q" Wx/English.lproj/GormPreferences.gorm/data.classesc\RGc\RG)caCYMҠ&}K E,English.lproj/GormPreferences.gorm/data.infoc\RGc\RG(9WwvbHDm0];/English.lproj/GormPreferences.gorm/objects.gormc\R#Hc\R#H '"v x4*AEnglish.lproj/GormScrollViewAttributesInspector.gorm/data.classesc\R$(c\R$(tOsjwޠo7U>English.lproj/GormScrollViewAttributesInspector.gorm/data.infoc\R#Hc\R#HQ-PdPbn=˵}AEnglish.lproj/GormScrollViewAttributesInspector.gorm/objects.gormc\R!tc\R!tW&2Zghd*^(English.lproj/GormSetName.gorm/Gorm.tiffc\R!c\R!U}NHDdњr 1I+English.lproj/GormSetName.gorm/data.classesc\R!tc\R!tXtOsjwޠo7U(English.lproj/GormSetName.gorm/data.infoc\R!tc\R!tV"/9RJK1+English.lproj/GormSetName.gorm/objects.gormc\R$=1c\R$=1 Ԧfs27kL -English.lproj/GormShelfPref.gorm/data.classesc\R$=1c\R$=1g o:$j/#*English.lproj/GormShelfPref.gorm/data.infoc\R$=1c\R$=1>ok/;bvv-English.lproj/GormShelfPref.gorm/objects.gormc\R"c\R"k7|p&f/Mig2English.lproj/GormSoundInspector.gorm/data.classesc\R# 8c\R# 8qtOsjwޠo7U/English.lproj/GormSoundInspector.gorm/data.infoc\R"c\R"j%([ ᠃-English.lproj/GormSoundInspector.gorm/ff.tiffc\R"c\R"muWe* sAaÈ5{2English.lproj/GormSoundInspector.gorm/objects.gormc\R"c\R"n%,12YeP!z0English.lproj/GormSoundInspector.gorm/pause.tiffc\R# 8c\R# 8p%*Y7*]%X{/English.lproj/GormSoundInspector.gorm/play.tiffc\R# 8c\R# 8r%*TOJ[QQQrF5.English.lproj/GormSoundInspector.gorm/rec.tiffc\R"c\R"o%(ݼ4'HNFL)2zE-English.lproj/GormSoundInspector.gorm/rw.tiffc\R"c\R"l%*$ܡJBkh^/English.lproj/GormSoundInspector.gorm/stop.tiffc\Rxvc\Rxv# ?,A?U།h5English.lproj/GormViewSizeInspector.gorm/data.classesc\Rxvc\Rxv%tOsjwޠo7U2English.lproj/GormViewSizeInspector.gorm/data.infoc\Rxvc\Rxv$#Ss]N~ `5x8cR1"GormCore/GormConnectionInspector.mc\R0!c\R0!g;|iSwjw%լAGormCore/GormControlEditor.hc\R1Z4jc\R1Z4jlCt/6Ȱjh}@YGormCore/GormControlEditor.mc\R2NYc\R2NYN͠ށ7SKGormCore/GormCore.hc\R5*c\R5*ՑP_Q#GormCore/GormCustomClassInspector.hc\R2NYc\R2NY,gj~OP9w?#GormCore/GormCustomClassInspector.mc\R3c\R3/x8_sc"(7 GormCore/GormCustomView.hc\R3c\R3r{@JGormCore/GormCustomView.mc\R4sc\R4sW}>Xg9GormCore/GormFunctions.hc\R0!c\R0!f' 3Sn]Dl, AGormCore/GormFunctions.mc\R2NYc\R2NY Yz[\A? ~q/>WGormCore/GormGenericEditor.hcp!:cp!:O[]ŁoJSGormCore/GormGenericEditor.mc\R0[c\R0[c\0BB@rGormCore/GormHelpInspector.hc\R1+c\R1+j+eL9 /-J*<)GormCore/GormHelpInspector.mc\R5c\R5 -)ddRIA=zaGormCore/GormImage.hc\R46c\R46sSjp |GormCore/GormImage.mc\R4sc\R4sw /5&欙og GormCore/GormImageEditor.hc\R4sc\R4s ﭙQ&2#gMWgGormCore/GormImageEditor.mc\R1Gc\R1Gxϴ ,PGormCore/GormImageInspector.hc\R3uc\R3u3g%(Co9цvtGormCore/GormImageInspector.mc\R46c\R46 'SEr02FMPz GormCore/GormInspectorsManager.hc\R0!c\R0!h1.j_<*Y3-_1 GormCore/GormInspectorsManager.mc\R5*c\R5*_"̸4G!GormCore/GormInternalViewEditor.hc\R1=c\R1=pHnu1j!GormCore/GormInternalViewEditor.mc\R4sc\R4saeQHOş$y~^GormCore/GormMatrixEditor.hc\R60c\R60PXwwMSvGormCore/GormMatrixEditor.mc\R0[c\R0[ayX?[=Ş c(GormCore/GormNSPanel.hc\R0[c\R0[`ضK/. 6Lyr=cZGormCore/GormNSPanel.mc\R1=c\R1=t‹yc7"Ō?șu #GormCore/GormNSSplitViewInspector.hc\R4sc\R4saJs=mF#GormCore/GormNSSplitViewInspector.mc\R5c\R5eb ݟ.&SOʻgGormCore/GormNSWindow.hc\R6{c\R6{IHS;{GormCore/GormNSWindow.mcoV pcoV p5VζXGormCore/GormObjectEditor.hcoZTcoZT7OLTf( Wg|0ZGormCore/GormObjectEditor.mc\R6[c\R6[Dg2Vl.1ۊ #ryGormCore/GormObjectInspector.hc\R3uc\R3u(M@+OHPPWfĒGormCore/GormObjectInspector.mc\R46c\R46UWmIT>kLыGormCore/GormOpenGLView.hc\R5c\R5Evu'cSRpj pd'mGormCore/GormOpenGLView.mc\R3B>c\R3B>  *:Z+>qFGormCore/GormOutlineView.hc\R0fc\R0f^O A>`LWV'#.GormCore/GormOutlineView.mc\R5c\R5 #a '"<GormCore/GormPalettesManager.hc\R3Mc\R3M\#2g3ӥZ_%HT@]H[GormCore/GormPalettesManager.mc\R4c\R40 U8dUr`wGormCore/GormPlacementInfo.hc\R2lc\R2lk 94ъ߁]GormCore/GormPlugin.hc\R60c\R60 4;[] }GormCore/GormPlugin.mc\R5gkc\R5gk atkohY86GormCore/GormPluginManager.hc\R5 c\R5 0J[z@\̷ GormCore/GormPluginManager.mc\R6 c\R6 eډqᵘ9GormCore/GormPrivate.hc\R2c.c\R2c.HS+At'wpH;7aGormCore/GormPrivate.mc\R3B>c\R3B>~[P%0IuGormCore/GormProtocol.hc\R3uc\R3u |)o |J&g^5KaI9xGormCore/GormSoundInspector.mc\R3B>c\R3B>alRփP-d(GormCore/GormSoundView.hc\S c\S T |͓iןEGormCore/GormSoundView.mc\R6 c\R6 * (UJGormCore/GormSplitViewEditor.hc\R6{c\R6{#@ăIV[A'GormCore/GormSplitViewEditor.mc\R1Gc\R1Guu 3g6Jy ;np#GormCore/GormStandaloneViewEditor.hc\R0fc\R0f]&^'da<6a#GormCore/GormStandaloneViewEditor.mc\R60c\R60 +Nܑ4Ӕ]P'ñrGormCore/GormViewEditor.hc\R2c.c\R2c.l;P> BGormCore/GormViewEditor.mc\R5*c\R5*R !*!? "/2};GormCore/GormViewKnobs.hc\R3Mc\R3M('NU*8 y6ؐE(SGormCore/GormViewKnobs.mc\R3B>c\R3B>yYx햋يWGKx%A GormCore/GormViewSizeInspector.hc\R6 c\R6  c`4L>aKCU° GormCore/GormViewSizeInspector.mc\R0)c\R0)Zdt.)QKcGormCore/GormViewWindow.hc\R0fc\R0f\ q_sULi8xaeGormCore/GormViewWindow.mc\R5 c\R5 ])'@\mHTQ<(GormCore/GormViewWithContentViewEditor.hc\R5 c\R5 J+KDymbu(GormCore/GormViewWithContentViewEditor.mc\R0)c\R0)X9֥[E=%GormCore/GormViewWithSubviewsEditor.hc\R7c\R7i?;2%@%GormCore/GormViewWithSubviewsEditor.mc\R3Mc\R3M ?~{zYo,2k@"?GormCore/GormWindowEditor.hc\R5c\R5\pɄg_̒xvA DGormCore/GormWindowEditor.mc\R2lc\R2l-'ҢC`GormCore/GormWindowTemplate.hc\R1Gc\R1GvrW{=n/9QRGormCore/GormWindowTemplate.mc\R1+c\R1+iU'1L%a,9GormCore/GormWrapperBuilder.hc\R4c\R4ˀ)u66:'*pwGormCore/GormWrapperBuilder.mc\R3c\R3@]&|u:{{+XGormCore/GormWrapperLoader.hc\R0!c\R0!d;1/)+ЭGormCore/GormWrapperLoader.mc\R5gkc\R5gk]k$d" I&GormCore/NSCell+GormAdditions.hc\R1Z4jc\R1Z4joӼ{{/";,!GormCore/NSCell+GormAdditions.mc\R0)c\R0)[*3px~+9R%GormCore/NSColorWell+GormExtensions.hc\R4c\R4j(Ecm;1%GormCore/NSColorWell+GormExtensions.mc\R1Z4jc\R1Z4jmbY&K5!,˓-e ^'GormCore/NSFontManager+GormExtensions.hc\R60c\R60 C&:{=nuPgcI'GormCore/NSFontManager+GormExtensions.mc\R2Pyc\R2Py}fc:C^#3^qZ7^ GormCore/NSView+GormExtensions.hc\R3B>c\R3B>p_bFT`!SK GormCore/NSView+GormExtensions.mc$b_3c$b_3 ֎9A=ԧ.5GormInfo.plistc\R c\R  gFG`v} ^L3b*H'GormLib/COPYING.LIBc\Rc\R }m2w*Af{GormLib/GNUmakefilec\R Rc\R R IghֿTFGk;XGormLib/GNUmakefile.postamblec\R c\R  t$sdk6PiGormLib/GNUmakefile.preamblec\Rc\R {D[nYו:iP GormLib/IBApplicationAdditions.hc\R lc\R l Q锣Gvfb71 GormLib/IBApplicationAdditions.mc\Rc\R |}3g msEB6GormLib/IBCellAdditions.hc\R Rc\R R җ `{Y.˘G GormLib/IBCellProtocol.hc\R Lc\R L C #8Z2eIGormLib/IBConnectors.hc\R c\R  gn[$gCUGormLib/IBConnectors.mc\R^c\R^ S1lNڰ) GormLib/IBDefines.hc\R^c\R^ 7~݆-hsxGormLib/IBDocuments.hc\R Lc\R L +M3.wۡ=GormLib/IBDocuments.mc\Rc\R y"y3qqa)ܫuGormLib/IBEditors.hc\R lc\R l ,IefeePKJ`GormLib/IBEditors.mc\R Lc\R L  ʷQʕSMpuGormLib/IBInspector.hc\R lc\R l  *"G!'ЁW̅| GormLib/IBInspector.mc\R Lc\R L gp/4.AjGormLib/IBInspectorManager.hc\R lc\R l  uxas̶ /55J;7@GormLib/IBInspectorManager.mc\R lc\R l (z:Uǰ0#-X?=GormLib/IBInspectorMode.hc\R c\R   2u6m+8{F ~0EGormLib/IBInspectorMode.mc\R lc\R l K$6F(ޤ-GormLib/IBObjectAdditions.hc\R c\R  J5$$NGormLib/IBObjectAdditions.mc\R Lc\R L  6ٙ5tþGormLib/IBObjectProtocol.hc\R^c\R^  Awr.Z6^GormLib/IBPalette.hc\R^c\R^  {E!~9y`GormLib/IBPalette.mc\R^c\R^  ڳɵ)gF; GormLib/IBPlugin.hc\R c\R   0eg9(O0^GormLib/IBPlugin.mc\R Lc\R L 6jI NyB!mGormLib/IBProjectFiles.hc\R lc\R l  Kg@y "2VhGormLib/IBProjects.hc\R^c\R^ )Ѕ- wZֵRGormLib/IBResourceManager.hc\Rc\R zY;e3 60+{GormLib/IBResourceManager.mc\R c\R  Q*{3G^GormLib/IBSystem.hc\R^c\R^ }yG+KܶO:GormLib/IBViewAdditions.hc\R Lc\R L HJ:n5k> whKGormLib/IBViewProtocol.hc\R Lc\R L  O<ïV[TtF GormLib/IBViewResourceDragging.hc\R^c\R^ ~ēG*`={BGormLib/InterfaceBuilder.hc\R Lc\R L |_a<@OGormLib/READMEc\R c\R  b%GormObjCHeaderParser/OCHeaderParser.mc\R%n`c\R%n`>g }5%npN`GormObjCHeaderParser/OCIVar.hc\R$N c\R$N ũ3p q$kGormObjCHeaderParser/OCIVar.mc\R%1Wgc\R%1Wg;`эb 2;2!GormObjCHeaderParser/OCIVarDecl.hc\R%jc\R%j y腚yä6ra!GormObjCHeaderParser/OCIVarDecl.mc\R%1Wgc\R%1Wg8/HG'ɍs>GormObjCHeaderParser/OCMethod.hc\R%suc\R%suTFT3D-v~.T4_aGormObjCHeaderParser/OCMethod.mc\R%n`c\R%n`߁<2V%R?Pq&GormObjCHeaderParser/ParserFunctions.hc\R%1Wgc\R%1Wg[({eɯ>˿V&GormObjCHeaderParser/ParserFunctions.mc\R%n`c\R%n`v$N?}8Wp&GormObjCHeaderParser/Tests/GNUmakefilec\R%jc\R%j⛲CK)wZS9GormObjCHeaderParser/Tests/GormObjCHeaderParser/README.mdc\R%jc\R%jbŦZx}|GormPrefs/GormGeneralPref.hc\S qc\S q` ݓǿ [GormPrefs/GormGeneralPref.mc\S (ٞc\S (ٞh6,.pLHTΰtGormPrefs/GormGuidelinePref.hc\S (ٞc\S (ٞfSŲsS 0Y@eGormPrefs/GormGuidelinePref.mc\S 45c\S 45[D2u]`Xi X)FJGormPrefs/GormHeadersPref.hc\S 45c\S 45^ f6w?DK5*GormPrefs/GormHeadersPref.mc\S ec\S ei躢̮jG㤗f,w(GormPrefs/GormPalettesPref.hc\S (ٞc\S (ٞg ݐ o> zGormPrefs/GormPalettesPref.mc\S c\S baae8 UGormPrefs/GormPluginsPref.hc\S qc\S qa 0"QfAGormPrefs/GormPluginsPref.mc\S ec\S ekLqٚ1}r˅16PˉGormPrefs/GormPrefController.hc\S 45c\S 45\{@ctv5:9v"@rGormPrefs/GormPrefController.mc\S Cc\S Ce"韷/Ҭ?=9QGormPrefs/GormPrefs.hc\S qc\S q_ x Gup|TAFnGormPrefs/GormShelfPref.hc\S ec\S ej+-5: rC+Ư;GormPrefs/GormShelfPref.mc= 2c= 2 d0wV⛭ wINSTALLc\R,Xoc\R,Xo&2<٥BFj2Images/FileIcon_gmodel.tiffc\R.͇c\R.͇=%j|l01d'(T:UԸImages/Gorm.tiffc\R.@c\R.@7ʱղTc>f,Images/GormAction.tiffc\R-ƨc\R-ƨ-;{A(s䆨#Images/GormActionSelected.tiffc\R-Lic\R-Li#$y!&#yl(!f]Images/GormClass.tiffc\R.c\R.FHvkc0/WNҗ7Images/GormCopyImage.tiffc\R,҂c\R,҂y P(Dmr|dXŒ|=Images/GormEHCoil.tiffc\R.xc\R.x39H͏p xzBdImages/GormEHLine.tiffc\R.xc\R.x1n{;+x9n4Images/GormEVCoil.tiffc\R/qc\R/qO s*PW2/6_-Images/GormEVLine.tiffc\R,҂c\R,҂&,JkQA)*[waImages/GormFile.tiffc\R,҂c\R,҂$Td~?CY5%}Images/GormFilesOwner.tiffc\R-c\R-$ ЊjAi:z1YImages/LeftArr.tiffc\R/qc\R/qLe'Iw0I G~Images/RightArr.tiffc\R/Lc\R/LUR^9b?I^a Q'Images/Sunday_seurat.tiffc\R.͇c\R.͇A)ߧ3›+&+LImages/bezel_nib.tiffc\R-c\R- ZĈHp}:pZ8Images/browserView.tiffc\R/4 giImages/rightalign_nib.tiffc\R.xc\R.x2 0,4p0~:Images/shortbutton_nib.tiffc\R-c\R-*ӗ§GuXoH%IpMImages/tabbot_nib.tiffc\R.͇c\R.͇>\0{Q)u_Images/tabtop_nib.tiffc\R,yZc\R,yZtWίd7_x4Images/titleOnly_nib.tiffc0:h1c0:h1 hx_1G+}-NEWSc\S"U?xc\S"U?x!?+g`K.lfPalettes/0Menus/GNUmakefilec\S#Idc\S#Idš_4`SuLQeR$Palettes/0Menus/GNUmakefile.preamblec\S"U?xc\S"U?xYC1l@Ey=Palettes/0Menus/GormMenuAttributesInspector.gorm/data.classesc\S"U?xc\S"U?xtOsjwޠo7U:Palettes/0Menus/GormMenuAttributesInspector.gorm/data.infoc\S"U?xc\S"U?x?E @RMos!=%/=Palettes/0Menus/GormMenuAttributesInspector.gorm/objects.gormc\S"6c\S"6őΆ?x?X oO PH-Palettes/0Menus/GormMenuAttributesInspector.hc\S"R,c\S"R,X5E 1/oL;-Palettes/0Menus/GormMenuAttributesInspector.mc\S# [c\S# [MA:JP }-ۜ[!Palettes/0Menus/GormMenuDrag.tiffc\S# [c\S# [g쥁="Fh. Palettes/0Menus/GormMenuEditor.mc\S"6c\S"6ؽGA!87;$Palettes/0Menus/GormMenuInspectors.mc\S# [c\S# [ۅ^2XEwh͇APalettes/0Menus/GormMenuItemAttributesInspector.gorm/data.classesc\S# [c\S# [tOsjwޠo7U>Palettes/0Menus/GormMenuItemAttributesInspector.gorm/data.infoc\S# [c\S# [9MŹ)y-;6TXţ#b$APalettes/0Menus/GormMenuItemAttributesInspector.gorm/objects.gormc\S"6c\S"6zٌ viPJD1Palettes/0Menus/GormMenuItemAttributesInspector.hc\S"R,c\S"R,zN݃k2WkPalettes/0Menus/MenusPalette.mc\S"R,c\S"R,MA:JP }-ۜ[!Palettes/0Menus/MenusPalette.tiffc\S"Hc\S"H/ 6 {bPPalettes/0Menus/inspectors.mc\S%ic\S%iF•?t ;EMlOLPalettes/0Menus/palette.tablec\S9oc\S9oRQ>!K k0<.Bʱ(MPalettes/1Windows/Drawer.tiffc\S98`c\S98`HNHx7y|Palettes/1Windows/GNUmakefilec\S9c\S9QZ~'xIrf w&Palettes/1Windows/GNUmakefile.preamblec\S9uʺc\S9uʺKHgmL?Dyb|APalettes/1Windows/GormDrawerAttributesInspector.gorm/data.classesc\S9uʺc\S9uʺMtOsjwޠo7U>Palettes/1Windows/GormDrawerAttributesInspector.gorm/data.infoc\S9uʺc\S9uʺL ]{A9eΞtuOAPalettes/1Windows/GormDrawerAttributesInspector.gorm/objects.gormc\S9c\S9P_Rsc,Hm1Jneg}J1Palettes/1Windows/GormDrawerAttributesInspector.hc\S9c\S9O_sY3|rVPuZ1Palettes/1Windows/GormDrawerAttributesInspector.mc\S9oc\S9oVѲG{i-ۛys9Palettes/1Windows/GormNSWindowInspector.gorm/data.classesc\S:,c\S:,XtOsjwޠo7U6Palettes/1Windows/GormNSWindowInspector.gorm/data.infoc\S:,c\S:,W2*I>σRZO`I9Palettes/1Windows/GormNSWindowInspector.gorm/objects.gormc\S:,c\S:,Z,2m(4&"A]KR+=Palettes/1Windows/GormNSWindowSizeInspector.gorm/data.classesc\S:i$c\S:i$\tOsjwޠo7U:Palettes/1Windows/GormNSWindowSizeInspector.gorm/data.infoc\S:,c\S:,[]i~lv(>^[[,=Palettes/1Windows/GormNSWindowSizeInspector.gorm/objects.gormc\S9oc\S9oT,apud1Palettes/1Windows/GormWindowAttributesInspector.hc\S98`c\S98`G7(}RY@9_uet01Palettes/1Windows/GormWindowAttributesInspector.mc\S:i$c\S:i$]l0kb4Palettes/2Controls/ControlsPalette.gorm/objects.gormc\S-kc\S-k"q/%=N?xv$Palettes/2Controls/ControlsPalette.mc\S. c\S. I5d9O$u#K:'Palettes/2Controls/ControlsPalette.tiffc\S.A c\S.A 'O5k!4.҇AOߐPalettes/2Controls/GNUmakefilec\S3B׋c\S3B׋Na`˷=A`LS"*J'Palettes/2Controls/GNUmakefile.preamblec\S3c\S3%_XhfZkvt/Palettes/2Controls/GormBoxAttributesInspector.hc\S-Lc\S-L~Ƃl i(Ld*j7^/Palettes/2Controls/GormBoxAttributesInspector.mc\S3@c\S3@/#g8>"?אCE2Palettes/2Controls/GormButtonAttributesInspector.hc\S4tPc\S4tP-u@BI$2Palettes/2Controls/GormButtonAttributesInspector.mc\S2c\S2jK<`Z_#kޣ%Palettes/2Controls/GormButtonEditor.hc\S3@c\S3@6?氫p  %Palettes/2Controls/GormButtonEditor.mc\S7c\S7'uv޺lp9 kO0Palettes/2Controls/GormCellAttributesInspector.hc\S3B׋c\S3B׋ l.2W>x8%80Palettes/2Controls/GormCellAttributesInspector.mc\S-kc\S-k}ˊ Ī$veر:Palettes/2Controls/GormCellSizeInspector.gorm/data.classesc\S. c\S. ։Jhy,Fv}7Palettes/2Controls/GormCellSizeInspector.gorm/data.infoc\S. c\S. .0fX7%ĠP_Bѣ:Palettes/2Controls/GormCellSizeInspector.gorm/objects.gormc\S3c\S3_@k:L?^X@*Palettes/2Controls/GormCellSizeInspector.hc\S3@c\S3@ ҈SݫGE7N*Palettes/2Controls/GormCellSizeInspector.mc\S46c\S46x緉S" W%~^=5Palettes/2Controls/GormColorWellAttributesInspector.hc\S-kc\S-k :N?:I~TA?m5Palettes/2Controls/GormColorWellAttributesInspector.mc\S2|c\S2|@3{2!B2Palettes/2Controls/GormMatrixAttributesInspector.hc\S46c\S46)&WCېGs (2Palettes/2Controls/GormMatrixAttributesInspector.mc\S.%c\S.%0DbSF?o5tˬT7Palettes/2Controls/GormNSBoxInspector.gorm/data.classesc\S./0c\S./0tOsjwޠo7U4Palettes/2Controls/GormNSBoxInspector.gorm/data.infoc\S./0c\S./0L 0ؚ&['e#7Palettes/2Controls/GormNSBoxInspector.gorm/objects.gormc\S-]c\S-]yiVUވ)H6[0:Palettes/2Controls/GormNSButtonInspector.gorm/data.classesc\S-]c\S-]{tOsjwޠo7U7Palettes/2Controls/GormNSButtonInspector.gorm/data.infoc\S-]c\S-]zcʸxAWLa*:Palettes/2Controls/GormNSButtonInspector.gorm/objects.gormc\S31c\S31 7T$J?3;C8Palettes/2Controls/GormNSCellInspector.gorm/data.classesc\S3B׋c\S3B׋tOsjwޠo7U5Palettes/2Controls/GormNSCellInspector.gorm/data.infoc\S3B׋c\S3B׋/ s _8Palettes/2Controls/GormNSCellInspector.gorm/objects.gormc\S-c\S-Oќrb fi7:a=Palettes/2Controls/GormNSColorWellInspector.gorm/data.classesc\S-c\S-tOsjwޠo7U:Palettes/2Controls/GormNSColorWellInspector.gorm/data.infoc\S-c\S-;Y[o bqJG\TBuB=Palettes/2Controls/GormNSColorWellInspector.gorm/objects.gormc\S7c\S7*9? EX﮸@ħj8Palettes/2Controls/GormNSFormInspector.gorm/data.classesc\S7ʉBc\S7ʉB,tOsjwޠo7U5Palettes/2Controls/GormNSFormInspector.gorm/data.infoc\S7c\S7+8#~ ȁeG5!\8Palettes/2Controls/GormNSFormInspector.gorm/objects.gormc\S2c\S20;qaW-Nx:Palettes/2Controls/GormNSMatrixInspector.gorm/data.classesc\S2c\S2tOsjwޠo7U7Palettes/2Controls/GormNSMatrixInspector.gorm/data.infoc\S2c\S2B&u; B9U/DK:Palettes/2Controls/GormNSMatrixInspector.gorm/objects.gormc\S2|c\S2|>Z=TgZ?&Palettes/2Controls/GormNSPopUpButton.hc\S/58c\S/58 a~Z\ Ru;ʃ9&Palettes/2Controls/GormNSPopUpButton.mc\S./0c\S./03 #o $ mͭ=0?Palettes/2Controls/GormNSPopUpButtonInspector.gorm/data.classesc\S/58c\S/58tOsjwޠo7U=Palettes/2Controls/GormProgressIndicatorAttributesInspector.mc\S. c\S. J0?7ݭF4b'j]2Palettes/2Controls/GormSliderAttributesInspector.hc\S46c\S46v;0pV`P#sĮV2Palettes/2Controls/GormSliderAttributesInspector.mc\S2N"c\S2N")~UgR. DHD 'F+3Palettes/2Controls/GormStepperAttributesInspector.hc\S-kc\S-k 5t97-88&K 83Palettes/2Controls/GormStepperAttributesInspector.mc\S3c\S3­lJPNF_5Palettes/2Controls/GormTextFieldAttributesInspector.hc\S31c\S31 PNv%+0T5Palettes/2Controls/GormTextFieldAttributesInspector.mc\S.A c\S.A  #:lhZZ&SPalettes/2Controls/inspectors.mc\S7c\S7( 7|j Palettes/2Controls/palette.tablec\S&%c\S&%FuIɣ05:?(Palettes/3Containers/ContainersPalette.mc\S&c\S&L@vsm}'N)# +Palettes/3Containers/ContainersPalette.tiffc\S&c\S&hY\lS+M, Palettes/3Containers/GNUmakefilec\S)E[c\S)E[<x#Wlw~>Ox)Palettes/3Containers/GNUmakefile.preamblec\S)|Xc\S)|XE53.W0z9]4Bg5Palettes/3Containers/GormBrowserAttributesInspector.hc\S(<c\S(<8d>B]f13\5Palettes/3Containers/GormBrowserAttributesInspector.mc\S(K)Lc\S(K)L1.5,J)툹Hi$Palettes/3Containers/GormNSBrowser.hc\S&%c\S&%  7ًJ/U$Palettes/3Containers/GormNSBrowser.mc\S%c\S%*Ve|M\\/T%=Palettes/3Containers/GormNSBrowserInspector.gorm/data.classesc\S%c\S%tOsjwޠo7U:Palettes/3Containers/GormNSBrowserInspector.gorm/data.infoc\S%c\S%$OOv6B=Palettes/3Containers/GormNSBrowserInspector.gorm/objects.gormc\S(c\S(+"y)F1KAwVP@mT(Palettes/3Containers/GormNSOutlineView.hc\S&%c\S&%Az; s/G.^s&(Palettes/3Containers/GormNSOutlineView.mc\S(2c\S(24[Oz%, ikƈqQAPalettes/3Containers/GormNSTableColumnInspector.gorm/data.classesc\S(<c\S(<6tOsjwޠo7U>Palettes/3Containers/GormNSTableColumnInspector.gorm/data.infoc\S(2c\S(25Mf!'[iq8YVAPalettes/3Containers/GormNSTableColumnInspector.gorm/objects.gormc\S&byc\S&by ;]&HjWJ1x./(EPalettes/3Containers/GormNSTableColumnSizeInspector.gorm/data.classesc\S&byc\S&by tOsjwޠo7UBPalettes/3Containers/GormNSTableColumnSizeInspector.gorm/data.infoc\S&byc\S&by `IrE]HX31 @uEPalettes/3Containers/GormNSTableColumnSizeInspector.gorm/objects.gormc\S&%c\S&%;}.r3PMkɎ>n&Palettes/3Containers/GormNSTableView.hc\S%c\S%f2 c5G % 6G&Palettes/3Containers/GormNSTableView.mc\S)?Nc\S)?NAхur @Ͻ@D?Palettes/3Containers/GormNSTableViewInspector.gorm/data.classesc\S)?Nc\S)?NCtOsjwޠo7Us5`CpaH\ 3E舎?Palettes/3Containers/GormNSTableViewInspector.gorm/objects.gormc\S)E[c\S)E[?l(YYW4<."_5Palettes/3Containers/GormTabViewAttributesInspector.hc\S&%c\S&%+Y CK䍾 Du1P5Palettes/3Containers/GormTabViewAttributesInspector.mc\S)?Nc\S)?ND#) oFߪb߀q(Palettes/3Containers/GormTabViewEditor.hc\S)E[c\S)E[;ВR*޴IGiӫ@ZA(Palettes/3Containers/GormTabViewEditor.mc\S(K)Lc\S(K)L.6#7pv?s&(;Palettes/3Containers/GormTabViewInspector.gorm/data.classesc\S(K)Lc\S(K)L0caCYMҠ&}K E8Palettes/3Containers/GormTabViewInspector.gorm/data.infoc\S(K)Lc\S(K)L/IsԬn9a#*;Palettes/3Containers/GormTabViewInspector.gorm/objects.gormc\S)|Xc\S)|XGg6}FwUi D9Palettes/3Containers/GormTableColumnAttributesInspector.hc\S(<c\S(<9%/' 0PIi9Palettes/3Containers/GormTableColumnAttributesInspector.mc\S(<c\S(<:áF!&b]nv+3Palettes/3Containers/GormTableColumnSizeInspector.hc\S(<c\S(<7 _G\*-jз\\_Ž 1k?677Palettes/3Containers/GormTableViewAttributesInspector.hc\S)|Xc\S)|XHHT0dk8;R`C7Palettes/3Containers/GormTableViewAttributesInspector.mc\S)E[c\S)E[>8+}`~둙*Palettes/3Containers/GormTableViewEditor.hc\S)E[c\S)E[=0ƫoJ \%pqǔcv*Palettes/3Containers/GormTableViewEditor.mc\S(2c\S(22XדrۄS1Palettes/3Containers/GormTableViewSizeInspector.hc\S(c\S(,ƺ:>ˠrf'Z,٘1Palettes/3Containers/GormTableViewSizeInspector.mc\S&c\S&)y '#^نAT!Palettes/3Containers/inspectors.mc\S,c\S,e fQAiVv#N[$Q"Palettes/3Containers/palette.tablec\Tnc\Tn-Vcژ5=yb&0tPalettes/4Data/DataPalette.mc\T=^Bc\T=^Buy t9#)okwŷ@}Palettes/4Data/DataPalette.tiffc\Tzgc\Tzgv2 c]fLBڽjPalettes/4Data/GNUmakefilec\Tnc\Tn$B*#rqx23?#Palettes/4Data/GNUmakefile.preamblec\Tnc\TnNpx^4nۂ9i5Palettes/4Data/GormDateFormatterAttributesInspector.hc\T1c\T1?':F,w5Palettes/4Data/GormDateFormatterAttributesInspector.mc\T1c\T1M][YNsz:;n1Palettes/4Data/GormImageViewAttributesInspector.hc\T1c\T1Ɂ\{ ѽ$&_21Palettes/4Data/GormImageViewAttributesInspector.mc\T=^Bc\T=^Br#T!ӚQ7Q2Palettes/4Data/GormNSComboBoxAttributesInspector.hc\Tnc\TnԎZ8id 2Palettes/4Data/GormNSComboBoxAttributesInspector.mc\Tpc\Tp}s}Yl"@)R|,w>8Palettes/4Data/GormNSComboBoxInspector.gorm/data.classesc\TzRc\TzRtOsjwޠo7U5Palettes/4Data/GormNSComboBoxInspector.gorm/data.infoc\Tpc\Tp~HZ,ct 8Palettes/4Data/GormNSComboBoxInspector.gorm/objects.gormc\Tc\TxBB<CXŧVS=Palettes/4Data/GormNSDateFormatterInspector.gorm/data.classesc\TVc\TVtOsjwޠo7U:Palettes/4Data/GormNSDateFormatterInspector.gorm/data.infoc\Tc\T 'dH7@Aay1ހ=Palettes/4Data/GormNSDateFormatterInspector.gorm/objects.gormc\TzRc\TzR!ܥe Gh.9Palettes/4Data/GormNSImageViewInspector.gorm/data.classesc\TzRc\TzRtOsjwޠo7U6Palettes/4Data/GormNSImageViewInspector.gorm/data.infoc\TzRc\TzR>ܢa V>濿Ӌc9Palettes/4Data/GormNSImageViewInspector.gorm/objects.gormc\TTc\TTojո&2Z)?Palettes/4Data/GormNSNumberFormatterInspector.gorm/data.classesc\T=^Bc\T=^BqtOsjwޠo7UWNF!Plugins/Gorm/GNUmakefile.preamblec\R,fc\R,f._eaYdg@"NPlugins/Gorm/GormGormPlugin.mc\R+'A;c\R+'A;&]#GbJ|J9p.?4%Plugins/Gorm/GormGormWrapperBuilder.mc\R+'A;c\R+'A;gȷ[7%f c$Plugins/Gorm/GormGormWrapperLoader.hc\R+'A;c\R+'A;OrM b^_ ^P/FM$Plugins/Gorm/GormGormWrapperLoader.mc\R)wc\R)w,o|!DO0s;"p 'nPlugins/Nib/GNUmakefilec\R)wc\R)w\ZWh@] Plugins/Nib/GNUmakefile.preamblec\R)wc\R)w04 M>+2$,#Plugins/Nib/GormNibCustomResource.hc\R)wc\R)w&D_w![+#Plugins/Nib/GormNibCustomResource.mc\R*3c\R*3Aq.1G.\Plugins/Nib/GormNibPlugin.mc\R)wc\R)w."*S!N.<shJ#Plugins/Nib/GormNibWrapperBuilder.mc\R*3c\R*3X* WeX"Plugins/Nib/GormNibWrapperLoader.hc\R){c\R){)2=sS1(o~e<"Plugins/Nib/GormNibWrapperLoader.mc\R(Yc\R(Y| r萫b4418RPlugins/Xib/GNUmakefilec\R) c\R) \ZWh@] Plugins/Xib/GNUmakefile.preamblec\R) c\R) tY G.X pM}zvPlugins/Xib/GormXibPlugin.mc\R(c\R(T 6= iHğ77!8"Plugins/Xib/GormXibWrapperLoader.hc\R(Yc\R(Y;ȴYGln3%$p1O!."Plugins/Xib/GormXibWrapperLoader.mcL/,cL/,  )dRZ[9READMEc\S c\S W4©KbwʐQ Resources/ClassInformation.plistc\S c\S Y@T"[1K5hTN#Resources/Defaults.plistc\S c\S XxM c x(A;Resources/VersionProfiles.plistc\Rc\R _RJ͖A7\ lTODOc xYc xY KO,pA : u-FVersionc\R Rc\R R ;&+_E{5ascripts3 0 LJR5oɒcworkflows1 0 57j =|5K*GormLib39 0 4#X$V+<ނPWPlugins25 4 vZfGIZy[Nib8 0 2ى kFVExOKXib5 0 0"M|)Ň"ttGorm6 0 YĨKmr+95GModel5 0 +_l;{O[+|GormCore128 0 mMGrbqIl,bPalettes201 5 ЖRgbiiɄIGV>4Data35 5 ف|Pu ݅PKGormNSComboBoxInspector.gorm3 0 2[KVT"<:1GormNSTextViewInspector.gorm3 0 @n2d>OGormNSImageViewInspector.gorm3 0 E d>S7X}GormNSDateFormatterInspector.gorm3 0 [p˨r"c}GormNSNumberFormatterInspector.gorm3 0 1@SʟŷYqy0Menus23 2  5e0h@GormMenuAttributesInspector.gorm3 0 l2@G`T+ؼGX"GormMenuItemAttributesInspector.gorm3 0 j?|vvջ's1Windows25 3 h1qReջ,ۓGormNSWindowInspector.gorm3 0 ǁvkHOmɤGormNSWindowSizeInspector.gorm3 0 -gm0{UbGormDrawerAttributesInspector.gorm3 0 XFSԳ~T5X}2Controls74 13 R5ؘ؇5}i8ControlsPalette.gorm3 0 ,u,$ :%ÈV}yGormNSBoxInspector.gorm3 0 _RgZ%*mDGormNSCellInspector.gorm3 0 4c,Z $ؗtGormNSFormInspector.gorm3 0 +Gό7]բW֜GormCellSizeInspector.gorm3 0 (ÒB&V RGormNSButtonInspector.gorm3 0 D׀B@*YȲGormNSMatrixInspector.gorm3 0 .]:@rxP=GormNSSliderInspector.gorm3 0 7~}Vu{oVqGormNSStepperInspector.gorm3 0 s-1ȤMQ}3"rLGormNSColorWellInspector.gorm3 0 (tqIGp"mGormNSTextFieldInspector.gorm3 0 $? ,À32!A{hGormNSPopUpButtonInspector.gorm3 0 .ݩڥQTzGormNSProgressIndicatorInspector.gorm3 0 "HK/Yv3Containers43 5 H&vR g~`fGormTabViewInspector.gorm3 0 ?RbPc46)GormNSBrowserInspector.gorm3 0 ) oW5!2G©|^GormNSTableViewInspector.gorm3 0 5*7Uv%)v_8 xGormNSTableColumnInspector.gorm3 0 ֩䀲(8@CGPaGormNSTableColumnSizeInspector.gorm3 0 ~@6R#5XGormPrefs17 0 x:;Ώ?CrrResources3 0 W*h]u;}PwDocumentation28 1 # =HgʅyExamples19 2 Fdc᜚1 E%ySimpleApp7 1 ^mAӐoMDMainMenu.gorm3 0 jm?Y^eyController12 2 !Fa`U, Y㉜MainMenu.gorm3 0 R`g`i14sqController.gorm3 0 `] 1R{]English.lproj92 29 E,dNHGorm.gorm3 0 Zz77In̓Mf4Gorm.rtfd1 0 9Zcu,)40&GormSetName.gorm4 0 P]#&نW` @]GormDocument.gorm3 0 ;oBJ-GormFontView.gorm3 0 :qTW0n f.3GormShelfPref.gorm3 0 ȶs-㕣^{GormClassPanel.gorm3 0 mpL9APkH=sGormPrefColors.gorm3 0 E2KGTK`BGormClassEditor.gorm3 0 +Cُ.TGormPrefGeneral.gorm3 0 )O2+wQ٦zxGormPrefHeaders.gorm3 0 zJV Ժ<6GormPrefPlugins.gorm3 0 ,NYY(1S_UI-GormPreferences.gorm3 0 گVa"^)GormPalettePanel.gorm3 0 WgR 5/ z|ƊDGormPrefPalettes.gorm3 0 CPOJ iajGormHelpInspector.gorm3 0 };2Zbt GormPrefGuideline.gorm3 0 '$z_RevGormClassInspector.gorm3 0 D~jXTqSr0bV&GormDummyInspector.gorm3 0 üYAf 2i@2GormImageInspector.gorm3 0 D^(:diiRGormInspectorPanel.gorm3 0 Kx*NLEDv%#GormSoundInspector.gorm9 0 e`fyu9zS70%GormObjectInspector.gorm3 0 6}n.d߽*'oGormViewSizeInspector.gorm3 0 ,3ՌDK#GormConnectionInspector.gorm3 0 @hm༪{.kGormCustomClassInspector.gorm3 0 [:ɠIO]<}GormInconsistenciesPanel.gorm3 0 zֲAF2bWGormNSSplitViewInspector.gorm3 0 oqˏj~gGCXGormScrollViewAttributesInspector.gorm3 0 |ӏ]̸!{U4TGormObjCHeaderParser19 1 8",@r!Tests2 1 q+0č̒ O1GormObjCHeaderParser1 0 >:%[ nD ׼\0q;$՝+gorm-1.3.1/.git/config0000644000175000017500000000110214333757663013534 0ustar heronheron[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [submodule] active = . [remote "origin"] url = git@github.com:gnustep/apps-gorm fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [pull] rebase = false [branch "add_classes_and_palettes"] remote = origin merge = refs/heads/add_classes_and_palettes [branch "gorm-canvas-changes"] remote = origin merge = refs/heads/gorm-canvas-changes [branch "object_outline_view"] remote = origin merge = refs/heads/object_outline_view gorm-1.3.1/.git/hooks/0000755000175000017500000000000014327003123013447 5ustar heronherongorm-1.3.1/.git/hooks/pre-rebase.sample0000755000175000017500000001144214327003123016704 0ustar heronheron#!/bin/sh # # Copyright (c) 2006, 2008 Junio C Hamano # # The "pre-rebase" hook is run just before "git rebase" starts doing # its job, and can prevent the command from running by exiting with # non-zero status. # # The hook is called with the following parameters: # # $1 -- the upstream the series was forked from. # $2 -- the branch being rebased (or empty when rebasing the current branch). # # This sample shows how to prevent topic branches that are already # merged to 'next' branch from getting rebased, because allowing it # would result in rebasing already published history. publish=next basebranch="$1" if test "$#" = 2 then topic="refs/heads/$2" else topic=`git symbolic-ref HEAD` || exit 0 ;# we do not interrupt rebasing detached HEAD fi case "$topic" in refs/heads/??/*) ;; *) exit 0 ;# we do not interrupt others. ;; esac # Now we are dealing with a topic branch being rebased # on top of master. Is it OK to rebase it? # Does the topic really exist? git show-ref -q "$topic" || { echo >&2 "No such branch $topic" exit 1 } # Is topic fully merged to master? not_in_master=`git rev-list --pretty=oneline ^master "$topic"` if test -z "$not_in_master" then echo >&2 "$topic is fully merged to master; better remove it." exit 1 ;# we could allow it, but there is no point. fi # Is topic ever merged to next? If so you should not be rebasing it. only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` only_next_2=`git rev-list ^master ${publish} | sort` if test "$only_next_1" = "$only_next_2" then not_in_topic=`git rev-list "^$topic" master` if test -z "$not_in_topic" then echo >&2 "$topic is already up to date with master" exit 1 ;# we could allow it, but there is no point. else exit 0 fi else not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` /usr/bin/perl -e ' my $topic = $ARGV[0]; my $msg = "* $topic has commits already merged to public branch:\n"; my (%not_in_next) = map { /^([0-9a-f]+) /; ($1 => 1); } split(/\n/, $ARGV[1]); for my $elem (map { /^([0-9a-f]+) (.*)$/; [$1 => $2]; } split(/\n/, $ARGV[2])) { if (!exists $not_in_next{$elem->[0]}) { if ($msg) { print STDERR $msg; undef $msg; } print STDERR " $elem->[1]\n"; } } ' "$topic" "$not_in_next" "$not_in_master" exit 1 fi <<\DOC_END This sample hook safeguards topic branches that have been published from being rewound. The workflow assumed here is: * Once a topic branch forks from "master", "master" is never merged into it again (either directly or indirectly). * Once a topic branch is fully cooked and merged into "master", it is deleted. If you need to build on top of it to correct earlier mistakes, a new topic branch is created by forking at the tip of the "master". This is not strictly necessary, but it makes it easier to keep your history simple. * Whenever you need to test or publish your changes to topic branches, merge them into "next" branch. The script, being an example, hardcodes the publish branch name to be "next", but it is trivial to make it configurable via $GIT_DIR/config mechanism. With this workflow, you would want to know: (1) ... if a topic branch has ever been merged to "next". Young topic branches can have stupid mistakes you would rather clean up before publishing, and things that have not been merged into other branches can be easily rebased without affecting other people. But once it is published, you would not want to rewind it. (2) ... if a topic branch has been fully merged to "master". Then you can delete it. More importantly, you should not build on top of it -- other people may already want to change things related to the topic as patches against your "master", so if you need further changes, it is better to fork the topic (perhaps with the same name) afresh from the tip of "master". Let's look at this example: o---o---o---o---o---o---o---o---o---o "next" / / / / / a---a---b A / / / / / / / / c---c---c---c B / / / / \ / / / / b---b C \ / / / / / \ / ---o---o---o---o---o---o---o---o---o---o---o "master" A, B and C are topic branches. * A has one fix since it was merged up to "next". * B has finished. It has been fully merged up to "master" and "next", and is ready to be deleted. * C has not merged to "next" at all. We would want to allow C to be rebased, refuse A, and encourage B to be deleted. To compute (1): git rev-list ^master ^topic next git rev-list ^master next if these match, topic has not merged in next at all. To compute (2): git rev-list master..topic if this is empty, it is fully merged to "master". DOC_END gorm-1.3.1/.git/hooks/pre-commit.sample0000755000175000017500000000315314327003123016733 0ustar heronheron#!/bin/sh # # An example hook script to verify what is about to be committed. # Called by "git commit" with no arguments. The hook should # exit with non-zero status after issuing an appropriate message if # it wants to stop the commit. # # To enable this hook, rename this file to "pre-commit". if git rev-parse --verify HEAD >/dev/null 2>&1 then against=HEAD else # Initial commit: diff against an empty tree object against=$(git hash-object -t tree /dev/null) fi # If you want to allow non-ASCII filenames set this variable to true. allownonascii=$(git config --type=bool hooks.allownonascii) # Redirect output to stderr. exec 1>&2 # Cross platform projects tend to avoid non-ASCII filenames; prevent # them from being added to the repository. We exploit the fact that the # printable range starts at the space character and ends with tilde. if [ "$allownonascii" != "true" ] && # Note that the use of brackets around a tr range is ok here, (it's # even required, for portability to Solaris 10's /usr/bin/tr), since # the square bracket bytes happen to fall in the designated range. test $(git diff --cached --name-only --diff-filter=A -z $against | LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 then cat <<\EOF Error: Attempt to add a non-ASCII file name. This can cause problems if you want to work with people on other platforms. To be portable it is advisable to rename the file. If you know what you are doing you can disable this check using: git config hooks.allownonascii true EOF exit 1 fi # If there are whitespace errors, print the offending file names and fail. exec git diff-index --check --cached $against -- gorm-1.3.1/.git/hooks/post-update.sample0000755000175000017500000000027514327003123017126 0ustar heronheron#!/bin/sh # # An example hook script to prepare a packed repository for use over # dumb transports. # # To enable this hook, rename this file to "post-update". exec git update-server-info gorm-1.3.1/.git/hooks/push-to-checkout.sample0000755000175000017500000000533714327003123020067 0ustar heronheron#!/bin/sh # An example hook script to update a checked-out tree on a git push. # # This hook is invoked by git-receive-pack(1) when it reacts to git # push and updates reference(s) in its repository, and when the push # tries to update the branch that is currently checked out and the # receive.denyCurrentBranch configuration variable is set to # updateInstead. # # By default, such a push is refused if the working tree and the index # of the remote repository has any difference from the currently # checked out commit; when both the working tree and the index match # the current commit, they are updated to match the newly pushed tip # of the branch. This hook is to be used to override the default # behaviour; however the code below reimplements the default behaviour # as a starting point for convenient modification. # # The hook receives the commit with which the tip of the current # branch is going to be updated: commit=$1 # It can exit with a non-zero status to refuse the push (when it does # so, it must not modify the index or the working tree). die () { echo >&2 "$*" exit 1 } # Or it can make any necessary changes to the working tree and to the # index to bring them to the desired state when the tip of the current # branch is updated to the new commit, and exit with a zero status. # # For example, the hook can simply run git read-tree -u -m HEAD "$1" # in order to emulate git fetch that is run in the reverse direction # with git push, as the two-tree form of git read-tree -u -m is # essentially the same as git switch or git checkout that switches # branches while keeping the local changes in the working tree that do # not interfere with the difference between the branches. # The below is a more-or-less exact translation to shell of the C code # for the default behaviour for git's push-to-checkout hook defined in # the push_to_deploy() function in builtin/receive-pack.c. # # Note that the hook will be executed from the repository directory, # not from the working tree, so if you want to perform operations on # the working tree, you will have to adapt your code accordingly, e.g. # by adding "cd .." or using relative paths. if ! git update-index -q --ignore-submodules --refresh then die "Up-to-date check failed" fi if ! git diff-files --quiet --ignore-submodules -- then die "Working directory has unstaged changes" fi # This is a rough translation of: # # head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX if git cat-file -e HEAD 2>/dev/null then head=HEAD else head=$(git hash-object -t tree --stdin \).*$/Signed-off-by: \1/p') # git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" # if test -z "$COMMIT_SOURCE" # then # /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" # fi gorm-1.3.1/.git/hooks/fsmonitor-watchman.sample0000755000175000017500000001105714327003123020501 0ustar heronheron#!/usr/bin/perl use strict; use warnings; use IPC::Open2; # An example hook script to integrate Watchman # (https://facebook.github.io/watchman/) with git to speed up detecting # new and modified files. # # The hook is passed a version (currently 2) and last update token # formatted as a string and outputs to stdout a new update token and # all files that have been modified since the update token. Paths must # be relative to the root of the working tree and separated by a single NUL. # # To enable this hook, rename this file to "query-watchman" and set # 'git config core.fsmonitor .git/hooks/query-watchman' # my ($version, $last_update_token) = @ARGV; # Uncomment for debugging # print STDERR "$0 $version $last_update_token\n"; # Check the hook interface version if ($version ne 2) { die "Unsupported query-fsmonitor hook version '$version'.\n" . "Falling back to scanning...\n"; } my $git_work_tree = get_working_dir(); my $retry = 1; my $json_pkg; eval { require JSON::XS; $json_pkg = "JSON::XS"; 1; } or do { require JSON::PP; $json_pkg = "JSON::PP"; }; launch_watchman(); sub launch_watchman { my $o = watchman_query(); if (is_work_tree_watched($o)) { output_result($o->{clock}, @{$o->{files}}); } } sub output_result { my ($clockid, @files) = @_; # Uncomment for debugging watchman output # open (my $fh, ">", ".git/watchman-output.out"); # binmode $fh, ":utf8"; # print $fh "$clockid\n@files\n"; # close $fh; binmode STDOUT, ":utf8"; print $clockid; print "\0"; local $, = "\0"; print @files; } sub watchman_clock { my $response = qx/watchman clock "$git_work_tree"/; die "Failed to get clock id on '$git_work_tree'.\n" . "Falling back to scanning...\n" if $? != 0; return $json_pkg->new->utf8->decode($response); } sub watchman_query { my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') or die "open2() failed: $!\n" . "Falling back to scanning...\n"; # In the query expression below we're asking for names of files that # changed since $last_update_token but not from the .git folder. # # To accomplish this, we're using the "since" generator to use the # recency index to select candidate nodes and "fields" to limit the # output to file names only. Then we're using the "expression" term to # further constrain the results. if (substr($last_update_token, 0, 1) eq "c") { $last_update_token = "\"$last_update_token\""; } my $query = <<" END"; ["query", "$git_work_tree", { "since": $last_update_token, "fields": ["name"], "expression": ["not", ["dirname", ".git"]] }] END # Uncomment for debugging the watchman query # open (my $fh, ">", ".git/watchman-query.json"); # print $fh $query; # close $fh; print CHLD_IN $query; close CHLD_IN; my $response = do {local $/; }; # Uncomment for debugging the watch response # open ($fh, ">", ".git/watchman-response.json"); # print $fh $response; # close $fh; die "Watchman: command returned no output.\n" . "Falling back to scanning...\n" if $response eq ""; die "Watchman: command returned invalid output: $response\n" . "Falling back to scanning...\n" unless $response =~ /^\{/; return $json_pkg->new->utf8->decode($response); } sub is_work_tree_watched { my ($output) = @_; my $error = $output->{error}; if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { $retry--; my $response = qx/watchman watch "$git_work_tree"/; die "Failed to make watchman watch '$git_work_tree'.\n" . "Falling back to scanning...\n" if $? != 0; $output = $json_pkg->new->utf8->decode($response); $error = $output->{error}; die "Watchman: $error.\n" . "Falling back to scanning...\n" if $error; # Uncomment for debugging watchman output # open (my $fh, ">", ".git/watchman-output.out"); # close $fh; # Watchman will always return all files on the first query so # return the fast "everything is dirty" flag to git and do the # Watchman query just to get it over with now so we won't pay # the cost in git to look up each individual file. my $o = watchman_clock(); $error = $output->{error}; die "Watchman: $error.\n" . "Falling back to scanning...\n" if $error; output_result($o->{clock}, ("/")); $last_update_token = $o->{clock}; eval { launch_watchman() }; return 0; } die "Watchman: $error.\n" . "Falling back to scanning...\n" if $error; return 1; } sub get_working_dir { my $working_dir; if ($^O =~ 'msys' || $^O =~ 'cygwin') { $working_dir = Win32::GetCwd(); $working_dir =~ tr/\\/\//; } else { require Cwd; $working_dir = Cwd::cwd(); } return $working_dir; } gorm-1.3.1/.git/hooks/pre-receive.sample0000755000175000017500000000104014327003123017056 0ustar heronheron#!/bin/sh # # An example hook script to make use of push options. # The example simply echoes all push options that start with 'echoback=' # and rejects all pushes when the "reject" push option is used. # # To enable this hook, rename this file to "pre-receive". if test -n "$GIT_PUSH_OPTION_COUNT" then i=0 while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" do eval "value=\$GIT_PUSH_OPTION_$i" case "$value" in echoback=*) echo "echo from the pre-receive-hook: ${value#*=}" >&2 ;; reject) exit 1 esac i=$((i + 1)) done fi gorm-1.3.1/.git/hooks/commit-msg.sample0000755000175000017500000000160014327003123016726 0ustar heronheron#!/bin/sh # # An example hook script to check the commit log message. # Called by "git commit" with one argument, the name of the file # that has the commit message. The hook should exit with non-zero # status after issuing an appropriate message if it wants to stop the # commit. The hook is allowed to edit the commit message file. # # To enable this hook, rename this file to "commit-msg". # Uncomment the below to add a Signed-off-by line to the message. # Doing this in a hook is a bad idea in general, but the prepare-commit-msg # hook is more suited to it. # # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" # This example catches duplicate Signed-off-by lines. test "" = "$(grep '^Signed-off-by: ' "$1" | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { echo >&2 Duplicate Signed-off-by lines. exit 1 } gorm-1.3.1/.git/hooks/pre-merge-commit.sample0000755000175000017500000000064014327003123020026 0ustar heronheron#!/bin/sh # # An example hook script to verify what is about to be committed. # Called by "git merge" with no arguments. The hook should # exit with non-zero status after issuing an appropriate message to # stderr if it wants to stop the merge commit. # # To enable this hook, rename this file to "pre-merge-commit". . git-sh-setup test -x "$GIT_DIR/hooks/pre-commit" && exec "$GIT_DIR/hooks/pre-commit" : gorm-1.3.1/.git/hooks/pre-push.sample0000755000175000017500000000253614327003123016426 0ustar heronheron#!/bin/sh # An example hook script to verify what is about to be pushed. Called by "git # push" after it has checked the remote status, but before anything has been # pushed. If this script exits with a non-zero status nothing will be pushed. # # This hook is called with the following parameters: # # $1 -- Name of the remote to which the push is being done # $2 -- URL to which the push is being done # # If pushing without using a named remote those arguments will be equal. # # Information about the commits which are being pushed is supplied as lines to # the standard input in the form: # # # # This sample shows how to prevent push of commits where the log message starts # with "WIP" (work in progress). remote="$1" url="$2" zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" exit 1 fi fi done exit 0 gorm-1.3.1/.git/hooks/update.sample0000755000175000017500000000710214327003123016137 0ustar heronheron#!/bin/sh # # An example hook script to block unannotated tags from entering. # Called by "git receive-pack" with arguments: refname sha1-old sha1-new # # To enable this hook, rename this file to "update". # # Config # ------ # hooks.allowunannotated # This boolean sets whether unannotated tags will be allowed into the # repository. By default they won't be. # hooks.allowdeletetag # This boolean sets whether deleting tags will be allowed in the # repository. By default they won't be. # hooks.allowmodifytag # This boolean sets whether a tag may be modified after creation. By default # it won't be. # hooks.allowdeletebranch # This boolean sets whether deleting branches will be allowed in the # repository. By default they won't be. # hooks.denycreatebranch # This boolean sets whether remotely creating branches will be denied # in the repository. By default this is allowed. # # --- Command line refname="$1" oldrev="$2" newrev="$3" # --- Safety check if [ -z "$GIT_DIR" ]; then echo "Don't run this script from the command line." >&2 echo " (if you want, you could supply GIT_DIR then run" >&2 echo " $0 )" >&2 exit 1 fi if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then echo "usage: $0 " >&2 exit 1 fi # --- Config allowunannotated=$(git config --type=bool hooks.allowunannotated) allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) denycreatebranch=$(git config --type=bool hooks.denycreatebranch) allowdeletetag=$(git config --type=bool hooks.allowdeletetag) allowmodifytag=$(git config --type=bool hooks.allowmodifytag) # check for no description projectdesc=$(sed -e '1q' "$GIT_DIR/description") case "$projectdesc" in "Unnamed repository"* | "") echo "*** Project description file hasn't been set" >&2 exit 1 ;; esac # --- Check types # if $newrev is 0000...0000, it's a commit to delete a ref. zero=$(git hash-object --stdin &2 echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 exit 1 fi ;; refs/tags/*,delete) # delete tag if [ "$allowdeletetag" != "true" ]; then echo "*** Deleting a tag is not allowed in this repository" >&2 exit 1 fi ;; refs/tags/*,tag) # annotated tag if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 then echo "*** Tag '$refname' already exists." >&2 echo "*** Modifying a tag is not allowed in this repository." >&2 exit 1 fi ;; refs/heads/*,commit) # branch if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then echo "*** Creating a branch is not allowed in this repository" >&2 exit 1 fi ;; refs/heads/*,delete) # delete branch if [ "$allowdeletebranch" != "true" ]; then echo "*** Deleting a branch is not allowed in this repository" >&2 exit 1 fi ;; refs/remotes/*,commit) # tracking branch ;; refs/remotes/*,delete) # delete tracking branch if [ "$allowdeletebranch" != "true" ]; then echo "*** Deleting a tracking branch is not allowed in this repository" >&2 exit 1 fi ;; *) # Anything else (is there anything else?) echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 exit 1 ;; esac # --- Finished exit 0 gorm-1.3.1/.git/hooks/applypatch-msg.sample0000755000175000017500000000073614327003123017614 0ustar heronheron#!/bin/sh # # An example hook script to check the commit log message taken by # applypatch from an e-mail message. # # The hook should exit with non-zero status after issuing an # appropriate message if it wants to stop the commit. The hook is # allowed to edit the commit message file. # # To enable this hook, rename this file to "applypatch-msg". . git-sh-setup commitmsg="$(git rev-parse --git-path hooks/commit-msg)" test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} : gorm-1.3.1/.git/branches/0000755000175000017500000000000014327003123014111 5ustar heronherongorm-1.3.1/.git/packed-refs0000644000175000017500000001535514327003123014444 0ustar heronheron# pack-refs with: peeled fully-peeled sorted ed36abc9a600de534ee8dfb644ec9e33bf8683fc refs/remotes/origin/ConnectionWarning 96828918fd63dca231f121b4bb3efd6fa587509c refs/remotes/origin/Gorm_Post1_0 db3b7dbb9be6caa5afe16bd84e8eca362b0e4cd4 refs/remotes/origin/NibCompatibility 8ad8ce08a8aec6f3e7f87c7bae459a8806b3e8d9 refs/remotes/origin/UsabilityEnhancements 0b86d0ec26902f9c64601fb9bc6eee54d7da6bcc refs/remotes/origin/add_classes_and_palettes fa00b63ced3924e6027a5ccf1ed6bf24b6c4b2a1 refs/remotes/origin/bug33395_uses_single_line_mode_gorm_changes 579bcb7f99af902d4e1b325576b094aa8c7fa343 refs/remotes/origin/build_reorg_branch c5015ee79ec345136058a85e7799fa5e4d73f38c refs/remotes/origin/gorm-1.3.0-unstable fc7afdbc7b035fa991d965d0af93b8c351a87bdf refs/remotes/origin/gorm-1_2_0 41b577c2e7053977fd926bbad233072cd9ed60c2 refs/remotes/origin/gorm-canvas-changes 81194961aaa32a61bad3e556059cf74e0bcd6a5b refs/remotes/origin/gorm_1_0 e5a13c594ee8936e6b1253c417ad60e4a6b4bd74 refs/remotes/origin/gorm_changes_for_nspanel e0eb235d1a537456744835338c8b1e61d9d83a4b refs/remotes/origin/gorm_release_branch e1d3b93b8bf76fe17e94b598bdfd073c653c8f1c refs/remotes/origin/gorm_template_changes 01ed525ca79dca90fc3e5809652636a7ad20dddc refs/remotes/origin/group_matrix 0053970157c7e694137682ce8ee97e6587c42368 refs/remotes/origin/master efed986db9c336440a5abe36f82fb8a1a053faf0 refs/remotes/origin/nib_compatibility ce73d43379fc3a7a525bdca4163233553eabb32a refs/remotes/origin/old bd1bea6a5c06b27777846ad76057a0c6c8fbd1aa refs/remotes/origin/plugins d34b5c8a377a05666084243ae74a14ad17c20c09 refs/remotes/origin/tolmasky_branch f56cf39b0aad4037eb64f88b134293deaa5e5cbf refs/remotes/origin/xib_loading c77da89b93543dbd1e2e93162814198d3a327758 refs/tags/AdditionalControls ca6b4bb2fe1087086636a5a92ed036dbc334e269 refs/tags/AsOf20041107 6e6fcbbf3cc1013767f2befc4cf3da9d9945ef9a refs/tags/BEFOREFIX_20050411 1e11be77e3526f6e864e024ecc058e29c4fecf0a refs/tags/BEFOREINSP_20050411 80fb2883e99ecea6f7e3aaa93aa9c92da76fea88 refs/tags/BeforeFixes c1d01277c568fc67b96943bde53d23e7da2e43f4 refs/tags/BeforeFontChange 29dbdb4eea1ef0d99f833c07522a020afdd42f30 refs/tags/BeforeRscMgr_20050410 89488688daf0dc750c9ef71116bc564bc7ad627b refs/tags/CLEANPOINT_20050417 d97aa926609c9f44dcf2418956284d9138a3032d refs/tags/DocumentOrientedGorm fbdf6ceebb5b0b593a0e3a9c23d1e36a9f397ef0 refs/tags/Gorm-0_0_3 c98af2deb0b1aae1338e2292fe942e87b82c51fc refs/tags/Gorm-0_11_0 84f33a90b3e0f806dd705e9d01476877f8a45375 refs/tags/Gorm-0_1_0 672be07d18f18315bc021d4989c5c66965a3a886 refs/tags/Gorm-0_1_9 031ffa1dfb14c73b4e8d7ef100079bf679dd53b6 refs/tags/Gorm-0_2_0 370772edaa25f05bb1f0ca8a46b44af5c675bc35 refs/tags/Gorm-0_2_5 632cb35f620c2bdb154772fc9cc2c5e8f4989d3a refs/tags/Gorm-0_2_6 196706d36bf9254972fa7c79f09bad2b933009b6 refs/tags/Gorm-0_3_0 68266dbb6157c558998fa51bdd2d82942c8aeacd refs/tags/Gorm-0_3_1 bf75fc83d91e4aacbb8efbacb48eada6a43aeb9b refs/tags/Gorm-0_4_0 b7714058eae395cd4b7a9bbedaf54cd595d3f69e refs/tags/Gorm-0_5_0 00244eb63621610fbbde7459da392d947fb8764a refs/tags/Gorm-0_6_0 f3635749112074539a2dfbd743bc4a6d53e7a6d7 refs/tags/Gorm-0_7_5 1256f44f9e19deb13c8204b0525ceb39db774c22 refs/tags/Gorm-0_7_6 eaa20b4c5beb9d30ae97b838d3b028a45e1dd4b1 refs/tags/Gorm-0_7_7 a7a005f7a9a527e36cf428c7028154f03cd7d95d refs/tags/Gorm-0_7_7RC1 06c4961517ba74d09263ff1bfd8859ff02b3844d refs/tags/Gorm-0_8_0 232b3161b107c2ea508bc544621e4ee10ad30f9e refs/tags/Gorm-0_9_0 437f00e9ac43868d3e6c5ee15b0120295f1a808d refs/tags/Gorm-0_9_10 97fd3dc6dd7cba598ebd8d7296e486a411a4e955 refs/tags/Gorm-0_9_2 c5f4d8d587dba5c861e255f6a3b9d65c8721c011 refs/tags/Gorm-1_0_0 d16a4668453007e028cfbb866644890cb0cd61e5 refs/tags/Gorm-1_0_1 26e48f651509751de45adce49e37cec027c2603b refs/tags/Gorm-1_0_4 55081de927ef643a639267c24f699639231911b8 refs/tags/Gorm-1_0_6 5b649e6c32b49195596da61c8d6c0cc5a1cc2d36 refs/tags/Gorm-1_0_8 5bb71e17375769dc3fe6ef749319dbf8508fbb9a refs/tags/GormAsOf20060601 9a8a88975958d5b8a5bad053adfcb2d271fdc416 refs/tags/GormLoaderChanges 4cb0566b30c8622f92d628ad17e9078080fb83c5 refs/tags/Gorm_0_6_0 fa2bc05de8078af21b034333471e6dfab39f9a53 refs/tags/Gorm_0_7_5 f0a9929781b47cb585f4424ca30ad8fdfd13d8fb refs/tags/Gorm_ContainerChange b97b5f680da811aee909aeae42ccfa0e85be322c refs/tags/Root_Gorm_Post1_0 4c75f66725a68ea8d1cbb9035f8de0b024e8906f refs/tags/autoposition_20050525 baf220502b5c390352c25bbb0e01cc14fa90beab refs/tags/before_draggingdelegate bb3c5a7e758320828f3cbba3ebf2e27141359ca3 refs/tags/before_editor_fix 32e5f17fc930ed9164b6e8d722cfdffc164e4d4f refs/tags/before_header_change fe52c24d5dcd5e9dbdedf9b633f5637e1e5e9b55 refs/tags/before_inspectormode af8ece2995bc4897a13624f58df07d6cffd048f3 refs/tags/before_prefs_change dbc4294981b0e730913b239bf7668854d843b1ff refs/tags/before_pulldown_change a458a3acac916819f8fa38620e5cc062f6be9670 refs/tags/before_substitute_change 60d67f36ffae4ffc0b4e7878ce38be6ff9b80526 refs/tags/build_reorg c891aa83688c5831ddb0c4214f7ef92d3b3ddd95 refs/tags/build_reorg_20050330 4b2c4f3445c67d922252d7cb2bd9be4f0bd8b83e refs/tags/cleanpoint_20050806 95e23be74c9566f7e2c77ab67c3bc5c5e8cb87a0 refs/tags/gorm-1_1_0 4f39aa8f2522feaea0d8042b3906c02de98ab6aa refs/tags/gorm-1_2_0 0c63b6be8f38e5ecd15026e7a0799e47d477bd3a refs/tags/gorm-1_2_1 2528154f3db649cb17e5d5dcb78f21e15ba556c2 refs/tags/gorm-1_2_10 865e51e888bf2da5261a01e6445531fe3b1d55e7 refs/tags/gorm-1_2_12 6e282afb9f2cf0191774f09b0dfc1c14f2c71a65 refs/tags/gorm-1_2_16 fbd09263d0cb3f88cbab91b55b04a0d53e339378 refs/tags/gorm-1_2_18 c4d0f149240028a323ffd234dff1be1d060dbbaa refs/tags/gorm-1_2_2 6dae53787273ad265003d113917a6f4df6509412 refs/tags/gorm-1_2_20 41351d0e98fbc6b1deb54b3ff9fa3dbb6b2dd00d refs/tags/gorm-1_2_22 cf5c859690086f6efbc93d4713c595ee69d3741b refs/tags/gorm-1_2_23 64fbdf9bb2cc9b1c23777e1099841f36f9d6ca9a refs/tags/gorm-1_2_26 ^2c2fb3a9efff761fa588c51d14b1e9cb56071f9c 2d6665e95b8a1b477944583fd4e344e776c17dc3 refs/tags/gorm-1_2_4 f7651180e234438e16e268b9c5fc3363538ca0b1 refs/tags/gorm-1_2_6 2d56848e4591715dc522b2eabc5d4a92c19de544 refs/tags/gorm-1_2_8 0555bad60a8fdf2308bd3854190982bfcf6775f6 refs/tags/gorm-20071108 36e3f5a58425cd134ef23f3994f6514f51e9b9cf refs/tags/gorm_1_0_rc1 555ce37b7b47c329cc2d593a35b0a208668e59a1 refs/tags/gorm_20050730 708f945c2d82a08be52096468c680036d4e680af refs/tags/gorm_before_13767 053e10af4ef5b263e507443672b8f15f1e5cfe4e refs/tags/gorm_mergedest_20050806 10997c1135935b373717529007e2cbdc07041a07 refs/tags/gorm_mergesource_20050806 1a0a5bb4b5ba02e8a7a103cdd1efb3408c1a6760 refs/tags/gorm_pre_merge 145896b10f9f9404a54a33bca42490b360802435 refs/tags/pre-header-reorg-20030731 b09609b787a1a1ed55a9b9405985bb18c9ef2b10 refs/tags/pre-template-change-20050430 3bf2ca7486bfc8f0fc75ec4b590c24c323293e26 refs/tags/reorg_merge_20050330 fd3c075d07c2694b820a6333ec760b4ef9032880 refs/tags/root_gorm_1_0_branch b11f15f0943a603488abe9da585256d34ffe247c refs/tags/root_nib_compatibility gorm-1.3.1/.git/objects/0000755000175000017500000000000014360755773014003 5ustar heronherongorm-1.3.1/.git/objects/44/0000755000175000017500000000000014327003123014204 5ustar heronherongorm-1.3.1/.git/objects/44/f1d0196fc44a445360a56246921de50447cf920000444000175000017500000033373714327003123021054 0ustar heronheronx̽isG{" jZqCiIDƤJVL@lʅ '@$dsǦK`F/Ǐ}9MO'/vݝ͝͝/|:cz18,Ou?mN28.G߇d~.A 3yOYÉÇgӥvumCdp:Y_| /'!>N&lb8de>]g ;/N/E_Ά#VI6>NxQ>3?}ןs8AE8esx[tԟg<_DWc4ͷ~N`pWNQzl_&2[pqİi<l8F m;MfA@(%KJ;l~ lf·h"L>’N'%۾ahAhUqo.Z `qʳbgD_@<>z' =< φ3NGi<-c>~ɳ%%l3;>1Eܼ GZ򩠫pAA|;v,³.QD7 2΅\Dnx>g怭(/v|FKз+!ck`cd+߾rf?/$ O)[?(8KĬA^|ˁ Ǘֱl,|6]^|$_ @kQW/ ͝g7?piovMg`Q~ld54qM>̦Hs`6ޘzM:5K? bpX0(}qӋt>~J4۲8O?s&#JKP_do %e?7׭A"hGzX%=xA2*W}W#I/Ӌ&vOG9ˏ) RDzCga[L?dɓr0EDGݓw"%"+ΝF9b+ 痣CLc? ǻ"R D0/gWF HiP0 d{DK]=f WͿ,bҟ惇E slrӉu_pg |4DdW mp).3=7TҥX %k@E08 H=_#Wl) YhU֑qhVbD ѕ|e%(4@ 0 ~18RT]=q+#OEZ@q8.g"^ '`1vְO̵B~-NW笏1P!kkA&D9ۧ|r)}⸗$UpF`v9C2n=n)%UGGI>,x p,(Z~uR2] GtY!?\6,/`؅g(94h #o)H ^ Wj.X]ߚ4}Uԗ eBtBp/PK]'HS:`.П9uzabؔA[1ls85]fɴEj W_mUpK>\C&.D*Nr bЅ]Ff= n8;Ne76iQ ddWv\JihgήL{y*nC1YXP1sN`sT?f{G<W`&Q HZ[ͥ3H_ֶe9A60< ̳.pKԲWVYWvftTFnx:~Əpn4]Q>[ek=S 79}'PJ~PVIQIGw:IZ~64NՖB^5il̩k0?Tr:ϭ"nW{/I6k,By$AQ?[`ݽ7ͼ,;.I8foը[~aC.6Җ& .׷m~dk+P/?Zn0eviX=? ,&'{F߀a6R\9S$!ˇHUV<Ż^;Cm$ϥߙi H<4@.J %KZw(<2 ?| B,Ze&5|yuV+(7feo $v7b},"Nڱ,7m#L^h 'W&OdG*F6 J>8o m=Ws0\< ]Z~!ZRX9fY%1m#]eo <  98$Șl"@du]7){%=Q@ E0w3b4DZ_04A$uBRS,vÖ[} 8bͼTmPhq&UwXcE [˂[bZJٍyK-FEUt0Z~i@KwmҔ:wdt}>Py' (CW'žZG(,Z{" ņk9ksdhEgJ5<# |ጹfo?'%oDo0 Q)ۭr@ )B_)u!d/yM@oB[̀(|csYnPc/s+M "&v?[g 3wpF!B"5$LCr&_d9g'B \oAuEC_Fe&u' j O=9uMdۛozwM,ӭTrY:;u1H}@_Z1Dp#{<'$I"HqDľ ƒ[)GHF R0 nv@ 9Ze[XAl"p&j] f2qҝO Se$I a4ͶH[ăEgiaB}bE2}:GCH0ϱ '7azԟ$!_~1NM𵢘Rxe3\\+D0|bB3Ngnj"M'&D~!ۄ΄f;ȸwvB ~6WMs\Fϸ*mh V_ 5%,'H10- bpr-8шZW OxΏZ"s2JZs@+bbзZhAQe))P58}|‘ChB`B&tQ No+t7n㣉6B屮v{?W3ͰU~]Jri^[29٢ŌiߺM8=@1$zc U x" lY@hܪ`g"8 ^]A<}ק8[`` l>82&xA*p&_4yau 6A.Y"DB$!:(@oרx&8,?#"Gs![L$OsD.ZT'QQx T=X/]0{Ֆ`ow &q]Tau}U^x,KOH׽ϞQD4BB~ v|Pókqrw 1Xo>"8Qv':7t+MŤЉke2lZ#6V-' wIdzoSiz4 [{%j@4/dcuZG E_i[-yv@2rT80[J|| ՛/W^+0->6B7Ƣp_,J`t! a}.WdXH xf6O[;Cqes\zwCz]YGC}b9DرTQѶsVΕȺxj mӂf} ]=vdp fȭwID!3%? K(5K+c =nm>.5T7 㓶oL>7\۹ r^Ӏu,\S|H/$b٘LEN;Zj4uӳd绘dEo&WpJrm&K);8˩1oI\+4HL5`/P(Vp{,g){19s9~짉Eǫ %bAE1Y9-#$ ^''y Ue8Bns+gyί P7"~Dc̭!`E&K+- Q_fꜦD_y1²k" T fd)EO0S;ug9gK7/rVdʇA~. !}]? %A`^&JYmxaTŦLm] $|D9{R0/*6}fbWlg`eZi71GcN\3En\hCTDX%Έ`hf2<NB%{KX2I*ıWxRY0Vfu%ϗӊ@Ӡ-vr`Ahn 7஌T*8%Fo[1~mN?^˱r+]S1^ޡ]Mq I[9i .[h;GGNDNKxк#ϪZq&{ d%>R>MEޑS8iobIJƸO@1˕ B>1+!בcHcAÃ';n]:;B*HZ'X,Jl3VoiAE:yF'IcD5W,\~+B&_tRn( Xc{7J'ѥv]aArt()~?Y)@@N6t>[놬Qzr"f,γrV!N'бw?<&DSLhAɟ {t Z SmFv^jд]'6ga/w.MozV^*@*ֹu!hpfD^<䵦30ZE]?AK͞o,R!@\}a[MH6ע^RlUC Spa7qeEӷ{K~ҩYcWѿ.gK#TЧ"%Kϗn ,Yt>Z)ISF~q[OY8λb 7B!A|ó,>\r nZoE9}H`!'eǾ+=k)6})W3.z c-<Ǟ w``5#zhd/(HB7&"s0Ok4hnh/L|l|{Ⱦ |G,6z['R 8G*gOPBMH9Ͳ@ږ\%Q({ctb[ۨ.D468-x9Lrr'3'lfB3ւ;rx3CסاtJco+\:Ty]1!C=;OAAz|CՕiZ+GkB@&/oMJ"rw|c8T3{|CҦB5Xl'px,l4hҳH)=0 U>pE1wD [Yk̨gBUn/EZʰ.V(\,i%+L[2c@ P`k6!^{V.<|ʢ6xQB,)E{R:9r@N3/j˲ R02x}&$16~\X&nB ki)Ug\8noo3 {j~]됽D&/L@,wmQn ,5^lVj(g՜`EU똽4pS$!5vwjD Bٜ]?k惷ٍڲhlrV?]3o-&d0 ,(Irp/Qo2 )ON{]^B\i{TPŽzވ@l8n-b2%Y#wp' ӂUXW!:d\T̵E[]X(4lIbT "Ļ7_VWP|4.Sp;O]AJVrP * =?/E!!uX\FtK@r#\MqSIa: ei ? l.kkrGǿlz*0ѣԪ0Gg"~vJa !P&J%#{dZIj<PTtť0ݺ"A6m8ГdsKQ KV< D~vj>qO׷f%Cj9Xݟy"ǭ_wYҵğkc^_|l\W6gÊڪk3^}.vFxΩF^S! ܨAtjAL3@֣ fx\: !CX+6,9-jJ!HKd/S\Q®g (Z+M^ f"Hwqz'eN)Ɵ3xLԄ*77֘G2D4!u=S98 W8R?aGiVX c$դjmcنwe?^^T|8EIK~o;dhf ZFOn.NMq\3b9ngًӖwz [6=8]z8^-Ǘߏ7-:9+ϭkE:Ks-Il']\|PMx1m-}U5z|0a_kʁ*g'Q#w̟Ϥр@T#Df+s: >ؕm 5 @RU^٪6lxvt-ȟ䮭dguE`aEqKDS?0eHQ-$rA&넁l< +-Z8anX/"QB)2&~cӂ[ﰠX U8~ ՘4 ^@a|1\˪C}OT1zUe϶w x+*55-Kp4mF ŋ|lb&ދoKt⣗6ux_~ oU'd$ooi~Aìȶ}h+]bDrxY'W\\F:G࢔Xo-g+osH v*VܡU`@8N19X5pӵΎȇDr.S#ȴ> u:tOr׏=@*2Sb=J@AyH;BE eǕnAUDa'hxj_53Yd4Շ6 K87`nꎝ.1.ik  z1UPt1Q>%ҝ:LwF(uPu ըV V9II QKߝ6' QaL&Uv]Jc#+%c0.3+ԞVO`3 ڽZҖcEDy$epލ2ǸE46$ٛ 2muDžC;'!|ˆyQҍQ4@MڍCE+vX$`3nӛӋG;()t ֽ.Y:s7޲bQYʹWq]Ē;c=U@Vter 1 (ɬylܩaK"ԯ%Q4\bI*S7fHאdr_%D IYNwSItsL ?odgEE$tl.$9JJ! !& Y2Kh+w ?qpoHW矹6CnFۧfLRPsP}_gҕP+k"ӽv(枩,0t{-ze+9 "E$aE)iV8CgNzah ̚iѫKQÛz0N3WJK8z/odc1XlO xW Ni"Z&w]X FfN9R.I#:Ge:*%\1rtuLs f4J BJ8/W\& [Em'gk<+Wk;$-eMiьx4>#9|*q6wSٝxXkVY^ܮs 9[R#K.Z,,61챰%t]ht{"9 . b@|'2x_m|1 Q.3h3iMJ8bե.q$Crp<8ayPc lqE}VF qݯ9m*;ZFc8oR}KQ.0~טz_U<6{%c껤 {S ;I2YZDJ4dDT-e ˡFSGHk*%FK3(t#'er|#ݡ%=#+$5Pn1K9J}ƌv 7QpK?!yzP=Y'>MozC)m|u}QsX9X'"*PX*GN#X}*ÞVMuV]jH6)-XTz.woFCIQ,]nd+0\: M"D`엸r.La['VY&Ds!I' B4RO*a>WAx\nFU0GI<4Қ&F%OJ5m% Y1(.&3WcK\l9:+DpNw6[CMS`fCt{ߜuFLQ^Hvѩ*ם3NKGrQ}.%>V Ɗeǚ ^#{f*KmrnųOKާ5컀C)ˋO"zo ᨤuEZcS;sfaSg|$=|ÑyI!)|X[`& o)K$[17mh,,!U#tܻ\t2_IgP@smP{$Y1P')$>k&Lծ6M_gYo3"=/ Z?BY, NmG )=XU݄6#]W+]H+AM ~b+܈ٷr*tR\R/Ժ9V q1I2ɠXAxJd'yxn0&͐a.֑wP7Qp@Yr1Q, r2L#NU&Ζ1m~GF}6"n ʨ+@ebE)C[`<ڔrf1h0WxS"@l +n:Q@[%h ~'W(F2z^hf1 xϲVηg[|j8@5u]rP`EHPŎKYM 榉q#,#”9mAcPgȦPb(f},U/ɶ1㘏g#t;0bQfRp 2S5Ϩtȧ[ц8긌3jl6ڋHc)$$HE Lz`~IрG xx /7wzd+0XOi\yl ̌ìX2>Y$aꨣ¢?C*#!b %hXѐC!Z"ԟ)cs,&#t( (Ӻ"rɮiDO<7BϷk׋Ŏե :̤k.Tܳ帉{ |7Ţte9\ٍZÓ&; be( NoD ,@% P{ Fq?/UIFnay^JV 󃩴 F2g[1GOy{셜-؍\݋$}D'XօNtLG2Dߘ7>YexBL|#V "W$!`cH*@Z%D-Wgf 2;%dآl*H<R8ݯr(3P`6Q?a~OU.u n8I),#EnEh'-iXiDhg \UI2P}Iz3ှ- $XnXɩ`?e8MCoCE|)!C}C.#ȺStg2^p$ ?( U[Q2|)ja``ח?zfp3qvR}t)"j"Vo*d"~L$ ȦONW+m?AAGu9ۘo%>@8ޜ&L 8=×mڇ3/jJ!DI)VR0|"d Ya7x"3GlC>;ߎ\0Cwݢt̍-T?HA.Ŏƨ ;\B6@p`(XZNfVpP%쩁nc->K bA.K=6ӆ hG ή$׻7z"ԯb(Rh`MOdmX|"x&Бޭ ) '}!NNV4fXt$|滜\P] 񘹋*M'iv;ޞ,BVuZWSj8F Wv XDJ7SPL[}4rd1is.s4jG~mg?_N$Mߢpi؋њP/|PY.no&%]4׽f>U(~y嘪Vx&oZ5Tb5]*BLjGXKW/kj=>ա0rMtZ(e",Azq@ @Srh+bNދJƵ(=q/rWy ?#"y#iblxclK~Xr3ñy ώ k9 %PF^pɰp %(Zh-"W~V6d=0{Cp㓠Q[K[a( Ա_7ރo]2.^W[(6#ݐI!VXPMD7K6w8NN&J6WД (#2y n .V7݉[ mQT:iK TTGaй )}Й-Q av_R@թKt@ @W3Ԗ ŴΧյ^{ᵍ^xUZw[ݎ3YY%n_e+/vY#%ɻZ7 2wV{Ժ1{o۶JWmZXjeKo{XKG%]4mJ"U¬K[9ZCspRg+!b7oͨKa}ڿFT'BvarV.V!KqZ$V5&L%|r=O,JQ/CW!baӜmy R͵ Djth%J2`4؀!$ pB`=c9.5MعT u;cDβ$ E(o/ɿ/um iҸändUz 59jVtXUV >( M^x "Jީ.c71AOTڽM'Lpg$cSf,ZSnV@;<*iʫՑr|CLנ_MB&;;PeTTv匨 oWYD8X] ;"BT X'؍\b-P֗3Iz+xrsg.$.)\BcՆHz<0}P"xP_gc]֞С桮MBsa"]sMQA.P=&٫^`àfT>#h(͵Yq+ʦse:o#}ٴMT ZU[jq]F9Z6mBoh; Dog@4Uf"FH ?zE`<;JVU#KIXc[*# %H[| ˁf!A_uXz ;ub7`rA)\p_o&'֌fieXd+pdܜ`ѡD-Aٷ|h "][gI,STdm/!#{o*dMLj"* } FE+7C+_Re HI' |RBnv4~Oarr{LCHvZmr'0i/VB:&Yt%~[NgնVPOuij2DxC;nf_QȸUVqAt~ʯ\  d#Wnp=LW{ҹ"ĸx]Cōڈ9e* \{xc%Ճ~z ϽάtBz ^Urmo\0Joĭ(-J滝;vR4dK‰R D3}OrpFv3` t"U^U*0JJGMUК#F"2wd_S9i@n>:!&2kPNw5|1FW7I=MϐE mGtF6`UX$T?a| }V &׿iؐ<Q+Hh~_(~ض j,:=zRld] *׳>ڰM˯HRj^'T946=[iTeR>Q?Sջuܻ+ uqC^Dl8;$mqS64h2HݶLPuBL ֟(ynl10BMM\Q2N`w%GNzC[Aic7JꍔeSmJieO3N9_!Du݄>#Z}G ͖R` \v)AބtB&p!;򵦶%j59L,C$[{vD ѝ<^/󚤖J9MxeUe產x%)-J'O5`Զ;_ %w;twJklh(B"f7!ve2-5ڊK1F!'"ˎQN)ϬW^4 ipzaâjD*GfIړ WfRCoRBTaK+/@-g4LvpX"E&B:V]AXRw;. Fw3Y}L61EKkuH1),7QE2 ؋/2;ډS\~,o Q;R1:ɖ;ֺ/rXMQ-s/o'Q2o5TK.|IdVZMZNgȕȕQ4d5DE0FEU~֗@ eHyMXΉ[O(^K'~Y8жŗnmݹ;,/A?y 1&;[$|iVIօ"]8<ڼȂR_O6V}SJԹ~ lǵ{V>.C'yxRL#k⡍=יC?frnZڶ냲NēD:߻אݮMW'ΕsQ.m):0,!򎸦T6:-OۻG+f5DV_Y9JYO,/f SyGoъLU f ^Ң}ުV2Iu'ڑZ]@1OVb97bmίn~%kU_4?ik[|VНݷjVE ^gfDǛ@nʛ&ͱK "ĦJv\ # ZK+S E!5]M@NZ$P[LlP` ؓaȇUrYb[i:3E K-&PgCje( SH)Xs.\XޱߝdJGϐ:7SQ36Tp|>5a庴hb,O9MDJTVdZs&ru>G[C_@bԧѿsemj,suGrvz8p1Ԥ=]f2AϹa|*F{YH^|x }o$BjĆծt|qB4V$Sܦ?ET+6ӽ1vy ICRI*بQGnD0-d!ڿ}p2AAf޲Omhd ^yϬŔvv)c, NbxTJRyU%J"K.]F}aq95;sZ8Jbv?"3ߥA+IhmC1?ʿ"µŏcPy]^φ;Eu6 mΉ`bb. `@\֩&x?Ҁqڭ^7nnsf/Mjd", IJ7ɖe[gND֊!;hM@t@$ R1< p !aqO'*ۧDXY@>5^E1Izh^A;CD^:-[l+cؑvSG ^3S1-c~WQX-twܩsoVzM"2YoOo>q__~:z룏q{Ì|=U~vfTҎ|ryg%!]Wφ5yܛ|iX: PO?J{wY[jiCťY0Ս+ݶ/֬K͎-W/(luEts J3!j^:^<ۦV:&S-A_Zt!]>N/ 쒵Ud^/BMu  8,rdᇿC =FN7&J:*=% ʩ5Ifk2d+z29A*xܠMTx4*r<˩Rm;븐nYmeǶKs憗Ű (O'ݡ؝0;j5Gbwb#Bd Eea+<蛴ZXi3Ix^@:^>SdKyrd*-*XOa>C͋UM,g4+ZlzȑKM<msm/t  e: Ta%0M| y;Py[~BcQ?dk3L1r+CN_ A)._%"D@S;QŢG"rWKaXќR?qBpfK"iL۔ASuwo?{CASW17*(hNKɺu2e]}k>߄TS>kSX%LV7E!L0XS-P{4/9]mHtz4f B&E=05ZCШHns8AiQ, :-ED9ǹe\ҰOO ROyc/gedoU{~BsD׼ρن1Rq߮IJ[Mcv.ItP˩'3ekbBA )2Eh*127qmUQ%'FofDq'3KkAWMw9͠8#sJ)ЏS-XDn*M]-ݵJZKf`f/H0oYѕ쇆ŃB~}&w2΢Eb,oaT⟟!Z(I??w1f Ou(w-rJd4<RAa PV"̻-[hov01շy&~9i.nq}[VfE?>8W!#lCTQ|*D El]/O[ρH/.EK8~0=Ku&1J }^4jZ W,9>y^H=Yu1Li! Y#w?qb#gfB#(H )Z:HWr W _6I@Wh5@v u;H'Dg ,`L" ֻ- ԉFGni>7DLQz!zcP7GzRІ@$Kޟ0[C=5_71Cl̖0dVOm6FX߂ X8o/U5q\[Vf4qMr~0jJdY(C38ȱ"ӏScP2uWT3ˬPQ>cm!6:xcOp1l4--@ yfE}?0#KpOH.m41B=t{:I6~=P(q$3nE8\Ϙ~dz &"zn iڥXHJ:ր'WXX8n'j[4O.4$J vX7p3k@D0bDl/'Y $Hp0>Х+4GcoU8fJyږ_)#ZFMjK9-is;ЂpkזZ \vgpݸ07眂:|;!͹Y#Ώۢc9`2TMʲdIDKaUh<\[.W! r.aj Ȃut&;aBy1!y&ABw(,ڴҤ\gb>)4ݸPG?b}"ƼFC¼urIo!CھaZӍJEgx96TW@qX"DgQ-r@oHɾh^|D{~\?0? HVc: !#[BYd:!nS| ܌ɫkc[uN,ПD턖OW S&6(t[Mu1 1jC*ڱj…WՄbo$ Z7Dx G# l}ᘦӫp)Qڣji1Nu7G V'XU TD3+c:I6RSE6qXL @zV 4C;}cZy)Z>My՝-]V*{o?_3MqeG䯈ƺRj FV&$SJl "D@@u?] m$˶QqgifH>Ox^ᐃk EbZۼTY)il'@0x4:;М>uHGP|P骸T-B^\<ɚrƍqP۠3\BWqG19q; 4DJw{dp6i$T1 {oOg#nX^"ɯY/ Dl4$ {J#7xL/?&ԶsSVB 62^|p֡lJcrK4D`eʱ3=3ȷmEwpM}Hډ';CB;CEI|}.A-@'k7tcnK.uxT!淓獵 5~Z[>Q=w=΃b7G#Wlt4>89.qYD%OИXBna$" 76h77Z801 bH0MK85{[bmv9C jg ұ (Lb/=)),!U~?ءwIY9^fYS7,r^mY -"ӿ%3<IUn  At0-Y((B{Atl;  t+ˍA$2 ; 2A_v ӹGrq]>:{utey) ‡-^Kc>wҸ->V$@iA[꧟U`'sN! {vuQ/N-xSX\dŪ]R +BV\VhX99~43-gF?Vрg x][ U?-sEUE%Dw}B6Vr҈Qx7X` !ɯ! -lj 2X*C.Ne ѱhHsa8}d@dY$eo&V$ʝ6]\@QimT!B%,8 Bڵ*#dD;1)eS`0]]|}s1QJg4,_a=]7@v8VX#(]o_g˷$2;'iHߵʗ'ymrѪ8xTs9/q˜eUSCU$Axa 7e_y_*VA de0|5%>IE˖eX2WtChzhk+5[O/7+>pG`Q(N A 1Q)e~ڜЫZxw?t 횣A]޿ɋttQn\e4)`s#ROʆ F})⒲=(v*(zRXEtJjD2LdS}a#,݃4U6ų2&Ymm\?ogQ*g=X:f j-c\̽v[ؼJXfpT/a7.n1Auׁ馘|Kξh ߎ^٢- ~8=yQY|uxPc[g@("s#QY A4c{^{dž6]|J'78D1Pˆ1ψh( 0 꾍D /[vGrOf ?^6Bf$wڮWj ˶qA=](+X/R{[d2U>RØ:,lpH;҇LAJ?&h`_s!_DCČV67XB;~g;ղc{!OLMޜǃ[]Ax,ryo< ߽2~͂ԅiM9[%}vf(/˂7D"ƫ# uJ0F)1hU̪jtDDiKe:΅To>$AN O#"K b^*%4 :Q}n)ƟiHD{iLHRm׎Fһ-WNd ulJ2'ynV#>ݸ hMH5H4-"K) ^,o.v٘T.]*LJJUUAr(NI6qj"_(w %srtMmC3$Ѻ 5 N>$}EB-ޠ8ٸ:j6* wNMWy]-3MT_M{>N7aaj2rR>; g & ɖcaq+C 9",ܗ35Pt#DYjAYp B})9@S| ʋG=T/](4&5 ~%_ߣ9'O}?{fSdrHn]mW"ꊩ~8ѥSΌoHSwa<o)AC'k{GOr\mRLM*ċv_13 hFs [|h8rFfNqE5(G KZ0ֿe W]_iN ,<<jk]m==Jijn3uU{kLcS{%;^񿷟-u܍3.ch??d^WKͅ^ IcJ-cӅ#2+nF5h '"$o]GFKĭZ*٨>O&1V|qg3U"!y?X(O!L O+jVx̨+!8V/vz bc3nr8MVUY=-"/wIv%tK4 ʆ-n-?o|02(@?% L$׷$2Q",O y|uɗh7pSJxDpgw6z>_Cҷiͺ)W TE9tFDHuDҍtkM1V9c V#n,}7I^N)"eX܅s]f!$_n6qmǒRLd'4L#>  B.gB!jUwtz< muZF1w\e(?&DV'A@H5rW蹌1EˬC+;+&4w>_*!CL)Fw` D("wI [jo.vH PbnVq_-D5ѸƸb[H6/o6sqf3b/UlXmr液ӋeO1HWKn$iVFj"l)>=BPCPSsSfʸQ$OiĻMCuxSXKẖ{ܱؐFiq \xM#"=)&[ux*lH8̒>/2y?WŴ0ܠeW>T;4PJ5/T=3B׊IUwzf[u P 5S$q_0B[В- [k3F([8Du'8?yuyC6 t yYhR:r~qQ-8ܼh1_v{# eKΣɱ5P{w#;3ZnQ} mUt#P9&k7 D`ߩ J48J(uŤpB"eԶJ=3b@s 1g$20zxă1z=^m:BRKj.4\XAX.]6drS[1`9C "PxE5}◞RZt@mZ Sa Uyݷ ,|ōA9V03JLFO>菓O803ǗzGk=[1cnZQ+g)L/ {nw~zuvCѝ_~OCeA8j]DML+ AsicYG橤隋8^:H T}bXz[d16,Z_sA/8 ׻Q(->c5>T^#3ܖG&Ss.e7QoACk1H,Cau)7bRmƊz0NW H5DGM`JL0wguRzmypQ"xk= zUCxc-+Pk rjj@>8삨Dȧ2la L06N6F CDhn1-͹YU܉y:1bX-3^#R5;)$E'ǢAU_+HZ ;tb&{Xv#!}i^xXCz{;DY7±;yCY0LD7d)sPH{ܻGitʇ8%AW6z~W՞*W\L6C?&FbŎh#ɽ}œk5I>-JJGUa_=1n̙2T*.'k&qM :nKώW:f)nA3]-wQ?T ĥr]䛝C)ZT6|&-Y>7KbUޣ=vGVPJ?\=:*X傠lz7( M$V_Pp-Zë, ;bJw0aᄏ)N>+QY>ICNIkWf28H6L=W/+@w sp׽ι&s ZjsN%_;Dl%uzKP<VJE_{$PGJ\xI9n"\T^QxA Ώ{|8L-e7XR>#ڄWݭw*bOKptMWUp]NűFRPᚨ4G0& W̞BkJ$*?4J]1md4|#F0"7}R꺮P6<}aJ@KɱI)(/(+A.K[9?͒5ԓ{ \Rs,R.-$\wWy i#MjQU+^=gZ]~%)$ŕG%ifTM \y;³12C࣋>$f-5 M+WqM"ȧ/\unAX*>~B x0ԨaQ6FZ7q%jIql/PK7oΫ Ft*[hFcrۦft0 ib/חUA Z}k ]zI\v[ű 9V8!}j_<HΟUXq 6Z [P=\" b|tZn9.q $Mfȁ780[-Py̹=; 6K;+3aEm^ 2]ld,¨|vQұL8Z3;W [r`g3Ouw\nG9Nf͝g[ JҨiw7-G·ܞnپf%K΋JKJ68zBQhV'* ,Db)NfX5NjGI'm6HEk;T7 v_>),󷵨Aٞ1%${=x l2b9FH@dC=5DҶ\GB !ڤ gagtm# ?D]ru>m"kȕN5BA@)K댨/2bOVAK5 q%ҷ'V=k?vW,v؏}ŠqT-Y>.jI3AGgLGZ}/FԪ.+ґƎ/A>O>kAy{ *:آŚHG㐭#Qږ*7_^rR%ew<`_ sqE];XȬ6 D45y@DQkbWr.l!. & <F L RSi|mulI)=\ **/G-N O: H,P0 9 fn} N?Nȱq3Dck% d eR9Yȸi2(=Y X{ٵs|<QV"T̿}mUT `; պHЏ j+b텴77 >vICU ^;Ě73^p<P; mZM]oi k;P$`>?{7:ԩfX7"Sȓ3PWTê!dJxY 1hB+,U3,iIaĬnq}fux,/JE,ŬVkjx'gOu:edZ |Y,Wץhs^|S[52?}]Nf\ TD`:r ;Sk[?#~?]p`qiVB)U_SN$Q!@XUy 'UL%QpcԘ/Uc}j?V)S8sUW57^BZ-=&&XS=M@$mϲ+q'fXpPJ!E9\z ?gw,ʡnwG/Krwցfb~֭TYG~+#MW*nRnP\֎QI}SCa[[tWc &,2o(iA_Nr}0!jdkwBiW~4(}X4rj1boq^nm|M5yev5 gZ8Fdv];wNL趛ahs*k /Z/dw.|ŽY pO/WOPooR  &IMѐ%H,R(o7^ҘSm:0z(V۝'ټ26?~!:L3iD 7b[+|xzJ [sXnzY; u#}8u* +q޽G9QCK9Y&+|W^L*KhLm'jq2 $v a KդH& NWpGK}=I4(BzHTF}b,rZ;o+5/(%pVy,Xq/)U.<΅ٙ_e%v:A$W۵v^igb:'sq=]wAvSk&=q /Z|a9PV"V :ݸ0?EO! v\Do~ƞdY}2 VuzPv}RR\H0% >$* S.P]:ymxPV>zŤ u_b^ +Da6cR^J4Ag{OSsJ;,m*"ű{;^TgsR|t~ ꉅ.Ȯ;&(>~E^/_X̒~ENJ!7ɰ/89=,v}+,;f37{agRSMw鈲h{Yx?j6PZٵ+9Af B8XXֽD{]*SD;%RQKn\X (k $Wsb7'hy[a`8*ڱLX&}3oAlry>Bx "]fѢScPuTJf$ SeS!mۘޣ߾ X+姭zҬS*awiffF?O_{XK+Tcb]= 6VrP[f8hօeBTxx1B$bT1>:貽i m)3wyln|(Kd"sB\4ts}wIOUAkDֱ\L}G<".J [neեuҡ(m]n]X\y1}W pjgzuXsl jcэ~꫕rey;2q̜OEP VM5_-9 @iLǪ6b> oZ5Ԩ7!4rB`BuAHraz,uZp9^Vs6YƉFSof?"E76:l,QyI~m%5R|'Y9Wy?]0aR%6 y6ojΆj|V,zuŒ]5Xd1BׁܔU{;}X ;~|zK}w|]bU %.;;,"COPjS.5pA8H$ѿ+75 #^/ތ/ފKczI i9Kx:L/7[m Ռ" zMqz]jYc jH#&ʀ̽^N1i70UZEz*K-diHTlSW5xjkO1$@B0BW$F6wPrc`r'SVV%ZZ(tiSzv06lNb{5ځtΟFJ:jXЛqVŴ9 @^39OWJkÕs%Ӳ3 EZBy/䊉}<7w~tM/*_`Îogψ;!^T/?7JEO_*K e3:=0a3]Ǟo^.Qƫ8즀q[(Q-3I}>6|?ȮuGZ>my_ۥqZ9&?Y:E}xõ4oWSʟ,i-/- t55݆u.!2ݸuJtmiK?)ƀ1LE 1B#mXoP\`GDԱ~[l4Ļ 咡r*'Ν,}߾zJ X$?˦ ֽ+9 @`1g-l6qkbڝal\۾\Ԅkе ,J1iCT;"Juf#G BҐ 7vP5uRp'i&/ JQl^\RYXsYk-ZS/W}!_=C6>圣Dpf]8v OC&V7Ġҿ,- ld;4Ny>UllX2]*%4\k='0Ӡ2SM8WT3Rp(NZxΩ+O?[h+5N>b2%w2K݋Z!44./JHK(1/Bœm7x#_%Xi6Zc$ ͚vfO~P<2saY +ҟ0)Q(UNN7{Qj!ŚX=)S9V;FK7 >Jᐿ|H_Iޚ3!4-ɻU|q2~l7&ӥ77K4R93f)^ch&C&F#fc *RKv8m VEI5ʸ ̊Te4N)uE߂h򲤞ग़}fTQ%L/,=\S~Y7BvoL!0"*]d18ONft<)OzF\tY|$oŚ8hS<#i\_8Q ˜wCEFI/` {z$MB[뿔ut t=ƿ$99chtKˎLj//>S=Ql>/g 6g;;#;MMuSw~9+lQ 9epo_N?%^x+gppB~! &vb9TN\Xbjesqd|ڋ|Ě $ 'T3Po8ZAJTmne|&FNwtlyRQb `fdwJ?SyFEM&Hn?ZTq>3TLɲvMzڅxE߂C…%oEZ0:cwLPWY8/cDVne/N9$J aYϦ7z:Hl}8ܜ*fm:T!ٱ;4S4,U^["Y`e#>f3m Ocb8ѵEXtUT[5:1OLdL A @B;~LbܦtDr%wb< DQn`SGV^M؟CV;K: ˫ȟ7IEq6+ 37d!n7'[, Foq9)#d@m[fE2lPZk 5C4!{esӔJ*eU' M;u36|Χ?^ts˵?TC=Ji50qsAZ9/Iw_㝆af2*}M=CQVcҦkZ H~L932>UFg~|1o̷n;dM$oL.ƎE7'JEJr0$8JZBHhE:==BYMg>ܪ_E_4f>JZ=ՂoLnu}^ 1$ ox6M!|ti#&jeveZgBȥSP:{QdG5;F6l掾lfJxf yDOR\/رufn"jOcQIT_gj7SGۣPŴ:^h9ǒU g@Mu^+g4o NV .6UK2i]*~m"#67^*KAb.Vʛj]|4gufz$HRKc$V,QρQL JF^f޺~ȓ"LҌ;!+p rWo/kNvW[H]_1+̳zj)tpmK?#ln-'{2 ;%^ 4j2oG".?]oݫ%q_R6}nŜ_ՋmXNd$ ~3qo8*w=#rWV` *,| 6<OFwQ#'~ 6rB7JZ>7%Ă'F97oRCHᝯdXo)6u2G3wm ]q>Jx'a=cƸ..7(yom$+Chp]m26[BۃbK:)G-Q 'YWFC(vSUӷ21& -dOPM혐M4܈otI|R?UxO0Q#r Sd p杮Ü*MO-Ѯ+VQ$hۺok)/KLh.jRi}traMWxAm@Ű_ww}e>|C΃[u+i&'pkwZzSԻJuE^̸;/ .;Dg[NѸw&Wv@J:*4M\*=Ů}K#A=oyTu<ܫ>$atBɓFr?j'=}.Zi/yUeCO"3k>R|:5/+>ukާ!2q5k\OF1MKb}b8bv.!dqosUկuMJZhYTvFW}NOjpvePD?FeMvbqlޗ\tK_R6[]h2v*Gʫ.#r -cx/ZoŒDK&ETҳ?^,Z y{uVt)!t0m :[ںkJU*cGm75ڬ܂ܖQ;r.U9RX;J G ܫK#Ƭ!ȡeTu(U ;rRL>VAH6ģ2x BA{[{G_>ª!EH }qŏj^'s :@ʐ1ǡItnSlU^3nZŏCbF9\AmZxog7}i@uVI==v2,'euy442ԋtNeјr@ xOF@2mTg}C>>5U^y7>+|`}!(M <1P^zI zB8.X.`v(宑s 9`ԝP1|dfYDtIk*N9.? @Fj-nD=ItbSI-ނzrEmX=!G4Ǒ sozAHՁqtNlǀ1wQ?$/MOw03:]6B u,x,yv01m`;OS>)RS'(PNh&baXGEdkR<~/)-0OSIΠHLvBVb~xa~mKRH[oM}Bn|E`,Cd51mSFT$>2L i}HmAC*lB)%nqI)Q{4# e=5&@+@C 8ke]#Y.Ȫ"Y?oi?('>bw_uٳE1sZ$z|Ԛmk= mg(ުAYAW3kkVB}뉬Pڷ;^W>=7&B0Mt}S_RKp]V#3~YP4_ fGWW sIk_%Յ(^U@pY='ǟE+67]E}h(jO4+\%VCaxŎKXRnTWnBm@p`&9E= FY@S RD&h<Hb>Y"Ş/cXL/m;}T<$[_Vyfwcֶ,{hI[d.IO]OIP607ïW:OYB tP1=]Oo'ӫt (ϰm w B󿚩!D᪲5"-0˸BVӿ,:\XHmnש۶Gk9Z3t4F0ʏT .aBԇTX'7z jUߣU$ڊ'RZmHq̜GpxxXzύZ{}Y`Jvj c<׿oF룰YR}>YvpHgt|sU ߴwq@=Wo*">D4$WXSys̓cխ0Lo2 :}Q:I#,%_ 8 q+ pA~ڵBK{͍ ⑤R6X2Rt*}{[gABS/n>Z9[3MI9b iجUF'wC7g X]2CV3aA5dڠcdkdqod'IjӇ-Юʂk=hChZ̩"==krf?(8Cl׳0ƣ\^NW$‚T;L$B\d| v)5beGMΨAH0]ٮӫ >vGKio9462*jh;5|eͩ>޶?:91t}|?N%l௤^\pLQ "&cGg9"ڨ">ϪόU:&-26х{'s^rAae\3mK9_)E/K|s\hA+E.B !39tJn9+Ӎ ?ZƶX흎dR(F0o&tBh!5+U~Xn\&* *Y/<|`|WGS nXpj|Vɥ-o6=/ǟ{޶dV;ޞQuTwo]s?L¸=S- y?vIP˷[=KP{}]n&<ۛ~c|A*T]j0eV?v]羷z;+2xڋl>Sf@A^u\t"ݔf-=v}6f>x=XMŏo=' |{Z"w?T3Ǿ7!TK~Fxov8XK|#ߕ 6ՆuӮyPI6ZLc%!NUa/QB Q1SRә7f{!{}D"ύE.ySyZomlƮ5n|Q,woa%KPƔ#LRfnekHwӼc~kQ_\5}$#T\ Ɖ;"Fs=x#+ͱq:f:֪\=_΢HnjJ{-Be'+"W?{ݸ:u'W+5h>}\]~T+MMC:P4ͯЎ2"@/׬EtǮl?A ( oE߾o+n2@PB"6 K\CPˆxªBxDy4GJcVP@D~|ŕ7EC䈄+Rt:<#g}H.};5L'N oS>`qPSGWGOQ \,zz%򒈏yLT&X-tY8,#bdDehnNa1Has.0Ug* _US]S{ 7k)|bXEǛt?I!=G{%9J.@E^ֺKrzlr%8:`)&Pf 6t\*tܕR'BI'ohw`~B"Ir¼BG b8~ޅG|DK C'5g~0Q)}zG$_Nv^-/P0U pЮ7{ۃML{cyg<#R4u!;S֜eĸέLţR_311iM-L> ^mt\8;mj"1Gm5%rҒ`wʲ2S'VBcXPEEV]apQν]|^̎O$ྥn=S<Hb.;|u샞8=9Hgݵct)Pq'Ȗޝ1L,:AܹhioPUӌ G;ͩl̎.7W?'@N4d|S#X;{ ἀI]Ėv37rÀp2\ӵSd$$8s!D<#dHݶ4%+'Z EAȡr:EJL;V )F..4REqN%NTA8e&ޣ0=Vޤ'.&kJ">`b$CeG(|fQ%  /N~٫0V N&q;ᤞyʷWN]>%M̜0$.R FGc?%AngFM`5OD0 4Co8N;R\UG+H2n5}&"y9z3a8@PMdʚ8[*Ph#-Ԧ`0'O_f2{"yt(5B1EA5$ҥ5CS@N}FMjaKY\K16%\nDP|bTH/\._o $ V~B)l'ne@FF._x^tr]OyL1Bۧ*v2'=PЄ8(Ac'<$*bXԳdŗJhJC)OLKPNe=vxhvDBx;`fPW-uO#R]rn˒KsT?iwNaSCo;|;lD$l_E*-b2GqesNY!UT3Z^ vpWҗ]+(]+s 9EW2' :y/ FeW# zK3<+Qs{/i O8fx A&XVg3FP>-_8UXB&>*=mxjmõQoKbRvgJAz6K q ɜ0WV-M8k82׊KzºAA]i?3" ɨ1LS:]xc:~1MO%^L;}rUJ-j[dГ͗C̘Gg:9w_YBa|hs/E㫙;VO!A ^J$ n\ú &g'2 `xG%^2jKbu$QEkk\^fgjrlxp̪Ic-@0Rx-Z$tJU/ !bXŲ :'*%Д:-ϳ":8|JM? gttZ];_u+֗ء'5'.YI&:*IZEd$Sr8Cc(7cyW+]#t.B5ͮ*ǣk̽aknWN͉ !`%E{5 #bl\趖(NJ] 1(E Z3lr$R8>%^u.d2IQ5XՑaW${! O.Aǁ([<ՑJ1Jã~2u"܂]GT,+D\$^ G̩ͪcYM'Mq7H^_X,t:3&N*bht% 6piZu ]e=;DhW(Pjgw2(dۈxߛE'1AJ³Y6EcE[Ϟ.]tEd{ g/b&yP/fjr$Y̭~-2ӹ'Ya21rO{dcHu[f&wqc%݊_D\+Zs(*KUM] a]kX}siٚYk/^`ٔ? (T Rlؙ(G=|-7ݷcĝ$DkPyUN.O~*"-e hn&ވ2|k#MY!,(|ʛc~]Np(K arJ?3g˩&GU?[89^GZ^Whεj/Ê9xu{,l6P nNn躶Fж5R89ֱV ٻv+ 9^iJ ;pKBu~K)WIK`6MG`|>uIO{7 L#" $PL"-ftҦax޵GоDcԚ9#:bڤ%#Ҹ6Jy8WZ (X[ͣhܺ~0d ڙi7 >)]hCAlT==G`LsKӂ73j-a:ʭMniSfmBܸ*kO=*5=b$`=â|>dMԽU-<8B*;Ե!G(<團A B2w*C o?yF*]}:! %孙bvEn Yt0E5R8KXZAnԨH[Rd=b6UKTvaqQ$`ǒȱb̔ҝ5q6AfPSԾ3z:Nrdw Lx ʡ cy=o+ Z0L Ў4gX2z^* 3I N[Q8'TnX_3Ŕ_?ۂģ Qކ' 5)\+eb-h֫_G!)ߖK噓LffH\~m dCCKX|:J/T\Dhcd[ nF2i3qa0x6p)( D9Eey7KHYt1$R;D9Qp +SEPKz"୯ܠx槌[ `sN(pC+M=1OIr6=1 k_%O%Ԟ6O#hsB{4֩.)Ř/^--(찝M1zLqwQZrppBd}|̺)'4C0!S)g$+m'R"#bZS\lyx=oPJ( gWP,I?l4~F|.uA6>荪іDn7 O,,| J1pKc kRԸl˹ˌ_şGlWGlFҍyQ:AͧC)^X3m!,n@sFA. }@|v0s僧AG4DmԲ᳴XAe3>vg@'B#\ƶ=Y.sc6@.sӐciƢw,h,KNVpoQzLsJyU-kYw_WK.rdm>ZNf})zP}53V 2&lʥ 0@h}{, aq(z&fpl'׵6Ƚ}jr6V .`4RV+e[ Fmu" iΑ[NDGzOP@#fCH#f: Rd +߆T6l3]~"r }Ufq)6n* %Wq6),wt<GIՀ&phQ4h3{B1B~dh!!$n KħP|X` }wLI4۹A: /!1'lURn*yC*we&0/g]hrN!Bz~uLnJRN I,/@AXrǶ#F$4[e) /}GHR !!gDzuֿ[ Q_6r9Ly|ZQPIoNTMT)kݿߥEm :$הICk50ʓ-5@QWRHzmy\]uAUIf{Of!ØKʀEUW gm(Rզ.t-^Fv>A/]F/v BەhypcU <|f\J~R=ϊ{WXꮋ^)vDrB7s}_p r }lFȢj07\]w{e*[ e/TFG.F 4"t> 0'wMމ|rAҖS> cF1yb6qWbXS{i\}8\>+;a~WDE,=WR*3vm`hmu&Һ:o+Bպܑgn[I"9W$ӌ7T& `S14Ni^ĪZ\J L8{%,Ca;9\a,QEŬC(`;Flpky𺛭 5_:e;[uv(Mh|cYeiJ8x+={3G[!]9R/}~!{ϴҊqrgX"DD9mO9ٻ&w9}aIRa"Z_TMﶌj)+oFMAs-GD}]p%/V.p ׿9lُi>zҰѵL"ZS5 fzfK8tޘ\}KŽK0x*;VW&m66%Cy1&>.-)ebe 1o, )A|X-FXn~{0D>[I-A>*f(7%t6,yŘdNL+nװr^}A$v-1nϣ(]PZS7dl梅 *E2LΒo+Bt~ |U-3[<[0E\:ŒWI;>sy6!09Msv@I.v\oI| s*;"D!3'rlWӝ4+d2~ ՌDD136Ʊ HMz0ʙ\5VXͳ/29;Xd[XcǑ7< PD'!G#KrDbpe=j1gآk" _?/$1MXq6Ox血] vHR >NؙF=ɓMy{Na81"論UNCy /] ձ+;H=^QemZ-o bTىEGtdeAylMś{ZǢ2]7: wMWEP;y@7:p㹋,iՙjOfVYɲXam1C7$L̪AP~곀 vŲPpf@!nj&주ݴ(K@t>s14iV,| |_-38[@(\Z'6.+U* ${8lCeD'C+&XG9zA |{)ULd !d,Xn9ueO^]n}8o2+ Oon}\뉿<xh̀Zf':%)a&m>Dlv|qRTC܀dWVok yCyG7Eu|j0sƂ )g<tE!\~qqmSs3dюȂro_82_`)C9&UK=`]T\J:k >QW2읞͇H+D"=5%>z}+(O. Q#%0ʉgB1܌T_j|cݟ:_`6c~blzرaltL81H=l3~YY+h]Ա z?UY%{<8dT|[F/D4wadptzK7^mspފ& 2r3զI|}:x$p(OKv'N{щΡ_ԴSUKOhE!CYlh@o_ݹtѹl=Ir*3m~V+mV l gWm;5'H3iU;WsvKk<' gro.TJ@rJ,$,w& o88᮱~\'w[ypIQj4̊8JpKLJ`ɷ?>k  ZYkxLFNg`O%f431h΄S1*uy .E'q#!%Mq/_\ONH@Ai֠y@шH"b#u.ĺ0TV 'r~gPr0ΊMS -;eh_ *%k)fY+wAE|nG6ծ|{L覕um8gC4?EjęչT>{ LRUgvd@0j;zM-K]K\28++ޠ =TB%5 2I^TBAUo*-( qŅ']C7Za)5žLc;ZPpE ܘh4݃S{üui-Bqos:zm뛤#'Ҹa815nE5Junp j\2uAN${&O,l1#UoW?rQn`%w-ysY- T'OѸf{>Ug#u{=N=a}p}f#þryŜL>*xH3 {B?!ynEluxBMޔ]+ Jh` f֮1чx(myȢlsvo,V{6Ĥ0h4nfG͉y)A X4BQ4ֲ!%H\O@ȁ=6bQԇ3kyqK{0Ls=ϛ0v,a=9}j$snjkvCLsX~-Fmy}VEz@ ܎qN24[@'B~r#L%8 m ?YA|L>yͣ=h15E^'m7[ܮ}~-@jý!_ XrC21ԐH$\RZeZS:6UU6ę1Z +,52ekAB:=()w {Ѽ TpRjF\7 \@pۈlt0w upaXLTI@o^v_mRZ)édЖUI%ԀMgo@O&|}jlH7mIIGr8:픫m(S$avAW.LmҼ2+b ?΅ܢkR +׃gc,ޖ()pPѰ~H2#Tq=Ǝ-U%>ņh?~NL@Ef {ԂP}@ L>{=:榚RLb+ML,J4Sxޒew[P@QnB6{S)1ՏA| \N훺: @;ۗ=Bwt% VtwNO\B 8rYP]CU2TgAAE_zFU UJahdc7q{2^TEҌp 1 itS)?J:]dRޓ'Fܒj5O@9Dߒ]h+j jeH|X,n5(ޭ0½R=tBWbœIU@i-i 0j@11䙄 fIXΔlh/Ft*llHYK>ü\Y_ڗ H0Đ6 mUM#΂cYFNp1dy $Z Q% N|b8hu3ē_ YrW-#6DY~.#(D{q)vau.ΰ+96^b׹G{K&$`WjV KX\qPۨ,p޺ֻ!Zѓ_olcoiwBbkY(L=D":W[7=>B7!I>qV4yZ)la'u]b N>516e0G/]dE)7s|Tl̺m1Zknz5 7% $ܧA)3JՒI6$\~I2%wFbHe ^ᄐ>;(p"R:{u'b8]!u= tZأ!$b$l_ڗ~Յ1S ɦ-n=IrK# L%JrN<reR2P?7, A8+>Zl y>/o@ !q<㆗ZM A% )o}j EAڑ 8PA[K9Y7}+WjNPWl'wt9>0.~:ї@rdyEe\/&Hg=Z yoދx+xO{6ɜKF9 6hf, YJVMN5v`:,Eqt-%^ GB])pZ2H% `\g)NKD›XP K:,iU7$w%TVci 7>˾/hdha3uA[սȁ|7刻۷nSG7Pb{,V,;* zO_ Lnji<#\ t w"(nu%4ZHsBՔ&n س+lFVQFæ$>RlӢn3axPAaI`C6:Ϟ| ^L^G>G+T]'?iVu&hJ/i8~ĵ>]<ǻ' Zb$ZJ"Zu#anʴ#rY+Y%7US.{wRB(+M?'Pۃ:niQU!@xHC7n+D@p>aK6fM}58k 2ݪ N39|[].#aPP5{@%* 9ˬw+;3w9 W7=aH}oOU0if`%;&qdH#nژ\X:n_k)嚠lgvJͿKWP.5D/j.75cm#+"~ؐh Ga,5 9al@N$/E'"$ v%|`1Y"00v0X,xi>ns3_)waOO :"-Ţ6,:à@l.W"-KȞXi*{a[Jt?D0y:GBLPcMba,iH[SpB[w2+5*ȿ֡ ?={sh\J΢5iBŌKGCwۨ=İEBm B sRzm9ryc%؍;C(pjS3㭶Oh&qc׌[Wb65䱠7BbDWM jS=&Ir _k7P6vJ`G`wSVFS+VV@ Z,#살CN@~iOK\|$>cƄ7jz%)ųqWn^ծ(ZMoھ /DDE$ղ a,|,A;89"`&ww>\rH:h'9a1/6 OG(g!Knh-νNAOc^. -7lg]LǛXˬnjBrXl mR C+RBq,c&8+Ŋ3X-, *_H;Z3gf}< ȻKJ P)b0Mhj%__RڼնVOA/ n@ ´e)ADH wX 7=W?f'{!5rcXym>``>mDGD ,Y @,)!} kp4W- y>2D+2bʍx L-n_V&m yDžװި]q5sd{rCIz@X_s3VWڌ+,(Hht=OT}^adY1FdD]+ ~at}BoQ\h҄ݾzĎΏ}D p?,eB7(m tILr#0Խ=h.+j_Л^X1m GH Ӽ`fcqZ U7YB??|E=Ub[ łFw˸h]е2CX ڧCjA4.g"sdWĥmaTEig?&Y?š@t C"76O!YbQ`Pe>Ɖ|ERNFP?=?(ٕd} lc_8&'燇\͜7nH Z63q<]ȽC ;T]hX^m8P|7AHiKm}_kWʥPZ2CZp|axg{&ffhp;U8xST&T* 2]7ژ(͓b.oLE(K}jQy`*O0``(NvJy(VA )$i娓b<Ң~hʝ$hoKX%oKk :$l. NyɡN4M3'Nd}v5'Gؚ^ô87M}Ь{ڰt?ۍՌ^[ \IeŹ(POGPă5c0RBR2AÕFaGpワ"<*=0mBl=H"/:GxITkI$RrI 2\6nf/ۉXybm'RQD?}l̡cMVgn~g[$h,oSa_P\a,l٦:: ZQkTgx{8F"['n ` <{OE7pT D~%^/-$ع0l >).Nn+RgMf5>7™Zj>уF;q2.-+ H$ Be tB t:Pp(`@uPF|n5xx|O{(c*! H69fSLXSj@Ef]Z Cwwp uH QA,E-ͼ7Es(Sn{vܺ+O Wqm\]Њ_ӳGR@>'w>7?J9v$ >8 'tt? ]V;,~T2䠙v&&Qc*7P &@c~lQ06p뀌 tT NeM%J) A@b鵑QٝhҁBteslHK~^mEG5G:/Az.kxpˋ3K\8O_ԷY'eze]]:UuӣOO6gpbqblc=5+w"q 6朇{wgIÀwf|N{@H;s>7!kle[,zAoNs??%H`Wn'gdn!qĈ$L̉&ƫГ9|O}f7R>ݧ1uGˋ&JtE5&nKbJᤰD#HEA}6 2&K-ɭ 2"2b͗<)=6z@AY`JPT BKI(eͼv)Ν9&_yjH'$׎k:D^&U'TR&0(2=rqٮrM;.ґ1 "%Cݴ&v4$ol9=䀗C@  "AJK , `Dl& >GWC{:oVkrP4˱zH:2[..>=$,˹՟>Xa<&'j6,C,!*۰Mې]eG(-dU$BBqœɲc=kx ZC}Ϭ;8}FS4v>N^!9)F|Ȕ9Q/^iYtD 8wc^'<&ClAZ\EϾ așC)9MIr jRARY O\k?Qh"J㴨^M"̸e0S(~'<8*9h;RD LRH3E eN ~/a4z_AGso' e >V l:?R C%rT-Þ)(BfɆ 6Ft  Ъ貧BCY&Iq[g4ֳc]3T0Nm;EVa&CI b#^p̴5FҗoiӆJ!TpNN / d4nIfEjX;p[Okq&M72O;eV }/'/Km$?VsYuxƃJ{V`"¿[ zsibnu^hƿbv_QOk|/9cb7eUh:4ЈɎZ3P͸hb<1 ԢA*k);чi6!t.fcbm{&9 BLPCN^BkN!Lv0oV^n J_tG 1}4 6>7hfa &H"A::6^znXR / 'y"k]+N48=z7PNW.HG±J! c$96 7]ok-­ 6=)=jv_W0d;ê}˸*[8KZ6MO`klJD§go^{K*5\!^J[27 eMM"L'B%4S&X V0GŒ>nX4 ;L#X< 5Hn_Q3Z~ЙڨAMYDY^kM`]w e/,ˈF~}H}e9ϋ]}\nPP l@J^Ap!q.`>^.ۙCpxZSRК֑3A?J^TgXMXG$1I1#"vDl/%GAޔe=- ~פD;Q$,N8޺)1PP;F7X} Kv7 ݝcJh8#KO;B`)^HD]' VD5Je/bwnZ D}('`B^Zm@?5#j*%K( vn@42&:w\zR8ȯ$FݓYݳ@`l)ENCF4_!O fC\לP339X'GQy̷MC ^Qܵ3-6 F2[6۱V:W Lb`k᫡A|yƆ4f+biI xeLm^RX 8w{/NZrHQ.6B7j#vv6\WV>pr$`Rzn/}K_tbUIO1oɇi( !砱4' VT-w4 WdpPl@P l)- 3y~) MbSʡ No}EVp (7rU0F;!=\h}$]tݢ4c5cI \+J& e'I f|,lp(`g/%e}SvX ,t2]$6הP<)rlhfD O3pzKx)hp)@B`4_[@4Q#H!>DMBBk? te3E?u#ϭH&%u{aI14x$g O`4dpLIvO*JK_Cr#e'j:o->jjph )9in0P?6.}[ . ]U=b2l[iDvlm̌`#Im{o'VD:bB.xr݇G-1NH^#'@L$>P:pBggWkT߀C'U_-I or=`1p 89,D¡6_By 6wi-|K,c#qS)wO~ٱo첛46?{\0c{H[:{el42jb:`la0d(f8дKQ<)/ qa0e7e:/9yh"w}T/P.} 0;/"${07Q8 Yƶ7ɧl薺~M|%${{\눍 lJY1F5iDdvX ^V ?m;l(=?GĢHr(e|H7)xd>c!%zvw)_ylge=)d]FSv./%L'qN]!: fE1gē ٕxa!y-ZTCUA6?\ ;jl60CQAFE 91~>*K}%ORŴyBLkk]1o'C`0Ot-&[][|Xx!?&=0,8R , U?UD@MֲDlJEH`83=0+r8qɉXD})h41oZ9fÅ gHٰeMy")@d_0$jeo(I[z ^fLS.h޵ YG NO+|ZmҔdPטKcb,tW GRi{|Q:JzLNmJꖜ: kb5rOhR$w'pWBX+pG!Ţ#yZv г=!@NkDLʍ,1ʮpw^(p);՚nS%Tmt&s\6ιk [49V,*Ib5" _˃U 2`EXXӘKu -L[%lp(5̩f H$ 4(P5 ٕ8PF/fBHKw 0x0Q&ʶS+,+Pq2ͳ:A*B=y)ƒ0om_UC/ + Ѥ:xgd$7AKAN||0ͷh-Xj _E&]ѓV\-H$CHVst.}rn!c O'¼P4MK'Yeܼl^6k4YtLjiaf3~3qL5g7&q] Ztx}Y<EA NsC?g%1SFI{?I<f'JIFl^E@aY$4l^[8hgAy 딝{8(Ar 0(0_ya[Fނh q ,HN*%P8%&ʩWp;B#p&'q*Яv[`,C ɦ`>N/ۅ%%;y#gL%5T ȿ !WC$\sY<*!}CFZ@Ϗq:/I@6WZ#khJ0c;] 98$Z攇~93oi g@Ţ2!q) ~#aI|Yto95۫q,P,ЂΑrF׌."ʴe+`]4(b5縨;,LSGP7}ÁSS _!^UQOfb> (XC5{oiFq~g"1DH:5OH,bPmWbı1dIB?4Dl@2fΞ\/cgG9Fc]KEPR.DZh '·#R=y ~*cw\y -rڪTU=9}~("k0 9f85R2aH.g3Ӗ}Fd$r+Y'p,nA1ɥ|dAVE|0TZV7*v2 |M lxt+̛-iqcc;:#̮1&#U/Hz8A{.9^Iwc&'P}JK xɄ,΃ڲ;@/6р*삐Q5yܬX}+س]Mgj,D1;J~_`Qڇ儑y5T?`ApEm<ٚ&E<= xrs, eJ@a0ԩAoP1 5Gafx@+[0+nbo(o ]_[Af'~ஞq˅DlBʙ}-A9"%NhƖz˻0?;h^Hq6nc:܂h@;t۞5:C%>,+d]<:}ڒ<@E3HxΏ_Zt5[ȮA3iqQj1chg,}Mp;<@asK@ <:L8Jk·3s3$g==$aL&[ wguAB6xQTH(M¶2d\ Khjfr'7}sWz2a@O+,Aȫ02'c1X %75(8mQ|)lIxaV$JR.`4Xgx*hPP'9|SSJ3LY\}a +x_Q:~+c8 t{SZG.^|I)$WC5zfHD>3yvr./\w;:ۊKϠ'%{J>@_@0`A>MT,YApO* rNɬuKۃV +d cGӓ>\C,^B;~e$c@;PH:]k1sAė$W҃Uq̬$Fx r+vw JbJ I8ILY] $.$NFCU53ܳ`Xc za? ;_$l,XUEv1Qv=-#Bp@p`ø U`sy 7Hs#(Y xglHZ(9+TP$^)h_°E!i3}uIɝ0tT/h:`A!~߸|1d hW0rfqA'e*yvBih%ɘuhB]Oώ^F`e3V tcu#,YtLkJI@ v%Pu9N016@! бt cB#X (Ǥ o647)YOԡR40$7 !:#1 w~X v&1Ure GH4)} /A3@2hRQD\wO ;`Rj8q+ wfZ'Rk-uvk)lIȝ?|@~> ^NH'J ! :`k8@$`{1-W:#ѥMn%<}Cį P0^q3+^= ?($*0?edSíC,dIm겶C'1OM"s*31 e"2 7Zc~5 =\IamU zZvRwD{qV#3 N>EYBڹ$VE嚆} '@g)j`#Ofi|xcIiI@asq2668Ǿ#NhA$ k+& ҵ߉1t傉#޹F*@?P/@ =Щ `= @)TˑN'&F[83:!=~OY\XNhBB\c(š @41CB:AMv"qpu@Vܠ&~R#Rލ u"QIQ5@xRRK/@0УGM6Fy m_t'_~Aq, ͭ|pi X)V'9Gm <|x*-4%Զzk~4Evyn t%::u'кO'~p$]HFv{ȍuI(T\G:h/\Z yM\A}&6RT+JE,KJQS"hͻH>W[!6a^1BӋv'PJJx+ GHR\y5#):wxBE q-@uőQCP>2ꋟ$ǏMՋ&U/< qe7chw "餐(Bm.رVqi++9'6Y9麫4L 5n2'3tnh+}ѤEgJ&7EFjWjtX倐UިsmxEuw>,(|23* L/ `~.y0ӼBE<>GR(&DH]B<&%#lK<k1-<|["tv2HKXMq}Pqغe2cn|9? B3^>F;Nv=v61ťq$"-`5<6`_4`d%uXqek!] $]󋔪Q&5݁e#FC_V?coa dNcy*7X@ D}g#~H92&%lDGt+d5 #]C/PG@Qtɠ蔘"I+[_(L#7:/?>xg`u )B{!X=(nΆ Bo\46>1uɤ1RY%Pc΅Ē6]͇+ hLJ2(/d.sO!g怒)*H"(*)Ex[ ]z/)J*oioyX,)&ʫTh96ʠ18X^Z+lhVĉǬ0`7VGQe, 'G`?jDk 4тHJGM!q!vXAUGGTh9#"UPeO <ǝ(2$2$O = ԆX p)ONb6{ l|(oZʑ!jɾ?- 䲱#}Bq6t bS:)RblD&EiRSCZVc)3AW'f20/05X5?0;;:wޅ9 &i>BRM}6;}zsϐS}Cl˔4VW ieqf*W: 7Z~Le+mq]RD)7E}L 1XTsH!bPą|#k?N΁d  Z䴞mzAH 1ýgnl v)bw5nQc/Aʺ+wNX@ưEw0`J^mM189jkÑkqOIG FDNƬϨijG!`fwmsU0 J+:*A5 6 g2 T'Ğ .%Ѻ86"s3^Z$V|dUY!ܾus acӂh*H !aC_ C},J'{_% XZC-`ӊ [ B@>~k#?{?,9Nl|KA7dX7Jfyt?EXX:?("{"F/V 47%=[P&t^]8õ:߷Mާ)8wgi]P޹9T=/B)Q :tiy]; ,S\茂VZփBOҨ\q Ea !Ls:/Z^d8#qfvg(' _~;&5p@Y/i90QՌ\B+@DL`cR3HaIXdxε腎><@#~8J0c'`od`wȕӣ8a;\Š%.B ElhY3UDܸ<i, 8${Jc!`q̕Rt qX=|ܷJ5j4'>h)L^}u8>c,ZGN)n 0C$) (rz4 ?C'V\64mh]@Gy5`FX$- Bsb2.1tɫYr}/ۆLF'D:!3*) +hLXTiRqΔ;CD$7*AOv45M)B:Վ:pHk00$uNfD, m!1juA%S4(%TOK<P#5 8A)ؤ1z9=ᑈ>~ohW1>>,bRM9w"Q'%p%|:'N)c& mp̅`F [෱'vx\vgt"J̈q-g K5>{ԛbE(Q'v\սȭGͽNTrЂU +ZB<"̡Qq ld*Zp,xBL|A h˛G'!HE+HS> Pvd} GB4ra'}~ ͡#Cp 4]+gp?7.z'b7_ 9jp,o?ѓXtpS 00Xl' ye0=D 3PWnܡOztcvuUIt)%垮4JL9MVyM OۃD=c[-ѵ9_p6I[%jJpI'@&x qf #j[N+B_\'9nr-2NQ,=?eWkk@ ) *d&<䐲i +~ׇU 4oϣ N%U#P%N ji!akmEf }L V1߶W0̬h&k0u(`TȅSEb{9Ƶma]`Wig#}(T< ]a#Xm$n"Wv#sRiУg5Sⱼ@ O)\ 9e 93QKgZ- ƭh*o/DYmE7@o|lmDk Ô~6E]HkujkT;@ycbM}0Um>H>"N\OD˰HA ʑ~S[:'}W!B5=%ڕ|ˁ$1q.//&1l*xG59i[>5c.+HR08+qMW:F~8z |vY42ťs+u콁z*EE փH]^ Yn TJ0P4p^hӔP -n B:針1BmO5)JtnYϷ)#`gqa~o>`a`o=X>!R˓GĶ?a,[mFKOJ42ޑe/{/`߂@PoD:p=( E N9Rz/Ь6qI,Ȏ(ފИӗg{0 EIêNJLjs҈n&:%d"(}$Ϛ nk^AO{Y/>ŰtMr^UCC0pXek'8E8+B6@TzmӑM0 ©>▲(8eMVjẟvQdF3˞C5VK%z`ܣ< VU1F [4E2>v%W*yr yiqsb,H!ёHfH VB˘gqQ\ ?RcWbv!" Fza6OŲ3&iwڻqzV @T TdA=1 hsmό ObA:q$\Ң%S*TR[ѭ5䐢ɔ`aOBh*J1h*&| $Aع h A$IXA{-9U0۲m3C(Ly1耟ˆ;%%1gG/PȢ)A U19kGX*"+{$UpOw>,[6Xr1ڗCk$&{c#  ^Ҕ0uqR ?b2J$fWT.OKA%?H,-ƒ߰ 3^Q?< Qa8?} +A*I=6T9>{a~I16!sq pd-ci`ќ%ky+ HKX֯(܄p5l,sI9У3s̱l6PXtz ^j4"UX`q$**bζ c&-eORItS݆ڃrNmg(~ ONh)o1/1"!X/]Ů7nq,!Km8&s0 Ojˇ1jL B"pZV;&~ 01Ck8c.B DŽГ bzaY=z=48~ .~Lj7\fέب3 L 4DP"ayYϝ_.ɩƽ?G;E;,@cϷ+z!y%FbMY<>7mWP+`pDJss%V j؇QQ Ӣa9jR3f)xДV6"ִe (ػԯ! 4\p["Y9咆{S<T{6hL5p lQ) @-ni$0FlCaS:(g:Ɩ"`+ DTɔžŹ!f %h%"/D#u=]ZV؁l\{FzlкB'97i.ݱitRHnܔ0* mEdT_lj&x. wm Vog}pl0&(QLH3,kp6ut77 $>8om#v @Mev԰@ v:~m%~c4чpX I],gUb,#+_:D_T: h6'`;}|+^6_v:{({g>h]CWp.26R_VSvwOW4{9GaTbѽƟTj;pqU*츶]ՇKnU۶ej4FUkO|mF!^Cua#/tYA38`YVH:;@Οv@ꖼk ˛d]0S\1փR`s D.rؚ^JeD\r !I# %tsk[Sw36&3l?`k}@ԢIUA"Ifj\ߗ qn Xc3SnBJ6Ky4cX2$p4R)o& mDe3ݱ 77ݖ`MJ~@01Ӑ`v$Jo<;~˻/}Bb0`qw._>f05'~y'i/~[O cٔRbG;*E=؁`%׼F$wLTCxrVA 9,\Lp' muKM#зomdݡ!.W+:퉈{&ȁ*فJA ?AԈ:r} 獵ȯxxR }Dq31HjF޼XlǾ3xhz1}. "4 ]Ly eb}eLR45xHTRL$GjG[YB&9ņ %Kp&{[%C8# 60\leۥ6TX5T l[PsÄ9 ^;+/3_# )G_Q-cI3x$k(eD5̵s);-oN[EzGb !i>Nj:6>rPG-A/ɑ:1ix`8wTu&i*_ pj'G7 =ؕ,3Sfj+>#eT~ o‡S,o \S UTDB,c"մ SmI"k| !W>F[j[u_n~峿d]i(hy]( o?BG5~ŔIen%aAx1"G"(W56sњ g=/zQqGQJ49}8Iо ȹ[].%u݅,3KD)N0TIk{H_ye"ȝ$]ߜQ3^Nu.>[_7fZ_L!|(DEN#osnMώ#^^7ipro3CiAW>#yx۵@FsQ*V˔︑eWRRFdkST9A/ld5Ծ):çQ[DT-xGej>31ʌ˵=M[]&Xɗ*H.ƯF3h@.QȥfRe2F^Yss`s ǎ4nBzcR?xw7 >PLVN_ExTW}U tUgzπU4j`KT ~Ouh%-YP!V0U~l%VsքD\O,'"Z<^5G8pg$3r03wu.l-p=VZjl:y~9]f7S9nf -pĨ}1N8d;g|U$d=\*oI4*wQzG۵ *j\VgcPm=1_i"{LYe^SųzXoX$Tb_do?_XGQs=1ndTrdx83jFBfBT|8ҩcQS),RdJ-([(~7dvs02OGHFBH[WT"i*8|,/gM߳QVqĭz_S\DeQL_l%g0B5 f("q~竲6vqN{AUb|;R3 1d5TRswj-KpPC*OL9Hh]4LZ&gQ͆2!.;;?Z*?^̳)WJqAxdhŌר4 +kA VR U _i{)oVշzԫ7ږ/Wڊ \bz$Nza$.)Km22\PO4%D02JpHg{9cU\=}wSU _US n`D6iJa*"+QeJyy"U*R:51ۄ}WU爲od2|F9xdO}KO@G(ZY(e/DQg Qv$UO;͋ӿlͯ^t)̈P2ER#=9ifZ|Vٟ֏krć#S{G u8#+^K9oOfM*/5Dљ.HyI[i/H,"(q%3@#ζ4oMĴR[Ҡ=s|SL5}eL 69k3A+/ \SLg QfjwkD57Ksh?_) ג¹AUf^|jzUK-r~v}e=ՉjQ=g)1UQeY1mP335?s-A+VfBD! / z)~O(%sT#a|uWb"=B ٮhȟ4eףeRf\LN dGe*'rTT޾R &J҂̴d?-M֕h=dL3<ԙB1$&r1RE q7U>~ZK/ aG}3cDkHҍzY]> K%Xa-6.:B.߮/l*Q=l#ũ<6e aT}G` 6Mŧ?2bE(3FHUyU =ɧZoyzago4N!-|dkmϬW5YTWhUZ xn 9||z fzŮ\EEd3uTo.vsL;l$}kqJ0`g8E9U.xdQwgV%qґ,"#S`+RKQT?6dHo'~0'@~dc*.?Y1,=* G0_vBf#$s02TX",=xV$|uԜh_$~kfP)V3dMWɬ=G|HK&Ydϴ#1U0E/"BUexLR0Q~_W=SeMd1? w<YzegFҋY+YyXZN%s@.?Wll'pFO/X8>F9,k૆jn 6f rJ` d-Uưe3EO# ?^@0Kdh5@D0+ Fвn&ھQ*+W< H=U/~9z6rv[Țڑ*dU[?kkZZ(*f7E՟DѫUȔ,rW9QJE?2@E/^)!d|a˚fUD]jvj?/_4ɴḑ5顟./Fuu.J,AyWǰl ؘ1N߶xYN~GN%q*gF{7#ǠNs_U?Ga.F%Hsekʙ*+ojoFs^Rc$# VL'_{elew@EqZ*/#RYzQB"u=宸ZTW7mCBr'_]DGM0=p22(rM]<0=tAѠr#rq3/}Է^f$tʊ+hK3FTstʮTy+af-PIA+l@lY{LjoT%2]A= U]Պ+kI@Pm/F7i C+a&FE`+87HA >+jDV~emon: +!pec gL0Tx2RD2&בcuʐ3^h"SY|M+8Go+2V&T3k~_ܰ/UxoD'd2G~2Xb]0e1WJE|h@^|jڨB{AaLL1׫icZ !t*(R&HGE =D"#2{Wytx7&{;'W6gQ\pFlxU`.|zU| xdH<|K+ Q甔~HS3AtmS%˄#j z깱BluцVuu!3U!jaJ8WL gV"\Eh; [dG&LGƲ1WVAU/y`2i6FO)*kwD򷭔M3[n\3E<{w~IlRp8O1۵ehWԖWK$+ok㜻wﺱ Gj+~' xXJ>3tX\U|j^}N6B, wBum : 5V_˺U+#S9N=rk-AfoQ_hH#ɚl. &(_~38*oۿgR<ՅD@>S΁*IUx:hFpM \fo㸲 !5`HQXHǬf%Ye{a2zEs̬G4݄:>=Fddfd [4̛к}f-;5ԑJNBq;f 7b b dΈ9b5p"Q?/ JPZ$&]H-@0bMQN"Ubw>'')}&$4#VCF>UMaXbR9՝;z2CKa4ldZlʡ* 3UUݙFx<z!ӧ*OqFzh(*xG,,S:150JeT>Te62R DaTz-i=XA5Bl"͛*TB)VsDkĚn3pg!=O ,hoコ G%eLP` }\絔V*}P+,/ /7pb7>*e..ޓ%vyt@?JlQH6e4 [[6"+pQNפmTUm@AOiK~qVKhNg0s0T¢Sjq@%(p$u"Cf\_fH5&( ҧGG8 (fy,URKZ(#ZlU>ubMmեVM2y]bFr)2X`y,{D 35Jx0eDeyKǑeӄ"6.8!t3ilj%=(^A*Uw.{jj3h\fbla0:posh%Rc)*D8BaUVh c|Y:UI0J+J2hƒbTALýcډQܭ@jЙr&h:{Z<g@ӎiFYLQ ejJ}F2*-ڬZ2 f=v;zj]QFդEXUuv XһQ`r@O=ތT}9 DC>j"rrU \{_U 3i\nC3o@3ۖC&+&*5`XwwWgDAY$2SR k\f0dj$@-㏄dY%yԡ#ժ|r8`%!ϖ\MJI3@ ƃaՃl1̖_lqٜyt9)Sa.YrSF#X:Qh^YZ-q+f"NXA'H%ʍvBҲ">Q!9#]֧`:IL2"TX4F/Pp`,ן H ېTp<%Vi\:GaXd(c9 KrM1Zz1b H)[iUC7Vz|Ahشj P֜P Mg([ J_b@ݮBҥhEڬA "GU[1[EI\e,D> 341P񘇚5$N6Do?s?h?j񓾿#SBdć~;2b4R@70+g t/bGT5~@ ,_KTd[Zr&1z3 %jPBMX(EQ*4Q IŭgI RS(*a:'CFML"GQ 9m٭*dV_Ă{D!Pb.7'2Yf0Eܪ-u~ShasphN.bmVHl #:N}QSYԖPLVo/ѝSon$H 7{FN2%,T1U6^Fh\8F;_YsJ:/ය'(>63E((@iѰWb]0%$Du;(Z)x4W2Q(}{Zwme4jbz4#/c=JU0oj);ix!һRKNIcF^OI9~Hj 2ը[aS܉W Yt:jpRڳ2q`f g>q AS raVh T(#=ZGmjՐ ʜkrCMZRE"GNZz܏VTK8NEosXt֌$w o95c7+s ٌ?y@u"T=Զ%|yw+x2e18F5FL[lK.emh Vqq+3l7n ->-;j>mGc*d `9$b": t:Q`  7~?gP(>+H IYQ뤗Pm22ATX.S"RmV7W9+PR0+0mHRއ!]V@N#FxHVŌ,8hF >2΁TN燺л(RbN\֗Ȃ ab8w#Rg +Afq+zY>Jقh2̙fMюc= lT#Sht zW)l EʷO^$A2Z"h(iP_pLt+f ?%aMel` Ef!xH<1wkSi,:fՏp:6)$ZJu3 LKUl-b"XJAqjtn =]q8;McU(wل 2G` TY0O{hU0A*IH=^OLC`txӻ/Sی wHD23ZFƭ^bΔ(WVWV1ch/TɓICWCHld <C&\̳ Oa0(Mp{X\>Ut۱r͂NȮbMѣfX0 ZLa'7wb%OU<*J"Sk]ERRWT{ $1Ɛ`G !;`/|;THטVEKpF9W-7[( S E}rp˰<AT&mT99c E,@:\;^!@%1*Irk+ e<:&jڳ}urq䍘P7 7z+iYzW2*!=408+ ?|> HP]hMʞz 1JOI=Cg(hp= p,R5w6.}2#h -qLf$ޫ)= ,~6^Br!,.1{W9 zEzh؋,>45I8DIJp+\0l ^URYcei@YA3'5?sJDP_x+ힴʸ2!iY~1f6+ |Skk&5¦fRL h>'Xųm3c*jO6M|J5if =UΚ:*-Ozܩ,,i%V[b[IAYƉe|iv(X{9ZU5iј/OLtdP ѓ61u\Sazp 8Yr]2 ;tl+"C[a.i}V$R )+١/C-;IKK˦=)L ;R:'(j6Ѻ[bء ~QrWP5gWxE,B6]#݄Tchơ,sqf{X'E&:8u2)LɁGJ{sE2ak1j]!mTӜ%kfw6Τ.iGƄ]̪SrExMY—QQv\(&mF+T h2X:*-ɋpm{8>kH`F4^Yڒe8aaLj:ҩl+viR# viXӵ}΂ufY48S2Dx->T~aEz륦L$qo@M=.qF&5kJʾAk'Йǥ {o D}p[>lӸ֪QCQL5lErxc5i3߃*bY(Ά'S(/]i%yQaEdsv5G0 ϟeIVP)~)x_Lm&k|ۃՊ!Q:sH.G`ַFdnP4K13(l=ČEXޡi5ZXjLbePI7LT Ahy9aT4iQ U7U٬#&+ijp2R{ ,0:k0S$Vۂ]s1kJ3 s ]&.d@ ]HDk4ÙUX\"zZ cF#u֍2;T;ISr .a>{M52ȶXHƦkPfzJ"><;^#Z^ &!X%z41/Nמ-hR$F|WuL6cU.:Ċ጖LZ'Ҍ9('j "mK6*$&ll)k$=q d!N}D %ۼ= 5 Q$ j$y`a9х\"ShIdp|BJ(Hj0zR {wlt1Ü}GU]0w Ւq%ݎ 8)p!+Lc<4ڻ p @X~]CQ37IƙG`-=J]FSz?;wDOm"VrU2+@VU[ O%q(4Ćw(B-H } -UeHoj& ƾ[)4:,prlK+ᶦoVKO )o87TKCI.YjS-yn %.f+|XKSy*n8>I)pa#,C w_ 3Ty4T$'ѧh9LivAKiMлo8jKset=LyѨPTgMj[\Tݬ-~@H?)&h')ne6[b6l(nQt JRSH/ kq26MX58Ɇ";vG~⦫w=A}{C{2DK-U]rAzW'M [TeǬ6m ikIaW[ۑEm>ZfT%@C0B V ߗyD[rDaZLQnccJLJԚ\^HDaS62I:kT@DbL.IAPĆК6k' ܌(7j al;FrGYoPR"fD;`l+0;ܔa/aKetѬvdmi"tb՚H4HL˩pc*A] kujM M]b\i&Jӯ1jΈʮ#ӫř\onPb)D?;нE-! :adVk5+F+Үz~4CPwt!I&4N"rj'E`7rdŽҫ֭ S0T==.+"I(RٜQפW wM-pp86tX fxZcA6tJ>d!-e,Jp4gG[[qZqV 'D϶] P)66{95}XY)T@F4U%^h;H!TV Gh"[CmFzǪ{jT?dQWjf,: 3|р5szro@\ө<6C $Bו=L"Y :U5Yg *_C,IgJj+pgHAI1>DA!atr7x?(Ǡw4)4A!+\!{WC01AֆS4h\ VӢ/&V˄P.z5<= {j٤cm xBӬM2Cѻfr(ʰ-$Kɫ~Y1"[堧apȸ/W|4#y&FgL#W!N%|bhJRAҰmKɘ-d1b5lHJWZM-%#%FAЩd~:Ǔ8VhYKZ-9mvnT c>9$}pKȐv4\({LLMiNN浲đ@$iou`%V@vAfai)6iŌxt ,ozV="ظ8dM265M;@Qh9{ߕRbM]կQl#(q"ǥIWvr`*zTSh@"R"nQ = GaI$!]IeK$p ơš07](SML;FX&fe4FD+Uv U K變I'n܉T? N1no{Xzc ްVnT#%qaI&5>ȸ-_jVXL?}-A) 1TFP"2#'inDOȗ5"'v +(8v dՙ:V(6P "U1rqiSe[Tu RKnP@ ѹuymJXr ֆzyX &x6 |ϋǰwY" g'ifeK}^ٲ/736HYWXhv$#=95R*ЫPO*Lb,;' qx5$KъdhEPm~J8$:^sjTb$qz&6wq31f0մ(LJ O^Ys\MdccjHH|/jT9OCZ=e8QljN, rB]y7X[[+BjL"[[j80zFNlw#^BTD:k%ݠkQ`'ŭ6A6<:fqU5 fh7_+(SW+pÕ|VAPl#9BaM0Q¯ Cu8zë!dŎ3AO{CԖqD=1Re_$Gw:&a-g@yA ;P/̀h~bX&Qv%!qZ4Kĸ vjҵ3XHVʇ‶F :PGx ѰƝ=ôiwwXvMóAn['îsDGb;0d^YqKe9!gr7`yD-DІ}>3avqeQ 4Pw[F+1lL0AJFlƘ':pAvxzzՒALxk:|P>*Sl=q{%=`_],'LbN#d&lmz~{@vrSSҸ3V. 9~f;y~'@ ~=컢V&}Ə>'#@GPY=B%G_"T3Ȝ,u!3 SUihRDEhi6%:rV:z%ĐJEtx guVkS*ټ ?^9p0@iPŢ8DxmNmvDћ=F*wS?D(Mp{h8- CfO.+jͅ(0#2ӄAҳ_}hp +Eh0NQt ,<&HI61#k*la xP舺3/cd4ЛΉ:Ţx;CEP‘u "<:(g>{I`idRU5T$Nw?튖x q{EH)ݾSwMN8TF M=t?H-E֨޶~qyD'KmҚQgI Qgd{h)I@6Dy℩@=}B_mLbQ>)tw܎? '-&N6|7SeZ %7f^z^]&!)w!^DeA Ǖ*Q615&tlW{nf eNsEHPkDӖs:l$*$NAʑ1obC>>0kc$+mpA1lQ23ݎ|H ѥ=T[H-8M^hX\[İt6L&O(=7Q/IЂqZ") #QY|yJftU r" .{ {}UE {+DAOX5mE״ǀ b ZRqvܚ$Lf淚X'6Άk]$JXy`Q5rѭztYԆI oxۧ;vzS:JiO$<"kiK6i0(7.x]:b>̑A&zW/f#Դ~Dõhft;2sbk4Tɂٍvh5jь]D)9<_&VủCQZ[s0U;k: 'lTё6@!К{P)_!=NTTy 0dkDYvhM~o`J<VBAC ]BW'{%?+_M9uz8m9 Aޏ/`-d{}#PG4=A; jL%RްZ~Lln[nJ.qɑFlQp =^unT A+qތw;T#JdlEцJI)MܸVuS /pl˕1z}ݍO<K?uPݽnZaItj s\ϔMQ3!ҮcJ¤pVV1coHB8G`ؾ⢒ zdDFs-8:e#Ť2^m)rxЋ?9V{{F>.Q_o7 n.GH#] ' B3 :@3nY[|BAH2KGCxR$J |FԄ+K;דӣ1i fB!"S6qZU 1"3@w9pSɠC"e@bXI.: C HY plɜYbIӫl%X!>nJSYjfeA1}⧥]nc13#@94JhP0yPFҺPsV2ՅVwfDL,h>va.65Jx”!'pJd"L `"BKɜ_6כ]M/fl翻X/gru|ٝtMOOgW7zl}\Vw`s<{ڭfb/'~9/替7|znO/Z6U'IC?iS#GkG*Lޚ$j*๾:nf;_lOݏ6=ROCNˋ9b}<7ȹ1dٳGųq>[fG+&Ŭȟ룋>r:_#ggz3|xf)hOi1yG`dr_l6:>ytz1]cG22l~y=oOӷ3BN?ɩ)}az}3;boB'Ga-<ٻwX_:ê{9] ?ږ(pӽ;aa78uլ#8gVV- Lo]d׷2q{v#S1b[u߬0uGOOϖY:׸)mrt6LO&pxrWYw t7O;,h ^VPlpep%5kz:% _vf(E2AƽsֽU` . :\cWoݟΧ9.Kǿtu|yYL/kz!y>@x/<I;E Ur's>ݫz~/.f^!cvLib~*ny5[|QW<&(9F8OBwr˅V&gvw4&~\-bE>! _r3|ˋ|v~h5`KP19Xk\Ӌ:䭻cr,XJ]|}u1}WBӉsV }rt9?6\ YتiP펿$͌'G5nN5UzY`*fq)>g1lLVSIu˷/w[\jXHR'G;u'm*ز8*g]x߲[_b:|? n6,w+ⷡ`'ko.7]'-vJA'XFf w,\9Owƭr[nU zy^~|jy{)oTM>R?=z1}o'ϙ^?hfn_)nr7]ɝp|n9K_! axwuo:3J:vs^.5Jz#[s.MVwģS,W?|Gp=zlMur\瘴wIkF=y⫧|3?81_n0gO&Ӎ7O=fZ˖; n ܰe{D>4tg+޺V5Z%vX| [^~^Og+,>.JYrctpz`{v09sY:Wڊ';e/?ox׷/5>t.m[0,Lr|~a]la14ϖ>q#a6~DXa֫Fd_B~9Gl]TdϏegomګ艼֋0u_]]bUX61|/?/z }=]>s[<>> O__c_˟_% ofe`eѳ= 5nlop_ y0,Fq>.&$-ЋiM<1q!fGUԹ<ߟp"wqNt込?T~XM$ox_;<Etς]8%<=ӻΚ/\/8W_5voX^ 76¾Gq,roRy'|G}o&(65 ܜ^ۖ|Xm#}=~'iyD??G{ yԛeeY~q .?|~-cќEօ-w"rgpƝlF"7L^'}t?=~8'x=_`ownYS5v h#O~oc |§~.ȃ#J>Uڹq?=ynKu>U.@՚p|f=]^WU'|C:\rYlU᫫W__^CUo#>;iy][';Eȯ8 RjFnC~ gsKJs?+6.W${]gyGK|ۏ?}×w/^OWxCk>~9zψx'g71k{x>?# _J2fZ| K?$rI=F~F~C1n+qWܚl΍G;Z&f+=~leOڗxalZsN>bp&}S2FbuɊVrO'|Rn+,NGw?.:P?w(}? kL]3H.)':R`9.V_ZX渓H^}dcsRѓ+j^ǡ?Ǚ~2Uy:wc/ny\,E?Ϡuw&F{9E&ûX(|蟱2>Jqf/TrI>u cg,wo;+ML|Wl>kg}v?@*^tq~wZ&ͻ%>ϸPUB*YdOv!+&ogeɮd)9u'Urt.B̀~3 d)u~#xuŻo3˯+^taj= j(ߍqr},d;axO](«J奬q+W柰+۴{,_Nef\0x˘~ضTzg-pkmܵ/7' LR/ #x oU7aEȏ(?wa~ gC^cLXP {+ٷ2Əb,~:S l$&|A6#|Eo4ز.'Sۏ:#ۄuys]Ұbx7[)^t9 5' 0pgwBx>osIws}up1]#m" ]O?*6\>p'| OUV7ɣXzv.R/'YwnO.k|sW #/F?2~ߟ|tǁ ?+}?{)ʪ 9湾n윹g>~ Cߓg3E?&WݛoT3=gorm-1.3.1/.git/objects/44/bd698d7c075c673b354189c56d0fa978db04180000444000175000017500000000027514327003123021226 0ustar heronheronxKJD1EgO"8EuRy`^$wo m aNX78F419B5&ꃇ2S"f*Lq/uUC>_x;e/}޷3hIۤSG$DJ?MhGs)wh6Wgorm-1.3.1/.git/objects/8d/0000755000175000017500000000000014327003123014270 5ustar heronherongorm-1.3.1/.git/objects/8d/a03004382268a0957ed7ead1419da1987123c70000444000175000017500000000026614327003123021116 0ustar heronheronxAJD1D]}N:L@Dp!N?dqvUJFǂÚЈkMbR[궑k;O-RL)+(Xp "D58^1m> ^Q<햟Ͽ읏ϓ ކ3evy`T7X27^ G]/&Sgorm-1.3.1/.git/objects/52/0000755000175000017500000000000014327003123014203 5ustar heronherongorm-1.3.1/.git/objects/52/1403da3fe8112d7ecae828116d7a23f44f99060000444000175000017500000000700314327003123021252 0ustar heronheronxw ߊ%(Qs>qsgG Q\H @RVvI"d>f~_& H@vNmV;'T;V+  }YƿI9 lKBv+RuW,VV;4In^;Hr[qBL2y+w ~Nܶ.AgÂ&$NͅhSŨ 'F%b9F;gFC$ID<~b a?^|& WgPKbRo?h 3DE8"鬍7 ?pնhS]Q~*,ry&fgp\ݱ]8!#a&rf'壢RR!gz/mYW9Un޽3B[IVϣ1tk1bxx-t^Xta~ݗ<ufc&.MZ6s xMZ4"AG\Suk87bc.(ZL4.e~i yywН0Q ,[8[o&Fu~mkOF{d䞬zҊ=fACM;Ky]?U7X\/f#e5bqH 0Q衶3V閠bϛqFf^ۗk ֙M-tDs;]B&r7Hg j_'xˑkAxgdfs>YY5~ws1,jqCzKl)OVC0Ӽe*;;>0m'\^1*AFאY}g[{2+tn, r+c>T}.sa.~xwxpOȅy {9凋OT_EO ?sqh/iLa#E%Z`txe߷o A6 m"0xzOM`MaVze/JŌeh`P0!;1JԶc#>Ln0 c-ô1O7{{h!g3ۇ:n<ܹmOV3"hDLgȁ:fU+enĊATrYgI?-UZxD@p'vWoT{1wՏUw./8 C=#eÍlEo}Z6͡nϘO_[Ğ"D*\D}5 &V-###wgOo'D©ڦE%l^q, ( (,qsg;zRxZW4.=n)[%/K8r4D0PW9\NdyB`x ( &e# "!DǍ^/bi59EJ` c4FX떩ZVVH胆6uT3vOzHg{9)??#ǻ/ǭr0R (j5hOS9>^vѡ"J.Yv?pZzO'Ϊ+F-`af`/: !Ӌ>>ѩc._z9M0hFKQ!93DK1gfE"%i&7&eY0 ޚPMAvUȕH!a|&41lTj9M  Tr5u_~yȿ FȖ^49Dy␗S/=P#y);{?%R:*ůX1pt" =nTRIR !@c/"ziۖB ndʯtI:X8ŊaQi,[ߡyӨQy`'FtqW#mbZh́`G1U׼s3ozJ` m{Zmh6!Uh"`G (/+^+c9Z&iiyЙF]dANkbBll:TU_,FA;/ov!lCM?(^<将e6m +K6}չۃٸ=sa*" {Ŕk6@6 ?L:ҲxO'8؝D( SbRbBƞ*bNY7<퓧ݫ,<)jSO<`$vZ V__2`e(g'',{+ۨ)Hp/ P,}vA1@YLJroH*BEw a;J/X4zl.,aW n߇ʷTF tseW@?,LbVyI5&cxYJ:kPE ߿ϵ) pʪ1Ƕ);4-ԓU/FFCK_804rBJf%Ҝ&HqvH)8D=7Cmq3L_8#ٷ9ap 1OZ_HNw\zDjI"> [aL[4?F۞.D%1I=/nGĥ}Si#Y Wdh|i[Lix-TPQ6UDB{=ha:ۃ`Jȿ.,mo `),h/V SymɽYI˔)ch3V)ԭhd;jӛ-ЊCS?*apS$^_+B;=}Fz]o5=Wr\5b4@'+[M7ɋM>?1gorm-1.3.1/.git/objects/59/0000755000175000017500000000000014333757624014235 5ustar heronherongorm-1.3.1/.git/objects/59/6ea4fe63786d705ed7bafd2ef5c925c4ddf0fd0000444000175000017500000000172214333757624022051 0ustar heronheronx+)JMU041d01\t Uen.qsCһg&31b1ARST2jw{n4ٲ 5bה̒"y~<_fYOL}3 5å.+"dAapO$uI[1!imyYgOWd~~^<4Kv9d;'Uz 2WŎ i+-.M_W'_9v}.ɥy%xx:ow:*4KIminn%OpLj>H4ӁuuB[~^IXfj9t+[ϟ 7؛͘'iP둚SfڷZ3&MĒۜ}2 h:Ο+23fV) ؐt%g%g#"3mr.e[UF .ͅӅ nlZV%}O>,`# M2'^N=x49'գYqK-[^#jX~%% 1'$+{[MY>͙QUsX 4bH,m9%[^BC"TyEσS5\V`J4奙)9yտT=ZvDh:Ƕ E sN3ݶʮ?l&>2CU0_uOfb,49yP:~[4 w373għJD8Pp,))L*-I-F7PcP!H%BgI@ڛm8?_4#5' >H6crbuӽqHKR\#U BネU&3PEy"8 ==_\vݟ>|?_,?LOj {9ddԟ$;βI~t'k wVc4" ٻ'.+ ?e}V3 O2;-yv{F|y*<|p><; =/ ujϷ>}qǣ8Z 'kxli_A>ܿs;l)>LO|1Dܟ]W+ kAX+^Lى|4·^gzl п<'v:~8˸]!~]p]Ah4;%,/@nNNX^:N^{G&&WnFjILW8AEƓQޟ,/3s)w<_DWc4@ɭ_K?].F9놛5/,Lrvig8eOuH$ov|89nq h@(I Lc,mmw1R Ah"r3%5u:)!*"#^y@+_8~,,vW;QOyK9)ۥy?_tӲ>c K(Jfj (0>{*G&pAS>.g'l6v'B%q 1{>чߎ^"m5[aEA>yFet꽳<{9t4[BczXXhtwśmn4}1~{/ezGG̳vv$!1|l~>]f5 'b}?i;搻 #r?}]ca +vdyZ0>l5! ckg1du"q-;o;+gasIc%I8p#,3W:Uq@#ޘP-M:5K? bpX0(}qt>zJ4r](ӳ [xdlaGҙ2D :Ezudoܡ?Z<QBt%A~4G 3# S#uI Q0rM,X1Dz?|p#'zYKn?1u%% Z!'DKGC S>AqKHˉws&E0!FZHAF7S7`ϪVt8{*ÌkI8{$CkX]Y.QB,r@9iH2GI$w]s P-wy63E Odi8PɸΥжG0K̖Ez,s,GFqt(f2JmMTTRxgcn*qRFRӶ;Ol0)nbE4&f_×ȅFVbu^*V~P8X`6 ;rn&S 1Lweih!IFX"X,U TI(lXeW\fx/nQ0е@]R)~N^0Ž3gO`8Djb$TsI/gƬ;ଂo,g.v;BH' ?A2I{yAs[E4Ǧ?Լ,S9,S#ez:>B jQ *W3%sssUTjC LnRneNrx9vO0MBqvS.d_(zwpv4ʂ!nlG]rYG(%,vXI9;/6wveڻSwA؝raĜ+0v(> 3bGw`.9E-'D) xf`muنc<]Z]Ⱥ(5PA:*\׼?Mg#lm8XfΞMN3*;ՏJ ?*)*Hp:IZV^'~jKb!ULm465*1(Bv~7ˁ+XG=${ {/O*~ &`ymYv\pUߪQmBC.6Җ& .<'_dwS9ZGn#* ,lU+|1D#hn(W[c^8s[@WЕCk7@XsN7 ׺̧tf AaB/Cڎ^6sXv  I]dHT{ 5kZ.5&H kYJP+&Sƙ\6L2]G3\Ɨ0 ,\p#ii,d[|AoV`_Xg6$ a&me1Uߍz.A YLN[Tm$s=I8: 1||[euCl\3F8LV €4C䢔PX"Huo#ç T2U%i‘_7Wg>p3{gV_v(BNhkW|3x)&ǂ+!Pr6´ֿpriDvQ@z^ad& ړ3õc;ܥ%mly;&j6oGV4C20J:TYS ]fVDTtp'XHZxeٸMM1#,\ N T6DDSioæ+GT )Y\ߓP0| *ލu`haRkebYVqk,6kdMn -i#0sh/ʱ(L~{X9~kl(NN^8 ثѣh62P͍'mx0Nڒ6 f]MP `^|Y)`ͤǘ$"Յ$۹(,3X+<Z`o$-Bv,*QPvٳ$GVrsM鞵vzE8U(6tEM!3,L]y>dq8)(NzqYBE'7?t;\`fb$ q"M&7fSŦEj5^w^|hczٸjˠw$tHBp 8$).@6dE1؊gA`\ UˬAItR!fx|0SYnny} <.%>wn,!}zm${r+k@@A*W [ct]xW~nYn|?o?+"6>~_K# w֖M_9>8?˪ccQC4I\% a DWۛ+sMH|`>iHꄤY-`p0Dӽ n5B+4;Ģ+oZLLҜUn̛x|Uuph08@({NZ^l35%Knj4-L93pDN_C Ec4xrdA eA)̭4D 2>lyFAҾBt1$hB,Nx9]R5݃U'7B4wH)Q8 {M b̤.DAM1''Ilw`{mes9KeYc.؇%ʫEsK:<"zBr$B<HK{ l,1Hq~ hdcLhx6!aIKi$YɮN%t^K2{)YQer7qQ.Ѭ0Fۘ4 h~DEY1LCtgZb,IXE 9T+[%[eRNFr60z9%#_N3 T`z! 8V@4Ȏx! `&ǁmLz ͡Նc RIKQfsBaKt$87yMcϓԣjHZu>h0dlAHÉRB@˪}!0nwJZ}]Bjɷ_g?NnUVxY[9&nWyk&h b,IqT!+ɺ+yD0HSe$I a4ͶH[ăH„ $"o*d'i^ac'ANntî3lݩ?o3͕ICpc:)QLM𵢘Rxe3X\)D0|bB3Ngnj"M'&D~!ۄ΄f;;k^;}Gk'I)dgs4hD+B~`bPZS/7Ӓ'G(rUxN1~w)2G>!5w T}JB-&}eX\K * aj<;~oO88x.&.dB{`5.hS oog=S~9 XދgifU%-vvnNs&ypa| d`*H(`O'뜶Eb%Q/(ai}\]JʟjAŷ!0`Y)pۧ_g,kܪ``z݆8IE^ uϟ>00mwG&I<ka02?/Ld&@~2CBޥߜ[$hp]$$TuϤL>:BWPDäW9ᐽAJmJRѣY~S`mQC11u6hz'nvQ*h]hu3usWVf㫣VHx 6x#3Bo$> b"1}bI$rԢB=ʌ&[ ƺE.i`wcv"n?S!;^{jK|~8. úY_]/ON lm׽ϞQD4JB~ v|PC'4.<:b| Dpu#EËV:bReD2N6-̿蓄Dm2=Q؃a>(Q H}ƐJxi%sr8R(Jj)ȣm+u I:E.! zSOzS%Jk&FH&CWXkEі2$!B%u* st&iy'?"r(lKW~LK(}h5]9-ȜZ;Qx_2*zt.V?-hѷ Tϼ9ݻ7?#\v>rv]Җ2SY_i]P𭱄Y8p&;"Ix\Cqsр0>i&Npա *-U!= Xb~5'͍Ļ۹B"i{J@Ts|UXFS'<= :=@v+jZd A  f EFr3iʅBAk~[FtG'Ñњ3_rrg Ŵ"͚5^%|p"h,/!xO ]B[qGB5iekn#:SMJy;Q@q}a1 61{2)f-B*DQƬpą{is8i:ķIX eRV|` DZrh 2W(Uuȹx[O3Jѽt | ')Xvϕ3COb#ѻ[2 0-tm-E%̅ gHda^ )AZfկ6k& QVf7Um*8xYZ#4ZhPA-ʢOeIpOnqgzeD7B-0eWk, gJo?'%i X+h4`&_z+%* Y@yG!e¬T;RH_4d$e*r³öf' %6;XCAV7.}V&\PZm]nRŭ= *0Wl}Qn+q>p$ ^'o&oy Ue8Bns+gyo P7"~Dc̭!`E&K+-WNWS 5q}j~ b N(Pa2A'':=ÄN6-cY)Xn4(w?D.{(MdQ2u*v ^/XF0!fKF~_pTj4^^φ٪vn1 x#낇FEQHwuo"Hi|wOaG^r؜` Ss͛< SPӰPV,#UjPʹ-U!+tphgF.h֦vvM^QFu`& / 8|(vq-#p2Bƈeэq !b+Ub} bWB#ǐ|=yx{gܭ9 YgGBZI_u=E wM W"H['($iR"}uˌ?-6;_(>pIHNw_\`k  >vWzt2]*oD]/+LX*(nވbk35ddC&Su YDYg嬎/"N'бV{D_RopxJx)IWG]OҍMܽEDn-6J,vܫ 1ViOlt!n^*"]KVH3!7 ƭ7?TTF+.}sCBxkMg` D7-[=<9R?Zu%!@\}a[IH6ע^RlUJQnˊo{QuSxաǮ^F;j/VDtSUBR LB@.`R<_)Pdh=/=X Fh6}zt{OHhbon47<˲_˘/ -ל_~vVه rR6Y}ҳcߗҼE/q95݅V/a3Pn0fD@ގvOT_ha a"R1WCJXFeeh/L|l|{Ⱦ |G,6z['R ,}vΫ,$Qd7$%Q|&1:({ctb[ۨ.D4P3 yNf6N(të́*gw&foBOs(Wt""cB z`-Qwj`p#G>+1޽ߵVքM^V-sD^n?e8T3{|CҦB5ғl'px,l4hҳH)ި+B[wXt'_'LZgdF7T<r{1/ZJWu1G x%BɼfҧFAXsu=\3Ddchh>@Aer<ި!vW(0HAn9sJr 5GeYy)wpS>|k [E5V bZJGξ ÞZEF_`:d/"K:"A6K][G9[*à(?1Y5'>Xr-:f/  kHMlq6gWϚ-kv㫢l8Z5\('U|O{j̰q{vń_Q`!6%I.ܝX}6%MF"1{>p]+-xwMk(4 'Ѝg)Eg]+]u0=Ek(Z uaJ @14X6t͜4aQPM5\QClIPK/ _#]3癋hDd.TEQ[]͵?AolAGrH"S8JzA&j;n`@z5\T1ieVX$'Oץ(<OAT`EN܉m#,hIH [z޸P2T! }G[[9+l`2Rs9'- *$> D2 Beew(gRH!t+>jl#(7VAho! -&fQA) w2<I Tn )~IeMhT|XԨӭ-b2%Y#wX߅iG*+Z[2a*ZzE[]X(4lIbT "Ļ7KWP|8.Sp;O]AJVrP * =?/E!!uX\FtK@r#\MqSIa: ei ? l.kkr?~U `G=rUahRB2L8bKFtȴ~Gy,表KauEDmq'ԗ&A4xPȉ|sC&.t}}&]㞮o7J(s?D[:Hk?rYkTm|UfYս\&u]=Q6x-+.CAV3R7DЃf G"5frtf !CVMvYBxlQS 1EZ*Gx {R='vm?_@ZAhnBb6SE; E(sJl5)c&FVY>6LP:ilPsUΈ컝g/^O[cQ-ow {_d³Hz?* ldOGgٯo8.?Fo.-"̂΅&\0U:trQPD6Ig4kclFWN@lJe~QSt(̻ڞϟ`#FXj1>GQlն/r2S<`Wζ-&`7@ր K>V] "v:Rx{gڰ8xѥjg ~B9χ`-M9Ȗ E,8j b$D P3zWLȔ`M z~nÂStҲ"'e`(Z e2^V ~j VhmV?+lgh(WcԴ,*~hk-84@/6aۛ{/n,)'obx(Of@Uk7Uȶ}p+]bDrxY'W\\/F:G࢔X[떳79em$ Lo;hj+ЪDAhzBrtUSqCZgGbP+za9x?dZSA xf'GHUQY@^)LjR%X <`x${J"J7N *0tXx4<1/ۚ,\~CP@ʱ%v 07 uNU4jC[ʪZ( n~$zs25]ǧdZ :sZ^9F1L`k-[iI)B& +JOL zV>uj c@H`LL__q\tRZ!5Գ||ylE %d{`+qJ4b02 vʑW}vA!<*K}V)}S[>6gS0QڜHlXxPy:2a*/'o<9XY¦t ňFzOAHĖ2'^4hFIYCL<LOU>8;ɍ)NxXkVY^ܮs 9[R#K.Z,,61챰%t]ht@ǿWuLS ^ pAH6(e|L DyLkRþh.t Łl|ͫH[@eSMv/"s=7Jk~ͩnSq/2J5é~s[^K(a9J؄/Nyd46_p ҎǥDZT,M\g*M,u9ͦMrdTd7m8cUAF-;\C1NAE R<ʺ|X@]a1pyl4J,wIA0k4A$ wlẹ։hrӏɈ{E/VZ CM +o#Սh`5k*%FK3(t#'er|#ݡk%#+$5Pn1 T01(hM$\-){"ROksyTOɲOۤuh{EwVN+V,}۰Q@:_;fR- yW 5WNoQ=%&S։UV ;lfClj S$JصOU2k7Wң$dKKVi}Q#ǧA][%H,AZ]D!3Ơ1 Z h*hsH;k^5ɿ{{lfck3Ϟ;7^CHMPi!BM0DkƫsS%.rj6Y" 8';V/,O|Gߡ)]_!R^̽oN:q&Ɉ(i$;TΊS%F#>牒TL+ Vqc2c̈́BNZ` ^kRv۰y}(R 'O^kqnk4ِ=k0XJ5 W?΁z01tkŴuJMN)dkC=ۄ^ KpYyVF JHEPGONS"I-6gGu:L(ܪ6g-i jz{BnCch+;oKNE rCרD9n1RߛZi؂+>;iBl&(UA}S(lw֩]a {{'0f:[~9.HU(4gtBh^,ϦjBN=E4d`|?L: tZtv|Uhc62j @S|3m]@_\|sbB8*i]n2\>Y?vdI_pd^{ARH I[ +u|Z281Kg}'!݀WRi(&)PGs^1IEk Ik14ϚSklWCیAOK.֏PeKC~-BQC ->%f@&VUx7ṥHWJҊ9|c>pxgvuX= 7"r-\k #|>-KEm;nNvgALRL2(V4^I^ B3duC]y&b`6O%Zy ܝdl/䁳&RI!bIr3#si!,nw6:u:ctF.+I0C?hNV)~jlQr2 U!{$|H|8CGh GMJA,WPWGaV 篯/9L. X-2 1.|.K̢P 2eZ vaL"dB,r zZ[, %3 ֹ/S#MWu?3h{C{K&%,P(YH0] ,qQFyZs^n!Jkz[_zkU&-4֫ݫ/[NGA,"d?po(ZuѶ*e/BC YlzA%#8iekٚ4_.U('SO4\i2ܯl|ƪwdԧ#~ T+v1a[B04E ʣM/g o}Q:/ ưraꦃURAVwr5"hK%|nfFӀg:,k|k~5f`3~` ZPץ(% V,OX_[Y~-1$jn79"LӶj0l  RK`NRlȳ?gk"-T'dl:=#8->ضy\ "TQ2EZ{";OֱT0+*|*;}qTYY6eCWWL(AWzL>-dG7Aw`DQfjG11rzZF#3MJ. MR8Yd{Ϫ&M%N9熏̦TjfUQ/+q| Iv9rNz`BUNZ wy_S̾ͻ)UUNx-d{/(|d?+ۙ܄q72(Hp8=R^>LԨxF}V>UVު=6QeԘQc+^DRK!YG&A*\`ЄLZ܍Mp*zO(g%մԷ!Ih8 ,OK R Ba~0V#01ШPls=z+)o=8pt{דOc3dT@x˺ɖGz\1+ x3QEp dV xvwwrQ0!i ѣ/7%6b8#Bvy|N1TwPt+\C/1A YJlx໡ٱn^[;:.Ŕ*[c}>~>{/%]1LHBdcqa~a7wR6r\CWMay62ͽѭ^n37Hl4̓J:RQOo@np]0-EܙBUr܊uRNr vcMH5&b(u5Ъ}"!+xv}ow9Ry$#ELH:X26UE79HCU--jKc$!s4'Ss0xȮ궴I }-c92R _L9_~z?mϝ}+뿽G/߿d\*َ֐݈'pb~(KYxnAv05]#o"Uo Dzz[+qV1Z[T [_\ϫ_U33pGΝ@ 2_cqlQ6\tQ$ UWdh( ?Z V* ZaISmIv"{A"ד Qt4, <:Y#C*WyU EfL8o wIVr*{Y/ikrP&FJлr7  nǔ!ݙL\I*tVq4Eo+%En.&A# _oׅT7hUi< 6I"i+AJ[xsdQ]6[7aY8=×mڇ3ύjH!DI)VR0|"d Ya7x"3GlC>;ߎ\0Cwݠt̍-T?HA.Ŏƨs;\B6@p`(XZNfVpP%쩁nc->K bA.K=&ӆ hG ή$׻7z"ԯb(Rh`MOdmX|"x&Бޭ )ԭ'+KVZu:mp XE>]NΩ.Sx_Dʦ4}oOmaip:)\BaF Wv XDJ7SPL[}4rd1is.s4jG~mg?_N$Iߢpi؋>>5I5^"\:kMJ#i{ϟy!lj}P:1U(L8Q{! Qjd-@y U>u4c4^h -> &mu m`hiŌ%mU5_+>gkQDV7Yl5y+UvA1HfK>;9~<W9ޟ8T=1+J.)lh̥=rM4%gB#ʈL^`['KMwȇ,cpD*pg~T7»jv.Qt}Bg dh7tfiy-qKDho?)PuPL-%9kBh1miu=xxmc(^sqcLVVWo/iY_/]miI.*na*۶UjZR[*d u0M[`a&A0_М#j4yToĊ%AHoME3*Frgg9 21GUꆱu㪅\?5pRwܠ#DI!%S >-uS7exːUX4F欪/%rH5Psm`22wKuUD2z'HZhf eBҀ`o̷`|$g%|%ʒO;޾8P;$:%0aHTnj~rlU8A0t*HVK{@1mgY"e_腴_i\aRO=Iq5+C*+h\&|14y)!rTI ʠV*^A&&8ʳ_e)J[bIa-GL)D 7+YSKU 4EՑr|CLנ_MB&;;PeTTv唨 oWYD8X] ;"BT X'؍\b-P֗3Iz+xr}m3 G]xrc!jOm$a=H>(B4uѮَEֳ$t O)R]^ Yڷb&cDL C ݠUt /)Q2c]>)! y d{0t99=}M$f;zb d!Uf@ جj-j[+:O45t Ρc(d*BJ8']:L?Wk.q@Dd+7&﫽j`\݃}w^ztEbf FmTI2߅J=TEVZ<۱ q?^Ngz:!|q/}u*qo7J`.DNX7nzeo %g;)p2 %tD~CgY>'9z#R0KJ:Zh #S:~8=F . +KE̟1Fi_v!{Hˎ>/R9t(N℁;nQr%mpMFݙ@(뛲dmۙ^qOR_ŷ|vwJgMvzrgh7S[xQ%U~6 :M*Ңc N01ҫ\uMP{UaBU"UDK) tRdb*zCc൅٣_>4`*2z; ʯTQⰜP:=^l/ּޟ01I&&SKu+/q7Xr>^g#]dd7Mo,Jmo20p<3b9;š ၊cb +OBb鸐GL1R"{5ۈ;|~Ï$iR=sd:4U|v0#3@loƪ5ʑ7r1~;y(G26v={ca78ҙ> |ͯ~Ku5ۖBM@E"8GObL@>a[łf֧^WbwIJMӫ*g3ƦGc+clSʷ'gtqbzTz{w!3.rҋH^X GǙ 5Usن_ۖNhU3T%]֍㟍8FU;])O9Jw^f ՉyYoh+(-~SRRlMI< LT b4+GSVbBV(^@*̞1.%ߛBqRNhy.x'ӷV?[ԶD7ݱ&ecHyr?迢! ge^2R)GI]uSb쵊5RBQx^ϱd9z\ p>޳lvWA6"98nN րG6iv#ѳUڂ% 5>ZU *"sY/8u͠vzfrxֵX ^\Ŀh] NZ]X!OEޤ\Z<(1ogWMR/A@pfHgZ_n 6HEww9/aT F05Sޙ&nFx<1>Ù1L|LH fklAW]Ztp kWOf5Pmھ+DQx|F}0ӝPB0 t60T{bbw1!,.%#)!;d9)&%G;rFND{ jͬ ZQ%Rh,-Ck%*.E%U`z`TzL|14~a[VrcU$)b~"#c8%fi #)ۡl|?8l-תN B;gl}=,v%Cv?YQNtχDiդʻp\\.HCVC$ecOOXTPga} P ktɟ'䮉圸bt◝m[| ԝRۗo޿bj%XpI B{\qnFPMwi77.7!-<mS s$ϑ}HGQ+=X[F!{*kNPtP{#N;[ fp{~K -9.[d`ZfK4Ϛ2eMӎoSMAMӢⅎbMq&_k-e+nֱL|oDjkĢư/_ ߖGjYA%BhCvs4^=GJ[󉞈g-[]VXS7zVJ9Ri x6ŷxmI$7,yo:ǨnY%Y?tDk# K}=X_XM)i|P5fY\ îY/"j\Ecf& >TC'^Fbƪ1j$ʡ*/QPnhFv{o0uQ2JX\?iQӲg(-xI2Ժڇ=o@O)zdv _<:syLmVKm>>( ]$jJ?ik[|VНݷjVE oU}&vvI "ddRcawfΦT,~GW>gLuwxJ*J5,{ݸ)ڕoރ(.ǓCo<*AҜn0ir>ᬭ5[t_K/|ć;kUt5ܮNLD(wFX-glWF7guٰOg 8$+[ Uw:K_MP}7ZX7+Mcx1yNT6"bГB}K+ÉLCdL7*XۊRR(C(ܹjRKƣͩ'g Ă^V8۾MZ!5q`PjhZiUUܓ[19f*?fifx[ꡢjLP䯪V) ,GXDhZz.BU 9k nIBTǍA TEqnuE)"6Q՝< 1 5:dFKP#L:u.Q-x{r1YT'<0fH"WJ7sCѦPL?LVlJ]Qij 3fDqǰq8jx.?c%#n 2us1+cK 5P2bQ٣2ՉV=gDl"eB$DVГަ,vJPz a yn-T92si^`U5CMO=Y؅3'Xg¦2+H^[]:]k1 lz/b{Ce/C> "ĦJv\ # Z +S E!5]M@NZ$P[LlP` ؓaȇUrYb[i:3E K-@RfK!`Ks FȕmP@0=Ǥ\U mQ y$ڊ8͋4ƺdo](̗s嚪6%. fek&Ӯh4l+HrOD>&PgCje( SH)Xs.\XޱߝdJGϐ:7SQ36Tp|65a庴hb,O9MDJTVdZs&ru>G[C_@bԧѿ3emj,su'rvf8p1Ԥ=]f2AϹa|*F{iH^Pu؞*?;3*oiG>u{v_+gÚ@Ms,z(IuFl'_Tmݽ;-SдR,nTk%fMҫ_ "q9DwOn@zT//mSqCc/[w^.]\'Kv*2Foi&PE9߇!V^^ўu#[TF}Gj枒Ԛ$5D=wT pg@nP&*<9JVb~Jٝu\H7۬c[@\%nA9DnEsb؄Z؝0;j5Gbwbc#Bd yea+<蛴ZXGi3Ix^@:^>SdKyrd*-*XOa>Cu_ڕunw`џ`?NXjeDC@\jihtm#|!{U\(k +iKHKtF!^`7]Dr بnLNi]ltI*!R6 ܉J,=>)ܗZ }tŒACՅ3[] .v#5_N lgڦ : d\| ZbHwpQFa4Du\J֭([su&tY ,ejLY/ ft>nڣlO6% dVKPHpi5 L(aRt4LWfwd:,oTЉ`Z<׉Y^|I|T:y `J;G6)~1hHRvyɱe.nFף13M0,}0,עFܝHEu J gn m) 68 (0HL璆UW}zu06(zʛ$Y>'F ~աFX* \*;tJ!5σBYXc3FN;l}5ĴVW4hxR` jH NZKhmB=nYŏ T\ QE'Z&u|yygQ)^@tK\~"@ wB6 :i6҂dj?㔈$r?)@ҏ^`浱a%8w@%x׺(+RnpAqlh6V#c o0H l |NjH׎"30_%.bGs<6m=ER-ѺeSnO3n@7y3NOVkY~l_ȩlĎ}khyFEJR ЧaoM̬[/Az)p,lDϐH]6HYb+5WAb'1Wjb+Gʹ̍e"M i:[9h6`tAARH YՍXG\HrEL*!N$<\G 5,/U!TD:$ ذ;k`ieQplN5:tK!fЛ +ڸ9?jГ6"`^1g6l qZCfyHn8j`IKK+Y-:16qB\X7IʵjqhU]mH$Df2t@<+B;?:)pϘX'zuKE[nnQx7QZi U+5y3JoVbCӘ7vA12K1G*lV$kg9cd ))C_u-7 F2_ݴn\}6ITfǀ %pmhR'ӏLq2qPSVdQom`Z!MTR I7Y +P-\v5$U])n0˻X 7 dJ#<@dr2B ]Bs8Vmm2 {jԤ62qa6Iz-( &}~maw׵s}s)çj/ݭL< ߜ[!=;?-?v&NՔ,AAIzI: k*V97ZYx_D}/cv2l_(o1S>$Rԡ>(YnEbPv["PUkT'J'^?XԘ7hTw@#Q DyH۷#L+qQ´</jJ4=V(Kݚ,0Ep>b5ٷ4/h/Q޵$JuwRY!d`_0ݝ ^]%m/!q=yuelΉɚZR$w;3a\iom hu&K2(W3boYpx| C:nH7nhB0.KQ.a邊U E2TSuvBvQ"j]'G:'eCl1FVoA2ZÃ%K\Σsq>"YtQ[[[>; %uLϜ!D'mR$ DN{Ābx:鴳yϿ(?vϷfu7Ĉ{_RܥB#z%rBW@ q|Yz {8qI&Q~&<ˆ'|YҐ"CnK5*1$؝Q0'HJ7`Nt.l.XZLQ3"Zt] "SLS(@HSl٩e .t-unE2wC@< k@uCh\:D\mJ~ymv~/>/WY'9-n7_'E.3,f99ӇHmBhbD%%뾭 2֗e/{tMV4URG;DH1XB/{"`SS‘D.VF9bDy_?ùE[J+=/{ᐊH-`ȸ.en&uB 2tI|TVAZF"1kFF$Uoz2Ő⊬TQ߅N%y c"2Bˑ 3\){-te)齐nz8tиt2zM1 lzr2H,h^)BҰ]L:W2#[gWS⅖`Q&Q ƅ5IWyN\$DXÓP qyMKNe)F!#06g3mDVKAY#%Kp*ND6^{Q>T%dzDp@fD0 *wzޱ6?2ª=3BC4ab;g+jj9h0k\t%><þ)9)bWQSؙ4O'4yQq$I*'4YNx t\=[ϰZD=£` M#䮱*nߒZ##qLw)/H!5!?R:Y竭lHVn)t)n-_:KNEM!LpB5 ojBHQ_dx" ^vpLSUl8ƨxQG5ݴy:B#t+_yd C* *1w"8q,& T [+ӌ¡q>eTHG:T*_eٗ̊d'b8Ȱ ysQ)L{@O&ҡ5tS`'fRk}z¦`}6̤^ k$DKv҉QA( 0{OΗ3,"Tߐ;R3ﻨ@-"DLUط" (Q ^z3ـ{渮#M+j30 2ECPrwt(ET&^<1}7s]P؀'M9Q{.fd8Jliy%-u4SƢ꒐K,@@)UvHEJ.}vTǀ%ՏxZG}1h|cks7kDf&eF2cιRC먝I4p#it?w:'08M "%"u|ձai:-Ӵɛ1$j;L9M=O! qQ9:5ݗw]7% :}~v>^ɜ%ZrƬNw\3M=M grO+rvmY[Skj#+%丹h&''P'`ܢ9Z8]Eܺb+v#YwBθ1P׻MۢN&dK?2NvI%8 l܋3$4e+Gy*uTc˷@*clA"1'pqޢ֘~Hn&d*fp l Kd95kC⥘;(6u/Cid&>lO'>6ܣ6 #&R -j?G+씳g̡dl!O ]#63IÜ8H@Bg95 !e)T .:=wC pF/@QZ0<@RGI)IbPR] ߿ƄզW>M E~Uԍo@}6zbxFp"x ;-EњNj5[¦xo%u(e,yp(ۥҘ Q>dǣ?irLD1y z-}k.aF_ +!vyI~-ƎsƐiQRi,b_Ʈ x~ 8: %)<ؤK]U8uycm+oBcpĩ֖OT]Ϸ(Qh'c,D?l|qYD%OИXBna$" 76hp)E`b1$F%=-;Hc`sn&ڪDUK?X oԻ/,W u{)alEz}u9,q`ߒSS*7emsF f,to z:6PmDŽ^FM⁂ChsZx~ /;#.޽::ȲTeBv\1;i\CAP+QYp xӯ*9CW`tY}8JCo)|,.b.)@JqJsPW.|M+4h]e?̳VLh`i+h@l5aLN+spiĨ~t,0̇ !ɯ! -lj 2X*C.Ne ѡhHsa8}d@dY$eo&V$ʝ6]э\@7"4e#Q8BJXpNekUгGދv 41"bRʦ(5''0aAbB{BiX.xznq i[#(]o_gw$2;'qH߶ʗ'ymrѪ8xTs9/q˜eSSCU$Axa w9oʾV#U3`4kKQ;K|L-3Y˪;dL'v kk^6Wn}P69cnSʘ9W!W׹VqƑ vs ;$Mݙ5G372"6 ZyrGWc)'q2w (ڝnb*aQ2XsІݸ|g7]b-W:X;zU WkLYnPvͣGfAlALaXDeK$ t]yX.w}UL(]XB #D.<#",46 /l١=%}~{L[{) UܡjV D^1{X _/nozQÁW^)*NCe8' ˥}01 4$uPxב}ə*~@%L2C؉쇈Iu]ln4űڅv 2/6ƃwe#R97r΃Y x= o{}e2) ,+ rJн>B+dQ_oZOGEWG `RcU1 ѵ9z-ݎ—:RPD85 gO;z?'^x>n Bxa1hgjfZqf)&XN%^51nߏG,KG>Wߘ vDjâᳪqHIॸ &bI%K[bp|8T]U[$oP&rEc/CnBtos(!yMYfHt !c.n5gQQ-VPsl'b7+ji~"o Iv pn$ Wїǔ(:IoؾIvM-Q"k]dj?hA~Bvчz37$?9-Z1`DףXF2T{#CWjSg 4Uq+gyp|%$ә;xšӀ(.LtzgWEY7(Q`B&Y%!8eyZ ΛsML@㿉M˝RÍ'Lׄ<1Cѻe H\jʐIDlOپR5,m͡^85"@7{&Rn,=^h؄py[w^q,LddOrJ).<2 I t㶩k;bj'c= c|Pn*^^r*[u>NgS8vۡ\e$cJyXصcAd/~2I$[ h[3,'z5)8S=^hYhBcy7xAӥB<ʚbt#w#K}C}Ϩ1IpA..VpDTG=^%;ɤCYUG.5e0AaI~)Rqgl阰pUraP/mfOBtXk+;i>\ܥK4Vb&Ól ՒIoZe[biOG`T;x=x2n1S>:hi`#h?~1"rDŽ=s36e4wQGx{a{:nE=iӈH;fGEʢIG_d. =dcዌlϺUEb1-1 ;7h}Mٕ/,! >R U"еb9qRm/D(F].C#TBewtܗ2֓mZހEPS\<~oumP|?_0t dӲQ9{IJb4ccc `}!2 tQJGN/ΪҷEu-+noDa>~8X<9v2OZio煎:3z ug VI'> E{}oAv@DŨ> Db1˪R\nL ,$h^Nm:/4sFr 8+-a'A<Цө*ɓ,ax$fuC-,>?=>v*LnZhg?&/$=-;O;cj љ Քi&˂RV GcR-х++6EaKvL.z#fL8cHRAhYAV;"U+P׃cKAs 5?l|#GO+o)odp(n$ ʹpwaSBg2zUeFl_ǁ9>[$]Q)I]ocӂ_9Kaz9_s;㋓mn{-:9|V ZhgZ٨Xz]M3?4O%O\TdĽJaEj8m=ĊeZv$`!ڏ~+znMg/Bi[l>:<4ʘEw)Fg)VG"uZ);{  x\n,dda*%vk5e.a(=5xLƕi?Eet<~?=hʢAojޖs|қ(.ࢼEz@JY_4 {ZV7vK徙&6x|qQ|ߗOe`mlgr\#bbs[stb֗t4r_ezcXpV{ \rBW0G x;s;Y$vs;?;z;w s}$\7+) "-!쇑&Mĸ1g^fkPI6[S6+-A?;~_tq.W[tHAPa|30~?iT\StR\T퍩mLZ|n. XyX=vGVPJ?\=:*X傠lz7( M$V_Pp-Zë, ;bJw0a'OncӇ :bTu/=kGRPSƕL:l >tp =\us.BpwV\wHx:x}%O(? JDC ~D`ꢯ=vyr(ǣoJ\쟸I9#\T^QxA N|8L-e7XR>#ڄWݭ*bOKptMWUp\C.EXlXOTz&jſD BКɵJ1쏸/RmWj/o=Mf2LjQL;bj+ԣ/~|t9yOwR?Rr,
~H`]W-*Vt c|ŋgPKϷ#72E$ 9ڌWb^+oFxv8Zf|tч$~¬e"\is*4_N-+QR^Gw]ha?b=ƨ^:Dm^Z9)9`jyuՈNs͈w,BNZstЌ&_a:M3ۿPU*(AK"Ņp8ggʐQ">pǒ+U=7$bx(% 3M񙘋»+A4lzXzOlx|g-Qi)IRqCQ*B$<~]؁e(XU&Н+v 9ew䂙K;J.ZjL'3N3mV@iԴLuኻD #CnOl_F%ŽHc`K=!(4Y+uOt"wpa3,tTQF#$6m|vy㏝ [^tZl[KW^lGv2b9DH@dC=5DҶ\GB !ڤ gagtm@@ ?i8;#|tD‘+|kRQ_"2e&dŀ# >̗|3kd (*hK(e!0o-fOEzƗ2Xr7/A 㶩Z~ |mJ'ܓg$,0"^LUC]pMOyQW#;Ս|| m }S#ׂ q@)Ut±E5i鑎y![+G-Un??0J- kxj:')A|lv"NYl*8ډjijV&bwHkw8Ů\B6\Ly;~t??ީO}Qi7%pO0̾,:F<`. γ@44VWE b7S 8mr89"hq$%Id!#ãgޣ&xnbe%d DYR5ڲ?3Rö!HV S*V뎒~lP[k/9dis,TNZg!ּw@V6i5^w%C N5úD UVM!UU ȒV yAj\f)d)NK &few˼7I{s X=zq+d1AW</b.fǶ^Sk;8|ޮ)K$bb.E#o固ުqqcr2;"sVhܱ嘒* eLrJ\Du" ՗ްOZŪKހ0e.`8(b*F|V޾ߴGL2)JjY7AĢO'NRv o~eByۑ5ÂH¨Tbd !/ʑG cH9ܱ(jU?.ɉsܑZa @XP'Yk|4_3o\UHnBqZ;F%>M=Նnm!\C]%bVdZ4~18lS` ]bIȊ޻!y5pi}BPL7@iI;iwq:U0 ^nB:ϩP%<ԛbȒ-GJf?w_R>A \K/7v(|7Қ$]4EC@f"i0Hk迅r*lkxz/CHcnODCXowj;d? 3ͤuo+4ތsox¾)e6?d'lM=ceYHt|"ԍLZA0֩ ûwDGI>.UdQ<] [w{Q29sl/91)=Ʉ.8ڢ7\暆1l,UN*N[ ':^Y9/RU#6ȾϧӘ> 6 !tlSiԼwL;YaVV-`Ž (vW8fg|PR;\nysF=:8UIt}MUW8s=&؏h5"C}X:X.?Rw8? {-Fxv~g7Ĕ$px-'#ԃӧRD)a('1W9`Pr*!kC,&]B\X!"KrV 0DtW={OL{TaLnS.|ݛ:kPO,tAv=Q5nFY+j~b+:VN=aa `M[fF^7y5& Ƈh!YO&r0'ĥOC=Gj}~qT~Fit9w}s +Tν!FV]*_H)*ųWQk}tU\gJ<ҏu6>XD 䁳4ta]Kr 4HktJ4F~uu4JU5_gU5[=UbRa^dK'uDo>+P{rM Ny kZ;/ub̉5)  g4D) :kd|K39ARxhX$|ZT };Dbf[GEξZ='!FeQk":l}t`ꍶ b e:*!D!( af ŏCoFA:7ugC##-X2q:$[ɕ*3pբ426-.ʿP[wc;d1Qjԑt3c)T h+9A4mӦۆ 5Wu-P:MݴG[+a(]1=\o:V{fcgx]KgO^%]&Z]m,ŗ1pJŢet\E̓Y7jm[GVs=ԋsŽŚc5Wsn6W_G/+3܁c|x|N7]6(B5GJ/o &h煷jbn`I „wARjɡܗiRCp,G3IGTH :ftBvm7/c×CZФ-Cw fE轖 =1aD6i*G,S\g߄< u jq!ʅ]7Aku3ʞ?xxGZWfݷ'MhLע,D%m^T"{KnKWg\rӯ+äI ,ټO:*VLqsXKgcw`]r]VR |ba+.{SwUY?h(y{I7`a- |lRS*os XAz ]&Q p$P$b\y3ŗ$j@0Yr"tD^nYA>Ev TvՊ/ՐF L'{i3CcLlo`~'éUZ/ Ӑ٦8]W/7j_מ>cb IiaHl <^AO86~/KP^_+aݧ*` mɜj};?5tjXЛqVŴ9 ެ Tə̜G' a59[iƙxEQּPުy bbWuPVZ lMVqg=K"ۢ_)HrQKeiq c|F&lؓM+på: xu@\ sK%e44+cS>Z8XIPuK[8g]jj:ciBu^*Ӻ\ԇ7\Ov5b@[C]m_:b/Sڍ\4Hז`9O90@d*Woiz?$4:%-ނDfӤ!mK.r8iȩH8wF, sk`}kl,R 2\[jv'u`(Iā^Wwk:gqKiwMqm>s SA.(< S1#+eT9B4-JC'8HmCGIiXqF$J{,(E0+[zqiJ=K[gaiejM9vTz޿,X^jrӆ|J ssu)<9\XߠJ&J8\ϨgGФ;lW-atIUVi2{N(/aA;e8+ K$xqog֥P`; .nR *W2}~k g5|&d+KKe<)9*n#|Bih\^.*.QcJ_ՅaoP>Fu }o22zo^XC5{R >{8PsvTo2|R@!65g7ChZw=,&?enMKK4R93f)^ch&C&F#fc *RMv8m TEI5ʸ ̊Te4ǧ)uE߁h򲤞ग़}fTQ%L,=_R~Y7BvoM!0"*]d18Oӎft<)OzF\tY|$oŚ8hS<#i\_8Q ˜wCEFI/` {z$MB[뿔ut t=ƿ$99chtKˎLj//>S=Ql>w^?DA%lOPwGwěXȧ<Ls(!ޱ9Us2Wآ [:Zs.޾+h60w#JuW$`Z=Bh=*MnSrxp/9 D(.Ӳ FHL(,m7iy)! M9)Z*R3ABG?Bծ+w(`E;.wXrF5#oQ'|,`iUFc- DTe.WR[mgsn5\ᳮ%?)#yV>B"+дז(k#j$=QoGE6R0MiR0)!z̺d}I c|Q2.T) ,Z{K6y"-4۟{%\ ګtH`a޾LeSmzίr]$59Vi$)+*i:* S 6uO tE}4C':d@ڋhhbb\OWtZ}z`7E- UL be62x#;m:?OZf,U5+љl ^|ʯZ_d T==ecx9| OBg3 mlfl~`C%@!LJIY=v}lwto! l / j{|]M@xgb:V**BB͟N,2otS1CUNw)-{2tO܃:0).8VkO!86\[K7_3|ao=#/L h~etˆJБ CR e]/@RZU>8tvl@bqH; ٷpr%A׃#6uK~r$:3:`M?-~_3Dv ']|7vL >t*[舯u~4vlYњ~ts"p311F1[Mśeh=z4GE&{}3%Q:Bw"oM1;Oz_<!֊rq1]>],_ʠĈx8@NR-`%PQ87ƣFs :=3}X।:W Ԣ)XG]@oǥlǔmg MM dvPQk$ɗmt.c]|㍥6ҡL !bZ|~(FL6I HkSDJSyz|3"&5Aio5}  rk}ԆO1WBI~n^fx>?+ @龔jW8(A.ďse?? drsƪ1_SdǦHO&/ѰTzmNd1-ӯֲ*Z?9GGaEUuRmQf|?11%YZK : Au~l2rFO|3ɕQ *\9FYC޺mLƟZy7aoUX<,K#;$p|./*~8"&'{5۬B,HmTܜTl09WKX9ZmŞoʰVCj78J фNS+UX27aHCG[̜,[a8cCZx-@m* (<DžgIku#$9[5Kwɨzġ3NǤM״"@6rfd}~5MM(Xco ܜw3>Hڞ&l]zOE݋nNJ-:`dIp@x"pPP.eA|lЊvu|a._%Ch[s~m}<(5h z1iz!Đ7I4[L#хWx4Zٕia=)b#NA9 GS;kAG}T9Hذ)=W-}=/Kq= c>֙mq=F%RE L*/չ$@9lAȵ>lzѨ+_8?1x[wJpZNR[s!8}EYRY" uA=UޔlT^v<3 h'֛%GZ"ATJgb}$EeBOllW2j52C(tD@A%ff Yn@Ơx|QsvFRID\`գ'W˷/N)ӆk[1dwk9ctQ6 )4z1ҨPtqОw.(o~KYesnU/a9)+>ġR@GS^YX&"س%7t<<]&OGF׳.*#^S(iU]— jne4G߼]sM!;c*] j޵1tƭ(SzcHXp#)㝄7w~&vܠC;DA(:vQw1]\ٝO9*Uo9>Lt>Qͺ2Et18GL6{Vhlot <#C6cB6tRC\/r#j#ҽ'#liJWu?D6L5kwF6s&4!wƽ EOqw^\v϶FqL+/;ɻ)qh(T4qq̺vF-QpyGQ\ %O]%Զ`j9LK5lCuEf|>Rtk>^V[}넗OCdk+& |1MKb}b8bv.!dqosUկuMJZhYT߶GW}NOj\pvePD?FeMvbqlwKmzewV).4;}U#{dr іy(ߍ=֕43B '>X^(1)FLxLr9|0KJlG #UtCU%dcPS?r|*\8JK~&X $Q ˠݭ_>ª!EH }qŏj^dzS :@ʐ1ItnSlU^3nZŏCbFo9\AmZxog7}io_uVI==n<,'euy442ԋtNeјr@ xOF@2mTg}C>>5U^y7> |`}!(M <1P^zI zB8.X.`v(宑s 9`ԝP1|dfYDtIk*N9.$%RLOWz罡,Ѷ-ZWMĄƱ9=0,x^ SZ`ħVAڙ # [C,ږߚ'7υVH.Y*xգv3OkI_f.pnp% b|iWZź*x6vlo$`0cWwz(>51mSFT$>0L i}HmAC*lB)%nqI)Q{4# e=5xL\t.,gdU\*{۷4~_Wn1VY-`=E\Ldq˃jM65V؞@@'3`oՠ,+?`⵵YDr(QCM++~ͻ{C&/FY%U^nK _8~+݁AB, ~(|Kd+蹤J/KBYri O?hg~ϢJ匁ծB>{8 '5l%,Y)_7*+Q7R6 80xPe## `UySf~}6t,Ms, k{e)QZ x K4x{$X1kbOh],&Irh}Tܷ$_Vynwmֶ,{hI[d.I_爏]OIP607ïW:OYB tP1=]Oo;㋩t ('ϰ;5SCW8UekD6M9%m[a4qͅPYDëHO)N}ڐ*)9@,G? طf7_?$m;.Q;Yyy.7ߌGa+|LZ{+xyhPi| z"L.TD}ZtiH~`5[Aa y5 :}Q:I#,%_ 8 q+ pA~ڱmBK{͍ ⑤R6X2Rt*}{['AB_S/n>Z9[3MI9b iجUF'wC7W X]2CV3aA5dڠCdkdqod'IjӇ-Юʂk=hChZ̩"==krf?,8Cl׳0ƣ]^NW$‚T;L$B\d| v15beGMΨAH0]ٮ糋3>vGK罖io9462*jh;5|eͩ>޶?ﺈ:91t}|/N%l௤^\pLQ "&cGg@QӋE}UٱtM[dLm3&Nj 0vu˸fږ8rӧ.&S^PsЂ$V/\ t !39tJn)+Ӎ ?YƶX흎dR(F0o&tBh!5+U~Xٹ2M 1UT4!^Qyy:<ę"-Coɱ41[=K[,y7zmz^?m!6v=4͡+~x߲1ġlq{[$K+~xڡo1ї{H1;ݡ}M*x/7LPUj=a½ˬ~nN}ovWdxV|7@d!3/Eٻ)ڃ:#̈́o[K_{l|D{l׋ߌ{OTXD~&g}o*Ch+,MlVq%\G"+C%ţA6m ]lF=I'8J0@?fgC! :Lg_4ͭ_Cc ύ3o4F4B2.zs}DPsc1\^Zk]kXVcJf)G(3>+Mw!~N.~}Gs=Pus3'zwkQ&xi n9V|Y3*/pNmsvAƼi,-K-)o3ݖ)%Q;D}jVe?*] N'e1_[5Ȕ8H~ 3MQCj/ӅC=9 lS+H/f<;?}oh K1JFzGJ,eJ?|9:9$%E:;o|2 tΧK%-dщ!%2gRD ;s 5O H(c,trZD{RH2ZPt:6,%$+m?q0l'*GG@sTP fu$zAW\y|@Z4DJHX"E# 1r<ҷ\cd(q9WP[X(0ux)*SBD^!ޱB~.{cսbdX̘̽ȵ =M),2Fi"20xq7F_jT_S%VJ{k*|q~ q8=y&O#f~O~if>~tw1GP#L%Hy"4!h.tcn@힒uA(9u*m߈X5i)ԋ3<-W&Sz 0[.6BA<'9^cerҝc?H3HR,ߓA$x A)ƣk$+pΝҹz 3Ж JJαw0%ɱNO=XI`FKʹ@9e-XKJWn8=6ğLU2=1ƥ;xqpgN, j5$09s%eHzu l7lܬFytʙdJ==0J~XpTkiX kHe.YkN`\@12% 23K)S2( 0(&l "`dCHZnrV%蔪5q w_5,a ߘK3NpÅ3biSvuizGHҋZw ZNMzG?TRmbʘ[:%]BIQηtef JS(@hMth]̏yOėZIGno4'MœJ(rf([ nYޣ>mކHa\zG,nm} Pֈi;F˽H?=ĝ3E0/Q~˟[HmW{θ V6\䵘Q5D-*i6oW}w[Ri2ψ_;Eг ™k.0:(E]DkIǥ;4@͹oh!3/^4t@g֕%'ެ&Pjw)-VNrj%aҦ6! =OGEI0aMs/W1Sh\W+>B7>) s´K[|+ކ['r*[q%_OjW¦' 9EӦC>T%Orʆq50x77?QzL64%" @]~|I43t'zTHRg%=_(Q/0L uc,K`/lċua`K!Q<18KދŪd[>W*(Mc;jͳq-ގT\ATRG9綳ioMOsG7b}E3*+ix gnħw:my>M5r<ekv/НӴ>5az Y7ҵ::|Q3st5[ȏ:OH ԅ|o.Sp#?Hob@N[sis ;s2/J}ĤQ,^600{]-q9x>Xǔv{^ԔIKͻQ 7SC+ʼJHOX ^`=@k{[cvehuFwO>vu1;mShsVi~ g"Vt=>iAK԰h)־[@|"DGog^~=BXYSߓ|K;BVMbdܶB FIK߬Pf7U$΃7BfP(`:sUԶ?sr*X]c}ȩжϨI-a2l #뙳4.f52+ Jp[ 4C ד2EZ"!o}Z( :ح֒v+KN))t0T`LN]JЂS%hUU8$GDŕU,Kz>R)qt1ɛiIGyc: /p[ݎHO};l ιI;tDKβmY4oiQQ'cI0uuxh>;x/6 WQ _li眤@a-cH >Ϫ~1G#ܜ)N'Jvf ,0\s M$!$[:ϣX_軇!H2~8ԝj=U6Va0F_cy.V]HqhG\lL%OgWHWWJ@Wg2.\?ZtlfRCdޤ'kypGaAYZC:Cڇ.H݌䋎SY1CA58:E5E*Fk9emGVXH#fu 1QՔB0{1//)>ԐV t*`1Pu \*5X@)"xPQa$<_4%q}ժ̎X5IګIEL(l;7f~laR$IeL`'{ g<<,97\V'(o'mo-;N'k?:g(ao u!+%ZR (cЄT'x^}f.P/VQV9Zuu/rF eOx).u^&7$ˮG-FCf"yV7/X\_YpγgL=tfp١}XI[/p|L}% AU<=S U{=hچk`[ߕ$Ĥn𕮃nc m9aZqpd(2o2?CZuq>; }Ӵf7XEPQ7 yx*7&ޒ׋)^$OyELT٭o Y䙘m sCl NAI`t*d m'=.Xf8-uu/Ǔ_kuỔ7wLm"1rFի$pu?}~2Yu?ZYv?KǥӷLu|/>b +5 tt$c(K.vv媔;*Զ(C#%G11?.>bܕukMBz1qu6]wx>Ps$%x}˨-QryFushryMɡOi4Xzq2GJZH8^LBİetuNUJ) uZgEtpA fmQ)3^2ٵPIV/CqOmNmLt*T kQXOr @ZvҬhvT9?]`^rujNT8% +Y,xocs<> DD <\9+ +yt*Ġ<%hoOp9ˑtKChRxձ4^$F-`UG]&Sd6{/<=dnn$WGFO)C<( Uhr v}P"Jsz]f*f%34ٲ_f 66i {}y`q@A O裪h;QqC.AHCNS:Gx.Їv[Z,Dah!B{hn''DR=A!CWF<˰,: VRc FpdF8Tn>{2;gwq!AY9g¦;0gĶpLd)` m?GYF{3"c c|x.v luFōt+~q˯hLF/BV5u2qvɯaA>Rx"ϥekfտ@z|KgS'0l_P1J&agJ:IwLOt2q<:o1<2I>&]DAǡ%M|O>Lgc#rm7tO޼}?^=T$$!R\ʛ:u p|+UTGn/k@s3F//GoBxaA8SrZ&GYZ /ؖSb֗9[N5&?r/~ce-u;+ ͹SYeXe>@Ty&2<m]v^Y¿FJ]': 8{_n}#}A='+]^ynI]OCvi<%*ir ,"}֦4ǻה~==i/_ϷO7/ӛ{8fHONwM>kOݵkH8l݌4UEaQ@_LP $ȹ%K4f f"3jg:+v CqA׊wGF)64+֞dzc1pb0Fb\|nB&'S! _FS䘸S9ez~s4G@5;ROZPꓥsQ!jC|pc^CU\^TٕmЍiSbN0Q.ݐ2! tuhB3S1B+w6t6fl|2B,K17mV&3{6<(@=%l8Ps*Xn:iP|vw;a _9~O^MԚ}pZʕ,$%y6*Q9؏L1ӈ. ӥHKj&iEm!w/;7Qw8X7fNw6i;4nRN'oͿ/g j,*V7́9Y4ȶvhq ,eJ#E/UOh(윲Ҵ M`9SKx)"Nűr+sD(jԆYP/7SJMOI;'h-sϰ(Y(uFU O.(Ju-DDJ%O9'aP.l@~#A<_Po~wկo_~ S}:! %孙bvEn Yt0E5R8KXZAnԨH[\d=b6UKԋTvaqQ$`ǒȱb̔ҝ5y6AfPSԾ3z:grdw߿v-J*d*{ov:;I8gӯ tRfca͑t|aQ?8d[)(_>XRb|M AvICz(W"FCg[a"!idX8Ut+fp;OFܰg)L4нSGA ?O2ڇ/jS"+5$V [|[^qBUS-q3'̐brb6@ꇖhst^.ȶʤ̬uuTx^|"Uh}FwL#=Lp=FJD-l$[N,Bi4!&n ԽripU8jji2 2%V祲Pmxv~ڪMIA¡ ߏVz^PI4(PPL%%FO &'AHtX)^ŀVꩄ>)hx@ƕR4+H!W¦T6 \t|h-0W [ߠEle;dc_#nFNf2u9\ DBG<+h5TShf;8`{rrPiif<::6*3SpXHj|F%xH9nC.:s$Jr-p⹟2>GTʧKo#ڃ) 9ib& 4Xb<%R?khƠ.|m|٣r0>6P{Bz"<= XJ>> #c4z0@<lfv6!G1ʼnߥGi˩;f-‰b ÒaPu1Χ |L]̞)oHMqqsySR*F W=ørrEfHoa+w3M,GoU< r3FM&jaClPz[^\<Ŕze\N]f(=<g8]?bkmʐṇ*!T j>]H h eQtbP7:bwi;rC{G;Y&hs _ j*I<<ї:5r۶YWr ŝ }N3d@;gYڀv|ӵcUrenY#ʼZ_v#hKr 0M ꣵQUZH5aSU DS# SD51] }e;VWiq㤩Z>.KamjI@lNsr"?{1B1`ԱV"[XHI^h>c '"O-WEi+ǑjjZrg|x[Wȳ!}T xl iE6s ?'#-'ZH6B" D| g|ʘȔD{dtV%+8x7kXv`K~oomօ/g /$eN4nшX :zl;0RaDBU}0Rgɟ|2$ =rVJtGP?nmmKOPUHʘquh#sxϿ˔g}&D%y^(JOݽ{}$l,jcV!LTH4\S90U,l٨l{ïwOtKqILSlk28Vު:z(`dlׂ,f-"wvQoAz+uS`JW~ظv@hc2Ec; c)@8yA$-`m>Ws.5L%4JJדᔒXnr*! U} xJv-Z( ٔvs~ ZHS%COeBO.H78VmM,. v8O'3ñ.^;kN(!N˂>6)D<,p`x@\óQnfvrhW%$(7;#H9x"seDBM@Xy[FFZ`OYܼy67h2) #;Sm ć`ܧ3GGč\@`} OU@u`vB^ }D+@pU{uE|q6gK E^$ĀYYe4n 3<[/\U_Ln؞ U\u/a:\n`.ɽtS*)ï"nfnЛG2s+MD6/\6qtn{+FU0+,_+/2)`𫟿 COQ_k\кZc2rʧ}=[|R, 6#As&?zїp{.<>N&~ S xǕ{/~ #>W\{qp@>@+a {r `qqEw4sli'a:{O3 Ek{S{s:%Rm.\r]N{7"B^bx[TKk #86VBmtNcQ8$2о,.6RWBKhCeUJP];w(wz|%!:#ସ :%вSER>r1,kn#H1ѿ]Yohڕx ݴR Xgu[Y|HPXB8s0:'yI܎HQ y^?tkKget'xyJ(&D&iJ(@\[?C\`Wee4kh4Y+ b7wؗiՙlG ap zox.͵RTH7N4mN/_m}bDWX^1 '?X;Mh0Xͱ7~N"VKf.)pyI4 ;f* mG. - ¸%y.a=6WlGlWcǩ'׍nldך`Q_n󵘓Z)vYgS r^aO'$?XܭOhSsܛRkw[ Q ,1lո^4&8 /ՙW-/Y4ЛmރJqO߆fa͌|91 E 1(F(ZS6Z H^89F,*ڀbs:z%o3 n`Fihcm񗧧Zr~aMxnc(p 4"b E={ڧmUnj_ʀި[+Cp"T'g>*>ZpڦCM}ć;{_<|C+=M}bpsg۵ϯ]-~hG!$ܐhe9b}~ 5$ Tfm|sfA/t DiMEU q$/ | V'E?xr o=( KLYZG`J a^4na%G6M{%6b7+].Bݠ\SR)ЛWoݗ&Cp8Y(ePdyFiI35rDxsГ b<RMG{ieґ6N`N;{nEDZ>ypG|"zP"`:Sx{G4Os!Tspoś2%n 5/Ifj1ر{Cgy ㋧l h񁺈s,Ad/ԙZʴ;)UxܳɰDO.b"DKR+:z}k甀.x.#dN%4/Bp1t-=A᧐pVYXgj5 %˶ dE,O@ b@nHz$U%$X7ЃYexÒw렸A=F' fR.N*AlFT'yxN99.<8ٕ:eN Cԇv޸z1^NB*cs |kԗhhpn/&6|80Xⶀm\=*z4LûG^l1(v>Һ%c1%PYJ倻 gquК bl{{3㨣in 8A*$B A35>_u|5e |#cV8m 3za3ێ]Uu]}s4fH'm7߸!Qtš$r%"mfaΪ%Vv67M [8/)PIEp-O+pygp!p㷼E%ĺ}`׃v M.F:2lzO" P\GO RHsݽlNO5`Vx lSgwp/0.m⃇_9 8U¨|q,<Vkg.ͻQyż4kSU:hoӄ j]-ߪ7s^ 9kݜn[z7dS+zKṃ u\@lc-1G4Y^$Zjy f}G'[<$I'*&OK9E\ZC9.3=}| K [٩3ֆ< K2еӠ9e5y.<-Y-#f3UW+t|MϾ&վD[D4p (eFZ2IWԆ+/]B^f:HP ijGNcS QgS5D^G+N к!@:="I"NO)l1}[]3@8ldl 0] ()t!P&%sE.?z;p^̲˖n3nxt9pT°0\ۀ8.ន\ }&QP uCG~y\S#4v@5;Y2={Ws$.y2ԫEt?r1]Ӓ(-¥0 T>Vtv<*N\.@̨/PXZ/7F$6@qrC\f&w҇=@Ej,ʚݖK^f8x%dTRP. Eg0 LYlyk\j&O;{P@.B3~@v_ބfA@MDP;€JR?sZoe fZ`uYSFe%M 7l9rlXA,c̛@ktXU[JxGR 2dDK" S2<7SzBډ7߲"Nkt*7YJӪnHK$bo|}_^f(X{SGG5%ynwOwܽnrUX,vUhX1 8*26x0F79DPJh#?欯)M6'2gaW(U ،MI@}n|Ef׃’ wRl!u3v>w/&M#yC4t~+:4%SݴGχE)?\~Ѯ rb-\1K5|-B% TbL7eڑ 9,m˕Ѭ)=;N VZ)!nᦟ(JAKr(䪐^tvxȊ6jz.Dsu hMCGN*ɢ,Kɯ C]*x-4y<4؁ %8wq| 7 ̯}Vd>%{xjx@FcA!A>),k/tKhM#˿m0(˕sg"V޹F}n.GƖ?2|Lic>)<XǿX+KK=?LJk ou(r_4(~MPAw1ҫP6*jG(,z 1,DQP(zgP޽uWw\XmIvNs'Pa0 Z lx-#; ,;)A)<G5蕘M0Ž$y,G' aBTi ?tҰ\W3 9X]` hjCB`B` \3@q]v߯`  4/лgӘFM/X9x6ͫEPW1WZ"?D:a%hG G8هUI|7'lbQ9&I?# =di Ź{Y0< a5sˡ1Eax<]xm^UH 9mM*a|AjA(el$W#zeXqv%sAsi|rGkF`; yywɲPC*=؁@ mC-w/wyKJWt9ĭtA2AV,% w caV<}㎱Ka~?gu=9$Wz/DAZr +}m8v ̝BMH%kț%#Q=cu4a 0@%7a!0"҇5Th@F쓔YqĴM7z!0X+p71Nfz΀lOqhCt5tXw7ã9=>k}n&jVcECe ɱʸg6c,p,Ku5ƈ," bt/lO- MW Xv(|!']&xC݁ҖK$ 8 3Yj?OݫSq{vQJEV0"A*|dc66xX$Z1D( aRW0aK#+ܾzVxjr8t8knf6ŭ]uIp%÷A_$#^],ođGœlڐ1Ho\:)#-Ʃ9NaAySI a&٠C:DCA.ã3Fq,փ$s4ND*u)wx\ e㦱o&Au!i fv"EMDӗ@Ao1iu,f엘}E@n"6vM%Ƃv[HmsLu&-i$u!J  )[Wd9 O_4/{3 'H@7]";PJr퀝م p=V"uلjV33{vai,پ{L/=8jnd_AnW.bD"T`iM|>!! bN3 x TeVGgwb =b Dlc9d>FTkܥ 2tWpgPW쑼ĩ@]`̛h%t0tpڎ;7wp z6<θZ+zHJG_Rݯv}, <²AIF%轄/?]}OB}NGA: 9hIT; ; ИZ b`& V(Ha.+<lFSYS3vI+˔_ Q oH N4aa:96%ʉNy}## =rYo5xo{rl9Mk|?oh%9/10yHҒ6p;>8e'8Kg$۷¦$/О'UZb)iD\2rlNs𖋋OE rhGVɉ9Kx6t6dxW4J0<9Y& d0g,G]50yO^\8Y+3ta:ERQt| u9:m+ZHk(BRPߞUg{4;EcmGcd`}ۡ9,zD,%/̵&("=N$Ɍ Q3?e2'qcS| E$ 4CP]vqT`6-O'%T.tШ+H)MPi)7K_<>`R*dƙl(`cT@7`z*4X_eҘt+XQ%ڣA̷NOvaP=438{ض XeKt mr$)RJz1wgȆgԔgG+_"i~M+&GPI8;_<Ѹ%냃_n?p]`3n=ř7 ?p<ܖZ)\w<4*,a+ 11:=nU]B">x:kfih,9K%c 6@bKE=QAl/vï%,3UIXte[KNlXyx'8I!"$lfJ;.Ёk.P\M̀-OqC[1,c|4UhL[ {?Cy$^f &&E5p4HDQ6YX0zP%E;jtoa샸()ǀBC"+uFŖ>$?VsYuxƃJ;V`"¿[ zshqpjnu^hֿbv_ROk|'/8cb7eUh:4ЈɎZ3P͸hb<1 %ԢA*k);чi6!t.fcbm{&9 BLPCN^BkN!Lv0oV^nJ_tG 1}4 6>7hxv3\'0$o ! ؋^_h/=7,}){X]sE' +yuMU+PORK[$±J! c$96 7]ok-­ 6=)}jvW0d;Ǫ}˸ő,;8+Z6MO`klJDg_|{K*5\!^J[27 eMM"L'B%4S&X V0GŒ>nX4 ;L#X< 5Hn_QsZ~ЙڨAMYDY^kM`]w e/,ˈF~}H}U9m}\nPP l@J^Ap!q.`>^ڙCpxZS^RК֑3A?J^TgXMXG$1I1#"vDl/%GAޔe=- ~פD;Qγ$,N8޹11PP;F7X}Kv7 ݝJh8#KO;B`^HD]' VD5Je/bnZ D}('`B^Zm@?5#j*%K( vn@42&:=w\zR8ȯ$Fݓyݳ@`l)ENCF4_!O fC\לP339X''Ry̷M@ ^Qܵ3-. F2[6۱V:W Lb`k᫡A|yƆ4f+biI xeLm^RX 8w{/NZrHQ.6B7j#vv6TV>pr$`Rza/}K_tbUIO1oɇi( !砱4' VT-w4 WdpPl@P l)- 3yq) mbSʡ N|AVp (7rU҇0F;!=\{ph}$]tݢ4c5I \+J& e'I v|,lp(`Σ/$e}SwvX ,t2]$6הP<)rl{ifD O3pzKx)hp )@B`4_[@4Q#H!DMBBk?"tU3E?u#ϭgڿLс+Jl)b2hHՇ#`&i^잜-T0(9F:N'tj3[|x՚6фS :` 1 mC] š]at{ R! dtۘ{:G Of-t\<&Zl/b~@RGN2ā&wI|uwL/}#ή*ר݇O?U[R50sn;=&-8(;| c @4kAp]sXTJ5Cm$BmZ0dXPGR"c) ߽U7il~$a st)Jid\u`P \Iq ϡi!1?yd5S^an˞=u ^P3rD6J~]a*1v_DHao bOqm+n0< c7O-ud0JH ؔ@c$]k@8b1<~v<.P({qjӉEQanYS82|CJ Sп$δ4{Rp^p\^JB=:YOa_]@t" R-c`!'|+ tC3Z&G.0'mչ*&P7v#]yj'첣K SG@:—gL_{~ Ǧ J5) TKb9Pޱ}xAgHhU :;".Tֆ@oiX͟c Vڻ\9wI~Rvw:KɴRH5#"ǺK}GuT"-Wo:}n.K{FN8^8j>'L12Y %uf dύv/]GqDDCi~{Y=*X`q{ qtIJX:dKe. Z5Hѣ=i^\1?dG]O`>zl؆m`H٣p]=;<2:rBy54cT IKŸ.dPiɅ" 6GbKO(h)y$U`.[pMM V?S8!?&=0,8R , U?SD@MֲDlJEH`83}0+r8qɉXD})h41oZfÅ gHٰeMy"_)@d_0$jeo(I[z NfLS.h޵ YG Π+|ZmҔdPטKcb,tW GR֛i{|Q:JzLNmJꖜ: kb5rOhR$/pWBX+pG!Ţ#yZv г=!@NkDLʍ,1ʮhw^(p);՚nS%Tmt&s\6ιk [49V,*Ib5" _˃U 2`EXXӘKu -L[%lp(5̩f H$ 4(P5 ٕ8PF/fBHKw /1x0Q&ʶSg+,+Pq2ͳ:A*B=y)ƒ0om_UC/ + Ѥ:xgd$7AKAN||0ͷh-Xj _E&]ѓV\-H7$CHVst|r`!c O'¼P4MK'Yeܼl^6k4YtLjiaf3~3qL5g7&qS ZtxY<EA NsC?g%13FI{?I<f'JIFl^E@a7Y$4l^[8hgAy 딝{8(Arg 0(0_ya[Fނh q ,HN*%CP8%&ʩWp;C#p&'*Яv[`,C ɦpNg/݅%%;y{`yʑ3K*Xd +!pb,Ȑ>ǡMj#-u }Ǹe$p +54y% eszpɜ4Iq}ubQ?zl0|M$,Yny0LӭpxCa9TrӐ D 3l4l"~2LPa}b;]5wZ3V>&2l fAi"yT#]?GM-.AW֯rsyr 5ryiٕT['\$*k baj&1Ԭ J)NGVb).4o-j[OJؐw-)$!BfAswlTAZ9eL!l.azb;-B 9@iQmBiL?[Aj;*4H2<Ј83"ƕ ֖ j09g%1'8E 5*v(!楊Sj $PZ)Dz7Pa7ѕBgr_Rmd C:FC5uĒgXرFd1?PdIYA-١p{7nZP797SEd]>ltQFu~Vc 30~ 9pj k=˵*jɬ[3܇0qku/13ΏPV$&`0\)CS 8XE \Ñ8V:L?@Rh矆9 06Uƌ7ٓeS"ଘ]4ghk \Jv҅HY m:xy@SG@"#>/8ETxt쎐8ArWEN[՟/OOw_ჟ){:LBNLERwD̴esA߰Y5>\ k .[yPLr);YUQ#Lt]B_^= &EKZnߎOa8FkɈ3F5;@GP2p;^ENeyݘ wF!^2!A8)bNe M4 $@vM7VG|Egƙ=wgXi72C,"JҸ0@!⢆,nMG4[dӧ0;Oae]I15( :5 S WYB*ݗj~  wz%{0$i$\l a0[~sbt mf^Kiw CB\<њG8qKY'BJP'@uM>&ڄVF4-XyJgCg@$ vDLadzΆA f/ +XEZ*C \z[š}(k ޡ_zYmtlZK8u Iʐ9%ʆt Ӟiws*?j*Jd`^Ȋv;ASB7j _Nl0%ARhFd X]٤'¨hc!Lw^ ݽ8xxpKO}ݳ/z4'\93sEy+f}vM-U?yX-v=(X#{~_#3nMH98('>vS)Rxgkr[~).M4tL[Prvy۳Fx¡Dه|, B\rp_[G>hh"S]Qfk5h&Mq<2jxC6&tL<팥 q(,bn@| Z)GbMxy`bzz_3sr'g#3>ɄWAb,.(A/ BtiRV̚K?q Y-Uaj@/S& iŐ%ȖyW&[x ?9&f6###v8 /̊dRB QJBQ;?kO% $gsxJW ci;+Ü/v/<+jSǏce~lCs4no\K#8I0j_>X77 g&O/䥃a^n']g[qpXGhkw9= ~-A79c|eU޷a L.Ir2Ay#]Qߒ.1IgO(7ណsdLx8 skJ+]VIS< IL$(}C`P@(x͒9.BwC 9NUgh਍?m' 6GCCœޖ:k25Ni]$V)u9n1|{ QaE ahz2؇ 0s]hrOd } I2A1c-|&8(`>1O5Jz9QRfh a[Z$pۋiQ.mbv+yk7 ~EcY fA!QE?:|0gg,#PHwnle'SMjkV9\N8MUV65:{$$ v:j2y} Z,>[1q^Y11!6!^$<0Oq<(A540"8Uc7$ hQ6tQ56ΤƢtVoru/(vo綰\LWQRpSOq4`wc4 Ihδs. e*‚+;RMVk!+?7Zb:86o"sb"SF j`p\ ԣhe)C)6ڡ>zJ"Z y'>b 68&/PRhzѮDab @`YP oEI6 ;ϵ f=X'CSh1! =.Hv8R:cbZpN}D{AmSI g|hmC .kĝH~:)$PaK4vU\ŷΉMi:Fylps* S1p 43y b7ZJB4iљ `7>V9 dh7TkomQݗځ P}VQ  B> dx1\)￸Ѕ8OPp_H ń z#7A霴K UhTǤxm `-G?H2݇@0]D RVDa&Ʃg`q58n Ą|{xt=P윗ч|8BjĎeӝswAON8EM/X Mp 02’R:n|8Wȇ5ÈK $]󋔪Q&5݁e#FC_V?coa dNcy*7X@ D}g#~H92&%lDGt+d5 #]B/PG@Qtɠ蔘"I+[_(L#7:G/?>|g`u )B{!X=(nΆ Bo\46>1uɤ1RY%Pc΅Ē6]͇+ hLJ2(dOsO!g怒)*H"(*)Ex[n ]z/)J*oioyX,)&ʫTh96ʠ18X^Z lhVĉǬ0`7gVGQe, `?jDk 4тHJGM!q>vXCUGTh9#"UPeO <ǝ(2$2$O = ԆX p)ONb6; l|(oZʑ!jɾ?- 䲱#}Bq6t bS:)RblD&EYRS@ZVc)3AW'f20/05X5?0;;:wڅ9 &i>BRM}6;}v{ϐS}Cl˔4VW i"ٸHK3 vEYh-Y?&ENҲ[끎ɶv8.)""L 1XTsH!bPą|G#k?N΁d )Z䴞mzAH˯-1ýgnl v)bw5nQc/Aʺ+wNX@ưEw0`J^mM189jkǑkqOIG FDNƬ{4|kX6D߻n* َ%Vx_3*}qv{b Sh|wDz}ArtV/C\-g+>p*UOw޹r0idF$߰!F/>w9,@,顖 pFiE-H S?浑X|Li'6 D>֥2N%\ a[j%ȚJEHZhTqƾF:eq1`J-dc#'dze7FTSTFZrYI=TƟ+l.XHR4K@Gy5`FX$- Bsb2.1tɫYr}/ۆLF'D:!3*) +hLXTiRqΔ;CD$7*AOv4M)B:Վ:pDk00$uNfD, m!1j/tA%S4(%TOK<{ۂlUƠl=}HDjJ[^74\+ _`kRy)i( $ocsJ9O.V07T5Mz#/l>#T{Hb%׽0xDDp -."bNCE? Y¡%)-\'j亄{SNl(AƉpɨ;\-߿ΉlJ )'%HG@\+)8s!m쉯7].yw]h3b8&npmD\ Dd,AǙŶ|fMO^(&X9JTI.Wu/rQso MȊ6s`Tmܫ2Ƃj6~9;h7874ʯuQB DGk@G` Tq7ԩF8 HMuۘJ:Zvc+S3 iD) (<'?##p{nѮ z zws:H*Ăh$@)AdNJE:މ||?fE Zks lJ! E(NL@w< @,F&vնb&SWFgm1:q7HOr,%*Zd9pY{(~ʮ,׊lGS@l(CoUNMx!e*V<?h"#+7#;4GAJ.GMJ0&B0ڊ@ʭb= m`YiL`&P~ ]mg%fߥ rkú,)\FQ,@yQ-KG-HjEF焥0{53ⱼ@ O)\ 9e 93QKgZ- ƭh*o/DYmE7@o|lmDk Ô~6E]HkujkT;@yc~?>*6]xR''eXH)-T zޞJZF @b8ցM WqJ˘?6[ ͭMSbޚ؂ $) ZzY`Ubh+X#` X=rmg,Fqҹq:@="O}"A.qX,7c`%j Lj(s 8/iO(q i7Q!TpRqmO5)Jt˲xyXXBS6p8OŽ -gA- l)&7NRA!  PR{?S+nŴs5kChcf3!2\fɜ(*Z0cp"dckCF55%63JH4;̌<߱Bʤ0Œ`EC,H6tFHq&0!*[J*#΅̫eٵZY|3ncSFm}bLQͷ|CK_| AlڌP(Ie nD\,SYұB-EA ׃RPp!jcJGTȂ숂9{qq# Qw4MVuR*`$@,T{g.p3Ft 5q)D [G1#I|Tp[ zx)mBߔU{+8OЀH%s%b zxv(;ೖǰLqRrؓH}1 l:-\ (=9Hhбn9t E9s3ǢXk5hoЏi{wfoI1$B3r q3H/ΫKk[?FUrn%{ :;Ë9%ɘ%.&f JJ4cZJZv V4$$  ~M]~0(d*v`8cuuYf譵c2clcSXDP1&J΃LB~>,Ɠw1BA#@&n(SB+T~TRM9+l .!qnüg0YgX[r?rn_,D.cґxWw&qKmD6ylAihgl! fcx*0ukkϙ4S|w`W5c;j*`H!V]B}ӥLf(5H tD4e$1슓-#S8{b L/$nӎ DGz}= )n)zSkFi No=Ӊ9[clPXn=JX̣m5PNcD`@I3PD*#h7ZRzh+ F/nʚ8W.v1`[m&鎤`*}f`.%8;z%~} jb+`fT,{;cv{[gi >0 ty@5@uM8S.3=0;F 8p^!6GLUCIAD9NotO ԰p)|xC,! +wW̫B%u=ZCZ"ֹD`JJy+f3R4=S5\eZ)FM64ۄ/5Wd H;$61!O. Cۙ//;g]T0sAWݬSARoU(& 2̊-@ël#2N&16Yf/g9V$!GPxK^'>ŢmY&S^ * d3 $7!CfΣ84\؝fQU'agbSZYb# QCde {Nx'W%`kXN4Frbm%7|ob$ PҞ#.NJ!ÂWLUX&QD@ pF@"d.yT{6L2d-obi ˸1]f~!;zTc:|?9*p+NOy+6YF k,uwIʜ6npP{Xi-LEOA);-_9>U srK%uKY j7Ԁkh ӸζIGaSgvn1DA 0 cz%3YG{pvrߣ E;?,q @q%[>t +D|j^(&Uv'g`k~(4uf邏bxVbvW ۪Aj]5D`8.r]tK-7VG$D4vT ["ӷM܎%T\܍$tKWNqۻMԴi I?@b_ϝ;mChh*lSE^+P-VmE^x6Xr\vɁq#7F $p\ HbزQlzE3􁂪 ط8q0$8t s?`Dh4GK˪{:͡@{^_ ZCR03 Х;6.X Ɛ_D̜8фqăM @;8?" %ʚIIpe 3nR=[&PS^٧ S޵mծhvS̎qNw8ߏuqlX9!I!4Jez@ˊ Tx?-:v1`gsBϗoq&~f@U`k 65E6XƘQj{3}b/g<^9C,Jb.J׶hxɭ@sV3"L͔¨jm϶9( sh ~I=0,q. K<كc vۘeKSs>inɻ+߹I%3c=P)%X<@t"!'I5$ZJ%2_4@_@zN>=5Z'<|`ah2FPxSa{D-:xT$d}π56C=&Tk$G:?% J *(O9A#6mJT6ӝذs#n',lZD !ڮ: n8_I6'7+tk, &wG^]chf p~ #YZ|H?w"[М7[>MIk-(&qR݃a rktMb|dMe?(.'okE:Tl w NkV7A1R }őN!Fm, MZ! q2ӞghA( D+gyX*G>wOq93􋋡jp;&=Ҟ^x "B@P8>ˉ:)L3jU})JJP!#HTYQtk`5Q45$\ذq R6 dÜ\7vrR<`k[Qdtzq#74]˝,yTC{{&`m  rn#D;og%Qxkā?72*e"ivZ@~x.e)sK(C/ȼSL0$ͧV ^Gu%:e8;9RgWC2ƙ? n1$-WY22N#H;!efj]_\m%gly*3cOX>V! Apeq C:k*ʜAr0GU=|Z!.cU"vgj 뜫 (.gs*y$gUe`LVa-O5 VxO7T=:hKV^z./~|̹+X-KMG_󨠆կR6i]ڭ$L62|՛?FPȡW!fn5ZlvES/*n1J&~V#'bU9weC?g|9M枵dt-~G"L1 Ƒ= ڢ2)MCoQV1\Jw QOvj]pkУJy@dH8/W3*V!3tPeTxes*|2$[Y+K4YKKGN=oq( z@"ib+;_"c1L3 t©1gw WL"(ӀHu͘|έّb$k}֋\: Nr?vac" "g$OP**jՏ djΚIDD+,d^Ztfe8z]N_׍mUg6O GԱ&?{J1ǭL㒜Uo7@#Ʃlj2Q,#™+]P5)F2J|#q{qIE-wr 곭'+Mvs/㕀#+~;ڿ׶xW JXǟ2jڡ6ƍlJΟ/gfTHLG:u ?"j6ELe%O>̮`WɈC]p]i+}#*C9MV#G#;{0j`*N=TkJ,򋑭 F(cF _$O/|U3F8i/I]j^VoU vf8*uN@VExQ98bbHɗ)05" ˆ)S9}l=V_4etbGg|]WYE25AQdJz[$xkԜ9o#7%q ş]OK~ץgߝsBzd>2NOe?)Qt&n%se{񙩢}΍4N9"̏Y`E9Ik#fԢZgkїFF֊>W).I]Hh3 ֺp~S!]hWe^ֈ@ى/pmϕgsFSm8>2*^=rM Gr!>+dΜR<kO\45jU 6?. fQve/ctw}b#J dU6Y60́b#3E VzvUZ[6TLQё[/Lĥ2eIB^*DՐfZFU N[1x0gu z`a2e#A/idj"]LGȻd!۵MFzLl1<|b+"I""zH,TDnCO3CIZ𘙖P⧥ɺ2Qgx杇:S(VD3}U !SVOk ^şђ9s0of(r 㯕}U#S ΪV<^ތ"#;_+{B-\ϸ3s,qjٰl˔M(!|鄎237kҶQB*^|C却~d|2a#UJlFW3Y72ɔldp{TFJ9ʭ\*^\YHLIۋ?f(,2 `oʍho!TdXuf|f*h  ~mU( 8>?*ꢄLM"!,?}LC*192dsJ/8xsC';5aQ ycC 鲰z2Av7;*!2~z3`j@}fѳ%׈n.iC$B~52Si*/^kE1~Gc3yGuL@ooY[F11n'EdK!=#< aoh[0f|% 7}G8HvG2f=ޯj:>=]7UR[FϢWٹJ-"2]<Ki= W-0֘KB#򚇆U?V+pHu5:gUYxw! vTEEG\eVA11*-~d 'TkP4/_9lVTi4וl5#2;˟j~! ͼVVT}^/6t#3o֐OOڬWصcKS\y̗t沎nqxo,N 쬙"l#* {̪$N^#R:EdoD{ lEVʷ?⧒؆I-#$ȏlL%g>+_X2]#&GEYƛ?ˮT^s{F ˚BA2cpToيn틄o{ *"p;U稛oci">V~$v$F ED ໾Ѽ ϠZ &O?yLɐ|"B"f5^YDZ⁷>1W, (Bz#k`es13+ v"S˩=Xquʓ͂x#(e T(7e-Y|ݐVͭ!@lAN,y1xě`!8 #~,-UUWc%Zv7JeGt.rO>G^‑bcTYT;2P~ZErGvcMWEE 3;(##z E*'J4GҢhB}+"$ᘌ/_1xY3̹JShໞwWKNM]Gk46cVLf{ݙ ZYE>UyjS]Dy*D-_3cϷǙ"2 o/.@T#gT7WKEYMW%/!LƆm̂9>с#JF _YfNUFyZdUndJL(*t[ixe5\3 ,G6 @\F32WcB'sm=Q!-+_ u#C =EѨ5Re[Bɔ2(o~-"#iۖ/ȩ$N?h/vix(Ũ{l-@9SeevM|Kj7~dQXdJ)kC`?/YKDu5TU=K߳3:jRHTw.WCU*6:TS{cH\_WK?bT;]FEՍKF1.1V;D.8z ~wDy޾ΙZYp wzj."xCٕJQ4Ox%0B*I?Hz C-a~I퍪U^khĿZV|m- V ň&ah%$`t]` 3ht!_ԇbxE*/m"߭^Ua%dmZ\8^ij_ZVHD:r6xΑ C>4Zx+>\b1> 0r𙯩r =p%Y7фj&]zjo lT^K̿K,VIOW v3 2O_OUvVۜ^~/)ziw5F;>z=C0u A!N\=D(!35gH7}Ox*/_1ƤY\bogW#8bΨ Q~5eVOP/S>! |ǀziE02*r[ڏ su "y&Ȃnld020xDVSYO=7VȜtU|W?0ު|.$q9;*D8 [IJ͛~Gxx;i~UX6:*⥾բ5LF_=ƈT)EenH)ufq+׍kg/:ZJ)>x=rWY"/I=g4wkX4a ʈp$ #˦ YE:l$B]pBfҎK"z!PU`A"]fJؾ`t0 . IJRTp\êi`tȫa˕j1EVdЌ%7ĨB"{Ǵ[43Lqt'un%"8#Vcy3"<@w=4#Ԕ95o5eTZaY;d{"zv.ԺI&|#ϱrb(wSV틁0z s.}JE0崫8<4=@f!F`wi-"ƳHd pzMN`TdIDQف[ 1ɲJ{#L->CGU,~/pKBb-5f<ê}!b 3-8$JROɳ9rR J)\(䦌Gu 4􍽲8&_&[&VEN‘J؅eE|#B) xsTG"+ OteE$&i^*9Y?N^!xJtd}APrXՍ`0"bvb4kqStҪ+pI3$Ho VS/Ѱi (59A^aQŀ0]KъY1ET)bmI&4$X|66ghbu15k` qIm{(~~~a}'}M7F ,ΉM3]1U=v"ehn m7`W0ϘV8EL^Ď xkY "LbfAK.PR%+ThIj*[ә:@QT0unOFI덚Dr0 0{۲[!5U&%ɬ+%:F1p>%5B=\nNdHɁ`eU[+ P5"dМ!\ڤX]@FtPN|- 2i_;'1+I\&[PoLCe-KXb\m#Fиpw Gu^H-mu )O!Pv}lg(5P.7P.koҢaݣź`JHvP06‹Sh"He6 - !Qq95>:D% }C9q HtI7C67l)r "Qy$IatX ʺUI.s6/:ȼ6z̫]@aT6(8bQUq;Y'hhnK#ffJ紾jI=˻Ev#’F|j1QO5nZGW&@B9^D>!zmKVVhe,q V;cpj$ٖ\#,8>TVfn;$Z|[(vԼ}4=7 T )f/s;\{IDt#t!@ |@o\W~.Q|WD %Q;I/8-dd,]DV3vWڬoPrVz1γalV(`T+ېBɥ">!׽C)"F:c#e3> YpЌA@}dW@uwQŜ>~M/pG,/LV჆'"xV.|U&3Td"q350R{@F;ټFfd9"FS^ŕoHdDPӠ\DV08q%JRTAK$B)@6gxbצk!BU)44Y6u(0kul RIҕv fR٦[TERgpiT rw*{pvƪPZ'g d@&`0,qa.Tc%*"{&SyЊL2ubz,ġIhJʰP)jh硽k>%(F8.ڡvDTx-N:IIY5Lw3(-mTsR`9Z+/8zQ}}w%1._J8W[`8+,eg6"8[V?lg)y1>Q.:c6%AѨ_:'nx@R5yH&6 x[xWWqҶu5PJ6ANRS'޽eqn'5js$rOB- RbM;[PL*p }ɁE%3Ѣ[ |+x&-רľ%iƜxacov@"Q3.C}xDχBMVg%A* T$aPlp(}BcɩH%]ŨDG4 LMadNDo"0ivJtyTEd)J׺6\c+2,-=GI$b$!ytGAB4oSw8(_vZ 1ik5rZ4#Aob]7 V)9_,p':!P?y{ާ0ay0L2x|T%Esr@X݁6t-d׹vCJbTeWm2ʦytL5Kg61 냡n6wA4nWudT"C{ i`pW0s .a}@H͡К(P=m(,bh{*:QИz#<XDHk$sVOMm] dFZ[zaљIWSj{XZ-~Wm$1v+$BY\crp6rѰY}hjp&lV`XxbҀ(5<fNj~ W=iqeCҲbl^W*447M9=kMlM3726@ Fј}>O(ggƀ)T mQk$*H-{5uUZ4 &lSYӍYJĶLk5Q2]p1rjҢ1_8=4ɠ'mb븂2DV!q`ev7fVDT'8p]:vIHRW׳C_5&J !2ZvƓMQ{S4vD!A%tTOPԘmڣu8C# *j=ZXnBl8Fz ;ЌC;iQY^ 0$!N>tMtq& 1!dRs0Xe$bUZqV}NKiZ*׳%=p -(uS,VXAzOyG ҰUk̲hpd04)V[|.B|ئqGUTjRيV=8Gk52@f=eUQ OP^(ҾKӣ^à jd`?u?IʒRx$ASi wP\\}` n;OW=jdmVDMIXSנF"Dt}xvGF MBFhcKib^4 =[ѤTI(L2@/4mƪ\ta-"r[)M#"Nls )PN@E<lFiwz3:%L} ShLuXPW 9/4W>mM(#׋Rp4o8j0듪75'*c]ԦRsc#[ܴAJ ]( V45*Up}ɓRTȕ/xG4YJ9dA.xf +hLHITO$OѤ(sHTXӚ.3'"wp,[ ?ʊz4ˣQ/=5YZV SMN pWS<2l>BlP.jxfw U6޳Ь((TP҉MBb5cc.K$+P6bRHs٩o:Y 25pB,GChMA3b qmvUҗHBm5e W?汜cy!ȱ4= /?,1RJOFׇKT^8׽UEisɌ|ݑ#r %VzG4` pbPzK[ gp -JȂB\$|} ^%I>7elƛtjp OEw2%HMWE{j *|0Ye68[KB3%NT 4ˎYM5-m6D֒®.#|N)ͨߑ# Kp`8t) /󈰷)Ð絘KFA)5Gq콐¦ 2leDtbר`Ř]>{ 5m-66NQ.oD vb䎲ޠv)E/̈ w%V&av)#^HBÖ!xk]Y)#E rŪ5{htđj S#?T @lYN՚4Q1L _uic ,9]GWI3 O꽡'RxD ͼs-ĭ.`E3]+Ab*MKPFΑQt9<[ k+>h_~Bk -ր搠laGL(d2ħzSJI,CըdvjCH R,h, ]J;5LBfpGX76 j5zN *CjUX~`xKDZWOY?,m|~w{[C&u:ֶkVpVX6]'iT!QB*[-LViLE8N&nL(J #W[-a6Q8{z\WD@P:69 IJFhZb(pxDhrζ@ }l:4xX+_[GYzY4c. 4N,#˨𪰅VGLu4d;{ πEѺs@pjCsp#RfP|4l,|b70CZ0XRxhJ>ɵ(#24N='lm32Rm"m"?r  {k:qSV}*()فhJ6_(n(Ѷw B0A0BE‡ی яU݃ ~ȢJmXu8g:YkLaހ$SylTI&+{bEujlTX(΢8FW ΐxc&<4y}"Bn~ QA"iR6iCzW`CkN4)`c̓50d (h?*<=E_DMc \kxzIr1YH1ewfQaGg[|IW+00#'߳cDV5AOVq_6iFb>MΘFRBJ43z@h}*3%a 1[^Wɥc6H9k< Rs)E ZT%K6:GJStQ, ku(-ڏ'aqN`LM [rzh@#}61as2I8z=.!#hTCŹQ:Zo; /Ӝke# 6I47ĩJ)T;n'S l(^'<&AX*?z.Eqoqj7emk`wxP$;r+'*ĚԻ*_F|3PXQDNKnn|%Tr|рDD#ݢ@L{J’$)IB4y죳掹8ՖDQ (_ ըrG+*&!z2q1"pY䄺@oVnEܫqa4UMI-U'L = j F߽:C-zuJ^A{עO@[Amh@m-xt,H@k&"n"VP4V[+$Fr$*aą_pUM &WCȊ))g8-zb:x{H|8tPM( [΀0%w&w-"_h72zM4) ԣ KlCЭhq!s5 0ԢkU ;$fX%ɑ5jmE$Vul?"a;c{# =qi==ޱ 1!g7 DO]~lj@9=ňw`ɼrB">oJSɉZj '$\2(}gz+0- = hghVbؘ`yP.kE#،1OtRX"&%5a"tt*),G}AUzJzzEY#RN`F;FL&"zY'媧֋'q'gŭ]fAr ݓwt]) N#F"{wE+Mt } #OF50zRFRK~ ID*g9Y,BfvN1(d()l`mJu쵉t&J! `jR묀&2Ty9 }s 1H/aa:EͽqJOfI @:E'7{0",NC-T~5XˉQ.b qZ̞\zW Q`LGd Ώg,cWD4`/XxL"lbG T"@ ug_h*d;7 #`GuEE6wy,p&"#UOEvy 8uP' } ,jI$0.x3- @1.SDI}#^pz袇ΑH[0QmHO ڤ5x2RЂsS:H#Uem]# S[ /(zX7'70( }R:OZLÝmn*;4vK&=oͼLB$RPCʂL+Ul&[cjM8h5-A4犐ֈ-tWZبIUH<S#cL-l'ߺņ}}`HIV Rc>d g$Kq{5$[ķqа~a`m-LfU4QznF% u_4*a (Dl#IS *AGɣ.8$ @ !AE\ '<ЋWŃ;"&jڊ:im?=#JČ5'IKN7B m ׺`IR+j{[ݫ o:OWwBopt" Hcy Dp9B{. &7WQm&$%aPLo\%ӇPu}#LJT^:BGik ve`i 6,@Bk6 )RһsxL ;ș`h1vhMt\9a Nؔ#mB51RB{&*5ƅ h`PК 0) 6y.˱^ "QD1D=կ}O2JJ5Vr$76'p(I+er!H9Y_<ZFGƏN1Niz'̓ v0rK"ea M?J3٪Dܔ\#% E*@zݨ V ? w:F `c؊ }!*S$qY7_,Fؖ+ci#x,~{30@,ڇ6 33P-)ݛfB2ȥ]rǔIqQᮭJ b0D>Op|w]}E%GH#ɈZpt6AFNftZg ܲF6d:DH W 1w'G c@RO,p#%B(D"YmQ$xtc9#E*f.skΧAsDˀ4Ű\u$<$Ƈ 2P*11ei9wŒWNUKB/}ݺ4&IXrcwOK%)""":bg؃COGrdi(Р`,D+W{6ud. fG=̈*TY|\lj6~)CZOx 48 D#,0l 0PWE&9y&Lf?mB &EDt/.bZ^tדGYuwz>]?<κiw9[\wUj]$j}\mN7^6Zݓw;S/_拳廯;~9ή6oj8-fP|y[6׫ź_Nr4_7o_lt7^lNBG ~ҦRG"AT5IԨUs}u62vHfퟺmz>|񥞈s y07o`;scųgϏыg]|Z͎WLO_Y+?-G׫& }$t8F/κfvu5[RJ><*d5b% tq刿lVWכu }bed\z~1;ß.ogtSS;fv5,7:L[O6Zy͟w'*uUIr~x Bq-Q{w>˜o.pꦫYGqά,d_ [ؽߺȾo3q?:d<[EGcb4:Yaꎾ-Ӌחu9_-OqSp=lM.--I_曆ɣ.Zov8s3X|-L~L_OJX-Ogk1(tz J^Pd:{{ x].PKz*IZfg7)ܰf_7Xp4jBg\\sYg\^Yu嶺ݷj½Ck,`9|\7uƾ.?Os\fԏU7/_bB'<|d_.yx6Ngd/;Ϻ%WSk=Τ>,鯹>-\&:NVʟ8x2|M;vuO|OW_^]xmM7RqC*-Wo#~ۅC炣yb_/Q9>)Z@}SȘUaeF;aOOd#l9Agة䨧;n5&,ާG/>~ЫS:.'f0z]h T4Vb8bkޯ_=X=0'||Ō=]^\_.uxhϧK|wT-'qw|(A b9=s.n~mV쳰UӠVI溜wOkܺ7Lk*<<*U̺R}cؘo_?<԰$N!v.vO)Ue pyvKGo]}TzϺeuc\ ZmY VoCO `Y9']nl;O[|cl߃NJ}⽁[nEXr[:ݪrY/jneS<ha]e}~zcR]a> 7s,7t#۵7Onw_~ߺۅ빯o_jF}\ڶ`X]ú,À;Tch-}tGl#ìW>ȾFsȏ _<fڴWy}ѭ+\=؇aqĪ8}lcj^~<_>u9{} 7 nmy||@Οƾ?wOKn̰g7x951z%kذ`X}\LH['x cJ2C뫸s7=yd+=ؿ??&^0*d;ۯ|/ R{u^C *yy=LJŶNN>Y3(\"sN&det?=ɳg><۱ZcVP'm+O3-oH؃\ܯ;wQ~Y|g/^}lzz}ᯑ|}w0>d!D~wW8/2k?}zɧw5_d=^pxk Y/,nl} Y ͥ O>nuɏ?'LQmk.9݁o?Ƿ- G˳{O>~=~.795'}n%G) \ 2ZVG)wǢ9 w[D;ٚ^Eo=_q3{ɳO>$j~5{8[- oqO/ǯzbG=>ܲjF)~fO\367"yG͕|s/zݖ}k7&\ށ5zzϝ)0WjoO`t٪WW[%O# /‡@F}v/<#VE)nO~w(~_qp;>. V+ȇ|.?•zW9mL]6/ I57&=o>r%/w_|/LJ6||rMN϶o?bz@}~G.4C-beߵ@—ƫ+~H1{'#"bV5 vlt!M/V{ ؂/5iِ|L,9>49$e>ē?'%NݞWdyY<*~\3uܡ~PyŎ?fv^S`]B,5WzI/M%onx=U/?OWsl %v@X(oiV(Lo¶Wd=c<::inl_חes9ozpEhxXW+|~ g]SNtws\yAǵ\q'C_lLɲ2涟7/.P- '5VռC23d@Cu> _,0Y5~A!g;Lr6勦MwDQ?ce|.qU_|, YƛwzqWL&/f T}$>v/*z :~8ӳ Uҽb4rMvwK|&qૄTwOBWL˒]RsN>\fz"?5R|-FbwMf_W:`qÀ/C)^{1~Q̫)Y0wH;XZQWKY_W8?a#ߛW1 iOX{c`1mZڸk_moO"\٥_8G ;ߊn,6ʱQ<~>8oΆ4ǘbVoedY:_u$72HMn\;OmsGhe]O<ulG 9qK# Ļ6=an S-ryk O@)#3 a '؅|xWj?c*F E fT/l}|kaO?6bx/oG\Nmb+;_*#Oܞ\.P"6纯  )'G;^d*%z2=yt9MɶrkKM?qَ!p^. ^6A1Ԭ K~ WnX*mNsL8>櫫oKz!x#,Ϧ ?dc $ wD=k ϟ'Cn)ׯ7 `[7Ww]>bʻN>υ(v;+m \V/ ]_٧ɣpǐĺwyɻ, Bx/m2ͯ"_|`?~V~R6ӕUrs}K/29sb|:'f̋~xx p0Ƨ*{ #>87\o~tyaka~lf1 ht? eqO ;[_^S^UNOTX E0jᲵM^IН+~ZBݵ?aPkѪ[^c/d֨Z-^C4`|%Ln7ߨf8:&gorm-1.3.1/.git/objects/7c/0000755000175000017500000000000014360755546014312 5ustar heronherongorm-1.3.1/.git/objects/7c/262fbd631a901ebdbddeb73d962745b3ed26670000444000175000017500000002276414360755546021616 0ustar heronheronxmsFs uR )zWn$JB3`7Hb@ܸ}U@7Ey$BUVɓ/MGq?wz~hS}V]>|8yw>IU\U˶n滺zS5v)ոf]r~QE=O?lvKYϪl5VP/]Uu]j:mre=p](U5-I5˸}*Y[,rR4M2h+-V+ϦUr8;~e7芶)˲_ (YULrRMf9蛳\NzZ1bZ]ќj@ ܦo<.#cTŤnlKMnӹ݁T4Y3aw|ju~wakGӲmߗZnۼ_7լwEՍ6N'O{U-$b^!yUcPΪism_$ cpŲ3+Zxʦ''~99zv{ne;-trz:^6_@s'L" 5Kޗd^6E@Wk&ͫ*ۺZ1*U4gBدz.Y- byVOFh겹nj6O#a,Ù4 e泶Ņ˅*8\k^h.6oY.iL牶LYYSL˶Z FvejK'+ܡ6ݛ:/%T Ƹ(.>u]vM Qb&aۚ dII6Lb"cKN]1zU<' | .3'S'=|PJwBa۴ Y9غrΥC߽!t)ץŲ\i%`9.Y(t>[.|o'9@EU>~F!ad fVl"wOlu'{^3-@okYfVܼv@Gq N_?<:x*~&E0 {LٱJ]~qn`(X_U;GX gn>O?.~xtYX"Ť4; '`9iAX"0_(#0 zQ-L5IC}npJ `WUq,QvC}^h3[A9НLg\S!ucmdك0NSm`IDHkM[vwDKǘbp}yu-W󮞙i#z@:{7΀BM?Oi2NWs 6ti >Uq/9_-v݃ݽŪS/lc鳫ڐnl9%b$ϗhz ckkH̜lhgqt1ގ :aH\[pœ"'IA @%PuZQedqB~KZG ߮[dWi]{.`n\6*HYwz Y,]R}Ypq9{i_<95fs06zȄKsd _}.x[w8MF;4ЍX܀7[)䡘) sQ9`~ ۶lm)#hng j ƋHKlz٭HƸ' !meMEœ'ibV(X?ݖQp\z?S8re?=kMzb8[u'¹)^$"h/>??<}Ϟ_es,r+'A&) 1΀+XVgCr'/upYVtg䃍E TdxDwN(̜!t+;!vZ+DȽ'~'psab?|w(岘խ"$ ,x]9v0M {/'#O`/oslڲ L/{9Y\urzʞB١)NRMֹ3s$xB!MJNr~K&Rr|-Yת&NN_XGO;S$gs|fng)(XoWL '2;[[=b^;O)퓉l|,U:\9ӲIO?VP")uJ'gí45ELQ3nℒ.o>I~QoY?Wn ̽*x?OBZ@Q fg@ζ@!Gg koW\ٰV äM!Sf~T4Ѩ4r]I*1{f*3j_'/WߟSi 0J1^6$Jx3@{_:O^<m;_1ϟy " zJP&%-o[8"u_r̳#)D >~; 8$IcSȃ]պktC] Oxv,H'PnVfUHPŽu"g!nµ}TLߗ?2-yˬ2I-;nejL `VJ˴X<ਜTahl!KJA%E'.phc]dTڌ{w&4cI'^_+(cݱgojf/ QRbM8ìb鬟v =(!j+6E0LKO1P!_ƒx Xbh ʦT%4PYM\EٵżT[J}MݵmSTYMZ?Zax|#3$*k8b QZ+HA>DvbԨ Ϟ؁O L?2MJmv+Ji#`pʕU-; 126,ܖ$UMJZp]bm񦸶t?4ϴ!^M[CL!NWDh z*H PC"$]({(D.7vٴHRIw.XO*7"P Adq1|@n<`6zJ`-rLqϏ>U*aN"NZYN.~Wި`8OUO6NR` Nۘ53}/ +@ Lk&y2AC}_y৪mV^/ ,55 y5j΁0\Il'jS\S. 395/eOҔb¯k"˱ ma߲|^NQhXsø0 ؊EokSz>jV?;J?w]NLCqic`uiӖ) m^X9M/+[%z [t@F=IXj30Rw;?T}Y9ДAhɆh\I$|2YVʲ/ Sxk <9rٕ2 _`*BUpa(¬KL ̹cE@#h]aY\ Ҟ*n>+wzP0ݒ la6DNSi=4AY^i'=(I`f|;D# ~ҡ/ˉH'< RjBMOIcmz3Cz(<|%ƨE$56c+($Pt çXUhF-Gwknz>db Mմ\T2[cZ Fi/wߔQa | "QaP(w[0EjԴ,>!#Pڎ`$31l熡);I'XmU`{_9-=Kͬbu.mQ[}!Ǯ\e"E9)rkB'+CrHN|}J0C ںz\;=qތ]LϽVuز~O%Mu-`eABȭ$M-zמˢIc+7wl[ "<›yfJ/g<ҍn9k)4 oѧdwb.42z`7Wz턄GEZMQ̈́V7˶ËGfϓL*^$=};kdȢZҪGzcc 8ED_&4}7K=je2& 1JZ:%F"wN/euAH׎iE$:$@qr2 UpA㯭gBn-.rRNH.ugpg^LfOe6L+α\Q_)nv\6I.[Mן@?3`)'g]cܟc֥Cܬe`{@؂Hz*YfcI&$l5oVbѦMk,O{ d jt4o4 uP(:sbLRF>$ gkYSdpi{kT=`k 0RHf/9A5 ;#=t1 Me/?),K!"L=* Ϗ0i>4$޷$'_o 0춃킥-IjqS@OzЦ(di<#ARr#{Aw39+T5NsQvGCۦᬰtK:$\39Y"Y@R8Qjr?\]j: w!N(:gC4*멙a(X,n~k6a+Bݍ)r5Jϛ#B(هYP.Mr[~{KI{Io,BAa7 X޳GF$Mq2-..6z1RRFZc?MT4|bfs75)TïCmK3Ii٦brc{;YX,'*#n~ /]a~&/%ڇ@(Xƕ?=7|7\8 r):7 c-ȕw3څ{@S[ƕ$ש}wUNR4gr^ҽ*> bZ~a;cU:iJƻ&əNN?8'l5&3}j"PucX:BtP6]0 I;,%F ޑ2lCE=Yg`X#zJ޴/р:c n i=lwcgqKPV"ɔ7NYSo%}j02r7MFpCVn,drj*T5IG :ໂkrw(_˻sʯ Hf:=b]b)cD|AxHm upГ =L@`YyѺţIGYW5UAhwaPi]Y*գAV7=t,?9}Jl!#5P 5P 3N2 @12~ u`%w8VSb%tfV (`gރ$#z4e'pK ⠓Ń?i'g&jYѰt"]aIЂ'ߒeI4t,L5/k۞4ݷwAʜVǧWRI1SW^u2E:O+p9URT C!C_hHj{8:+54l9xh;U)U IEGSԿ!'g=[Pɸ8^ҀAjUրdx gn +ŹQQ[,rUzIhOzH/_Rv뎳 /U ?GÎyE+Fo3m=Vm4࿹viX'Ň$ꤌX~7H[&+SES:vTTZ1m([d ZΙ,E!]Iqd=v+;V;RhQ3O.fڡ[%U8X z50 U~nx3\dZ&?-\vVjGvYMK5zXDGBew'^DfBg"/zu; >Goc(7áM*6H0b;s8BZGp0a/s1w6d@+ݗ|VJ2¼ZcVElad9 DDVN ;`rC{ؿ9FtSJbp᠜d[=xϝE,i Y:+v]F(3 TIRAWj 5i#O/<ӝשp,1 DSmkFC9(@_齑_v׫``f׼jCfmGEDIȘD]w?I-o&KQ~nk|I}Y [H^S˽%t$}/v 4dR,+h-H6׼xNarMٷ49[ZRxg~#ye mM z2bdj!P>{jdB@&F9n4db#,H IVC)8Qі \-> 0[cP i({4F3?n )_d\VY~lΚ7gj7o׌"5b6?X霦SX`B8mF&ߤwNEg%-~:bGz̙ ^wN'#nWA&U?gV&d:Dg#}?(<2|k|%Gǭ7Ra=2lzE/"n ȎؔD;LPO#oj#~v/|.97r1\x&—t|I<ڴwz |1 _mķ6(W 4MƫBǶ?3tLaΉL$BGrZ (EE"AoeJߜ_(gҾ[|g31&iizk=fZm9Bdf/ݕK ݟR0z~ph?K=tcx*3<"%:̎6=n8IP83'qݎHARڱF$) 5ԍ,fyJ*ZM%id@50mֲ{q?1Ogorm-1.3.1/.git/objects/4a/0000755000175000017500000000000014360755546014305 5ustar heronherongorm-1.3.1/.git/objects/4a/af55ab0c950f84397ba27281aa416dd06bdaa50000444000175000017500000000140414360755546021555 0ustar heronheronxT]o63žg8w)Mc>',]nZA i?ffgUy`߭fsasƜc: &v`|\mR4f-O;5F_2?}}4u0pSumܹ=51ELl.78c|4z_$4S@ś; Mp+Vtw{Bƴ5| ܾ~ 8RugC"S8tTt:_.OWYp0Aދl1M.!S))U maP2VMK0D2GIɤ*O%TM lGqVyQT,‡RZq9$.P MsS%#gZQ^gi2_`[L/T=| 2gB ZZmL<ڄy?GNvq ,ez*i&͟REiT]7{t(+x'dMʠCB!Ւp_V8.0v-)bc¢$T'_w5Q jMd){cGQ\@^6Qoζ\<jd~YF|G!FiPs]FۅDI'?]E l];_}C-c.:2gv:i1XNy gorm-1.3.1/.git/objects/db/0000755000175000017500000000000014334122011014336 5ustar heronherongorm-1.3.1/.git/objects/db/f709f32d225f17951e8b24b63f4a86cd24ea2e0000444000175000017500000000704614334122011021503 0ustar heronheronxw ߊ% QdeIH}w;;ZD!i*+ JClI"Y!w'z_|NTiذ~6SkهspՒIx(N~.~XtLLag p^$lZFi D$x*"bSەFWiFNÝ-WRC[crm;KݝiSC=V ?C]wN}l;OW9 8C+i.h7?|X|c<sDp(T} ]sz*Cĸ!A.Ke1C6tRd`{aᎩ9#l!0CR&)@GF=A 3"Kag~E9<.-2afHHO""5zni!uKaJu#AӹSgaqk %ўn=1 :Ͼ̊C@m&d{o͇U"-)Y%HN%C^4-4,?zT$G?17LY]+ojI?c{*lm~RG7wp͛<ۭy U-k/5Z`MĹӍg͝_-dH"AqD* X%hx"/I(bL$92*7E3Sf) kέ ʷG>MHmOwrx~ <љK2 E;HJYCaJZtͫy>ESp.KXdͮUu|+1BXճR@pk9lk+߫ӥȨ2|yNJ*akYY58 A_'#u|u8TRkGHIo>y*^ĤꘕͭN+V/駩K9m"%Fk TvNtsBjF 2t_W:t<B}uFkg3+nZ"GLΎAks񛿐4?0t X3:3R#&?l !|ttEshSf!Ù T](ܼ(W:R}-79Auk8; 3ԩxlO07~ΞC^73R 4&\$}tZr]t կ-D*HFf'oq ?7F\C/MË#e7 vDC*)l!eS,:A'2rPR+do?>h0%5:!u BƐHQHa*tlH-/Svg|߶/'lo<i7 !41T Z9+00KytwFCp3=ѳm};CP >jm[9S]NCyŸ8R3U/T2yK`_v$M&:3tG_zͅڢ ,KgΪQSw 68IlNC5rkGf~훉;OZcVĢu,VkEfNnE7 Y7> m'[l4f&V.%R \ 6o]jF#⪰5pWnCo\uUw%{۵eXZ m:k\rO꺃qm&ۀM|L6͚ɧ~3) @V¢-n^Q| Q u`p`t]25sGf=Lğ ޱ%Q&׈l!Two! L'HA/*WC]7; JͷC ,]HTጰVɺ3Nsܾ*gF+ |a:AZL`]kwsnܝ]ΞpCG[a{YyҤx'p\(֮'Z;>? iPM'XdjɃ|I=nEb@2::g wemLITD\a<4lCr[I4 /L(F6Uѿ6$(ANw+υ[z>Oz+OQ6˼9;Me+";D)q>uy D{?dr=/:Oel51/n ibk *4)Ũ*q;ɍ,^$,_oTЎfGIj ĽA!T C L74S]Vj0U#K9(: F&)c(b:L󷨎)Mҿj+,Ss8h(D2zщwbb2 HX-kVWɠ6͆3}-鐰lB>mAZDC`O~w41?ˣΓNipL3eF@xU241vK=LjD &w^(ϧba)2Gѥ cA`%&"^^B`3kiJ?UQ!%훐0k;$LSX&3q*]móS+#xuS WǙQzV?r"^jQZa5s) (~r_[d\쯂D Ql&m'Kɽ%KozGȨɝ,l Z բ/ m`:Įa֧W1vImenz$&.1onFs*!8ֱ&NշOkb ;hȼ#Ԧ;[9{Uu+wߵb=NV{!6N>?,~gorm-1.3.1/.git/objects/a8/0000755000175000017500000000000014327003123014265 5ustar heronherongorm-1.3.1/.git/objects/a8/7f3e8d1b5647e768745fc62cc024887888f9ff0000444000175000017500000000027514327003123021344 0ustar heronheronx=n!Ԝb.` v~$+"Rn1J}H їj)r,zmW"HAYǸxZ9jP=ǀrA'&G,wk9n7_^| w\R~Nm+T+gF"I[լpb/FSWH;#cCVgorm-1.3.1/.git/objects/2c/0000755000175000017500000000000014327003123014261 5ustar heronherongorm-1.3.1/.git/objects/2c/e25e123d360230c9c4f4a8b9a279723db647560000444000175000017500000000030314327003123021170 0ustar heronheronxKjD!}|F!,EA}r ZE5c e4f1v7ij'\UE]_ظ 1IV*ń&4&p>Vϱ~1Jm+x\7X6ܴpFJ1\/1q߱l T9;CoxrG-PW;w `agorm-1.3.1/.git/objects/2c/b4e11d93f16a0fa090a362f60233e0c123d3290000444000175000017500000000165014327003123021216 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvcAL @=(75Ա(3$3 5$H/(p#g&B7r ov%b/g?g@G'sL] '<[6.;4%d1:~j]RF9S.)vM&Ag=*7X5Wt[-4p_IAޛo{}eq/jy 捍,YKK}iR3nbtp`SuS\}er Rs.òmc\/oe/9z<ِI_0(2t|=9MmTˠ./١05MG ka L-\h͠[, ju/Y]m.^"}|fҵ+jA.,HI-)IFEU;mwg3uZ8ɭf;6X̓]q\LLsxK u$YL }zKbܳ1fw+%1o.Pѱn"5WXw@dAV#<'l[xAD3gorm-1.3.1/.git/objects/1d/0000755000175000017500000000000014327003123014261 5ustar heronherongorm-1.3.1/.git/objects/1d/6a2360128cc9a8fd52644a2d946d0595910fea0000444000175000017500000033404714327003123021267 0ustar heronheronx̽isG{" jZqCiIDƤJVL@lʅ '@$dszJ`F/Ǐ}9MO;ϟ?ۻ{O_ftvbq>YL}4q8:#e:Ngccԟ lk| i>;N'C=~Q>9f]g|1R6tvuO2GY?;լ`Ņ~G,t1gW(F+[p2ӷˬ?Ɇe~5?|ʸΣisMΦ[\ r g%|x[۝? ? lf·h{9ǨI `TAhUqoZ `vWLhkvÓGs|>/Ltx6<o$ܯt:JiYK-(9g^o<>?>fR&{*G+|9o:nH_4Й?rv رfcD4x8>8W0>ߎhiǓj6P-,?7Kqk{@+\ݭΦb+z&Bk{`ǻb6r,ez+aBL2hGfE3A =?v?L` y>wVt=%i8pg#8/G9cXlI8(֢Ql ;z Py?| i7D_~qxzڟ ٻ)5g??O[ٹKlT?z kYy-^ Ѝ#>N'-\Bf[\䧟S@%%/y߆ oQ<"=, >XB٫j\p$l{Q \;DaS@􆬗·ìy/'u`"!‰鏺'-+D& PiL/rrTΝF9b+ 痣CLc? ǻ"R D0/gL %R\fzCH;k\ ]X"L?`>84@C`" lpX5#&U% h 0 "7[+3옣[pX[FX>V@%h:_B?Nח&S_N/jہ{ވA](ӳ [xd>$(ie|.F R(,#|/rň+ ˦9JQ,eUV K.VH[n'I"py B8]~99[x`lq\M>g}9 Y[ 2y >[Ocǽx? h.s8R2 = #U6]x9>g%o6W.ee\ ݯN*XW#ZerbɖIC9J QD`R;^ ? qtLp@SBZ0T"hz2.밴 s) prHEWͦ bP̍n'DL%w1涢'epJ>lʁ/E8mH$&VIcQ`5|\lj*VXǁ%i NKYlG 'g-@ ]?E-8AEY~/6ڸoHQ'*Ѯ4K%U2[6Vپ/Y;<ᣛ 5tk 4S>6,/`؅g(94h #o)H ^ Wj.X]ߚ4}Uԗ eBtBp/P]'HS:`.П9uz?y X:MQsYFp:>B jQ *W3Nt܃AU~h{?$6¥1[Sũ?^SLը]?1ҬAp gGө,Ɔ\0> .:@)ٕi:Om(aw;*sl*l0|Gn$Ik a㽹t\ڶ82vfFgay~etiu>Z6j *ޮԬ( OGQέ6*wgu+߷lg*7}o*[ՏJ ?*)*Hpq.W'IU/^Æf׉_tڒXHS:+&9u &`_N'UĹr q%}E(o5"?b lזe% Ǭ]v/"lsEԦQ#InS8Gm<^eÑjł0hDͭٛ |ft pΕc H㪒p$b-V7?kiFZ5}2,u4(wQsHZf>]b07$Ev!UV;R+K-D?$;jHŒd)tv>K j9u$c8K3FIhQ\R1$q " &nb,z ~{O"-w_3 ,| 4 f2DA9Lفڤ,jVO=67`kd3; G!7Bb/vywvH8Bs1'Ks-of<4@.J %KZw(<2 ?| B,Ze&5|yuV+(7feo $v7b},"Nڱ,7m#L^h 'W&OdG*F6 J>8o m=Ws0\< ]Z~!ZRX9fPC+ Zx7-xIJ{tt\c!t]K&slp{O@(EkILaE{QEqd9z.[cGƀ pr1P^-'FS ԕjnlf?h Lq֖dp7 ZtlZe˂GH$h&M?Ɯ YE.=$ЭuEucG?s+ 9l! v"zrP쳮_`nQD0G`a"BⳃG.Ta /a$=|P8㲄Oox,_^_Nw;^%l(-HK'R`cX'-axځGs׀!0-5xBD(6 5c+&0e\b' h.a~FFHKN%StQDu*P1ኼ|$w*& HUI25jDY"M)n1l1FM;$k"8.qՖA ?խjI:s鰑"q4bw *p)GۿfS9(9(e8ɿEY %(i4Ad2O d;Yq2ϟ D=8(I둓6.hmoZH„ $"o+d't^ac'ANntî3lݩ?o3͕ICpc:)QLM𵢘Rxe3\\+D0|bB3Ngǔ0lBMLns@^;}Gk'I)dgs4hD+B~`bPZSүrb`ZbZq~A3ѵ )/>E'd殁/0ViWĠo $cQe))P58}|‘ ф ޅLṿ8VnmY7Gm Qy'~̯f2a{lW" drE 39j&7%X;Ӿu;eup9z8bHƂAD@>xi^$V&(Jiaķa@om}|4.иU`#4DRB];xOqT9(v'}pdMTϣM>6sKi.T Am'3$]慱E2ׅHBBuPޮQLq&Y~EGDF1x~ h='7(^MZQ4z4˛J4M9sH6&LQV͔mڲ[uԠ ,Zyb cAߥ^B e樀'H w]l1>1%jQDeFm-PUdcݿ bw4yqFh7ޟS/ sm?{V[5tǹwQUjWuzyz_e,=h="ȇ3yUL]3#и8nz9h ֍+>?i^i*&%XN^k-drk>IKO&ӓ~{=hPag HTV1W:^-#>MXs+agr[!h]ecQ MbG[p{@RbY^ar"6=?m> 'SDŕqi#?|pweyƻ+GVwbR1 KFE۾Y9W"5 ;O e2t̛N=̰[ FCfJ:k+ݽ ~ 5PO׈Dv Ukň,U/֥w`X'mIfNizO)V wpZu~C)(㷨!-綑i[(Oj~7iS7=SUL1T2~rWŎՅ?HqFBA'˾'.z5UJMݐc,^n4^J9YN ~KZDbʏ YEBYc9+Oaeˎ{g?M->^?_G'TH, * lqUx@#*fUCjtީwS %$V)Zh7ZhA8q} qDgFI)? O _^R a+W.3b"Db_8Ie ׬M\论'qq8Yf;zZH|PPF.1G!QbDs\T!Rm=ss]ft | ')XvOsCOb#ѻ[2 0-O-Z`J[ @ΐ*2$`ARͦ_mjM$YDZ?;oc-Up*/񦳴{3GiڡjZ(E>7/l ˈnZ)2`X6ΔֳOZϡ%i X+h4`&_y+%* Y@yG!e¬oU;QH_b˛ ώ ,v7`KVl MYy4ĻBWYT VVpCiu1J*&HGSg^rDZlx.Np穂T16ͭ쒟9XPӃ'밣HJ9lNVFi>ۼɓ*0s)8ˈ~:T3m DxUH ]+ A|]yZvv݃{tjX K~)a;):pu+̎J[qݦʢ QeXwa:#] B8 |S%J,`ACUV$݃u+<,+3:KrYiE؍Q\ ik;9 |V{yN4ypWFg?CgkZ#Zϱ-rbfVl;*% t K ( 5wy@i|9cr+]S1^ޡ]Mq I[9i .[h;G'"x'%I;@_ 2.er`%}"aE'_\`k  >vWzt2]*oD]/+LX*(nވbk35ddC&Su YDYg嬎/~C4NcAd7y~I)M `+ቂ$]w%?qOH76q\+'vܫ 1ViOlt!n^*"]KVH3!7 ƭη?TTF+.}sCBxkMg` D7-[=<9R?Xu%[#CnG-sö|lE<تnJQnˊo{QuSxաǮ.f] (F+" :*uO)DJ&?! 0q)/G YGW}^ R,4Hb_1(p%|{f*-BՌ fݓ5F  :Hcҟ>QQh$ 9;_oߩK"MÖK7 ͷ~!"CD *1FuFA pIS9Ŀ9 ,˂KÄ@F]cWsYZc՚`ں 1}.tTiq컽'0Ud4vC"$ YWڢ-\Rl^PcH3eWI7)YIsz&D\?=ɖ si1LIRU\_t$! r9#ɫzl?D8Z']Su pBsϲ Kd麔E۟ ]3)Qjb\(U%.F%YD[ђxEA75x h %!)LLw(V!P )u=sB"BM( TVvr&M[nBv=rcU*f"rIn"kLcAQHH0nb~|uIiި;HJ/hb"}'V)7[dQGK`_G Nb}Chuoɸ&k;{&Ph4qԓG%1Ĩ>E,.*wo.VhS-=NhL]dwjr3.<ȱBU{P)K1__ B8 ?BXP"薀GV6⦒t`~\ʻ69|?U `G=rUa.DB2L8bKFtȴ~Gy,表KauEDmq'^ԗ&A4xPȉ|sC&.t}}&]㞮o7J(s?D[:Hk?rYkTm|UfYս\&u]=S6x-+.CAQ3R7DЃf G"5frtf !CVmvYsf7[ԔBL^Ա=8lω]PlV&Z!)/TE DNA> ʬhj 9S DMr|nm|cy$CDS R,qڹ98 W8R?aGqOjDDj^lǻ@2_EY PJXWo;dhf ZFOn.NMq\3b9ngًӖwz [6=8]z8^-Ǘߏ7-:9+ϭkE:K9ޢfp|RU:>@$hӏ٦ ޲Q^\u:Q )ESt(̻ڞϟ`#FXj1>GQlնr2S<`Wζ-&`7@ր K>V] "v:Rx{gڰ8xѥjg ~B9χ`-M9Ȗ E,8j b$D P3zWLȔ`M z~nÂStҲ"'e`(Z e2^V3~j VhmV?+lgh(Wc2;|Fo>|^&moDgN,>zS׍k@9p_\%~6: H.V:YmVňN,/ȹfuE)M!)#@[V,电Qz7 |G"4=XE9:*N^LyΩ8V!t#1aQK<TV2)H#ʒ*')i>9ʃwIsf7vdm\e5dy|?f;BR 9 XYlR>JBh6Ѫpݫ%m,?FYTMGRA\(Sp˘_DcCR +!VYg񎻑+>z\H_\,0sj, (8(1Ex Ԥ8TkEnN96 ;xx4ÍBH b[qC>;p#-(UEL; :-,#PΘ)*cDO]%wBw/J2g'[m|-wjXykI 55oİJ)$/ԍ5$W_3jҳsց]T=ܥSϛ5䪴Cc :]#71۳?{; C9rbIBL]~cu{7=҄gPav:>$Tpnיt%t5gj ^˅hJctNH2IXQ ~xbZ2YSc^ZGffz*R (Č6{d+!d,X '^!SȄ&]CYST공KQYJ ` z9SĜDbSăy( V!|oSD(rZeOD"UN @U& y(IGT(!=.>묺VMՐyZt[SȆ]A^RNG".G vӆ[+G.VjrJ![& \XʣT7*mP*DXM.zJf?,pLj9[j [\\p#n rO/g"ȵfK0bHq{JTԶSX1ly$$bM+%M)4CQXG>DܕgB)FiT MvB8i"z"<-:0R,}}6醐}7aaSsAQ>Z Lg䲒s0To5LKkM.׍AFɖh[\x)!g^ܱgJBqލћԙZKG=dxVpx\ ~N }5Lxi ZBPբy,c2B,^hn-l^q nwT!B**@!UZhN !kKH}JKBg+Aӭs_z1hG2Y~gZT:2F˗  LM37KXP /a2F1Y6Xyy7%a(($CPR^ ^9LxR[%hWW_$YDb ygk; \Y76RשZL(%=EL05)˟Ҋ7NMq|E [8PA(|TjfK*i-<N([DUrbHD9z *H~egK勘`6V ~#>[eU2] ۢ-R0Wm?x93uȘO4f+)|L 6 S7ĨD zrud@IA#\=/sK43F4\;>2RiF֪UEHu'$1:u)*V9jTߕ~M1[Mٯrib`MILXsC}T|K| A@a_>ef"GE/Xn~+ܷȥ)z{S,Ț2}펵Zݿ.¶$K #bZśy3GB8 2*\kVjt}oT*%݇8vo1fjyBd8xǹ3(x$+sChj∴H҉Fo`7L-29dLcN>9"ӒlЉ8^M"SDNR[t +i~rEB#h*{ORqG MwS(Q8s)DgoSU hhlu\F5R~E$]vi"&l Mh=?hgukІDޛ;=2u,4 . LpѬ>-1k~?q$wk͊k/Z jFӚ("jKl-~i'fBiAB>:)iqj{RB~?Lnۮ;Tf?{J?G 2JۃΠ_gT,7i[=C+.#/JPb;w`+Yw9vB\s'Mw@D QĉL ,YJ`9~_RMK}4Խʭ0+"SiU/@< b"Ro=rG.b7:@npv/falF O`Y:H5Wϑ "fE`F"JN!JoRU" :`"!z4A8b$&5Y '8pCb{[V~We8wJ!7|aDZEpUFx&Vq_[Q"f3l^h%X>۫\6hA&Nq>RN;B81e>@w&A@ ]~\/#G q}I[gI 7hM!+M'ڑ-&bU&B&DŽMHڊlD4;z;3tTVč͉iD ŽC3>|f}(91¨ƭhI$l5q/'A <{q6@yC,"1stz13)M3X5.>-OwiQRO$b/YhC屛(dEdlpi^ ׫xu [2/!x=  #oo>m8JoxJr;_ycxꐯG)2H " 0 [ִDfo݆w!rpl"Ö6Ԋ;ߙ(>sF_}߿{yt@,6V1˵"M dW#yu@NV b$PS<2]Yds2U:V2)'CR甓$QIzY]SiME,oUh~ӢPG - fqKS\2C<\s^ Vޢ 5.^-bp'~x(o/Վ݊Q|ҎUL-Qr,8)g*Z A#1AannZ(HA0;~ЉS/)%:ZjKrׄbZlk{J/UQ*--n^Ҳ+/vY#%ɻZ7 2wV{Ժ1{o۶JWmZXjeKo{XKG%]4mJ"U¬K[9ZCspRg+!b7oͨKa}ڿV='D ]=ZScXXjj,Ek| kX1K~0R22{vY.^B95%6gU})@­)ԥk xDḳX"yE!ʋffP9JZU2߂cv򑜳+Kb<1x@n &n8|4_Kd!QirɱCHT,zѳs\kos#Xv,ƈeIQ^_;~=˺}UIXxSYbUY1DJ4[$]#!rTI ʠV*^A&&8ʳ_e)J[bIa-GL)D 7+YSKU 4UH9!k/&S!mI Dw*@a*rFԆ, M ,qvЮ Zi!{ѓXFm.(Kms<9[3 G]xrc!jOm$a=H>(Bo@EDf;#Xϒ1r-gۙzh!-/;~/JQС8]ڊudB+G˕o4Qvg]oʒAVngz-.OP=I9~ y+6ٍɝL oEGTV5␄?UEU  ڟa&cWꚠJ;FUaBU"UDK) tRdb*zCc൅٣_o{GC0w =|Sb\dTyWy (qXN(M/7UŗBk^OH$Y)Mt$@`A9Aa3dLjϟt22]݀&s7}?C%t׷81ڜWactS@11'!t\ȈsgHC)#bFڈ;|~ˏ$iR=sd:45v0#3@loƪ5ʑ7r1~;y(G26v={ca78ҙ> |ͯ~Ku5ۖBM@E"8GObL@>a[łz֧^WãbwIJMӫ*g3ƦGc+clSʷ'gt qbzTv{w!3.rҋH^X GǙ 5Usن_ۖNhUT%]֍㟍8FU;])O9Jw^f ՉyYoh+(-~SRRlMI< L(mWQ]7!Hu֭~*QB%(xT6=c-]JPG7'*df;l?0\No;~b|m{ocMiǐ(V垿 AC@t'Ϩ˼&eRp ^,lkkbY9(.cchsJ'r %|ӽg *WmD*@ sp%9l‹GgKj}"(gcATNEz fqA*akr6$ֺ'CMkRƟaDLwB ,qjPŋݙƄH(H/!4GƉe@*HL1Xڀ)Hxg|,ᯌ`)hK|LQk hceSb3k՟0M6HZ7܄nذZ7QJxYd•aT?5oRBTaK+/@-g4LvpX"E&B:V]AXRw;. Fw3Y}L61EKkuH1),7QE2 ؋/2;ډS\~,o Q;R1:ɖ;ֺ/rXMQ-s/o'Q2o5TK.|IdVZMZNgȕȕQ4d5DE0Fd8EU~֗@ eHyMXΉ[O(^K'~Y8жŗnmݹ;,/A?y 1&>8Oja:!A#j97ޏ?.mmA}u}w~OuIvӬ Epy"ǵyqב񥾞sm,F/4>gsk3W}.]Nxav,Έ~[ "Eűjc3 uo+oI@4jZi/ɸrʋFTԁ[9Zz馑ne9?| 1ҽ5UFiU<-{҂J (C}{񤘢GYC{L3~qfm6WeDM'щtw!]3{N0+\~5vSzua2YCqMlFu[VwˏVk7r WY^حAr3v+ 1z'E` :UpeFzO#bro>D_]9lJ|~QU V;oմ_,'dVxtkCkNb]NHE$#( +k4s6bx{sT{7dTs7;o\i1=r%[t_K/|ć;kUt5ܮNLD(wFX-lWF7guٰOg 8$+[ Uw:K_MP}7ZX7+Mcx1yNT6"bГB}K+ףL#dL7*XۊRR(C(ܹjRKͩ᧹g Ă^V8۾MZ!5q`PjhZiUUܓ[19f*?fi'fx l*`:a *AjZp@B^xE)m]՛PLtg"x^CTpdM>nT jM.t+J!l婬`HA$3Z*'Аg,PaOvשtՍMnܓȢ=_(&1DE2YR6*3daldj~TBdSJTOUkXߝ1#C >3YVs .K=dtKз^+]j%Yˎŕo`UN씰H9V'Rg\-"!ҍrM6`)S"@nK KeKuk)K jz.=:C6(d䏖XwFq~Zu\ a{*{1U($6VVO@ъ]\_Qz`) 9jw" wg`c[wW C>/dJQI=,"w`h\j$_{GM2S^z,[ w1J%Fhj/S-9&U%2MhTc Vım^|/5%˭xGe<#/-T<)q1+[k,3v-D[%g[ARG}t$$6<8n2$>;XUK.K(mGIBJ㼼p T= S:m|Թ׭A+ץE3dyʑm"R,_]v(LM&3j6C]%!{wsw'-rXe8ڂBB>em+k{V{fDԟ#W>ڗÁǥ&4m xu S7?EDB T(Y7r:"N5 BՇ"O4m)4uF(UM4AnuAU8H'K^'gVY丧OYf~{"k}[X'V' 潥̠" fJS> ܔ(|EpZ]6Ӣnϙ!$- 40k (B#?)ۨ+k @'*k} hi`|}Nڝ6Ud8 ?@VY.۝c;{ ۺTMEMȷ4$R^;0Tyw K03"dS&5^Tg6[`'UP1263~U{#Rbhv㣈aN?M"o6Th׎(ZՈ˃HHZJVYF: Pu؞*?;3*oiG>u{v_+gÚ@M ,z(IuFlUmݽ;-SдR,nTk%fMҫ_ "q9DwOn@zT//mSqCc/[w^.]\'Kv*2Foi&PE9߇!V^^ўu#[TF}Gj枒Ԛ$5D=wT pg@nP&*<9JVb~Jٝu\H۬c[@\%nA9DnEsb؄ZPz?dg|~U#;@ u!颲tkMZ]cx$wbIDsJ!W[ ™-{.;3mSNO\2Wyl-N]Vn;8ܨ0:].%`ue9~Zd|SILmNm`25&[yx߬p3} ^:`Me@D6اL +%E$KS&q0Vp)@f&; 7t*uD{R0U-,t/$f?M~0#^x$)2wUA#QQӘ&H m>HS`kQAN"GֆZ7T넶sVL$sI*>=2zK=M,Z_Z?XZF#8W#ۉy q {Db2D]1xi!/ pDMI]졖S?OfT98 F^a$Rd?ȋTbcbeoڪr坣JO|)6zNf6l,"rbAqDG<R> Z8hU~U!J5#]Zk;'j7#.A+41^!|9a޲x;+C \ Md#|CE!348Y ߸Dy??MC\P ~cvO P@# b[_Zvix6DwAZeu,xE D1̙w#Z>VabZoLr4<3èk J L{%.?SY;o!OjLiAEYv=]qJDHٟ]B /0shGd ]{#P޵. ۭ?4jPڇĻ ؅D&oº( 2R[9B-_ӆ ׷| :M[dO=!qgxoynTzL/M$ >leZ%_1Wr8Grj8"hZcRTtd#<>iy{FS-3 >|^ \6F7:3$Rq=` R{JMbqA5:i6|L}ib!>M{ugD%lz 8`PH(g6&eqn1'L<5AaE!ҴK%%zu!NqNK e:h\c\hIb[Kݕ co+]fpL`Ĝ,4 #q=êx\BlA`] pìnK 5M2vn7/c8CL E♅FQY,/i% %PI|Rhqt[o(0/[ EHy@y8,,aB$};´ )LrlDcՁD\ ۭH[΁ ' .V}K+:2iy+(5~la]@T]-q!.uBF. uBܦR¹WMٓWƶ X?u --yhX*Ey8ƕʝf|&:]Ga/S;!qr5#6e ggzYɷ{ ސ9xï! cIZ.XBZ4+Ck xX% )2Dv=TaK/~CzE sb}sH* Dw"鲍UPd m+: BYN08.h:ŔqnY0r)؟/p?v YJJhX֛BBYV49.s@Q? ðT7ՙCMąjݦCC{yXw:?inŬWFvpnjb=9(Zpd6;9OQL>,E"l B#zu,)uXm]ɰ,޻so!(GJV?'!B:`Q? rr0F#J_-rVZ~ٛ4Tܕ @ m9G t)u3{f 5#L:@2IY6J5"Yg7X}ӓ\-Wd.t /0lw-im0paZ LQky+/K̇B顪LARHx@5ŀW"uz I;?w3 J:_˘l1"<_LNZaF-D%>P"']9uLaK OBY0tO5-9t$" X^(Y!8,-jec>.):-vMPo{"3 ^BDPMh9YG-ǯ&'Ì+/Ts C:Y|JyxXȼsVvΈ u`Gm{Wث?3ryGL\8]ENag<`Eő'\wӬg90 Zp kl=j )v6,OƪI|K#jT1ݥ ׄKd!M[qhAy<|@LlQ|͛Pc@Nc.95Ն0Uõc , GJ "I@Fn(*xٹG"@1M!WRvG#Dtc*v -nЭ|O1I F+fVt8llDZ(P^o@hL3 vƵRy"J$Rݼ?]Mg3+'v,'".佃MGd0O?Hs< MYp2IBqSZV 0z5[h/IFXΨ8 +S}Cz\KIμvVY3Uaߊ$DU;xK"X Xd2ˁxq~Q6Jl|%-gg#MyƼs4f.O!)=jIpIKiՋIF3{ۛ!$] 6(#4ږa uJ5 vj$tU¨U TCQ,EFbc[iXXp?s=V╝Zi3jcA,Ba62d,uJ^ͧLSt_{oוi~E4j[M%aʒI%DMP*kɂ Ed[y^%@MfRD{Yһ`ʆK>?xW/vldB-9cVyFDVLS|^ugJe{0M=M grO+rvmY[Skj#+%丹h&P'`ܢ9Z8]Eܺb+v#YwBθ1P{MۢN&d7K?2NvI%8 lˋs$4e+Gy*uTc˷@*clA"1'pqޢ֘~Hn&d*fp l Kd95kC⥘;(폆6u/Cid&>lO'>16 #&R -j?G+씳g̡dl!<JC{9-63IÜ8L@B95 # R_I+. \ 9t!={x$ً^he%8)`x=ꗍyʥ,B+ ]S{~p 'iM|*a):r|/ @7(lɌD@kwZ&H5kFMdKf/>8OPJYPK1%J |ȎG 02ؙcZ[6֢]8kvæ@V$C DГ![C!ҍ !ӢX> ž]  qt蓵KRxI%<qv KVބƄS-oQJNX+6:8p7u}]ಈJ\1 <ID olЊ'7J801 bH0MK85{[bm/v1?C' jg ұ (Lb/=)),!U~?ءwIY9^fYS7*r^mY -"ӿ%3g<IUns At0-Y((B{Atl;  tˍA$2 ; 2A_v ӹGrq]>:{utey) ‡-^Kc>wҸ->V$@iA[_U`'sN! {vy^/N-xSX\dŪ]R +\V\VhX99~43-gF?Vрg x][ U?-sEUE%Dw}B6Vr҈Qx7X`AB;_CAZ0DՐ5dU^d]&t#ѐpHUɲHM H;m[1 !LFoEhFRp<6 iתg@hVOcDĤMQjxO N`v!@wYۃ2%ńF#+Ӱ\|DwE7>GH[QNN0͖* ,I@evNNk79/oO&& Uq,2F*Fs@7\_9 }z?HZ'A9oʾVcU3`4kkQ;K|L-3Y˪;dL'v kk^6oWn}P69cnSʘ9W!W׹VƑvs ;$Mݙ5G372"6 ZyrG?Vc)'q2 (ڝnb*aQ2XsІø|g7]b-W:X;zU WgLYGoPͣGfAlALaXDeK$ t]yX.w}UL(]XB #D.<#",46 /l١=%}~{L[{) UܡjVs D^1{X _/nƽ'ozQÁW^*NCe8' ˥}01 4$uXxב}ə*~H%L2C؉쇈Iu]ln4űڅv 2/6ƃwe#R9r΃Y x= o{se2) ,+ rJн>B+dQ_oZOGEWG `RcU1 ѵ9z-ݎ—:RPD85 gO;z?'d1j1 |u6Lc-ºwWrDX0/#f.kcGVu&)L҃;o+d(ARr:  {{Z]s=^QhLj|uKW7GsN~dSdrHn]mW"ꊩ~8ѥSΌoHSwa<o)AC'k{GOr\mRLM*ċv_13 hFs [|h8rFfNqE(G KZ0ֿe W]_iN ,<<jk]m==Jijn3uU{kLcS{%;^񿷟-u܍3.ch??d^WKͅ^ IcJ-_bWӅ#2+~F5h ǥ"$o]GFKĭZ*٨>O&1V|qg3U"!y?X(O!L O+jVx̨+!8V/vz bc/3nr8MVUY>-"/wIv%t+4 ʆ-n-?mr02(@?% L$׷$2Q",O y|uɗh7pSJxDpw6z>_Cҷiͺ)W TE9tFDHuDҍtkM1V9c N3nݗ,}7I^N)"eX܅s]f!$_n6qmǒRLd'4L| 4S]m˫\BC x\yʗn;$b B)XQ~L"O2idSmk&DF=Es'cYWw-?S4 Mh,&/`7(}TB@YS@xyzdɿoHOU6!.³q0 Nh1g׫d5t( %Fra8(}0ЏP4E*,-68j6].ʡݬ)sY[kqqŶ m^m?H.g^.ؠ me.F7)GeclH:}*DKS|:{榚<3qI4qA3wOGA;1.(W+>&c!-c/= q0/LFD1{>*RMҷ?B'5pTؐp%;,5} _d{ʮIcB5;4Wš}]"(8\|Du9"Ē0ύB!-{pm)㔬S|Oh ֿ4ư,TAZ2`ڍ,_v41 ,vDxHw~{Uw^~Uw^\,InWR?ZD|V|)Y}^4dqf7l𙦃{|d_V᪯{sQM2:(MB#.xBPHXU"j(U#TfV}푴˓Ca8-~s{(sѲ&$p3RaxE-8;HA*s0TsGcIçVhF"_uޫ4=-/Q6]EVUzv):eK>I@kVK|,_1{ )\(v̮d&=|N,6ۋPިIB=xO^X_u9n+ /%c$@,n(7KPON +|pIͱH޷p;-/G4բbE70W{& 4|K:r#STI+JҐͨy/%vgcej]G}H'Zk "A1WPaH#EpO_݂%U|8yх`Q.֣HmoKV5Hي_桖oߜWZXT<+Aьx"5 8MafĪ_Я/<<+U%$l,.O /y8P}+8% ?UJ)u;\ tD!sKI+p`L;%JISK<"Fu4,BVV#\ҲȤXr8tQ ^FJzIJy0/m~giDL9YNBȫVIV\=bS x1c-ju&$tRV Ѓi*eJkQ5]<0[I"? b)H5  z&]zIZ|83#Tsp2"-B"<<~38F y&$=?Gmh *zxE~1r:/_H|?op`Z祥s{vlvVf$".*ۼ!d~]XDžQ_-`cUpf@w@ǷΖݕ f. +hݎrs<3(; +ӷZF"Q2Յ+5oZ=6>}J#-6^;lp:ܣd\OUX>щĖSͰQkFՎ`Obl!r=6O?u&JoAzSXnokQ=o-]'bJxI'zveRs)5E9ȀSzjmt7CIgdJÐIG @FqvNٴ#W:,3DdL*G?Y}/g0 PTЖPnC`JZ̞+"|[d]ڝob?^]Sd0"*O'IY`⟭'2EjRۛ&룮HGv;<ƧFJA%3ckRӂ#!CVDi[vh;qaH[ ~uN8R*uD `""4TpԬMH[;Fq]ɹl4,0vf70%JܮO}Qi7%pO0̾,:F<`. γ@44VWE b򚯷S 8mruzL$Y,I K(BBRo"KvBW+ 4b~yJy5,pI.uxءHkBt YK"^ʩ|qoo !m>ߦ bzIتy| ,cN4FԡX8{3/m% W讧<59;e!YP72iX2g{T%<TEmw%l@`ElΝoԦ8xz'@lgkkpkpTM:8odr {gyx^JW#>&Oc>/?ۈ/>IAO^jԧ"Rb]2Ig[ŶB~/^\yUVBYoK!Nrջ]kFop,sCP;р Ka6W>z-hM.G ]$vKT,9Zt?#z㼳jA}dd*6l<䂻ms{۷!Tk5ё]WUSxF# .̾_fVK+iq:1#NjלAB{w)㥵Gݸ$$0Cl5!=~8ѓ0|R"DK v؊=J5For\/J<(ӅuT=1ԉƉ2,٦I(䍻'٦ Զ_VkuO,-X|@Vg\6~80(4VHĿn#|4[jG D#AubM8=(`Lɴ,G?x3?rOk Sb bL̵ҳA\clca%g eFaf]Q)A叇J!M*F q.ۛЖ2#@QpG>Ƈh!YO&r0'ĕOC=Gj}~qT~Fit9w}s +Tν!VV]*_I)*ųWQk}tU\gJ<ҏu>>XD 䁳4ta]Kr 4HktJ4F~uu4JU5_gU5[=UbRa^dK'uDo>+P{rM Ny kZn睗:ZDMj3 Pd5yCl{Ԝ NJ)-J*wgi3O\ԭ"W_Xzs2(5Io >:PrZFjm{Gx^2E|xMcp]"ҰHB3^ʷR z :ˡƑG,ڸPAA]JiyjQCz_;uݱEE2u(Q5 ȍd̙JEWteUԜXiS`Wyzv{m\+FX[nZub J0wK̮޿˜_7b~D LH=33R.<[MɒZ\-7KubQhr2:AƬ]5 ­#9rjFbbͱܫ9E7Vq_k@1s>izfo.#B7`j[5|ctb0$̆}a»0)f5zPUq4t%|b[UKz@#*y$[K:rYtחS!\hҖD"^ˆY}ܘU l~}Ű}"޴b+QoBh:Yz~5n8C]~^.Y⛠:eO|ōng wxBĪf4$0l> FCKO7]W, VDܐ(b^d8r({1ފKczI i9Kx:L/7[m Ռ" zMqz]jWYc jH#&ʀ̽ZN1i70UZEz*K-diHTlSW5xjkO1$@B0BW$F6wPrc`r'VV%ZZ(tiSzv06tNb{5ځtΟFJ:pf5n,ЛqVŴ9{+"!_ٛA]CY39O旂JkÕs%Ӳ3byUrĮ;<$8] ذ㛬))3"zDEՋͿRFߗ!a{8wNLL'囆WKau$&) @+JTihRǦ}k`%AC#[Y<ҸV{TKܟ[R ^>tMOLGЌ:RnCy~n:AU\;yʡ1xL%Sz}̵7H4֛!!'נ!Q/ulw$Bb4& n\2tiCNEĹv5bO_ߘdgٔqںWc%g;C,FL&T/]9p[O_L3lkKp vE)!myGYV,bAhU?F8N NĒ56"dVcA)YYܢՋKSY: Kct.kEUkQյUrJTS/6K=Wg(ԧsά Nq T0Ub|N=;l&7gj ]KBEJȵsBy 3 )Y@L@_9$L|SOH>.)^ouwJP$_D83Y'^q\Bx \*NQqk>Խ8{HCBrTqS8. +Iv';7ҋ&l5fJЬ+gj6'J #,C10:+ޏ1Zo[L{됑˽}'U\Uݓ;Łzcc:|͇19BӒkaQ7()v3nb=]=AXɔ6KkF3Z56؄51DTP^Si17v*wNQT_P4`V*iO2>H#0v^v-D%8/ 7#(aznsͺF<rߵ{k W. 3ȷވ̏uxrouv<5oFE I3ڴ梛~#x+A M{x bL_]bX朿B(2J|gxdO#i`ފ^$ 0Y75Շ QϹ9_#Gإ[Zv 1>Eyiob##0x`W\a2>o]h)xp}ܽ_(bS_Smzίr]$jrrIRWJU:CӰuT(ldK6&q>2>hNtREW;%rb9!r!gO_Ě $ 'T3Po8ZAJTmne|%FNwtlyRQb `fdwJ^{pgwap.ϔZ0zmC`^c֝ SAVƊ\P FNzĒl20!7vijNzdN3d.QuÉ6$\.w}_M[ƝĦ羁"Q_ t.wSe":;gfBラ=(>^'Le8qR*Li6d4_·قz Jt=n9{+GI0U],_Njʠ㇋Ĉx8@NR-`%PQ87ƣ٦Fs :=3}X।: Ԣ)XG]@oǥl[ǔmg MM dvPQk$ɗt.c?/ @[龔jW8(A.OseHڙ&l]zOE݋nNJ-:`dIp@x"pPP.eA|lЊvurrpa._%Ch[s~m}<(5Chԗ z1iz)Đ7I4[L#хWx4Zٕia=)b#NA9 GS;kAG}T9Hذ;)=W-}=/Kq=c>֙mq=F%RE L*mB\zeK6V fUDi6=hx/ٟјJ-;Y%|T-uξ,z,gٺZ*oJd6Rv/;Pq`י4ZgM#I-ю [xO>FM"2'T6+{Nzbevw:"OJw3I3=7^]_cPu9J_mi#u)$"_P`0WӓNiõ-t廵1֋(HT~EgsTiTd(ߎD\~|u8h K_|7W,m2܊9۰IgP)pTb{ #GF,?FUYA:lx.O# FNYVm)n*|LohKOv72s~ãoޮƇ ;oSb}m.df5Z}y1$?N{o?g?Čq]v;]nPJw`@IV ^Y>d l$cF,tvSJ[NN.O%kduQ db MvZ.7]gOGPM혐M4c܈otI|R?UxO0Q#r Sd p杮Ü*MO-ѮKVQ$hۺok)/KLh.jRi]zvoհsYZWa6 bX軻ǫ>`^[ÿpdɴ^E`sn;-)]%뺤q/CS}f\rm-h\; t;yW %sme&.YWbWXΈ%Y{ڠ<*:U0H:?I#dւ֞>L-4u^{crUio0ӱ̚χT5}ˊyjiLuy8Wӄs"i[LR4/VG쑜%l5=Cm| PbS-ΈxyI-5|3~.wplh¨N,.Mݻu~MOl*euх&crz7L\ ?!26'׻}mV,)POdr_D%=++3ŢېWXkM:?ܜB'ӖQs;*!l?]_+=\pz^N~|Ӯ3Fʵ Ǜ]B]xRiWMt#流}z2IG(GǺffQǁ EY4&H)<5۩\N&yC(sӤtoX6k9uT^@Cj8RE8^m\M6f A<-.;+Gbh^ɥ*Dg B!Kj ʯz;0#2_T4< Zdyzz2;:P qL'6&^%0QU<$fjTf1ԆAz&}ӗěYg3@{.r_i\oYL@#ChItQ)O ԯdj*Zk=(j-)fHթ|&7IZSᥚw37ueO0t Ο'_Af+[='maF݉z(G aIJLDR D02`ya@5Vōh^<͐NVlXc*[P\@O 'WPHE82x@~7 s6 H:#Ω0F.JǙifc&C&PhbE1NF2cl3p,{gi 5]"Ej{wmۢuդAL8lHH̟s SʂB1&I|*itN(y:5@1ϢmI `k:~2}\hՍrrGZ=jW`06Q_Ei +W2*WIۜ}uY᫒7oCٚl&qo;F9vI>Qq%p"Sӑ6eDeL AK( 2iF؇V4mpx9 nx`ݓoI|!y:(=<|gDHB8?z$2 A-#AD/o3_cYh Į?CO V zXob3&^[;Od-.վy8J̮¸'H1*߼74obZRVs]$Dϒ·DIZ0;ʿRK_$/.5@)ꉸ3vVG<1=,*_TȸY**GCP{_*  w,]’uru#j3g,./ U.a09ҠV7o;7oC0 0ZP% 7ٰD㙈wFɺ1,l&b2}qh!/pW @K2  m~W9;fm_}bX6tAfhhExess3z4/4KiM@$v2>JOWހB# 9~ 4rJ*X#Yo)iݒk.d:Nϵ;+ym{f %o^,ej\[{F;XM{[ yev"JKC{5W><8P ônxQjܥIJ`,zU^Qǀ u0eӮNǟx\kn]$jᖺͽȦ gT+N: &}y폕wٚoNKHf5J=_*2A-~BJ)$ 2t&![s${#6G?I2hXV{t>oFvp5RjDχz?΅$ r~~Y,TM0 aρT<SrH5`_nn2jt$jD10x3BC YږGr71TiPфz ,F}&g>@pep[%ǂSĴoL.n~y9%Kش|c4}CfoI,~MjZeD_Y"w.מw;6ɿތ3 BUWP{$ .:oW?۱_[^dWޜ5Cczc̈?hg4h؏7omI,/y1jz_/~~3I?!hScW ? I\46[}kZӗ&Wp oXmX70f3*I:4QI1;$}pIYe6>[%nn9%nRϯH)cc*]`,ک͍Ϗt̨D"TvrJK+O2`Y/rW#\5j~rR݁W-^ųxg޷Kku,UFl<,\KD=Лѧ1Xeͨ õ~89;ّo󞦹 , t[8-%kVG2!>+^"N-/,;˭|bo:HGggD]PZ#wB@L+:A+|m b#SrD !V b2t~h77E/>{ ŧ_ggMO'NB e:ЊKND%`. ( B*)Q(<J3FZ }Gop*9.ܷQEQRAØ%:(&_qyh)9"a`j $Y4Kre$% SÛjX\}@mib=T\.O=~ yIGԇ<&zVLNjb r oN\T^֋a1F2c"2L7I\uw݊vHp}3ZP}MDZկ* { 7k)|bXEǛt?I!GdSV-/ @0 Y扷 8ЄPMyOjwFIGC"ԩANC+#bgP/ xӷ`p_Lu *l8 k0 iaܟPjzqȕJw<# K|O")o9w΂Ke'pb3B[6`*a*.;޽RÔ'NJf8=` &%/E+Q`/)݃_2U-מ:$)HH昞 n%2;#A%ݔo\ W(r)g>̓)  0rt(aQaIOnX }nWXd9qAȔt(/LCO3 %(UH i p* XS t+*T5*|c.F;mM :܈MեIv "K/nk%h9=29VΒP0KS(i3 :Y.Xiw:JW@nSœ7MRWpf0rm}c!U$Ca^1sd#Sd Fړ3?IRL̨>#lk/'J/Hܖ(jChR#v۱7Ojln=sƖAcPq 4'iV@F|kI=ҐEn_I&+u&CN޼WUCRGiˢPsmQ:H$,A=+c nti%E\;߶ҕ(N@;5UDv1??_j}$u7 s+mi]lJBEܥX9jID>*$\>%]HK6n%\Qpu^ d;rM|,gJ  j ?18ann~2<=u| >\V&JĀ0,0$ƥwn-~_e*\ܕIX4m",oaan[mSs>|)x?j ) wG@.nVy: z**" ,/z_wݜ}bvt&L-Ͷw: @5gDs3~f^ĹA:gKyHPT_/gޡ_|U ‘RuǪ!HcE{b>&U 6Ωr`I#*'{@0XPۛdDӴaMI UldQlϬ¢0 b@=A%C֩^?8ÊTX!$?n';Kʉ+2էuU)_3&E\YUh!ɘA }зۀES|6YZRlcʓ7Ӓ0mӃYt^:P9v;8TfKsvTe9۲$i!O]dž`X6|x/6 WQ _li眤@a-cH >Ϫ~1#ܜ)N'Jvf ,0\s M$!4[:ϣX_軇!H2~8vs ^*\]0p`C GtmR:Q%$8Se~ҕo%70Yq<8Y|7z)Qvv|f־!40Х &|7#rVй+yn} hQxpNYۑR3ȄY]x}B eqGxm.e4D~c}5 mKK5d?I9\0TsC8ׅ7󸃇E PJTTk(/ Mq@*#1VsjRzA%%+[N荙?%u~)IxRC<:ޮ~6>O ~N ס7i{[c-'?7¿]0@7C<_dpKݥ{ ={(9R>(A>T!"IEs,͊6Zw R.KWx%,YñoIj[q"6/Agm&2.h$h- \*}狣o IL}-k{ptBy[F `hO 'V@ǵN?qs]71b].$2Sḏ]Tz5N纼oOf7\1G+R>~Iטt#)G!"{ETN򘎟dLb6N߮\ҿ3zGe(~6$3x13&fŇ?Q̜wIZGWJw ֍p>_Pb"[ XXQ+TXʐ /ȇ?Cb7a݆_Gj0<ѣb%Y:ڨa5Y./V3xr99I<So8N^f⸱ P)^V R|ՋiCV. #J 4aN:h߬-"*8Ew3:Lv.ԝoҺKP`fy,~$ $?ZEɎiq9D @܌E}\tBe;i4Vu0ADQ\:5'*c]q{:`wq!AY9g¦;0gĶpLd)` m?GYF3"c c|x.v luFōt+~q˯hLF/BV5u2qvɯaA>Rx"ϥekfտ@zbKgS'0l_P1J&agJ:ILџζ|:q<>^l.0<2I>&]DAǡ%ˋM|O>Lgc#ro7t޼}?^;T$$!R\ʛ:u p|+UTGn/k@s3F//GoBxaA8SrZ&GYZ s ؖSb֗9[N5&?r612:JBsTV{Vxaū<զfcaI >|:Ohp/ppzpD׵5zWDR宰?;H_PIJ3(@WzhWށ[RP]OɼJ\Hi=8#5e$eOs޳!ӷ{/~{͋>Bq7YuA!̊/rL@ĩX28F9# ŚtB)b~(oRW9(FA1dX1*N/OYR*QCGʶKF|ڴu.1Oߍal'z(nH V:k:Gqi4♩ X!߿gasp>>dh%6G\zWEC̙=ms6<(@}%l8Ps*Xn:iP|vw;a _9~O^MԚ}pZʕ,$%y6*Q9؏L1ӈ. ӥHKj&iEmw/;7Qw8X7fN6i;4nR&oͿ8(g j,*V7́9Y4ȶvhq ,eJ#E/UO(윲Ҵ M`93Kx)"Nűr+sD(jԆYP/7SJMOI;'h-sϰ(Y(uFU O.(Ju-DDJ%O9'aP.l@~#A,'Uiˣcbk?c>j`~CLWI-@n9|| 3% 53doaNyrp[lj!fJ ?ٜ=&fr1 JSe)vS*C/MOj W=*!gs ''H.ڜuK0B1@#oK $ʣ{df6;lgqtS]*c6"(vPx<,e_7b LE"a& JojȈyۯw~/cϛ*R1Jo0ƕ+(2E}&`/M&'_߸K]/dn:8`9zj j7yS a+@ )35.r2#WE8yd"[kQtcuTbPPV@[H?.ӜAKqL;j,xq2QF+l*m VsPٌOP/牾שmnضͺ2K(\4u蝨 9,nӜs._uhV_jmF[SYl^8Te䌪B r !r nb%JD0ިze0(uro_俚M 'MqYkQ[HbCps%Јʷ!&zM<[%p\>t_YFGJ $kUMB K]!φQR5=+Zi3̅'Ph!8Zf[,)4F*c_ SvqxίKH [Jdݬy;`ف. i~zY"2S/_ۇ9HҸE#b%soH) VYxJgK%Fѫ4H.@Y)AV?EET!(cס\=</SfcqT:TRy(UZ;#?Ƣ6FmDkJe!NLS5uS͖ ]cQ+V PA$?{n^ut{.o*l3@='m3ː؊a%eע*Vk6 xz}jSI/#};ŗF绁Ύ~J<*ZQad?>7Fi.%?BgEe=+,uE;"Rh!曹>aaIV>v#dQ5.7O5ܛ\ NdzLgx*Dƭ2=n?{? TB>riCK,R`ļ=;a=A2ZW*uwxE ?SLao `kY%c&b3_2(+x4Kl\>o6&gT~FWɼ .w!KQk^KWU9j"4E{_JbV6Y*olb1#Z\r  Q+4(IA,(B hg7{dsJufeE7ǝ˺͍rOB$]M_K58#VQX(Xn:蠒(܌9/#[ .Vdv;3IJD˫QKT.J( dp/Ϋ5zL2MSW>꾮; WS9*^ZDw(l5gK;e9J|(|q>l{'ڨ nwWw%^w˽sZgqL׼Zņ҄=UPFmܿg=sﻅޕ#W9LK |+Gy%"~@iIcYy_.nkR7uK =m }el ~WKYy3j my>z]:bv`[8!e?JK gHF3Q;h] 4+<:z-FDƛrycryzu/}v6.X]o1blo d#dr`o]Z?q54ƼX;`QtcnB$ɷ~dG~ 4ܔٰcVA`b8iR3` \ez۵PA>nRtA5kMߐ7Q\Z3Y:Kj$N 9%h/Mll9}z3r^=$ldϽ;EdLg4%u=rM&aF5ϩP8΄k93勿]OvRP8i4T3̔[OW&* 5Y(gnrX$bAK6Ͼ(fcՓjaRGt&'@q16? ,qd\BQu䫵ǜaO7zk?Z N;w4Ŷ:.c>᭪Fv-H*_"IQ`"r'8ag$OWR7 F۹xX=9qD /@~;[_}ہ9hmL#9alG!Ua|"(_'@r7DӲl'z2r0tѥFI)~8$[E9(3 œ>]BVRynC* Z:A7NXM`ެ\Ǖ=N('N j=^HQqN}ԙT\dR\Ӭ_W)`L? ;s ̝?Ha"Yҏz,<= ETyD-v(ҶG5TP*c_Żo B (qdVoŦP b-!dKo.4K=x 3*w@m:6Ҹ~ԀsG\ӧb`n_*'2tX)))7 Bw#z8(J]M,lސM/^03UcI5֖_·p_b?Q^[-*SSY( c}rI` 9 te?!fZeze] kR.z+ڋ3>ѭ:5lqIn{jrdFl|ڍdzIA@w QTA-}fY!|kIXԧΉ[;`4F0418`%E8Z*= [ǥJ&^+$^J5P-0c8rh,})x\zXDQQY|c+XS Qi&aa޶xn3!+ gM0`UC: HUɴ6l>w [<%PR;f(} \#D:pbHE^;W-&^ػ%cUwH, SCU{ʆX[z9XOŨ|2=Wmx?ʂΛ 7!(̡E !g%%"j9ǦTYSeN290c1gg?b' ѪguE|u6gK E^$ĀYYe4n 3<[/\U_Ln؞ U\u/a:\®}`.ɽtS*)ჯē"nfnЛG2s+MD6/\6qtn{'FU0+,_+/2)`럿'5 .hfe19Ӿ->)Ġ9>.\Ǟ OIm#8q%΃ }ՃPeAԟF#N ԕPY&T0sW9CmNCC8+nG6هbN B$씡}Q.9eP r)&1k8kmM@T1V׵+\n+ CcИ RgVR$1`3IUۑ= !CP'7.u-qsT㬬Tz.7/S EԄ$MzQ kUy ,!2t ހSkAs2:hA1LVrcvN!\ V ֥V Ɖf[+o[H+GkԸ +չ9o\)RT_$ܪqL;<<)pnjpW$^EW1e0Rz$:J#zٽ{0Z)I;£Ѹ;6'd 04cEXrʆԖ|"Q+s=K#؈E%XPBpF_Gm-}h35l>o"Xj۱?||d \@ϝ? {U1-w 2FBa!Ai[y1#72s;.Ɓ7jd;V8n0$66)vScdi3U7R9ǜ׀ohy۟¶cR ~nmwpow~|B` ɌV#PCr pIejyޖi'O9g`lBG@T]TUgnLR`huRS'Ȕ |\)/E ./jPQ"ZdK)qݴ/Xrm#^ xøB/ Ja1P'ynfx}iRHi> B[VTM&g4S*7Ay'=:>=!jͳ!U4J{'V&mVSN FPt[H쓇y ;'R%[_ 3wJʘ- |;r=H%*:G@ Z+P\x[CFW#ɌP-qx`;TpoxS,O~<||t_ 82->Pb%:S B~@;wx\,z==;: K$)F!B(쀻G'vN q v4lv~dAwbFTUP֞1&Z~9VbhHWTi+Q_xQ{YJ3+b,9M궧_[+錻vuvTKyO?sKeM|kj_o3.E)3pM,xI8ofhMy;] Ӽfva;Žpr§؅y9j8:zmʳ^-yA_[&.ub s#Am{ZljEO~y_ݽ me0&1}fa:ˋD|r\-oA߬O{ ݐ$Xi)Kk(eGOov`P~+; 8Ơڐ<t)Yfv4fT3QGe3벶elj$ܸڗh+z^`s(qVK& cڐp%R4KˌVǗ\ !헱0x\\|lJ!uJѿFQȋYHv Zl`$i&bHh|e .[k_:3VL-+N$'&-ecc'0A@|(3Ji;{tIɜCN&:,h%{$~=*$ĩ[^j5]605 iG6C;n-Kd/gv_a~:A]PtwO^o`$FhFp'KFW|vR`D%OzNP'\[C.=V"Gi.ga(Kn3nᣪ8q=?GVc`bQ I_ Z)_ *nImdM;䆸&͸}Mu{fX5 -aн(Nq7}&K ɦӁ\`pt׸LvCl8r ]V64 j" T]_D_}+K5.7Stq< }5z,kyt/ꢦ& z/*=-ߋJn$s.0w7،DXd))Z79؁ѭ޷xf' wdi D(Jepy:/ ocEB6,TnUݐ5PYI{3,QJnӷVj6v#J #nnߺ}O@yXX켫.^`%>}$/pT2 ƻem`p3or4܉Օh! G;~Y_w USlN!@S7db®PYE).z7JN̄A%%:٬3g^<{'{1ymPu[Iԙ)ο 8z>,NvmXܗh\ok*XhեӇe)ӎlAfo\fTMqq fJ t 7@QBn~XꐻEA&W"wzܸM;,5OM `q*DȌ~rWtV :8yv²f'x@Ȳrđ˃sqd_3n^SKǂޘN qz a^6 *L0C' %(_|5@sm+ųsuw]LYMmHX XYu2kh 8y=,!s!zד}ި74]Qy5Vh5Yj*&4JVZH`a5pʱ"|:Ov`M;*Ǽ`$?)cg}T`A,^R8V;}/?>fy94(ް]u1orc/ ҫu a g4-I% HX:űMj@{+`5Bx|C4|!Ohl;/_ .Yj(5@;4me~>{Ii>TZ?!H6*N"a, j'o1vw`IC{2oL'G\Jht>H]Xa}( GOc\h!itd-ySdt$羣aq~ͺX\j3bh,#P?9Rw,yqENeE?uAl0xmR! EsIv=;:?fn/` !Pw'%c0 (LS'T;<]7AoxbqǴ Hl & 5 V;JCTU'LwJ6^އ ]0+8NF[iq+tW]d %?]xwtbW{9Oo- ZCw.zܢuYDBעˠscehv:Tʊi_> ]Sm: Zd B)TRLBܸ۸Ҿ>>Ň|; d1X'GA—9c'=I94Cz_ȣ(fWZ0eu+fp|lطr5st!-hQt!> p|*$P@w9vybyI.C -q :O ˋ_)BiTz(u[ko9nRLd%V1$MQ#>S$S˘vkc06O^b91,G_b<8S+q0'[96d !NHq*w}Xп-eceޖt-qI6萰8%;P7;\~p8~i;[9S4akz ӎܴ6 APknl7V3zanl5,Dpav'/vDˣPC?QABXȎH)o6 m"Jl WytTqoGL~ %Mp`S%8Jo&):W+pٸiIo'bFHHEvPGЛn0v51oZ5K7Cmо[M]hAq Rg뜿/hE-SEK@ly3=F+hu̞lX gk1ӫ=DW#˸2t>",{Z_OHAXL#@C=A=ȇD B/x#uN%3YcO嚁2wi U)o {$o q*PDDw?4#͡NuAq<[/[_ѦquB+b>MI O.(jwȒ#,+pp0^dTK$tه[mtt}RɐfڙD@E!* F2noZanS>`485?c*"4RyF:HLDmfwI ie̱!-WNt{e8鑋z{ߓcˋg./μ^/qH?6Od|Q&NdߗɆSu!wыjTսO>=ETԮiÉyrzɳprtvq56Lsy:&׶Vܥo~9Uxw!_`߄_Vȗm·9͝K A^8_mL]V2 iJ#03'Z@OFBbZ< Htv*TRE_,-/b(1]x-Q^)3["a%ۀl,$&Ȉd,?R4_򠮓HaBf݃+9BP -%}o4>8wJ|!q*ZX\;b<y+{*kTPKpHjFLe5L;JG,B~ފ vӾvE ӬO#5L^> -`c'*-i(Svt&I}(lJ] yQcĵmj .ưҰV2m(knx5@`PКp )DdaECUSf{Z ; 7{KB`@?? =[;{8g[ZIgE*Z (<۟ o5A`fӗIxw}E?䌉IHހbUբ@#&;j@5HWPBV Dg˛ZDH$Fйy<( i3A u:y! I90 : Xya3* |qf-xӄ6$7lD `$R:'Sg>/ ~K/ _^XBxa9Kك u+:)f_}@m:]zJ2^" dž*W2}S$\Ddw ?(\}q^a *i/o;J̾ƞo;.-k4U>i#.^?q*R y/sbLxs+n@ \O,T75Ls2 РNa`b&T[Ͳ5[|K`Pd^%pG'd'r*싶[!Rhrb$X^iL=$BC5y<^J㶜'!חW07INW+68[:[' ` VK(ۋ#L;pIAtIfb t,`1$+p(p,u˞$Mț>, iá]h9_?N}Ԛa@2t\9t\SB@Fh지==<86<9Z/JiqSb@ X |}n=Es^Dh tD{`y7 - ECt7fmԍ<&j#pWRD$d%G(^;!zd1M@5oo ^Vx]U*Q}&T~y˶&k`28 LZpQvizׂok拻<j |I r7SU`- MEx?}eR0}n qIŒ!m@앱Lꀱ@C.CDb ~"j+` ”={Hg䡉l.Q対v@1Tbcl9@ĞF(dV`xn$[:s6aq#66)f1I$'&EZAO ( :dWntghQM\TaNۈ8sY L(nF0NeG̅ &>R7u/"7>`M) AjRΩ>sgk{Vi`11ʽ|L<*܇u*vD\ /'Ұ6?!<ƒ+0s@w1!4r00J5b;vQ?n_vti.jGE:4u8`4E[ިu.$>\2pPd%Yqv}ד)O0bd(yb˺>}vy+.K͠14BikR_P $-{TTA-$e)1t:\&zk ,ڑ{&:.ӼcqTɎ"}ت Gz~pdt%,jh@#,?]Jv* 90E@ mvżPRI<9]8flun~bqJ `:H "L`TV: {6ZZnyn*#IfWpY''btĔi5D2Z\ 惰6t!eæc5 $v|~͓QO~pR`gSËqKp$miS,{1Mъgs{f&d!=8=kݎISAIDb^cC.Iҋ]&IZsv˧uE(19qM([ro'KUAB<9J`#_ aVV'a^hAإS 8lvBr`\#9VX[1%+7jĨ+zTkM% ۻSaҙpUNrUdr;)lsXFږ&8j&~.VW3pTwuZ`bMcZh../5^ 0Ld3!o`UvBq4d3F-.LZ<#r&d@NK$b#*~&S0l?dWr@B.2>[@ uCH /%DX+NvvC@UęH7ϒ!;Kv|ü}~V 0F,bdj,=T;Ef~4ߢ`5|EvEO# Z?.s V֓4e#57K[-zҹ.˽_x61@< B%S4-q+Vgpq󢟲y٬W'*g]1ZSΤDl3!֜h֛u&/h!mfVP18 @ NE&S&(%{}Jj)a$:fRSpNyoUb`hB1&)//Sv&S_Y˝b+H |ū1Sqoy %1 #9yЪ@@Q((;b\ #7%g}@~Mؙn郱nD'㛃8n >S1mXP1"&S\ sUg@lmRi??-&y\^i+w5` oh-SփM̼I2 ʸĥ,,dO&gm.panh~[O ˡBT RnOeJeaA۔g ;.&m誱֪֞zѧ6aSH4 uO#8`'ɣA$"H|S'#i\*!`mX caxV_d@+Pín" b^86H Q?%RX6*&Rȃ\BLaH"hH.X ;6,,i=K ҽ0;nƭC@ *:Gz]_3+疭uѠqhϊv0|NCA NM|^xVE->B"krW3HJiSUqd>}$hJAT!ExG[;L[>w e PC `fMq^kpL^">$yX5DPMk_Zިص( 5-Ӂ0oZ펍c0Ƙ:;cT]cz p%?%\tz)^&gߍ@ {(m.B%{"v@:j\_ֿDb BD nq`}h`v_4yf!Xog +MPFF`yEDiVF;]\Pifk,{'Y:,+)FRAq ^:3546rZwC׺[^ 3!?_@A\d$+-!4fBCaN,NAW-ьKs)^}.s!pS'Z^2n)[H)jǤwP(3%"Olh> :{Y!. #,!'V5c6{N1Zᬉ-fUD{@3dhΦq~L0(PEuH \at!KQ=8ueͳC;TY"; .}Mk ?!i6@2^$Ysaڳ9MnNeGM%>r@ lZܡ}Yt'h4\F dUT?:˱ {>H ͈+>0 ?B"T~-|,;I D7!n鷏{VerV$+gx]a(oEìϮ'O[ptYnE\Kxdk㛝pz- )gdn:[-\yMnkO#ŅڸFPp 9A2.o{pA8H0evaB蘫_kKBM BQ$;?~q+jlM ͤ)YFMoƄɛ53E /@0e(Q;LL@xf]ΐ}RldF؇1Jpl13:Plܝe>ECS!S7M ʔ2ޓYs)BG:.A6AQ8]m4eʄaXv?r#D@` !'Gd|4b5,PTŷϠYR8eW(v[A7"i4_ M9Dswsh4Qxr"RgM I?m\:%.t-=oZ!*h"0YMOFbpfx Mp C!XFt!(fŜee'f ^_4 _I""' Wis0.aR"fځ-**),r['('2fv'`; V Uop @pʃo`=pm,,pGuF`Uu!G@Dڱ 7Á&|T |D6#Ri W4:d)!iRA-F`CxA} =$S8'wNگ2wOSZ!trRŐ!Ѓ(&a_ș- (bqjD&c֡ w?=;zţIZ6wOM֍hd)ja3s)%qiL_C85Ǻ&͸ˠIEq[g s=%cFhK}0Ɓ?(GޙieH9௵a'!w8N({9! ()340\ꀭ -LŴ_(D61 C@xűRάx3"pz33IBf$NEBS; y)&5v'A& M*DKieL=u;xP5pƼ>K-~R-@8/WS/'8^|m`ZY368ďIg "ViX]k1lq(^ւ>ӧq%5$v_'q^xٹ~wHNłcUP\689iGz$3~$H~'Xӕ &ގxU#@nN)|7@&k'0(SE*/G:Dhm}̘t>e!sCb8I} 9 qU k&HJ 7SШ@? )kc^`|5%  8^O^E YMrRDI`Jy7ʻ;(~d@Da$E=IhH.@57لV^yxHҶI ӕ[|ɗű0H6Y'`bXy-҆."2]&ᩴXNSM>-,UT\Sl~C> p zFbt!  ؙv޶#7>2% R[XscqX pj-5qGFKLFMdanXLc" \HArQ +z³,v(EՆ7Z;SOIDZ6"_mFtڄU{TJ M/՟:CQ HBL3+*(!I&sad֌dC} M46&dŷ<iGJGqL 2CX/ޫ/~h?6U/^Tp6'=@R:L)$꧓B@cZťa\|dhShg 880(JS?w\ ~ӹծ!D) c_^aBVyϵlĆj ﳊ\PaX'xǃg ;30Ż"/JÀN IDo>"v mW -aŴ|ѓo)D~.=t#Et /a5I`Ba{ _cɠMzw 3x}ˇ#ԫ&?@X;y۝<~FvƑ(L4<؀}jg_hkq"WtS;`ƹJD>Fwe .&w/RrG3քvb kK %~[{.$*9Z`FY3ȓoIKn"ʘTMѭ(wu~ @CȖ GЅ&SbO$vn}ٶf01~>៱qN# T6BW4@bL9Z2As>,ĄBӳ&JHg@! X\Z ;K2ۄvi6*d,ܢ  c: "qȧw>=-_@(Jz fR9Sn @.t@+btHd*ROPޢ5(t#c90_f{iӯdFZ'²ޜB XeEiCA$Ѯ>/иG F *!7-㇠a5{Uū7QDTA=CwȐ4ˀ`>2Pbh?9a79@Dmki+G J&?4d>oIǥC d+F1NH}!ŧaKNt${kQ;XDCNGp`tG_!%Ln+`d,(vdzFT`I5iH8.7;5XoG'jQT*zF!?vn7p sA["*AK X]Vn ]b!JέsWLvD0(B:G,0 7h/P鋳3'{f`(D؜v' :͠zj8[Vd:|s֝Oߗυ7M &5 1 1 +} /`zhIttl5ZO+G7lq0E:) Է`w`BL;I .ݐat*cU`Yh$QX-S'lCy=Kgt|*&6yTܝQ!vM@]{frS@tFЂ谮K4ҽu ó"O s]3 ZiQVW[V>Ir5u,0Yx5XK3Elhy5ęڝ10t~A:6LU!fIKG}W3ru +3=K٢\"M$9`=d8P:j)]rLѠXSA>-<dC48P4`G"RTR5*^i0ǴO\@"̋Hq8HG` p@8GpT ;nb 3Hz;;O^Ӥ=3B%a$VbyKG@D @."4c LҊ˓q|026튟 y 'p7K |@,FhtMvKX$_m ߸띈W3J~ñO/GOncэMA7 sc=(h-M. Ʒoo(m&@% ܻ^r<թV%ѥ^P>K{t{H{N  + 0T4#jXI7 xk ۮ*2V8\ WՏģ @`:-9Ha)5y3[{r^0 ҢL֡Q"N J͆K#׶ɇuY\,KX>VSF(t![Η<`[Պ\ٍ KaBմO%?(_& r) f kVDE@.mie*r(]RWHe +5z !1 SJJ8iv! $s=`Q* }5T! 8q=-"%(GMInx]ܦR# whW2b~-Slr>H\vPXA@ޚ_mnmM IQsOǭC#7_kf7o;ۍfѼ6\έֱꩠyc7X"ev{^x*d+`S(QPf:TC#XyENS~BQ,DOXHq6 v>Ĥ >=ռp+ãe (2'01m.q( {;;V&4ʋijPl"9:SmfBd̒9QT"^`eEa&Eƒ=} jj:)J]fz,i(wR5xcIia XPoz}em茐 M@a&BUT(hG W%? ʲk9;g?ƦŞƅ>ᄑ[cKu/Oet6#ʇtRoٷy-=+(zGtal~Ѓ} AzD$:T3%p/4:}:DH遾CژQ$ ; x+:BcN_rC'@=Gf& :)^0q 3B̙J#8l"-ˣ$>k*y=eR6no˪=@E'hF$91b=8=HYcX8)D9IRB6. da[ה^p(M4X7R8ĢݺcXD7GMt[׷$@!jKD8MiUG̥ [*a9``^CZɀŜdL\e3MtX% hi-]%B;+#/O^ !5tˋӣ8.Dx=sP/!7y:^zX fgr&.ev';pǻDK`:U:A~,Z3M1ܱ)h,"(U{%A&!?l`x]: |XhZ팩Qj0v&1C⾕Y _Ekq 5pzK&vO#'RCIָ*F3ڧEz '+p|W9֝BG:NB6ӜLQ#G +:@M/)3CHm7Pi·Z]Kh{Ndz=Ь:kD4q&zЁEjzV?)1ZenS?_0;'a 5[+,pxe>WQi spa ZѢX֐4@z'#x8Sa1Z8;ǘr ^7uj ډv`*^D?@m6y؍8ka^3ެNځm-؉XCuzû_~q0%>.Ӥ,so}u+%f ^pf;[]޷RC˜"(v: 7Q')3 ڽyM.p5 ؀t_{jIeM[tP>[HD8Jc%L9Z/s&M @0-eMNE+J#X~+5re"i`/kWPtv1JvG7)MuI dimc ۴Q^{OGjz.6*nx[ʢ5Z~EaEt.{X!,["聭[r(`[ TSX2PlEL:H74ڍ^&ڊǪˑ'!Εb# FGj"ؖ#yN#)X -cjmD{s5?K N^_~O1؊,<Θ]jZO+.L]bP/P]p&%b BOp6̣ε >374>EMpd)$~C]wm.*C=56\ 5KH 8*pdh+lI]kc%i0|HV:LPI5oElFC&Sփ=y ƗL+Ũv* c&=&\;UZy[eypxw33`%|sk[*6Qf.uJ=Hc DAYѵhx5wdT $&xĜC!BO+T8{9gԴؚ$\0@<{JSs$ÐI)dXpɳ $*]RGX"۴K{"H$Rن%(c؜K59O  cQҦ]CFsM3"-a[>ˣp̲%uT6Bj2VtOAg2Dz@nb)/x&шTa;ŁRcpܪ=/:2D~ا4=I&Muj9 E`i)}x?9}о7GǴwnT`?4wu߸Aλ Dz !5BfLlTBx7^BI(п8\?}Z%5Hf3% JR LB礗wWۻSnU eS{`7GaNnWa)r;_f=pѺmV?|72(l C:XC0aF!G-LMRI g0P҃CS[ڈdV0[Ӗ-bRB0pmd儂P KVkMvoPaQؠ1$w(QĒڧRjA MuWXō6{S0ouF砂w:8p{pBunH]}YX*}>\itfp[U{$86L 9"fsisw(} ܁7 )jCq8e 6Q'v [4R&5e8.QxkE) /e9?I9d?ve Q+THñD^B \'M9@ggo AhZێ^1 eGtSj,[wrҨ[݉Q3g+ҟ9|oq)7g٠h'=:(8pna|e] $JĚ;Llmٯ5ƹl;][_ J8s{a[5H, v\]qknFPP䃈NqKVDS~vعۑ_wK1cB)c{ r=V>!Hsm VMYmpJ(Y@`baM"PP$S>:?1jS*vZU.8s124SZM,_P6uTBz~(~SHdCtBuuVlg@\'" Zd*Q#1D7#iJ)ĝBf bycU9 `1g,F,vrw3郔3zxJJԐ!8RI 0"d3@#*33n f> 6<.a^™;_Nlm/jLCۛN8t/?s%o`hRyo8`DRv6mACA z}oCd2 |80}ZFe]$ޮQP_1ȯ0>ϥ촼:ene3sEw2t;ժAd[վ g'GljH83q473&Sՙ2TF5p$I|g2ObWL뛽-SExf *d!N,a(\sM%TS=H񨪧/_T2eLRXdql]mxs!=`ElX% U T*Lŗ&ߊ*\%mʫq#@o~yO6ޒ9wKu)4)A+КS&KB_ᙯz9?BMRPEoP Js`D#oQx+3.4mv `*'_ %Τt2F"Izzg=΁B2;Ҹ {K݀ƺB3BX;Q)Z^U%z2aJWK5?*VѨ-Sq?աg RB8XeԷTmZYq=޳hxeKάߕ׹ GXku:vd0gO2渵Ûi\3w8UpUMf0*xD8sE &E?\Q\Fo$no.%sYY"WA}@s|Ԏce0yd~#zOwGR϶oaaPs^#`UFT;Ƹ-ŘQ Q=sHaGDM٦H)URlUGߐ`>!r ;#moz^#Se jdh|DrϾ5}F LX~}MrE1Q@~1eL(b6~F[9 RTˊJ,ǐPezK^Ȫ/=1GlCQ <2F#"t0ej=ԚMG5޿㫚\tLj=xW2ۃg2:LHDp(yS3TFx8֍ؘE\oOea:g@L?ОtW8:@_T6ZN٘޼Lgn̾|f>L~a#9}⳿hGW. >-hw$-)#]U\z~w(6"F9Z6Ӳ̿ Ȉd? P1 O7ރ-ޅ!W9Gى/~`7sp2Pqhq|:CT)5o ^Ge9S$~"{1vU򘩰H7F fTŴxы򏂗4.jf2G3UϹ;gpTQ=˲(B"#qmrߌZTr-rЈZ|чC4_:颋I#5-cF?bZ7o|*$⯪S5wj]˒(*;QER0|lh]MG&[eKGaSHW:$GbיT_32`m#6i\*OU②3^,<ʮq.Ol$XILW*F6 ن9_q$vz[WQخj[\i+6pц60:;~ T,iU@p5C?є(L˨*"uvK=欎UqA9ߕN!ʟV dx44;|UMjz(5"E*qD+2繊WBګH]pl__Wy#q~?U/=!" hf랣d5cF}+Dّ4W=UL6/Os4ZH{e"vO 3#+BWJL椙!L1hYe*Z?qLW/ጬz/%=5ͲUvGg|"5'oQ4"ܣĕ7jP,3:Ҽ5ӾKAoI-O1ռ2I4<#e@ T, sMY2+ KD+ݭ՜,%Qw`|ϒ\K ߦGUY^g{5J8R-qU-9uىW'z)Fz=|[TfPd~CFgKCε)? ZA͇4L_{$=MdV9 ct23ӈ^I-S,>r3Y;I$TQDɗRQybH)?|Fx(I 3_4YW2*lc1ϼPg Ŵ<7~\`ƴJ5q ~׊Vi-3Z2'p9<͌R!arJ7rd3aYU|׊ ՛QdDWk;>{Vr8@U%P܂uf8%N-m\)Z?%9БS^sFFqSږ>jQHKי`H֏̘O;~"l1{V Pͨ*}X>kFV& xHRZ)G֓+\Rы /Kɕ"i{Q'Z EM9āΌl[_Txï DG8>U]i \!d}[%Sg `H2#>0GF]|N)[^on7$bf9,ʽ6o1"mh2]VO&nW ^2rGR%Oӯ=}oYVߣbL (,z$-e yQwTȯFf*Me2U 4S?hlfs#3N- Ւ3k>: l"g~G_Q!,- v ̞϶T{{_,XVYMLJdzF]jY*;Wi0ED'z{ t) ᪅sIThD^аj>}1j}ENFgu*+/`:ʷHظA|uӟ̊;(F2Feŏlrȗ!.4Dr P 0TH7c6@Ȩv>FV#IVU`$j U6ъ 8񺒭=s[^pgS#o8dT_Wj6ԋ5nd:)W_6rsLpa "/^\Q19в)5sYU#1 bDdpYk$RJGwOJ.GQYTې#ie3Ü$g cTFor(+x~ٕ +󿛝_||TSaYSTc4p-[ђՍRs}_mAT^Zΐ5]a'uc#M~"/d=ӎH0VU|742UKDg|]8Oi4^DHĬ+k86s00[4BZ4Mo{XDV>+/k97UiJ |Jw٩ h|m4&fw)2 ;A59+*oٺ^ s*R3Bk|f#ΝP^8\DaS-{%?!Wjdua=+}_E>9i⿒GhRDiF3⭊jo-0KV9|eS8 k3\T(2 Tv/N&s>Ar>x_ zTF^<фjGb]дY88:p3Z)s+ l U?3O̠ʍ CIb} EE0?2w4^7v/QԠ,k&"2|bP| Qhdx͕G=*e?[.qvr~#ػ(ձF=^lS(Tm_U"<ϖ%`cZd82be99ĩꇲ#܎;V<~">rϕ(g̮yI"Ə, ,X2%|aH}ǁE0k Hg{v&CGM j{h*RFg^ݜwuo ]^|G۪vQ6u'>±t5vA\(f1F}G3[ھQzO(79S++.VVP͑""6eX~(R)ji9Fh@%I`\}e=1QJwWuU+Zj%A ޤ10  l c.c˗PY" ]^Ի*lÕYk+k1SK|_Jɘ(_G9d(CևF3x壽ևTL1fF>5UV$pRVrZ9PS}upþT-``w"\*骣nw{aPiz 3UO33w_f!h3ЩKgҚߢ#%dLɘ\"&1ޘ4KJß_ٜ}GqQ ղU!*o̊vewJT§3$r!S/&_F3SRN`W\q"A~NA$YеM,Fj*6? J֕G[Ց/ԅ$8gW=!b+ \1;YsBy۟s(ooSp|G3ͯ\E[UUԷZԾ?Qr >Bz C߶R6,nq%1VUWKiÁ?%oO[GC]Q[6^-a#0R񻮍s9goƶv:|2$+1vF6&+a)gD7csUZIxeGs:ś(ܑ ׵303D«+oX}m/VMˎL8{݃kQPE}U,%#$k+~਼mJIWW޷q\Y~f[$a,cV,=0EvUUբ9{}Gf֣_nBq{#2232y(&d=']Wgt(q4'')}&$4#VCF>UMaXbR9՝;z2CKa4ldZlʡ* 3UUݙFx<z!ӧ*OqFzh(*xG,,S:150JeT>Te62R DaTz-i=XA5Bl"͛*TB)VsDkĚn3pg!=O ,hoコ G%eLP` }\絔V*}P+,/ /7pb7>*e..ޓ%vyt@?JlQH6e4 [[6"+pQNפmTUm@AOiK~qVKhNg0s0T¢Sjq@%(p$u"Cf\_fH5&( ҧGG8 (fy,URKZ(#ZlU>ubMmեVM2y]bFr)2X`y,{D 35Jx0eDeyKǑeӄ"6.8!t3ilj%=(^A*Uw.{jj3h\fbla0:posh%Rc)*D8BaUVh c|Y:UI0J+J2hƒbTALýcډQܭ@jЙr&h:{Z<g@ӎiFYLQ ejJ}F2*-ڬZ2 f=v;zj]QFդEXUuv XһQ`r@O=ތT}9 DC>j"rrU \{_U 3i\nC3o@3ۖC&+&*5`XwwWgDAY$2SR k\f0dj$@-㏄dY%yԡ#ժ|r8`%!ϖ\MJI3@ ƃaՃl1̖_lqٜyt9)Sa.YrSF#X:Qh^YZ-q+f"NXA'H%ʍvBҲ">Q!9#]֧`:IL2"TX4F/Pp`,ן H ېTp<%Vi\:GaXd(c9 KrM1Zz1b H)[iUC7Vz|Ahشj P֜P Mg([ J_b@ݮBҥhEڬA "GU[1[EI\e,D> 341P񘇚5$N6Do?s?h?j񓾿#SBdć~;2b4R@70+g t/bGT5~@ ,_KTd[Zr&1z3 %jPBMX(EQ*4Q IŭgI RS(*a:'CFML"GQ 9m٭*dV_Ă{D!Pb.7'2Yf0Eܪ-u~ShasphN.bmVHl #:N}QSYԖPLVo/ѝSon$H 7{FN2%,T1U6^Fh\8F;_YsJ:/ය'(>63E((@iѰWb]0%$Du;(Z)x4W2Q(}{Zwme4jbz4#/c=JU0oj);ix!һRKNIcF^OI9~Hj 2ը[aS܉W Yt:jpRڳ2q`f g>q AS raVh T(#=ZGmjՐ ʜkrCMZRE"GNZz܏VTK8NEosXt֌$w o95c7+s ٌ?y@u"T=Զ%|yw+x2e18F5FL[lK.emh Vqq+3l7n ->-;j>mGc*d `9$b": t:Q`  7~?gP(>+H IYQ뤗Pm22ATX.S"RmV7W9+PR0+0mHRއ!]V@N#FxHVŌ,8hF >2΁TN燺л(RbN\֗Ȃ ab8w#Rg +Afq+zY>Jقh2̙fMюc= lT#Sht zW)l EʷO^$A2Z"h(iP_pLt+f ?%aMel` Ef!xH<1wkSi,:fՏp:6)$ZJu3 LKUl-b"XJAqjtn =]q8;McU(wل 2G` TY0O{hU0A*IH=^OLC`txӻ/Sی wHD23ZFƭ^bΔ(WVWV1ch/TɓICWCHld <C&\̳ Oa0(Mp{X\>Ut۱r͂NȮbMѣfX0 ZLa'7wb%OU<*J"Sk]ERRWT{ $1Ɛ`G !;`/|;THטVEKpF9W-7[( S E}rp˰<AT&mT99c E,@:\;^!@%1*Irk+ e<:&jڳ}urq䍘P7 7z+iYzW2*!=408+ ?|> HP]hMʞz 1JOI=Cg(hp= p,R5w6.}2#h -qLf$ޫ)= ,~6^Br!,.1{W9 zEzh؋,>45I8DIJp+\0l ^URYcei@YA3'5?sJDP_x+ힴʸ2!iY~1f6+ |Skk&5¦fRL h>'Xųm3c*jO6M|J5if =UΚ:*-Ozܩ,,i%V[b[IAYƉe|iv(X{9ZU5iј/OLtdP ѓ61u\Sazp 8Yr]2 ;tl+"C[a.i}V$R )+١/C-;IKK˦=)L ;R:'(j6Ѻ[bء ~QrWP5gWxE,B6]#݄Tchơ,sqf{X'E&:8u2)LɁGJ{sE2ak1j]!mTӜ%kfw6Τ.iGƄ]̪SrExMY—QQv\(&mF+T h2X:*-ɋpm{8>kH`F4^Yڒe8aaLj:ҩl+viR# viXӵ}΂ufY48S2Dx->T~aEz륦L$qo@M=.qF&5kJʾAk'Йǥ {o D}p[>lӸ֪QCQL5lErxc5i3߃*bY(Ά'S(/]i%yQaEdsv5G0 ϟeIVP)~)x_Lm&k|ۃՊ!Q:sH.G`ַFdnP4K13(l=ČEXޡi5ZXjLbePI7LT Ahy9aT4iQ U7U٬#&+ijp2R{ ,0:k0S$Vۂ]s1kJ3 s ]&.d@ ]HDk4ÙUX\"zZ cF#u֍2;T;ISr .a>{M52ȶXHƦkPfzJ"><;^#Z^ &!X%z41/Nמ-hR$F|WuL6cU.:Ċ጖LZ'Ҍ9('j "mK6*$&ll)k$=q d!N}D %ۼ= 5 Q$ j$y`a9х\"ShIdp|BJ(Hj0zR {wlt1Ü}GU]0w Ւq%ݎ 8)p!+Lc<4ڻ p @X~]CQ37IƙG`-=J]FSz?;wDOm"VrU2+@VU[ O%q(4Ćw(B-H } -UeHoj& ƾ[)4:,prlK+ᶦoVKO )o87TKCI.YjS-yn %.f+|XKSy*n8>I)pa#,C w_ 3Ty4T$'ѧh9LivAKiMлo8jKset=LyѨPTgMj[\Tݬ-~@H?)&h')ne6[b6l(nQt JRSH/ kq26MX58Ɇ";vG~⦫w=A}{C{2DK-U]rAzW'M [TeǬ6m ikIaW[ۑEm>ZfT%@C0B V ߗyD[rDaZLQnccJLJԚ\^HDaS62I:kT@DbL.IAPĆК6k' ܌(7j al;FrGYoPR"fD;`l+0;ܔa/aKetѬvdmi"tb՚H4HL˩pc*A] kujM M]b\i&Jӯ1jΈʮ#ӫř\onPb)D?;нE-! :adVk5+F+Үz~4CPwt!I&4N"rj'E`7rdŽҫ֭ S0T==.+"I(RٜQפW wM-pp86tX fxZcA6tJ>d!-e,Jp4gG[[qZqV 'D϶] P)66{95}XY)T@F4U%^h;H!TV Gh"[CmFzǪ{jT?dQWjf,: 3|р5szro@\ө<6C $Bו=L"Y :U5Yg *_C,IgJj+pgHAI1>DA!atr7x?(Ǡw4)4A!+\!{WC01AֆS4h\ VӢ/&V˄P.z5<= {j٤cm xBӬM2Cѻfr(ʰ-$Kɫ~Y1"[堧apȸ/W|4#y&FgL#W!N%|bhJRAҰmKɘ-d1b5lHJWZM-%#%FAЩd~:Ǔ8VhYKZ-9mvnT c>9$}pKȐv4\({LLMiNN浲đ@$iou`%V@vAfai)6iŌxt ,ozV="ظ8dM265M;@Qh9{ߕRbM]կQl#(q"ǥIWvr`*zTSh@"R"nQ = GaI$!]IeK$p ơš07](SML;FX&fe4FD+Uv U K變I'n܉T? N1no{Xzc ްVnT#%qaI&5>ȸ-_jVXL?}-A) 1TFP"2#'inDOȗ5"'v +(8v dՙ:V(6P "U1rqiSe[Tu RKnP@ ѹuymJXr ֆzyX &x6 |ϋǰwY" g'ifeK}^ٲ/736HYWXhv$#=95R*ЫPO*Lb,;' qx5$KъdhEPm~J8$:^sjTb$qz&6wq31f0մ(LJ O^Ys\MdccjHH|/jT9OCZ=e8QljN, rB]y7X[[+BjL"[[j80zFNlw#^BTD:k%ݠkQ`'ŭ6A6<:fqU5 fh7_+(SW+pÕ|VAPl#9BaM0Q¯ Cu8zë!dŎ3AO{CԖqD=1Re_$Gw:&a-g@yA ;P/̀h~bX&Qv%!qZ4Kĸ vjҵ3XHVʇ‶F :PGx ѰƝ=ôiwwXvMóAn['îsDGb;0d^YqKe9!gr7`yD-DІ}>3avqeQ 4Pw[F+1lL0AJFlƘ':pAvxzzՒALxk:|P>*Sl=q{%=`_],'LbN#d&lmz~{@vrSSҸ3V. 9~f;y~'@ ~=컢V&}Ə>'#@GPY=B%G_"T3Ȝ,u!3 SUihRDEhi6%:rV:z%ĐJEtx guVkS*ټ ?^9p0@iPŢ8DxmNmvDћ=F*wS?D(Mp{h8- CfO.+jͅ(0#2ӄAҳ_}hp +Eh0NQt ,<&HI61#k*la xP舺3/cd4ЛΉ:Ţx;CEP‘u "<:(g>{I`idRU5T$Nw?튖x q{EH)ݾSwMN8TF M=t?H-E֨޶~qyD'KmҚQgI Qgd{h)I@6Dy℩@=}B_mLbQ>)tw܎? '-&N6|7SeZ %7f^z^]&!)w!^DeA Ǖ*Q615&tlW{nf eNsEHPkDӖs:l$*$NAʑ1obC>>0kc$+mpA1lQ23ݎ|H ѥ=T[H-8M^hX\[İt6L&O(=7Q/IЂqZ") #QY|yJftU r" .{ {}UE {+DAOX5mE״ǀ b ZRqvܚ$Lf淚X'6Άk]$JXy`Q5rѭztYԆI oxۧ;vzS:JiO$<"kiK6i0(7.x]:b>̑A&zW/f#Դ~Dõhft;2sbk4Tɂٍvh5jь]D)9<_&VủCQZ[s0U;k: 'lTё6@!К{P)_!=NTTy 0dkDYvhM~o`J<VBAC ]BW'{%?+_M9uz8m9 Aޏ/`-d{}#PG4=A; jL%RްZ~Lln[nJ.qɑFlQp =^unT A+qތw;T#JdlEцJI)MܸVuS /pl˕1z}ݍO<K?uPݽnZaItj s\ϔMQ3!ҮcJ¤pVV1coHB8G`ؾ⢒ zdDFs-8:e#Ť2^m)rxЋ?9V{{F>.Q_o7 n.GH#] ' B3 :@3nY[|BAH2KGCxR$J |FԄ+K;דӣ1i fB!"S6qZU 1"3@w9pSɠC"e@bXI.: C HY plɜYbIӫl%X!>nJSYjfeA1}⧥]nc13#@94JhP0yPFҺPsV2ՅVwfDL,h>va.65Jx”!'pJd"L `"BKɜ_6כ]M/fl翻X/gru|ٝtMOOgW7zl}\Vw`s<{ڭfb/'~9/替7|znO/Z6U'IC?iS#GkG*Lޚ$j*๾:nf;_lOݏ6=ROCNˋ9b}<7ȹ1dٳGųq>[fG+&Ŭȟ룋>r:_#ggz3|xf)hOi1yG`dr_l6:>ytz1]cG22l~y=oOӷ3BN?ɩ)}az}3;boB'Ga-<ٻwX_:ê{9] ?ږ(pӽ;aa78uլ#8gVV- Lo]d׷2q{v#S1b[u߬0uGOOϖY:׸)mrt6LO&pxrWYw t7O;,h ^VPlpep%5kz:% _vf(E2AƽsֽU` . :\cWoݟΧ9.Kǿtu|yYL/kz!y>@x/<I;E Ur's>ݫz~/.f^!cvLib~*ny5[|QW<&(9F8OBwr˅V&gvw4&~\-bE>! _r3|ˋ|v~h5`KP19Xk\Ӌ:䭻cr,XJ]|}u1}WBӉsV }rt9?6\ YتiP펿$͌'G5nN5UzY`*fq)>g1lLVSIu˷/w[\jXHR'G;u'm*ز8*g]x߲[_b:|? n6,w+ⷡ`'ko.7]'-vJA'XFf w,\9Owƭr[nU zy^~|jy{)oTM>R?=z1}o'ϙ^?hfn_)nr7]ɝp|n9K_! axwuo:3J:vs^.5Jz#[s.MVwģS,W?|Gp=zlMur\瘴wIkF=y⫧|3?81_n0gO&Ӎ7O=fZ˖; n ܰe{D>4tg+޺V5Z%vX| [^~^Og+,>.JYrctpz`{v09sY:Wڊ';e/?ox׷/5>t.m[0,Lr|~a]la14ϖ>q#a6~DXa֫Fd_B~9Gl]TdϏegomګ艼֋0u_]]bUX61|/?/z }=]>s[<>> O__c_˟_% ofe`eѳ= 5nlop_ y0,Fq>.&$-ЋiM<1q!fGUԹ<ߟp"wqNt込?T~XM$ox_;<Etς]8%<=ӻΚ/\/8W_5voX^ 76¾Gq,roRy'|G}o&(65 ܜ^ۖ|Xm#}=~'iyD??G{ yԛeeY~q .?|~-cќEօ-w"rgpƝlF"7L^'}t?=~8'x=_`ownYS5v h#O~oc |§~.ȃ#J>Uڹq?=ynKu>U.@՚p|f=]^WU'|C:\rYlU᫫W__^CUo#>;iy][';Eȯ8 RjFnC~ gsKJs?+6.W${]gyGK|ۏ?}×w/^OWxCk>~9zψx'g71k{x>?# _J2fZ| K?$rI=F~F~C1n+qWܚl΍G;Z&f+=~leOڗxalZsN>bp&}S2FbuɊVrO'|Rn+,NGw?.:P?w(}? kL]3H.)':R`9.V_ZX渓H^}dcsRѓ+j^ǡ?Ǚ~2Uy:wc/ny\,E?Ϡuw&F{9E&ûX(|蟱2>Jqf/TrI>u cg,wo;+ML|Wl>kg}v?@*^tq~wZ&ͻ%>ϸPUB*YdOv!+&ogeɮd)9u'Urt.B̀~3 d)u~#xuŻo3˯+^taj= j(ߍqr},d;axO](«J奬q+W柰+۴{,_Nef\0x˘~ضTzg-pkmܵ/7' LR/ #x oU7aEȏ(?wa~ gC^cLXP {+ٷ2Əb,~:S l$&|A6#|Eo4ز.'Sۏ:#ۄuys]Ұbx7[)^t9 5' 0pgwBx>osIws}up1]#m" ]O?*6\>p'| OUV7ɣXzv.R/'YwnO.k|sW #/F?2~ߟ|tǁ ?+}?{)ʪ 9湾n윹g>~ Cߓg3E?&WݛoT3sgorm-1.3.1/.git/objects/71/0000755000175000017500000000000014327003123014204 5ustar heronherongorm-1.3.1/.git/objects/71/742c6c8bdb8f814f9dc6774c81392865b4481b0000444000175000017500000000037214327003123021232 0ustar heronheronx+)JMU025d01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)FntjϬn)p3?74蹡_hnbvjZfN*CkmO<,Olmgorm-1.3.1/.git/objects/f2/0000755000175000017500000000000014333757577014316 5ustar heronherongorm-1.3.1/.git/objects/f2/fed3bba3e913e1054fd22d384294f10e9605d70000444000175000017500000000403414333757577021445 0ustar heronheronx]Wj%ė,@'?Hi64.qb#0~BZ iW0m=ykY?ݽZ4Rq;{ܙٙq^~"ӮkNuqd .g\JȄn^ѱJö:BCbln}cU]| yViL/I9 7g ZvZ"ĩجtqfNH9%vv,#SJ03 G!ڠ8 BRѲcuێ]c Aۅ7={n)`:S8jSyT+bjcmga@taOd5p$%yj/w:"%3blJk RX2̊^m{Cjp8OSh"*Po}@ 1FP/֐@ (xFeaz7f 'rL MӤR tBChJLsSiˢl%ЮWW$!'-W݆cs # RAR`LN:~'{R~E "G - WOXʤ<ϋ @+{J\t :L8PF"Ƃ&w0:q*,ȩ]i6-T+zepCV*Ճz9k~FftF"]zaZN+esi?mc#ӄ8"Q9hW e xo 10d /z9D9BRU9 YIq\BS+(MHι 9;08ȧ#k5dP9R~ ƿT)kD#԰sLP/bL>$TypЛQcFeq]F==7υ:֪Հ{101}}DI\SX'pznj}קRX[pE} \r+nx٪#k!HiA4)[~AAAT Q>'p3lܿQ0#|yCLz=WjIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րކf&& ~٩i9 yvl_4\gorm-1.3.1/.git/objects/d0/7d9adf60741c85a39a2d5298995916935ec8230000444000175000017500000000644114360747337021202 0ustar heronheronxZsG__Gw@0HVd!bQr.JZ`,;"̥=O!\r v{cz5n_ڍW.u|uy [kJ;НG/yDn܉^u4Gt-"-\k(;5#OL y'X)xvs|F*)}ZG2A*7`1J镯hдr(u$$Az EL:;P)r<޸ fb&uiK:xC ̴"S7r*5= ?b<*+76ė]y ,&xz- ̃g:5o됏\73hc.ɑt>]'7e7Ua`}f󐩎HyX-v 92lCW[b)Z.gL ,,QPv*o* 0Q~ 6áXUwʰ+߃@3@9OEw?w CW{z zx5p4<悏EŽ%[FpgLŮG23PM'FS`81._:!0ezuIُ9Z{)KѕN gʹ{M:Q&}{ottZF*v:aDTj5ڕ7^03E(lg[-'/n_[@=NL~X QL~;[vB8;"*srkQ3;c tk,R;k,͵J!'^Ox5ׯ^fW^*-,w+#X"tn 8H';+IP/M ˉ=ռ js_qd?Ju^`QA,oo ^ Yx4NϹ6yuC:>g-2SYHCOo?Yo*V*cN=mJ. jHz^칾/jU^L<{Z-RZ `:=_VD wNP   Wn̆[: U>E &Džl75EK׍O5N,p@c$ r& Q^C*` hv4(mv̚X;%kBY Rz@ZYjx3s/}'9s1k3'f̊ tgfV}%)#o s)X1B*-Rw2,%x+2 #Z:K5.PqȢ܂i~FihSExRdi!Zhfa0)ug[؄dDH)= { FFDHkSqভVGo"؋ L 'ۮx.-:Ndׂ*1ҢZ}鞪I NHj=<\>ȡd585 `ܘ-qxd0e>4ҦW+}4iMŽ1ЄJzMܥ7EφIP @ p,^/8|ͩ?=8eMVdia:%$ Imd-) r2o–݃ b]Gmq-/i3{B}ހF7 w5h==5z\c&w\?F̽|Cfx`tu B #U p'pH$Hr ]( oFwTg[M5eKcMz:fb,.O/g(|znǽkl`.>H܍vP:j$XOuݣ>~wWV2`(nt;Zo/-fM'(DȌF'Z&@yq1E7IpR7N%DKcXY4,kBD|WC/$8G@9cB~u/]ɤ׽2ɍCI̥/Py2M]=z} 9'=K.k;K6◃-l{M* ô٭Z5 ۸:FVB2CBl ڦ!has2xs;0wH@\Ppv8sD?Jf&50ޅx,8O "q!e9VؙbRQ@+G1i ܣ њܞTEe☯d,G]j~O<ٽ J:KK ^dGyZq+]*UC:ǜyioc9hf3Li -P#Єc^#Q 60Jn|?#B쩍~C©b/rz#UL>1Q_/L=~Bm$}P߻|Y1Y(dx3P) *!u0.7wKm=ξޖX7}j)CbQfYX(brcz(Txtb![T>7%f9t;JuYfexbL$8@RkrY=51zʿo(gorm-1.3.1/.git/objects/61/0000755000175000017500000000000014327003123014203 5ustar heronherongorm-1.3.1/.git/objects/61/8d2df2596f5f30fc2d42a46d9932fc7c0019010000444000175000017500000000152214327003123021256 0ustar heronheronxUmoGWWLj-WVCʹRdU 7.݃8{ffrNUḏ25n _41bx 7XBoeh;3Ul~ }4l_E6:h^ٰYtlgHWhYh8B|V֢Sݬ%#╞񜕿o{Tο{n3/GRՔ3eq1گ| > F "z O1 Az;l3=~MFy-:L Epk !] :ڿ n:!k=ֽ9zߍeWm^z"1.0(Sa`{"Dw>@[T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvc,ڕ+hM6SrST P%yZAM̲MD?3*gorm-1.3.1/.git/objects/fb/15af29ed0cf69579798b03ea38d04fe27fa7ca0000444000175000017500000000112714360755546021703 0ustar heronheronx}]o08w faSU&mvlqN36XwtM:y^P>z ARW&Y&n:l2Yy ]mg6PDxD2%m遞1G"V|?`e\;g,(ۆOK5p~j2VF X?)Qi5%*R?8flCTtƤ/4gFE*ﶛj ?5@8RVI! @jHQ(C7Ӂ P%>Zk\ܛ*t!7Z c?ҋ}&5(Z5jt\'KpȘ\뿻wZIpK[;~#G7tr-V>UF /E|2`.jkDXa6P\.Rmh,nPM*EP'sH@-O ؠIE"@-yj>'[ kA5EB"45t I'E,|,X<ܐ7u>(+)` ÕR ]aOI1Lf0(E"/,154"!uѵf0G˅_@Ma7HPl &z/wjKtڙDJ<Acuw)k`Ԉ|E)1:Μ?؝ ԃϰҦtd#}Fě/7/>jxI򄾚[y_|wRg9H#?t},݀Q̾}w;+@ųEzOCEJ3R.}iý^#\[{gW#yMUIOաScI_(Rs~9'ʮ ƣt~3;b;'UTR;_,NXxˢۥ6H[~8h4o2HF8j:y{L:=ҵ  gorm-1.3.1/.git/objects/f9/fa40c3c55673798448f102d3fdc8ee774aafd90000444000175000017500000000165014327003123021531 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvc[<~)M+fTU*. \]/fJW|e WG_W)AϾ<%h~˥ kRKpjKycv8P3웱5+gh#Ős *ZT JJ{&^ \))eZ~<`oƠѦwf&Gvgorm-1.3.1/.git/objects/34/0000755000175000017500000000000014327003123014203 5ustar heronherongorm-1.3.1/.git/objects/34/deb335e579d4ef7f4c2e4d4a040c8dcbca69d80000444000175000017500000000165114327003123021730 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvc~gorm-1.3.1/.git/objects/b0/0000755000175000017500000000000014333117061014262 5ustar heronherongorm-1.3.1/.git/objects/b0/b2c058fff0006e4f15255fb35aa2eb0a1268e10000444000175000017500000000165214333117061021446 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> \K0ܸ8F9}S 2B|撟\WXǐfj|;>sK,)(bXweN}~٩i9 37/˴-|nцVa*+/.IMj{auxpy3JxMCQ*DEN9`Zҿgarr N4=˴~6%ת (.HMc/XCJ1c# b"B|4<:rz/(ZϜK+R Cwމd8k.]40$>;*a6|zV,ZņP។쑚ZXTZŬ}J:g)Rl<(5b7+hpBf"\ޢ'{0 cDxWE⫪[{ 0?ShREB2,;uE,VSLZ.J 9qDjU׸OYr̯Ͽ50i#:Ljslj Cڱs.p&A Ygorm-1.3.1/.git/objects/ee/0000755000175000017500000000000014327003123014346 5ustar heronherongorm-1.3.1/.git/objects/ee/078d93e44ed5c7c6a0dd4bea02bdadaf5c038e0000444000175000017500000000030114327003123022116 0ustar heronheronxAj1 Ю} ]AglR([(<1ܾ<~ ֧9D,%$,l1m0g'C ,"jA >. :y>}<_x;7U:wO)j3.FS<9VU1^@zdwCcHUYgorm-1.3.1/.git/objects/ee/d148442f469ca6c0e2bf929aff28e3ac4dfe3c0000444000175000017500000000145614327003123022014 0ustar heronheronx}Tmo6WW}HWdȉZY6$E-ln)P$;/s~=w=wZ5'W],X9ވ¹wdS.#7Sݨ[kVO!o * )79|ZIfy-~Hr4w'݊:r_qcA-bEy[eZD˷>𽁽n 梶F ,pJb"#Ն)6aAI.aѬ Ro1uJ@AvhjR.IMGۖ]r_=H ϵ TWVWT֖RBJX#45v Ie ,z,Y>ܐ7uNq},QVRP4+3? þa>P)0 Oc``qxːŰXƋy 54"#uѵf0G˅_@MawHP &(wjKtڙDJ!<Acuwfp/F.W!,:΂y?؝̇/Ѧtd#~N_f? B?mo4}B_O -MJدn7(ɳׂK$qyAV^Ȩo̿}V;wK 2')Šhc3R׮ci^#\~nA{7SAWwKAG(Ru~hT8sbx~ ^rlSŷ mJ;·<4m2HCFxXKI:2G8! gorm-1.3.1/.git/objects/7a/0000755000175000017500000000000014327003123014264 5ustar heronherongorm-1.3.1/.git/objects/7a/e6d41248143c94e7d470edbbc5aae35b6c25140000444000175000017500000000035714327003123021471 0ustar heronheronxMN0 Y@Gi~d YV$-= Ojݾ2C4#90DNaDDvVMZwdl.%[NcC:5 k#Mi$Ʋ J$Ajp QtuS]iܶV~qʴ\PyiB/]Sۉ;Yw~yZ}C[f*o3)F85㼔X _!\hvtrCgorm-1.3.1/.git/objects/ec/0000755000175000017500000000000014333757624014367 5ustar heronherongorm-1.3.1/.git/objects/ec/8981a8f5f54e78998db262e7e79987821bd01d0000444000175000017500000000030614327003123021335 0ustar heronheronx=j1:ŻbR\ $^VA+c|{+E.rt7"萸G3e.{1M 4)H"Fkm&k $ɠZ4MPH 685k{^Vx P*_~ .} !לюɝ)cJp||~/km Ygorm-1.3.1/.git/objects/ec/d126aa18a3004d2d439a7e2e12c503c10d2cc90000444000175000017500000000026714333757624021461 0ustar heronheronxKJ1]}Q\"g$oo6eբ(ls@FǎGpފd.V(sRRbC>ʐ6aIg4["C0io~Sk!{? ^g/?~k9 &F)Qղkyʿ 34uUa;N9yP;[-gorm-1.3.1/.git/objects/19/0000755000175000017500000000000014327003123014206 5ustar heronherongorm-1.3.1/.git/objects/19/8d7182547a9dd838dd2ac87bf146f874fdac890000444000175000017500000000027614327003123021466 0ustar heronheronxMJ1`9E_G7Ņ-:?=oL$ŻAjQvL s ]B!ɢϑtdHJJZzN`,3VrI"G6^([k: ^:/G@O2a{mVk]ogs/f6F#.-L=c>r?7nW#gorm-1.3.1/.git/objects/ac/0000755000175000017500000000000014327003123014340 5ustar heronherongorm-1.3.1/.git/objects/ac/1549694d41b4e51c93c18c52920f06a88a70d10000444000175000017500000000165114327003123021175 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvc,ڕ+hM6SrST P%yZAM̲MD?35gorm-1.3.1/.git/objects/4b/0000755000175000017500000000000014360747337014305 5ustar heronherongorm-1.3.1/.git/objects/4b/914fa62cfa704197170df11d3afb0b75fb2d460000444000175000017500000000042414360747337021502 0ustar heronheronxeQO0}&^!KaXlt1^ԑMz{J ZhC-ni0RRah]j酣S=mjz̀`;T qp:4Hޚ>d?k9( U %M%k#̑8[Upp{ui&¼6/QQ&y:}tKO Oy1 &gzu--9 >q.IIgorm-1.3.1/.git/objects/a9/0000755000175000017500000000000014327003123014266 5ustar heronherongorm-1.3.1/.git/objects/a9/06c20c35faf3c86530bd01e468cd401faaf0c40000444000175000017500000000110714327003123021523 0ustar heronheronx+)JMU4`040031Qp MNMIexfߥϊsޭz9i Rs-7*gi >AL @=(75Ա(3$3 5$H/(p#g&B7r ov%b/g?g@G'sL] '<[6.;4%d1:~j]RF9S.)vM&ai㝣m{6mz;=_ TW?̧goQCͳ$5g5oldZj]KIeeWw[CÝ=₿+<KsUlzy+{aɆ,HA1sqΡ ghRo;\pyo}>jhVX C]Xfj9'^DkEbQU3|RjsmѬ"TJ _6}cOǍI@ -\>n.~f_`۵,pgorm-1.3.1/.git/objects/40/0000755000175000017500000000000014327003123014200 5ustar heronherongorm-1.3.1/.git/objects/40/f4c9f793dbd345d9d59f63665c8406ebf700f20000444000175000017500000000765014327003123021375 0ustar heronheronxZkoWW vn,8Vm?$N(vUkˆ4bA# QIJQ9!ى9s>}_3\*radff***fcYn 7/%(l=1wnm(7MR0NU&ʓ+%쎴 zTX<_p`s[D^O46ilҚ|I xH'B8cc0?3 nn,(nJ,@R'7`b8 )p2z?30׃\?2f KA$ Lnb(Z0m E0ql L W}42ENB)NL:3-l:dǰ~L0ɠq0y:sOOMJӢnlrhU^֒ r*$4a?TİdP-}'RTET Ww3Ѕ!"7tmy蟴p1m[a\VEO2ܯuh|&4{{=}FHaLfw+÷;lJ.Dž2:(//[45d-4]"l-Mg@1i?;QCFQR4tu( z,zwuu6rHQXM`Uu6_SH ?7O]Ϳiŏ'{{fIRe)!LD_+"f8j(=E$5'7j\6@*}7Gd!\1v #E$AY )블ڶ~kic& z^($ r(ޣ#>cҪg3Y[\{e7rEeHo4"@(쓿;@o{ߡHU1i* elhϐa_A$:WT5倅r3oЬjΪPnA MZ5hzo,D/#ڠ,Hgi, J#5(*_P +nlmY=HR̥_%d=@+0$WzXT Hт((4>5O6.M)M KRRjBKPQ}~?>dI,`,8@bgDM!մ *,ZZtMQYA=.d)ă܁yy [<pıH.Ok)ܗO|2%+!R̽֙|HPU)GF 3hQ,@ k4ǯesahL^Ѿb%Uu;Yڧ:i oE2Ms-$~.jY:Pp%0kˠҘߥ/: O%r󒳌ON ?LEx1F~^Kh0o=mW ;p$;(pۅ6[ˆXo3N',d @:غ c4,gbZ$J|כꀯ-~7QM3IwFXBՏ!FGgorm-1.3.1/.git/objects/40/b54397e651063275fb79c0f25e385ea13d35830000444000175000017500000000166514327003123021054 0ustar heronheronx+)JMU0414d01\t Uen.qsCһg&31b1ARST2jw{n4ٲ 5bה̒"y~<_fYOL}3 5å.+"dAapO$uI[1!imyYgOWd~~^<4Kv9d;'Uz 2WŎ i+-.M_W'_9v}.ɥy%ɫ̬Zн(,C$h?9/1C#LՍFny%aӭVn?.D"`o7c1BGjNk;k}X7IKns 4x&8s̸5>[df.bCґWY\Z'd`[ѥ Iữ#F79_ hn}V/8 'w4O.BK@bNjII*q3+|3ڱ.$Ei9EŐXqȻs2Kܽ&AESR0ki޿jhK3SRs2R!kQzz)tm݋#51%*g mw]NL|da79/ܿ${!YhsJ3u"#hfng y."`H*_yK*=E99XRRTZZw5coOcա&'B H-K̅TϒXe7'p:1IiFjNZ0 zbیmrpNSU#)/KAsɎT i6VZV@*|rۍwěieMa5Ugorm-1.3.1/.git/objects/pack/0000755000175000017500000000000014327003123014673 5ustar heronherongorm-1.3.1/.git/objects/pack/pack-267b19d4bcfbba4469216e2419d6718f2181af82.idx0000444000175000017500000155106414327003123023633 0ustar heronherontOcIJ#i\.nA~74wX  Z & Z U H  L 2z1q:v6sJ^NY#mUB cP*bQ _NQ  U !!G!}!!"8"x""#(#f##$)$\$$%%S%%&&X&&&'2'j''((W(())J))**J*x**+0+u++,B,,,-C---.,.a../ /?/}//080t001?1112/2v22353p3344`4455V5566^6677J777868p88929r9::F::;;7;x;;<77 FPM4\> ap <0}ps>޿ A/t!M I}sΫ`Ȭ[$g4"Nhk15IG~bp݁k]Cȳ`Ccf,gg nDг@ow=WQjE")TmwkӮ$N6!atY9-vJ-~ YJF5huX#.ݩڥQTz2|/_3/dx?p/#=5 t\ab.}J?բb!1iOƠG*Y7$ ^HꌕY]O$6͇apHΒ8-eۊV1@bf39ô/ي'?u⺵-mRDn1c:#_ EVE$"BU4(vH 'X+ŀ_2A Z,RDg? /Ĭe(x}_R9<3u*h ΁]1kQ2< 6$~&} E2[):d*%K?+]~M@t8ޝpYC3W7Y!Z$oo`ߏ׊z:o)3R*€~M7Ev ŭtI :f'sҠbi+ȮC9W( wZr45Nڊ.O7A ɀ};RWbZV l X$;n,Aպ _ȁG+*md-;›I4c7%N٬B|/p)};%Jrw`~sOA_{_*i'lMⰱY0Ԫ]U,b* 5)BM!3Bd;,N:{ U&GoW`*/'n>=ȐyLeM6&bo|mYk28Rte2 Զq*d7Ӣw eZ*2[xa_h !΂DH:Lև[pxM+}1P$$iU/wRj"=&)4a@~\)%$cӡY+ E페82},Ow0b׆,t)>k[&Xo?'.kL]ho?N2'* sGg@!]8NpuXA3OR71Uqsv'qIf&)ONxʺwoZ,#/4 ){z]>j([x[;AX1/>tinrkc3.T{qeXFFTDo<ZQJMMci˷p5N ."EcX=7m FWUp#t+A4:[4  TTw'O)9 '12o#|J_?xWSz~e0>ů8ny(-4,M\>8U'O暙}^_9)Ϝ z.(:ܳImdFdczqU_X4>x %)B@&$ɡxgGm/<뮆[%miMg5F_hd.,5ν!<h`、|okՉ; y ( o{O kb羙I%#g,># d-bz$e=#iF$ eh*lqP&ʝ}6L\7d'oa2wM$g3"vU6nrR\ʐ>X e&6 3ܸ(e.<or3PÒ~UUS: dT  zkq<у6XؘB̈!dhOV H;/8Nmwhfk6Yre=#рJ`)sg ] GHCAAaN7X}Dٌqgr5zzi*6* X;;q}pxB}KѯY G"vUe)Օ7/:#2QAa `[w./* zUgD*H=[Nŭf +C!,XK+[‘!,)7"JXK>r-L|_$,x3M2i@ s5C`2nPۊs81M?uU/)F<vhB.oZ<뙒RFEVIXLFhC>/KB)pYIPlkt"as?CXL`b C̸@ה?GʲɿR´pX9,0-q}>OF' !ͅb[9yt; u]~.>`F:5 WB!bZfH?Oͱ 7t73x}R ~(E), 6JO?FTwt`bAk(j:}m;N~yS$G.m $I&ߨK̃( S=DWvԤJ*BDG~JlL5L=tL,3m-G:ͅZOd@P@j.Xya/~)<ݮc)XɶD/O`Ih]aQ˦Zr\@b-{/S0ŅLb!_Fl Zkj# 7zE:Eql-LWhXkx>ycҩc J9 }$ @vT\)ڻ\]ߖΓdƽ:iNRRp+kҐI3GZ gpw:l丑syffS2poB1-=xSvP;}<`܊>HΖ!j " p $a@x9;^Y8T1ėe0XY~D+^6Vfs xpwz`L)*;# Ƙ7Q6N5 UT\xgbK5,/OvPtօƵ8LfS R8Z-L뷝i‰Yq&4&TZ2jơ Tm!jLR%QGԝ^-m Tdi@#X6 Q±?$؀nW/1gO/ jVd{h?ߩU3#E=zQ3!^훠;*0qIJQBx`B?{ie4Uׅo& 7u.wmx^Io+:P+Q[-B.A*问@b?Mu5 1y teZߞ{\> P'~wTx@bjW8eWށ]%!4i`B $p-f g6\*27o2Ga#rgw bmIj Fh !P};XeS{DFP \ gܝQ΅֊r9w,s( s'f:Ry :_6(P"M0`o"d 4 @F$ 7]nv8$ "eQ'klq\(]'52?4qf(u2JLw;p)Ѕ- wZֵR+g @%ezbޘ+|vx =C[Yg+5Z3Kd,>P25.l#D}E"G9y*3[aC9_9.W7:Alj:]"c%? W*QI98#I72'S+Ԕ!Mw6q MoEZ[tup.UM%O]E=PʄsYZ0)(G(vv[k+3SS|s\}iVHd NpQ]MxTsf~|brqwMbjx jc$G 3q9slGMO`xsŨXP mJܰQBD)[v]5mOɚG;e$<$me)_ːakWp"J0Kܙ^ЯG'JN̄6cPzR'ʔt3ᝠģݑRLq&2J)HΐKmD:G?U4H5"bP1'zoB]#FoDzc`w(e$%Fнף۔N9-gm0{Ub4Qt,x$84CCZeŎM9R:@! c&g;jL-.>գڳ<1]ϦNd߶e=N8Tfo=>NcD6r_\N?;?q:Ii#GIsd'm>Hc@YS̉37+;DT i]C UętvRU@l4k:X/~NU #8T gu^ atlԜOVh54M&{W~8jj DL%Bqڐ^֫z edmAw]fRu ~re*qn%Hg$Ne*of͠ #3o0("~݄QQ6ܔ2@`oJ2ٽPtn4)\7v 9,9tcR 8`# uua|&tI!O*xCLl()0EJFϏIn^!wljw /I ȼ7poI#ZHbP5Mi&<䀹E[j&+~qfޑ4 IbQu@eS\P{pHKT7Ri|TG"T&R$)t+ԫvsZBuˊ Ī$veرm$bu'״)sj깿)-̪W!0n鑬xցm1J p'(?)fqggz"^*Jsfݮt΁rl?HT4M" {OxJz5FG;;)qv6߈Ox GVI15ٕvON#[g2Zǯ)V#!Ib]#jc C χي!* Or2#;In\Tޅ:~@BqoZE( O%:`Qq+!j4O?dOxI*N$@M=}.8|XU*vAY3Z`9)Ԏ(*걧yl&.1pu<}- P_5Fvf%1k)TGsM[xhB6>c^Qo׫mS'7 r {[ *ȣ<-ݢRtA!ǰƄC[^yHݺȗa,K V}4&CT8O fz!1;gLZ<VHۙ1`Pq[YjX7GIYhH\u+)Nf\BI&Cj|\-^^cl  7K-^z_>i j`&)"B{«X7mBly#" +XL[m$5n,=MF_S9șw-(Lppnl㼮m i')w‰w^L7pǕa'/#cj&> . ;ݘؒ9fϩt!Ǖ`Uw|Y cp!Q6v8=GM71gN&1o,ʀ˽ 1r׹֡@dh|W]MT_PB *ҒRW-*^X- _BD Up]C=i0=n3O]20)#5gUV MK񶱛 "zaXKRO'VE ۅĖtВcYM1k[5, aQ*& gf(ɋ5RQѼ-?KuD_8Cy.Bet+1-ΏLD]GT1BO~s$v䇱7$Oׯ'U x`(LV1W5i=zdO𬔸en@btC.l59戾ڥԀWx:ɵhg7 QΙNEb}eo =-| ?`RNm 3lIB_A/{^vMp;uvɂv.h,oYWN^b fa)_CwCo*!ħ}?>Q)վJ̤G-^55ȒWCBu.sEU*"4Pz/Co!^SG&9%E'P5mKբ}79z63~yLTֺ=/)_Rg=:uȾ?N,tUAZ.E{@lDOx}]dy=jopdDg y0~6TDXϛ:o#W}Dj!mʶ3wx E><@zٿl&MtA`P2;g[i}ovG0lLa rNq \ X3%z!_u _&h]F_xT|Yoa3O|U:XFWB PB=D?R7\jyb0٬6/GNvD/7EŊ,5]H+q=6Vawp ]AyN`HgbD `:#lW!EUcl=MhuPvCI%CQKceX7si(J?}'rQd/[:)NJtJbg`B̎Y8m> }zkdn%~T*3ED3<ހexxDZĠ PIXe?;+{{u`aq$IJ\xE5Ά*E&RL>A+G;ct.ǍTwѫέP.K!F~Nalp˓6:h2ыR4^8EHZ7PZ/y*-Ti9i.N`f;,PfӃ,\΢njd; K_`CTlb s}Yy54aP# NLdUĿ葽^ &WO> @{X Y*P 9HQ$H>}W`ڈŁLrN /aDz! z;Kz ZW [rЃRhL D*cz* !ñ7qn'_zFHW %9)(^c}FGr &޺'#4+h # '_)ǤA(v '"v x4* 'GL_bz +۞n^ZP+#Nzc 7T$J?3;C =c5 A wDdz Hr @ei -wtCg|P GU @ $h} HҸʽ8W8L| IV\J |b9 Nc&v:dͧY] x S=LL.ҋ S W$L| 9P \ = M#IC ^V ۀTHΙ07YX _ ]sqF!OG걊NW `$$ -9";jBE m bvXz7Ȩ suC٘v;u- aWkpKҐ y(&3٣iF= yh-Вrq\!Aڔ \GT[z1 ن/srY?hA Y*(ͧ3 6۲鑶o+I g'7ux`<1 y"讀 ,;!` Q ?u {ٗ!֝gꋯ 1  PZJT&r Vzp4xCaĖai @CO($Jo B6ytuGy ջ4tl2֦. ~3c Wc*,>ӛ(ʦ 7ܫ;̱SV& U1+}dnj1 ;HUE ! ͸nxVxïu1#2QJ Ϝk9ݱl䜱 ϭP뼥+qf ؽ TّT aY $H]ltZK ݐ o> z 5/{mGP L?lPܾ DK1,Fs3ta 9{Bvsc d&+1]СP S sem>Haj% =@ƟM.1r] S8!Oi½d` zP Y  #첲qFs+ z Klg¢يCU+T *2ێ7.8,n 0,. 6ؘE9 1ۘr P>Zl 5QϗT9kfl- 6= iHğ77!8 9Njݠs@(  @vE1UB@T J ^5Uyw#NB7W N%w:r? 'wΰ N:¨dhB PR U@% lX U=}{D# [4N ]X&;aa- ]qUWmJǭ[i f'ZO't=I42 XQ iX[5zӂ" j"KO;y td jzPc;m8#y lnYGG o౛jެn> })E{@lR$( H} <џF0 cςj4aex̿ rHGSh } bx $" AKzӗzi# xp(gz9. W)4y 7ًJ/U h=ϩL Z+E ߪgRX r~% ϻ\W0O 3-My S~*" \q h- I1zN( @1s.ϯVgĞ` r _vyQU-[ Lr3& ƒ$% ̇ym=HAM*a_ 1TEA9 t3D Y{^ٜ2 5yECP; nU[<'y ݆h[Фr 1P*B 4n$rm-@eCS7 ^Tczb] `˓Fhȥt_ 85R󐆥g )p?|#w5 ?SR;-?6 #:lhZZ&S kS:d|Yp ˪D~\Lq e *g4vl+gt ! IFF|hL,yQ[ $,B=OۿM5h<+ *COxvL5Dd? ,tp)og.vS- ,aT45\Id 3~q>:)`y 7VfOϤh5%O :G2 .D` 11T ?AaZB!Ů @G5e=D|ADm]TSe C+#GqEy x[ d] Fdc᜚1 E%y I{k{+/Pި M/{7-YK N)TKok RY.!\%39n R:Jr~6l Sc0*}l 8 T,x2ȒY;[h T#YslIaQ U|Ȗ>,oȶ)P Y[6dk$ Hp= _ nw^C~q^b b2qII+! nw b@ճܾPx6P8 e"ŇomCiU3 gߟK5 U_xS< g$00eU g{ޤWcfK ix'el{c lx8f[ }uV3D4)ۤ 0T K3rAz &/d`nTk f2ST"cK1uY $jMp`B >CV)t"S;H 1&Ɣ(y,M .m^4 4sH` k`7 X@ $ :~|ٰ; jXS%h&EL IZJml2 b0@If N m^x: @$ jZN*/ MWs*@ " M m]B Իív nU|Qqq տ6C{-L@5t ںɰ$0$W0z ?-S⶯oM꽤qG pBGX, " $8p$O#) Q -1h* 99aڍCH W!w| B۟{g78Qφk 9F8ќgmx *i#[tn[3 9x_ػET n˦ ~+TmKR/z5 ptDDsCⷘx" H{UzIZ6 Sڡ?' < x/*K2 Dl& " l *FEڨ\zwva] ,Æ_rV;i3~"}^ .N:j#ѵ"8> ?/MQ-o!F Bߗ[*uޑW֜ E:UFڋb F~eӉ΃@٤Ԛ I2g{`|`N} Kڍ6Pf7dy~- MΔ\`8Xg Oy)LW, Rn+O/pLYGg\ X{_'tyI XnŶ_a5E-qqR [3k/~$L c8P&yGw: pa+cӷa p8zJW䊓 uC9n+$ϑ6+% Nyfn>6nacy EwFCկrrʙ" dІ k?!Io 2U҉*jO8b G̠ 7@dho8 _RgZ%*mD W>WV UBʮ 4 ^w-`8 # oX24 OHJru>=ծ ggdkY 3Њu"a>ɞ Hb<*-'>p gk9yW4 Z17'”^ ʖ5|or wA+^ꊳ g _$, ؒtms|pN8 rW}dQ &`$KѫΞ Vm9bݙuSq- m1omq ԈbG0 Jˁ +3<* ]ĵTiU0_ f3^N)/auh nE]1DZ- M,n %kPB6 Ad0iadxNf -ED!n_ O凳e-ʺn e=ŢNd ]_qDy'kI 󕍋V$@lGV  y⦀l_}?[  &6Z< 5 ~3E70+ (WPW i8(:DG נA[ #b?lek&﬋4* )˽= Wmt 2&R# v"a" 43}rS0?2HH 6-~74YR"/J 6NH)LrD 6Ҹ~wmYX7 :lн[g:)qf8 <2ˏL0kRjC wPpynM#>`3_ FxaǓ-ڮnz IŒ7 @& V^>@pk%|:v V<4J>Cr[L|/) Z?3&35 _y1' cpUܫ> erlPQ }P5: im\)lwՠ3 iYj89FS tgtSj%s$An wSύ|IJ~8 {J`ENH%/1' ]qBʪ} /tsw!} K E7? r*do=Ѽ̕' 7Kְ zU Ge)~~ :J RL[u=5B6 (2gvH]c‚- (XUǚ 0,4p0~: ˔DN,mHkNqѦ )dRZ[9 K`M!1O C&}߫B= N둛zgS 87AmcYO | *Nˣ21 5{#9.*pˉ7WB Ѓ5 A;~zne/ ёDtAHitƵy Pykz \o ޭoOjV[ʬ[> !yyHV? [6J Ν5B6 S醰 J,gn]# s~ۃe0 1> >ƫyګ G6W)wj"Z*L zK|ۿ{Y9* ceqMk=f cFXʋ5A3:ի!ְW MhGK.˝M ' Dm9P'X; )}/o+.aTH>|Fq(ų_x=26\8(H*2o<MY6:A|H7q;֚gLs 0W#igNeE]"MtTOOv6BP 6hbUMAY`@{~! m(I BfQAiVv#N[$Qk/. D[u[rqt=k?#»Of4kqƀV3Ŧy~s1P xgG]x:t;Q `S- *˧x_)>}Ԛ~M(VZ=zԡAMe3|&Z'*Ih6r*6A_ Fb0-94tkS[|8c{!W#;Bhu3YQkK_ݤ&b^H!GK4ZW7]ɪ]xFJ㍽>oW<%rN,nu=]%d4{NBfG{CkgwVIDR֠b!HQI]=2Y?bUDG:w-Q}ho5 zxtfx=toE S?kTmn/q_;s0.p"W,,͂]'ʶ]]Q}2h*<ꉬX /|F8:I+.=V짬y\$i&_ [ra='_Q:fٜ,lXHt -y ڝ$q?#9U3M'Z+T5tb8[Gs #?Ri@p%J#yNZwƀnrRZ67h+zTˆ ?g,+'UNֵvi'BvA$jՇS!"5_,lP#G0sVzġHY#2 _HY Lg%"0gqE9hJ{ ?%\ىf.8`VGe&CϨ_4-JOq'BwH 'f(*5 0 }OYA*1m*>|-b&6.-FwYi}cwH1!Ǭٱ̞ Ka2fu0%Tx4j= 7!F &8#+87>EUp?\_~Ry+OQAM+ߍwz$BBF4 T?9L25IBN; s:LumNΥêj%e OvX$1mGR%7SHqz-g5pXYejD(#\8`t 3_6dB5vFe`4^eNaT;Dh UW6~" Pnii:>^@Ð.kHNP^y Fni+ϨsrmdPtTQ^/Z32D8_x p8T3{}VyL{B4|lTqZ}a QCJ0%el}=&4MQG+XMz]^<oWv&xB=R"E;5 wڨ" $cN1i{'x/Umcߍ= е\'(=PW_Sj`@KgM<ͽݵvO+MA0ۢ,1ǂL-:YB@lP {)PDE2M_ϙHgRhxRq|UӠkGBEN Wg`FS9*FT_{.,a7k9ӄgjv?7~(q$$!7,b Q*A>ZySQj,I7zGw9BL(#}!JPx8cR1t>\d&3CC VGHq&0ـofJAgi? kڭ,i+i}N]}~_XgTiXa:lXDu`x%5*a h`GYvϪ~Ƣ˭T5`+U%X2WY+ K vwCW,1 {c>-mr*Z]8c~m{o(q?b93~높)>)K=(e[x97!>!Q㋿P9!ˑlc~]k2>c:=ɧF > zـLI&1.vV{aLJ!!+v;Y l!M @'ǻcb`oMp ;-[VՀaR zn/ rӦ@pXVab j60R-`q[Y*c.PfyҊcG +0[@Hcݗx:$BYh0ʙ &զLixQhM U#eᴘn0.h9梫eXv=Y}{0zI0c+ +~Ch{K_]J\M':LfTZQ&49ٻZs#W?=th8J6i"Jb3"o<&S7uV8KiLJ3r2s+Z+HbAј4X;{?:;4Ȯ+7ĭ)jtࢌ7n>p+Yޜg-1@ݻ"ш".uIR^B=[2lQL3z(bnrWx>wtƻ 8xH=GO |TVDd1Nj&|c"1+ ŕh@z/f2/ ޼BG(c1us*)X A k$Ş*3px~+9R4+P2g0D3V1-bm;+)$TzUa>+FR&icJ/gva UȩDϭ9,* 37N1>̚E0vhose k[\.l 9t9!vѝ@5/}|[y|F'tOL`c{%m>9㯆BOK3ߜW1}aà~  b+(K+ԁtIe9 bMuv>g9 &AOœ|wjL|iCqxIښ~>-U! {Yf/q2SA%9Y/EIYlPbu XwDݜL&Of-RiZ'F^Z\A&'/6jvkơѮ$t;BH$U 2kV?wĤڢ)0.l}'l.ONT՛N3 ҌCPƬj{uWZku]XaMtz&dK@N!~֌J @Q5_ ?GzMV)e8/fE5,Ƹ<_>5yv1!)aiWCېGs ( ک>_4y$-BOv2">unK\#Zrpf'=@f^Jp3.Unì4 ,GXVh5BƿUfj?4f/ \7Xh 0ɰ*B/:)]ꀴaJ-m@ 0_;]?>.c̷ژ <U0G(@oѷEK0RL540 wduUu1F?z'rngݐKx?!Y;p]4i/1iZ:-i27qB!IÃ1My|ucz(qڞbR e"-\wPXVjɃ'"`v&cFG If kspzqɐiM]+^t[V|q-j%5Dcǫm<MVl%:qdqYP㕤EwQ)zJ$5PYLst1ue%vEN{o3nYy**mm-!EZ|/11?ͦm;` Vr>5aJ.r!Am˗F5o?.}Mx 7䤯|<;?y9'ǃM6 Ƣtb< 6=8Xb?~O?X Xr}X0!#@M61fBdտF=q8Q`i.ǚ7 GQt0zCH4sc 0E479ZwIe1X#,l2:9jP nT2MczmUh!Re7.8sfEKowTCt%W;~\n X#Ff j91Yt"wV/ 1@uO [E ˦ Vin^pp (MY` 3DuiрؕSQ%`ѝ72OYݬFXѫ? R?Y(+W4t!67@Tk7BE^S/ۭW֊H@E{+݀.&il $;l;?gCS5^.k#s͏/ZֲuП[S>4.]讷#!]?*}iCIߘ+sLRDo?"mN gg/IHy{Y\„;\=6EΥdBoyV2}i).9Rt@aƋY+NEj|T19"ꗿb) :Y9c+jkD+3 8Q23lx²u8]~ B+O'Ԇ#D"\_ Vuu9խJZƘ2enYlmoSԻ'5mRxu,%:ZA8K74/&:p9qGAF4CmɽR|?FL%m[+Q]q<Rz %劔acRXրIWj&2Xg<XJ3$`$5ZiuL$]G+ZtN $R@]4= Wn|24_$IWef|JUp%|꫽fj ALUpLc'nT6T7BZq$#r%0r2rAt7|N>rt4Xi>5?h' gy^ZW6%ɈXzve:\e(j6zۦ{odbܼlj& 7Wdj(-xJ+]>wk&\0BB@rܣ5|G)v_q> `4q768'<\$Jh{;zhUPb,Q?1Ŏ{}\GGQ @klQē ^cW9k9ӀP\&>fKWv5!Db* YV4Tc!R&[ =Q}W2s+}S֤My1 QAK@DCA:b$b{ 6ou8A D4ȁl#1)>swWoUDVf"N\C\ -l̴;Zj{ )_]Yi  FbU!̆ 1UGT䗩]hX:s _rQ^[x} .N:MOo2{/Jeeϡ8S)C竺§ZflS넥öSO6^87*KzX=AMg'|.n HENm_ߌ;VSBԆOx9PP?vl/GF- H#eY.8֖t${zjH_>Z3x-[O7d<,j԰  AqG`zEI58b{ 4m]okC_ET͡ؤ|]̚o]zk -!qM$H<5iK})iMg&pK31-]![ Z(I`oV\ч/:bDdĿtnb ~zm ~;  \vm3ZfnMLr)QE©}uzdT?ָ}dvu'cSRpj pd'm{@8iժ,-y\x\ޏ׃ Yfg[V[=8)y& Tl*v7m=W@n˹d9ᾧ'hg{޹;My^7r%6RʢA>mr8?e8yoly^_>|-lԥ\yN?>l0kbGu8KGz/͍;!I~%T ?GQYzf>dZ_WRLt.5,8>UTjZL{t:zA[DXtgRCOd[BI#XqM 4[$|W`=-]OcnQ:s͎GwaziݪKc.VZgCޗo_[:S,y_ u^b6jZt6vśWFhWxEDȘ]PHzdWm>yt.yԴ{s 9UBX+'q|ǼS diHfb+*ΊeYdǟc5E_ yS * gcDSQۋFU^4)?5vCaGQQ=ϊ*՟(zUԿ cXJVUvxSdV8 }ɹՑpIA %5~_Zum6s&-9_SVxWJ.B(H!$.)ӧ +<&d7r@vHՉc{mL ^D$$ըno= }Ӷ#)LXx0[\eWQZ\؎>RSXn)u>bFV|"N52(n`FSR,05O)d.B=b 8; 1֯Jt]ڧrwkmAS(x#4`нD+6 AŧzѬA"M4w<%P'r9#K ᶖ1&kjd x` .*NB4P0{/xfξ!+-҇7706!'!fW'hW%; 8˝=>tz|fI߁6 ^{?-orHBX"zU a'/Cw4.V|):?8/I.L$Z 7*NG^\2P+Fܛ\˖6lQ 044 #0*ׅW ZPHZ5O-ɮg]4,x5s[X^ #Y}{z|Y^7h稹`wsnֺb%K[YpӋdIynXS4+*dZ 9g&ڝVleAu$lj:+4fHjI 7hr7 6\ބW,Jkdt=OCL&d?p)k.A7A|@?W] V VW+]`8_GkpE#jk`򂏲Ct6Z%X=qqxq> R~q=!U6؀٢aֿ&h)BBeDY6MK9td` }'F4(U)qҬ\"Ly6P{|Uf .m Fh/Q`\0>M&wQcS >~| rnjݧַ{SBwZ`rxFWޤ QX(/f"bVJXX2 q9WV\VnQD(9.y@#w5lbw-4[t7B rN:+Ig{fݹն<iA# fݯ(ڲ?p1Gmjgj ķ=# zOI0 ~JLp9ʯsrɅlې%Qb;ύPxU7dsG'/wGȾ#,xTк@zM;fܤXEOD4<ᢔ~q.:HW~dCP '$TpyMUl ~Y7BZSce2 }(x0gmA0 T>[+- R.1,Skz9;dbqsqm;ky{n4c"lG+#[E1ApSUWH'-*-YNj,ЙR%TY'M zxx;tU=t9n㜄6VQ_!8A'Xxjȩ昮x=~]5F?DfD>0`l=L%{K0]aӠãh(|R v!a|r*brVR(Aa~1sj_)Qb?gq;-X,~gk%Ir|y+0 iXBÕ|BSkk+iK8AƆ#bbu[@bR(ξ;v}> =wzZa2va=| umr*FTA|yٶ<>e0h#}s2]N%~ԝ} Pf?TS":rf%?țgy%Xfݽa`Wg" E\_GV,T/'C6V3=k}}BKH_0ȲH( Ӡ\ir^ǐ[x U:=U>5@Q}Z;wpg0/y⨝MN1c.0`Rq YG&rde $95WwPKc1lUeS3H l'涓zOa(lވL3d" =d fRǵmKa!ݪhWY+`fY'\{ozJۯdFLS &l94GIN9=H=BE%x˾3qyY("ܞÞ\~l2Zw,.Á 7Nԑ{7|:rkuR'>$ˎZÙ)Sq7=ӂo0)H0%N%߰@[I*ҞV򸢛FPO` >ȚY[o݁EYm Dx *IM|ނX jX) nta,gۋ֓|4"T!Z [觡@g` VWafqİަ! +<:`y> rE΄LL=xU?1rr4jw@m{M-'J& lC6$ֳ֡)#4gzuu3$8 V8h-E2?Q%bE~ -HAE,ʇ3;KNf<7arT4_`|Ub9`0V8w@"f@D^?☠EHd㥱(I m?bQwìU@8yN0n]B0i \q;-F`TO^޷D/Of{@qﳳHh}kA[?@l9hZeFlڀpy+ u V9,w`=F#9*zCwaA˅?㸉%u9xBB<CXŧVS|:jԜ'4~3볎} *K^L~~I(į&&x~}yVSdt~ _Ȝڬ  {RI:]QF] :OnPJ}**by-q@l8e Wݙ6Fj5kZڏJE\bB7$Тm㷼MĹO7,'}$4k톕&ZңS?J`䝾}Ri7Yv֧bv! j] lПp  fʼnˍـcl~Y2kIȄF̢ӦʥV}?j?֩䀲(8@CGPa95d%sT܇ARp㼟p2 6EtZXN :!Zb{AͰՖ+vߖM1bâ(qFZ7' 4uia,_7@,,/I9.#@Xz;0cAUy-j堰:U5̧B۹qYJI< dH7@Aay1ހ+LC.RT& s1WI%*/pT?FLՌU߻bH?\W/g]61^;d=c`6* ŠΨA+<o\F8u('#oUV2qc0A&r)3Xr~`& r*t'󭈵ў\f: x}1wjbal/炙͹]QTTRCyQ{! )ȁ8R=F 0pY8  d\ yc=ަ83aZ.(HAUB_>sUdlwssl]Ћ+M`qq9G{bTy1 h7Vyn@+L9jB.3ާKIJ+('81?[iǩΠ*1fc2P}6ui\@_"RS+5D@y'o׸,P-ENL\{~,ُeI 3ƯGyh.>ܫ֛@VD't'4nnO @4 h@v!.}”,X*LE127RR_DsvdT _PK.ʰKHakY},^U.Vw0vBPEzlEAXGDLv$Я <b9$=DYA#[|HF/ Z̆8`^Xz8eY5++QTqAp(c7ѷbDK k($)bMiEH:pQh®3LY\#ڧUsɱMA`VrqQ8XƤG^`m:$29wk(XelĎ/vPvmsb {p/4.Ajq3'y F<#tmP>X*]sOѪ 0vB"7 'H5U&^-bsqS75{oRb0tC)C_8Hv̚OP;dݐO`mGR h|s,!iIFD8%[k 5u&a#qj5(oѥs~ܱu)P8N,ߙ^p=|8e'Xw؈ha50狊<}PMV cFb+3):<C:C=CiˢͺQ!^YVVlKvk?kɻs ';u„>ULn9_+73&S)O#* Ձ( ZڳV0T|/{"TOvwhJ>7x!'3!Bv`#OߓkOkbԥXȶö{x Ym@UB 54`e:~"r1$.Q'hCW%dmiK3"r5m yծ 6=-f-산ۻ4_@!%$ ^lE B킼" D4iTg9aÐL<1 }CmRwUۙy-bo%Zיeh _l@qN<~LVRu#߰+fc:C^#3^qZ7^ȕtb}`z|Z7x?ڑH:JDrIB<{A0XsYSH@13K~H3~98gÏ/ <9*ي. &MtHě&`B q|ķv&e ļ|Dj$ ?ӟ HA"9ͳ*9~ ,=l#|q~/Đ=$pDrRQIKz$rKe;k-z)y&_9E?[%9-hg{HdճS0/e Vw@k0 wձQD\47`BwI,3sx*?qIvw'/TX Cv;aA-|%3Dz!|L渽ϋFB@xnxQ=Qm~}PI Rp*SKYa lԝ=VtSsJS3m$f\9gC/$̆K:$E anyDYN'sb/xtc:reE:Yd_]Z"Nq('17mOJq5ȥ)Ҫ=p1D9bT0bqʱݼs)P1]1alsqD0Cro X7A{ 3m\Tn@2[[8pl&hؖAT.]Э^/#qx~(&|X3!(m`oHd,?8T{UѡN2qЎO_~R3cTF96h4o1Sq`oۍ?fH^<u~[P%0IuUe{ѵYn˕xx?%n.'3gVYelJA,#~b!'KG %H ֌~_O'@))C'/l#gN+'3Ȇ$NhU}($rCx;~(p/͸c<54,s"n ͣoS pxd7BzoE'|bV!Z3͎)4"偯{qǎwO+.T'3# Lx>n3ZKo@W[g[=LϘ N$xkP&ֈ1AR \9؆znSƋqʲ+} PK"aY{ Tj FwE)M c rd66va%S wRonNN) 1Auu2g ۔z2Vw(Kx*NLEDv%# =Yy]=#wg(&o d8au 1t+BGBiZt2"E$Kx2%8pq~45uCo{GL{̯4K68ξTEbx2sǫ9leB M`0\>Kp v3.H=3 Q%d76IFy[Ç[xk7N^#(O5G-{OZ#598 VSx\JB%XL <{s]g\fִ~48sС_ NͯVԷWx0R}ƈ>7M._}@(:ÿcWL'Ͻ.j]ZbNƛ"7J7hi#@ȗ `2*r~j,\"y3qqa)ܫu$z|812TvY' - Mc0EG=-'.&-;¦J/y;R-ԯJP- 6 E2Z1X@wBA5V`|+s$.Μ6Ge@ Ʒz==*SoKK ]MȝPTV3I3 z( .\BBɭF0E&tބX7X 4 >t?r-*g\`DcЃK韀-k֞lD//eν}f&X1*=|0͐ ~fH\.|LTkmqbO : 'vL 6ZJzYfj0YNd)掦6%ػH.E3d( >.%O fIʋ v 0L$<^ u5cIGtk YV .n=A,cG8 2‰XV j2B ȋ_0Y c mޥt/M) #W: @歈.fJL BG~K1 x M0 F>y{C0%'﫼 GsI?̖h NK(οy1o RR rEDaY8\ P3 Yc$z ]s [K0Bp4dN&6}N [0U+Eh8^\ ]{\EQ|AE9Hnۺ ^p; Hue!w%f `-dꋕ& cE(cu 5B^ i" 8km |7+{O>^ |LAv: )o,' ՚gdX먨|' sH2?ǚf uEMTpS< b7o"% fWfao=opnq dm̀ &$ `Gfg҉Bڽ iȃ7'P u Z\' 52k*)ET 1V vh[փ$#뇘 )okQ [gL9 Ul1#6//u<<# [L=2deN |#<2(rhÕ 捣];x4M g Hw>7 2Xk+*] vZ}:< "ٖ ]ǵ/* :#y(W{ 5_ }֎TeHksV @І~ ZFR`Rl ĠʷBh\lu6H Z"ooG%M[1 ڽ襡S۸ 2k%4O ޼rRbO3{ Ŧ$ݫ& Ro3I+ܬX 5 t*6 kkȑwOvv՜  E"f.]' HoC_֊`(@>CN3 w4yADTnSd!@ODxA]M)G!{38nBҽ!~$W2quP!nԔ>JaXd_!n3Djˑg0SC!3+X.=p0k!g|@H43X .!ܥe Gh.!$R6g@Oݝor&]~!#,4_-2˿!'m/'wi=J/p3!(Ѽ'IGJ-ml!/_2 #%qA%U 2J!0OY>=#k@kt !3WiA\񽋡F!5jYMk6eӮp!6UH.I v1Q!= k_ƣ!FΰjCe^#6Wbbq!Fa`U, Y㉜!I3|cg6q?e!K k0<.Bʱ(M!Ln~ǓiㅔL&Fv!N8ȇ{9p%d !P_p K0x^dvPZ!QW(.-2t.&J!U^nRTl(LJscVzjR!Z,ޔ 40{5 [<O!Z[;J9z:y!g@U3=J4;-d&!jL 9QdΧ{0} XK!oLOW P*S4D!r攧"R/pE!sɵR;3ή|!v)v#v.doeװ!ƙ! BȼK!/K3Ϧ+@߯!U찎M-'pM!g {!EV5'rj`;<!aFWzd?w\:x!^;}hSBk!\?U|~sZ*Z!@,$[ $ vbI!+&tdMGvz6!h,RA8叐U4!qqdĘy7#a!Sc2oG!] /Ӑf3Z![ 6pJPJ>k|!! W-62B{QM"ΜaA=L"kC2@ ;f'B"HO@.F%#~0"?)_MدAt"q~p饌Xsaɣ"gShXfx𦅽"遐V M8)x=a"|~j?AO"\JJo篷vMd" '(`.vԹg"$x^8 *g"%ϴ"ApW"(+~p]ӈOz"-ti/wBI<"3A2s+H٧O)"4]ZjExߊPOs;M"5b8l?E)L"7 GAU"7,YAOTp"70t}tkP"=dgkh1\ 7"=/тƣA+z#z.Φ,"Kd$m&U UT"Qx*1Q d&e/d"QS5xъspQF"SB+2]Wg"XSU5u5Lv!X"][lkF.M"^bP u]1Ln"`L)L4+DF>L"`b4\.D=`}"dTJ2|Ղdk&!"eILI9_6"kώ1If\wiv"pra6xޣg"qzU ԿDa}y "u! QPN!Q"y)F1KAwVP@mT"~W  A멸3~2 "FEWPzXdA"3{['xQmtf")$rǖGוf"8[N)KBȯӁ"B^~?: $M"_̀/κl13k*/"DZx:i&hY=.:"+ԥpyy"L b9sb" t-dPԖ#Fற<"| ^H,:u" }J~s3GtTޣ"Ff&̀9C"yXCDHW"8rp ہ"G_i~n«ˆ"cc(:e堎*"ԓ$\a զA"҂F dfp*"b W %{y"]/h h;`";kyANaۄ)G"Ő$' 2mY~":nݞS%u"ԓءqNÓ"@GHMA1Kaj?"UNEpZf\Ht(": nHY9"B$Q|[Q]z"{hlZ|"O["sگ~xK?Qل"+%DgXX7)խ#_Y g.#6ŇG#(#j] M+Qe3#dDy9T!)5#dKJ9($Qt aMU#yȝKB]b~KA^#" 6"S{ @q#'f0|},Hx2%#+c' hO#+1aPDbN #0E ԏ,wl<#1'_x-pf#:4z/zƈGG@V$#:oR tOއؙV[3#B|/M mC(E#H-([Uiۖ<-#P ~0NS<6 {#RpE}tƃd#UG*wVߜF@>#Z*_3/z=Gh'#\ FF|CNЈ#^(uQY_ ?o#g޾>~w* Q@%#R4~TQf{^{" v#۹vzNЈX#_AJmvd>#^t}@`( uD#kGX*#`)C("YGUc#Fݱ$CyF}#u*MEA1m u#ѧ:>OSXX#٦?hĭ5/1 #:jx*H(+o"6#f/f1_˻;z#x3&)F7/#Xhf$N#Q"4@j9{#/tafI,p<`{E#%$@@#4c#-Bb£38oh7#Uu9Hb #XS!ԑaӠZ[$./Vˤ3Z|wx$xrnCGy$%@F@NE$ aX#({O#u$ ъ$u$ nAW_,-$ ߍDI!ìؼ&5 $fCDJU#[UKS`$ 3~Gl/5$ F,$$"23I(KC$' RpR %($+m[и&q~J$21mgd J6yW$5T-~94#vJT $8HBg¶%$$aVzwbY^yqP$hRҥWH-;ǁ$ngD W e)̀G%$~Cx7=A8j:-$6"3R$:C $Y|HzaoL#Qw<*;}$I) Z[;~8 $b'6 ?c#$]S*_}4~ 0B$$o6<>8K$*S +2z+t:|$ thfF$Z'u'(>%->黊${ؤBވ% 81l4<ٖ%*]"<1t&6%<ҌSbF%ښ>%|}*M%Ҝ8 *|%w+t&c%o:U0x%"(ה聯'"Q9A%"t>鷄ddHU%$iۃOI^o2_YΒ%$/ NGh~\_%%’@cK[WF%(O=Iܷ![V%,2G#MirP2%UwXN_FdQT%Xed詘o.ƀg%_XhfZkvt%e+2 wf8Z%f4Mu{S%h.H,%iz[FXh[u%rQ_!+.dTL%%tcq>sKGCHbz»A%~GT%.֍+1%(J\{b%4n2Wt%LQY~];|-%w $ˮX _ !"%U]ϲC{"%"+YVuM]΋WFv%5,QFT|m%Ѓd%7_P%+oXKU~%+ [Je5[b%.( )ٷ 5@.%sيL=J[% cI)tuV{%.C/O!Sw9/A%a JJ4j!% DR[ߪ~% ώܿmZ*x*;%j-1Q[yV%ګ[K@ 8y$?'<%|rw%iA"-qa%-S[/??뵐 扏%߼~* ؐ?!]C-\%4߃Zޢr0ط1%y;g.؜?3Y%ӫrJLTV+U%;y  4%9>qzwFz&239#˷ n&+MV2dʭgsj&'U$b/f1S,&zc8 v_|&pu_lm-ttkz&'$$i;=c[ &,b_42b&'K8&.8M9<&.oC*wVq>&2o-=ڟ;&49Z<=eu&8"J^7 :C?""&8 rUXu|iig/&:(\= &: &;D2uu::&>B(UӬ A.&?~2Ƨ5 L&Kyb{`L:&Q+XaJj-2!&V+ ˗yqlZ&W^C4MmU cd&[?Z.-ϊk&^zpIbrޑ/vf&^}y:3+-`&a:sqd:=hHaK9&bs )Gz5[3&p.&jZs &q ,z4^;U&q$Z^A3ĘT&xhэfE ֞"pki&{c*-?&{9<\!=t&|!"3nm>_6&~v#%qI)VP&lSG88J3+۷&Z^:(RҰ |1w!&e3e-{C=#XAq&SIVH*FV Wyi&o~T^NC&Jn{b]k&$YUY#:wYl&? J| )'&e~yFz)>&c׊ b`ҕ&+8Geq)c.Z&N*ru#D%}>R&VGIH7u\X]c&magYO&ʌyLH&tْz/ܻ<|#D&dz\E} &+3%c!,`PPWv&ABcD["MЬ&Ȝ7\ ɸDa~&U /? fDw&x}Ļ(7kPU5&фZh M&>?, n29S[#&ZW#.f_6&g%py%V &}i^#1~.v&e uZ7'`;&곥]P%ʁ&%FQ Jn&\ВkTik"N}I&t8UcM anEy&*oȫFB,γ 7A& p9ch&/ˢjEm9hh'8WOq"{0j"0~'koIy} ǔ'>w|8.05'da<6a' ?/h}S>'s+P܃RחYw'ºU]n5: tIi'$kB#BV/<'' IT|;'+8H&d萐8'.ssM5ۃ(;0'."Wmgo'E76'2XV$1 &s@'6i*|kؾ[5L=x'9jb*0 C6SY'F!5i1Ҩb'I4syB2'Jj'*_Nh{tk'J9CȜ7SyRd'L8^Np|d4R 'N-Ѽyp;Y$۩P'NU*8 y6ؐE(S'Z\οTDmh!I'\*AjZ;A2-l|VZ'^W3dZ'pmL- 0`3'n.F#GvX'Qy`' X~cy$dr'jxFݍ\Ia'"V5Ps'x$', Vst4`(:|m'֬',+v'I(sw˻'^PCQVqk'$z_Rev'pwƉ7M`2']NZg\Rt¡'zTyN÷wl(Gy˫*C< ](N=( m5N~ (.O KmAL)G#|((Gf[KE-(c!C۶Y#?@(!dmsʂ tIto(!J*++ Ē(" qOzL(#& zyW)5mh)ى()4-J iDbD(,}D06&Z(/=? ?L5_(0-玡SmE5#ݺ1(4ZMn}=5h(6S!K_T h(7Ѧ}^U8ɳ(? cl(BijkTQ;xhW(LCI _@:g!야(MUJ 5u7q(MHA@-r,J\z(Rq ]J5.{]i'm(S{Y.WS3&`ojq(TV zC@܈C>sd(V>#$k\,&\(\ ĦW/㞡*(^uyaV8;L(a+cM4UN2S<(a,#vv! Q'(g3F'ktj*P|(g`VCa'>LSc(kc~kI'MWRp(ls/g"GX7(lZ1OGT`Q((pYB"broؒ-E(vyҲv^E621B(z/5TP9404t2>k[N(oQY@Tҁ$DK(G㐑́~ˑ(gV#،(D1)V [3(?+mr@a(gP+Wxjaa(֬ҢjGNbIfA䩜(@\2l 5(Eݬ313VO1 (!Fg*V~e];(S;iF\H=(ω{n?WVJj(@s%> ^ϧ[(؞C;Nz,(5.l8 :o>N;t(!L ' +(Nq4(j#eNx rjX(N6ԑ⤵ (]zJa: t݆) c<&]w)YTy)"bY/V)EкҶI,) )ɒg>d.{I) oW5!2G©|^)7k4fz/)-[Pùr٧t)Mx]6!-&U)¾\MΌ*yt)UbE,֌')X]]OTqVR' )Zׅo([Zd )]Kh{s_=oJ*4)]l]^ZLF3m{)`Ď0E"9R꥾)aNЍdC拷)frYdM݊Ʌ()imTVzlaS y)p&V*tSj)u td+ n)x“Tl%+d);6 mEQ)NF}6Az ඇ)"7O*31e(@d)>DEx) E8$u$**c)ߧ3›+&+L).M\,&0-=')BIe*<%m.K1 )ϛ^xU=!NV*)ԴL8gP} iy),&gK"*(#{vQZ\pP*0t?ZK.Njk*7".=xD.w8V6*8Tld-TAk*?|b@+ h Q*N"˻ M#o0Jjy*Qb9x0c^͵*S1%$%dWdr*V֋BZ޼ra*Y]Z^`6J)A/*d0BRհ_ O]I#*j9L]`%]Nt *k ox\3A*o"%ɕox-*pYf&`0@'la*vb(2Emc*xlMѳ*b*~ LLwz=*Y,V/F17}y*%EdBl$UPPA d* W o`*a# }y*0 3ݭe*~O(V.U#Y)*vD6 -\Ѱ*h4-QmĹȄ\T,PS{S*КC@R..^*]+\k"zAsقΑ* VH{_LpF*ߩ~) gK|*0jubVXDvj=*qVEC#*}v(C#Y=*;ճj[jt^rm*$.|&59Aw9S+ӬUOy(iN+:#wuJxP(KҲ8+~펤-*&-+l=5II|e+KDymbu+#I㜦#r>8/+)&6K$GH y+* (HY ++]`W#3?v-++vA!5<2DE*"+:TO^tpP+<zU&Dd)i+C%bdJ'}#+E]Kq+KaqhY f> pF '&+N:Ab?I ++QdWc3i>LK/%+S)ۧ/ $[ u+Sя)DZQ#E+WC@qecc16*+W=ԒZ81+^.;!LW7\ +^$< a|ۋ(M+_mK=b/*+i.$ (3q+j8] 7gm+lz4/z\Q" Wx+nд7ẀdkS#ÝC+v.p;Ӛ 0պ+w0x)VE/'+x&AdH̻]Hk+yDaq;B>6{+zݧ|JIe`% sp+|tľ _'C+k~UA)#q+b}"ժ +% s\]+Q?4frIRRO R+L8Hݲl3:+/Q=I3jG+:yk>W>nƺ+_N>\N,ug+6>5i4tL+mS{S0 $+UjW>Fp#8,+`;OXI) hϷT+}g{rFRfίGp,K4󡥗NhҌ[,NYY(1S_UI-,PJs4bUʧ(Fm,QsƲAIu,\Z5w(ZC,\R,ڑ eN{_7,`WwN#* * s)$,a YLgq R,b) 2l",dGE[`r$z,o 3-D?uӟ6,uB6 +,wwlV 9SB,-wLCH ,;]z?EV,] YW-P[?[{,IefeePKJ`,s¾*(O4,IѬI y|\F,/z$ך$PXJ,s}ȃH\V1o,2-Z1ksk`,j\#cVs*,@`Ôv,ď^CU1b,\S8Bn,$!PJv,+_Oyʴ,ǔ3F3q_}2%u,u,$ :%ÈV}y,+p[KC" ,DTΥ_cw!,,F$U>[},aTaܦ=YQ,د' EG{F<),{mz$&,:M!-22_,Q N(.'p8[1,m6NY*=^Ę,,pTTCnA,"F!G %,>.#㖲ՏCqk],S<&',E4Uȥ%X;P-qtZ;?+аɨ -3U~狩8mt-hY."vKa#- o~CSc-p@Y"%} f-vj>4$-V\iV%*-KmXV-6" qC- x&Lnl]N5^-|C g/wno-PHfz&KE3}-W#e1 :Rf- #{f9@Nlj:-#Pɜi`ofƄj!Q-$^}F9]o$x-'HxSmVU-(6ؿ9.ݳ% -3p31nc/-\-6h/ҭBp-9#wB3z -9E#a/Z-?E*N1H}Jczut-CcemmcAs4-D%*Q{Ļv؜-EJ \-E:)&q't-G]TO@:P뤸.?-H1IM9ڸzB<}-JbII G9# _V}6-LaiPz?cm-O tjo*%GJj -PdPbn=˵}-VEq]"]JD-WvLJŰV4@qW}-[( J*Ѡs֬-[@4X@R-]_"a쪏FX .-eA4w{өOM-fe[GyDX?Dv}-gbČC2-pE =4hb]svfҳP-w539m9II$~ -5: rC+Ư;-m+-|T-Ki-c- zO{*mbax"-Sah ԝ_-Eȷ6}-KQoJrl#=-dmeo p.~-~>62H:2$-gk4NxLN]-u0K -qk^H9o`-2@ؾR}T_٥-t<آmx.-~2ֽ 7--,3;9-?d8vL~h7N4-'ҢC`-|oM*)mA[q-(zcA(ZɓƬc[~-[0D| {jaz_-+;91c ͂#ZX-H-ufvk_%-ZLW]47-Ʉ>l饁Lnk-6L AH {aI -f= 4jS,W^-dQԉZ:#ԭF-y^kRk~1D.)W("2$),T.3, =/#j.ƄWa. @\ P+57.I=C @&~ .MLJHWL.p.Ut9p 3.ڸ8A;[T."ze_W;(m.#ݰ fSH4)h.)t ]͗.Atw:MnƲe&DZ.CNe .[olپ.FUU_g)QxB.Fyfmo Nt.J .F=G>: ]f7.GMpvҺzR^2.T(yIXl8KbmF.Woδ WbRi# At.Y $ _l$ok.Ym ߾[HHE.\=s_kD.^)i{Զk>`.br!g.eKT{F)3"k,.h+L:,f-/[Ʌ.nCaKum0Z.tgamФ(um%e.yje6 .yv PV%%.|V u͇:.}b\36.k5Kt:9o].lӤi8GDcs.I; x'6d{Qr.ӳCŊzIP"T.oG'䨼Q .k5me.Uv= .zl$xn.Eohw .T%ӤM,C.';Xg|n.t_7[/dxM.[&YAJqbf".HaT34*|Lk$.Q19Hs.VSxZxe.ۖMXnb$r.7xhO6#7`^/䏶DW[e@V%l[/ ȡHWP\|7/ C\x^lvH2B/ 04JY|Oj/p!8@7`v4f/=KBLC=ے!/ s _/"Z`R/"+O8&[ÈY/&qqrI 6+/,F 6H8 ,/-0vm(Þ;F9//P|%?OԠ// kȈYXbBRm/9.ÉR"wUaRf1H /HvX[Lü]ܵ/Lcggb^![pkl/NXО{Aڏ^S/QߋhlC`ӄ//R|3[w;W/Ss"ia:t/Sc .ͅQP ~?/Ua:h< ;'}i˟B/VbC}#f /\I6bDucށ/\hA߿-/beRp@/b.O9^|۪./ds(.h -6)uʐL/h\' p6E/kf\(LhkA/l('FZYb/CJ/o d]/ܫKj"-Gx2YgXrsn /{"3\* x±oU{w[/0_˟mکn /[fn~鋁/B&_;Э~m/W./زJbϱaz/2+e\S#p/Bf / I9@N%/\姚 qWҜ}w|/E5/13(+ i%Մl/ھpzwk]:/rwL7yDw/^"OWG /0H3(vL/]L@6<0k1$90 Oq!u#ĕm0MW:AmtT.w0fX7%ĠP_Bѣ0%K\wq-Sں90!g-l=$:Lb=50)6w~]nU;;0*}:uV #q0/i5EEVw01[ pcdquj[.SH0QNjiG\0ZeuƏ J00b[(l%ʢ ([~xS0cUGHGW9f*"x0hiJ ) 0iy<[a~ɑ0kz펶4voͭ0kk&&)nͬ10s;+iͽ1aT0{Zgsz }̑Ivx0MI& 07 Y%c^0vQiq*N)0U*y1-C5Lqgunno+%1 P5̗''.1 רX͔S"131%(F"1Pa>K3m̓@by]1X ]xqЏXl!1[CA!0&*1Z!߂1_eϘa/ E v1c-Ͽ2<TmҚ71f߅+;f_1q~bBm}!31r4|Qe U7<:h1un#eBAmS (1yq`j/v%|J<1"8#휷A815cʢC]PP*s{o13Gmں>ZN1uV^D:{]g1ɣfȐp"ϖEԼj1huX^ 1worSO?9 1ZERw PlJF^1u慿 lYhOڬC 1$?̐AGP1 I[`ƔO"3tKp1B_  \U1n-'bJ+& j&1@SʟŷYqy1a5m{O$1ij4CԂp$4b1#*BODڂ1ȗdq℁f$?RX1ƭsVRAjL%;x1?:`Lw' :1@ILgf΁W"12Sn+ucUN1ژMy2΃an#Gþ2w1ܿY}gStܲÝ 1{**ݜ=-q1Ⲇm,'!"˂H\13/F(4eagr+j1 Izj6k_1\;ץ_X=k8JO19"1$4F*ո1p)D^՛3/[1T.pqXn2v؊Bf~1yB KkH:I2V:Q+Yl%oa 2%ĝΊDNtI2Ұ=>h3 F2!2R3lt\z²'22*ǯ ;2[h]oI;'?21N*c~Ɔ22* 8hq267VT51E1jM26'tyھ-d-28#"#/HBz,AX2>(4Z T 2?$;9:hqk,2B$eH>jӲ2E^N\<>z1Y2F+z2[jG").ٯQp2^ L^g谜62g3ӥZ_%HT@]H[2iv|{@&ߟ 22m\L=ѹ)۲Q[2nqK4X/H8r2oٟ&@I8= 4&v82r;r~^@V.e+ZM<2y^a2cv,oyՖ32zjk?CܚR%12X|*BPUoof2DP 8Hb§92V-N g:p[#d23dTmΌ+?Ck:2 3ǵT4Io2}{|$@2@2/Ȍ{2|z2[; As=jQ.2ٱlⴖtSoV2su5EK82'Zx*"n|2LI%b{2/c3y892:T*ګzs2'\[r QF2j$_0hz2,vh  JJ"ӈ2u]`Xi X)FJ2£B{vtg/k2KPj^׬%Sj!2żԢu3f2̭.nRFt1O'2 dlu%zY-2( ii /2֟g,fG ]vD2F&ђ5/2g޾m|r1F?Y֓2ى kFVExOK2M%iygb\d20d"NMO22}Si{iȁ2j{ y 022?>q w[z2R | Ғ2Mb\I(뗎2 c5G % 6G2 ;ڇnSv1tTv2c{xwNv fa3@ZqVgQTz3dٲE3G&-+3[Ft21+t3Sn]Dl, A3yf+VwET3 _ZSPGta3R/ ߿To&3ɲTD:(I3#Rϟrwڂ/3#%Gޙ{FxG3$, |\AR`3'+;~ӹ9/3'rVqP$J@# 3-NʀWÆap* 30z+dT\J6x 37-ӓ 4K4-1(3:Ku>!83EL3JEV73FD7=DNm\3KA~ eOuRmOe3O mn"=k 3Uν JPqIH3X #o椆?g3ZBٳH:7Z3\SC[ZP3edL#nk3o\J.;+uEP3q09l LM+촶v3vTVepaY3{ 3ڪ^ T_h3~ yNE~9M.3aP*l"N3fSHP|2q]чlS388_r{);34ɜwD! 3& tmg73V@4%!PE;3:y-ON5<3Gy,}1xg?\hn3“6t`YٷjEo%43!щ+iwȗx*3gl%qBDil3{I Sqcy3"+0m:p3 {cbj;` vS>3Ll]\t_rYU 3. { VMJܘDB3=>+5/3KIz1$ /u4d9y/A6dEW4u+Pu#)l^R~} 4^5M d<%K4`=bvsv&v a4km.$4mO'߫sTC_{)4mYJ?Yfcl24m~fLu'1ux)4nBcJrg*B|4oy[Sʌ<]8f4x^LtVpwy4y fo##M6{`y?A4O3?򙟢szwbR4 1;U-e/l[x4nUMvg423,RpV9;4 1M`(}hx4ɍS>ڬ"m 4AȀBCo4mm^)&]|4lw#=1[42~mdA9hC4ߚ56כB4I0QURFvyg&4t"6-i]p4K; -F4L_C5qza1_4 &3CZ6I433eل;5Mx,H n>j5!eJA"V#5v0s+tA[|5K?F5yb>5 bh˵Eh!ms5 D CkDR?%(7Yc5PnЁ!;vy75U1SUelP5?-Y_!^gB5 X}'$4qWqj^5%+|v8(_Eࠉ-5*7Uv%)v_8 x53.W0z9]4Bg57j =|5K*57!gp3S0W@58O`n%C믜&5 GX&ĂØRI5@‰|RWy5E 1/oL;5IF@3zW<9WY5J ;7'c[5MW.qg{N,>6 ,5NRh?;;c1P-5Pw 7ָRa3"5TdNQT55Yq;rj4I5]mR}Eh݁|Z5`CpaH\ 3E舎5dS0=9QK+5kjaF/\cB5l>aQ3{u%a3G.5p_{M\QO;"$5s?0#ղ5;KzW@5wk['u3+5|>rLߥ 5عM;/o+8s5k yr蠵(5")NsAC5@EmBjV85ցA3^XnD95KsRJ܌ 57v"p?V..)5> h# nҩd5cO58 @Y;5VRG?92Y5Aʶu$q[%(5!u=UIUa6%5~+vub5Y:J?U8^)5ۄ޵*=Gk5eԱF,Ff!5µ^5ak&(= &5`Z"S(${$59< KX}a5м0W >&HҦ> 5о|۵>QX5ۨxɋnR.:5' x'&PդA<5k z)*}v5/r?D' w,6,.pLHTΰt6."E"Zl[P667HlE,OF̆,6:e_=!-6Aky 5lf*6H m;l7f6I9ٟWv1/NΖiX6Lax͔7B6OxW*Exٌl6S)&8{UјU76V۠EE2c\3Qs,V6W+sBJf/LVGA6]NxUqm]kyvފ6_ܣCP+}1كQ:.6dZ}Tk6zp9(W3'lz8"F6~*tK\(i{"Ǝ=P6]9lg2;a'б6]dGcdfq76mYА ѡjŇ6}FwUi D6\1m^ǡ+R6jI NyB!m6*pt#m6 q!68Á)eCdb^,$!o6cEܠ }p%627u 󒎖 {6B Xc5Je+6䷽2DftCzi6TSP}fqo 96X=SzƟcX-!\D6|f*rA6̨|ҋ:lu,nc,6μ\*(pFF>6h 8WXŘ;6%N?9QOQ6%!(Ñ_6$^662V4lUI6>q[Me7,Ј?gO'?7(V% P!"6Gn-M,7 r%VF\ %.,=5<7l $OQ̜ gr,7׿R„KdO*7{]ku{ðC7֞Ĉv&$7ɲ7;!EZK¡g 7qD"v3du 8{+"Wz8ߪP_&iEvg8!Mqvbؤr #&8&Oo/ =ڧG8*0R&zO8/HG'ɍs>84ipG(1^b&2:8;J=spn` oZj8;3׊|*sBE8?Eas瀆:e8Aa G`jW8FdMyr`3OXNH8FzG@XaUJ48G>(=:A"ѽ 38J`۝1览A8Q&aazts+Gl8Ww%Ei246i@8XRFL 2:6D8\I!I*9%*"8aAV,|)8hGRGƨa]i8i]hNp_.Jci_G8iV O6VPq:y8m%9=hj8\Q8nf-Jk IZ68nuExٔM2l8|~hj~_ĭ]x8h7x @8xE˰~f8 o;aM.{K8m_LmA|| 8'.N}X݂ 8 }nCՊfl82ը`AVff~8[o5_qa[8IH vZ8|ïV n _3)i8RuI%M89O (ٱj8ؤsF|8O7~x<:Dc8q"n޽h Ve8զ,+;u2Z8 i_Е3[}5}8۸j+AY5=P}&w8fSa~z'Rf+Y_p8'd&l6)c8%](tQ+*]f8F81_\9}>]y/t;Ā9^Q L9 Nw&3\9SItD#9ێ؀5#>-on9Oe$n 14;s9/aO:p&oga9%RA^'^971X]a9׸] 9)pZ7'__=9.ݴa_a44J=0i94I;(ь9;\t 4럠W9;b}$ȟE.M>ia9? EX﮸@ħj9A,d<; p>9ApZgÀ1 2:RQ9D51R#Eߞ]LNI9DeǞoO8S C9J_Y)9NG.o;8?f r9Zt^j vRr9C%xG9!CmJ%H9Urz9''"q0N E#9F~K04ܾ*ol9[Nsz eKd=9FJEVu=m:q8x/0!G: [%B"8RԤbƢ: s _*: =@scz1*: #2Z :_ =A($D{nMHEhA:qTW0n f.3:ؒ:fmdM D$w:,+FA@P87:$PߥxAnH:%gyϢ6Xk :*mFiiiI:,̟F ]*fr:,s]Wu+ KH`:3 =Esd2#ji:3Aa|EoWU!NzҘ@YH:M/nE:DpnOH$X@G4:-mr(>:ѨacJ!5:Ӆ/\IDJ:j\6lE ]>:pe1jE0```: d's9̒l:91\%iOm:Բ17 aA: '&B_%b;X6:tH}=6]#ֽ:uI](j޼JI:U8q;)i"}:Д%٠x[MLk:yz,H:XbRa`hq-k:[]B#H HY:xO)47}g L: 8@%#z8B:fۄh=;:{؄D#[):{c>WNF:B*PWJ/J:* :L Ù:+kUȡ::o$l!M;XjgIңBw`; -ŀBE#y; °^ҬtAnl; ȟIX0QWp24-;,cfץQ;{8Ab3TRKK;)FR6F #XLL?;3`Vay~qW; ?BcwS;P.JYQ}EQ>];(-񐪖mOI2o^;)?pv.DJgvX;+ :r{9?;+mg3.!Z% /P;4J gwQYأؖ;9{l- :g#j?%;9`hăt˰;@w0AoröZ67;B jM{o֒3xΉ|Ww;BAQ/f;C"Pezj Z};GY.zY)3;Jԅ!L( =;KA!o.7 ;PrUrHDYV;W[YũCX$;Y*fr_U8|;ZL4(IcK/uD;]*)6Jdv! n;`\<zħ*º;e3L]|"Au .;fafpYeuqj;uvf>Sc E);x IO(Lc;}P}H7d!_76 W>;}v^WЭ?6eub];}.r3PMkɎ>n;$W=J;Mf@+q!u$֞;wV ȘK~9 I;i1e 垸tC1;?:WTJ;W!yG䱸;[}NkBᾞg0Yw;0WKGL ^f<;Zk"J:?ʲ;g '$ tE5;`mBn]xb0aǦǩ; I.ɩKe7(;O2s6RB;g{1 eꅀL; ?@';K T+Fm7]u;gcC*a҆+z%;ξo١9 :p;Ds@6i  ;}?ML2A$Xb;RȬFqƎK:cpb ;k̈́e|R c;tuKY $#)>&;]&HjWJ1x./(;yRSxSBpK.C<;ϓyJTh[;BqʏЀGLyPj<#ܗ/? +)<oXw3HqV+Z <#JIG-3${<D=>N ]إRd@WD<my_^G$ '6<tc~,4 <+sxz;V3VfM<,&<ěj5ZּC gi<*x[ND\<JDL:opq L=#9q4^챠r▹=&w|Op(cٖ='J3gptr΃.=*,I.xݥZ=2MxդI!t*51=3׌fgw ,=64۶ | kɳkyy=8험w¢\3ʇp=>Og' uXG=?.;@ .W=D8ͱ8l=G@V(ڝ [R騊=KA)S>a8=U *ywz@wG=WQuN0s=ZѮ X *]Sh=] 9mMid%JjHZ=_N4?!Dj9GHb=s+pgLC߸M˪=sS1(o~e<=u6͉~L]/әŌ=5DD.1i]o'=yZc+$1aA;ED=E}= G=%Ol6=`p=LWG{!(2p=\[KZEء= ;R{ɪpvF(=;=927;` =.&G4S GR =ӋRbT0f+qw=>cs Ȁk==^t;fIi)t=LeYr /6 3ɯN5=7Ҫo {8=MfL+'Vbr~K$=$;h wON=լwQ%wȍXR0=tK@r_AFW=Ւ8JeT%¶2=5mS+]hV=ݰD(z lGwt=#/;?"="erްo<3r S=k)]ХԘaTh;=놦 KN51DJf=1A%?xbj=:kY&$D$"=w31C 4>ws =k~h$$mJ]>ƦF܆nax9D2>.!6=+T|K> 9+zo)ΐ2 1> [.x$cѷj>v~c䩋"!>鱫Ñ<G>8U{$S=# r>p }NÖ>#("rB>$ZRJkoݺt9\U>%%?$r;p cdp>&g^5KaI9x>'BDDJg>)#Vp-dH[J1:>0.@ỻ:Y]CV>7D3Z.Lnך>; 3N`YЂDZq"<)>=)e A}sJm`M{>AMx]Mr>CJfGO{ҫ>F.؆DN{[>HY=NaIi+Se]>O][AQ㆐㓕|_>X*E,j -Ě\>]'3i3jdҎ9>]ZB@|=;0>_OdжH1cp6>b}~Ѹ_>j0&M~9!8hIG3>k8]{lFaU69,>kx[9%=4C>rtAnNZT 6>sk$$0}u]xƌ >|(@jk:|o4>5J\%7$)[>xV9XpXT>2P:eBήf C> gTe_zGzD>+tNk&d>ė\Oqb>+Cդ@E>Lt.Ń,2>zt`YyhG>y(~Hr(n>XvOV%0QY:> oͅi>*S@+EŸ~qg>bz,A;3i>rTnrBoCA2> X+<{&G >ǷTucӬǁ_>3:ߜ2>s2Z^ISM>,SaN\Ѵev>ȜBlY]>ʱ!c=TGi>p$Gy҉;>-Esc~ŗٖZ >Ӎu4M:Y>HHV&G=]h>y"*+[8>-}w eB(h7S>8{{rI$e1OH?Э['H."v·ޅK? d48Q ?7Ya2oKd&ze?%՟5ds]E ?&l:8U8ڙ}?&Zqi?P|3b{a?2wLFє6_"o%ޤkn?E?\J8 n o2T?G=ttv$?KdG?Z~1?L8kqSaHO-?M\d6f+jO'h?M'Oz98%Q[%ox?P;ǴN3L l?Q|mXڟ4w؛A?WPQtfx7Rm?^2Mm;GVI?^U Eg5V?^lCr'ɐϙL?_) a}70ssE I?kƓ4-rZX?mGp,䰕?t[MWP<~:;i?t88RFx̎sB?zM:g'~|烜?{ڝs.w#f?~;Yd}]ӧ~?-?I%Q3ӥ8,<.?f 6 ?;IP } $.3= =?-Rо8B$?טj#U;=>a?WWix?y)o꒱ݤ\4i?| ˬ~u?|6v8U.x"? Z,M|鉃HH_?X媨%§A| R?kCh4V.U(@?;gxn:H?% >t`NӿBj?&q( j?WB]SWI z :t?2 ڀM PX7Ю,d?Jɗ/m`ŎEg?ŜnA3+?/iN!N@Q@0[8̚q([@1C/[SM@:=/)D+\/D$@>:=pExgϙ@Ak7{3"9;.@C:Գ',@F^L&n~'@H|Rғe@IY|iLר<@JZ,  w^3t@M *Dx !W@N|c۽AdDә@OwWU0r !K@UUZ]PnЅg 7&R@\4ZWM81M瓡@]&|u:{{+X@^U-DV~nYjT@jCrLc|#H@pFBNۘ^v@qԋYbȮW@qyQIxWu@z d#ՁG@{Vx~Xa1}?5@Qs_0}3>H@>ؗuەY2b|@Esӄ,׾T:@P9^ߔĵ}@) ^6@Ѻyr9޳]},@l ptnQ@2I e@o-Rٻ"}D+@ńU%pUxZ3=@Hjqoii0@|@AIf?~=@T"[1K5hTN#@"8,RMnJݡ@F/ +8D_ _$@IFqa %JՂ$@"H: Ptc@èKh<f:@?qb!eUȏLӳ@XM+S5@˨/1"r',@`ҝ ^s!n:j@~8b OJƏ޷@ӤݫkTtK4f@ TpM@ [>8߽W@.izZLN"PvY#w@Ds.cGW[@ >Ht7&@|WY?8FND@+4rL6b@Zi;e$Լ@~Y\L}‰g@ Lj`6S[/ PQF@d "RyAw6Eϲ<A~5'Ak|\_Djs݋taA @ n@w2֠zA?W]]˕bA6/,$,LAZSTRg ލ락;Ai}V$溟AWBfC8K P2AᗟS/0=KYAz; s/G.^s&AXu[*d}A G1>;%Vh;A#墕Ãߊbv> A)#MYfZJ6A+z43%''A.|)v3_ՑPLgj#;A/CܭKcV{LA/;^>pUGA0lVڀ'~ A5Ʊ޵K?=k- A6䎟L;Bz!bA66 (FM]A>`LWV'#.A>^%ܽF&]AE~9!Qb9 VAH ҕd o.eAh}AJM|J'!r@7AL_3>3Ҏ)qAQ:hY[AR3$@@A_/%ηl4\`Ag2 ݠw+AgsNVyn#V GAik)fMvH kAj^F3NƐ <An皾牐:3Atl27KҕCA{s;| pA}`JwEi*hX"A'f$9OdACAXEA*t qA`)~+|p_H ?Ay)}!W-}[A:O IwA'Bh-6~YKAK!*3!iTYAZ `zʊ4[ A%Xs!+U5EyA1}ֈ9[ig/@QAp_%1z AlB#kqWNFA"TeFuՊӦAw9wk3,`AɳЧvz&8/ AFޤ*oӝu~dA24ןkBey0$ŃA#-/Qy7^` Ac09 x-pz`Aʁ^NzG@ >zA҈U|K "cخ8$GA'b'`!dL[AmVdSJچAژ\coEZ!"-A>a [jQ .A~z%جlBA40H6XsAKW2w1FTȱA a6pvc_Z:Ad?EukgdA+¡PaBZ󚋼ÝL1Bd'+ށlE#vB 1Ya栲EX"BBXCU锈&4B]mzd3]9-dKsB^аˣ1ܰB^T[rH뻅Bat1)S{ k`XBj-#;Bdr>0Blh-/'Bs[!%Zbe =BswD2ƢM/ÄBxQP.׉>X `BzXM='L6̝kMB{oU}aLYB}E楹4jyB!Ie`By" 5ّxBXVZC|&jځ}BK=}v"A}B2n@Wlw I!BEqTڜ +D3@FXB(V]5~l3HsB'znBeI`O@HmBSnwC-o)?B3 PlTBk!p!6g[7B#!ijK3ͮM5vB r%ShdlB ڄtdBp< B2:{0Bɤr3 lX;FBB!7w B~ذj=q~;oo/B֛PM_E`B׭sN[G犭v|\Bu;kh53$c@Bl;$]JR8gB` |,/2xk[g|BɠT[c6M+[>B&툗[0'GB 2xrVg8'MB9uū02=BA2cXp@4߉kB'reƪmFLB{eūڦ|9Й$h C0(^ :wC [W!EfbCWTTUg|Cy"i$*rOwC(]U}$fUF,C-^c k1wwtc_C-|_3iNL{T:Fw%C0̿  (\C3i(5#*ӷnC6-'Cٰb/qƢng*҅ACAbМJ:0Dq%CA r(!q' CB /nЊrǘCEt H+b.Mf=JCE2*KT2NPCHܚ&}ZՀCM[A1Yӕ"CW.pA U&CYLVdɴrCZ^@57a_4C\f1JAX\HC`kUNوfڻJ$Cg#69+ǫCk&%g[Wet/RC{ P Cn8竑%KcŰ5CpPHŚ%o)iCsW  G?}CwB_;!f 1EC~5i D>5syCC>l^[ )_C#[nV~?yCww,:ze^qiCŢaKP*aV]C8w,V:CD0_ ]޶v9ƇC?lZⳞC23K qCX!*2`C ivh>zCwVw3L \BCƆzßE+G2C|;%QBCAP>%7CtVljYӓC -'dKa/VKC ~vp6f<;,?Cdڄ 0,I@XegC1l@EyCTtŦ*TnCVn.|ɀ ?Cȑ絘ۍvݢ})5CʍR!S>C_T5\ ڱ]?'h{C;l_QVxo]C=4vs$]\Ʈ C\ #ha0\T 4ciOC=?x d6k4 KJeCٌI}E0됊72C `->m^kCRN?+ַ ACqx祾)o}UCJ< kEŢjlC]QfKbaûC""i" d eCx'$?bREbC.ٶHBb^hDh.t݋jmfD93pi_dhD}Y[x(BeD,Cs"]^7DoHbzSADZn'3DRN xVq)rD/yaqP$[]DbSF?o5tˬTDRH/-sV1?WD#J`kYHgC9ZD' jȈѢyY #D}D)WXaN5ߪnD.huÉϬ $v~`D4ԦUSădD:T-ݢ\D=Ew; 2G˧DHB?W2xf?DKj:K)ݎ DMHWO{2eՋ;DV6oCZ@rpDVvK%%e$DZ4XYm5ˎaj̥DZ-("3蘭WDbR/:Cُ))ĢUDe54ʋy썕Dr&n=JCHsDsBHHJ09T?zDx3'# CjK;Dzf$\{^z/B!ڐD}'H+TD~jXTqSr0bV&DV(Z:ymDR*D@\EDšsO_}\[?vD嫖UD w}N.yQD"L.6w/2t÷lEL]H`XD@]_YmDjx;=ꟁQT DeM}@8ƽD2z3(5avG4Z\D@= eGDgI><>9DGָ+C$?uDSVR'|ؗDdZstkf 9DaVj6wDװUo'EN[DؚT6kynȈHDLw\WDޓAw+餍늆 DNTsdNs_1zSDⲖ[Lc:}dD}Nƥ]QδD:F x{̛D{/=iI2|bD>U~ *P(O~v-D+}_ #E^(YL҅E}L ӶHLw!5E{oNlJl ,LEJƌ&0,B EκCفЬUXE=`HvAH>E d>S7X}Eqmnt6E ⍛MJgEb\E ]:N>5E#5~WpWS4E%t-֘{Ei 'Ow:TmEk.KGŽ2QoElRqKKXn9EmZ2{\uv \SW]EsYCm6\mΜqEuwUCrnC+#Eyxc}/^7SEz9(Dkr~b`lh.E't^4K ^EBY;.Yhe;?^E-9 ^ }u("5YEK.b3c9`eEd28)@E k$+qa_1E(q;! _E06M_̄kx Ejs(8A+|EJSpCr"E ;;ES^6r f[{ٻຖEsUBOEӚɻSWFv #SEjpw} ۏ#cE.Z4o^,ECB9tȠ UfrE`N'DřE2KGTK`BEN47FUXaZEzxjJqLiE̚eL/+b$vBE5I&\ N h".E`+ QJ/vEYwmE7xE C̲#ix8Eqwȭkf$֏Ej PZE hIwo*F_*;medM~3$P$F [ yGSxM)ZdKF <(ba lh;/uOF.=?PPD.չN-;$LF•?t ;EMlOLF Yw>=l7r}k ,(F!D(O .9F0gF nӰF4(6zN`%F?b(YD`CG,)7FAn;ķ=7&;+Y7FBɼBShFMnƅnq 0<{&FTZ@ߢJhMc%wFVff̦i/b FXɱvnwiwY)FY=wEb/%\F\ RA94,eFf[0qwzet{Ff-JBgC5Fp&W?y`Y,Fqpr]3z`Fs_hPJQjGbFw+r\C~Fw(cYUKQ] F}/@ti@sgs'*FW*ccslFX:U")*YF%qNUh}FL@\%^e&3FS'F:"@%Cc":RipFЌFqB_:F!o/XnO2~5 FŎbjԊc@F̽@ekbW!QX"`F΀^*PWCwX㫪gFp0z\"PFڸIMs.nOZF3iXҷFإyaF.o* F8mٓ8&#. #oG ݣ`^Es!c&cg[G b~Zv[G3(&4g~5m1GPۏט8i\ ?uG fd_8YzGdG,T-,(?QPG!򷹑m11uG#yڅX3.hRG- Z|PFG/U@Y H^ٟݏuqG63,NŨe*VGgcVG8e,?i}&WG@@ce־piIצG@ŐTCbqfGAN`>#w6|TGAݪ0Z׌gG1ЃaGJn*VTjĖfj1EU(HU.+lXQH`' |DcIHe'2?ϯ'jH uͩ58^,gNBH!ᛝ۫,ȜM 7IH"6/grOoVH&vR g~`fH/B lH /BH09{7vUSNH4V]G-\5. wH6G2cR5BH7e}"Yb+m!BHG C#pN'HHezy_+EûHNW-cz\/-bH]<@_xZWHaGne,U6cHgmL?Dyb|Hh@n,a}%sT H/Hm:A:<LHu=a_kYѕnHvkc0/WNҗ7H wIZ>gpHSv^g,AHU׫p>d YHRA׉]ݒPH멇idG2ƞH~67k$  t m9IJ)H)jvkIN$<W$dm RlIOUԲK`ѐ^IS`UfaSGIUmO<4|.IV8gܲjIV6^8x }͗!x IX::`8 Yt ,I]UQRCKhXI^\&6rY#^҇u|I^-ƴҪ1%:a;I`[CjROIa`Q wa\]ȏIx&LI~Nvja޷EI5qa yU$I"G.neA/KI@3%U,$I ITlrX͢zI[!f[JH? IUN~k'ȿRԒ5ZI,PVi bbFo.sl|I8]άD\zWIx-8ZD7Ibd{U\&CIށBs1KIñI髯pK.4e Iߊc%JoׂrJ@*_HJT[=Ʊ8!8GJM65~OXJʇJz'4J SPڣ+MX3IJ TIWߛ徚yKJ!~ֽE0[ZSJ5YqxRJ(xYz7k/2IŗzJ/~.76J?BS$Uz<@q^J?nZ5hDܠ/8J?M#6+d:#JFeD(C7JG9]:SrTuJHK]TեJM31m4IZOm_JP{֘ɚe JQTl2㝐gFbJWԮhsWJXrٕsgLoJZoETn-#JZTG5_}PNe Jd b.O#y+Jhoho>JjjsB je`JkGFɌL`GJs"liv?ɳߠ@[Jt>)<*jKJt 2 q͜gJz5يY{nhJ{m %Ɣ%4gxJ~,Mw',NGL]Jf5VI, 8 ȜJIb1MQhن+J$ܒ myD[WMJ)~ɮx죎UJ%5eyyHk*txFAJӂI /PrڰJ u7sxGu%-J^:#}uY=o]J !UÙj]7J.t ֡J"OXJc baLdJQ$ n-JߠU=podJ4B:M wpJ\&.+uALJ_N2ҏc,<[ FJDCnҽ~1Uj&sDKj}}80Ys' sf]K̚nLn*GK  &F^DJ4=iK&Zr\,:dEVK2柏YXYKkM\NJ!:;жx+KX >N;A K$M^갂ֳvK%k9מD,ԭ K)gRqݢ; tkK*6m=jY75K*{AG# IOK+{)܁ʐ`ͽK,O4E}"R+پO ظ>K4}[;d>gK;9=aa}͇Z)~K<`Z_#kޣK>t[z3^+,υ/¦KA8!{ u\KB5emC!c*`pKD5h/9,/CG:KDF N5|_unuKDC+>E觉u'kKH!j 6AӨLKJIXPM۩OWKL 5-@ ~x{qKQ|Ԇ 9lKSGne7#tMvKSzYrsaKXYBhfv4jKXa9#[ϟKKYA~=i*E)xBiaKKbܸ!*K//iK~ 1D"( NyKR;~ )!rܐ|KTAv"x@Kv|K˂v5j@K*ܨ)2sKܛ!C+E)lK?@B̤E"KZ)@T-&wYK 4 .)K4Ov:>kK~>aCO[KI;ύ}Kd@F٤L2KҺT湇,t]eTwK`ݾe&DNt^]"r%Kqt48.1PCKuAZ :K[:R֠b ΧEK%N̒oRGKHV*w9I>Kv\R` PKۗP iƕ׼Kj6lkmP=KUDZH%ɓ5833K~xE6[>sւOKAskx\zA3L?.yxfLȟV>L:dtE~ %Kp@L 9NW4,vGVC'E4Ls.AaB[ =L88)W?+?LH` &j'94oL ӢtSDkEkL!еlneL"2DO@GK-9CL%. GasOG9&L%ùxIO@:2L'O\lˊUЎL,eCWwxČXNL/p8вlG"s1L1Lxos=Z#UNL1LHrh=L8%9 Quq2L8>t;mzj9 e*5m L@vsm}'N)# LJR5oɒcLKv5jG5l/LTb5k:%`6lLV 纥՗wLWA؝1pJL]fA#8JpCUϳLjM{wOMLkYFl/œ^E5PYLl6sHD'NLqٚ1}r˅16PˉLu!S ()](wCLug%˹_$oLx?n:{I4LS&\oYlDi&L7o=H8LvjKxL岳e/7FcݥtLVI)cyj$wB/LAqgN/)U1L7χl֎G/L? %Қ&LVk0b/(L!ԙ̗ a*vsL-'E>tO{LS$sgrj >L%j5VꐓgUL5ɭS 5+ Lk*czt4,#vDL_tK݂^g]L,_ } Ps.O8LK;ʶȪjL8Dn3{wIy)M -6=ON(2 GM =pZ@Zo@f0M c x(A;M063Ϸu{Mu&,nMGRM4 >MHyUMW?/mbK&MԞ.sٳ9g䝤MҝOZ8&M$<L\AKM&e/.3QQ,<8M(s+;Uw4Z.M){Nbk%nH;M-RԾG; b' M.ĒzZY6%wM/B͌Ry2ٌgM8c+//w +g/?-KhI,MZ#ÿ?06!MgC;^|3s9tt~Mk?I3+C+Mn' c"D Mu*\i/EMzF? hux)0M|ৢyv74JM~'hzҽHM~YhQ~TIKx2A&JM][YNsz:;nM6̳?MuMFA% )8w.Mg/ϟm)ܹ9QMŭ̥uLHZXMZrMBr]K;b#MLܮœy.CCM)v[B7` hM1Tk:PdUKMU(ѧ .89GM')eVrM/ y_?+.nbM!|G%|Mη]!FY*M$gy5:x"R7~MYY=2Z$VxMeAkΉy)$3bM jp$y42M|RLa*0Kl7jsM¦nY~qOea[f6\=MҼ\?~%U\ô MjѤM6Em5E{Mp >ư͙L2YCM+J ]MvۅMrscqU~pMk55Ӕf@9ğ{dkMDq;ZMoQZ].lv,M z?|7HjN~1~uSIR<nN y݉.R?N/.r1L)k-N5U(mV50PN6SǍ lN9x(wXpVN@a=.Q[u X1OCNC[]exR%b_9ЌONDKM-m#=xNN'YSDCuDŽ6NNh%'-MJNQV@ęa68]qNX3i)=: /NZ*d$?F3\{Nbpߐ4V&NduQ;Yr 蕧Nh? ߌSY}J)kNiui]d`p!.NnL[':- ϢYIyNoQ~i?UU*yNw0=$~9"NzW=Dݑ'v#[=ಇ5OG'L:OH:j .M'!OJ)Kj)9R{}OLTf( Wg|0ZOL\ikvg7IOQUo(KY9zY5x}ORY\1&[*;PL5OS^h> My OT6C-%tD O_D,15yt8 fOft24/qOkG?WYwje-$Oy\Y6XlrhnwO͡>t>uh%". OXrn+Qx'8DoOsg efz#xKxnOr)av4O'Dvw|ga똨^ O[i GOɎv%Up6ǀ5O\/C3|'6V~O+=bHF:ӖO)T r 2i,ywO g 3s)$.O<}hrN&ϹO%s~μfĺLW$9 OVa3_1흇]0O"8*-"nOcٔ ̧;hOİxqZ9ĤsOqr;k@clo6PO!h)vm_R_WO'ù8zepOS)96GРciRO)0o*dOy]@RmS((*P2: WpY_XPCr`fPO\Y>xIPdEzfa\'xqP 0!Y753>P  ).⓪0f+UCP u웬[y; G㞙Pv4Վ^NȘݍSPN _qw?l ~TP+k.eh UUP*,I3TD3F2PJk 뙉8Z1PT^Zޔc+(PGZN gO\ cPOD d,[KK9aPs9.02$,)PGåm0e3&Pd--0•hQ04&POx.Hȼ&P<o>5Vo_Pi b1+bMP{{ҖKX_gKPo Z^Et?5wzP~Ye{k59Mw 4P܌nT`nPh $jldFr PJËkZmP5XbP_apGl +R ]PS6̙ XkP:ۿnB[㝿 .P@tɃTtZ<,P'"G=h>q1GMtP7_A֕pPstզQ:(`wY"4Q೷oo_%M4K,?Qwqe[L Q{V՛ A' RXQ lba6~7IlQ ~ #D{etQ ;JF{3gQ%4TF%M*0IIQ.|^"Q.i7HoInQ4ON[aWFfQ7Fɳl;LX:lQ7TlhCAp/QAg llR -*kQH@#B be%(TQIpo.9}QKFGk_LѦQTԲqef?O$4QVŏ{o4h[QW#"h41Rl)?395kQ^-O ,ؾ/7}Qc2MV'{ ]GQc Kl)Y}{%4nKQeP A5XPZiQk!@^i9'Tr%UQl =:6g.$x1QnG3 AJJ/ Qr21Y Qr4}c߯͢[7cbQx5i#,vQ}25~B܆c{rrQ0br;!Jj7s۹QB(W5lkw*|A|QTSAjofhnQL8^uʨEVQG0a|gy Qb eL~ *NQ_f6h݃fQ:EAN ~eo2̓Q>yqbHׄxaQpyϊ'Ƣ+QWCQ9Ir8Qc1"iaD>QRHi- cg qQf~^5Q,n)x pxjQse]ziwHiXkQѿaNIv?8>YuQ98|\p9# Qc|;}o֜bSQ)f͈?1{Q+o~ӑ|4QxhX>u 5 Q衒Zcfmt>OܜQ1T-A$<)>QAk2 Kc_QɖPwf:>B+QR)*Y"RSپzk,ad0R~`gݒR)!׶*پ3&m&GuR .?F" R Ȼ 7<;6bKRdXIj4xsRAU Ë2R YNaM\mtR%0Kuz{ R>K_^5 RBѡ\s8`yRD&wY! *7zRIq4.FQf +/yORJ]M0pyHA".RJF>7(ȿRO?ΰlF_7$GRO(z!RniK b4A8 RoVK;F*UJ5Rok2.t69%Rsvz4B8- R,Wr~ľ냫 R"?PvRJ8k3@+R}zARH8̺hk0RiZL8&>j4ŐRp] 'WAɿ"ASRŒ.2K뇦Rst פW-b:E5R-Im~D.l5RGU'yVvus΄nR/ N)l()fBYRR yh>xeLS7 %EL3baxyRwzSdJ?7׼7 yS%%SS܉[Jf :,YiSPYgw23>4 S G%ގCX'SS.NyafJ?STu gi]`G7zSs5ܬ^ Sm3Pe(GS'i~uR)VYS)nkQ(5S*ԈןOuʯS.ɷXhrngq؈{`=S;KD]ZA{v2SG,GVSK-$CHgSUmϖiTƞ#" SYa ?ڦjSZeQtWɕr2SZ4f)kUS_s^su*eZSbVlňP4GBScw FGcSe"|$B[ASkl]^P%A:BwdSs7g+JzS|`h,Ehnc>(S} uX f.S~A[˖yS)SIlN5:v cS,1E3-~ӔLS"s+JrgwssSX'Mᝐ\e5\S+뛎@:`SŲsS 0Y@eS^U|έvS%'+oSJ@4kPl"tS8/!laBg}^l2S yi؞| ʤSGmm"R Kr FS~՞O$\zqS"Ih hi@WS9x^ALV{Sm ).(S=p93TNSs!tghQbZSt` ^2 ՌS23WmOE +S󫾄TCG[hGyMHS4ILlݣ=E~bSЂl. `rǎ4gSֻ  V y8P{^SVvJ< r"ИxVT}3)OeT/𘴃ϟZ:UoFgT ,fF߼t6;,T 1dA(|3Y4TFJGT ~ZdhTC FSl,8abTN:Cž gPN6T)S[{CTT\nc4gߧ~ xT"BSlvfT&]H 5ra85T)(GZl7Ҷ܍T*k9"e>33#T,$QIzF7/j ]Rj$T.LpRqrr5T0dk8;R`CT1ynEήVT2- dOt&qT9lɢb\GmIT@/+l\g (&X TPW!_ u| 1TPk;ha٭r[L+ 4eTQnz2~&:a ~|]TTRPeW~X dh7TUvƢP*ncTWڄdCOThZxKSȿRkqTu[u&%I6Tz}Pdc_G8^ZXT|{BWs{%Tfy;6.xyT.KeL(}Ʈr*T" m+hEKT֨xoοc}`T{ս_,_qT{Bvp6|j^ .T]6@TE6+˶ pegf_TeaOq"LTTn>݂t/)s T=%z,#jThtH_pePbTjfETThrvv5nX^T(o]Z"aUF0[TJi kxT@r33zZ-ըU8 u;yUֶQj&@ t{ Y?x?U?)ۮS5ӐUC ,N%D8ـUHbzB}< \kLыUYݎ|4ǵnU\{{G)-Y:5fYU\j522U`UNn7,bUja9KbxwhUtCt[*.UuHĵcEܳ/UvjJ Dy)WHY}NEwU}X1tnjcwU.2\c.`,1_U-lP>xiPC:"UӵCG7N@S4U r',fP`,U:׏ YmhzYUΫ C;'p4`ƩPzlUr5Jw4.EQ]^s~U%zk$TLʴxU⺽bj=paoy4U~28r 9aMnU]kHu2EUY $^k[ UOP^ ~evF:#\DUBЌ^QUhzUkHޝ\1YU}QwZL; LUgRU&U3Ee K'5U6נcbt@^]!U6Z/rgʟ8UL=*:C鐩H/U߼O٥S6JU_IFglHyZC,(4Up>1 )(H"Uȣ){1UҖ2='$VkU04XY○xl=ĿuVA]Dͻv# VDOdi,F6D)oVHzM܎f`ZVQ{-S>h"8.TV[ 3+q*&Vgo DG! mVh 'DA *Vk`sl)u1oVkr b.RhvVtE&@im/mmg{Vtt~,BlqaV~Q/){`RVu¢i>'źsoV74'ɂWG VThƠWV:6WVtDcrex^ _Vʒ0dG@/!tz.V}Jg쩯r^G=C &TV;bI?4SӲ{ѨV2\$mɹ83j@#fVVjaB[v?NDFz^V JO0`j!C$+IVB4 }:SO1V zg?ֿ.O,V>q^z^YYW$@n o G<WRb|!=/!g;/MW k}wrq!}W˺ﳟIP`WwT;5%U5`YW&iNO|UÚW)ekLs!ߏ%8ZW*h]u;}PwW1Xx&òxHRUW3 UG0ɟp;4&W4c}FJO8'tOW9=:ktsڪRO=WBG b I0 )WE{m1SUdwfG WMU+Vl-pWOѭO1 _IlX戩WP`A)%n2`@/WSlzFM`vd(3WT%zD_CWW5~CQXm USGkWYkX_] MkW[1R!@W]moNOHf+׵ϥW`DŽcMe.W9nWaК+w QaWgR 5/ z|ƊDWnI;F1i| Wo K'33uEKWrYY0;OMWuY(-ڗeՌ"HWxGf%*v Wo*AF;jb@WwvbHDm0];Ww}boj?CݮxWg,}FgBݩ3LW/ڕ|لu3WTnE/>b IށWM\U!u@W-N2UvCW rMjY~/FWW&_fƄiy_ZK,WHІos@vEłW|d W޽N =9YWk͓X@oƎi8W^㇕]Ig#>WR>Qw 7W<^`w/yezwF0]X7QpP7 uMt4(X;HSAG%bAX>vD;I.V{OڹݩhXA(a˺ڽL.XBoάt\zÌƶXCj_U'kغ&XNHfi03hX;yXN+vj})l0XV?f̟}[3XY&B AOAz<1X[SĤ5356:Xlxȷ~#GzXlx !* %XqH fiܾXwm )D~aNtYXwqlN&h5^SbX}洯:_*Hb 6IXr!0gai%S oX~0-/R5XɎTB JXjyWjLl!ޑX]-bLz@ 4Xnc:j0—,X4d7`CeE y9[liMYK# a-HZ2>^YNRb l\YLtYT/^ގrF:b`*YTj,V pY>vN: YU[(F[|dr->YV7 o(ËbpYXCןMilPBY[o bqJG\TBuBY\lS+M,Y_X J$7٨y+Y`~L e-pEYls^ߌ܇3́Yv[,S"5<~y0Yx햋يWGKx%AY}3ײ<6V Y~{i7C $cc2ˆ©Yj1Q:uaKb:YqinO 5SY#K5{ܩ<5^YPTuT@MGIQYJ~[zN5Y׃f%F[1:ʦYFO P?m}iYq!,.ts7|HѣYT'2pn.ҵyZOpz&sAhĀyѥZP9ȳaZQ@})Q[R(d.\XZ^| <^A-~CZbӶWx58: j%ZdpA6[f&%2FLZfL3khICmjZfGCA,JgĪ˶oZh?bP\?2$Zk>,R:>S;9ZZpyڇoxf!qZvG()N\[ySжZw0B# #2+Zz77In̓Mf4Z|HA0Zz8##LXZWNEiYI(nZۻeX$!Z:${zh[5qtZ"'hs q.Z+},x$Z)#lQATNZσ+5syxiuZb o$ "i]2XyZ7&zjT4LMZiX繙*`DsZt@zKRx6Z}F)d[_}Z:R#=m+Z:t["]żP[Z>8 W 6Zຘãڲwq ZLKLþJZg? ]D yAZ#|%iz[o%JaZ›o:ܞZ\S}t'*yTZxm(8V$!oDZ7.9橲qZWڭctZ(o߿5aOmnZqPaJ&hz`C#%ZZu~tYPo栳Ze0]cZgG&$/tqZ:29kM,:SZLZTi]Z7J)(rA!ɒD.RSZ}ᐝpͯtGfZGK1Ҡc0e$=Z~'xIrf wZE :O)x*[w軇MmpIA7N V[ti@:[/n[U h"2I%[ 7EZF(iʺz[!̼:de[yfcr[X[p˨r"c}[!XV<a[-,ꃶ%;zn@[ ň[tV\[$(bixM?M[,i+.T;C[5HǩF(ZO; w&/[ ِ_J@+P[kN [^I{ZF[֋!hψ~I uB[T&|OӥC[U\g8Kt#{~[ bCdCE6Fw[0Ꮱ=]xm[7䪴bV']g[ V(0\`Ϫ[=2u[S Nr8["h-6\E}_'-[ H$7 ?`L<[7Wi?tP[-:'3YFV []ŁoJS[GS/FM[C uqM3ˉ:La[՗\DcLO[N~}VA3<`u[ _E{5a\/ Ix ab\$RǏ'\*TJٷ6Cpk\,5f"6D^.\,D؝6΋\.?]8%"^˲\.n]ydwIW}޽\0ޯuUɚ-\>Ixj)MT}U\CG;|Ě\J+ze %GL9\NU}A5Q =\X@0IXϘe^X\ZWh@]\] E a} U1\_S"_!0 WC\bp(V%؋H1u\m иӐ Zx\pɄg_̒xvA D\vn2ry/\wC :`r\z~ł[ujKf_\zw`YI\|g]fw$v\|?/{^Nªm&k\|`.ֿ&bG>|6N9\1fPK?RhBb\.M>s7.s\UU 68\q ښ0NIl\~6YsWEtzS\k 2\P\o%XcZ8f(YNK\6y/@J*\·5/8TϠ{\^4=+I@y\`-FS%C\ªK-ZMEj \d)\XKFh~嵪&z\L%>z,wš\ћAN]_%]9n7]/#zYb%yv' ] א#?0<|f]gFibe7]lfV`M$C ]He|aD e!٭Y[]V[KLK?-|]E ADw?n]ZY:s ]R{̐zTf/FrG]iv`3@ɐ[]{A9eΞtuO]hBʮE(%yN ]3sp ;)ihN]tLrqE6K{\*L]bߛ&zR=ſI a]e}j'k!]6n` /$"x׫(n]LW'}'k!q]]N ZtyF(]Өwh:4]ymM]]Ḩyb^%]坴qp5"^fU0]'wla,4_I]-uĥff,}=1]rz( QG]֪଻0KY~-]pB!Hf^Tsه]IК!g\G]D[]o6"mamD3.^^qX_ӫyr^l!7+aZ^ +iq}CJ^deB(tCX[(^^n9v5E/(|^mAӐoMD^  yȡ!tܓk^!,E:Nc3c9nD<^!\ ~?)IW9m;K^*ڂ\/;1^qo^>w)NB^s-$vMs(~j@<^|FtovWOM^˂~r)LC*E^>w&dv^+t3#/m]$^+ѼTh[O/0^BC37\ ^Vl(։?^WcP!O>Eb^G?J~;dc^ \Wec9M5t^P#ZF#b^P%ǣ>%b/^T5);v>2#^ܩہvG\|^2{H09p!y^J~%~lNV^M 1V g3^'jzH ϧU^Ɋlzą=ߗ^ˇƹ}()l!6^؉j؊;)~T4z^]e~D Օ9^ kAP1 f{#_2Z^]?LCSi^Nيf1vx<_Lg6- K_ť,CE^S\F/ _5WOK5{Ī5_ :΃݌%a_ -)\ øV_ 2AMq_ mB:Q/T8PQO_ z“YQ}Oȏ_ΒuaN^^X7c_Ҥvd{qk_'y> u$d'-_)G!R"/&UrPк_*!78tV?gX_-@%`c\89_1B|~W ]+_2:o/Bu6_9VJ#B(_:R['|8;B_?/dJ"5jv_AU[ _S *%7a_Ag+z\ 0\_EQv ̜&n- 3P_M)LU0>Thæs_Txɷ'h|xI _Vh`HfKg_Vh2JlPOP._^AJ`l6YF__4ǃ#Q6t}_`ctwcO{ DÇ_aN3J _a֖W򸾹X_e1%. l@y\k__h7}@Ծ*-_n#/)[աBP_sY3|rVPuZ_{Hɀ_UZm_{y-G~BrlHb_|7)YQh F!_3`[㗆b{_!Fċ d_Ag>"˚u_nr;!-{a _2-:ݏoI _fA( ҹ`!.۔_(pqfa)Z_FrzQ$DS_͙#M'5o|;T_@ƹv2I=5_2Gé= _> _[ vn$gpԷ_o':FVb|_6QIɃ)8./3._ I@;oVEGR'_S>)IVF%+đisӴ`J5l{ @O5`L͹_o&a`R~=a"Ļ`TR1wh<dxt4v =`Tv k-`U!_ŀ%33#`Xۡ&ogXd7`\K*'ҳu?%MvRU`\B> $f`_#$,kH̅7eNk`rfPEh`|Өށ~ ;2`}FH|[:nfū8`\g^%xG`a2އӵ)W` )p(F`9JouN-Jp 2J`ODY°M7R}`@f:L"q`SkJ{Xja G?S `!l.o\`^˒W\{`, 4k&JCh`߃/!/*`f[,\c:Z;`W2K~`V6T8(. `10n ]x@5~`ƪ*|~ %`HI3](JFU"`pT1ʁSQ`] 1R{]`6O Nxx8o&`C[EU\ظZ`;)=M/5[ti+&Ay`@d܆Sd",vX`2:B6B6o:-`n 4%j+`͢T M6g7C`#PLz{XV`B%"_ GR`c4ȢmrG9JMa 93uIV],{aoȂKA(PDaf3Q3r0 8a~Fο(h֭ؓulv'aV O͕}h*ᵤa,z\l}Kbm"|a-Mlt"'V a00^tJEa61mSߧ*]vW\!Eka9 XUBQ!~aCc~k%fnĵ:aG8L()0>%oJaIR0!BaSK\+uq#;u[aTQ)Ť;9aX RG8MFu|¿aXR!VԚ]Faala6KzUPac}VR"'=Vai$/uu4*K2s(Jam=g=ƳTQ>Gh8amGo9޶B˯afau,&jWaeQHOş$y~^au"i fUkae?J= Ja㿨rˀ,#Ħ+t1a-^Q+!/YYaŸ~*ip4qaNfkd(Iwn G~afiNt`q0gCwa H1[c^X:a>?vmZ޶a.+a(I&TIa. xu@?ۺaŽRs%_%xa~梦M`,aӈ ÜʔvaN-%M!U?aB'4}en5aht)b7a-P[6@a͉MhMx8ڐaiwS/˼KI3gaXluD5zza7pnŋ/Q*sLS"a'IlbS(bnAF69$ӴbVMNtFNDE_'_b\![D2)[1%p7(bcN  ]6Fd$bdGo^%W]EbeU1Ko߆FK[bn6֍`Zbq/h[,3r?[ckhk#ebqqb-z Lbrw콛(r0X{?@!bt|\^P` v&Eʺbvz|Ќ8+_darfb{`G :j]!b OE\ӾvObߕjp4&Tv+Qb}(0av75U_IbeDE3F]˜bUMzd.ƚ, b;vjbr3wbf>UZn}cbʤ<[sub˂mҙ{ NbƷ=3hve"BթgbO!rG1֡{bȡrǣ55kb*,F/g*Dg|0bE9Ed|Q* ,Yb:?6x_'?];bf֞Yx ${R$bK+OJҤ'b~EOrs۫qb-b(0*RH3Pb]ej;n1'Zb;o ijG:\:lbt<6˦DabC0:tr⮑+ b{SfJ_1RnC7­bs/3et Aa6bL,!r8c5EXrVYzbc+ S?rPVB#cR>]`_P~ +c ?"r c 2nR@S#$ascVp * N?vcmcS%m38ecJ3 cguC [ 5cݬ#8E؏VL 5c"ɿٟF@c,_b +Gr:c,됲VxigHPc1)ٙJ[Jc1Ӛtc|^c1s OAI% ^c2V8;h82g5c2JsSg;\Bc9cuӲ|nf㍭!c;#5 c@WIqq3ת-oU[c@w\1K4w0ՍcC< "3LcRN(!6P6@n6cY|Ygehpc^Bn7Ғ8xXݏcaCYMҠ&}K EcoќES_Pbtcp>O730XM8 c}X#urFc~uIJk9DqCW c5 oPѴt,ec.!ST gvNOc ݻ;=N[cQm=savmuy@c..<:f3yc39G&RGK;hEc4J7j}/6\) c@@85 pWzNcV`6y[_Yc}f[ ~G6[ٔcVX7ry}9 c; ZA0;?.cwNNe;SP(Acqahe ޟcUř#. -~-icyʊ؈xj2*Tc^ߡYjӐmcTdͳ&cɴiDW&Ic ԡ2`L,wzc}YF%n'c>y8ApB;> 2">c_:`4"*Lcr0b,]jHcCf/Eu\"c X}J[5Acq -x[7cͶl4鉨|cژ5=yb&0tc~`K(؊֜dlc?p(imJ clkŀRcO=gt? 0=gcL?ظ;-YL ~ /e+E&?dC\?׎%OdDg7ZQæ_qdDH rM &dFf[Eܩ؝tB[dL0I'R]J5dPI -4z!bQ7dQY_CC7I9kd_*A/U1Jdb yc MCedih'i Tdti6kR{s=_Ss[ETd{ulwS3I[{ӎfdR5>`}dxÖ *rA$~uodqwfĠ1Dd|AhԄ ,@:dVDUCB^}d)8E#ݐ)d-8ɲO+1k?d d3ဆI6HCdP;bXHғwdR Sb^żdyu5‚PAQYm'dMFcW?o*ÂdƙFX8Òq SfdKg{zX$~2ivdjAsfKl{ ]dʅXQ7۷vgWdʹѵ&?(b;vdk+$u2B'd X7S$Edni?F(dat#6i gǓdS -X$B~ZYd!oD:Vjdŝ%ecJ^Z?mddd:DI=(B@ރU(-d$/ EL6 dV(D』1Iiʀdߛ̛#w~6ʚd08K,EQܒuedS||d:eA뒋U<L }5eFK$)ɡ1*e,tҔ,y>eډqᵘ9e8e#-3eFXq]T. }N7\'e;?jʏ ]$seTs]g&N.pe7evٻ"-Ke-Y^gɊՋY\r8^ NeѱrQ9DII(+^2Jeש-/TDrLe]1ɓb"–\eXUd7lx;[Reui?If!ecUFeҕZ2{~^$eOK@op&" ĠFe"361')Mf [*2 D!f3,f ׭+CkC^= ݷ Lf N FbY?l4fzJߚӏv$f^?Ӟ_o3W?f;ު$Mj/!JfEUi5I;2iR%TfEdmRaLv"vfG"bWEfcɟ] A;dډfhzu Qt 5yt-fmy}-M -~%nfze=mꞫf~ W Ej\fn~<ˇXl̉f>HԘB?bffrT[CP[."fӜ?\Fg yTf?KōkiCL eRf0;If#!V*(f"0&DEdwa f+BCдt fL;a݉S$hsd`f#16FobZl"fk S*xkbf,]+&'72Jfp'o5Nf&fŎbmf&]x\ܱJgMOf]nrrP;QAJf>;ӷmPf3 3=ZOif54.NHy<|)fŬ$?.NEUfqF݋iDv<4Jf͵7.c4>fΟLpZNwb L\f᰺ǃ[;W|4*Jf+zM\` zF5fw(qOf商%Mٶmf줫ux ʜYL fcVح7)Og"G.Ժq\ʽyjg}8 J\ v!~_3gante ~%qkgÉe;kVzڒgᘍBaj%)`6=gdXK9mo1Whgy nE-;*Fpog o:$j/#gAC%,4"TgƙlN'M9׌ he BCSBh %-.ϑK_j6#[h1Z3|8#eoPNhX~Z(ۢ%h~h >D . kh32UQaqB/=-ݔh xj=KoB7$h"޹SNdR~Zh%YZGvIʔ}h&-|-[l 1ܳ\,h&maWX-,h) !px(bCn7n`h+Ih6%|5h,/VU0pQRy5h. 9j,vs8Sh/-RrE8),}'Kh2%]zwr^nt/lSh< Ide޾㈢yeh?eXZμ }"a!hJMET:hKEG,+䟖hLi@ i4aPhL[|ԥhhMR9WKώkhZD C<Xh\BώՁ!h`0 .CJh;IS^z h⬦.!JݨG\c&ڻŇhC4 Sh>I] ^n?SMg|\H0h]-S"hh/iU)ƚ͇|iam7oUiRpXl- yi~z)f˃mDWXixfถ^7.iGYĢE@NVMimH^D҈ٽi#2xCaZ Yi2gu!Y,Oi~;JMq ?)ni) s/)Y< i/d|Zo,p/ivh< ]MIiHhS-,Ciɮ.AdfE8i2>]tF\Sލi׈NN &4:@Ti2c8/jN{Jo 3bi`z5TUL>iݿi晜U8i['I.4!L9Ki. Y&m-dLih77m*2eɇiDS.?1G`L 9i70RDgi `bDEi*WiʩS@=89T#iCa0?iWwQNA -iB3fq~&x hix=mYsIeSsaBi+rkkoVq%Ui "̉b:1{Riid~l%:dOij\`nZS*u%j-f}Ru+S|j,5~qf^Xj ."Zl*ԷG0j QL^hҧxj"ŸCO*%t{tj%uM^ GYkUjż14YL0 jG,gzjCu-,gd=;j#3s9޻j*j0!{ 2pĠj0:%+sZ'Uh]臂X_j;Á씫g0~'}kvA3 j=uA9)2B97BjA({0%@jBHٴPϵA)~^mjF łI U{CٗjO/J=vğU~-zsSjX׉p^#D[ïbdjfhR lZ"+jgZkjsvf[^njieX=M,/ױjkb:DGf>Gjx9n%+| y"jz{1FL]DY}T!j|FZ m~F-]j|ı MvQg.+j.I/#\Sly j (erGecj *RK<Ų}jP;`apl-j^+ ,tK6Yă3jmIp yʤj)Lj@Geaѻ}jp΀;XH\JajATcnb`%UcjW*]FLWS/5~jXI Y$(ɢJjO41G7g)jЇ kf| jHap~ِusj+qЈHjV|HsO j؊8U`eQj۴V^,tijߒ,%(|zjF\ᔥpc >}jڥk.ڒ6] kbAk|"%o_w0EbGPokBv_ಹ)kTpL%dgkKN <? j%kY >Ru^%Tke@`Dhۙ}kF^8h2:K{{kSlYU^LJpxkjfEjQ6k 94ъ߁]k>wgi8l8#flt33uD@ei*蓥 lDuB8l T.#6Op)O`l 5d|IUnl.2W>x8%8ls\d ٪Hl7csA}l2':#-*l `[ @wc c؀l"ƍ a5Ul#,$9 |vl+%Nz|_Ѐl.TBrQ95'l9}M?cSOCŚlC)DqTLF;8~lD9i׉HiA_EA҃BlEZ[)Sg[TflHzm[GlI ;J`GlM| TH{@?2<ÁlP&\mM@48bܚlPTS@ɰ]\<<\lTI)C[lXh- Z%yxlYu֧CE{I'(l_dɁT |~;l`?F{ҬM$lb 5[$({w SMllWrA[+lq;8~TɽluY۽ed+$lwRTV'^lzϣբ:`jylm85_G\=l;R>fkwlT,ǒ l?1/nVЦGlhl>)h.{lVؓ.&; 7c;|lFwyԭ l(Ii;w V3'cl vQ^ߺ+Sl fI&v⁉'<;QlRt;\X.4UlYr3:#lۥw{Gs?3B:lޅlk}PU/4lW屨ãʛرlT}'qFɲeNl>5Iəw!dx3lpEGNv:liaw'.seel yW8Pfjloxdpo^&/+"lM>bZgryl)QcCDz(Z5l. ,POdeFl}pZ iJп޺OwplG/pb6m~H +ԝ'mC3<AC`mn`qlM0m K|9Lfm\&@ T}fm;4 @3FMm6i@!x")dNZ8m4 HIm ,b b!m"ߪ_@ɀ~Ƨm&W]Ƣ0Eornm(yuG#k^+1Rm0O`/H-m4Qi`N-Ś{m6%~Bfcn;Tm=˺y/oImCQs;E64qXmMmFa Y1J*<mM; Ԧ%D#K#(BmU;y{A^'#.mXtrHa,6QTm]Hz ɝg/˨m_ wB55WI;#*mi/ l2ךtmq D:hcWwݨmsu]chSaX< m}^D*F)CtphmjZm9tu?q>9m;OW mc8ɓ7s bm"8-x?mBˎb#VkmLcއ'3b,'Q6mj1\DA IbGm,6S%eq_Qmv*#GjV ϥm_D/d&zWm"oK~JeDmZ#Ќ''dX2dm`P*àqmoy")Z/}Xjl}mO<@}`0ɻ5mO[(t*E7zm?U?m'OƏ zmSxrs&PzoMPmXkdE=f0Am7%u$sC_df%*iy}mM%#X%Jm,<[{wbr+c驥mbB˞,jlOimL'.GTW@J'}^mGvHwaS3T#a:m{V R^',ٿ0-Ճmayﮖ/|Ѥm;? fyvaØ]m;mC#%`Fnem)ŁoC2 0=m]O|`N{ gmnql̬<CMn7$khWstǀ`n8} ߤ ob4EC'nr;&Mn> n]pMjTn~ڐ pIn;بh$%| R6o0naIg~ B]nn/`՞_쎑[VBn15E݈3Bno9`$E^́tLn%rȸٲQ;n8*xZVELG Zn1Ld(Ц3(n7~ Rdi n'nZ~i2n *·5QѠn'WWÎnWP YB_ٗhZnJOvE.bQY Mn f B/ %Wb+0n>Q~:ןǭ2nZDQ: x̕n_#~@lgl$Vn7hYgI&ɔ"y9}n} %ǞR.M@nʤ! v*3^@n>SAB BolL5oi@eёo#sEsr鸶9o  o\zyDco {)c-DguloA FZr#o3 M&ם^5{"o,wq#vҥ=od`c>7P_lG-7o T2kPd]8*o zzK޾j`އ'o't\% #z{o-(%Ǐyjv|o1HUhhd5,-o8Db^'1 N.o:+\!֎iF o?+R}}P-4×o^_x1a˙f细-o^oy .vݾIs opG'us$NO[os8I?uLfou0w#mSRӛfoy>н!?op_Y*9}%LJ`To~, { ?:EoiW eZgZAoO/PG)oǖҸk_sJϮ惑noLzsBǑposfGp:h'!pzZ1Up;7j|h,-p;j`h1wWVp=HMO|{p?C9'~jJgsZgpJZ1g̴ }pMRՃR)f3wpNZC pQZCw4Ca$/=pR,)7_pS҂Z UpSM3(C[kX3c9pW 3ռrT7RLpkMo3}$pm gbSK. pmHoBPeOxpo5ɑ(^pu+'gK $ x˔&QApz`\/y0)OjB1p} h6tp==UzA2ppGԛ,z0]/pLH kk.3xp`pMJ=wpM\IoZ =p\- Fh6怯pgbbn<pQ-)9FphCk,B c3/(p&eC,(j(d?p\0g]XKsJ p`sN r!ap*9^̧-Kpd4(OV'Dpf2.) plӓ$pP Yi&׶bpx^4nۂ9ipSE+OTy[z.ܣp!˱&G+?pjBpѦb"MUiꁕpt µK#pyhDC 5kup.L/m঩>՛psvsy^ê7p}4< v1y-p 4A>1׏pˁ?$v{Eg,f.eaqO ;O>/-Z/q &%D"P Sq # N+j0 wJgq4 =+ziX;q16dN7odpwaqA7s9_F)bq[!Bya7I8юg0qT*p^>APoq@H!^iӬ3Rttq5@gsH8~;%q#BmֆjIGkq)w"RϖY6uLFq2:Ka60J K|~yq6=ڳuZs eq8R>tq;dh7xIQ#E,*Kq@+ G: Oz;^q@ X(A-3d2oqL !4fg6qRJ* 04ghqT(>~]Z$W{q[2aPjlr0_TD^+q\btFQ,Ex`|0q_sULi8xaeq`rȀN59W{ MqaUr:K*L:ZMqgvYВ9>.+qi9FT,\R{#Z凌qnׇF豧eHFqo׾{9^@J((qwDM」Mm9q1/O%M{""qT#\"9ÃN8q0X=F8XqEfGr4\ъ{quҽ-7efu-qPN vQnY6dPq/ m%\; eo> qMI| æ:hOuqtPR05q+0č̒ O1qprZHR)1xnq0WE]?nt1q)UN?ܩR Vq񿡐VPqАɝW5U9iqN+jKe7:mv᯴qO@sG2qa'/BD<4OqV%z@T6 tqw*75#:#qI23?R4ñ=sEq5Þ݀gA(qѺ7ƽ$.i8"qG0eJd-tVJ3q|OkW&AUqزC~0?rqI̊W*a*P|H)zqLq4T{6qdÜ'*pQb91 3t]yvVZrnnYD0sRx4drxR OvlEjr7o`tE;{:r)pN}8o7r0 YbŐc?_Gr6^²djJ܋Yq{r7R ^i 1c6Zr:r{8M%jr;ILo)"wpmrDo^#Wg Ŵ>hrOI%=}S iTZrVm[379ƱtͿr[^5`V`ir\ 6rr*#@lrb+(A~!ia(rde{C-z"Frg&xzk!Rqyri*L<ɘvrk յ/Ui6/orp^gAQs M7ruInQ<7J4r+zon9oUsrn &Ufr*`!ID䀯rW&T&r#bWM frÑ$e-E>*ޔۃ~r&VX g rR1F1-_'O%Edr(c.{= V^rݞR̂P@RUr]>G_~-,rV"MG apgMlr~5o'ocZx@hMU_r;9Un#eFCrJ|U8y#3n)qnr*L ԛZ#W5IՇ r̓i z\& rҬspd HBrn:ZvD9 (Xr33 a&0AA~&RrΌţrUT;nr>2,oWr T K9 N\r>sy2eyBss,gNW"Ns,FDd, |ccms,r寔S4`tQSLˢs.(c޹^s/X}\s3qPq45;s4_Xه&cs;R{ `E1ߎhL8s>s"U9v K#STsq,֑h9fsTV4_2s.b;fUsMmF+ ޥs%#ZUכPLt9eshy]=q లsu3Fi8-& OJosV%,A@үsD:s 1pqT#sL`IgsB S3 H"PXpsxA&\ +(s0F YUEt ;}QqR5-t Q{9nr87"]tki BHa|FfxtKDBg|SToMvܾt%Nf^R(KS4٨akVt|ɴ-䫍!Ut~6U6Os"t\띔މn|xhtk|'O)擺q̡tp~WPaR4Umt iѝ2t͌lņzY`^|t@@ηS@ v t4"czSŷv 4q?gtQ+hZJUptByj}RRRWt3!N]8tŶܚBE tpre(Us@&tZBYcKԘ6ptwJG/=t`<;XK4btby$0ge1.t)Gyt)%ctܿwi&H:a-b[xt [Seqt/6Ȱjh}@YtAoטa&lb8JtrfC8hne7(E n=}t6 ;:ݱW)_t2cQcD$Pbt@\V4ˤetgƢnGz`86tyb(O|*U:f*tX}9Lgtf!4LM \u\0xlRu iFDlf1a u ]N̫h} .hu 3g6Jy ;npu M8["1Z9fum9IuH3)շtN!u Ԏ9 lv`n,&uڵx u!3T8>˓Flu(ck\& mu);EҨ2i7p=u){aǡ|BQ]u.fP~a^u٪u/M|щJ,=7bu27Zƹ& Os$ĩqu4wӋֺtu4,y۩X_&_psNM^uGIy)Y&q$3鞸"uLs:X\b] duSSϚdGXg5,XuV/!+KUeMucH0} K;0"iui ue(Fujel9.ق8rTPunbMZHR8-Ջ*)uo)JQC4.upĐJ$i˝)V7uscUPu"u \Lݓv uS]ccBAD4$uf3lWrڠtZHu6m+8{F ~0Ev NR X_Ef amvx)pmJbn;ov ޏ6$ vnF =#q*Ev!k .Q`{lIm/vb$oI6i|v҄ze)3ؽFKv:$qIE 'xF/v?7\v4`R Qv6*=Sfv7`ܵQleV.v=;^yAC{ ?m0bv>˱fv6+xvv?cnWv?9k'J¬^!vCw.p9+vvCP4 Y̘֚˧XvF,Pc֝]O1u]?vMpBqQQpUҕvN|.j)lvRJdG4i `݅%vV d!O{נ\^avW^A"KU7]<'"v]&E4}4(n9xv^fB 6?[C(FvdLDb$XoR?`qvda]mۑrveR9CZQ&mʓvj?N'AE4Fvk;;"+&=6}vpÞZ[?o*vp̮7W*vz`cO @)V!.Bv/pV4;ONixv!|KVue{i%KRvWy1g;b gv.oKAfi-vefkYoֲtvۡޭkZz t vy{ +z3Gv` ;,6v|M EtU˓v\o/X9vO-)~ՑvU e5!$*v]Mٽ+"vǂ\dg23qzvp, ?&&WXvϕ~] P!Mꝏv7*5O7i_ s?v 7RH+s'x QB7*;vFArup `+DivqҡeqBb*uvy n4&Mv7Iw*vW.bG [lwɫN_k؜{95`w( d1kC٫wB|s#|wq&[5 Ѡʎ9w jf"tě7w*QPK*!` Hw &ڑ~)iUb=KmwAg BTUG}Fw˘66!S`lw&huro'6Vw\AYLLxҦccw2tx!ǘ^ :\rwϵ2u4'MZw%g&: <_w&e 7&$uw,s, 凌; M7w4T*)rɣ.Uw4׆Azܳpy\6"w5ml.L@O)w;Ǎe&s5lB@Lw;吆~X̿N"c3wveswqw6B Bl-cw-ba]w/gw6B󊾮~ X1 w w3{2䀔|s% w0Z:_rVt w/}RJum <`Uw- %#D5p w׈UzbwҖ$or|yw$e^ő~USDLw>݄yKk+8SpwA_q72#3=?>wNf$VSwo!^=j.w > rhZ*9weWBrn>ǒy]w(^0{hEPgww1!y0 }nwѰ%>dwvTa<8{ ͦ|)bw;;P2PlRDJ AwPO!cu` ,I_jXwO vp!?z'wli I/xvώC{&x wl99[ ax "[W4.$si?xHJ]D,飍3{LxJ棆Zm XFئ](xKrl{Py^xO Im?:-%jf>xR=]!R*,zLxR*]S9pyxS:[ݺ_ M۱d8xSWmlml5xTGr)'I&|gxUk/u"x[b ı0o̱8$=$xas̶ /55J;7@xcm`raX(Ǡxp^ʇhc4xqUl+ +rw32?{xzg=PzFvRx D,.zJ x]mi>Mjx`TYmCڏXRRۼ|x:$V_?vC&x8&CRpֻ 4oxaƣR:El^l2lxkR76tQwГnyWx{xJ0[Sx:;Ώ?CrrxI1,xRv`F%i{xf$õcr'_zLx?!Uv"K> ,,v xdl"_j ਻xȑOŧ׸ox$}r[-:8(#,xKF,.~t x+|D=kZxfB: z2xۆ/Ӆ\%isx=vn> iXx*&`=[_ybIx_=2%k!\xWsSݡUix4|a>]Jx[ #\CyR2ҥ`gLy(z&}dX -F yh蜶ҵ5Rsyw w`?Nny P(Dmr|dXŒ|=y H_{G=-]Py9B_d#h)yu4 lwF˻ςy Yoy3CW㡌$yx6v?p=GX/AyĿ e=ykmy k Kj?*Ty \ wyP`6y.T?eTdPx`|Iy/ $֊l[l9y3ϾbT8xóy5qFM?4$UYy6V}7:=;1U-{yq:|Pɮ6nyt޷Đ}9~ yz:všiI @y$YضTsU3'ydgkNنJ!y!&#yl(!f]y5ljq%Q߽yJW2 BDҀy%VF%T|y&i扢Ԫ/"#y7WABƁy?u)$O@G( y`ƶ`1 APyJ.vr"%y\[pzs.[yLHV?h:Wmy´Yl[ny'c]7Pel-qeymC+~-vy[c9ͭ%5y=nf6#$yQa j%v\ y 7[ z3y_UyV™7h6ހr.yF=nL.Zn_Byt4y):y Y8y d6rXi-yG+KܶO:yXxTm.vMyҫجE若aSys>&*%oŅ(-y#<5;LKIzpwJV&4DZ3z:@S`ڹяz o7_rSOЌDz 捭*MJ&tz 6f,_\߉UBGLQz=LlV!t{L\kzSz`_wB,Nzp‚} HzʆCf Zfs𼹓bzHq¨dzq5 NGCz| c^2zG>lX'`)\z '3XvzV6nz$@uz("J{՜Iz-F[?M!U|,/JX z-@ &J6aAz.L%SE]+/oz4I>3Lnx]_Pz6r]bE[zE<;5\fzJ{!6t2+JzJV Ժ<6zK>ӊs!ɴr.zT^;jVw)}i/%NUz\JUV<[[ 3hz] j;e@Fz`6cq1Ɇ0bGz`F˫kDOň>ziMx͂Zp$m'ydzpB a?Hq &dzs`Ox":CU;TEzsЬ^IZQzN݃k2Wkz2Ba&1_ :!VzT\\f9Grz58C^׿7uz 7h)Z;'NV҅zn~D_HDWz z(m/$>ĴFztZf.zQkzUQBr]zL$W30hh!zz+ Ga~[%vI|z NQ2zp[(9&Yܓ-zPbsWXp#Jz-q!6̬'_znP@6J󡄏~2zlo5z…yu׍Kz8a].*G,Jbbz{#zxO^?_!wv{'~W^LRI5{/tezC"yf{4'FM*`O/iV#{4BZ Wؑci*Y {5lDKEEf{7 r Rn;{(#~7 ,=rf["{氿*E/Tz{-{Ь*tk-;q{!oWxfNvqh{g#BoGp[{ Q"V`0{io"\`O{9Un{FKsD{L' 8 :ϡ]{no$$pSU {+ڢ8Wms{ #b&^QF{tF JD΃{{PֆʹBD{9]?(|8"{. gw~A[1%-{Yɲb,` c8.{7LMwƲnm<^j{U챏+3Cw+ 8M{AV/קϣ8g v{A_m!\oB'D{J=]BYA*1|Tu1b b| xpw%v&#a$4| /w!>dqU ެ|T*8vcj3ƨ|xq+`˞#Yj@|`('_JsG| 8l$2b.|R!G\MԨ%w|vT ch%& H{ |Qgbޑ ]Y_|F!YrNV#~|[vΦ[WUv|_a<@O|!2+J!p1<|'ތ+_(C|*+/Ub>԰PbxV|,D>ڐrJʇ|/!,dŏ?_|/Y[?K>5|0`ޗtJ˓roia|3N3a-zN/Oa|3$ɘBR>5#vh|4Pc3r|=I?'f`|=?RJ*ЬUכ|?&k͂Z~_ |C)4S$Q[j|E!kdm}(`S^f|HuKw#Hn|Ox]j54iz|RXpLΠ e ܦ얩l|-v%6n|/-kw`v6|s;!ΤȆ|T ;6u{|ZȶBpG|u['u&8|, <| 3@|ܺ4#|wn]`AP;m|qTt_ZKN2|X".d)תm|^u [ț@}!_~h*:@H}&wL,fPEfNO} 8CtV~3b 8} K/7@yc.,X} AyIFE \Wo} pL4AC Fќ}9.2}sn}YG&g-/(J}!mWӇK¿t}"É.sԅ+Z}$Z Eu$V7`!VD}%E\n(]3Rug~}1:v6uՇE6byuZ}2a曐}6`A}51t0B@&k$}5DBz}<{AMY+}=8?cg"T}A"(<3Ezt`)EH}!37#ȏW&7 x} ?]Mb$Y}ASq0ʂ)/D}PW*2j~3lqQ}_!Nة۬x|}MrlM}B <ӫZp6}Z <c6Z}0&8ʒAGoK}~E&dzb?"}>dw3tuqPvX7}.y@p-eF},ovg-z)ڀ}q,}r^g}›Ȁ2+`}wo,c}č`!RGj݁7VIF} t7qnKJdL}4\n]^Q[}"q7)l}p\vҀ6~}ҁpi< : uE}(>}ւszRt `?u }f`PGz0ArUS}nآr'uĊ} v!>vұ=n}ddJkc w}es+oP[}^7R:c?}?q2+.DWr8}?!oPVln0c}7Q`m&ʰF}7[&b( m#*},Ў~{ڑ }x %3=45~_:8$N~M|2FG2ND~ Wήmvw~7Yq0cȩA!^KY {~s'햽 p~1>(VpLA}~  ]?n0N ~7\ l$XZ_f84 ~!ZcЬK(i`@N~'jtż[?:հ,$~2{AZ|ؚT6t~4/p[R>މ~=5[T'j 磿~AI鵌nA~UgR. DHD 'F+ӖO=δmPgb  ax2hQ 6PĴj5!z5!NFĢg,wbx7~)oLq -"b&TY>8WேZ-%M )o l~u0 xj'C5(5_W5^vaxc+ e,6ΔsBn&tɕAFQYfm=S;( '[k$`7 x#JDPdRA엪d@vGͽ0}̾ǐٕ'y $G0*AQHaWP-v9cTn">XeKN<NahP o&w+v'et\\VJg"z$ rS!UMl_ uLj~ZxgX$.'RzuEE/bD< 1/#?/Y[d=SúkEZ)Ήu$n9I$+"&(gf Iˉ=qj` #ѷ _eՑ;:'?\5ٷ~~N.`Ϝ[? h ǀD@zy-"8OG Mxc~ ɢ 9m 7XI*ߢ#7"ASyw{ :a(TXU3M?F~^ E/$@V)J1_2>wbJ}#2`w󀀋[ZuIÁw=Wc:рLo_CPS7E;€\.3*peJ\GtGbPr?πe|/97CȞ M[12ǐפw>KrlَdPh81 B?Uf'(ˢ$BK$#!}v<Ðt佀$C[=[,Vjo< ^SF@XQЫGWtz4hAF#ƄzjlvA؍˶S7QP(ԤVB|_IȁP0W*~1?Y,>עa[_51pwb_0"~wègF7bG(p9 zYч恁bڮC{6gmc=joOs=[ndLOྱp5y{{`f}ZbQb^@:0ciE1ႛWEn@o@p64NXbtK,Yk&Yfk}nySyT*|RѸ-|6#pճ,l~RK篒9C`Km  O`MչaQ#7\ ^K.hsy<+IF.Y{|ihR$;TkCڟсm NUab]Y%ˁb&1!tJ\yCa*3I@ߍ%ہynfs`PPDpցʒ3 59&gh=;!!C}+cô2o MUaS9tFHނ"dz2~c#Ɓ)ݱrpJy iI@qwnşTw(9d"  , .aXfx*d]L*ŕL߽4!J _IfMj2hF::怲/c@Zc0{́⭹ъnePtڝNKCk:=C*O%WYPDo+v{W|LAP}q c+K]v7tԸ'Xkk4ƀY2dBia>e/ veWw[hdDˡ:Ú>i ߎ\|C5j@&#ۂ/$S_{jSCK%.YZK`)ܔ,f63|ȩ4r{u:J>d̊ u lL{Ǟ&2\?]|g44d,F%|11(ÒB&V R-DJntW#A. YQƍeُYNqC,.B w10 ؂0hpA2ʭ5Uւ2X=&)RFWt r[}G7~ފӬ ՂBn5ݪ=bhY ?ۿPְ6` 5ǸhR5_9W|8$ySK)7I4,VȘFUE>twQۂXĈN0YVr\7i30>]PFEi&_{dZO^/{Ž 3r_c&UI֒:@cuU-)d]DwvJ[Pe|Ix *MbcgnR)k egVCN=Yto1CyR88Sqb(SҋrU7̂v~ uzI+IG),‚w-xgHS~5|6qЎl]7(jwWR]V6] neJ[qe*sH.Y+֚ڂP2gR@wpc΋߂aˠaSl‚> "&3o*APXB9+뒱^K%:zR4.y9qX'_u舂AKۊ!Md ƒcp )T1KArBF1~ULϑ/)!OwGBނ==\Ryvɫ: a$ŧ0Hvp^T8<GRωsH F|g(ł?ۇ:[ی㲪JD Uenmy1m Ǘ_>"QVڕ$bJPȿ&7⊂f w &udEiO-/&G!?6U5VVآJ19,σךlI1YF6J,}FX9SDp{a2Vp&G &H#uaP $YfFuJ^HG$ݷS=_l8*'/4 lM}(i){Hu-%- @7+TD>3"%6Ѓ0EtfڰX p9UK2=lIOb3i|5vkUa34VxJnFeNVi5^ZD4))}4)X6o`=.oX^ȃe|7&U Yσk G\uԆve>Ž 1k?67wQHhՙ ,{)'Q(咪ĺ{O9áw13p $hs(ԭY ` ܠ廹q]Eܤ"t{bTnu8ỹS Drss Ntb;[.BRIFmӄ$~CC_ /)lV6m0+8S/PX;OzR=>΄)ŻoԷq $[!T-āȴI޳_:9Jfˆɉ%=]*LrwWQN2*BZE&%4y /ivTf#un̳seܜ'=!FzwΘX cy6eZ:ԄIa~X u; ޹qB7ИT>T+U; D>X0աڛdw՘G.!Q1rjƮٷoS,#:{u(٨)fR Q<8 鸱4M^4I$/>Sme"8a!Dr< :獶K 9(&Ne~R%=ɄR~믲 thfIJ?=𧋠N^J[Nd:p^GhwSuG&t%LdtuٕN_'8޳' @Gr‰^5K)8! q;>6A;QgUe#5\mF^}{LeOVp ꢣIϯBZ <õۨ±R/(qx[Df6L .օR . EU`%VASč3a'k_8n[/m):Ef^S)㮜d৅_;" vxw bgP+K5E-c57D}-E*hvcA2ŕטѰdҳ"Qdᕙ"(Q 6'Ohh{8Cv""rIjq Df[zV#vԅsӋ0Xukq{tD>||m9>v1vq`` ~ˬ+wǟX8ݝ1wQ(D#whEvy絨ĥ*{蔽8kJ_^dt.)QKcfFqgZ\&{drȒ*Bk!teD wǾx8'7ހj?AİoGQd;9Oc 򕅞%~BŖyy;ٙ5tþĶ1 ՅYp[k?[^Lh2ʕ}d%ظRЮ^t:;shs?A; 4ZYJ}M[؅M ':n jc *:Z+>qFE}1w, XGg"o4䖅3{v&L4$ik!6ʆP3nXȣKP2Tf S"Ʉ 5W1Ņ̮y׫zJ۾ Zx{gRM(iˀSTwr)"&_KMz],"Ze=?Y5_cG*Kl͍QݴD`\+ /zvE(0scllv6|gECd˫[뵲/3}JE"APq':~D7:<,^&e`;`V{M"̙R{i`Wm2LU\Zw!/S[5Ivx4C;|Xb*C>5P~V~H qw :`ooek5WBG]t5.=X |LNVBж`֟_-#_whwZtP͆S\!H9ӱT|(1X(`hG톌?9\$M ~fP󔐿q؆knҧ,2\6u )Ix.;#'/hƋ?,V:' 릆=cwmUG[uȲ`>}chm>q aJ+s톨'&d;Fz!ua;0GinY95~?6 .1T6^BQ B~fl3Coq/V$p~1<]Xڴb&tT1 Pi3I^T껆_ƃ@AB1!50#>,A1 -7>B`N6cppA? .-yw @Qc~&:{=nuPgcI.Mu#[mۥ=H|EHڟv<74L =@ŇZ|ߛ%Ԋ1Ƕ}]l3Xpb&>K'Eڇ s*PW2/6_- H^~ޕHspu]30^=4j:y tsA' ghP( {.v-*N/APw 8LJ0%ϊYvveoφ/.`\0kl޷k?|\6lgl6<*ïrͲ,FWkDʟJqΐ>E y->^R[I\J_g]SxnF;c  B x6 gJF<䛨mžٞ]GE2k%oJ2sswͷ}v&odF_?\:awpq9w|>0+8O}v/TJ k?)"xn,'f?%OϬz\<$068&j{qZ`ʰX^k+{4fV`qxTۋfN73u"z ʾ7J݀WfY,~>bI6|~?nq뀟QRK*옙2pM1Ti{; vaˇq͢VMZd5]􇦓K&: ,"F燧F ҽ7ގR4>WWW\U8j&M}>"'ڭ flB턇S,b+8'؇'CF>9#0ſL7\YJ*v%Ǣ<wo$Tz/)?KAT*<4F-ۏcFYѕ\G ڇҤ97$p|L؁ʟA8Fj>^c.99n!#!v< +D?pzzPFB 5HOpO-Yw|H1r}&搖BXp!9YCfky(d_!F)~}V/tM_@  S[~b/lJo#֛k0Ğ"("܈*P6i  +q)7DzKhS?̟6I1!Yt:L8,Ϙ1tXy,ø329}OB8Y0>6lv?>TDt7Ԣ[B:\8E:A&-َ߮0G0a?Կ&P^@wwMSv܈~ۚk :8k0'F?,6_KחdԷb]sü2ycʚڗvm2 [dX}'WjW@wICC"@|4k,'eKOy98lTx_Ť:ck!!~W٣V?)e∡r ~wf3%EMqlP!ud\~P'ʊj7)7Q06/|9 ҢWBad DU*LotS]9KpK}5B5TtA//s`3,9/AG?} AKٮ0 EHƺn t  h8)cL) -@"RTV7OȃԈ.㨆BeR_6RQQzsf^ VF ~ kv Z!@ˠt0cm%bOAG7C~gy)R2PY=ik-*ë@؉Z(85p a~N*;sv(} BSスʉ#9.1;_m9-ZޡC$ RZTq~:u$= a+ YA(N>p@?/q!n<jr4B:A`҂s.m53R?]1La"L 8o@b4<:2Qԉ9u3XՒmg8n;<ԪxZ7d,:=Q8KNY#on6 scïHu VKǭb{Mi0:FA?RAMc ڪ;H~9U?5jX"fƑ'=_i tJX]Yrn1 H 6Hz_ j](щfb"H`>g)z+W@n yk'7r\@/vp= As!s_*V٫^^M4S| r萫b4418R~̛S_j9u"M=;g;G9ԗKG""bF-3UVhu XsGW)$+Vv򉑅ס =ڷ̟=W7y7sx\dBJ9O*ʁsL`~"v`m1e7#܃,[eF](T9ތe89쉟^ɟ}'؋⢡扣,薷7Tb&\f-M4z ]I+@Pƕ5t ~:E'ƶxI=24C>U~o6rW{=n/9QRsE5Y`q3seVv 0RW? {(ءS;-p/qe@9}4SSzMѵ8s'"i[ TVм}:Ep>D &RM)ѿۻz]'Nb! au2׮OűW9.ȼƑLyR Ae" $$ h6!>rm Çmkq+!x8+2k24zpط%"Sprǔcf Emlb+ nhZQbAg! 65)8mgE(z\}+WVFv˧Zi0RdKj^1TRqQph]a+8",@r!ci#Hxw]l/X)1Rx9oB'sQ*X4e-?&$ p9?w=)obqӁwƴᄇnA)&5тkH{c1vCmQҰ015/[O&~bgŊ8 EĤ9@:qKr)4y9f;jS\?ny` :%{$֡ߒ [Kz!@AjIトVLZ$dt AO4qiNGT>Ht\OVCnP?,[Z]@QN” .d#r ^;2e'g_(s6n*lr+CmXV_\hؚM޼_ZA̝۷pu xdcds~+3^\<eАKʒqKMms{-W ^cul0-$](}(RFu<-x7SY>œ:7.b.S sz ؎!uß^^K͹3u)#P 銘p9p*[, FM`:[uxg-|~8$kw%,Xm6I/ݖ'` 9(xei. 2ȃagcKՊמ;&U XFЫn3b= ޓ|{Eي. i6 <4rn45yvy9)FНصَVUވ)H6[05BN==S͟h,_;euۺ}25V`mj>>E?j+F,c|)f i J3 棕 f?+y oLbEE#%E- Xr9M|#4*E^3c-3 Ja7%pW̓şM=Q$\:DՑZWlYJq/Pw'd< {UOyD ~xߋv~ {7Mm3novjv I #!E )=~J&iPC AGɋ*\VkZ4pV{=/Q{i7&ޔƎl`E;L.LYP_\.v=^& Q*͋B0nS!GZkE뛺tzKhۄBlE*l'e2;S=מ.OnWn(XYFXq ^q2щPZLukA c$ZfS&co\قS[q2|h̋[ӌ=wI&`V[f[{q!]4[aHq;}_L Qo!"cVJ`q~MXC7nыb|(И~50݋i FnkOTmQZ'$X $΋qZxO"ˋ}vֻ6;JmQMvC`e4ĈnnP5w;yOQcsd;:o0ڜ]AvNjEdEeq ڋ4wx"2TAvDI-4XQ Ԇ@R)=|ѰxXK53uc [CċO$5&ءc1ΔI杖䆰\Av0E#/&76AQ B-oNfArznirF؃F;+|DIgވZxlAD?SI3t6MѾcV=[m] 3wqZG7bRˍgp n) LȰ#Y\A4 ђ'DiKT_׭Q|z $ 9ɴ8?< |? R}N -L# 3vXzU*e^5.i،1_1\٣4" x>xOd#FcA_o0.%\^W. {Lw &"+cACtn '{I3/~o\ 8.@[q~rX=/jdHƚ\Ba>a4tZCM]&iNE͌C%5sH E=K]~%c_CnW# (7/RrW^¤8AlmZ/£q,ғm\"LHq:j94gM#魟Y{eAjlVbz_4C{y/뮇B͇.7z|*} ȭP}f0=+}u$U& -kĹuV!/"V d[OS SΌb'>lQSa͒yZj#LތSVoZ|]|Nz[" ȥ.󌣏 8LͤʌP]#&نW` @]#.@t)8yt錫*yDZ#CwsG-;Ej댸",9l =!M7}UFHl}{QO|'[liEk!`iy9H6T^KWĖik wtEu~3n ︒v0\RDqTaD %+דjJ2 o'=3k:Nwvdz$3 ?Ϯ%:7R\zRgCq%#+򍃑⮣Xx+"HIq6ÏKeD7*k78M_[#y4Jq8ev8Roj΍I #a]{ꍔ3+cv Hˍ-L=huΑ^Ek-SƊYϱok'7klQ> pe5IʜqE %EsK 3KhNH~X&<0)ګ+Q1PUX ƞk!yze|y[JQE+Ŕ1qApcp.uA7cl{LčX`FU$V@эvqQ) ǴA\w{fX}ϐD`I*ېV-vwÍعy=uB  $yrBygDfhFvYƠKWiÍ۫ya1:0ާF{PТrZoGMe &?qުiuѶ8CaxA5!A$o甇%)'McH %[A#I(OlYb, pҧA !sH,@~ZMwO5LثA pK!^XP!Ø#X''8X6)t$U/\)cDΎ/Bl=82;<9Oɿuǎ99Ʊ ܛZ3su{):+E@D_mAxA,T^&u &E4Qιx!LWF;ϫIEHF-d*3yyqIIʠqљYZ1غIS͙/LL"[3ώQӹy9KMBRBLHDm)"ij܎UG<ӢXַIUҡgG[M+H[^!Raa[8.a.\7~_iDp=,Fi&LF䭀A_k*4i2AgZȎjh"hATƅjJÈ(.ͳìv5]ri-'A`(z[\A? ~q/>W~E|%.'ޜ2P&ΉAy D_w![+ID^ 5:rގ\OЏ?|ꤎwj\t*2M"Rx(/ Ъ-:WR;0/K,б}uȿ p}Jf,R _Cc~`rRG:o B'Ʈ[=dpsdW7볼]{noa-jҾI` CxmY.ĂjOvǠLfL !FR ہ WB5̎34H,ߋt}+5(>jbJIW_ &<VΣv:+WMhZ6 \>.r6.p?$JurHZ) ֜/E‰M|J]c4fYK#iwpNJOPT7z]"O`Kd.~2Qkƅ4; /-ng@OG(?^} "*S!N.<shJ(VBߚ_q⸃*qp)wNK e++T"gWyved|1?2q#4яbSWC a-UTue"Bj:A DlpHBZA"rmMlmr6m|> 7@mӏz׿VݶuMU'D~iGs}{2(q*mEuO1dLJ5.Rw*iŭ$`\ 1eyWr'DqK J#ΗzYÏK@O6UA$(.lA\y!珣 \7ϭXBr:k/`'xnCpQBLټZϋ$ՆGo^gp0+ţl9$l|x8ט 1s-RKuFemq,IKH.+[; Sg.,tL ڮGлQvꓦ3p}mk@\4+Q:G ?M>8KY&lT?Bzf!h L! xt:?Fu-<гMֳg#B'[jލЖW*.h+n5#?#WS"g$<+O xm 6;b_PfD`c"bR";`RSr!4]ɏ L;9EoC\r1]ď] dB 7dhgy䪌vq㿏1zh3q t-pz!7>~?{B`{mW%lG(8 0jilF_HpX0(%[>1Nc@-h3f1ՐOaϛaJ0&ch(YV{P}`ŕ+tʵ=U[SO 21?X"҃`r\#hX3hgjTZ.ҏViөO=O[D)kVBX0: k[r_b6'^qvg)θbogo ւ֢0[>#R jҝ6B4飐qiW\% -ʋ 5}ooĶ?$(.z+EZah,i\a}_ݘ,) :ٹ~}cѧbЀSiR0+W؃CyKTm_FА&T_UZ5t<  oK7X w?/2 KoPuy񦐭^4 V,kxX>~}r_zmh~v a}p \M\6L\ND'"bʂ:H}W67+LwWM^'B.[tȟ )}:]|QXLΘz/܍huY8mՒ/A-I/ 0.S:mT37Lo տC.F"2Nn{@׸嫐:h5j涕. 56ܐ!q' ,`int*G"ʆhq ?;'8G"Lg*9vX>C*7;Np&b|qTJpǹa41)enPsE+C] %!/ .X~fhG6/_ N ~Ζ%?=‘%3f1]&I(tzp &<3  Zz߁&bn(sCjq*aɱ͑2J^'Gvsh*HE`aT" Lt:L)GIoLbp/':KH%XyaI5M㩴p8S˵O hR8V~7`Čqi][^TX $K\]cֵ.9!@} QjC0:5E#'B,[wn\XO;BoA:1\9&N,;q u =4)$ArБr5ץU24@y_pJM Y+MJi@T >$@Ĩpig=WytV:/#GC#rU)?dN8]>,3 0mIkMqZB~X8X96UÀ{ڑ].a Ҿ*-xh 쿋 ψ ݾXG* Α.-e%qcU7fO.WZjZ\%贑H9&HMD#ScrDd2^vq)@JS&ZP,ЌwKdԺ4"ܡb`+h4CXUonD [_ 4Ԥ#DŬEq{jTiy5 Trca̟[Q8F9Ά?x?X oO PH-Q-0T %2絉'`mJgؘiP ܮiь:hb$"̝rCiTG ݟ>M/=XhbTA;M{Z]L ! ^(9Ehc(|tP4b^i 6sD8}<@hR-6سwˑ/9RJK1Fv@xrDWD1OzM,2  `?8 + ,BbuNOPJuCOo #a '"<m,Jf3<}0|iSwjw%լA3s~鏵"GجrW|{В$~l>_j`}K{Ӓ'6#bj"$IqAڒ,ҕ?Wd,r-i.F (36 ɧ.S0BE/ 7>, 22<@f5UC4`7eIzՠ:@07 <{`hb@wF` H{X#baܭĒJv~2pq5K ][,zѫ*̑ZNًI)*xQO%/4Eзإg.PU|pt[P$BR*޴IGiӫ@ZAU[LtuSc+ǒWQXS)ƲZ2W\@'Bs|Wsin.ag?T9}X_xc#ԹT쒀 {A%.l"X8/}U$ѳG 3ZFns oFkOkz=’\%8sKTښTHYJWШԓE<7!J :b;z?ӥE$"Wjfڒt>eYȗ;*(oHw;gK[=Wx͒az!`@o{Gr4x\HԘ_&>Iᒩ=S0V ppx]/٤BN>X:=IaXtP`HȩZ_`Ǔb fQTܖ꒾?3xU)T2s&\zBLި}>XOTم.8ukGsڑ+JBn좍@!bo ڢa z1-o_43QB);,rP&Y ;霓1ljQW+`f_>pRSħGR4' =ߘz'0XE%ʓo4aLN\Y8EBU.q+3~eIox~ӓ9 6e*t@Ʀo{=viY!!\kVG=X\ ?ȅW ד rc5] ޣn&Eg%e^_לCS;**=,Od|"q.~'_ &J3H27*mc|4-wsطv7)'6{"Zynl{~3R655n[DU98h -ۋPd/d96黓DҦǫZ;5\MUc=@ZgIĊU 3A Bv)G;EBiCD"D+} qG“EMhW}#FaQ/EB;vChn5,S^+8=Շ1C}BhQOGy _ڊd.S <* 0*dq4|by8S;SEU>ByxL+$%z۾-Ug?i>#zahKJUFg.@(`)Va@羔+،_^ '6U,.&y,sC^a:2h26tFs!"3AC{ ƁSDTn~X1MӯLEGGZJ#ǶqHJ55ģ}p Oĕun6TغT7-o%YNQ˙T^3L "m{NNfV*%XGJWR朜0zŔ[nP6$F=`*Cw `$K`+TR8KkQk&; Ƙm߹kh%o<pm+?mwAh*otb{mYy̍#컩vs{Ԃה@\T*o+q#khZȹI(2x+eKzkzOFob`3 dܵ/˿~d*PIZ$ۍ@w|}p [k}$ `c SZ258;be$C`L:ŎmŬA, A>2voS `?žzAn(b\,JY. 5kW^x*=Tn8M#__f{lq,1c(䜀H?P6=8rVlZ)uQ ᄤ$ڣu k9SݖU%?&2sqѕп/Md\&wRܹ)~}EWJe-]3J34 3MX~v kT#~81 M7 :<0#Fl=ѫg̉Duʽ> ]!V gp9Zվ9riҥj+u7=ԕs @ԵnЧ5 ^Itqk~~ƃgffu,n:gB“^^ƕvGBut6?yy--eOK=Oq<. K _%Aڔʻkq⳸8ίÕCZlR# H/e5H4[ \=z͘훕6m`pgۅZF %ؕ7PZχH-~h D> erA)P;y+MkqBVUZj=u5,zlb]ԬJ+z02=CִK$֦4g[@vY~[тMc<,ѫ ׹{ %4r:~盞c`]Jo$UOM[Ǖ) | >;;Lfz|;ˇxjPGssԠ#)Bw4!Е3-Mm\:\>ecy_;+-ơ^aKG۔ȕ=&~.eN2q;YT#]"/ף&WʾBj8nA+w_j,|L,FjnD~\jyl`lF|B<yjYCqx&4 KEZ)ۖm+ TJWNP6^ïpW =y-$x1x= 0>q02ĿEcdti*hu ݣR:wl}0S.Q1{B'Y8+"ږ~yMpHh1lɖcܢ1!>oPЌ2%?A#Ѯ&Q6LGn閉\OTObbfkމ#VFl98準y$yJ:m :^dB]L. iN03^Y_?|Q S{w톍 HZ:~3@Sی%&pbtfWFh|)t+ܥaԗʓe&+p0N c%[4<5N=TBee Y1Ŗݝg\<:f$eUUG )Ƒ9lEeWFK|a4Dj/!0qҫ6yB=eOGoXR=Y O(<36ٴxtk)UNF}o݂y'繑j@h+o;_!8!*ê.v(p[&)G81];_bG$e"Q˘ݐ_&)v [ny u;c7FY6 _nP?s` ڡq? ]oJ/#g8>"?אCEXc:27+mAU:"&Ro4xuį֗ .1a^ׁVVG3 *=I.E*S0% N|t~ ⳋƛNM歹}'W;VkDX^UPmҳX^j~rl.h^RmuQv"%vr6(^!&.9PL d6:O ,~2*]iJr-Vrb(/@*{I7 ,ї/Vƍeӛ-d4.>.xhrgzҗ|axKBkS*JrX/ 4=kYKmJK gtyRϾ?L:My"S+F5l0@8ExR%S/|ߴKo̗Un/+j?/bCZ|%",?MieQuA Vgd gkc^A(T@?@\ėu_dwJ>/ {""}GGjykn-خ<(ߑo2>?po>V@Q< IFmn6Ffp`$|@YɖZ'la"@-͍헔/6Px^~$b#,#;ƓO +0]gz![ {P[0.&Lh#9r+EKE4r8SFÐeW1wྰkϗW,X{s+aPSΟxGc~I&ȢLas \b}3%ߔ=|Yr䆤U`ûC'UУBe{@J pFҨ.|'IEQ~y"%MW:ƖL,f8$YE!7)û"/Ș"o<<}jw5$Wn9.fR`bfz3{ᄔZH4*ci47U`H>kfK6Vf2RH՘8ߓceT"Why9HuwA!(*J))~VNN]@]Vdy-n=BG!!Y͵G6?`j]}'nZ&G.2#91Jƣh)jܚ9Zi,GgDO; ,St󎎜iaqcI>A$EhN ΛuF3?􈩋Y|l]E^cliLfʚFFWyvs 5QinEiMX̉TFT3D-v~.T4_aWBiYPW0P~ӯ@C+Zd2}= L|?/[rsK+ wϚ\<!tۉWai$&_- I~'4*Dll.(@aǽ4FpM U8Hkpyq82C W\tթrTal~Ħ m\v.tq)dP}B9wFE?W'<߂E=#؃r#U] N_.D=v*2Iw+:m]I %],~YYXոSqyWtpM3ۙjW1ah=RL*`JǛ7*ku?ɕ?;Ma@KY44q~L5\ ߃aw$WJaj[Sq _OJ!ݗ C]ܩ# !ّl̒o?-%{$hn)Z)mL ʔpC@),srlt9 +]wݟDMV ov6Eq2)z ^훎FEўP8_vra%3C'[>~j|-dftu7K'sKO;SH6 yE 8|߀iAӱrљ ɑd36[#l'2h͍S^7GCWmtIѮ6x=$ԙQ42s֛>TSMJJB(L3\^/EOETщ| Z^Գ#ĝכJ ^Z!(l*m=ƎӸ(Jjm1==HHPdjHϕέV YX7%6&Fw>WΛѕ]( mM+j} s@Np9  KnjvH{e-Hxܜ ~C<[ԣ㭸RlX[d67{ލK|! bI_"oRz]6!$[ <5zopO'w8=z :l}ZE)I*Cܘ 9r?u,m$ y`"LIX/[cI6]3k=dGep{@Ì9Qt!#|!9<hܬ_>ѨΩpD1FlXscႜI@>OjYyTS+v4A2Oع`j΍EAPf[]2D jR3J.+WIL;; ~Y##4>,]I#a2-QHkH4GţcgjHkvz=Q0mnuϜo3?M>`nern Töץ6ܜr^9SE3ߖ"mϜuv]'dՌÜzLybCt4Ѽ~j:IZڡYJ~U&?+h*EO/,MOA}0+OIќ `ew.eh;".ZZjk9Υj\7TAz?8<ӕ6ۈtqE#@@ʚ3 b dlri l77c{l'a+v~S"f2:zrd©KbwʐQƠN:tRv vܘTôh@:M(Vxzˋc1㜿!d|^5w!2ϹJ2{{e:@z$۞Gko~iAԛ$HYdɸinY:w Q#fv;wH,}e4Yޫ6رoƩ{%K 9iڿ 7>|Bte#HޜCr\HT8|}LKnnz+GYB:Mʶ k1)8L O8rͰ_|'..f00To3MT>}ۜd4>qnwkw 3>6J{nG Ui>t`2ìg&ѝvmF{qvy]̢ٜ]1eTG;R @yӎEs]x^$ C{Uf6m՝U_PQ5:HyMo*~{l`CѝKBY?Ԥ=D0)Ɲ MѨ~.J]|*cJOz^)o, G2]C#渝+<܎c:NgE63(+H)Բኝ9*Y,Z///$=)+wM9Jt;`JޝKd,I4KS4֢l(j7d-[ITOJ[QQQrF5\bly`W]Ŵ:1F%`-+!e`4L>aKCU°hSs(hEwžv!pp]xƭ*&ЊqϼrX(M>s?wAȰbE7FNx*k/D؜j}/S<MznR_[N{ʗ݃Q#k\^~;taj@A7x-/ǫg4]t?C!>䢹s{d[茘ԞD#.A+ȝϑ*/*75,>8њmO&‹+!dԨwP"g^w|faϝiQUqd#*:#Z^mB%7\NHx7y|5JD/W6E_h;Ӑet260}2~˞;4~dQd =ўA!vqAHgL6!jBKjI#(D]T*ޥ-p@Dբmu[+G0Išh|w o1MCi_pHCNena$jʚ6}Lb_).Qk]1Zа l_{7;a&[kc~JK0&FKd^-Zh%{ھD0מf;2CkͳNJh1yQn|e| O,zZ.6o_] 8QYnL~s.b'Q?2NTÍ~_v%;A1eLQtn8^WRMλ?F8[+19=^ܸ84YVEMMV2"E8c ],SMְS S=RDx|ڍfhs qNl͞[c1V*%l5y`S?P Yd1L%XiVܟ5SL{8p6:8i抹kјH:z7?f=5)=փ0VB^\e?XXqjA Q1Qf jJ,D(BT&;ExlҟFn\a3VjG2OG{{L]J~u|n1r$4HJlbdR͡GPsZn4c,= O3YĨKmr+95_ [d-&&\7WcBuYN5ؖeyA Ke(fsseè) 66pUftdhP4etџt |)7oui?7Z\܎Hx `!PkI憌U|`=3>=9Z?kyٟY,E(. Gm ΂d+lTJ7%G Ÿ7b~4'SgПo0q̗z /A> .injPt$;Eר?3FZ:zSŢ "懠+֥ym&S'^LJ hX/O P8.+jC^;"̠ e1Spת8<8#æ|STIu!)H٠&_Vty/h' ~OVR;_` o|Y4ht <Pa7CWC:j&`':yk-GZ:-zAڸ*E=ȾOU#SﱠWra5w}׮Z<\qN1-D0|wB'h=(o: k#p,dw 10ޅAyz0mNo9kLɮ[iTyKU7xT|ZR6eʑ `>qDwk%|'{Ag=Y]gm$ro{|,x_q ?j/5>K&B֠67ViInYJTdE~F%cjg Ln_|>,TF% ߯/jhb+=F!^8yo"k H? 5ZEu##O^mD=4%XZhc^9@9꠷};U=9Vq;2\J}_J(Med/6gnni%PD@BqY޺S\)m%8@n2d>OVjxRj˰K1x0.bD# ~=8ʥ>AD?S+&(UxuGT\ ϡ.sxt 0S|,wħ΢BH{әc ǹYOZ`Hf877}TEEݨeJ#cn`bÒrEnfCՒ  kܠ*:?:no##4QWzARϡpn4 ^ljru6 oMoM\y~#91=S)nO,9 %O<*s [{ٷ \O;Z(3|)9Nm,g_WI ˀ'i=K(/c;L*:)ԡғ&P#V騡,͔{er|ecRh܃Qv&byטy2\ !rac6!Zs эr 3bg0<ȣv2wޤס?Kz A\VAjvn[~-.T ]S5S%R(i 'Sޡثկ բq|.{(^ a]vRŲsT&3ST=>95PQ'Zܺ.Ģ7ќp4+q٢BR eb#ǢBZB=<%=aN!ҾOq6|pkSSKP1cuȝ P}I2rf2)wS>d2'5xZT8vnM=W[F"*! pZ鸢ap[]c Jxߢa V>濿ӋcjCC{A5um:'E jIm{Ѧ? sUW xnj®".Y+uNg{e|4~vt݂]ߋhS''? 2wh5Õ{w}<@ P,4?xV2>Gqd۠8?B;A^z:fxnhb_hɅ8&e_l>NRH4+"by@ 9{ EKv?zI *X't?#؀=XIύ╙KءB4Ic{7 ܾV rRo橐`& 2?v Kʗ,hA3G=u%[0ölM??ڒz3p~cw=Dva/0%KŴݩ}ñW*s䮢|:5\̀WF |I =f4,OӢ$W25H'ECP.*ҢܗrXʈc8$քΦkʻm/LҠc<ס[ ŝeɺ- t8u'Au7P9 hSsdf^>0zƦ^Ңּd@+ISR”vQXb@[Ϫ$ϞRXvo="J'w9 3W=0(M45q)4 ^UjE8:q/ H*?" DdD)ܢ*'bGA'Qˋϊ p#o$!hSң$9 -H˟霨U7y$s;MZTCO$m # .ޣ, +gzu>ƣ05V_b t683DwΣ8> W$UdE9R'*>$ rϝWJp%AmD2ݴNw@XUZXF@SH0W爣G_c(Ya5ZLaQ>vX쳱7{ ԣSkx<ҾfsUT{mef[9@\%TXEȳZ(~MU< Et /x/įRWz0[znH qJ[jF,Ucjl[Σ_'lK.dca3.eL9 /-J*<)ebZ|rJuȣu5Tg{q~&@O.ua&7[lp@P>}A1ۓnPީ7G5`}h F;8V$->~܇(>ŦZx}|;%~HR[m3lߣi~lv(>^[[, 4n+/T&i6ycm[l~`jf=B9l3 jSeAb񵣬=yY>s=-#mz-rmZ1s>dJt:y{KW(^]g msq%S{P+n&U ]^QR %P¢V)i;&P}B~ 75>_@z'cUjNx MCQ,X_GHypp{!~=H\ĐݕE}ZlmA"se}T=T^q0d/)ˣawE6%`$ޛߠ1YC,Jo-,?J1y̌C` U P"zcrzeqD(I=¡?qLi!%CM& ($tnrdY~ b8{ФdTaI5mUϗIUkVaBo/aɤ>@qPCQǪĄ icNdI| ƦG h+Twܧ;ڤ|d]#syxMuٍ?jީ7qœ&,G )g$`;6kxl-R)!㦉m(&cl|]&!w~rd$܊vReF_8@%}ȡ5KT RE{Ws5VO} @.k9}ɤYmv&lyW8[>B0蕞`eECOUrHcAUm$z}m`P}ێng'񳧖tmMٸ ĥ5OL:e p6@9XÄ$)a"./@(y %L]^OISY3&RQPWzH'/rJ>a'Jk(]سh/Skקq0_ ">3 `\ߊBX M_v137}NYM)/˺2?A3{b\k"ZY}o)9?C|Q0ν%=t'L)"ˌץ>ukߘԵkʀGVx~ WٻBWG/m\6dч QAJ nB&$6 O^{dgtm@dUso@Eh}Ɗ_4=O_3PDh`<(WDD ֥j{­*--nPwAx杢z13QYseUq`w2XIl{ox2>#+R:|wɡ/gtfv媔ʥ~[VwDgy0Ai-"vC}[Ƭt+ wrS쎄{sI@;&GP4ҹLcG/)1պTlOp^kLҥ7.nl(0K΋~*!"DXӲ,mdT0ݽ(\c`ބPbo:ʨĊ7r2čnJeMIjz BHШ1ne!a&;ڥ(r &!.4(m_ķAt3Y|D] 3 K{ 1v],69mՔl>H: +;Dٿ^jl[S!R;q}|9Ûrx)<)Nt'V$U ˒&2# S„\1eI6yPxٞS >HE R֥cJOX]|\P86+csET=n4ށȽ|Vԥ(3'.HeX)F@!?"4gvPD|-gYLGoHCIzbn5(X>Qe >U(_/"&ӏd4a;ee3"T0 Z;丢r7* ݪ쉉)ަ t; W'E3 v:s˹ / THcoY'inf4ۼi쯦fnQH[p\A@p[GTfѾXi`*%d`V}Q!xһ8j(>%n-6ݝԆVȦ1-buvVI`b֦2`OJz, ->]ӆ%=uʦH-b+а(`"<6~FcKz+Ez`% OPk[v(e1ؙI25T?siMv2HtTTdp[wǶk/eV]i0 5=WSRZ-_] $TXa^b aOJNx[+prh 4'M98¦ba3ɔ}S f!#wI ݆h2B2ȼ`&ji֠}EE0%XpBOl&.B~ꄽ#othD1gZ@6t%$x_[\Eӵqlc10yiF]a&˛@\v zn|bEݕ(uz)B;hB~x٠d)}q&lruэ' *9)M+蒨++要DNATX w<7?|O$þr vj`r МLoOT;,v. r6!OT}癜0Y.P_ӗ§GuXoH%IpM,|9pvS21pc܎hfuig(D,ٹ6Q .RhkަYAթ.t 5p|R 9? @H^4~ƮF ,'_N`n WgJRzs6qP|yBqWh'(`oblT3ϥ_ԯ*)b 9O2PO1,Nwŧ98@X۽|6nj2O#9)u Lw cWgn[9ot#+S#{ V;C& o3L/| ۧ+1Y oFWc-H…kR d`-FS]> &y5D,*5h$ 7!镓}8@7> ħ?,Ή;cRPPl+J<<_ђ;L{qcT@<ҪZDElS-i'q~?x@@fT^DQ \4YPe89D*voF0,dN\׮KHc:Z*LJ_Ldc@EXhKە󖞤^H"KCpMХeg)VJL->ܧxO-1aD!} :vcbU[~h9j$N,#W8(m>En '~}k<"$$6`cH7 9~_(dO?-[Ụf1Ph1Yأ,ϾkA^fd|0i#cgS~XeI8+- !إV2f#B1*H/u]JDU՝U`Wq[Y>u=oV53&>m0[)RZϴ8q*Stp[X9pT3M0/Vy<"NN{ۆ_֗;X~~L۾'.1?fh̛yDy[Oa[8 MMyϕ|=b@s}t;* BrlqU*HE:yyw 8@vzhWFտz'DtI_8g]N)z1,6cЄkGـѮIhe0Yަ*2Mњާ{ɒ)b]Zf]t(9yv^M%x2aNfw[Q[r˄8lu  O d^ͨ,rѺNh qC8ώkϪc;)ܰ!T >EUyn{Qө&uZyق`DNu zp2c;{13oP2Y3p q$k9uj<żQY&Ԍ@7'73?P׻(CEg]v~JݾI G6#@^?ķgJm讔K@&DejL-ĩKg…w/FK댼uw>Sl7V)mUv򽀠$4f8Tnމ݊ULVfbo9U h6Cغ<:ljr4Yaq:کlp1xdG"FgPmM>d:şJKry7"~:Csrt@a BXR&<ét,-2]td޵Oy;z*m Eϩ}1g|>wypl_֩X0cnW,a (irzFOHrDϩOm]G&GjϼNXLd^@twI0W,a ХrhȞ 1)k<#yӤȝQp3 쩞ŶB^#P0 B ٯ|z/S*Ω&G^/4T\Zw uQToE軃oBr&+eAܗ8ܩz ߘ׊&cؙ,]?O 7W:?[#BZ 4>]CYP2xYKq2f(Wp} ?9lw"8 Cw9e.q/)$8¬p[Ѫ 0e27J6(v (߳[֜~4 xz5紘  İ-@4kJlTM&aw ,RAgL=|l'eF;af=Ȭz1**%SɯnTlքޢ%^+aRHǮ~Ԫ)zNVcܵHgx N֪+ _P%055F431[^HP⊪6,jv ; \yBѪ<#un Ď>S|MM~iwhwB+눸2r[8k2a8I мj0dUNgYL_ "S#$ѪMR$`?A$]փOE$@?pl,waZتO(zvP;S6f~[3KU55ve30\l]VhXP:& :WvU\XK ejf Ws#Yժ]6l5Y7$D+8eB;bj cܯ.u,fub[ zP8lLx݃04@"NmТbY(䈬 xwi+F1C5M1Ftt\Jƪ8Gpź2S }7`J9%y<&ժZf$zG [8z J "ETg0J[z@\̷ ڮ S_PfS@={)ͥRм󺪛PXi鱏W;Cϼ,5D󜃪22U5[K(tﲂ\&<{᷏t Wci6(QhCõpso쪱RVBt~b86+0)m0sMnErt(xL&dK7V:-_s؞(~̪+Bų˰49C¸eGbǗ!1}(&n l(4QW̗kG4%jZ)ZԪ+Gvi<ɟŁI??OK.u-3]' REʰC&szX>0s^ -teLK*mW%fav˪5 !ff" yNiŠϏ\e|$:2!bTxÛ8nM2;Muv%M@2 |Z|CBOJƆ ԻfJQn;M%=8›w~>ɫ,ڂRuR@Wi/qo7R+C}sQl˫M<acE%+Lk:.'+H+䄊:K![&9|k}b%A3c~Yh6:_%&le!ޟj'aTf6q{,\F))Hc2987E oF(AX{O"R>_'Ex6ٹtLJ־kuJVNH"fmg!˧scP-t,OMwPi@Pk_R]z+=RjA^SN2/goU6VVZ$30^.nW3uD!=[~cY}x gqIU`HB/N b jV0Lb㡊1ΈpfCN*G~ lZZ gYX{߫l EoJ \%pqǔcvѫoJrH!}g=vkNpnd`Vi/^I*%#?.STde 8QzCy'Z7 o`ϫ#|61La,.N Il a'AhEXܮ5=qx2*B/sAM%jEf$S[`?$['] 7"11F0̽'Wez_e. Rgs/jm%΃1ˬ5,J)툹Hi:,բg˲{:Ԃ C1SQ/lͱHgM7cps=UYL(hxI'|TR&M)Y u~yW^Uۖ=Dy4U<a7BCa)99-[dU lAA'h2Zh=h7zsi6Үjr@J UYtFdqjf&!K* .zse9oE*GvȢᬡ^_cxQykL#"^ AU7j?t#CH_.L"Snh5-^q04'1RNDd~KvJ-@&uT?嬓59s,Gd άbֽj [Ib5GS + I#јĞx0`NM]fYo|)SMk ۄs8"/tKZ쬠@>[4j3naegWB OHTX%3΅ϮfklYq䬮xJ4Go M&g9ZS1#Dn̟Φ:Kߟ8P=yudIԬH ` >^I?pUijjl.-0-j1H `_~s/vp&߾uI![F9S_T7NEkZcwn0׬S}˶UP -0oЬۜcȼPr+ަq!9Mr|F߬6(ߴ[ˬN zr-Ьf+5sRB%wZv2w #\Fa;u]Ma(۽cuјqwR5&Q5̫eE(2f?sOQ1]Z qir^ĸT5i|,1"kHGQ}?L |LLM,E# OUf!C%y(es\ح%Kڐ~v.YS`S']jET>*,*-aSFD_Ļ9[V1!\pxQ@q|}Tۑ֐`DL# NL\Xf!$H}YyUWgN֠o(c Q;խUrd-DkLs~Ub'Vu0NXňqp|{> Y&ҹcf%$Z}W: yG"gA2Z;>8fSfH8b;!= 1tmbK,xEE޳gTލ|Erܘ.Ack7`d28&| l*p05xu5k­lJPNF_s}Yl"@)R|,w>v_"is:"w[gd K0ܭTH?7頭Myc@+zqMdz=z,:au^7?DsgA+亭OQ 4>ܙ"_dQ&2#gMWgmާmVvB2_w]v:84As%6)(Hܫ@ :AP⭻#>}IU`NwSkɭ5yGn|k l B#ŧw[N`q]^߱N @*EHx!ˮymvt/ͫ՟@S w@ STI/zD/fl6f!ʖ@)ۖp՝1 FQTh]I ѕ@v >v~b #/&ΓގکWE&zUm[l>,LdߌFվ;1a#`WL~w+edmgfLU/"uZN9hgs&1T4ț)fѮZ|2{kZ$Cj ©M]_ݹCmK&J^R74)(N_E#KY={#sye3-ZѠjF{enP։QߗK }$'X2_IwnrWmﮀ%fX]xZP.;)ZT4v֫2Il,0RtFOaid>讉r#dm8+@{'ޮ=f/z[ov z |}I86&b{*f쩮6|I:U&תA@Ůu3vgOSnmWjGjHz橮»g@?C&Λm?ݙ;ǰEq0Ӯ1^KڀG$q)iWoS[*Cڮ'$eDb!ai9!Xz=_ksTU֣,t.w*]޲\TS!0kJ_hrYX=ZCFh2-!cJx0E#&GDLM~+0aنG<\toSbuޒz!ůIfI\ͤg@0dQl:םѶ%oB+(U>V!g mtk"5 H~8ɯn-?ӿ;%W;PF h,s!f%&hfC1 D]!R-4M3my4z/m:(h\`r> }7\P(? |]8F<ݚ@RǠp H?<%2weNOK:Mn0 Jh2A9߿-Sʢ) W6\WR5Ygͱ]O\RpYBrcвHåOd5@`|[sinAN\S/ΣɩïkFGJı5~nɆEk0#Cp9n)n{WsI(@U`l(r:]}'C2w~oܷip8sGѦx< UV̜]D LY$iX>ïH)Nժǿ(p)H6$}lHrSOGe\+bzo5؛<{sth;.#˓230{bNfvaJR+R>v4c,Z $ؗtY CK䍾 Du1P3PGgwɜ:FJ?תF[3=SYL0X.`/b]L#eDkig wzY۶9gi9g` %܁HPY?GJy ;g }5%npN`I*pR꾙H~X] 6&7ʢ~ijBi:< S J%&і`yfSTPM)y`6}P*&3Ećdmj~603vZNE0G柳T y; FL % 4ݯwEt$H 1FI9B^GŊ4|ݰ #zbKnLT_^d3S:mbҌDYTJ!Vls潿n)B©={H!J/I!@6_,Ӿ|xIAɊsUvt. o> |Ӱ58mvLb8M_X@ݍk g)\PI (saגI$RIH+c(q9 hT"dL6gذ2Sb]Oxm.3c"4ۮ\X5VN5\KgIv 8x"<}&$l@;jP L#R5 f-ѽҰf ns n2ذh҉@ԃfǮ;sw k|$i(RUBϚq>q\2ms%r~{ M)'Ԟ[}:rTeI\5|,0=s*q 7w 44gZLg޶B#/*SKD@iG?0#E ͰJlYOU56㸰4zuG a-kɰ U@Y+9H!\횙i-7d |u.5IQ^X8nL6GOOV+ZK+`i Ij}ZFUs_'k\a?`ʤӴ6TkoigKTIaPx:IM°Xw&h>g(ʙG O5ǀ)G۰˦׫QT< {XH >z߂ '7_pV:o(Ibםx7a39xRM,=_/ xwlKqqPT*t5r0v>{@ d.پepA g\4I,?ܲG%+u* RDZߜgÍ?̡N,ZPѯUA9 g** Ln%:(p3olp^T!dѥG(0X>{I4"iKWW#Kܨ<+ήJu1WJ'߱:`4XRVO$|!!m/H= &\'8\KeG؃Yv*4R[: #7G@zHx^18o^$Vvy8=KOC66o͔C-+O35<UVIghֿTFGk;X߱J#=LLr#z3tgM9q+EX5f%ss!qTMИ<4aGQcUWg(nWIҿ Hd="gAu ֆueEQkjYyy y(bCT|zzfG!Iy{mY5KBq%ЬE}K]W@O'R]SqS}t:iùuFa걒YT4 T~ 뱒f.Rtu\5 Y ngK͸P ѱT[=!חwO/na`J6<_,%ﱜS&8E&%Tirm0<7"+se:#J\0N?wh-V!Z) !"HK/YvŁS荖~RNk".`屹&M?3W2.g2)ip;#󌹱0 ʧ<BĴ֢.ٗJluIEsMzf۱`Ug|U:hC+o '$9-C$CIBcM: FKp0)=5+űrԦa :QjՐ >c=zY<^h ׬@s ,$cn2>gղTc>f,j)/tTۉKv37مn M D:rm\o7> .7ovi5Y0ь\|L xS︰`>g-gJJbiOn_)x[2C;|~y481ڇ溸*ע'^2㽝Dy Cfb9(!_Jp3c&)%E~3tEIrQ2X 3P+g#6qd ۮA87hjrx} BnڲdIԈG>`;]׾bЙ䣽+7ӎZ鿓OZz!3 m͉*FBoL"Y*U򄇑!͸gY^&.1\#z6x8 f&Vn?-9x\ Z (ܞFR;^88Rܲ2҃jL!ځ6#X5-Ԗ)03OZa9*<.4U9b)GwUA1<|rYƧyͲ=#}PH:CPOJ iajDkE|!|  KȯIY>gb@*bTv&O13<02)3gU [(Ws[Oœ.`XIaqLξ`#XS*b~1\(?i${DzYWP> &ęzgh`2ßZP;nb%?`Voh:Hk*kaSsQz[q0?1N>Dzt\M 2 z+e2,܂zuq5x{l\s܋~7~|0|>\WKok/;bvvβ ])R9qGB "! Y5HzfDsv$氲]Bv>ӯyLL O2zaþZBčD9N$-)l 0t9 }I0]‘g0-tdX=矈<>Nc Nf )G| J)|tx8__sDG(x\U_{̀SFDKh& 7"; @Σɚ n$0~ƿ&E~]"M NVqӽ6H$Yr &$KnHn6}4ͮ T 18uVZLxOƼOgB Iq'[ 7dn_Rr*x'*[ËY~ q|Um  b{kayxC0c#I͉a"EIg| F, J]Qlwb\HKR4 :' qKղL%LP,j%XqW qHk܎w 0+Byji_yvRsaiG$oP;u[5kWt̳;G~ܸ@g9ږ6.b0wY"%(jagq+ųx]=; !M@9 fg9$+ M1Vc$Ԑ63!C{>Mg,5.&o4Dop~w.NnصmI.zci9ƥe/$ۨG:h1k39 9Rb$;HQn\L,Qvۻ<=ɱLbv=*Ƚ@ Z~{ CsNÞAJT:lD3jCډHTxƋUH*ޙF|% 5dDOrjO]XqZ\bՎEQCٱ2}xR+3T%1¶,^ <>߳TRq.ͳjhfH f<UQ-# b.#mVgz.٢/}ˮCzE;Mш⮳-cd;ty74J-F6q_G^oi쑮I()XK9h-`KL :/C^?w q{[!.+찟$'6{N^+"u[ VC88ȴuϓUDʬX9մ躋HqjFml)g 2ff":!<)'Ss9KQ*0vyU,Wk\+ u?s~fɴ-u8Zĩ`4ɴ3"YKMkvݴ4Rv a4w"mqdjߋ;t:AiFb-lVk< _¹'WbҒZ3= DagmnpEq~QI$_P{6Oj/RCPSuJ2n*XKFUn{j2w%c|Y]q'6ܼcΩ>?[ŀh E\U}ETWA \ !Ï3 E0/c.{mEcPk3CN~iix-k,3$0bqmz{%xQ+)plL*gxPcZdDpu])~F?AqL Cu}&u[jY#ѯ }J0/b~W69$Yuj3AO^ԤrP``:F@fQryb7 +ㄙ/z  4D\HG|*>Aګ)Ĵ0[UsPlF9¹ lEz3.oRC1`4y򕴡"dIl@rv,,zr S},@A3 5T> Vہϗcu/ $[Q$7GL`Mzp9F)l3C*YjSW'4,˴Ùdf( ;"*.e/ OLBP#p"l*牶s贾".<% GlrDX/"=H)Fl` qSPsD*;-҆ҨR;3, @}3au-lF%,:.:U DF0õZw,}c 59o fD,COHk[&jK>VNU :^gYP wYӌ\G $S-G>Ì *h0 (&q4/21HxJLKs..4qg~r>`:~Py-I nnfNMBt jzZ_¤, CR?8=IUkN1|~7:AWR2Tn#5]ԻN\e)2Wu˄aɱ(kW # X~A,g,Z@N O8b'f]zh)~+4ajEFr{:,t ׵c+V|(euVBseG}K™{()HNiuAr"Mr8a66w!{cʧzWy|qW<ɵ 8K5꣧ߛ[\u m\Ò\zeztHku*Y 66{//.GJ@S\HI1c:DnJ&ǵ@8?A$Fs(T{G:⏈\Fd3յ>'6JOfmQ38j_/"#/ߍiۢagsGܧ0(qG?>+oBȂе뙠3w~I8"}tF\ڼyPTd!-c>X(f_11_\g;ȠʊAWCXaw҆.n_̷;޽ ݵ`Y raB.@34@BACލUF,A܀&Ĭ45Q=3iP I⦫p6}ȵH(]qx/Sӵ̢_uq' 3NQ28tzX!F0/O\`I$ro5k;ʫDK&!PڈGCB9=2ڟK{eZ8EڰwǿzlBsBAkf֮f2'0m̵Dqiտ3ߛ(fw+̘H/jJ7~݆-hsxq;Z@ !bڢתhOH|ȧ>Uwe8O}XBd )Trcoܸ {Tf_/ϮL7G7 `zip{ЄVzOdĶgɛfUE%jGσw&bR!N?a͞ ')31 qlDTJ qKNގqUc"ψz QrwyIs2&S%ux1}3 Jrȋv-%k9͐^. yk._eaYdg@"N0 ձT:@ɔ xzʶ=uJ *ᎷDS|%<;dEȼLt g#䜜EH5ךG~i#[,xֶK/. 6Lyr=cZS(ʀ I)+"նV}D1S4B׶WLe : >] <2Jo q#FͽնhBs]cIl+Wԋ-MHƒs<ہ|כ!~SƶuEšѨ x[՜B7h?2}X~5`e4)4cҴӤ+E]um0%D$}uDzk 0|w{b Zp'.N])Jd[Bj^wc!2Bt+˿ef;hQi{'P,'.ϕ 7qho,fL_?Q`~s呒߶ȚdGAH]퀉%&$DˣWDҠśhيˍx1=W+4+z?2ƚݜ+=YxG {O ŶLvg"Qj  NY†p#_y鮕St -]+B #ˮ>rrԲ}!x d`ɑCֶ tUר·аy۶`يN$ !E|d/ҫ@k nƦ~$sdk6Pi9R3J 6GtiNo8c [7\n1qzj}.Y~!o֜BƄqujmEU9BX3k7g}pL2AgE)SK?yз>*ً¹R;8jŶݽgúÆX]T+<ʔ:Y =v60Kb呷$xW>mh]3M^2dCEJA;^Ta:'/7(lQJɸ$[ ۵,{ӫ$tt0sX5z-Y~)kC#I2+%l Y4V]9yjH023H.k#ؗ"BX]Q ّ>EkCȻ6fbI. EJy_m98!*ۚoGt%z%AhU*Icy6qWn}O]ИPemZ fF@IOdh6 ;Ӧ=1f wh`g;lXj,$ S,m >38ok/@sSmq@XKzLՕsqf#0m%@LFis]N~ `5^Cx'h wp1OÅȷ$jHMrӼ7 2%"i x+7Vwf^o땿aj9_{B*wv \{[Ԑ;[] }=r)03'"k맋=+IDBt[$H潁aOLɅcYWM ~;p ZN2'Y'#p8Յ3N\o~SV_|x+Pܸӎȗe5]0[T{Z9I|Gk\NفrEd-ĉ4^bWB|oQ׉"^=pF]9o6[qwD$Yd>B]f13\e`fyu9zS70%p~̊Uh#LKA KDV5ay%"Kw~a JgyFo%z* `RI;vrIf/*grcsD&,13J _ ˞L}y60[Ju}0Vy?<3D%,wC۬%u2:OӀJG" WMXD4 2( 崲uhZIx9A)4LB:絸@R!qT+&@E V JgH^K*+}lrgO UMT}!"Z=,z qszUr.fR2ҺSz„?\:KuiۯA F.+: IpWݖ?:*sƷۇ @"~G>唗5 Lqȸ;oBJ-e챃JM4 "t\pg\̀nMNZEly@3xAWLa*. &ڹ1lNڰ) x׃Ez6m͆H?ziw/ ϝٹ z;kDYNB`sKߢĐ %K'[ӖaEϩuݹ/fK}i8J<Gv7kȨ2|?v&IU[?*M"Imx "i8'V70ZP;0,9G>MUʖs,ct -jҬu~Hy][:3oFVj53A׮7iO3F?7 zjPisC$R7y^#gO D_7޼of7` R e<ꪌll@]] oe"ƇZn_KT4:ePgo+NzzG.aB5p8dmAtQs o׹vlB|\ȝs_Kw˸Kw@!fI{ES4-"K{_h  B2,|d6\<>NNk|:iRݪQjZk+-H{u#df;+;DO8f繏\= ;/tv-+PP] 1:J2}yF@krdJ%7>(Tz=D|nRx@MzD:K˩<ҹiZ$WMJuRy5b)ߒ H\C__a!?Yߊ>IiUU9+øޱPEhNm.NWk] K`DuErň,wgKk9 @d F lKg3r٫\G7ո ]YcEEѹ5OE꿁R yҹA̝W2/q1!i.䒹戩,<=4|ˠrf'Z,٘;{? pG٩zD<Nf&nJ֑uҬ0кpIɖ;CwT\ŌsޓL%ҏkSkX#COwv0&O1o~Wi2 K3P$k5ٳud F͏‘?_FO# BcuN [U^d[pf2Ysr-'ӖJG 0K@5w &)O^.'*ɇ"f4ymT§,$2%|3hiȭ6λ1ۛ,tuλq)>B%Pgϥo׻&8}k|=rF5t\:95p:4֒uy.GCȺ8[10:$ 8xVkޭ}d`9ڂI!ZBwi1Z@o'e_x<{󕻠;d8軸bU *6"V2 ^[cp~NR>4PY4"e NCocƺ,VN샷7$~(o0[ `ld;qӾ,xZ? ֹ`A++Z؊Z~.9!1*tsWGމȡ"3\]#[2ZfE5|0Iؚλ ga;c![LmX+V$~ RVd_C9*q5lq?-Vh<4 ݪCQۻ͈'K.#GmThZ?ۗ'ƻ~z }Pl8&OK9Qb6 xz Iҟ0ŎFT, J9%3E i7Zծ>|Ϯ$,8(K-Iڼ+9j ʝ 5-x4g_Ũ1.egnA"x0)%m䃶!6W3v3#@## Hyͼ8vtX[tۼa3߼H*A+A{5-M̷m+TO٠c LoS#g!=WWOz, @XΠ%$6UCNmcK/gvw;Υɼe/j3nIbemȜ<îշߖvܤS,$|vȫ@ؘ8~1m "8BO&7֠$^$ۄ{L|:5\A釚_5<Ǡĭ 2z  vZ+ȲsP8:"I2 SH~%9bt75#Ae0!wlCwa} IEWEb\K@x`8f])@$z\7:St!ɩګO!C\TxEv60#se&_ $S$SK2LFGćv4SX˓)kƼ‘+GTO>1|Ds]ۈS~N|}D!B5r\f"~W"х:৷͐G/2+*8lyșVbwRA<\϶CwY+IbDܙv'妝1*-o?e6fx`L樺E:, _i+$H?3~͒+쟠jZ1P *Q@|^bqϠS[VF%2A X°jˁ 0 U˽ b.b<Ӌ-\tnH# c\ף;/b0j^ uM\MD",DZ͋;\N=BPƊ0@Z> 7ByDj\wwj`WѪ6~̞s/u!%,)4cZ@*BG{8!n.Otp6[Hp ښjHRZm%zޤ%OfiY/E Dz¸ hAT2%)"|ུzLe&cIf-q|I%4zË!i;ǜV2X4C> <7@" by?*b^i~isMaxj}l|Ujý?wxuWNR{@ suܖ586+BSoy,P y/2u` 7qN{P33`m21Q=t:jH; Wv//~`/-X<w2w*Af{zWhkNf@x DFaDez$86 *Ώ' G ).#_0uQ In[zYR^14laVSzkлWǁvkHOmɤž[{` >&݋Ah8SB9=l\z]?#eׯl_` tRJ͖A7\ lʾh-WV[0VL*mo7',[l c¨kiT(^ T}KHyvV %RܗƦ`,kh<ݍT1Ծܐ}8Ej^/q~O1 L}ISVN{!eX/f&'cKGO^IģbQtǾ>@op߇2} ̐׷&PI1EȁmҜKtڼѿąPQYfEaUMgj۾ƒl lQ.QN`^0rJ@߆H\[顝/8 elI`tsi!EfnT'?>j_EJ* (UJCK27kk󡝈2i+}UzneVƋgjwHk& "֨39{&}ҝspβ " )T6z|%Q&㮿 }-9&(kkLWtyA-2Q7IusL8* `WMKq<NMj+&-T$: yu<{8<㈔Q0 NJCbp>dvAXSMjH{otj @JPYXog ˎ2PF# |VVbF*x.CUsㄿ\0{Q)u_]>:K<.%^~ѥ:K:B۸sa]P8i{x)b]vI:v07/Zgք4Vn߽(-8ntuJ:뛿|RIyDSrchЎǔgkik6s.rH+L9)v¿1> hۿ >73C<w7ILǿ=vDm"І|7g>cr 0lM-5MzI@w;Z}ՑoTM8⿸ O7 14jh \ &",!ֺG/HF~pe6D g>s#ʝ %qLPdxQU[a꓊r"ךB}}/@[*Wqs^^G}z{Ք7iԛr نP2kf di 憿SOܱS:& wLhqxYpqt>x~|g9 X#5E^T)QarlwdFA) & rIO/]ΏZkl} ~X?@4v궏֭!{=BRJֿ5W=nEΒdy@;6khђI-e+TonK z˛4rꭿGE('4*ɣYzWmˤt/7ta;-rv ol(K$6F(ޤ- @]x齾?V yc~TiO9wu9w?_}csZ7z r9@xчL<LC'C IHG9jpRѳlSFVϸLw?6 fiGvҕ#=0;0b,J'L/^ȥzdR+98u9)&)yC I"u|dK*"`;P`_\ o8 UCCD)|h5$ pZ)؊dgfOV?氫p  X d/a0Ml_vt<h3% t8j,#K9QKzQUT`y-re±, $ > 2L0"1 3..jUMUI{'SEr02FMPz'R+ʼn.9p찦j'O5k!4.҇AOߐ)A;U!Vz[-پ{d\a RP*.+}`hr SrB /` *&!{ r1|/b0d.9H:O7U\P P>g%hY.mlEI{lA9s|EvxH-{Qm{G"ŒL:PFsGi<.mA&[N8cwkzZtxu; B9U/DKx#Wlw~>Oxy]e0D sTCE{5u7ڦgOqby|\Y!\G4*\Kh@}E}("6yD]$?7m6G:aBaQibC^RLw7-FUsJ`[%"O O生feR@m:怿yA ߂cBZFFD@lȹIsN ?ɕˤG>;#RAOGHrUt0o|.M,x1:-?0}R<&|,4z5pϕPY~oPqwhgiC=#.CQ47m=SQjUx֊u˖ pK2wv)HM[6q,VGH]Q gԌt.DJ)T@b?l%e06 C_/R ~>jA)H+#EΚڲ~WqkH:3Yyj_8;&7+ 1!d|'7RE_ Ň#GjQf(L(y'>&I[zQdd*U]΍BZ')Cg2Zghd*^M\g !gly޶ DXBHjɡӟ8[kRuJ %osX <uuB(91\CR""yJALЗbE>OeS*N—_„/z8=Kxh)‰'&H؏!1‹LMi_^ı ]1b/Ž%V>*«cj֌m¾OMBZ8l pb?yu&R?zxD:= { 8H{,7ەql։Jhy,Fv}pi %F]1h 44P85 /C ͵:8| tHBMʚ FgB;ֺ miUT|כN)!!MVl-?k$6VsW1?j[/ >2#:v{ѷT;a.|k-)n'(* z b #UÌ~idi ʺ<2`Dgd.BpK5+djn.۵YDnDRUͿ(p?"B!Ausn3P'(8};3)|W`{k6`}T{ bG3Â/Wm/VEǵq*Å+c/2#$²Î^H sX#Ò6O^?̸0k4Ó?οXO4Ԩe;;ÖLj#>W1ß񺢜S~ 6`á,DrӮQ0jæIU> D˄lߛ9D_P6A跺O3ޯ{W~k|,Mg4x?-izVUG4c "*#$MPĩS7f`*KHS[o^P滪j$"4-(*3y)_CQVm62/6x9ڈmߊcW<3 Kć=< JOTO桙tPOݢѭ~qj/{POND#̅o.9& 2 *MU 秂49V-cUNN:ڰV"gKcm99;9X+2d !mzwzPDOk%Y0uٌrv&T#C0uMa_)1b I<l֕AIt3*'y!Y+}K9> 2J,{@);1-?v㗩ۭrq6/O7Rm<[NL/2ЋS|?]3q1^Kr@&3.< xs~gϼ}k;f`T6;۱0abI*Ewݏ=JJ=$GV +z}w7/zKh;->7y)P`SIT5U)h@Yf `?^6DiYjU׼)`;EYUo +lC&Һwoڸ,Д5rP8 cX꾭8EsԠI֔vm= eAR!21ĆmiL 2hk{8~~ćdw]|‰cĈHp}:pZ8Ċ.O 'm7 ĊG<0t[B.4q3{ēTIH,f~%Ě^==)7lCf:ě}$u.CrݭQě5ۢQ7SdOĜU!]%d^TȈx7ģ !qӖ KZĥ ~eV]HĦ~8wQ!XFuC—į2\ᗥj̔FijqÒaҁbxĸ~YVrYUUߎĺL*R fU̥ĺ+]ih)ľ'lSMOvtŝ8 .]<s1,' P^/%f5x)f IBLU}WJL?.ק]@[B`<뢯7b^!|$2ep:8{׭Etn3~xjLIe T2ŃrEУ/nHņov_VٺlmŒƌb. 8Œڏ^61g)$G 5_}œ|d_y}Y=,*Ŗu 8>Šix@*vU DŬB4 w/Ŭ)`߁)).bgűlˈN,s~r'Ź)y-;6TXţ#b$ź ?C}w g_r6>ŽbR ;…O'Fž{ӂ5-}jpžgOYf=/7 M&Ud2rK :g"7kuv~aV&>K7E~ifmdWmrY 4x~Ξv0I԰U~r_3-(N($(_Ppp7Qj]xÂ̭H &,8<[B3Pid8Fˣuъh8&{ eI|5׮jBi P%|0|}KI1puՇۥaU\!3ah< WqH-6ƺBT +6M L L;L Њ<]gb[Yކ c p'ߺĨ5C~ <ݓ~[|H  lڣkdR{d8:o2S<`Yhzw3Dؖ#,i%BT(>mv~:jQU{ (m]gw{̈́ ^ -"sp!wOpy+3~40Q`>;M9WC*O7qzFilAH1#>|r;J;7'Ď/at<P&/|(y/+kԢjS} bB~7/U/T˵R 4.Cɪ}pxeVZ`S$RWƊ 6B1So|p?0Ɗmm^*J:OUƌު8ȅnΔƌ6ZvҒ:;ƍtY3K>)MƏA?`ݲL*;ƘԄ"i"ǧ9}z"ƚhˀ,Lf/$Ɯ`Wj21vƢΡf/* GƤYWUmnuXaFƤ@KKf&R'ixzƳ~/ 72)ƶT+euy/ƺp} -pH+TJ/ƽy".q,s0_PHy,Wxx' 8L}pfH9r^gdy~!Nާ.x(Y=s]m0C,Lmk8J,yp(ÿq>s/LǠcbm LOAQiĵ8٢⩈% YK; S/+NwBވ`,HWgKI P?o_gA|B tNǗY:VAVפ^<6}n.d߽*'oc?&*/`Ε.h,,d++ Ї̘2",ˠ [84x؎ӀjYMS 7mBj Osw1@Y%D׀B@*YȲh=}ܯ<1 [sf/Ucё'T:_h˦d/HmquH 3'Ot8Qu|0CB!;k8:o,4QkZR(jak6k+E$hA<壑Y8ll:(=nƣ6AwHzA4F-XPzCjB02" 1A;4Feh;6 va AQ{E~VxEސŖ:ƶRx}T=.(:2wX@ Diǎ^xB#~ =zAǒ?**־V/ʂǓr#9Sǔ{ZCHFCƙCvǡT:O c~v{ǥxmzt+a"BǨ*4gU3f}n ǪhChs K޺ ǫTB\ <'A׮|ǭwoGf!䬆ǮB{xWϟ,ǵmfolP!(ɐiI^ PjIܤ-aq uђtucd$1(G_qT4? 2WԲ檊Q!];V i/.O͜O𯵐 lUf1⥐ϑ]oy֮?OSncK|ɟo',;푻X3*Z"w=;lץU2 ;iLHe!Ըc=!t 1yq+%׍(MofHqmpD.U&t?č( E"\IU ٧PgtZ`Kf$׶ZeCh( }{UyV=Z1WTcxVq~P$2Ȏ|onyU 9[B ȑhX1ݰ!O~-;=ݕșvζzO t}eD؝xȚ~K(kVC慗ț1nߺ=h"v|lți =`3@ڰ=8ț&gʫp0E܍ȜZm b]`ַ뫼yȞ|P= Yo4gȡmg"=-zʤȢi1#x*0Z1Ȣ2-9ٻ#Cȣ x <Z"0ȧt篠e(GȮ<nXAȱzqZ9"ȳk a}1~shȳ1w>Ϯȶs-㕣^{ȻjunԒ>׌ȼs%7?*rȽGyszCGOtҗw~f972Qz1,lbӶPᗙ 쾨4-_nm,׌ߠ {(9IeR;K4r?ٜݠU+R1e#@ظ" ,-p,?jv߾*GJ"teD, J{%]\z:M( l\]o9ЏeJtn:>f,˨:^ςqpoJstLiHLRc ƍ[.ïKIVя60 C0[[[@ <{u>#3p\8^=/^i!8<]w *&$H4s "I`I Z dG8DI2ѣ9͍/Uވ>K}*CvU2a(Cgnd ^̥hZ$I((]XO5$A@D;BY%ѓm;66Ȕ+r< N@,/|ږBu=ަ .k&’**W#Rۺ91RMԥrZ:r4ʰĄ[{=@CD"%?UH jFBH`Ϭr\`NGFL`6cK&x|y@@K!rO޼HJSsz25 ]]dհpnXoR $ +{ٮ!tX䌞B qDM_YM ^b3?6T-?`el7} a&H(ܬZ{ԭ.aXU46=㪌 "j_<*Y3-_1tXU"Ţӑ;w[s]뉴ɁGFM {5y@P75ַ/"dF]ўe3X6oIskEx̠q4te{0)W#^(Kֽ(l8vfUH)m-L`g(Xլt&3H=p[=Í,@EAk4 =lPW6EllwML9 vp+U:ف9%so~k%.M=45/fl7>y$SCq>kx]֨TDg <;p?@BʲWZ~Xe,QXr&.P:tX@GpG9s[1{AQ R]>[*ۄ'46 ]WH0Ss_=^tbp7/2_m(M(}`]5:cB95Ϳn<ϻ)iۦ.N)5&}=kKf6.64ilqc_iݠNB 8sIJ:w~͊v}AFJV@xZ,<>Hs'ʀ3#Dh.E=#ʀۊ?+&M:,P-?*5ʂ-焰؄ު2\yuʃ a@Ҭ~ʇq!peƢ' 3ʏZ I0>3Zʙl0%+6@QYʜbRb\;V!uޓ#ʟؙ;䘷zYoʠ/zmr:t}qʢe L}1Sʥuۚ_V.Iʦ0+ă\ʩ$ ~b̤ʯ1l0RU]ʲ'T9:` ?ʲj־Ex(_m%A >f^EǰYe|pJNN ̐Um:Zrw͑@֦KSRw~f'MѲG{i-ۛys+ .xNvpT!_'v_$ೂP(2тMBr}EQt|C9ܜ^yu H0[zRN):N9): X6_?@JK5tK \8< q |d*z1ޭij@9ß O8;v/7hh _O]ǟGy8a:PpԠ5<+c4c -`/IrNVu(9bl!c^ tBSxg0Y +Cُ.T a?f2y"vxq=V`AIzm}AY#=(ȁAĿޠbi${=aE&:әGv k '/ÍqRRrzO/mcď204 M>+2$,3b T$^te9Iw s5)~"?%9Tk// %e?7 @2,۠'Q7{@0K8/!Ckh.>b!03K  @1Ow^ЃGKc=r3ARBQ-\xY ^)!r8A7* n`e`^tew\r!>c'CIxꑕxk[RDLF#[N|ˍl0qr-#ˀ~OZج[ˁd``EQCf]ˋL[ł%n)%8ˍ挾󑂃VdR0kˎjڏVcfՐ!gOːd+0\08 0 ˒'woK#[˕yΓκl˥ t;;fˬ6UBW#˯˯BQFJ NH2˲(T@>M˲+gioNz˳ nߜ3]"$7'a˺\ m(EJWD˾4ƅkwk:ԺO!?a-k0pܙRmdg2ر7 1tQ1mjxUQ `1/zgUoC1ؼ]C6Pmھae_̧"lUWީ4YoʱQy >j,apudgP9^Z~kTj7plϋ&q^~H, Nx MwTPr5hΡPpmԽ*T ;f '1H|EGxe1JO<:wGkaa&Eɉjңz *H)3n Jk 9.Կg"d! mj'WQ'% %B/^{tHRk?P3zŧ?}fp7/ =át< mbYf[ =g-v//FpҊ_C{^^uo$ixK%aLgo;s2 '[<ߦWVu-<$+М.6faFE_p>-od0JHF%%3E T&6 ;6e $zO0s9PxhcnOŠ o:+{Mܯ]Q84ACUj^G8H 9/AvZ֩>=<F.VEJ1Ԏih+̏׿VaI` iDw2n̐t/fa**0̑sj42r1ү̒]O60LuͶԫ̘hI ,K ̝-S2W3l̝_8Q1cie̡Z, v^W;2hA& 䘏K2Vm h UN,mU=zu'ҵ%L%_=;&6M-XNѸR{)7_m{hS[8/tche|p+)\7za.iXZ"KXAE</=L]2M;Q_~ {P2ђêwgGG\6aSNX,c*k+PWKvԅީA8aYY`+Ri.U pN:rWNp~e{pxuh: !'~pa@ լepD~ֆ=9]ːXnRńonn:1F͂5pgc3͆\zݖҫLyٛn͓iןE͙ψWm7֘bU͝-Po<"][M_s͡Y\%v4u͡ёX\"˰l0gsͥ|&)T6/~!aͧ{@x]cuǗtͨ{FISb=O6ͬBR7s=iWW 8ͯsEWͲJ5ŞG 8iD͸tdљ[<.@^32 9MxfM;5->cueoÇ_dB,'$3 _tSgPzSb"0BϊHI9Ab)G IFe1&*~4љ[pLqAq.1G.\FE|$\Q2H2ROv#76.OUDsu7L N_ge T#mHdgf7)|:-hAZqIsEIq"\W GbPƼqHUd/۲m-#s`w|.]yBB(s3y:zR[ܤ23U>*v͏9dɯ%WZ*EFE y,+I:Vw΅`j)Y#ᘱ<·TTyØ=[[΋`/gwj̜QΚatZwԧbGw_ΚC7E-^TΡ[]Sv+ΣXz?LٴcRЎH͒έo|&g~7;kcζ\ {ufjhNpη:K!V=1ʈηrc?2VJۀμ)l(o(WV̨]h%N-o2LЁ&@Ιo֛>i-ϟ"WwCyeB6eKZ)qxv."! -wAXP<5',~"6^>V GǹQl+Zo&=Xf1S|D9N/\`cMLPmY0 mlh $E15/f.!TamgAV0&~){f<MR\ =*FYU$v˯ ܒ4qA+o +{K iG*k)P1i  a\"_r4'r źQ[ !lRoSwPFh؛)x,zjxO1waTBa:$JMJfѺ!>J('>\XiE+@ă66FʤxwCX5)+Ι-ޢQS,w\÷Z㳴g"3-FBP38 @.;f8M7NMTA|p2EUZK]Y]{.6 ZjMKeL MuO\ZF8r{\on=Gŕit^rGMKŏ%j)_"̸4G` ښLݝkGnc_! awxM0>Ago^s`cmjUCF]rגt{6up3q-:["wS4G tpN zyQ~GZ74T'KπEa~UdRρbH}A0YςCQ2YY^rn6ikφZ$v"ac:<7χḟC8.ϋjW ۟1$O_ όc=k5;>sC3ώPyMJ0+v_ώZ l2 ^ѳ$ϑT@V H:_ϘfUTpbZg:" ϝ\_c)tϠ$oy/A''.4~ϢC0úURżkϣ95P[7)x\Ϫ{mtv76 LXϭo9|x7nerϮW3iFo?ϱ/ ջ)-~OػϸPASqANϽTF#oUSWοȲo)}DM/cayE̖+ED!bk" D^(:diiR*!pe+n 4Z}Hl[\b ӔS_^WhԤwŸ"R9y޳5|E'C *|w(|!Sx*+HF|KH@CwP6/IIеp%,V`w"Xָ`K٫ -2)z 6!gEy=w9=[zNVJgW#Gg߸+n wz!nfvk= #`7WX3JA44Pe \Ă//9yp3EdG22X@S 9s@4y˪{3*>/qGtoν$~Oߢ2*PH4@ F|]C\Ny䘭|}I{Yj=TRx[ZwBתO'^]]TBꡈOrbjdiHu ]!@hcyw>t^r}lG8y3}k2nģ6,dHP:OAryjփHE )\R[W`sGt/]i up?3ac*"0ЬL4m['[йїHIn-~W"_\7 5|yʂG:G^ʽy@x̬verELs.b XJl%c&S}r6>|s)%nyEL:!Vi~U…*[Îi\`0߁Ԫ ';"ICj1TTFj`?r)<~|r-7灴[$L }IQC ⽕Lhҩ ЊjAi: ?zSE0c~e61"ME[MMSa;C*P19qPbC&B?ԉKt's MEMOĢF\QUspAla ^ijHR2L"IJ4I[9Wٿ?٧ڧ8@VZfPPkӯsaXǕ&[lǢR.X5Tdf m{W@L)Rhi#e NpjFhE0(ϻfD ak_ar9RkP DtNRol$,%o 0p_oB ©%wn6*Ѭt"[~6T F͞xRvrRml|z/JugxsDzX|8Cz#Qi?N4ч}l[dx3ԦhpчH:3Z{,3)#Iؕщ[#ň4WP?;ыp޲׮љ Zc7|Ճѝ_ؒ.>Ijk0-ўt#WmP9*ր.;yѨ8$Kh6jwѫM>SU$2HѬU FczѭZJZCѶ綈S_ӈWmtѻ^~lKΣfѾ9^!RqZѾ\z#J~DѾQH5=؁x'qѿ$2?cP9^z Ht5v6!Pt$rx fZTc"#}tk\Aٓ4Fc8;C Z+Nì-v3.ı| &6+U@8__類~R `1-abmb&@Ty| P5ԡ̣=Ӛ=+eL:!)Ш`B!] wfuB'baReW3oIV!kD5_?sR 2_,iRDbn ,5\dhbT>JZ03?zY~<1oP] ΂|gQ } 6:'M| 60s5"'V~sX' 2nsTw ̆A q&TӁaI_M b^_ ^P/FM@ E6dZat< p0:8\{yދg[I}.322<X"v̋V#rHv;`Sg'X\z!ڛO"])˸"_!ī -Uࡢ wk.]:@rxP=5a;0@ 6IU[ĽdPyƜf^F :}&m$~+w *rI͸/:yCt'2MJ[xTcDwn/̓(t҄;?7d"v?mUǗ{҄FM{9 g Ú҈SݫGE7NҐnڌ V"ґ,n;Y΄|{+HҔM3K':s=ٍҗ `{Y.˘G ҙHk-~X7y8қ ft 0|o޴1қ%^W,[(Ҟu5>fI'jekҞB񨋼obE]tҞɦĤ1p*غҬ tD&ц$Ҿj2V "R%ҿ֌d=2䎝ETxŽ~y'TOh(jQI7 }jrG֝ʲ (ْk՝̾swyLvTPئ6zL)aS-+ݾE?H['\1w#zccmt5ee 6JN?0;|nw5  Gs1w3L˶<\ sVh cl>J6ǖ(/p.ub <] Y`0Edt1H! ݫǡh)98ʝB,G < ʛT .YiYI !KKs5^ ȸQ~5,0*Lxd9i#, Y!PfOa/+uVx4Sp\o-M CES^ %E͵`;YFUEv5l0^?YEUx]1w4U֯&n_N(! ~%H3;j5.AbJ:/<,G.vޑX/p)"!/o;FYtEk^S2go#hnf46>CY4߽4MU]X`/9jX6dϱÎ,D;HD5!(פCt3Sly]xw;b|w3ds&+| V2|2Ь׮(x%MCӅ+i1izz.u_JӇHr\0Z;bӌpMIv)muVFӖ0P]?;H ,&Ӗ2ԯrzU`7Ӝ"KR^ό6[Ӣ-R=tFxjt1ӥS-J`n߆*ӧG_mj#4v{өs'kwrӭ /T[Ӽ{{/";,! okrJ_Z=k (%&oz.= #h]!y1D*R㛥M9yDs4 }x~8$b ϨL4Bqށ/ Q aF'%@8Т^_b4^zDYŲ{ķ @L@px[: CP>=lΜ899O+t/7n3UU^WùY=$05,aa/9Kå5˲kl3O#`uQ!Pw7lG$:Z'Z1-H7f+ꬷA7֨Nk=+^m%O)&/4{ D;7优0i.cPܑ )\2 c]fLBڽj8rF*l(y.ۗHD:!# CyZisԗ@-8̬V|@lԝϻmTu׫8Ԣ1BT}G7k?=<_3ԣJkۆ."; ;ԩ8kG~ĸypP\Գ\8c 1 |zSՖEh2 Ú4,-**ͻ| Csĭ\T@=FG+g%S_X/_?Gi5VA5)Q"KdfT|U|]τX/:-/pu*>Bo +W,gHo]toZ{'Ս;f?`C{oWjYv>7Yz BAokVWǷn͗)󚻢} vwڛ&=)z;mڢem\iE2l,7= s5 $M(rՇ蝍 ux{0AWՍy[po˚0MC)Ր 6ϧܼ_pqmo F՟+$oDkpz z 9jգ>AхPv}6դ5."Nc զr;%Oj1U*kէ#wOmaYhթ 4 Z8 [դկUl|sX* sձ6fpo){^ճS[Ceյn[p|'ո&2Z)ոe>Z˽k$ &ռi}S!վ&,9~= a#!Ֆ៪id3:JVC\WOSȖY/׌)aYz VwGmZ5ԫoáUa'16\۽jm[3P㳍s{(,4cJg{rnHXJR<%JS۱id/B+M{bC` S @)Ȣ>`55hWGgB앾?VeT8vW M}f i~@p`Hi(փ6旖}<aICk[Y3W2oU[ބ")D묰XI_6h?0z>е%E? W*6߼b-"%0?zJ 7 ݻw0"QfA21σ .mdc {2ۼc 5~Sв |j;áx& k\!\<7HlgBq0lK:4t]䤺U .НU[\M%:?$Dnjm sm`wAA3nAb/*h =r"o)?FJg1B[hw&'{6)h77(jƑ# Xxֆͻ~2,w6%KvM֊2׏#UCϢ֋tBE6< (%y֘/-UUUQ}֙Ө]-¤/8j ֣ŷ&vMFC2ֵqA^7~F?@)Eo'Wi"x/~k*en95F5yek46p3}e&D>H16zӍڜX0~uCT7Æ4,Ls&)| 39z̐]UƇ@Nr?;ۻkV!]G4pܘA0`z>®Ms㻆AW0RBsΗ$1hHҔ_hiT(_nYW;RW~?}DתV^L#%׮3!c*c(YHY1״}reGBވ:JB״Hj0F ׶c!o:Œq7T׺18WD2z7,׻)7ny Q/׼,ۦS64=]nho+?*4RZ&X<7&VڊA mS9+&N>xR%!gƳکWWTB󣴆IRG DCW[ĂS]߁ꕓ%1ԉ{OvRͶ11\>} >I(xIaku(! Iu*RL2w 7KWR)K4:0nDy}+hM_*VAf"vޝ( rb¤H_ٷNh}$_v,< #)Il.^k3 cbՒ\{D8? QevK꽖S9I|ojDƚfdi i;?N,˙W Tem5k[L2)%B.2 9.jxn` >(_[fjh'ğN;C({eɯ>˿V(E:: g9L*I>σRZO`I1D-q#L'Ek3sPHʮ#%JN]%sOZ5 :=x~6!QM<-qxQ]>V^e,% \]{W=\,TN⽡gl8j+qNkJFl2@G`T+ؼGX"oqĦFKtWZ R9oxSy'p'~{GcoΑ=;bzI؊ 57NvؑZhLR=laؒjVC,j l؜$j_2:cgأc$Jj7ئ?qemkCجi$ *[[K%د^Î<1CTغX6!X\gc(ؼ^N/TjTJZؿT2-%> WA:nT, EºJW {/gj/BҾ~ =ഢǒInC5GǕ/+"V*=PʲL-B՚aN%tpE!4mj<4?^aԵ&(oQի79e __J H_x$#gCו>a1ݱ 4 LY AKd?ǝ7X Qmt7ߺ3y)`f[;"!j|4',<]XA ?"j9üD xm8! 4o;'E2~w 'Ƚ1G M`U!Gf:} 娵#2vTXmѫwiy^ #O5 "%7z@Filw7V D=ܴP{QSj _sJXF@ԇ־(˕'G-1$pfJ++#=%|j>/+Xs&=]S2Р:y':F,w+X:oZT]í-?CRݑ1j;0p^IF+`$4Y15mcfpƇM8+}`~둙=w  `_[]C~ۀ,$ab }Lu!5吆mH/&~M~vO @@G4O )DDDŬӭ\QИx_"Vzi*TܜUe#?O5)W *0h.=,Ьe$goas^rkJojVɟ[έx×uH#oWIܕOz&`DAV(M8-|/8xNz.~~ "Xv@ ف|Pu ݅PKوyPM)a*%ݨ*SٚxN0HF' r]ٟoyD{< S٥H`D+~JI٧0I+!Xٹ/$zuԴ`x;ٹZ[ptC/%pٺ⁳`:(ٿk!ъ=B!ªoڍɋ(!-7iB$275d'V:C_N 0GBG)tܾ٧ԊI; 7$26!K]E5f @'aTn rV>}e4@C%9m]SCG({WDZNy ]Fü}ZZ`۬&Oy_Af1uw\ខ/uB'C' : c>;/U ӾpAWb!r5^r Jpڭ{p8IDTr}}$ȾIK^pɅe] U;sXNe) OP4*;Iw;>4 H K\ `i/^H['>_(BRA,U{, [_΃EFA gp29>kˉ_$X!zX[`Ɍ/: u$wZ=b|ECh0F$ NnzJ 0%1&b% hT:LQ& ~pY>3j)<t[S䑬MP%6zHHIu[=G+7O#H]:!ӞRIҥhMsXȾ*I[4l=J3"Z:T^WkXҜ[4MPT|I l[5O)Au8azvߏ[A֝*}eqօgT\$THfX/䭄4xlWU5hIեSBűv+GiwېL*‚]C#jͪ_@lwh糽Mm)2pG39#Ķq؎3B'4h{<w ڄ ⬖,]ЫDڄ6-"jBd9Mڇ2%UIıC{9A]ڊ>ZS%X1 35ڍh`ԪV}A] ڎ %6۹ߤd}ژ2pM\ }^ڙz0Ė_EMrڤF iHK][ڨsÁN1.otvNڭ'SPT.z=ڮOJHCM4WVڰq7%ѨrTڰt̶#=^tivڳɵ)gF; ڹ:"NI:u\4Zgںrm<{iڼ W= @pXڿŕ Bx6v/ T[}?!#Ơ<ƵD4*cD^<#}D!9cRƢuE(fhJWx 1IAr*C#>6cfC[##"WaܟԆ3?고" uJ|>=!Nd9xN|(waw ֤z ]6M-#U1f8[!]32ֳ|5dolp 2fN:wPuD ;Çs# ٽv.'NXu+L#/(,Ff4 ,Y`A͋nzO#&(6VdB'&nn&ʸ$0dMW`% -4&Ђ'{D=R Ǎ[99O=qz oj Mu9Щ3$`^V{Em;}ʥkN6+L=ƀhsm{˾1 NOJ0`N2+SV.^V`싯J#?IPi`(Y\e&Embʑm/CP'8jl_NQZYT ڻExn$*65!żR=o7AcS5c( Bp UV"=ՁKfuPAig2`y=m(a0:YrImyFۃY]AXˉ @;3^!ۄSo]QizEvۓc4 @}X ۓThTi$| ĺո۔ 5 p|ەfųإ?۩)rv{̲b+\۫IxȔwu$scM۫<iV4ۯU5Mh9@L%razilN;҂hl6,'oVUϡJ7ZChaKT`~>VTL4èalʗ[E3"4FTC܅.aY`~L{ S2>;di}F Y$5VKqΣąR/K ^F8T;W(x͙U\.' w|],ϲ.Wa9 atkohY86 ̬ct ~sW RMe2uf;Ya25oCp>U]~`SqhOBԝ!0j͉9MEٿyݪApu/m$א5ά|?]V+Z(z$0O)$j)FJix4,HY (-.Ii16w:u \@jڭjL <':R`՗ښr[kQx)B%Oy1}Q*{3G^^ALY0Q s3^()JP;bg26_QxOG@ddCƢ?o'Yf `:up:QoQ̧m%v(CSEz2'|vМ|a6G:txQ5|<ٌsvzٌ viPJDg@؁0܀C(>.71gX*U^܁LcojJw܅.$2/;܆O˃:v܆#q3*|zՐ-܇qcQp$Un=ܑ9=lː~(bͬܕF^sЪرh$ZܙnKsڨ6٥ ܡ`0ǝ'4e K ܢ[cyϏIFܢR6:ވ.n=Bis+#ܥVv5ĵ4F7Gܥg_2!x\Xs4Σcܩ(P\%b;4gܬo%|hCnOYܴ3ϜNi_&"Tܸ&C#_[+&`crܼ%sT vg}ܿ}wFTm 鈟Sќrb fi7:a/{wDmMTc6C1aБq5 '  @䋄m5窃QK)Cfd=gA9\ ؍[z͝ JjQEؕos~VaaloqhvbI U8dUr`ww/mj{$~}Pn2~A N'蕘t8;VfK£!o"*ℇG`Eţ!.Ml]!T n~s{,FK *^_PA7HZHkߩoly>my},Qe~~|!_dGyؐTq5K2HAzқHdtլ~Ni .W#vbgM'IV3HIF=K=t96ekD~܂B,$b dE/4i+Z~ʢ6lV]cK~w+ٻ1 ge ֚i>g9f5sjiQ 1m7 Ӏ;'*?} "w^t`kdo ST.<݋AמdžHߓ9*e\ݚ!]NI A#BF1Uݛ_sDžimWݜHBe-lX"ݠ_8uGOCاe ks.ݢ9aa"P^L8ݤM75B;<+E/&Zݱ 8̡gs\ ݲ4)i!`qu֭ݸ()6(7^A8ߖxVݹhD$1[6kݐ+ݹkIq'[QUݼ >{Wa Z/2:y`p0><#@#̣U55ŏgvIUիCgűT|?Oώβk yY 'izAK T:[J[덯4"n*7=ݙ|=7qgn-u6=JPutJ-+J"Q\7 X`-2P_8nX#n7I:ЗJ@ ;sP||sI=aARy(AKӿ`Zΰ0qR{TMb'^?v vG@R}hemF#0ޫ/Ki7ryVDsX}ZꌍJ/6H3 c%f[t>[@ wN[ra7~ߡ)gjQݐP jɽ$.zE{Ö~ٙ {,nr_^;WT+^dy!#YK$3?QO Τ;UR$?QOn'˜e{\^(5GXO,_-۪*P+=w &1p)GǦ@`rn5bj&!plV$ E Fk@cڜJ-vH}FJ߮AU#NGJEeSZP6_ 3#~XȼnFϺ\X9ʪ\tm]qLRe}N|v\g_aA7L%tEzh8(0ik}*i{̴bjN3_nĪBt1:`|@ތ8>l$tJpt:ގ 퓥,B^@{ Oޓ#ZwPj zHmޘD5}SSޫ0QsD0 Xެg4pۍcWT.9Ą&YҝF1ݪycU=ボR{u|CY ]p @S 6]Β5%0 ,I-x@#h z0Y;u=Y7㣂~ٷBD֋~jCe0j 2wAy*s'D-\vQ @.gi"k) /wkZ (2hQ5V-)ddRIA=za0e&{+Ok1̔6z?y߉FZ7ziO .ly;Խ8 >%I ٴ:AH=A9^UL=:9^=Y>o6R/^γ-U?V+f">B[V,.:bDKyXCH?`kG4ҭ[-֨IS ~ʎcaKU /oZN?x`Q_/Rsc,Hm1Jneg}J^qH\o h˚7 aO{W'# ydd@9nBP梃ppBEp;~w !kwx]Χ5hF{`J&6ri&߀-iQ,kxW@߁<2V%R?Pq߂@a]N{4[߉@U-؈cS$-CAq:$ߋ~jagwNx7uZߏ*tØUo&(:V;ߐMjר@~Uf'btߓ+91{[Un>:)ߓU ǥW3UmǫdzߕUZK(Rnߝ[ Ou1THߟD=Mɣ$ߢ6IsX0ߧ,Az 2,iqWߧn6|L.ߩ$C_ c^V7u6ߩ,<6\̒Iw-.ߪ%jJp%4o კZ1x*0,CWn, '(s%wrP[ä0¾U-cr2ؓ~gdlG5BN1 um*Bc9XWL;&v EVX7N.Ja#MPly~A*2pWȵP%A\,{R/D$ ˉmRۡ8ʯ#sa.r^שx(fJl,~To,mEpdmE1!&]ndnrBw_=a*q;ؿ L-?5pwK1( ^7LpD({M%vױKE|7BWˆZ=TgZ?JC8^irHFM m9?BWD/蕴ØE``DY2x2+eTϹYFUL^/#7jMQn[[1ҽ pIݟٷ12 6pBrX!IF yۓW2j, o@!_*eգP%ొEq:!DZek/cw35d,(" ~\5[3 KcȺ8n |fÁO}+ )kT.Q`>lwM>0u =2Lؔ)0, Րb0鴢؞C¬ժzKn l=#謼I]xV/!} $?I駝1w@ /7Ԧv#v-f1=M@#]StVtH53a:KIm <%%;7P܂Yh^E{!U fm EY e;IP;[v*uvXSRJ a/'SxRS:Bt\, [KVG~VS@m#^D1Vxf=@ rp+AXN7^=%;ГZ"E8MH!P^7BgEE_=>_GDoJC[bI@t8LdD,U!7&:ek(8Q|Єǜۻ,iGd\4NJ8HO'iH1or(|ӜUDp8S4yn@eQhr@/wOL G!FrI?PQZhQ:3(}=1ZK^1ߍ;yr]tnqY!qyIH誯cMؑ=ut (0 bwPԱjʓFxH#N2Ko __`ks+bsIk Z _A~F*dI᪫:HW.@bzz'_NfcXZniΘLXdoV(UR/ᔙJ?ӹ;o~O(^7kP Zl5s,^"aSE'@YV_gV7a [E9ԇXs(Ľ D7YSRjHoFDcq ¢#˱4KWkC dԴAX G{n+o^bA}Y4;zꆄq6OQmrX *CWVm v(%-Q ؘx獐#Q%|r,UFl84 /{e"kg^Sp_]Ld4eoziD`PbHnZs[O1mZL[='@q>fZ`uDDzY"!Ʉ`J ҆#_DeP3cl] ƾwyEYwPfRpq }@J[hi rDaSt ѹ@:5Պ=Ι?.fh|n,ӳWc{qGK8=* 3&l( esY Jh05`ee% uU :lI*g9.4^+g:ou~.'*M߫I;\ WM)8#J<=A᭞E_0r9CKD/PcGvGwQ10zbyX'o,p¾zZK&~W1xav*foKò]=:c5}Sa[++)Ffmn?GП g8"L ?`#, m4aM}sK#?Ts:$={JQ98ϫ-O -v;0pV`P#sĮVwXr,捻>>h3%*IŰ~]+w"&ュO2&ɕ& /54&PT㡖4oCR+@X)$M!0:ͥuRVqU Ir t+77ث/Y QׁLH:#&Sm.2I{R#\|X#"}ımeΘ%ljh< {U? GЬR|C`ؤo2(tߐ+"ן #Z/"F.H ՍB!c+\Jmspၖ2sV3 Ȼ{ԯG~qӥ\iw(7 )/dHY!`qJZ\[Ǐ.ԷZG(#+q ʰNO>鏬{{'BLݮ}Ht&B{æ(sԬn9a#* zTWpHvӅN x%B]Rm٢0X_Z߽؞ F%<Ųo_}0"nD jŋ. dPm)6B΍LY/1Ehw6q#;cُ/:2 kQA] #ʯt4pTY bL ujn%a² >"`OY"GkU'<*Uxxpt?w8VP&2T8'˿]"2uI=*Fw|&%hy#Q23+{ =Uei<.Y^-P;i))::5w&u-; dG3QIz.[2J;%'Xx89)D%_]3Umt$&VJL)q7e߆U _[yQNASC30^XٓwBY `OYC9qqeu9AeDȿdL0Uc'geOXi.giqFQFHW6 VMhcBnqYUklU&8gpֿzԀt;oLkp=;SNPo^v.ɂU ћzr$ePh/zdPCOt{X?'68ۖ&30xCN52Mf] JWoi/MYMǔzzq]`3:ũk;oYqoF 1dwU͛DO@`r,]lGd.?z~Q?a䶽άu!}#qtA^V3R ssSjp |F< dRb6m 1ym&bІwüYAf 2i@2č{Sp]xT{#z8iDͯV tM^DV?sXS46$af̐ r;c{= D/D|$ 4˱3uߑpmcj~'%aI(Q 'm'x./y^r3]Q3Ӆ*^:Q+bViB ! qٗSlt.襶nuiH` u~.= wXPD'0 Zc1%o)@ }[aܷkT7ūHb4ؙ?y%LvRcW28<_[ ;a? rQ|%t?l-(}RY@9_uet0/DRHw=~/-Ҏ2Q!U(5bνֺR8s&N5k76*.GS@8,hE#< 6ؓfgη?z{IxEdR>P7BK Ώ10 }dLbQFV*ܼqdT&ǀĚVq~(2`V^Yeur< yy_ I__.)?vc:v[fpEqK=9d'Z_e+ } FhhX2e3uՅ-b1q/ZY~`tf07׾6탽/u4q0aVojym]'cDw)G}[pflS}:IH$c3~AyHaH {aEj|N!~]xp}-P卦ML'd<*Y7$ӄiB ,ݘʫXŽ:G5vZ5=̔jͯG,垧^uxA֮*}<=cSyy@p =ZTr吘)el:7R>0fdC~P xXnńc^彀vo\@R 2wwUE=43f:η64' ٷc 2>\7Xu$S^A<$ƪmjҎp۝}*EMu6r- ~&do\N$5f`H Iu Չ_/1. a&ٹ7R`g`i14sq8zֹ-Koef~ J;C!vXCގBSų<U=ZU17?+g`K.lfGQDFD^;GM4f6tNچK\ړk*h\愆̗BWK#H/ 'Iev2}Yv⛲CK)wZS楊Ri'J昄-@HiMŒ8>Oj?":LsBH,ΓY-9z-Ecŝ]rmy;Pپ;x}ĥS+Z ;-O+:-ƁP;tY]U] v=}xV8>0Z.WOnahF${.)Dx%Ag蠨~uUA"X_[(_6"">Z&$G&.}ljpo SJB3$08 | z~%M*bd@^je Q{ sfll?GYm1yӽ\y=4S!=gHbƶS0PF4[(ޢX;Kv&8LL Q.;TvȃXd'=9(DDrWy2);4C0+`禷Y'<]QRpOr B3 0 x{ +x51}sO7 wye XNOC}z$ :TI<UQ ='f,6%5uzj;!X++/̫\dC۪ p2f&Ŀ%1\s6ȶ=9Zcu,)40&9[x)5GRf㛕Ό9>}Ec+Slb2P T5/FXh랡(/QM澾:0ݐˮS+At'wpH;7aSM q드T1w wn7TvIX#kЁWՌ@L4Lzs7OX9|+o[XEm m.x,[v+qkrDri|w똂TA~`tym.V -$<0o`ily9d.+apW#+v:P7$;=˙˱Fo?a7C:•/F*+V2n`3""W`[qOpOS- +SN$<_6ZW^|w[h>hVV va2$i @N[q3* A'Aae&:De>}M8*Ve|M\\/T%,_6[i&U 0h%u,xl0mp; 2*s<$1)\#NN C͇ȑ"_4CHz?G"qF:HAj5#cJOgdfV!`N Xb4bM>|S0U`hW[ ᠃^_,J 4 o8n@ddgpo3q]r%{:>` x,T_ O]J|9V:zW1siRgW6`|6pH@NC`6)7 WX)6%n]kSw#"tQ ; j&g3萜|@("Ct4m[#sv $ځS輶Txmg!N頭G#~"HH }I2%ӗKlĦX07V~-M\g`c8FIJQzƐ@՘;ᯌlڃX #FŰܾd{t%"xS V#5\ji_p"ce7ua=Dm%$џʽKdռwQc2lP?;ǏIjc.Mo[%ޏbh,pXjRHpN]vX(PѪZWlm 5u64!s?k&ż!*?矡D sWqÇb@ͱ^z595HɖB):yr}xM| gڒ[ BhѮ wΑҲ`hOSFD45p$<{e:;TдCm-I"R _.BJC -ot$B*#rqx23?'|wr#s_"p-7!*@0:9SB=мˌ+ꤸS,\mf.4z6sƝFvJcX%y/ǛD2ڒA7+ߴ6=zO):_2<+sk` >O`p \DE @RMos!=%/Gק7Р 'Ki:G%ف HHHp;ldJW`>.E5W9)=wcnǨM2LC^^7>7 Omp>U4xW$`YU钽V<5;<锣Gvfb71閟1;]O\gLE2p"]]_#Ibmq+zGEQ, Ksq,1i4\[H;wPIw[oS{9]lt1"o#Y)c'}33B:8Qj7po |[by=Ya*b+Y=t+!։p]$鶴^B]Ȧ@C2-L{uY;e3 60+{8ȏ>%\Ad<6m NLc`Ix#t8KplOп =Mo >jBt A<"ZCqZWBs>UW͓OGO* z!gĕJK}|4KdDT]M,(d^GEOPw [eLZT5NH? :RE3[K+F^;28b?RMt-[1cw'/W# c'$C/п `g\s?_3bk,kI0}|ہs#H(){~uh2A4 L[08Ӱ(^Ա<Ԗf j X | *8 !*!v8U+7[g꫍cfu`0׬Id37; @..+ d׹E)}i }d(#$$yzGy&bg_Z_;k_=K ^ "(ϓl&"ҥ7:-{< )](Y:W{GayjZXS = Me׽KHiؓIDE10=V$nt1o:h2/2yJx%'Y{v)FMP/GpЖeVxqX.' ~vWfMSE{s{SD'0, jF}#5N}kO0i`,Ь˷)"h6Re> Rv2dw(g 0?.?@[wV )|a4VlY+eV`AM`P:1PrG=z,M/n O2K2xIɻpS)9v} ,贑; iR˚!u]܃*..'6岻T!pWɷ>X@s"#%u1k&Ճꏎ&MUPԟfJP,`2-ʭ+ =0Dkʦ ckukX0TևjZUf^>i6V|404!=7 Ʒw$+9u uPgP/c ;qzۗ+@DweC|>KUO[}c$NvCKUHubJ(tخ]=0mԮ#37%acZtEAc_~ 9H94 Dg9,y9+x o:+`W_L)oF‹ ĬҷJeht"n>RN΀|vu>G#[S8}7фB2vsۑ0C&T.ΎMCO40A O뉏>z;" "tTŮNˍ˱xpYF ;VP '_;abW%ĝl{e, !_&RucU_\R*Kb|L F*CEQ*5kC?OIpn蝫o3Z빅2 ϻ] շdlZ?ԹU5,v˗|h K ƼٜaiP>Ff_Wh3ɪfr =$& :ǘ6B%x' UU>ctVm0?7ݭF4b'j]퀗3k.#EzJ/2>K9N /8M*6bϵ;٣umS,by~?K eվ=@/ 0ᓊBFfAl>/ 6 {bPj;!Jdm9IOf,RT [E]60F_h.<*{"(^_4{RdYLGG+6[L*76""AV7=L4V"Bx.p4l?(_T8J`sF;;-J׻=> ok7`bx.H2!Ј{0P<p+8qi7@MC=P EPiW{ HRhePF+SٓVGD -[ײ',ĤϰưOF>PDE󦚒6qS7]MŇGHݹ"hbpps UZPV^̲byp&thŖ$hs>S>#m >ESJ[8{,ܠN<h>0m+#uPfuKGԴmJ5e@T0ʦFk5 Grم*u $)LLB8H=k@a>h6y t9#)okwŷ@}0h %J5+8b{!q5BGĐ3{>f3{23ۀ9tBomu@BI$fEݰBź_d߽.6f ($*Mogj2ŕij,ZhH5Mߩ豜,$K\?oL`¿>rW=FIvJB&I&& \;D;OpdѓD N'L'ZU:N3Q45`ݫmW*VREQNwZgzH bJِfX[<&kݦ8g jv,` /&ifۓh{R淾i퀶жl:m~2y-EXk^)e|파8fAB3@y#H|}@""OW/Ⱦ6_%py$I#۪bcaI) Tג)u&-zE}NAa 62E| ^@9А+yݮ<@$ppm.(yׅnĮd5`q'k/Oa o R`FYNvwU*ZwlD;{kx?ج`Cw&w:;\P%I쪱J\ dG0_j]4Sti_:vZr3VPgoWK;{V r+؃qo/|&mo6 Bfl {\9L` np{_bjfk5#&.<0㰠-7~}Vu{oVq  WCk)4"ZT sGk$#W:~ҋ& _~ shN=Lش<9H͏p xzBd#hZW"dYͭ(b>=1g#<4do#zC%qy1X7 o%inm_Op(7 9RtC*1n_[c=I B+T+vɦ J*e.j0`3[l_q/JZ6:,/BA\HbM89{@) 4⿀lN?IW"+Nv&ʂY@療q/mW^VFp=Ѽ]EGId_#A=m^yq}6ٺ+CH^_ v`z\Jd%vJ@b8~?~H>b)š&<H4Fhc b˨TMy |eM[?e =[4 gU)»%gk6Ngh3,I;F05LlZ_#jV==#bxzjL}Y2q{VgaQcLE^^Mʟm;hL0W@6hyJr[XY~I S$"U+ є4q_CFM7 VvF 5㍷$Q];tH꿣E& c]A?D|T>56AGS;#"OPUrP"hv &Gݍrtf ,gd %'q<Fuɢ ߩx LdD- (@l ?k-7_!P_h;dػprñ^KЮ3S@^wڞNX쿊NDI4G9@'q?*7`chM *`5Ұ텀i"XCbʩLh'z$8xpt] OoApv`ߘ2:JS%3GZ4Q$]}d3EPM#9)]mS@g P_Z=!7f'J;9-sRgon5_X[_3>pPzKjtA3" tI{6B'| )v+|<P j BnyɊm~Yk4fT7j\ٽ#y/&[_ݓS9 :y[$wcH p8p,>ӥYm0T+vk\ +a RHjcs)OSEiVDztd~c 7O>ʄG+XE jKr[hڑ~ͭ,#&B rNY勞+ zpԥ+q?txn*;em9.=1A0"CïQI=Jr- b({͌mϸ^ <}kw=6~٫p[0id8Œ~ '; Ъ?MñLW JE{ʟ ٖ{o/D]LjhZVjs`1>$ͮ`2a:=Upg{rm+ Of%e7Ѣ8:NRc&`1>Y NT61W >zS{R|P64(85PrT?U:NxB8M OU V &gYɟYW㑬Ehjx|K\8t {3Pbu]m0eQo2LP8kAܫӆFH>-TFw;l^GT`':D2K$egZ\ֽD[2ڛKzkz ?e2طԊUdC)Z:~Lଚu+aҭC2Q[_=;PKe8E~]qk: u %vahOM#>,w HI"_3NGCK6 %/8*d$Wb\1W ƺ}*rVUZQ>؜QT PL#b!܈\F Fr`k@l\PcË&Eqtbõ/,!(f.@!l[\zQ^-gn(Cjn汅2%Q. (*MD2D@YIeeŰ,R q W5;O'1ojө(C6*Wₚ,$IR1,+2[XfW.@! ZM(&m790{tP.j.j(ڂT1`DmTkr߭̿2&.HtNLÌ5fe x_6l9}|n,5а6w?DK5*>z0*4[M%li4M4h?)80 V~k?H{um*nl LS5qB*)9{lF 3rcTu&rnB.uR" MU`gv$ri]f{z aeyWӽ:l0hQ pNlC6q͕7u:$ONc OJējJS\ (G7dX ]W;!f`2*c,06CT'l[" F8"+9h('# %1t #znε<zk@geϗJaCZG ?`MvEba1rDo(9ØTYCv# u `g# hDfC?2xN$ frGU(1ذZ9uh;~Tݸ]SHE.Ӣ"5}cDl¯ɚmuUE4V^1 v#%sjZQ# #A#p\W?@ԹYZ+m}F(Tc~]ZS<0eDʖ_:]iM͚E^6YZȶQBPC=73bqg%p-BAHR8*rL^_ARcN|3$3ӢUnuSJ#mUWӉ trG;7Y7Q.V~[|XIя?UKLb ݟ.&SOʻgbSx)ecWI tS-CJmSkfIs ڐd ssF(-J'_q|k(uAI[x[%%"w1n|+&'7BcA2kMiXreVBE193h~d󘯕64ڏš^!oEVsLQmxRO'G %>=>eКBV W{{7(9L_󪝘í@0?RbPc46)y_lN_پ,D5jYi@з 惧F,*QϛV9Xq>^dmxE"zB8iJe҈KG'1dDK'd:? FZPQJ> #ͧ(Əivw2_+|<jG#U[Ttt;&+$9Z7<4dׯlhTE/B>'hH8Xo`()c8}\WMKNp%MH)"NBZŢSv9P[`bY.uP鵓0ZLh{bYP·$ ~cV7Ebx)JPOIWD,]ty-JX˦fkMUXЁRo~:t$$d_4G%2̢ʖ8iQsi.:Mls4] ډmѪ]% ma.__ܿFRhc Dq#:9 00m1GѼBw>ZUA]bE37)8Et1pKLbd8M5$_ixPFRGH=aHB= ?'gyf'rQ_D!Uʼnxg IrE]HX31 @u#Y $2}@M oe}lOλ8%l r6tKt6CK y7* нN$=N~B](:Ơw B.!F? ~ wE"韷/Ҭ?=9Q-h#;S3KJxW/3 2LZ7o _k1F/|k+ȢgGrRU&q(`rT'peTl5]ZVsRQWu#\\QGA4 gUC\\z4?o$Uʚ_AֹNV.alw5QGɒh`Ėh3Yl @7dBު^\nx7[čkݏhen2DޓrQ9tV$NTD49N'JuR<]G-wN+A_&gSzN&~ND=?X%SE3 l[B}qȣ R)U8r{썢QA[5uf'a$91ISQLM)H%P)w󗡽LɠWuCT J&;j=O.f@$gxt ËS~U_bU%5@mOʣ-E}e0ZȾ]̬Y!l:,,V:+?Rp&ˆqcvȉ^j(,HH_a)Ciz U뒷 rYM/`K{a,* 㞎 \*!2.n'J e9[ijтVn}De pH湩jNĦՍΪ:!5߷1U~Wt~˫z*/1GA9] /8{R] ? K)0T#"Ug'ʝ@ ЀZlkgz TV7taӉs+ҥx[C?jh%wKnJ9<6h\=)ra)m\tQa7, O]0qddsHh 䪜"@A瓣?^A p[ ڇtj~A'q*#[t`܆|SI/ͨMӫZx,yqJ_wU +`tR( -cMX-KWK (f1љ iU#Von|2Qak!?9n&aTI)m*wX_h:2/i)f~aie(7LQ,]4ˀ:?S%&niJ:n5k> whKJ8mz.pyhwBJVv_:Fo|4DfKp:-!PH=RA6 x^hJc_j?wRlTm?exm V4Ѷ!3zpٱvVArDryvsXXaim< Y̤yYS S Ys;ll`-^7z",{`_f3,(Ica:F =DoufgP,d Zsq8ZeqVW者sNu5G"x7(|"=~K*U֮C}!0E\Ood<>3 9G12YeP!zvn?qhDBiE5i@^\SKٕ+qi}spE䝡*O 9\9Xf"{uNvwV!p0,Ϭ:o8f}}nna͂+NZy `SaPEMt;ny7&uBU~WYc%D!t{ oXm|CJׁEfM^f/NY7*]%X{_D[ۧE%U\;YpO!_J?}&HGGT.c_B,+g|Z+7Ty4WbdX8*?ur:JioB x;{A(s䆨#<] &p}IK"3t|Iy=r,26NKz OmMXWe 'b%[τPͨކA,UփQ@7Wc{j[V Lŷdf=g@ڊ ue4Ch3cSh^]S^ƼIWWi{`njvNpBl(YYW4<."_l}8[xvm+q n&8oao *Op4䴠YmSqrsqS|pX &CxfzqCx^P78{`mK}2J!f> r rW?eY,M⯭)OrQS9YbU5mBtDI 5Xep_ņK곕~Y5qw8w0)P ݡ3M},O&h0]FpQe]Y a83 {jU %YCT?_v,vlr8,E %PL)0Tcqt+DƎ)k5<'^ATϏ&`u'S{U xy@ܔ1m+чĭ( |E;?02=h&*Jv-Whj ^`F11ً^l{;6 *zFƹDn;/02w9U YXgY>*@1*5M@V1R<1=Ebt97-88&K 8ߣZJBsyC;o7IVԬ#L_\/j=W{3,hu\ jkG5( n/a\-I:8=lg7т}ϭyGh _H⡚ ILnŴ,&!I H֟Ա>VՔ_]+7#-mP!<$,ex-Ӧor.~re𥑗lP+52A7q3| H'd'T:GQ~l >  @3=bcd{BNHT?= =Xmh~ tB%q] WJFSNP:\yNGIE˾Lo(ۑK6z/ VV{UbK?"kdQll>Qx |-yYDTLk74*OXq-SZ6[@k`ԡ¬gS[`1WS';bH:*^NVy3^*>0(&7_ImUȢ8_b8YL<[Jqp+ G`[?pDge=ZeLS8Xof)$&a=wgPәۧ4[ĹP10j%%0q>8taHüٽj}c ղp2[ ]:p G7΄7] #@ ^r!yD$)X:u?]ʤ6,NױK)&.‚GI9jA y~TYo"=Mմ[<~ ,Que'9&I([Pbx>p˨}_y[cMBHUU~-Dɸa/Nt|lW\wwcp:v;R\Tx',RWhx/)I?[+23ҾwzkЂ.ϩfԦfs27kL ;v D!6ʸށ o9 Xk*uΗ(%q~_<$v0h# Z\ Kd2E1[diFG)'-/J`hNWhL-lW0>թ|_J&^1Y %2IiuNbfP 䂻d"HoH?YP 4epcp.gӮ Qb {CÃG(NǦpڨޙ]i,9b?I^a Q'j|l01d'(T:UԸP2$>ݩ1$D  'go?WY)$]R`XeNP_v1@ї S _Ŏ2f V4vѶ=^7k$P'4?&dk@>:%[ nD ׼>jͱ?ӉO<,5;Et>IJhFj84Q&EQ 9c?bMENQ0:/E0`+cSyAP H0`ۀG5n0]'P$g9]y/6YWo&g _Di#^/'q2h mP“E% #I]VIoo5j2nj& ^tdERJ3ArzY[-U;==? f| b4@zvd r{v֦ڀT`G/$l ߳b΅\#| GL-5h ,Q4%^\c2PprEjI}eDp楄u-)31>i&:mϖhո[D~y'lN]6i$4tʏ,:[[;ilR9LWcfg@y "2VhJbP蒚h1YV3"NAF/46p9Q \ܙ޲ƃߓ TW">Q/R^_+_V**Hjkɪe#GП ҭm^CYvq3Eq-!ɍIsAo<g9|n$D;MHh@<9ϳ 31<9$z\ֿ$IJĿo"C>ޖyw8MZ۬qa, ‘۪9sGbq Z㟭(H ,Glgy }?oh}w۬U*wsz`=N̋jpǽVG ÕJwBӨBN0z)0t8_jWB/:+}N$UC|m7v\FiaFvi)zTy>hxE`ר*Wlf1q$a-33fKxP3S#e 4UolBś`K>@zeu <NZƳXyI,])FUQK q$6%&nu9,eEK}73A^I;GSC3"bipǾdgjK54pGxuw.֨. ZD$ =Rb`j[S qZNLI_3VSNE#{(XlX't=΂0\J\FĴzHա_] ܽuOwͺo+9_M4aN7'{H[f!'[iq8YVf`{7b5n&fkjWB_gF'H-5n DY8_d\cpsLyyϠjtUs^#oCH2okft1حW 1 ;cgV3쏴v7H0Ʃ9SH)DA$eD|%d-~ʠEQKH%ӟae٥ZսnzCz-"4 2RB&)K6a$e ,GB$j[bxI/YRkdYQI$x44 6vj{ 5o&囘zLRpYj)H1T5{l@UCtDq 'gp̰6Wl6vǢK :<laO pNFTΏZo܇Ҏ؝;_#12\vВc?˫[>3x[ݕWWLU-K/kq >/N0}4'ǡCS9$hHl[ Y::#j9~KC>Ԧ q}=5" %c zܣpWU\WǷl0H8Y0TJiϻ]qp'm W D{eB:K*'E9ub[SAj*O:6֔e;PaYyG~<3ےUDg3Rُ)}rNtg-]6i5`9m )q d TϚU4Q)( UhV* 1IJ[/ 땨̈2?葧s. EK|wYS?ʭ&tW>h U@7#CNB8km3_9` aD'BN'@LypGv^:eG%;G}Dr8 {$-\"n᝽P$a;5v@HA(?2^4L̂+iOw_m4)P!'x=YݯyYO]ш?M#i&g]1! 0p@#S:R9r^FrASXd6-&ܘ-АšDlΩn}\20 GH_j{& I'~Bx%|-PWK4xٳ겙$>Q5UJpmInRgGjx:'ZU ;ĸqȧVƌs^(6+4!z\G"R~ܐY3P\⧝gdp6$=B\w,F=4"mi|mHR&$3'*n|g6W~ @okKꡂ̑vUt3߹[0`Jmfz{_eЯQ{Hw2@\uќ|L O1L(x >`%ZzM@ }BRRa>N-!UO?Š:LvOTgIJam `MTPp]!hd O=[W~))䢓Jܬ<(2]D jCL &'9FWFKVɔ݄P߄蘔-ҡJ5Hxnݘa95q+Q_)Ļ&ԅw+[)ܐw 1`jcXUt'%`G\)ぜ.@ bq ,)u̿K~+A[Ya~RX90I<@^1`ږ\"&is %$$JkPqR33.wtMR(  f],++n]#}2-楌<}:]oհ2,E(ULHJ'A1,HPr]M"(63\80WZa/v;$ 07p+IjA(& <]iK c3v N(> tyt<@A2^#FcK^>I^+oEfJCQ~O׵&ܼpgԟJ.2^o5zNHDdњr 1IX [\0:o` g5 `'Y:l (lTk,FaCߒωm}wLw$g!tgnA{, !%vb.[WꁎUmFw̭DE̪ZxlB::j T=hi]x~AԒ3,^2nT&8{Cd n^8+MM͌U +FKeˁr5VOHXDV7|1C.*U ϗl}1](!7*?DZVͳNUҰ┉ŢnᩨR~`*P;1/)+Э)/Կތpy aY6}?Xr3V| '"vYxZf= !m0pzaP~p7+3DPh'P*joS>c'ueRpSJ/@if+ETV_$/HTPQ-Wo8][ƞs2TB:o wPwxYP߽6ЎsSI $.ؒHG&8DOF j/#;ah}ZE8䷭(Z␆|"0jq+TRv+1讃un 8ؽ_); U+a &6#SExhe.;-WG9MՄvcE *1bY @̵SP:qve ef՝CФ^Px {E!~9y`chF\Z4o8sm`[* rNVHt@LRF&/ nv#_["cDO&"&@MoS'[өAxy+ma]8H)n%0蕯Zhڹ6E1ZV)֞X!3Z|_6cy=:.H䞏nod+6s/' 0PIi/?* %wީZypz.u30lZdm6K֛f鑵׸ ]1x7/EwOOiV*cbU@IڣȐV_&r\$>Q4`f ٝJ\ r-{(94|AAY]M^g[5?ż}ˠ$G7vPLa>zC(gȷ[7%f cPU~:k8^2l)M< =Ȉp-!w|8& 1*;pӮhD_u*Ơ p}GiJܛs :@e2~΋^aD6m3"v9JS\eTk~9P v %^śy.eB&qI+h݂pGXd-xa[;{lP+-dX[ލHYRˤ|9? Z,tm?t)጖mN,C-qQQs(0= 4EK2r W nO& 韽q!LZ*<5"YNvo4Us ~o+KBL8ۺ3c !.12Rmt2:HlrxJ<@hwkEYY@WvN'Dz,Hr0΅,t5s߬?L'!O'%.ܛHR&]C!&$+= )w2Sһ\'`QnTn"h,[ ]U(Dш@2F"VxAYm,>y -KFdܬn`i ʠiZBur+᪕ WrXw808m 3MrrJ(a!<[t }<şmrl]u+šϥR)ws8NR!{#cƹ(Wa>|͇8x/"YVbd%cKu/_U2j#=;DRxR֗Nh8Uf_nA߫8^ݸkʨ3 '}F^SFO|\9_sO* atW-FR5Aj3OSL}<+rʅ %R6 ipWtct!Vˠ@eR[(Cr%~`_e4% T5A dԇ_bR >$e7ؾ 4j(E1(A7L42_KOͽypa75? ySn áF!&b]nv+D6w+qŃK̞/+ez- oj^_xbEݽʦZ~ܢ]g}һ&c=U.9ƙ^)욐NVT``neNSfu?R 76ys"~HmS8,J'H;(]&`AK p,u\!dn|skq=WؗbwL!?+S9I02K?E{}udC?"JJwK{B٧[&]al׬X (*rO]ʴG((1i1coXȢLhs0Ax<É]vS^Rj9.ʮD{~\.,9i2"Q0Hȅm$Ffs5/X8wkhX5Z5N /[72oRZɔ@c:iݘTou#aOuX:{جVP$xxa{^%Nxzg_5I5&q2dUpt8#+CDq8@e ycXo<%nMܖ`I+W_#U1 ؀iuco0* =;]W".(*aMEa71X!]5gP79h >N< *"2cHmfN2\ݐ6HVyC~6O$3%JQxjz7TqA0='oJbFQyG^gwи=<o^v+A6d0ܖr& i ;0ۅ#:'d@ RL\~@ne@mK0yP6bBܸ. Ta0]伇xQ0v=do7~ KJ ]o?ȅ0+P3X~Rs>HxѰ0*B 0 {[YNb"og6( zdM,=Y4a2ϠMZDp~ZM.y?ڨ`5rO+@Ar k_I+zԖΆk0}pJ٧N;Ԁ߀o= p&-T@wOÐSF8].xiLVL8qa"D"eϣg=Y@JM >\(* .P([wvpɚ#`]Ñ*n80[BT Ӛ- cO 4f?ޟƪ*ESY%s:С=ÞWW')cOْ 5ʈ *,e{M DP ϼx7"~Lٵ b@W!E_0Y*1>- 6/BMR񴡭|]OXSoN}Rn_(]ګR2حjnBA)}Lp6̠<_L>eaW7!ݑ3ZD2SskpAC&FX 袦pdJ0t]4 [D͔T Ԏ:33s aj 9 /#Nh0WJ|n y&a;A1<ScIW ŚW_Qk|;U1gs\z`Vr ,XhDb81queYlP.5d}D! 5x:Tʒz[OoW)q3V]煜cC\"?FUt)vѳ厌w򓗌eDgYQX~`CNXࡷݕnEKUeCy1a|'<ܾ2Q,=c;g_eX૴հi/eZV(u.N^vs(+=LDpB*Ŗ _ʧzs_qnlĿݾܯwlY=?M𓟴+*צ`=%YZ+<ϲunKI4' k>Z]m-M4y&ql=ѬVI>εMPT|2W{{Go^*kpKQ~4=<@4t<Lxuf vD_'ݽ&mi^G@2Wߠl!S?75]hA/y3NDUiuJg]Za#EQ 9ga4)vV-|$oXcRo5JiOz IaX:Dc@ΰJ-eÀTfK9GrSxDH< )\roټӘm-bFHXy1?m`$b //7SD]rW@>Y<{Ł"Zhln\dB0,U;. ύVr8xe 701QIXd֝dh涜9z0deUͯ%UxiO+9~N,u0:pƍs)1Û ˕| g7Lz:M`ܵ1έF:U{v8,z58N`5ٛD*3 [`wHMx{4N<.`|y,}%hth. IR2q0ӣ>g5F4`V*yp0O?f9H.*mN\pejnQ\kOƷPB!>Um҄iƣPv.6p`㥈EȞ n5q-{ԣLCL{&uM=v1v{O-ICd}5wtC;:M.neDEqa_d[u"h") )h_^cQ(_Ԙ} B\ %8C<Ω|I0T=fo:/0ͣ$ruӻ ΢'4u)fڮduRdJ:QS24B}2`࿒[ŒU7qgsYUJ4`̘ uJ#<~s\:gӓVX%UH'FP^ZUA!9ӥmGTd# ̄;ؠCB'I<+I}98%chըOLq)_l9s3`暒:2~$`64aFF8oVA6IXEfMƇ>:w4ּ@f~^kg6sHQLˇY̟)*_*5(eʹQN˙iqUpS=>'@IZ R:@}kW3oebeg`W`'R#"#X>yz- }cF2[7х߷0n"g9`xCk$sJg!(Ve?)p9{1Ȳ??;3󰖊k0Պ*A1J4PHyuq^PU a8[I8gXݳsV:?x?GF6m׷ďh.~\Y~:׉e_*ee[6j="@6۫Jbߋ8T7[ɂje%}{sN)1 s`pioPO8ɥJuI})N.-?H5]bG=DWr#X'ǍZ(Q&: Ƿ;`1|_nn%\f8>"$`Ь D_%v-KV{oa_ qhGWB\T+RwNBC2,3MU6Wp̝ვQ>}9+ z",Kq{`K  n br~,U!^0@(@dži-.FǴi'X`3 `}n}ܤUl=tL$~hǚܖKSK+ԪEF2;2nN %Dg!1'+䒆- +n(,ZyM_jӏUY(Ts#=laW!س^ՆPODϔ9|!-[9A\{[DQ~_ns 7Q[|.97oZ4Sٳ^޵Q=`F;D12fj1Df 㟈?j_}q\iȀLA ;n73&+bwG׊u<\JL/JWB ?` jӖ-J҇w Ӷ<-3atPۋ 9 \F)ԃa"WXL׭ J9s/w-5Zg9]8p=[.F|Na,}}󥈩0%ayw#"(k]xCY?)PUX} |_WS`hewa(k~t#$zjED[YRM? mw7%8&I<k8pCQMuFb׶\4LHN#i%`7膮ҽC{ (@6zGY7w q(ݹ#Q̙?Wamy>!^rA|OQ1NjєɩU#8b&mR\c=lρyUh >4G/Ǫ+5 `PY٘lr͡+-} HUhU٦a7{SaE 7ql䟽euEjU)_YRuړr˦CC3[߫ <<_,h 1_L&7J\,[\/ ϙ0,K\ q|ߓa|{d?{Ý^!|^] RF\7HmA_Umܷr\ ђRz[ul&𣓔ETg!'ϐ/Y .B"a1W2;sy\K6{_|Ib@m{ w^/٥~ E_mrOjPk64솂D4&ZFi.VAdò@xJȮEPY~"RzwAREVls|P+AWj%2r%4JntZ99`&ʵ#Lh OS"L>+\IoFtxϋ4`b8CeJ”~}Q l%çB;y p+eZ(t%1T K:oթx!0|Rft ߸~:XEi\&WI*~LJmm/&[W4h7)@!c:BRGogZԄ"iD!(5& iy? +(oE^20t8yL e_w/Q6 ClҌAG9+,6oX:.a)3e|@}t#8XPqΓYtCS8CA|2iIJ?G;ݝ' -rQ/}#B*ʏ X;S)HUF9 YA9>+HKh4Aӏ3zgNu$iryэ#Ч!|3*b!OpӠ TRσa>:\ M~a%:zMH {K~)\ם mZ2$9xOg3jGbN>D<oPhi`uqΞV]|Yc!SFMWr7 qpPɂ^}s{oa/GHhjxTW=b+뽧5uo,\| s;ێS*SE8)=GlҠbgzBR9{z]la[ZxDD%t[GKmz{{S}dA8Z>\Z& sN%ar4"z1nizd S? uE# kufuxkȦb-`p 8֏;9>FxwI@TO[oJDTgP>wj 8f=zC)&TA.ڜd.<ǫv̉h/Sٶvy1PKDvU =BA0 Xs:Z`<`X,xDۋlwa=bzp 0+@=ilL]{_ qzO{1$F@CJVsqCli/Kg>$XFe 2RI?( uEb~!MgSV }4"ŐB'Ou;VY=C8f†xB 8-=m$kp"ȺL~Tt7´l8eՎI|ۛRN6NHRF8ũUY[By|6Ay: bD+znū?%z#\ER7OIdkx"PqBB Z݌Dΰ fګW?B֐%kv֥C a#E0<Gc2F-c`$shQ2V6‘,45@as$"F\[nXhRdY40&\C h$!+]3W;9_ިFn֞?OC܆m緡3PNXc+M}p0٪ǭx$f;rIu:u*Vzb, qz\ɧQ5P I'9 3ϓs%cQ@K|{eE򡵲Ui4W!.'Hܻom\ / }(Ǔ+6wZ! q $XΉV%hhEVHns p$HI9-Qc"_ f^zY1!H54t #B1ODC)$`A?Yo(zhТ1*X)U 5,!% YR1F"uJ, 4rǦIjieq]vF)M]cl^5%c-߲A*-j7r z .Oe>Wװ3!mi?T;g4G\䲀H'%uP&ܒa Zu- : ^S@WS7WZO xC`n$ϭ6j-yeId ,!WP=oXJCuHN-͔#r#,^3`,{[ -7ɞV:5IġϢ6'Qb U7gZ7낉P NeflIl IVFxĆ ־Old;̹#~o]qҵJ zfCl;B$ {>pYZI Pl>=g^pXqnUq)q& v[$ԙ4_}E 6Po#< dW@]"Q ˣ9}ue! ]_/oRjݨeU$'q8̜ʹޢso͔^9)Y#@u_Mٞr?6<<5%CD\zC8ӌ&Ln"ycwlA2Ld]Ģ~_i,y7-s)=a=~?Ez[e]Ny(yॠ~^D0r&yLϰB^xE3p:<%Np{s<}R%-"ae͆StLhF>!:9Ba{FQ柤.=mHrh ;C3m ^o0 Ǔesnܙ6U~58SLu{uQ YOV=L8#0>''6TGDz6a< 'Ѯp6*D,Z)Rk#}P2^:g6c3G56.uoOIZԞ0jf'*$:exX!aʰRW/-Ս _{)%g^N!9 1`/2Wz :‹rbU.U#v/ N0 ozC[䬳1CgQFM)bhδW?rWCv9ra~K)l*ɭu q-!w e w9Ine[gi=EÞLNNwKy <~(I|WũbSQJPAuJ['~'.‘4{Ӗr )v A.uq/]71< uN5[ LOR˓U#=(H^oOfӫ- I&cЭwt#& ~APצj/wR堩 ^O J* l2əF$B. -bU4L!Ti@\Q z-n:Klr渎ƊcѨ"ߐ2,`@_}HsvecV犁<'a9HҒW <ĪDkT&lwrH+EzSoke3b1Rg'> 6 `5pۤl (Hx[:D,}zk+bT՘ 붹BV1 d{vvW&GBh]i#EƜi/_v1FufQ g^ qyscҵ;TtNDeˮ:9?gzݝziњ3b]q9AYǎw5/5t9|c[X~F(R` [Ѫ勭e݊\ˋUתd LcfYBJ1eO&K `$mI% a6WWȏ'y|my&Rut09_$UQEΛh+6kolWAbrΌ9) ߋp2耓Dng1oA7zo$xyr6jBb'0=.:ߔR t^Wv}cA1yJ 5YNeV;\V>]p׌^F`5Yw{0ʂu[,AoȽiZFpw6,g " 2(||$| PiG+bc9]I;V-J]ħ=b @+_kar94{$j cHDJibᘶ˒:ʈM0>*Y| _ uL4V!4 BG@5"+@ǜ4̜or:`4g ![g6 < psAVhRP0If#-ۭpz\x*iwQCj ~u`Q0tQ #c%UOi -?q[Y&q`;i8)Ƀ$ I/I]LBJ PQwѲqiS7)@T@PV(}ܖQ+i ~x?9_[gp&} nk(!ءk,#YNZY^2עT!gH 2FVTK)"ɛ cp]ILM[86 {,AWf:dߤX.1TvRX2">X:fHd=;1i_D&bFap{L>V\Lg_H<]%{$hG"Ԣ*3i/\.JQky[Arœ/,:(1!XAw,_V{8سtg\ ?.11Iˣ2T"{RTϠ,C8"vƆN#\ek[0İqߍlIE{mS(y$!cY-9&,jCoRt0b\d_]y2XI ﴙj][ Sя {Zi˙\0 ﱛ <~@ewy{`%$cXB14,c e9s/ի"NG.%o#% zO/8 oKe%D/K73Jo]\#i{v,Z+8ĂʴRMimm/P^8 "x,bJŠ}- DDȕc],~J?Ks3tJd9} JGqV)F)A<4}81(2DϻǨl# -Z =4:m78Vޞ ݦ(mb=tzI 7{!s=1}޿\Ͳؾq)8IK,E O 4VuMC6fUFp=1ĺ.nG*p@uN㜈n 8+ ,҉/툾B"F$Se tyҹu"gT9bYʀNRSS‹^'|%ڴ<(7AIùˉ?2 ˙ w>@v;OQ;y=GM͋HP&'@_&&<6Td}a 0 2dg3i!JJ𮯤Ee3(b:PT= Sz/Uy[̨hL2d[*lB\>>X#qc4nY\l?ڙ"{Y4lŖM#Txohѯ_ b8u,ÄҺY^͑_P)CᔨbÆ Lyor& =X tLnN*`/v_9OQxi+/3kܱ]6U`j_ʟt*hQWꈉ>S<]H8'm ȭ_[JajlgA->8Gursk9";b, ȘQZ  f& VoccJcsAymS ]19!p/?%/&yw~oKԁϙȪ~(Ȱvy"'O׌P23SW wpJ1ާ'Wk}{`:28E C-ǑDd4q"o#?D35k\Ow߈Cm@Fg]qԏk i^ԺHܤo0}Yqp=ǣW F-e41:70NKȐ́YVU$1(6`,i0mJ/>4Gk%pc&py" .=NV)2%b2o ay"aGP7*y_HX8]ux+.2%e:۴ X yQk4c0]&62Nm-w с<_ \wM ˉsZhꇒ|KM6~O+o:Wg|kQJy 5Tpؤ σ3mL4]8;\#0q0c ^3p8JQAA?eXn<سʭu"nn)\BČuۀrWhmj7ʬ D4쌪 A q;" #9U8\ש))2d]7[aѶzI,xFu6iP $ e\'JJgQƉCl^߲Q_9?QrPk3x{CcL㳺ѬL{.Hgۇ ʅӀƃ : ]=5 *EWxsne0TA~[0r#EDj0@&BmmliMS27FŤ{pd6uBɣlR!D fb>?B!-]e"ZoB,HmE*8F2PV6YjdrzŔ [M+$utPRI/7 *xaLXz!uU)\xZ ` 2&7jegs- 7e T8*&(k^ǚvtY>4{tfϲsu5^5{yGK@`\)kF0,T3< wc ڊgs)V?Z) ;eWUP:[Unώh'#ՔUxtpTd_͗{Tp0:~'+vJ!CCqNMh_Dk^dQ2ha*U_`ʣP0,n0 G$,Ѣ>ݴPxduƙ@,::hW5X~pmvSXEdݵ.7 ݿVU{ o4a#orLYmz8zÁ鎩-h{3JFwɝWf?c/oKF{2L8RSA|."N'*Q_KJ믷p2R6@p!K!aN!J1Bob-E_Ӕx/?⒂i22M {Ko#1!mpSeyfwŊ7'1omNICz;CΚ^~4abA5[&ۋWT^@?Z&+;/iY5 FG9S֌'z2OX^jw똔k0aϩ3du++4h"YQuXbuNۡg 31JV Ǘ%w,_HyI>Q?VóCHw ^MؖQiUCJ ? =`38JͿ5S G{[JྕtQ$'!Ӵ}#)7Z)&ytfYISމcW ECIY߸[_pR hd5QTs,WF¿.wP6 ZY+G勼8a%KސU QQsi1j?D;4iYo}*uQMlE}*3+ =G"}tWq?m;/h ;΁v1ۺh/#4m'4݊)(l}7 Eb,6MWJxMHӅ.N.%_Meғ P4E`#~~8Ryb"j<'s MG6qA3x:6!R<'NDjd ^:S2- G9K0E/*~?+F&Wn]c^YZͩ6T?#}SK'76>ɤU+E͞m- F! n;9+Quy0UC}N?{Dvj〗j f.z\3y+Zn>Y\ xhB\MƫdRdrMՌ}C{QCqG\h*rq|íYGqRAi,4 4HHW:=҉p'kK>$w]AQ9lIFɇv#5L@k #=iG>ԃ.4Cx6d8b[ݫ[*K4EGOWP#z=wjrDxƼd7&25^{fRZhdsb9B(Q~l\;1"R剬w$>tE. hLsv1ҍShMT+Eŋaؒ9eR+ oEL)gFXDaa 1miS;$G^ʡfoK?EVL;ZioKl¡XhԦxc`%AU6y*< G>eOi$--xz#ݐ28= Aw/߷C<.ehoNZ1&(0M_Zh%)VoO1 3o#1}kGXT~97qljmv\IBle4ҕ l3pS!-mJ0NNrF1+cj>SM4EYHcP}Ǿʳ/np! )8@dv t{mS Z*V_QOhGlܲn0xK5縦S iY ͢À2ܪm2eQZpSLJoBTߌiݧ5 QdO" LBtq|lV3<ɚ7SYUxI'Q. 0uT`9x0.ʼn|垀G˷iA4~Ri9f K+uO7Oܸ7 "ȇacy])YY˨ѽ$]F, 7|n+}Gҭ m0q=Ͱ\ FF8"P7n.i%I5Kyx2B B)_ 9r0a_TzF.qœTz|V%| KDZ:E˜ߟ']0 #Ù^+GՃִc׏^~ƌf* pvu4k,>!7۱ḅͥkޗQ~Kk;gazEX/.{j&Vfͬ9LdHw#!6~C`*T5 \oL(VpV%Ҕ{b,-حh _T=(Qvazu9~.>Gg_NV< " H_@{(V16KbЍʘ=(n숓NwXgަM9"<XnKz1M5sW3Ɣ,j-銞 NC3F)3U*dB5oz*Ȇub}5P2]Jņɂ7[Dyu؅X6p;5d@@mB 3H!@ G"5%+r/Ym~C!L2p R'„cCr:妛*j0JnXY(+zYJylzX*S9K9[d"C)[Dg=hly9uAi#C 3y=ϙrY0v#1Uk˂x}!z0T< zcB:p$)a+ m}:Rh/`&_cVSLi,,-6jdJ}(C~tptۚlmc0m,[J7CתᑯIn@>HP'7NW%X񇄶n$ ~;A7Bգ&z!坸A"DYz%OC^  ǔ]q]ka;|y7sˇ(xŇS+nA.AKUM{ hY7u(4谏GyM j ۬+$NRXRԃ)nH&G1Mx!ߴ [l[pۈtgSOg b/]Y iiTkK/{ŵ` \Ŷ}f>yT0kfXR̝>"AQv+!O1*[f 77ʾ]6$2f}^kqiNf+<*ac}i9 kM ͮbɸ,4 9 dĂQ)y9"=٪Y9q>}'w YRA ^X~[UJ }%sC`ƣ0f{EM3Dhq҈>JG a~eY'J9Ǹ7*obT+4|B3wֶgH%G 8܃(}XS39[@+l&C8]"C(ILN5A݁1'HVFWPAB%W$L_q=8_PV f0 &~|[٦c4(KIN 1F ++@V)ڃV $@Drde58{e^>HsbB ܚL7$bw$(%rnRKzl gw ht&cA`:1 C(fG"Ţ7LNݰhHgFf4 {Ԓ/J^+>-dȄA=+Z?l+4 /$p/ fLl < xz`'-A%t9D[1Zlώn@z3ϢyqAb8>@mL)Kļ/bh0a?J.t}DTP;r)Kɂ>V5qy¡aaYQVԵȆYQ!5Rtf^$M4q`V\㎝[]:7X[:Sd'P=s ɕ@'{$pw0*+4EݰEZڜ IgGY@C-CYThvz:d_N: 㾕v](\h|):P ^z:31M~APڻ*NUhBs^bEX<]+Z|YajX]mХNe..gJ&n#-P&*Lq*ll\@jnlh /N|0y=v3Y[ml4Ak;TRl$I$VF^bV0+Rϳ?/)ZjYb2#^6:3MoqlӀ<#[I+(xXwݝaEɯCN, "IBzgpgPK<g؃ùNgŇssѾv Ӷr 6+r/M.M<7&: q7hTAdcSln˔".3] ˁ/nSyBmC 4>b'$J]0 :]BlSN^? _Im6 iag';ޑNBAL.kpt.WoT@qx,WXZf #|@ e)ZJ^ܐE\1-z}Due~ O=VFSR1H <1V"l)pu^ڍRz߉GLl롵p|a2W,GxFCY6=1sA!]يn Q0t.` XRl"]s] Ac.Bnw &Bٗ`~槔u{&hT=g1Bm5I3 &Ƈ稺,|U=azO?モ/ەū/6/)QMI3T}f)0$:;Ϩ)_+6%hN´QJ5tABI >qI0ܑr;UKI0{͑t`ټK /0wLS4isۺEnVc-䰉γIDF!p]rN02DIԈ3xIj[)9FUkBCOl^nN2we%::L;\Xdl37~"Qhz4Է4f.Iq ek@^.G9B(S27$aPRnU7Pq><^DbW_[l\5,OQPIOUx4 x%ڹSAoG?FBppuŁg'E?~;$֗[BYtrI 'ѷZ pݢ^DZz<~r1Vc/ٲrk`7(COwA\¢_ay$QQ@1&Q& HCb0,6GW^B_ 436!J(.7׿KlLh=n{+t٫C^ɄdeB!5D|a:6Xϓ",S zΦ!GLHUe2AJfP0c2KelxWM0zmRNP{wtL!e,>obW 9u{<15Y۱r{'q@:rpk$ڶ=w*5("# {4F=߽(dZSO#|o.Hۏ) ("49qT@s.s ͘ O%(k^=d"}bύ?0}Y"I*0ЮɂVGNfls{XMw^4-fvs.ljb ^Mu&.OVYgS#6dRUd|ܽhR{ƦeL+8ŁO .sY }Y(k֚di VG'LvfA E3㓄FXfjȤ(ya4 "9ДCTIA!ZCWℶJ1PjNI&|nC1c#5>ntw.4@9&x Xr6e$n3̫m}yfOW?wwVweB261~鋈!6ziFip <nZшѢ[Yr?0. 6E@1"rqf/'vӲb4Zơ'ɊJ_Ws T;$t V^E??АkrQi[mn!̜)'H?H{!>.\L& ;ހ,2) cb87j-?lZH\s-slN6c-G7|S$x E,rդf@HVݺ%sP/Ml0et{tpSYWuig4y_K. g}n) n]  UÏ *OjrQPfa?KamW HG3!^+ޜ2K QTIxcSWqT| 6eA TȰSAi'`HRt6~nøu+OsY > `FǨ"3c_ ^%)0b fAxVHacfÅT"+(-n7n[ͺ%Xڢ>`9fro1$ K,r-zjT5:65gbgӐ| :7e`9BOQP^~: +Ljz-/mZoX@N̍BMyW%?/EȌ[:4LHV>z­g#:C b˝7p'' о[yxĬu!lH's%E)xc:u1vt!ͯ ]Lۇ]9XWg㛠[y(+a j<6Ŋ#8'X׳'L4Q7L|KhWK//A-u/q/74 gUy a>^-^S'߫4ؠ}+ b4ZzK._^K^Fo!- #lQM.LtEf- v„Z߼\08n.1rN LbS;'-BZ!CNehb4!R3б܈ C?0BZ \"gc!:)֎Y.,ۤpSbg[p$L| BToO xC; ć4!jP#a:d Ȧo6ick K h5F3~VXK6roЃXv+>QmU"?:6تo2XXl2  gp䳖X?ܷ/ӝT9,4S=:k.i -LDRL\~k[GM.!{/^]țip#bV0l#vx0XБP$?L[QlPǦuOKä8+RW c1)>D?宂֔Qb܆lG#sM.0w ֵ`\SO"~>L^+ByTF%8^) N#nʫ涑+ig;E{ڴdJx-z;!0k]#BҎm_ySjp ĉ{ ljs"&9rI`hsQ$rZJGo4'޹ozԅQ~!#~Qa )9IլdGĥ(zNjM^En,):fjɯx.R(̵YVh3 h叆tM$ޖ+#Ak3v:%*ןn{hB&I{Λq% kӚx£qyIz6xI5\*VJ5vYK e56%m;_exٖ+$q]nzsvhTOh͒E}[P&! @-P5TXB{)=+vaNw'Ԋc\"Y,2-|BV \=@AjC͗CeTF#Hm&\<V٭f%4RzFitP[ՆLZWRɁ^Dk@uFeg>>1'6$H.2G:TV:S"0] 7IO}[Ǹ3[Yнm* ¾Q\`,yVg~/əo\IQRy?Κ$Tq(nHYxߜvAڮP9=QavU~7Ysͪ {GV-ms$E8jx#\w/o/7qNr9VP@DCkyc'o5K_{.Kބ94L -Ϡ)PD|\h:y>;8H68;mQSʼU̻Tɴ7U}~nquЪ&HT-op' sa_9k|(jFDB =?Bƞ*h"GJAR(iv&/w 7ey.j$8:ngW;LpI97GGbR:̎娊2d"P<븿of.wRAcboeQHqC\Vz~pv{M(rn&O\"/cs~b Z)|eN |7`F[@ BuB_]eֿI(_ʹ\%EÖ=݅=qpGҏO[Hu%\Bz<|nlPWB: CI@\<ЯѠ Z)'3s,>ֹQz\2mC@zрr:!NJqU+`p t£ev@KdM`l??G(F V<X,T:ZCBa$!1LT 5:ܮ?G~\f?}e}_/ēwFV~X-pXe?6gN%vKc3 "=!MZ%rLΰvd︵i5[YƆpB A!<~[Hl$LLy PE6}] fūz(_j!B )P"R{6F ܃ M (4I恘 9(M* S=Y?Ku;-킑xmԒ&kj}9A~QH͢Ԇ]Y텵uǷr)_nZp*vGFq@%`b^B=~QEѭ3h! ƛǘv4e5LCxyw/O81f?>qD'l|={&9ؖ3%ÎqR­]_2Q_B4Y"Y>6I&Z&?ӊ@m${hNHNa:i`my'4MړW9,Fr;p_5C} y@UƳ|`T+qO1AuGˈg2;oʹ阏SUPi1+P͡yxggXd t,XKE *H)1\]f*@΃`~9pk"'~q=9=o%Af\?*'2*x~!5~( /M;d:p(K'wOu,8/*J%Ŭ {c6Z%6:$cno{(ނ%ySBps#ȃJIOqLngב̽co9kSID@d ,*7e|MI)z"ڕIsY;87#b"ftt  )vHv䫿Zd|9|˶/IRnD2[(KQ?34h ⧚i]#VL˥V S3ސ|Lʝ%8 @6Wѣ{U:]Q$Nhnh,GsֵvFf|7bD>I2 uB%$OJ1bèy)lS6L %aKI)_~F*bY_QͻeN`9oQn(njP={)m)$0/mH\,+h45;\Z?, *T|FW2k>J"0HMI6}!(?pf+JkXJT-W׫ky fƈH?${`V)cۉ/})/)n x9p#!T=?Iqá&كb5:T8: IB"r &(7,v׾ĝyyuZqvLv}o,j,&]"$?MiZ^HCDL&SqOx<=E`^Ub mZt-ѝ<|.=p&8egr:N2m~(rpPY\ڛ| l'o[:7 OFaoU>X*:}؋B]KsߙWQG_St΁#5IWTPjMx xA10oʻ¨PmQad4P !5IU_AWg"0~\X~}A-*+ w;t@fPTtU5{:%RI5}4EьQwةEQ Gm{*EfװdOj(ePMsGJ3_чKC`Ә pE[f%ߨ?.uDPz?t.EkgۖC{ߟ']9[ؽa@zWP^_KT"UwG|pqĭ@`5*3T[M6K}Zeҙ> XZ3N'Pײ|DfR?qngрEvj.'~F5;ӎce& JNw$U8?D&Ҍ8es!WAPN|Uź6Z |ͨxiykgG?x?h30T{C wD &,|SȄD| YyhtP $:+Kiy˴A0z> qZ3S*/PjJr[$jb^ 3w)^!V6}bf4aX=᛬L(r5 dwdH, XCd=;b,yWdtWs^ *yOqtOn+:Lal_&ATB(qJ3!_G`͆$+8vwj0IF&\#o|yAWS#}9 N?M`CaĮ\{/\RbXMH4=[=:Ĵap%szH1 V+iL4TBm mNo.?셑?ɤt+.%sOiM`<f҃iM ,D!keۈ,(Ay Xӽ;*Hм"|kN_ -P9ao>wF'Pu슍$cR=_S|l`9*Y qG;5P6=[D^Grv)/;'v&`t)E\ y`bOCz Kzd2w+x.LH=*hXQbL=|fkrX)'-zfL$HME<]MPtJ]P 2WuM߾ͣ Ƣ'޶;+ ^(]O"J4]\0"mZR萅U)j< 7c> t{h~˔;'Jsӗ ܏ʲYUH!rRqWgc֜1kABE:09W0?M1YupK%;OPvY3nZRP@`[+ ;BE5b'qOWRh]ʶ]ɾY8xqSj}FJ]Ǻ]'= 0:NS"q|2RM$2=ޤ(z,vU84j'$)G&/gVԽUCv !uV kuI#dP04裿Uʔ!fN(NJ[ŘQ'mIu#T>NKt6yṣo9~G|bNdwʼ@_ J ʵ|X RepWltGokI(ąثwn3SRJPgEi? s_5.f60cPF#1wF_HЦX 'g&^BtSp 9穅}{aΌ#GJ. ͨ({{(GjvheK y9Qo{3ްȓa.2$KЬ :ЁH\&Cro4 aT.b+}%ܮI%}Uqld_A3|qs7$pք&d#ScSURJ(?H y>mm6hj>s0%tI\(Y.=_H62HkE[@,5DbR01#XFb 7*Lu&jw1CCLA$9 SiH4 9#b_0U^4uA.X[}"}Ƶ;ǓP\gQI86H2jNHO@~p0`ᵿ9G޸,, O.0@#3r|3:O7!/,AHkbO<\T}wj kBu/a*d3=Y-UNX0\7KcZjګpkTqB}w#׷*Bp { h&rI!NOKMn3e,j Fp.pdmɥXU--*^ q4dh_yW斅*|4[3|Uk0+.@2 $ҘQxpIl"}TEh٦1.R/c@gyy-cy>%.C=T y,O!jwZW\e3ӰOjIrx!a zueDjTJ qMHIFkM &Gr ,} $!ǜ~&yj86?0"Xy[lT>I" uYm9n8).MMvK$܏,g5rMe}9Kj7,*vRSa7%~0S]N($Y*yb5zg8GZ: 3%?ƞi5 4C%ܵ[4%Rl?k81+MW|a784 4HU\a8F~TJ&)C|BxoBc N#ZGn?<0jMThqqݯ'2%Mx=9ݥ_MSgA22g졒vԩN㒘<]Yg` 7(%.#0(@}B\65'b^ۘ[tkPļ; e%j萰C>7@*eᄤOf [L/.ن l MYr;wCu(Ύz^*%D2MVɒ 鮍TAa14RN%j UY2+}IB<*`<䫇 'YOQD- xFjcrZmƷ^ _EE%K^@N*ʩ7yFOD?O*=#LF@yz0AA?=Wa30_>Ly\v Qy&?Ia 4(<J 3!jsfjpXˀmW<"uQm עߕkeKLҩ½3J6[R^䂭Qn$bL7Ul|&|ҹA_O MԎ^u}9 f2Be:կJVq:.}C%G-1G纨tH 6 &JEJm!:/hctmNElAQZzTo8ȁDK 01n|!"Y&ao}!RROKDi!DY)-ڰWRطp%EtËʋ Lԭf U::`XwFuMpG,QKnҐ}+hMߒљ᭾dPXE&n%Vz d0X$ EӴ&1Y,uhIX|dh6~Q ʴA)+_ZV.YCDNv̏^a9߹$*2_Jr?oYuy{P.[ LûqF|t=i!ú57SKIw*fГ!wkd* UtػiZUqV`| stp RA=-L򤽏Cw|B Kճj'8ݨ}_ Shdu#+>.w-*+rВ@Jߝôsk3EU]W`0sޟ5uB{ԍG]E&}(DڡĊ cQWKݛBY .-.ks-_C2 ZG35w|@J  {,R?5H;]W4tٿz=, <$C*h$a-@4Gc-|4{&BH52{gs7ȩy(Lgnm,VWڑY.k; [!jJuWRUd%Q&ν7Ғ"r$SubV#3IgB/̊!u3(NLz`v  v JbY8!yMFjKCyLzjiT!і7$ޕyFx6%GSO 1 )hK.X$ʵ?F)ܒϳ!J emW'3$2_ȒoU؆B[xKϐr<)jGq#asW?}*%Ӝ.dXbp!{W4KY el#VT\ %Z6 Acl2`Yښ!o`XAY<[ȓkpxЂb=5![lA}\\n&ӖB%n˄}w1r^R**21cqDyfYwdkҰm ȹhkWګ^\|ac\ntMb->{X~1CuY؏.|%h7OԀS: X5wͯФlʞI :K&4'G͝]Vq:|[j,( ɽfL7 ԉt* vsz/..4x!-^G `cUh~3֨cHUH=?4ĚIgv~8 Rzd`=ﱽIB#2(~Rҗ=;I~'c F֗; kHc+?`u!fsĝ,QGdX 6~Oo=GٹE8L!R 3/Rd.9),TdJti#Ò`p*J=1*ދM 0.re }b8ͱjD4tj)YK8j{۸6S~CXkq :"!*W~UCxS-s)fqO!J] CB51G6=ӭEƹKep vd:Rv뙋D/37:_+ZQsjuP[ ]b}tԌH{])-q*/:pV@9cNMЪhzu=Tve Ӊ;KAߥ:nmP·9?%]k*Ӗ*܁[@Btozշ6 Qχeĵ~'|RBAv{>CԮh;uŸ'T}C rw8U$flh;&\PqK#e1ҕw#ZzG{W h$nGgVils(FEy[pT_8#:,|*"GܻRBl\a@o݅`fKuj!nmfB Biwk?uU)iu9؟ f!uL ;'͹(HZWIfb0;?#l'[>>*]'7E\E8PbK'Ww.t]#P7Nۓfx#HzG5irH4Nf[ji7P}, N{V]3w_122$ n 1=vK ~ zNC;i[`JRzԗ|`hp [VS$hPZr`kE]Uh;\֘CЩhpEx&nj.قv2V']\W5T` ]?Yu}AҊ{4N b*w^w`"ufě,HxBeNi, 6-S4dz_]wϦÀ'N4vw8xt,%ዮDpk(m;{d`6B[,TQM`ñ_ <"7{!FC9Xue#-Pt vi|n-᣶XAhOM6*-z X!i~@Ï)T|v4 |~2].A>EnK (X-ZE`,P0=rq''M7-Rf~@[+|hr:6՜\8MnY؟NyσqI_H98ZВ4梚KRHjZ ri#1rX sjfX7urV0,Z_}q)4z'kJc 4|χ;UN= ,,bLTUֱ b DJ/naXrXhb~rjI,-A..07S~ yֶ#OMbgBA]2E*&Itn #Y8]r[3! )VlS7sơEFrCLN_OiHuiquy,Xs8u0}Kc3WZNjȫ|y zq#)ش9HʭJheǁUbjvN!ӡPl2D3ZL -7=f}dZȆbG!OG4/ڸ~ŗqOYel> h'zk8^7L~Œ㯺`YI'Hz5ï*g:!Ӌ! mU|2;c}yU;AaU 46 _+.zRs!Cg =l9a6 M/i{Tg!ź߰(v CM"a(˝KK=6UB <%+2L՜TYNP${]S=U,4(jf,s~)>/] kKg- f,['89݋w5utW,C&#516er7|ŘjA948hɘ,9D>]Y %'T |{9y)GFJ~ Ub讑7BZ`r7c,M0?8$|AXÉYܐ|[ևxܕ1gU).*9Y?*V2zE# "0")a4P;GfCs)Oƣb@eq5'AO賑X*@nK&ag26em(f! Z**RvAio|OM0%vAf @C*)3Z0/mr] E)F313lmԶq{%mMf(&i(媏2+pOz&Ⅱ74uP̦#ƑVˑbJ~BS{!treǡAQԬ%|[}?3oYbX#&5"-jNNK#׽񴶨xeލ/DrGr͈U`} ʎ>5SꚘ9keLP a6Et{X<oN4=x]UA}7x&e¨ۥKxUq'HKYOmT ᲡEuN]!ovCd#W rDMow]Ael( 6 O¹m;$fw׎a?g kyXި!5VjuUku F9~D0ORφr ιzS4e)@Ҳu%n%)CE(Tô*}+ew G>pRzWvL *-dni wZ]2FŻs|f"U`|x·)cȅІ8Ӫ kS+z@ybn`ʈ A&v͘vO9"~4NYDjf‚jJrwtYk`u@lY'#y{633uHN]s x:].8QMub;iwD)ywl0GY&11HXxl6d]+~<{<+;Et,_PSQ.d9-eUg1k1~4>({xEn1YɫC,&)f+;r^GnԽ'y\y=֟g^c ~冑$PKI1FfK*mnlM4~Z F1W^nM~)cl;2We:v|e޽Z ENV ^ oǽHF$ȒXL$>&fY&֑1pSfQ*"q3qSL76jq`HH>韃ĜLZOUKn!CK/ rWĽ4/jK4VW\OBU'idm"mXu: JsIB9]|TG TBZm5Xc~٬=؁W2+Pea7j KJ滉 `l=a.ErĝItפ%ю/w3 nN1.cWV2RC սE^ #waEoO{QAig6R%`d-QB_s}\lsǵ#]G1Ic @yPfxvU αp):CVܫ#27[@k|iMPR}"X]C8>PMZA\ n7[K^W}mp8XqJsNεDޑz5q܈m-eQ$/VBa| XkM)s$;/?jh4~uun}鯢ZUTpQW0 ZUQoz2/% }M%!/bQz QRGv<s:ӑybYYV ,/@"0KsK<ݼwBUqx $^}dYI/&Krn 8X} 2ᏕfdlGtHeY mbb~j-^70ClԎo\ڢqp&trGlmIU)ma0˰ɔSJ+<48gxHFa(0*",Hn'TAC^rPW7 LՅ2iAtw9Ȋj?4"lVlR`I +vl$ 0ccf]ӓFڒvO#M`X)CiQ|#S)]e%hdqV=ھ.E}BgHY:_K4+o")Si"q{$mڄkXןZ "6$A叔 j@.m3*=ϜRln}'v8yT~u8$.^GWġw kE&aEV2q=./V/ޟs >3~wz=nUKfN -KOʐ~8閚XR15l8i{PFf%/NF+ǎ#ݚPHR, =_>QD+ 8ja {zW0uPt=C本eDV`!)+Cƈ`{" bS|ǕDJ2 jů+W^wfr&l\r9^WlK3殈8^^E|iP!N@ԫ=֫:<6: Nczbz\ى< z* 0zFP R Y.i lg!vDd[R x ?yl؛מkIz%9@r= , YԘ/9Wx$ [u-4Lȃԩۆ<2@\% /l++|#v!8O/"AΊybƵ7|b&]Vb#4z$H .~ZjQSI=^"yj:b!o\~A1靊ư4ɳ ;0p67v? eyPJSK,"ل); %ȃ-#ż0NF6ޗԥt*eh bZ昫dWPgq$J a~)Zh 8OԪx Df k~jw{wOh)3n*]u$4M] ggKhVCiq6} ɢ=.`%bSo|l5a<S kXYR,i2'o2%)䜾-{o Ya4@hiπL%@ *#dp(bGo_c]?2'E^Zd 3g41t0H8u\jl]5ЏU \&3o|7b_8+*(aIvaipH1q8tQʳN?7,!@@m)iv S&w/*x!"q8p} ~9p4E}}YxNte+ ѝsDZ'#~;"b/U %mV=ŪSf~NW"UNN.Fb2H8,}c$Hf!K0=f;v'úYp#[m-ʃi;'+RF`p2e6P:lX`/Wv6iloo$̆0]u^ ^IP|s/ iHn[4Zpl rcB/j1Jב15--䝍>丄'WM($F`̊̉n.G~rGZXE+% `yd>ՓG\q"B }G+=AVݱj!OZ"L?PbC Z H\ndrhnQY=8l6Po`Y.xH9>;fDqШ@UIQnDu׃K8:IPQ=SKD{>/wi¬>IbX'Bi{aƍܲ'[p%5<m 4pu gP8MJ ñr4 GQl`g[Zeej/{i/"]򖜔Xl++\~X W~HA]'q :Pa.!Ycl>ؚܦ m9P$ӚF2\G irQ&F4ȭ}G N"TnQ;ԚXRٓ[ZF5VbEysm7|YT8 8| P`Z3z*QHMӜ&lWrw}w_8}iq* UMU?32 pbmaY!E.֮sV4~,z Y20e!ԜEc |{N$I{ْd$ = _\BdْyY@,4d(pc+C R9Ӣ!2ZTf!1$IJk>hKáŌ(`Fyve N痙c!iY&~ R/l `{bh7¿DERHEqI8h@T7"|1Jndr[6/o/1TPi9 `.RX7#ph's6^rc]X%#t[cZIPH|s<%G㌟{q,d8p#1~(h_:sD&ǓdS FwKGSy.Q)c` UT1S.1൰6궗E73iDTR51@ 4殺QMS3ۻhi)(n_τ:äỎ^Ewhz}јWIJm n,p|*Ǝce>Vqn,+^Z!f5c 9=ɘď ee+ 8ʮ3EziwÝ}e$ ozvʩv:Ǽ)dE:~o&ʵ2 [Akiq|4M,:'5jKsL KljD>?ч:Cˢ㌖uAڜ ߭L|q$|0&ch1!( `"O$[N+}|THyERuu0=#͗MwNMMX|] |&nGӲY@CGacfr rO-GaYPyH^@e ' :'`jQQh^A Cll܀ )[I^,Xv%AKxcj׵/߉Oio{hj&C)X>[!"M"YeM LS_-w+GĺiR_0op_]AG\fKE"`S'FԆA_nԟ3vqG#Hx78B#iQ~0f4c:{=2+92mniLx́w+o*UMz;: ՇX}QXT_󊹴F\Q QCW''Ր*v}3ۈ3SR/sUmpGb+޵"-<@4V0b*ٔH0XPMb|I``buW? +QG2-`ЭCD:V|֟2~Uuf?.Qe楊?9g~lO^ A lЬ䴍= ɍ[hN2r4`Qe#DFܑ폫TIz;%j!%@ Vݩo a[0craqV&ƹ jDiN`X%Ӛ-eF ]SNȚ!$][[~dEzǡ/W _3;B(a{Kepg6:w p4MRME.15!t]N~Tpe&BL3 1/HqYI_%m]a? [jBa[K[YT ;bձ2\hh/VD2Š S·]j$r%[{\Lw:@2È<o HIy<℺Dv}%x1.&=-t+pK?GX@-JA/~OH:L@/rF ܻLw̦)KamjlnrZm#(rj U<kPȄi(R224@aŞA!<"i.xCS[/Gﶪ9U:O/Jje|#^".nþCc̒ό.oOb lb(dV/KP1>r!yQ4= ,8=CY{qj| jSa U,&<&^h]hZhu!?Rj NΓ/~Gz lJյ󫛿cJo%nLq{KqIgGyt/p~aP0ل? >w3ڛ`=grJZ32`jΑL+]l[Qک.j a~ӈe5B!AU߁4̋ xīum-}Tmɷ;ٹRElo =|0ǟte&vYs[uDBG((`d4|2E.sی Y >w3fmin4GNqmPp7`QjO;o ]p["<^;u}Y`N>ʪ錽b].`\ ˋJ~y{vޚĿ 䋸X(x(\fI2{ \`3߱Lr <5AE,C 963i\ ؜Fz6+b>d/ecebUHK̪c$)ʵ=*UVW~Ǖ}d%(ӃJ會 ƍm*Nט63N)9;/'A>^ :{uXu TB+>S5.ԃ?č;Grbec0Xv!f'';_70-A dnc22WSom"s,#Ӷ*wwQocjfo^Fv*\1_-fa~}vx~frD3ԥy+mY-+2Oz ;l$K_2jL]\4SS;W$n1{=8 :(v .wS?1ޖ{J?CSΜ=O ש"=&yuJ2lpxQ8 vQweW%5itf -MVqV^6#;Ҿs$ zj=aϚ-KӔkl u 7=!C_X2|Dpˬnʫ.@Ò'V(muQ:{eLGmJXEFFIކ['waD6.%P#egՍ֌K\_ +JŸDz( 4 0n+:6ra\u0u`|u4yȢީI M^#7[ގ<}kt{wU5M%M2|X-^P+ ޅx .g@eE<7weq*6,LE(JXxbuPE@., 70(tszIHY⍊wBZ";a!%d33l7.>#)Tjc3 mjMAƗA],`z( @րI2b?$Kݢ2N=0I݃ޭ |GO8@ƃREõA 0:^{ „tDr+aݧʝB~@"~A.#GGPѓ8ߣx8\cF7IKߎc"YY<N%bgk8Bʞ{V2#JtrMZ9I ҟbEcُ]aBjjK9g1AZHQ_*n @ @]Sy,fUF;֛s5Pyܪ7&=pFLz~BzTb{#yp-%"ȟ6e'-'B[H< Ф\(oFqp SuU)(c0`UÑo>&؋CH5@AҋKQ6սG&GUA= Oycau\ֹEڿwz:)#jA H]ܷbQy&'_R*a^ zezb犨 ]p@R bsKN(D> ̝V"`e{:&KMGx.TXnaZ*"nv)Em JT(Ox9s؃KC0w܂ppl}*V> 0fQ_\8'mė/abfv_3Y`cÏT}V4_ dwQ}P߯ws4uath_zQ(^]hg~_8B oeQAQ﷈gN:\حSS]a ʎq p4A{ӫ,:FswU2DR#RX7^ `,$o8]%Wnfۑ6-ŵkj~>/W {:i][7e4}gMONCn1X @/B)Vw @:c99}}t - 2:,(~l;egk [B԰ 㼩n e=ì}7\%=`T0MX_6<&֏pR]W ?eWV#F(=oil+#sB0K#=̲\`C"51!ۛ90K bf`eb9ݞ *{WE{mؘ*ɩhn_ ʅ?kˉ鳀4JpN_6W #y=\ņBh8Hv1RA$ژ*NDdAV%kF>_ b8⃥+_h+Dxgǚ.a> MIx՛XME1 X"ы'9<bԐl}yҪZ'T i<$/,wV&S|20u{mJRJLZZ'"}[p$qԯ1p;QK!u~8fuIUx*m`0fHh9zL i ̣pQBU`Ba?Ęem ZP8 e;د!ZtQC!&5KzIJM~LTn݉R}eTn)j`HșP $L7 ݏPtوп;qCh@Qq- ZU2*hV.p{xr- !n`KZr>$m]m u⌬NWMѤ{H]+5>k<i*'kF]unV5߱V!(Rc՘ aj9p8UY_OϪt)eC̼NKjǻ7jN)C/߽v(xnrcgFi#[I)_-\4L1ݣLKV+ېBKt7~ᐳ nDEa(IbNfa]2a2 yozXBxxWfuuQ50梶,dրV,g[La= ^tv:dURGâ&}e~C@&ڪke)}7@XC"]tosyY8QڭLV$osgY-ݵ>kFq03Q K Ӥ7b#H@!*Pd(=v>^@Yw1)NG 6:q30w2dK O\|_p:V`th_v|_e& Bw`8LYM*!,©2D|bѠ  N”in '(9%yYPEҹI%Vkb#|5rNRj2~?'dz@aէɑxKp{'a b+iYqV*ؐS7}Z!CXaG@SrH Tͣ>FC_K ړ_j@i򃜿Sk 0_Pd3dž,&z12vu^53wjl,0,,'\K'Hc B ǭ^ ?RJ=5Ѥ $|ܛ6[=, bif?a*z~*U#e'$$Ұ6xgeg0KorbB!JiGze~{wKFLfVO 3iW%sR|F6xl-u\hлhF@R)bNd> w^d3jZr܃j.kt8Pɕ]U!qx$.0炇4{vM ~n4> p'dҪzrD1|'iPqU/^? $wG9*Fr7_]j&"Ύ',=CQW׊m%o#rFދԿ`U|%ݺP䆮e:1Ug@ՒUþP(62SQ|M$UÄ98EG+ @ge?GFGBdVxf&zb/S*d\^ tmxw$(\AYGwBBVw 9Pgyo )XՏb()IRyX%KDbS j:s@It#0ZIl,ƕy9&YDi݅YښePIsϊԪ9Ϟ!C7fp͜LƓ ߴ"PɰR$f*YVVt`=9ϗS::N-b?h{ElN+Q?Ӧdlb1`/kV ˮ,yqx:70^<g((}bGVKa5}[K?NwXz{4w_ِEK?ht+Y%WZ@!KS "Xq5c0C\, Qc:Lj#t eכMjVȀAJgz+"[bC ?~BܩDbkD+d1&`z>xո֛)Œ~Q!ş֨..6Iՙ}YS1pو 5+WLI_Ru=ߞghNM!LV>! <9S%ZS0ݰCa+Yqa{0] d;Ll~=EG x:M-ѧ:(K{A1r`v;-[XO{Z{8It_bɝbvB"j7FZ«d0nx~XFbQrv?·,sl5wಒ o!`W'^nttO]nЦ_v-ާ}ETMZ(Ru/u`^dEK fNC7Rpv~@#F{J!+0y&cx!L'/dD~\ۛ3*t_"lx/ۜ+2f ݥ/O' cfm⌽T- ERe,&N`gyFzm ѧÜA`xK*sX>cO&i]T 2u=lD$h&ΠdDH/oGWb1Oǀ2<.+^o"=*ON3l sD{~D^;R/*G".;8Ôm3xT/ܐANV.0ԉخ>-͜T!kۋ1U&TMj 7sB'%/i[]Yi388ꥈRϑ'tsN8@KKh%`$%c8?DڰRΓZHu+~/~>5>+DpD:R$e~85GnIFrvbbIaAQ ?^R2z\U#=a|}fz8yxjd$CX>R\,Ln\a |%Xe\I/h"CIo 7hE(BR@nՂኳ3? $j2r(]慱6i|@,7=;c~qLǒYv93 SlH[v|kz7?n)&'>#4<C ]snqːi KQfq:u`LAg8Ky(?= mfk-l "~EshF݌"E, ˍ*.[!ZZ﬊a!z':S; RO`dĄ -peO&qdJc[Y6P4&TϵE_v8NcOwAPG Uig?/) i&)^^˷UX'I\ \^'|R7PV%oardj<&]3,Eք۫+芴By[Xu(9G71nz̾i{WIo& .c#m-<>N?Xt$7U  ]C(=I0/e.99%B9f9&4W|(81U6z+G7< OA|;?mS+ -!ϲ= .8~'uLAt<7V z@T6d4AI6( , :=HH9 :~;x7Da%1._>9 (Q,S 1Z (AUP".h2 C :[f@/s&O;9%#F F815 :X2B(+<5-%^i&P_;-*#48G0A f'1zA`-=w.o4#, #0/ n7|u=Qr;Y7q9.P;k=];.Aa-G(1G6d?c ?[":61pw,;w+\ [kA 9>+@<$/#/A13`GB7.3D75>38;7E9:Hl@]G8);(!:=;K3G986_4T :'M)SW*u38i4)z- I+b0Qj(@/,]> ;ܷ^1AW_8%C# ;P/M#?A\CsS3s=89)0=q =s(`NutC$_,%<Q/uE->A8F$=v?v=\ k== # =>?:.=>r;Z#> /5@5 -w0 ,9Ø;8U(: z9> +;?A/?&&4+3"[+?d7?9E _r  #5 9>0M$>|@[r?k9*)q=N5 { Q35H p2O y@P+Z1k< V. /&2..2x3(T#6LI665,5 =**+>13(OSFˎ:J6b>FY>-+;><&AN5Pң6=#q<8 D.9Kt6:3: 4C6'AU5<*L7{,0z. &-"Rm< ;$ _\4y 1j#~A,5@L6̀ k=x9"/Q +7w;A1n'59d b6[# ,i'U<;>.~88=}?VV2;c@ E\ _#G|Eyi64a=" A%#c9L*P:4'9W=p8/GAA>Gܭ(/@,]@2d9j/br;ͻeT9.k@JG<47E  "={;c-1(Ҕ8<=+99;: ;Ntd8HpCD1)8 =4G,2z;g= =Q-4X@8܄=>CE&H=@H*@*7Nc=&>C92M-*?"1_a8-;*G#߯9x@R>ݫ-t>=K&0`>Wc8; <?u9>00C;l;kN_66x[15*c& $8v 3O'=u;&>V.@ &?1Q8%;* ;$2=k@+Z4[$,87;E0, .==u5';40xA$  >2R9C۲ x>6!"+Z|K=6;089 0.` ` 9:82->*5>#(1 f}+j8=GCum&)j1@ Ź ?$?==x>N6u-+" A(A?:U>3*pV(<<A{ ;>L8(1#`16t9"0. ;>>F3 +04-DTAe:N= 3\=3˞Fb=<S;!>TM9 4$|3cN|ED7IQ6;1z9E^A+ [0)Rf7"ӥ88R ?d=KR: 8U7@- t#9#2=4/**a8!f;k =u5=2?B(?%y9&~A%4+>#n"8<<;S.>87Ne9,N864?>=2ki<\0ZG<7Ϙ4W) 9X8- >Ac7xUqGX>b^*("5@,6Ns#*=#+86 @s*5*#bޝ;7*=v ;#.c;';<= Z ?f2 f>"W> 5+nA97#5M1+9vF;?If";- 4g8/@4gm>5>L+&>; M?:&+)J66 Z?>7A?!@ & 9<*Ԏ+ɤb 7}[9*&k=< j=|;/ba1(/#5n.q !2"H8?YG %68 /0. e=o+^#3U r <63:H88"Oz9"G9$ 16! s9(Y42^ A0 23@@=+,h;!$Pt;R<_16$5F=׵7n16$5H8f+9r=n`@ I9*7E`-m) =&V*Q-;<*F&-]A>9?x?9Rr@<A [# 2x#U'Ak6T ;,3$64I9+DL?.#a %(}  57Đ2O-1i@^6.)< (n3?p84*+au&> +9D9BPQN%5>vN+V<`>(R<3ף;/"a3g3=u *>S$Bn:# =;1<*5,k>@j<ϼ#x'*=%Rv + 5@A>x3*\&Iw)&;8+}-0/D:+c89sh3 ?#` p*!8,% ):X!@&mg8=;2;4u,#=Bc68=>2u Ez"^E@ N W29> [.>P0<<=#7=5M T03#+ <>f(2s=A</>; lj8[ab$^F 9#=8;j41+H d?K@?F -6#+3r(M ,6b8:4=U={/ rT@,n,3[ 1m&kZ-\<*u.5Y=S=0{݄9(2?@"M>E' 3.A9>F)*i<D>`5=?L%=U?$9.qTp=Sl2/Ӽ.(6@v[:R*-u2Z1_~<16ݴ<|C/G7! +u4̖;"60[(< @-m& @hk,;o0*ލ54(Q(d; *: 1{3y1ӆ;P;?Ί? Sc?D]7>Ǝ-z^>Y;=4" n;`6!9 <:Q3><ϣu#"8;S\c<}#XG>}@Y+a9 e3=6L9{=>ʫG=[A;%Q:#*//C>;  l >g80H>8|.57%$4PO[ 7 q) c9#;m=]7F2>8 F0I9 FY64={&8. _8#'>3,9?Dt4vey k8zV8T@6,.>AY:!f0y;Nn<,@w8:s9({o ^8?CGR@!A+u; *)LiP?sw,_ 8y.nԻAr0QmS:j=($1<A14 s@~3Ô(2,#;;r(o;t(ž!xHV$p$ Ӊ9 * A'+Do9052? K*aN;$$/ -mH, Jq83 =?aU%V.8B?c.p19C_!NA)?{ =,i<Y9+5| +D%"p? =I>/7!>+7 m-E *`I)/D2;m2i<  8L68Q=z=1$58r s1(Q#dA%E9@= :YC=M'82H>>h>~5E7JN3);;,6==-2),j'Ӕ2ͣ>rn+>DHh%9{= <~?L~"c@6O&/Xk=thGS'$/; K<^t8AZ&-l1^Fx67c>Kw6--7)t1O/@8/X"XE N=N*;w_ TP5L+)< (U8W`31>;&ymA4&Av 5>< v &6&4GAp=u/X=y+$G**g 'C&l,%<ä އ*2d4&"/2?1`2 a& R--A @1Ѳ/+p4;+(- /0}% q=g+F J7o=tBg>;-b(; bf@VY;Q5`?&=š-,4Yx@,>F7S +(#ܴ. 5 o&pG*~ 2E+Y#<^5*'q4J\4&s1oh"9Pu=e>Du ) 6( B&#*h >6 "8&^9 4.@2PyI->28g'(-+e r<b9k(>s8>B1n7U tw" 8~<8%7@ `=3q0|<ߖ@(;.C<5>@ؘ(4ֶ*~.ɤme>XnW139zi/6_^u* @<8T< !mA7TmoCq)c)) ((q,W$(AM> #()Y%+#*Ұ2 ],=ٖݶ}3 )>z; 9Z~FYZ_90O*?K!#g#AF>pGD#t(A 7FI9Lu81>j=e<=zCK7+A;,;Bc(4;[#q6/9~24>_0?78K?&$y ; 3&*"Y>م (R99)*@]7 j<:>8[;s9?W==* >a#6*6a'nU89??*8:Ng,c/>x/*r 7p/RD.%RA8.a+^L(.3_=19e X#p=;E5~q0K -w.3C=):!0?A6"^O^.1J8 74!!+b0F?f ?w+\*e<s&  4Xuw3z u: 88&8=4;I.9<67$= @Y34V @jx2;/3%{o=A,(9X=i" 9P1=C669H.J#d8`#,$+"S:O>E1=;2=(jG?q@_E5;B=yE>1:_?>hY@Gz@W#L.|EϢ;1T2s=8w1y9>5X8p0KO =.8:  G<# zl?m%9+K`(>Vgm828͛<@l8(aT9zc?%$>_+><*Լ*:F )ĬI+6%<=.R X *>+&=ñ̑ "$!,3,U+Y;;.-і<5k>/y 6 ߗ=v4 %(#38/Ā<<F2>9=fe?t?K+J)3(:%V;>nr?"*'2)U8K2%?9:Ir9 :E:Ct2?<|^AP=>ڗ+. v9_A2>7P9". @6N+6w-I> Z=% @b8h>Q#@$1c-\Cq<{_='2@0#(g4Aa%/=L(,2{>4*$f q=5-4&rj3,;1v3+<ns9D&e4<A5$P4n:d9,Xx;2*Ԛ.L&*VH4@0zs3"+2-G; A7T'>BsQ=+8=m,'->B +P ,\+!9+%v)q#RGz;T;\<$#4Z;;e=UW<*o8 "E/ԗ?xBw=vVD!d K4 F3gGJR (8I?>+XgF=O^Az: mj; R; $5+e6A*68 '-;,VM&F<229J@,q;o<}KNFX`#=/|'vX)DB4); @%9I8'9D6<;xA J>_@K;6<;3|9%>κ#R,)<S4/ 3"QQ#3Q}G7!7> &9@*D;aq3;F$p=@֎5)=J*<^>o v G"0@ 3^I9 2[D78.`;f0RZj5q=xt8;'e A6 RAd=\3)6)U36L96g:)D(50=|F`A#33ڦ S@u2>2=M< h0Rx8?04[f;7-t@z;'0>I{c<>{;gR14g=>;T>E* ,p7W.D.0('X9E<)P+4 ;&<* w*iJ6*<43(9==;r&4-7o6$1 7FG5@Q1F:<6*8$7W 1&@zG*9i^<<tYy+J$8{7pTA$.DV<_9܈+aa1P54k6;.&/;r.%?]7594["43A{ ;D1w@<2;(M$3#ϳ.o&;9((5P;>3#c +!6=4*g=<@I-.2D-hZ8S@uF;>75Cr4+Q7œ,O g0(<& )+9$V-C&\&i$i/i=.6 GK79)/6%?AO-4./?v/|32 &La(@h1;?#%A 3@ݡ/%@K7 W.b1`Z#A080>a218&z= 97AQ,.`T7=v t=$9f 886=(*;d“;5x?W@-;i8 N i W>\<'AI= W.=d>{E02&*p@y ;B <%@w!@-=z.D;&52=D_(k*' A(=t9B>t9f,1K=a# )A% 7<  s+915?95&F0||: ' 10#8Ibd h;a;sz6 ?o>&;b ?/Q-X6/bT=R8(9tT(88 = el=  7+;0խ=w,9 r>\4O*0G,18 ?;+DF>8+%@CA8 * 457*3i*I6#=)60+ l*s<5K> wy<`9B48O=X@*0 # ;С4-0X6?1iop8J?":?-N%T1<(S97>==M01yfg9>4&'[9$'1/?o;);΄,T2| 2.IAEl O>E87Tv .~*?0KW<B<2 k?a@k|/~ {x4[M*g66.&a@:$/u<94l0x$(=L9%=5o=kZ&/>9;1_4; SS6}%/`#-@ $F ;6/ (;.w0^>c6I@l>;S@+`>Bd8 J0{'p z+:3v7ð=>;s7R)E6(f.1i3#*J?FX;;40==$/X4N7Fi?9 -##d+'>Ew*F"8?K5f9M!Dt@#a=2]'<'/=5̎ FB#M98/<,N@4/+F 5s?`L`+R!JPD4\.jD< ;Z6с40b;k2F+7z,42e 6-7ݖ;0 IA&~9*7#u$;l4+}>_929vE:b@V6==GC<6;'(993"dVZ=?$5P,6Cr ) wZZD$'$e6@8=A- qs=1 +%Y.7A&d>Au7*86y@L8:C w;4 T h;>"9P0(!#)V#=R\U= B85= Lo" ;@Xԭ._6> ;<3420Z-|â8KmL> w779ʈ+r;1.c3 /027z;e"(?5y'4N;e 5*=5eb* ,58<+/w@;Ak5=4A24-[0p?%3)"9u+5 Z5o8-x47p/A&/>g6I*f72t>(-'J;)g>??`;[4g(4WD 1==8Y>*61k69i6 "N3;A:2) _(= Q 1+Q,3+#-?CAf}@G<'89! `==ą9l<"3;$r{W8-h49< 9n 4)N=6̣v8=h&"_2i:#F { A?0[z8K;JTK>:.JPKd>+<qœ>6A5<^!9.28=]"7}8-8  (`+ 4YG: s5G} 49y5(x  &<7|+<>c˥;#$4*p;7.{2X6 \*@0^<6gt0?!6zJ =,(;:?K;4>;i`c ;0 G 'eH-#w/}] C<.9t5q(+2/;J:&3I:29P?>edok;+(&P0>D&~*,4TH ?B;u;;f(?=!89h,#I0`a<GCF>҅$}w:?n7w*a3,Nu7~(q5k7ǣQ=o*,4L:H)=Q/ ' F.-U<$9u8ܾ< );V8>^=P?@(65=b<;(Gp=g0)1Ӥ;ݬj#MS9'<7; Ʒs9{iG@% *(+=d P;1 (-?28A,6EJ92 t#1\& dZ:3g >7+=4'Ò; w6=JF+##t%G`++CR>R` T2(14- FR &@A\ m5i2(Ў5*#!A #n15HZ&@c?AXE;n:\>^;(-~AVwF1 m%[ =9N$&6ɇ*ɧjDFu#@;$k9/ (5l=tk1 B5=,l@QoAA>a>(#j;>@>).2ܧ=]>i 6;"]- < ݝ@4+02+;Ϡ42q*o@H"0Gi 80^/3@bGC8 `Z={=?{4TC,X8|%2r6dX ?J2( ;35< 9&6F1 99c9'&1<"r>[;37D5dZ<"" |0=i?r#F5<.(E>Ұ#= >2?$4;hxs =@(91a8[֣97@^C.?޾ DFXX`3j<L-D`/Q;T;#x T ?,#@[C#G6K 6Bʴ=?Ž(;=]yr2Pb-A<{-$IO )F5 T9>ۄ) B4l5*#13QAI'@+&2\EGV7?fJ >H=z<ʨ A9t678:e >65-;q&}gV0{p"K=Nf 0@.=H)~1<n1 #89&< 8'>A1Ǚ6 4(@X86#,>2q;+a((<1< r ޢ9eG*!7 ;5"1(K??1fwX(/0* -85r=h&)::(?;;V"-.rݫ>fAS ϐ<@t=;@v.G&f;(٠ 5r8$1<8=M9/ Z)@d9}G~O( 0H 9"&>ں*Y;) 5|6AY6+K<?7x6 U#8Q>c1a'=:?9݇5;w]?<& 8.A=L F- X8141$,/n ۮ:EFc>c@r24H% ;52=:5 =?a0>=)C3-#>;1(;6!/<8V$Du-69#<Ӧ;/cІ3%N*hA|zAV#>9;k|8BXI;t 6`<2iR(B74H4ʕ?<<ĜĶ'D4W c4-< : J>E٣584F(}G;x=87*a,3B"4H,DGQ9+(<39?m %,(M<I?CA3&;.4*:[B-$4R ;Am*s=0*f7\=xho* +9Kw9i L<4)q8E@m(;W=E:D>s;*1ү84R *J>w*$/P?<@(>=P(Q=)2|6*`) ?S=8:" 6/ 4@j";I >9_-cu\(@+076Y=s(ow:NK8,d9j&3Cs}27;=l",!9#vo 9>7m !227P ( 9628&>H72vDF0&P/!#((17;@8%<;x5>`pn<#<)x$ =;s '+>X7x$: #N;@Q >\#nB s<8~C@0 Q 1;n7}=4={&;,5B@B;A,Y@7Ao Β57HKA<>Q/<&AODd6# B=|n*=HGT8Y*A޾< :/G?)8/:N(#Ką'+@V>ۛ<ܒ0`0mE;9$/(IC>4Ա'-~;k( a1U({n> h<:IQzG~ 5wS $X$ 65;#Ks % ]A:B=$59*ؽO=/~"4*<;791?2 -=6K 8 =(6?y&NO&/tjU&7|=-8:;W:\*;9h81/^W>6#-`)>IR3B5K9A7*@c,:OA6ѵ=ӕ" ; 0_9m@)AR7Ŀy=|f26[;Zb W/>.T9'$Ɍ9n8;D7 ~4i""0*D,<# 66ctf;\ X; d#=`8-8>D[>R ^=vt4F w'=j?p8I5 q[7,7/ A6 , u+&E]z $ # Lʮ -=V }G}I9&&M%Rh+~F=5d v8?>>0#^79@@; O_=jAR:j2M3!@]2bA>;@= Js1y?pS; @@4o-F6:q<@s@9 D;e%?%2)?Ah;.jv2O<Њ9{٤T3V U9w+&=>*Ea(1E\D1Ԡ7"Q< 9 !0=$)M9eL9/ / :F@;o>0l=:@w/B=G0 q@A:F(J&J8*P"<\ 4`, r %;2> RIFX?o7S@.*7Fl((A=, <|7Rp=G8,=7A'"=J6" 0A<0N3)=I]a8<6&;"Gw .*8?<9!(N;$@ B;q(6r9^/1kq*i'l%Nx1;~8;qz*r=87^> G<,[*p'> 9 8D#))0 9l8z$*e۰,;v: i3n=\=2-;c=8V(V! >94' >F \2U;d;AW/<H A$yA?C..N &A>t5G9@& s'.m4/|+F=GC0z!G 9# '6"9 N@!1v ɐ9Bl4*b"1n98/&):^SNAn>7$ ?(-5B:"'9t;o8V-=>d>A96;y =m-,E?ܯ9)[5e J4>%[6GQ#-^.8F[Hs_~<ڈ9 /A&L <9 y#}B x#6dV1<Lj+1=F01 5(  C7-&dG;4*(B8'1?8D#/1-՗-B#5':j2=D0op5#>w: H!2o58A4?[Í :,>;r9&l<q*11K-Y9sh/80BA <:A" />;8H8"\A0y*(<7"9; NQF]S;v%?c_>GMvO?# $?8PU ٔ**F 7;B:8ηR5LY<;9a=@&86{*! =<1nm940/0+=z=c>98R89u9 :_#8T6/ $b <2G(>{9=i9 & {//B: AW88#c0,Dc<$ \P1E.~#ɧ=ӲKP:=n8:-+cl<ܸ^*-%Sx 5*6qN7A=?)=8%>;l=!DCp6#i6&&8f Xv>;=eG>>=y6$9#j:Z*eA{:G nFh.;kClp? 8';<Ω:G#6#B6f:!7O}>La3*r{0(1(N9 A99#P8@xY]%8%6>AZi,O:=o?:R<&9*> ;va?-#1T 5 A#;/O( go4]"c d4GC. $9"T<:->~7Z>F<&"l c._: >]c6ӊhF>4 &9U?b-f8$/U40.w=a:</?%7vZ5 s:\u;*b~C??5.ln)6,3'/4r2FJ+Z12# $R30?É$6@/o*F7=ٞ# ъ1(1;cA 8i#4+9=NE`FY,>/8Vc%G /=Jq8J '=v(?0;3* 2Fd)-G1=/W0G;6R9|-~>G+F99ŋ>&>(2={-ev&L@1(# v\"'N>896<+ ['8E<CtG=>7Ӌ.V@ u6.-t Ғ8V+&79>@ Oe-u7V I8 C\9y g$ n@9P/9i.7M< #=uD)& ;!\$q,N3>;p.=#PRi1\+@>v4z*n98"=ut @O3l,:H 3;v6Ur A&l6K/i>8$9->7/L(2i6'>8T.=F;;8~+%6t+A^=q/ 9&h4=.9vQ"ɱ u1>IN=.nEU]sQ  SZ;i.AS$j8G9JK`o X;9> 0.:x7L4k-=9*d+Y9$S&KC;7M/.K Ƿ:IM;t01_K>A/;L8C)J>k3; 8X;4 tA8ʛ@^b*<>\5-1&5/=w,~$4)(= $y IW0`>?ck|4)-)8i*J*9M< U4}i48S>+0_4j<&8<TɊ>At:-~= =0;@((1i?w>:?-D:D<[l?j)( c-#a>-i@#}-j7+4 )k!>:5?9k:- ;:v&;U FF=B42 >10S/Vy<2#;6zà<?;JdyD1zk.Ac:C;# .!Ed !#FF/+.&9ݻ999;D.t=4ſA<< AAb y0z< %I;'M)" 9=5)@';*< F 8,>8t,N2[g <8 M>7$ <v" g<5&;eP=N*c J2;08?_; e#'L;*6"=w>F#2/ 5 9Cz=H(!F2 9=@8 +()GCIϋ+S W| @+%6:+4I8s%;3+\w60g%н+ځ ( "/ 4= *C??Ad;[*r7t^g8--9nAjs*<2/v#s$ؽNg ]Y&1 K$t,%!;4k66m@RF[>(M?O6?)&-<5 ['n19z6:}> 4T66I;Mx[?fz+/Q;c=f7{&.'{D;?DD??9mf> >*@X2&<#}=S&4;%Z9w+@Ns>*4: $ ;8< w>^'8d 04y"?B /7 9"`3+*0 >A$B<0}>D]HE_G GnAf #K7!v5Q9D5~ ;TU?f}Q/*5<)$4);<@(z(A0y=?N=،0Fs9&H F(= 8ފA=) h,1:Yx/< ]==qUE*]#^9#2;_=lj8*H5|4H ,y<]F; T* \ q0-D:(;x9O9|/Ozk=6OAA=9LyD:'%(G=8I"sF6D39S9&= ;(-+ +5}1 '-49@z J4-;v? U1p. g$|@ 4<6696Cb1=QS#<[9Nlz7?? 0R =F65RvdhG:.6/,Ƞ9V>73=o>&.DEE?xZi9$47W(#-}7|UA>8;;,c"Y6.H*u(-#\m1iE=ec9D=V5b-h='?j 4; ;7+Ad9K7#J0I4(#-:8r?m$] <4&[A` 6v$$ ;B!76=:Y0K81240/Р%&|,y>>a=^-1=D"&1`5?P(A=G8,9>#6z;+6i="v6(>I;q"ȋ#o$W=LK,9v<>G4\65?4} v9g2;>8@68+gν+_90_:1tM+6+  ^2$9wtI:S?k@;Y>`=Å9"<i87?y9LJ9=F>4)>K&|9hG:#3(o8In. l8} W9//= :;O;:h& ]Fe8(-l1)(Ԯ! BARG/?b=Hw,4 L_8);h9!=$4j : p&NXK9,=>9#/N,:Z=88<\7>8|-X$%SVA#^n5MF& >P# ./ 5}E.5"6/'8AVI0{9 +636Aq( "G=#S(H'n: 9I9f#@;H(fȕ;;^-@ 7.[@/`F;q- 3D<8$k-9V)I;6ce*f 7.!:^{?Nf3m;:>E=Q5.-d> > .52REx/5c+&6 t~~9))0< =W-6;t#9I:X65.",S84G40J4' 5S8f0#4 %Sy "?PAu;*?8o(H7C?-.VF;>/.3=w>1* (.*u>>A-,6A$;I;[:K2>A; &:<*_9" $0<3~/ hAr9u~8 &@ԕ>$ A =;:H9C`v/;d},)}|>?d=ڀU%T<4Y4J@cC>a?x%$L B$/*Q36/Mr:AP9$?&>6eA> (ھY(2Q<݌(!= 94-=;4-%Q8\7QG4Uv#s/"F :<$E]:!<Cn 5n؉@_@=,$I34I)0+ {;>A?.2X<ݬ-jG9Cr6>0A;R)(e>I+,]5:/54)2/E9i3&u Z<)) /dd8u9=:)@^xI`F?@۰?[i4 6;<77/?q.p ?=Ƈ/-=H;@:J;?R`'I<]-0|9n0S,*W5??-"9j\4-0-8>Cr/E&50Q=g?* \*v(O;X=tAM /.0G> W1Ը<&=P=t7e> L9گ*p GSE07#o?,92k Q0;?o>E9)=>1u&0% ;D5-=29D+b>>1H2b ?6$[.n-&3. ,iL>A8Y5g7Vq$+`^7z_?h@SY4|83*np:#9@>cS(#id= p ʴ H@@)@X[>Y="= =%3 x8F=m?71 :`:9d1K<7U0DAX7R ?Q/;3 j7<::/JFXGH? : ~_: ;9= @C{;G/@Adj *7>:9+.ƭ=f7x'+2#0}?W +>p5<.9.14l;h6cP9_ eS+' A2=L,2C@g=o-.+-7#7=|+<*c6-@-4j?%=Po+$g>*0_1>3{#a?+909 .3+-.6W&m}@B* 6b b8==L m/Y <4HA* &;7D;$5j&z0*:]8`=C-$o<=w9T14+.;'#S(*2/-09E#A?D(#+?:~B4Xs<''>,h(_)8=PC8Lw8==NR(´ݢ`&GJ: x8A"A &In)O*y@ 8]e0SA7[p>4/19,U.o=l::/$f0#-W<ӃATN"?K=s(:3 x>]E=T*hA /m-#vU%?DH%*$r H>{: Y#9ʽ>@<  &60`*ذT{2u69U<?9+1)h/TH;/Y3#H, +rX,) ,_"@9K@4!&O=U 6cv9{4.n8?90-l9>1=!5's(e %* 1m9?/;p#ceN)&o=4['8B"ٽ@z"@/ 4@k9$o(Rv9+8;#*X6D"E9-&2]/Y)4AGeA}<-8L>E<{l7-J=cND8N;x=19"q(l6:?/E$5/(9e3.=?=-.: 5O9}D9e/.=/8.#=yZA};9l=>>S o;8*b=M=O}95?F?V9?"9F8L={98PDB#I6X+_A*fCA-75}>6=5>W(@v %H7~6~1&z- >أDM|?6&54>3?3-E];4n> -CS3:8=+3;͘<*oE?6{ /8!, c"6*Q.+\5#e7L;E>*8!.F/#8Qn($5/'=@2.t1e/ 1]L4\B0-_67g3/96>A5>W,0@:@v G;>A/=ܭ82sj5;K80eO.-,25<@87/Cڱ?8O:>F"=I Xy'x6_<?%\4/_(-~:H:=|>2,59;R*&=I+6'_="7z H*-3.3+8 =+-ͬ(s*eH&B*j1 (9%6.(,?Q1h; yL?@i4n\$s8)&7F-8N9f@> 8R=l R>5e4N>"]=GEr; 9= :)';l>-#,8> 9"F/- )9L+J) L.5K$HR2ъ>:;%;9ܮ(iـ>Rv19 H-3 <<`;>4 -" +C;:En<O?NJ1^ >:4 k=18J-'z:(zu++R<6o5;k)6;&>*M4:= :9xG:" 7- oMDB<1  @/Cj =;F6 \APm2i3@*63dC;;ط/*8(<˰>;3):?k +2դ(?(,  A?:4%S8@n=nw ?)"h5?N~..;U9>?9CX8UU6ICtuAbT*G}N1?;?2<z&;$>5=x>7@|6+](w(N9><>5?u=e&x- ,FV7$$3>Yq7mN& ,(*%==v,#.2457Oę V5.o (7=۴98:6e3Ct(>4!OV zk_(PX 4AWA6˪>\8g#75c/ AUc&#a;3>U;$}V0+/7h";k/A;2=jR#E'e&;)/M=}?1#?. 9;Qé1d> 0/ =>90 '/[<o)D:Gk8U=i}0QO+B.'A&p;!6RNAaW@.jh*c=D GD647QQ&<7Y#M36C *w9M8/.|9DB102@"K?ݧ= ?3 <:p49m 4*[!5>O8(!AV4<(*<?;.ZED:%Wr+`>5~#'-C;9x/5h< c69d.o7S [l |4(=F ->=]'c8);a@9d<ƔZ\ %9;w Od;'F M5@({Az; ?:#đ*bGM5;07:^O)6=p@z!4U== 3= #94-W8Ad/-]34-36@ u#Ae;7>_ttD9{+?<B(,9i&o59g;A-8)##u)=;@R3;T9x5=u;-*<((1]=?I9N9& Q1N#=]L?H2@ >7~=ٳ-K8qA5<9;G?A "<oe ,,19;&#+864,7#6YfAZ*@\S<;:2* +3#q4Y;R( S;$5g=9,h=pR- s?@848>]9?mBt4f1<?64F7&(<$/@/7 3>);F/;V+WX?#v4 .@V?#4YGR", E( CuV9)1= ' s/,@Q6 :y+>66d,U.';>>C+=`=y5}uR|+fy<G9)1Q)8 UL9z  -d$=d.yAhA9gy(:>1U)A# $}= 4U281E]{?lj9< ~:$D 9)9);",z<@6->b$5W7tVNO=ȁ=AS51 Jh6"[4-39F9E E<>L_;(*=i^'3>:?">+08V49QA;@'$+ 1J?w9v'{:I<" )b6?$&ƺ=C-kG% 1o8Sd/j:\?>r-! UPG~ 9L>GL#8X;Aw%A+DgF78 r;T0?P0N. 6 ?lkW 1A', 9*j8#N9;W+ $;H@"3#>>S4 Uq+:|Ah:D $@+? 9'8 =pAZ&m>"B9_9m= >d?>2|4 SA~v;25 @h.>3"i:,+D<#o#DG+ v3L0H7!mkJ=78=N(M0L P="ڏ4? 9UG{;< |L7ө<> 4@`A 3I;9g1 Z*>[t#8-#n f9M;/ f4AV*ӻ?l0_H@4Y>Hp=+5j =#;--`\'(648?0R4 *j=9k91. )7ʎ m86G x d Ў17&,9;6?<+%='56*;'9=*(F : o_ !=Y(4> a36I93=x9hP'u=]4Ab);=D?r<\4M Yc:2?D;l)4#96Z.5(FŎi)S<{0`&%34v.6ɴw8F4ـvAg<9*y6t< 3V9K7GB8W3!?7 -e/9b|6`%67{_;49:;9,9ٽ>s(@9/(9O9B>'¿1 =C5@},+;Cd+=6,295&k 7PH;ZOs~,6uLL(#88 s7Z0<~==^+ s|N4D>G|e<`$2b1_0.w&Ž9~(lu;!G-/4)+U+*'R$_7G#%/;/w >))hĎ;;n<$*5oD;i==N8"$6%;<#AGQ;6+%[G9~Ev j)55j?"=(Axg>  9MM/y889j nE]($0=5:+%5/:&< ?o#*i'1Fd?P?52=y+q%)q#x#-8D:1Ab%^ o)S  /q/~=<=GS1< (.F. -0<?(L@6("5C@| 9!:[N;-,2? C4Y*8<;-=|+=L@2+%4J>9$/: ;+d+8;D@I'^:6?\oz=q/8&:Fi66?83&5>>?>$8L#':0-@+!~4b1ɽ)78Ps8;Z.?# 6#V?V;9J&D97s x,iw=$b1n AOr>[/5+a /@=_  =~,;nE(lFvG85% \ S:7ϝ99h?OG*^=ADBA)XA>< @| 'RlBG9@O?sT.Y8" <|>f@U6(|& -(Y:IЦ22d k @++: .=&:=# >@&-={?# m=Ő/a#*3);W =uAW4Az0?;u93 6[ ~) / g/3-x*~@P;q /&47Em44.& F<">9t;1 9۔# 4Y_˻.*l"O#\$}-E;9h&=pf=^ 6JF #)#O;'&$A [j;/;&9`8U2?L=iAc>@! a#m>D+,157#2= 5V ,44 dFW-6R;c'θ?;Q?.x/ @#g;̥¥9l-@*" '3b-j6]A7N8 C}:\A,$^6K9'$&1*,/1=GD;u1+> }6vX< ?:A`)!Ur2S@Y=2̾>3MԵ<#V*fHEI4زr!*=}N4Z#?-Z"Ri@Y&q97I<{8 $.ح 57E.~t?7oN9<';( 2aA*=J*=96-%<*i-/Y8¢+"ѱ K=9;E`W8=84WG%>4DC>`E5`=-<*:N(3 b1-0=/X<9>/Y>%C-=4,);ݍ; :#Um;8J #@ "8r C8r-1({/e+'feL9,M9(+<8;6>VZ?/6*(:@+;3sAe 9x,i$$}=q7)EHG e= /B>>?#(ӝD.< = #@b3E G/.#1(9n;d;,g M$ F@=x21>IG?d )5K/ ; F_o, )\:30d1{+Q-=Su6BLW%*Rn0aA0_wR=99 )<9\DE5A!A!=y<3&:E8Ҷ:Y2awˆ.5>8L8Y><6LG%%'tN/>,v8T`- ("; bM<#&lӺA3&;5' A0{.na?10)R.L/r2#G>74HC+Zb=v7: ^ Ȫ1=2? ~R<9y$2]5mK1Ӟ; 3 ,/w =sA7q<6&T4(@\ [9F GV9*cU;5i-*;s Vq >&689,j# o&cE_>[+&2#F?O)͞ $=gF;U=p8;e2c28ð=s12*d&/}9 9`(x=06a5a'J-t1@j(׶JU38b@&+9G$j9~g.UW6'>1q+0 Y1;8Q;?2:1:"n)N&<\N;:5@(7+!D O:(9t 94G8n(9&u,,8P&IAS99 6-/Sn9:3)<:$iE\;=ۆ23c>=h##sL!t;x#`S-#9b(/?,"7 /3f"&^ 8RB(O'/Z+Zh#~?9Ot=2t(V`ǧ#.*E@c=QCrU !K*;? uu7e X6;# j$88V0]"$49 k(\@((D5h#e. ;;1`62,9|*"#*~6zY7?l7RL>;)ML9,-]-"((R;[ !'+8179$J;0=*V'1{/ i/0=;FD$4߭?wi&Æ0Q:EA7p=\@Y,Z+&2 "T)Z/ԯ9^hA>'*;! };L86Ҿ7Z>1 =92A];rm@?9;v/9=7>#E1&T>^A%6&<86-;5C68U- >ͷ25:G^4G(u8!3.*r\68mL<,!:.p4oP=Ea# վ5>2I#%7B7!##W.!:D;8&F2V)\C 9*5ik=} imZ?5|L/t3-/*9;+%$2<7~CE`~sv_=*7ƕ=wD;L-29 fE?K;-= m9#IL;<b:6%/g8;?@F9r<++ =y"7!;d<Ȅ3A˚";7L '6D>~)7FBhAU?d}=,Ƽ)/GN7@T !;.1L?#;b&;4;vS#)2l?Yv(0,9ѫ.m<9*i7>4,6zHN>597 l9Jb1;xL8G@M=f?Q0JE\+D8L=84 I9r91n 54:hCs?6D*89:>54%, !)٩,v@@ ;OjH+J7< /  =jQl'=0YQ%1%T|8 9. o-7ǎ,." U88q;#9x;#F=E+ (/?; >P!kF#T.~->֦(9;Ah;p9?U=Ҝ d$88}>F&3*1U+h" c$z\6Dr.@8>v 8* 3;<DCo=>Ac$=},%=WV+;;(31?(C*:H(-(= <9'88"5g:;1ʊ:;Z!=.=Q 83TU+49+. S+\3 ?r9N,X=L8%<;6 >Q>7C9"&98(g-/Y=v 5*;pT2=) T= .G G-,5_+9>2^51M9%97q #>:G@ӷ?435f`;g7t6%B3 ;.8Y'w8<Ta4 r;9͕&LO'{T;dW?6;&7Zv;1ih&7w=w+>5*օ=(]bx=8%tG<@Ѯ87;-<A?102\5dY(1'97O0 5 0;5(y%<"7<^;l8~9v;).=D7$9m=/B'6~0: 9|H=7~1:441tzF53* £G 7!h;?$`9Dl0y6ʬ>_(|#=j=4@*(_/PF&z.;۾&O(H8(*>C.<^*1/;4v25|4ͥ9:#z`T> F*6:}-2095#1(j/1,.N>@w#b,6$أΗ(F. RKq(0u,Y*:6?8F q>]+11>N U </?@'/W{>&:m(@Em=q7K@S#'t,0 /B/f7[N#9<@G;O?3 @tL?MMm>5^+9Ac< -9[<:&Vw3,5=ߕ=?.8,.B?W(6={m6G;#8-;S/5cR,5'0SB#;BEZ]NxA>^.# @ p0)5i#|= G-@w-?"4,!K00=M\8:;a&:;( ,a=93">=0@[p?cCgZ2Ϫ(M4W7E:' 9<+;16- /"e9DQ>aU=P?9,9[;.6|HCR1 4+1K<` ;r8vrj>61]Ǝ9 ?8'_6 8@^=Xd-@Pf;eG& 8W49|A{ʠ4@X 4aڒ32.;g:4 [K" 6ѭ38,Nx9Jx*?$?GH3O1 g;.nAE{;6|/=*h> 8=?#=g K(~5o.<1=OO2 j%@, M*0p= 1a*=P9?#G:;S Q38(+BH(: "<9!>+C@ ͇#9M<^=!649>^59F. 6E7"'T*<f,Q6=L;uY#@-8V1x= 8O=T52r>:4J@E-5Thx(kЯs+*[,<s6a9/+;~0"0Ԕ7=k@<@?O5!?92&A(G#|6_r -?N8]1k;& /87=@Ą=wz:r?:88A8m8 =]:5)\?s8#/ E8=q"q>ћ$2)4*ALW8*:0R+!#M$'802*hB<+;?8.;8<60=0.# t?F# 2a&2rm_Yv( {6>R#|8>3=p7#<#>>i;E'i #'% H?B*]<|87~=!9@2& 34k[Cs%+<4 7>4-6;=-G4'd7"//EFX"_< 0|<93%^*e l>]5m <<'>9?;]9O;(+Yg3q(;0}>1C=tlvd7=JC>Gmd2>< K3-uݶ0^8&/,(.kh;FAb , @WWY(fG;l <9+|u  KNY> J8!9s&rVZ P.q9;@0>==5`v7d@F ^5{4* =- #a+U45< ^T(O;K +11+;n?Q6Jr< ұ .=/Yb~;&xp5w48e G<5,-9; 9=(3g0.T;<@"LL&Gjk/ }9?;@A2 ;>$;e#?2CvF: :I#&>| 3<5X>325h` 6, <<[6x%>7oE^Í9 AZE=, ?% 7~5i1 y03Wg;,"-/; 03;u%.J>cL;3V+!<,9 &#<ɐEײ4;[>=%;>:#e<&=)׹A?9IV7Q4!7< A2,@"o>7?Wt= =9#|"R>), )o W AT8$6@]7);(F;VU=:7}%S*?_9;/'l7E X>{2 4=1M& h)[ K#E&k6},Xl/D$1>p/=U=9>ǎ=v>I6b6, <`k, -6-4Ir19"=6a>b'*=; 8 /m =W6/=15>7p`8B4):$9]=هxA6c/ _9D?6tHO<F<:"T?B%,\-Y8ƻ>0Y #6 ; :>k(߽1$_rs< 9pZ4}l;la.n;,O>כoT)8.U?l?G9@; Ʒ62"hMT$1#%:=y }*o?59 #'6@ހq6L0A+ 6}<${={-`2޲=9L?:9}9uX0/7=z,YfG0;29C =-s6 ?#::F"<_i<)?m/3C9/ґC;%,d?H8=.7!'+?c3K& [G- QxQ#&;+>3N$U@+-2?Bm5j/"A3.k= 8 _10 8 >c ^9#؛#I> t#|@&2(l41(R>;"YW ?;sT:K,/r D;8G7H(v"Pj+:D:;u+?J =!6*B%R23='+Z="'k#-E>t"6I3@Z eQf =hA?`v@7%=#d3<9.9# He5>6y ,R71m6/G}8L/*M&p0;>!m2 4 4q*3#<=dk&M>(6)\@:1 <]= }K8>7VO<0_>b20lCz9vd.9W;49M^CH=ސ Y;/*(|g4)m;8G<>p&@895dA<(4Y"!G ?9XAi=8=G%E^ Q|?8!3[*c'+2=e 3A ֩@!>\g)C3<#}]Y^A ( +48Q4$6!VW(?;"(@G)&/C?v^<3k6<6 >8 1u9=/P^)uS:?U--~:';v88*1 K6G>;>5>/n&:>:'A<K@!@M6FI.+\31a8*y=L)62;ԑ0R,m+&kM>3:Yg.v&l=5.j7(ݝ08?#.D99I+Ck aL#@W-*&^Ap>.3DD^#q<s@w(C+"SzAs$2?7O;~$ <`:C>4Fø @K<c+*r3=?N0,CE4l.~2/. Cp;.A$s@:F+"n<;1$@>>96%j2g`6<++"BE-,S)0((# 6!d^8ygt4W+\9?I0a,S; =83>;@J!c6AX@aҹ4=L8086uo,n9;*]" 7#g *z=ܓo% )98H=Lny);B5?/A| X<'h.lU*>=?z9j$|*A5s?n6E8 b9C)@.7F98IQ8=[+_2 )vs?2G2j 8x)P@T# 9kR5b;Wxú(.m;s/8- 2J@{*n&!q>;,=Q3!T<= G8 ,5=& 87% Nj'A=X:J0&+w 1w?DG+!d=z85 P>( Q+ 6W<7~9h .*i6~ BW, *&KdY?(l=P k)I !*2)D>F Nw"J2kw=;$E{*7"6\8 Y)~'ni>[(O,/,e DE/{*':!"=>(ˋ-eN5D <7Õ:+ã9o{9>H& !fd7k&r(4tlAx|5 w! >>ri7džEX0ZpvG_ [;9(>/@- ;O6866\& !e<#0(=,/6T;-E9]?U7A`2r=9;+U53910,+s&1J+! $9?+.AY)Y;,.6 >4F"1v'v#.0I= *.*|H9 8H{=./o,*<9/7R> 49f($..5/(+{8F7Gt<\* @I:q .K<2-vA9f@:5, <=G<,*((02G:v> 1U8o*S Zԇ#4wK{6@+8 r8י-<f y-evJ=@Sa1b*;''=Y/ɂس&o?/$=;  /;Vln>3/?(%8;<[@/ <18DA6"*= L(x8J+,IA'x ;v=5ddEYx6<,+9O D- 9T,[ =+1w=G ;AX3> vF/+;)@2+'W7 9 ;4-># 6,3@,W;*SPb!: >{qG<N*&(9b&n:2bGDG>.&`AU>;: Y L 4*Б 3#X;,a0`#@6 X8(.#7e<%@C2*c/u f̠9FV3z*, ;rm@c7j<J6#,9EC< ;^]_1pIZ77 6KV_=9!i26s#Qa(M1O4q>i iAW/S+ jA_=<0,'e=Gc#9>lG1/5_X;zG(=|t+]<8 *-29v/r?#@ <-=9(9 y6s)$` 4\ / fO{#}/_=[>3ou HADE? 65@ 8;#K4Js%B5 0 ?d;ۤA_+  -l+ 6&=i $ 5km(.*V5 *I8$=]o1 <( h#>G39;i>6 .;v2Y9&/e 3p;P*J#5E*8G97 Y65#P?4'!:;&: 2-'>0=U*R|4>A/-:2z;= +)%rD + 1/Y6a";>PF~ [zC5w-r>(\ 24J/R3 H9 =sO4+Y+CJ8)9<.Z<<+W)(&4o0.'m?хD4>wCR@<:-0Y7& :q><b#96Y ;tT-l;F iH5CD*]':6+&:;m7>q=kjLu A9* 9!l;z<9.9 =39 9t  Rg 1X;)#/ %Ta q,@8:ez>_:>Ah6x<%9j=n;(9fVq9%>=(&&^*;cC;d ~4І099;*-=xN*08/=J":1Cr;xDGR**<2+Ej&&=/2;f5<$99@$0*c(<8P3W;'@zDBfA?2 0>;ӕ V@% g@^0& m=4($/8'| @<;>q 1`P)3i.9 'rx 9E;os$r#c7>VE"4֐884=?Jz7zp=> 43=h -/2|@67u3"1-9J;AD8<LL;&?I( M=l6 6 Y6J8._5j(>/,c`{;(9M6`)8?<.(:"/щ><4X^25@|,@[4++%@Ȳ/T-@v3#%(#I7FA-Aj>*93 Cq6+=7c;N5I9;[:i l0&!%1]@'9(?*_k?D>8?'5|G@;ۄ<*$@' 34XC9;<K$=O4kb 4y"9$Xa*G-=&7+;S;3( ^1@x6Z.@כ<Ǩ;,;AT(N|>Rv@CG+E(U91/3'D%YS1[;xn, 5gG4Ƈ;+ M91 ^m== D9?[;<[RA/<$&;.Ei.3$Md   7*i?3n:4a4(8;H391aj8P ?oY 5?%PAGC6a4\9+@z<=y8;2<AN/B*~6^#v6 =gvAV1<*T(Q9&*)vy$9;1}6:&6 +??=<7<?d4)P ,S9~N+2<*f&I6ΐ)K59J*P/Ae.C)}+HX9+w;m{4 (w #  K4&8 @97|[>53*C<=75f%6a9>?^," i =j6?S;}2q$8<9=j&OA^6DF;> $("R;#>3/4"h (*(9p6kr<,~3 r%$=)>A; >FK!M5u: F499*:7@cdk8;}+V/;E7$~#6H.!mF;[N;Z;?x@A.rshe@v|q$t=g6L 4Bj= 3zF39D:q9|d-D6(3.n>AUo+B'3;50(;FR>C//&23%[E~5h%9(6k8~>c R3) ?lA(?<;4;K#.4n9u&@R(]3=jb9qQ;S'W,:,: ($5A;1G+]2>;3~r #XA,K}5j.AA'@`w$3<'÷3'`&)8;?Z6,a1k@/ D\o0"Ť+x9J)jP $Ao >ܿ+&Q@^t;[Cs=97y:21h e ?V)?fB*;x#~?);;l;C; f; \9YgM3 ?G: 01=s0R<7k6;A6Np;t??f>8NG=>*: + <A`Z -A 35J@@?; 8O@74 ”=$&;]< 81:*hA"RC7O52W{3' "6 a;U=/W;>27P> ($r^G4&F4 Z: `8:#!+;?;YϾ={1Qc((< L>O=o94+ #9=Ǥ.Jt-lsFX.qvTk?R $ɮ.$%/HA;+4 4=It?B 4+*5@vb8L3(?p<0G.-938( >۹;%6!6'96>4n7J4B;'j2;O XGM;uҤ'b=u +h5&Y&4?%'8@()?#!0@+WL;DB#1+a0 Z=50'4BO`d5Ɵ?,(n-C=/Dl);@lv)}-7E !=1! #, 6*a 5#;8{9.!0 4µ@ '><{I:*`;*D(d&; g@i&3r.3U+ >6&3a=$5/G;=N599|A*M *r< =A~/G95;!6U?>ST7&- `^:=a8vE \5( [A79(.ܭ1>[O"7i;}E;>b+M#4[j;qU+n324*6&{ԼDi!n$q!SS8vW4<3Pgorm-1.3.1/.git/objects/pack/pack-267b19d4bcfbba4469216e2419d6718f2181af82.pack0000444000175000017500002174623414360755606024015 0ustar heronheronPACK>73xuKo@R*N08~$ 0`l__*UO]Z '2#CB'hi6V F* 1ILV8MAgn(N6Pba"[BF`jA cDtF%FĖP'Z t@LKq]?UQlȲ42 >Xt1xjFLsuhCyN3@g~q H]:;qȍ+|qW0;$ w|/n7m9| ZnC~(jeݖeJ_7jzvY4{js/i?jopW3IKfpt&þ@G_73fpw^٬Ԅ՞rz\Fm#B#c`܏Y0NikxW m}y_BpdLF,xQF;J0\L][d~vݺimd.5u7KSBȖʪ}"$Jw:0Q& Q "2%P(c^4h?N  E!N".djcMYv $]I)YKF;j@h' xI)c6e=Mۑe|/)k|5e>;[ ]7L]#vy2 Vv:q]qo 7:!6~@C(ܒ om/?|~MAC8jodDKp:ʁsP[*zުNs;]]yh;јzE0y7b;XX~ڿms;_h?ipɫiE#AFq |$5=aQ- |';y..3rHTEDw=|89V[6i R lm/y ٬S1w8uƁ7{Uܟ,ߍq".kP^꬟xa-,F5'JН2xuKs@eȣid*@|nZ_?Ns洌R`(HFL6`9L5:I`FUL[`=ѡ/dM#5 h&e%yb%9:!I3Q\)ejfa`hѰ8QЀ⁞oVTP>M (a"c d]mK= xFeVڽHV ~(@8 3r$q;-v,ka/7cβ2-ߊC=UkM'u,9dr-Mlf=1qړ=((c0LuUxS-if'YF Tud+e/vWo$!_r)̩J,f"f\Gvu+X?)+JvJ`&Tst]uql\.9t{k;0'W7L/` #]cxg |`d{Y_J'9z"Ea%6G!v۲Z1ԒO'̺n(0eznDE6(*F&8[RVI!ڽ4'-ՒV_A^5mݔuY&,aWzr r!V֚Vw|[Mp4DWT-rԿ'm FNf,)@"?Hu^H4_?5/*d& (-bxA&Yڄ "9GI*&_)xJ0F}:iIq+ ƅ/ bMk{وJ7j#Zbݷ7 +i젥S5N1'&5TnϘi&Gr6_.Ȧy*VJR"SOOW`llHSjx719Kw-p8¶ 򇕖R0JoxNKN0)uLVX HH==Ib]\["0:٢e2QI#Zi`yTvݕ lz"=XG$FtӬY7ɢnuK.WRmi ަi *WZ*wwAr/)֜rxM9S6[b) EVdq|\!-@Z9$"؍*~3qixJ0E,:4I[] ^N+ID/p{8pk&m0'/$`I:k3 I )09G;|ߒ%bm;^c]`RMGƺl?ꈉi#~knob [wMl“8Fx?1Oӂa^;^6`+TUDzu8S)QyiyGI,eSY|$'Nv(z $ x.2}EBW%~[ģG!8 ~;B1D}(xKj0D>E/,Y5"dȭK=@n!PPW҈))5:0lJBLn@t4a*0'Z0N\DR2jp3hǁwwɕ]rp O/Vm˥`^'8xTZn%?p`=wxY&UϟuQn};>QaۺWm!]xAj0E>Őe ik{g]Gg:$],210!vZ(sR8v4vlrڭ=7*Z[29_bJEJ {}/#Ԯ=4Uyu4vP"IL&y8?SYWf~6*78U4 <KfK?IY3×iA_@ , n%mxN0 ֮8H[%m3!A4^MݭMEۓ1ߟeK`$ۚ./T)taCe֦%٢n4+(P6V4%ʐ.TU&[DGrn~[?BZ[kr 9yc/Ϯ`C'A\w>w"o.؊1hO>5 .W0E(7SܯY]qf 0? rU@Őe $ۣ8ҟE)P FXǥ}Mx<)G6{gD՞UCHþf*kjC)BYU^5\ƒ7X*\e %xX$oL>t9>nU5+TDzu_4~kNRr/HN"%u2\C9T6M@ᛦ/UOdxMj0F>ŐU )rB)-]. `$YcIin_o=ޓJ&%Gvh*jinJE`Q~$C`q*]tmnM.\DxYXo S^^n9 J+յwJ"O{#fje?Hl>N(5K[k,3ẞ̕?g2v$p@9/V-.p,,Vr@)\oxJ0}V4 " q'In@2oo|}Õy%u(-! 圌FJA!"{l;m@!5Z*\.)K O 4e1m/35 {b|F}[Ɍ)SmR/t}'ye];AK3ql7+ƿ' (q"f=xAj!@ ) SJt|HC;g{<1Ѧm0i^(5JC`o){ jKָYjVW&)rAe4VOد9Å[ /Vm׵`~L]^5ޥRdO]2cĭ ӓWw@m [G&$hYYxJ0V;EDp!nD?=ڤo]ngiF4yDl ^$09e6h >( ;pZK+} #ՙV3\1+kycYAZ?('p+AWnw7 Knș~z*u}pZ9Vj? CIsR_xJ0FyV4"B BnNIJ{ݸ;|p⫙qNie{JTHFY,K%؎biR3A*=7(rhN)EZ/)DyŲRS619_L `O@r~(JǾvxMj0 F9M cqJ)tUL];*mnP:FBeP!ʉpۓ1!7t'SBtS0^;g~MdԨ\L9r^mB/ y~#uhtO={|ɉKu=vۯk y~s<L;̙ׅv0 BRH!*7+ *׶nxKj1Dsƫ|mIM Y,%3Ӄ\ ZTzzeU5ZƹwmqMZ0,VA9ە%Һs0`]+ȉ(cp^ gӶo w0+Xҟ`XXn D&<x r`# XEkutxIj0D>eGr[SB!| ߶%57&9} ="q6:TJ 䃕L | ?iևf+f de Z0eAؕRa:h3-T~l֗\(͵14E"gyRӥT|S˷v&x\.k: l1 c- @yی2n XWV*Ep~xAN0E9Ũ 4vbTX Hz;i DoAp63ߗXÀ^Hh! ZU͘(0j)NiS';Pң}޴4m.| wTMF-F6MU1?p8sL9G.sXLc=}PL" 0ȑ3!:;'1tU+(eW $ 9/2X\W_w7xN0yUO-qĮ瀸U*/`;֐d#{K_|SFV Ni[Wu+v1ڊbg;ʠ7^6UkZcuk®|' jgya,=MOPNW{!(:f'^ю ^̑ƴ840liA }=6F>`{Z&GLd݈0k27HL|]KHn z;g6[vX<~xj0~%ɖSJ)CK O6m޾4/0|H&uԓUCchf<(lm0S@թzrZu&7^J7Z׍r[+<ˉ3)cm17'жvP GU ^Ya3_8Jy^_ C)r#vh0%$oH ƳG8{<~l//'H2 ~y8eh/CnS8xxMj0 F9e g(Ee 'P%1$Vp4й}MЅxI2`f$۴cJudZ¨V8Վ@o&3Z.Vɵa. g)1B/1!d{7kx{Z+(UE^= W* y$yPrLNA8sW(85 TX2 `*眊eN'"ekxAj0~ŰlyBB.!Hc`kiG uݥ"_w Ko0 ڢ7a椰%0;ZxO8:Ef uKw 3u`V0sQd{]6Ώã4*<\l$i%*#ܮ>AaNH;G!VIEQNWɑ3Пm~qfxxOJ0+XӴID}ɦ]iD~}eff"Kޠ'ՙ`ԑ !xݟ :l)V`Y1t^'Q{%lQ|sp<1é&/RiE^ZZH!]Vg8-\vrz}Iy}J1k,Rnÿa j-0liLG AٹCN+ԙ T 6?j}xJ0A/%mz!*/" ɦlI"~_f`Z!mzҩE ih#hTpnv; z1! RԾf*k076yZƭwn h4I3I(!S7:_K_8-\wrK !CTkls@cT_~!xQN0+"N8qAġ_0'vq(|[TWtXhXpVZh $SZ Jq5NZ)\m*UF@aktp?qJzevL|UyjuJOzqO>؝^..N$q + WnK ނv2F0&}pБ>%= nH@X-DIJn0U6rʸvޥM<}91qt єȷv<H)y$҈nX, ]~j)C sxN0yU/;SB8qlMj5#{'-qfOYͧLښڸ5FB j;z/Sm5a@G-Z]K-{%6Zi)ktMISaGyv1J )FPmt]sy'ꊝlm #% yi~q=ƼHvTc8@%u >̋KNpy_N r>FG,Kx<ܲ}-=y yWdxJ0Ed3IWDAE~4tmR,_o|9pӊ09 '8Ԣ . 'k۹HjhtƐ,"z4XMyo Ral9r7'Ml 3EJubk{w'S+y\{Kj fs-T^ƝxJ0@zh:""7" &7&e29D+ɸh5,$70Q@"jIFc#D PJ DK# ~ɭל$5cQM/cT'e<}պ;Eyw>qs.\1pnrA-fKID1_gxj E3\5Qc)J'A>DZ ڬ "LBcFAqZtGI -x9{3[%`?{.bو`mlMBvXGGRYJ5i0A?^^?)e~9}er0%jdN6(XϜqU_xj!E~[70QǧN)%B鮐E׎>BF7t{=+.l¡>**(٣ $ -nQsQGo-sU*n)2<^~\mw2?@c\rF:{w1Ў3PVZݝK5AsN۠7KK)oDF]xJ0F}jt27"FĕΥMJ2}WǑF`ˌVOc! CԀ\i8B"ʤ~Ξb.ykq1_fk `arM]*CQ/]o(mocqգ6ZYy{Y7q;Z?}Զ;%,8Q۸Y-CYqaᰝuQQK>D^,xN @}b֚T@(`n.q=?C/^ F}{ nOC|R,d=f%S\0֪as+&mRT-J"g7vEiD8;C`i6N,z\yqh..|-pDYB7m;54h@G35z*s=Gv~?K?}rWgK[W$*aoTim*J{^Ę"xQK0~EB`!p.жZ&ϐ]Qz%BAo-!NM85tL'F@vpJ3M@?+\oc8SĆ #%%$zH}_vJ[; :1|gTI9o6>E_KJq(uhZ?qYJm@L x U7]RxN0E|t[ 3~^!DCI'6vL{BAGE{tϑ.oD Br1ň0[aEJp䈲VQe0)ItQEm% hw/uĠ5Im,L@V`*k@CmmS)pV|םW}Z|ĶQQ ѝt)O<-g|>{GOBc@03~jTiS(\huxj Fy,[jK).JW]5#0tw^see\3gfrNy1*nLR ;0P,XH(V vRFu nk(ǚlW,zbI ldl8zWTz9!gJm;kz~4 mkחGK-v\p!m $ xA9Tmɞx1n E{b hi(Mɹ  p=}|BH[ͭrn(8h/qHmFnBzfl3:aE)FG|G&*k00KmPu~\i-\… ƺs5='ntu0$*Kp螷#)<=՝KA V`5dQE;CYvX-#iǹBUzT+D &2SBp$`:O!4\x y π-E^a K cxAj0E>Ŭ[pƖ%٥@/P F(XRƋuՃ1ZY) N\Tę|$Alsѩ-Ru٢w8h\y] twmpvO nRxRTfLi}0ik58kN"O}x/<YP*%`/1r| h~=-~cxN }Yk Jc¸1&׸´NB^6ũ&kцɇE lFr2i5)V"%%H!VaB)Y+|𣾧 +3\jbp[j8s[~X&k15wZxw/Q('bE1FoLOkڂ3,_08R)6}0g+a@wjxN E֤C@1qcLxG%)_/7,n+D@Xv+fJ)9/Ӛ!p``ќ4lb^q4z>s+-0cmyԝZe{zCkO|wܩ I\rjzz%]?t-Tr-qPOH`Z5SPK? h_ _,kXxJ0F}Y+i4.č}$FLI9p>Έa) 2^ 䔒Rff5qY Na9xz\0hI4ʰ`b)ǦAqo=+p+!jƠ̏x;փgJlc\`~MDϔۭGw7;Pɑ+3S*m i xMO0 >2[q@\b7q:km2%.lz2 č+},[ZlM])j(\.ͪ,-=rVm5QmUTXh]]K"ڮ2dl(̰:?SUuۏ\)P .rYRGg%(dG!.}DwSxrqOZ|pwIi ނ%2P {A=oy>k| ?Ǔo*Q(ABLp >pH G@{:ٔpq&l($LAzvl}F0xAo1+F{6ػ8zT g=IzF !z󽙱9!v- ٶSF ui])tFٶF02,JJlB] !WSR,{Dr]WzϏ`i=l!3=(y7h U׵K)*?˫7@~'h7oŃG45' ^H=EBT7z:@ 9tSsSO_}<;SN5$<:A)^_،Oc!P$YôМ 8m(_(yKO Jo_-קeo߿_N<"1L5P܀p}1OOC2xKj!Eq~*&$I zV Qݧ֐ %/2e&B99bw߰>t ѬŘtBXF *Bƍ_m9ePAJ_>E*W.J ?`ZO=ogNu4FZY6m3/GS~`#UxJ0{bأB7I&уxN6 ooR!Ha AuvD"naWG߫"i;pWM5-Wp.gLIc2νN+KymGej"O<.| yIj^G.g GɵceOPr i__xIN0E9EW RZ1,b'PDߞ9 ]C̈́〽^[kt'{ғ4*٢uLzPO(pHBiHD kTCR)Ù=9yp(|KmRFC+'EXkOw(G"純KicN9{5 \Jb8tov _j8r - kZ_pEݘ@h/C'm *LDmW, F0Y7ŘbR1Ih$% Q9o;O0c]s)Oim}@3ä Y̌݇"_p]^3}v``zGZE%A-sҀy`ØxN0<ō T$vRSX;0Ujez I2t}ݮ}oTKak27ZWҒhYP lK axAn0 ~ iIEQ E;*l+C~Y"aZ!dBpx, _xj0D=7HdKTz(ĒBo3󘁑 n t jJ{;PZ ē݆d""HΒq-9rc[p庤W) 3OPvT* RK)VZ23s.o6^Dž">>B}*p7~sw;H jc4AVJghAcLcZFN5~kkKHYܽw"\[] GFrԄg_G I q{9ƺ_YdxJ0y9 5ImDI2YW}zS ?09A'Ɏ[ۦmz˭ָZqm FI`ak{HCPBq؏ZQ}kkT O &`a5o m&nL ڮW z3gn g*N*DN OGd:rؓLLLeFC~{DaxaC!᢮̺L: BV МxAK0UMf< MIRoz6305!-7Q)'*eNp2$<[mbzo̘R1,VB؜b =qlJkiP~az xJ1Et2L"• IT24F?pވ )@Q:oZ/ҭW|v슍J ^0H@!-9UZ)k=~ 6j{7a|34O0Qfs94qvWcvaڔ&oax&8|)DZ`&j^xKj1:E}&`>AOwx$iC|"}vzTz! L)e3sx/Α ᐦ`]^f,#l%HB򻽜˲7 8ɸ 'm|ˊ:Q_Ŝmr8xZӵ?ux=GoW8oaǭO {UҗxKj0D>EY&a- 1$f[^AI#&-S<hy Lc"\aGV~l8}o,!ڒܤ&,IƢXVLzލrgxQZH$BԻ+f:tb|TbAdnuҒ g B3oO;5+;\pxJ1}L&8""x$ ;Iga ItY>VM҇ӓ%c*HR$;J ̄aӂIc J*eivR ?Kl\Heecˌ kLR5"o &m2nbm^s/ݯyǍ:a• | \!y_VF c3Hʖ7nq,mZxN0E|Ŕ<ĎCD?q&%?=jz/=N*e'c:h(e7| B99O{YIhe0bqwGilYY\`z#g * &ч RЃiysh?WCm'_T{d}ѕ‡3Bę eBb"p9ެnp jpm#8rxMn F>$ *u]̐ aƂ"o{ +y0F%͘RX #tR9 oXCeETh EӂwR3Kpfʾ{g>BHmVoB 153?+@?/ܨxQj!D=Eu !=Aư8rxU jtf`ݣ4$㺺 vonI/jM+E8MUuUJ9`, r6}?i^D Gg^R/cW(pNn3 fV,iDAӈjy$ZϜDyN=&x+KDv;Hmfo4%DkֻO ._a}P(xǩ@ &_ր'o Wǡ}å#˒#d|k[9s2@[a\ VzQn1ЮxA 0y٤6`M65&ƃ׃/:Lo"@Iǁ(knjdɝX gzr!A'F8&/119?e6Is[ ^\yC]O4Ervh՗w3WZzvE4ָfN֙x]j!9E?&ǟQC9žv#8rsy;@WfP!,Bԇu=6 R#$S?t4.}gcOP)ZmC;J}Bɰ{|_m[;IcTxJ0E3.y'U8*8?iNj&)I NkhD Sڈ]e QO;6*0/a"()|d\:.\9D-؄x j[Jc y˘n'ښY8$1tҜƠΧkƍﴎ}K ;l@*}^38מS O'_xA 0E9 h 3L&jRt\B?l@4aKO3] O)V'4Eh=:\zĞh Y#os0JXK}ci+gCuqm?jNfsL&E'!R8Oh2sSxA!ᄁ ѱ9v"d4ݼ~ {-FDщO5Fѓ$"&,D7)ؐ=M쒧瀳;F+ x7ikp5scqnXh7{2nB/4j[C{˓{8jeOux1j0{b6p$KB I^֮}K2\v)FwNdGq!0Ga6!蒠A^v 3i h(~{qH62a^ٗ-SC۝m)sjBޅOh-YUwR$i۟!].* ޷m͉UN@an#ȟas HYbxAj0E:Őm@HeC AJ q*L}+>viK13m&JaxqK"#w H8l1DL>ꅧ)i#~wp~n2Wx{jBxλM\Bg)z8C4-YUO9] Z%in'\w9!Z{"YX TxJ1}wYDDy{O;68IH"~UPPJ!]ʠd>፴h%֑RQ@ɡI](#2 !{ mZ/5>J (^(DrRxJeړǠ;z˽R=Ý(At\2`N0?'>8P[S.YxKj0D>E3 YnKNBdUsj(c 3dWJδq(3RR*wr_ߒFh[-1_K`ѨuG.={GDE`exAn E>E TUU)s1 H1 Rӗ3,kHtdԊ|䉧BSم7-q>z\ [ye2mGn\w,Ki6k?HgO@u YiCz1N}V\!ʓ4y Jn%'`\%iRsڅy Z xN0 } .[! 4bO$n$S2I7&!|/̑6ˆAVu_zmڴȈVzZR#F oTT48ljȞӲv2ؚU"(EhѡV:GX7]m'6pW.Yf'^ƈ~$b2t+%PȀ|!5B0%Xz7E>3)߅ cu!+[][jaӑ4x)8'ʙa?{ۆ..P >/cΨx10@ާ ,rĖVE( ɌFܞ4{_KJ@}` pNo;DsnGCv9 J(z/14smIc./ Vidg__ 4 %kͬӥYjOѼ@PyxJ!OqG Z9UGǯV6Dծ&e-(St\KΓsR^vNuz1W.8aj[TYHRH!wN:dwzym~Qσh 5lԗo⍠P0 g]!]BhaߛX՟x 0y %՗HV> 7 )s@54ISM*xKrdڱʪ8iC(LlC^}Ztr_>{ >r*QYI-(<_{D)-#_v~O_ >TLIx |M`1z?XvDbͳ$3!!2$7R$687^kz/pQ~k(?nGP$J)r/1#vor۟zm YgxAj0z~a%k5ВC`mA,Y9?(e0BJ!Hq 4sNIPEYF0Y5iZ:Q9 2F=E[1 4I<66]kz+p]Ru=iu|?u;%"gb[]efSw.]?sѯr9:/I\X[xA @= P`$ƘtabjbKto[e58+QM4x2iII[toبQ5C!$~2(C1#(hospK+8ûk^BY.УN./31δf~ RZxA 0}N1$LۀЅ-&ɤ 4.A.߷y'Fzt'4z\dcOaDFFHs PBm_ \,o̼*K.yYB^O` A֪zUS^R.E»NTxQJ1+2d3 "(Nҳ$Cȡ:U$G"jQZvz@u/Ԋ# ҴFy4Rj'|#?lE ,y ^b 6ytq7cHaɕ}7S?L6oPkkx tphQ9 WϕW./fW'P%ȃJ:C'H,؃Ggf _)C8+sj(El qゼn\1zK?;B.ѧaY*ZVxN!E<ŷߴ`iFK:@CorŽ (g5x9j9hcvZ)|DdP:y2¸8vR|r˥9gCThܭϵQl ^|ʏ!ĨFۑ6\p|9?}ԖW<zOZNt-P*tt_)aN▅u> Ng?ԧ^xmj0EzPB1RF4 j,#(5cSBOVG=ȤLsjE Zk7idް.81r Kn_t\r/q-.eFw.p 3c*m"[d8.w~< JxRzxeN0 y 80Uڮ#.8kXTc&|}?3g"n^ݺLgj|MdQf ߹kvm9ۮ5עվ< ϸOC(q.LӞʸP, W)a6^ nRʦ90ʵ~9؜J\w? >53\ !Ro"dO9,E%*C&ِI2+ -.Oqd߄=^o)@lt7,LhnEĵ?tpu h!s=lhӟlx,W,Y[˗7B,xmr@D|ܩX,Ve2 $@,`fطaI[>=S `hTUCQ20d k1 z0c`MeP!"hTSEH4MjBEHh`YT,[}_QN"jP ۺ=bڴ=Wl_.})7u}p(<?LBGuy[Ӳ~rNui'BUӝ7p=ӗbZ܏r1S Ѡ"?0 кyKIjŖˏ֪iz]meU9zeAn2yGzԱKn{+%wW҇$oDCeg&, \ VΣD<%v`}v/{:O`( %>:Wz+X3lcR`+ >[أ򉣨S!uf ٥osҥ,xmr0D|1LU2ac. $؀'3sMߺ N)HM4]SJe4BM+*8PRN[.P9%KS !5# ̥.JG<xM{ZBWj@S3Ye 832Nz|/*Q޳o[}U_cَ xt$-l!d p5cY{X^5P@l]ٻ۩Z6S>ЦKCM{ ␵3nq=Jn ,v Vma=o]3x(ⵌ+չ3e2՘/Yݭʢ^ L۱kM'VB'oS̶>TEyo,+{yx>w~ծ\r%B8̲Ӱ)Y=k?;ؙ.4:KܢQm3PJ0OVqəŻŹ*;kxьlsO-~NH?IMD{vڤ4WO Ǝ(xA @=6L $Ƙ0S&Rą7p,iiA8F)"{gɊ*MS@7F&(:oт QiOm-U+/~䣬ыrWmq*r-_+rxj0E ,J tQ01Ԓ@*̹wq\'. bBΪ9aqSsk$`t Z3!Cr\G%n%~X%} k_)X}Ho5/2>|[N_ULĭHlsgy; 1K1{m8džIiH!QY (fYnNznt{xŻ @ PALAڜ?wצd4DbY0#H1s" p*T@Q6 ru1"sF h49֊|p;^#[x;n0{A0)">hA(PT43ՔxN[d@zpRR,A=[d!(Cq0&j~H1Z3+3@xP,co R Lo:F6yD7}׽zn~"!e+[Ns>Z0/#Geo_ODϷk _x1 0aZ2x nBI^QGuVj/R'ZݬmR/u;":KLp. S%Zb vYY=yǤ)Dc@nB,i\v)u^%6ЀCxoSmWS*Ɣxνn ᝫ`UU.]r˱0wt-gZgHE5Qc>F(rlکQ ɧʺSRJK xgm-B|q0ThkuZzz9k,S??ɂs0X2W&L_+=秮ekmǼqv^j[xo:UAп$o: nxn <]HBjzq Ek!no?'ao0Tq%pvV22͛ @V1VpBRASdGaKjY 8s.(F9ϝbth';,R 4BLL0VĤ5ԊFN B)K[|k0Fg@2jAC CUG-\.ూElץCրR ɵfܡ=!ćڕ{R·oGOǭk׵>k_?b|M~NxIj1D:FeLU4 =VQ dS65^ JJEHW}Fhc̨9{O6QliP. t*$J륎$\wJS^V g B`.f?(*e4f i_e&r:G9Xڷ4BH[;6tۏ1m+>_ң2/78)e}x;n0D{bL.!eHbCSdy f84a1}G +;Xj<b3]uBQK!auuGV}JP92+=} x 0t."~%4t)>w Y$b`vb|Itv\UJaG}JOFE﫝.]0ĬpRI3LNgx0}Uك=7姾͹ vf'xKj0D> AOBUђ% cI9~ ԦEQT)1 :Oai1Vt頚פҢ0= S 'Dg압HݽVRs|V2pi9/ jƔV|Y/ǵpcQY;o_~iqbеltkaQt:&^s/wogxIn E}m3e,('C/"[^aj+`愞ʋ qZřPcF*0!`v&T$ҺIJ} 86q6ؙaY2I|N8 և+bN"Аbt w@|b?m+_Lu6BҊCn祵m;]SkcgxpmL~z揻r/O,x;N0{ʉbڊ{~%ĉlq|p M)QZ9iP2x= PbJ<$BTa$?o佶al@: #H) }~ !yS*p,gssm/}}Kvϛp0;q)x=n {N1Rʕ`c(*7,Ieyf4zқal87ymՂ΃ lhb~CgF+&=2J9 -[EY!X]4~kz_$"F q'sn/~q'RΣZ&:1:F#R/cPjg-|BՏL2{'n<%xApFfxiؘ I f xjD'ܶ޶l;vv=kr%19ZݣLnXN`3|Ѳe2P0SsUjh-wxB{g=ws}+鈷giECxKn D)C7(f{4+qr,R6Ur)@S yvSBg7mCb;&GDR& ycI:_ܝBPZ AF2vF ΰ=Qc.CU,󍟼IyڵtZqYףK.֞rck_ΰoe9 ]x1 1v6dT#H9N/'~I_T4m?m?"Z3X):t.쁽Z@vA Q'&23P&00d% S_uZ띙Qxy|?덝\5=5,)ȐxOJ1+rvI2y/"+_svp'~,hVBIr*i yoEQabw;KfJH *fc>XʣU:P#DxBfo\ݯW{o$''%Ġ fb>TJ>H&S<.K;f.gW4=JT籵ؽ/_S݂k)q5n6 nO34%uyiCH⏰91G9 mhY=ԓy|Y- x=1 0`N""M6X!yJ[b=x#A[5٧sxkéP 6eU`ֳEISD)iIưV"B7 nT=?f5tCܡ뚔b MAiL"uDۋ##EsΊ3$=qxνR0Oq}ɶ$+0i(hhxMl#)ޞPS~ζBZfw(INBܬLB셙D WJ/PJ5Zi>YKK.PZ^5<,G"Dgb;.5I>g`3Q  Hg?7}66Z55 T* ]RLtrlVjׅzO}t'xi:!j}^6rK$7}Mx=͡@ l)t۵wA'ɲE=Og sn0O2d$C[sq3'BG!$2CR-`sE`iCeQ"{=Rs8~^_z' x-!0 @Rb;Nb %vi? GGvuim$bYp#IYj2GTI֥ѐ".5"Ք"6!f>@Sw`th%ڗxIn D} 3E3VA#qr,RW7"ha. h+B[ % pԀ.Iz[dYA( 7Zt/x8%ֲ EdH|3+%f%_4BJ&2yK 0ғR_[e"e%[;WOu;qt^]bHm}1xߏ W̳g[Kl94Ƙx7\ [{f=H abm׊NKNyCVJ F[LF7lǫj1ؓFF])A3yՃAF k:(s$o{soڮj8oV\42Ĉ[7ĄJvln G5FgMO6,(Ÿ/'W06D 8"XgsaB4MNǓr,7ʭx}3xl]y_qDx8 ON^4|J`4XD90C 8/ŲYͤ ySe[{DHﻘ E$5vEeyxQ{HU,U V]vM}_TU(Wp]55m%#xn!E{ (7`y9ˮu~?J"S]h1bQ- 5 fVgKi F9tZI˹ҮAqo>plqN-g)6(E,O`a@IR R+3a  Ame^s:\~E2HUR ϼQ:隫-0#Gyo|/7s,xn w*5ŀ**Uy, יvY7K+0z夙pTSefs㽒8J!%Rقw"8t)2)ވYגYh툽K. ׈ IsFTgu&Ge,dfO&@wow.y\nr#]mL28V|w !X{B[WR#~r%>Ò6mò $b 2Hh}xKK0wNy ">Bq)cn]x68S "h=LAkȅE󃗌SMT!(ACrLaнB {nY!qĀ~FvvJF3j:0(KyR^]B%D\V\rL`{\Z>d"gM=ͦ=zO0? &.rc7BX=5v/oۍv1].m*έ祍[϶5oN4e;7x=n SЯXJ $ϦH"WfiŢ|LVD }K뤲@H:y'iE0%b1/EGCiۜ˯N ZDZ +e1T(tkzgHj͙s$FE?׭d㣲mg_x8V3c~ַrZCG.ox;n {NAy`Vj4ir^f6珓4h)QNUS n}/3ۨw:!Fb5VFp)"{h;h,@q`d,VF\$# "a߶2F6RF?>Hl^FDeUYWz:ϧrus}G޶yW}ޥh_osk؝xn0D{WU&5 &6Mf4a#`gPE)Jrg2Sd7c 2Ge:)Ƚv^yJQ!d3MrFF3j3(K&?H8{&W\>…".mR+w/>PjK x+'wlvJyS%LKmWl/׮;iSM({]G\oBr%/7m}oxn <#[k$U߾{i5vHHK˰(56rCG1IO,aP f>56kƑ#iԯi71|[̐Xk~骥LSg;>ޙݺ.6V\Bi$71J}d_ 0qL%I7A1wg;|3t~@S)K7:o1o/(R)~k~UVR0{%x?O0| Ti Bb$Ԣ#ۡSu~R@$4nJD#ŶӠ4 D5Řڀ3*875/`J[H;}> u]6%]0ZҘ^*%9!LhK4_*:۔6+~V'{|/Av&>a>5Vb]0S.CpR픉'G~6]̿@j{b2 ̹!YMe|w$YeUe7}|5)&+X yIVBq)_]|UZxo0+N}`LMSTЩR6Y)Ӱ} BUt(Js8CcdYgiu%]Ҕ RA1DJ1`ihdu`8_4&Ȳ 2&aIֵHLƟ N8pITsY>F+gtk/t_wxlfIbJfֳ <ࣻ؊9н9f68O7d9lmxETh_0-nt;tj+أ%|lmN+-!QOqunOBS9v:"q}F/o;֜K`TkQ. ;XXj=(qZKg?ۡw(Ax3lA~AۍpvA#]hP*h[hӌvxm:#6*)--?Qxn {?J)O6?>EUy0%(y"}Lߌi6I+Wg !V+!ÍW^-H-5h ɍ$3س@aL'V8.ڬx1,.k[^'#CL=1'-vxn!D{¼/`YN/ᕽb|6Ef8S|. +ǣ`y21H :p8PRLOfZ)^ A#G/mK7#88a3b$稍uh0)i X|bGԖe#3{{{TRG̃l_>mBARô}i~]7ZZ_8ϛp }q1%xj0~Y7XKC ChZtQbKFWEl7) z2i#^3*`BQ51!Q( R9ͦ96Q9Ɛ 3X)IQfdרz}7q=0J(e{5s $4.Hu#6ZsǏ1ĴRϿ<>wONǘlJ_/1}:.*L9ۻo\Du.oeI*d_| =`uz ~0 ?sgXŦif_;^B9_v]U9CLIwssSۖޕ |R (=×xKn D7DІ2?NNEjjz%!F)`Մ բB*3فJ@XQ3JSDpI&Q4 +_<1KX[@tYJs9 WXطm>xZ_7,嵋U⭵}6^Os9[chc6z5<# k+xN0)KioFq 2pR-[|̙|VDzw8FIv[7TV ՑV rͱ;U',[:+ג`]\zF&z v QNA׸Xe²uتS݃`,c&U,> N}NPުyvz5$o cXTʠ|I8"X˸ ޏrNx>{sL8K|qh0x;N0Ek ׌2'vGMN4ĉlaJ{3(\N{PhlS ٱܨEsvr2Qj6#v M+ҧߺ΂3Z3;t=25 FJgʥJ #5=u]Z c#u+[ƌKzKy%=iiC/e;SV)}}c꺱#߯} 45 лkx;N0E*^(;Bh$X<'' (=Ԍ0T=HGx\qfy+k61VL8O9HAʵ1qinW|xc h_*SlMO]KyO[hfPOeZ)8C͘5Ԋ֜59e$wxqJ/S)wpLq& ꂰeJٱk͡0]s)˅9.d{mG!yczr"x1o +6c"EmK Ql48RCwO\ZCKBE%pɥf- RRRmkVᵍi8nJkLW%MdִRH\_:8NZ!NC|auV΢vTD0h_Xhw&77b鷀.GIYQa"|"w~|1Kz-ĺbL-!2Kn!6xN0y ؉ب`Q!*QM|LqbĢwαuc@$tP5TvF0xQW\wYa+h6A@ /e%VF  4K3؊'v\j ƃ7`z|zܒOs667]=fiwna_VBOV އWgEó;-ـv H'yX zIKv,J.crw1]n I<'EԪwO#NL\$XİӴQ_(x EWt-I =\[[^?u[[#@h{&s$} /K D@XwhkTG1]%djZ[]um%h$Bu+@{ǺAuA5ff4FURT}c.)~*\T%A֭d+~]mJܲaC!'d׀+}yF79;r`ho4c\! C'ƭFdx yp>c:Xz F` t#OW ofgauNBB¥7b$4 p{띜^^p<>dOWl֜C,Y‡h+qb9qe +Q]˵xPn0 zXE] dV&!i>Jkr၏;(#VJ yB=49-Ԏ.c"蹞QRtVN~[iϜ{6:/0:Z)idžw7u3~PVK BAwCrF"ONv; No0TA@g%].* ~v|b b%_,*w FTXjW rKMPm+ڇK܆µuZPZ[8*1}{x1n E{~Um)M(3(2r8Eyo 9T^~R8;8 p ʍ  hf+N@F ` BuhVX[ekw#AHԺ |/=z1FVQ35ZEtӶ5fkn2gG)f lMuumZILܧpc^j]nv]|F;w^y[9]ib #s xPIN0h*7R16rN]GgEf"L$w*F R%&JjmqJw\ Fr1A p&e*uǭ:=ks%}-ٚr2#|/y3 Gy|ٔeFpƃEb0~aĔ7.x_TKNϳ7Mow>{}S\/_/C)}L4!No'[k-SI+]/5UHxj ϛKMbPBBj&FhPӅ>}}_arDd..B2GÔ"&%j"Dq/AZ5W'*o0sl83\WpqBTrNSSYk7OP:mI rk2rA?/=yA L xPn0 %E"Cѥ(С3mĖ II~JvP.w GDP*!5c2=M4R u%:j# =(exvRN1,oCJu%Na@x ]׹YY[VWJ*Js^J`Rd[9FlP2 89zr,1$ū uǯ"?a0lG|Bpo'CnB;!۝?I4;7ݥRss@}SSF;/F{ -c:bGYZ_>}qP#xAo _1F6Ƭ *RUU91X5X7J~}p{\ޓf{%,Z &a˼1)-9ڎ%aA Z:sڞQ B[e'5&p3Oy5Mg޷jeJ Y߀qBAC_1q]})h ic%nsDfO l•b,> W u4w +;o!_~ 'Qzߨ_}Q!SiNp90:Q6 Zм`ZΗ6C T}zabrg.u}c\=G1*5|i֭xMN0 Sx jI!4$p7IHs{2p$K"dlJF% hP0PT$& F7&  vPhH:b9:7hrZ2bFx 3 퉳eGZ32NSڜV?G)4c'q]R5;xi}Dn=Ӷ}^abgȻ 9F#`dm#LJS"[,9(6%OW%[=VZcST+;CsW|.&އ}oC:z;j ' 6kxN0gwJ}B6T Kڑ듲u, [sP)a@%X=C:{7!VڅNqj9u Ğ+TY9e)~Ew])Ŷ(aR+#P΅}:ƥe5&,Xs yM~J֚|3y9C 0Ls(0]I(u)Ϛ-T`])!ڏSq-5,,K!f%5%j <.xQMo0 =׿B$[ڦ[K`ԇ]dH)a 0^@>9Z8ȦL+& F`b 85T)alWHR"A4l Z0ax'm34`O!QCtyJW9%%&WtѶe Ra\t]&DO`I9L=Wi{6\.۪/;F|`o> 7s ԛ Pl(.va~oo\mjpeç[pRO0㍮sN-i|Mb)򬹘;?&4!?ukg֨䋔=B|9᱘9.d__}`)xN0SLű'BB%P9q'c6S\Y>S h- ѺfaT֚aAnL& iHՂ4 Ҙدp# j*9t`e]Ui i j- DI /D7 "F"a0!ٖ;Ց?).4g8vIݮg~Y.G殕{= ȧg+~{ 食'欱OVNYgX =mhMHM܀kM,k-F׾ykgԔiy7-"E_O_CLxTn0}nTI&YUJt[Q}Ǔ!#_n+UKɌ}\=Ո&+, +klKĪ,2V%E`V!ͰŦ¢2+(ϛ:mE M[I׀r2MhZ-aPqz74*/ :ⓟ^izfYdDH;iD'Ob]Iփok4, K1MD|"!cH Egx) 8G8K]'1ϽqDQgFCY_Aspd=F- iaO}N^?0[$o<%ZlO\~ͱDcwm/ME|w3d>Ƹ*rvX0t5=&ު0VsJawoOmT|"<xn {5p:E10m[ϯRMFiL+:2րr3@7eGsnR'5 !8e @0s"l^(C_FI82' 6uwTjV&o[j ;|nG߸=HVڭ̮~;[N%^K>kÃ|[9Kn_Zonx\x9n0{Asߌ 0:I (r(>Afz0#fiJ .D{%Ӡ`֠=th8\tg]`]I6# |lFo/ܭL8c,8#.2MJ:/s)e /Jۺ.sϥaZ<7񲯭"TIw#Kᓗ17JO[Nk;Ƅ}n}y:~kUxNj1+|B)u2c^zHHBh0cK*Bf\l2tA+Z*d͸5&)p&OV1+KQ aFnGmx ;Cw#8Vky$gzHQ Qc(}H>~gj}sxT7ۻ"m"[K]k[_eꎣӵ6}]+u$xPˎ08З.uJNCiUנnfiSaoPIcz)LU=mdxM`0"<箒)t.)^69뇺k+d] uGM~lJܲv{D6W`` ه]vbݦ |?U!/A!G čcYKha}Gٯ}rq)P,Lى;>tgC%;#J WNw!9~Oxxs5#~2%bqX\5&KX=st xKn0>#ݴr 06s MժZa3jl@`',koIC2HC"+#q#)ĒvDx#^{Kp/nV; 6vF!ՈV+Y\a߶5KK] !u5[0\/{Y~|XY;:,{نV$rG|1g>xKn D#lFh.MXx''"yO*T4LJ-LW18QD6zF/fV*܄Ubl]Bi-iAs\W 6/NI4 ̅YXR V*#۶N>M{Q)5ذ`:0y{;\eC.85:#G^׳|=q_oAnߝxKn ?5DU!]ԒoaY-gjAYL0ZbI$%RF#zr`uP"C "h`ꃗaF-;ҷxX1K`.͖%i뼲; 7q}1#ȴNu?k!tWz9h*R>8:/{hg|Lk#xON0Sd5O+n@B<iWA*I, xeY]3GipgOTi+d(C "k 7Ԛ0PTi$8* W=9e8[,rT?2:t`73}^j3 -9{@Lp#gz@wsiZں[ )NaZO)o1$^䎭}EI+|zٽ.?%F,O])牐-NyjģT؉B6|ķ4//ăxMN0>Ŭ)b;NP%[n8HȞ' `6hPFYkUoD {F;+hl#C+w#zepŎ֏`(/4 pVIU'E_ -EzaqL뺦5J>lԞJ7؇t>/D_i]\[N-Kye@)nfپDf'| HZR0xp] c8,?~5Vp]Gw딧;)^ ~)_ש(Kq :#xn0 w=6mɲ%)2])bKD^mLʅ#SB!1~t\jꅕ݄RJm*ql Z9!:=k]oqtj0sϵ܎t 0b5?VU XNʌ RQ.QJ-/m7b!F>@Lݎ+>'ǣD1ۉ=ay !%8% +Pt~'d _^x/p>2uB3F~#clT埡%|>5M%:Z7K82}Rn(Av}/_Le4 x=0 {],<,yHKm#-g"H6|@ 8 -gLS-hlYĉ6N[mޏ.?f 2<x[.@%O/LnjTU&u]诠Es>L'>OܩrbJs9~;?R=i\.U- B;a%'x%LĚ>1,gdZy;bȏYK> '31' 2ߨ\[>R+4}v˖xUnx_myxKn QU%zGȨ ez.?ɒ^SD K&-&"fΏ,@NtIG-@;q Fj-6(WߎJsB9k"gBKk4[`6JS Ji# Ǿ?{OF>Έ=Ѱa!$?;k߅=94Qy.Wx׫|>@ ?c?i'xMn0>œGUyld'袳o57$\E#)RԎB g{(JicݨyKi+52zÌ, ,Srǎk1r37z )=\6m[[Yc0e$hbZ! \_hk{Lz!S8*^#` A–qWž1ߩ[ g_j_~Iey񰤣6ڇuXrنV)-XۄrxOn0 zE]NUZK$_crGyՌ{ymG9Z5W謧\GJEgxXϬA^s fS艾K0Y]478Q>t]32j*mCUS0^qLp*U/; ;iC?n-^R!tym2B " @wĸ|szY0&ttKBPrMpXqWж+OQST\j|_'!x1O0 ϜzMڴi+N:nc1V\*M xyd{)!٢B" 4dtp[Ւb+F to"oI2e#۱޶jឦ?*m^wxэ)5Z5xQW\\<aY;C .i~;. # R &=كgseh0vN8B9ss*w_fmtt!/.߷Dk뺕.XS-E%/'`x;n0D{b{C"Q4HiEqWl}@R9*mL3x`j&N^+YeL$14 ؇Lka4LhcF]HI4!/޷ )=fb7Q뚀*6ʢj\ÜN+ʠ^E,s߻*|~O*P7mHZ!4צ|͜pUʓi-O?,(v9{ӖY>n"3 sxKN0>n=Bh$n:v|d; X6Uꕈ';O dC&r%7Qu ]:KJ'l64xBAw +/ _<sC9 Ҁ$0 ^9hQY5u]zycGN|x62҇ K֞w!.ˆ^ˏ!8({]EFFľhݝxKn D,G()G fP@Y6nZ!IimVchQj|%J7ofY+2 4wr&I^̤VD)1QVYt43<=+o)mG;mm:-ڨe I~55~BK:"/Jj.{#TηSKcgк^K0}*ɃGm̹>}h刟75rm/^N>!xKn!C}EQ'Q5; )ATHdeuQE*Y&\]ڃF yJ>Ьx6*ȂxK1YpzKpo<5#"(ArR˵dRN4Xo8ϗ%Mgm,8 c鬒ʾhwxm㋶RFy3.+uzq5( r?ypJ$x1o {~ԉwEi4.ḭhm0N\7W2"4Jk Y天%dQvuh&E&c,@팛VqP`"jGVz 5e0ï~ҭ8 Y ۈNfo\dz}+A*yU]z)-K(77.0%.Os*80ބ(W^f=XӺ`RR t_3t٬+d/aH^t ${L)#ŵ.a(;V ċl_ uoyU')eh\yͰq_x{RgOx;r0DsB#iJN:p'*פMz$&rfYcxP&`0Gmdi/pdxyŅsJ4❾;cN}h_0?&I׺uE]imMuEߏGii4$xQMk0=~ŜlK(=hc[Ҋؒ-Zz̡{󥚭Q)X'Ns1llc95Aq Jj3Xc.,Z/) }YdoFSL|h[mF^܃\q1 GӶZƸnzBj<>S>7.F&D|;~ð4=c^}{ SF#-bs!l dÊ56 ;`\/"VrRNŶ/ %A`ew p]>eP36a9m)SQm=|j.`j׳EbxP[n 9r^BPlۗHڙ^pr9x(  ի@WtYX JAjxXlЊa>rkg:mGw Zp&̲Lub3gYb J;>d,'6~Ͻ\#u?nO vl к{|-;Č[8ŒR ΄ԾʔZ](윊;5rʣu<;F^GJa%D!?G}xPAN0#q\tڤ]!ĕ3/&n4,'80ےe]Asf1h{Z&5Q8jurX=yq6xВjI Ĥ@=W(#83<51ͬqipL M~Lv hBm .XOc߷R~~.vD8U2o|'v[w#T$Ju+MPukH7EΎ3wGR_TP_/xxOKn s LߨfUa!h˨袖e?O_=QIat(5f \*ɎOĈ΍ 7|wJȍZxg]|+gk);èh-#}=t L"악xKn!D5 +,$'V.EjU^\ % #L˨pm:jw\af6x0$8 Rc|÷׼eI!EY0#x%w7DW-ǑzVog oJfD2<2=bK{%+~i~Eh5f_ťC#jB8jjv=|ضoc0uL7cطkcuk7MN{<'|˺/x9r!DsNABٿJUє0H8pKz=g*b! JS\˜QiER=jECPGXDt ll_$yFX _a$<*g$|P[S$Z9vk{D#"F%d&mFOq~uõ1z峿χs d lxN0D{7^! $ڹInJ.1=̩ m܂2pJ!D\`J)~hkX^:+O 3W|T&Oo/ί@%k#cl($,Jw>ql7| uoeYK#m (zxNAn 󊹷0$jB@}~zeY ]{ZQu||ۓCٹQFj4)Ec]sښ2^ ej\f*~_1NaXR<@(ԃHyrB SmWnxS_Jom{ːӷC>J孥m+K[#*+/,y{x;n0 w[Աޏ(ҩP,H$'ʁ=pCEu FYI D`,l#6JrE,TsMqCA5vJhdu۳%j)CeA_BpBiÔ WBb#{)_5ЇsPM2|r} n!urj%W9M'&;wC6 Ǜ_9 <ԺƱqNqN{m~qNc+{:3¤E? Ax=n0 w[~-9(L9$K8!MzEС>#`wJw8>2:FoR کh-Ym !hj{0'ꎹL'  < Gj(7]􌺆JFj+mzgoZ)K8ѽȐË'|rMC `wFF\M1-ONޢ{T() !dJ?f9mw4܎koݶ܎{y[R]7Bh ps(x;N0E{#O!4Q9cFvf6TGfDV;#5hs̎<0i5}Ƶ&FMtΫ0iR+nwBk#Vjz2`N//LXc,P860MctomMk#,Vy2@}#|X_ciAx|'dNJ4@㩔u[ףT;拏[rH.%0\q')xQM0 =O~GVmNӦZjv !4_-Í\l'=9WL [nGޏk:&5Z ْMF3t]׷\yCԲotUùgͻ-{Bd.]h-ڶ 0ZZd kF?  {s" d;5->K4.Wx&W_[}y)!72\U/!%;Gu֓Wn+pT| - $ Zv{ >Bhjz+OooW{Vqm6l*Ah3u|@3XSs4oP-uյ.`|£g\%Jz__G$ ~PxON0۟r؉: !*h(q&ߓL3#vj-ȆZTh[}/8Tvꡧd9ΐE6d@';[XvBh-FHNTc\a;<*hTr^  VrrtBLty k wyGy7Qoqʗ rΰ!mjIG Ua )|<o k-UJǪn`P)'J1 !~U d.)R׻:q}()ۥV˒j?W組+C">Ўxn0 {=VpHCqŠ^8s%.DwE鄘X MΞg-C18˃r62Z5[0?+ܷN'{z稍uh)(%$a!Jb19([ק%8 \`M`~{OmwҚ2ZiCsǔc {>=a_XRqZlj|b1.xb-+ xϭ.iI㒎FXF_JHH^Oa}xn w=rUUTCv |I_нCot;1R!(49Lzl\Mz$1#ZI*VD=kX&,pwK,>Ys(Y3d7MAjc-9{keA1X5!$kHXjiݖ>v~|G[-XƲP,K ՜܎ v] '˩w:K0n۶ϥ=[ пT'?$}H*xQM0 =O~oH&MӴ#崀=M6KTI:Lp@.m;if4J-ڞr#cjuK6%L9@Cr)̌3u(&jO0i8½-zF6@Ea(ds)jX-`h~Du)a#Msl?U}XK_,^)3?!w)H~/Mݻ;9Y ƏWȦg~Z'`%>*& 70`uށɗi)"XrZwVg2Tċ+xbUrra nڶXKK0mə4V}[Լ/[ UVa hEw/GJy ~`p]Yu3f9Y # 3-!`--d!S\W_/v)CvN%?.MÌ'KKKVB, B`5MSGz咺ht{{h&{shc|Xsr竴+i oϒ))4O~dxIn } yhEQK9 | p''"oS*SFтvx\К{sq" IE<P.Ϲ /3ʭ1"9GeFq7_^C9gh'6_Kz sU3}]/[JKR1ӱki}_g?CP9! VjxMn G$%QU%zxdP']['$bPF jfl|ԫһ hMIѡhtfYqZ:՞ NJkPn"ʅUL<0Yh;)RY6b(AL/h\ PM[uSc[j~ej}DZqn?yUKv+>0J_.otpxNKn s%y|gTUsjHM{.-˶"eXl$A7s:$}JV8*T;)jRJv|!o"RH"yϯu; <j=8ˀ`lf0JH^`a{>K?kT:!R+NJ-Ε*tj gq;GX.}h_u(Z[t*ۑu'mJ *>rMx1O0g+%ZBKh :9{j?:9e'gf=L2}k;DCȥy02=(ٿxhg//Z14v99?o(hf4E\)—8=+G~ gca5p2WaJI䃹~إ)`b]>Д4tip*/'(C[ݞxKj!Brp|r@_ :9LNEjRHẺ5f۬!k:C:1 26ŝ$'> PxG븤0~ ΄3x"a3"$M[ՂaάY%Ԏc !ͽUP'_ /^x(]Zj^~:-9&4砥wd/brVk dxMDZ 0@4`h(# 0 #y$EɈ9eE1=doy%V5D H)V0JYĄ~y~q{&|l=v?J)ߓ$x ׇĝ7mi)m ݨ 06B}}1]HB0?OD &УFwGl5-brjQQ;0`J.#b2$ZcMoQYNy QUnjjxj\Vb'd׾S&x0}˙!B!g( !ɠO$gx9Y;btEBX˷u }+&+A&q/6 ҝ0B:uu nk*K`?v+_8N%o[3ܖWԧֹi:Dw3e:<ԸD< .8I@"x=O0W܆J8#*1 VV8$jcGK[&->^ݽ) BC XR4pllgԠVHC6%qTR+k1p.kQ7LtJZj*A)>dtxK3ʻ)CAkFnvmD+9{[A۶f<u]RQ#{xa}u.nhٽn@c[7 ;ˋw4Dv]Fs%Boq,p [e͇„ JBȴ"~b{!ƹLttjrpjU)a/(W b?jxPN0<_7$$vPgC$v;q8q^f96",i8WRjE霕Ԗ%KiV'hyM}NF B'dk jzUk]WSi  #.YKݶ$x-oM)AHUsԊÑgc.,˔4vx-aNfǕ\ [e-@;LHS>|O0%9>p >Cӈ[d S*/ 1ʬO"Ӽ#H^JŽ@ Fꂵȃiي kWzjdʹƨ.tmR!W#-KaBx~l1h /"mVKBZii#2Mc?k𺮷<io0T\8]HCnS,Ӵ 6O׏ f8R*X?"b'yLi8Une?c׫~RuMޞ\si #MGxIj1C>!oM}]pBh!͈6JL`!l;Șr Ge4:2Yb *%DXH5^{}Jü@ `.ffmGBM-*z)u](_"u^Wo҃ӄ v~ml:vm _mQm+>;/d"xKn!DcY 00|{DJ/ߢTL})cEH[`* 39Qh&MX֩Bd;)ۜT0*)%AϽZVzpֲ"2A0a$|PH Uqdu=Gži^Z[%VoBȼt~6u/y;[h|{= Hqw.kxKr0:0, R)!7l>%s MU,YNb#6 y#:ױYػ :aaԵbρ'G׬S/s ΃b,u}K͇6,ΩTϛy}>S)2,ۓ诩ȵR*M_K5 7}iNӏ7i9"[۶7isS</@qxPn K02m<1G]Sřb3ʕfvtdSN$+0.\NNqiB?3|Րb9ohՌB]_kp+`<6̦b!OJ^"lȂ$V@lhs}VKQG JĈjҘIXCDaCBrJHI2_yX~1Ir; As2d$JkBfm[[icԿFОʫoצ `b,Gcx}|Mw|yǮeQ=.U?:6r \ ,sx;n0DcHH AE,ť,ؔ#02E)vvfDa1z Bc/:k;{>alq4tE36A|T^KFOVkۏ\Z'ox/xc=WMA:xBj률הZWtZ3|ܞOW(e w̴4io.4siM/롔ivóim+l_o(|0xMo _1FWUj[E=51m6XfbCC#yߙ5kQ#-vSQ_ԭȓ(*TE[Xw(j:*V h =m)mKkҾWطh1j+^ #vuԒ;n>ZGݷ3RrO0f생zd.p q;e$ ]@nȕhܻMڇk{(6Em.-_ ` (>GWcKUA[ϹA7#gv?c=,$86 #|%I2'jux?D<9ݖmݶ/$ xn0 Ew}cɶ^AP:4Cۡ,ԖInҿ/P$p{{55m艐ƶ\˰l (i 3Le(4m8X0*$vJЮR`[J R[|˲]x'*Ip_JV`(!@ J$å:lzaQBJ_| r@Tfo9{`vwD{_ؒPrS!+Ib͋q\oWeRu]~tjx趔mU}\7ujd ԖÖxO;n0uEСcv"ODvI׾Ar  ȒA"Eo]H݋๱ bpB.a,W\ߙ9rM;AR{+z iI}xl8Ӻ 6]OU LgQ=Z`p_n.:?㥖Dc^їmeYf.|wq KMqOq.MfN!Զ;4c֭kn%ڒj_N_z2xKn0D>EGۣ(3 +F09~dZtU^f;\ YZX;q'8(a=e(uh:Q^ L^_7]aDυՊ7v!N-w Ph6u b~M)tJ`_@9H2F8ӱ%2ƖPMPmߟ.۔%{[۶wKJ>C8 ~ĒxNn s_e#VG<BU 9-ٲ]䬔 :;̈hDTAnae+hd9MPҨeA=*7Yה!X*o/ORpDZ3̱[6jB)AQAsv̦}j>V( J=GNGnѥ'XxBʕ1ڕm /o"]S?,=GC{_widIw>xSMo0=/b΍XwY̪UP0l5iQ7iތDb+p[MK !EfዸՆEZ-|#kdKY;,eD5 9\(-qy"x}PKVS=vtIݹOښJR!&ڿC 'oҜ0/%Gig{1t?j7P卽dOIEIJW(ii3`.ڠ:܏rpD,2{\yL8nlVHzZu\Pcc%s>IBn4mDѺm-zIbtˮk`5gp ͏(&%?n}XD>#xXeE<*ȲYOAl^h :;dP="|2N͊w(0g ab 5xgHv̊p, -L{Kx\rb4[i,*ZCYZp>^bb16ɸp\. !IE G&eى҇pjkW)|W/%ܑxn0D{'{ ,pEf^4#5FH= Xv.p6W;ט:Npa1[oS?GH)RnE tFАƱ^cGMJ:OF6=ʶ-"?*E1Ùe5e:ْ}]&CR"%V NaxMPF1{SY|_((G)[ͨmPڢ '0.fj'zӺ.m8ݗ2w-+Ny!5=<L)drL^mkimyvqg8T|&nKyz1^߈ٶB^_H{]8j/;_xMN0 דSxͨm%#!}Ҹm`TIiٲa7Ig9"F0%xV PSS7lс\I˱lTk;k R4Rshz7Ғ5>G- i2%x%x& u+U(@`]W ˺#ߊu~\J?4vg:w9 ^hZ| QAлOnXEso.4P%vֽdMC{H#7o%`Ao}Ina .ecΜ=SQl.f05&Z ,"u~?X_>þDq"xPj0<lay!aC !6gkKF3~җn*Z*>Q&I6Dq AǑQU& B^ &(bfYɈ&9Gr+i%L04#=P7d^l)yB98;\ ,5jh cZcݍJ%v9gZ}JqBQU"Y]27 *:Pg>8(^Od0v]9ky3A7Yoxd]{ٮp׵v=E1< /M7xu.6&w [=x/HŞ?ѡOS!ޖ#xPMO =_M[`iƘƳ)L)BC}/^qM8?6Dj3h 18Âh*EE \0c*&X4LĄq$ @jKcj*tUNLEۖČR)4\#o(G6ʆpByv)7ֱ^ksesWp+xN_K!Vs)~߭=u;oQ V#6my <]+ºTtCu:w }m&Xj,k\SCOV+xR0]| mEd`*B\MmGߛ<={ I g9E4vJw (c3GL# tlfm/;#R#5rFF#>dRVV#sE{F+1S^ n-{tyݦG^[{)ӑ6zwP'k wH+: \傱&ϫP xi-]{9XK6hsEm+tn#`5]5@*~X۱Xvdpd$kW _#7] t g uNmFpvc+T'WY=A71SdT/N>,7xntlJ&k_C0ڍxPAn Â6`Ծ@Όڙݚ+B" fOS3jc~ZRIv1VZ89*js3;'#(,ܨ1׺ b3g+);щN-Tt;1+=΂'`Y2G Gڊtll#xM2w~Xo~5bfP-+f$656k6ڕ[6wR04ևhÝ!^K}0^r 5_i/Ǒo\ CxSKo0>o~Ŝ)Q⏤#(eBގG#k0qzFl_'/nahn,)F 0%X$v|6DWsGm^tO؏JT6wH/߅N^v~ h_YjYεURj _١!.l+hn/"MSx=axm0DbG"iHKr% (\TCwL+}l8Db¹AҜd +hDD&1'+#U/VITn;/1th$v.MSJ~Tfp=p3"n뺴&>Dͥ.[kb(b Xb^ZW߹[ N^j}麕9Ӿ~ڷr䯇r"-q˓x1n E{NÀa`E{`kE9 E^^GKZɛlHq )-"Ŭ,;CKups %LQy; :f-9/1ϣۯVx(`F.9dsT`<*~ g}ַrԄ016Db[]ʫRtӲW<,GhPN#aڙfkxPIN0<_G$^&=Bh./h'"lO@JRuR ׍%}{^εN+∽l>*PXa%Aݑ32V ֡hiNjcxI`h1"TUÂ+0VjA.Y8 n~.xM1ϝ_Q]+ӟ"+2":]II$t; z '[$8"fT đd#jBd+zYx벑lAG&@)CQ Qu]~:E$&@ {ylyYiҾ,"톢Nm7PMU}".&CCcXwyM|q,[e#g{ 8kJhpXg#䳍a^6~_Of`ŖЎ%WmW 9 ښA" ft38 :%º@ؑۨ1:7/\uٛO>’a[H9%|  [S:դz_N[B0*jwrնC0ۘCXrKvKZi[v7&xIn D} 3؟E-$h+1Xs9AE[=U!P(G]6@/0Yrm-%*WB8/ԊjqKRiZ!}QR(5sRx&)XfJSf3Lr&FZc=|ZОdj-u"پ[k;烦q*5|Nx*^󡬰TLk0xKn D)zad^Y扙d(Lhť(SBR<9syk4z'G[r`td05DܑNDt[!ĥ` (#es Wr mkk =rq QL˥nXt rbcstrFcSmښGAқ=B(_[ Nֺ0>I_!}8VygpGӘxMj0 ShWΏc U-'; }==A=Ic ejS;iMBОv|!3&mTe-;)Jk$F~VI%DJ ~q2MdpmZuVBǞ6 '/[;xKK0WdѦiAĵӤ$Ϸ3J#"WW+6=hzV*@D)(g JX*[PPJH{7JZkC*-mFEqUS5VRS!6ZCw|;b]e =["  kƃ&p.8-"Jz䝞Umc'h!}K7f6)xB*i#!,s)?6pp*̌zeKǝe]p7"\ZBHK?f{<0V+[wf =Xz9I[EZstbxMK0W.m4"xPlq$݃s005#Rs\+iRֹQ:cC\x5m/dTFiSAc;-8Fr66Lr֘ AAGE/]D\V6rsOS)cw}ys;F^OrJb@z\iM펮TOBTrtҋoJ9nBmЦ܅KRpj^Nhe7 ¹*xOk0ϫO1Cmi)!ЖZJBcWԖ$g鷯z*顺̃&GDЭD)aFq3Z#FZ!k.)d}4ݑ*ee|J1ُF-Z h9DN]}*P#h[m{Drv . *Fo᫞SC?R)eW! >'3`0f]jryq}eVζI&156 3 86D\>;xS<ƭ=pgkJN~TDglJcWy'{u̶ֱ6sgVRҿ&Pfv)x=n {N1v5 ckr0kY pJ"y_~Z!ŝz!G/ymNu찅R_MwartV*M޹@(䷕xkDhMwqՅh&9* P T;Ėkk߽n,6]ښ$Z5|M=cqm]Jg^{1G.q>i{ʾMGy xKn D|ƘQr7,9 jQzÂHd2;3&'ĕب mHșGku1-!8r9^#izgVXEJ-޸V\iF9 u߷1V.X[8Z&Xކ_El_zHy)j?]rA2׶þ\oj xQMO0 =_3S|i3!44@B$u5tN_ޓ,`A0$jhB4VMʃ04WMYVRhMKtVWZ"5qoTP Q!2IHIIhRe]Vu#y]1z)Ӛ H da1[߿G3i5 GKyvP,ɞC^S=|ņ qwk|Z_lߣۉ,+d?!8c8z.:i4OAX˙BTZPk$&UȴʅTis2h.r)N47 5*U&%gF}ރkWSGyebD4e4 Q][!sH+0U8 ftkCv-lS?w|ܽC.PN_no8vZ7F /Ŧ\L>"4oyq2z9DP~ےxKK0g/iDR`K[k[˄\E 9-f`̠JizeXCJhRkkbӨ/$(SBvCT(C9qZrVCX+rf{oWqy}i< !$1e=|C1o%t>)L01l!@ IɬAH') i߹zSV5.k x1O0WLq8  b4u"i>.3wOO=r責{i%C{J7UlAO.BRneTȱ֦딦S* 8GR\4u3/xʌѕlRVBB[t1^u.϶ϟfJqY߯vw_W^LcfM/}j =#\S3xZ&TWأ!QXfw%]lileVwtyrn[C%OB>$b!K_>¾瘚!xPN f7P6M݁yFX Μhsp ԩֽ)bZ/yr>} ^4뺰j=-e\R&ն9nˆKT7xIn!E)K  ErlY=? {?Zפ'1ͅb傑vjy  *.hl$t9#w1[uNwZ:'VQ((%Yah}Ec,1ZG R1VCU<ӍIyڵtZqYףK.9ڱ,# Yh5xMo WpndF+EM` pV/\mJ}e0=ftSr&TAɥPWu BI@`#JrJY8K+fTPMGЋ -pF k&((ZILkU+y;LkY_PㆮbK|oď_t '3ރ߅ 6,GwI{ "_f/&Hir!w{aaz9Ĝ;t?dzpu0d=6O/Lh0"KUߗa +՞uC'4Li8c eJǭ89[+7%g\Ѝ3i09H[Ydk` [f!p]xZLvx%v:O1/7QiAg1vuQ5:|7\u1[)%xKn >5fE#$`7x1qr,R땈mM4kGmRi3pJ&ѐ$4!,br:"hU׽<ۯNIP""#O,OinY%ߙTxg{va޷;𱆒tݓUzQh4y*[k]\¸"u:D8&^7Y> =Zg7ixPN0<7_g$Q!TBą:$ڎl1efDO\VԊU]*+$Q׌ y#يl4j ۦV՜LRfyG 7:vbo|YSLӤDu'xMacIvJ䝁wf3kysҲ|}z4Q; sw2BGҫ YdRIx[vhVٌчVWUM>_d7TM7xdU"Yq?y-@d'4aT[BR.gDLYdUqVDʫ8Od7:ۘ ~K3&hq:쾜Y-Ѧ"^\arq:TUFDx趘pĺj6CC_O~Lxj SxסyI4N4iOߴt]li{Ǡ^+ N*0[cRO 0q/&:h aJ= 6`AI#&iGޖ\rގNi9T0u m*x0 MKTiw1ZwIVhrԞURb8a$%"%(-*c3)cDpIyh ?z4nk@pT[vߪ_V fqpqK"\'啅XLjn$R :{۾s9` XO<+o!r.|jnvT#쒫Wtާ4zUhX [-5Uw!)~/i^޸xj0 S輒vb.cvi08al?CPD`n·%n,hQ =`oќ{lHKANkkہ;%54 <Ä|K'F W2=W0xtJRJ[5y)yrOuTLO`xIW<`t=q y=0?0*]jg(zLiYykDDP2py;hOü@ `.f9O:/F_ jӏ@oCm]n9=Rw!eilvކRðR}?yَO4ym {akU'xMk0snے!,ll{ #k?m)Z\eFz)z"Q kmݐHc%.7FIbEէld94X AkK9ZˁTFdxc@#(Y2l3\V`k[j me\hp⩼ML{ l% x~{=tO]EB\^i_L>&SH@G_W"[bzA7Hx9}!G`c3J.싑t U%\iK+c]G\p+۱v.? TmɖxIk0ѯ`kPJ 唞zX6_7=rcZ 2*qkA,utqSBnJLGTRZ愒 j,0k&gW%%*!:M@p,]K<­Ap5p}il-OLgqz ƇfJ Oӟ_<ٵqε4'.`g(SJ4~nq_ЦM?QkmaAfY*J[3je͟G*A7ܞ8xMk0>lYZB !PYF2_n )q79T ѼbA)͘Ďsx/RRٞ! bdQZ8'ם؞2&5XϘeQS e-F`upw-I!JEIWRv)5M+oFe浪[Oir)VܼG:oA/ ; 5` ~ͱz E^ @od s`k -Ϯ;c9n=+_s{:èa¼~f=!'إ agRș~΀q?\p|w\*\:socU~އᤫa^c¥pE xˢ(!xm0D Y#@) H ( =a0! I9KN3luȜ(}2sjDb6TP"e `{xpFzrJF'rNX'gRH% =Cbݶu 5Q_kG a|Z رMWBȲʴiץkmˏK9}祶m(wOr'xm1,l`v~?UB3s)ha\Ԙ3"MJݷnaF 1( )$EMS1n xl￸[B Zd5GBE_۲qh{w^r5 |).=>wcN8v3B(NG"qni9~Ѻ+)M!}H+ }q Tx5ƻ 0P yZt4컂6PN!J^I,@Ca1%rxA+\ ![vuW ФD09 ),1}ck:?ReisVi+qxMn }~J)*c5 p_lo35* iF; 7"JNq!B *fjȝZfkTގj :=X4K%+W GO8Q*=JJ1r !{Er/Ks<KNKԕÏ6B҇_Sk cS6RY{acfK=^a _oAuxKN0D9EQ&!4 Ȏ9x`AoIU*uhlRi1,a(T{cx0ي F h΃FqGf.ѮB.a~_hF 3J3%n$8"fZ2QʉԳoXʺn7\|1_RCV_ QT2,%g #zSdmb?.LI!/ko A$xIn D} 0c+ZI>6Xs Ԧަ&Hޘ 5*GCkPޢ NXn&/ ڢ)x(RkOA{-8͇rrk,ҿ O%Ԗx՝g_sm:U>sDP[^ktxKN0E^ )9Jq` `3:7DeHiD*qbT`T>d&oX;;HY'B,hrB hя)fmi4P~Ч_Z%rF)F sFmAg*R7zGH\g$e^?q~zy}7-.-a+u"d*m_tGvTyiӃTn|Z{ЖerxQn D9GFU^ * k5 pV{~t~iFZLrwnܣQ;{lb7*,dG8w0QxDVo)d@~:HѺAdž7f䪙&ݠx!Bb.-K"{B=#?+}Ux*aY㏲@ʞr3csMy& ~*vi۝s9nu-ּϫԪ7}<xMn }Dx[UT<[{REg3hDp"L<* T"c6:fd{lT>9팊 `Y('raabϭS~ Ή ! 0"$"a*|/pݷu-cyYOZcAk[{P+ual)C*cg_zRt]jnmaԣe.rnYm_oaogxű !(MA<`['?1Æ%lnGԘ|wìq8h$K7O ,et5%ʈ?]ei:ԞgsX|}`rZ$xKN0D^3J{ B8Lv8?8,M=Z]"MVL^2^iWVtG30q>X5 mSFu_8`JD e 2Чo Rpi ou3jR3V -;\pgJ:"{O T,xN;n 9ʆUm [s E) q"EZ-gSPҒ$e`#N,׆@*@BB )aQi\^yֱ#*KF'q.t@_*16Ij;wfa/z$UM]Kvv?uߟÕcAn[sֶ͠Ƈ u)1et yjyv喂R+E ֞uX{e[~(/$[xKN0D>$oBQڟx"H$nO,ͫE̅Cv!hqK +s0NhS4zQ1B QaIkQ, OzKĎY h `eIfv^FW.:opźm+Q7RN_vOT%'?aMw~>MWˎcmOe?;cSmCZ`mx;N0k|f @4\ɲ#Ax9SL145;:eR+?Z/(aR)nҞOFY&v] ^șr;8F$Qv`ٲitvZROAKfS B5<4uVkNư ۖ q3We/V7SxIn!D?eErf(O''"yoSZ#g0:*S*< 9Ġ4TGn PP IW Y0-_?Ik;]>B+_oٓhex9n0c$>7# H W&ڰE $G R53Ҡ4G/` G01 .(9@VWSb DOhPt:_Jspѷ_5F s9LSQKTv>yF^^RR{ʗ{>]q9|Gre[ !և][<ѝ֮'v;KOglum,MVgPh,QoxIn D>m(j)'a(m@s Ԧަj4-ST\ Τ'pGL,4Qe"B eqC&S遪sgi(: z9Y5vŌUY.˔3X)Mܖ{pZ>z.Wp0P% K:!0@?DŽbD1-Ή~R=M{B!:tLy)'SK&S:)-6~h:2+ujxKn Dc0ݣh4WicVdlbN''"yzUbagI+?sh!A5=DFm#H`p&pJ1j?3:W5xyq$JHiv'h~SWXطm=J|[ o;2E*b⭵!}\!8{dg|zyþgxOKn0o_쨪"$p]t63O@a hG V^pRE#[FFs@ ynqF9x&/娢vN"K4NKQIT޹.Hhe %?A* Fz-\ʺ>ZI_wʉ!VEtW %\c=Bh|/~é/57ڶ}HCG~ޔ3?]p)xQ=o0 Ͽsl)"S,EJlɐ߯|tҡZIEOJ7LBJ]/Q 5H*^Vkɑ6d#T-v8m${ɰ\KjLeyF WEdڊdebtdi+qBy~u=e^~ϕ3xKo woUQHU)y\l1Xg~L2ͮZ6\Ĺ9N+*$i' xgK}7bK}wSs8)SFr#p4GqLϚM&hsFHMX*& 秽.'k5͔ouW| 0ExKN0D^3J?#F90#a,EWբzb ;"B<+AVfS.5MCa38p4Ձ2r͝vS+f`9Ti>ERbOj[ %ϐPz[-[Ԯm{lG8×RJ%{ʮg@L}j_yJ Zn̥b>Z;2z \R7wߞxKN0D>L#Fst{!B#a yzYI1l2xe=3MrVS;V޺d֠'G)DS22T9'l(~q*r~)D39a!Zy3"u]zR+.+%^::7Y|+u}-XϳW!ļ}nɓoxvT]{;)rxMj0:ےlR=ɳƒz=A| 0YNVsD(y]lBixV3V F4ՠ Ih\ xov3Rpis';;sխ뢌uQRqO1-F>r)-PƯZ՗x<# \zX _j_>$s ?7)Nj#/͏U"xPMO =˯-ƘMt5< (PR{&̛y3y1pВN\HĨĭ`ga@{JIfʐ ̙ ©DTLJS"8V%1DhL^# F}UGm5 e\\ EpJw9..~'4phBwA-mi:xb4*Cb層IsWA0_5{r?O~ˤ?޻W <r^Ii욦NѮӒ9ϩY59.qG2'w-U#xKn Ee~`~*RWA`n_+wrH]€W0{|aV;H"s)b[{tg>s*9 {G4y,}]s(5, `! Yf-9{Y)5+#l;(k4ъ/ z`UN/}a 7z6M)۱SGOv۔Jݦ^s%$gqϕxN!{~1k,Z2s/D'>NqB)y &k*2QlMz2Y]Dr̤iЇ]kw xDjJQY3X\AY6m2Fcc剧:X_j>ʘ+B(ﺔxoc<\Ipww2Y?\ɍ~tRֲ 1D6l)>2۶c#G[_:BulwzզioOK=|G;SZ gJxKn DCgEsXL''"yoQ*hD 9kћ2iC@YJW(NlTGrP%aLD@C:t`h|##hP:z/,%bVN,Kq!&wZgK6A>&=Yغ ѿʝ_KyٴV\:%gv9ګ~>F|aeʞxNKn oE0EU56=Ab~1ɐ5QK͜zQÁ8MGQ ܬ( -}0Qox"\g(5vl4-caz`R+mg '1m5#BCon2__+{_pܳÚX1 t>zLSWus.돞YG\yJp 9>| wxKn (FI04x1qr,6U A҉E%0*q1Ko9ΖaLJy!@kq :\I0/[αzoxXA8c0P[@K\NYHܷ9O|LtHW|Wzo!9X>ϗMioR>qmG;C/k!xPN0_5$~$}B !**${ؑl3#jvJBm戼mGM٨NNs3vVVKI0BF@AX-J C:Jk,'\1dM6pG+PіJ uRi!;q*=maO!6γ/KLSL\ɻS=ŵ)->(.fcLd 'WY>usaIqtފ?`ꏁ|g5!dʗPyw 9Mz if \pi̲fڲ7%#b;%xKK1ם_pg$ɣkAy7I$c  =|nI2re6#9SBbDJi1, (iK, 9p;hF`*NCX4b)S" p);Č#(ʁ-pl#e|#Fa8`FHiT&_Z1ML68>{sӾM?BO*|/}}7T22rqW!fuM>ʩKq}p@ vMKBT]|}u ɝ}’{1Ϲw]_^w@J_>|<.-xˊ0SЩo-;)n: .u9rȒ䄼} ]ڜ~)DhwT3磒Ȑþ٠QwGŻ,$y5<XojQ]SBkz|-mڎ6PCg5{߹,+z.ocŇd)`ĚL>CBv+aNOxBNmr ~`o!' .y3p{ی])w_عq\Xawdw!*{Z0 t :d~䉘+.y7 1C\6'FJ糉 "uzCi۶%!d2Wub<*gxôּzjVHY=0'AΗxKn }Dx?EUz05 p_'袳Vf0_t$(%gT'RH& VU@;?u )} g Y8 )Έ L[ & Js|agڶ̙dž>߭DKM!$]I7|eғkiǘi~ͭot~=aZiv<1#A)Ȇ-N`E%$>&6RQ'GFsۯ] pVq'&9gjZuŒwʁ2FHAOl|y#7,9Q[=J>j]h)tZי>2Bvι๶\mm\s(+h& %l*oxn <ƦB5M== 8)jL0] OB2'G( 쉭Pp{j A)?%^&0\xc;ˋrZX/G%)(3ؓQ?8V ?@+6eE5]9{L![cD{[7Viw)BK~6{JiflUl$b8ö]]qNWfu\G][Q\ľ*œxKn E#?QUe]Aq8fNb KAHxm HE@%,(2$;XP /s-IqBD:Ǹm rpFzrJF'멚RZN'0QRh' QƈS#_3.VЯ ߒ7KPz?b?BrS֩,x2/;_s=缵9ಘp̹7) ^]eysGqc*\zY1^vU]f,}p_rY guE  ”ؑxN0S/N(hzmGO'`٩Z1SAt}8b/:P@CvȸVj5NI?DjmM\F u2M _ Rpiw7q`OTkΊ^+?mYZ偾lyy2;#þc~ `n\ʁ-gD'XڔHO2Ԧ-;΢Yj>ϛJ-r~ |x=̱ 0@Q O@邎|vlDD) 0W`JkڬM:;[ 7L> \jJ3F.)3bd  Qض>ÖRsGF2~N;H+x;n0D{b{C?")A4)$"(+飤M"̫a R>)eh;].`6f AjՅV_p!pZo]@F%W. {z7siO]\4NN\7흲ZWnmď!g'F(X'BuC@G9 3`LT!lDyJt3ۭfXcS>& }uAi\onek׵S.ʶ|\c_x;n0О`oRBBQ )?r>Ey`G˙πёuY;jmtEt#Xd; >Qe4@ߺY@SBx[cozx * uJ J5k `=):͵uR_9^K3X{-5ٗޟw)O] -oe;Ȼ}rюal%<(p`x%˱ @ @QEbT>wf >_P@ IATx[D  % Πz (\ߺkٚ$jnju,^!}~\ O;<$]x%ű @ @EbT~ߞd(#d(K0$>㼭KXLs Su=5^ۄ` BsTKTZT~r|:n?#Xx-ʻ 0PE SY %BQFQ`H (ҝO> %Kj$\9` GpͳCj`6 QIϪMS\?Pg&5xNKj0o?db;̮x'c8!~^ $BtnV[%PZoF)1IpkͶݠ$n+Rx%Ż0 Ћ/U*H?]RаC 9Je0 #1@ ^weTg!BMD+jmA(M fbDcf,ZJ\L!<.un t%՚xKn D1`EH9I c%9 զJo4D `S\eU2z1H+ s@hX6Mॎ6sN4Zgܜ$phЁ()y)Z 0,dk-ߩk\B&o:xB- i 'BHYto?_m*K=qt^PiO"Eyj֖xAn D}dcDU >J H}]t6o63i;$ RH6Nk iR/lR09@Z9\B"fBK=@5kly04uFҁ (޹Hc@+~Sm[[icAR Z|~rcqm]}nW~R: c}.1>:\#=nF/WoޓxAn E1"$ 5 u{.7ﭾ^oD<0r**/Db vRz؊J hT -(04[GY Q#{Ɠ /, bb0N!ƠV ?N8|} ( =AƖlYvI" ;C뺠s0HYЛW% `$ pɕ[tge fLKmh_ v47Κw0fm#:x 㶭xe~N1%=÷$Jy-Uګ5pa;[+|>ҿocoНxKn }2(ң!(1=A7f4l} WaZ(iP#\8JkВ5kcƄUrPzL #"J9{9F22ORXhfZfdBPطӆ>cě{A*oFK0V473گ\ҿR O^z-xG'yogJ"gpzxj >w_O\JY蹽z4Jw5)훶/C23`zf9vhP,WG4_T XtfBNYΜ\ a%TÏ]4g/J Q;P!UZrÙR‰"w?4\Wjo*t#s+on^^'}o#!$>< ZHc8޺&ܶ6RS{~p09B|;xn <+QUFm2Q߾=C23fA 'ō:) .Cy\0ΑxPn@*za&cg ]mcExKsiyp/c:e/ sBOhx]̗5FCc!P_k9;A+Pr}5F'Uom #oN5~!3tu;cO5#ku>qoPQ WlxAK0<&i$Ȃ?C^nmSTv=x\af"w(\vz`tR J؊ ]'h(` C'4$4 zI Z .04Vp^8vZI BX#U4ϱV5rƴۦ)LaFO0VjL+o3= b)-y/nT)֦|,M'y(rj)OwNV*-ki}y[g /70 xMȱ 0@%.ih#Ah(#~!A"6`Fb))Q1hբ(Q\ɸl#lniy@gJu)Vv1[o+]xNKn s%gTUjAg6K{.jY^C06ڸ0\"WC5r7 *0V<]5 f ]yVHk^~RfHNT JX%W@JH y{^[sy=CJ9k~Y><Co=2ܜϚ~z(+-iT^`RI yJ$,qxIn D} 3ՊZI>[8~ ժjB!.ۜ]pڻqI hMTZ[bst&G. gTh1B29ֽ#}()X˜ -/ 9ܼ%%Aj!zWHط5F5b-)ҚD)gexowί6O神}qt^񼞃q!g=xAn C?@`TUs^ȇ:!'XϽ"RUL4,rJ!T8 ;Ϛbxc<ش C0vBa9)_yToc)Ü %AhҪE|R:e嬵71D[?k8LBp"䭳Uض[k;#M'\<GyW|Vѿ@oczjKxAn0~+`Ƭ*VKxQCҗS1hى"1/9xQYsNHHt>"L BU+_K}/}ڎǙ?Rk/7xAn D#%zE p޾NOEG#fz),7$=Y(UUjd1w@," HtzY -Ge(0w{͠h|RE;(~m\TB 9Wto1#cl}}AW8:MgRW|{R#?o80V6QqxIn } L(K1 TJo4D*cM$Jsr(ThXQ%Vgɛ Ġt)fx:з_<\:c<0\圴u^Y-;/m4k$S#5@"t+>&BȺ ֿ ҝ^eZ`:Z>Pkףhg|H EkxMn }1QUEꢛ.zgx`1ur.:iF".C0h&:G-IHa;ʍ$X&qq&J#*"pp[cEhLL(A]A VK΅pj#'8Kk?41cNLfxx#m+qZvWJYY Wr~x5DZ0 K(R1E drH!Jq,c6a#H n.` Ѳs1Rx̖1 ZFKkoJdAhF 4Įt9o)i@cƾM<'ٜx=n {NAgReX╞\X[~v˱wܘ۶VQ7PRK-p՞x;n E{VA?~hFH} EnsNutGKjFTG 9}z!ox#BvFgJftAfg-xӷ_< q P,稌u():mq۶F>*n(>}-O?+[^eS~[Գt8\ͣjQE kxIn0| Aa/1R:ՆFp;~a&g3b=S$ݤw̹V 81l裶a@S|/7Z B(BxǓޟwJg[rqKm\><;͵t|>Zn xAn D}0*m8Vc%=A{M+T90΍]9XܢDB`j4Xgʆ  2 3:" ]{Sy,g~`xAic'aNV!!oy@,u͉)油nh-τemC}a ^C!:[t*.- #Ro5䎕҆V.83aIt ݷRqK ΄Yb9sIΈqLWsnjlr{Gc/r6|FۄJ{'+}}ֶ'CM)Tj4pQFS'Ο//37qޜ#xJ0}9MM."]d-nfW|{уC 3?I`dV(Eݡ딬x+9suӘD%;M&OsF++;n]im휰Ce3sLf6pvZp&j6gke2 oZJI@+F0CJ?L0sZB6˯&b;܆K@VtbϻwY_q7!ŸG aёrX*|0%C˥iKs3dQhƘ"C"i84o&EF)O>(y)KREMb'Sii.b,S<םo>GVxQMK0=_1g4mڦȲ (UtmStoVa`ޛÛ731 /:*U48g\(vd1\XtעueFJs#vFY \C%uYR-xKy!8[sjWJ=QBi]qicQ#󊦔%HEoo^ 0uҶ>J7_f>K\\£dlemeG3~3xɟ+$o13BH?Ff:v [סa,MCƬOfeebTe+oTZ7xRM0W̹mY,˔%-¦_R,?2r 9= f4z͌CTw& zHV$yQdRpJ.UJR-Ga+H)7,:ޞ-uU mJ6I떰4(9=E6;-Q֘1|ӸhiH~v{&xMF͢$u&3 |Ec;x a/cs؍lg爧5u|DF`0]{gufjS+ćR].*@1Pu"_fO{=YF?A +k(Y/cXh'prSACS:~yڹ}?@W/wOfxNKn s'u9J$FU5RUD@/tQ/lKl|6bluR*@N$-07S\'tB@*}3سsjWn3ʵa tat}c ͬgoRZSf}Zi#\ۖНPyx>r?Sj=p$ĭ ; BK4u7d\O11SMS+gqA&? t|xAn E}EUԛ0&Vel]o[=^lu*?Z׎pP!Qu$`GT:ˤ'k4ɸy0h0a_-mxn Ew=r ` 4 ۊ-SN];.LGL M*2[p!v[lيR@A${ѐ 2,L>R_~j@ m[9)J()* ]x8kʥ4M#2yK7La"L=qss%Ni)c9b e9:T4F*yz$knH!Tv=cdC ŦG,YWއю?O`r hl?~7q9/>&Oqggl5$]Udl*+4|71ή2*̗;&k k[)떉Vq!O֓y!xn0 <* !!h*uN+T!q($Ujn;lQMHR댡S14$>" E\wJVY)U%C49HF k%]N8%yӑ:wֲQ}J%Lr`OVe&LӐ15"y f֨SD=f|h?-ޤ!|wގa.+`C ,B p#}QU<۲\]{]o2'r~S\H˯/Cx?O0 g) ّ&\ JR^ fB+jP C:)(z)'v/ט`r6[xr-ec:0葊&/6=cRqp2SLKf`^ {G(BLauF[\ޑU|\ nϿr-!dK?fGzzimLwӺ:mTJ׷7ƱxAk %1jLt)e/Bw/4ѠsL % CA+3fRRj}QQMTZ+dg3tR NuK5>"D7g202Xmk9R@*>F^0&dU&lX]W,D+#=l]u̠d<\1 yAH(Z7^曪hvN߾v RZ΄^7!7O'N'2^$]XG%L~_#xP=O0_q3U;'BR`a`D8'M9nq[Xޝ޽w1 EJ۔:n[m[aKQWZrɢdéEgBZƵZΝ# Q8Qk5%eTgb49+Fk+.%li*b41<0}9N)[>t#X4T .8gpٸ'xy}O~gٟRW)̊{#D|ޭ7_ז0Td&=愐~zvv](Y>\qjY֢O~ǮdgOlxN0D{ŭY%;N"ttldtHP0͌nqfjHs*=ZuB+Km-7̀\8k Ho2LV v)TI sehBpW%w@d8]ȦekCCxNyyHwe}a{s}g27]"6=6aC)NQ)OMq+կ^M-/[ߐԘ5xOo0|Ob*nSj ^fdWI5m O2o<*(JnYRM-RpXΓ:2d#ʊ:7ujD9u)XsYä9gy]UiY2YZwL/eW*9pb%N/1K}3vKf7E:Xc:ƞL5vЅ5Tf\=]rCOMg/l߻Q'v7xKMؾwvoƪy]ڡ.|b;|aGO~Aso)E#Et$#42o״miGh= ! ӆ|tBJb:hRݷW,j5\Y7.:2<|6F,_Ԓ?͙xMN0 =׌4Xb۸ TII%'~vID`FkȐu?[i,^ rVfD[T܈\:K~N : $,afj:ǖ+[;g?z3HBh0W5S a-obzsLNx4+nP)1aZ? r>"r T O]S_[+z~eRlŴ̖ȅvR&U 6IxPAn0<ǯs#MTU9꩏0܀I_=t/3f6m hWѬiA2!ziIɪ6 u)|\Vٖ+C JJ4 F'\)]W5 kZȁoD78FvÙ!:,K Ǎ^ÏS9[>ö/`9_KNͰI,9b0jx8oriB#'Ѧ^Ο%!dtw_8sKUeV^a^~ Jkm)LNem4c/;o9̝~E9Sy»"T1:!]toR.iDODNV {*8mŧM܃j66Ld k;qtڗ&Xܣ**5{lzz&/!]`w:_YVQPh^q$"u6 Du"I c_>lMxKj0:^/RH)]ɒX2\z]t3jf=ҶLJPW3B t*%&317JjضUsuR,g6 ~=0JД؂J eIUt(͡bS*\MސU8#13~>_k}4/~Cˌ'!357)veҶf>,)4Ӕ>c%|z⿜Eԟrk#x=o0 ӯg}X}(.EEJmlɐ?knEry_%!N#nGcTA$Ra@ ;$ DG-F1eCp^AF8-dgbf4 S49Qj%#弗B9}`5K3>Яb[CIq/w>-1ZgG ,ǵHxi86S-^7H| 7칔Qߖ;6toĚxw !/M~ wZ!Ҷ՝op{ ymIG>iA2'x;k0{t9l=eBpWi+mI(!NifXM3u:A%UN !Sѵ1ugl-;Ql*2h\`8.ki89'&o3k^=]}Ѩێ3+% ei[:g[Z=cg40~Yhj̍>5iɋE_'xSZx ~/5 sU ɃQ  -*8Фz()񶖓 !@HNոʇ+qcmḑk)'J xMn G$FU5= <K{.?ɒV`'gQ(2RHd$ڄ=0Ƣc/t4 z  T)Z FD 3W{+B-r'Eb/AR4l|)+p] o'|@qk uk~|w~yNz!jsY5}l:>JE_o[oxOk0 >$vPƮc[I;B{I%!GD@|m`rFmeBPnA4J+&\c[D[$w8*Ɩ9kv\p>p{fdǪŗؐ+\zg*O1S/1-0^SaFݖ7k?m5U/m wR.ˁJi1Ö 5ӹ%m(Q{Covx`xKn0 D:clIAQ eѶG2$%-z=A͛HV|S".(V If20َRF ڢ4w,`P;9G[seŠ򋫑K;w\ Yχn`Sf`7N[ިƯr)4` 7L7h`X)A LRnh Z[1gbSw^sY~|Gm_r<* }3xRn0_1u EI v)1\PPW$ rl"lěyo7DEQJD%b(RLb#m*Q7(: a,kˊ hǺac9RjұmIgs m$͇$hC^'R]~JZypGF=uAؠb3.+(V}[p胱 x:.ttJvLrs}b!=Sp ~΂T 14?b{,U=D{avh' wcLy[&lO-Y=%.<aItdSz^~9y'ԟ"}u< ~W<B&$JsseK'SM&sr׌ˢΙNx[]_~ Yig"xMK0ϛ_Kۤ"˂E{>&`$]2/yȤ[ºR64;vBi4@i%Lek#ZBqÇq$tJDoq)YYIn`aJ{!5xOr!٦CC,&X5gB|^^ǣ C9v;w?$FlN~[.&v㕿Jkgy6dV D6 8}CUTN>[FK%%VWV~/GDL3d'xQ͎0 >OG`՟mڌe^x7q;aڤJҭp XNF-;ѼUıEּ۩UZ5|ENm%AN^nxSRK%:r5ʝi tf" 뱨[^Xw4Tw%o%R]~]mJ<>@/d{vqȇr=Ã1dҗׯvN' =g҅1#oooS&072+6+:d= aB6 V4T?dq s (uh /,u16TWXs\b*rvX0hpb5g*]Er1•x9n0D{@9).IHsM5 QsP Qa6F%i1%,*-h&pZs>m;-on8Z! @ 2 8S|*Ie8CmYZ8|#2}o䥵ٮem/z*6V}a}?ǝ '!Hkxn0 w?~"Y"[vkwڢ!dHr}>Ary,IDn26 N2%0ӊO1Q(QȐFl &dE7 #@ ,3f_XvljٙLLY5QJW\sY'%Ī9n/yֻ}|nx'WP"0%} ՞Ni}@V?%LrT-;^)ۥ+uK.\hqsĴ%~rE){lxPJ0+xXpm4i." D5ܦ%I.ge7 mS%hg,ѶHP+ƹj" b$F!ʞ Qt%R51A̖OKgM2xjmUPQhU4vJ\u-{$Z̳'/uI0>0şq;9O{`b&XRf i; 8*?>ӡi]0E7.l)ژuM+69nؖ5e%5xn ~QTiSм@yvHCiF03 ) ם DJ@j҈LgdU3X.m5dPa TsfQrh"c)Ě&`T" x]WȒ4\4F=XPQgKQ(?6%|Z0D߄#iZoS{݋_?fo#$?W &{;6}/Ж[V/4:kXJZQ /õ~m !ZP]ΗҪ%6\pz3]*tNR¿E~:4xRj0+fWhl/JIICVRJ7%4ؒʾJdQmf4Ҝ9HAjjWE9 y+E^2V=41ꋂIl mAB8Me]}QCx:gYTUܲeqg<-jXUTp ,{?h[ܔ̫5?;cag|.m YhúZ<@-8R1_, w|s3 _1criuOʋ黢'.o Px Lyw #iGP c ,w< IP6^ JWLAZ}{{l3i4 $<<0C\EѨ|ud!^97uidԘ;y:yZӠƥn:/kV҇ xOn S{%/_PYxj1FyeN`)RZ$7㠓 @6_U@ɥ4yfj¶ =aXuA )em<5M4.݁>rcg6M⬭⬚ kcWh) S7ZG\%S }=~/tx?h7 3!]_ޯEu]϶",xG.804ezFH9[ ҆sސxJ0y]|7" x>?_b7-I[Eoo``i%Fs@2 ׉hAyeTܡJ k%J;(SbR ]GN30tQQhgU]JAicV=`*݅rMiC[w5e+>Vr眖r6-_究#~ \.>Mqri<qj]}x두c~)'cj+udgI+[~;q->xMn GI <Uլz &$2ޠR^CqRʕ2y(vMԁsPrJfY .z^@yb+Ըer`urq@;0(F 7z}rM#+Ӯ ,զK }îk6GBH}h2WZ{ާ1;5z8&{mJ{ݦ^Q_[rx1n D{NA1xE+EQ p43LGb@VP`qZw3Mv@XؾJgPF Dmi7Κ$ Y@[w3H1if)\'F):Gm`|RNB ;h/-iC?4b[`:v=ToxI3̂/WnzXנՓxB,7E5>W )+HS䈟G !1~!;պnƣbjÓyVV|LCr|CrpDxSMo =&着iKTj6] VQ3ތ uQ:oђMem鶐m[(d2q&&hrYeײՙvm%:7m#a{N/M15U2ڮiii:Y6ˌ} UVMSPrEKGdܛ^+?lNs mzwVJĘtJ Vd%u\XO'G:F;AYtv"uG:Q=  ' Bxx1=Dj],ꬃ2rA?IJ#W&$Y[9K鰹#`%>uH킱>%bGL%+e|& &")z+q7pӣ؃s]2-{1t릜'x&荷N`%߷!8x INU$dɸU8=`$UXY+#^y?wu}ܧ})81ipdy]_d3+xO s+tI楔-KzD'lw鷯21Ɖa[!GMrly/fsEFэfb@.je˵M3[4=AKFBS?iM05qf‡[38KrVu4N1 ;Vg/>l>P}K#퇥j7^ ݹuidpk"<w _= Y1d`= v2}#8 ^\qƻw B8I8#dsx}n#$$ś(Қ xw˥SV+׳KNm:91^4o-c-~ԍ5xMk0_1`[OJɒd{6лdm%d$mJBiC!2g^g mYSUcUyMDY V,ZA,hW(z:Ё6ےb+h1M3jM39\yFr_#n3cB370nڢ.dYٶEII ď"CvVS2F?YntZO:cV {'! r+T`b#$Ƶ6Z+g<3_܄I%ۄ/~]gٳP@ =砌m^(y-OG`!S# L_6wbݳW۔0GJnt{%Xy_+-mEQ4JKсN],KCd)[WFH9竼i %xOAn =7 &k HU`A~$rsh5Ss ;R h4Z6RvFν =ɦ5qB= cAo)^ReEbdt)FMGvP켷(jF(#hӺZ|#'xOy}M wqեPS4?B(ew[6?!mnu|BP`OP4 MK}MKKu۠ K3Լxn {:'OQtEy/ؗ<@L3[|LI- u~: {{C­Q١ӊ+77r2N{ `"p9&d?vRpi o~Rڌ+ BZU'^E\\ץzo[-yno{Wݱ֞mǙ~Hs\R_%u7sK Ki}kLrόԆ ژ#`3{PYIyf{FxMS0s!vx:: p(0gYZ[Hrw@CZ]AXk^"_ L xI.xDMf$ *yge)llyaMʛ:x'+Y&MZ,pVIW&eL庎eӈ\oH$Ŧ,4O$/zsh 6NiÖ&|XNjRA#{| v0{ozlV 6 SEt1vzj X$i DFxHk'}?Qv2U7.p.$myIށA7e:jÞb _홵lB';}PU0xZ7G)T S= kv66XG]elmrL*LA1) r{ h&Wd2ݲAV( _Hw̱\OMTr75KǟrjSxvB2Z%!]wUQTR=6:5D-^-k* [BmZoG(1bh#>"g&ufeÿ<qvxN0)<_WUХ00V$qd;(hFdžv6He㽕E/9{ŌIjTK|Uy %#E5u<9X\c?i-B(Kn!ۑJmX)~ŜmJrizjy,m[Z$ Cuof'=֚a7Mu/h䲮 DҀNFm#ʦCu(H 8mחjdx0) {*^VmCV6Pld_w⟁sѷu%nrjby*fD>EkҠI-1ga4V߿sp%mGwv!:` ҆"bT3գS5]byvڌ&9)gw|4aF;%pY^hyx:P_qUܘƂ&;Efs! o譱SLfF!՛cQ.,O[_L""SJUDwU*xON0;vdjjdBhH HA+I~2ؖ,[n{WApNJR,![%cl 61BsBMTzܬZ+&'MRK.0Z]5|L RAl<S&fzb!x E k%yU4__ި꺋ލc%Uq.X夵Z(GhbfCsbPi'K%2iz6̊7B7x-&p3gBKΜ--9k¦v]С-Gx $vd;z yO1H=IeLjp%{ũjah؆|yPpތ0;ՑJMZ0cFLWYJ n* ^ i:AAZV/ưs5| qHAL3zt%X|쥮kpikyGoᛲs7-=/TK`~\?Z_1&pߊEƼ#' ϓJX$bb4BMJ6i$ydS+(Q-(i"ְqf} 21 R.ܓrm[s>x.ڭ{ !n>2`JqwƠ2+W01`O2YcCUTJUKxSԗG/*b6 ~=v7L/gV dFذ@ӶնT\:)/'X<ý3'\wXFqi6=v1g(>K9/]{珔q徧ng5U xMn u#lyQU=?l+'ׯt'ij&ҢAq1$;e@Q Rђ'HlLk: !@^;N2'#ãN[cĂ]^+s B%Ҋ{zWʂQ/ ۲̵;:y{X JxMwUr:"xPMK0]_ҏM\Dy Ǥ7&%I^е gs3g$Z7*LhM '&#FQ`m  03qE^`qF"sLx6*+|{{NIO45G7Bq2.%w&G"~7}-dRo5~i} YTΏ֗Xٛ36j`ѕ9y=cfb->~ݬ*? e1-NJ?U̗#V-xMn ( QUz; D@/tQ{>{rͰKz ,p7NhJoX}k%etZ $R2Ä狆s/{DxMo0#qM|gPKAUTibGwW{fH23vp*,GV`*ĺeKQKVD4q&ۼj󌕍@YdM^REY^+٨LuXYÇ3fMU-Zv`r,2c*UJ+vuh{nCi_qO74hFRW|6},|v|i tH6`(Ѹ} ?AIt8qq}ϨKP-b6~;dix;p#؝9'.yDZWBKҜ^̈? ~5cIoZ_#zvطP_^˘Tt?zÝJ^^|'z~cZ.e;?>M>!$y>k~Z`S-xKn h+20ۇYmJ[4Hc,FŽvBaJ>&*lHr nJ;ĐCJ!R9mゞF@xZ1 W3fI[ ި 0Ym[{c#{ky^)x&(:BYٚtv<7?z=s8s.{ޮ)-пofnEx;N1{}G!PY>d{9?P0L13ZA*XPV+3H~B y9c";6j#(p"j0`s VOvuJ 2/ R A%Ƃ='EmY@_nYg !yn~lTyOy+'ŝWV㪴6|Xix;n0D{!ieSs$\҂(*珒4U3S RJJ`6XL {+MV,4WQRo Qx%i/zmn/Rt6߀8I) /\c?ikic1R7' }L4>e6܌~"XFŁs赔f):8Ib 4m $Š稕޹.(9u(InjJY絕AM^oOX0'3n mKajz2|m)9݅im]pV)}/8j` sx=N0$ E-xql'u"1if=8fd YIL "ŴLIm A٧ aLs#04;t]j_R-gh}*e=c[CL491{8g>.BJ-/wop˔)xQn0]_Ũ쨒8?rP PE@,L&qd;X U,{9IडVvKJFv=UZw1V0`=ek!cr$VD1ɥ0DHli%WO55n8E_cYjx2ԯ ՜5΅g?j0_|0oK>.Q<ļg!&wgB0q7u1/ɥ◔x eɬXX 9A¶<4m/B?A#xMK0'bp#I4Aэ*6IO4)IozQ yaȹ4]ØSm; )Ā(kC %V*ag]'PRƔ} UK%U \Fʵ`f}CQ7.n cT+zEPvqsϳMIٝýĭ9V{5'kRu*}uXGvKe^y</1x/l'r'7C@#?̂aGuwk bkL$doj^xWUVat55&T-VJau׌s*'?%+txj0EWha[M) .Z =ƎH,IW馻E{;) h]'UǸV[PT3Í\Y :A($N@u IL]hgEˑ9&<[5r%D30jKehLZsC/K! x9V×W%2WbB;{eq :8}+-PcC>K?C݈s>Tw>4<Ö Dk&7.)i #o[&_ނwr"xN0 ϓ64i:BҊ"Hi#Ix{2{a}/l%!VF;aqX-CwrDI60VGX? eݨ4BaB,1lup/ QlFFMC{FehĠ 8ƄjQpMk՗FW+!&.1} u;{ +g? n sm^?7<`yKz0t eAP"ؤrY7 O\SK}i5_缜vin{.uו;~?|KڐxPN0_5 QE\q hvwv59!BZgʆ׵F9- 11e&38NZ2 z,}%BP"XMMO1j Zp&RU˙XYeUM[k)-p.F3{V8Mc?n1.&`z%t:(>Ò;S P(ݒ} ߟ]ė_Fp.0GǘOoS{&0j}1tPpl1 Ny[3.Xt(hNvh5% VO13xn0)Us :;x{2 $,|?YF&bD5JR 쨑aM%Q#chD1+;U˫˱i:4Gyn[^0.& &SV,8]ּxEQ mŕ vYtp[|LOF NcEÌF뒃|yh7L3۽-_+MxA8|m<9~6Qctԗ8qIZ3-Y$?T~`fݴ|2Q/ȃ[^򮄷|'h#xQMk0=Gb%ٲ-S’l !)C)Ec[m,-\_m:y`ޛal k]gfk1Ϊ 3*:g%gLN N03 \9%,VʡSF+$z/kLX5L}Og3:&<;9w= 6n/w ԍ <&\bǸx[6VE1@wܼǘ'o^>1a:l|J`CeЙPp_>6?Ж.rݯ7>X/ox=}_2ؘRmAw ,+P&6ujKЇ+nΙ֔7_NJ~5xN0Ew?%*ı]!T.,0Ā91mvx{O]tk8bUFx^. H B :Hb-:C 'X'{ŀxѻiXimCzSxh|`09 4{DžTaJ9U|;4ϡV5_3i't[k)uο5pfoـCJ\BcM&޸+e:f1}㏷c\KR1幭y#똔/7VEx;n0D{#k6g VIQ"mL3S ^+`T4 z ;;-6*69vƑ`܁hrh siJnN!(? a t~7hU S^57K~A.|H9Rxj2Aε; %B4>nWy:ι/Ӻ[OVҷ҇;vzxIn DeL(j%':H} ԢꭞWD v&) S<} ֧K2 ̓li2&[9@;w#8Vq6s6XԐRT:i௔SŜ0^u]zFLp|t!A|'J#[9I k#vBX˘VKH 5J0?Z <3wp#5v![.V:+(cgvRMJQIΞ1)@en-\r)5kB\so\}5 ^_zBH[W?S7}v% Z2 zcxOIN1}&eEEp@Ohˢ(:tJ0"Ӻ& } cxnzq>6lňDS|FMxMn S zb% H޾N]tH3ȼJXETA9=S-V!bFٓU?Z%1*X&}DjBFa V 'ѯB 9xpFzS5ĸ(cgagr!ʶ!\]Nؠkٱ޿!a:BY./݆ 09AX|o!]k؞ӑ><?v=OӑƔXjz)GOn۔Jݦ^vSK~2GxMn }D0EUzX~iOE{i>^s(<٣2t E0e&\&tjҜpFm$Xmqb"Ͻ%59a6f4ZPKF*K/0Bmkl=%Z@?! J[BYؚnthץ^Ηr>$/{xgxH%GlLxKn D4Qi3VblN''"UVꕈٸdѤ@xz=o_$(iqN鸭<*E_)VY/M )BS]]Gh+e>}c)}lu-r5oD }ӝxPIn0 8ERPZ(G%}}张!Ap6DHUUkK^XTJøİ sx!C)C]-{B'v޾6 'hhf#7 w#ZIQL  ;y;djnuPK^zF%5V r8\+FJF;=ӱ 6b9{FA)7ÉE\^ץ5y-n[wzW[&'{XےSP 톏SL{mo/c=~Se8bOK=u?áZa8\s?muC+{pH8!xP1n0 "kX-Y "K>([-~jH\DYVJ=\X[:˸# H(y?rZvRkVy  nCY5gczj52Q[kĠt7碕RLm.g=`#˴%ryS9'p]ɼys|ʄ_ྸ{G )=sQ ap\& RUrv )-צ)ex q剽)!nM K JLxn w[S.ԹCg&AwH]_C=ؿec = &zΧk(ސME:Ժki(+:InL .'%jK0k>åom!*Tюj( l{ް7`7J1pňrȮwTۆq"@yA +r#se VTbO<& :]%BftʙJ8ӒC)~ŒU]t6. s{gX˨abcB6(B2C]}1`f*vQUyL0c\\H}+M/LղL+fœI,jeRP勂 lԻk>KT2bjܒX}[KRnpK^RUyq+~FsV05 kpqZf-HcP+np[C^02MUU:}ڙ ^RZ-^6!ړI~jm[ٵ~1xAn D+QU 1Xׯt̓F3ޘlvc@6L2sZ` G"#ظtPSr)ffw l HoL&D6.`NqkWJ?4H'i:>@)z C"u]zYgC@ R%X^cu߰:y= ! ]}]\⩶\6ocܶ}k[ZYy.~wxO;n 9W^cVQ].J->HN"SL5^C;-- REe8,(!P:8@R0VjM\hF%8E쯽Br~9|Uj2ډ FR9EZrI.R n߶{4 P[ pp/,)4d 1}. v ۸Ԯ2e^y ~z8f<6Q7z'_0YluOxOn #,UUz76l%m?efGڙc6 `$L A4yHy<!!cA*^O+ՠhδMɻ2sA /u975ƍR֓R6vҒ3 $և b7ڒ tKX7zxĀ+w[~J#{H ^e>ю.q옋;=?˭aFmmu_Go'$Ku}ŗx;n {NA*VJclm-Crb43ƈCiL 0FCPkA5 :]c}0vx֏hU.)!w8~p`jMf`0 XIiQ(`@ ;K|cC( Yw{Ʌ8!I,d[xzt)75xz<;FQwU.@HnxKr Db.,rRQFRJ%'"yoݽLTFG*AkQG"2%۩76P#bi%Ϥr}}oC:zD̾ s7xMn } VU 0<('K{.:73%qjGQLָHdplt*¥&z?A GZKsRYՎC]?˼'>=['5qC f*9FgP[ba_ץuд/0HQ/Fǃ"T>σsWeMKiskꗜ^{~3:?,j*J:M(e7:#wxOAn W@j? 0IP7~٪衾ؖlf"P(xHk"5ɐZ op#;0S0 47դy5*ݢ'uKVn \vK0k3r Z(1rx ̥}B`T8R) b;KM;X <7pOC\! u f@Ox}ravM]ֈח68J56Bh{;3xj >u1P>@Pz_|ɦmbPo'N3S3"p@!XnFPbx/ 8dJ6ЉxZhA *zP2/>twVk+ 8`;:L!R+?EbZV6K:^:Pz{^ !d++桧g^Kym{R3IyvZRqkvJyik['ʓmE$xPR0  .?a( Qcgl2=>@jb8641ZLQm=Id( Lr PZj'Ԭ3(FzzQƈLm[՜bM9Mc_󡕼'~]MJ?ۊu JR8ƍc!i@`" d溱b2n㲎7F{U |bm xaoxP[n0)^~DUT {MHAׯf4;[cAwDhĄP$zb;&ÀFFvɄ& 2<}K|v%ijlMh1((Qm]ROZx}'1=ȕ̗yo:^XZؼ&YW|v]U9Ք[Zu=<cyxP[j0)|zؖJ @VX2WM.Џ. 3c&o@$Q57$*fd ժ6 `RagmO>XMiS=qURr`qjITzH_[kz1J.zF_Ҿt\3Zp,j>~RFe euE6}x} jnx}h>x=Ɣ ^ЩA^pS _|nr>joNP|jT7[kmԺ-muf$ɣD[R#xAn0 EšmŐBHUUz8@ JB}3,fE%or`Bbzt/PZpUҝv38IBµSGjKkȘA!ֶwCGCiĄr7%8Cך3Sz0LY*)+p.9k5=rJ.O_ |5a }hV:Ks8V iYo#tVU5-N?^34eN!N2 {jД?hX_縯xAN0 E9N6mB#f6INM$3X7ɖ,IBp4:r?X/6+ꉕ3ZĖ4b@5;;+V)<;fBiP6ʡ L:|A(#\ZץVkByMf'y(zjݎscs[KV9嵭]/ _J/!}x=n {NAa?0( ¾}Kv/gR%/oJ?r1xIn D} jE}g[s89A{Rh)'s&h[`9:(6՚G5w'4*#kXF BIb-Ƶl ܰqWHA0+~HjI}"mU9ϷMtsW<\ϣ]-e gxMj0>Cb?JIL(͔j#@|ꕈM &ip23 K"`0%ǎP)wn.SJ4`Dt|N,Y*_ch)[; Aj_RB<9i48&/X}g}Z)Ӆ%[ccև [kϻWRWk>[Chb-u&$ '`rvx;N0E{({{TPǟL4|+6V^c<$g. 4c Pr&P^ 6ܩg""K hER`b@ f!;Tx}M3f,<@ rH)k"JZg/۶g_4j}_Knc !ڇ5\Kk4m\K]~On۴Mqc#jlx=n D{NAXEv;``]8~ EySFo4]) yUvߠ ,BB!n1ALˬfZ#{m8=~΄g8[S0MRF 9L*Üvm?o{# !Ag!kⓗWJ6O}NwkhGy܄do3hx=n {NA<~mVQ]Z1)27|JѸKwf -Q@h ^T߰ )!d\,Iۈ_kE9G9/ khl `XJf#;€R Ǿocv^@YM7Wazo?_mOG˯s9}l|>3ӿ"?P kpx%10 @Q$,|!؉X⌨|lTbae6M36$5Τj` ܤ.5JVI-d"i+[TLf}0d/p޿=w&ޞxKn D|ܘQU4QdY6զTq : !XkG*@ԈdGhT7z^S&mvKrDРU xƷ5?~pZ^WXb0oܬ'Wz,h [뾿ƠYc{݉(]e&x;xyi+amq:d8.v9Yڀu/7 kxIn D} 3hEQosڊ >9AͫSh1R!8i N(TF fNȴ4b4XV/T0Or xF/FpvY(z,uh?)9嬔WZ}#|G_w:vZVD`U}6Sm\>1qG;CHPe:0mxm0sV|!SS!J )o8Kf-% 3b3Nk%@Yxa`Rf")(ntN @-DBh"kG%`GY8,VqH2 N9I-G±jc_yAÊ>B6U->G등Rq>ZqVG:ggh;E/7}jx1n D{Nm``EV`a珓\ E7SU"9)i*4)x"؎rdB-C90GI^+nIó-B x H ;纛稍uRimpX(۶F>E.  F(Sbɰfh zXZ[wr;\~;> )c_j!hǐJ݆V#53y ufxKn DFQ4'?(dڼR-W"F01 aĨl2Ekt+c^'70<8,Б"Gl_@ETX"$pbF7h+WF/pmYJ?6V?;{_s+cl.]UO^Z{ܤ-'{v Xx8Hܞ XPWR5`bo!:Q䅶l14!ݷvuSxv:n8 C)9"((=gFO~dVk<`6b9GeFq|I#z+dږgVm[[ /۲^Ci!vv|;x;>Wꇭ>귚x<1䭮Cg|h=[#rN|WlxAn0~ulU`V M䐾T53K#:P3RzD2K`Q9U@0*N1:=8` κYƙ ɷ_<&1C-e znw8Z4%opE=kY+A6? 7)_YgˋR{_Dݞ1q>yk>롔3(L|"jؗxIn } nEQ_"n%? MժFKJ$66!su*TF٢AQlP9(y @jJj'ϱ/V+o [kX[)ީ2F¾m1qHÊ$RʞN/z_|T*N{+/K=Hnj粷m)p/bhx=n0 w{`[r$ECN%QP ^C9oxɒieN%V*#;#$ף3*ʱ -Q=wR&2#hўJޙڞV"[`Fxyk ]WKAsU9gU?^^p{1s(>a :P`&\<>'9[|Ƹ}M3 e"X K=#:'bM0Sd D<{c>*/U)4rmˍjJ-_׶UyTxMn (Gߨ=Kx0Q'$]Ԓoc˭q 訦(' !](=`:b؉r-^+kl"* rk.ë=ӊo<1 r9E!Ơ 9캽Mv55ql[NSDW*&D)`]ٚם˦RԳYRZ_.o!Ci0xMn }Dx<ਪrށX~4ь!' !h{t9I+ Q쮥:茯ګW©٢QȘAE4D'%\wwNxJ49jcgi4w*RѢ8C¶GK[[Xz:ݟKWBHY_-FO^z8?ZnzvrюyG4ҿ"?ku @x 10 @1y`c(MGB$Jx?Y ˬ &E;DDc%")Q 4SN=wuZȩf1]PI0Ґ#:qbF Lc c{Mu+kxIN0>-B%N;-\ X6U j]IbѥtV H1lV r@:&A%X0A6J8Ǻ7Z@_~J cQ # ,d}[%_\┡7q,=y#o+Ԃ4_uh!<럕=ӝ^9l*神}8:/{hg}(m"0ixKn 3`Fh.4"8''"oSz^yqgC` $'p^kcu"!Ys̅$M i ۜW>ghxQ$Ԩrʘ 8ZcM]cy_ץw7ywoy}ob)w~.eürpM{]e4&8R~OhxMn09O'jz{ hJ@Iۗ] r+DEM'# QXRj"m":$gG(e';G4h;ԳpiP!%!ZC8:lC+g~>t||ePrSxKn Ѩ' TK{.ꍽl֙E-5h!0 |v·TQf,NT:i0lƸ̴ƱRZY$Gꯣ%מ3VkyVƺfL 0C(7_[BI,dxםґOKZO'rԝz',. 3-j;xMn S<0QUec`x8Vjׯt|MD@4 Rjc) r*HNzJ+̥1:=)j,F`Q+C~+_\@.փC>|B>ؙ!u(8I!Q'~mk?kskyRRPz 2}C׼J>3Ɩ홇5^ੵew^?G봏~۸>*ƮtxKn E#ۀFQ+ygl%&UҮ=@DC34+畊A),+8#MD+s1@:XhT3W]ikw+Θ :\ປ稭RJV<:&6۶J̉რ<6hbGx'Nci5^<04S~/采_gc8mw)?KrxIn D} 6S6`2mE>HNEަ6OkJ4%a >H^QyX:+7/ҩҀ` ŀBCN1"+]uTk>~X@0d6v,h`71 ?6xHpڻ-[k;M\y6^DTVѿ!bfxIn } fjQ>[ TJo4D ve `X%Y㜔N{ОaTK`D4**TA$n6Zԋsh{Hj͜`lrN+xB, 7Fm?5&Zq}"uYٚם˦RԳY?Rj'_o'gJxIn } 3E}ڊ<p MFCB{*ɳ.AK/} d p4٘9drpޫ!霭M^L 7Ztx8%ֲ EdBK|avFO*V15u]y#_L*RkcKӋޟw/}8:{[hP@Ch\xm0CB,El)`쑵rꏓ r;doHN &䘐&asMpŸP%b L'"Ln̉ {# g*3:skNt|G`,ƨ2QFhg K»m\Ӷ,_/啷x޵h+ [?zuk\?FD)qf x%Ʊ 0@؟ i7DQ0 CejyR03 d \@[scc4}]}ST(HZu)"@!@ Y-&ϻsT!]UoN[v7 +Px;n0E{#`lHS?0(`#cFd)r{)9rX$BY5!VΑlb#Vzq}sF ijIzσftg0;:~GDZ1me3M^*mz%P=U̥m[J )ʒ"Luន]V|,q ީ<@[ؼxfW~9*s69G {G~ts[W?BjLgߣw{xNKn s"r'ATUz ؊ ufFͧ"Z4;=i4zI(Qd%g+(-G^a4(tH^zkA?1w9U?@)9;+MSXo MO0miRȷ%'hWcK0%E)ZKM/ *g•1Տ-'_j}kLK}LGmnksV|Hg_xxKn D7Q`lel#9 ժꍖ3aC)QEcV9椭G 3Z$5*IDT6ZN &z@&$H8r4Z}J<`. r^Y-i3&ضu?kךaL /I9BHY_;[Ӄ^<8ڽ~y>r6>ڹ>4/VGhxIj0D: FdMM 9&X2ǝdQ< g3̫!{bҀN )a2rjZؗktbkEpgagjMg3b=S$稌u(?0竸j7vۜlZ,o\3P&ߕl񎯽SzR*,R1A8-t~=|B?fg xM1 0`AkAg^.C$DJ=H#yEGOyʹUEEJI%ҀS͵en 8(plzkAt5,C5,^&X=7iE$l幯/-)RxAn E}1UU @&otѿyoGc .1#Ź@dKBdPxt.mOIŢMPL9"l>movozڄe"4vS)w% !F7yү u `j} J,6"_<~(sn>Px]ս=hjb7 m xE˻ 0P% b$ p+h("K,b05o~Z3!PU VG uF0LNJ9*)Ȓk@V6]@Өcwݏ ޵'*xE̱ 0@JH. -R(DـIR@Gwnw2.%'*FZM`&hYʬ*1A @$̘_N# !ߟi;uCL~}_ B6(šx9n0{Aqߌ 0p@@R> E^3S=8CVĴ)`1񨋱tܗV\#th'4^zTT KJIfb*>X;)?~3!H⌸4)%k뼴ZO̹b k(۶ !Mx[ەq‚$Țm˖²㴶sL8h8A7:پBh#_jxEƱ 0@%JH.o -R(DـIR@U{?. ̜ MEbDY0 i UZH7HT[=D j:^9Sw;K7|(ix-Ƚ @ @a% M*&@W0/*H;%BQ0D"̪.bD3֡,ի`> hk8.-AP+xX J_u߷1Z#ov'36.nK &>n`)XxAn E}d{ QTEI3VccI_',((EevQN#h8(^Ea=PHy"1DC/YOGԚޏ?: >nQ}&pxMn F(fTUsDU "/ ~o_o1rcѠd)Ր]ZAYvPs019d,%IAJ A36=~ Bc&9Os5or u߷cz _eub؜ ͵\g8Em]Ԣ7M lx9n0C{B@v`/x$qraȂGCQG2#($4"cPv6-%#4OiV6Δ9{QH8so}I[f ( +%g匄W jk1Bx28~}e|\B}Qز;:퀘KBRƩ)zqᮩkmϩq9ն !9NxxAn0C9+>ߣ aQ!AIUo_tQo$˖\33h0踟I5NI+fŠ'-+Xgy@H5]e::INȒ)wT^1(jƢ١lIfYf3VF aT*yIV5e ~)3ƞk%mg )BMPW6(L[ J9&60R{^tn)n}C)i >|xMn }!\xA8z=A7}!d0jѨrlX E1*X Ae˕^.j#hIG1[9@, L\ >)hflxBYZN/ ۺ1[X*T,A{sڕ˘N%Kcg ׭r=wю~RINGo x=ɽ 0@al WY "HIW d +C0^xl2!ҽ{?- VYֆbCsBu| l1 gy.r9BEYV 4hdnn'~{sw%~u(W .xEƻ 0@%JR1 x_?ClvPE,6`FbH\u˶긨)F0%bš zgZcsE5a 9*7@Hh΍/0=MJ_:10~& ZxEDZ 0@% b$ w-RPE,6`FbmOB5`LXk V TǑUW? 8!׮\/%xMn F}d{GUKG@z&=A6ﭞVD(daOhc bnFb|E\do-BR6r4aH?(:/\Yzk@ t>ԥ'Mh޵1#ftϩض58#uϺУ+ںwk'/ޯ>%|69>:lC+_Cl Ux-Ʊ 0@%!y tH㆖Rw Yb&aT[YD[ *F!& )h03XbxFBfb[8UKoi> ѳ%n; ԩ* vxMǻ 0P,.'Ai|EE.`T0 #1-{S5Umuh;=IFlpKU@3CVR&V(CZ:Lb0k/朒 I+N-䣲8Eci%%4gJ}v%cL YJS (A/0Dbwy;״}4^Ulgo%_ !Yl[nt䥵ǍA5k/5q4^KL63iyx=n {NA[EJ9 ``Qb'׏kfћ=F,W0qJxɆXN"xCBN^Yc0Պd7kÔs>[9/F)byV`x&IJ -9bFg 5ھ9[=7z]Gp\ rd|VR;xy%WzcNg?#SGpx;n0D{b{C?4@NB,R Qrb0^cr3y%'$ :IPv1wB42>%(z$gqƨ-Ipbtgxj_

8#=z5*1Ry|f $dWPSAQ sDp@b[9w7?)oĩxPk>Q㱖Z(c,}j_yÍHה_9ls*{}$ #ox=n {NA6Um&=֊ ?lN"hOi+H")!'n*Ƞ"#@sųLSX ns~'tzy٫=sjۯ=6)@j# uNݴUw.E 5A8he9֐=؆r|~awV>M=11SLWmxN<;bjJ_Ϙ_p$xOKn s #UW?Q'K{.-הhc1٬2$g:9 S `u^')d4 ꌘ<*-5G~Q񰰜㢍zAN;$۶|Wm4'c!e}lw:pStyٯy6^^`_Fo_jx;n0D{AsQ2m)2{`WfI8"!yN oȒ- ATy2)sLr3hF$?*KFG0f5!DAyal?$"L. /pFmY^eۛNBWW|'/=oZv-+]Z~\hwMt{=֯PeRgWx=ɻ 0P !e  pwWP3E ;>EY# 1@阖}sX(yF+lWž,?@(bVUz[Sz}=_2L%vxKn DQ6Ǡgca<珓dڼR#ɨɐP¤ Fm r$:.耠pAPL3g~z1I a H)hnB;SRY7–Z{5QV_1\j_|-{m}`嵋㵉5qJgvsxR^ahO~T:eH܆z^SQr}rxn!D{ xEF)l)2͙bt4!Rp*%0lÍѫ ePoJ ɦ%85W>"qFspї_܌\ gb)Ee^ AI!2|Z[m{Kɟ ~ !y? [<~NιsmO}6mS>$h{y$7_^o@lxAn D}!RU=>S X@zlެfFK'ָ@&:HRPV$iSKepi1jt_=\z*I~A;b][!$o¶x֞wGrqQO\l|8vU@DiZ ~xE1 0aJ8dɟO28 ޢC|.":oIǦBJ-x=n0 wZ8drhЭm %CWIʅ@DN CnR8#NMSoN+azlǭئTKu@Y\8Jg #3lnuk{)1fftau<< ]k5GXyt?~0PS,/3Cַf;4PK˹m:AcÞ m޶1mI{ T(/_a8jxNKn s ԓ~, l泘( R J i} 0Z;Ajk6\rd1$gW>:kc5Wm=9c~9ΣyMv\xj0z%`{%G!@DVI,In_n. a"''*4/BA#*>kYBd2k&ceu= 8+܁ Uݵ(R8uxؙ eQK?s4h86u]Z>s)47,"q͞^B+b(A˳nn&p3Һ_s0\/16:\֡==%i|RxAn D} |&\bU p_'袳yY^D|UfhB bxsX)w` Ѯ'e@:@b!8sdU*O/N+gkWrrRR̋4"ոك3Z}pK&P}}n V }+^Q齕œh`b[⭵}6C駏)1q1%Ⱦ[o lx== 0`JUKQ^WpJ[=xtrQz蘅y4R6d1xPuA4*) uudj2Dj7SDiTg>Vzߟ[E8g^#-xNKn s ("$b56/ lhzNI hu2#J 9ƽS@z"Q8Iä%c Y*/= 1l -YJA[7+xB5VY _m=y/FcK}H}yJkgsgk֞7·~x.u㽞C1/ j̟xAn " 3VQy f]E6y Pjuo)XhbFd&gٌha .ż${hi뒐/;6% & FD86Yb8|㈔GXL-0yΏv6.Y?WD=Ϛ`N,{:!ʫkS/ˋx޵P0V~.y.s| _ofxKn0D>C7FQ4͠& HmJ*TfM80)ِg栎XfdB RN9: >QxH*ܫ^RlQCpF.`0o|ӈ .o*¤Sd/z-$XH+]ԫeO)UU֞趔xR&|8Zu륞1sZ}ǚw@xAn0 E9#'FU5g 0C0\tQo׷\N#z;8fAӴ,{!J7zRPtOXy}"ۮ7qch+Ϙ`zP&s5ZU7`[# ZwxǨG\6%K| sga-a"@ e./P"¹Z)+_R\78xyC]@טSSruRAV{8xAn Cj.Cd*K{.ꍟdvDCZUJ ISrpј`mr hAfCK AD*o7~XYcCX®X֋uӢsDXfPX~!q=cJ%;clۻh_YZ{=t߲:ҟg[ʟOfv/7ixAn CGId4 =!QHK{.Ɩ]@N(Ǚ2p\hg„P΁6T!G$_N.f- IQ7A1{Ȱ:[,<~ԜpPvfƱ a9jnܱV?m!~Ah-15R.nP7ngv#uqC㭔> k?*՟=2GއzrTR_opxAn E98CB2Q]oe[ Ub9ؙ!{g2qrJMEW kGĚ'@=P)c`Rizʾ?zI#_Q #u9PjЇ]xZη]LI>WJ_Z_e9e7~:;R3?o/krMxPKn lGUޡ3(1X9Aͼ7S")- f)d6JA']%  B & [¨5 iFݨ13*+x`0y;S[2RJMvY$<02x#5͗|ZL%yGSbg'|gn*|pPVͱMa/ҟ+W{ȠRެV:;`>0kGh@o9sAu1.ޫ}}n}IG]I occxKn Dh*LQr9AͫEUqC1ʠ(5EcRh'Β*ZyoI(r.\*(@=^s(#!GS/DZ1"L4p nTacF% N-Kn'}gXWZV[{wގcc)7Q߫ȯ;?yu麴n+}Zh>me[9֯mxKj0EZ -$#-tuz'.h񨝏(4܁B9-Ɏ-A1CFJPFAD%x6:HxL,L7gbb-S)A/ q54F5^[ nZh< ]þѯ-;e4rJYӘgӓ޷<ֶϸ}^khGx f%?t@xOKn s g*RO晠ڀKz.:h>"M.rv^IJ$7+[RlԩW.im8spՠ3(#Csa_i3JMndi߽ԣHKe* [>;OyϵR;_iX8hL 8r>r…bg/ݯ<%${5<8Rr=^@qN~ xx;n E{VA?`CVX8EV'+HۜS]Wz^I6Fdg;3 u(59|:9*(UXP9d6plL@9^{%E@&fYI/֩EKxX k$۶F/kqƗ'BHY럕N/z9l*O{+?K=m㣝)%||jOxKj0:`V(%zY5I$#=ݞf>aRD e=kVruRG VݵT]A lԁ;` +bc|Fsp_iRExӺFZ2|^ HFkk)? "j#L\VzwJzm}&mLL[/^97זx#ڞhG(_obtxKn D#lQr0c H}pNEzS՛W]Jq͸ܡX8EK팏DF[Bn8 p^ƢROQ8o"lϽ@Zl+ű35e24F/6BIIj-4X۶F>Jx]Uvo9UeGkX% 6Z_]o>ݐ.?|:fl̟r7$vxIn }fZQ!0Qb;;'"oS*=t{UUZt΂| *^I49b[_ KDjN'H& H<:)H~pRp魝ĵ_m5TnJzHj^ju{IȎ [{D,5 Kc&SYm睱\z~91X Y?_jsޚx;n0D{AkFp.]RlQDQr43V"T m%JE@%8̖Rm2hG|BY|9uަʇ~qA:cGz"hQJyewx KԠ 4OO=)T|_T'1ƆUŘ/i;y<Ïo., :um*A{r}Vix;n {NAy*10Vd Rdohf4D* 8E4AXAZ)krePH;/@ I\!nd!8mV#h{W՚9+ŁR\u,RA+HFFڰ׳/>~!y ^\T[~9#GQ4RNҶ19HNEjުZe8A19qsL6X x&ةd0!'H{Vd)vx؅٥8 :۳T#$~p AMv!t)977"bYץ56Qj8@k9$c,Bu-./ގyQ_j!oxhߏ!롮1-L|%lxAn Eb<%z1I[W]tXhG'7&1:IގZۅF.AbYBL!D'b1N!j1efhu2F&s.Hݲ$a~ /gU\{k?5%nm=4k ˺?Z%KR޺Y{ɗZoa8υu?>r&V|jU߭sޞxIn D} 3~ (Uq[8Y6-J zmh]2f 1&X팳@аzu ^eRAfP6-02ɒpBYIK0R0R2|R PjM\!i߶u 5~a}ߐ5}b'|o?_6-5L{[~/eo%@KcFk :xMǻ 0P%)ih#A-P0F tEa XD޷2>CĔsV8U8aqY2PR*b$X|Nxۦ9=yotǦ;*xAn Ebv]DDUM/ xQ Nۗ9@zQkGBGQ۶#ĉ؆; h&ĭFݨFZIT/#/qbBx}e˱+-x'x5*&5o Wk8rLCcdc~% >npy_C:vJQKyfpWSh2MCO`f>W*?)4s:opඥf>/e/7~4x;n E{VA?GQ4m,8YA#u*N{RzA)2E@Z9&Ɂ-AZIN8r)wQÅ$xgm4{H~Xa+pǸ5K)hj45ochm׳HXVD`U}/rs.g8k\yFjl xKn }0EU~U,m_7'袳ŌQ:#MJJڐGudeeK}@W{F".4bJ("pgm4@/{X)\9k>-)fxBpeQ ?EBݶu 7^[0Zh: ;j_O,46y-dף~%uLLk/?o \k˿r;},׶ю\;wx;n {NAa10" ?$'HiFfP"( po 7 1NrceYk)!aAɔaABp { ՚8+ɀ9*c0j@т L$}%w - sAx$nQh$S ^u߷1_yDS>Wr%`-K]⯵#Gkm;,5/$5j*xKn0 D:#/EDA$~wQn`q f٣wQgh$HV+aq i 9'$ )k#jtJт`@mZ #Vo/ܼs]/aH;ڬVw.%무yF>JULJ=:QxZ>?}m9t$16[W*ġ.゗O-e6VŸY/7zyxIn0C:ek "'4:Baɐ{. `!P#;.gp%<3#f"!w?kRiiMͬ'7 ]"fRL3k/bvaPRIrP!)ʺpX:z* tM9)rJBԇ[k8t_\<.yo=lٶ6.l{z1_>^o{xAn b+ìh 1J-9/Ҵf(I%4R5 $$פ܀be*X3$j(ϕHrqv0V2:g3_ܵl3M n;> U,NiVR<|%r&6k9zS{8k-/o@Aؒv)WX+_R[7w {߇tꏞa[_>+>_`w x-Ʊ 0@%B y$t4 -`o?DQ0 n׺'f d!Lt®F>k06 & &)QfJ^ GKwyC(uoVMk^>J}$-[x;n {NAe(&?,Ǜ4373@8/,ZiOB7{MB'pQ[(EDOv8tMQ)eĠl{Y#4oRpa^.g.4Oye')ީ\K/XmF>JuW ZZa^J5ѺW+^m 䥳U2֞qҐ ȯOӿ%?rxKj0>3~ ̮?&vJ_'HHblRL1y!MQZo *tBe`>XrjΫf UH=$xֆ=LX8#ֳVc4os6Rol m81{m>k{-&/Us B(Bpo?δKm'\>I<;͓KGC0A \mBx=n {NAhkE7'Hi)F):o\K1$RR.ZQzMoU!̳A}Z( !(Zm@qg#xFwO?~4ZOC@rl5n6JO9H!)Aop,e߷1^[9q)ֆVN.c+NY13O[|Ћ_.w_=[Vkl-mg)@:Co BxEƱ 0@%B.(#A7%H!A,&`6b%Wݷ2 CD"$[|D$jn ۽ iäUKjo:^5䎝ݵa YeCT:-ee@0T4_Y? /zoIxr0{=I~&Vk BK=da6 ITGcJZ_{Ȯ_4N{ӍCk~=ϯcv@άS07x;N0E{=BhD'đ~+6TGwArTLhBk-b< mu` ڧ)Tr`3}DUv :蝜3:dz8N@#!ɠ j.;jQ)C)Z@)$d菭9 wB88'QQ di,wh ~s,n>Rʉc?KYKy}?yiq\u˹]}or*{=`_rixAN0 E9Nڦ Bbiip}'`eϑPdEeHnZE5Ȳڻ)t$YZAg^DWnue%v+3b_yv|)t[ ,#}֜h9vtKčwx5&([jg=!e Px\?\96BkgVwkWρ=?Ù2 Gj N[K7 J5xN;O0+zq:Vi~{%˖[jm|S<e4X7 mBiy8Z.i)U\$e=(-DHMk94Kd0!(\KF0s+2D:PXen g =BhqGHs\8Ϗ B(mؿ0 z2ݝsq?r m>.cG1"ypAxKN0E^T1GVϳ5#aV;9gttG3gJ9ȃ?tZ !PA ,cV&& aS`{敏ҁҚ'F2q O(ZQOdXOI)*cgagϘ1*X|P2O 8uxTxwVP^_,z]s.\[)&m}ʵ=rr*9 nxIN0D>_=Bv9A{ A yoSj%gDg"'А#d{@J~ّJEƏ`+)-{SJ{1 AVcYv^ .Yc/)^߿j+3\:ش4Q?7;xuKyY7meq9m;$G^Vʹ}<^bhʘx;n0D{b{C??FHc,%N&'Hi3iFԂL[&8%,(]!T pō vd;=?)'`lfVJ ¡2"ig+Ф 9cܹX= uEzE%H,NM4cCk7'HoLh Aƅ΅ bsٶw{cN{{T;[?'xv.l|5'1R0ڇq<%eyLhm_7 8ħwxOKn s cUUz>j p_'袳FhT%)ύ@RJZxXK y ]2(%śp g  A+98f4$YuG_~ngb,g~biLO)Em+r$3Z ;ABݶu 4#FjD:*>=ِZh?|v%}%bB:(oKy>5w-?>ڶy|S_B-vxKn }Dx*^'c[^4'袳 L2XZɛ2)JGac@;v6FF&I\NDc8SsR|w+81q6Qdd&)Em''s$Zk/l[?k}c o%4[9ۀ2?`[_qtj^BI{fyimQ:d-ueu8?FRw뙿)_xxxMn (//j#5'ؒ%sD\SZMހ JKqBB%9gGd&JS2L gdR4p dP1W|מ$i'! `$ S;4[F;4(#q7b(RlkF*&n^9-XrDR!,J&!bT"X5IKu3"8dR$ϣҜB V nhE0l]cWHJ(yPB*z!}zY#GEv}4=C&BH:k_m˝s>h%LG?sZǓl<U>6/7)ixKn0C:E{EN;c4@ (7 d+`hw8EN>68cR;^8'[mF" yD:L=@md4:I퍖t9`;W.e[i y~rAbXpnϙvBLskxZ7NwVnezy5Gm+,c[?AlZxKn D`~EH9I4+1Xsxr,RzSJB Ɠ)Yѳ+cdAg=Sp*yO!X6R`C[fRY[޹z8ڑ [ʾoGp8ŭ:0֭[kϻ kơrgtH<&Rw?_` lxO;n 9#*VI?lGsxsfWD`+URktTkIB.8RE[1uz(% 3znܡأlK3ʵRatdt iFgo&&ᅞ .zi#M6#!x=W#k7[ct//$bٶgM|SKGyUYN~+,c93׫bY_[l~qSZ'%iWU-g`sxKn E笂yCUQw [t;9gtuzM9>w2$ 8ZIJ-$샱A(g*ٗ!}ia@q`n9j뼴Zz т y#o,/vЯĽh-Ѱ`i 䵳U⭵> c.g8ژi$ߍJo&xKn D(?3VdYREFK `+WѸdJRm[ J'NR9&A &X`"&X$[kIyvk;hW~p࿬Aogx;n {NA˫(Z)'â`" Rdoьw h V1`ܹ,Xã 6(3mYJ(>yPGis^]Gd 'ooxh(7JQG`G%1ڴ҂qN!_#>jkGKk[B)_pǓޟunI.rjϳc*NŦ_o noxO;n 9Umc`ֶ6`!9AL3SS3䑌cP `!^9 N֒:3X ~5F,D9iBtdK|B $(7 0vJ;7hyVw. ` ؔm'}lGNmN5Og};k16+ޭJYB4{ST:D8"7Q>m_oqmx=N0{^!tKڍp|'`|h4"EtvR΀VWLQH6X:5FIKP-Bb!q?EK`ﷵ9BQ . ׂ3aӔT%cF$=C$˒{Y#/ @\Z?r2Ga9]葧na8<8ua.{ mm׽ܯk%_oznxOIn  #Yb+&/h+6!җjUZAJ*!L䓋>j 1k*49`nTL{5EF-Z34Br< M*з|[P/y BLߠVCNIkwְЎZ8vvOGI|L γ(ʕMѿd'?SjxxOAn0  ڞ+.%a}z%{Ɩ5H)N@ $G 4iˠ -U;8-zͧ]s- #YG)ᑗa0!b0[/5c;(uц{ :\&_x=(]+[?zO 9hn_)} pxMn GI@G A3!'؋O݊7E0[-:-:8*cȉ󠙒Rko3-Z`Y'mGh"CqF,f T0:!'ժg%9{! hǾ s;>= ޥGP+@BH6#{SDmGS#!$6ԯ<$wZ44ƌQObjYx}j3 z}%xON0+ѼVė1V&U@́ز+"0iW)5.V*"՘NZ ; J-V{2# \.p~-Rp7\4g&˨d<ӺFZr ldJ(xH(;7Rjзa 4L;n¯~ *cDI[[x]<)ew*5}9ugmN^zᣳ |xKN0E^śWiW!T`Ĉ5'#aV;gput{f-@agq"02N+NrőlApꅻX'DK'nMd>Ha8{Km[7(2-`(/P ҆+3c 7p#ėu]zc#o)6ݣ/!,})RW^|y !iCp:SR)mtX^yc= yLR#(_;@q삂.%·Y^RΈXmmM!l XR˗D`&ߑ|Bkܭt'/DZZG}?ԭo10ȿ?pxMn =~jK&" =ӞzOlW"TB?+D `D&eqF&vJsu@d"hZAa \)lL2Z#Y8TMQF.2뼺zi=%ʾoR+̗aੜNjxY+Z; u}ew~}/R|Nk?/77{oaxIn D} ?V+ n+Y6JUL5Z XAaœ,zT&d#oyTCFX%(=Y*)@)ğU]>~4Ayf!0PЬuhP;R\!n:F6Y[vOew;xuiT|>qtԶ)@:Dh%xKn D#l7rn3VbCr,қESW+DPո Y-$HJaA URnH^N,աXX7YyzV'^ +ۯ<:R(g R.f) Bm[{OV+R uǖ|{k?4Sӵq/2'B[ 7^_j}DZ!&r?~骍ϳ1clJ%&/osfxKn0D>EGmh.CMàl3 Hm 3 MS<ѡcg0$ْ#A>h#'4F)`2hv#Yq ,*ۯ=VR{kdQQb7:zA)k %򶭭\(BО jh !uwto>pQgm| tuXrنV=ep7xKn Oxj.C&j@²bIx` 4ݦDVDnI%`1NbJL9j%7nekZ֊$Ep;QX`0$Ii ^1 81a8b{-x/8|c[Byow8OӠלFBHZ>3tΠz %\uk ub>Giąϓ >Uڔϭ2l״u駷i{GKQڴ絭=(;/K7oxAn D#0Ǝ*RO@PclnrҞff1z9"5. E(iP i-7fde*uGͅ'Z ~YP R!xMT2}w™xKn D)ˑn>FQ4ȞNJ 9HNEjSoӭWHMHA)mLAPI+e `=9rsRh18Ԁ,9f$eTy,}bLdapJ2B`r{O[r5g-xY}KiȻ7-L>Wpo=2h޲K~xz<{mJ=^`JL\tIxKn DȦڌh.C`h+X!9A+UZ]"R2E4J%Ţu'ՒU<: TEF#Mk^I6&]Y*M5G~X3Yô)ƠE N90V /9\#"M{>kyaLI{p֞wƆRӏgZǓl,Y |k xOIN0}%/!4 t΢ؑ '8PKm5IIHRr$ӣ(䕝&v+QA9&8` ~"i yG]RcAxKgL3>6q#4mݠ\Ic ?|ڶV4N[z#SN9}&H-DzNBc 5Z|BeC,J7yiץuˏ<[Cq4uS>݀uZnmXx=r {NAXɸKCGB R5{[k%F,ֺI:m 7%-xG'ђKE:LTڧIC>RIȅ.+ҏ_ܬ 10 8 n=4k뼴'@ @ yl#\"]WzJ[_<86B |ZWƺ\g~QْZ9M@!Fn8xMn #c)APXnOEg}hZWƭac}`.Hf E9]2keV!6Hi!^)8h$ n;xpFd]'*)bQc JpgVsNcR=:F'pݾ9֖юyT|t Ox- 0H(Rd ؄"U'mVwKLCND 2 9S6R "$5EE'dDsHaߒ!+;XKcv};ϔEYʫsu,`%xPn +1pZ%~GbeO"C8Хniq"#8.,W檙Gi6)qtQHg6hZQ洃7<ʫ }#gS.zbC z(x:QcҺRwԚ3FOL`BR- LQi!ÖBnEje}t'xKn09ſIsTU1 ANtq9CKϽ)&AӌJiP*ϾdžU(5XF@qT)eDk~,X¶ G+r[|}GakAZ8Bڇ*prˍx\slS>>,Ng/7!uߕxKn0D>E#E( n{Pl(Y6UZ!'4F8ŵM')KӈJv,0M%QDFQri&dxV X^nyw'Ow1mWVK{QR ?m]h= pAA_XJX-,*ۃ `~~btޗ'~n 78mԧVҕhp됶.?,ey >xMǻ 0PEҺ`_It1Rg Q Dl$P򺷔Kͣd{ 6:͆2&&;q@Jm0RƱgcF)a`u˧ 6Ma5)/opd)^)AF^ZɝxIN0D>n!'펺3qܞ XPjSiD-h%U02L(581fc.z** H)mNq%LYFk {YA8c(EЬj( yzY#O ˱}ѳ>h>BH:?6+=yuOr1l>ֵco _~ok^xMn #ǀ*= 8/ lYWDF# {XЁKx.LXy$;H40U3 .4`?KͻkF2NT0:) }ed:D|; z>_T2zr/nv%lO흧n06σ[vR|쎣[뙿|av VxM10 @RΜq  /IY~e6s$JF-ډ#S@|e⸂ @Fmy;9 }0w|Jnt*xn ~nҎc:ujc` {#.Zm?0֤|9O1~v@yńUi^?b 7cl+EAK)[7._󱼹_Y*/z.4b~FS7xn D|0QTEꗬa`a/s9fZeL`BuR$1iMd1D5RNs8xkt@Fda 8ye}tT9:H>Pv^'0]JѸkgP}HB D(۶&>KZlEe,ܮwں;wk|oDZ<^~xiߏ~.u[= Y'~S^mȜxKn DȦrۚGqr,RWRJ"ì,B4h|e(ed;6].HK{U 2g ! f`xi;"킄 LWJ6팒\Bʜ7Ҷ,sk?kMRD|M=cl[Wnw~VtrbzF}b܎E\_O/7k0 GxMǻ 0P%I*:Z$:)b!P0LH ׽]acFMB(8K|0b885zdQ2xEKBPH訾u^1ި72R+x;n0{!_-)RNMQK0D \?O"U" r$ 9 I8H‚dǀf 9+gP ɁA ndhR7PR(7J1uHѹI.قC VW.:Fkq57VjR<)>;ezؒZ.W~0/.>,m߶}XJ]V)c?mHxIn }DU3j-9hOE{7#JZ>$!pœvVBk&!XKAX:6ģwI=&FX! w8{C ΄ 3bHX3kc$!}zӆQ\3`['Uxzt)75xz<;FQwU _>7i ^x Ż 0P%t;Ɨ󷤡AIQ)` ؄#y[ȬcH*u4l Eo(3{ǔI7,`QRB "EH:˒v f ,:FX3kxCd,8xPn +|_%!YUz]L05njY4x#RFq-z#k3/$4Yu`$%C=YSGJKKG'6Tx5D &_Mc\c=wLլX-jc0YL^cq.T}w9liҐNpz"]Ԕİ[7*4;װm@npİPJ6g׼}A`gQK$xB p J?8hw>uz+^۶zlB?L#\xg|`T꩙xOn %1$MVC-Y3y%,YA[#F^5FkHp1/`YF% mRJ-ᣬ!3^~>J4 |nx/x3\5.jt7*)^Ap=qK>a&V O{[;P`9)!e'>3`O:'. _* A߫=לj/))_WƘJ?|-7xymeW{G.[1v%=~\v6HAxM˱ @ Fa*"|%Z` _PE"6`B{_fkeh;u9yb4X Kr_ϥRuIxj' UB;ǑMl<%xm0DflwC." #p)bş@@Q?J*!sys-%tqjR1Fe)^8CRtgDCR&99u 'btx t9I<? -'W+` !~~<#q<7V uk:^j}\DZaM8qMgm{s\3}_N&?uxMn }yCTU@ٱ*8t|YfFC:e0(L9ZG)zHذ %le0N5Xʁ$Y]S~eA@ `~Ö%rFO* X-qIu߷1WmHsM~cn A!6X;xyrZT|-gxx||?$_rmgx%ű 0@A2 I)(#dI@BW>Ӳf;N⫕٢JȔY9$/WY9@ !$@6VXnE'@Lhr 1Y6UT0zqA҂{(R%MQpC4y&(V>V3:W}zQ6z;:&2(@"IJ}&C?Ѵ/°nX ;^n;?S;> mk}.U>{6P˕>#J3_^oNButxK D}Dh~hckdc f1(zMqxIMS *,L^j::a~VY"$DQGC k/+H7M @Zsm: '=e߷L#{nY;F{}Mt.BY{lt{>½atpRwu|hѿF~qm3x=n {NA=lVQmZ Rdo^(V D%l̢'вUʝKVDYY&g5)g;TS a,96vRGJ  .l;OZN }oc*u{=SJ}ooCxIn E} S܊DP mdp''"ș;p&tIcB &(X#o'h} s"c B~á֊IA3k}t;W0Y` .{6Qe+ϙ+KkK滔F~/vZ,~Ai}-h 9x%10 @~l HS;u<1!11vpRg#U#;M]?Of(qCȑ| `*\:sv|8$ɔDL&eo8vϝ᧮㠳]yMzf*3xIn D}gVU>n+2Xss,RVi(M*/ћ(S΢tȳC̘<9B:iA-hgKQ'+H$:]S~iaCd80ARKZWHj͉FrK~} sk; !6lz6,o_zc,k2Y/ylxKn }`LUzA1EO_'ff1͌LiAi@ D[km2t+'6o^oBpG!1{ənW3 jAT3 cgr8An߶trb,0Ŕ=r=1nf%=0I$q ZM`KH]q^$$@R1#K8xWGI P%D poBpTɞL@ P\hPٴ,s)'|~K_OVv甗Srؤ88\/n&f!4ͥn݀+vvMynVڙuݺJaJy!xIn D} /C0 pdڼZ=U'ud(CX!հ9%4<%FӵTZ)ȤA#WmB*kFj_ɕ\By;S:ے[j?rNγ\AG}mgxKn Ȧ7DaĀYmV7"u^ɣ!m7^m (9!ђA+1eYU~l#wgi4y}C+i,md6SAjc-\ _cF>jp}a{ɴ/3!$cAajzE`Qk lq @u&U̝r[ܤZ.ݱ>@F+6- qgvӂ0,`Ŷ-q)rJC$FRFZ.u"Gg#^Kk<4즣wS>[2RڜϽ&^/=k;xNKn s%~m^ D@/ 횉SơwpJy#I8o,&n)Viv̺:*-" 8r2A L‚Wf|ZwN+c4j Sik x[qlEVwK5;1ڕW6RahÏBJs,CHjchS 3rx=n {NA~jmc``` Rdkf4!RT'IӚH(}PaT[uUq1-P[4KH8ǫ6}ia@q`nRWK)vWZ}g|Got`[t'BH¶xo|ٔKj?>rϹ},_O,) ]j=xMn Fei!@¨e 7I?˭@dV荝}6vN:p9Q[F({lJ;/ޯu\_g~Qˬs пJ~qxKn!DDz"K9  #`r ԦJ-Uh ŃJ:mZK%W@Dg qߠ ,*$D eMe{9|kVk] RERX'3ꤦJJ/t ?k賶al`_"/{CKr|tXkxMn }&X1/ l6ߛ^i0FBq@+ `r)P1w PR+! XT^9Gk텻ĵӼp3rFw*1L/| ǾoPiھ(H+>a/i:-] !֧otH5ofk>[ ֡b.ǬytxAn0 E9#$ 'q %~/ ̄q0x<C݌n; #'A D[VROX%]#{%Is0dh JѺX/g?V*& q& INʐY!`{5=BahJH44Q(M^a߶?k92uPwa_-J^߯L5 B\V1/)_YJy޻vNݜRc(u8s_`z:xIn E} 30(; e%6wr,7UG`xNImdA8jYPƢ{ 1be\hp&z)5pYNu~03hM,g3xȺFe+svPv6ƮP- }|8oWQpmprt{mBxR#sb4b0K;Jm^Yp8<˲g 'Lah'IZ=3zoը~T?gR ט}b)lIeH٭X` &xvx۱G|DNK4 l1,Nr`~霩rk4!S j^[U=oBwtxԅZ+Low>Mnp<>x9n!DsNA>b0|Ӳz>>W*z(Lt*䪥 b:aYIeU6F Ń+J"r6襵$wreA@b0Zq>(wiߩ7hz+$̉c#{'Z9eL66xjOm;ă}峟S 6 ElxKn #FIxj" ]ԛϲ%˳@IJF ҂ aUp=G-X!\Lqɵ,s Aq n8YWby$0bzOZUs *m2mr"X<i0,%3~{LJCF]s^>6/+sxIn D} ?V0ۊ<p''"yWLg_D0Z` ƙbP+ErAAi*ie]zF. PhF=}B` Y)Icw$*gxl:F5qȉ2B:Xٚݦh_}m] ufhxKn DӍFhΐXe?$'"W)jgJ<*UFvYaMg;޸c ygJ.LS1R>8mfjr%OR̳^ -rI+V-u#`lZ5Nײ}5ز6Q߻Xwj}ݥiXv7srٯ!qTs'ZCE}m xPAn  W $C_0mC@>/衾زdr=bc'f3{="?y鈹J0ƀ`)"s4A+g _;@W0u0*p-h&xyۺ.i|"gXr[n^;I(mBԮ|n 7RM]Svݧ|i;־g~U_fospixKn E#Ǐ("u%|U,U_+wrF!E+-}ђ4-E4VboTDoMJ;IpI E42 Y軇/FpvY&1L8N65ic4Z7R"ϱX_m 7^[8Z`= 1|[]cyS,Ӗnp6ϧ]sϹ}>}s5vwHK&˭p#xr D{z[O&"?[H(/Hkm{[36H B1(w찙R)IA ݢّ48zgd=CXȅ wȻV1u!,fTO@nI+v۶JƾbkM= 6I eKPcq]Nݺܠ饔m1~CLgt 8 5yG_>f?uAx;N0{WI;Bh(~q;{~ '`o4@ʅl K0lc/qÂSR:* R2S%S+'[J~^ZY,gVo_\'(JuQёN;*e rFLg`p.RgJN>!b!vBJ~KlX>Ounv/5֮<./ah_7cú>}/Ú4ܾhe/W7|xxMn 3^ʏ=AƟ%rD@{;)c >e@hf7/ZbgwfyfA]G% X먼"'jP;'Y bYE Z T175ұmk?kbΔo4;c]]Z{=t/{,:2g娛?CWixON {i Zx1%<oޗ5/xp3Mf2["vrZjA:>@AAWVَT)2hW:L9V+3<=0O~6J o ~R [ӝ^9l繜8{xgxMyFL0l"xPKn s 﫼@~@UU %i@@ۗҌl<3rID`&QPr RBrI(,b"_3C)T=C7:G7r-Ō/ShMUw͍R^xzRٰk)?jR"[VF{w`຤5jx=OJx[걂#/]-P(xij [ W^ 68kk(,} j|(`HtakioVr^۶|vG.[1sH{[?^V}hɝxP[n _eXU՞70Q7Ro_5" mԬ:F/zR#xPn-Z#BHOJw#q1*g{҂$d~Jz;*{l6A[yQZ6@Li ˱a[K0.BT{9ѳ$8tcgה'Y#{Swq{ X|DxPIn0G (%ZFX2$~aAWD:ɠq E/9G1z- Mv[1wʝ#h杞l Np@Pأ/m 51a @ 1e`BE/peg}@Z7Zrʋ:\s#-45Pc{??K+!$}hyXÍximɮ)kǔq1qg#F}}xMn (=9D/@0QT] Gb (֨qE1÷XkwY2WhS0 +,W;--.ğUwO4['L &RZN"8zK$}ƈF~ VLۘgN3vќk?r9Ymg A|{j0xKn D)ˑ@h|#Qd["n|JJM0`РVIXBvB[d!xDiҤuZ0 U_nHer^CJq6G3+x L__d .ǹ'OO_*se sx/>nBt]XᎣUrn;t b߼ixAn CQjޠ7 CQH]ԛgo,˭qQ:mTA i2LY+vBq5 iK(OƢ3( 2e/<_=HiDZsS .Y%q Dб1ܭ_պ܅\~HᏣMru2 jiӞxn D|@TU9?1DzfF{xmt  nrJ[G ~2ҁ v`xN$u$MBD4Jxo!D0[v O Vo?q5R<8~%`cƺh)޹',?A[m[[>;ujfLv~zp_sic 5\xS8vN{I>i/#^R g߻x x;n0D{b{C9 ?KYL $\?rN"To^D0Y't.2ĥDD q)9+& I(O:M8qHE<߶ so]@.փC.6p5|*POpGXwHyJϭ vqwfKWtO.x\yksyN/ܯO;qxMn  7Usd*$R=A6JJҳ"FOޓIф;Yg+)7dF;iD!>Mc0:: _?~i,z ŲDm,aoP"k X8}k-{r?l_uk~f;yuӰf7ea櫶tJwUGe+Wx"Y/W7f&xIj0D:eM 9ɷI{@s89A{PPT9sGTXrB5e@RE)h&p8젚΋/z:pUHGl4n2c& +#5ox8" L4QJ2·!67⾮KNjRxucl^h_Xҝ_Ky0o4uq9ogtM{]eqþgxAn C(χUH= @s=Ayc{@=aqVHpr 8͞$JZ*wRyZ\sO`xäPsV(D!'~Kl)N>V5 _KWm_b-3և-<[kc/wOKM?~LlGS?/ 7TnxKn0E^FQ5t3A &Rw_t;9gtt[! h%1Y=cl^ZW_[╟iaGmub?[!kxIn D)`(j)7  p?$'"yDt^jCr+A4NC!J[$ɶ`l^^ N,i/|fE=J3EWS_ [C*ۏxՆy9qK[@2|t\xAr DT*5!@>heD pr BģPAƢgf-h@jf+q6jB9U$*@ 6m 0we/<ͮ:F3MEHxP]AicV#s LƌWؼo yq9Qr{&Zr;xu]Ӈq!eZ9"Ⱦm]xn D|R ,QUX0+5v1Нa5j Qrj0S1kct`a=#5:AY \?OAwuoGXGVE: /h4f ZM`월b78u!<}]ZYw^e_| )q?_*l"QU)5-)_[2uӏ(UӞ׶q׃w=e r˔xMn }DATU@X]t6߷^84y!YT5H; Xis* D+!: J1Yg菭bwsӔ-`k`,:Ҷ,s?mc_|]ce}b7~&iײVˏ˲.7Y^ya,exKn0>#p(_E&Cr,6U{)9l|(QXV`!lH:6jv.Fk9UHY8kOT97x q#av5[$*%xH(5e{/Scm+:X篑16}8>0;x;]ƩqݧS;^6Ӻ/gxJ_o hGxKn E#_TUDj-Yܮ9kJ`ѣ ¦hm1M ܨI0Q(/$9\M#ByN.Ja <9swek>~Ђ0JQS8RQyR;j)'px#}# }IWr瞇a *tw|km3vՐr掣׍zZ*1k8xn0DGmlFQ~^jv z\]f4S33I #g#UwS+$)Vd&h/`9j `QW} sBpJqT7(ٌ^fuZ}(O4=E!R+OvlKn7jS7qCxA EPD:I_`QJ `>,6'_MRZnqYYf)TJe,_h`'& Ǝ$I+{>iI[F*[L.>xh)Ʊ1 oUL d ǁÍcK~/%(epG>&und!GOl<3OL)KCb,{X߽> {X\u/M~fwݻv ƴs+:;<ܭ1+<衇LfBxMn #EUzG&1X+u{.:o45R)XEJZ%=>ڇ+Rұkp6(#2(i%!|R#7џB|`Cnr Ͱ=vq)@YgOGٶ{6NriKʑf:Z;¹FXL}hyHt֞i:3?| Mmww"xP[n )?h`r`?RJVUk&Ʌl׫Z*&hEÅb/ ŵH=em t|{ `A79s6o:*fbt E62!W/`yZg܆?P' Sw= LʙLN|ZCc2t…ZPu\wu'p{_\|Ǒ>SoB\BÃ"|'= ޡ܆a`_K)4uvo)o>;5um7$W?+x;n E{VA?1Q4m6Vd0N R6TG2` nN5A'QYiA@vbT{I EBMD>9 n=Rp p㊥F#J@Ư_m=OTƀl'u sZ%O+818)&9GmV 9[@1%7v ۜj3á՚Zų^Bed|U_Z)^^~zcNg?BD/j x510 E%$= ۩3UCRlDnٚaUv$CN9I¡(r@.Žk!)QfЙTmKk.HȄz?CŹ1=#o)̟xn <# QUE``, W꽇eY팴 E㤕X"EgR+ՂU0ۑ`j;:sPh'7=7fZ#ٶ\ ZxZ0 tbt Nκ$gjs>d[i#M+ >m!bS-^Xiyk\vJ nRvNא5pҳ6}~AZZ,O`:rB K/=nx%ot)5𘷣uG6Rױc`L sxOKr sR(TjN; M!>CWt<*j烷%~$vʗxPn0ORPYgl$CRu;uP.$@+3yrz]!Vze\VQHʹF *O;La5]\&8F:6nGIo,_*{ExON0+VXƏ uؑ"{ _H;MD&f9R+OҢ`\ *)V` hF70hi ă@uxK0;,pQ3 gg'zmԇ'ͨ&3VJ8vK۶Jֽ~R(.mm`95L)Bh^iOƒ9I7]okzR%y&p-o& ATGwn^k_>b34<Ç9K}}/Ü6|n7exKj0D:ECm?CAnЖ,IY6z%F)2ND(fֳW+1Xq1*,j2ʪkR>ƕ$)Y* N .C||37ú. ^bw5^jiXrx+I#vx ڊ1>-#{׭6,x'/=nx5oZj1oG봏~ۘK]^N2}6sxIn D} g0VrVbl Hm[FK4.Ird59h |LR4,:j@A\stXFKӷ_<!q0A0\a9Gc)k$S!%+$#OHǗi{= %RʞN/z__6ꧽR>qt^7 YE~siߛxN1D{;h!DmuV$ޕ%φ/`3izE.y8-=Z#9YbThN㓰V09gޕ&e4Gh@qRpaJiJ:?Z- YG==$.;.b6lN,4n%ڃ?gS(il!^5lGBHо0yhrblo\,u\kcy7V_^ {ғxKn D}dQ&G3Vb HmS-J5Z*8Bפ".[,[ (OƃSΧH:$+ Rck㙰#J3󠧔nUVK8_ pTg 136,K벜6smǗ\}cKm_F{ϛX/o7sxKn D#`>()s0mlM?$'"yT5A 3A dqJ;1 yT肧H-fϴW ؀":&hQZ"W] i/f@1X;"tBlc7q4I3 (уTM4ضV5=Q |'Bp~gvkx[)˝_yZ|Q9A DlxIN0D>ߣ$⩅P8$Ďb7 6J` RQ%' hFATɹuF oL6h/% |4{Hܣ)WF2;:2OeRX%goΏb2xH(۶sbavyBxKṬ+̸g ?὇ݱ¼s 򄈡-%מ2-[N:_t]_S~ԆS9|2+!_}RxKn D|(&GiXc p''"yoUU̝!Zic4`8Rʉ+*50ƖUĚ⭵]ˆаR!8\^P9ľhgxMn }("$X l[ff/ >\9FkhPZrʠ2JHm$E!t QɸrP /;ǫ6>~퉂0Z33غF.&FzK$}HF>kk)dj)on6B6X.lwz}/rqSms.gq9׶ϣɭ4LnmxKn E:l稪"e?ÃXM7 :蝜3:"EdZZi&A gQ َrY)H>HCF. _DXV*$ +Θa||p+CA[VK;vbxlصJSF)q#'֡R-o9A4|R{#c,m}houxIn0C:5AQI4|+Fɐus.# !Q'$gI+tXcF2h9 Ii'<|2J T *&D+9V3Μb),!~ G=|q5QnaeIX'Z%=Db}<1Wm Z ![KX纏Z+ג'3!$c2O.|s.\[s.{~k{̣ʜ4GMxIn0 E:cIE(h,N/EyVG8W$"ܛ(W0β ++Im3NV7hB@%\* w+Θ >v\ ޹.ƠR|hŠ`SYץ57YjQ6̄p.Jg1.Os u=߱4cN,KK-/>PהZj:ukom{J]V_!rYxOKN0 ޏ:M|Gi㤁6Ҕp ?JFG'TFJ.4 oqL"͘ wJ giro}$JأLk0oNKFrF=PxҦWc*nh52Ka#O |}-xSc lyf\s3¼ZS؀;eBx^ro|_o sxKn D()'i"x''"yoUjYzpSp sHs"8.8(*5 ſGil JH,p?$.>`6IM`z/28- V̸C$;8{Ups+1cک@ܽ\skQ(5YFDTN6vђ`H4 vK < 1T2܎c oA0![SSg~A-S[쎣[{0+':{xMn }^ <ʪxJ m_'袳f63ӷ9XEAx N}PNNؠ%YVb\8f2Bj`u AV quS#)nñ2h/F|RBD+!̽icw :0ݞ|+ZJ}cyC,ੵuw΅u/?沷בֵnطk7bnxMn )1~J<3*8~b,F^[V:k&IHQV&ZmX)w`#.ϊhfuʫbG&loqRpaJy:ZwiRʺ.)T"A/UzsJy\:,V|Qk^r0҇op乵mRӋǔiqژJ]^u=xԙxKn DCQ1Xqr,RVU5zJTGThg2B"yRDte쮧:1[LڛhE (%rVΘ;:-iZO`05] ʠF N97 жm#OX\-)˻NC{N)똎:A/ގcy0vٽTwo8+o~zi!xQn G>6>EFb|.)S ;a) ~Lh1G5+njn qTH2a(K4Jj<BFe -\MΔ U[k  P2q6Ditޕ|W4`Po2bhe 6Eo1ר_}ZAGyTţԛ_$c>+aOQmJ54ƅ{xVPV*gpux;5Mkh9CŧsUvZ<Ŵy#;[j#|^\ 򡊔xOIn0 ͖(h,PfZt{o58~MEJ%iPb©CMzmz0:^9bhriE^ITAoHlGl[%Ar-(1ek&>yɏ9M%_`ӯ7XM?P3 \푚9\Ӷ.m{Һnֲ3w/2ExPr0 +|NHxt:O12- B = ˒K xtZ/APllC4^m%##{7XlO[ 2̞v{ ]W jU!뇱qphӺ.OfaJc?q=Q Rs+ƥs‡WR?Z'4'Huś9{mۛBS_Z_xOIn0 ŒE>eHr_/衼 HpfZ TQ)!iv(/Q.5;7VjIV)PA(G˂J w#8 0s\T4'cgi&߁Ui6p>m[[ }H Qcm7Qsu+_g>a7xqήik.Ǵcce[9;$%6XzvO xMʽ @P$ +1RH Z7pGr--Gu2($I'6FCc<ɹ(@) #EɶZ i#۹9ti~٬U8ɭECw] j~s/xN0{?$v hŞN">>x hgK"Kja$ Gk4v z!t/ 1V+vL 8ܓV*?*ihs! =1<3ݏ\L/x?jL_.o+WNq=>^ '^ٸmk)?i1D7keZrY su,;~P)c=bگ/}]16ɟYr^]W];lcoÑ {昶#_4( iǾxNKj0o@OϋJ`;s=A !zEV5v]T^ZJ) bANW1w!jfP W _P(x0z4qWJ)W^F[M39kX% ,i 8gCH[9z{WL#rnp?\sKBާt譵1SvRӏSZsvT1zXX vxNIn  #(FKf`C9ZTRH I4* hǰrg~s9bԍVi ƂB4NEk'pg4Eh@^3ጙJѿ%? rtxM!P B{m_`x2IB]d 8!j0[5<&uI]YD,,+Y">M`B^g$ᮘg ^ t$J7- Y&xMn }pUzgx`1X+u ťF4"9PQDt6`qd$;T̝C+g҇0٨&pl`J / ΄3f88cMj(gN N_mF i/B|:n#bX{WBHZ>=r3]SkǔmLncGxIʉ2vxOAn GQUEXŶQ_нhF;[x^N*N6M%3Fqe;& Ɏ;&娄&4Zã,10#;;3 |l1#WZu7r蕲.sqRǂa %)+^0LG|BY\O9%\hu3ʧs-3Ь *^r^nm[uxi>y;-{nږt}o//_xKj0D:E[B,]dm%#!Ǐ2'" M=(Fˑ dJ:!Z)iY!8l{#!x=n0 w[ı$"[ѡ%H$;=~ܡ#LZjI5S3q5R3J%䜊uʑq1N}V)P⠘-->0"<M DuXY[NSC-[_ieSw ZV(~'6)_&0.yXR 9Q@{5Z"oV5o6g)F0)$pT L߳%7v&gبh/EQ&qwWzqVU.ËQWbu՜U 9qW+xKn Do(9[8JnOdڼR5N>AgeX O6(H $ A()èbgU0Frbim=rXj9Li"3O4I)X9k_1gFieNPmgz`:Zŕ  ھhh/x8sSyEuQoF鮹kmi.GS6:QJ!_o@}xKn0 D:cQ"=1X$U tQnfya1("TRiI"y2NH γָu0k)%[4 ^`Ts٣Km#7# \B>zJ)hC4Z; 'b|ynJvVneq5Gm+Z9ַPEIlpxIn0C:/Yc@K1]GpA"RtA&D[\lraNWzƲq׳7V^Lrq(xMn }dgCTUCOlH}fէVRɌVP$RH),@ َR㋐*ZcEI¬~ZfQ  VMR9sZ@gg0ݺz3Y&#'`V;/p-9ƭ5ʑ8z-'|H11a:Žk [3u/ޯpR!>!V}NY~ soxKN0D>E$$3pD3q"Ap{'`Am[Z% ?h:z!H mX4(5</Zyo :J%Vw_܌\Z;'(xg=dSf (OpgXXen֊%rzJ C[\2`в/x> ͟=c,ϭ?J7+: `C.hp!uZ=&t}sߜxOj0+\cI^@ EkHrU=t/3,;;38s'95jl9I.NHЮK ,!-&2Y1JŊ- "Ghk.p`*9ˀg`6xojg XU gm5?K.řsa~ܢF?1[.k6;_ࣸ{4. ߫KpԘk{N;]B!:k]%$}%16zʑ>oDQI/5?&xMn }*JYx8Vj%=A7O3 RΛII#A > .L(  FPG&nZcfJa4kVȅ.*Џ_\L˙`CAjc'-gmm Fkm/Tvw )c0[.}akNgBȲҰ ¾q銱#= _OyxMn gTU#$x0Q] [ F/8S\ !ZрJ"I䀆ePZ1pb4:*RNʫ`ԒsI_Αo1mxAn " {U c p'@Ku_Z -"Ĩd #q$*>O`2Li`e.t^d| SACT`5(0eGaѯR_6:xm1۶&~֜r`,im~fwyVWRn/)q>e[9CQM|WykPxOKn s ԓ<ÃX ^'袳Y+7d*$Jn+ ⭄ V:;JW `WB6scCK7#HMLve1,:e)޸q\+N#/5o:W¾|k|V;vaOp_Z_yK:ks:S6\qN}cwox;n E{VA?k`Efxf0 R6TGwtDj_-MRk C%Hr]KvXՈRyҜC;#BJ>979K, ׂ3a뚌u^Y#;i!5[)?5Q^h.-:B6lKwzv<_6 S\c>þsṇ!Emc"xA0 EBȨfn 8t AI7lDJbPvhFv2ZL-z\ .ƎoNL l2rB.hPD"ń#_ I7x-&p3+՜a]EYJ #Ij56/ze|o |pD܁EWW/2sh?Q4_+u\.&wϽ W.tߊ+|s-y_"rMxMn FbQTEI&0`+1X@Zu{.m[=}0 a2ZY5:>D-f%%gS q6+=[3BAQ%⦕De湳GQbg8u!I;I7hFЎNxLmkk?5Ka֜ex L |.ɯ)AܲYՏԭO.?s?1o7iFq wxOKn0ُ^~$AU5Ҝ$Gu( ^m[AJ9xͽBmSv2r3 F7LjmUuXBSpяxh΀a,߁dB+>)#=y$2F/ҶҊo v [אD[ !in]=r7Ǒx5)Zpݶ>e[׃YK IxٓxMn #<UU=8]t4|J ,17,%FB#4sm SNJ嬴 3yD+$0;`5.: V osC)4Zwq|fV8IRi ?ÖmkkǶ h:]YS< ך|~UhzX\[W[νzI}L%Q[ulC+GY*زo>t4xIn0C:5XSPzo1K$]B`=nІsvpQs`۰Pj&Œr*ڇ8  yxp9 v׮V .1| xF'mWVK ;e ?B^ץ55 A{=3˽i&h~t<Tau"R16/-?zss.OF[V9oeOoWRgy烬xKn0C:c}E;ci%ÒNOEH;zMctN:gZGM`0slÝJ Q+2A 042,u9`CkwP1I1Y!h팒\ 'p_).ԂOoj2,OI\Z1uFܶ6溯cߏyy~Tpx;n {NA¼kE0VdG9~HN"3|hf4#h@Ɯ`p&BR+Nߠ ]HR8@B!$gU' U2_Uw43a&3b7HJQQaά\W3ol z?m轆_kiZBy;yutҒ_j?Ls4vѮN2}@ixxKn D (FI%Cr,қz%UZϥqN] Z2hX)wXðy|j!tԮFF[`x{=6_Y)\6ĵ2/vݔ]x1ji1_;O{rN96(2}A+g_j%S̐Z; R~'0R/ԞyJvKx)5:3Gc3& bߪԁz ?xM10 @BH5ƖX@qF~x![WVnqU-s d$DΓfHRsAcр?yt9'GNW07)e'PX],"Rc-bĝm MUG4ƍR6gr(BK~X/m[[Ͻ #m R&^mJ{T]YskF5];!$myXvպ<Ʊ{y [Y{ ]xMɱ 0@j(\Q#!HvJ0A(0!#@IyfSR!$v&JQF L$98Oۧ*ڬ]%\PG= z<7 x2P3I)VZuZH mZZ׈&7-Rx;N0E{h *:6kf(v (=ѽuw&m(2 Qi8^2aHɦw*p'C,IQv-U,>wF OuE&SN.8vq#@Q6R#Xy۴[NTlL\:Ʋ,G5} !g\)=<>BB]H]gh}*e=C>$=QmeM7H U!ix) +x%!01.Q i_O!@ 0[:0eYve7,7߿U4,n##`:&8bdhr=R=…bKP+5r&tؐaׁwB^Sޯkk; 6려jm/*Blpev#vݠ饔kהkEG@یFH9?NJ06Cr,R6UVa Dȸk)b vApnf9Ms2R`٭MV8K3[o=k/xjI(RB:jq8wfmQϒހЌDf5^ lT 6'pH- !bj]] wxumCgm| 8 ID (ZQoxMn #lEUA^'H3 x' '҈$75{3J i΂"FrJm y)$=3V _{(Qh)qp8׿"p΄}\ s {vzRb)@L]\P?tcOא5ǐq1䲏@ f_Av1xO;n 9WHN/9xQimμ:vT^ooۢR~tūyޜg鷔C_?PtrxKn D|Qn(ch7_fo+J}ZxKn q7ӌF\ 3VdGIN''"oS*^cJh 90ҙR!ט;H8{€1fvfY*O7xX & AZ,ˬ-j/ӚƑ_ ekjk|Y?b2E{bo䥵mN쯥R>Z motHr}jxOn {6*RB&_/{HV@:((H7i.=Fpq\y/d-50sbc[pIBn@Zx=iz@gWcPf()AE⌸LpϏOȥok "}AW{okI#3c,mmX:j]Ʊs9cڎh1[9ϫ@XtޛxNKn s Oj<ƒ@Ȝ'袖%{a[n'78 5hOq#P jd Oʍ{.z~63IFN!"OnjrbE+E+1SrVr^c,;WIwJ~l-F>h// x S_^oqx9n0s"gK/FV0t[ ^S@L0z2h& bHF5F=:vPM[AjBv5llFjO쯽zkjJ~VF qT`7u}]ۑ+KsK^w)/F^ˏ˲Cq4Y^ h}|dxIn } g0ЊQLm=p''"oS*r: J@GWJ>:mPuDk\̹(5CAotrH8so}J3 9u^Y#ᝂpRz0NћF⾮j#hD`kcKӋޟw/u;yG;xІ m-gxQ[j0)!ÖPJ.CQG2W хeae[qptXrY3 g؅{#-Uq\ró5ް/qR* @0*xJ A<<{Burθ2񈭹نnFj1 -ڶsW) ك['m1uw)i[.(J-'u#\NP:k_1$5^| :\S+GٟބƑxAn D}Cllԓ|CPl'ׯtlfB1Z]БZPI3jR`hmX(5>fi/fa' $Xcf@acG.MpIjq#ֆ$PmK߀?%h֋]=p9PmEBWb9Ԕ{B+_ Mo<ШQ)>1(Oyj>-L(SxOKn s"r0@TUzVFiع~ݜf>LD do&]?GnF/ e}'p #7ҰfJ:HRpH8iNi4Fnu^2g']UDZc=F('Jv 8jn `nc?m=u&)$(am}fl!%TpK[ yfX&N8T|iCC%_݆Jkk׵a-ݮ/ozvxAn D}||)2uz.:7HOkJf^ELRР-9c>"NɐN#T:a$iD 9N:шfi*)H,WL8 0 Eq䵳>R\aӾmkl3ն[.w|oR^mXJ\z:d8&n׳|=/7/_e-xn y lڞ=;$hto_U=ԗɚOcHJ0!&4#~B+G4\]V;F猔VLSǵpJ;^QR  5 lYYFd{t+{_3UxXʄms9ЪLLvgHCfJaVʴn\ud@\"bJ~C,vdɬ噏Շ8UU5\O_;{O)-)4{<8fGʴ7繁K&_/\39_>S}5xN;n0u mz+(=ɳ%C u{@HJ=*pV+ 3INb&%TF+)`;Vʝ49IAє⾷q)u{=p4Iu oxM= 0`JA8fp罀8yMb=B/P'HAGʩ Fݦ3!@5T=8~[D^QZȀO(9$A:^;x.5]Ңۢ-xAn0~#^EѾ ØEY Z}(@'֞[aL=c1d F kَ| =t;O*/nAm|7ulEѤ4npGc5^5u]Dlꝟ/ 0q!QxeQ!Rj^[LW8Rڶg]>vގ*\Z*sVca]9$w'xPIn0sk%+(Hn tyX֒a}@ y rj- zsN0+'V*2:K0z0͂COș3XAU#KPZ{Li1#]ϯתτ67:da)jsh 98=:MP|m0Gy:v]e{qV睏[ X:\ګ+?NTՕ7xKn0>#(9 mr MժzeH")ISM3y8GzqʹKG64iѳĄ-p*UslQF[)bUw'4a7&[?5Q*˹sJnw!ĺuվږxkkR| k?`t/7XZhxIn D}6Њ%>F珓dڼZJo4D F &BTJ5 X FY`JEr@2( "cyh3[mZ{d pgm4ЁagL01SK9%FBֺy 7&/+׳ӽn9Fe&<*S}Y6sm/}q%ն/=E|nx=r {NAňO&*]&04er9AT+_1rJ6ҽ2ZCqсu^XF#,TNѤ%s[Ε?BAE0z1'c; Q~؏iʭic/;_q>77W,K|a]1wkz.mmqڥN][\e?۴p]xMn wTU#$UH7tQoml٣HqIi_[}(WA&* o jDJ`V裑 RG9Ѽۯ=@VklRZn6J;EYoci#:*+m!$o¶N/s~єj/湜}ă<׶@_vojxKn DCF!'hLX?28Y6WAGi ٍŔ'U 98 ڔlǃγ䭱 ѹc̉uI!ó /^_P#(Z>D㭆7*oe{icB<_Xh_Ky8lGgK&v,agMxOKn s?`*RO/Vcׯ^ff1O!@xnR xf0’c;Ր;,qqVi%izRhgIQHG3:THgQqp8WrVGÑk' ʶIcoz`m >`Ll!KkGV/=nxkt-5}1mLncG~sh/kwxOKn sc>QU~+1X]t63iF3I+( &Ry;igT[Rn^c8-Ϊ8!7Z*7]B9c"p.8 J~NX!&,Oe-ⱳ] 68(O ~O?p10 (xAn E* dB0W1uN_'^ODpͳճtԪ ΪJv4\d4Er)BBT(x1 Z̜uK5(iOwp9J(@pBj%5V̦}\c)g5}[|ϛ@D I~cxOIn0s(r3FeHrN_Cy!J@18oW:HE*F-a"%n !5yǒ& 4hR~fPF<8A++h\`\~aH"YQ&U7MA;F|E' mQ4 6&~Ȝ j;3(muoIH';Ov 4ވvNډ: S?*m*DHig^Q7Ɯ  X9oԅa^ ,T`dNɕU1ڔDR[۞:'}휎RykiJ;}m~]Zk,7yxNKn s $<1= t7tQ/lK--nlPM>?/!*mld+m4.ͤ`bdQOim3¨ct{x $9S''gmэVKx PF~'˒[ >9kKk5-}: =c,_zuNקB}{ @жkWX]Wɗ7)OuM[Mo-S9Z}o2mu2lf [xEƻ 0PEJE s'QQE ;> X( d ؄XWnUMpA!5zL1f&YGLƶ6ɢhQH[q>*1qmG;C 2 mx=n0 w{XcQ "SN=k#dHJ{:I<=Є(ռI;N(bf4!O $p-MCa禃EP G[sh< ''%7>(×!3.xQ+5O\a6֚4ި4^s/Fb+Pr`s)޶-'h;s ;}틔~[G6wZ8v:D\71=jHQǘ>HPJrK(}ɐxOAn  $C aQ7$ z/eɲ[!>&h2>H=xm=ّ(N6 Qdn¨8D5*&"Zt f_fis|J@g=.ƠuRqY2'ؼOeݷ<o=|ϗ0 ?W̘􌱴>r+?RuNէVS)>!meZ9MXtyԞxKn <Es0Vdlr89AyUJă)4F,iEF;| XtnQAA 0(v nfx^yؐ?~tJ$f #AH)Zgo\1XطmޱxZq,Lm`嵋Y⭵}/ra\8ژ)7mkؕxAn0 E9E#'@lFU5!pԒ$pozvIR{mPw,tkRLvV1&E"#޸Ci`֓#'C&(2lۏʿoMyx;n E{VA?<~Fh,+2 8YA#*qnNSR)iɵۢ&]` 2&L,rsykGBM7;+TP" wW8{7~9n֕Xɀ I)(mЊ@op zjhc{-Y$]mם˖\R{q9flԵ6hɌjxMn #0QU=Zc H]t63+Dq3:޸YH rݢr]v¹h ;} Q)B1^"m68*_QX'qp8㦌u(_"_ Ǿ[.,/T 9Bxh\ <[?v5+c,>2/=n<5=js*cJϳ볼߹5/ttxMn }d/H= <,U_'袳FhF#N-VK\*d$*@ب 0;uT&:"ZV)/xؑn匙W {R:X+`bϞ8Bݶu 5V#AXc׍xZόi7~&\p-x\&F;]:=5 0mxN9n y s_(*v ?$/Hif4rXE\h$NGHE{"8\e@>$QF'J:+t`,Zq ຃/tӌfBʹD)rnr-}h% 6F6 [ɰ>W^Vpؖ@mɗWZrqKmG\>qtg,5Zpm’xMn Q~cTU#$xDm "/ 7V7qFcH4:2 =,dl JqP9 4@La !x)jRDkP0σ" H1@vXdxo\ ik.˾oR+Ŷ̗Qj/k߷Icd[ί[ 4-uxm0D F/J%$27YzE.L͸:+04ImItBNw&1IdNGkQ'xҖ娐oxj=8$g L 󜔱N5!nǶO|` 3^"6j^Qq$k[k˝ˍyQy?[B})nszr$LoxP;n0u'ECbK%7ׯt(r!A5YB*捡\zRev"FOvw`^AirVc!HAI$q)3ʭd0O`5҃T.mK?i+CmR~_]zg+T(s>x׌ >a2-+ߩ[_J}mJ)޻}/Ǚf5W 8zxxIn D}[C[8Y6ﭪjtD%s>@`T1>El;A΋Nj9`tK%)6>BjOxAX'!L 9L6rN\F F9mF\!m:Oyoch;mv_ RՙR1uZӝ^es~n8+<JOn5n{xKn Dn>("c p''"yU*h9sz)8HOH0StѤY{8YvPu A9j zId&/:_wcWאKx16:F<:\3}aQVesxIn D}6fl@,}89Aͫڔh)Q.i Vo \LJ99\KePD0xW3-ȕäf d-H9h;Ks`(5Y`~bd<bػ>(0BhzcWH|n;FңVNJN3!$oc2mA/z_r97זG:w}ɵhgzFпo|nxKn )ˑEHAn HmVOה8# UZΈH5;ҹS>HHA)e  4&/{9P#3xi0 0Q[85x@op¾mkB%G:3ڇU5>[kcBs9[OHƼm,OtI[Yixj0D qĖ|BWt́D\cOK)Pl#:%SdNRQxjd#w5^9(MvQ6ВW`T+a5!l,5Z>!y40owuvE(xG[bg'̩uv)S0ϫs<^nݶ:̹,C+z0#|$_1xAn D}d1|ԓ1%=A=M+D\i/ ,X Q Q؈:"ʍZ5*""E wW{ߺ)@փP 1A;Ei=< /±[k?6ym[N9K~Xu}SKɼғB#ږ\cyC{an䥵M]s ׭.¾7^}?/@jxIj0D: Fe M+6$9qr,RWPP^SEC)P 6U@NiPRsU ~t8)F 'FL?K_܍BPVk&#9n0#*ΰ-{7/OÏoKE\o䥵Mʳ][-?]h={eXwE}EjdxPn R\|al|D 9fFd-h68+PQuAI9RY. s8 dɆ\NQeጣUd9D,1ltѩlC9Q w`tT'B՗bǍ|op5ƣRWA;ot1x~!NT<|y01* .-f(]A3v?/hJ<zwWBKx[Vv4ÞZmcZےugJvRJ!Tx9n0D{-rEHc)2{`f!GR|M@'7Z<{F#2!5eSE Z*C`yoJā g g&mV YmU{Ķۜ g)mƹ:`m=B)ۤQ閮 {gm8{-~ QL# @fZ$g o0|=}?k賶ki>tWoX!AW!{ٷޟwJ'-إ4xR{:U^f$/7kFxM; @a XSN6bHE76Mi>Zԅ2IX*y j)6*-xyş bܘ[Cj`mEYtL}It'.xn {bm)Mg2`)o=AL3S>LKECLx˽hDe)wfj4d3; "h+oћ`Lg$C5$Ĵz;,o/͜Q4Tt!x1+=΂w`t(GBO5֊C#@%OrNj|3LCXf-s*=Ǻ/{Im /ty ~][ϵzBkWE/ܯp~IÒZ fʰ})AGKS /1xKn D#ۀQ4X'9~ %U׌>܍nsNI[*ӑb&VabshFQSNy 1G љb)7j;ͨh,]^HG)8{F6iچK?i-)=bX~{SjKMqM|:!tĜ@ x¶ !q]ylR: >xTe)Cycj Ҋ Ux=n {NABʋY'4ZyF9c##V̝&%!B>&AK/vBO[o/ܜ ,h`XJq>(gx2k-}z kJ0 hI}"[g;mKk+MkSok>[ǃh|S뙟7up/l3xN0E{Q&~=Bh::DA퉗 vd; nsOuBl@Q:L+&ZY\I%bqds-5¢Wy#,J.6N8<7qiq]4CʌREz@:+S^jc T#!ucI#-܏+k[!sI_QVg?-w>Ne ?~;ATܩs*{aݶ9=h{_owxMn #(^k$`Nۗo3FO3VlS̜y\B;.WJhjnbxϘ~Qj9lJm@U^4ˀ9ZEGII!4'm vd;p}'`Am^-J^ Yr$k[?NNEަjT`V\眴ʼnƄ \b2:B6vن@I!y,̃1IϢu\AɠpqMa ΄3x"a3"Ӥj0gV +SƮo:'z7ڮxV\/ BF|oc^cAq ZNr҄|jx9n0D{Aans XAR> EyS oI6,&pF΅. <* CTˠJTQ X(2i'auGxX &c|(6-YJAiV V cz3۶|nZz~cx%u.l 7zٮO}]m||=p/vmxKn (9A1cE p''"oSzs *,Jg^E{ s3sTJoBD뢉ҭy` $58m-*|NKO'AHo- "Qq>(g$SN(k$}F>ڞի.s[RWeoc_v/ﭗ神cq ^Zg|WBӿDo#+iyxAn Eb mMO0GIl iOEoUKU:;1I' 1:bThZD^~qF!Qᠱ ]srFѯ1XD=|N~&SSo3/EYoR>>oR\Z-%þϧڱ,|\k,}Yo\Ϛ,jA maxIn!(6ǀfp+A@[ TJoWAfmJ™EbIi9&"=eIk0j%q hP:mcڱ~ޅS/7Uh^xOn {l9 DU~Aߗ?C2n͈@9q*ΥÑ 'qR{ LXA:ø52+$T0eOjNpK^)IgdapmȔ5ԊF^C|NX[lL&6o) =PqR69,ߏl 5A5^0W]G`kX&gxMy=BPPh)7q/l[V~=RFx]j0u}We!@O#KF}՜]f>XɯKWe,MVpn2R-՘IőCde+إQ-y-ʺen%'Fg} Bp{] Bsp4N;mPv ˨Q 57!\ iCϔ;(iVI!?T GN~2wB+v]uZH}oxꏁ [P\ -/ j{xN0D{նll'uV-%u"q^ =)F.XG.8\rdq Rxox?zR#A !ɀsH&5tvr_w _\ahFm{mjB ءG)™an]X &{|A)˺O?NB[k-Ӻ/mkz -Q_ްo_VxMj0 >v] I,J#t (!?tE@ JrBIaPz>nr] J~+" zĉp2$7=r ]`teOpFgt  dž+nBp@ )Qq ^MRzX5qan%smoF] ĪRڙ_GS9&?&+yyv]vިn\qnڕtnTK i~x;n0C{b #ْEl%C'9~"}+B8(ohGtGGz1J z젧؛@wӌѢ΃1#Y\ܢVjxUhL3I ѣn9j;NJDzeTpK"}ߘ?;{杀8+g펒o9U Yxu WBT C,RL\9-]SgB,7#5[Z{].ɵ,?-LG玣vK.{Lχ/7,f0xRM0 WX{]1| YUJ+a D J°kCQ$=%)0CY cSa[nѵ%.I0fC^%4j*LSRSS"k͍n)lF |,m[YYq-&jtwuSߡ,t%ds!2~YlJ?k#$Ƈ&A9}3C;:.o䦉#(LύoI61^ 5xȀp}Xpt.&F: !Lxb05FXg^`i:[ Rj)wYz?8DŇm͚1?SkUm o{xn D{ı,^(| Ya p}H>Eyh4ē@jƐbL25epD쳵 ;4q8$\rֺ0&b쏽s,Kw #fA@$rdݬ-z Foi~!{M#BtclݺhElG^Z{ܤt]uatHM{}^~Wu|niuʠ *%x}j#g fRԭYY{3=n)B6h3VmC[)}1񗇘Ry!yjCX ssw xMj0F:@~-9 rw\ ޹.X7)kx-磰|~O=(pJr_WU2D(􌱸R;xue}L|鬍1}hLi/W7ZrxKn 59E<~ ]ԛϖ,˳#RZ 4 s^:T2 ۤ)˂ή(֦lu"5G5/VAD&VEY)Y[)jzH:}g|`ѨXrERWc[Ӌ1w/k{'9x=g8P exKn D,G؀GQ4Qni+c!s,қzjZA`]*nF89J@S0503 y6˅wܰasL5r-2j:3:hK!( pU)ڇ[k?n{cek=POVzvGpgmyTt-#yG. ^64l ]/ޯiɌ_bxL8s٧Vuc1 G~ ixn0D #`GUOf1 K=t.3Fff59Y 'oɹ0)͊q`̩Jݛ3Yj$ \Þzjte2*$?~aqЌL3ϓQ)gPVs;sY$.3OUnkB)r+km+5tJY]w6&j߹,tq[W8"8FdnΑx=N0{I$ DABp;~F#K i>ʹ,pCIKQ^yuL;n yTdsSBd*D5FTQ0ZF=y7 *K.0O:89(YF}GTv1UVZk$CKk?6o. ’9xʥԖ q˥ !Һ%aq?}ӽ6muw=]0j/7?v5x=n {NA8:/{hg}Aӿ!߽gDxOn {l6ʩ6$痴?C23LDY!MЭ GT-h%ьLWODFg$"VΆ#G ۊY .֝moKYwj6vo n|ÉbkP+57kJ8R 5wpԞ!KCP{@rh]ӎrB3vᩔy뷈}ۋ[|JǀQ-}?͖/I7~;x;n0D{AsW9ɒZFH*珒453^%Fp[n>=ƌl0.#ةڥ!q!L62{nF[%S#l:"BR`TH`bark&xNs++1ӳBJо<>n78yuٮyu׭WzF{y+Kʱ~޹Ec/~sxn <.7\j! zJaM;Zh A&DS$aIƀ) 9VAqCj2n(PdA:$Wϯv3AX en2JGVَ1cq߶7m}oi|_x7O#/]P/7n;x;n0D{b{C֒4FJ&'X)G Rd0`F zAa ^ =tΒ6j +E ϝI m/(t{JQ3}m/QX'Ox8YjJ)(c4JW਍--[糌gk-.#(ʸòzf+c,1:py>+ז|u#n3m[ڞh{}ܸE/G79r8xKn D0Qq8Cr,RTRHrVگ;@`" sݕ -Jl:h'\m; *З_<\:c|f\ 5[E['x5!y;JRtOL^H?S+5=q X,-wyuc!f| γ(ʕq_^oq-xKn v7Fh3cE9 MzM T5` 0%PU!!9rp5'RpI ,ŦG@R̝Wk?~Ay,@!  I+5 h Xطm=FMBJ}=ԗ5CD7("yG)atTzc1G8ZZ+VJ2a8xFLSg;.UcPQ+ P[1}ǍBUZR^@l9~nMUum+ 2٦KձR1+ϣ[r Ccr>ŇxJγ ->8>B[m/go.;xOIn0}/()/ildcFy@KT]5;kfԋq9As#6UzbQ7IJ 9(N3)C0X^Q4KG'F;йRQΜBqmCLV?Gٙ,,g纙XYd,+"G}/,w`.]ڕm oahŇR1q!5n"MxKn C(f{i3VG9~ Mժz%HP&8fr6d82;b\p0hvva`5SY +/Sl5(* 5!)+9[xᕃ i_ץw{[|]kTx~1V.&|o=R^6-{-?.vNd*{=xԚ: gxAn D#@CTUzjl,]t6I#" bQq%-Fo$@9۰@K"H( 6A+cQJ2p 6c ֘ ;K)ˠxQrďengH2Zw]!'@x*DSDqfscxZkvW<2>׽6zܶڏ,}+uxx;N1E{Ddl!JV`(=>+6TW"9-]u59DJy䣒r3lR@$0AuqKR6P"zm談_\\Z;'x(xgW42 FIkͅ#b+"!ą=1(5'h?RZ R{V֫"ܥ'/>n}k޻}}<}+G~މTup՞xIn!w >r MժFCZ%JbY|Iʛ\F KNhq(Cš:!M6"$4&$ }?u0gkxKn DQ4\L`a HmޓJ*UoD\T'RG8O`6RBp&#)y$OI*ZL3) /<_< 1 ( 'x4W\mgjk4wZ4/7k`xNAn  + VUo@بK-۲J<4Ѫ< ] %1ua"@yvRqA~YzQ8sH 0k՞GiJ γp^ -5hchw0kmQ#A[}Z>+Rr0LC7Xښ_Yl;j}ޥjH-Sj2e\Ƹ fx1N0E{*xB+QPA &ĉ Nd;{~'7UOff9X! E5u@;VI2*=2 i !0h3`ou޲ ɧ_Qf56ʀjܨfBn,A^YuNm]Zje9lIc6 %S:v$q]qMyf 7yR|kӮ1uۘRyoiKB[>h;{Jvx=N0I$c (hs#ۻ' P0L14ӖHm$uTw{MgKj C^;᭶h|ȡ^C QV!L1huc(aC׊SNI="j` (TtPNdWe:CcJh :x5+[[n1go70<}0t_uԷۄʄЌG MUU\|ΰ)ܶ{jvrxv\[=(mIyRr/MxMn #QUٱ~INEg3jMDԂA'/Bq@+rZJe؁bkR"NFZ$9RdaX^u3Rpisu,ARhĨ oa>V+הwP-|MҌwgEUK( J V> 3֭v;v[BK)04׈}듇W:<2<-u4ſ|b`ǒxN;n 9kgEJ>@1X)24kDX{BY2K 9!ctX"PsGiiobU} Tg9[:6rֵ%م6vRWʙVB2zc ĥki#s]EO!ҽ ^7SR~(-Lu]'V6}s5=kla<{8ү)}W|>V9K:sxn D{d{16(T˱p8|AT3ͼY:Q]#9BU04Dl!:;UFяIfk'ưηh 謏t˯`ttw0)蜇1֡^jLF^ZK?4’޴[Y_"-;>slz9uS~+)G}}?C-g~ޔ5$K|p=jxAn E* ¨FI0I" 3o2'޼/?KF6P tGrDIJalr< r+1L7|,DLSyȰ&-8peA}m\w_%RZNm[fԄ8?vyoiS;GzpD2v+0xIn } 3sA> MժzEfJhT.Yb"DI[)XdrS7h3ADcBaFt)}ξ)@?~z 1 FEl+^^Ezk$۶S#_9ciu^k[_K^BȼvޅN/Z[_6% {ly,χf/7cmlxKn oEsC" p''"oS*ш9゛ЀҐ1))8[vF~"T}`wF&OV9^bOVPP(geIJd|5oKu1jqPA[gu5?[﯇ﵕe?CԶ ΢9ľgOxKN0>ſv*$~7ڑ z{RNՌFo4[4Gh{R%9A~<6|xn w=}Re: 0\l+ vءgY>z R\:I#(C1&. ب& Mv`4g]6Ȥy4'rD@@A/?΀[;`@2K)*c0Wʠ'h!a{LYu^Yz<ŒOy xMn (UH= $DmH/m/E,/,˽HAs>Yd֢8"HE@-i |.('Iy'-J|s?J⛧/?xVqH VeF!4JDgY}zF~붒i k'f1sBH>˴w:xkygl9?5{zq1@tw >rN"̫`Z2Lz9"Rh8EaL1(p˝,yue.:Tؽ]j.QdZPt v8v)Q:52 %p#į<FRo1.#iܞ6cv06uBԺz_)S0kn[13/F/gzx=n0wmXEcgH$'=~C|B5Lz>ciR/0S`0s9gt߫#k '{!*{]SeƂc ׍NaTVK0bsC?mA9GOWGj-u4SJn ] KwFe-6pTzõK6%ᶕUռEXm-0/{ԕxKn E笂y/Ī*ot;9gtuz͙{P)L6@4j @)Zt.5TyBYK 1l yr,eBC+/57hesBZyNZFp1^cӾK;m7n'c,]M,_Jl4,z>$Geܾڃ/=fx;n0D{b{CҒ1UJ&bQI%>~ EySV Rz"F DXnkQ:w8r9sROG%Np3,lZtOOҖ+pٿcKj]]W8yqKvV>,{C+Gs=icߜHn xMn Q~QU 6 BF=~37ɒV`tA92v"Qq)&5a&3+Rj`ƒ(WѢ 셜I` F G K𻇗Y)sGi溋ZWܜZ~ yۚNk֜ @y|r4 #.-Cx~m[ԭxS/~%>%{2RauZ=MX} /~lxKj!`!!\4r r%;cC #,Vh-%$N>:u %3&$!k<P];YϼS:i_V#ԟgh?`/7kBxQj0 D} /ȱ'K) =({Gb$0%12K5H\LEӠGl48(q(@)c՝zSrl$I2r2S?AgbQ&x$vC7ĩA-&4Ͳ VD#\w_ M|Ĕ|266xQGgawwpF2!f~pegH|Z:ܮ1mIgKk__ΐxKn }DEUǏc5 p_'袳o1M>KeFeD!RM67, E)9Ĕckk&uZ [ /ܮe=Iץkm˛R>p~;_jhGz*5WclxAn E}xQTĪm,z:=AV_ffY;}0J9#yS9WPPu;EY$b&a$6tZwT3l{EAٸEMffLSf)FQ#{&ReQbZEQ/V4#S羺l0TOU{)xMn }Dx_U@XUep]t6߷#%*BlX'JYd9iӑj)X>QN'c|XSg0:s;x֊LG0"A;#XVF y{c,<_v>XI9Z*],l=ɲ/ُ~</_7+frx9n0C{B@jkS_eC9~ E<6$^cV[L:HHFK2^GV@Y B;rbS P:$H#z=&(Fش/ yo0FhRcBƐ6D;)&h@s#'%!S>%M%G)qJ :ڣ0oA&Qb<.Ճ|FDc \e]j%-RrV`'QJ_x^Ը^Һ%ǭOΙeQo=m[粯}ۏKy*t xj0E "3@0vf$k/0̽LIX}T+5-uE@K0lC=\; 312 F湫YD[X|Q75F)b9 ΈLƶZ6sj+)$ޱZ_i,' 2}tor}Yt=Bh _3Wr~(j?nGarutfZ6F|ַmx1n D{NAbc߫(49BǶv-9)HiiDG7H"oT& :zgcPnӝH#^[DRpG ?ڼB)֊T%0(#R9ᕃYEa㶮KkF#X|&WK/7)ON_2Q{VVʑwp/o7'jEbx ȱ 0@Qň#]fD(#bfa47Oͼ."W"iȚǖJ.\]T`RHDLT[!Ri}ˁGޙs&n]&xOKn sl1`GUޡx` p"=A,fFS3#l4E3EqR|踐WlLjqJp 'QA#cxaX~br2[%h;j)Aph2p oG}@1Oh2A Bf^XQbZE1D0+CzkW O\T&췼aMGeXj>"h %ܫ͕x=n {NA=`*VJ"ir1 0){0K cON yC&G@LبRe UJ艨#BH<8t"s/nN+fP06`4hR;Y*{0gDXyMp/kYRr+s+SmUuyv-ǻ{季mۻX7E5mxKn }D+(<~j U_'袳V33:"M1Yg$f2Ȅ~QpܶSn}F?E mrxMj0:A{PJVFgGFC_z.:aZ%eä-`Pk#bx˜&bOcY0!v_+c?~ ( ?ӔA;#stۺ,5E>_97?»~y.r.hqv9uqEg~̃gϞxKj0D:ǭhaV"l%c Ԧުw"NNj@$2Z{5EH1x"p9ƈ!TP&O2 Ld)$J >םaX|_x8)@ެ00!h+gxYΰ;"kt\kT~K}L1>2,Ͼ6k.x{~:m#n[sױG|9~ 8qcxKN0D>#?Ba@X(N8c$S{b fFVEt`M6!I)lbi=Zt$.8MJe!x]>()gR86Y'4K)hcbT `a'1uYJ^hJ_׶-K(}m\:?++JGq|9W<-0{8nގq/e{nxMj0:A{J*(yvLldU袳aU"Ցƀ rHJ1I!P4Ȍ!&'g *+X8sB僿*{#D#p 9yc_m]cdؼ4q|~9MN׹Vs9F ~yl,;QyfxKN0D>'6p Nw2ĉlH qԦ敪W"#"(8Z9 QavT:dhȻ5n4'3Qv)7~*Pyp F+I,JĬ&t!!8V.%Na㶮K oԨ+CKy%Er|'(eieK֮g):Nr.iM·+{xvx=n SЯX0oE&׈`yx`H9@L3_5ш:LMh\UJqtV9ZFepL,zm#Zc{)9hQc/NTZ Qs2쌂W Jy=궭c-xQS팱e?6MK ږOK9} ާm(wpZ3gIhxj } sPk5lcMЋ| 00a,69"gPd0C*e϶بvgHĒY#Hq%( Jek1T?/ܝBP~D@H (eW`CN.;"{T1Ʀy/IyuT&rZ"{;(r}g]x ˽ 0@a٢r hh?5A,|+(Dف 3~wCOҚ%WH Fޡ$}4_^ڼZàrؑoN"BY$@}Ws4OR?$kxn D{y3NQtiRKY[!R> EW̌">ߔ2&R4VۀP*8BW(7nts4lTBԻ0jt5L̝m u~~QiV0Jƃ1iKPւD-ؼo"{ 1Vj}\mkN6QXÝwԺ܇5ewK!6:wuH{نVzDyžfluxKn vo4FI3VdlC dZ^+1x"5i`¬IK8Kͪc''ÙHCXɈ*tAW{'Š񃧑zpzPúe P΀e7ctZ{m9Wг:2ֆ-y})xSWm<딎O\)Lr}lxx=n {NAhSxPn0  zZVP:t~@AK, INN<8^+8mYq0R0!'-vSlX|j (蜒 &dJr+Wޖ\ Xh(3NvDU7N8{F J=ؼ5?k.sp -떓 !&{xV C|D upS˹v O;Ck[Vp[-1hؑx=n0{+wE*0a.6&珓437'MF%aIbҢv' =ytpZ"r1h.'FJO/~aGa\w(9vvB-KPƺ(߁F9tn[?4W"v$^[bcq]JVz|Rq!6P+==/[7oxKn Dg3@͠`Cr,R*颂 1%Pr7{n0A[@N߰ p .Jl g+-Z袖_UMwO~ij`N"[0l7cWxR.Z5q1G.S,|IHGr'Q!$Way{й_'ST><;O||>UVпؑomKx;n0D{Ak)49ʊ? (s0iҦ43 ^1r4JAqQ X^JI51&oS8ڪ j_=)MI-WgOv01IX( W"-Yq Cg̷`5l;`孋Yn|mFBףx;cׂr|r&Jݾwюt~ʾr 0xEƻ 0PP ZD Z/OA:gP l@ɫLMW{%ExKz]ȥPh{>yN[|#=kid{9ɻ>jݞi\OsYxZϻ6&:S+}ɾqxMn }D̏y@UD Ǫ- 9iOEg3bf4qZ &dAr9k Etb'V*;0#`2|Q!i%AEYIiE:Z}p%׳Ex;<vJMmG[Gݱf[]Ėn|m]ׂף?<:gQz}fg lxn E|Ai^/q@_/ws,q xS,bT+:p=[qRdq2n64ގd )aUն\dTI4(v3SeVp.AԓF5ˇ'|>5(Ees)ܘ[_n)ʽ֋{!D[WROyQ1QKCLWm|tuC+W|]_27-pxKn DwY60Q0? Y6jSG캖o؎}Ehd( Fl#v%ԇnpFٮ1kiGSR7?\Y_^/|KxMj0 >C&x(e@Юe[Ʉ&v= @|O =jFZ. SBz++$8( Iv+Ep01bDNpi5I zM Ї;Fp&F;˙S4eF;%#Li= 6Zz`O۶ԊFB@Xv8~}5\W 1P!-\6lB5їߗƜ3!d^jWbm/`Q--@~+7O~jp1q ,%#NZ-F;@ a߶?m1"12 }=k5G|kv־ [BZ]is.S.1hS6z/W\9sxMn #mrv(XSmx+FXL}h

xPAn ߫l@UUKAn UC}i<֘ " .,8'E)"a܅qh\ rPJ ̟k܌lQv;'q%xg'en0Z7\R[6,}D?i=pXA܏\( |dSl§ɧw(m;6=V0H]J]]/Oޯ鬄Gk.{OL7^/-7PgxNKn s #ƒFQ&*$]Բd˲,ƀ!b9h+9]MS)u^O8gٜA ) qWߎJ_y.R0(z,мh)>m `c߽Y#Sa;}Xk!d}w־ {;zkms>ܴ7u|-W<_^Ek.xMn SxQUMNHotQo>˒-H|h0:x 9bZRW@v߰jy0 fy q DJH?sk4/{UR9)Z 6aXJٽY%SdֵF>c,5ӵ~q[[i*/! ֿ++NOz9?ݔ/s=}ю9F~&l|xAn E]c QU$Uo_\?i4O[!,2aH'ggNBBq@vYkaA(f QOBܭWt8/J e~,N (¥PJiAa׭5{ oɱSɗKCZszlr>]ukCa 'Pi;䎹?yQR|Jq%1pG/;v @aa/p{Nۚxk1>WpO/tИ27O)6ᶵ)zMhc1vzxn D{b`S]`,I>?\+Sd};ZiZAeb^Rk:gDh!)8a-K]0gNqVs-T/rW2σft`tXV*TJN Ÿ Cl7A;z &90ufChÙ!S+T0=*p|˕bgAKmdC:kc4Qǐ>r;-/M>"xMn +ǀy*!0<, M_t|LD6oUPW2G͕YrEUH!;\܁G'*bjIѠfQKXZ*5X)DcUmS|)Ơ-ho \hHxC̗-NSbzB/K;SP]jq @-H }clO}j_yJ /]W~]q]yn 7x)q֮1~ğtʹ9>LwPP|oxm0sV|Aal+J )o8Kf-%1VFxLcȐRT9gAIg y3LN^ x puo tox8%ֲ ,0,h%ߩ&ܷ9FطDjI}"`gӋ;M´Գtp86>Y?z_o!hx;n E{Vm0QMey`+2XG R66+"0\(Bq;˭`q**j TXiBUш5"qg_K=3:˨`t0! \˙RXgF/;O؏Z[NP2#}E6]@xa{=;\ާrcn,5);6R3>2Z_ΒorxAn "{2`*oDVdlǑҗSȀSy"z4X$! TF{]1L1cF B1YѸ2iJ8 :R|lG $΀ PMqh͛4.D0 \{?87^$|5KByjỼ8w/͕nmX=aJ AC/ lf7刑0J9m=zM?:i RtTY\F p ٥ ǡguYxؾRgjp_r_8S;%jcze1K{v5=nhQ/yrZxOKn s Lx$<Ȩ IGL_tQ/lK,ffi0Z8L6D"N+H)!'eޫTC)(dc@ahZg],@ۯܭb7Au+ӥu`w ʌF m[ki/gS"ha 32v*ڕޭ&^JYn}uz,Ϟγ󑷾yt_oFtxKn D(9A۴=(1XL''"%[Wfp:NhrC̫RAsE6hz kdChpBT!*#٩5΂^*l 5_ܜ4 A<8:JDkLR+x3b)zYegSO%',w7~d43^z!ĖОyH '_Z_˖R1qq+u{}䏛Eq P9vxIn!Dъ"(Vt str,RWR͎HS^dBWY8 Y%I&9 :m<'c  }ޥ:пooxMn QCU(U 0z2=A{^+1!U-0цqHjc/l #,ҋ\ZrP6m@ zxj=8ˀ`Tú2(߁R*'ܰ 8HPa?|ZEHүeɅzbbcioC:yuOSWc:Kz)5ojy~>R_LstxKn E笂yD1$H] t;9gtufG*ZhJ8kCg8Hv߱N2*igBΆT¦,m&:)}\?uZa%閅@&40,d)k$SFkm2"Αضm|1NLt[뙸^ѵW|B:lMwz2iRcLܹKX6/~qxMn #<~ DUñ8~ݞbfz%w#,0]H}܁4wsJ"W3*EɉDHn I(_܍@.4 B>ؙ!uh\+$r ?Bٶw6#E%kn;-|kve-k+kKk8d-u㒏iq)u{='!ngxIn D}1SUmEm,9 Mji.; @-JÜJ2-&-=%tJ畳'"`JF,2RεuZ>2́L, BR2I>(5%+${3)6lԧD BH&_;҃^>8^w?~c~/V! jShxm0DsV|A<%"r]O^2gθ0m:eT1Rt W&"]%PHRB/^Vp&1sS&$mV 9ӊ;ˬvžۜG?kxv )neAmȖcImKm]cq Zy^ō WFkTx1n D{NmUm*v )2͌^1i*;?E0Y4m8KnA+َR.F3JQKg2IhCGaExK3"$xg,W]^iZIIH~mkk?m|{&83C˩6L?qXkJkrD_lMu'rcqm]}nW8R: gc>hpsنVs9ľ>xMn }/zNJ-J=@|oW"N.@`0/F=Iie۱R9 (QKr>8w&{5ã??0,T>/ܭ19\z9ihwRގ`3,nNgd{ײ6/16/}h2,Ͼ qu.xb.G &歮ף<chonxN0w?*UubdĊԢq"-OxrkGLXlz%qT#[Ri\ǁսF0D Iy냊$=[,?aT>/m@N ;1vF#itp < ˝xɑ_LL|܍_0^=clʭ>l$NǩqܶFuĴYz+g^JA pJxNKn s LUw|i{.mY<v-(BwZ[-Xk\E@@4Kg  U1ֱc[clL7QV)'MBɴZ"PJ0)\-ri 5n)GN{-'< uO;׿ZiL3Oɗ޷<X>vǝ{p5{ xQAn WI  [O}!tP_fdg4rDn}_/'! Ix-ƻ 0P%ByZW44ߝݦAb,@1 ^vkyѮP0ա\b"a48RCRYyǬ-{c}M-bV,-}w -_}.s=4)zkN_i)x;N0ާp?W- w@~f%v8EL3_5SAlV*N<)m1+ds=AO3w 9 0Ai5 C:}uN~qE 3$9Jm%g gm'xe%Fւ(_nV !Kl }ioizTwn}ciܶ:~6JjxN0 E /ACI<:B|DL*I'X`-gqe5#f^RTIJt [ql&cu*;Zr3:pcIЁ؈UqF A ^Q1(%D[.Ko"kF W/b}y'0C5s.Bbx8=&a)x|$̱v+u_S)K7:ɜ<i/l[ }{|eKb|zxPKn s RǀVU%R?7:6 r袳y3zOo4S1tdD%aBXA^"_ DLV\ \sf(a#s9_t_r`#‡1 1jDVSǎQ Fc;TTXWW e7cSMTZvQ9BH:k6/=n4蚲~xJl==6Qz=J#п|#0l}xKn DȦEѬr6+G?$'"yO(U+DJL>,s)H-N{>DJ%vbYzNmIQK;9W{/NIP!H$ ~3,K2팒\6Ig zX&Z' CixP;n 91Um{<6=9AL3GJ38JƆ5`FAX`=NHt@D I2<ے +_zX%}BZB]Jh'0f4^9~ 򶭭Ic_̹y[~Eޖ>cޭӝ_|u q~ޱo--9Mry=`_~lD xKn0 >-aYvPd Pm+ Itn%s. $K"I|bNjVӬĥ($3Z6;& ި:q6U1ͤ4"w(f1b1#N/Zp&ah'Lz0γSzV?gJjвxRК׿B7bX(C}oLb,>3\W/K_2m3P1XAfOl͛ g>n[|z,pxS9Y|i-=Aͧקy xi%n#\^jxMn #ۀsUCOQml/ hٌz"Rߓ=\QSWKد7ьyL [g6wZoJ;;T“s4"WQAc~x1o w~S $Nݺ:0$$D~:wϲM :JVI{ُco[G'F k;vp#P++9X!҈N uQVJ9h 5S.t5>VEw뇶+7PZb6LCcB~^0EHfݤmBޗ8WfLЄ”ʪq9nPR4БX#c1fV EO9O)]6S}#܄ֆұ.|N_~֖xMn #ǀ͏ԓ<3F\NOEg3Y|i 08kԌdsQkR ac;J e9bIB4@Fi+d,$\ 8_{)ZwsG;;s-WNQR|J*kUp᧘[\ F#knVpxԘZmwԖ7pO0yl'J9s2Bl]N]78Rz3]Ck.N"={ߨ#}=vb?xKn0C:#Œ(=FB`B R;j*#!c$"5gdè +i:w%3Fx Q \9OdWP~p $A/p-Ͻuú#t7ؼtѾX?6 ']{x˫t 80uz}]r}ZjxKj0:A[JtL,$9׽A[ 3{X*aM)I+.eJQh8Q=׉/3YX^Bt19-m)Y-P <|vag!@@`'9(v}9皾6B:xU>2Fiץޗ_K=̍]ُFy~3`x;n0wBc@ޏ(r^ %vIJa+zEСo!!RFW!f 1{HIk4`֊Ľ4am4p#)0 Z$G.1w˾ɂq-8683RSupHZ湴F>p^HK-|eznX+!d*J>ў}qp\雇ӲCvV@|HoxN O?S3PtF ge0EDh2hnGhzWqq[`>}}?q%{}xMn }1CTU9E`Ǫ-9hOEg~4ҧ łO* .L0ڔruUrr΅P[M8@y3E R=ŮGtcC&ahRԳu#LTߠ[}Z/*u;2a clݚ,xo>R4GY\UҟgQvʕhP)- Jf;xPKn s #O0Dy$U!H_tQ/lolY5%SpHpQ1Y@))H[2jʝ;[Ѹz ֕ Y|M4Wh23ZEVbʉw8 \+ 758B'KZYclۻh_YCoRwrurWPJY?/7$i-xMn }JGTEDX¸ ,̌HA^KYƄ^ r:;A<*Pel@OAX ڐxi<P R$& l=JaxC/b|nc=ǁ4;m][hvu`%,`wckqoGya;k[hADC8dxKn0C:OPzg?? -hG=A9I;G6@Mܳrj'H%60d$v%BjDX{ ޛp&vКa6ԄS#8N~VxVJS5k1}ܬ=:.{mr,;zrB`"xMn }DxGUz0A8KoP[ה G-4RAo , (]Dk**;IN32B,R ZY~*}ej&jB`  N5+E @ Fȼk=2ݎ%gN_߄%w֞xO/;/ş:_zڹƗף|^Q9%_Jg xKn }UU `,9 *uV a<ozyrUR mB0<AX9 Aq F ქ QpαՆ?~0Q~zJFjqUfQcFR+ENP=_B p@K?&Ο[N%!RK%w` GKH YڡfZvb(pН)5gvlZ.lh6)7e*X( }rʚZm1:3Zbk30yG.41~ۖJ|]$vzPn=|..pz};\fcsp!ZD8u "N>w 7WoLKBȴ"~b=|q*rra䎘pjW)veO~xOKN0o:ͧtl ɛ4bVMJt8 %[]W"V Qj9깲zC)Pgd +ezmeoΡya0r`q^!z,ϿtRpizw7nູ^WVKwTVHO4Z[}^nh kS)>&?Ž01> #hY;жm^,aAK0M}s7ڂn}Bwj3*w i5ȃ#hViypU3Ϸ%==K]ڔ܌,wJ1x\r*[*\עҒ'U6.<cjxKj0>GR10 6H|iX]J.$X" z6rKK@טI1 o WfooRl_3d)*DxZj){8jo%[,]y"䭳Ut}GrQOsZlϳU^  JL'Q[S/KYBq^?x>O #S3uF=ebxy4,+U*|BX3Uq˶M>5$.9:}+ִ[<%D||לxMn #lԓ<6p{Ҟff13Z!)'3 "avzgqe,t41F ΓvdQO120<3X#V=F%aFa 2qzJFY5v.ӾZycf#g;nF;|qgmiaPϜSiWjC<|Z7{^SY2_>1Tvy|<^_7vxKn!D3`Eϐi(aYjѪ e213DR:Z"E07:|}`Mmt``f![9}Ep&1qS&9/E 9SB =oAn: ^75ߡ?k},BevQ:յZ[ѴgpP6:ڹ޹N࿄DKqhx;n0C{b"=,Y`I''HkH9CYS2r`TPىaDt ݀Cd2Ñ*1`H&9#RH X8۴P(/Rtt^`P \Dݍcj)^AZjkmY+'sڶj͵guct+oNw/(?zþW^c8 = mx;n E{VA?b|GQ4]"X <돓mΩh,Qx A:FVRR}}P5TK1Da .*-H1}w#85sɁ-KRƺ(_))[zs$m[D>J/ڏZKWBH^ϝFO^zܦkSޏ>N>Ҷics,ElmxAn b+Wh ̀`qҗS̀Jq#(eHViސ%&Ί(#O8(3j%xV/^vPrpJNJvKHƺY[37Prf3M^lOx/?+ #]ź s.c[K`N|Bu3w+=S{9ҏ)>cq揗2yxn!D{:p VYr?Hpsp~H EilS+6: ++tpj%HȁN,W(^j1!ls۲KaCkW d8[9erYF+. W=Fnwӏ&hKJoy{RH{*BbSS.teG:njROc xm9̏+e3m wx;n0wB{l{zF(,U{B.$b @̐E iI)WUV+';X;U1Bha:Y:gnf= Rrp 8ls+y~~ξ|Gms[Yy+G ceƒtxj0zےe8S}YޕMbXrǯ' 70”F*N$I ìE; $LFZ:pBβw/nZ7S;qQՋw|蹕Jz̧m[K>5ΐ[ϳog(e''v7tQm>!h*k1E(VIIt>!U;WeBڐ7,FN2:eE,!9 軧oxXA8c!l]nV N9(zK$}Y#5c+nH񤱖Jk!$o¶to?|)?Ֆ_~Gsm\k_2nIxMn #ۀ*1 9ݞF+<G!`VJYKR2R!f+<GfJ{\a n[)t ^eJ-\u~Zga^a!w5`\;`N^(#cl{W8yiq-Ӗ֩LXJ\#}݅\_nopߝxIj1D:mdknK6IH@nvNEjSE_+{=u ׭Wu=}nmixKn DfEsCX<珓dڼ'TiX,zg} )H7'o )(Zz oXnqZ$T I<(AphE$h{ Rb-sRLh)ز Rf^ w*қBBm 5{}m%^w+Ҹ5 D`U˦\T[qG繶vχ4 s&mxNKj0ocKr(%)"|z#͐Pu9P!yyzFiP 4)E& `A˓: xLwf Ӓ:GY̲0S)\d?zmFN"O)K3ųC&vPʜ ZIbtzzz.*@zdʡ2Y=:ƬFLV Ϭt}`0F%@5W3,Nrvr ł+W90:i4#2Ttl ) &ljÉ"6nV?49}a )s q)ѵW~{<} vܶtoշG.!IJ{[[ކ34p !K]]phz*e}KscxKʷ#~^$&?1xPAn WIJl }=ԗy#k&ep\|!Xcm7D[9)n K)T\ $yFJ-Mk*ɕ1<=f'f)4ZwV3 Wݺz5;JWM o\S+?R: 'K>Òh` &,EoxAn D}@UQU p_'袳F4DW&fAn6 RD2s xMĔNPV!j⻧_{ BZD@&fYQ>( Kd#|Ƙ"B4B`Woowί4Or󵶝v'h3%qg͖xIn D} 3|Vu{ `ǝdڼJ^SQe4(!M(Dr`P8:,}MkJ*I$T@0Ep#Gl/Y%>c;ט`8 rڢ|NӋ8E¶,s[)RO?w4BY^䥵Ǖ eV}oluMjHr*fǟxPj0 +|_C/!''}*3aP+Ԃ`18f`" A"B%rQ#r4h+TB$d&۲:W} Qj xCJQjc=S81IIOЋ}^ ѧ5~o}^oBȼ~aTrsv>^;:dl?L7ҿ$%?r xOn {lGUk~|IeFVH!RZiz娝wz-' ĕZDf(Z*ת "rN<-+/\g(_VF@âr^i{-<N1i߷|#{.^BK`X+<-h0v_ߟ)3!$lm8lO.9D<^| scHe[9$%7y xKn }!t<~cWKz.:O#Dyt!r,55\ ޘfG- .siB?m=L6PA`+˄5 Eʸ[ F/pOt k--cl ) _J_LMyRipKu5q#{xO;n 9W(Zi(MN b8Qn43h>5{2Q9Fg)GFZ-|jTzȁ (vFrt4Fir'HłK7ڙVnYT%9{F1jJ6}OowpP%m'!n1}֮|nuWh|)qO9!ijT xe)Cm7&>uixKR `ʲ9) x~^UwϞ6I2Cf!XVYfL=ՉEFDF)&*بtlFp&Ǚ'LqFgN-+L]A6g6Xh0VlĿ;˲ 6dw|6NeK^z 1hi}p ^|nxAn Ebv]DCң`f6\$@3_3w:H@NrJ:[47AEa3֡ R68Ir#j'q4A2L/)S;u#jc` AÁa!nK?iBBu&{~5LB}+})sGشԮn34=2qZ1m+y_.BKg/I7z#xMk0 :Kbq1 v]~Q<ϡ vLIHDV#%ՌrG%q!F.huh1b1j0ΚE #f8:&#lI[p𩺧ylXUa]W'EY3p&2O x`=5Gg(n]+?_ZW%%ՙHL|?;B;Z )m9~=e}B #z~բt&`S[+z.Rt]4>P[^c#P5|]{Bx8Jy=3ޞAPuxKr Db.Y3H pRQ X[s,қ6ս2C9%ig78/2 yRQ. M]孃MxcrIDmaD& /1R!\q[$4Z8ƣRj1vZ ,)Dp#"sgM|B @ <owpuqB}o/p2Υ淏y{k/oorSxn <#6`'Y`q?ܾ~ieFa4S334A))"NDm&dhV[ulvÑ9pTɣ'?4;Ag}@kw;(fc:w8)fK)j(f`>ki{*G 8_—R{!]ܺgBK)-F,,IQU|nw=_&og8nYxEƱ 0@%R$\0  Ha%BQ؀Il@UwǸJbK̥Ÿ"ϼcwU|2@1,U jBVzBLσMm" ps(xKn }D<z?[%=A|3HUdR$)y !J#d@;Dаv 6k0JD32er5椃Ԏ?F o[)@:c(EЬRSsNC$mF>Һ|2^'NΎʖ|x8:p|qa>om彝yZп"?tkbxN0D{U6~ m\]'O (L5s#{$$()Y:&k8)M`01]4'[+҇_Lr6q6ԐRPX3iki=={=y L_^]J%۶>3+6WBH.}hu(DwZqo\8neeic׭Fѿ8ouxKN!7cFݻ阆0m= +|ߪR猍4JOB-" h^:OڃCN̓6GҲdy6BtQ Y-JM}Z%/Vk$0bSdY2 8B|(rj]`1?VOI^ּ3'TϾ2yexPj0+D$kB)9B@-F#*{\c2e%D8K1ʅ Qh*S^hF)!W9a6j|Z jd#LK\ d:/O΀/?pQ͆RvNI7Z"P`S2*>6-G5q{2ՖeOy‡<@.هr&=}NnF3M8!T;]g0Ӕi)ӓSޠ7 Z|PA)˅ Mx5Ʊ 0@ et4~;~7HlK@V LDY4\uT9reP‘j)fb^X"F`)cb U$YLq.d}=onc.)xKn k4=^U!/ 7%zj']<fu&聜Xc[ubS@g Zza"xQiؐ>~iaf`ز2((i9 ?}=y?jVz}6BY,l w:>#Mt\9y9u{Ǔ+0|'ix9N0{}!451I,ہ8^*)&! 2oU0(K^rBI"F%Fg)9Xspc>k #_ܭL8c,8#.2MJ:/s& /J.swH2n}OXs!TIF|'/c .YheDG3* W̝:ճ ҀBgx%3 \Wf<}3MQs4[RS 'ȼo;OX1g|x v־2[㕞|i~TC~kzi:KixŝxKn #E(mxPbOr89AyՓW"b ,DkVY7[㕝;v;`ԋ3jIaҞSGuq `xG.^~qRpb :?Y-+>9. .[ʶ[ /*mIiĚp 86:SdR+clM}he:Z > [Wsé֞a8u*ZS9{ ~0}~CT}(tܜxn {E*M҃a}028y t7,ɇrM8Dn}͗wϗ"F8/ivl"nqKwpb2.n>L%!dZR\ zq*S99S0}q5=&*mU {=2A||<x;n0D{b֐F8IVRl}"Rr(9AL3QNSRdI]W2ftCrdMNb Jh4Y1Tӂl0D*/NbmľA-=&dʙND7Ay8ikYo)q;ǯ=?.'xa<bkSs3+8YWN?sX;xkyrC.~k2u:?&^7Y :n>xSˎ0+ā$v2y 4iwďvv_Lp@"]].{j.^bI0ׅ)hd+e`B.KAIYUUNv} M7ax2JI7t1Q)EU7yUd-PWe1 _čR{5?~jG{cWg{cuأF+{!5Id oAXe܃FĜ/on "{6 o+ d'8K%m90!bf\3nژ 'cN z\ŕ3 Bz^3/;9~`zU' ydbfΟ|a;' {Wm Z j3".*.+XZUN <YqSko]ώAؽX|ܡMӰJcy:ȊcѥCJ/O! !ETxAn " {VQck%(Ϗ䐾TZݭ0Km=6Zvh#]GC0 &#N0Fьhf@vU/x`Q+0iNӀA\a߶56ƙ }H~qI9v}"MϬ./j}.e~Oi/[ʙ8/7rnox]n 9EU,v28~IOЇh4 Ji5(#K@jFKv<(W HƱ  P4(k`xvR= 1:P:@w㘴u ; Khⶮs?4I R⯙9oaゥ0Ʀv啻9xK)[߷t2^cz~g寧cq毇P:JbmxAn Ee0QU=6IܾvNEg1kB zTfQ0VE^[' []T9Nc?y AS( Ap)Ę h³? /q Ay! 0ED)ym'A[8/0ұmk?mf>YQ>e~s]輶.&ivY6M4)-o/xm0DflwA&RO (#2N33{)48YAˤ,ؤ#K Sт=&ZJiY&b^eJQ:)~q3!H⌸4:/99vm]9=)^1^ ˳\Bud|5>yqkmrZ1fiAW:>\ye_~(kSxN0D{Qڊ_ =HWjf@2:Z51ZZ ̙,=M e']} Q3NT0"%,XEyd^$g]%j)&|XL1zʔf+JOrunyŴ/Ǿ6 UUnjs-3k q(B)˔N,gS1sm'/}}1ޗT۶v++U Nz{dxMR V&4!q1rBR.|mO;Bc &7ȒrMDE# J#JtαFdƎf4A-sex*j4PNj$u1diPF!$O kn-Ox\m =T\_ vA.Жw ~/B[W?J+|u.L~>Gmaykc(7ԓ uWxKn D#4FQ49 6cM#sx dڼ*Gw"pj&s;#1Hc2p X ;`Q- bt2qy-nV Θ#W%i뼴Z; FOy{>֒ae$a~L BI~m;ЎZC>2ڇU5]䥵uN7m/?rNu u:(*/R}v֔xKn0 D:#ɲ~AQ >bĖ II_'lCJD나|dS:1+ JcZU,d& |PF7%}Cc@U5o\h,g~`gL)EZ8Jh'vm]/\\2¶D[]! 6p%B}qw`o`w23!$}h2O.;o5<:{#G_t4y>yxm0Db$F8O&,IHC\a (fO͑h^Wkd2K8j4*mMq}pB(o2Jr9{ÊcgFȨ`t0!F/9ZrΊj%G\RkhaKrr7%TkPGĴ^O,ڱ%Ծ1JYRc?AC44.,<-۽OuzVDJ5 ךxN;n0u 'E.CeCjOСH^S9rt  aFQT:M˕J\F wvR&쏽Ҝ_ÌZ33T, Za)VKzm[{OF>\닆ҟ,VмR#,kg5Kk4 w]uR1hӲm,w.Siΐ4xRMo0W(dB-B Z>'ĎIn)R{flDN´umӗ:׊UwiTYF z ۲۶ﱩzU[bޡh-ZTWηyM]o,6iKMj۴ŶʳEfuVpʊgL/ϗN$wFřn<1kz޻9v $EpF8MP֫P, @E׉nDD#Yx/#$(2Ȱ)pvR)F: V6ξne0 IӃه6,2 -r;CBR\8{x)/% p޸5bk~2~1a]’OϤQ 7nށg!$(,8D B ϳ[/=bxKn Hxj^iOE-Y6+" 8h hD-m&B* Vr@iNMan#yf(5/{9BPLLR0fYG|R\%m[{Y#{;4Vh ZЊk-m 䵳*l[k˝\`ka:׍zχ_>oѵpx9n0D{As4'H p kDQrbU7"NdfB A1tn`hIZΡUMi%'do L EX6ި;h^DYU 0U0pJ߹<(e5VizNcc8N&Ly$bų}ܤ<:la>NLa&ٷc~ݕE_oqi#xNIn! Y( r Y$@)Kz%⦠74R1<,s6Xi<wE#fѕ3`5hM߶ C~:h:x/$*!d7h;W` &XOp۲̽O2/8 1ƦZŜ/SkG:O+:}g9iMN[]d~U6}omx=n {NA<񷊢=EzVdl)2hz%&D Jsŭ.{Jp%4yvJ:mч< p&Qv޲ϳoZΉ @"=!oz Z筊Cl>cg}PmY8Ljm}/w>.i+i:r+麚z^_{¾z1exn <FUSRK=t;HMTx)HE!wZUDrE4j"XKP\% { v5%pfW,uQ>(Y*ćȲo[Fn\[۱8Q^7s׳/5w־ BZ_iZy+Oky䏣ML> Ҙe3)uxP;n!9`E9V!9AL3b(I3vJ*(bX%ᢄ %rڭ_M ]siӇ УA:!oZ[u{=FvTn&B}i{_+PO1ZRj&0h&WW7TZOw;(, 7X`$gb}-dǷm.f?yÇF#;8!A+}Q5v5w壃Fޣ7adD*+jZp>:1w#\_*;`Zzzoz7C7_WDZoy|Owܾ&;:8:<}]~.4(-74֧#=Ž Q~<Ǡnaj! yjfE6p0w933;fxKj0EZśz !}X2 :=pJJ-d8D~B>\!ie$YRH"MqIڟe ;SO'`RR+ȅЈZ3,u]zNN]_jUN!c,/}ؿʰ{mO⮵s9NmsmQ>8+/77FpxJ0yM." "^=ImtވWh bjZ6K>N<6QEcˀ(` )Zb/MWjng'ԂY哏>"ܗqWUñ–aՏ(yBC#gE'$ڜM}\_x6o\>Yhh)6ee$ȶ ۺX:DmAlt訖-3!dJWY})j/R6]JqsG /!xN[n axV^`*$KoP<=5FRX" `Yj'CN_ctMݠ$gp6y-cUQ]c՚9ld)h JFgDzDE?}-[m"䭳Qض[k;M\y6^ Aӿl!?\)cxON0 +|f6B{ȁ/HRi ?@{<a^;1l2LHBS 5I6c`yZIf44`G5 ۼ=zdH -4gQё8*f$\\h }j;'x=Wn_+~b[QXzf#atDnq;4T` c)6?zBȲծcWhRz%/xi)ai5FI%YuxKj0D:llB!7Hbb>ҋ~4TQx%3 Hm`i#hŧP^ڏ(5*k9 MHu??u)& #H ]Njb0*)mo|!mkwBO=#Xלj+8\ی;|h_7]cN=Bh;nƍXah_sYzXA;r \xbxTKo0 W=v;k ;+v; ;h%C~WbOr<`AҤ8.LP,2H$K"(hH9(4 !2D0e44 i2&Bh |4 h$, apaYi:&4 ?BL$ gY 49;M3jPYT RPIU#тF3]t S(Nޡ5ic7E'z*ρH@:a:RG薃N;tCҗ|] AְnJ/A 90(&*UAZmlK9*Ȭi>W|ՉKJ^l@cGͯC/ _yt]OntQQXw'_ǞV;hV-O^"˾'sZ U-B5#B+kit졼z%eċiW-^?WݠTYw[.WnoG#.8A+ pXm|6:]?c9{7 R)kz>AГ]ƚn|hCa< <ȌI55^g~y⯔:IًkZ~c-(X n$0YoOˇyPI7wj(|BjIR^^AgzOG+?KH'wy9G  teFxKn D#ۀo4FIh' HmT*UD`RO 8EW&K)ѵLNtTNB'1jtΡI : W]S%`AxH۬\un4J7hg57}g)Tp_VW+Axa)@q)e]<-ޡ> >凇Js,Ò>|O1Ig/G7ap xM1 0PJA %?ip1uK  J̔y*")H9wO{xoM.:&Nڨu͍ۊNr&% :_xNKn s ¨  L#B"7T/l/l˵0@>Q$w>)v~`zDFZZev@G0#ózNZIW29*)\VԁoFPF⾮Kku(s;k ˂16/MkKzZ_a>ox뇹6:<:{YVF=Y^ j%xP=O0 +켌8PqFyc@aB[-@E*(YLrT ro';ens}|/Dd^eIđ>ۊIx}Y)+Y7KA$s;)5)CHJjfbq^ DB+VXrbq1Ahիǀ.ik"G{j#FLӼiD_xR07.۩PLO5(7bB 0D FSkŴo~4JRþC?G3X=WuB2XRB>`Scyן%4=*P'k5̚͠phЂW歀vz}4& n5LkzV),q:]}W@]|L?85斫1]C=l=C|3ԇ[k{GD@qnmwX3:;(,";V+!׮YEJRBnߩ+yGoPc/lexKn ?QUMᇉ:yHߴ'|lY Z!&-γFP|TV5EI Aq)-;@!bΠd]JE$7Z#}ÁeAĄ$ +%r;:N_zȼ23OH>M!.-N/z9T8x^ڹ}>Aӿ\"8gx=n {NAl*=0" p43̧5FlHh!I%֡2\ƳӀVb }@'gEMݷRi9k/A, U(RPhjw::(C _c=|KP[lq&BH;k_'Ó=9iʧ'|ޭNjj=?Y$ >H38H8{R ZmdըјiRHf/_~#h \'$8B3OFx-o y߷Z\ )'E&O{e]L魔> %>˓%]1(Ò} aocxKn0D>EGFQ4RN҆Ơ &C dڼZffl8k;4yD=)k6808(s@abe1z0x?u"]teG*/?xXJ;cGQI y4µZzppSWĸoZ+Ma^?@ݡ. JE΍"U$o,Z5{߽,q[[أ pN x%Ʊ 0@%H y䂎yqC ХoPH$ֈM+%H\uK8ll2!15s4xٶU8ue,%QuX39h~ޛqoCK|mʑ?J},xIn D} L)mEC Hm[Jk ιuNQ+u%'X:ECNxiN0(RJpQiؐ>~4\fcbV'K)(( ohR@o ǾoY#Xc4Fib t{l!$o¶po_6Q\FxQ>Z_ΑoylxMn   D@M tQo>/,ۣ!R4$96*gN@襗Q#4,FMFfŜJV%jt$Y]}jvy)"F 6GaY5X%qm=KdF>r[jk :*=zv;4M!d¶to?_nZKj[=_<Gkm;,i/ nxKn D#(9Dmbcgdڼ(T +Gq1J$~F?Lv<4V8RHr#Ɠ4 ʹlv@ X^~q7պswsMST:i ^q;*gX5F=u[ Œ%Qǜ ,Ps*yK[>6y_m&ζBR`@12Rn](]7xR|]SvS9k}}ڎoYbbtx9n0D{!"# [pG@R)2ͼb03 R  hQ6%HfpFm=@^ uH>)%.=qg{Bણ/v33afz(_ihe^X y=a&ۺG:#}{B sx/>i\v7gmxL8MƁHoxPIn0 Yȵ@ %CWN?Cy dI!GGaYQQ9gT9j3i鄡=γ81qJIaG{#I[G!z/`:k:pFT31j*mFCf]?z>(ڀAl\W_ *3-D@ ؇3冿%<=Z"1!bC@t^{y+ZBK O9]WYƴ[ž n޶-1]I{_dJ~U;xn D{b'`0S]"R5Fg8_)fV5#Bt:mz鸝 (g#J1LP0Qije?dAs%e?^KٌN 6zC3nPzj ɥTClڶP+6\j !"ՔBM\0SRúšjm!ćڔwRkםѴ)|yUU͞| w'(xy95Ms0ǘaτ\cJ{yi_~xPn0+lUU*/x+#$ש=t/3njvx#)F5a@i^:h':F 'h64HgEIuAwI;OinjV+;k+IɪTL۹5Z mU{2RA}L&B9B=  '-.TxfD9m$p1~ZȼEsY).#Pqpw! 9O.8.xLiKǴ5orSf xPn0+B`'** `=t%kFD@Ji:DHyrR[[ݘQi)8S,~z۾y-G#bFRiaFxákllVC%ћ4X*36KtRė!N஘3- ʙ -"#BSo[8.ŪE̞idټ9߀7ڀwcJ`s(/"$8x]|9 !PU{`|5qi\^뉧˼AiZm/2֔xIn0C:eAPGI]ALj\^"ˤ B-|mPalDkITL1 e B9^{5O#՚9@"0@R2F W %u]F>SʉKC4B2XؒםMu}m壝geK,hxMn bc@TU*u`I{9A{}{ D0Qh-UR+f&)6HoL@i2̡ђqͥgk0LqVh\`vx{UrFN3j;:2)KER{J p5s|xb-L9A;~X|2lG&8^|(y1n%3!dE]O.}9֛mڷH+le_xKN0D>EQ/G#4@,q,G3s},M=Jժh-2蠧@^ʞO4rB1'LkKJywpZVY :owGn(L7ؠؘu3MAA h1-KѲ)1'?(ipӧi[r>G+mʥeTr_.pS)Nj-ozJ{tqKW~ܸT/;#^{&xQ[K0~ϯhM/Cd"{=']\$S2<|9[D]Z]WfmTCsEՉL`Q()LT3ش50V !$8aB"게FEL FZPKng2b+E i8*INbo:MFr5sk-^LrKع(ݙan=Yicxq&6YvnP\:gڳ}F{jÌI>;BH|te¹2MJz >8=N)LKz{E xKN0>#{l@|8 nOW*V }XBVMJ>Dٖ*-;1Ęp@ T PPA4枥ʷʟι@G*381 Ņ&8_~5u~K'z)S[k73ƩsS}_<ԭuu9.hiv9)qg+xNJ0)rn}" ՛-ndsV'mʑv^#΋T50ȎP(59$k'=E'vd@`"½]swᏝ.AvAAj 2G  J0`S5{eҜ^r[Q/sj%ߪÖzغ~aϼC׳ݝN^^"Gk_:roexmJ@(+]"B&3m&V-ib&sM&%IB > Ӏt]{w= 7QLB6P@b8c$e""3"?"`<h;>Dv=ߌT*9U^2g0B#$&6-e)KSZC%LH+"eU繝,3S_YkoTznu?,&'Pkغ4 H<[CU.L)zf\H5<^sR­.^#Bܕ:r~i<Xx5NJ@D z_t!xMk0 _I1 VCNL' WJ azC]7xR1VVU'^mBrߙ:)-[j:J(Q6]䠄8{Č2zxwyz1Ŧр`%I0$YxЁ))v RX*DA;;B:2_)k)1yȼX{S7ףE/_c9ڦg/?n|5op-󜷣g><ڱ}ޥVJ g_Yvx(xn0Cw}WrpPCzYK$_7B ؊Hs1ғ5Όb;Μ#N@xThDc%& R:euDomU.QdJnh:E*8Q8.bYثa*yCmkטfhnpKLb%1-xGBHEw1$}%>6z]krYVuc r'GxMn09E#{QU#!y0h A!T=~TZdmPd"H`"ZEac_(UnA 1!"8 jf>%1g.f'`m7"LhntFw~&򾯵ڃZ-_ל~3ƖvWx-o Ѩ_sY~Y,:+)\vQ˕^T`e#hx]n 9aQUzl֎UG@zTrX6*X֦Ϯ|=/>nZv]t=zٟyVeӭ<;PG&c5xKN0D>Lm?#Fb͊qAp{ ET3L%jR΢6h8es\kANH:-4 BeʙTh@D?֝7taB@! 6 ӔX' |H bq]{{-<y*_Z[i=Gڕ16>:tg^Z{\u_zmyݗG}/'o}jxKn DͯaE9`#Gۇ RjQ6UVK!y'"ԩXbQ>GfDMY9ώXx u$c&@ZD&YsxWA AyD@H lMV'G@HAu]Z+_b_{]16/MM,{y0oqrޮC8ܻk~ _N`{Ux-Ʊ @)v㧴"ˋs1c7ZyU5ve5NX Mߺv3tM,l9)E XOiE?cD#xKj0D:n=0@n%K32G EwU-խHJ&Fo[œmɎN>ո5* >Y&| E4J%ҧnÄ3B`΃f)ںQZ-"^ %絵y+5G+}C ^K8s[Bcc|^~弫a٦Ge됸ito7/7k$xKn0C:3%YAQE7=#dJ޾ n VREM9M6iƱ5㤽с 5y9ΨI;G wîz f:Ch;٢bRfrW G%+뺴$jX3x o%7.m!q"-۟[<Ss{ [۶ԵoWBk srxUM6W̩X-[ XEQ`I{(zđ.E $[w(y)͑<ǡCzE%Kl7 9iPnW ׼(dph4%_ 5R"/yݔeQS&|#yCh-}m<[EZd+-*[/F76߬|] xчնT+H|kMʠ;ߤ{ugAP!0.=-2" 4$LP53zr#`Qh)'𡵞JdL5V/+nj.~#IKk)HXdF#l oήݚ4nmTt;&uɯ;/LkM)i(sʌQ:9'5NnZD-n:%KNOo ۟+.|ǮWa laid~_;X:9h$@sc(CY8Qَ6}.wJ(|'ߏZ% LDpztk3 Y u;5la MuVF諞x= X=7q= HwQIuym逸u7i~|'z3)ħ zIY!\Z쿫=gf.MiH;uz0S>\@_[7poqBxEƻ 0P9R$\0Ϲ`>D("0 # (y;cZM"#) +#A"J 8@[k#ݷn?Ynj=ҝg[ʟOTj/7kxMn =飯=G&B"BzҞza[gSXrGX>("vFsNeF*Dpv&f҆RIb79xx<7N!(oIF> 3 9IYm[{YcGx1Ɩ5?yR/5\uv:d@ˌ^ }@@YhBv$҅"s"$Cdk,cL>K %ݐ;7F*-1}o&hC0~'7xf[9}eyӦ>*+W5j^^y뼆V混zwV[˹~=w/'reDxKn DQ`~c p2'"TR#a 7`F괌Ft3$ R)JiFhwaJ,84"@Ij⮾}{9 afaa Y@f%" XV"ǾoY#GwJJ/TBH:k߅mAo·sq_\Ǔl<u^Fpx=n {Nh-` pH5|M+!(IJbg#8]ԀϚd>DkTJq+[Ω`$l[..Zxffn@Aq0\KF_"-r~ɒϽ?kٴ -C=#m pyzl;K3}9 !ކߠ6Mkc.OtCuZ;>r;ss v'xn0E{ˌ?VQE2`{, dL?l>EGҹS 43=2CD"c LE Z¹JLgor;VN=tzxn1C{}zc0&{A#SpDs)Jds)P!ִuj0!'@ ;l*NX_{,3Vzrd=)稌u7(F νIbBq4^@=Y#O{x#/ {-ofe;[Oh>ܾka_S3y9m+][^N< j-LAFSux=n D{NAb3("J͞ xIllD2E)J0kq*`RX!% )q0j@tlܨ5-\J:(F4 NKX|r{oBA穸Z/S[uth{yrny>yKx=r {NAǯd2ns @ HROm-vw(ì'D>笤NBL&LNf)}KuPQ)-F8ڡ͙x5~Z|otAL0(6,YsjR "q{>?;G-*l27O._0_GڹΗ=hG#_olBnx=O0w ؉]!T uiKHvi>A rs:қ#" u˄4 V(TKfgʤmJֺU*)PZ|D)D:qБ>hV *4b` i@]DKUbO4U+x# !6LӐ3g&y %:B|ڻiFC\NΡw.K@6# xIrksL؅H܆.{iS {!\2ΥT!NegesAR|0/x=ƻ 0P !e ;=-\"e-(x;c-bD@.ʮ֚$ WOи&Ly)dFBrp.}]A~g"z$xαn О?qf1pS!J#a 㜔SOiUiQV޹H'C:J>*"&bҸ2a IaBPR5({-! m=x;r DsNA2OҖ˵0%B7;p'Jy`Ar@!i;hbt}8(SBOIE #k=ʗsYf_/FĄw+RG`rpj/¶sk%3Uo87);]s׭G]}?d*[=kx=r {NA9L,T9|H>E^_7*Id3jBoPF;̳\ 1\ȟY^?u;/=̨Vk ;SEb X' 3J57/tZ?;{ϔrIxc|N6?[Moxn !r'g!9q m+e GFGr::g~8{gMb_V RuSb,X*g+ߠMF%u%Cqj>Cerx=̻ 0P !e  `ߝ2J(doa*W}؇i[pvH$*@uKԄ&_-H%\(.&QfX2tʊy 94~]#xN0E 4g  {48~{fMtA=Z `I .E%18Rl(W6q^2 p>90F5I)an+]-J~;diەҷ3cR &xKn }D!UU p_:o5Z .y0k1 ѩR7 sʑw&jT6 hB(udJzlwrJ\rNںfT(kZ,)۶9M䣤Ư6J]iⱝ!kl|WVҝyyZZ1q~_[G|!G2@hxMn }`~LTUYuMNap؂I_thӓާȝ[ ^e.yì h# 8 YSXH21^t+Ϙ}S d 5arNMsR[`Iaq߶nHB]D '}uk|-}ہΌe}aM"Dw祄^/jI<Kw7r̘xKn }"9b~p׹Ab,FkJT֍QDi R$ Qac ;ִvMJ9yYdN$?J?NN9 Bzk"0A0a9OQ9#ᝂZ[mFM/۲̽/$:UB#54 2w־V6OWz極Ǖ󓆲b^֣sV>okbg˖xKN09E5Bh$Vi)7@ )%ggAgJd¦}$ٱ6(~IC!jy#sMsi1>s:~ cSh.xOKj022BO& vz7(T I !RQ3zQs f 1EAgT࣒iIe'4 v#bH`\ ?FF= 1l 49jj)ީP`&򱇫S![gWe[ӡ|9nZz8NU_!1eΚxN!{-|\hgXg>8d̴(dN0kl3*AT^XP6bÒ FKCpRI. 2#f\y2[wwNrdtTBͨ%3JMRC1&Gw i]Ckz{Je}HގC{? 痳 2q*׷ 8BKh^# cqW8 =h,<,q `r' l(5 E| xOKn s #_0zxdQHRo_eٽ"RͳJQEYkP!9bbchq JPSHg8c>۠URڙ"01I\圌u^[;BLZm[{75x׽6BȲv־ [Ӎq>u)p|)gxp8Ɨn׳OGpѕx]j0u E+Y@/+cF }:3 W>̈ʸi42b)&lҳEKGv`ܸhv {k@h 4ó=ߺݽVs"*"`nRv.{Y~Y.Q岗Mr])5/i7xKN0D>(wМ͜v c[NH`IXSBcp 76&5̝&C`0X8Bt'/} v6w4Z?}r7JM6Rg-9R`Lpk#[H3>}!-]k-B]3[_GBȲit}_^'^'׏SOikf4q@)RrPB349:cIm&msbtr~V Q*ޏm[_Ή ,% R'3^9(e5Xo-3,ss_Cɍcy/R+G cEb7~&i%咏iM.>eGh_oXrxr E{~Gy;NR @uc)r{{OsK %R{G&YF6X9A+΢4Ї!uN1{G|}_~Kin!4ƁjBToW_9D2gؘm&cXOU;%"QW_ TηV26+6tg_Jy\8mSX({sʛ7DE}ux1r E{NA,x<_e DB@S7Uo^D<@zM1Ő"0DFc9Z~tz0A)~ãʗcYfKQ+9<?}FWF+/pm]?4gg/y ;%>S[mi}1?&Iשu˩.qߛ^PJ;c:Hsxn D|'/& G}E]t6sti"rcF+u@D6E>y hodL +VVNi5spOc$G.~u]\_,g ӝ!ƠdQgl|j;B|޶5MR3'XWPϐppTW yiC}a W8TJA9K.9pn+sh+==o e/7.`zx=r {NAz?LƷH db i%׏\Om+vw%2ശ2X0Ii)hɒX:uޞA?ZA$|$DO*]>eɮҷ_kR"x#K)XG$G "Ӷ#}\~u::ou)/2Wa9a8:wa.GqܾUz=GCs}xr E{#k˓ɸg,d4S6Tgno1rFgVQHvV{MNMz06jt2A4IKo-eH^3B:Q_?uۯݍ@V!&zPCJAQ9L6_{d%L+ŶZxM<ϵ0Ɩ܇Uneq<ֶcqiq9v;Ppxj0{=#RB }9 Ɂ}6U S|L1LIHYmP#5zQh]g/EBdL D=1#cȄQ qMrJᰋQv] =U5i*|QV<_/k__sʚYd8O|w!0*.Sik~=mͦ} * /75tqj xPMk0 WXףCeyNz {_XAhp"ղEhv$%M' <6ڻC$CF4MQ M#`Lp[ڹW(uՈTl+]cӷ l^C]/L$~nN39˓y%.p1'=-K y5C&~  qezY #,bX@˚~p>un_v'ˠbԨ,B)imQ=߬eS**y|Sԇ5MpWBo[WiogDFR x-Ʊ 0PJ!.iEŽC\ EJ>P ?Ə7]ھΪV N R$cĐ)qV68TmR HEC)!N%':u0xUkzŭ_{c.X׮nٮCc)exN0D{%{B+( `;v6ؖ z 3Ѵ=eव!Á  ZL2l j`zy foTb blN#B7Z]TJ2|<'8B\ڶ5Ns*}M-?HM_WĚkTBȼ~n.SKt92p?ǽ6{sCݷǏ+"'JuxIn0C:ek w &h=@nOE ߂ kH۠\.)D V'Ąl!ZYVs(G6<:FGnNU#b9֮|n]tghy(e9}ky3ǔ[C7^GrGZA5l5S6e}@8r}`cyxMn }DxGUñ*8~iOEg1mf4q\U1ff#KK(_G)( R5 zmLH!go(1bIn-RںYYK ,~!oy;Kɵ4zk[.[֞it]ui=FKiӚ>z):k m_xMn }#rc56㞿nOEg1fft"z!*tr)#bH"$Bmpk({ $ 1Q^-VʧH嬝<8I rrQlΗ7>Q> /tlkxn0~Gʥ6,ldɡz#HJv]QF:k0^r$Dl|$Nz n:;aBn[v0\ "L4}yE (U]84RRWx ȆmK?m}9q%lϑǒ%[@jn42*y r}cCZ J#S\ O)]MSCH{j&^8\_~d?xOj0+tV J)zY/;&$$__Pvavm%T`Y3GR mm-;_XO_~mtBd|Jtdws(vEв~a'PDHg%c*s%%ig O/?CyԔ$xOo0s/i&q'+zW$8 zIbص-{Šo AoHdioFL`/t$*t )`\:HrbDt0NeE 7YUrFf2;a6!jq]z4-=Aٮj^Ce^xxfz5jk)qyG*)G ]BuX2C/?Հ?{?od qtgKx'F1eZ?Jȁϥ2n b4N:йis[~ֻuUoAǼ=n GaJNt[̗?o1 xJ0)/&m'Ȋo^|i2imRT{7KZˉUcQl{ "着l@.[AՈҙPHZstVP&` ۥ-CE?6J,HCmWlt=r92vMyk6[1m[;>i‘xOAj0 $NRe_ r6t1RBPf*ܨkJ 0р^HfD 8 q)c;dqހt!j4a :H@t ϟ?qJ 5-RNh)f6u1h'%_̣h₟D+c# 00禷%N7~OT{}؜&$DesamS [u~n gy^od8.mr~>_o+exKN! ĘIL'ChZT}/56%>Bڨ(sޅrAhm Ju`pf&čZy!?SP#ǘ_~:ngb28a32III)_u]ƀc}_3TR WPY韕,Ͻ>(=Zn2-vӲv;gN/wjoxAn D}DCTE'X8Ro_:^s#!GD 9cG=YO1=\:SȈ)&Ji7xc"ɳxV{og= J{D5 eA ?*D ̀<EaӶKGc)N_7ؼt^E,ϽIyu.\.79ou 򿨰 [cwxN0{?Ŗ$v!t͉@P dbGs((f>M1A Ӻc N9+tܠRdn Um26pn)NYʒvͧ`Gf6JQWPha0R˵#X+Tۑ.N%SLӫ}{c*'{mBm}אyMS\3^.%!dX}TF21Kƹjyƭi V!焦xMn }Dx1UU #{T,fh4DQ.I!8H^G1Xoq)9oʤbKSI*h!KH:9g~}v7R̜`rX:7i9;C$۶=D>25bO4\KiŒ !Sot87]׽-/K9*Zm㽝y$п#6h`xKn  ?3zg!= * [-%3J: B+80'`ĨQrJ$:.!G4Q@@w6۰j,peb9GeF xvV*7>DB"c4[W|VBȲuv~y;1MKqږ_r=;sZjۧޮz9E~f!xN0E{Ŕ*<G-BKBȉ؎gcӜy\in JAUk&5nڊ3hr~+DEkҴTJ̩1F9e@IE[|k7Lۦ8}+uYKVSrePRBĨ 84ч&d1)zªNlCv%mޮ;CI&5WH7ˬ|] ~~g=%AA % ?o֭9Bh41[/.3úN]Q$N>_ݶFbYbL1l|L)$-xAn D}O zo8Vmln_'袳yhZa B@O1ցMd@{GQT87Z7 ِC& Ā <(AG{mE&?~9hP;!STGe<M"ޔhS"l:2&#raZed_b[W?s7ǻ\tD\_\C=,ˮ"5FYǹ\Qh`5F<6+W-AK<qgoMs(YAg<. BKީ$7 4iKi|'ҸX>sVWJO?Ҿbz=l7]ZLX !d^jW[•6rCs]s>K}p^y;P3?nm&SsnxKn }D< zAzbhz Ŝs(|ehw5%)Y %GyV2, m*N1  QX3$I)Hm%gZnA Co{2>\v▿#Υ{\lu)?#BhɝBrᑗ7J][]^LrwWz&؜px;r!DsN1 Or)r'eXm)@}E"@? Cps$)*JĎPhkud84#w*t>l@wVTQF.GEyI[ʘnp=luiEn+oBہ²&bKsK@S{X۳6:D8*<%: yȾmxAn EbvY$*j`J I_tYz+䝴[!J}ce:ύ@QR`,Fs^H55431ɕ+rBu]9 O+ewT5W˰>3KM(A`n#>_Mܮp9HOHXiƭSH#(l|rd S=T;C}J㹮;:|=-eZj,:yu HxMn }Dߨң fJ=}iNEb޷}z Ʌ``6!*?Ո%;̍R68;E'1vQp0w ~^u3y)J lΏVz1[z=d5"#13-X7)BK[&,zfqdnee69{VVʑ?KI2m^xKn!Di0NJ"G9BN@3%09 "UoTqC قA[ ɂӐ2o&v`si*&R":Ó7Wei[+((>$Jɓ&^y<K.ӿE-g|]ZS/bK{K֞w)] {Y:y>!y~[efxAn E}D*R;5XsT_?)hYa z0(T@vAmɁ5N,^ J5^3l?Kcab̜ Z faغ)0nIzCė}O8[/;?KHkSɍ+ntA-GF<8G[; _z7khxN;n0u 큢 "S!?=9F!ې"}힠C9FN:D5s#T$ŊKc䐜)jY@-{fL[˂#̏°q>hg{iR_m/%7!d;k Ӎziypi׵NӲ{ݗGҿ ?`gxMn }D`(1c5 p޾'袳oyH';;- $ uZPA&6EkfAWc H0 ֣yRd2,)Oٟ_y BZL B2'$Q8zcR}= ELWqNYgf[ѡ֞7·]K]<_9ԝzj_*o1i#xOKn s Sƒyj. D@=Aʟ^cALRfP+n-WCDsܩrQ9ZpQ:ZZaH՟_yX)@1 X( ,-j)>(z{F>]F_d L흵Wf{ӡ֞w·RϷ|Oϳԃz寇3_foNi&xm0CmC*ˆ,gڏ ߅"|Gg>$1sVڜ#Dаv`bf/̙h Z)(6pޠ -/u@*5/([X1;@ӵ3!d-}:Tytм0maxp']ޮL J |sxIn D}fZ/Cl##q Ԧ^mJo$࢓4 dJVcL@FnPTX"(s{kpuxԴ /+89)ΈLR@[Ղa^[o J9.YNr|6Rၯ}ӥ̝cs7/"vjęxKn E#_TU@;1X.T:3^ck)erq2>0#sǵl49\`5FeZ4jQG*CwGP3F2\&NfA9kX%g` g _=-|<+6p9@ڏZ^q'^˳q4BԧS 7~iqtuZtg8Jigk2|tu[xKn =`?bh0zEs\E98REjSoUVS#`)Yt ={1 xlةI\h#LOȜymުe3X6Bg@ʙ}oͧh^e)_Kb!T:^*Wߎc~h}>tc=Үi=muѭ3b/gLxIn } g0ЊCNF-Ym^J5{Jƚ6]6K IHzQ&h AK椵{lG ́qI`xHU"aJ[i5ھ9ӿ Ge?J.$㻒;-[uKۋV1Aq 0Fp lxKn DlGh`>[98REjSoQzVbƏޛG H !N![a+17Nh SZ*-8-{e+?~i{= @H) IۡWҏ=Y~+۶M>-O+֎16M,pWj]R^u{X-G^6ʙ_7+i<xKn }Dx*x2Xבz.:o5GY4\0Z[H!bhIK|܆0 TVKV鐑?u=/D4zwZћD}1V'NִaWAWek~+o//560<G6>Y_`EnxMn }cz=G9~ܞb[}^1< 9X!NMSdNf&>4FG%Q* GJ3s3y)"EYΠQ~R ҋ8CRYץwµ< iɴcZh^!Y{nl+=Iüþ7>^愱/ۄmexKn D#| Qr m pF})"yjf6"Xm@ΣqpSΤJkJK TAc/cĝmgW3:L2F V 9+4/ "$|Ay%*Tз%MKatBpuݧL?M G\3O-%vxIn }jE}܁Ѷ"qr8REVUWzL]L)ZM19t"H){2)DaDj'UPNXT2u׸W^F 5FD`6b$eFBضm#[/!:Yٚ8?z#7>Y?^Qҿ \fxKj!ཧp?8j0l%}:dԷ*j(Zr 8&-u(کl-m\)*FF!peoո3y3Is3h3j뼲Z7굘7\!q_:FA^<!?7VA<8t/[#<Geo+>^FEr|fxMn }Dx*7É* 㜿nOEg1߷D Dhr:d{Tf[Mpu&q$OZS!틥Y:ƣu^ tpNDY@ VZx;VhqgeyA2>ii/ csg}ܤ<:r^}&Ӷrn}݁_noE_fxKn D#QU(c@'r,RߢZ%1U-E3]Hf"/LjX R-R7HKzK%go#:Z,mpbj[Py VI4 ^8-0òΏ(#$$D6[{J.WzaJpPN2[6i}s{p龦puaFRNzVҒ}dtxKn E笂yD^UYCwX8+uN^ bȤ1G3ZA h6A`{un\CۨEDΊ?{?KuIP'~@ ZPQdљ>8jZEc;[}ZKlEx^^.{t'/=oRvp-uq9oG˰MΥcz! IkxIn D}؊`aH9@{-%l6MJ&B˄!j rQ8VL&8YäCX![i[o4ǒ!-KTƺ(Igh F\c=[!KW'BȺwv~e|}^|S֓+>H|PjxIj0D:Z54!4$ld$99@)(զR1`PLf(0 hf1Q$4ޓ÷TILFcpΠ1\>0%kdğc-E OPVk@&f)E,ƺɀNk-ЛDBmo䣶 1eJ?^[',`->蕷ݗ-?̗r󥶝v'8_nopx;n SЯ0`^UmǶ"?)HiF3:")xJv!9,*- c4 3)FLAGobAJb1KN3}i%aDdb\u^Y-&!6 ܏^Hwy`Oe|U;}<;oMK SˏRsq|i}_멽O`IoXxKn vc>E(`>"c pǑr,6V5n_%! h%yhB9/s+*QP:')h !VG3AA1{^yV_~ၳy1f n%`X!Fq!z] [m˽7'\+1rGo=tј~xJl==6nSgyhľzkxE!@ `xEһ% G:}Cíڣ;i]"z`@]TgdQB9]_s$FCԀr*P7m_ '߹ǿ?3V)x}tW&yxOIn aߢ#6;(6 >=t3seaǨRz"Jx/hp6H/ h2`Z-[KB .ȸ68Yd(pxK?ЌfBO$Z(\KFz[bLP=! |nKWJ -oo 恎wA9q@/6V5H!ie0jgWCiiE!*n& &)<NCH$}.%͡f OPR(g-RD&Ea8f`^ZMoIe]ɫdl撎:{-oBؒ[kNi;Zǝ}o|*u,/pxMn GU(DUHo*] hD"DTf?HP&o2&[|fGjTW&$,!]mƌQ 0J);pAAoJ-_xz JDBP"l}y4>X7ucп Fkco1C*z=trgtt].{hg|Z  16mxm DT}‡jm)`R~)䐹;cāCpb֎sZVkmLru`=htܒaF0ab|hE[^VVb90$ 6ްJ F|2g7!z1jƩ|ŁeYI |mAE\4sxP{w:Y?^R)r}kxKj0D:FB;lld99@M= ވx9B=)G=wH'FJΣ!;41SX$Ͼlj-A49)chMƂ\bq[; 8JJ/ue_t%cl.]_UߎcyHy}\ϣ.r*{;S/7ioxIj0нN}6ǁ ԦުJhb@c Zm&J!KJkĪP9D@3W@tY<54Ŗ/^^! AAa+j*|r29 ~+,m2^m9c9?շR^komeq9nmzc_o4eyxIn D}3(n+2Fs8REjSOxs%F;aD6"PH=I "khADcbRƢ?o{oD)@ZchXX)iA.RSUZ\!moB]œI'!d&_mAzp~}~Z1s㾵ף|~>Ԃπlx;n0wB{ {%Cs:7Pg VR rgD1);s+ɝ4X^\]J.Ak|~|igC@⌸4)%i@Z-eK(}0>&^{lkm=#mdKw|mםҋt8][gyj+  ,f+Zx ! )u>QWspթ "ณL&yatmfsy[E\F+0 NU&攥 إ"1+tT֒e&b(Q|H 1?>og'k_Kn,h'^x=N0{╠7㿬Zsbu"YO8̧)>M-DZjBhF9T ޸ZBV,+9G^hS hDD2{i{%~[;)Z 0<8ߵ( vJz8#_nT+ |<@i\Wo/:kZS=4\ӶM9\~n%(x 10 tbaq4g!UUxF7~rnv3.jKJI2)wQ0 $db.vJ6"@_"HH8tx;{ T}cs5{sq_'xAn ;2aU0׊-8RCujuodGGI$B!$"d1=6]"1hpL-=嘉+Qxښl-˷_xc5輫tޣ .jDHx%=0 @aQ$,\! K~mgEB cz3p"m6"bU#HHACȥd)dW+$0yQ+ƧGϪE/U2#ioBJ~˞]ϘG^;+'DxAn0 }NpxTU1(9A7K(=b`N2!zOH֓~T;gIE"@9(lcdg2Μ [ z`EG|j שq[ץBy{Ka~mēܬRR㝪%<㘟Ms[n7S:"{~4Ӗצ3}`2jq( Lx=0 @aK%n%ĝ:A]JcT=wϛmVsQrrV0H$`gb t&m8Pfg,d1(:= w;k1f^n]ꤿ5QDCz ]=u_ud*>xMn =}D<*RO`[בz.:mJD)KiF5:9ڸSN*cA$>`z4F7Ӭ g_Kk>~Rtp/p8 nBS:hvp\}mR+ ն (Rd-[p孵1 KR% K뙿hysZx=-@аSTt$؟YIHӋ4աAuqZuHn > uW:=u YzUP Qbվ͗dipO$xIj0D:&r kh,Iq "=%I'#ؐV Mn,:|Ou/$I۬H-YY0\K?u7xFp&q"9Ge[ ;|cW}L6ޛZy4aAmY;-ôstPw:Y?J+r }oxn E{>b 6U:u-߇HfnqLTzeU.D9j5Xri^ȄP4d OQ-j'#`@e>8۲UZsXF 73 >C 3b)Ee uRQ iC¶5BKk9~;e<|Pxs[^]x!̹㣰X2lua.p`ߏa:zMi5ѿȒonwx9n0E{As1m]B J )? 4oFK @|wi06gnL9Z;#ht> 29E rXV"~΄՚g0)sTbx:YUol ǾocDَwSi:R[-8* ]xA{~ôԫtRwt~" pxMn FG!$(^T[XzCSTu&sBAuL":&rĆӠz)5h*i &ahHZmۼƖ/<HZR0? rN>Xm2o GJh^o_!Yؖtyݗ-?̗rKm;*_>#qn`x%!1@Ѱ$* L;3D^ \oSaZZGqk$Zzɒm Bb442fRbDzҶr(|܏lyu߷&Wx=n {NAby=`1`E6=)Hi>͌3QD l\Z,9g}P81!A9NHk"p6J\CK /+Hȼs2yekтWHV&$zvZwޮs{g%=շݗ=k[~/G>x8Η6>ڹ K2|kMx--00G`V" ;gr!.p3G=[5㺘9RRH(`h".CI%'ED}D̰ !NsP!d@W~{xn6(Vx=10 @Q$^щ9LH 8#BU?Rו&naZ( 07QsxSx,c֠'U3B"$Z,wNCXx}uݝa&Vx=!0 @Q-dNQ6۱ݠ 8MU/R ;^V2enmJդUHGfм玱ܞP+w)DU[D:άy8m<]3$Wx=10 @Q$^щ9nb;A؎G~ <+37>ü.I,ĄTDr fzS8ҟXD%6p<426_OX } vX}&ϓxIn D}f0cUQ8#Y6Tΐ@Q#&N؄m %;tlHiی*')[˂3Z gaX8&w|РV;Ko ۺ1gmoZW(H)u㫱q,/楝þl}壟2* i Yx%̱ 0@QB^%mZ(X 9(LQf`AXHUk>fEաo3$mQq YxE>KĈ^>BʐEs&^}CüNsODz]`{Z_lf4ۭ9)xKn E笂yD<[:UAHs3QZC 6'$V{ "J:r d Pe3o3&748ck--я_[%r0/E`b 49idw1S$n뺌H'n4ϥef'elI7zǍ󓮥ukͼԣ9{ek+ϻ6ѿL#RqlxKj0:AzP5~Y`Hr_z.:``f%I.EWrlbx3Lk4)/y#" r .xx  5qy$gzHJAVN*qڎ}/c+Dqq4.ӿ Ln|6RY:^vmΑxKn 1д(&|m+2Fs8QEժTD#J9YoCRFHV$5(Mk s8pmeF.yV= A9֣ѶյHRpiY=JpfR\}ZOh%|6um 9x-1 @P$ f6fK[Aę:NjB6AVQml+20#)2ͼ捦y2#:$U,#ucZ+EEL4,ƃ)$4CLFbx[9?~Iv * e@ RO q[ץo쫖16-]*Wߎc~Hy}᾵Tϣ]}?䴵Uv' ZeUVx 90eӹ hh|zӃhSٵD( ψ?iF#͡=)I#*d&I^b)\xW(؆SWSrI`D攧䈢)n^]ǘכV7p%)xMn $`TUӣ𛉪H_*] r)"Œ5D!O0 v%ONWS5iĠEYdi4o(먼njo?Ea<(sTdLjwnE X8}= 1ES[YyWΌu}ykr}-~Z)y6u^󩔱/7[jh=x10 @Q5b2qb93BLl]$Xpgx/of3<$yfR*j\FV2S$4T}Q* kNB*x=@\_w{>bp@'xKj0:AB $ߎ),u袳o34EOsu4IƒLV yMvXUVxUfcJ u ` U0$%8ǫu^^Is,J0Re\Q{ƺp&.ܶm|Z1UA Nel-wz8^w/ S˛Rca6x]oΔxKn!D(6?(1,Y6ժ9R^`KK[<$e) >p# i&KDItIkHknH+ஹG ~S3JQ YJ<"d<((\KF?Rw %9ӿ`譥0ko0WJmPD竡pynKs>ʛqi9Ӂq9\(K/'*nxKj!h0&> @@EjQ-zMNa9JFI\0 &59>(hpvRA| 1J$Qi]HPZc(,9io)5*Cd>m= yJ^R#5>[k˃AQ_lu^Kk /'7gYx10 J0tXXb'N#$F]*TuUTt֟_RL} 큔(aV\``358i1~GPuX(kAYՒ(i /bw>8=cmخ'dxm0CB_ 4-d,) HHgIm>ˬ4`VΊ Dбꢶz\2DC01SёpuKZC׌P楈LR03u^[P@X%K$m+c fZFiW˕e!K;v󋦥Rcþ|i}㣟`HoDx=!@ @ѡf8E:6ٍjn"ӋtzW foevo H9%T L֙DkSg,mJLߍK)jHWM`x= }?Rp7& Qx%!0 @Q5 |R0,Tv}&BȺw־ ӓ=94Og]n/./c п<#߀VpTx9n0D{As #pc|q(* )2ͼfo0Y(ᳱ9 8 a6&DTPA Vӑ[kx԰ˆ /+89[S0Mr:/{T[|cWPVLv>7( ז;Ηg譥0k+R'9񁯾{ipv3qX;nVxMn ? x@~tQoIlH!j)VcAI9ڣUѩ ژP1w(%`Dbh_^@GWJu@_~9+)2M̍]&0[VaY΋ӳU:c6M _ct? aPgf{xֶ)ýjE#1n]ClǿOӠzk닧8[2RڴO4KC0t Tx%Ʊ 0@%B^6v %W(ADa>"2H 1G`+}aHrՃP:$\j%,^sٲr茧Df;:FQj.Mxwm:O)^xKn Dc(9%9dԓJUVRQ֠JfX(7O#N@蒍c ֣Mk,~VftNPV+1&b|/{0 èMu5AqVز5Q_Ylo);ݗGY~X.Nϳ(lʟO_ojxKn |GQ4'x?(#YmV+/DVҞrbC"r!y^lJkQ\ə12zWP<2$6Q{Gl9=f+w FF#XQJ>[^y4v`8Ҷ,soAF|'Ɵ16]UO^Z{ܤ<:xrZiMN[]d~ m( &x%ʱ 0@Q…H*MI'6) t@2 Đ_jW2Njt b| .b  zMSe5bKJls ׌r~C =>AZܽZ>IyvvѮzH}wnk!x;n0D{AsY2mRQE E`7"IEƏ$+hCԱXQ+F4*eR9@N%E" Mbx[ZtZ p`E)C>hhg7ҶKok_cb~8懔ݧ[,zvVYf~6lxAn "e0(?me-y)!}:הA qɏ!D5(j*c  r*k)A5itξ5.N` FFF tx;4:mJ{i3gؼvѾX\}˹Chr&{=HK ,i;x1n D{NAWQH |Qd0\?4ћbd=&4@ VQILbkt QhyR3$ > 1E7Ydkm尺Ff0yP@I=DX;GGTd P-m}BG+nŃ1>2dzoDZ>wmaqnԶz_7IpN+x=+@P Bί;JB^ SonZZ{. <[S &N>(Bv}R_kM%eM$̐9:9-m/ C8{s?%ؐxAn CWWU;CHTDRE,n5F#ZB f\Lx %"XciRkrEiJ-iBG,ûGu[V~jY;IAΓ\fH 8(.};%[2l׵>4Q\Sy^"ue' 2,n"xKn D1(;mVr8REjSoJ Y1y0y$pcCHA&9td=tX;Ag"2T|glu*xdsGКw=Z\Wĸ۠µe^ !Ԓ[CFL?MQUrnOD_oGjx;n {NA0- m q EM1RD5Rè%k YFD$Ԙ;83 Ĉs I,?K5'TopRp938tևyFm'7Z-;uJ3S$uM$s-GG|s =Rr4BȒоFO1vup-ua1ضƖRW_wGrx=n {NAϬhTixVdH9@L34f4DʵF9$0*A d ˠ"V!"XY@c[c-)ճxN )zgm[n~Զ=ףO_|FLkѳ/?ot_k?r9},&6QZ Ar| LpݙxIn }6ǦE}c;-c8r,6U.-dR6.+tTH$G0zeTP.(mdXgIwas5ҷ_yRpìq-8[<RydgZ *ngzc$DZ$sbi8ƽvBȺw־2Z4fw?ӚֱL6g=^zHq[xMn }y`~J[M]an; :?FUjZk1]Eί.ERpmaKC.m`gr}%p[x=n {NAbac[?4UF3ZΈ^MƠBRY""9\uPsqA zN:D!( K%h+^$dfV Hb켨IQ J M\!o[#Vh';!$ge%<շsu湞}ă7ʼb[/ܭ 1s hҢjWXpȼo[=[!y/+LǽEɥ󳲲yit{?<8{<&o%>x:ƭV~etR}6 x-Ʊ 0@% o@犆OIJ$FHv4,e&Pp^\%-J9c$!qH|̋2-6|Ny`Jf*(4b$ ~~=ṝm)xIn0 E:y "g 4P2$9]-ȷѮ$D9hT,''LE" (RtYiUc>Z}I3 g EgEI)Y[ϴ+eNvR[eN 3gx̣P]&,}qkµvZcLiAk+ؾZlx=-P 0 BgHP\`]$!.p7onZ^JuٸXApnI"$^/[`@l%#D\[5ƒ`8t=!3HqDpS{&ŒxIn D}6ghDc[#Y6Vj4D*6C+%tơ\m8S.jrePœ:8\e/@p.9 !"ZαF}JQü3Zpf,yeA6(ƯX}MH>QiaoBm.lKz1Mݗ-?<-)Gi|@ yE-m x-̱ 0aZ B&䮹QG7' RK 3vMZe'U$qybu \j7"y! ڄA@1h[D8fޏsUU~njҜu9~y,x=n SЯX hO`[qr)Hiz4qkuR@%%$2SbG5Nz`a\,iF` W2αfO變 0 O`E):gzh=A?6뺴F?iiĒ<燔{~ZNu6:dW8(uyz-{̭۫(kxK E笂Akc6 p3:H1HF>('b'"emʅ9L :@`ƃd8Hmle7jPJ en--H,潄HIscyЃZ 燝ιōm<ʾ>R oR[xOAj0{/%ْPJ@Ca-eX2ӴBt/;33;[$iFLwJLZkThM[MŊ̘HI { UG6I SuCC$3&\KG]]*'m۷ gRSduqFbVB\-% D2r)?R6.nH`St(K7 ]]gTYUkiuMunCDofaw9z7Z0LJd-ge?0YN(^7UxAn E* !*uQ!5Ȍz2_wIւAHΩ0To0vBm%=9TN##$L/2ԢGeX?h$,kL𑬋>]eWJW7+& h-RݗbF֯W褂YbԶb+CT^|pr&m|i54~~ڟr^N ΅3{t8rW}o%C1R#86n耴fYf> &#l=xQj0 +toIۏR Pгc+~/vW=T 4ijF`.\hWFhKdQf7cJ6J'mԠ&P43ssѧ9£)f#wf¥i>MnECj_1k?k: ^&gѸ=bXn&rhҕJDuMPN@ u>.e{ӽ[_?F rlPjΖMja]WGУo)xPKn s #^wTUuMo@x6$"d_F jY%^)xChI+088)@PNΑXނ֣”!J' ! bY:1b$lVWH?jn >ZW":H5=@#-,l%2Ǝgao8]_K/j筮ճ|GRS3́ b)a?ˍF @~ jJxKn0C:,[GOP@7Xh,W9B! [ &mŽuvB'a R.ZQ̳R(G9)HΊ+e\yeVj9\[kCFe=íB|djoP35@%jaKukCMoR6=]DO3Y[8F::c+g-8 `9.Ny-bFD0h4ݿ5Mw5/eݠ%xu3!})nG8,C!pKȷݾ}oX^oD JQBL#;!Ѥ,JS ΍yxE10 @ ?`۱H , 8#BU?R|'Tn~ZfѵrB$B\_:s9dX \[BP }"743({Fd;9Îփh8[e <fm;3`f_3/GTQDZoeP/f뷰hc{Uh4!vdumYe†")$UQXsz%ڶ%5a7a,gbks|-XAll~Н%~RoJxj yٗ$h.\hi>&&*зw7̙fDX"ZlЛҫ*2aQNvIg ĈLγ\[%\VadZ)a̔ =fbϸxE-%³k|X;?5/@'(x"M]%{Exa{0{uoM7|MW;cN59_r.S)e\CGnbuJelcͷ}JPQ< %'%2DnBKh M-xKJ1E絊&%Ո4 ۅVR$)7y8ȜqY4k ^*nk4;1PCE1tAn-PwRL`&8TZC*{F`뷴1?`b\qtA/eBq gzʁqxW4a.5fz8G#cNz=MiҜQnZL%Xp^i 8~rxAn E9L FU5UAM O޾,-{Цw(K¢'{cj#CX"iyAHDfЀ =2( s^~_ r@ո[| '(pq=q'm[jx8?SimmoP祔ǭ*]Hg?::ҭ|@ukZQ?ӚIvYf5ۏ eKyx[j0 E NN22PhPJ SC]]5{3N(͕ndz+ Ls} ][`w#EiffY=[q/ ^(;V@ 4H0hs4(z1֒"2 bxKwR<ǚ/mH -QiWK)/0vO9S(K`3>ij T^&?>~BGicq)5xz/1_6nM9.nQh]v%MYe$)}8k;pliDc2(M{xPJ0+ͳM/"H&%I}Qpc19%!餝V:m̬21;(c Es脡ϳ3i"SE$BNRX-hY)Agז׭~W/01HRt_K)k`NC(^rmK<7 !AfC󢃯jAVDcZրRDGBW3i6vW|y}Uއ3˶^I0*AczvF0*>넱n"sN[q4uIg(&)>mKpMhãϮ_Z|O|T"f 8%O%m8@! Wfto\>^W0+x-!d_ rRDniyp#;[DW(0rFfbtnhhf*$Fq }x]j F]NjǨR.Z.4&5}Cwyoahc&:=fq Rk/ 9l {S+'={&FHR.-wlݺ%ͷcXD9HԈ^x/鶶EF^/D _iZqiHrIyLY[8F{u7lc+~ju33i%KPrap|xP]K0|ϯg\ICDP|פ$ vgakF#teF͍TUa #fNKg{t>TnpBxF,1{ ohMKhmݞS[N=ށd/@\ZץV>s\XbZScZbv|eCWS>Q|AI+BhfS4{ظBOPXS9cfsKōm+ln]={=u t'x7*E۳-t\k Q +x== 0PB]"ߦ`- z++; BУ R 脆@8"|p `` }`Aq(J3Q)tܰrz~v˪otĶdsCO\]LDO5|x;R0E{ؒa4P yr4ؒGg is̎{qPAP* R!mf C9S\;aZ&@5B: fo\#:g[ˋ^紟s qIGD5϶D.LmX* 枣oSRL3a+.VBغzO]8TdG6zmsYVuJ3 3');ͨh7Y:v!QMZ3'rxJ0yK\D. ŤmST Y̜9ia d;˂i+, /38 :N9 H#]p3 }-roguJ8r8hA/#/=X8ӃpFBHZP?a]K4u5\ү~ֆQcZ9AjggYlp!E[ՂqxMj Ba}BwBԔvgr~6Zz=KG< N8LI p9n+5(o ƛ 8E"AkqD ,YY{9=gW(;Lm_-]'@-5lbm]Z"c,-UM,ӕ7r}K]\ƣwQvbk>B81@z!GzG @~ :rnw F+.F?j3~qxNIN0x!4W^vNYx?.">:; 1ItRF ,U.Rp2Idԑ3N% K$^By/ֲ>[^q>sA x~uHGXSicyut/9_>o%!o1qC{ܷϛ Z)@:c:/ tt.إ4yeG)w}-xRn }WsSWU&ԮJaQ0X;*/ÜsfL%g(zv}zkYS-!$daM8e5T-6cj9"A6J$l uѡ;1xq~Z}]UpE%γ 4 LcyqkMpVu5BpjXgl: —s*(2VB5)>)hb˭u}Wx3v|ohO>F1bC#% /zcW;mc˂fUZhς sm>"'\Fw83g}$ɨBMyteauYKMj:h JiҞ!%%i7:Rmחm] Зx1r E{NA'q&]nbk! N%Go!9Ha `SZi,O P4M|h,G*M88E "2 ~\{m۶yܯڍIwVpq켂؁Qa1'kgJhxMN0>!Q%O8BB jbG #0FԌSV{8UF(7;>:$RHI#LXA0Q*~b=s9^WRjAm5 bn2e# O~?>O;301RƵf tqi]C)ysݖP^S|"CE< 2ڔ؄JnvMys7[ufJ7]ͷx=A1gkQОF[*'9Q 3 LqxJ0E腶IڤA ("?44^3{0%#fiRˤC% i;|{&L' 0n 5B8n;Z!p͉Y>eq3\ [s0}/JuR9݊4Mc)(9۔9 .iL4s=Igf)hkt'%G09ô TlB0 kBHKj;|Y٨)#7aPpn`4/`K-eLwx/IRUz|VmK} ;ariZN[s#?.55:L5@ XδS8v5C.W!=jsLjQ^i[yUja-,3~S,R+ vœxMj0:J -B YOI-I.=~o30 viȕL^ 3rjF>[l2l6dS 8[#QO9w^#U(C({=|.s8_ kxȜui Q%ɺovE-%E/oyCsYVuy !qi]IOpS0d\❇p1Y܌0rFѺuvQՅh&1*yaqxMn bc /\n081 z#t{'^fІկэea3%ݴFI%ISZ 煐+u )eКd|c5W3k=.{r`iFB#>$5v[SL{b+z|\oc#MџaKk<wړ}~̶ֱ6s}i -tB FJ>\qR%xOO0>u hQ[q@BPqŮyҏ_P.47S "Sa8WfVfTVklX)Au+LcP{>*\{ ^;traVGt@5Bb+&]y#~-J1Y+7us>b:3#M.8#};}}G/,#GiP79U BXZqhK{|Yh0TFK uMK=J}s04[rY^*+ K+j2RkfҎc? z>Rt7aXxo W2icd%]>tn}pvPl/P%f$sw"ªiSYe))riY#@R"ˊ"E Jb.rA%UDVAgy6XG[֨#n㪝L hVѲH' #E$]i]{nq卝4auvXJCͨor to|Q Ƌ/߄nضa>pwbSP+•F{<`.Z\vR1p@(Cܚ;4 Q/~vnOoB5pE挠_v9No? Vk|`WƚA 02p-a<-s hDy2 (֘MI*IEc%gέgIIfg'MЦ>}]Ӊ\eeVPUQČ)%q%H׵ˊee7K망x;n {Rc^(*r0? &BlcLct7~uMSO׾v%)6<&su ¬`IǢڲ 20*`ALT9*糐2e4 e} @{y|zLF[|#hn?G_'8z_?RI+Y>2MΥ8!m߶}* &v(Zh T2JlNgϚ%xn ~97qTEVmCҪ+>KbI޾dC΅Ohr$HK)[#&$dOB[mgLvTڴ(YJ(Ttfl-WT!‰4OrFs={0V}b`GُJ b%*LW{|P!F<܅>y)_뇒ctcu9 7p3-LKKx"sD\v--WXѴw݅ 4` ]o_;{ J|4Ef7~O-5st+^03]Zi&iecȖWzW "xM;0 P ubv80pUHpAPo8OfFI[I()7ƊR r=x<P ˍUA/BE->q RP]T"8Hϩuwpѝ[*xKj0D:m}F! d>h[ld9GYMU=ꮅDޡ!85AM*Lv(+WCo%pVyW=m]Fg |m X[_R}örh]Z_PI| JXZjw|noz96 )C뇔ϣ>Cdj9ގ;%vS'Rt~vFIQv6xON0W{:t@@m;N.bGq mfvvgH13P[0FʡjFy_,*XdV Bpm84Z7fLٖ2mBzv=CG՜S<_g5]-\V WyJKXqu;6~ͺT#~E|rbڔ 1 Zʩߣ{B2ãS؇qdtkLv!jY"ɯ$}A5)˖.AP( U9 }U7-+F_~ϜxN0 EדĎQN0dB:LRB^%jOsцapVZ2%~]:,DåBpHv -"Vwb\ \(f?Br*Ha3;3zHxKy nn`BSëS?xԢ$K gmPUY֫2D{וpԺnUT)딳t=Llѱ5E7RYLm׋VrF~x.xQN0]('vDU]. j8k;h fΜI Κq&H8 aIJITJ:b\B9k#i{XSD2 Sbc Anh~/~qGn3Gu+Ԗc%p׷atd+2jMJ_Ȋst냽=r*;~ Rz^!~4ѓ爌+;A&Pw!8U;=?BkrK&T -H8oyL <j2M:%C]Ĝ}ޒR Fl9㳋kVCeRu¿K<)rNx0 4="6O4jB_ĸLuJ;^n{Yk·u {7Zdƾq#ʆDCyV ch?3xAn E( !Jf!zEoPoom4 z AHr)-@NŧʅSP^_\P:(5ifUK.7KotZ2/Fwy{B⨤/І5)cLuMRk펯ԭ7r%!~hߏݱ qo+z0n`; Յ^l&(6sWxKN0D^3JB#!4kv8 nYpjSյxZ9MVF-\LDPJE*f 7I D[(wZ咂!4Δ k.Z5!6JO/>B:gLb+|"M1j50#دWj.}DM>nL]0gyZ}>mmۇvRj9ҶM 檛)YEM sFG(6uxPn xs#"EU:caߗ pwabf"Ja$^zs$գуMGzNI3.$̅ 7 Δ'ձ{^Ck%x NKћ?/Nf :6X*#)l/f !K>ȇszmq'x)r)~C^wTlJ;6Ubs =ڶf qyv{ʸzR[ڻ6Υ hGZudIߑZƔ]bӮ$"xQN0<7_gJ;!*UP#l.SđX3{f,9'Y-5dh R`pڃNv=o8*u)0c(IADޠ,CV>? bF {\ < OϼfDhhUU;+_̢b7;s}76[؏(GShכbT=($Ii$zմ8M4ގIjP>v:V] o4 (4OV<.)_ۋ>B( *JDL JZ2f Fi6xAo z CTUmU*[5<۴k'/Uڍz0Bߌ) kh-=gLʠiZ PmzIDUOQJ5w5 !Lh*(5poiK} [TGn&t H݋Z`9xWp)'g4O4ٔyސ+Kڋ u`la5¦ga>t9oM_-> ~| i.>x~vg*nUktK|e1.u<_@1[Oqx=/p00'<)=0>?'1yK>, 6ޕ֜8WUVʇa!WL8W0ϱ֩Jaq/򋒌t5༔Buf ?V͊_(xM ϓ_sW Uժv]'M 2uFa‹_j(ۮj$ժvƘD:65Zv%ڈz jE9ji a4ex 4vqx\h|!4ǾWŦD,;|'T⧥WcrX1"6byB7);Sho4a! ߥGzw3Zg Ru>cڅXz F` tn"W+M nk`1rASHhCFƐNp3+{Cvx~Ѧ<^]n xq:%btX0%k,2~+m-kՐWGQPr1z٪ZdtxAn Ebc1QUEjժlz c` pwMP63( dj:+!+ sF&a,06RTKޢܡF[{V%/s\C\fL1G$ Zvi1n]A֡2#DW4q[a"o[xN9M! !n:7iMa6i2 WN@|k>|k\pͺSV]m[ ҂j* xKj0Wyp^@KNJpe]"l$9turk(σ=J70s#ݠ[iw М P1i;ۼۜj_یkkKXrbGݸ.Kj t|}|(sM1c K q>wGGScOJwӘpmƵ,=߮R3ɉ u8=8gu(?+s xMj0Szl!Ё@6JrYvҖ$O#rԦ^=}h!:A8K!2GJ*b)uSrfŎ\ap`m/*=LB di̲c <<>|³_0)W~p匷peynkJ+|n>P}Go3Vm#d3I4ApVg![~t=t w 3(Ɠxrj.V嶠iPbJhowcUk*Wy_c\ƺΪ+k뎘hqc ;&gBu]9pKpV*rW[/qѧ%xON0 <ӯmQۤi 8 "I4&U.Z<$`}%əd$Q(4S4'(%Z7lb(ij81a&bgbD.q.];܎3q \H,wFSݗBŬO11Q<}Oz Sb jnSj|Anape#ќ׵P! Y(wjXJ,Cjy}E 䮸w̅#/ oB.٠]8-9kf]W+gY:qM xMn S:m~hQ/")v`hnz`jC㽯90&PvFbQJA(1{QgfгDTLLEfQ-k^CH6VLJ[fnk.ἀܳRUQw3XuQV\1l} q-7ڶ9G7^OM9fQ |bO-8A1 ,(B\n+)ôTK5. }3ԑn*e]Ӈ<@9SZ-]c=6![ZM#6ǫ:0Z=gcΜfd^Yu,#xQj0]_ŬlYmɗ!J)Yȵd$;.:939GG*e?)("F5IΧpk2vvL&EJYD+{!Ekk5oEk*<&b 3n᫣~|OnCk= K1|ט ;Oo>^/15ޒ6Y݀MxK[`1dXMN\ͩv;?ʿI#j)uH3L>=R]A}?g hX @TΗ:C(?^#ԸML̅wFWɌrc%I Ju ;vj뉷s5} $/sK]xPj0<_۲YJ(%%@lIF ʔA#G"@z#*B 29 9GI|8RU`$a0zd7CzHt,B\ Ʉ5O!5 apxo_}{c{NWYnΙŬ=5Dw nƝuYX0 j-L7AI,BP2P2,)Վ1itPIjJ>9k3;7(^Nuht^B_1mwx-NHo͡v}ѕP>1Jf6p" ˯l m1%5&hn3GcWx~B񉹶Vҵv1`[}6_ wghT~Ɔ-!헏[8J4ʸk>Sd<'%2DT Ë uxM10 @5Sc;]00UHAPtnw2 @OXhT3Ri%[T7}+[/] }JRgL4qnA(Noz1#ﱶd BYlwvGDCn(51x<ۈ!+<՚=pf=Wl]2v^mp@*xRMk0=ǿBX[RJ`@Ksƶ%I%>m =Uiޛ7039"2epPb'@Ѳ;sTf]7tD"fvCJ2jr-I][)!S/>̞ #>NɁ]!OLg/{5t :3 Bzp*.qLako` [<{|y>?O֛pn] O#,HH5@J݆ޚܿ۳:ɒAb #3/oT\!n 1/Eq3\fNi5jP8mzƵuM5M9jh&օӖe/;țrM^F˗xj0z ݃m-PJBb$X6˿ǴHv[ zDTH3|< Fg'̨-z)rnjhv }+Mk/Pa딝>ޏ/_>}{\yB COZEt{~B):SGR8ӮZinƽ_? Nmjoآ p6s6X԰AH'?WfvfxP1N0/ؚS +N@'!v."#{|1`P7pFP"7L4Zwhf`Ūq d0LNq0&HB[Bm}gupRQ-jُ㢦c-12dE&ŚKϱ>^>m)yW]\'i6愸ìbowTWNyc:jtazt[Lfպ:?`Sq8Jʶ-;} RKk5cSR|{s.xQn =_ ثJm!RX,]nUm[›yOÛD u=hAK@QQNT>IVKfJ) 5*N9}Hm>~O* ;ADwRR@ >T\f d:b&gJ8-ޜHɷ)ͧ-U4[tօ#e[Ԗ/mGz9zdtih&*jkjRt O:YKxRn0}nTI&[UUa U8x =BBX335 "Y횶(U%v5bSWk*/`y4AH F]`ƋEVehfͲ6ҠfK"+0(`Og\ Ɋ\ҼrrLÉu " +m0 =X{숭& נ@|[?.Q[.#߲!rzK_$nf;#a-lJQy#LҏupY6h^;g$bP}J~P,ʘIGmBB!]uҡbS{ hngVz/bF>G44-|HW덗_=X¨z l(%a0lK>L1IŒ=v}AJD1ɩ{pLCQgv^Tt:h,2,eF*:^Ͳ< 8#xj0O1.eɿK()K zF$#yh[sf8|3L DеZqJpnf,$G;r 4k'ًI\fc+p$lr|lՄxGZ}@WWh3X,Mpf<&%/ }W_L&k y5:A4nV+}FȯGo9⾓t ~l 's>LL;#Fo ^o81XDWlT<;ѳ\Ie|sQzquvazqGLXG:ý>drj,Y۰r+V0NbxS|H`!xP[n G<+1YYz+tά uX o6ZrKY`g1 $P 㠨򫗫V2`JhP| :x~* 5t_;fBp*^Dкz}ym8 GLg*~{"S'QHrMqy(r.ΌPIBR+F oq4xj } ğDGRPCL1a7Af90{`'A/l'֎hWɁJf∋G4B(.FpZ{[uMeRiFI%wvܞK+^x} |lr+i;g v3v|m_JY5Շ}GR8 kuvVac(HѺOڿT,cPRoguxMn F} EUJ`,zEnY}X1b5+a(MyLVNJzj˙$7ɸ0Ǚ3v2`(@-{P/.{4,'o!xlI,TqTǀAS |W[,3huw̭ksw=7Bh timHSz*5<ٺ;f}m3ܖUH%JΑ"  y1!"%Z[$xRˎ0gΌBtPdEe7 s͗)/.&TZg1lA(٫8UAr"V^S9Dddq 7=$| ;in5w/~?KocbYJyj1嫱+z{vs ʼn2E"qr|~sx'c(nv ^&Ƽ}XA\/4)]"oXˁ_Sƽ2#GxTnh)ڶ%/;˛r^F7+' WxM;@аzK*#P[B^#[_p~]J)Z ԲG/:(T#qy^;}ș)+< OӈjVCк+R>|/6Ws'#xMn }d{ ?QUEʢRoX/]Y{oiZ!N"H e gV#*_(5|PZ#) ftb[ ,vsb.3N-| w}!\E!C~> r)Q[N#c,nm4l˅{~ƘKSLqԩOkZyeV԰H5fpWvzźyRU%xxj >KK)(tu Ѡo_t`sc8 R#8cv]Z[X\K%L NX5;ob5(8|avυ|ӷ|O*읒S-}>ϔK(.$[k/0~hH~U )MLGBHP?Ӱ+R:M]1KSLgmxLpuS+gzl L,Z37aqL Y4Jp uxJ0FS̵K4iYPX^$&%IW}{SDnfq`rtNhc%BHhk(aV :;G մJ dBXXL|NM!~k8{xI/a*8-z"G)A HIU2EVûiN!./~ h)9m\ػ{x[n?ނEU4:|=3$qBH!\8;I'nƎoþ>Zn0ƈQs;-\r;7HW#Rq(t(Żq慵J-% >|C0~3OŇz)j%*"^z ӟ5KyRn׊M_6 Y L+CI7J;R' )qG=yp 0/ock|&gTv565^ (ݭLG>I+z.1ne jѳnV"x]0+R]&M?"+7"46)ԃޜUWֹy^HJ 0fδ ucHkݣY2J3XjFkWlpip0ǾHM\!=m3|! KKK!H} |z\2VW?QqjGWO^7mQɩ0ɶvna}[+E]xxQj0+VH-K%?BH%CiϒElHޣ^fv2" ֍fZjcĠJXB N1p+ٛEpa<ͼypBc/aJ[=weOx {;z)qsxuXU@ݱNH6D̥{OeWܵ:~rL)Džz]mA( :#xfKᾅW8ҭ*KNp(D1j-6_c)ۥ*kh۔/ޭZΞgZ|/rP}}86S]Ç7q,WLR+ѳO5xKn DhaE#e)[H}En*[:എ&hIQ^XcnT3j)=e҂<g^-JkLЏf'=Зݷv|_)'%^x}k-K<H9{I!$mߙmJzNC8<8[w"Br~Dp\47Dt)u)io&L.W+gvP&y4Փu7kSSS2.Mo-((v]3:TT0Zm*+kT۾U3!RxN0 WBbB\Fm~丈c8o4&GkhmB5H9H]kD wY4J`Q7Cۇ1Ʉ£^>fT)p˴|H ZzDK۲̵?*|@t@ ܷ=clkw|݌gh~:F~+/i}vV^c]RWRn"vH Q.g~JgxN;j0u $뷄E e ZX6A0HXGB)8k#"c!.tvfш,9lQp=a@y.% .DŨUtH{/%|V>f3E0$ tnkk_lt6:Bچ5\iK4u5lǽ_=|Gmj7>R 0# ځ% W!2s/xOn Rl4pRDJ/1AٙٝA0񋶚[C)^sP7ZJwĮZRoaPi%7/,KFFKifOu3ȇNYS$YuX@Nn qZbey7J3 { 2Zx 0ý ?嫵xϢpbȔ%;x3VF3ƝOy9_Jr N!nas1 kZ^J0<ʢoܤkz]1?%mf>!E=WK”r>R\0Ɂ 3BUCi{OvPZQnS>[ 5-yS؜93 8kaq s'< ~\{m۶p>3VIT$hݤ`l<xn0 Ew}d%EۡtL[#$Yt\.<͉|oPwkVjo:k ZKP슉bi9 %+< Y'RjiNk O /vᝒZŠaC>D)7x YzllZ>;ãb}B0-s,O"MlJ;+~a߬_ޞ 7iszǴ'G6f$J:V琛7Ĺc/t% Vbs ߦ뚫jXu=ejܶT:k_}#E3t]KqFy6t۫FL֟xj >%ɨkԥ=&1}oй|1q*o$E$RSDѧT*l"a'Q0|eR7ߗx);ɽ_ 1+ <@?mm L(cymU5xy.inǽ_?<9g7HA)EmSFK~l!rsxN;n0} +?*VJ)} v16Qrx ̧8Qh@QHσR0Ѩ&v`XtAY`hI{q^ԢZ~Z K<&,H1/]ca-M:]yK˵jCvO᩻\8rWl]Igs[%r oq^nJΊ(04dnz )7U]xPj0+z\ĉK)J{8 -RHBu"cX|F($B/4b<;Lv$B!fh Mzu^)W,52s5KSR r$&\:;ܵ!g4HjxPAn WI$VU^sφ6Hw_,y#d-hQdE \%rdɁɆΊZ+dF+9p51gkys;5qZK^@>n)> %cKO8b^W}o1Tۿ ×VՏ&!Η&WzZ΅3{txsHWɞRF1MHMfYqF7"uʕxM;n 9Wy`XEJiӧ,7{x GVN8FHk'vFhC@6]}nMNA shIܚrM>Ks/_-:--+ S =AtMR R{*/=!$%w/yS1C6mۇX:zۈrDR&R i' ]R3gH~txn0D{~$eSIh)H ۶XPB0G4x͈WKΜh5[( 89kcg˳4(fD:ɴeV#s[9xύx]bR]]ށP}&K&.#Sg]-%j١UHŧGB;L->붌ڰ?ʐ>2M]nWO{ dubG~eD1 L&L,<{.fS~^zxMj0:Fl)BlzѯMbHJ :{{嬅SOyg .p 43+UQI0(?i 5Zpe.)c#-;}ł[KI)6%n{g Bԣ=6Z0ڟ>oWz_K !q]ڻ՝iۧR3ccreG`x&.tN7wpم0K?9s.xNKn s g T]T-[DKAg3FjbtJBR)L؈KIs¢!٤äM %J -eƼ'ܗBĭ%|7\o ǵzmm-yaY'-?B(l<8v5^s-#9|$7&8x4Ki:i.qՐ&xA W̹+DUVZmUJaQb0N_yD|ΌHj{;S YU+{3(dnTRJIQsmZ%ty ^M1s| Ty?M smԢ\tW%T6Ti-n}MNOBq J .c[a]ԠU'z[xMn }DATU@6vcO7ZTN@N(ԄY$%\$}۠LҙhP TBbb?Ƴ6[QǨ~r_ZMAZkzgHcI˥r9BȲ_[Ӎ}y4wG;߻!1́LL ByNj Cb,xPKn0ُ$hTMEM['xH aF}3[^ؖsBZeZ`QYP{?hA˜s`-c7^h%Xet<w'tx#\'ݚxıraXe 9BLF}ᾱ 41-}OMC{pO>Tkt3cϸ5m{3iirI][޵j0JU3W8&+mzsxIn D;(j)f`ԞdpM *r BZ(˨TF.Ja #9RZ[$rɸ(93LY#|Ox}v>4n[ހjbBV.7o>cAM.{ǔaI9-q4s=y7U<Si$ꗜkմr3;﹋۱t83.)Ȟ^c m 4g{xN0 <7m&isB&vf7.M&;ޞxg[eb|;%Oڠ1ACncg'ɹS(Dg:FBhrI;|yޏ;5K nv7`h23!F˼Ճ^I5YJia% 靖4ۡNNёR;iw N>;ޞ9,:픗7`\ Ru@.;;|m]@WK8;s.'(7ؼz8q>0^3%MNM'x(rڐt]H{Avz]K_n{{֏ $gql6PxoT^ /xj0D{}em=iRI-&XRh!_i̅;0e+cN2%5QD3&]Xf['dZ:\ K8wF#S%/Kj楷i}B(9L7v]R г-,Lܾ_Ӿ>d8{{l]4P,s=B(Υ_[74?|9 C>nO{zClCyf L&xHp&̻J3)A)`vuxN0w?ſWi|/BE!&ؘOj\d;x{ psᔄ\so:+%Fcf` S#K!OZBj ֖j$q{9 ^Rkg\4.^:?F*&pUs, k{(wt e=#/J3/%OoL441Poۚk~s;-{.nr;U~[*rLt4g˨od1v8֏>&s2)xRKk0<K %?%SJ—Z(ҳڒ)P]4]5\R7b sg5v#Ęh:0.lZ֓V|!˙r阑u\uHy !x$-},wvn2l6%NGY-)r 5t@۩!7F]]Z~ qe^)9 Sn8tS{!Wu)}^Xq?쌓"\V]*@F-V{^ 쪼L BS ~'P\kX޾0BȺ\rjrߦLu]^k돔^}O9:k)a % S2ї1Yx}C/$яx0Dؖd[,!)BeCrnY--|AUMzg9?^! 8"3S5ĎePcbdz ӌn{2l^_";|sr_iimJOZ'YG뚘-'N|%HLk-v f)){X)pK|X8srr&F,fy '<<|Aw1 !bMPS)箫|}/]:>W\j%dLsQ5rPhKoGR"xMn )j=mFQ,Z휀no?xLm-=^͈Dg XV=J#FkuRvaIE1VMӬ#[E9lY 5k.lԚGR{F -§,2+ ~{pA)u3!F o i4Z#_pO9|EcMYt:^ٻ‘r)wDetɒ e.c(M#Ropzpfg<(B@Kjʨ=>}tSmQ< .Kw !׮3Y+\۲ѳa=[{Ϗ?xWp{^@eQJ'ރs`HJOr2l(Efܩo<ӣ(atGFNttLn .="\Q~!U X v;zc>P3Ty}c*CO>J's|?cWW"<Fm7uz8ըEK~.xKn0 D:cʶ>"(E=,Q2$%~#\p@`SQu(zzǽaڍʲ$ XRமV $4x̽\c`I.%/i= SrDQ05B6|Pb};N?d )h%yפ-ls>26wz9_Om[q̓mB{k=sLk[}kqAu;-e3r86zBxcDt4)xA ϯbn&nB)оxtڲ}z*?3DB4r`Pj-a&Jp^iʣHEQd$5he:J!2yx8: dN$7cEߎ2sh%9d nHZY.&F/>q6a*ջH 'n&Nu[!Lj옝T[;n9^E0# RV3 I fjSI*U͘U#.xxz 0(i 1" /{Z"˲<\ln3&\TVΏmT}eq%Ȋ"o)rRS70\6-/=!xPj0 Bw$gR h.GcJѷt8յRbL׃nD; OJiv'AsQNH9檩 +Y7\CוAqq<οwX`=]qp7'Vn!Fr[%v_cO9Ʋ/~q+V=|94F/:<4:ۻm,;. ڙ.$o=l .S"08 &BXo3봒g?$cl^clR a2bX8?_q93D:ʤ7ɮUɎ͵Cks5&&tJW.dҫZ6xMo0W̙*|9+ {!NIbؑTnwؙy88"E^] іl*)JDr-e-*TwWu۵F0..-LѺNq*ތ13iP׼WX5} zS>[m#o7'g'ܺ`åha fR-;OhFzҗ zTh@ gə_6_N2gS/luK]M-W7Jc&zNngV qϝʒ$uHIAovyOh0n<+КGm[6p[JphygiҮ`}ʪgu: EW$*xn D{b',̝Hiҧưp(6l|f4S6"0qQD2d^?[VQ.0B-D|Pp¡ső٣ܖ >)D#xv:84n_Š8*V9B>`K~*pS̔HRO{e[XLIO~t]Mm̶]XWή:vϫ0hݜ 7f oLvՐxQn0 :%Y(ҩKβǨ-:|~Z`8&JF> %qM(Jrv@"`FidN~qI9k9R%CY߿v-ӼemuЁcIpPe%gHeC&U9nol-$7P 7 75Iߵ,gSu`WyMzbP!*jg+f_R{=uW]ſzLH`Fp#' X_L מxj0z%`{ P[Z6%! }A 0%*F֊WbG#d8؋JɢM zPbBXnzNPp4,f\HVw^[ӟnv +^ Q[)/eRA\)y lQJ'<&-5'Gs[io s^]Wu޶!_?rsW]I]PJ5ؠ #fYfsѲzu%xP <❻26`VFFv HTX.o1Ák6ԓFQt@MG!ժ" QLL( !%m}| ^#ppRI-%-<]3P&;160xl˩ U5"6;fII\:c|f|k+ ?:sixMj0 >CqR(t(13qzޠ轏j&nW/BcU D$g[pֳ3 \ Y~UDVaѪE擘GR z3g { nex-l۷WrR)=s6-JR>DOhg!TbH {)֞1bWꢿBۗRaho~W!1q 5qS\K\ZcYZ.|Տ4J~Cz8xAn D$_U.*u@ޠ^'hAa&=B3pFF.Zұ XT`q{5L/F*9M'YtA>/6ۭ$x֥͆PRnXUR_{&tL9h b(pP.!zB2|(MMP-uUܦ3;﹫gx(p=,<(mz5~L{xPN0<*;Wj#$$8ouؑ{‸xHn$gjLw5S\I`EG&phɽ=rŒ>IKP& Ɣl0QP{g5>T+?vYSkR0.6>a9nOPmi8 ̘DQ>L U0Z*3 ) .vX|jADgX:^-97+ +s\G'K|X[qּ 0\>}kK<6O-'2BX}&+R:] 1KcLgm8c+gzf.j8,J13q:l\ԋC'sBxRj@<fG$k& :{1D[EVP8¢[gX2,0߸NIs. E9!- ̢[8 q }EoPm-j*cgഉRkcBQ[}(ZǤtRGPLY@"r\BnA1r(WL~ӏuK1ݷs e{PF0za}HKZ2]zL6_yX}9uzSc7O)G}~L6zM055Yq6L 0 8u>sߑ$xQn |>|J}KdMU)*}hVܨ_|Aò3C DzuSԍFFmݡ04Y^]+$1K0vQBγfTP'G9|'emn^o doe=σ궦DE]هn1~EB  a?ɾ?+Avt%;dۏ.uYɅw07VZ(.ߓ] B+a 0ގ3H ˻XM]Dz!( QN{1"v: 2*{ʺ#&+XT*zT\q\vMS􂛂ׂẘI]Z- yŒ"x1o0WV`L*RVs4ʿCյ^ݻ'98"8vJs$I8JKt7R;%祮R"M,$!P]Q=s+=.TaiN]!uzKxXT)3yu:0/Ưuۼm9]l?#?DyƃF lsD$Pi<8zfƦk2NjCtX-m4%> 9{"2Ɔ)$$SBޏmEJuÍ}5uYmɂ;Ӿi9&]w9OdD뾬eP 6xQAN0 A_37*)@/-vpB>\Ye0.}᝷ aR?sjƘuJrߥzCWXI=5[ſ=v\L?r1C5\UjTr:ً}sxAN0 E^&i4#@@Bb'p4%I=$n7_~s$:ꍕV8E֒+ȝ2lH[C819uct `-2<"=jvs !s k7`ݦa 3u+zakVߥzްqfގiopSS}}<\jZ .*#XNjy_9g{=VRJx;N0E{ȓg;Ѱo!N89:D3QE `P&{R+,D" [zG2AJ Վ[T(|GC"ximkH?'}k˽㺶Fƍȑ^ ̽H>~i>*BH;*㍞tӮ=mn>-CoG}܅ZR#85s<9*c4Jphzx9n0D{AA"H&7\$Z@RrW43u pK"1s(tP֨SBj3x)|^gT9p!x#{K$Y6/D i;{ީZgF#wZw9-Sjj%(iillI7R|NiWꋇP[>8:L{YVqiI\:c<0gΏVKA^nx;n E{VAl~()E?5c0()~[ "Y A0ƀqRЃ%;LZ3&L4Rlz5M;ϜtκB \G^}F%7X+Bi&}bMZ+ |H[,L3-#ZB/BZ㑺uODZ\>&sy<*1sP˙nWa Tg9s8c aQK)zxO]N ~S̳-ƘML4-@tM|?3JB.R h 'TFYXًQC' C5ըF)GbJZ[l1{5o[WW"\ ZX.\ f9-dY\Xqk[hrڟr.]WQƴq3<:}}W>Lq@IFtnf)o] 9xMn QLFR=GmBd޾d?[ϟ품@I 7qRs$eHjlo7ڠ`%0Zi;'c*%\Ph{佁jw[KOBPLYxX/_-׮16ϽYjܻv]|n\q䮎n]IV!A F".7f䪙cA d}xPj0 <7_s$C)[k@`{EA3b( 7Z Fʆ-a; h80О@s-)k{)1]/$4J-ӂxKp 4~]v6g2<;\x\RÉ*2֔_̊W.>P_ekɂ]6qG9}j*\Zݱ0uEQk*}/W;B3+5Gs4WpۿBuL 8Kř.YY)5i U3tϿy0xRߏ0 ~~6B@N:qnam2%&q{7+8Ge],0-uJ 곲Q5舎LUî0+erTR9vY0Z{Gu? ,OaQOIgwqU2{+bCBݽu:J_x^OJZcO;#"qλ d`]2oa7v Lt` nibj#N/hp`9_ ` (5]nSm`;;A< 䙉>*: 6һaEwXɼlg$c>xxЊ Q@AC$co|,ۓx>)Fڢuh \F;1ZI!l6b QTI)J(4z7dGĖ|^#|6xx)7xs\n'iuy[ڙp=]<Bp=y>#*ܽ?#a.1ۚ\k>t>6ͮjlF׍%emk\KTm+h_QhTU΍JwFh%{xMn }d0*誛5 CH9AG#f^-aWod^8˙I$!0`hR*x̀j XjZټ2zjOx֞A&oek)AZݿ зzsٺɩBL=/yñ +n)vwWƜFPu8i=C=20B/е;NӡT > =K> a'đZ&9*%5\)Adc3kŹ%7tViՔ Z;蕔 /ه?5-nXpkO_Æ{?ע-‰ Zm|.X[7c.=`NgTzBHXkW>b z*e CS}اQ2#ޯܶ3ʍ֝etd3#U<;u6Vg >xSM0=ǿb]lw(eB K҃lmd$yC}8nJ4yz 9eSeZERӜaIwH+LHӦ$AVhee]e6,K"mIB/ruݠ zPcIϢmQ%cjZ2/kR _R8,ؼ6r #nsX" .>8<3cmR*Su Ÿ)fIVg#6me{ʅu-Az}N>ǯP01"_]Js_~݀WKϮsF4Wvisy=T%5Վ3u.9??c"?>‘YZ렙Z!4H `4q҈iR?_^%#JE1JabN#ҹJsՄ(ɦ3||ⳚBd̈^(P&젘kYR>xIKZS<>å5i}apHUP Ky a1pIچ[sM} u}h;E[Bo }9v]Gݦ:m{WX+&G=Q mL9; 1eڐ,xKo0ϛO1g$NX; "+!PUCՃĪ+aY8<<ߌ=9"'I9S gT1"( .&ՉG0PMu$e#jNPM3I=_"#!xw\|ofǍmdpY7N{ኔS39U7p 5nu6>Fo?6A)xiyJPz^5 ؇O'Ww/AmPm5!TxN(y\DA[>jW /3g z Bn"MtY /Ƽ0 | yiZLJ+_uL6~ΗfFثC=oB72k-Kum.x駎0G#&ԣ Za犯#qۛxAr Ec"T*5&7h* 9#7- "禨 PDO` FYi5TA5d QMbp4fCG#QůRwZȯ\6u~J09Dyvb)ÿ9saY9e%ǖd,Ě;sC6kwћVzr8Rځi9sg0]Xt5Z?pdxAn0Eba0QUƠ&uz^D 7/9нaAV1[bݓԵ E?-Nl(PZ+eK';B4uW9&piHMׯ˯ i%pCu)]P"lݟ_.B&1>@ ᱔nxCU^Si:@/nkhrcZyZ(j"طX&+`:-E[~xKj0D>ECvlKCC $א%#}4WH-jϸrX艹$ZqcqəVt.VЙ$J gkDg͌4IuKc oKco| )z݆9  %\PS׶Zza[2lGN?WڸBv{z84/R5Ig _ua}y~Wh~)ec!D=uU[6-\s]J'9R$86K}HYsլUӼY!xP]K0}y6G.r+">i&%IߛEy39g&+Hl$P\a% BShA NںTvyF]Fה^Qk$4AOneKVpm2_,Υ_ D0.6%+bh}Xn}Z}:4-x7C Vɋ ڽȤ&i;+corqWUFq\peܖ\X-U CDKD4Mո/0q!z̋qx+:rRyi#xAO Wpv1ffѫ)Ph( &zf{ߐ7 KJBTI"N uW'0"IGƽH1C&)⬧V9jxG S17vidpa1'`sU:Y67K{59֕Q1=k'eSkdM1?{7;m&`ݺrH6BL Q/ZrKPU|mrm~ZRő4f|"G4!>xI)S'9qrHyu6g/bdCtw!bWO[^ǯZwtVk18 zA_RԒݗ&kl^*z(n$e/Ἥk 5Kjֆ\EOF?>u|Zݖrp%oW+``"Wu}3,J- v9;/M!x; Vblnңo:A7)-+YkhC45/Uo]uۏeQ0L =0ڌ3֊xo嬐xPmj0 ]BWNleBrbv 2v !'GIFD$U2;*z䖹AkI%LP@^I1h'/&>qiŨXQ+ uRbne 'ZU"εN8_)oxȸ5i5R/E^z 'xGv9g#_.?a*(s]R>>vm !/MԼy9t]ELn֙m]=jJ#AQF3zih3^hBW3=ECxSMo0=o~Ŝ)g! K(ڂ'^.{&-ڥ撉={/vp0Ƌ$ǜ'RyI&r^PueMLfiU#X),J Ϋ.OYSX$0X{~ lX,i}>P㪵%W+IBODZOB-uzc痟NX+)Qh@Ў{@*^gRV͈L #zka5Q< VHez Q #! $(w0%an~ciZi;@ҤKGѶ B#h F_U b|[-6Ia]0l,M6`1Kh؈ئ Dp6;?z JS">8٢˫{*,,'uSXYuG],v;Eqp9MK9)Kr^V,i gɲl|u2/*+~G?1jxj E ߗ$ƨK) }(0&1ABa`0[3 F8ގ4@;0S Axƈ`*ma{E z3?{oXpkĖ G?+r_ kJcǂrYJE AXs{X\kW[+oR: M1aR8 nCgI p#H;M;tփBXN-#>{ xMǻ @ P%0e*jh((&K,ed׽q͆F9WL4f؂*$l7duʧZIJ)dm,%@r)XbjGplЄ)sxNj /1瘨Rʅ. }ń6Ag3aZ z.ƠE0vOUGeW.iJHA [8lV7͓ H\m˅soyKTsLbϙx|:0υoJ"mj~] cͨ#rRcB1 YK#Z=LU8 U'ײG|ÌDyk/Gw6 f%(`u])_gU{ŕZizHo5bxD>ވ=`2$(lxŸDJ޺B> P-clsɷи>_v ƴuUBg登J/R aK=,ix/x u]Ij`.xM0֯s)VRd!PZJEG-Iް-X4a}G#Bb#rT{ɛPIڡjA1wTqVGAaǘh UC[5JPZ3^;/qp/ N<)Qթ^󣞸 wP]hհ02ep^y"e"r@bZZWC]j*DrzvkAxj0S:~,J KCe-bKInW] :Y05#eFI%̔hk7(Q*I+PZ>r(iΞpb)$1G]SK%xIkgSR<.iMzOP|V@ېV/anba.)Mfsa~Ma3!Aӣ[!Gv#vrϥ}}c(}$Zq%sGJ:99I*> F7Tx݊ ۧh~6  ˾m5f~y:u.:T\e@#PڰA AGr]5Ӫ(.dW Cej: J%c0K&ťah<u-&xOhc|DiߚbrD X?8ZޕFN?ap=&To+1 @l*X̰iOxwVgTq1ט| <\ ?@ NN  ?q[Ki !֕&C3vZT}VZSz ߕt~ sh/8o$#tjuycn&xn0SxMvs9BRR^T{_&9n;ޞI`Yo<3Ck:h pS|rhĄb|&ik0k z*r m S2=<e R8cożH*O4`S|V3 8@.C\ރAoZDKr `TB9w|n0K{ܐB] <lɇ胮?)PοjO.Oup~ǟkmJ*/M,>$ g4Q!;"^\1 {.q_UJ^nI/,K*սc%5}_E5ueM cʸh% zxj0{=~,:B""M OĖˑdZdf=NrJ7b#P[X8s%ZXA R#tTSxg!}mRXK}譧x}Nh26sZ׵@;Z*J})g7qbV?"bjNq\NKw=|='tZ3r^@vtbPg`>\Gp|]xn )8J$Rۙ?@~7/ɖKPc83%C9l$JN׆EN v2DM5wƁ&18|Y%w_gڸ~`z& 꺔boz |-^v=ˬ\f6{ =@G-B/ɏ,k> ``vFnh H̖) If))?vb3oRm#:ePQ9g0tO!.|cz78dY^zSd|q)e￾?S6 !\aޥ4qސݕk緔aͺ9nPK(WBTQ[іJYU8tRFv?S7*x]0O~ŀK$J" ,ʢ&Ӟ`${xcnLx&9"nz0 $v]TFٺSBMGT-FVMcϱƶL詓Fmӵdzϗ>w:(^ϔ/j&o@Z*"n8FNA/HTT݇u9r=[E?A 8c˻.T'\#d2a>*NMD6\ 5/#ZND )Ҏrp%!"ى|E;57"}[y 1y&ZB %clvHp oRT9{]8Uƭۖ*Z^ .Uc 5&>S+ +jxMj0 >CPʔ #gL`;޾EoPm@jK&Ls7sfKA0(F)ׄ nn 2(5!(ag,)P&e 1+g95Q`k¯S2~Z?n&GgLlaR |"Pw x%8 zX;=ھ9~1&cm#Bhmi{?z=OSW̘Ӛ`̾שݦVt0%yJ@%D!x•dIqxKn D6aE&!`fqrԦ[TofQFiC4V Ž#fiȰWY@fiȃ phi*?TxcE toi#JH-pgؽl;c>g o {5r}aW8:M')SGO~۔Jݦ^E) N0YԢ`?mOxj0E l=l=B). ]wFH1Ԗ@jK{aZA>Fy &34D]r@QM8I[jh("po\k'}˷@[2}J_LT\ 'އt;$R׼SqWKHZ˙}vǞÐKc1qԱ ob?4K5s{'|f1.NY tvxOj /ƣ&1^JEЏ8h0п]:y,Z_ *Eg5!Brr-Zewcg@09\ж3k.P囿5r@敒%VTjW;FiMY80w=K C=&HV8RIՀq uh`Ѡbg LZԴhc%ѝt/=ۡhiA[,^F{릭u/IA_lFMo}XvFEE&:t̺,IAԟM5}̺a`N>yyʃ; ˢ@5%6UreKFb}5$IHxj >'Rʅ(-&%Ѡз] :sp*H' h9{%>:^Vha 5!Za%rӑϊkdXbXWJo5R{2~Bc_~ɕs1K)91hc=KzZ{mBx譵NpS0~=Mj=γqA{C g, IΈY"1zqSx;n E{VA?GQ4RHif 0";m8xOwz@@ZP"zυB.z`#.>5 dE0[*p j~-^|~-7])ľhJ#C(^X뱷F>{o۞Sa78Bކ]iKuzcc.7O1=kϳN1L90(5a1L!89/+ΒպxĝxQn0 |WSҤl@ 1i$MKH YeStPk3t3bL JѵgCutL9D#RdXky'Z+]Ɇ gQ68Q d\tufuk=ϩ~#mSӳR&aT]#…xPn0)zmi)5s25|$JKJ{sqG$4ibMMF"E4GHLU3eMEV h(FPTywGȫ38ՀZ;4nx#sk$#/tF4C{(:hfu)>iw{]qIJgykF F㢦2nBgJr&xQN0+n0ኵ hTuv|~{>Cz Eȓ0m<Xtfs{-;Þ2d1$ 18?[1yBOfSU>'(*T`q?p_uMG:o{r%m]DQTTJrVVxn0Dk+)Q0$R$ >VcHF>;ffgmכY03ۮ,qdgdJ5Vrȡ" z;8J;)UTϨlVu5Dx~W^(n}_vڄ(c# )rOkxtyq/;tXT>z ̢зu41)k}Y|*A`$1*^\ k73-9~ KN5q=f> BiCqY2plIN:/f%n5X|ӓ]6l=H[+pg0_ uȆ*-!^Y<MĀsyb9XA[+9 P&ЦK; HP9*F5g!${]rB.%/ _cd| -͟?ׯ)cR.iZZݿЛmn /!ԭ=rtKCHm۶Wj3T(,%LMStj& `QK`vx0 Sz68v2P@mY8llз7@/!>!L +:PfWK:39KNhDsL3YmxdQqkPV10=yg<%e8gr)/*%WW߻~L  '& Ukj7R7W~^ zʱq/mPϏ???kݼ ߷rnZg&\)w>!`70)g2ŧ5M|i5Uu.bc/t+|maG|LLJ3gK$gv4z4"xQn <_Fc0OUUZR*c`T,E+ɩavfV %!0Y2 j%7ì cpZ K$9tP`V͉\a.٢a\X[YcDŽ.W^S"|to' 1H2)'/axiƄ >Gs;m~몃C8[˛kGîK $a:'<.ϘD;w`cwl> ۜW4Η6?/}+\]LĽ \"%& @2J$D([)i('5_߫IxEƱ 0P9MP>ߝs ХpDQELLW9a]Jh }Ph ! ojtRk7j5JJq5SVxJG- Jp;ZT>uw]e&xKj0E^ 2(tlKFR }Aw3LPѮN+?kvU &kQ(fv L2-^,ɀήI-N'#t>2g"c$Z| O>I Fht=Z_ƺ1Pak;'ez]#/_ߗ+kz)eCs鯃N&JϜ ~pC_+~Ywb e؜JWdtpܧ|}TQO O 9ײ"la|^ڝ޽7mE_r`|k_^bZ)ec吲{GRq得 5.+cDX~y"P:sFV3.xQ =sW1&Ǝj۴CWj`jd=U^ʅ7==ւ69C'yӷ Şg5oGݲUt (gCӱ~`T}͕ )୦$rKp h|x~rpQ.9{Rfv._>@hjw4Ŧ%|52 gxh3ɇV7pB/&~^7Շ'|ӯ|U2Yq?{NvilNf8bޛʕ!'cSq:TUFqpe\X/U uڞSkۢPP^ӢG]߈=otxKj0 )120BW؎Ҟ.tnPm@5[$fT鸠 Bqp mpMD]gvBR)kvӈk%[~MkW(5KO|/~p=cƹbmZZ#~mB5Śӭ;팯)g;W\wR?C]nB>Ԯ|.,gLHGSL|z)B)1D1-}N}f-F̃Tj!0etTΓpLP(bh'%E'Z荘sb#{6b׵{(?%w?n6?c9MJA/0=#7~VrIB(NBrcط\jH_=r==s|< NJ3<è#T0J4JfR3h!v4,xRۊ }I1J8y1x jZkPZNŽZ}0a\לw=QI5NZ;E3fjtՍ-騞Y723IM"D0!>Oa,t%~uppK)9\{R*[sb5-b\Btf(iHuzY/W'`^->W@ؤW∤2q:z_ϲ9[+  $\- ?50ct]+b1!*}:pSZNMSxYh1~OFn[j69bl1-bTEXK*Q>e5S'葞xj0 S輒vb')cz( coĊv {Нw.!H("v24hTOy=*':i΍1sa @̀BC-zn&4MgP8R 5) =>%f^ɮ\ѯ J7k8,uIŌ==ŇUwWZ gzOQHd [=mAX1"\#|q>VUVuX`ﺲn -VJaw_'󇠕N|(x#x \dTu`?ʘ*xj >xYGǘD:}-oг/ƈgiR)IǼ2. Pck@g`|dAY"xTVc* 5;484)[:`ۧPW̅Jcqh{Ҷp_#>a=4}B⡗+M)Tj4gpM?nB[ 5qy{b=SdYX'}Ņ.$7ƨJE˾ƫ h0fo_lLvp(Z p#;Lhh:2l7b[ԆPZ;aJ3;R)?x 9qd,K) ip7KPv뷰=8I* Vnk)/gr)| E/d I[z3.k kiglVwX]WSiS < [W7.Ѓ=r-e3h=6xFAg?{|xNj +&bt(eBWu.=i9@R-( T qn-XUx2P\jS#W\ j+ /sYPl{rAoŅ\{z G_)|4h(zJP.c[s26Ư ='}۽bpWRvƐ`%){m<S+qcRQF SRbMɊ{;/Jeft`yxPKK0._WO/X. !~eUS?yúdzRfZ;}%+e)9ܒL.Œpn:XԲC /V]-7}\}~j;ż$^6Ⱦ s` -o9c{/àf0a8;;.<.Knz3⏓ St`_om w8+6!sj=a2Ks}EppiA<iRR$ eZHVWH]+CxMj0F:mXJ tQ(5McHr :1<A:/$g)Gւ9`)h儞)9lƽyT+cb23N BV{%eS~WZvn͒-6-nvsށq6Q #BېFVN<6l =x6ۺFJ !q]y: -q}񕇸1(Ck 5ύ+e4LQ #vTv!x9i#&|x=n {NAž (Z)E[ v> S|f999,UA7OWgAf=" d|[pRZa4p68rvYgn)C=mFI9-Dus/ GRHMq }?1^Eyb_-u]7ḗޞg}k7RR 8#XEN $d?@mxAN!E3Q7. qFo/.R/?VEƘ]!Vp̢ͅӌe(66lua͌r-pI7;QJ0)G|t*읒hnI=$Qzлs*).|a+fޞp?-CB>~!lgy}1'l :?.LJE(aDS2M,`i}xNKn s # FJA3}EoЍ-nK0tSP zm-^'-W٢T d V+dlp~f@27 Y֌aRK[Lz lq(ҁn50qúid : bj$+ru;b6Cǘϣ>}?>h[=ƥX~q%%ьZBgFTX\wxn <1@TUI8VmK|sm* AMQk')Y! +53a Fݬ%( D茷 aga{{.Ӻۖ}/{9Golr|bҀ'֏kk<@mM GyͷWmiXÅv=zc9㒎1:.c+G, 8=σ Lp6hcJIIbsxMn }_QUZ@Pl0zͼ Q30#䤴DASAhró!nNRp'X FKdv+9AƟvYJO%ۭ's)'5u[`}jcL9}[쮖e k3p WR8vuٞK=| c,u[=&)Vi0 z&rK WQ ̚xNKn s mDU5{H " =9B-Y~Ͻ"RZH@Z+<*.9\ܩKX&;Ը9W` ?K_'m[#㣕bgp>*KoYʾ}R^3M~n4u-uŚr$$>=CB%Y#M\(#$,-eofj ,bhdC`fiufQ|Sk@tªBp5&|M_2z;gasϘqF\*|5PUV31KLv-AgS1#~1< !lfĵr^GB*.@3q=z'%{)\}1ڨf }TxPKn s $FU5Uz  &!J}77#z%qgƃVb;)4  @؉bBN8~Q5NI0`hN:*ˑGpoy,cƽ%Tv\+ hf7QUw_K coΑv5ra-c,_YݝWܻ6Dl~y g'{W9^ޒzbnjѳPNMSirqx[k0ǟOqJ|/ ctmlJe%# 8MZ'``YsUBY(0 #I~dXi9-Q( 2)$*H1+0b?\de8$>qHgjFa%+IcU$|[UCw eA};0c9g!/X2+I)RhyW1hPe  MWQCd;"mVm>Se.;ƿ ݳKwf`j:5t?<(id![1$ p ڼr&Iʚc,baIԲAƄA= ̆TA*TG[' r I9ڑFIhԣ 51d[ aкCX3S9ۺ*0J& UX+i?z=zhlWcNB%U{kX~me}`YNlҤcfh)O9r(þ;<*m+w[;xzXi3%=5at@]q*fU]}k]<ώJW{ֳkbT'^.$H?A%|_zW#ZilÚ1coeLgcq]޻_ᥔuN}q?K @Qjj>P0"Ñc-NݲiFΓw xJ0)ڡm4ȈȀZ&%My{3 /|ZrA)T\07ZG#F)>UAYn1ʔ f8"Gf \=O ^fF[ۿ|3PF \vkCuަ/,}.'xq>Manyp{sM60nĻ1[+6;ײ3G@O e);rF"PJ0~@}>xPN =WM)BƘ5ƘxJnTt2{7sk;4 ;RmSN6stg,&A .{^+۷][1B Z&c[<̨#Nf>ΏP'$"S_=֑^?טfuӄFQj#<",y(tSB+=úDzĉ`hL~K54˲_ʜp>qU4hk L+X]BwL`e[H^x=n {NA[`ۇAy3S|z^cu~1S"`>p5y`L2X HZځ/D(՘J5J/i[1A_1t_/GJFxKk<7RӯS>[쎣}Rl8hM,P(Y@B[OL#Hr:z';8^dNH*$P.QEyBYܡYPlAƱvBhDa騳^*UKo48y/11%BBLcJ Ѧw/2 ok‡y!o&&; n}j_y{j~FhKb>Z;2PGPL&N<))H\(?8zoxMn >6FU)J?\/]͛7O1C%%{9Q!-8iSRG USI2kPr2m}T~H讛>%0pZl>ٰwtCH; lZ_/ld_LC!}9+㺮-!%א֡v뙞m#$"̘sIնQ۱eb{AbGqctL#@Dz=2BbjCCZ>M]1(WO1_sYbZ+ ՜G`@0p9JOԒ3kpxn <6ˏ QTEʡRb`a\o_r3#ͧ=EcbR6V%PEpq3ɎŧJ;Y饝B&(Ƙ ϺB?Я$F[޻?gFZK2m <LSI[b99 !quv/DZ\>&so=t13=|8viT޼-ρz)xPM0 =OϬڦ_i;BhтFBZN8m|TIfG{a Wr@Ȇ ɻaS5ּPbd+zj|; = ʺkİox]Ź!+pWiq|q' hK‹?..fg>@Uiƺ%Ԩ鿈ew.ZЛw?˓5%daHe@ta/T]W#|"XR<]>Y&((:=&Om;U0]r6;U5X-VsHLH8=C•]he٢blz,eŞCm ~2}}ybSڊĺ\J]]e9U˘3xMo sn T%JRUʡ=$6Xw_C;yޗ["d;މF"wW?o@uۺAfWݝ:<=]{oU?ET'6*[ +ҁo÷F;X -ƹMӐ%qQoӚ⺺tLRTey]qò.ˊXʡWE΢JoxMn o6`"Uc1X%ޠo1ofJ2dYB2LoX02,v*PZ)ףՊB(V)6.BY)c0 15|5EeUJWV۔:n@(s9R8z/ =={p7]cޢ>۶ .1% 1ch-BeO9SU׺ژw.S+_gNS` nČeB|lxj >!%R0з5jBڧleqjQYfA Gvr`{F{myaj6Zᘑ .)G1oޱ(ĶgJZNF 4nk_`r)֚W{V_h 􄐸֮|:_iK)uZ}񙇸c(C; 5Ǎ+՜ ہdM.yԓz`|xAn E* aTU#͢RoA!̨=}77~r͈V"шYRVY3$+H:YgtL82Z괰r\0ĜuK3#mn$xM} ަ ^h=ԊFn)gd,;D 3I=))끒&%Ɋ^ Vߒ"xON0 =ӯșmiZ!4i .IlMR%)'=p@ g?g9z) KN)oxf@]M0 >KQ_w -lC/h)鶒 ByKG'/ٍ I.ݩ4/~ 蝹G0Yti\7_VmM{GCX$8d| ]i~PO< }ğ[b[ߑf}~p),S:Z(Mc[ BZqKPߕ/ljTS)g,or#8aU͛m]Q}x=n {N6`aE+m)a[6QnRfb45# aRI::7~[$ItQr4:oQJLs 9+gAxbuM2.){Z#M_ҴҫR[}5o퟿E֦"@b\2}SM:v`İozn xM; @PBlj+Kdv;3CW>^3_u[f"a"c dfAPeTf^rbGg (]P1NAʥl8 (|ne#xKo0 :-Ɋ0tM ^X]Zad豴re&bȏEzHRv lq(RU/,jO:dlDjA=KARr1)H dkq07{M6`C^q?a5fLo጑+Ww'=X)S*R&E~{c$!+5v&Sl:9Qip+:ď#Q^z?/9\j \/0b ޚ7V!=SǨ(aKԢ}MxBA0m02hj.o$g!V+=,IAҩ$+Rh@zmHSץV2H[ L1BHZjwܷn Wrci,GŽ~푵>oj9ǎK;;rn0 $p1xE10 @ 0vbc'Ă X:%3"T#U_yAFnq ٢T@,! W\ 6N2k$i"2 ؄Ueub:^#ARZ?玷C8-$&ޞ{'dxP;j0u m=},i a!E }l}l6]AO1 ӊrY8ULYp U_ɉŧF1jE%8m`t@Ѷ\{1oD߰[2}=?_㚏W i%,4coK<6O=6gvw/nij \⯞bz ϳN}1HTs``-~Bp$@~qRxKN 笂M[~޽1&L\h39ӊԯ^IZ8!hC)(-N%hPS z6_s(s.ie5X\h?-b4N@N.V"H3NXQ3jIk-'}OkO,x4J/ˏp&M`zTHkV/0\1Wh[mԧ|` .=azWb !a]f魔Xs}ا= *՝ ϳ`KhVW/!: BIiK#N-0uiVz'jWxj } DK) {Q[Lh-kicj&+İ,&Rn`T6Lr#4tF)h߶n"X50|-S<'?Xpo/ۣʥ Xڱ[/0vτuKgRsמ1ڕm˕7^h #o/bzJ,)VIP10w0Jt¢d_jvyxAn0 E».F@ !Q5,*&8!*$(zzz/#<[I~"bRLX+6iMߡdcSRdYINwl`]OVLg^bD./xKJ+~cЯ+pz%4\XϙV=bJdlg~Pb_Aהl|P e_cmQ ~tyd[-63|܅\QZs6լ'6΃uomxKj0D:vK>BE Ч%e#Ɂ>"7Hm "pnt(>ds sz*hÄsKCثGQDZfr9cf t[k/0XmNh]ϳwkHI[WpԺަ1e;%)6<'{u+޹ESp԰0p @1"BwSxKn D#1((HDħlIۇh6]UU3"((Ȅ~ wrvio(:,gBIIN1V-C)\Fn 5{fP2c oCQKv +<;mp1^0٥"~#d}XU7%_b­2|JϏ)j.TCۚj]1M6?K756%x?O0SFvj'TA+̎Ţ#ۡq.=tF{t:4i:X )B0]<(F ԔHo 4j1=F|Ip~tOy%.L+{5tFL{T}6O.?Zuz6PMB/"|M{r*(wt~갘W~6%)N.mU26ÕVn!:q[UsqKLj<:|SX0ԶHXc4hQ ZKv}Roo-xQK0>GbBeɯRBBck숕%#Y+7cu|'YXة®WuӪUOJNaU=4RT$UʦG75u8VNTUu%gƳir Ή) O3jn R%X:F/dl~ qt6zgB|2Zٰ %vSIw '{ Ъ .-#mW휅xм5$5m'tc{J?5˻ܼo7SyP01-[ qt{'MHvAϋ”795libkB|\~ !cYL.(ROs秭.&&e E~/m(&ۗxUyn/Z7;xKr0D:.T#4*F$ۼVM1zAJ[I1X" ؎R&p)oJ !LzRƈ _7CįxsN=SBj# ΰ)obO^4G<ޭxo,kN˚2u5<ٷZGߟt^MmﵟsVN (wtF=glxNKn s mEނ8Uo_ :Ii3Ƃ q- X"R ;=mܰAB4:FeLq"ٳ- oQo[_)5|6>F_7LaR).8~!-6'{GK}o׈Jkgp_cLSWcv,5)hOvߏۦV|y %n A;"Tp%E?dzoxOn +|_%"j&@lC=g9S4&&P)Fj=JsWg;:MZvZh3Kc&\z*( /RbXG^CH6;&܋J[fovG5K_ &~ +Uvw9ӿUoZ;o!S=Cܨ@r~!pn ̝~y!Fʺ\/_;}kۖٷ?RHmyeoKԞ {9-LqgTzjPI4^ xMn |Wޑ`BO{ &8 j>̲tw ɢ%$(] &M[m(dR8Vt:],c*%&xCM)Ve܇} `UDLW3;?XYn4҇.{@G3i+^ap,_t` >U5GޝYӾ/)1ye6m{3Ǵ69"i B} EV(>MNZI~݊`xMj0 >%x(eB1vu ACʉ+2iͅ8/$@P\jX}NhgxpN"n<3Z!8-V\ [¯Pa)?럾6yj3O[s>Yl⾿nPOt)X h/Zoi4c.ᇧ1qԩ_O~er+F [yДJkJh$:$~ xK0*Mi ˃E89!xf_~:%m <>EwE)qKq4#4~9@79m[uИܧn]smI{x{r(ќM 9kƉEz/sxMn )XwI`TU#bkAm Uo_f [gHځI,  #ebPB5rL ( bk%[e85&zMbq 飫zk&nO1f4c_Tu࿘ƴ]bo^'wL/,v;W>fjbJh ZJR`VsKq4+4ޞhǜSUj]6&w΅[.w5(w+>(@F^7`}#u?6bY*>#xNj ORB_F }Cߠsaz +!(k5^,^)rһEjKf%%oAQ7󪸆m1C{X7({o+đOkrxŜs!$v6FzÿCO9g-C)[xN0{?(B@-N,.vdoSP2Ns0΃G8U)ЌqoX"B,QRYHiif˅JWה-%OxOk]V) ^6.휶'{Dfhݿk; ٕ r8\ආyg0b/x/ס6ݦ[l !K\c }(e=u]uu%}/]ݵuqTArިN=m2!(ГoXxMn }D#~DU t`x8V%Glf|镈Dž ʐNA#D'Sx9@Plf ztaV&Y[LZ*'?Tk,^~=sМCfEPrzY\^y+xpNl-7֭|}Fyqi-5OC5RY9v(Rhqdix%10 @QbsNUCŝ{&*1}ckTCے+V֠"ݨi)?144#]x-10 P 脐XI`c›9o3بeEYȁLף3N*B@eFh:T/6ܩ0h?FiDkBJګIFB$;\w>[t7umGW.uQ4ԯIeqԽlcRuU/~v$+xR +f-1Ƽ=-E[@R71ΆdΙ ӛAqƎ 0ITf(V3~81*4&!p5(q3׌iԑ9  Jj+*^ق7ݔ[9lR)N$@JT\_*/KK1|lCܚ](oQ3B"9]e:\J&jO, SSMG֧~khň' X,5/bw/ʺ\/v}HimU=#e[=wjs<ǎ(8֒&%M9I.dYG"xxKN0D>%$=Bh $n7;r$nYpjoQUAR8fgF ã$\31"pvB阯DI .hrbVٳk-ھGfoisvu{BР[=Kz>\ cz' !r2e^~]T\[K*þ}?j[z;ƤQkF 3JM@:AdV"=\KFu_xMj0)k˶B)P]',KF}EoЁaDRP[|7lB߾7\fwUD$ 9Ut̂3`R*F{ q6h H+Q+-wau'oQိ:_ 1rdNqF/tῌ{C[KK• !$m8+~9uzSϣ>SMy*NLXǙlaY2F N~Ju yx%+@lSU U߸[1JB^ B;[!x&*"hD!ֵĄoR@CMdۗϑ^{IB7$xNKn s c0UU,*l5 H޾tmy5 x=( \T&  ranY.E9+#=hɔVH:#]\Yr,a tftЎa]T%9#PQyבxj >]IĨC)]:D13k}͹,_-5\ jdltK$OS!qjHv[0UpqNt(bΡfj□,G5sbz> \3n%kh{-l60fF .u⿜\ sbz5.iOXk03!$ /qCK}H%!vߏQnC-gqG34uѹ#_F(k|xN;n 9WU"R\??J +rEni#hj& 7Py f THvaw)V0RN{3*R+&Akkn)k5xK[_V<-=pN*c o`-=Z_{:qr&{)>P[ڕ /lah_S^zXY*]yީ$Dں΃B^\yυ@Nk'ĵv;uR+c-1A,T<Gaj>MvHպwWw N ]{SxNKj!{ ?~! Yr>fFQ;0Y) (D8Ϲ8W c,ҠིzB(Lhb( HtaE'kcSV|r2E5g3_ 0 6z5Lyx=n {NAÀaE[`xh))rL3?kBBYJ23(bB#Le Vr؂Q/̐-ѡb ,ֳ\*Y lЏq/sgnN_bGoq9}{pfza][j 匼yO7Hmԧ%a3\GBHLm_yHJ_j_1f;%)6<&{u|ʙ7.5Hp`\+5`AL!xtEr ?Vz$xJ0yK$Msp4 IIR᾽ ͜sf`$cG2QQ`/5e0|B%90P@S1b,-[=G6E+5IJ,kL𜌋/q pÌ{Dxt5o՟֪?c̙REjR̿kLTLɨcPXbpF6NV b 3KBjyt]U ~t™9:<3|^3ʧahfF F>VqQrF&nxMj0 >%8?JEPd91!tC)@{[|0Ca2[5⌤ I7X[=Ѩ2uZkDj̄zn6xk<%wk7LJ5󲡿Pʔݎ=<2ϙ&^e - JkC)s ϩP˙)U '()4EK:C7Kྦྷmq 綟TyNP%Jj%i}tc* @xj zM'1RBE1$5yܜo``rTOъN RvBk'P#5 vAR3b@Q9ZwwԔ=WJynѺ5\URki o_qK3(d'R*t9)!F;f6Ї{@*z2ƿ(A}vW>jsa||-c{3?o\Tr`\!lP!F/ҳ?#?t7xMj0 >CvR -DN`;޾7xxf"FxI=yѣ' 4j;v`XaHhY%LӺrI3)$ó>R{7|G7,7J~oa/i!&G oZoҿK嬀M [rG3VmBۗRahïB !^ݾ\i˗R04կ)O=^*=2[P=~FS=r6ucf:FN~xPAn  608H9T/`K1WKafvkFVʀdbeo 4heP KA(o+&OjXJb,<%juD BɆ-ċ{_r^/]WQp=::<.+=}^{7L oUULR^ox;N0{bzv (9g%v8=L?FBN8OH[#tbpRQHBwҬ$!"&'R!zctđrBK.xϷ[dx^Zl~缽jFoZҿǎxFr"74)FiZ;;\^sUX b& Hiki 9`nXitX̴pQ(g} 3gێB ƣ|ӏc */Cz_)vL+u52yА>\LGm$Ԇ^iKuc(WO1?ksSO<&Ҍ.3a,gn`3gqL !j-Jp>`u%xMj0 >%w(e`^A't3S {>T3"zvY lCgiq䀌R qŜTZG'@q0u3f{ ls`~(NL kEZe1!4d;8Wz[=n<'ϏBZHNR04S1Kc(C{tjPJ9jgj9ΦI:;1sPƺ(2d~xKN0 yVS$m~O=]mR)O|}G82=MyIN!5Aҍ^:-a TT/F-10.FltuF{%x+8 yIjO7%ݏy?cpmHkV~۵'k[aM灾Bvgpo܇~NeÜ18>rBhPQ vTt1~}+x5!@ i^B7Kr'P>0~A>Pbvky2z&Qa(F+ʀYE"fz|ɞsTE[~8 Peeb9DN멹h._S)6xn <+ۀCTUr>? Iռ}ɡoй'hZEE5ZÙ#jx@E>In m@dE*gu^P:HF]K|k=[ Gime{ƴvN52r)o? ְ}c$ wp~_zƔXjz)pSMיK,Q nA;*\G}xIn }dLQUER{ 1J HܾtmްzP% nl3zOQx\i+[E%sn)ع[}T^!60[H6~;WLF* !4{OxTLݱ?lfP}jyv\e9d;~u8{m#oLc(aZP&R2iGĴPp%E?Zvגx;n0D{b{CI#[DRl I9A)S`\853k%0:Y N})fZQRA$G.`( 2|dtFI𲴼˲z紽-3pۑnk_`9r*bnY` XxoBv՝驔y뗈}˯x 6|ۅI!4hFǶ,nt4.'\KF~xPAn  0UU* R_rάWqnJp¨6* !U 4cFP\+RGYߡ>\ ~C_;#OsfBCS_н]GzBO%gPL}jyJ23̥'1q42NIg-Rpxu2ډ F'mBؤ҆+0 owx;n {NAi`El)Eke rEni)F V ZzlQo` 2|i{h`1p5f-`]C &'e-e+A घѸ >ۚ }/>M?VIh(}"ɛ0B{*$C< "M<9x \{^v֒Kjy#m~!oY DkJRƞ f.gvޭ7rcKCگ1qC \Cj9)&tt s^.Y[7VK`?ar)xPKn s .GI$FU5,F- |:H޾tԛe0gulad5 c(s<ѡK hR܃Z(9J6KkEl[.Q\-Ữz. q&D)A_uu1C\[[ Ϝ(9eO>39>݈ + ^qZ4u6\/B:ksǤN=>re`!0>eBY0J"xNKn s E3R/]ѴHJ,B,_F^xg=p@[05* -,U'ͳέKPUibvυ~ ||OVJ/5_)cZ3&qo eO,ui$ }ΗZij Ɏ_=tֆdNCZ9%(M5gR 039l*Yqxj0 ~ 'd)eB=9&зKt.f@ÔYFc; !"wѠb9Z4ފd G{"b/cp(Q|׃S>[7B'%˧TfroƼ>K^^t麔R& q-=FM-U{9ڶQmgὥ}?ۺcm _RpC0H[AAd:g7L4vؗxMj0 >ʼnx(eBv"{;؞)}]JoPm遞kU ªdE2ZE b^5% 5Yx /$g k |{&xu%s縻6,y΍6z[k/fEH ,u r7tBHD?z=c!&7x^;:K_ą持yӞg4Zp T xxPj ??YB_b6)k)}e~0 Ҡ|t!hePp0!Xnv`TAF{) ҢU.1/Dp[k[M7)ooXz Z+Ky,.EϮbGkegb|/DZ\.&tyT{G߆l/.M :Ow$5Zg2ά犅0+cGi fwxKj0D:m%[,ЖZaACr( Z<:2jc88 A =E lLk0DJHJG+hЕ@<-Li_}V~ǂKl%ռߖW.1N"걚.qп}5Q᱖-g'$,2|4cmp_J]WUVl~tֳw參n̸~]#73܀`qRR4v}Sgu 7||-xj E ߗ$:I.,C?Ltb5-ZAe=0wnID n\Hc4%Fv`XQ/PBH(̽ pd4 Y=D~O}_#cƭW?+rT"JP K'shW^·kIrB+ZƘɟ ^Glu Gjӭ{>k0O h#܈AFblō64d?S XxM10 @K/`8uHlwDG02nn\fQPi2 5, 9Q3 KJW WU|ؔt14fDi/8sֻ{W$= r(x;n0D{!\?# >gE Ha +D ^ d" l|@+Hύ -U`0F9{?sm lk.`~57[-GnJ9WݭzH|-EZ"ҒYN#!$nm_i{uMSocLv%)6<&{u3= Rr0͜ 11,KJxʗxN0D $gPW kڍ8>̙őD-(V m (Ũy Y`TheS 92ngdtAV/s/}1bOq?> L^BKz`{iW_ }8Xb&,PSwmR?-!$YÑ}X˱vjSv.闻]ղ 4ռg(؞516vВ#sxJ0TIڤ?, +7oۤ$B<71Ü90)((e-esb@k!NJA)4o:Šr i9DŽ`LAS5ҍYSy[:P6@Z2\ !B:Y?Pv8ŦXoݠGg;O~ BQZ.(cc>kv8CcBb><V@UEƦ2庋4u8|0_\$k kS)lmO[5r x.qKpϘZKC1JO6U%xOj0+6ؖ䇤PJ C H W.eggwAHmI$BʊtRkc(ײdWEH2TmʼnkĚV Pkͪz5Z8~ We% YR'#ۘt˕yLb9f3>_/D]k\F +/^rH1,s%Lm.)9)Ʌ&M]Åxh bFx=n0 GrdJAQCEYerܾʐ ?)RlӲEdP6^xQ n:fiJ`l8)N{^IG]GClqj$3kH}w bL yi؏f6yTvu. mp q,|> Ӑ8GlpC8_&%o69>_.gzy%cRLnYʪ'S?tO+3K(%Pm[h^wEuZ;J7(gqxQj0[-)!\R$_Kk[Ė~tga`8Rdmߠ5d56fZU&0gG]m ʮNhlh8j!I C+2Û3yM2„ ڪjUWI$dI]31_<+."?%>ݞ ɰ n3s Kcw~ vZ,=/YcE09o;{tO>2bX8y9>L[۶SUr<ץjTZ!DcFo+* #xN SܵPZJc&ILt¥rh(3ƷQ'qN6%DZi6576mmZTZrɢ**@[^ 0B"JYSbSNqG>OjU6Q<܎z7Z5;`L ¥-M$1>ؽX\ĽOk~RnD0UPqN!f˷|ulFBx`VS$j|Sm YELaR{MN瘭gͦ4ou"|t*abt5ReYD[probA6ZJ!QъLjZg`FKF>]xMk0 :ıc;_ѱ[s\ge~..ER DkӢjT+E%8prQV֚:;c%B"1H4(+V"ùX6tMjM[|cч/x\%1qfn~t80QiіZ TYnEOwkxfn3JR[, O{{}^Gk3,9϶w:uEd>\˶F:x>E+bؖӾTPMU}ΕysuZ"E2xMo0#lEUi7ijgcldwFM5:F;x&8D(E%v2Eb+}]Es2¡ PYY1&r*YYW;l;IVe!3% Ig->9&Jn$H;}N9FCF,|Nh~nڲN Ǔ]<48q-ApƠ ڨs k0|%0ܭl[#e*Bh2QM'aۍw?! /5{.NIP8.p v3mdg슄CO+#<1ѓBlIDtjb5@&M)KujSE8b}" n1YΫ6.xYnY}WT~W/rxKj0D>l}؄0EVrjkLF@nrԦEuHRh/Z)4p/@0Pnnh)a0.䠐Ljj5(͖B5*\}볛cx#+Pªꆵw!z!1p4ncH>11ٴ>wΊG!9îki֮n$^r~VfoG.SGK: т3ajΦglIm^K_W.uxj Su$hRڲPCb7Ѡ.}ҾAfos8}Z^05J]J<`=񖱑c}N;CNRR(ʘ1'bR܎P$yQ=^DkI d_˿ɮ- 32]LJ.Gxvqi-uKzpN,TD zaP4ܝW(=a Rt&IB*|>4zQhwXMYoض}rj{B`--j$xpOp'L+ce|m ]xMj0 >v] I;P@xL'vj;sޠ!ͪ&݌H9`ӨצZ-ŕPd7cI,LetVtq8#G!+mMQo)5O 5JWpmހ15yjmEZ_`swRG,`!`)o/F69l'zB+w6OжGӧǣTehlCGI gkѥ#^Ib%њxN0@{,\!$* DΡ%q8 DAAkiє#su׷1'%wB A;n5R^'r\ NLZ:s"Fi*>"1exr#dW*av{| X+RC)U1 j1>H.>'_%uߎp~i хUcS8BmTk5)'òo%ĭFz/9(-Ql:*qm }% FxTMo0ﯘ#P͗#ZTq"mA= N Eq'[ϥL/:G$"zBky0=L΍RZ7:}0CcX`49Y95bzBƓ2Vx>(r al2o ^-}6G8cƵn9T)\;/y*OFSu)eYsN`H S@+a& ^)?c crW+3AI5M.j~y>}R}\hqs_/X<=˯偞΄պu -v`Ouo~,fYxPMo Wp7@˗YM\әgCV2 _;; 0ֵaC9Q]8F)M 9*$kP-*ZF%,xBS׆ta FD0%FDb@W.d)xi#xMo ˯s#ۀ^UU=C)Ǫ6Z4eTT. =9Fu;djk;q#Rۮdh|:JDrȸSk CӨ{{^BK4so-,ΘJsO?;k.L0e2u6g_` p5~>ǰ{|~^6OQ9ĺ 6OB5d'k֒,V~w2L:TC[sr/CKΔwpҬBf+OP]J˩iJgu-7S6[ۖwG*8(=2Z v4c+:/x6@xJ0} ήM4 #Tvrۤ$FP5k^9:c '$S RCFFŹZ+!# N`֌,AubXo:*<%Dx4nf.}cݼ6&l踐S?5+J-9ӯ*xƕ 69+..9f;L Qjap]!_ұS|{/!F29>fyuzbOPuJSOH=exw]qMBԊ3]zlT/ǎW֘yxKj0D:E-ْ! Yr~63 QAjӯIeQxɑV2\*kIYЂ#J­j^3zAMO! 1z5e> i= %Klyo-=zW\ F.Zo)coAMu;K#R3VutBR04A}x!t&3tԛg[%RS2r/vtwHZ&̌90Xa5IH4.ztF[;+r*‰|#[R|_Xpo- }{~pMڟ Ũ\6V/e͕rv}x>>6!\*lxo?ҵ'Pr]'h4 >b像R1qm؇or2)Q[픦[W+ZF)8#?m3xRMo0 =GeC1 "a.ErDjlɰ k "Gr T +ŕ-Tץ^,bEliD8)gXZVкy/\DhWح87|pb,>.0 =;<5epGGBu!#y0Q1q |(p ^X .`g9%`I1վf.eNUxb9["xKO0FWx]v^UUETޏqĎlĿg(Xu6<3K}Ϲ[z7 -hk@NZC6 l`;40H9JDi'F^.1sL1^=VDs~moU6qE9x''9fX/ \Oj=Prsϳ xx{ySbѸ譵`ɕ!`@]+-j(>䢂?xOm)gh>/7DekBK_Cy49:\`kԶxJSވvgBC5q+qVsԎn6?'xRK >V0eY:$8R@vJz*)ko%ql;vj ѶS6 4J4RMPK$랎 %&>I{Z|Kهo/fo/~hRy8ys bkMJ_ \|g#w.nPL?wGbJQ ~!;DaLuɊ߲ 2!5Ŀ`Gm^?: ;sNx`0E0Mru/٤">.TU҇'fD[Jaw 8}!y=u8]1M:qM#xj D~E$^^}JB?B5/)kΝpBV400 l$Jhqvha2嬘Z ˼IZ=rd}<7}?brЧ~oq뽟/(#&mKyI~Z MN ԝ4CBZw|^JY\w9!g> 624m?o\!(r`\+`c#N;&DmJ}vxj0{?mI~|p tI/Y+8[2dc*;f-!Fp&NG ͮ883|bNɁjbF"dtJ1)ur ot[DxYjeٴ_9n@DnXw~~mί2|"|c>gcZ*a&1wMKB=|;}ut\p羶pab$-ډӒV[,6ExPJ0|W, m&iCD$IIRſ7'z_ ;nI`\2ˈDh*gKÀ2IӬ:a(@jTvd̵Z[)1dFSaFlr 9<謗U[?v6.w@HepMj5]|)/f <Ŵ<Ą8_tS /3~ lcO{3l^wg$s}\PEi/msAw1]rzҗMT(8%%V"y &&@oל5xn0<(F5UU6Q+5/P`,6ͶydJ0 L Z2D]l'KT˺{Ņ.dm(%/JԂj%S*c+$LG#|w r"3~3L3OPuQ ftN&F|XcGi>9Nq_b;ݓPi -e$d?Vy ?1QA8xc1g-np {ؓ͗oM#l[s,^"+0vF*:!d.?#7z-fz$LLɦB}S Vfkv̹琯}/᦬ڢ,X):m R+X*iwmHxKj0D:E'%Y!,YYKFr( MAWԣ{ mUOoR!k ߴytr7n\HcSya i1Dhd}/j~{3fA)G>+ "L` <H@>ANL+Ծƾ_e9f3p.<2^;^FWHJ0UBL`;aF,Ӷy.^%Kxŗ xN svm ۖҍ1у n|{ir? 5uM61EU U-)2}l]S!jݛ14K.Yn)7D8,hap+rJky9|vXa8۶)lh>$ɥF..~cutX&g +!+P2?19oO|vi!@_aO!ƒb]*/A]UeUZ/˰UW֟b¹!3xQϋ0x7uڤ3IAde\A"ޤi6)IigEZߡ><vܹpnڶ%]IuL2%@04#@Oxs.XL M =&xAo s#`6V=wlLcn)rax|7="S۶iZ:! Z^-6RԬPfh#48Q+Ɖ=d|HݨeX˚ebp lA&tҋv׫0K13PڒU=%u511>|Gbټ]_£4"%|%{΂ ?`V8\N?V,x-!.xG.5-:eG<0Ǝ*RU"7juD;(1XBg3?Y|iZ./4Wh9*YݴB)fXE-PaZڦU2 3T0M'Pk-Pt N]Rιl&qއJ.RZsl*:쿏]D:=G?yncQ.ę5d_x]WUNU7WdJsưLUZaEiHBhd ؊uIw}xAK09MҤIE_vmRT[A͛$DKɹ0BE )kD+:;`=Y!a(T2i CYYoixYV1DŽcL9^=CeDz;y~Ӹ4..w󎵪EtJ9nan3(S :OrAH0)KӜqkB8*jGCc1_Ö knIKSNՖS-8*Y_1YezaJj%8Gx9n0{-.f]܀(?7L! aR8rŅvVc)Cnk("D>JAQZa$ލ;&tZYWf[=}oC:z;JIPĆH ֎J@sxj >ݗ$cԡ w0zMu }Eߠgs~fDZT)7.\vR&cʴ8Y +F?k!QqMf9K0am:^2F!6V3bò;8!DLt;~|/p`wn)ՅrOYCW삻@R0ԯ)yXT<sehP#~^G.%92:y4KG'F;PyTK12NxIj0D>mCBCK|߲d$u Rj0V*r1H^ @0 H奴t8`jinR1nf( fg<\{7{"oPL^Bߧ1-x%iJc֐ z_`V . WrRzC 4 Cm_itԺ_繧)$r yY3gcn7.pFztJFGmU:ag {CxSKo0>o~ϴ8dPR*8 cOSǎlg=twQժ'r=vL uQ:o2e5E+>ki[]W(D43 ړK"Ad][iӢ\UYY<]?K- !ͨɞ96!!o&&UiEi4%W XyCc5[+7v+ܝp$aOz h6<\GϹiaAv, ӂ,hG53U|0| Nd( i/]YVw3nmş, FDb ;g+=vO- KbO#h#L{y>] >^ՊaG{p+#!s@ieV'^ 촀'CPf8cqrqR8Sja\qjQnzo~zoe'f'awb9_s/RQ4HubG}ܸK\ŃfCX'^9a01~*I4kj⟼EJMGmߋnڼ.4 m?+xKk0+4ؖ/\@ifYkؒ;ʮF8Q 0 ua]3*_F15 44L X2K 5(nM=oG6臋G) gh1Bi>88(7RayMڵ~~1M X=<}1ŗj;7](ݱulziyqzK$ W/ 4j ؟wiÃ] uBVp%i w, BfJ $Պ[LI]tؾO+Hc CePR?gS:xSE1Tƫ+9w1.|s_ώƽbM߹)iǡPNuB\L?ƧQ5xj0rٔe  !^ƶY26n޾Buӯߒ3M(hsL*z!^Vcy'L`e>lҞU=RFae*vr6pcp>YYE#&d4iٶyY$5\$4.9/\I ;Gr51fF_:eOV '#8ćA(= )6<kPZ95܌ یG`R oz‚EI;a`Rzel#3n+??[ԛ0B L6_b1m\\1^}]s+odr'G~s=Y֍|}$\hU(x4_X;wqLQ4)i38:\c6!v椞..j4}maRII#/2Kl xj EyDM\,_I5-t^ΙeJdJ Yf4YNbGdSɆFAIˤTj(lDe .1}K\\TVDx\*o|^rDIQԻR쿘/1[TJL?Aɚ.‡++d{.VZ[BJCr^O]WUƴu=ujrW#=y/i3㱙 mFME3(8qFOu!xAj0E: 5١@[]cy$,#)}hoп?}8`vF2%[+[Ih-1Җ$#@j)[ U9d,(n@9uJNM y_"[7 }J^<.km5hQJꗜ_`ꁿnn]\{ %DK?wF<_#rbJjƘ[rn[L'^!4n:Dwۮ)ྦྷNmrnVj\ xc%:U? UY;)R˅2FxMS0s!cI(Cg LYֶ<R`XJ;u^%b|lb ,r'=w#1kmpB;7)֢ j Ec=VMCM95F̒4"{#}KTvyDGEֿ-?%΅#`{f5 T0FTC!A Ղ)TsBV ]ƧMn8Q7Gekj' Mڠ`39=q`F4k2]AV(n@YL,6̱ȿ\CTrk4@+d#A dKXK9:: DVͥ'vUڴގZ5Q6cFYq Ei\WI\E:M#\eE&_ {nxN0SNb;9!t'q6NDbG+xٙYK% M/j(h3|Fyʋ%R#︖BHKíEfS_$JϮgymX_0cSN#-J9ÿ _C\/![`f ނ _0~-GtfYRrsҷ>4)v!&)F 6Rz%9̅j.(o:F6VmOe5m' HÀԒ-xRKk0>ŜmB ,En@!SuhfH P)^VwBVR=睌 w}rBO6STV[YmY65^TCS"s+|s.h"13q~ 9<ckq%1kt_Ȓ8:oS3. Zg*E =, ڪ#*Ma>(VVyn00oDA4"ȵJ 0Aߠq@ r%$yryqJ:*IgwkD>kuЎQ.HF>#oO'7Qd-h[Zr*^Vj;fI:ŦZ!w2Ƀ?_O-YQI;ViQ"}aP]%exMn (FUUMcGAg33Oo^IB:AFIQAcDkO`Ɇws&Rˆ:4]sjh9[cd]L?=}D誎~q^/7d %d: O_Jm3)~kL5mEyǻ=cI% ո![JY3|ƸNbr]r+%mx سc Q 6r QR^0 ~+?!xn ~Ql_EQ4Ma cLcFӗ[}͜F#Y$He؏=IvXdO 1:00kR^"CH4N1-B=(Z3![$OV/p/;a·iP]ܳLw3X^\ZG5hʍƐE.t.9aOA)7H7Ly۔/WH%a@oqޖT>fr6;JMUd]\KXM[ϔh8R{{CߟD7Lq'jfC,fj x $^$xO͎0 >O7If@h!rGڤJRd* şIP$'4ZFȍƾ0K`z fTmhI-'MB6<>'upkvy5GT_P_|X/>P}c-j=Çe9_9WU9ǑT0!&o 8~O eFp{qHh(|)ϗC} x?#iv["ݾr`]USr6g!빮3{õu{Lոmk~>6 dY3Q*t:A&AoxmY)xQي1}_ԡ"2rAAꤒn&dA%U眪@:O4l3Y0&NPiRW;r &!P"8q3I8*<$O]s?Ux} mFJ|#wfk`n|[J_iŵ1{_{[/dx{7RH j##pՍʣrs$0cBU>#˵|DBi>ȇTTИ/N'uITI4&Kyg-nȖUjM1mE,~sӔG~MUUzKu|p&/mmhvGL-[lS8ܷ4ƞu4 ̺άR|yϪ_hxj }D]5ЋB11 A͖}moй3p>$"~Ih(\ɒ lDkCIK1ڔ}?8)G=hzk' 2m -}6J9V5.8[-/ vJX4xVe.ƞoe"+1g7)q/-c,Υɏ }yt]Um\R]\\hpsW_\vgRpiiCÕnBuoݹRoЦ{"xn )X7 \UEvQU=?bo_)}ff S3vN0vLӬ9՚Q N^FNz6]e ba2#gm-EkaIֈTQ$ui7%(&L4T^j4ZῘ/rxJR)`*szbݙXV~׆o)vd.K߻US<;2ǿ }n':7z|xW9׮+n: MKT}˩%>}/C\j>#Qb(anDwdLsvrQxQj0+^lkXPJB-"d$%_?^vf`ff@[$auzŠdW%⪌bMNZILʐ+JIf48et[O  -%oz?)9/8r)%<6{KHBF@l-ck<Ր"8*]\K!z3|]y.,gh< >RR1q5߇z<)P#QKf׾1uLJ7{(xMk0smYBhCa,"d$m-2_}IZFB"CԚI jZݷCb- ņ\R7NвQ3L}Ť{V)}@<`D)nܯ䥾[,BӈY~EZ} q̋ubX?>Fڬt{H3chT}~ xpR0)OL>TY=x0e+{eҾ'L;>Z{ ?5VEQ,&+:@1ujqXySLոmm)oIǾ/%V3J ָDxM0#qVMI ] qvIb6#mſg=, x2g^;!Bڊfrdsl9/ .RT,|Qf"C U6X.ʹ2&y&ϲ߆:X; mo`=DX\Ns5X`bU 7)v  ,z k:Lwe*X%<;͇qAYs')MN+W> uvb{tCT.A k%YOIPlE0v C>C7%|!$1\౟ УO('+eİחn jo ZƤQ;<{%z^ |':f~gfJ.2Iȋ;c뺃tf G: nkn|N?N4[fi3K,-,EWEƢ_]xj0E mJ tQ YjHJ_̽0@"ȤTqj7^F(^Ö7kR8Σa1..k3%hfB@nR.-vbݺ%K1-y{&Bj9>CZnyR׼µ>qgy{n\w~-=:7S(Zu#@GcBiÔ@2xKn GeE#Vj0ۗ.z曙hZ 1B"WJG'3{UԈ u춆@jϗ=%#j#g/yӚس=JR/, w{حxK|K]ƥlTL).mm-Z֒!Lg^[C !im_r4u7lRӯR>1gꙟ7\#hdgè`tC^p-C*xߜxj0 E $Ju')ZE/,1}2\S@I"KHI LµSDN"7*M.$|0z {-޶^ᗖK^1myfJ[![u.s/aݻA嘷MctfvFC^c^G}~e>RtA!eպwC%iJX'Br(2xP9n0 $.)^80) %:@E~m(f["aZ.Tl+eHvp-4( z 畷Lzi2[15JIܣL[ ~6[jFOqqHe7G̥࿄\@_FǺ2]FBHKfGZtڸvKɻ>rs:iJz_g|XTkg BKOtxj0 E ǯ52E9Q<g_PYZA$x5Nktq*ml&e9P05b0B\.`կb}¢v˅||K*ݒS|Ka?!qJqiȉ:ݷ_d;DRkGqk>ݖ3TXOcL03^ ~DDJ3zi+tyx-10 PStbL#BU/R\t`MGlDǀs#Iꮅ55f.Zh\3kCQTf)5rT6 D}|=\$;xj0{=CJdBׄ_Yyl33l!PnBuQvhz%:4ƈDae0 qD!:G1e;GL95ӷu\+8ז>/iѸu~+m# J穔/eA1=BH ۿ63zܶ5if׷i9moMs[/BJh/858Xf,(Wd}0'?-wxKj0D:E[BE hKYL,IN,r Qt+!vRjgcі9XP$CK $f1 'sVZtA3¢Ν m  N%|t-n>Fo҆+j)\h-F+@Į@gZ_0ƔH 3_:Mݍ1㸗맘1qԩݦVq!3ʍփetdt0 UUg.J}xPKj0olc}JI E^i,I)UA 0L΁䪉EEjr"B*)gqB=ݎ H= s5w(LuxK]H)4}06\oI3P*f8HZr<F .-,+uS th./߱_?DZ!DR_pP=B i4f8! ~auVrJCw&ć_-!KS?8])Qq#/͎mWZ)9.p_Y'7I #qq;ÝanyVvtj }4rG0$~_WmNMn3ϐsQ$VΏ.Fk!5iMKfoʪ4%e+D1gf4k{ʳaмi*F~Y#xO!(v!,쒅H{ґLk!KFqȕS[=H#Ģ&f,Soɦs/P`/T!yJI!$騐KLtOQg֔]_%R!RᾯKFN91&D ^.hn\N>W|Iz0}-an]| _ۆq8>ǚw,q +\#@Nj* _ǿ' n/\ZDB/M~ 7g}ΗsUպۘܡ;\pjZxW~>0ўR6hߌu፵FqJ0J~ Wtxj s$'FJeK ->щ+Ѡз{(Ta?0G$ L'dGhi\ĊLt2JV3bT3uǽAj9)Lz1%9Dt`CB/Q%%[vQ<"BxŀvL3 VUw]]s ԞB\Jrn٧tYF|՝ۊG2A}ܰ_]1`Rr-x_.Ԕ*r>}̈Jޥt۶T -eX[m)cD A 0p!&xozR{"xAo ˯s#WU5JM6Fz\1FA.F+#ȝ0BM̸,l䖡R5:9$+Hm$=Εd'gM%Ө>2d\S״ExEFIqm?AkoSxƄҺ׊FN%2w9n^}د `)zE+=cit)~w?o;^`߼ctNmӌBRLں7o7rz>+ }f]cR1j.=!d+c Pv5>5>4bZlaoO&(WRv3k N*:1< xPN@&qa͠:m`È?j??8)tCHu<,f9h=8g@2?,g}¸F]x/Q/Z%.fRh$x<oGԧ8q:+fZ$I?T}yL2Y+@k>hɃ̷*teJ޶`"euR.Xl:~,D#xM1ϛ_Q%IӝnDݑED$=dH{3xd]T$DPa͢-Q9dYS'1dvbNt0|j=cLp1zo}nڟTpjJ7_  ){|}wO>[Lkxi{ kx%OS1 N`CeЙPpŔ_>6і.2_^|9ݯ篐}f__Cd1:!3Pf6ܶ55kML5kss[m֖wQp&0Љ3CYUI,NjF)8xJ0}ˡm6M2 : Ѕ q64)i:gsفNIjZ:kq B  dd^Zzj"5@Âc΀UjSL>7zS@wjUsDt=ޘ0ʟDc# hKBg3zyIWL',O/L> @[6^%Xj^/vݭoҚ1&c Kem˚i SZk\ Ye\Ȏ3JԆxJ1yw~Gߠw7!,FD|RUtQ5N*MU\ҳ#AjD<)c"UhF ۳D;#*3978Zdxkɧ o %o_G ~M0H4ގ5C/ebHm}5Lk,RC!3|]o]'hP4 ~>e>ྗ CqJ#LRc~/tY3͋ 촁xn <5 89T[,f!VbWۗ>M͈T 4) #ZQ3=\uacc3J 0P+!Vs5J9jJM8GL?3_+#AQ} | ~I;q,g֎v[kb@Gz8ZXk Ԕ$=ftڕحB?r Cs}Ч~Q*{mTT ΄Q98eImQK;}[x;n0D{b{C?#.p =%R4H*o RoSs@GJel_"Gm4U+54idd+H#0L&e2ƳVaAg9JC% ^S|xOgS( |?Մ[?J.C¨k SnJ]dC` |Rܽ;ܒ6o^z+߱ JGӧcm0V}jשm1HJ0UBt#0r4 !xQn {l6DU5 k$U?a#>JB#ge/P(:30Y -Jr1d C^3'E)=R,JLJML[Cя.|5UgUo/nޚcB0*p6Tv࿈kL M1d{Sܣ>8~`b-!gh=CͧsUԺۘ܁;}]Jz 9W 4btnh3T4bT ƞxPN0+Il'qB#Ha+~t2^&v8]UV jG֫QSFYEI#-'%B`'G'FQI>J"${[5b-<q"q{̂POJTX2 %FP Zݢ3wND&K@F{o%|髭v딝>f"J!@|"}K4~{u$ 3kZiiLَ{IyJ-SԩڦVqc!Y 0;ògõdH~\vxKj0D:m=00@nOKF$QA]UЏjEPK均JZoI)gPXrQʊluȅ9egێB ƣ|cn;/󷸛ݱR)z5o&G}ԐdiH#!$6<$^jݮ6<'sugVI56,!/Zr ?vBxJ0sHI]DP'&)I*Ee3-=NkpB$%6g@ I2Ԃaa`g9!U{^CST& <ވ8Fw%>16MW*ٜտUQ t1zD~~19H)p֗QqV @| >*>E7UUk+PMJmKMn/kⶥ\w~O{gttz&RwiXd|5R}OxQAN0 q@miJinDTMhy=.?G#9蕴ʌfBҸqкfYmX`Rg3Bs6^ŤTlpvxݒ;|kWH%B|3՗%_)\ ReZ# /b{ts'w@!ܼ@%  SG:  o3=s fRORŧ%w%]LjPQlFF6zY+{%8#?~xPAn0 s HFFfIBG}==[.Z jMjA"óp iD :ֳF&,Js/je;Of*{L;{ѳKf7h4 bԻR[̪LPv^ \xV<0d)%2y\\nB./~ gWޟ? +GC`S'^|<bq14UUm5܀}mjMLG-smIWxyz&;)Izb E=-B5Ns?NVbxN0 } 8I4̈́WiɔdC=7ﯟ쒈`5F:%<hhmN(PV80F#Q[h'e ^-1}[\Ԯb =GݧTehooCuG&FQ>OS]$慊9+䬎RpF~YxPKN0 \Sx!@n4= HoǟU \Ii)[+2]0Qꙣaz3E13j̙n)kv>OxK[+ܛKgcM_1ĥ C_\SԐ"mP e>c(C;nj>G9|Һ]:*n]Y3>xO0 +taIb9vX–K =يc6G~Ch4H`1\Z9yftNΑ1cZa+<+= -"8,( tr"'n^ה[&_xKkW,7Ͼ76ش'!r'֪kj"ֽVT*,͡v!–} xP/Ok%{5DGNvx܉*HCu>Ծ}pWh: >␲?cDǚE\ZЂ31+n=MI'۝xQ9n1 $# 2?=KZhe}"? :R Yn^sdRk!Ucdws9gƴFE񬻄Qo"TxeKcKrm %cKep=HgTeDV m+  a0ek/84u4.ٍ.O<-qܾS8Mו h(7`S5sT /^›xMj0 >% t1[(N`{zzABzzj&rfZ5Fk kfg4 ىbRJ5YEiu -iSJ#ܔDžV L>J{O,x4Jw~pt|FjcƛXKP+ R>IAºcT =I/jc>ԮԮbma}>>^K^aj# $90[鎵tJ39Y-bn!7xN;n 9Wy ^EJ[D-v D}Hd3Ss`= 7ZnQQtB]-JfqYEGd29z>}5ex. ipE%Khyo-z{682\.tjuRF)gg+9k+TW{l^[BVmBK)uC}W!cQlj>8r!ej@)Cej]#?-*yxKj0D:EK0!@ne3cHrBne7]UЏ[ 0&2X2LsRRg)AÔHǽQ,8מHe9f"c94 { 1ok7S)n9!bE)p}PO/0}eJRmw֖wpOS+ƩS ָBŭ 3 BߗZ4u5d\⯞bpL8ԻS+gz)#TS-0l bX/?T~!xn <&H=T}D}U}egdD2.^q;Jj3Go 9 R(Z Z}@՛kx:+%8V8ʴf1~B`RVkߺ|3[ BxJO;RGw=Kv'=ݱ|{ǹ%T4ɟi}ΌU5ǧgq9mY1z:Qn ތ&AuRxQAn WI VURz 5ȮR♑=%!0JHg@)K= Y{Gv Cg5R 3*Mƙi#8^Pϲ #t{uTmٵ9g 6PZ/Ō|fsfC14K!y9c[և4oswxM$%,4oP%uKmLwKxt8rWc]Igc^ Ѩz6P޸Ia=#?ڐ>xPj %u)eB)J?& }Cߠs0L(85:#|$ JGh1-U(%N!&(MEVs7~Iˆtѱ$Z?Qަ)唪y'|$ q CLw"Ɨ|p}3`Gvu;R04ՇM)_=V*2iq}H ǂQÇo1-ehGCͷq#g#Ղ31+--MuaI=/o``ݓxPMj0 %8.PE@e;N?zSBzzB%F/zIfVl(QiZUJ.G(FɑOf$H>0JeGiqn,[LOq 3U%OWN܎Χ+wZSݗB"BE#xKN0EYE)Jb8F!1@z㷁rRvDԻO{nJ"3RA34qF3kNZ ՠs83M q1fdaHrYϲlLWoWJg[SZ_󑳋b|GV_S~/ּ9ˆR47q%. V83']!ZJ$*g B]tXF B.\ᗻ$u5hyn(w[< ywW( CywMؽ+5>=}:ކ3:z_Ņ)Rp&ijgegrV9 |Ϧ]xMn bm(fџE7=[)/Ut6{W",CxZ;6Iifc9g8ƒ]' ^IM֢C1c^*Ӕ[Yb>%EgՔ'_y;gq{F:t[K #hS->>ߞ__b8x 0ceA5 :%h !~-MfGr캪Ztѝ\p箖ߺnT2=F1jmcT{F;x͗xPj ޗ$~f5q)eBi>MhABA2?a88XT A7F kQ,8q$v+h5QUOtEGaF0k5SH5,ğB{awiJ(RK~ V+K{O݊1P [#vr/ahïBIrֺ3 l' v_4qRGtlxPKn slcEz FKAgbf4 VGn^Q0spL1Fn ʡqigAK֜)af''Ǒ[C.o[s޻6T*''@Z_g;piwfOqW !!N]\8ah'B1P-}]HOF0:wT0M3ԓo|xP;n 9ʆ U"Rn[#!EniSFJjm 7AOGp tF:j"'9z@.ʉk,X3#7M?57?ҎH.%w[k_H,u+HI[W6owƺS(W<+vʕŢ`ہr9^̤ϽpԛxN[j0 )$NR[l *1yr4!_"fݨd!%;Tvkt"!&rG"{W g4۰[_=LR,[AL3V^K)04ԇ!cPQoj>mP"ȑp\VBL-yrY'Gb?|ixIj0E:mCBC ,EN kH,IQ/rԦ~}=Tj(1cV@S$V2%Tܡ% &-&PɉU#fH[d`kJORs2|0R]lKMm!qBƀw/0al۞Jnp0^^3 ><%wcZ2K7|m9T5_EBCI0"JIcNa4)7Է0v:xPj ƨC)] 005-:A<$wg_Z{\\cf,5>Ѻ'mOYGqRQuY03V rIj$gZvbx%͡0P0[ |z,e_bY{mns<>dD)GjCBQĈ uo5m [IpWz-3i*%jYKv+\,ߧ#\&xIn D}6ZQRrrEnTZDA{ЋbE J)M=[17O[jsS?V)CLXǙlúX',8bTuxMj0:ֿ%PYJXˆ2R}->^=%ނFRn㥚(kn*Cԣ" iʡEq s>Oޠ,^R_ ˣy}Bh Ro!]Z_dRZDbS'vcxJό5}>7=Kŝ֬B*Gy5^P+n:/q-xFni:|azxn D|6`0UU/Xc5X@"KegG3D*Y@``!EY1f S\*0P{JH\ۖ }/syK *K[<`}>^)Zi< "==_`8K~YiwA1GBHPiÕ{uNSwcL0~^g{IILe,gn`8u J;k%8(wxKN 笂M۟nQhjŁ;Lc+a ̲HRKcr5ۀRrEBq4;^<<,ZYmb.-o`ţS2}}_2&Ђޠ[ #ﻥ:\uH{Wvonii \obj Y~Zc 8U3Y/`A[úzJΌsxKj0D:Em},KB"$hmd$Y3G!M+j!9:'ԋAR%',r4{r ؁R;Z2B-WIj~n!^\P >O%sh~?5Do bZoǚZ_{R/h<04Շ}.G!JǀqmkjϫT\i0Rpiswsݭ뢍uh)7xKn Dv5h,"e;46`4ccahn Rz-)AE'ŒIMРD)Gnd=Ov,~j=sg$X%%rXcB<ӓ@K.˓~eoxZ2}_ӣJV-- 4FT2mkr~r !1ں4_iX\7s~yT֬C-vqBґ3F2pHqf5+F(tqxj >%_MXJYCоƏHW k}ef~aZu փQ \:͸zIr+3Ѯ 3ʸTt(Bi Q+<|mBO^Щ:׿~ IǸ ,B_ ubk_Їa_KŸKu&>b{bSu^!b#Q4H?mldL>"7HoODꅟu 7 %SA 0SNxJd!*+Jx.Џ1oD4{d޻YL9kGںs3e +z"n9Dw,{BH\kw~nw<0d\obΊ`>rcgɩZnf;6e l׍w՝xAj0 E>vHb9c ̢[ȱℙ8zޠ|T74rFRz1)DUn!`'&{9R09F^; ;O^{$ G35ooaFz4Bêoп1M'aׄ&Ŧc_yݗkWBH_y6^qj!֭Z1h]&S_$uŕxPKn s _QUE{$ DTKAy~eYn{*xAvK5F 5$']D $*-gr\G}ÊGO%v}t-?FW*dVZszޚ0yJ݆)zq$Ľ + z^jݮu6Ƅc.񗳘yV֛gߤR#EOa|$`C+;+RrRxPn + TRU!h}Tz9DzK"LY .45WDhȄmNL ai`Z;+n$NHoe;&rG۱Ex{U9NnG:}O_ +#P;%GBS}4j|y{u.bw$w彋\#BSNS/xKkeYC9뗐@)mV!õ3n|q؟W gxe0d(&"(F.Wm*E?yzxN9j1 fWeL0H^j">rd9`5FM 4pKEAX¢WJƈ ƽC-ZY/=^q\2A=XGvC}TYc*ʺÛmv+^gi>}@Ba( n/c\ ߍ6RS{Sg8zFh9v.55Jx { /r~ }gw+a{vJ*J0RN`7aNӲaJP~}xN0{?SNB(N 6K$bG;~3h=28;`&50 (E֢3ӧʭQ陬Y4*ҁ""3Q|c>[^B{k)w>{g.4(/ЎtjR>e͕/>sR􌱸ծ|nsW: g!G8CX{`j7A(>KR@P]NڌB~"yxMj0 >CbIx(e B 8IlOan_wT==>jrB9'EB\^{@#X!Z491 03H[(;Ykn)ӏC/.XpoDB{7Ž۴SQ PV[V/0uoqr'X}t]iR+cM>Y8y֮ٙxvfI5ukπ*\Rv uu&k%{gxn <* &j:Pi nۏ>fD*WUań0[>3e"dJe삆-U[3гgGɑn){F~-͒kyo ޤN_艵"- V-CWc-5D׸)>B]橔2 zOٽxpQ*Goaٰ _^R8zw_W126Ep&oenj-fF*OttOÿ?TO홧xۙ\j$Gp{;q|%w-a{r ֜QnVFDF'㨜ƣRUhzxN;j0u mI~K [R gY`[F.A05# GN \B2k'qrBƣґ!.f9 DoUxmbbG]SC/փޡV} -? ;ĭN9^Xik#߸'z8ra !!֮<.+m|)eCS}8O9!fs,C.1Xi?FX_7126R-8Fr:6qd,^jcG-'?0}͖xj0z S[?$+C/WZIJ@޾*oн30%!RV `3g,r ;Jt䀄P-4 fnn1+kpQu(LoD^=ѷ~OOa);}[;+2KzuHUP KWi};fL+6?"> ˯KK4n|ur^όUj}vO\`p՚s bfv@ .By^ek##֍5WͲ 3J ˤxNj ӘR [(מ?!Ơo_{t05[K9+h ڂPfVNmV4QlJ[G\ SV982Sl2F'_uKfSc[Iѷ7G {oR|E >rA/@ZC_-lM+]C9wCo}h 3+^'P}taҦR04U=<2q2|}KtC?Qe;@w tsnF9qF~BaxQj1 +tױZKb;}Auf$Ԋs`,L VLU&*aVYѮK -L[3ISH- t*ʍ98ҷB.o꭫dx >6+PzS\r8Wؚ1C)@[ln%vpԘd\6q):uD؆zOC'xu=as Cv?>v4)@NLdȑa^\$(LcxP;n!9 aˊ,"wx|E2ɷ)rL3b4^Vuݶ\@EŪmu P}XhTpR8ܩ1Tk,G{P =;4Hkl-$ٖJ3':Fb_GI+!fP}jyZ/ 5 sWq42$b*dFt@&>bݖEk2.4fI*msB*}bam:zǕxAo sOmk0DQ%R"=ce _z?\{f45RkBj"ŠZfj}w`X[;ΓV(' -w o;-e̴i֒em|pc .߁I>Yk5Z鿔u?os>わs;7t_#\dӍ"|ѧ;ܷ6c .cنPr}yֈC_?Z*#GWh3FQlxLhzÙY-x9ks$Ԓxj0z ݃mٲB) =7XI+GYFRyA粳1 zfa#c2FY qi%9ިcsX\P)8zC[0@fVx[.ˋ~NP!uJo[G_>)j]'Ezbk/0)?ӄ} :B؆܇ϴS4u7n;l~GmxLpud uщ6c{]0FR-8 3;0ٰZ6!YFYpxn D|6,@UrTcR?\vh4VQ^0Tl 8rkr`Qgzg:th'* Hٶ\{![wL[1>F7YkōĺHOؚ1򙋧ůZ.1bwrj._?Gd &:}E{-u0@`8;s6h䰮T%wA{xQAn  m QUEJJ=,c, C~нh4;9&g̪URHiG;.#`QKr`vQMVUf3J TN[5n)|HXpo.5_۴SI)&1kEZݿdO!-n+4DzdRkK% !>Ԯ.,g< >b{8Ђ5G[d-Džso_40ӱ X ݺ.bVz xj Ey_8]JYBL@k 2.SsԳr^*=7,\ ;(X`aF{Qmig,J#V0z5egRF褽Roai^\밚[)_`lʎ̙]ךeu'[R޾A_lS,E[XJs~f[P⎎j+^M+n>pQ z|nx3W~x;j1DsBFZYV i {{ˁoNzhC4P) *XP4pJMQ͗7LbL s=\H+f8jڞtyR*|_}Yjk~pI/xnNcJ  i,,]/ZckmWX}h~iw̭sMR`*mQsiXBpb!zhxPj0+t~a RXk[4Uawv`f:\ʥƁD-\ڙik;v&d l- %K¢rB1Lo3^@h.m~{RxəO[؊46Z_uaM-%>.x`k ֽ=( >t_` !]_δS)y} [|Qvxlv,× F)9TghQ8uLz6BO_(Gxn D{dStE0 F:.}H?4;3jZA-3JIkRXw9Kͷ`j30@VX\[PFegȅ~g>cd{?qp% "5:yԕ!H ; ^iZ4u7\|zֆϳN8~`xLxqFWoR Xo [nJ |Xx10 @A6^щٱCl#BU+T} Hr[Ҽ.cL5"^8b30a.:IGQ6sZFA}s#N#ĝxOn y 6 vTU2DH]:g$R޾tNw Rkh0'܌Jja@kAT(;aݢԢp -jyTGc&B}./D/Cl-ϟ}pms),5P+K˜HۆwPRH\ݴB|L]p'i}>{mmۇ.@+g07{ZKgbR93uac,n|ԣxj >!f(e`BxcD:yZJߠgs~fDʘsQ̳Q;Yh[^fb@N+5LLU+ƙ4Nr%ah:GQ[F򓾧-;8%~7@%s)šH[P+ |`H Bלj"ƲjWbܕ6]GS?yQ*gڹc%`>lC}ބzZp&R̙3MݺIyԓ!tx=n {NÀm`E+m)E`5m,&ۇAo{zzzOA(8K% d `f Ѐ0$~T5LJ9RJ+0vđ<\G]INy n%ӗݷaZ{W b`ֆ4uK)#NukR]p􄐘jW.+mRrF}ܱg!R1q . v`M&>oJPɁq5ϝf:6aSBN~%xAn E}d3C QTʢRÀF ¤Rn_ :[M-s0a@MGpI5XPxNo#* h3z']K hj9 &g]s/g^7~Rk4޻|[GrzkF>aX2>~WR[bוֹ7=z~٨ebٞG}?D" [hs?WvG>IDZ3]9OJ"ix Lx510 @ 2n o`DR; UyC/ৰp\e2s B0C!v>'-&AШ64ly@ODK&MoEs=NSp/+QcnsR˲7/e*xJ0}ܥm6"";|imSoo<73ajF$fKÌ,4:`bQNlVƁJ@KȵQJ΄4 S(tpk-cHN>Һ J"ax=Ƅ =Եv⿌u:,紑痡k_>i|(e=csCaH91R8lͰ/++Kk3B9LS?3j{*퍥)mfgI|ėxPj K5R >ͧ6-aZA (͕anJ;lbF&peA3rBԨL8'go<[Լ0N\{˓~=T8zKp@.oyrl/῔O,7vH+%H-TDŽ#!$64B;Ժ_1$s z Qgc۱N_qB6c{^LWJ 3;A[&\S'?Ex=n F{NȀ"En0؃d v}"74W|M͈TLI5:n`d ,Z̑i`$AƳR-\Wh$LK-QJ7Y)[F9L?3n1?WOzD5/GA9sNXl⿔ +]1e\6ѨbneSO|zm_QǼx{H 0 cŐz_W!InvLrMεiFԝxj0 ~ z(nl'2Fa-' ѷC;O G|(GDhJtf*S#JwUG dk3 ^ ][ֶMg[׏q7C.ưKNKZQ#+E2>gy|tYi;[ /`"0DDW?,ÉgZg(tNc{]W? +8W&/"=(ږ M+t t* eB@&kQXp~"+5Vޠ\4㭏`{{.R0C?}﮺S2=|N[-o`D?ui F>|Hs\ցƖp]ޏw7 i{ֆ;w^yeͥ_WqRQQ#AyA b V-\vxNKj0z (t!Ėg(eBo/a;8N >}ǫ{!t 0,bvUqv*>U,Z!ahA9k$`H+Ԍκߋ|$Jmsl}o{hm^RZ@m .es)5'|'~k펯ԭ۾r%!~hߏymC-gzܥQ F*``ЙTShڇ4w$ fxEƱ 0PZ) 8_rIN"?R?7aju GAc i62o@cT+RU}b2%Ce"Qd|{w91 ?`F(x;N0E{(?!4= x<#ǃ1;6SVsF %!J.K^lQQtf v`[i"B1O3hVP`hך^~ vΟJoeS̥4b}]e./cei K_DZ'Q6{-y,l8αXVM J80L@VI#q7xj0ϫcHeJHHho%HyծE.zafJ"ךKh 9:CB3;cP`NZιRњYBV1 P/貣}L,{=jwՍ3՗B˱-|U412טw4'z_>hʿ/ O}:O?7D漭刅ʑ6:t`8 p(ɇe[|i{h_L0;?QӯM[(76F<7ǣX` эBxŒ*:dszPep3:qsGFG?>WJv3Mθ;/1S#O!'6f2eVim}Q$ʓkrO)8s(T~·Ӷ䬔M82&8d]rWuxJ1E쥻: 2b@pvH:L q_`mԥ8ܚg`Ik'GJa=Jk2mH3QYcpLڌZI̳H1jԤDdQtܽ/Ҟ~+nm?}N[>y_84?@uE^;7e7^]3{KK-~(vF}\C1(CMSKpUqp="F"&x]Ajc#o(xAn EQ !Ro!Q'$f޾tԛ횉` zh=yգ$8»E(kىRgg !X MnnZ$D9Q#Gxo<Xpo-{oq޻c!f oݷZ_؛\#&n J;)1a3VLRz?rCLR<О܇&5h)4YOwf +m쨕}oxj0E m,iPJJ~@aW K).͜ [)8R.G&p)x+QuNG\+F`.'@%;PT҈Dd=om4F 2!E*ѣ޷_lSY6[} _ߖW:JIa-]Z[yS2o+^gv{pmJQW#Gqh:-Cڨh4G BZc:bI.Ѻ XYxKn Dh,"`kb)YMUD pVm:n*g 'rрF)j5Y@OVb: h[.`~-w_[2}// oJ8އtz῔7R`iF{3 ;\iKuc1yKcLyֱr<&5Rpigp5X7% Prx;n {NA yU"R܁Q`()rL3L1^:6b lpB0TVuE>w 0D+e:qTYT ˵V {X7~+{/cG?ۿ|NٖS`2F{wSZB1})+~im.ˠ9f=yѺ?}mGHX% 1)JD%fBp\nj(Ofu sx 10trqyW2x5!1h!\S20ú:Q $h$B^k& )tb?yyu쑘ER  kGʑj@*-nCoD,BJSquz{C+xj!{~qoR,i;A@>6;_q8@:eQQhœWA8QZOWCTZQ.J: d "JAܣKR3}qЧ45n|ٟ)Je`vzRF\J[N4qdLWfzZ_84R/h|yw Baf3@"0b1l@Llv x=0 @aKũl,Lrj 8APx˷~,1# PDl=j Zh\>I\+'" HX=p~5Ifɏbޔ_lrv_B*exKn D}dhYD-`+cl( REZARFa2pt7-A9#'̍.*D5cp xlE~GQ~DZfz {o9kka(b/tZ)#rB;[oZPq$ +[~_j]/ݘ2GIO? γNfZyϫFYjgq2.L 1eÐ_JsxP;j0u m=-!,'llY-rL3b">kk룕h'III39@*c`+ohH(چQN^h6G]rR.?#/;֒Kjy-m~!o`TB"XKV2yXȟ3Z{_sCS}ڱ%=Y8Ρ؆Z&Ղ[ B:c:bs]`//qxKN0D>E!?Il[m'bQAc܀tUITd&{ 0k8䭀XO=)GToh=b/^~>s7xnjkjNV\n*h뼂'YOt]J7"&1#n93,+&ϰl0* !R5 ]KUզ LK۽6#wuڕ}]҃Jj7W24WqAM4mZ}țxPKj0N ̢[84quAyzZIe$Nr%c)m4.(WDSϔFP:n1H{}|^SQ*ثG5oiiyܱCB8c+e /fٚ [)wԾ ǽy);59p<fӗ_<8[8skG_9z3ʕfvT0)KnY^(BX q OqG; nYpjSz֘MZf@M5iAZrsN#j~WB: 'oS2}Rc5v}9("gPH`{#!@s/̈́}i:eYFSs7/)[bϳ-ƱzWƤaT1 #Lځ-ͪC+qxNj /rBGZMPS.ͼ`^0Bn媕 TV0Ìֱh9:]1x=jP[TiT: ]};*~ߎ\+~J#3&w7:F_; C{v ڌJ{WpǃomwBSqQӯ&\Iy62~dU>+crd]'*JcEK/ r.xAn E( 8FR=DmHRo_ O߮9ѓ!Qxk[ Fk%vRr=-ΡN XrB)FZ"22zdC<7;_(;m;g.MbݷZÿ驶[cq]J[)}cW1]s,C5_p R̝,T,^icG@ofxMn } c0UU.cJ1H}7lޏ>M+!2i^,fVSܭ &g5:@K8Uhggtxe-r%'^:DѶ\{ 1oa)/bkp9R!$Y~io- |gtOC!qo>+zucwCCGP, nz'?4uAѧ'x<)'AK$2sz0hX]%zV+24"e݋a#IUvdirE?31[SLOxs/Sk7ߧq{)Z EݖGLۼcɷhV>ϥܛ\9+s8Z1-:C~94)p#}?ykr:]: %Q]W MUoPW4CKZIՁxAj0 E>v] Il'Yz %Q A0b58$kvF4'EH/q|W(zmjG|6t)GM~ ,6ՠXNʎe-ZolaxPIj0ՒZ„d-63 QAR TQt1RdFzb 9W QDj+PF%)ƽd6ZɓB<$f W=rTQc>7aZ *-xFIGTΨY2 ]ޣ1$kȍZ| % eT<ۣT^C*~GwGHPT_@K9lӲe"P\N~*xxKJ0YEOڼ."W@p<IIswoE܁gr[TϚa5+*H,~3:rNvltyaDmF* ,"{_k/-ھk] I15mGW'$ >)r[= <{ʐpe4cm'O܏ ;dcR빖_s UR`a0h b ͬgɼ}xJ0y^D.܅ >IOӂMJFD|gf "܃~QhV%jg:%  Sv1nƥIOR;+ˠ,x\X&po[.`哾-T8:%1k<`C>ZX)lGz{-9(iO R:Bކ}j.u7c.۳<+ aeUJY;̂ku1d _a~xj y$j&K) {Xгщ uײOй7?LI :(<2 Y д9TPM>Fk61cQ\() >3'85V\LpMhcz{t.*Z"ښww>]qJG*\ tȚ3,I \ qSbh@M=@PU > >5kzs_rv٠6rWǑ?_O1AHF hgJBxi$gx_xEƻ 0P%i =>ITHL@ŸsPEL :^~e6IܔК*q6$JqWE  7@ZGur!QSw._A&`hxE;0 P5b@H8N,!ngDE rNnw26Z l&9^KUQV[Wֹ(q,%@LP=:ݎ\?'y;Fs(axKn D6`7mhYD-,rEngQz5qO ,N^ G뤅U$;rYݬ`;MX3nʭFx:#=.jBU[7O[OS^ m_쟽K+rZYh~M^+{UcKgv+vR0ԇhoBJs0Ys 5_hQIfE ۉInu2"(~tkxE10 @5,' ucM;%6 ;$;GNqnw2$΅5Kj! D14^Kϔ e왡bP3A"!5A#u~8۹`{v/}% xE=@1t?b4p }޽aޓ+`BE$I*qrzʌ[TӜ !P~ μ~^H]G^(xn {>S"R<Iy"obb4"zeԐ VHJNW1wy`ҡAy&f"2\"@ܽJoS2}u4k:5rP*##=_\@X^2s,p}LI{#O{Z]eМKM|oŝg[Ƥc?Kp`j=I`ݘb UŁQvKxE10 @xC'fqXbCDY\] r'ȌzEoPo%[[O DΌ΁32ˌ£Y Viu[P\)7J:uu^ s%Q ?㇩f)Ůͤuty{ǔrMz.tn50ȥkQ]aï\]LB1>!RrƸ1˧1S/Mם+X1J,7C߈ %b 5k~yxN;n 9#<h,`wۇAO135{i1[pqi XR) % cI "g˵W~qV"),[RCTh- C_AW͙I 7{_zn>=EzXkW?]>DSzV?:2SP-~^Qr zD>D˧n]ݤ,4"wx=10 @ !1ԉ98xk'G~  [?Γ2;آVJpf`ACIL(J)dMDL x/+2^~#}sY'xn0 w? bI$*(lکZl$WAJ@|w9zڠFA5Q{'4JDZ!MQK>Iak=*e0)m =k{~\Gx׻Dpe*T6N A fZ@.}' \=dp]čé)Ħ Su]iXO-C?EF`fVVpW,^QRT_=셊xMn ( QUE.{l&"B*eAy}] "7g-z|^jI%flr@;OBKMi! sc.?#֒Kl7XzW.qt6m}bĄ*?+PלzX\kw|n Wr04}.釘Σ>C{hj9ԨGnR,"tGuhIw$x;n E{VA?2~(FJ1Rö260";m8 Ҡ 1#e0c&z-I)< H &&iJK'c0I%\7}A|{dſ~[v=X+\:I/Eo>WS4'zegekC:mZ8Ėó\<.dz6?*zXկEOnah_=tVcQVx&ڨ\˥_:fu^OfVsęxAn EQ j.*@d}77]H 8` J4=F~r^2:Q(@Ҡdx/⃵iRLe >:R"}w[;…a})/0yn-h#kJw> r-o92Ɯ/M~}yu]U ΅3::}3|݅W @.04r+F6bQMrgKxNj $>c22EЏ5#m43}|}г9/8Vi9*A.fg NQy/j L +Aժ+tuFYa;<#pk\s-/>Ad|tGGʹ4yf:HOy D?hM=е\FBPiL;jqK0iK8S+vB FL,<ف)Ά2=YViy^xE=@@('؟xKev4p %oov\ZX=R- /PB<y?HrU&Dzq};I ۩u,.n@'Pjx5-0l#9l6!vkIB]d 7{y[ gPL!_y܉V)cj&%EZ\K9ISs!h._ʃ&YxEDZ @ @%i -Q!1uϿ]"e( nov\f~$TeK4gG+\z(*d(`)SDDf!x=А%9wȲ[Gs/'cxEƻ 0P%P 6@JEm>>KTHl@lK,edT"oC%';ӝ`ŭv;u|M/׾oNĄy5?Mk ;vAɱdGieapF+ Ru[x=˻ @ PE)"1E*jϾECA!}|%BQFQhLkf&@KDM%%0WMWJt"^0F[I5j~.R o~}(kw v&fxKn D}dܴ1()r;V&Rn R,ª00k!g!hPI%{ Q򄀨-EZ:@1,Z͖==~+!?Ti_S߅״.o\ e^Qb}ݷ¿ $/# XPae{ Kc:sc?<+"̊k F`0Wz5V(9zsxPKn s _U[~&1XTKAfFѴH3jZZZ/;.RKpȍj*F5eآXXgfgJ+R_3m=Kk\zlo1YJz~[j %JZ*_ ^i%FBHLm83x:y:cvcO1?zmj?>ޗ,?`0䰮 -9#?Ryx=n {N͟[``ۇAM͈`e8JcyZ9ˤg7" +(Ԁ isF9*S?ᬔ)[Ɛ75w/G8ܶ>vV3&ceym',mex;n E{VA1~E(E42 (ˏg =չwtDN'(W v҂Vy d!9:d4hixV?:*q=я^>}LG=7ʹHۺ1~̹|~踷G(^!sl=eߗ4tJ<m۶Os4Q;g՚99)c4JpmVxNKn s m|E3Aܪ/]|4M+tA3. 7Q 1K -oS8h_h 4R+j*$l\[7}ϏDڽdz>? 8:HOR7\S?kG|s_B !!~!WR:M]!1𫧐qԩۧVq`Zs ڱeضuQp ?͹{$xKj0D:EX400@nOC,HrBne6hN Pc{#!9MXYtb  c#K፤Z%n)[5oxO[)&/k{k0ѻ^1g!FHK^+KyUpd i .WPh/{=!dkW>c;{+eC~OyaWxmdk#N3tT0کNnJs9s~Yx=Ʊ @ @E)"1E*jC.2 D>1W.f(ŹbE\Äb)60uӫ.\9ks՛)g2*u| %JNckew4(xPj ơ. ~ը6Ԕ,=v ƤY/5/JԻ <:ܱSRGNf sF9!(gJůR[2~h))rwH+3fLPE _84= ~]w 0&\h龵EF>-xw[r(([Pvn9V HY6G6j]qM8iMgmᘺN}jLWAsFQjXy,BϜkxKN0D>(BX qq"9dzJ]O*"Ũ jt[Q4rR Jr@h4__ǀ*$, QLS }N=ß1 >> κ iwKc ף m+y$ wx}?zc1eKMRΆ8Ymg^.5uRp&k?s3,K4O)/izԐxj }܏ZSkmcl6ڲU3{&|DGY(qq64!MH[$vD2^#bXr({zFC ̜e ~#^M6{Dx5n/nR G9joп[L>k籘BPV[Y/ 𠔷8coɏl jymU+ҭg.t8r[ےyptP̍Q4Ij!~(xNj g_b|/\(}?@+1AMiv?lôXf; @+C쭯 /QL϶ 1?7/TJÍ/ `vKÿ #R+JH9mhmGFbpǚ@!r !1‘im=N1f;x:6m?Ok Ԁw;p6p2k)8ڋPxKn0 D:mI~AQ$]ׇrĒ!=b0 @WVēkQɤT^{+QޑUH:0|OY85Sg4qKί{>K/V?_)HnPmEGہX @hqi',nQ#Mkkeš}aeR_?-hYڴȏZ+g(5XΜ 396vRp?.zxPn0 +r_vj{'âH7'3\O"NC^Xх i4;Ir(MMcT(A@Zd F2)1w~O˭[gwT94N ߠ -#FiU*Va+y][)049aWt - s!͍@8vwɃRj4Z Mlxn <5`㨪"PoaVmDۗ|jjF VN  G&cTIg<cL,;>Fp3913<2Ria9ZKo{8̶61'-(HV+KyVt[ 4yzqhl^'vhR04ׇhïB|`γ c)5Rp-eX:tzygpy$xNIj0Cs-YMbHr ruZ^C1(9jY锊VbZ(N!wLR€Vj) ;aY8շR[ o^-O?VE7: {R^2cҌJ{Wǿ lNR/')_y62+<83cViaMT2:YG㪌]QsgxPj |+|?QG)P_gB/گ}tyYD3L-҉/k4h|\[> Ftj|0Z cAZ "з1/DPa)oJ9͋^X}k %s)Zn[(=q#!$nmi•vԺ^1&sz N}jL7ehcfIcE N~Dvxj >K_k(B} #m4)] :p3pﱑ J:adR%1WŧUVs\@H6\[![S2~ ~Ư3ƵBio CK.Żs1rg艹2#BlCNC}u n Ɏ'!];H+W|p'5gߕ @'FJm -9C?kz$xPKn s $'jYT-^0hTjO_ ͳ܊sֳZ~R3ge4JK@a3v(VaJց =roŅ\{~$zNJ{O%tv+ek@[sFg[̉/ztYq5~htu$؆]iZil \/B:ksDŽQoZ9YK5g`@0&b֜{0xMj!>ga`o$6j,rMU}9\e7mA8xoۉp"]][CV!*+YضR )(>TV]( Gwt-go!MIr _84h)CR3YbcnõsG-ӥ!bg⡗enYϥ_|EG[ƾz J'd d;&&bb~~|CxKn E#`QUj3`b5Rv_2z'38f瀭r㤝SNEHk.JlN Mv.V0Z աZ $Y3%&͑#Rkv>|[w,%o{oIP3N5l7kkLMo-ڭn) wQl'v'v=CS)0}R>ྗy0|FFG-e73ttb ݺZ̕Tx=N0{bUY! x#Yp}ӫ&N^K?j\09g[zFϐ.VHk-ڎAcpZ [8y"@Q-cLiOK\r}Z11 8vuk o05s=nj\=}IG=`v9O'ĥvuK8CR04q;J}p^6j> gI0QnFFvJU7MA; 8#ߏ>{x;k0{8|qp]JCV>~ #s!> 1LI`Cu z椌B+W,,2d\' pV[40(kr[}+q.u10oLޥZ% W%#CeRP6fxgEߗ-a {>CYO B9 K% D06c8Cǜo維4~'_5;ćCpVZ>mlGUcP:ag~hxAn Eb6@TU[`U, zEơ/ׯ981M|Zh(5 rbŤ2J3ΆaӬ8sZHԠ$GjO죮)Gv!Lk-h. Bӻナn{7b…!M=Zݿwr[ jcp#t[mrxqTwE[IN<j[xN# c܀E^}~+!-&C+] \r>Ӕp4@ ވ+V"RnBeDE̽K )/xϦ[2<ᆬl#P,\IO/2}}[s+^^GBHP?aWRzNc:̘K)9SO܏Bi"SB p8(|s,9cx@xj >Kr.\(з0jLhB߾v7l,>jT`܌ }K((- p5Fg@>I(A@NY܂h0]m-՘JeŝnBRGiwL-Vw[k_`m,_jm%ywƺSvc׳Ń8Ydg^L 8L (GWʹPRYN52rϥoV ߷n8BֆmҮZin \⏟b:kcSiZ9Mpm 53afBX4Jp x5xPAn ߫$@VURz $zA}gFXv+J53OyXg/,c~vRyR\;3Yi"r ϶ŇT~3mޱA. ^p~m:@9R)%S0R5/f+;l×sS-Q  kI MQWM_Ӳ'[V)>oͮ_K#B"VD/0|f\*kݎnQhXD떷;1;BM:K)uUqm񮻸(] uAICklj&@~9}xKN0D>(IFb-b1ă n@m-J]B@ EGqv Ll6QÙ(G50T>8DD#0>ZzT/VB_iRs|t6ە2B0.OE:rk_~w W滧\˵И?9BRnQ/ߧ\/ݘ~la쾟Sj(7dJ2`0\KdvxNIn  #,QCJ00 }E]j.1üqAib55Tp9h^J(Xs[WGBHPxuMSgca%>6<&8:YijܿkeYr7 cjXlQ_vyxAn EQ @`TU#UUނCP/ -lTl.vvi+R4F3E`j *䔢6r;R/3q/C.?oڣdx /a q1hڇtz_H#?ǖK=BLbiGLg:BBlC}!+tԺ_1$;~ ^=:m{q3ʵRat`t+öyh3?_H~4xNIj0ۭ}40C hImIlYQAR EQ&1hGH' 6FB{XikUkQG) 9 ~ tó=Jor<6}1{^qcY_R+e{-Rlx816_۰|9mcWOy;F~L:znw)1Ij 󜌻zj\sxNKj  7Qʃ7(t7FMhAMtN+`ͺ'\[WZY \UeɉŧF5ř+qzҠAM0h"ږ }+>M+%ӗG^)BB Hw5/eK9u!qo~%wVvΆp%16xu[+}<7RIp1rX(l^@V=VNZpt"xNj /IrK&cnhAMKvQyL"xTOF֚й@#5`PMvLB5 )6<!/p.Q .$ RJ+̝2fZRt[Kǥo֭BT-c;4އ>Dӧ~U*92P?I}|ӌڎvS,~RjR}_xPn +f<UU*_l, %A#hfkv8:9(F9#|b6RYkrin$GRQ=j:3C4{땟D<1 -)gZ#bei|?e3Oi{Dƥhh-Ō|R:Rn!E-=۵g۞= !Dj{pߍ){ӦBPr]O4 K4}K{Zm/giP )RvG#N[*O+WՔxN <I[cƸ0-~.e-47le#1(@͢܂yeJ`PXcԺ55 !¡0J~/՘J+6<Ч4[:p}9) V!AIzaCd{y !vFKmAI{Wp/ݯ2Ҝ2Υ߼h= g[Ƒc?nWTg`uI&㘚-(m 8UsgxAn E}d0NTUE{Ɩ!zEn̟7ӯ;A9*N`z!X\ jTʳ wʕkQ;40 R4V^֝?̟,+H~ӂWK J ц5̵ҿ9|mnֳw3\9xۇR.ahOuO<|- 7Pk<As R4Q -E79aQY~xMN0 F9ENvH@n4,[<}rID|z0iy5N")v`P8Xю8 ({'Do5 0[,kL%釿5;fܫ%'_7ٺ?s!dR a5ݷR_d읾J8W~!+[ !bjc~+M 6_yݗkUj}6&·3::nRs+f054YYalRyړxKn Dvk(F(cle H}"7HmUUF0834`qh@3f+E.BC7 @z'A.VML(8^$g]SC=m{kI%wv={Wim@i|ϭtVHy[oR&v+v|^JYШ)_B|g9՜7`@2[Yi3 8#?wwxN;n 9#ch|Y+1XۇA4if?#Rk 35Z9WZr γJ %A,Vd^ :-x+s|Kj=Jk<5|(0hx鱷F2>`xP{N792ކH.ecc.WO1ks:7=}^Q( mAeF`?jt x]n ߽yOm"UUbMz M΍oV`,m:0rڅVoe,xRFoz&j'Ruxog*Б;JgX_y~9. HIYx:vGD{#.1cm!B; }%*-/L$-%Ubf0 UHW{qF<5ϱ#R2#}S8C*CGs@x N5f4Ө% G (2"̡(@C;j?IBʄbس6^@:.up>xyǬz޳,gxP;n 9 0泊RD-ߵ6 J}HdV|¸(2(#2Az+m@Ԑ; 5.,8hJ!7sҕNsf^*~!?=7h_'oikreŌeBI/ttzR>g؞܎zB(mg&yjJRӯS>[ 1h{=ƙdz<(Rè%T0J+ѯJEvבxJ05=B|Cn҂MJ#F7pXobVi!x0; `E5JeТ3rڂ"XcB9(>*᪗!xLj-R0E_賭+>ޏ/_apaIIX2FްD9P_lh?GBHP?Ұ2MƘK){mxN!רC)]^~MAMi߾oг9i(0AE)chvoϘRcFH|!] ۲~Aw v~BimC܇5\qKuzn\o~dN6=hwz'7FgNb0=σ DP2hGcJ$~1xAj0 E>CP@D; q }]JoP-?!T`=Mh<:B(JvrMwlc^yΐ *8$N[#U)r&IGFgYRGs_otV) ^暷g BJb5RعOT<9mHy8rHJ>GYy9uUs6Gws/` Nu*-0`_VT)hFէ{0h2-p&X1R@6RrѶak%gTRѠoCxϛFx~}Oob%aُ{.kRt(pr_ySo |Y`G~BH,=+ћ!nX;ҏ !Ô^M )׺.2,pgbm-.T3*(2նh+l(VʢBpB*ͥ`|˕ xm1 @ )[+;+뽽۽=DTA.w$4v~D|00̻|Ыnj`.RjJR$j*&g`bImLErv,98D IZbO2>?V馱v]0?aG3CxMN0F>$SUX gpIjHv*q{\7`6ofJBJFr1N\Be?95pJf|iMNxcΪhKD&n%&xN8fVKjҎqVUCjR_d-^cypC<&V [BKurR;4߸Þ nݶ׮=|9Lr-eczd49|›xMj!CwӶ:00@n%6j'1 Wzutb6MFmu^UK >\1> bB!})+}im.Psz.5%uw,823(Ф6^ |r! ~ǘxj0Ey_LMЇBaqRM$]u t^sQPF3Ruo5Srq(- ),V(d9: th9GYI8A{ck"1rX"W_brqyD.D(51A)gYASk2`ŠK6kLNs\2xL .<  oEQ)=Scm<*lڇ}˴v]iscGuۖYW2kaP 56_xn0 w? bQ%;(lکJ$9E߾ Z}GLSKT}kVX;`FkeGIWadHض^.hOoBӒsaKNkQi22[yR@oaeɧ=p=x_ SbH4ẆYMNE1LI.1ugx.\usYI!̊EAPѢtBV(Ed-mjQ|xx?k0 w m7vb'G)ujv>dGelJ}tXx1uҲ(oM_Juy2mX)r:lKUEXj*׬mxyWxqN90oWL%[% Ze 14)?m'Ehzi ܁*gH  0,aN8BAs8 1؝!csYfufcIYҺrPp/J*1h%+E.mj$WxPj0+z p(%CлlX6RW9:9 Lp(hAK62,R [ƸAjJE=BS^ s&xoen/q뽛 RHc$XKV2E{!v8d/Oa `k;5驔bݞ1=JQpk~EAV>Pp7 ͗%hFeۿ/([xxPj0+tW#ɡ@ J)V/`[BR*A2;0lIQ9Bf`TGB#hBDLn/aB7qЃ#ӳ!KrSH松aƭ2U5v=36qXْceFcKol}Wl}:$pL'fSJQ[wV N~K|`xOn0 ǒEv-PkAɴcԑ IW'#Y3H9QZ+RYj4F5:GfVHrd;f;nh؜si ãR7+EmK^?y-)9R}!0: 'ފt羭†P dzP~ #;`๪=VcZ:]ᩔۥ;/)/O/(P%{3pҿ7J*\tNpq%x7zy`Pzxj >%Z(7 $#t.vH\ 00`GdÞ17 u*LryBF'ρg[I߬[c_vJ//kc{|/'Ƕ67[kymCnX/9?kߕܙ;mK콧G p8R  ! 6m7xOn0 ǔeIQڵ@cԑ IW'@ޱ$"iAMhGFnֺ8Y$ WZzgMW$jỞ;B Qn1+6c0{X΁[- B(/Xx׾fr '82A уRN"ϸ\f-ki#4Kηm+;/cZ]‘ m-%{k FsWt\!8vR6slg/0 -;~0'{`xn D|S lʩkaq:`zivmD R7 gMpb+ 8L R/V!t@ʓQzMQ/)k=Zc=GoQhSAJgط nP-awj^^ Rd#r0֭v橔Mh)Oݯ^*})_Jh3ʿ"2F0';qpM .Q ~~xn <# VU^sZű8_G\fF54  N^{V|FBpv+`kA/< ^L\(f2<=ei_m)[ג"Xϑ;!k,8xXkYٷ߰*FF Xz8 A!ӓracg-k3vu"xg'f=X-{{+xn Ew=!LuIR!:36"NqD'ZcCD'" Qn\[ LK.&ҀI5޼/7%Ss-L+`x,Fl/yi]|C}s~FؽUe{a7cWM]O$q윒t)E3Y'_lx9n0D{!j8mOIM "\?Jif^1T2D2\A8<$u Qw,*9c1(x,݄?RwzaB?^ }xi0`BI ďXwD ~zF>2L>;8?}l.qcv_₍tÍ_(+zp%2MF ?}lޞxn0 w=AEN]١dHJj\]+D\y'bpʐ* FEBq;;ց8{g2J Ѝ3l\{WJ;>9'/5혨qD){ 򶭭Ж_kވremC}ax߇Z'!:,,vCXrXbTGWׯ\^"xŝD! h`yrF""\nbx 10 @Ql9@&1bedcԎT!T*q .؁{п/vhAb"A=H\@1K2c!K+*E*fxCOHz:w]r5n ~N']xj >%O4RB B`VF}oй0L+tA,9iZ; |R.LuT)lw[k/cKR~ҥޡcK8Bֆ-iS뙱Ƙ`%fӳ6<Ge_kgME m5RpiypaY6MFKA~Da|\xNn!WƲ[sE*`y{Hk'O43SQ3Q(-W&HGEV(4yrhvwb4%*ݫaP:7=a#iܣ.)ë+Epۖ"rqQKkxQj ޷Ih4K)KKoB{\4YKAM =yc \1F Z9d5M'9'BjpΘ~tJp3jH~CzYbo<VK<`JTɁ@S\W_ wikq4v~9KIKL%v(wxZ@oٗ&#usmLwss/nƝI:L5BĨKF SЌpJeh\MBQ #ҚxKk0zؖJI/- 1豶dM Uz=w/;~ nTCA#tPC'0 M:j7HHA"Hg9;+(7lI 7l]D?}dJ}| ;V,O|SYcmsY%ogL!=!n]=gSxpBM&{W|h۪SM7NRֶ,Tal3>ĎJp&043װF;7zTD )xP;n0u m}bI"SO{[2,%~H$Ub JD24"QI&>1 }0j :h`|7u͉П`oOX_JY$؜-֊ͳW,˾3 b7kWt*~%AKzЖʰcicޛ}RM\VI1$Y:vDanvT6s`xj } $YRzP( 5 4-k)}͜s1 RVi˂f#H1 4 FA[05@3~ϔZ,qZhk.V0E_苭vLbGqL8|CzoHjSJC;].\ɯ#!$nmiؖ TzƘKSLqԩOӭ{ A3URؠCPJp 3~xNj wŐD&:2BhP3пn9$D6 +F聡Z,fntTY;rKTԜO#swirP,15dՖϾڸc MUpHu2[#\c>0o!hKL,Z2|<2{hVwsU`ژw>ޙ}]}ud]0wϘ @ar5 ftj`Q<;9*ݏ3 xN;n!9E6UZH^)2iIOcBB&dcLҘQ=ܸHQ)8LrNN>:V; `flk9ƍ2d2k-3WO[k<_q'Roز~a."DW%˯K~F۫]sZn6uWP9P8A8HࣴP΅蔖@.yb>_sL 1-vG71s~gO!dZZܑ~y>6MALt5LźɄq]^cF~a 8+͙XY,NJCy *xN;N0}ׯ?+@P.Evl';{~ L5#ͯ!BG0F4"JGRHAhe!=BE^?8)eF'vUL)KW떐ӮkNdX)g@dLA('@ƼmKyr-?lT`>ʾ. mci]ynHRK7v=coJ?ca8ҿ5f^J@3( H]G8*fZ2$Lyxn w=`pUZuhթkǶd$}:}t'}W3"u{4 cBJ? یR pk J M;)b }G)WۮkⵤhXۈ! ">mR+wO>eBϴRi -=}M!dZjSYƣR3ckh۔gS;;~ sF?caO+ 7~ZkU¨:_ԣw7xN0{?$_!@hOv"8} 7`MIҫZa]{f}/d4W +|m?io9) ^ 1}K7xkmpjގ| +.;`sV麔e PfCms)cqOqǖ䏭YzyڰaS.l\箎\nSk̅3))h(7J5ѡ T6ORkV {xM;@@ca }1naC Ba*,ݐN{r_3!LԨ$撢i[ q!^“BJz"*^cP (iw Dfq]FhyBPl{q+/#x5ƻ @ PLAϝif lB P$,RU~7V4q-3FɢlúlGrb4R o1͐1߯)!W^/qX$x%Ž 0PEbT>$Ll.i ;1F ^m:Ժ4H-"bZ]M]*g%P;9F=#/KDgn'$x=k0w2' dN$YR<IN鿯LJ=8+{ F#hm Jd5T!  Å}軺3SkmI_ՌsCpZ-4Eoc>M[0l`3.yS<!.iN>E-9eÉ84p:9m[)f'gk5;|aT(2%D){ț.$g|F_XxǼy&#_z~Qn|AQj|njQzd[FGT!#CSK3ڦxNKn s QUER{g\rEoGE>1@*FҢ74BcJ[Ov.V*j-E,qt ,Rx$Lה{v!'HH߰V} -? ~I+es#8=Aie|'u_{+INm'v՞iS)04Շ}W!}}/C{ 5vLNg4u܁`d罕JQIxxxn D|+ۀ"P@űR?^vF35VFE^aZlՓt*©v+fNF=B-'퐔4Qo){%|[+ZJץ˲z]@)'k۱FV0IZNXȃKRwRbK_' 3Ɩv'v?C/TDS^zXQ*{Zm)dHug;~f2xN0~WIl;׍q#9No{ Ό4d"z>@r dNr('Ja+fJBo1hPzsTz^2u).ޗk'pb[qBHiWS)/0vo x#Q/o1lLzژ]r.}+v[W_yBY F .֍|hQ\57J xxj >!:1 tQ jBA,_ID,NYSO@zBA v`X8Z"OyBf4e+2<˼'(雿s/q/; uo~.k;3R/u[J9c8m.K9 q_!imca)Mn%u5!b\8rW3~ޕQsP04F ۈ^f\5(~+AxxAn E( @`TU#uQD@d޾TUoPoe׌H*;i3֛:&kϹ'dΆd`:8ɥhlgL3.)яt -%їoֻR΅ВZ kE⿄O==#o6(BlrFW1U2B]S)5MS]>`vS !Z꯴饔uK>凇%1q5q\jEgJu3۱N[&g)8A׊` x=!@FAO`f`+ENkIBmV 4/m &*[9*ZOiƸ4.G9 ;A9B %O-ŵXD; ~Gs?k(-I*xAn EQ FRC@d޾tԛAx)2z?re:(茳L 0cfڍhOdZJ=ibκ Co$x /nGo q8 mCݷZ_'lr_fWX& B]mbD[S !a]ynsWhz)eCs}O9!ijT<seh/Cg8f 3g+);Qh:u޻iVz')>}*xj >ğRʅ. }NѠB߾EߠÁ i:y1˥;lu׳7nsܓ F=(pVFi4 F"rBxQ2k \mυ~ ϼ'k{8 ~.os! r"=bk/aKCON1_R@SWl#!$6G_joi \“<:VuІj02Xց͜ fej6Vj%8LyŐx=n {NAaUE?5X&ۇAMD|3ĺ4MAP6YvbX Ҷ(--%fCB-j%3L 53#oXh+{ׯ޻tq)]N\tݸ-?GGC-xNKn s mUU.*0Rq޾dt6h4HGe#"@P\kUt1:@vWcnTRv@3{n7\*%K5RggB_RGoisJ5Z^X鶶e şϲkk#!$m8+|9uSvc驧ϣ}r~L6z AjN5C`339,KX%Jrux-ȱ @ Pq S>/vRR@$lD("Q&`AP==iZf+b2GUW[4Dއ9e3KD[!>PF*@t9)'v8~%xn0D{'k (:)Eրr)fg4͑DbeH[n'I7 c'A}ڙZ&11֌ZtoQyky >e%Rx=۲vRQJ,[/cⓞlNȼw 8b8V@-X\ ^RZMS\xC\~}G|4_7 ꍩc%;U?J]97k z{xn D|* v ZiqX"`+__zt.?iFS3TDHhqsN[e-i•ܤIcW#jfxy2Z̆-jkf|K(oTh-I>{_Awxf|RM#R&n)gv5(o!{!+ ET2 >RR#ۀmEUdJm/a4,zJA̛7) 4#D.3(=qY ["Fgt4rU2a(@TH&1l2+3PȹC#ϲ mLk,}DxԿzNE(elb#^1Υs&ְ׊#W(hr pdtݔ'v}BK)uZ}4}7>1(C{ulgiFJFyc:Y 5rF~RB{cxKn }d{&TYT- p޾dt?fo{D@: g&LUPhѨ ->5:kzf$j@Ph4%H l\{[.?#?jNe۶5yq.G.Áv7缣.ٶH~t~$l ; ]iK4u7nɎlO?m=:ʙ>oI Qj@`CNj_XzxN <{ӖRƘs.\JJ5܅olɗ3xO=2˸5.5x&-z'd@CRiɕQĥE8+\ffX?8 ryM%~ay{ 1J ik#o}#g\0`+[|މPcN=!$_xm?z%yTnC-g Ɖj0Y\F:6Vj%8fMڜxP;n 96{E+m)Ykcc> 2|hjk@NRZ-'O a&bap4%@-8ke7ftM#0{G-Om[kI%7~>mP@~ Zk2vO9_ye֚WwPzX\kW>nun~Gڠmܟ7Eu@t[YqFw~ou8xj >K5Rʅ(-FMhB߾v7l9aD Y,ȃ\EcP)r ̒ FEŢݬf}itDB/$W\[7}APa-Gisy 1K˭7ևto῔g.}@u !ikC:-i[}c.OjsS?dZrjgj=,Ib e6Jp sU ,xe= 0`Jɵs蠂*eHEj5z&O\we`nP$.QdR-[i&g`EDgrpK(kBX') {|D%-i}_]s.9EbV@ӫ|'4xn0 Ew} cI "[vj瀒)ǃH/(!K"#9#۴9o".pŽw 7BM %o3M 7䥍wTB+k ^>r^q֔੟֝Ul4R6VI G 8?m'fqZ#&AgB",{8sʯ)É~(նV yv- {^qYr+MH`5r+s]iۺj)7|xP;n 96`>fE+6'xFr"74)Fi*B0ͼh1 ؕ!xh9''̍.E:aUVhPzU298/wmGQDZerЗqCz뱿R΅B =Sk/e3#z<1{k:BbjCCWRvƘaΈz.0wG?XeRL&W&Y/͹Zrbu>k *P2q56%6O,":P/c'xj >^5QRfQ[Q'Ѡзl=Up'W@/A=*faOZa ̡ʥ(CrD^,'l\{1M5{d>~پF7Ȟ t[k_`Km93RH[wJ_j}\1&3y9:Cʙ>o gdL-ˠaP!uJs93$s^"xPˎ + KQjJ.H9ю<&/TU%uzj B-&Ց0fzšaL ^L);5ʎ&=t\ ھ³l1["- f%'|cݟݎژ)RrZઘ})_̪tT‚X]6apGg>d}>L10KLg6t|pzafs_;B$o?1YJ?͉X~<@c(:X*Kov>reԸML.q׷%YRjzbE'E=.Bj0NA+YC 'xKo W:fj"CU[tUpfFtHTUiUvh*[mZ n#M@aVR1YceGT\i9([F)>}ɇ7gw&-S<|rv̲os!xڪmI dT!*m?/of7ka!\&qfPn|͟g 1Y˻0';0B!?h#W`ϩ͔C>sfGtHs$Xyp8@'ºTB%e 71Y3ӡY wj=FS8[A D4/XY9qju#ǎxPj |+|?QRпXݍ h0пWt_vf;;D^X@@9Yf 8kv(*aT8;=1J $'A uɅ|$l-%>[`!o/\J2EaMZ_+Zל1q#%*gŵvWV/DZ\>&s}R7}~*GmiOyu_yCq #< R yye5g`x;n0D{@JAGHϟd)T2;YN1%De*DF%ܱ;=I/A1.ֱqh0JS[ӽ^%Z}ʩ`V(!ʾo"߀BIdW<極uMkvS/k>[O<ۼϽyc ƚeF)bzBPb$O22EǴzޠZHOP͈@3\jep-q2=/Mh&+,*8bZg[W5e\MV)1gR>oxO[WS\<{?nWoq63=I 7ڊ4Z_^+:82^!f'6㠤!Vݕp]B|]bڼ݇GӧY*92P?)`Inftduujf1FxE10 @xC'$vDbC<8#BU?R|tt{2| !4VZ`!"ٞXɍ3IUjNCyi;uGۣ|#)xKj0D:Eٲ! d"wcKF,r4 ]]GQ5;,jPjβF4#SV21j] qK ZzFa05'x1"kݒ|5»*joˮ֛iGL%\p= eMg6gjH3DPmp.B uk قy8#P`: MKT}KK|AGZ}wJZ`:OS' wcj uxKn D6EH#%Rn`Qb&YMWS=VB7b9 lYhp\Q(>5L<"cʵ䔬LYgrŇ\GC[2~ ktyŔ2* :ck_d,m.KŜw?b>+^sD؆HC\KuzC1𛧐1qԩOۧVyct6 +F R;A["u]҆+(yx9N0{(o5$l175o)>^p%(Fm̊4\h++'ƭ\׫ LP^H oV;~oRS[|=c8Pnwz5ᘿ>)WmĖ ,r^MQ Ġ9Q)ݨVQ41 J؉h\a QZ.7*h"1&RIܳ倷R9t[k)Zއ?O[>8 c-ݖZ_cv9QkIr?F@_ +KN=c,-;?s4|F}ʮ/G!YiܾC x{`(R;rDZ8jcg?g|x9j0{B`[20">[FQ yKzdc r\B!!U(JU1rՆG+JnAѷ OqlA9K-.p쯘RF|!Ch{>͕3B(>2x/meiNGMyI:;϶|c(aFR'"('rZ(\KF5sPxKn0D>#m()H `dH}Ent[TU!P% gmh3 RJrbG=Z:X4Is[W]R9ĔGZKlw#nK+0 Do4 #<)m3a ڕ[{+eCs}sÔDy$ZbJ$$ QF˸4& *gQ8JSM34)#FL $1]5^Ck}b-!xFl~Ƅkv^K]L!64{}_j_Ӹ%5򴥳6wLv\ʙ7JxbX Aj/rN *t2x=r {NAד8Ma@fb#P>Jmbw#:J>.bIP{OQk%`ObDJG ,N{@d }X=Uz\x 'R}/~kTwdyLN9\y>V:my{9/}^V*PjF aԔRPƺ(j8xNn {l9GUc/z<DחMւQh%L16DAͣ@(T5fNuBypf7R+FH2_j]S'G%Ez>!I', Bѫ1|aӺ[p[N},յiÖ͂p M{zGkWnmJ1KK[ʕ~I95zq L%DaFp'gKzjτ= =2SvR/)6/mLc{rF6cX%,bj?xr D{>#sɸr=' @q>?r>!bw{%qYcCtZKL030zR|uD#0,ZYDC=C遐_Kg2ۭd⩕b?d\J%lr vwoZ%S|n2g˕1>Jbjck!3?='j{HPZp{JgA,P =u~ZmxP;n0u c=}l+(Lv$˶X2U{r!9 H%.=8;`TLjg!4,!A{X04jF >i˅Ő>9^kNxF:@@QDy#QoxH">nT in\1i1#xʅ1Fw|Ono&<~MJۄگ=g_%hmضi: u>MNnYf3NVF-v;x;n0D{b{C_ p2M,e!)P&G6;3öI,J-hTtZk&Iy2dws*4[4:eDU&gå>ʘp:zxyb:2!dJ?Bwzv it W.vKҒ@d}kșiXͨQYH5vR '?}3qxMj0 >űRfQ-1q }=ޠz S.)5ZVD}`B`*vhtl)AzDiEEpGmTp6(Oo sru{nj|5Qh[= kk\ \7 8gB)wr|y9uRs*>þi{;׍3)^A"QKdhK_Vmĺp~9JvxN <{cnr&?hŅolfYLDj@Ŭ`<qaUݪVm"i F7%rYymNI6ئWg0\mυ |ӷ'0}%=&~./1z+W HoyR54z!m k)P?vuMSOcHf%)6<'su꟎+9 gR039l^"9#?[w sxm1 @@QB zv; awfTQ\$&9?R.e;f՝Aj@ƅIg#d]Bo#{Rj_%1 LadLmaz]>m{֮ ;pX\gY?(7ՓxPIn0 rP)z(_0-eCRRUAy Y3,$%Mgxw oA̔*fRFgB4R0e3Sڗ?\v?~Bb_kJbCBZx[>2=Q-B 15Evcq]yn 'K)ic~񉇘1q܆zBKG)@:kI-s0<3I= }xAn EQ ¨FR!@Ro_fϲK"YNfZYYvyFNL DgqPJiij^,\U֘=> 3Wu+!jV }LpD)P8wHt랭ܕK<31lj޻lcOP -g%xw[Kץ}֭yD|T›XsV2E{~ r3y!'B9Alk{ 3Ɩv#u|v_vF\aI186zj -h\:w|Be,/poxIn0 E:-[5EEѢh%Cs*=B\<~ƈmZnc[a M&ʹnhs-RJi bRZ2 䩃]K7n%7^aۘc{Ōq|Yץ_}mZok?iu'~(u.yi~θӾ_τt7R's>7ҳw@IGp5g˨dt0NCJa =q~|rӒxKn }<ʪRy:Vcu{fhfp\J"Xg3 mB`6l@9iE3]Ke``Y e3/ώ[*Bk*=oc*ic8ha[|S(m[HݣJZA5^WJOږ_K9H;=;]jhGq&ƚ3F)bx1$9Jm%gBexn0 w=$AQKvkӢ%Ö ñl!@Hd|G\[exHQ{Eb+n!#4A 9(h+^"I ;gzG n8L!'sN5S( V98:eJ JXPRkc*}"xş|x n>b 3L%,a]Ƀ16NٿS3~icsƇot%mcޖlGJ+Θ|hqM;`I@}{x%;0 Pb;Nm{0u?z@ 9.1unfZlX{MRXkR'M6hdAvӾ%!}t܇#$>xr D{B}3`M&s5R\1c%|BnUى:)ћI ?6RqNjݓAٝbaTң ͠'(F5Gv f%ExS[XN+ %車'^Mi]C)_uӃ D*o} yC v=w[сf[VB8J Ur۶)oxB[[;vNږ%h\oc%ƌ\5;i%sxOn Ҝ|f1EW]"Ezl K>?\>!+4ScK"1UCgBAi{7¡fI 8fR[#͓褛k47&78(%;53s{Lp3f]cW'9rTQp-'^q|)_?۞pLw)/Ђx|e/`i| PyZ-clɏx[cҶ`1-O.ȅn֖t@h\ }ߌȧK0q8gN+HxKj0D:ECY dKؒ4}En.f̢IrqA ’ ,ƙq66XarD:`} fvzшR #f2g {/kn{8jM\ `k} ~[04?m51n+m ^J_QFۧGy;I|Ժ%a7Ψ2$~My _xeȱ 0@E)hSQ~; F񿔆 +k )hNkLY]DF"fLP9b.}8 `8gEܜ6@q~~wQtJ1:GS~tЮ3~83ql$Mhbe? '1ёx=n {N16`0xE+m)ER1XfۇAh>-,*3ZRøWsj ,9LXAHNbVX-w9A̽)KƐ757JKٻ?cJ>qDې[/0rM9[~.c..1>sO [W6Oah)_=x/GZ}oU8\OS73j;*[/G%9#?}x;n E{VA?hRfxf `))~ "Uvͅ d1rvS٤G@VeT΁pJunM{{.`~{o_2} }Bc_)u!.׸rF>1'zZsD㱃mH!H {3 Zii Ɏlf~j[=f,xNKn s mDUA*/Y}hfjF#3T+(=rNNF8lA r茱RnaZ҈)-"ɝeH ND2S~Яt]D_}{~aM(g-LrڑV1>sh=Xҙ Rz]3R[C=v^h×RnahQ)'||+8_S֎ `ݲsNrQ8_~ fxu; @FaB X V3 ed H! u3Yg ;Ða 6j$kD"| q^hyR2,=ߓ^_|/s9GMuFI%9vxN F<_7ąѷ0F P^\f'gZAnZPɕf,Z]`jT83sÔv~^eW8/ ثmׂ1oD_lGd{?.ϔu {k/0ꉮu#fS:Bކi߷Z44d\objsYnsL\X ՜7<, $fZqF~]t xmɱ 0PJK/)"*E8ؖ)]~_-R6c9P%Tl* RzG>0GjUCwȁl0D18rjd,hB#2VPO돟&Yn9}~Icq5XUc7cxKN0>Q#]!T`!Av=f0%}V8Ύ,RT"$Gv&rS0[ڠ=:#Bq*j_kʴ5x+>TwJ9fmޟR 4<`?}k <;-'./To[.y0Ɂ}#&H[w6w^Os~V?&su?S+yfk Ȕ((jy͋|%xON +n/`u?Ԇ5!|@o1຦i/m֛~z:T \kk83:JJpJy!ck,12|wxMN0F>UvU H LƉl,oӔH'KgD jqPI>nB%&GR^ 4ʲ%pҝlKO&R6zkߺ<&\[dR==:k(F^4KĊ[J_{Zo ]i !s(MMGZ!u5s4 UǵD`be7%p ~ U? ql40۰X,4y!@~{x?k0 w m\lǎ:S;_bh`;WǕ.]+z<TsKMFЈvRnzxe*ȆN aF蘨WNhz5vv yMC,])7Y~sk16T"f]PyC;0Âqhʞ}s<_"LrX!Q7,APGBP{:9ϧ8Ee'bۖiMK{9$C7#fOjR c$gB xm= 0aJNNX$_h[JQ]x \^xx_nqw8$j6X()i2 ֣b_v՚0D,],i+Ê[%`8?ο~70Ͼ:}r[Or;. Lxm; @aBLg"*^#fggaEB K/"Shgcu;2Q&m鐂g "ʎ倅@92(gC$EvA.dR)g*r3ϻ%27xQMj0 ͢MbK ]9b+9N?zq sBzB*'E A7L^[C0GAxpʙ֛YK6+%Lv+l鄷B:?W^1^$x޺K1ZZ<&ju&^7@Pe;׸|DWr#oP(E-!~+s~UO_ Շ{]zB#'y3-\6Y9Ne-؁xP;N0}ׯVDD 9#q{L f>h4 [p֫ZNpfF)GW05T.ޮTg+Zyrpv^ n|['xqޒimn>g`Y: -(\hi[)#'pIgEՊu$l{g /ޯո%7iKgmxL8ũ3}8`]:3:!Ujcyx=n {NÀ(ZiH)s? !Eni)FZx?d{.{)OzizD!#D$HӢ뉓Ft#gcDSL{حDxJ_|6+p{Ğ++nK/c ^|v8%]ך16-:Z|kBl#}?mkr:[麪*+PU8(mzU(xxj0{=öVRikk39Fy(E ̷S 3qG !'dQű)ଏ^G#۱PF'5Pރ1@)b0A h&goJ[o=C&AVΘ΃:1$tcye}UxNKj0YzXr(%E?&ddW]|`-F\BZ)x4d DmtQlv2bH\j璶a‚rBi0,$-=6bGw{mTG>?˛]_;0j6FC"h˹Ovr|+|9Ǖҡ\T[4qv:>lMeה/ۯnW~kM_1&q3 U})/a3 K<w(+B\ c>_sUB/M~/3yy䞼s ]5v߻vgF(K31*mCc2rǁ3 -xN;n 96+6J)M{ ؕr"74f45#Rl0'q,H",I/9mƣRpb=Ӛy!HZ*)P5#^ה[Ƙ7}OA_m{[I)w}>Qr^XiՊ2F^B@3>0W뇻3!$n+L_JYahSzǽT<{ehy0H'k:uLc[ 'mIr ?Mv)xMn bmFU)J`5 Hܾdt6iW gJ(gD͌ ΰY aPUckJ=*wԱlhFG _ٯ)?;mXpok=_í 1TZ"C_`rs )Ռܰzh q'#Dpy}~ڕwOlah_#)/=^?<2P=\8F2:uT0ڙnYƎZrFsxڜxKj0 9C?GRfPJ7=@Cq$vHBo_76H(o :ԌQU' 1В j6d:옐 =@'2ꥭ̑Ǵˆ!mW$x 7Ls R-9)QL9㿘Ut͓ÂeI~_PxnR5!&mQ!etmͺm9`ivQN(F R=%& D=W9ΆTxMj0 >C_Rt1U NJf)uAy}PD<H )Rè*=*%Pkcpmu8jEIk%)!& -ó){7H$+oǿ|+.vL+gziaQU.п({gN%2RkkpU/1_6nئ}(wGW/Yq í?t4q^fn譖~7rxKN0D>EQ?#FbĞ8I'ؑ1 n@mIUAXe1\9+y؅Y\Hi')9|XAGƩ7yIʘіK[Ϻ oה=m^}{kI6Ou}S_1fxM=ԊRF>W,rK=Ķ2r6ut[q},7_C=!d +؅>]~OyRqއyLP3ʭ֝ctd#UݲX'FxOj0 +t_؎;K) = _ M`;-A H9BX1 ;y!(Jxܑ4#ӊ{nei*I6[7YTY57% ܛK<[qzg`iFNG}yOAˆuMLMHۖ,m_S|N;`N C1BZ^K)uC>ˇR1q=5H)((͌;*{+G%9#?y.wxOKn s GI J/ D@*e* j/Zs=q;j= fԆ˅NYY(G'ɡq6-V5ȵaJ,lhP(:2|dSϴFxWEmJ^?UzWId.،4vFތ䃆[eSnRB"m}JBr!E Tc=!ćڕs/ahQ)|vX%~BS^1Ti-`DڠV/0w57Ӝ w#BθӾ/ah \]!{۶uH_VfX1J3؎pJ:m SQ UzxMn F* QUE{ D̨/ ??Kr+΁V̯NV1ȥFuY>r`qV(gt/8s(+-R: \Jֶ\ࣸ|-;Vܻ%k|4%03^=EFY|:RcNM&#&_GmLa$؆zOCgK5jRʅ m`MhAMo_Kt6Y|1^`3\2(@qM 02ht@s%XxwLL( c._5 ߡ[2~SJ."uo)CR8 _+$tcDŭ 3 /ii \Ob:kQO(/4%f A"o(wxAn Ebm㨪"uQacl%Uo_ :?k&#It%.3ݨUՠVLSJ ]hi5|QIQ=O> FI߻ޥ B7pmXs^+ }7d*0.PR (wpFOgv+vrvOlahS>>Jc(CKv}6aKu7 n;~3n]5yZ.xx1o w~NNUu[vjːZuXKO+@$h=AyB(}]m.Z\H\h5$I%zmH cy`n/ט-kM u{]uizιhpZeK@.=8_D# oY %O Aq;W\渾 DJÉi.Mo us۶ӴwغmVjn^j^pFr86f@Մ0X'׍+xN E|{vBŘg\Sh+m(Oߋ&;wso-D< J(AI( vBv`\D F* #Y3$oG2 u -%e~t x:nC-~Bj')@Zc:'``tcГujRo2X|mxPj |+H^zrpэ&\vvkFHvt8K%Tj7գ\h*ΤpΑdЙjBMLUq-i@741g]S>/xOk)fo- ^|{7n۴clT)-BHsP+Ky&z,rͼ!P~9㞞Yk"3!2nX W@ mEǑӑB|]y.4ކGӧY*C 5$gi4sGGF;5S-Ro\xKn D#ۀأ()R"`76,aAzSUORwI D?[%ֽe&&)N{.4JnL wE?t3*3Zn9@A3bo =^L6[mTNl)nSWUpuH//;{O|fʊrB_|Wzyv]uL\p̾޹u% 4gJ5#fT6Rc%gbxKn D}d0?hYD-`4cۇ,rZ VqØkm J8)gC#v\ia-`q+R\9!Nxd? \W^jޒ{|t6J~#}P[l r)xl3=cɖ|~u-1=b \!7 ~D؆JC2Mݍ!1말`̾שMqe+F R %v A[" Y FPthxAj0 E>%g(e`B'4ۙ׳ *B~ID0h0E;e$[n4Za=0Q(` |F Gō&aF7HhB3e >~+.qNq!1JbR_``BpJN>2-0R9 )WQ5t@|-6' )d()GxPIj0/Cs,ؒ@~!?H]j*5FslPα6LbNTZcA NSC"aS0V:G';ʈ[t\}+~Kei9JoqxϮc,\xC`G=xZd8&re^a<%omej̥Ɨ^bZbγ-c_ P'%Ĥ1bM">Ri*9i}kx;n E{VA?l~(iHR* /龵C\ C狭+ፏ{^}N/(_Ұ-W:M]11SLgmpL8;S+gzfƊQ´ S2hG"6_>|۟xAn D#ۀ1QUEjob% H޾tt639X"΍q&ZhldV2 b#+q.V0(~ԓ{=.rEfGFzM޳ )gFxÂ{[I׿~ ;n~M+!4K>pM}؏ ȭ#A+$9zRU\ca]yn34?r=CK}ا~Tw xehG]Fe;#$xX:IŌZI~ j;!xM 9IFU5,*uMO@!/yO}'U?15#EN,G͜8 a2 *nb[%Aqm"[UA5[-O7|O[wSN=;7~ Φ p%Z^{ yO9!Eprzxln0wɁR @P7t[0>]%s~՝/_szz ~\O.1?Ԭq\鿯+]V =(G"$VhaiR}[ٓWRX6)d {lnQ{atR(cMo՞[f<_S ^ri8U˯w.q TZÁbn]9g{w | `\#y_Ikd2&=k\.70Rz826ι*'OP!TE`n9nYmKUtQIr+Uiy[Vۮ \%TURP;{zr.mKQĴv %jniXߖtkǹP:κQzlYM+5OqxܬxMN0 9w,Fm,E:i4 ',욉@Mj 렵RJp5I2H}{vLĶN"df-u&̂F熤u=2gGcM~oqw۽q-\x+}^b N`%4SON-􌱸ծ|n[: M1W1=JspYpj~ϛ@TF Vnj.E;Izxn <PDo&]4[ 2 o_tu~2唄H0Z5`)È3 {k`f䀄PL0JO3 =S8}ObzϸJվ]v+WWR[2Rݗ#ⅆx /(_˲=R| l !Η&_Nr^]W]1_߹pGǑ:tJ:Cp.U31c3s6pLZ#4J N~րxAn EQ @ȨFbDmBd޾̢77~]>J;B-R҄a 6e,7D{+dC謴hm^)YhfܪKݷyuq{!VXaJ3I]< Y Ǵ}w8Sm$ [ؼ&?fWry6y?s]ͼu%M<# RpiiF+;q'`ЧIxOAj0{e١@Ji_Vh,YIegaɉ5sٰjt Ɋ'EҹZ)q0Q NEI`d/Uסv*KLpN M.,2m5XJDϜz۶ˡm j@MLsmזuk˲@KrzDajѡ#TUzZI~ZxAn EQ $iz '8$"`Zޠ/$f@B+!iH{32MG8)q(`]q+/,i0ӚR+;Tgb>ox[;e:*%‹y?hK<^A)5~Ҩ"눚{)/0q%@UO?=x+lLSn~/M P%uU>P՝\CˉJE+Nhb3gT /#= \$\I-PQ N dɩF,JogHے^Np1*J)G!Lk.h. B{¡xDlB[[_=m49JvbNVS.5pY5HgO [3vBR04C}CR9,C{j~įkM RfNʻeq\y!L`-xMn * ĐQUME 6?޾̢77~~>? èD匚Rr05=zu{ֳ34ˈhp#VfF(qJ8'G#FJ9W](~˱@=7h)$knxul\9X*:t)Ra`K}nhY,@VciDwڟr;G ]殦ߺnUd=ͤArlՍN%5xAn EȨFRZ "̨}77\ 9t2ZOF̠Ȭ:';v؁R3ʣhoJ#-ڂvty_ \[ck)4޹| `k1"۰F^+K{9}ՂkEuWq>7v源%>Y8ξZōb9vhߜ3)`?@tsxMj0:샭XJ dQ-ƒ,D޾ʢ700=׊PRKkt [ACLE!#7gwF/z: 9Vgva)BG!a|6wO\+!%X[#\;@8J^>wlX[tbҗ#!$6ԯ}j.v5\Kп?(GhDߧ~Y*?2GPoZ u0)n]X5Z txKn E* SUR+u0y D@};'l׌8N9U%բ<[ʹ"+9yt28OYe(fyIQ CYo)K5oxMOQܯ_}]wަcZ0wij-c Tk `} y: h\BL5ɐ"l)=!d + -ߕr CSM51(Cdj>36JPQfFNvz ՞g+Kxj Ey_QR -/F}݇Aeνp/35#29Je,BJML':"MXa2T*jZ٢QIh1G]S>Lk7SZOf£wi{D'چ4w ⿔ -gp&5!z紁˦OUW=!ćڕ3vaBۗR04}4}ɃG-Tv6|įgl@rFN3j;:1)KEw/B*=JG/xNj |+HFsrЇ^ wQQҿ}tavgaؚRjiYOA-FH2م 2.!KMhqX!&b 3L1{kf{cLPBې[_Ǟr< 0g }A9Rծ+{)eCcTR_P7"((Mڎ F;meJO$gJw Rx=; @PB FwwK)fR\ zo-L$*m$ob"H< D(B&@&'H -(6K{8@~7NOn^r5# R\;+U/V.xAn E( ɨFJ]t3 D@DtzO_vN:#t(c ˄A+nQ90 +$ jhB48j0zTi8$({SUKc3ܶT5K4M:nx{K^m9`0΄V959zH/-x$TČ Cxm1 @@$Z٥ݻd,AR$#!+nWLSMc$ fcPQE-tzSl$d[ul|.W̛oDPz5ã]Q|AcqI[c2xOAn G`C^0M[$R~_)?^vfV;) Vsfẗb(E`I:a(T3b5HUĤHl1G5;|-EgWokoc| NK1#_, a!RjFB4ߕOb/ ?;$ /Ϲ%4og6w]Et]-w%]ϙׄH(hd8gG9^?;exMn F}d{_UU. $Ro_ :x3zO%2\ Å6R g+ ֳƸHF8%H8 =.E jFJ?6uKo/1>^szȕ8=AiZ"#_ -nFBHp*LJFоg$3 YpxKn D6džQMEܢ0f p>d{UxjU+SejJ(0NcN-NIaX|jT,V[PLK]-7϶B?|ϼ%cdz>? hs| Z CzțsѸ׺@ku$ + ~/nij \¯B:kDŽQLZ9 <}`ؠL ڋF,1sxMN!_ĘI\t3imb7m^՗Jz+ sΤܜ - Aj9w9g5玁Q!V#j۴t`aVoc_2~8km[ٟ0p!?qh= ފ3ƭڇ-gNS B(><%w?v2K?|bt' ʴRNTJ6| 7[~DxQj |+|?srp]4)kK݇ݙafD"f)0j5ͣ\)3Cg: 1\rF&JبuAgRo}ʟ=mu{sI7wM+ !AHA/ ij1#3R勩B)'RWjS_GN{Ov#vav/lahQ)o| 8g@gh[MSpf:6r)d*gZ)> xm; @aBMi9;fEc Hz@B;_3F@B(%m-xEȱ ƖZۨ7ȵ-:b$Z8% G_ъճj55L=6~/Fj{8UxQ ϳ_*M>B1vxPIj0vB!#lKF ԥ^C\qTZZSHa&h:ܱ``&rc ӜYr Ep[T([o+O9RF+/l{2>K ؕZ{ɍY#?cԥ=ƨ`Lo_{t.s{,"Qh)d->U 7R)5z^В,aA,%Y{1oȏw{حdx-ݟͮ 8&B1XKV/eK9Ah^|OKzX\kw|n]r04d\b:1mP˙>oF3GQv-Jg?xxPAn  $ VURUa l"BVbeY VYF#9YIBlRpB #& ^QdJFgK|O ZK/=ݷS^9(%h/5w[k R>Gg:ykN=c,;[7: M1aK|!apߏنZu ,𩑜,׉D7;ez۷ u@ ,xe= @P$XZYo6?lL6R$"!@+N5m6pR5@Ջm[5OsSVAh3# 7fVSXpyt.J8z[`0>&/1xKj0D:m< ! dm-D>EnTuQxJ0ymn$g! n|I3I6)I*ƅol _3"ra(`)Df~6A:r@Xi{|hQi9 3I)!oHP`oDB/g !0腷#ݷZ_`rƥn)w, A'v+vҦR+c!Br,ijT<Gamj>M :7z:# x-;8kQ yTyxPKj!{ VdVnF>"7HmU<^1b+"0VFjW`{sy/VJyaB {J5RG2~X)%?Kԗs%f _e }z kKƣϨ"I{d+|imNP4eR γMcn3+$<B&Aт_GtxOj {/I$޺lc|8s]mw%.$ rR7 o&fYܨף % wxm; @@  {+TֳD>fgNeEB: ϒx 7SY$oB`dE$.)Q{tAW@m#4DADΊ@qh TvfxiVI,g<]@ ]_=MUl5Txj0E~싚n_ھ$} ,pDZ078= Z%a IqIDoz-RcA8(49r줕Ux5&xI oq B𸔼1e]pjx`e-gXodsFϟdo 0X~;$: ǀ eq f'(pԶ5K&%G}?9qE:5 lV3kl?*-ƾ jxPN0+iHP$|8N+W?`/3;)#*v8ν-T7N%9))a@cAdLJ2<'1}G\aƭDxUo~'YCODVm-Ō}nx)+k p_(;JY;[,Ps|Oq2Z| :S˙Z?8ȅvya%Ia0:u3ZKQf'ep2=xNj ޗ$CǾ~1a,k} sD 6 G^1{q:zF5 p,޺:`A̠Io2hElK.`~eoPa+ޏ/J9)iAzῌO#-XY֑6>F^j]nݘvsI~JYGmjw1tzg~`zyX'wjtxPj $jbԡ])t?:Ѡпn΃pjFYZKi4{?5mQ(&q~dRaȔ6]@ #gF2=I*oB8-e1C-W(DB{/a޻=SιBK)鉵#Z_uH}x}Ē"=!$+߱[3mx*vO9<Q*{Zm_hj .z;n "9t4.?۝ǡ8hDϷh,C3xPn j*? $hDj?/3ƖKFž;Dnqfv#u #d#cLPtPd7c; P= %JCF9)&%kN{NY֔3 &ԔoK-SxspHU/%|cH䖑Or_1Y /DZ]Gɶd]LQ}?:u&PpE A=gU*}x x=; @ID k˭}`'x , ! avn,xK ɗƢbD\t ]>} hS,I,l3,QY2%-ı;~?~T^iלVL(xj E ߗDDMRoX4&ѠB?;rUn@(c t(gQW[N1V: `qt# xڠ^LV, ( Qה5cH~57SR} ~ W &ࣤ'ކ4o⿄DG)ѧoBVδ驔Xs}O9xT<9Zlba-c;KWT7R v|M{'4Z ,|xj E~!ӉQR( E P]k:/B34` P{')uh/3ptjg3Zl@x-^0M?蛩fL_Bw_nm\Jc N|GL]SoXGBHm4Dw=Onim ɌgB׆dNOdIuxs_^9ղ `f0( b Y 'W| xAn D}D 8*Fq㗨7lf4=M-D]a#j Cd$lB ^p聼"|?ƀdpy-+ GIuqB~+rq^RZ)k',V7=Z0e1|l0#clJUY$}]yFs{mۻi-K 8ޅ#YM]+)5ʹ B^.H#uF+ quoxKj0D:vgICCj`lIrԦMQ5qM q҅( x3Ϩe M"8rNEXIXϺ3-)֒x?觴q!XV+Kiy]Xמ1l+G o2 ˁ}ˏY*gڒ}i2L Jҍc0Cbɱx@8Il@o_7ҧx(֠)9^p(":iW bjZAP큃v$¬y%eCL~eY{_f{BDOЊ4<{BH\kW{3mTrf>O9~gG`8 k_lf%cNoAkIG8vv ɂK5AI zFxPj0 +|_NGK)[z('?4q-RH4z=A5A3("YXӋ~Z`>y~ s¢ C{s +%W[F.;/̥ͦJ"-'{ iENJ5b=9` klgnRrK˵(jc^O'=і[Gn/X;HkxS`FIql@ ׈AfrB7L7ZI MSxj } KjK) ( hPK߾7̙aZ 7[nRK9ebZi4H4KHӄG0 gv&y>^#xok.}kXq.>G7_mtysp zN/f#@[Q[1PGBHP?Ӱ3XWcL84^[8Ge=lPo7-^E1'џ6va-aYҳ9i%8)|xMj0 >C8Rv1Uo0ȱ&v=}=ޠB$T3z*1rk()1H9X!ccœzJro1r;[e3=.)k!HKP`o. 鯿֭c*-)'51Cous53`h٘͐=B(+߱[z*e9T")&!K(fbnٷ/0gq TvF2 xN[j0)l=lYR%B/VZĒ޾*705#R7Ţ 嬞V>jځӈ䀌uBJ7 ygPR\2n)>/HoP`o)^|£Fk'ކ4u⿄ck+,Gx@ )Ҷ*=!ćڕ؅LJΌ5}38 kv2y3<{fWɭTK :> UZIAwbxAn Ebv]6QUER@fl#`Nۗ :הѣBΔsBI81ia8:˴"I ܏8A1;LI+䨜:k',1{9|%f-^Λk;cJQ'ZTR_'n|Ŭks{n هK\vi\p̾u60.;{}%֯_xTk =gJ5QPh3X*iro(Kxj F} D?YJҋB_bQǘ@B߾.oйobj*I9j-pD8as+ҡwQַWJiGka"s#7LNm[$}]ާ !ka@ oCݖZÿb@4=rɧ'ĥvkѶ/7Zn3(`.ϡ0w.+>rh/T>:>e7M(Z ?&|xj0 N|HЋ^؎rѷ7n$P:ȕ:-3z@wգ{ɘ,MDv5qJ[8:#:guRv\qs9DEB|g=\M2[x^2mfYk`SÉ Eݖ_`:?b}$<#x[1fM(פ )F5!dZrZ3|Ji>7Mɛ:U7?Rƽ1rw3:#Wpk3ʵUϨhh-8U3 VxOj0+lImI@AmjKFrU)efg##BPByͽֽ1sF ˇQigZn2|2)xŕ !zY;zLKሹsqJ ifjJ/fui{yE-ǁF>qKw 6~`}3nP+B&?iu#寖2-GSY*JϔVNѴ)O?NVܩBQX-fxV#ȎNc9 9keCh!ooxMj!C?-3: } !7ԫ{(o](8 juRi1spsQ-\i`:MĖc&yTV}, -W>R |~Iy-3$CjqxC`=% 8rQ2YmԧpSk\j(G@8vdtw^( CI jY&M0'xR)'L J7;oxOKj0[R(%B/yMbHJCo_t6o0 35#RDTh*ABp!͸U*9oǧ+1z%xw4JPh9K)ӏS3}Ů-%їj[JE%=u%n17#+1bi]ں%hRcf'gv/wfVme.X/pج_, uJN;]Fm#HA~˪xOj0+tW~J (A,[FrRU(awvvfH%('˄RLjAi JFG6qݩIp48r8э#aF}9cHyo襺$ڿoM+e&z R%;HeX?XZYWU+kK qocm;Ǯ nSOޅ^v:mAdKg.W+@'1ü2u`lw^=iz,KKVn#R+ɲ F")\-I V>? -"#xj0zےlR(%CǾ@Z6Ē@߾JCߠsٙaMy6T3"su(ӂK&Ga2 /i5)?e;!PΓsk1 if%Kh}%f.|TpMV+ |[ PW,v)>"dL9&'v͟S)yC4}}![x 8Óe~_©%̜Q4TtŬ8 fx9k1{RYXܥJ6:w!>2if`c15}0j:.vRe>2 6RA3nӚb'9>zi(Tr <{ ϯ ^17Ͽ޹Y5OZ(bPyjBoTO[`˞{k@]hkG#\rl{8"4L}<y(e<qX-Mn[!Úgr'BbϜ-@sFy6:LwT│Խt<e >xm= @F i* 9BLD%$&90<ʺ"ZB@-$FUײg&J WCG!FϜǃ* I v =6~+7Y(D0_8(p|U3 cxM˽ @ @aEiTlsD} : )}śnDaB BV|@p%e3SroA.D ^c@WGIC=YtEEo4R[yjT/gxAn E* 0[@"`:KAOח[;9nVYa))ZPff)#->5pp*%lI _y gq]6I{!o{7[S29 A!y0.zr6'6\IdyzxNn WIUUJ 6jƞVi7Q2 ]@'THW05 KX 0+Ӹ*+wG.`勾GwWS2}|>GW ,I/twZ #\ DQߒ6gp/>s?z GSʙ>nY Ts`(5X`f`Y5HmВWwxNKj0DS(%PJ&d$W]|`5L-Aex`T FSC &s wSr|Ȝ}-ԐJƟe4_'i7srelH @#ݷÿܞ~Box6CM)1hxϽqT+gòͨ%(K%KZ(^4rxPKn s%j.0Uw]HL KPolɶ,fDZ1yͅSZkFot!6c-﹐L*gtJ3QS49&E{-eKzZĜ-GzeXP߁5J1#BȒ=Ԋ} Y!yœ~ E ѥW3qq}BPRv5>OkƭzWl[Lۈ? aT1NPK`lD/cۨ4Ѓ ~$dt.sCdG=Iq%u|*n=y[rg? .Wgp3^%FrIwX\9<@ޡTkIs! X7c,s˾?}ZO[׽Ou[&* F 8r+sTQ6Dqsx=n {NA 0hQ|hm'9~2L^+1gp4 u=Qdֆj]H O9WkM/+\2ALDj[.=%4ݏ#a7uK^1p>st[[wӊsŸ1]BklCJCw}uOSqMfeiMWmpN()Cܒl>U0FTأبW0 7||))fA _b[; N`ukBF>SYXQZ~sCB Ly11yq;u9ך<#1>%Ĺ6垚]㩔uژL]L{~̺ZSF3j:0(KERi.E/xNIN0}%ۉB8/ؑ=K-R-JJ[F6YιNJC R+U )>UW,Nrƽ2ũ3Ĝu\-/ ^a)-nf}sޞ5Bmyq;H upe{_mOkԭ /DZ\>&yTfߏچZqCQDFQ iFmGGF;eԅ儌8uӞxPAn0 Il7ib 0`Pb؁l"U :%8yChNV(6,*87V?|nP϶gC <  {^qǕS2o㣝 I2k%Ls)4Wr<=hXGtDZgR+6WjӾ/׮cֆm.ɻmŵH7-(\. =5W10{< ~6xOn s_%j*/x ,D@ZK0c{$ "X)kc2Q^tZ9ǍS%H(W:hF@FeBB*=KC}ΚxAO  Z6ƬnW#-mlaTe޼ILI%0 Ag@pd/^P P.rRWrCNqegvfIQsB7}KW^)~Yv=eU@OPEju1#}ض2# 3̱ZO-!įɟYyy9w]u·#uv]w%AsE΀J5@ϠosVzx;j0E{B`IBHH}e3#@vr)UDL1iJm%*/:<V̍JpR5(IsB&4J{T^1M?ʒm:)s_dGKz18E5'@pokt%Ѷ MܭJOr31۾6mۇXZ=Pp-egN;yfTgIxxP;n 9ʆǟU"Rۀl))rL3b4Vri v0P q0)-7FZtSNS> x2L3TPljv c.# ޒK8G5y@h龵 }=_Wbŏ^iؖ;|ust⎣c'`X5OP: TD"\KqY ux10 @QH K&[gd vpg+E%'/oK}T 0B`BdW)0KVOp kiPb| @`}C鏛?n`n:oW*8FW01Q9ȧƜY[Ԫ.Wڶ_3/CSUos^/mKqA51ݺpG#- 3:4ՒfgXX[kY~;^},xNIJ1M*SejD{!x]h%Eq |7#t+"73nHôLN!vԮ2`ԁJE}K6z4:)R` kQvϔ nN?a L_ji{=e Կ {qx%Ԗ9#GsΎG;ǍTlj)!R#҆+(1tVxj E~G>JyB1IH <,9\Mr4LBH2datұ*=DJYU3.F̢w {AK0:˚2֧?Ք_|w?Fờj{~:-b%lTBDSz,Gڳ}7 &I@T4Q+)yxPAN0 ڦi4+@^4N7M$Eד _l=#{r$`J(&%zuʩV;F-Q˵T1#RDצ#_CK%Ox WOp+*7olf=tSC?‰ _Ī y2} -.Ԧpxd\x\S=|Et ,e}!μRęZ\Ӈ9Cɧ-UxlB\nu#e[6ÿ?p6 wOX隉ՓfCmz9i+ؑxMn }e{QUE"j j J}ޠy{OS3"E8@j zhPRr Z&cq-qeZ,*=iټ,I2d )t5Kϡsz]^(c0+R ڑnk/2rEo\My&O/)oo 8fD>85Q1ފ`0fo5wBؤ2QLM^YYmAohi4j[#qg]RGƘ|e+nkotoqsNi{ΙUb k"-Z_`Kж1j/t!xQBH\kW>nѸ;r}RqyL:˙Yg<]Z NIxxPKj!{ !,4F@ng6U(#pISN6n%2(&#Tk,AWpˀ"0'#9uRp^|o1?7>[*|_}˻ݾ_WH)1q)8 0}#K-Pڱղ6P.h W8TK.v-?5#GsɎG;ƈ& *F '"( 6\IF/psJxMj!F}ҶB"mN`k4Q',rԦzWDjR *ej+`[wqc2rڊSgʊiDRy0x@bV*}Km6B1>^(c`fÄ>2h:z)#CوZ%6_!$}j_y:,#1۹lpKKyAPp-daBfUgfz*xKj0D:E-ْ!,B.Ѷ>6%#i}4 (9PzBNfeUFhGN.VKfI[)p;=M[ZjWuKم=mިRᅤ~M+pf\h lb{_žR(6\t+pOh􌱰׮|nWhRvO9<TwtehG 8,8 Tg8.] ;켷rfxטxMj0 >Cߡ. ] QЉ׳ P4#YyUjDJՐU̍*.b@f C QQh-^! lKb*~%7wS }I~O[c(+e 08Eȧ{`X{<.C&`Z yt0"tՅ@ ~qIx== @P )RY΀u.`bfK/=@:R %l ]qrQf+pe J C6 Lsa4vr͈2eRFxbFIZ#v95zMpmHKV/0L衕r zJ|'q'v3vޡ[)}C}!^sY1|ŏz@sFQu팣[LBKѦ|xn w= UU:U_Bۗ} N+Th: L9cbJ2gwJ/3XCԨ_PEm;43JqYV1wEt]s!o@)>Cs9>SΙB -uƭ5yǘ%dž_#!$lm4lDj1$s y ^{8rO`JhgB/˰rf6s6hནJG%'?w!xPj ޗ$O1R,пx&j A20̼VI( LX-24|ǝa 'f+efdRq֖KF3JH1yX5|=eO=އ}{BRMZ+ H_Q3Z3wkv/\>e%!YqCclC-qC0mOmR9SR@g'PֻHa'k&B&OH|7jY۵"!b"VZ'3]9A#I Xg ^hG`Q>Lj8JQuwv_,UxPj0)\l! 4Ů$#ɻM(}e`j& Jf&iq|WQ'LUVI֋©IVNFA87'W!ig[3K7-UTh) ^]{)|qeBB3a V/aC ԍ$}< LkL&OQZ)5⣃{v({)p!ג 5)_W M+ŽXԭU3Ɯ]Λheջ\d6]U*"h \`fTz\hY+ɹa*FWa+۴2ށ[$*7KgJYodGKCiRo)5t>| Jz Y"KZ51gl;u%cdc:O>M1bί6"xcF>4ml)7CkxKj0D:E-BE 2&$ RzZBGi Go]\Ya *8J[^AR4n֤/cK(dY[ )oxϏ[k_.k FIXRk2vϥW9A]5XZjw~<ahOsI~HqC۳ <ۈZK0#Ǒ&s>ͨ24 F~XuxPN o¡pƘk\h- &<Bĕ@Va@%sڅJ9Nd #zG4:3ZЀ9EQK%W]roR.=/;ZKOig?K)t7Zҿ(CciwkƷ\Tv~t 8Ρ-؆Zű}֘I1ub]j2=nxKj0 >C9NJ}J&R.zj??"Fi㣲ѻ0YI!3jh}`BqP##g mpN^;O\#oe}mlC^AJ4Z V[`=Qme=zɜ)p]SK+鄕i^IbY9R+TuյKm.˯tL{ڭrǭG%^bonĩAbc'yNc<xNKn sWl*R gB`Nۗ,zIo$f0V"aDR4xr4"ۋK qв_fIvi!_ԤpG}L?]v[]k.7%no %-^Bt[K_;c ΁ HkP8'@Znyr+ki=4+KSUژSw>޹}]~J:YFITVf878HlcshԛQI xPj /I_R.tQ(#LZǃ-՜7J 2`0 ȡ*BKjs xE1 @PBD/̮xf 99})W^v1Ój"K9!ǒrq>5A "-Ctfj F E}'N<-Ia~~_6RA|X/~(6xKn D()HM->d7U]VB52Pfq-͛hQzbp%2h8EmGGc*C5\]j6 ζ^JX UuKG_ͥL)HOZy;CL_{=[]SgVhk>2BԆt@ׇZ4u7.ٍ{Y~䳶pL8+nS+g_*!@3(5X`fC7Z2J~EzxPj /+K)(7Ą6Agsfa8L+T¨WiGa2~Z xe2 rQ zizL ҩ V :"FLն\k7}[/dϗ??g*LJޠt[)#Xx$կpj\/bjsY1rGO+:I}93- [`&d ?؁ox1n D{NR/ۻ` |EїRD҃ |+GC )F{&p8RJ\ Q+7ёQ f88V1{{}L^}g[R<]?9mO@ IXsV/a5/`/Ch]M{X\kW>n]uq}񗇸cQmj>i$Pi p$CمHPw3#xEƱ @ @%P $6HEmo-!6MH XRQr\JG%bc1ZN{9";eZ: Ǭ悕CX:OȄ$z@< ۫v&xMn FQUEނ!L 2Ro_Z77O[ s Lp5 !|aYfG-!5' H H=-nlтN\{ 1/ׄl{d;|+4\H/ uo(<cK u8[w%ˀ[#毸Ku{bC.'1cQǾ>r kFDa& (3$6S2)<|xOAn0 %ٖ P~@+Ҳkɐ 93Y3UZkJbq5YN6SQHFJ3*4Z&h2C6[#OL[/[) .e{Rq{_JaYI"ť]Wf d٫xMn }QUTz 6/Y'˭` RϬP&K9J*V 0RjyobQ΂e+zR.9ٶ\{[¯S2~_}_ ̤S8O[ Z#bGPm4Dw]jnԳ1$3| Geʙ>z%L+5, z%rY/|_XxΒxn D|# cCc pKegg)9ħ^Y(;/j4hV IH+AɅbMmƌVJBp8`/,l1[rkLwʴWJoNqQ(\t{Lc_ 0G{>3>e434~BkU׮ژ֧p⎎#wuޕtM Ђ1%fP52+=^+/(<}&xMn ( ?¨FECP@ۗYO'WI6+1 reI1kp /MذQt @Wg2:g6&ETG=⻩씄|oӄc\)%RK$ u =ksI ~b!wzvž04za]{j-yO߁\[1P?+~uNSOcnVJ9^EEf4\,Rʑ;==ex> jZKx/i{"TACNZk/;B$F|z6bGnm}>aeoK kWVwvO\S~(2PkМOJupp$ew9'#~1xPn O(:)ETg IE ӊs3 SN&Dɥ^W0k9hWťXcUP+ɌLy'4^ FRGŅ\^ >TUdx ]hr|B¸ ܿ#.- jߝ:9l |.Qǣ>Ӱ+}~ƐԘK8QۧnW7NvAPһ^a%X.RW*ZZ% .=!¿R6iAvTXRĔi9XX0FBHL8KmY%VN_.o'QU̥пۋ0 >)/bŹ4WjfUO8w]umLخ9.c/um{WYJFˍ!5b&{$retxMj0 >CI32Eio!'' ,zj@(r j Ƭ0qhP3@DZA͒ gp&A;'91<=eɧ?=7,ZK/~7p^&1 ڰF^+KGNZyμsgv}Rah>1qu0[͵l/4JuV`sm묍,8vxMn $QU4J "B*ޠ޼>YϮ%.GrAJ,.ΣE TBU@ɚAl;":i\УB謏\G 1o頭d_ōWΥJ ank_=\ [rX5 ;kLB:cԸaq c.OׄߠW2~=}xŔ$D@==A:hwWr9aHWv}BqkCN>M]1KSLWm<S+Wz0"93iC2Aɠ"dpy~xNKJ1ݝA[dN$-z{XAQ R' ϨPJ%2 3kaՊ`j^JƁ`R:VT앲ğmͅ\ryMWLߖo10ŹQ =ݷ_ּ#Rxs'֑lmivԺ^qI~eӒqԩڧVqL VL읩a2 8GtOxE+@д NBOw pdtV"MO@ 83oov\f޸90$)!a.5 KWHDl~҄b&,As1Z( q;5(h._(7xMn0 9w]$*u8@TH 37AdK;]/5ZJX׭-%6'h[vIF9b u #aם-1)_VtK9 JrN<RwBf-D\, \ .=D\xxe\nx`2 cS?44P`\*nږ }/>M?V<:%ӗqx~|R&-H5.co |gOh5?GBHPiݕvԺ]1&syQ?'<:G#}8S`z-050 uӗxj } K) {Q[Q#m4- : 9p^JTKʭ1LB+7zbNJT;h(΂h] ~p%€9V*|> _˖4+>goq7}ve`.B S_{ջJa_sĘri77ʙ6bSSZpKk\j|hٺ?9Fzł0(triOb ajL JC xKn D(F"JnٚXۇ,rޢT^c\r/)ϜLePqKYJ[htVb\{i1^B q k\7,\sH)%>?˻۾&_W<i97/0 o CY3oB(oAp_Z[<Ԕ7Gyy^`5RRX , IJAj3ƒpxNKn s 6<1QUEʢRoj p޾dt6f4Z ( 0r){)tr\;e5`^q.f3xd(K4Joq\I1ʅfbBH{1t/x<ŝ{B(LvŃ/=<J/=|Gǝ4zP(V(Rͨ%3JVK6/Ԫ%_Ev4xn AҨ/tV+Vx*`|VF.r(z#[f QYΛ`A8܈k.DL5{d>_įJ9g 5'Eܿȧ{P>U-,t)>bA#4BBlCNCgT$o9<Qehס#}^r E4ŹÉbfݲ8.%g(xN;n 9{YEJ)<,̮ۇAO13qUЂHYxnR{~5([(UnfjDvif"/Xi> /ryK͞6_BB_s| <XK^+KGOr|6lr=1ڝ_sCS}H%!YqCZ&@r- {lFbu-xN[j0 )$?RJ)8a;ޖ޾ޏޠ0Q͈`LYFef 3^hșGKN1VX&coγfVq+5=2|d )gZ#%4-n{W` Q.iՊbFǧڭ {r>"KO [W m^JYPSO<(gڗP#oJJAsFQNvf[YjcG-9#8}xJ0y\m4AdŀoL&%ME޸ .6\?ƥl/\J[.mm-^j[K!_;;cڑ6yX_qƔq,5)hapߏmSg~q*F2*rKm%g0wؕxMn bccEނ`ۗ,zLnb=JID~n!㤙a2 (UDĥGpI(B9ލD;Yה=SH>7J[۴oH!QO.؎vjA%Gǖ6Ln)ծDӧ~,GgPnVGs9;S罛ԢG5 ~Az^!xEƽ 0P%P $6HE}%@?2BQ2 @J^~eVZLA$ %RwuZ: Ii>HM Xjl:O`#֬끘K8#oY'/xP1n yR^u,'!E~-fgf"Qh 0ZҨłv *Ua2aqN(QCDfκ3G"3ńo~o6W.LbBhǚZ_'j%3^ݾ^yR04h/|zغծ|nsWhR: Mk>Wk&P(4uPrEՅ=+|ښxn D{d{1StR"`X0,!E ѫBW×Z JOn54 D7rr茱Ri&!P"Vkg kEn)׌>oH轵$[ޛ?I3e LN/Ўt⿔{MEK+ԍ\;#E'P`K)u}}W>1(C5q F`T- &]C.:笐 ##?ԻzxIj!E}SUj96!4"[8tB@rEnFb; I-7Jbـn Hحㄠt'kBr`q]R 5kQ]wK/q뷘uXmͯcK9a\sּ&_:z|OߩDz? i,,]KʹƢob9Ǧo-oy#JHYh%DŽT`z0x;n0D{b{CR1AI$D"ۇ)rL33Lى@HJ<D-Pk tzp4sKbEyi`m@EP>i{"a)Ә)«f+ [/jui}:X\ {n\h̶实\_ץǓ {m'84!A*}CҸ}xn D|"Px!V X@*Keg0V)3cApgKm9z6Õ~%)qp[AۙUE9孜Aj\G7̏D連[2} =ݟhct9S`Z+.ƽ52rϥk{N}gHl=b#!$m_iط+R:M]!1𫧐^9S_V^yHE;\dA3, aoB*=K*{6xMN0>UOB 3v#H9.]pf3o4 R)GJPJ 0h<"\+ z b22oLD8Wn1,zͅ>L|](>>_#e T0hC̵9 tiڂ^?Η !$͵ۿnGa߯ahOsIw=Wm^ZZn牃Ԝj΀OJu@2&ccd9#uuxMj0 >%C)S(-'aI=޾n76zCK8M.EPp.9s`>St h?OzP6Q r4H}T2$A 3v5"(Ĝu3}>KQv[-nf}{jhB/Іt[k#/yG?y4IazBH\kWS+mz)e2\tfhc5~CF8*MlhaBp'%tßxQN0 +|_ͫiBh đHG&U{?H嚭LFʸ)k$ZlRS,Bh Xq>['(IXc,̔0b>2\)[Z#袷7_tK̸`p-PcP1d5bRMGvӹXC A]-kl^^|B>Ԯ|.3z*e=CCOǣTznچxP̅!:EaNp'gdkOv-+=Ob֯e z =@=Re.\֜ LHsBjuLsiH?tژl˻n{۶wuҕ|KgTs( \=88 +z xj >%1e)[P衔 NDB߾oй7???S"<9n 8fP 6+ nB8N`LjH{g }IcdՔH/~3ڸ=Q&bTꐪnK)/aSB[Qk58󊩼+!/ߡYܙ}~J?{j+_W#04԰X&&F(9_MYxxN;N0} $y  -'x'ǑEc n4f4ngړ@HjFv*a\0$ tgK\FC^El5[]r%\=/R[!w_ ƎR4/c!%gŵv֭c CS}ܨ%!nchgPm 5r3 Yԁ T7^{FF~bsxPN {7m(w0njƿ{d5j\$:gMFX5onCga+TcthNr|EEJא2!ɽFMJPC\52ڧ] mpjq׶!YA,w%hvPqr#[Ytdp3^ŠHu˅royKNJOoa/y0D~kku2cj\7՘S vgzM/]>$s ~qVw tC-t $Ĭugl-UM'%txAn EbmcE.{% H޾Rn̟'%QIHњz!=dI ٍJq&$YqtNI97;"91s/[Lh>dW/k}ޗu7ڸZ‰a3I{|؛|K\ǪڼݠnThe{KL-clɏ ur]WUƴn \q6ػzA.G j-p)xf>4-ät? (fٓxj >8]RBBb&lB߾oй0S ׺7vF+Γ;1\ߏff;J{CjG}0<1zPuɅ$n͒Kl=n~uS^RU_ kt[k\ 8\;X\8XorMʖ%><*Mr];@U FF#XlzgbsOxKj0D:vK~C dV[6KFrhAV]]ЯkF,pL;!'lDqf &+8rxf0cWFbV, HYהGƐLk7W(~ 7ZM_ HsV.xTiRд-Hѷ%N@{BHjWRz]rx!ijT<weh3~_9RSpTgL :3KmВ3 vxOj0+l-;Rh,X2W9:,ԌRᨹZx)&f,&^yҊiیB)ɽsъIH.1픴u2|f )WFxn%KhzKz]^1*ZI8mŌy\muxƲpv`irnKYc5eOc !a]ynghT< !>CGv~ކxp*Qh7Tu'ag1xJ0ym~"rAPpgoW|{8siKS\KᴙsOuBz`fxS 5,"\p"P ĂT . Q::dζ_ |᷼%l;%ǵu76?aJ 'LJz_`,m,KbN8G{g"3 {A?GPi}uLSW̘51SOʈ+F <,؁JmBR+(GxNKn s >DU)J1bI޾tt6yzqI"%9+.ɐd ;\Tav4` $hHR;bUB1o֒[l~-nwB3 cZ_=B9;rm?Qh-iJ=c,;RWr04\/bz9P+=onƱMt,6F d?| xPn #7"1Vb@+=ٝ0`˜R #ؤh0AI/BLX!u.y(7FI+D[k/a!nw/=ž B=Km$[WpZil\sY|Zӣ6<&wuG]8R>KcQFj~S)9u4u kG%Z9gY-b9#_ʝxPKn s O VEN#m]Ԍ%8 uqCYה3|5FԺƱ!$7~Y;:Zʙ>UF)f9 $ffغI{ՓSxpxPIn0 )YkPz(_eHʡ?(/33K" %%:PU!rGb;& 7NjZ#.Aّ@Y(sL=0Z]"۴hq}BkPXUץ3)̼.xf W^|i6ɻi;r}]kJ:knev4^@}p8mﭖwxn {>͏1p"4үa͡;q~>db4jAL4 FTw-b:A\7buς3|dT^z@hz]  k5g!>?޻5=QΙPJ[#k"-MV2Sw^֒ގz#~bE>4 !C뇐6CەZ|;FS3MlYgfeJ+j~!xIxPj0+PhR^Ka5((I,Wt.;3 ð9jb'Nk2$,JM)d 5oZiej1rDx '_zw?\*k/e,Һ=d}z0ʏ+oGX`0%1X3ՎP-elj>Ƈ+e:<Ԕ{>w-#ˬ^j|x'xU^*2%^LxQAN0 imB Hܝm#6I+=^$~%;<$%F a ^EAj01Q(kQŞhќA+)$#MbI%([Lh3zVp2]9:!{=IਘGt&KLJ #X@βK@֕rt{B~ - qB|uy[Y歩juP;{>rm˨Y617ܮȅ=ڷ%QAI66c;ajqD=1b5鞿~m՛xPAn +CHUUC^ DHCPJti $po&e1J+5 8rRjerA;'FiqK%)?K6ĞmͅsyMVJ/RA }k-؏GxNG8Gh o[N!$nĶJ^j]}v'c:k Gol[9&@*411v0(8Uxwx1n E{N16`0RDJ))rL3o~4:FH&0Wam%frBVޘ !=W0΄UK]Yuekuox+Gt-gw?Bs%=!RǠػ2ԘC+AyR=fP}j_yƾvܗeK |Eg[]ZzǃbF):M`3aF$ RS~zjxOn #ۀyStElp!E hv4 "8Wv[5]y3-󬝲[-P9m`()L:Ԇ;ʄ1: W@I{A7|#V{JWqWmx[o\#>1FnM+h Bmc.;羇-3GRw֭!CW@/ihɎ_< ɞgqjWNgy/(5Fׁ Ferw'bf-9#?庇xN D|g[(‹1/y [hjΜI&S3B23) DRX[@:)Y22С3Ċa\)Ǚ1,#@L\م*9 }5e_]}76OR2Nl5Z_= k4.>_T~m! ~_! %|{+o )eCSOdzT8}eh3F©i%kt9Y*6/1Y&xMN!'t- LэgiimŅ7mK^Zd$pe,[I1 e '1Stvib:K{42Ň\= ꭷdx /_¦}y{J cICn5/e|wTo/m{v.S\6}m_ GwZ8v7\¯C:j}6r #T`}g(1#!/BIpF~dxKn0 9yjYT- "a}ӑzz۟ǟ"0v(FPҡ\R[Aa;3x6v8Ϊ)U^3Ox6Eaµl=^58/u uΙeMA[^t"L phBm*;D tlg^Hk 3%`|1\ͭ]v8'@?nOJڮ[r\@-*xIj0D:7$kjBh"!d}y mr MEQ;NFѡP;m|/3 Sh#Z_vJenJ^mۻr%QXqhU3u(7%zCxMn #ۏ*Rz Ro_ :i%3jv DqJq) JH W(iB͌.ݿ%W @ =M{k_g.,:Bކ8_iKua\SOɞg4r?nȸaT!0<`n`ؠúzJ"_XrdxPj0+t^@$eX2W9avZ H.t%2:ta1JU׃bVZg,Ȟm%|%ݷ}?1 ,Ack/fS)%- ZqBB!+RvƐKx)68&{u3=npmpo0-`(q)#bXE(;_8|xMj0 >C;R(z9V08@o_Ϣ76zz'DhzbRԫr7h/0K/Lo,RD g@Y3Qf*%[~;ͷh\Hm8…bR_`;&u;R|k=C%`z`P̔ZXXK{+~yv]Umر)t3::Y;=a\T! dX=6->?q޶@)<w*1xPAn  $@VU*H mߗ^<,5q-BMYG6f̢ѺDPLr" >AC2,q 3|-S<7?Xpo.M;n+ [/fbTxh}qRxkW(ծ|nW: 1aˇ9yeڇ&AY͍ 4uQ@g]mZ;+`?-w>xPj0+=zXJ P?zĖ$Bðxu6L( rΌ)!ΡO  0P,Pf v<0ς  ~->=TzJϱ׸6o/RBdR3|"}PW5/aK-9#njk?T>XRBqiCH.S4u4c.O1}}SoMqeKASb2S2(CRi.xIj0:!E5X6-#Ʌ޾ʢ7ۼJ8JAXai&!$pffsN:ĽaM9.$so7.gNBHKP+KynnK!=/p;B#-jWc+4]GӧT<seh gq* #gOZw3nTu뺨qŨ8#?y{xAn E*$QU4J t/]_\FJM wJO\#g8Tr1T*XKJffjՖ(Nnt FY=[7|-MU&o@)f$`jRFnwy@rP9 ='P^K)e}T}>cPQ>|+C> "[湓u#n8uέX?&F9xQj0 +=.IGlg)eB?wvlg_?@hf@ =,nsJeq jJځ`V%[aO rC>KP"Rn뀂WmssW3G}ЛxKj0D:B"!dlfdIYMU=n{0.K ɠ=et;0V 4:L{"X' NɾE(íD s5Y|u[2~/b2c9cB%@iZRs8o(_WuDŭ ⮗Z4u7݌ė~G?ij(Xf%Ġ ,0Z!8.ʧtxKN0 9mL3Bh $ V$U!n7K(xf4ZrQ cP@$I%E 'B9(KLh 3J8Wq1'{ΥFsx5XuZ w1@cYc!\GT\=pi>5e( 6@>a^{L-cl^KY r麪9`9仒p ^? F\Xsχz؁ƹI{F}jܗxj E~dG)(3iA̓}̝8f" 2˺$5*P9 EHa )N+09= !fBk8irrv^a^uOe)GFIٷz.j6̟ kjM9!*=1jW ۍT~zOǫT:<24cw JKn9OSX;t9snf^RWzxN <I R&ƌqa[\6NiƷgs~_NDғBj饚A2ʍB,(fd'fJ{#"8k}~e4A*kGВᣮGo⑿&F9Sl{-{\%/ںoҿKx/X }AOծ|n WRz?rCLR<>C͏qF 4uV`t,A*`?Dwxj0E m=,iJ t(#&e$%пt6s0n٠3:(` J #ΠA!fW*<{ G4WfI7'NY5NN,~ G?rΘBEO it[k"#=]# [r)מڕޭL>>اyT xehͶ~&Fp&@r6ul䬃. Ip HxΓx;n {NA`0fE+Q`^%[HZa.nP qN(+@Q2N6V*5"iU.ˌh63\"x-eO~-7,7J/o~p״RFƴڑV/09Pmd=hh؏I+=!ćڕG삹ҦR04}R1q5(f80>OS-yasH5QI~\xMj0F:F,O(%EпMjHJ :yV5Rz@Z\%(T3)q 9uQC@c8\nиh|%ٶ\G1D[2}_C_;`}PˋHo5/2rtyvme$Ľ ; Ҿ/ni4Ƥ\⋧IgC3=n\PŁuYf& arI$ xv@$xPAn }OlVr`'p*$D˸(DA)#Q er5 Y]& F#y#e`z)]&Ñ5(kLUfJ??[/֩.1\8=SdA8#yt^ϹwL͕G0q5HY^swW]qZ) j/B, xNQK0 }߯rAݺrQA"~ŭm&רּ}7/9IN9`UzaGצ7ճ4KieTUu`֖&ehVBvv" “/1S";q/*o|v[c~ R3imElwL"V=ĔȲ֒tW ~l)?ge_/<gy~Bo>8^<0gEiscCf cSU\PJrӶ5.`ĭ gf:to9NN0*)4 bE/E=Bq2ݨ>~xc [xMȱ 0@T *&HE~ LcKB2d0@t)fmi4kj\b-^21OPl(O1DJξ"Fs|NZ*r{كr^9 6(ny?|.x9n0D{#F`EK@QArEnif)D:9P"'|PAKjޡT ׆lP0W*UA9hR4qz_ (C?{7!5J/ׯ15SΜS5V=фjABR+w?}>f_y+nl>?iȏ`1jgj9Φuvb +c4Jp uxKn D#ۀh,"bx>d7.U+SBM515]s2Y>Z׃b4HJ 1h3`>x:KN p LxM= @@aNe=3;X@ݝYHEBN-Sokv'ϒ8b/!C,kPCZ9Ӥb8ZXHjUA3:BrXZƵkn1*wxPAn0 $Kj8-$( A}gd3# 0\-NĵT^[ѷJ6=NN1`(VZPu#~Dp G^BHs?p+Wͅ?|7tk=/r\Åb\/׶$&Lǹ 1q;Ay9o+i-ipBწ[16\A闔[Ӕ=!H=5x]&h)컮+ ^#WF#Wđxj E~dDͣoQ_Lt4c f=p/"N J ` bjByaAEBrHބв1Z)q!hiW]sb.?#?Ľdݟ ge$(/Ў5oҿG.\r-ZW>'dŭvw6z%>uV:_e_q]T\[K*þ}?-y@%ŊZppv P0%(A?juQxKJ19Ey?Y ]'?4퍂76U- [!B3@ gCWA 2 Fqh>0eR{Ն Rm_ mc49s\~Cݞ0%H+8 nw1tAǿ\ g3B(>e 8iYͩK*þ}?j[z3#Lr%(5YJD%DN1R˵d}UxlxIj0:Y (zl[FK{ޠok%k1 A{%Lu!HcÖ7,Ytփ 8 \"{%VBeǯڭS2_ͮq &`Ps/Ѕ\#p\BBimC܇_qKuzn\o~Gmjw TP( 7'0hb SsxKn Dv(&"Rnц6f ƑrEntU-ZU jtz.Č]4F9(cT9YhiMCH[Jo*e5R1< (syI%{p}>o\hkG~&mRKcM /"Jnq,ah \b:J~ mL7RZwNU@g'P4֍FI~;stzxPj0 +/Iy C¬J@e4?P!A#f"ffk8InV0Vm$ YwbXA!Zi1BMsdP+GjJ /\_/`h* ~r1l):-$<]c~E{>@ID2T%50v ם@_0pQ)Pz|A[6 mX}ٴ>t]|GyVJDZu8ūT:G<2O+? &&L+tnfSoUeFأxAn E* *͢Roati5gQ!f@M(odҋ]2*O+%n?iKϽ ouM޳ )#.X/x O%]V :b9)f:>nuB" $PkN;)_$e6+6 TJYT")Bϳtݣo˞$86ZpAf6\5/ju?)) ]xM;0EQ*XǟyM dO(6H>.)ttne$Yn4ƈ`r'4OQFA]!Β<ʞToי~>1%YxPKj!{ Cw? ! dnQg 6(׫3\1ɜskj@i+ iK$ڔ@(sac89%j2߫gfI8[LmIj84t }y:Y?3B(}j<^Zۯ2KO|oݟ9϶!infXRT 1i+ImJ39~~rxNIn GY Q4HK^0b8Uf@/Y 4 8U2nD'G-IM3.r m.FkaͬpPczK)KE`$x7 kM0jh;-\uОp]!-Pm†ޕ{ֵ@_B|]]'hP4 >bǣTeh#~9e6qTg;:2nYxj0z ݃mPJB}uMbIHJo_7\ہ"YP!(/;:n1^v+X(6 59fFT hV+I mK |EKx/1^A,J b==_gޫ-e~}91~agTvNc8~y Y sSZye33, A([n7[3s^u\xj }_/K) -Fh0f}݋A90ZKc Gŵѫ =3a5ٱTA ffQ N(݌ s;-g]sB.k7CHQ>CކZu CrT71:wT0ڙEj3ZrF~ xPj SHw6G)-F'wjPso_7²3l+aƥq@Vv L f#c]&Tqr\ BnZC(5Ѯ|.3_~UǞhGS(A H/Zs޳96BN8ĽGd{c~wX=_׈ `ϸS4u4\O>}uƩ#.hRB:A+öY9g(8Jxj E~!3ѨC)] }qB juͻܚtQ9Op4V sjԖ 3=H3UJhPYXoWrRY)L!a$_ޥ Ri/ݷZ_g}r"#=Aca]ynWuC>Cgt xeh3~FZs= \~|#xKN0 9CS'6A,A*MAܞx?KXu<fWʄd;gFzr(v!R](24*Xլ < >˒20 oioqt>o~H'PHCnk)_`!/p [8qYSYCJ 8)Y ^cmur,S};Q {~ۭ-w`Bm!cƎ7{cjzxAn E(`TU#uQhJۗ,zz/}5#R'i0br|q/8:3Rf+B̸3΁%e4¢5_=2R_i-66Jo7?Bw?Ni A+ܸՊ#1e[_Rx$bk - {/e=9]5-g80=E0c !~]bwVvzmՃgx 8ж3~>JS-8f:lX;33SsV.ay xM1 P PJqP/9MIDŮe#i}"74)aZ j"\+mas 8$ XBn4y6k2Kت0BExm; }/!~[oXq-}=ݟctJ,P{j-K<=#m[#6BbjCCWRvƘq3ys'L nkk_\0`~[˝X;Jp)gf9, $fPl]NZ N~ZvxMn F( $QU4J AMfeAxkv*&մTB V\aVV)4$avR0[\4p̵FXJJT\s ~dM?-;Ev pDK› 8=8%}$D`dBq5Ղy1 Z\ X\B -DKbEn+9FqtM[=Sb1BYOd?qK}'|# ;r=\ LS_z7?.P#T}❧uM[M(?ه-t{MS6}\a(aFR+"('J)Jm,גQ =rxO;j0u "!$Ykv-YQ ̧fZz#G؂Ж+a1l ]Q(@" 3g^{&y K5RGgB_RGoisse{ f8:HO/es}/F}$ Wp/qNSWcn,5)hqܾS_MqVPp03$"aY2vFqF~#!s~xP;n 9{VQRHs [ J}"74)F{jT1gV̓e#+e&>V*&\ ̅9ZKAYהg!H?L1{kI-v=zwĕh -ݷZÙ}\Ӳ=| !a]ynsWRzMrx!ijT 8CgB*YM i{=թx,KG_ztxAn E(¨FjoCf޾tO_"X7: +܈ b؁RZNT#IXѾ}OG3GrB.3oቱQ2 } {r|VvVR a͍{/0wjT1a3^_yۗܮT_=8+9#3+EgI$:=,kfa)VYa IbAi-L۶7aG 2S+<%g~W`5/Uh$ڰV{?Μx u'Zx|M~N_v.ݧRnah|JYj(V\ FTgA,Atf6'#O|vxNKj!{ B"$3M6 1 EQeNs$kF#=Rbd3 - J6hI0dV~k!?Wm+?lu03B'@3_{>[}G( ÊJX,O.6՚]kKzKG87{}g6ڽ|^)WXQTKnN`J%}txNn {l/`lUU"/r`L8jb98A[Ղ_){/LxMǻ P PEKT))H,HVtgaZQQ&h*g3*?בx-,_Shĝ }+sUwJ/loqwۓy=5[k/0ry]slK!Ӱ=2BHP?Ӱ+R:]%166fI3$җ*9lR9ʉ r-PNkpUը@ucB HP~lK VY@p\ku!/ @8\2~ Clr|ƔlBl'2 51C.\aC,F :R+\ی G#M=O]2̹toݕJi83.FƚQ2>}"i݉RגQ DxPn @yj=T_8`jB" eWF3HpTs:kzf4=#^٢Vʡ؁B#ZqFa [VKlNJ3g2vc$ɀO$yG9 /) `qeK'c)׌1s>CJ\T X=ƅ3e:<K[>nm9+^\3WF ?bSxAn EQ ¨FEB$ۗ.zz5;q%-_ҫRR[;ZԂG091XAN/*.$5YHHG 5RD[O>7ޛ {oj!B!V/fc)pTNYhW;0iΆz`\ !>Ԯ|.;}+eCSاU;<2P_2L8|ӌ.mNݺIzTgxNj gIFrB㘄&.͙3 3S3"G^9%'GgD=ndDl HN1V(3ƄvJ![mq<!kqI>s/K{?l{ BP6R7@zl⿄ϔ0&:| 6"Tcw눥',[w6voah_S^|XU*92PY 34u3N[*TzO}x]j0F߳y/jc.҇Bw1IF ( wM Ae9D+"/"zs7(g; H!A;UF0Z*vAv6l T5xVJ)B}ZRy@ l˵fH)ڼkX]BeicS*oPyη21nYhpϮ^r\.s\4Npp%x3xqZ }&xKj0D:me ! d6'hmYdlI!MW8Tsoܬg(0R$u䀌{r cQr!'79=W1~A3̠- uMg )ӏ lKh~[ {WʙVh,6[F>1GGLga=!$ڕJ۾^>ЧzY*GZmܿn9јq6uLq֍ݲڎ{#xAn D>E` HYD휠 F1`NۇY7]]U5]|m^fllqflT݉bmRDk&&&i( kbR o\_'^`hOt *&t VXzKLV2w o)A]"i*cNhW *GdtĚU8sWED3N[!wF:^(#=_0շR[T7~/[O1Z ~I#/+pRVei[`FO+O{ֶ 5lRӯ^RZsٖXzǃ8Vu2J&툜b RiÕdvxNIj0ۚPJ Bo%#-}Eoзy<^!`R:&D2rRNIt@ cd[іm_z=ǍZK4֌f,%D%YbR˵dlyxPj0 + =.Id'~-,пUJ4DZ2VY3gb„57JU:hSLPN,a.t6J~ N̟ /sWJ毑~oqg? X~*F쾵"ۖ_Vi;~n[u1>qԁC+gzބsպsBQݺ.t3xPIj0XK! !_hi&e$9G9K-VvFILX4`,3 RXCNWhAsV% 1JQF`͝ $qW[soS.=}ޒK#nC_)g zcKyR044Wב6ԯcvպާ1n%)WmxN?QHz.[ #yG/4&?טͩv9}`\P?+R:Mݍ!1말qԩۧVj΀``f0m -9#?mz!xn D{b1(:H %R2ξb4VuvjalW7K` J'..5^Xd i-K!5SF*ފ |{~$%t>ڿv?FW|E vNؚ0rϥ8bN{6l=XFBHmiNSwcHz%)6wL8S+gzިZ Qd 28&f)%?+z3xKn D| hD[l,r0 W(uu+ރ.I޺rIJל*Y آF$L 5 |:Ȝm>W^j5vtw=F7 XS΄P^p}kKت-Ehwg e[ݧ zˈ[w }Ժ^sOb:kdN}jLJ`ys`14 @89xOKj0o?$7 eJR袽dq޾7d> xq[9䏴7c9Wg[BJk?|;w]E6/n[ؕXhi@qF16QLJ^ ka֙xMN  -P>_y ހ¿QjŅ7p63YLW )"f5>0 ,uZR):]ql.Bbeؼr1J1N oV_\siG??~ɗkm7:F_; tvaBţx>#M1瘯yyIsWx0kƚ3ʍR2*%fl[EK ttxNj0+}QcYJYBӼH[M)a&fzQ!U#IceC5ZjS4hۑN]D Ȥi qb?f#}[ه/xwWOs_捖 *Ck9ݖ_+i͒Dxpa{;Һ8~_L ;DgoBK*+s|O1UU9;*}t5#&+X[Z] е ֲFA7=Z|.xKn!D53 kE%/"Ap>d7]]*^Ct{KBìW8%'lUJ :L c9T0"1a5ɜ,+2Ͼ?j~ϲe|3R[kMz̮ *'ÿmDo<2ɦG)4Jٗ׌O+O_اֶ˲ 5lR^b~G[k3߯DN,)4;#0) |ZWϥg)A?Eyx=n {Nm~U"RK<3Qr"74@9iɑPhA"AN8N̔*L^V/*bQ0_h^ ÑᣮGLv ^Vx|;n~>g W.vjcb])QU᎞gŭv3u[B㥔: 1a뇘9y=ڇ&)9}G;%hc2Z w4"xPKn0 )dA- tM/ |Z[$9%p4f̑RN]Oj4hBE㠌Bt$UHC/G4ÀfZ!N3dFezϼqoVOΛN(* okk$rGT^(r"&n#ý NG_}W(%i Wk녛՟)Sht)G;OCS?j%8VDSa/  j;5RxNn {lyGUJ=c+,#KegF3S0*TR -,XZKØ4_t/jZȎŧ 29Ifjc'73 s8ϺŇ\^x`l.BB9YpmHSV3c~zG`KK.`rε#+9@ )m m_cCC}Hط_mYK "@z }(h,ܠ g8ǩ ,H"g6sT&f)`vS0Ui-,ZAP˛8A9a3z֙.G|%fk ooq3cpy{I+! iӵt[ku\ 7xui+k`K>!)Lx=ٝ/>G>p.?S+4r憘̐K|1󨸏fߏZuk8I'B k ̲ >B!0kcuxMN0 9E$IGH'6U"=f O' @ZY8LƚYo"(KvWakfBXdb aĝm)VH~ӷlnEJ ͷ>Q,ז3%at i_4b3=X#tOIup/DZ\U6ח~hnߏӬCvqXg(͹cgb R;8 t)xNj B$K)(t?0FzKAg3ajvGAR/9tLd`ڏu iRY$L`T)DaV%iY 9fuKdRi{Ca~IG  ^1\/Δi=c,++o|)eCS}O9!{y=:dZ 3M!H̠:W Z d?tǜxMj0 >%؉=2PhN=C{z(AI5#Ro Ñ9SNI.B*vf4S 8q+kzrNn#q czd1~k(}~ l{BiZ*kEZ_`mK vh @g߾-fvH [=u6JY/TzV*92q>tN:eY@qFޛxKn D#ۀhYD-4,$,rԦjjAXBe T'2؈cԑL^i;.49AG]rs.?wwQ2̭刺|wnW`2i%S#\hi֊#o!`P;uCm=Zv6lzBȼJ<04O?qV<wFc (}HdVB.(Dk5;i]G [rbQp,x(-T-7++'0zRm; }->图[/Xq-}=?;q=g ܀hM/tO)#)Y!}:BbjCCrWRve1f5Q?ge}Zy_@.  |Ж!'6cpݒxKj0EZ{+Ƞ]<Œb[FV }Aw;#D)g!e uB mvqk<&K*"J)7NR`#10z{\7,_頵S }oWZ㭬'b}]IuIKyԑ16_۰gt44Ro:Z'c7֩w(3x0B\=4k뼴Z oYqexKn (y aTU#͢Roᑨ D@:.zz߿O{ : x4 qpX"rrY^%מIVY&kT7}/k쎔B_Wnq)+E30{y6(-8Ծz}nٗHI[W6/iB5lRӯR>[dMx>z;7p9>_a فbJFh$x5x=n {NA ,XEJ)" RnRf~O "%LUhA,!* :pP05*ZA0&02̫ζB \G^} {d>~;lrfVC/uZOz&X+tc$ĭ mZ44c.7O11qԩ٧VupNLy,gn`8j%8uxAn EQ`FU5,*u@pH"`F,zz/5q %M6-8GR4Z;lX9LDkoeۗS{]SB?#l{$5v紿qF(qOЊ5wj[ʙ溥ȗA FS]ۡm?rzWzXjW~*e CS}O9<T:{ehA{ x>wF@ -o?6RO`~ДxN;N0} ( (8KIƎl"n)̧VAj92'rV^#`2rX|j{ҰUZ-0*8\():Bߊ|%ޒsk^(gY}bޚ2򑋧)JCX&<}>Ұ TvƘp%){m<ԏS+y=#80σll! Xi)|xXxNJ0|W|tmZuHjm 3uYgS]J'?5|xMn ».FI@QU4JGHG}77~dDcR! ǞpP^فΚȆQ:#t  2 M{}JuymZqya_@T\x-Vu)V(BWDLfxRF)i)Mښ%^Kj =M3::<׮s g F .04Npp%xc=8Fm덖M|PxPj ޗ$j>tYBB$_LM jJA2?a88)T:I,5YH5dvD{iDJ&@̟e% 1}gՖoa¥p5`5R_GLğ|^(&:]yK˵jۘ¯~BG#wu֕tthBYc x|H}H6S\Vcf!8n1X!ɣ^=Ovȁ5F', J[ P,|T^c*~57 >aXF luxOAn WI KXUV=T/0$j]xfdfJ"iCZk>zk II!匱Ш`& FeҘ>siƪ+,KL q W5w\|Pr4\xV}-ŌՂ&m 6Lxgki#4Aݗ[UmLw>q&ܻuZI F >7|f.Tz~>}qxj E ߗ$hK) }(_01]5_?0ܹ[3"՜(iͲjnNK;B c@+]9>8׫]p (Af{SG#}Q}ٚ߯e o+LI )=V׊#) •:B|l}8rzWzBkWL>~Ч={x pehIP=^/\+)9y4gcn1LvY=)9r8+o ^xM 0*6HEwΛHiD(`(@&c RFwW\e7%ΣF &pz XK}r"5..e !&bĊ jy ,83~NV ~g S1ŞxPn WI WUjk DKږ eduq3:=:K kWgj+=]MK%CK Grc=MSGcf,5)>}?~6zg%c gg%Ġ fb>p4|&L{xj Ey/IhRP(#&lԠBny;w\F-UT΋RreVFaTc&V+-"sӴqJLh% }( ^}{7_}ћހE)'Aᅶ" {/0-BΌ@Qp!P@[J fCs+o' .eK?{MqmB^n/K)e}}9,C;5 5,F9|N1vT0-+kO5Β3?xKn D#(&"RnјϠin қ~RUu+ck(q&93ͫPV:49@/[1qNR 7ʈ ͡|v> <3cŽdx } ;Ǹ謴b.s[sFެ) #5Vd;*w8zy !!~!+}~Ɛp%)6wLxuS+gQ-9Ժfee.Ri.F]1!xMn >#ۀ Q%Ro1`%Q{f~Llɉe+ӓCܬPvN])V@c'9͊ ҂͊ZfɘF][&/_( 6?1ÖlYZZtmzZ7(7 ާi`1z*X[ʙ %0Z@k~6 qKM'\xPs微] \h++{vHs&ڔ տRahOPtLS5e·ڗG}JٟDZU8?摮;x+hXWLf0;g^IK?wxKN0E^ś$~B:@BlſD;r\Pw~G9ZeMfy3 y)=۩ZB٣D #*&{[JRx+KuJkh]^%r Ou[[ cRkp-xk{)42چ+@X.Ә2<|?Z'cǶ{ARE>\ س'd?0xxP;n 96|WQRHsy`+k0ۇ-rL3b4V)p0q ,*8*Fy-.JG| !%xtk/--QLz>6X\WʙuIe9mm |:/>J" wp/DZܦ1eKMO=| mj_w c΄zpIb Xw}C~|xsxKn D#0((H[3 H}"7Hm-q5I) 3(1f~tTֈg$.OheuV}5(> yMO7Kxo{m_xPn4o7 6mrȏڝ_s](mINcmNkQ!4p6Juș䬛 8(qK!u #x5= 0`,ݽIWC&JE']t񛾽ٛa]JJt+IT0(!!feHRK}p0cZ!*)-Pqun'U$L~Oi^Ot= ?(xMn bm~ "eQxQcAg3=|z5#Y㨕pfbRjNf$+8Un4:),GnV5.}-eSEbFI[޻݆{jF97چtmcP7B6PCs9 =O_A+XzB+؅m]GۧO=(GNP#~_QZ0:wtd3ݺ.rFL3U|xn D{dcE'8)}>`1`wR>dy3hxOlG%gD+< =C;r+9(yjV+Q If́8>ڞ ryO +%ӗqp`|R`Z/L X#==bk_yGK9ј<BBlC}!+zuNS1$s <͟gcj>o`Ӗ 29lJ$Au:xAn E*  0mO`DHsEoPoC$9&֊OZ$r#=-dWHFnJ[=Ñ8*~MX zK>r)?3vxǂ[$x_ {['锆ކv[k "c_i S5q;?#@00Zػ.K)04}񗇸c(C{qj>pF9+;;s- ɺqR& }xMn0 9# QUE.zCB@zfA[|vI΁R2( *B#қE!;(P@"b @-ANF, 9,e ޓ1G\QR"|;mv+pzPF .XUwJqcJa.-qTw5qB=b^)x[ƘJj^jcOp⎎#wϰ3|xA BKSFO86bGUF/xPj0 +t_yCiB+k;BCP]4iFB5[ HiEq`fՒ 5H6VX(XfrSY6s8*i<2gSϴExÂ$xo}{SxF&% mAZpM\mil0?wB^n: >bdzT{ xeh3~ݘ12:J;љNt3j0xOAN0 8Iv+@{@p8Vl*"=?=3k&qs|$cw6Lڢ(GccX&8iP O(A %o%exRD8c]<w Υ0FqT GmŬH~S3P\0:iK3?x= wQK^?3zY$ a:/ԅ I7iZu>RS3B.p}RiqKOo}$'4J en')l+RƊ~F3Ae!xKj0D:ECm%! "enЖX2,rԦ_UCQ5 jG fғ3 r8N#BZKs'嬳 H^3)[zDc$x^[އ?[w>{i2.tj)c3J3 c-[)'t\iVu]6_K)04׈}/kE$ĉ=Bh$HܢOb1#A1B܀ԫZJ]s@=YԖ3) D"ȁ Ym%JԳC-Ffˌ  (7 n)[vkxO[W,k{oޛJqNpHKP26,# zC}@P7接4Sgj=!d + M/lahԯx m>|Ə0sFNutdS VJYrFRtxKn0 D:mQ~AQȢ@o%CUAL+T<*饵.L^< ސL%5l1}X#ŭ(==Y0_VwLcG7_nAi \¬EoῘ[.}rk׹<^4l' b\h#!$nm4lB{~NcLv%Y=:ʙ`$,Tq`\K9`n` A;&u Bi3+qa}љxOj0+|_,,P(# 8v AuF4Itj)]] t jS^ 0eJ{Z1CΊFiXf8Y=Lq_m_qmeOoqs 1 %@kJR)x8O?KJkg7\>&9!T:wehk3}d(Hh`fIF # sxn D{.6`p"M ^c+gl)R>iG- JVx)toqЂfVޑB7b0Hһ Bj8Q-aKe#Bl1TVXn'ʙ4Jץ0rRB_2&8ng,1t;_onBR rBRe<ӪsU׆¯Bw/IK) z|QcBW .k}ef~aZ0JmQRf39"j/-Sͺ*+W5;ͳJE qNaZ*Ň\# ^b+C6`T+%gx]xe|w9<| 1;#6GwOii \oB ϳNeZ+3B PQ @FR1lJY }* JxM 0@" `T>}BlE\"e2}Fc "*YѬ-Z=%H@q!e ؖzXkWb oRvO9!gtxehǎg 3K(`\ہ-{7LzxxOj0+lar(%B!K+Ė4WvgAi )JeGMpNCjD3͡vJ᨝aȁA8Yq%u -/:뽺DxZޙ?~Yvn3ȇ 'R꾖b\E CxKN0D>$F b-'$Nd;Hޢխ55NH J @3.f %䆣wQ rV0 LՖQdr8Ga_1%oF*|#}PZ2}P>!mD +㮷Z4u7 QүRj Y~>rZa ֌f,%n 8"Z2~wrx;n0D{!\-Yт#R }"74v }Fm\ (hpr~*0 7?JR?<2R[[5cJ2 Bݷ_н o9Pr~axXJ[wxc^Z{\eМKM/^R>[cqіQk_z=F0k6>3nO?Ad<ӺFZ2~`{xx=n {N1]m``E+m)H=k؊ r8En׼ӫ)aRKc5dKf~{9N َb#i p\~QZzWuN3#Xp;) ^ù_ AmE~Jc3< km>ė *.qLPI֔[XXjSYN2_Lmئ~sQ*{ί[Wn)cH hiX-5xKj0 9C?8JECq$vzޠׇJBK$ La^&I@B̨$j0v0E2;HV812ҎW:|$t1}g\UV{Dxswo]3qJi#Bj5Ys))hA9/_V(+VR<z}\~yQz>e!胃hi/m~+~y}M ޅ3%r蕀R*s1^XBsϳX2l) =az_|<#\cZ_sL >㭐>e>BSU޿Bm j\ML[bz[ۜy a%cMzJj9^[;q!U'8/PqxKj0:m=m)Ȣ[%Y6%# }EnajƅJO֡D94ES(R}0/#ףrh SP.pnNP1šB&<2|fRFaQa۴8h} V(mR#D$ !a].[)eC>Cg8܇}eF* g=n sG%ũI1)o}lxPj!ǷK {/uB>?HUEQk #쌀 hC^pŭ8א;Bz[nR3ɹZBfԀoRl}H)- }Z-~rci|acP/a^}Ykx'P;iLǽ])hJO_LS~Nϳ㠽>ƝRv<3L4qZppq+xPAn GQUEJ=YcT, Cй̬v4ښAQj)Z{Q8''bj#+EÄNs-'PMN[> 5exSFb7&lg`T -PN4w⿄jGhg.msRh+X1KȥB(Ppk t=!ćڕw6Oah)_>x/GZ}?L\C{j:ͨh,ݲ8!>K1ͅxn <#@("Uj0Fܟ/9 :p-RTbZ•b83ufPKcv48泑Zh(=#BY' RG]S|?Xpk- 0}}/C۹ 5~cz$gi4sGGF]-R_H$xMj!! dLZuBrEn{Qz6qW# Z*ts\8 (͓qG-Ujd}/VKoe6{ JOqx1roL[ ܛJWgc&o, 6# C_%L )B>B!mr Tq+/@k ^ !>Ԯc Z|)e; CzO?7fuǀQv>|_gG.AqFO5xK 骐bskl'kѭo,ahS0W_9y;_qv\yq\u(m쨕OzʕxMN0 F=v6I;Bh $mܴ&U q'.h5z-(RB{F,lv X=B9rH)9xn8(,)k7% UKPy7͗Mi{άVHj5nk)/{0%OPWL[e!xx|[':jS5Bu__C4MXK{b3~:5u!br>Qhqߏ^%_DžY03angc$gj+c`ЗxP;n 9{` h-"`> H}Hd=J+ x@ogWh8sHCp0ŧJ2=S7 5`gHk (>M?Ӝfo-Ŗݬ[?"(1 HKV/e乘5͚BBkίԭNsCS}L%!qC۲\@D%C`j:`;:eAtA!R0$?=t x͎ y GI\UH4RWUQ߾?.ǜOK"r+R.rZUFZZfJ4A!oNL WZ;(%ĤL"M1[-%>aF_)>luNG6K.ak])_`7I D .)zx ?{VR;Cx#:MLq=û+h [YoB V9Si͕6?Cj}y}Uiu+:{<+|qV4?ɬxON0 +|GmlB+q@7qڊmREd|13vDKӤ%cR01RD 4rŤkv h FTb(Y zOTCmײ oxVU<ϵ߹)gZ#뢷FIߛ?}ޤ(Nb8 .؊4w dhSSo٬:S=I*n9cjW _JYЦGݧy(2u#~(Inx߰8vbG5(2l? xU;0 aU@bLlHqɀx UCU/Rua q aϲ;EfY)0&' Gs 9@)H;5^A/(Y|2qw7"}ߕzzN?.xOAN0 &iڴqp7I ~OVΑ p0Z-VY^*黙gЭֈ$$d@f֢YG^BH.ox &܊K[WgQ݁J*Knk/fb$B AQtP5/);@o-sy! EV+T_~]1\O_J>4Mj]#eԔ&ÿv=h)*wC+ߡYz %3׳ *zCj&Nf:/G'+FK)VeA{FIz#giJA=jbx5e)? Jo~i 4h"ZFVcrKډOskAJ qz1Ph)ծ%ɘѥ=Ѝc }Bߠ3wZы "9RP3imih7M6 ۱P"(>L"UjFu ȅ|Hn͒Klw-n>{W.H=VXZ+ݟZ{5eR~gZ#m{$x -? w`H%b. iՊ#ƀάs`(Rqʫ+:@Ք{BHjWc+})eCS}O9X` }_76 1rT71:wT2ڙnfz׀Mxn iԋJ{ A+Yշ7ol}j6,Y0i9T)jV .1XOə Vr*;<2ܲq)?#mX04oA;LD.|fL 8]jEn)t Wlq} ~O/)g&9xu/߱Z>DZU8^фZk>eR,AЉPy&ٓe"$veBY0:u?1ېx[J0߳yI/$ͥ IIRw̙3ǙF'GQia!g˱0T)]tRjNxPD)Fkjg]S얔%t{$]ߛ:lI,)r7jjuC!X&L )BRqhCMx MIg~=Bh + ߔ^~OyR1(CK5J4 FGy;L YeBIooJ!xQKn0 ug[_PR %*K$"9A!dD0wgiMBͨ7pAQ3ݏJs32 'Kg/4=3!l$MgBHkW<`½~u p6~ ၕJw91Ý  msOM`/)7+ynD)Qip~ o;J l) 3B*f[sfnN^%)p6-}ܠM*.TU\~R۶T qvgtx-O]ai꙳fzZX_S= ^}IRxMj0 >%'JmO S >={R+b̪jkATH V17[NC &7 lU-Y؎fCp=V=WKϾ>B:L6/d' u5쿘-cB 9~lO@q:Grv[aFmi{uLS's|:kQ@Z9J%g 1HJ@fJMep,&0~xPj0 +t_Rʖ '~$tcYWKTIh4L+ރւ3aș6Ahi jj@#S;%taRᓣ"I 3'fb϶\3 m;dx~W`TMKP,辵E9<5[ϗզ9B@G-~>R+`Ժ^>&Y?{u@ʙn 8\OSg;:2.`~ CU3}xKj0D:mlYCY rܒEƖQAjUtJiTR{ JZeFOD>22PjR ̣[ v82g )״ l%ѧx-lK3lV#RšH[O, 6>7{[O vcr^JY\vS~Y*GڦmoHy:Ù⬛-;QFQpwҚxj E~G5Qʃ. ~DDk f;5#R 7Z5qAxsCvL22gcH4[t\= NYg]S?KZwx۲A.m3#XzamH[%4,YK9Rw3 %֮]W: M}ˏ, 6|o7nG6R-8f:1YgfƎZ N>{4xMj0F:~FJ tQ'[,IFR}Bo=ǴlQ3BY)9K^qqK&A0af:]3mυsyO +nw>n#۸J9Zzb}H1EF>st -7]|*#&yOC'$Hm6~d;x1 dF+G'磍h=WΚhex{.lV\nW(%')fx R+K$,s Eu+KN9JFx|Nq\NX2[I>|?*1P=_J;K3ϝu\ ǧ.0icGF_~֚xOj0+^m=l=B)=,Kh,INW)vfvk01f85jf˸h3a>19ʔJ6V`ilۚdHSϘ1,1ń QHuM.-κ譹$x|ޤc BB_9lM )B:.Wjp_6D&?z` &j#%DOՖڴL}B>Ԯc#~(e=CCO?^ v+C{oj(*)J0w#9LB*&&JG?@xKj0:mIZr=Fi,YUAg?>ZA(èr/QxpVHm0fD&#LTQ+y!lu($\Z0_fm o˗ѻztmGZ.mImֲn%?peOtM ؼ O,SOKg}>&_~+nٶ}hס#}_5ZnfvtbӖ./G%8# !xMɱ 0@QED*ٹ;w!"+2 D>1?ajJvYp$Jf%"*`NWd;=M+YnH?{ɮ괕*fʓ FWVxs za|FY'8&p-Q0M?*읒[C|k)g*Z Cz_`A K9ј|BH !!ݍ}uMSwcH0~YGz}jL_wn2T ΄r0١ ڲe-JY-xxJxKj0D:e,f-Zr[c2 Ɂ> !7HoW3,H JphQkp"J̴U-084@Lumw8KJ5HY{oҞ v-oxO{;Q3xSNtlK !qo<44lRob~-=s#ݸ-`Qj0 z1B١x5"xMn >#c0QUEH]c<`,I{t6~zPi2h䢹lª٬М(j3ʮZBϒ+Z(xEIFXo\L{|ÌGD3w;0Y0!4Kk^w`cύēh: ;8AAgJ^jJX(S-,?ɔ=܁'wt5M|iGh ?=}:s• }}CoD__Rz`KyaSk:YjC#\xMn bm"eQV XKAg3o>=M-ރ]I+nSQt eTy%gΒX|QXm'DɅtRYS+XFXŤg]sC.?w<16Jݷq{;0 . inj#\u Z4Ɂ-x{F!fڝ_ھz%8ΡC-1ZδvT0NݲIi33 FrxOj |+|?QRпXu5;PݗfٚTyV2b3HB"yhQ䀌Ҡ4ogFi5aB0#u3M?%;ZNb{oqѻ}{Q$ֆ4u[k #RD >J:_ty}AENM-􄐸֮R+mRrs<ӳT<82P3}ݸS%8z;ÙY-]^*mF%'?2鄿xn <+ۀ Cվ/1X@K}V9|VC-+Gh%+dR9e7KȡK DIZ gT~ [ʈK.V\>%z ϡa:8+>b'Ezܿ~|w|n% l~TT_rj#!$6{=AZ/ii I:-}g3QaetV(\g%8#?~xJ0sO$ȊCL&%IWק7 ss|b)CA+cUƑ[ZLTg0hqј2֒dfPQX8sɅx0{xƄ[i o6\f #p :!Xməz _!iM`;҉>`d(2uʰa'ˍb*{SU[rn^g(zJi>mq؄~|2-{jˢngBCm8kqV^i#U/x pxKN0D>EQX XLvςЛV?U+ރ3z9fnTNmR*ȁŧLN1TyjbX*ʄcHl\[WwJqװck_ulh=F>-wⷯ80BBlCJCteC1SHgm8S+g2F2 tft0 ö9ZrF~>z8xKj0D:d30@ Ч%#!}4 ݋*GHY@=J%\"80b (}B-bnt;etVhT"336AH{{b,{/[{>?M/3e<}HO >lK%5}p|!+r4u5lRCO1G}~L6z3+8 7`a]âj6/sxOIn Gţ(%HKAx>/Z "(wn(]_jRE圞'),Z)מYIAUuĜ  |G%x3=%s5&G`(x}HwKyS)T$;5pt-[`ZOE=R.#!$6G@ǧZoil Ɍ_>tֆdN>r+[98\K9ځ.R1lJꆋxj >e(e``Lo_leqz3!Xb!dyL8P >8mhw-M.GA$PTx%hRŴȝQ~o1?;6(9 Sb/du[{CZ =g/)k2p/.Hs.n-%q_ܾx-y15&Kd2)%X%Ps~xPKj0 I,g ̢[ر6vp}Ձޠ эآz+Fsd[imI;Rbbi]84ڮCٙɷJ[q0žeI2=-$x 6~S^n;x1\$춖BB&)g y( ;<x<dYzѧla-_8k0Cu7  KߚqCXѨP*= A*o}5Ͼi^BOxP;n!9}NJ"K)" x+|"74)F5jg\*_ne1 9S֐;E@ Nr jԅ{J?j>gfnM816_Jz 03di=K <@mHo%Z1>Gv_Ze9f;p,82{>aQr2n0im~Up5n&?wxj y-C51i) FDyEߠgs~$c`Bm&D%Z3 6jZ"fdByvJMz"M8+ddJ/, e ޒq1=^0V_"7:o1m .%;x|h O9羯so]8r1{ %z13ij%%%#%P.|r9K1PxNj ޗ$ߧY[JYChLhB߾7\aZBdIhtSZHF &1@ d-!U.[5;vV,b0 i$Zg]r/%\k^nm%~jTJ 4nk_m]SŦrcqxq,ah_=t5chO3}ܑA:Bpqp_!-rxQIn0 xC([h$UgK&b736 NNH3qک(͎b>t&]vԼ9DI[aGR[5oxK[+K/k@L r%j5 r&S|Pvc-` Y;Z8R |ptMӬGl=C}_QFR^_(GLK~ ׂ+gBMS9[Z6p֪sv򟎵xNKn sl'HYT-Nvڵb-S7k-vk+;󟿇Ə~޷W@GD= .tҿǞ3͕<+ZzX+/ah{z,GڷmL;(\h);u|BiǯݲfTW yxPj |+HjNQ=A}C30L+DWE(􂈋j\573;lԀ;쥘^:njhCf  |{'j%t}\56>5q+# z$d]ck/fKŜG%bb Sz\FXmi>zLSGcHv%)gmtL8S+qF-8Eptywg|IxNn {l`l*Rz@xj H}ɡнqqȖYEa* N͖Ԁ 譝Qz=B*(gxn$ֶ\ླྀ>MWK7_BxJ=`pHgޚ3򙣃=%BN6~_rՏ6{v{Onih I'Bu1SVn낊Q+C t{+V*_=|4xKn0E^śG?`?A6՗ nDpQF^c"4kr I+ĞS?8/FO8#PYy`vkiIipn%reֺxppرnVUPFP^÷!ET e*BBGg[Bm#6S).Ѷ)/[^*;{u5"F1j0RpZ7S{̳ Rp$xj E ߗ$j4RP(#FlA>:p;aZqzBRƒf^X (uRhas y#MK:9!xo\kq!}D_)>トhLyk`!=ck_`=G#ْSs>~:BBlCLCδS4u7c.O!ksDŽQ>rO 32h$g7W%8bFwkxMn bm@TU[,rEơO׊s:^{c11,󊩑i)4fLѮK Z)g~q͵b] TYIH |ryw%#t>6',\3p[sbgZ |ϧ>^`c5銳PGPm4D{Os o=tI{zmjH DpW $z û{˸3g_C~Hxj >ܗ$jbԥ = L]AB߾700 ?? "fo,bU¢RRqp`j zj-hB;m2Ĝ |G'x3w}&<=W`TpHWch Ō|bOPsD /ޯiɌ_|:kc2Q.N4 dW:hF.jbp ,gk-zxMIN0tNlh"?.HUUsΤQx:"5F] HrN(ʥFk#Y;nr =rdC:7;P)w6Z?zwl Q 4nk_{ gvsV/,ahO;GNzHptehPcТLSgBgfz~oZxPn oTMܦ&\ؤ_t6XL&S2wУsR0:3IG)+{?qL{`젩(Jjg'i1k] *s#SLyxV[5o i{ Q&*XM251Ҝ_{;|;uUq6_g8:bJ,4X=8i >F- qxQKj0 Zvq졔. /ܾEoPC8\:N6LD % j/eM*Εz#,F#2B8.zIg> |ryg]%k@3-:.P"Ati|e}4Ɯvj,f)\3-1!J~+c8ljik6+=|{tKx}H^m{lk9*| &h%SKJZ9K뽽Rm~܎xn D|#`GU)Jbq}ɡйH;z%BYђG묖JpM؆b ܨ1VɩNR? j3jbx{ɧ;u%}kկ֤*G8*V5B2niX/ZeId KHzgh4-[436^Ӿ/]W]#)|*f1PlfuIqΎjj`xxAn Ebm6QUEʢRo11(/Y4ҟ`RV$ e/J(P2 hP') ZJJ>035&Jbzw\\0VS"|[݆֚}xJ tпKLL! &a^RSҭ17o>80m{yA׾q-cGh=ACk]6& \hpsW+l]Ip= -i9 C~fejt?*)/ ZxE; @@ K:;~cDBYzxA`:{wےEo,hf$ x%քAAYE57N"ŘguԞ@ߦ1=0eUj:,xQIn 󊾏lGQ4Q f,Y~f }Rwi#c0'i vrbSѡ&;R.R2;H9P  %EkOU7O7:@͜N\p =j ֫-}>T,!Eh#m vkkQf! Vה{+ -_JYPSw[˵PV Mv0fl4lH5c-1GYc./xkf+]k=ZS)9h=RK#xࠬwL9V474P`e[Kq4)u.6&;\p̾箾u%4 Th?JT:0ڌPJ|-xN0E{t+c{vTPLq""@tt4#-%2E 5dž(8"GRàQeZvL@!Vj[dQ+퍣Vazo62<ʴ%x~}υvxy-u)wƗ_v輥 tQY 'Y ۲̥?4gfXp="HuP6a!(8=%QgƹpzO9O!j:+ދܳ)p߳jOUy:ZI{%{.[%1coъ}67 xM @ @E}}!QK|%QhLADEnɬI\FC5% a 7^;:snr yF B8h)c[YZ9c}]J$@)ޟx1n D{NAec(RH9@J H}Hdi55{qAeI `#c尌z%E` Wn&#ьM`̈Uk!o_(?_~~N3M4{_`粧Eoz {W۽݇>DS~*՟gP? nGn@ i][GwhV o xM= @@aB@PJ;柎6L?R, }g{;4Zs ~mTEQJ; S]gT1^:')z#zgB}9r6嬔Jnc3t߱9|xKj0 >w] IYz EG`3EІ6 6&}EntՓT:G[hTBRZRZЊ wJ صDgv13zYO;MyGki2^6!WZVK"Q0ӿOzPb`aaZ 4’a۹9Z1-\ߩZ+{94S:ӯotL[v4e~1ഒw]+*i|m:j%~, xO[j0)?ؖd[PJB P^%#)}hoafv7'cb%U',JtF4L`;p 2C/  cEGK:Jny q1}SE68d` 2_i>H TU|kCݺN-]lbrua+K+em˓s>X \Z`4֨Ǩ#jk@pgxj >ɨRʅ. >55}o70-Mh`qfMPiߗsUj}4mƝ^տ׮#~^F&a`FS5l^J~0@z6xPn WIl#YUJ{Կ0 DTߗ=cv-q2n43RN34JKJQ2NNťQh)ڼVF8p4jJfZs~ՆYB.?=?A[s%4_[(~K^9„ZnV/fKqK9&my=c,_땷|9uC>CHQ>оCgj9 g@݌`;dAu+Lh@ ݨuxN0{?S]IH<ؾpWVӊ aV%Pº@pH\0#9\{V9t*.\YɄP!Usv\0 l\k1o;}qեޒS|\-&}KN X"5/e='O3ב6}+R:Mݍqwc.Oq?k䎣N4rZ@M5C`F" >r-g-pxMn QCH iz fV}ޠS 9#~{ NBi鑌3dCA*GRɨY 49R=fdt5&xKq pL{u+o_};m8j| `[)_=dM [r>mϭ`3ap2VmB͗kU@mLGw>أ]wJ:'D Jpzܠƹ~r 8`xN0 @ v:YBHp|:mM$K'r 5"Z)gI{yt4So5'uJ9dhMviň1֒'s"ơ-KyB.X5KA% ѢAJKn)gxB3S=OIk@2CA/G B Sh5g(ux@9uMĹ.T^m$*{:UDWXYM}_M xAj0 E>%qP@{9V0g޾BoPmAsbilGz'V39Tq;ӨFCtf[I3ZQ;P۳E:KFБ-vZ %³/~=WҼC\_@bQ+ OXFws^PnS,,P(!|a7)k}ef~aZEQzm.D\NbnAԬx pvQOˌw{b*~{op[_)%u>~K[C(+`kZ tN51~+}SrZ9!(Y06H1 ?0 txNIn0} ()(E{li~sҗ*uIX%M/I)gQ!̨MZȁG&N09N"}?0ϲ1;.;|`ƭDxڿ1oՔ )CRXu67h&@ !ɣ{Aء,\i !s(MٛPry6ݼ]}zJ:iPQlFFMCFmh ^ /ĂxQj =żo8&F]JY؇BoaH mk Ar+kP.j6PhP~6ZH5(P9{R,0 r"b12<#a`QtI>_w^- }niFkJP W=ewv'XB )BZB5< ,PVꉿVa"hBePP%u5>6'w>>rǑޕoҠrDZ1ȧ=q,J^Ixj >!w t1m1Ҩ8,=s=V~˕q 2/vUqeS}n,j#! 8NhNBS,f4CѶRP7~/[o4S ~ }_d>ڒ^1%@()|!])>b?ŒqY4vxk WܮK <8?&sO>h5RL2A ú:aZ2~>yxNKn s 7T]T-, zEoGѴ= 2#B8HT5u Aa@,>5deUԊqV W\*GBr'VJo[_}\Nh`9hz=e|8[ 4GO*Ց6g;ΧZijl/=mQ?&<:;#.Lk%Z0p P,J̌zuxAn E}d{ @TU[a`ۗ,zf|}}}MD\@KNҊh,F!Г5!cX͡Wg3Gl#n{;[Pj"K3SH%,B{w_Æwi{ ՓmXSV09=,|3Z/S)e!brxQ*{Zm0F\KLSg(aڛFmYR_xȝxN <Z~ cqa[Ph@ķ3'9_=,pK-@Pr/=\6!acoF*U [ws0٫cfӠ?=>'W3ft5V|cpѻzC$mvg}Bţw<>CM1۩瘯9lh^`Z+W(JF($6bKwxJ1Eڏݝ'Ad@P\yu3v2$ſ7"[m{@Գ`85Na;jqN)rSrTBp)ReTr*A0Ko$[[sc._Xq >ڼ?VgN5h龵EF9Su^1afb&6mrny\7Ž_;H]GBHP?Ұ}u=MSOcL8ӭ6zS/O̴gk)2#^BpBi3+rqmxAn EiHBQUJ LpDۗYKO%]pIRF1[n"qҋ㽳lL0XGVH\X:7IL#w~MQ){&|kW1TJg_vps / 2zfTpuXMZ }ҝ2` [KM{ F ; `DOCki{lVwO~=w]Uئ mnʡ+_4z{=M6|іfYT JfxKN 笂i˫1OF P39 "uj KPa B(*E0ރc S,5k%z1,xL( Ї mЗ1oD)>ƾD9+7|Q>.co Fޠ4_X)$O)b !qoCLoCmzc1<S+WzscZp&̲ +gv`X6!YUYpwRxMj0 >C_R(zّ3;؞޾hoPmZA"mb Grf5jpS(o5(`$XxmvͅrT;%ӗ/6RΌ"ck/0Ss)[̉vuf`F!5 QY_VuH\Z'2Y.\ nz~L~4rGxN <{R.c&qa-0`&Ņoٜ[\{ǸŨW֡@H 0sk!"(j HŤixKJoS2}Rs5v}9^(Ŧ Cd; g- tDK !iS{i:eYFSs7/)[sٖXz+J 8 7`0icؔ68#?utnxKn D# ؀GQ4R"`>FL>d7]]WV)Z)DorvƍJqcXٺz)ɩ ptCf[2 cV JhQ൸pox; /Sx q;3P+ Cbk_{̽_>!wm98 1HuFBHmy }_jݯ~rG9SoVFQdJah)2xoV.FI^xKn D#ۀ(ir >mle p>d7]Uխ dNGelZs xN`j0 :&:f9gIm[7-TK{f.W`TYrh>ӸbF#'t`#ºa !aoCLo6M]!1𫧐qԩWS+g3ˠ2:(KŰ^Hg)8#?Ivxj >dQǥB FcЍu}wɠ`ZT`Ȥ΍:JH[Oa[4ơgt\_頭Y2o?Ǎ[jB'hZÿgoySD1kԭt0D}.񑇘G @~ m垾BnF#jYI@T,joFxxKj0D: !Yr }Zdd9GYMW=A9!{SLDgS$E 5(K'\ -W  xB{\7pH5>?˛[sD_45}ѯ^[/r]x[ k2Ǿ,C͹\Σþ}?Qr[z;֌f,%~"x"fQ2~4}[x=n {NA?xE+>x]l> 2͛=&!%470%ظ٠ A[ZIqSwxƄPϾ߫~㏲g A)%~-VWLr02F{{pʡz*?R3B(><%w^Zۯ23̥_lݟ g[g3o(f1մRb'"(%r ImV%41y xAn EQ`B iz '15T}EoPo$Df.Z*!{!z_$IR*Ppv`P@({|B\ad?X; ;Lbx5&Hbϸx`ƽDxs5o?w;k}Da5})/ehaHd3dl4Ie9_ _nP%uU.`{΅3::9c0Q5~#ZRLH0'nPzdJP~„KxP;n 9WؘUEkm Qr"74)F)4=M{?bilI6s,`B*L? =41y܂D#ž2e){zDn%Ky-lvh]^Ai$e\Bt[K)3 @m x/k"9>c.W|9ǵjCmWw!Gέ~tu֕|M҈ hI uM=h%k>x]xKN 笂M-cq`.&^<_N+!Pi| $1 S~V 9irb QrZnYkЯՂ0r&x-VB图-WxtJOx9|HkQjfY@6vRp[qOxOn0 +|_I UUJ CB}z/3#OD0 1E^V4(%NԚ~`;fDzK5Y0LB>ALZ)r&+gy o政=="$xNmpY)m іk8\x-Vm)ŌWxTz% !ן-s16/9>c+Tus6ɻ9G}?֕|Ə0Rpinc;rՄ7J ÂxPj0+tWG(%CЏXY,KFR*A3;l+S#58*6\: t.Sym ΢UF28ꙃ󨄴( xo[.7[oXq.m\J()!]ck_gvWl1JQ(Nc)PiL>պ1$s OC?V{K/{1~.ﯔlPH{lK:(Y0?BBlC}!.7RvƐp%<Y?&<:YʙLK- 0 u]$gwUx;j0E{Brg[!))MbH@vr).) 1 `|Y`hzE!_`8''%N͍q +svٙXTKm˅soyKsh-6/\h^X뱷7LW:ܻ?siIr !qoCJ:M=1KSL9y֩S+qB lVB  lP!ǥҋ3uPx1o w~S !SUtCU`" 'ߗnZ/l?镄F^rŧBYхi+Ga:a(VLRbFB)G))U`裬1[B5UgU//n.q{F+NK1# 1eʖ>xk17#ࠬ o3Mq~}Ym= |LGcpwr[-n{߁Qf3Lv[k/0r?^-'[v +~jP"!$mmy_j]Ә^yJY;:3ݘr`]*BcYK/#{6 ^xM 0EE>BlE}W(,eXTt~E:Q-sNmL8a1 $!e 2|hZAMnն-xG[>ԘH ^iKuCc.WO!=jsYZy[?L ΄zgqlmr'?w\uxPN!Wx <6Ƭ`?LߋtUuRV'H^$zSw8LH)zTg 3=X͔?LR (ֺZ*y>Mʚɋ9] y]ͤɕbJ3tuK1%HB"{{A*!6yL˅}:2M1Gl{mnoWP(H"F Ԏ tT‚Ri.t xJ0s6i&]D"m&%I;+9$kAi쵳XN:J .S5uFjɆj.$Fӑ edRz-^-9%rEO3F/*W p6A =Vt1^78 v`Rd0 a;e1xM3Da5×_mC@\+$[>Pt(o Om5yMUU/uڛ3`?弜U34u;=rrgXےy Nc=Qj2PR EXa\L=g~oxKj0D:EmI~CrwLb>EntUA?[ +6/v|,zH˄3\ k BJ7/NH;cQm uQg 5R2[xN=ݟ ׯѕUB* O鶶Fo7{ ?5 kkZ6s$ =@OqLSWc8zJD "}q po' 6xMǻ 0PE%|tu%lQhLAAC̪CuZ5Zf>[(c"$>GlAEV+qcЌv<[rĸo KQ8x+BxMj0 9%x(eB9vb)FOx(w9%͉XCՂkg'EIw+4tB J?smDõT( mzM2.)?#]#FI4eYu 6/@ILi5w tG%8EkmwEXw{5Xu˿{C dc굽42t]ڗ{;CO\԰D=z\^*n޶2 ױ=~_Qf!zEɉ~6;.g5IhWxMN0 9IڴX ! ?NZ6Up{2Ho޳IvIV*moQXk$)w(~$Np2Ҡf~12)Gm{HQ9a^zڸ>4('Zt]JX2D~tA(tK)e57AѼ3nR< #uBR|ۚŝSjæۘ]wa;rzڕtl&%ar9b4t`{'&IpF~Dxj0z ݃eɶB)}WJ1%#)}BߠsaVj2f#bWP. G"$LUֻYy!4\`=Y)N#gBoc._-BS2}=gJrRx龵#_ };D9S-Bֆm=~O X.Ǐ1=kccߵ<"b5ՓQj/q9Jm$7wxMj0 >%C)] tQ ]tIdtbۙ]F=A(A&V0ut8Q )lؼfNř-.8*|L#V|G]SKF75³-vk. }o>͆[? U*ƅڊ4u ⿘U. !ho5%Ԕ{B+؅?QSaUA~;ÊxNj +.$:20B5jB ApZhfP,(0+-*6AH8 uтÌE`s,87Gr!\[js-f\>^L+)@copϥxHK{Z6֯4tԺ]繫)&3ӣ6<s+qCIZQ#8¨,1UH)u*xPn WI@ZJG@Uasey,5, <;)l8PV K ]9A.9pǍSE%B=Kbզr|.-_t{ww~4wFgLdaLr|!}Pgz20-愻A  'DnMCb9Fmiswr[oR,%l]AQ }2sVUR0'xIj0D: ƶkjBhE զcHr RjBPvыZ whqk$2r@Ԩq+ʂKtBBKg{B \G~$z {d>~;lH;B(za] s)z"}ѳ6#!$nm_i•vNSOcL0YG}jL΄zp-9԰AQKsxMN0 9m!4 $!?nbTI dodzr+REދU+֎Z(#-@5̱ $ Dfc*,=-x+s|Kj;%skv}_Q5-"ݷ_`_(3o KԼ#ֶ-6ԯ4l?zLSWcLv%>Y=:ʙ>LϜr-`u˰aQj}їx9n {NA?j`E#6'1X%)r-׫6mRɠf]ʕx *:ܱLFѠW n4)`@p{X7~+_A/?ű_Ǽ)Q)2ƚ|R`zJ u{k/c8K~nk{'֟q$Ľ _iKucc.WO1=jsYZyj:0l0+C^jZr ?exDxNJ0+y."\n4=M&)I*ƅl0LX V![+*-wP.!, 9:}ܱkFun:Pe 7`V4 TZ!ʞo>1s%=cF`LHkw1^t-Z!GWZ 5R&1_Iy62$? *r]&*Bմm2 8C?0sx;j0E{l},KB"BĖ dQ pk FIS Qgt°`ͨSB9ȁŧ b€a܌ArFǽ#K.R|^')-nݜgLKƸ.u_k#S7_*4[0uVz~%+4r%>Yq};<8h0H-gegLLJ'? xxPKn s m>"uQxF8Rn_ :,F,(9'P8n"p&&^"d+8!LIg6RIκL?3_;;[kI-_-lwʙFJ4-֊RF#':zbsƗR04Շï~Q6dj>kU3َuڲMJ'itxAn E>,[E1*UQ{ 0jmnIޠl?z@Z%?kVێs pUl*`%f;ŵBJZm! 9DDB{=VxW<-ghnzF _dŋ1h@u`S~djDP%Pn>RI tg0&@,kv ްw~KkUr>} h?4R5yU8r==ejm_u&ǹ xl.Y۰rЬ+5Qt)~&xQAj0 /Ilo'K) {($lga_T43aJ"#5-J^jV.ZR-DlG$|0J8XBX#4)tve >13nWok[G&w\I5pXU+Ō=bJd YF`v̙2Kcw )>QݕW[]i34ޠKۭ*j׀mLpBGǑw%.&9 rf\7Ue!U RoL-xN0}-K'ƌqa4!Zz4BKhgs~_rF=ޒ;D[?REpN;bl'<@ҎPh{yTvP9'z^1ku)mwxO/&$xeZL1-O 8VaN;%BcΑ3=8=SK(²{nc.bfL[fMTp)iTOi~s3=Z9^,MyD (CWZp[Nj\U;nQI~;(xPj0 +taIWg)eBO=q6N]REi`Ts0Qs)\rQɢ쥱3jcrjjHFZCel3Jʪ# e% 3eg_v/~N\&i'ZTv 1#Aj\Cpֻᾄi S~Wm>PUU;aJCi-6S˹*j}vK;\箆Xx0gkQF7lAb9#?3xMn0 9w] JIL@Sܾ77~~zd$"ཛྷJiÑW\('W\02j؁BeT Z *t=i2=ó1k"75 f+%£~kq{omܟ@p-ZHZV =;Gr $H-[ *B>AY@$+H9<֞ >W P.[5Gc 1&fsWzZ·3::<3oq-fI,`?n"/xR튤0hFge9n}tbXM$_ܽ`.MsS6N]K*liPX0Kp Z+]a-T_+uTc);)Q \|2><0]<_nfS>ox| Fgf|4$WA)F;Ds8†\p{w6$P)T4Qx ~M\|V'*E(&e95 O.&B7B1+R su0|? M1)(NWwxɦ}u`?8޼sN04~;':4uþbOh6ƕFzyr`"_w/zҖ !MY̪WKkQ)7s~.[9b'VڪU4ٵ}&/̺^֪֙n빭RQїxMn }DQU%xXRo_r63kJ4٬f2hBr$å#;$tD\{.%7J* ȝ4@ٟ{J8#q_yI['酏o{_<ӑ 6BȲv~ [F/=o4z4f[O䏣M^׳6tVkZ,1bo%-ãbD./xW̸Ք_܆]ε0bêR_+K1@`lJ{Lt?( g s>Ɣн@E^ݘZƘrR1\8r}]}kJ:ERN`rԺ>ތ3W2%L}5xNAn WI,VURz%Q7U_z:5[!4R((EZj23zzQ́X(5pơ7^kTJKHBe 0~YlpZbxok.V( yM9vwn E)%<~K=?(Jm9׺ )-؋Q02ֆHSy:c1˧1qԩOܧV"h)42XOq5\Aicg}z xMDZ @ @QED*B-(sJQhL[<7c( fF&D 0}n,ِSq`h>Fp#՗NATZQuuzJe+xNJ0+9m^ .?}ҞE${?p6f"&B8ɉVҹ 4i5f)Eޘ/ηxJ*@{RZLeQu[5SH-[V{ -??% 4rxCce{\lڗ5DZ!D;~U*=2X?aB8j){|kE*6g$p xMj0 >!J2Bd'4zAӇx* 6n`!nu/B=8![G00јqУQN LJ%`&; u%&xKcWޚwn 0gf&Z}-ŌZv,cԶA>TΘeA0g.q5Mǔ^cx~S'>SKkiWhV{/9/׮A1_Pq䮾w%$cDh/9ofFuCGF8g'!AL=#?y+xn <6`QUER5o_rt.;;Ҍ4Y`53:.,'4p)99lX0㬔 *ю٨"P5Xaسn)ӯ>H?m$[?9wʙbšHK^+8A˞"mJ'v}v/lah)|6MQl)L[cmo'a7KѺB]ŕqw`?jՒxMn (G R+/@ TKA?/,RI"_vDF@0XBnԁY5jc\1v }+!图L_Wv{?? ctLk+(wn/c5}i qFBHLmyHJ_j_iǽb>k 㨬X+g̭Fփ \慫a]2@~]ruxAn EQHQUTz '@:i{zTw&n\"QxDe57s;0Xsh3c(1Jk/8 [R֔=m^NO+/.i6 4bV/0S0ˡ8R 5Wn!CCPk>!@FKں2PrMg~*e;wMMy}o(}w5Džb ^^+熏7zʉO·Ŗxj0z ݃mJ P[b[F }A2af"z(0 iE&4~SfR؁( II~"Lr&ҋ Fm2S;ZKooqi{ 3"ڱnk/er‘Weŵvkʛ^Jy\QwS<, m6|8a#yS'εt!,:/s:xPKn sl?8T]T-0<# rEog1MIDd-*h@J !z;]vD[ B mf3|tj& o$c'J=ni]koں}}6p Vu)}xO\[ xEHdSz %zdp{J2R|ߚş)xڰvO᥻rǑ:tJm?nPkЂ0J5۩cc&<{k)8~bxMj0:HB).J{ X2WYZAAJp2(PF07{`jԯݼfrKgAI8 7`İA(mf%8#"1~6xNN M[Goƅq JM{q8y$3Zg/8R A -SY9K$;P\)'<GF뉔ق5^+ \G^sly==z89Otjc!P~ϥgŭvWp㍟s CS}LuV:|IGmjQ@9UB 3L`PR-LrJu|x;n {NA *V"RnF p)rL33_1V2-\ύ2HpSJtaaV(RSṊ7nfuqH!*Id϶ \{jK|tv+D* _Ht{.\)=0zmc}|ˆ # qZ44d\oB:kcQnZ9F5!+F Re A/D ޯBi3+(ݥzɚxN;j0u l뷄$E Zl$y!R)S JTvqjpB CupCSBnO3GV&fulgX@ 0X4ĜQB7jӗ{-n&}1oA@/Az¿s;RtK{RӞcPyHJ^j_DZ;a{~-9:;ʙ7Zq*'I 1h;0( |XWϥҳ:=uxAn0 Ev$2u1R!B0RoP77,@Ah uJi멑hTR4JxS%3`Uǘ8XH-i6J ]fh>#nuz5ieFgjxx 궤D+>iMpb #P GWWBw-DљL.@g81-?2FhL&܏ KOFvӘ|TƧ+s/1׺U59|κ5{:}ݸ} Jp&+5gCZ~`HFIm֚xAn EQ QUͨJ3ܾDUoPoe?MYɭZpshF1rh"NpިkeJIQj{ze >.1+;|CDx[ߚ .nZ`t9Q32n cS]j C|-ŗ&?+~yv]U6ݲ?rǑ!t%=T 9\ L mL9;J5rwxOAn0 $ Zi 8u ( ] U2cs$#iaw} QE:ci(DK%&93N*E`Ir C+4_OpL{xtx˱+-TNjju;()7mȓxj >!ѫQsR --8Ԕk}Y|8Ҩ)@@ QY!pä-;|r3Evx@avRrAC ̟g)FSj{-~yq_9HkFm&u^/>cGci]ܺeRW!Z=,vJQDNT @vcɸ3 k9r+xKn Dmo{* oQ囏*F;&TruCk_=bu CB_9>_- _%!P?^jݯs~::ʙ7́ςA x%xs-K}x=n {NA*VJ)mN,`a ӼhZ"Yq-Xgְ`AVKmGrS3*I=zNbԬAL{r\~[}1%ӧh-fm> I< C:=|xo_ !qoCJXwcLf%><^?9k>nB*TࠖeЂqT /}o9xIj0E:Rٚ:d-dM-Җ,QAj>j{ʬWŲ*²3Db0sskE[&>7pfϵ1gJ?>ggnuJ/˷m^)҈^Z#oΥÙmK%GjϑS<$w]/qNSwcf,5)h~̾ShZ=׍I%f0 |q,92*uxj >!ըѡYJ_\MFq }Eߠgs~"m* H7loAƲ 1xZn-$:IY?01|5V(O%~뷸y iX[VRh+VL>rdŭvWʛ_sCK}Lt xC-irORtN@ ݅ɺqRxuX kxMA @ @J~'f$"P=>>{+OfvkyrjҊAj`Q HhN; kDZKuHYk~#ꙡ Բa+~R-uqxxj0zے'!Ph/}ՏeH2W= :{9|L-΁hUV .4aX&cш 9Z %*X(Fq-)qnЋ4+TrZ875 wŷ7G UÉ6Pte9A:nhLbHmy8L!=GB۟ O^'syثܶ}hsPˑL>%bTwh'5ejxAK0m&v<=x4&%ɺ7Ee{<>^Du(h4[w^8-v3p%T`P rR^ /y^"M!51V(76\f #pK=ӠJ-9ӿ#,b;%j%+?o59\V >\XJ`z /yLLLG-+ЦiubP}Jmj q:t;E=⿞RSgfdJN+uxN Fc{vxO]IW3%3ʵЁѦF,V+e~ÛxP;N0} $qbZD_O%v8 nL3b4FxpHGah `v.>hA$D7K=jDo0:˒2.+ՖğBFg; PP`5Rܿk8c_Xw kiج+_cv]UmԦ <;{3oBa050hcT//+u/xj0Ey_hK) P_$J5$ҿo?;9&G",bAP7cGZھY2:0C(gJ(6 +lB'ԛTx%DBϰxc½xs%o~s;[I: V*LRVNIg A t`'mKS(iW:zs3z[VU\Wsk8M[ϔh8R[OuJTY7JYO59Ǚ fP$JxQj0 )tIqC`=c+Nhb9IOB&c8QEpP )B>PeuD 2jI7px1:ubIJ"\"f:魰xuo3>M/kcL)ΘR*BV}Vgp q!OlP̌S~a\qK3Q;0ҷNgK8?eGάXNhACc, n-N߾^ }Ii>mu;{ʸzS[.9LeyHF V5(zR0ZɣxPKn s mEU.*% p޾tt6YFӊx\nI[-p%Hf0ŧ_ pTrSUhc@ ʁYdζ?|㯼%a{KƷ{M|.ofD|!{lKz}<#`dZiD؆JC+|uNSWcHf%)6L8ԇS+gzܩ <”ddPa]KgE?ۛxxP9N0} _IyBKHˋAv=L3K1M+ wYgGiQZCDdB &(T-r|D/A⮶B_ \[^{KOc󏴻s y)aA*:HO52~F0Җc[ýBֆu [ηZ4u5Í_= ɝg}j:>\+<`99g0,Km 8sTxKn E#ReP,UAw7Vf8f .BB c8ZJc\]0,)fqLxz^9W%+H |ryW%Nz?| fIN[sCWJGs>}Bg\3 x4pdZZ7"BlCNCgzvƐԘKx)6OjԟߦVt|](p2c"u33l2./ߒxKj0EZϲB))vkؒBw_uP&pkSH LFg&Pvr"Q:lD>Vlh{ #XA@C pϼH?2e??U7J/s{/׭iTPkV/0wvWtۆ._7]{ )ﺮ)Ƕ#v3v;㦧R04Q)?~4ꠏ m> #ƱSL@7]NI1)(Aߗ uxM= @@aBP/z~v2N'""n)!^ 9Pzyʹ!;%+C['20)?IيIĝRRd2Kg{h)}A=\ݏN)ڟxMj!F}RVf-iF>f6GQ@>"竉E Ŋ0f9Xoȉ5NymZ7?:F Xi,GJkH~ӏr Rk~vܿfW7`+BrcȰ{2r+׃P^2s,>>gvcv,ˠ9eKMh= g[O#^Ppma`'XLڂbRi#wwxj F} 3ƨK) {Q[h2Af9iI*тzh-RatR =̍jgu9Z9 RS=B |WuN_RloiJ`:E!nkk/2r9|L1IIkgJrKٳS>kÃ㨼Wx+gI;M" bbA!E 7[tx;j0{)zْXH;"kH}"74S`4a#Jf(!bs\]g+0,0 ) 3JmRPc$3G]S[>'|5Uo/~/i{' 1nBB_5lj p0Kr"R^ ̇{( E?lZ v!C#v< zuǣTzNlCG1JL4uÜNx3xn *zLˉfm(G:HvL "ђ`ՋD\iF᭬1{"|53nUޚ6 WBq/tпRx/_s jOtsQJں{_)1Klcrܹp˅=wOAW-\NBZf|nAf,8z\xIj0:ſ5!@Bez@Kzޠok%%ВDJD7q#=cZ#]*W 10aL|1ՄIx%"P -qL'vp3E:Rk_d5=ͶT2|Bt !$6yH?zƘXjS}~Lmj?.L͊r8FJF;\~V5sF~w'xPj0 +t_؎RBB/V;8}Auh@3#Ղ¸Ѡ3sS˩XFʹČL6[0U`a|v+i4.ފY !F%$)#\`5T2/LMsFTg;*nYԓ󇦝xPIj0}l%k!LlI9K-PE5{OT8J3W,g0av&8 d@T!PP2,cPq.)[1xO$x퟾ͬM3 mbL#Z3BX}>RRM\ !q]ڻ]ᥔ: q7}c0Qhj> Cʴ݄t舴3]/zJ0$.u?xPJ0 }W]n"" YmŻv BNNJbuvh(qZ-j@c?iDfv IC<l*ÖQJ]g%8So=^)QU";:ՠGW>^5ZUof87KlM㤭QR|UYxAn E( 0QU4J 5H޾̢77~rDGa1 %ᅕVäH ؁b^“S09 i79 ͋$ϔGLXpo)󟾇׭Υ0hEaZ_#Ls% m hca]oK)04C>!ijT:<2JPqJrP`L7I:1Jс[-LKwSxn <# Ck ت HyCߠsӔd-yp&( =;)PHMRB yTiq81,-ΑGF騔oomoM<ށ_ V[)_`gL *)ݚf[ƘJٖ+{yv]u_ឋ=;:ՁGW=ܸFs86jƱqn}-q ]L|'xPj0 + =.I8~-,c@Id'-eF# S2hg97j4z5Ң#i5eEHlG&+"ZE!Xe6(k5sH[5;W$CջonN@Ш5":q:MUrl) _rOr0؄Wl**^s}e]ԥ~y,|tg_}ɏqC#3 V!L-@/XW }txNj ޗ$~Rz(?]cJA2?0ôH@hs Jy١vYQ]hQ-`%"qgoVL[o۽wl)|\-.˶>S` ,:HOyϥg1BRnY8ijLō[MzJ<c֩ճf-RKc2$AzUEnBC@)/Aɠ/%`^*ddQ R[3G/AsMN Gh\gʏDPaLcGoq9}P4Cz=9Uo󯱃7'R~6FBH\P_iXV:M]1K<Q{Nʑo( 0s `2vF N~6xAn E* $QUEJ=fH޾tԛ嚉[KhszvR(D-r[p"ubffjQۤ֜r+9Qi\ zK2="bZ<{>M / s<6ѰJR>n)hg!H"}ApeR8> Cg_b= >.Ju[gesJ`?}xj0E "zR ]YɒS@U>p0%EIjn,2BP躮`),laD8hQ%ؽ<[og|/5Y[ .:S).pK}~z}cu_4SAwA?CΏU>3 mxf\ҾZBUoP @1zaJ4DueNx=n {NA<~VQir,ӯ[g4b3w.@V(oĦ}ۖZ{#.+z0v;wKR^ahsÜR ~nC=F ֝:P:"F^`?/g|kx ȱ 0@Q%t 0A w."`lǼY",-4@DE>S,i\喊yMD Ԑ@XTr(""yy`nd]ľ1O?k%xAn E9UQUME{ A3!# 3jO_ K"0ORYJi#܄A/,3aX@(t`,V"'7X'ZhJ{D~O_0V[vx?> õ[8SLj X[(y,,%C x Xx;&0D G&ZWs:mڮuH BI9n,3. wxMn QH˨Ro DTۗY,[<=Dϣ"PԓhDR;i` l!¢Q8)G|59\2} ~+0*)Rhڊ4u⿘7b |˗z ی9>ܟBB804C2}.CHQq̾C˷ #QK͌ڎrF;mwB=|d_|ߑxMn }~ʪGbX\%=Bg3'M)9E0d43Y^ \#9BM8,ˌq1 c!ya D%m"RG[3<%ӷZ>ߩGDG/0˾oɾWCYwf|c_Z{\9jZsJ]_l=|p_Kyg JRy\+ :HA~eZx=n0wc=?(Lz$%RWʅ$2^xP()X cJ);#;IYv\kxaΙ Y 7?o?%KZ?:]3W@\k-»R}kgxH8|[{–>Qe +[AKm{LyLYc?c*>?h@0j=8%\ 1eFM~qmxMn }gxQUeT@<,nbiF-2rɏ- ! V_)7@heHEpBMdA)"h3hmPK7?&?%W[~=휩rOpMeYRk=or)RR+16m_K?mG:ٟKs?}kouϏZRtС-s#.`CekxMn }DacxQUe#tϯc5 p|3L1R/rq G D'l̨!֘;,t̂b&bJZzĢQyb,>b*xo%c|t!d*+mJ^JY7-FzGx_X^#ojeUR椘RBAI'tx9n0D{A; p!=OYE "G2ͼ)rAN#"0G%E`v&$4Y|R&Ig $pGg V^V[jNVTp2^ں.c#gۊt:!d^ߕ-FϾMI׹k_zt4}~]8- uRpe xd\ |䆕󠜑hAxIn D} 3hEQKr>nmlCrԦ ]rs:٤QJHg3xd^-:}ұ39:s62+c!%՟Gş>P߶w(>3Rr|c#(ue};}kyti)~:RCrԝz׃%63a8a3b$礍uhedx ˱0 ̐[Rb4"W岈B=aVA҂IH4lqbL"LΘ иmp*-O2֬VMd:.\hn3({;Ek=:\r$xx1n E{NAz(4S%5[?$G4HS">R:BAj(hG5IA-f=(U4{1j'`a섓V4XdK>u+%iϜKzMT_f@%ڰ9oZ+goBʿRcq]No奔1k>/1޷+zqjD E4uF`i K͠$ jxj F>b&]JpŨژз :8 "AM<Z#"_&0P07 F"0<B:eqwI!GQ۱f {9u>~O;lC8*r[>O![k/2m9!vuFhXBHmF~ucOC0%16҇Evӯ.Ehy_^ *xMn 9$@b~FU5Uz  :J}EoP/Oӫ"B=9?9MIrur8be OYG2މٌZ5u!.:[)in=Kao}X abb\Åzҿuo1@{M6LC^]K)u !!1Gt<c͏uj(Rg3g^;TL ~P&yXxP;n 9YEJ)"ck`a6RnRf>h4@ fDI TBIhg4IY+C,$1z5^B57:io-ĖŝG? @ RXK/eTJ)ȱgŭvW6/^>&szyp tЖC-t =J] R:tvQ;jr]xPKN0 ޏ4fĂ5Ti:ۓ~l-fzpBa4Nt^STVm,@)4爓X~8FÄӄ^)[<9Umj* |[_Gs)8*R쿈kRwUCh3"=YxvXs|y{EP`PisUڔ;صSu+y  (tF<5'' dSxPn s UUmJ A2KGnE.q7ztjeTrڂ2dxf'uޤ|T*=s#\V0 yOa%kzJj >h Ō;ݦ:;-]q#AN!p~p2M!19S1N$~ңTtehEGGX::)fB5 h}xj!>efu a!@ޢG[W1AEQ!R02V ju&B&6HhX:eqRQa+7G6&{T7B}P*}I#K;J9H6DF_`v\ j#ܧL9\鸗_e9kK~Iyv<8sgq#VKLuggݘb X']*xɞxKj0D:E[?700@n!YF$$O,rtt! N #F aFxJMJOakμ#j'uʉ[떱ȞQ*KpK|^-6}k_gJ1h= Ka͐Z;|f)GHVB(>gKk+1۹qg8'3ܨ(aZP&P2iGĴm^(m|Nxn <" GUJYb Hռ}oнHiZ 2'PIv6Ȝ S{g\9)f6}%@r][K9[: hVB[)ծ|> >x\9yۇ!f)44h-ێOwrՅlqVRed}Wx=n F{NAaE+>c1XۇAyO_!`XPvc 7L1ﭥzZJVMG!wl*.@99eb@R{ oQ\sǰG>-.}Mk9^1iF/0Hӻ<~R8:iLq/y4R/1?Zγͣ1Ռ <01 Hm^jcu9xAn E( &QU4JDm R/]K~5q3zYY,@hUF(#83lHK)VVK#vZq8JAy[-SH-'<%ݏptrIhZzҿsgSd+]&{ |/增1ڕΛJ\")_?xJYVjf %Ѻ[@@tfީ,$zxMN0 =w,:MzHh*I=a 3#8f эMC$6iԪ'vPVZ8T`@"M=2,]n(m{CPi(:}8xSQyyE1j* 쇩ZDa" x5 7 |L ;\ Цbqf8X?EV *b^S\;}quVTٝ1QukS8C8"FC9 %vK/5(vQ9xN D|ݿ@y1&&n(2C|xOAj0 $8Rʖ.K=˱ `{[z AB3Bir$:c BNZZ= j)f8q+# wvzd7S 7cBYՕyKp ]Q p~3pݚ)WjlpJT֜_ĪGkNS.%_^Oa [ߙAWc qT9D|~[Tj FeujP]JC,nM=Ŏks#0ĨT935գa}=϶F SjxMj!j!L"$ lZ2:>"7HAQZq\Z9#%7 4X`T)tR883Ԯ%pd]Y)Hږ ~).z.?G_®u4yĔ)t'uܿ'k:L}ϏOF\uP{u;OSWcHz%ҭ6wL8cS+u@fQ)E:NɰD ޯA0~}BxMj0:lV(%hDkHJ޾7l{Ûi9z G-ZSnׅ M%9Tqєz+u8o:tz ̬T%nkq!ox˷WU[2xoy匒GW~xPn  VUZ/8 " ]K=Q"\iՈ+ә {g T`d7 CMY2;I2JLUX.g#{9Qh!Y&bo #&DxYjl?ZW`TH.F\h R/ŌcJh :9O_VSa8;)sńpNVD&^Y!@coK;?ٍ~Ox#c,m_iݕ}uNSgcL4ӣ6Ntu}G Ze0  f5TӢf~xu6xAn "6؀aE)̀Q)>KU3"堘Q.J Ktڡ譽*r@TGO 1s8c8g1~kP`k _r&٬9v-֊"#oKoĞbwꢻӖR0ևՇR8p퇚ʰ#gV3َ :mwrf/.w(xOn zl0JC5j$UU{YL -Y)zC&kn " /a2ĊH00`br֌+.69J%e|Ri7C{7_n֭wiTi¿W9,>k(mkskZRO~kה{q[ k=v?O,ah)B ` >|:)d05MvdSnJs)E楅%xAn EQ C JN0M!Sޠ'K.U[hܨ&TNVM#regFUΒ)XO^(D6Zi i5~fx%exSDxW7 k;W+9^UR_n~|hW3=D1紮 2|(M7r˭j}6e;ϣ]mu%q5h)4ЌO ޘh3ZI~xj >/I4ƨR LiAM޾E>@g3|g805#t"lG-)ƙD4ސd@p;tp-BD{/51(Cpj> GFG5ϝfvtbSnYJs)FF~ axPAn G QUER>b`iߗegFԌnp*^R8iϗQq-(9LX::QKbB:.f4nT^kbuK3)G"bemzoeM6I9r86{Ō|biSh+QCM(a o ]OYCW;CۧR04ԯ)xXT<seh{^ؤ34uѥkN-Tv;9+=Β3x;n {NA2?(Z)E~(k*)rLL1Cs)P)33 39J5JvRr7`@o&!$3{5eÒ7Lkoؽ$wv.Rh"ݷZÿXjӓ5=!djW6^JY\Dۧagq=ۇuc#"38a0u t8+Fh"yxKj %rB]ѣ 7jPSkAqZLs.‰"Y;[,P儲`)ta <I T,Ϋ;buEj[.@-7SM씌_BG!m ŬC{k/0#q`~awwVvƐ̘KSHWmpNPRc(aJASddP+KgE?txMn *?@dTU#uQp!Q D:/]I~vDVX9Wr$r۴E8Sj؉bh7Ai䔲B.bv9aq1=exS~G#bZiR Och8j)c~D)BI 9;;@@KY|1Ԯcw 4}*e Csاgړa?\ƀ|ǵ'>v:9̼Hg?n~kxN9r0 [хĖ˵|F#XʋDwAmYFVF?|K;S"1D/dvϽC/!p_8vFuߡfP}jeኇ^Zۮ2ܜ GM~Iz<8϶_|ܨ2a(aFR&"(#rZ \KF%w}xP;n0uACBdň-"28$kj.G2#̬cc1sʭ6XA(%j^2:I-8::#{[}H _5~aOi{0PSV/f9`ӛVT^%TzV;`l BP87䀂Q&5Z@ |>J+4Y\3G[sc.#Ad>?~;lr&gɄUX}k %|➟HG+ ۽us+] b;8#!$nm4lB=պ^1&sxQGz}jnWT ΄Qj-9س}ڜxj E~Kͣ]LH_4}ЁܹpS3&$WγԲV++F!;1S9IrYi9V5ܡ4H%2e){#bQ<}[JVx#Jc @B ) 3AݛpG/֔{Ƙ+wJ/\#)_?x/ϳ c?b4uKǕ]icgi(.ەxKN!E;UƁx|hA6^~7@ .Z1&Nxƴ^ 5H-7X\j _\5^yUhk!ѱsmފ |{bţdx }_h "7.#匼X,;aC z:r!؆HCW~uNSOcH8~ҽ6wNxud=}&3 Q=ЅAjUH53zx;n {N1` ((Ebx[ 6>ldQ|=hn^(yE/BT,q蜘NQaHHVQX43!9dt[}Hi; FIZۿ| ަ BjXk^{s;()z#_桑#m3]{X/=c,+?G+4]>ԧ~ǽTtex׍J̰G5ϝh:;ePvȑ_8q%xMn #<~ *Rz 0?J J}7lY"aRAYKro 5IkB0勜GnIX<^u> |gb[𶶾mns\+4.6ҿ{.Jd{QÒpu=\ru\_?uV:wšWzpJȅnB;ws-KNhXfzrxMj0:mKtQ-F?vLbHJJo_ut61L+1PgDFpp -"/XbjZ34F×-uDƍ bbfzNѮGk. ޱ[2/_ *)`![k_[1!B_R=oP};Ӱ3t=z=OSwpeӚcSlZyۅi+%(Zs@%uT 03xxKj0D:-dmc3e$9GYM.VBѺ2*jgzq""ȉ%rD|<*iB4\ BKH|ӏ +=%ӗqis\J ZCo #16u~[띱Nc:p_fj 'Y+|zp/vj+c4JrxNJ0+4=i"rAP/n&%I޸<`i{@WZVX? .'.>5ޭ"LAZ\GP`$Wro\{}U}%ӧsf#zd6ϔ\!7 ==\bn״sm{9y!$m_iݝvպDZ+fǘ9cs\5ʼnäeX9ACNZg'?'uWxMj0 F>Cۉcg(eB!&tbۙ]F{f@p.<2ͬ#]B7R{3+Ԝ]-G'Yi[G?ccOkp. i֒%4ߛ| ;nޤS . ivjuRF.0ΣHOg݁IT46]Wڅ--Bt_dpBVf: O9Y;<2G3~XojQщNi*:ﭐjTxr D{#NLU>!!Y 4ߏO6V%0F¬!AԤ] b©Ip!"T0GAιI9CA+'IgN-{͉s]wG7h)1m[[^AiaMUvkB,k+uk/>n}uIte~IGmQ\#}@9 5sY1ɺqmxNn0z?ԱC[d?YgG-~~B; ^k*GaLH+4 JhA!HDpE3AF $\2}u/v3Wʙ 9=2eIDSsDǶ Œ߄)n. m|:Oe~u?cOe[q1FL8c:YsnK'?knxKj!Cwk?t0H MnࣴeQ;rQ5#fZ#rϨ̅c8)$+09;H'C(PD[3i'Ӓ)kF5³*jkWTx&mO2I*"DHkP+ {B Rm+^7\=ECg삽@R04|h4F *#yf9^IyIr)1Q,AdU=D/&iGGd䠄1 2o –>u#`Ƶl*ߺV\g|6PpXeץ3 o+Nj31[=,1J˶pH #m)U%k{2RşS*jCvKၻ\hpsW]IG| S/xjRF[>6'mixMIn fߢ)Oձj_'t.3#2ZJG-i把)(!ea9rk42f>u"koa G9-j w s[.:qHV9-_Z + yP+ Ƞ1JN%ƽ1A&`8a:Z[MJ2:#Nu͉Ŀy9~5`,*~3l۶go<Ѻ|S[rbKWg_j}ޟϹl}+Gzޅ6Vs#Hu(=RgxQKn s /[M~U{I "`:/麫ڒ,lhoGrRi&nFwؐ'.V0ޚSgZQ3~TeEF{NE"ZR{X0*J jh2m ֓켝k!`[_ DHy7x] F0$5,!bz42[tτ%Ԯ|.?r CCmraR>pLjǯ+k8\KFvzgF;xPn0+|llJ>[O`#lk hwg4W<F!RwHa uDX&sDE2V0ŹreM iF̔=90|+~CzbÝR z) `Jx#e+R 8>g=Zaz^[} οE:i!-`s\÷y7ln;6=:;}0M~q+dGs~C]K?t뺠11l)R([-h `(aJTRjk$gd5x ̽ 0@aY Hhh.g/.ϹD(Y 5_u?zV*G,ā2PPɾVyl6[\1;&\1&D}14Wweڕ?W%axQN0+|ij%ƉcoRĎbԿ-egN^qfz&i-0FaQ&TF;bV;t+0kP B:&ք;N%Ef˧G{LS vC,E1;LJ5|CJ! GGp6cC/,&v0/|E!-`s\w3A1vxe2,wP+tʨ?_S\hC>W=TuN]]uz [ʰTET*Ͱ*q1-eRW=08tU} xj0z ݃lmR=J=gV@߾ʡoн*"]%L!(f]ћ@sXXrbnͳ[4z'3x^9GJ׊^næRK%&}W \J,Rz}HOKcˑO$z-5}lƎGf[8ӾOq;cWCv(5>hvߏ3{TKw/v\u BiӉ& TvȗxJ0y쇶2"oߴ8MKqx68| R4X0va@˭E>f <̍JqzP!`Aq</4(lĝm }+M%W_v>~O[cطg@^LKz.mm 匼_W1|6RBeӃ[ݨgŭvqt@R04}!R<>ڇU(5h)nv|3][jf,wۛ xAj0 93$vNJ \@mbiݾ~} F%H(PA\X`# HLjel̄F+%m h ϼϑ/VOp/o?Ƅ8=ܱU.g/L>_(A!8B&܋aw|zsո\T 4h]d1^~6VmඅO L"7C^83RSUr>|=|z߶jM˵nLGǑ\*%AuuZzlYY'6lGW_Bxj >/IĘR ]:i!1׻t6㔃4J< H夙'Z=zAN١'N=ڱ= Q^σbx%yPO*%k}k{0^W+ 7^vпeXMw\לKa%( A[ceX^< |BB{~vu֕J?bJiYpAf2\5;?ФGxj >':2Pho^ud).{η8|ňqzoAy͔Qs h`\j+,RrY.U4>2 YL @H [o-}^;:V6_Օ)l3Cb_84Zz2^W:'P./qR:Ҕ3t.HzƮL1(qUv^!̍dhts'k MH dž@I oR^lǠx#׿Zg XPe e .xzCam)ݶfPL}jyJ^Zۯ2/1?Zbϳ-c?nD*,AQr2 s'B؄҆)A wxNIj0}Zw\K8ZZ K>y8vq#EOŴ}Dw|X)+?s!v?16ߡYj?弜v4p7z=w+_a`J`L34\7Fe@xN Z jivumTj u=u7w@Ys | GhʙMӮnvVn\u; xMn Fb1?*Rz1`Qo_ :->M.֑+iB$ʡ5lb.^hqyiG/ZX/z 3Thko7Qx&mQBkN؆5Zݿ=Lus f'0t=RW (5m`TJc-,Z{Ƙ+߱ mJYR#)W|lFexuR qRvsN(eB*1r [3xNIj0}l60H hK,2^8}C~UTCգ"y02\zrZ1qqFi-8*Ý!Zatimqݿ}xLs]Y)ּugJ֭3p*U.Xj:R¿< GsJn28:rZ"Lews-c,ϥI/9O uZ [Gۖw~,wGaj,ǡ+ (qRk)8ӁxMN0 9m~M;Bb8i4%)hnO 'JsBZIJnP n<(fgL 8:(gF3:4=Gjfd%&xNcK\0,Z .ah&oƙst/xKn D]#И(&R{4ƈhYɁ%FjHNcNH> AClπ{9 `i߶[K וyif}N9ex1qa6r柧qY3'g|YK)(c4 Nob"xKn E笂yD826jH}-N{zMB@SV6YtLby-1C4kZ;>sbrQ"HqP }*,q飖>q[ҷ׭NT Fk^e) Wcot֞++xg_ZotV7>mu]J a -sAq$AKf<x;n0D{eCRA49@.` G Q.rP@.m3j5[q!!F) ŭX*& 6yTAseN 8Gpi0PEA^J?'ƆoX=S@OЎyri~"%ޚyܼ ,2mxMOv}XQ}pݲl8S_׽R9j=Q{BLx*Dx o?E( P; tKqFޔuPZTbbJΔzm1gA?R\A siur6).{5lڶKWҾN3`)FR ql$$ƞC txMDZ 0PELv:[DKlQhLDE~2uT,Aزf' \ SUgtQcΡp$e"Hb j]=GQ&эqtH*9xMn }y8t#tñ"c p|fH "*Aڔz@:'frQt irR'F JJi;s/'b.{,|SJto/Eu9BȲ6VߙNj}94,]%^XG^6ʙ_aRt` xf=hRS_bx=n {NAfE&7Vp|L}L1"Rq(&rXCD"$$RBܩcTh ZH)UknI8 N~ 5TpmwVzz#d9}"?BG .n}jyAo 9\K:Jil=z=):)qZiL)qWHAHb+xKn0C:SH7A wFH6drr÷! 7"$Dm![%5AV'9'F V"+"eIQ"?[tQy,5Tp{~}ukHax1~R)ciߡBoּAzک0Ɩo0r4 .5j_<>cZVK'P90R0 sFC~ d(xKn EÈ2ʬ6˯^ik1Z!!QFXhkA<F"5HsCȹhK.+K">чw%y;\¨h15FGG%#KKcͩnK˭NJ/jmwﵛsYVyJJu/7J + %`1I;詗jɐx1n D{NAb`ҥrl f'VIÄћF3ig#L0$D숕J  I@j6:\ ;zX|u+5V5U|Ƅ{?ݗuyT0hzXڷ-F1&"2xy7).%ޯ-;ltx\VqWNAVs"taFX1m0Z04ex;n0D{}@k_WKX@QN `>՛VS>EvZ8GHSP=8 }DJlJi+у2i QRO:+m^+L5Ϛ,4ĵ#:.NA op ҿy?_\Ћ[:ڶֺt͝D#Ah\3Zmx;n0wB{ "S]z-4 Y\~c`I;P!A Ź2IpNu:lu`F)aV+$/"HJdckg/c#ևV=[KS%%7B{#}Goψ}5QZťj+yOR3B(Ag%%\̷ܮ2钫} xcb\r2ި4fت1A$I)H%sQx0yY{mmD. Aܹi2mMpz_S3֢蕛@mH37hAhn;0S2JҙQKnWV[t7jfx-e)gj~ߩ/Gbi3vɟAa0|/fӾZ?5|KyA\~`ĕr?b!@ BBu#){F"#,`,>Ph] \{3Bo_=e6npK)ۭ.j׈m?xJGQzob4r-R|n x3|lōz2``QԐxPn0 <!ZjW=$B}A}#"L#3Vp5l\.NŮuDAReƉN.b|2# ik >"\#!{X<褷i.zc˼i6&l@I1.)DJUE\/f՛;?5C+~:ZKVҁp[Y}Ǯw{v1zLX'aDHhfkgPrnš&)}Om9jks<ׅg %lZQ2֤F"i*O*xIj0E:lCBC Eilږ,r( S[M C4ZMO%pΣ.ʨNAt:Ұ*:/d)iSPh1-{Ϛ^>'leo!a1R.)F{PZ2L%UXqXByi*dw<8vra\c8>c[(ZǨ'T2JLST:ag,rxPIj0[ ! !_kČ%#ˁ>!?H_j(n5p_".H̋qVIZ5Hc QB` ^AQ Q*!M?#;BbGoq])eF*en/e^j r_s{zaK%Pk#!$6_yHJ;^qƘq,5)hapߏ/ۦV1!53a`X ڂ ͬg2zL bxM̱ 0@QED*;w;[D>(2 D>1ڭI N@U00SN92sJ&DՄ P$7Bsno0V<ο"\*xKn Dv7FQ4ch<a9BjSZ%MH9cyl١#Q5qʐ8B FrLNb$%U{_)SÏǼ]^Oۘ Du%~˾IUoRwtoC~»C+<+C8s\끆K#<ԁF9hBs^xP;N0} U?ǟdJHQ ^g'"#ǻc n4)Fɉ@+r'!A9%)vLe.<#|0 H𚧘s7ƟDJ^? +KA(i; 'QJ9ӿwZFN_9!x;\Xsuܶjϼ8sU ¯nv=2 єAku6` dgLՃ*@T]~Զ[%uŸxKn D66Q4(X8Rn RSZ:mC@aٌ`]06;A8ES|jIR,`gL/r`Ĝ }+>M?#ѻfL_blW lA)^X龵F-E|m暑Y=g !qkCJ殴K4u7d\⯟b:kdN>r JA[ 2>Tzs^vȝxON0ۣ$ ((hzl9fis"RcK؋imz$'Q+Z'vlD1958%Z \8vd5K"x]ϸRVVxůݟ>õvwR[.:+rc)aٮtχ! &|$#LD-Lvq\oTf+Va4IYK)1g]Rb?^L1[KI~YK3PL0!% "nk_<g.RnJ 'ĵvsV6/,ahS=Ľ1(C{kj>BS"SiCNSE7^HG)%7xxj } $'.,bi1cB7Q,k/ssf)Z(!xJE#5iY />~N+aÕҫIF.D6 V7)9Rf [\SƉF )! \[q>P!vJ/7!)X(X9@[sb^㗳839V~D #^qqlil Y_>܏>}?*M~#_+%@$X Bzlr^%xxMn QOBJ]@5ȌeA{gV2Q7^蹶E0=90P`T-WF}2@,KL35%\ykmqZwLKZ}-Kv{;Ж5ϲB9C`cJΖ 8s=o1X2Ьj\)1/MpǑi|%ƥ3ќ50x?Qn_,YxP[j0)?-)+ҏBoAcHrJo_tYؙdLr>i4@YB>Д6g.q1KB+T^s>] w%8Dh/Q mLyc…T=#xKn D6(FE܂OA( RzRW. {GB,Gw>Z ~/n)2S/e^jS8vN}IKn3B(>\u:_^RL*gE:kk/et:='XKBچ |~ϵ.inL^~Jۣ6<&wu{c1y 4g˨{:O,BK/tx;n E{VA? (FJ)ev灭f>r)N+ԭ V&^QEJZ4SAip"W}4\zi<1B \G}3%ӗ[<~]>^)g3WR PºH_53G~)Қ ˎu$Ľ _iKuzc2c.7O1=js2YuL<׍Y3g*5hذZ&\V- VwxPAj0{%+PJJ^ }ZZ٦e$W-.09ZZ;;t$:)z8n$-0ҚaPduӈ9z: y4pZ)I <Hcwx Ϙp).Ƣ[mE9xVeΙŌ}l39b c9߯1 kK\ >4z\q͸)ඥ^,T t+xkWf)]Ԫ _ExMN0 9mF%7pS'm& n{'kǁ;BjH#R4iَmz>#'- AmSG3׃|< ^0Z(|kam\|ZupiK!g{}A6q BPv( K!Ͽ h)1|Uت0]KJiu~bTNKYގU؊ʹI(mz%:ξσ6xOJ0+f/m6Mڋ ]O IIR܅9pr{ݚqFSݷ,t/vgNBjz)PvL3f d#/!Ss?p#3ݫo .AEAlEx‘`r6  N9zC /ozùq\popބO3%9mH!7vUr|ߥ\ꚦjX8zGvqSMN:^y'pRg$c5i2Vu /~^xPAn WIڪV/ 8," xd{\3"eUJN-rRNMJQPn2 NRa,1*g1KĸpbzK}_n^M1[7_LKڞщMJQ B/ȋs!z3-XD1`P}O,4= \[ZB|]]pghT< >>eGflCG01Mf(WRvQ۵iڣuubVzgWzxMn Qbނ'AM "d}EoPod}zvɈOt2VfRB*5cd7c RX/H˥t=j정ĜeI生0[$xߺ6o&K;0*\.JC!XqSXLq1ѽ)o0k T .匮ϖ2/DZ\vMy~nQp̾]=`J> 0JF3j6ҡ&?JqBهTxKj0D:mnf-X6G!MWԣjj!;H)fEgS90T) ( J|f L`TJ[O˞[q_}_cQv[ۿ7\ݷWp`A k"-ZHI[>asOkGVw^JY\{?~,GڬmL0iFF-eg8uzf ͤ7?x&xKn0D>EG?(FEܢe6>"7HoZz*UID0:GE{-+@+B$#^rrs񓟹T\,KL( oqJ-l>9n x/4R…aR_` /ʀpX(ͅ)m*rke4coVw/9/׮ ;1_݅̅#w5֕t7{eHkC3 n78Nh)WxAn EbQUEjJd c+1TKAg3ߟa*t/H1iqbF5 8;(X@:' c$<q,GYɇ==s_"QRvx o6ZoQANXUw[Kc+_2Z՝S˹jCvOWw!>rGGǑ֕ b@P=^cc8ڦc-fT JfutxKn0 D:w]%gEE-CW>B b,:$m]PX7 Ϝ4(,ZKvWpkSHf>d#C+G׍,Ji{ |F7Ǝ\Lr.. y].򕷷̿熥Zex%K%ޠm:]͝'Nmn0ϝ+ 8iM-g&N)RTf¨?V~gǖxAn E(MQUME!4Ro_f_%.P@g%3 h"[B|8;'OrTHBhIF fuͅsyMݞvo_bn_W0!HD3 aݷZÿ؛sr]f1ڝߩ}9: M1>CLcq>HWL\ AJuunYdF-_@r xPj s_QK)[Z(фn4з{t.7W "x{F̌9QIʵ0'ۂw6uڶ4t;IP%x/s$xZJKz]ޞQ(pmHsV0=zy}BXoBZ;u?Cq,ahb1G{09J g,:Ӫw;=Sم8I/Nr2x=N0{*V \_#ۋ-y3S>M+u8Fٛ\`?۾FgLI/\HO龵R n+-գ<`ssGŭ ; [8Oijɍćb䎣NpZ }D%(5XJ4aYr-E|xKn D#fE#e% +cۇYMW?ufbi%F34;Ob-#;f+8Ff\s)w8N\4 2fRt)4/%l%m@ljLq4!nk_۶twͼܰ%k 60;$%m>>R(=!$+ح mJ>DS=x 6| \HP4MfVYs%%- xKn D}daEEQlsk+c@#,rZqkjXJURt)rnEq+MLQ0rq j-c*ȱg ,KL׸lJkڿwn30*Q \ *R}-Fr?ޢk-21!u!~&fuWrZLg.xt8rW ]JPQ 7zg')xON0 +|juZHۦJ]/ˣ@^;iЏVAht~lQ(H[mq\)D|0k Qy^#M!~[7xɮ%T˴Z>1Z/Ê.9ӿgɃ 9!?N.?$pW,PB16-JZ>4zli;R|mr<@i()}_wWzXGKh}"xOk0 :Kbq1  eXv̛Vo_ge|#gKfZis\K@4Ů"z&!3ch=vàfqL# u"<;+&ʭ+·=wS_=8`nX>b/۽vb}{#uZ/!xX Wpp$[p &5_v:S  '+l꒹GČDx.>9mN票(2]}-xr[YU֫*D{#T<^M;.&&KcQTxKj0D:E-idYCe2&G R~UELYMxRMܫ$TAh,촙 [qʡfdQvKjt[fuI>2Ŕ3-b֒%wnO+p+XKV2)sڶ'Յop(Bkѭ^JYnШSO(g}q|ݹ#4:r&dV_й|jxMn FQ!dFU5,*u" zEoPo->Lγ,r jȒ!eG-A9R.x!#I*eIvƊuIr){ZvxPY{wFwi{lZÿ#\ g{R)^l1ڕϽ[ ھ8o;)~NQx. (GcC%'<:X-y VxM; @PBP/zw~t"-Bݝ"!G!<`enm?OTV?1VđU$ե 6chL\&bkLH8G")-jmŠ%20c@*ϑxKn0DnOhqA# 2&{YDM&RIF&c(b3+_8WagrfKa&"s/+M|slx,| hD)nVsݳVe5Eó18e/X˕_Q(1=I=Lz@)Em)Qvۘ^GxKR E笂y̓vG"K397DR s"O[Q!CT 'Sa9B+H : `V5J1})s=[_9zz1u]zU*-#/L2/-Ao|}:þ|{;Sh @ 1 "hVJj)LcїxN0~WISB $\@۵h(vA}{ o^v[if=(yjb+6pD)BiȊ=i 8jDCCc1A ^yyqn3;xNN0WI|^! _+N#?`hZ |rgba^9GPK0VkX8_ftf$+ZuSdnm?syMjJw˗}ty@->}k-z~K_^y1-# B(nmiw=պ1&3ӭpL8_S+vA43Bb 1,l6w_xn wmCTU:T76% H}7Y f"qDT3*[.uفbrATJ(=fIf5$ |?Xpooׯ~pVIěX[P+ }Ӟ!zHwO%X P7wXÝJv.TvzOٿT:<2C͏x \;+vXgfuuj2v]ezxKN0D>EGI8d #oHv77U*u(ir1Di#THFqkBHCz*~ԺaT`;2䦘*Dx*o_LZx Nt[JqR1m)~3BArH!CO.F^'*ͭk, UO9箫jc~}7#wjsW޺y! K '7#Ԙ5[&H :RxQAn  kd` HJ`nߗegglIXaSD'2I܌֪^M%3n- X%G3R6)dB[`bL^-97ZU"~qosUq}Ŵ*Q)'Hjʮ1t?`y|y]<ǻn1Wr`  X Ã^ϨRU3!|iwh9ڏ9箫uA1\sSۖzڕ eK_z1M|jȉFL5ƅ8)xKn E笂yd=>AJ]b6};B`ѓQy@=")9QXgH_hoi#S-̴7RCH6\?-Z(m/S2J}6~׼=siOѿ{.E16}X3~vƴ1?jcQ~`Zy j0 <! @1.X'~YoUxMN 笂i{)R^yq BŁ;Lk/FOtƒr ]jtpX(5IzaPTʪˬL 1<=R(_=gcGoqcty* t[k/g-:=cؾ~aWuzc18Q3߄ F"`X-!j:,.u0xPj0+ld=PJ B!+$̰9ZZ"''DFE<B[]ª B;Th;!G4dYo[7WwdxIM~I[}+F!PH 'lÚ.ҿk.BVA=0Rs Oq;sX6~9Oݾ[y-~+FcIP Fqv`?|yxKn E笂yd3<UUJ]y1X4KA~GUDjQ 7Z~ OFhdws/;PDذ`bts$qv-UL~rnBR_۸ fx붶#Xs(7vHIkyIp5lݒ-~7>Fw )NEow`k[.GߋOPsM a}:"چL>zqOveӞm[z8rO&08\/`uQ9lJYI<:]xAr EEp*ls`:V,?z{WFA8!yPyh5b; ֫΢RYцВ&sȚ[be?+|/Os:y?@ak]:9A9ƥV_%cš}X  W86S]r*o@G9.By&z4i9-o[iǦGy*jrP8JJ7uCkVm[xAK0/NҦI "zOI7MJ*{\{o񘒈tJXg c0d;;QK6L y)qN#2s^1K%o?bƵD~T8󲢿s}7K c֒y߶ wF\V,>c/M '^!m+ǘ_nB[ۖZwmKY(k)@ahFSL2i%^x0{?Ŕ*ΏhĐ8eߞSi)>DQw|: !!(zq!u7N([V:;+3eO1PJT}QOa] ^(j} vfPFp0o[(aw eO/%??^ ѱ%VP.P"c@?-% E16t`|]116R[ܗiN  Gn⦤k$4qSMWWu]?Ցxj0DK+E!KWI%UÔtTX޻ 2 A0`vJ@6R0a\R+Ac0RQ;u:.ps͕[ykh:B+#0pUT |>{JXn3TS94&?f xڴvӯr[-wuܕXW&)39(XF6f1HmВ3~3xj >!9P@.j hPз z6JtRNyP{@J!x,] -!5*4s`傝qLYլ5'Ѷ\k 1/D_lGd{?|3E\sE/Џ[ #ᗷHfS #ò:Bކ}ҮZ4u7d\⏟bzɞgW#}P*R @ ͬC 2v>xRM0W̉IiH{&vd;_4Pn̼7ytT,uRbIc, SެY䶤yEdh-JZlN"Ǽ(Q2֬eYL“Bk1~DT!^m<ߡvijt&{$-ܐ%&y ~b(Ӌ ȽYSBN<'k;:gYz 2l?O <.}սLa<ˈUbEad~SF{j1*s$iOQJjNYYfl;WbVmZy;-͡\S2YmL=v?36ܼ0z`p2\R'6q-ܸR-c.#)wxKj0D>E3`[B"[ӒMƒ }@ntu=kArQG XI{gsVλL4*<f/*0ꅶ&fgY\` f ϱ_f0)bZi5w[k nt=p s`)%.` \>}uPZ9t]_~::M 1!ǘΣ>cllc-gx|DɤgJlO8%D!x̔h xxKj0D:mBE Ч%Ē5!}4 ZG_Wʙ4F4^X#R+\کh[#!$mm8+ruSc駔gcqN}j?n\-j 81™lC|6/5xkxPj }IR --bBW l۷= :9 Ԃ|PN#3;g-ϣf\+ a@3s>,R/ (v0[75;\l-B{o!3Ќ)ҸՊRF^-p<1'"͞{BHjw/-TbI P%İX`\el6xON {i ((x^4N38zz \8Ƅ'K>SF@..5KI _(XPgR\v!vx09#}o[.R\ YW}t oqm>Y0.8Y5/fi]c PUܢ|.!7 `׵="BlCHC\RvƐ/ҽ6wN<ԫS+~#LQ %J!E0#x/R }:~ўxMIn 󊾏lGQ4Q 08R~FQ~tUuUu+ރb׊+%A,5T 5gaO 4T8,IRvUxȜm>|g^jޒ%v}\-f{K_`*>֚2ܖ"h=<f+k>;qҠxGPPҰ+}uNSGcLf%>Y?&suzFVtgr&xVB `;`F,CK3A?xAn E* aTU#uQ&zf=L]?\<'1M8+hݠVN;cX %4ʋя('iI"[SL!/xOsW,[wÆںѽ'~ ;m>hK%3AZ= e=dWt > vtW TZXXjSY T|C!brx.[w{ތiʌ7J ;Jxj0 INcBObv[sa{ :*9'#SGu[oxǍIRkt.ꎣӲv;l8n& O@2 &ErEb3xQn0+$v$+*ZjڪI^h'DǬB O:=k4}FpYi" Bμx\ef^ L3 ]w)u: q3kξn#(C^|j»:H> wwިN w{k/cKASWL׆d<iXBHv]_j.r~Q9:o#}^ż+]rUi-lXUO HA~m{px;n E{VA?bgE&elcY%64HW(\2bPe*^5zMp4-ERK1ţ*:$6cO}+r6SX%sdXkzH8ϴcݾbf$Sg¦'ozp~}\╺ٽ|\[ז: BzkY O°Rq>(g$?`ʕxIn0 E:bE鲛(hG{[5\x6RJs[e ߋ`V)Lb yV;=yui\`[[hG}?vNS'Ho- -A9#8^ixMn F4 dTUMdPz#ԛɒ'HLh~(E4D{f9\ܨ5F%g` R8p w^gp1t|W<|~PΤ e߶Tj 6P(R^鼗ԾZ6ԟ<=ofw.6[/Ft<3,C1\j|%ǂі-->ׅ9n,m`2)ƮZrF~mz:xMn F}Ro A /~VZ b8G|1+ pUm3 nu}O( 挆H(#ճST@l\{ADߠBL}oao9P̥'֋tCk/2j-ZC!ym?-V5G9ar,o;ƑC# ^hO/AuI"<ɲZ:de¬MZXI4Un:L9*t;BaA$.ig1}Ftf>jӇȡG5t؃ 'Rm:Hܞ>{PS=A\:mn̕z{ړqqg@)O9 H9Rn:(]&yoX`7$'b}-hǷҭ/zZ3ÉT>~2zƿ,-LgG.YخQyC^=+i`[a.Fh><_+el@K ˗V*{>7|nv8Fڑu&h8{s*S']8\,z1K3فӪߎj` ;wH3F[Sgtݨ@%2( [BmZG-!b`#_ų) ( =>yTI\1]۠,gEYE6Ofa#>xKj1D:Ę%gL0x-4h@ne6h-F@T!IKJim)8n[,=\R2CS)4uľ6xo1 Qn <[}) ':DF)#Z=}V3n00{W*.08e4b//y۫|,Ő2-dNQ1҆+yzxJ0yGۤi""eL{mooԭ9pbrDQLclG :k גMmZ'AEtzP|YEs9Awq{SGx#V'LdOʮ+u|.UwoQJ*z!ኖ"63ӆ\ƒ۳+X|76Xo8W ~:xT+;ﲲc"oٖQ?`TFS|LT˙;3H{>fBbsNER:P8U|q=e !5KIjr-kA𣏕Q]юjTTlF.E'OxMn =`a??QUUw]bpPlI:V31Np$9FYS4f7(Te1lr! Q A07]BAOJe?_(W>% D~#,l[j9b_䔗1ƖD}d3?T%n+˯%k^e+{As$(p&a'@ƺ"lxN0}Y{(sw.5rYmڂ޷ f999#",'Ĥ43;3"r2zeh1 7\yZca/A![QG^}W1bqb7{*m.Uݻ'`Tw 2dnsƐxq+xW'׊y-AmX(p>3"5;o[)2EOY|Θ\UV_KJi ՋS/7;RШRMH(*2Z *ct'Q!0xN <k'\ZZ&Lb[B¡ClZ3o/+x6w6߹%s@wFOA 8L/M';-Y7Pt\ `bH~2~q?@dи\rN;O2q]})O z1~>}>P)Sq5`\,:c 5.B/$x{5O9_m[nbUP`kvcے}a]O8|(F'RWdhO0*Q/{fj匮Cxu5= ѓ@T w!X2Gzd$ mauۼFJ+!vFY+ueK-ZޣQ Ha=-'#S1.7*b vLXW T^T<GN*4qQ2 cH(yEaI<e)f"8yxNKJ1ݝwE:N&q M}({ 6G"lR2朶G(T BP|阭JB.W6a^hVGkoھ{ ~1c8[&g[3T2FS_kTƹQ9T >Z>#bYx< 5b^by9sۣ|܀`IP%Ĥla@&>Tzxx;n E{VA?ba~EѤIMy028^BnsOsOqH:f #h.f%!ڔ4X;փ bvH"@4*e4R _ɯ|ճ哂`Hz#$n[`#[ْt׃AR]sXy?~Rrv!1lP Bn@A^%xAn EQ QU4JDMBUo_ 咈@K5l쨽l46DGE ~B9+rbx%&xKbČ{Mo;[ [}-%=cJ y@8SB6ȯ%1ϣYܻRlc ܅ʅ3wޕt1IQMoc3~f(i{'xNIj0}le[EjyLƖ>!?H]j*$fp"8HLdlm?DIx/N]`6Jq ar뙇QY1[%oxi+^-v+TN7.Bt[Kυ=)NOk-95jL T J<ڶB,kiެ /9?]WUƴn\8rWn]IqA֍C95r@IM~4fT(~'x0{=Ŕ,%ے[҅@WgKFzٷ7eAqC,svPmtitP@L9aL*PrvC9>D_|;fwy|rrp m'[)Ď!&/YC>—֯?~q_o S@3 N̬Äk 7 B#?g &xS|TB&_h Gru}P5]4=5jmkxQ TsKIF:h?2ABCD_ ixMn } '!ʮˇyvPmlۗ |i$D zTrꬶ~rnv( c8n0*3=ը`W}L > aY~w--6SQz%^Em]C)u;# )[!̡|FVmflip;`}-?wKg4J1 K&?hc;=HA~ܩpx=n {NA{E{hpPll+dkfDjѩRɈ>F ;xC$;̍*?D;F7[="hG%"8VGR}X3*\r;\J[8+$lZΐ'ۉ=Q/PkGSc,MwzV׽/ V_pak?oe[9Ch ueq-8<7,ɸaTHA~'s=%xP0 +|f6I6yBh+!cmiR%yoxGx<AuISTvj2haQB#hV:@`$bTrTK,|37@ S pGJU&lSzBp >|~||xɦ+]$vH<cp7dYw<(1Vڼze7ۗ=+z(/Y$th-yTU\tRZOm[Px݄]9e[]6dz VB}_+JƚpJj9Q$A0Z'x=n {NA~`~WQGҥE>NifF "|8Zr0;QA8`\̍`KP*H: jV0( HX +LO˂m?~`lym; 5F;Copm]Sk)HpVSc,Mwz/bV/1}}ڷr5Z3adp=uQ_Cm xj >ďR^JBFfe j:]ffR|~ƌIQ(O ٴmVg zMyP?|PS6*)H;Ro-t)//({V|ۅ \MX7*E&FgBF8SIwRTU pmxU]O0}ϯ;J;_-&lijeC{tñ#)q7s{q%_9T8ɧ)JRR84PZ`Jԥ \8K(| Yp5EqRH4ńz)? %WtE(c:>,}q|R-w%d{.TT 9Yd }/ .kfBæ{+񸿲xoW0Dd*lͶ qwG1<X>};|GwsiƄ7 upPBm\Ub#c#n;$Fy ՁZV>Qjy&4Ll8l)5t!:Z %8i3A(QPU7ObBtxN9n0 (އR/Vl }"?4s3 "L[F0{PVZJ5>y"'.I]N+֣S(,-GQ*l/,[`}xlTp4BHzKyK m V# kt/.qQ γ67E>W'nyNnrxPj }+|_bƬF]JY(п0:&u N}3g8WD]LɴlAh*7vNh8W<:7HcCHZ?Z*Ke=o~'Ÿ2"S?s Q@j~`[/f\:' !cyC:-8Kkm |xA_<:?6R}q|ܥDIXPRXw5zwt)xj F} $NURzQ(} Ѡo_CtnpZ3<8ǒqDtr&]p`ҹeC4`HmsoyIEWuKO1ڼ=c BN5/2[:98C8_d)#B(miX }uMSOcLz%y:zʑ>@s A1a@iBp\HEzzxKj0EZC) ų$IJ*;pk&$ gL^Έ S o 3AI/hңTZ `qGOYg]2=}IFKl{%n>zoR*?&mƮ5EO*B?aHgŵv#ưJYR{?yY*GڹmP$pt DfnںiZ$zxKN0D>;Go'G77UԪ^cI6s,8 i0j;xL1N)+/ҀRl,!8TZc._6Z ~ʃoy=cĢZ 㿔wk9vgik>ኇ^Z_)HӼǃq4:^hqɕZsfY&˙l2)VwsxP1n y',6`NQtRHy@zκ,Q"?4;3hk&ꜛGOJ.ވQB,Hưf,r"EN{G=$xb==exRtb[J~ӷ_ ȅ(Ԍp V+K{yKgwqXm3VmBRah)_>xJ` m>| 'hъg:u|B͎U7Z d?9!vxNKj!{ C>B"!$} !7Hm^=V9B[ A;΂RܦwVa/`%cRK 6hoSo(2g_~r4n'2):Ǭ귎o!!S#O]ylH1c6l{= ,+6W)' NTVK)Us0@߆lx@xKj0D>Edc! d-%%c& қzU:Dk$PD%y9 Druo{A 1 %ǎ+(L&1fQᙗxA.OK7L/7_W`]/ԍ\+Wt9ӿUxAY08JXYw[o0 )& A<D3S}GSUN_^RZm[qx_n]8S}Omyfkqq'P}S m1U qk`|\QR&xMX=T|KƏfM#8|kLv{w(WhyDǡ᦭w0t+c|1sŽ 5B?n}i<2σ-)59ugm?L0(5- F'㨜Br%g y{xMn0 9S ?`TU#uQ۞ ?%aF}3zz,sD+ 9rK4OjZ-[)ף"30+jP#oVpљAu|\IQXo#,^UR[x˼62oʭ 0e~DK2\/0%{H к fU)a!/k^| a > }$q&.W+gP)4EճWuC7?RƽQqkrw]%-{HEs=([- $zR߾LܠZPG'(QAo/Yt:hqHrjf &5)8ruv37/\Nxk?U2<-;?/[ PZ)9Wx|{$"=H'pwL qs}>hC9G+'  +47nb71YkNy"&?׽hK+fRK5'|-Wok[W݄kkAJs /_؇s蠤8(hp GKP5iCH]C/@~?؂݀T , X]еp<3@M&W*jhڔܭ(޼wu5 C3 4\ L ׍N܏Z 䑙͟xA E-ۀ;Ѩ[YDӷ P&(6D;<`T+Vp'k@q('^'L 9q)q̥QjQ$$y4v'fv.C./ʷg[F wkqan5/0}L, cg֘#>!&p˱"W,'ꞹ+,>$| /qH˞\؁'—3c,ETju}H%^>xԁdZC(nf$=ӝv\ WezO㤥`?xKn Dh," 4ؚXۇYMWJUDճsI$Q'!MC 'FG!=O`2ɢ^) 'hKb.~ep)w e{KgC/#o1bOf2!ymkҾ/\DZ+w`8#97~I9AUV > >XՐRTƺ()//s_xQAn WI !VUUz;â vRP_<c\2"D $A%aFP5S;i\[nl*c,@Ŭ:3F#FZN6f0EQrI^3-]"]U[ ʯݒP2i4T6R_ĚgcЀ^Uۊnj*>EH;ć߽^-"ׂo)FKNkzsr:U;pm/jz }ɷx=qPJJtK%dj5 m~NxAj0 E9%llj3 eB)]'p vfB{jGʑtjVrv&#D,M$PL#T:8"NsG5uG^BH./x 'VR]/n1a{L TBrxRUq5gꝶp>^:GZWb,/pDcʭN7_ JHi9my݄~uHV{j[?/Lt` zd81Մv 99&xRN M5f>3./嶃B^jQW"G]Q7}%{(;ʂ#R5%Jj% m]u[2]wQ֠1Y6(d Yv'A1{cffo ǔ3\45Z`ϵί&r:Bk'Iy4!~8'c{ ,= ~g\|n6$%Xp!ghw!_% ؛ _-OqCLfF4ByBa9Cjȣ /˖EXUebuM[ʺ)7xN =WW cfccL\~ 0cނgs "^8u&׀F D{3Zs6j .F&%uk&tRa0N8:E.[ KAyJ Ҳ }Ϙ+[[by#Ӷ5'C^_#sHm+JScY 'zCS̿Z={[毳P*:J59=Zpf=XaS Yq2xj >Ũ4Rz]z)=7+M4e߾i_sfiO5j-W .D6W054ы `'X9JP5zX ;V.. ҧQS3BAH .r[ΐ\֏|~ҭܗ+ZK嫋iOccXG9.nݶU>[:; lbbBI$4 kchwe:xmk0 S}ɃK1Jok)Tb9ձ}97FK3O)8Ĥoz.X9G2-uيTLr2C*%mQ*)Du)2% }rv'k2'ͫ&9)!GgނȥuWeQ`]6# Zoc/=Ҷ UH$1yϲug|1ygd(+/I?B Jސ2++^)zTiz!xj0E 틣- Z.K=F-INWBgsa&GGuZԊiI-cR+ij!cZ0Iw\jcqZ5"CP}\ gQ~/;sظek-e Ԡ٬S`3X琕&uG0CZ9rU=|vB >W*o]J-!6CP9L Q˒P4$5w gm[IFuEF^SQ9gE˺/ȲڜxOn sVURz0%D@VߗU?\ȖD0f ǵYeTEX(* -7Ht6xT{6&=YP7 wĞm \=;jSO>ݾF 0hմF>0;zh+6JN,|H[}6Oils> Gz4rW&8pFVj0:3:C^.ڈErF~L'xN aaj57V7r_3\KqނKh|쮦&Xt'(.4%cɍGfopSSښqf-$g}_vVg-0 |[x1n ОSЯX`ҥ 0c`a6B7">Y5EiD@F&'#C9FuCA R.Dh0zc$-&Xx6">CZŠ1絶KƂΰX-Nο+G Zc/W؜8~xg_cùs /򵇓?:Cckۆޞ!5NIPK$q#RBFQ@nx=n SЯX0جhӤK3`i5kzgBAe 8ֆQq59rQDPJ[B* Pyp]qĝmͅ~oau%ϲ}sr?y.粼S{C A?o#yGzQ}y%,[c7->hZ=ݗ.ʼqTVz RQ 1 l()Ťd;D%옄 k3 D(8/[/X/>lմr\:SFP 3o{G.s?K~+-{BY.,=rs]/k{歮CGS- 3Mwq\J?Ypx̽n0OdOQt](]JkdC fff"{6h-I7 z@eF9Lr"i|a@'Aաa-ϙr&¿gQ*bym#VY~3luy>6+cl($ϾrfJvJGaK;۶#=n(uJNx^F#bu^Y##i>mx-Ʊ @ @% Sݲu ?K,QZ*&qֈNK't.=jA(1积ئ,=uέDXp)ilƂm_| #xn E| ȨFjn.*u ɠ&jt~\/l '7\*Lzz4Y@+`0ُrp**cr {k=@@nPGٰ{~b!=g(Qh!BSڶP+SR^R4[;EPIE3nT%.%6 /| Xwqu$R sxMN0>WnB@<nPoO f>hD$:-f&s'Ä\9jjI6[058^[4jFF~6JJϽwQrb E,n srR%DlYjT2 KLjaxy_aV~ 9LkwB]*xAn D} |QU{0NJ-=:yL+D\[ 66# '5-A˘ :vBqb5!lz 1xKA3QW;#k8ɕT'ib˱[kR#s9GnM,xo>iXy쇵9z}lʯIYn@I,AHAH)n2^?xAn E}x1QU%c`"c p_621&t瀵ֆYTbnrD(T5#4 '$h*".<|ܷ2KT9u]Z{LKMX-Ж-W!ļn("Fs|ga39sT\̤ՔLF]aϭWMyGy1#)ucӶKsk\16/]U,/K9:N]iq9om@5)! '0l7g?^(xKn C7&7n<a!ojS*QJIz4цRƘt"J*mbXim8ri9 P`.ҦƔ/ųʿ0.G9}'J},o2FώclpÌv/bKG]}?ĴEzTjzZyk ! 0J|3Q{#]ݛxKj0D:GݲCd}l&,s= i '6kJ'6ӐRVIHrKE|U\a0j0(QOҏVC׷tyj~֠HoЏLۺ.VkzJ^J..)vn\59믎w`y+k,'rjRExCJAjcG-9_hxPIj0MfICs|B兌%#Ɂ>C~SWB%2Lx/FG6R8֓ t&!V138<LYUFTrgQzOYה=%Hk-vo. ^-OPDĈ\uC}56.@ӕ8RP/NpR^`9gj{o',[w ^JYPDۧ<ijp MTxj>׍R9(FCAe7ϓTp%%xKn =`?0YT]TU`b&/KoC:kIA*Ö9 uS h7`40,G,ˌ7B%]8r)B"ja_9oa7_ey㊧8bMsnt_Rzڶ鞹r8Z]/ˏy;kLjQc+ȉ[)@N N@ &zHj)rvxAj0 E>C&㡔Y^BLhi7@!_D7Zz:`urpqV"ENSgC & *=AQ[tގe)y}#_4J0zJ^pۺΥ"&IWvYwv)Bi.MK{VNN\xois;|[?7eQj06#4 k3hr™xn w=rŀ*Cա -.}:ҹg/hm@Ydf1VN(nOK5NJfL%L-OӞ,d/os]Z9oy~Ŕ% 9'rrۺZh߷'$mjO kRAͱv;u.S)K<'xZ~;~>@}-}])Lb(avd-] ԨvxP;n0u 큢mEE/sڒO_A H5'EX"h$saQJP<:!w3j^(y6(%qg RضϹe]K]1glL1@{={}lgjdК:iL/=nfx4]h=ѵԝ:Ih< 2Mpf S2Mbz>xrk xN0E /A%8cB*+PM+~L҈ĎlI͜s VM% T3R7 aDވlR]"mMj,p-khLcM)`W< <d;qCB(@] jIVLf8)d{l$%/7EY</9OJ&o˯~~篏,˺>ݐebacUUzb M_ޠ_!HR0jƉFfnPwHGFg9*3u= t )t$-/>~DzD^-}wAgĸk5[ >R3%!kS&ϾI9vNGaoyK;oymk>Qk-BP4B04yc]YPixn D|Bޗ,86X__eF#VTYK^pI!b$WM0cF WgPZFírorheǹ\(8ڕwO.}y\~G_Rxr.Fp&1Yg':2vsgxKn D|Q"(\c?InSIZ!6z&"ŐvFGB`c;ZB:lvDРMI9 K/r_9+ΰ-[ް!ęN ǔ(1Ʃ)ٗZ7)O+>MOzF}r"[9֯R(;'AQ V䜬[kГx;n0wB{[ "k=cԖ =z: ʅ~{M 䥐. dɒ&,SQFEmk*ONe4VH^hCZZ'菽?~wc]_#~Yq^W47  Ba߶o|}y}>F陮sO3ӹAq4:uugLJ3VkLη@:Fq~KggNxAn EQ&@QUͺ'phB骇/ޠ/o˵xJHRN:Nj4|V7J.G3AxRl Gm80ZRƊQZB5K4*FguT=՝5 qZZp6l)Z GN`9,\%B)ruc!ںnro6zn}>lQӾ}%ι,AaƱ%LeqJ;h%8p}xxOK0K6o"^LӒެ~27{:K٤Č3ӌimF$>U`g%\0j=zNY 1lj=m/GfϹ[ģj`3q`]XtBVfyКxMn FQ&@BQUͺ%L h^L{z=%y, #$z+Al148|,`W 9HOH9;j1q$۶b"x6ب둖wORFK6l>}-[ ‰oH73 'ز.n}}qĚ?{Z $jg\km;DeQ1_5`9? 5AX9wN^}i׹Ы=nm>̵CoGy!#J5w'J <0nfmxn D|fK Y1K>iэ 4II&Tۓ)U֓ Q gpq08T01WShv[yFcMl޷mbP~xl9z}[kjWK[ڕԭʛ_Jy^h/ɿw,ftE,I|tDv;0u:;b X7-jkx;r U{. ^LU4 .!& dӜzKJ4Z]@8N\@Z҃lR:FD@AJFmFA8k%"}kC\+>"}ir-R0zTn8Gº,o|KOGaN;oWBH.ߕx_} Y\i>{8mmۇe_w΅Uj`Ŧ)*c4JplSx;n SЯy*J&~FYc ?2L1z/)Ym*I* RML%@X;fDϣpZEeA1 ^KGpuoZ|{go-m\io}tZA~߶{7K(1`xv\jƀ]B(NJJѷ\<֔+מ~xpͽ]7k(7J˨#taG%I)HmВ3_l*xj0{}Ed=E mHR+-I^ؿ_if "[Abp&)u>b>d pq`nsQBqꐄ4hwVnj z`˂e?alynKrAj Hun ![Y߶pn%LscO캭LO {ѷr5Zg0p`փb)Ee(nxN <{Ô^(cfatgNLqC@f|z;g%$D: $VV:c:a( ph7`m'CT+͠M^)&1%d+fW |I|taΛUJ(z7!Ͼ x|||sO3ZNH^L)Θb|1-Dd$1>B}ay f 79Un zxj K.8Wzs5nuRQ)no9g[٫z;/ Нx=n SЯXƆUm.M <~l8Rn|T3|#Hu['0G@R&DN%mD E9X#w)ؠ7 bou H~[IuÖ;29̯nS~k0k5`);'_Ӗy59Uqdƒszأƽ}?y+kW˙r(Epzah1MAƪQKd;isx;n0 D{}(El.Mn c YK$'9~{L1|Ĵ=̂/R/fF%YȔTT[=OFjq8L񩁟,sMЎ3d U0gm>Lq^bȇ.'swZ~[ye}O 3ؼ5سr'P )RB(GJB ՋU|u0xKn E笂y*R7u!j$Rv_[s&g4̵Iqg.Esa"n-]2!1)3TTQ`W!*|R{{m5 _O3?]^WoJ'뫖)wZm>c(mc?3V82ZFkeBK? ?~Pzд7ն2]ʣةN6:ڣ|_9Z`-8F)b9IΈl&)Y{ֳhrSxAn Eb1 &U HusVA 8z3Rtڣrb0N24Ym`ԣI-ܨ 3k@I~ \3b)HX+m\Y^|Ti;pƤ0F);qz?5 B>|n<:oۃ^.Bh':n>鏻)nڵrKBsЂ31(E g#e3:!^{/ɂ̐xMn 0YuI$$QoPo޳%r͈Tj`3jk;)D@NȘ*RI!Fc$eaeB#PqGY#{t+dOr+n;GӏےݑO*8酷"X+@Ǡ!hh Ji݆_kLKGYbe'说饔uK7T*=g#} !瑶p-L[>$rxAn D} "uW|p`ut64Ҍ"29,'aIKS^TlS7E. =[i0kZ1<#oqB-%-G:5 Q 8\޶53R9p?rj%]˥2Ɩu;u+Z?$|_Q{/l}+Gzޅz y``ЙTaRRlrxKn Dcc (u 4+$׏'AjSO%ի#x@Gɻh؁-iFQ F0  VLvgHcu]0--k+!eqmKoo!P5L%0vkpg_Jy~[txSyZIF΂pP :a%oxPn + UU[J= U,ffG[s܀rRG=ItnzfBfa +C~p6M- Fkl-mM3SL GI( 6ln7VNe!XJs.|ry"ز.n/!:->nUcWu_vH>.܀h4H`1`B{Ms %FcC!8, AD~܌jtrvz8 }{۶BA5ذQW*8Rh!}_[ FƃY?ZDzЎR !ڦot֏c#] O3%<+[Vz !-\:k'/cZ=RB3;f#^apxIn0 E:(.z ŤödhHioPn fD0/#X\owVIb!+E@Yi$:q807K5>Rzm]gmK+rIyzsuF+zǐ1m\+{@WZeaʙ[)Ҍ[z"<$'_Z{;u9lGagv{YG#ISr0n0h68[oxKn }DDUm^T,9|i^c6j^E0{iXꜲF iK@1wl7LYg!7nQUsi@!;Tesl[5oe ]K]1P*p 3ȗ}O GN= ?cmd\|5uҞpg_Z{ܦKiͣxL8ڴO}`Rc̀Y)b:BP2;*ɲgõd~mxN0{??V%! ;N JJZN3SLv\S{8JpDaAhRŃ{/39=XC蘰zPa9@vӚK]xqmH̷55!cFЊwL=uYb zZ>a>57 ~ !C`Bhk"џS)ӹmkd5?ގi/n[iǣּ c\P8\KI ЎQIWs z xPj0+גlYRB9ɡ$kdFoٿ/\`{(!70ZN)Õ[83h}l3 #nLk9)j;J^6Q-3;k/S3| vM7|˜ƃO 8oz-e/|D2}s5_/*y~e?!@!HoCW;,Lׄtctww`JlT#lJc#ɹxa{&걨ղN)P/ e?<뺠aM_\0ۖUSI)RR@W ۊW)VR?|עxMn0>a࿨mUo00Xl7ioзyCF'`=N6kuDَ;吪$7x0ueC@7QQo[_t>eY-u>yDy%Ou G5"#%!kS|>rs휎RҾv|V!(gLz ibmV(~jUxKN0D>C&؎B#X p3m'P.U_wk=R`L2 4xEGr$Z)(BL{Os#4aRiH&%T*zVo1W~^ں.*[|%-s& O mKs~#=Zc*X/$gj!4/+_[T;AϡRR*[B$b 0q&FxB4qxKn }Dx|DUnzcp9BW3^s刃ބ\h5%ctGRlO5` P&Ep osr8"KGlPZgS i=[޹0:*_q[}mߩ΍16]Ut'/=nRvZ\.Ӿ79muB཈ V8Q 9 Ѡӊ0I^5xMn }Dx_;J9aǪ-=:63L+)=HӨ\@)#^[C`G()7L1@QѤGZɏ X8k/Aa߉:~o/e:/mkk) ϯgGm/emfҍwIy앵Cr&[9^!91"L ۬g~Yq^ʟxMn }D*==;VdlaO#H*ט-eF).c2&ƓϚRi|ztM\,hi9ouPqoP(bkxF^xMn #l~UUJ pHkcn9Bg}1 F2x;FrzC4LKq)AP)TZێ9 a0:$V)Û3\8OvLyz(s-{ؘ9JkK|@]cGVj?#!.܍ kNHc)֦,M'y(zjݎbWOoRimvڧۚ9 ZpFf96ơlBRRpmݒxAn E}xMw=pPb@G=~z?_v)JAڙsaBE'+ZX'RS6,sPLαH83# Inyl˻%5缯iMOЇ,ybk.S W:#xZJi17Zr9ZNBPiBj]ƱyMucoP/)k޷G_Aq*Shl|NJl,>¼Mզ^+D\IoVDIcHOvr]E$b+5d *xD9 rVCW:@-@ y]{4z? Vؼ~awyunysc{\ֱc{?A0J pCiH)NX'*dxKn c(& xĀ0ڼ >(Q)bR -ȅT0w a 9=*oNɩdgcՄC2ğU~ 5w*Y71F[wԳp^2)B֭7->8^·|ďZRPZ6KR0a)En(Iecx1n E{NAbfE&eZ8~#75G41DR&iM'VĐj*[ }L(l uEӠY8k?/{ Q5)ETJ$Y;Ha}'sٯUVJC<.cVkm߸>F-t6BeLOt/1vu.LΎ6W6^^w^xjጙ<80z9i뼴Zpdxn D|# 6Jπv`N~}I󴣝@aDWD-JhI 9I&76(HL =rPIxg9yN^1+W|r4GD{8TDv뺔Bb2W`%=ZxKρ nuKNQc0w%|8p{)116/,U9_]W}{rWB[g-wsLkW>O aV1]F;4y9jӏRpxKj0EZAߒC)RJg#jKFRRB.VBAuXO(텗)e9gԠ )8B;eȹ'3ϔ9` SHr٪毘J+W-k(﩮i+SlFZd.U6 ̫QFkZ8:ͽJڣ1j9^ʮͦ3FJ ;vL8蝖k=]c谮1xLq> wƦ9QL[ =bRt!Xt #9xB =DKPjtW/= Z!t8Ctz?f=: i-qv(oN?MG\r,ԶU)ϯ^Vo[i-=|PDZ$a+S堎 #]xj0sC.M^K,K)[r-XyEmH}( D>FHrr±B ܌J';MAka$*Q5>F&vp pQTPnY~lOS\?qR#/鰮.g?h4x#ye_ƸO0v/BcX Xg[ L1da%˴o6P*z7Bet=0ft3G(1K:!﹞2m5n[ZkFfP*.w뇱-F7\zwxMn }Dr.<[@Bg3b4M+{=NB1-FrST*2:H -9\ܨR1+ۣU< 7qv HX 'V.+ҷUs,Ir.@"m5_ o./hiFc5TBȒRZoat^;eaɏqa6+p\LZ3 3.sbNv4JqFx=k0w Aև%Y :.%t('GĖe-psoHK9XWkFn:;x!`Vhn+լ6ChTnӭN#e;'ll쥞RF9BAj<zZo o)>?#ctG6Kj4G;RI4QbYՔ5s#?CkgaiPqF=Ӟ)6dRa%v] /|`Q†S(Qtc}xn <* i^`ӎ@LR~ldwOk{k3,5 #Lr0 0(LXQAhF5k1҉S9 ˖{|ޡp7a]?GB;_jh - SA 3~;+Bmm-O8Mi"6`B, \m*Bh {$a>V\}ߨ[鶼|sĽޤTe˷=^OʑaJҎh %~҃8C_ LMxn <#,6`GU^r%OJ}G^f4'mD'ay$="G4ΡUJF dJhpJ2J( ' %\2sǖÛn} /.8oyyyn%1NsۺZ_%vۖ?JPc}R?1}ۍTruˌ%֮|. 4=}s%m7^1uE-InFn;^M./4Z dpmBxn! w[wQUeNg.7܏Kշ/Qjɲ쒈@ـZ][[ 1Zt!"ajDsjQ>hLo+vQTiDjr[\^s^8i/;WtX ]5D,,4B7ۘ.-PD=O}@H Aq.Kk;06!>'u$DKubQUY(s`J;#JzymX}TمxKn DȦ`FQ4c>kdl!WzȃwitIFetkIhZH*QܸZYF1̤LL̋‰l2w(+#k<ɭ%B z?}k-~bۑ90Jغa wV.Dqx)yVe\@ LӬ`0/@CJl "Y\x9n0D{-.f+wir._H:#_!ӼL#K8I*=F(M.Lɍ.4FIv_t@Gf)h4Zsn,:B@)RH/[_j 1m?iy΍f+8#$n{-B-`̰;΄9wھ O-a8<}p\ Vסgr&#8Vk8 QӔN%8 Eo3x;n {NAby*JMn𛇍c p> ff 9A$A( [g_?_Qs_ | |V\y򎝛\3|cCۖ{W.{ !NO!9<[kґKkt ׍z'gR)lgjMg3agL2IGphqx?O0w*'!ԥbbC0 N6v8-WlrwO:y/l|$je'{͵2l jʕ@[9):b,R[>/>"W|WYs= X;AŜ}<4``| ՗-jp)J6o)w0mb`s|Kݺ)TOA1M7n.ZJN{iˀJ+\ 9s!)[~x;r {NAy'qMnK 4W65no)ᨹML,$/R'@$53]KD+é(%-!๧IXξֆrX]徒 c)絶厭) _`m_=s]Ox\Jz!.$}96MKqOciܾR6vkF  xdr-E2lIx;n E{VA<| S4d|m+1Xgm!S̜+Mo)Q⠣!~DFFm!kt*qg!+4>ϒL]}~mau-ҏ}kq??rj[(a9}1$}zO'1HC-Ua%,[goa[ӑ/ާim)i{4gO㜖|?8Hj͐g0>¬gcQYpjQxOn0+f6 \@Q.Ү"u,2x 62U겳99sI.1T9ZL\$(!^QhMVѧo[$`8Ԇ)b(ֈ7r\9DxVy &|K9Rm˚{dٔW{^Yb׿&X~aoB|xL'M_z053 R0bXJ,$iFܤ>"pn|VB&=d߶ɫ2ƫ[µRUS~Jqק6m(+dM^jZv1Bkjd奖xKn Dc|GQ4d3x\?{DxzHAi.LBFsas6 F-Z $ )&tD똑ed ?k/F? 9Թ)ᔤ7֏}ۖ_!丞JߐeB ' Byh!P;ɥzJ3ɍf+{/=j4zzzأ>֝~606|θ|\=ScH 44U"?4/|-JҶt>nmsQP !$ε+㍶1=wNfm԰1muOG~8qTg\=BnF9h#ɑO(k x;n0{!kIkӤYʄ#JC!4T8-|J@b&A3cQhJ;eds;F &3'kc`1䒴QqG{;nuߩ܂ .Kn /|W.q}њR7 Ge/4o$̹ 9hm]6Fmu$8bG?k#S>>s4JE6q]VW=j[@]\Xa#1ƦoR&DY}h3&1Q#Q*j0;%}Rvp gxn D|zH/*m{@Xl NşнFM^ (IuGTx SRw[<8m-v9CA)VrN(uWxv/ž].ڿ1\N(,ǮqƜ_!9ع9 ?GB~_ `Ht)މ&k{ G|=11W>W?CCJù;k.S˒>SmpD#A R–c*/6?m3yǛxKn E笂ylJ&g`W,wrVx7Q 9K.*У)!G\ܸ3 Ơ4֫H ޞkEԏZO1_9eIѿN#?B5?w53Ժz.?yyӮsv3^m۶kYV#Jabt(^n#A?cvx;n0D{Ak)KKN.MnID,J ?2͛f$#3x Fy gobrH@6I;';|e+;%E}[槗o%9׭&q8#߽ܶ>xZO B95UJ.O^j]]wytvV֮#B^3-geq2YmrY1)D.[VHJa *P9.x %_#׽-ٙYe9Z1"Xp?k!'/?oN.?η>AqtuwjlgjMg0)%Nv^xMn }D3*T1 8VcWK̷fzjЊ0 ZF@ MP!EpXc#CYBpho'8I89gJ?3oU5RwǏm<}zWnOe~[;tBȺu~2q>f|!ԝzﻷ`SR(y)f&&)°q3J?nb~xKn E笂yJ'A+2 Y&Lޑh1 D%&e#2v%QkqN[@u--aI&pWRޓ@9>b15CŝBi7rm:]lO}0~ kihw= Tqf#E; ,^(ԓ?qxP;n0u 큢/( E,>~Z6d@o_ B.$A6MH$8]t2fs2%RT`SVhm31c 5 eBj Vpξl g+}!>3~kz^6c^[/lm]KQ(%;Bh.?|Ã/DZ(:xi:>4A筭>q&&1s S&Y[7cdfxx;n0wzX(2ݲX2$%\\ȅ^C„S3CbR;Oq,SRqbfakLvrfsjUR ȅ̋38Ͼ ?mzofWXNd><16{HQ+B^ky48# BhMW_`2M#lߘwpL8ڴO>&%LK % &3%X/DPp%Erx;n E{VA?bx`EQ4Q60%fxۜӜ LH$8P ؎j秣#")nrC3y@MG_?˴`K޶?nm~+0h/pMۺ=*Pbͥ㷊n8]<::Vۣ~}V"(FG0"d3Z?Cd x9n0D{ADA"H&9&HrW4y#'cMTpMJhJ1B4 55ٰҩmB qCJR4FsRiF_r_Z[K}.ǵZdzg{ݓFu{=\˕2rѳ/܆\zpjm֡mq^ [@Ȅ(V ΃vq$gCx;n0wB{XPtR֒!\o!VcN /{#3IFBG`XcnTZ7&H(-jeF'MOg[J_^׶o%O/5m9RW:YQ(E|ٶ>:"=L=?LƎGfkўXn:g|n>yG~ sꙿ I Vk6 3b)e4 lvxLKn s 1*nr>i-{+tfUDjp\9ѡ>XAΣ8:Mv_4";+`0r(hNg_Kٗ[?ռާr^:SgF^xۺ./nቱW0,Ix[~6G_pX*2F-IpT-ۣo3CTcܺ\pRi_m*!a7vmKk_!Z+.Zၿ1A}[ 6L!dZ?. :_˔ܫlֆ{vS.[ʑ7-#8r6RsF)cPf(tsx9n0{AsW#\"7$)PTrWH5<=%B` I:^夘@^ z33 )"`}2zSvRD0R)XZ_%,#~e,[K}ǵ;c0|9PhZHgť O%%˾/7JOyQضέt>sLX&9#3ErX7%8UfUx=n {NAb[EQ4Q.gq>+do-gl0G'8 :ƃv**~8{+}f!5|'pOmz^{#-3$RzWIFJgOe%ٗ}otjxOö|Z{;nΧԂa^A Fbye5Hc{xKn E笂yDJ XgK蝜391cdIm,`rr \4,Yh -R(etFi˽TdHVA:= Gֆ),7_}Zkm7RH/l A]奾3NJtÃ}(vpNFötmnV ΄3x"a3"ӤjrK]xIn D#ڀ܊^De| JUj0:Ŝ2BuYZ*RR]]w ߻ZQ . ׂ3a)E3:F# hx;n E{VA?b|GQ4E)EaG3qf ==m5Fl \ mJFFq}+ISRF#WA8F'x5WM+@?VGN }I5:pz2}Zݓ4gZ0'=K !n80t. _yX,\3=IN&HzPl2֍F N2g3xAn D}D ؀*R Qbưż^CB윚8Fkco#!w @gƠ4#mtҟHj+vY{"}q/S;Y5^eRQj )g)ܥ6BȒ:k%ѳ/a8dx8孇}pކmȏRR# gňv4J [JnLx1n {NAb  h(R4>1 ^!yHMg-F,&)*X;9N*4̝ ? .j@o8rɵ4R%L4ca"p4Zm Q2Fvq-m~Nif4ϑPm듯Da>v%kg35}_npux8{:@0 qN jNs{ƕzYJQF ܽl x;N0D{?+ pcAvӼih1BόRz,3ia:$1p뀄K)-v188 (t2B'!=Ǻ7Qj[o[WSK= 7+/x}{S#Qj~2Pޖekzejb/yo2Y?%j)!! FaR BiÔ milx1n D{NAb`UmK6J-^!kLo)q'Hj=QFrB$lj.(І!d֘`d]̌},B-V">hz*Dz㺵{@=6mZzOW%E\8~(Ͼr\)?YCGO}?伵Uwph7+9u~)@cxP]n {{i = EMRW_lɲ-Uaf a9%V8EXSłS\8JWNT蠴 [b7߾fHc|6sz]Yb,)lQ !?l:x[j0Dld,"dd9tUa` 3Y굠r&Qx%fd|LYTR&J <Ӛ 3t |F7P2K&eD`vR" dSD$׽АW^җR׽-OYN o[='_KBBR:;++x/88wmV  &͠g^Y-Ycx;n0wB{=PtR[$P.G&J(MMV5Xi|u`xZ:\ RHN>Oo 2f7ᏖǴڦO줱i-B.KGϚjܗvYVprGMe^IIw|NAi6귭ө2a#8Vk8 IΈ LӑQ?mjxAn E}D@ETuMo`[׹B{q `"yx'5JOc*L&^@ЃuTsG[r_kX\AQֶOsr?%n9\6j2JNЋ8C¶w<c[iʿ!s㍞}imq~u.%z1?ݾ7>ouyWHj$#&^(RTNQ9zhxOKn s #OQU͢ꮛx!h&$"/szc˖-UD:{p HШdQ)T &sj2j L OlVw H?kn xFVyjzn0V":H5퓟ӯXN1\4;~ F;_cq5x-4GÝþx;n E{VA?b(ҥl[dzs`iN)Zʢ Ä:c!;"E]wb¨"P"gM :mk=ї^׭ϯNs$mZɨ/!d?FO^cq~unLϛc|GPP9RD&,DaY)J?bx=n {NAb`ZmJac ?2͌4VS.XunI#ILv4jU|( Qb0 6o~-5}^y^xEm]cIs߷![o8=]/+=Z9ճ|? hIabp2/E`\ 8?Aiēx1n {NA†XEV)\쏍v =+53ͼ^F焅`T ȭ iAP#;[a,h&j>hp?V*NsyyЏ<{˷-cRNe7~eS|:wKk. !kꬽ3K˝^a~(uqgx8ڸFNԀ`9Jpf,E /X^fix Ż 0P%t B+*&`D("R y}^UV]Iw( yU_-Ej,1TH pa*ĎNG ci &XxN <l@ƘoAЖ҆e_d@M'*DqFQk3J Ɇ9RA)/%S9Xs[;xo4'xi Dؿ gyX.c:YfUIFln̘\ ŧ6]Rj'$Fr,5Nh@p({u - Ǒ9{ #zͤ8Wk|]G +™ghym_;"HIdo6 =]c啇NrC<>r!XqFF-D[*HPڌJp~FrHxAn D#6`ʢꮛF׹Bg3#Ik0-a:#7V+Iz vF(՘;,r/HTnH@X 9s oooJ}͏k;ɠpS̗}OY)Gt3֖J0y{f N݆L5z<wmXK݇^箴Hr֚@>/8QPfQR?lxKn DQ".(h>caBJ%UmIj;6zpF+1EP=H6fvym1gؐ=xmgfAm['Xz^:T~pEu-Ki-wϾJ*91Ʀ񻊒n8曔]gtKCN[]d}Ug[ BZ GA?cx9n0{As pK\% GB^3-g z"VCJҦ(B oyT pbNS@AYbP ?6Y[}.;їV׵zH\ۓ~2t'/>8?:.?G{۶qm3Xwc-RP`-C)Z AVJ2ppFIe'xMn }D 6xQeQuM{~[u'k 6PBt. HlJQi{ MZH&k9hF6q5:I|9QD)qyuY.*ۑ3clӍ}u']_wqou~n\ҵz隣8JZJ!iDɀLg֛x9n0D{AsߌpaK\$%PT>2,śR9LTAJgBh?VFT;^&p\Ȳ*JHfhgV6㼶銽L( >!e)_T:*)G}P:yB_¶tZB{; ΄3x)Έ{0Mr:/uc x;n {NA^EQirmm =+d#:$'.Ahe22%*V:khK*0]dnb&%τ351A%//lk_7Z7ූc.PДjkSל+ob#_3Bh^;_OrǓyx=n#l>ε屷<RId"QG`G%I)Hm,rb/mx9n0D{Aj ܀G@QrW4yŌDe&MOA4EY7^6Sr@̙31JpNy028rǘ׎j]1 ksK;k/ 0 Aa]:F=֞񷶂 !T O#5ٗ}ot-ͽ,/qinvZ־яK%5֜o(E,O@0 ƃ$9G fxKn }DUUVuQj0Ķf1b҂ AӠ; J'˴ݶX:;78nN9T$ v HI?ٳWjZoo-mږwl2 Bn[=Gm-sI[Wώ?c;r-b@-YH7}?m,;(Pxr1:B%D; $6bpx;n E{VA?bx`h(](QbladzT4M`(4#(YQ-4&=j `N(AY҆D}o#ķD-/ϩ׵M+ r~범>*`"Ln˾7ON53wxضOk[xoG~j5Rt0/`d07f9'mdfx;n E{VA?b |<)TI{6,#el!9U"nPOd!ԃ !c<*ƥuN#*0N:I% >B ʿ,"-3[Kk+;z?8/5>J)852E?˭N9J# cV1lxN0{?O|B$54$'r+0͌VF[K G5AYЃֈ80rmd\O6,!WPs)p8Ɍq*FMSNkGXڏZa C[N8tJ['oxFHהko=Gԝz}V6qP6-dl"L33gm1x=n0wB{YvP)PtIKlsZ)2 z Q-LH&HGK_KK'KM}ǵ镏j1X(뺴goD8pjlK||[N>;B:|s(RWM4R |3}:=o7m:wÆ3Vk)%)c03 b}akE[DҤHF 2͌45G3J.qc+-V"z1Yk;5<ܠ JԳQ9c)~Q˒[KW)7㍟&IשS}<3{KmEz:pw9@ BP&pd{x1n D{NAb-tiro(10) foz#q 8QAC}rbF :z" ؎j:j!y  zl`Ko[_Z^s}\60`q_ ۺ>%2SEI7~8']O9:Vۣ~ݭS{@Ή`0(V䜬V+{drx=n {NAbyVQE.Mnl[{L3|3s:Hqr &i,SQR$pt6FCsT`z-d uƂ1PT! 1:-'XG޶}eqJF8Em]<5B:XM7z8g-P+3y@!0ARK?{b;x;N0E{7Bh DGq"ǃlۜӜ;zT@,a P@k! cLl Iv *FK%sG=Rhgge/Dc:q{ca߶߉n}~`w:M/ۺ1{2j%u㧱n8]9F9筯|G['5;@ ,+%ɃRdxKn  (E](7h~510s^EU)q]V|1at AmTSi<|~>;G AP{(EhZ&׹MZ;򗚗XZWzmVJ˙e[KgMccsOss/>ݤ<:zOgkoim׺Vk AYcCza=hsԃuݠ?f8xPn + @jve@ڐ~}|/eHQ@9Z'q ET8hgY}Ҩ I0w" FX$~oRO@jn ~]jzNiz,[[%%P}:Fl^p_muݡ3Q5\;[:wq׆[:H59Gƕ- mx9n0{A7#\A47(rWkf7HMAL.& L>>؀ٰ)h}2ɨy镐rF:1QkB@O3@?[3FV|r-S7*F$9e)-V\"{/58RBrl=yi\|9?{my^{;4(jifN`n0J .=kܒx;n0D{A5@tir.%> ?2L33 (a$RD"rETl`Bo4Ԥbr4 $~TNF38ڼqB6om'2.i=[y4Gy,>>*rKic9Tؔt_jo]w‹I-{,]+[#ZIQAHb{obmx=n {NAb(HQ48EN2L}^C3`@y¨$s2qQkJ|'Q8AM 6*JJ:#=UVO?j V췧/5TV+5B 2o{ɛVC˿$#!$Oa֖ٗ0뚊}{8խ}ކu()F3i%j39Bk x;n D{NAbXE*ҥ hc@sxsL3Ӽ=F$#SH[㌏BS&Q*ȵp LI:ȘP AJK 6P>9'5cnï7ynZw/=WhTj 9|ǵ6 s$m[G-2FO^cq~u>7;~wcPRPR(g-C)Z 0dFI"bxPn  #@֥t Կ/ b[=*IH68E%FtJ V1Ydw5F`JBxiLhFζl~永涰޶⾑Դr^:R9L#@ ۺ+/!d΍?eΗXnwu{Vŝ}?Օz]k l&LV=d xIn0 E:bҖL)(7eC{*W(#Dp0{p=MH;"vSNP^[u?H/D `I5jDfϺ~9E|Z'=OsNum~6۶go!k,uM3/&ؼVQ~XÍ{)eu]YKGgt󞷮3}?҆S( ځi3igdx9n0{AH#\/PT>f^ohD2cHj-V\ШFVNe(%G$Lޛ`C88K$gMSh'ۺL_q9k_fAы8G:ϵߞ|Kkgjѓ}nvLϛmv,1AZAD&40 1y5 idnx1n D{NA`fE+%J&7Ƕq2ͼfU" `} 2ƋnǨD۱RntT1IHN NٖRԵ-{KMcgWݨs ʶL% 3δ=χckokoDZn4>G}?ԭo'˭&cAV mxMn }D1*R0`Rq_rf}O[3Ji/[\1nұhe>eų \eD)+dsVD!!ѣ^hpr5A@k+7R4 Ju4( "kϮJهoku߁s=k˯*Dz3įRzW fBH.?pg_}q~5WϧǍmy^{;㎨GiƑY% P;hsdxPKn s #&|BU,z{$h&7szc˒mɭAЃV.(jz2Z / lrd,YiT(1G0NG, f꩏!:揶ʿSX|EYS[ė%'k;w=(~'X(ZODCəBK%g|<ҕ16&,ɗ}_n]wsbou~n.uZ=`I=pJNBJq bD3bjm̝x;n0D{AkG4E.M ,(:|L3yLo) #d=z]6GJh2lju@q4![ qRPR*0ѣ/[%,"o/V'\׭ͯ):~3,lZzOW%E\8~(Ͼrs:zc=]kp2F8 ^ &Zh5JRdx;n E{VA?bh(]HY=[l!V8* +4v6EiqdGT90(7,L@:娜,KyI{]">R~KAR>u+b7/}<:05Bؼ6qr\ғ~vٟFLqylQ΁`2{aTNL:т39dx;n E{VA?bg("J&?%fxۜӜ;zQXc9zaBoGƲuY=^>0m }eqJ{P^9uc䫦!dt'/DZ8?:7|O1q>o}?]k Ԃa^ 4+%id5H4nex=n {NAbgE[DDFٜ?+d4|7LC>{*.yR:eRd=Aql^ 1}0:i,Hxe%tn}>u+ 3$mZWŚ2*蹗Xnt[xO1þ|G;QNRL楈Lh)X)yea ex1r D{NA x2.2[HP f_ވj\ZcPTIH rԔبvp MޠCJ:J$Prlɛ}Z)q–W+}?o-祍<k~GX\NݳWO^f16.*JO6]X-xpȶN 桷>ւN+=J>4J V䜬D0gHhx P,Aq4 OE<@vI;i}IGAc;jܕg+(-nI#C4+XBYXRp,bf~|#x;n {NAbyYEJҥ 0Vb@sW43|hXNA::Ɓ€2yxZ:1p"k''NɐX)8XK_[X}mc%>"~ii.bFo e߷1}Vr0q?j-\@G- 7->g/_+Tkt)ma d q̈́)43MRjl?xIn D} L(j)Qv6J ?Rz0P^ȕcy:8΅EKŭJ⯴P=ǖE. aG=Jad|Aȩu= !No&[k}G O3σz8g86osW~H) ֜Qn"QG(1JX%gmʐxKj!o!Y@ϖ?R* FSVN! sI>Ϥw%pR; ;\)TxIu *'4Jߠ'V'{k[&g:|2F/>vNoF?J\9+)ᆧ_s-L\>G<8sɭ}WJl8|՚XFQ:HJA 8Cfk=x1n D{NAb o*6Rn>J BiU"Q+9$^iOG'aܸi9K8Lq+52<\*\5Y<п߁ԸS>W m3<|Yץ5=J%h籖P1&,pg_}uݹ)ImnޥR׮#`cdoAS;a' "uz^?jxAn E}D *n*l+1 =:iFV@ea6->7J4dW06AZ#5 4`;Gן6NT6xY/7^?x\SYީJ$>dN4|d Gk)ܚqnTv/tBȲ5V#{uCW%}Ԇyp9aIeZ9󡔒T 3M̎#gb!xi%Fpx9n0{Asߌ pK|nH:|f7{8{ ɅFKF&]$E$mB\'BG-,bI#4@k{+?6WUx$~_1s(}Q = !lJt'/c7JO.^5f>(ǠK;YZ+L8c,8#.0MJI:/ vdx;n0{AH#\Kq) D|Wk43qKTA'( $SRi66>`U1JS0 LrH)oom*Ä5:Iyq-u_96e[Q^O:+;cl_Ӎu']ߑ7wgpoum{7t*k%wN%VIsӃV)hx;n0{As)?#\"7X,QI%#_!yL"<5!D' Ee},T`;fJh7V[u2 symKD>hWX\+gw\lvT8WQ㍟)eIyuL,=YRiE[^eGz܍iFAAA'U |F C4Lhȟx;n0wB{H"Cѭz_BcِuP.$@|[t(`M8h&ґ [;:J/#BSYI7zegN3sjym;ֶގ}Zzj8<\cyicx;n E{VAc3)TI<~5gl!99YҒtkVuIS[#ƐtPJj ">Y/!z ͹T(KO%i;LojyKk>*ωv&&p_jo]wuYyrwk{G^)kw~FT0 AI)4 *` f͙x;n {NAbyXEQirx fOi5g:+@Tを5b9 *U) =v  Ӑ m*qgľ?~}eyNZ94.۲̭ײb儐qnxlN7rӍ /+=Z9ǭ.s}ܭuJ 凁)"F 棰d[\izx;n {NAbh(]v-9W43SWL1Rt4QD| 'ynpɐX:B 4Y䔬}*~q5Ϛ¾؊{VzqNqTR)uͽO|FVmH2oa9֖0:¼p"[ Vסףίh#kj-ORK֟HV3}NSc3w}ٞ va.uZ=Cky\;n w+f16FKAmFx;n E{VA?bg("J&yF?-643m d2' dUilǖk& 51E| ژrCBM0l`#J_6>[_y4|Eci[{oϾ LtqVQO^cIyu.ϣ]r*{{ﻵ0pZApNDFV"ʊi"CdkxN;n 9 *ҥIN0`[Bi%:8,̸x] kS}pxu\s9VPJ RpifVp,83+W`=DDjx;n E{VA?bx|QMK%(ˏg =9ȝ!i-(`4CS N%'tJ:bYaty+33fA۶_JZz\2`Q3^ cö,_}#kJ)rDZ׎J[H7щۇ}!qxA]DTTx}_ F+( Aa~NKFĺn>$x9n0D{A_j @4OJpD \?2ͼHyk$7FK(EPoO!r=\)nhxJ)TNYQMw6ٵHg[-;җ{.ǵJRh~K_|[muE(R2 5–xg_} I\sywmk[ގKa #(,pϸΌ璥6vr/mx=n {NAb UmK"l1G9~W43|#M1R?"NZ<:Bai&iF5NM52&έmZXG_J?3.P}/m+KM}.u+J O5'_Pv4Zc~\f %Дc#̹SX7z6 gg΅>a:kGjüJp&YJA[w An7xAn E  0YTuS&5!!z+%?ɵ@FJY Ni1Fc\:Mv(!Wj ȍ[`u~46GVgg(HK3m˰ })q}NoezN)cRx2nj '_ )ХI@ReOf q̏kt2\;j;vtKk s{ƕzYw gfxMj0:AJ  7x%Y4z:WlZFa `,G5.GDdJv D)TJ+.A \^p xKm+LZ DZ fzM~-=S'6`!k=wOKoeGM8~ !)w =e:ۃü mj[ԌF5s&(㬌u¨?jxN0 E 2M%G5EeB0;Z'ŬP r@ePiAɢcB &IXmK*$[m+ Z-}~}iiqm}R83}ci.Bo}?h *)`^ +%ddJxMn }D 6R :6- &2.j+hA *@#6ltɂ5~}J$H!(>Rδ` 很/Z7\w6LIaT5g?[yjk:ƶZcsbÅ}2 /ߋý m0׶= ZsFx%oBj%I)OF=kxn D{~yWQE.M, f3VAJh(:ka.FEvSnT(AQkQj m-~b o%#җ:o%RW ϛΡEBٶ>J9_cBȒ;~2KF_cqu<3M;}?R[= R ZRLh)a$(flx 0Pe$vHECb/ ҥs BQfbB,l|QSdHi3xlCZ*.̰^By3A̸6G'^pѾn#'&Lx 0Pť fHE0%m D(r5,, 0 wì}IPB#Tkɳ9!FJA[ rɑk2|q>d{:x&xMn }Dx`UUUw=J-{+t3fVsAlM A(lA(HKJ Xe:$ziQ?ۼUDfk+G>:jzu]ZG.'+w !dZ;~ [ҍ|u*x3ﺣ}?Օz]+!(Hk s%!&=Z7Z fÓxIn!C}C1Ee|BI :}xc˖_9ӐZ:]!҄@NbLGNy4H{5&+  $QW+D?j+~K?G]^W"ض{a+ !K~imq>uxf>py6u>Rt0/ 0s4礭R?ReWx;n!{NAoa`eY.J_,׼ifF RuZ[0,,LHHTjo"sl6<|oylӸZ̏g*絶1!8^pu>m@߂޷ƓWx6qx340031QK.+L/Je\ctM|U=KS!D+j˷>:'~ᛗK'A8Dz3,7m3W!rZ iļTt=N\.yy[L @%?475$$3?!ByJQ皗YSP sW%7*5t>Θj /471;5-3'YbN+{]f[ p!2$WV'9~~ތ4BO+Ytᔣ&%{V~}>(W/Af~X[YEqAj^fCrUjŎiswAΠazYֶUϲ"mdg^Z^0JW>h7iVm %RqaOfJFХ<.NzIY)EEũE ۶)K}Ӟj`PPV̰X )z?hKKy:/8LJaK rmnYcpcƬLo[^* ϝaWo+NL ֻEy7:lM @%?475$$3?ܨpBIX)9+mfNܵOxoۯZzw{K'Ma4v\8> B_뙗WY\pOu$_׽o2#S_f]>7{>Nɤ+3/aͫ$KdRz |PDeN׵xًʆ|9Y@wfJг/n+r)d`ŗ3'lkd}^8i,x%L]^OISY3<&lSG88J3+۷.ːd+0\08 0 7 DK1,Fs3ta#8 zkq<у6Xؘo86ekD~܂B,40000 GormPrefsx:;Ώ?Crr6\1fPK?RhBb40000 PluginsS󫾄TCG[hGyMHGpHxK,(KIM*MEi9 VbNjI ťYj9xK,(KIM*MEi9 VbNjI SǕWZTZIqxT]S@|_1%w׃"W(f.Y 3PS|]f{gv<;(Wg@?vvӧp伙 Aᢒk=G~҂T٥peSi'Tb-#qJ7`\5zؤ}% s_E`EvYo2v.6_Hp@?4V ՍlgZ-\+W.-?{I*0A^U#uz SApt?Kt j' mK0u0S^'Bm*Ȣ 8&R-#-tT\ ]̥m2Vmj ӷEpxӐw|* 775[md\5d:1%ZRwK;SNB6?` w?Úfndbb5TD?k=QiުV/Nx][sƒ~_⋥*Xs=q*UL#KZI$" E4o=ڗMֱ$`7\J]WW˄v}?3>ۦ-*)M~G}eczou]/}vYcu_YGoɼZ^$nWvuQ7~76-dkMu6O:YIVI^]S,&mMRnMoVMzolե =,YXTIa,/̩6⩇6Y -i,YѱSC:d(uM[{6ѷZlKmeW, ~9_s a˾laz|kB$o}5YۥUg\Ϛ~|\!ȉϟq&ۼ|I mz+t]d=,Rtmҷ0O='3g('p m%Q8WV6>Y dŞ!n]3_>YfaƖ#5S—!bkoؕm6aNqͶ3ў7&[g.Ҭ'!"N&qIr!goKwnIx6%{&z ].dM[]c/f bUFZ#$O3\V)nd0.uұ;AA1 #Xr$[́*9<ƈB3me%?MV+2 Y@3a>цtղl9 JHV@wDIz8"E%HyCk. L|SѰKedy4"H8IIAKh-bˏU{_. EΊ (AR,5HjYךˁJ;d@-JP,-AS04{N +b[-T8f-ݛXjv=q;B˺i+7#.FsxQ40Н25FBd3QJy< ngȽB^eoj&DE ȏE S*~5D33/}AĆM+>MݪkV0:5"$FOri#;c U k|Kn FOe_ +#ܽFG\Boe p[WuxOA\[\51E!Nq dȏ%[(n/0xL%7{<UQɎ!11O~. yr"ft*^]ATIM }+ÞMHn Xʌ/%w >QR}2L0[V1ɄT LQ3!X+gU?Y7DT2-" ' <2mt!!:5H&Dz.q* 땪6`ULX%*}+@e L((LA*_WxO12dYZ ~7QTB&zQ;J ]3 BF~ ~{b{;,@Fk$8Z $@?S|Z6,D!8OK~"1m?vw'$o0ċL,t٭@Iz9brK1X=eEɠnbᵰHV2\,'q?ev,MyX6 įn ,*@K!,|d"telʽf`K+Rۑz 3BU ,6{ӭ\5Lvb'b@(O]Lv QiMQYVװ!Z*N +ށ*KwLQL Vi#>P-.tlRkA0;"Fꨰ;< |WҴDdM", ql+ADD XƆL/K`#1 "G <Ƿ-cfRYe o[4{Y'szHGvX!MAГ)5Gy{\:#z:T.3Fw,I˾|m4d#!g#B+be .%D{voM6R9ʣ^}n5^S %rc*e}s.ɹQ $ʇŽLڀ7sPi%V5$*!L$~rH8|aYYIBID. !D3A1QմwKIVcnj%>)ޑshdƥVӂxJm@b? 9AfC@z2("(Ƶg0Qwr )M"@D9Ik;Skka2ٓ0 mvᆶ,yeJPK\,CJ#r\+WA,k(Ts$2`c'L=@n5g!FB]6$ٷ>94G ZuVRo wFc%eFIh4 xoe/12I>D9.%-VTɴzg_Ͳ?bFh Q$gsnA=`X-lB9-" $yqa=SV//dāꕲu=XKF^s!B#YkSv",e\Z\+ra$Qz7^g3+%Ln44P^@>2e lwNwK)| ť|G0І;i.[TKPj$MĆӠh`|@-82.#O0Ej.h54uCD ґR̕d hm i@k,uP q!T1XJU00_hyYX @FB^_^qdze;v}s' 1e&eKBC}[-ĴsSXQu..JadlI2?ކh% X64BO OR/~`:a[z}6y"g!>=qFS6۬*\\IP_],FgnuYP4Iz#L 倄) ̙{%V`k0_mH6zD4grVU#%ւȔ5QȜ@z9 u2WխF)drA\7ۊ/SBvcz NːZ|SK5Fں҂I=K9 gB˛LU(IeE.חR=Ս+Uơ.[6u i3 R=;krq(Hgc"b198dT3|`، wݝHB } Q͘& iN#@i1~H!/`]@u6$8ظ4Mvz騐&@744֩r0ǁ3@iɕMHN̥;،$i 5#ڍlfX=d j1|/$$w6tQ؍D]z\Ctٔ$:ܛhmIWTDAyDc?ɂ V+12 ($>7峳N[ 8pZ(\,j)8Y!pT}q b1'PjX"1 sRú;NQ=ZvӺȝ( q㼃 qEpc!Hop(tbX ɏwZޤ+@~ 9/n)cRjEm,L_< lL4O^}(,)7_"QA;w 6.xmE4rzI.kވR5tE@ ~=1 Gg C+4Vahm{m=a$Qsl<4$Qx0UHzg]7}tpȞd"bU5xRǨ6JkxBH\%iþҐTph2:5ə]Vޜ ʬ->\m'Gϩ攒fc2j`p1~8 RnT66awk _ ή`wuXs:=NRj/^OXYRS5o8̒# [\3&<|/D e!B jc/K ɣ|Of1q {=i)+f|^#c`"<_73\2B(РgHC:*9!d2ɎmAAV?RgPiɺ&CmTlgZFN#1hjo#G#a洡a2lɘtXC` moD|" :=Lr ,J`BY ߶z-QQ~5;gFJ5 U cD_x#T9+Q;rUUf%=T4VF_ ZiR A0W Ci$gfMp?'я֌A_BH >Ia,ϒʍb'-Ɔy~^OR̚\`r7X 7R 󂳥Cq2$pQNleNnt$9i=$4Zv*qCZ Ky4>zGDh_T^fUɩ62pKLڈzkA"z+2l{IE5@t:ifQh{̂s!,Y VQ<8O!3?#2*%&`>FuJ-Ppmry_,NĨcvU[Urx:-s$Q'C.M|Vc!&(n,7\$/x"c]$'y$sq0W#q3Es.RULGz&3fw.FϫzZlV պ̛%*O҃xLYIVe ǩJĘ6GЫ sb饴AsE*I }xpyȂHHL*y{V W7i+ }Bv~}ܺn\%QǺ›] 8Ət4n0-6L66QhTN΀##PGq<,f)H ( 'wHcdD:,#iSnB+&sL,nph&Id+ H+)(Qɲ9oӈb.447Ex5.(IjFJuд&E.;r( dCr]4`gR%f31P尨^ȶh@ Zz?<&,m:@\) 8{JtuJ~юBBpн2B ?sڏ6Pu:F m5`R7{=6"Ot2NUIex'cEl6 2Ψ<[/iXz :]c H b 铀QA 4;r}C %'~uNuH(:WuH^ Uf,u#ͽW$.Nw.r[RL>cI°o |I\}s^Q($!nq*?gQ1=\vd"gg0&RA.3@X3t]4Dcmih]ѲQwj09>uRvQ?:0`l&2JIv3:nu?cD}e8m4OB)KΜz #~ 'Zņ‡X|űͷ#DBb_:E0? N U|[xZ2;5 )S >zxMA\>(?Lj9r⮻N][Sw^ݽ|X\:sX}ԘI\-Y7:uQPUވ e-Te Rܻ|,-&e@"~KÅhqY2Oo/ӻq7&7_vvq0{jW۫Yr5/'rv|0Nn,un0z7Ãpsnv_zEa>f1LdzO`O/7<=-5]_w{֞$gէwKo9{I vg8@?Nί/|Vᚶ`MOW;s~v iB @~!.qz}9^љ ]|Az7@ 5K.g)m?})hQ3Jgkr?q媖Eb\fA|J!`w3FtD˜yH0R~+M=E 뽉Bx$;}{ļ%@ A,M?NG=~d;MogsNHp%jH2; NGxb`އD\܃ͻ4a<6tG'As8p~-2dLOwc7B,݄\qBB}\ȷEI OM*Bwr@ȡJE?1|yE& k}JۥD$; "RS㘖e-hlHh bZ.?σ^<eIdBAoPh,"";K,u=%/>w")zp_XU(a_`JӚ!s7 웢}$ME !~p# BVs_;aO;fņOl6Lp~|XC2!bQIkMQjɻZzW /kߒϭq d#`MBߏuDŽ͏>>dsYI =sĤOT"HJxX ~dr6|z%"@ǴY6_22Dzc|x>-sv1-^p?ih}:[o/_߇h6=,v߫~{yџCf+sëreGb{|9/|xp:ltQl>oF-|; 9Ͷ/o_qVR? ǫta}c޿0>x(|x͵b1 YMѲ-j9/?՘_-<[j Ol6'/h?p:Vs4/R@^QG͈bx"H::yx?X`S[6b9Z7qdM.tl#ٴ8'CWVXY1-ŤKQ "(jvOm:S- @˪}!8+ YmeuN}:v?g)ogl/~O~>gs'p.A#Pݱcr9tqwb>Z /^K>0|ܟCTЎkjy Fi`=hld-|H+vvw^n˹xp_9;}x끄@UJ}afvx:Z-i?[,KHv2A^-6\TW)_~VA= 9WӋb8MFS.!X>\.Bq6MVNg34'. i{[{{߇ᔥnCƉ|x0B  tbpx6NgȩD8m4<#XUm(k|y&;`.Jђ=-w2/q]U0WBnVgq.gCSF0[l=-vwn 'U$l45KƌoHH⻃'O;MM)0zG-[!5~?o4/ۃ jh G >8nS'ȋQLOן;;[8@~m~$F] 0v&a?!!y&]bqBX3)@͇Bt6՟OEYMEL51 M~f _N9 kl{Gϳ6h :'sxf1ǽM̠V[ډo—33ԁ6F7ќ\]otlLta0fkEp oJm~k`}gx2C`x>=E柊|k&<9'C`??Y΁tԝ lʹ}D]vh럖<+y3o6Y+̆#\Rv>c4P.KZWAl!ݽYMzz|/A,WjƝT?;*Ix\Cqsǽp|1>i{'Np#ờ *-Ua=~?}ƻӲH'@rk59C\90ȾPLveq5 b#~iP,݉##y|3!H*+^}毳t`4.> L"9R_0oFJr6,ZU`VVo ׳'3TOX݁~@eAQHGӐPBW=ew`X+1^y[;st<_oFozu&Xf]3d /ì]ΎTw6[T{C\?ɴ7oM/s~{־r]ַ~Uwv{9̮Cs^ C Ws9:ϊ}O>P`,y.]/RV^8~'ėgx ' V(XwNUA*N۞{"?.vv6'KGZj|[ rt6">J]ည̅Hʲ*Cl+ۛC@=;sw]aDLX\"baX=K=k{XS#UŰ)K|O:_e9S5}Uc1l;|!&27sW'Nc( Gӯ 5T) LȻ^69R$DsbVIf_wݽɲ$c[JFSl=EIWr9=#IxBپl#?D/!N)l;'w0Uc v#OQEB`Q_VZl`c!S1;=mMQoH`ǘi)um;i& (rS%wp^`4;+eٮ=τ-2DWKY,ʽ{O])ҲWߙPez)-pՑxx"g-[!p?3;*m"⹝2Oyb!bY%N,V9wF4 @q*g(%F,)LBݓwI{EKcɋ91[9dpM4صKgexdsc+J]p>'ΝqIkI?Ƕȧ-P!%t>E>HGl VܽR+ N;0aB[ǵE]FI+#o`>GNanGzЦ#woHSNFM.bEƘ4tٰcƲƤ?*|x)Z% r$XMJ b8zb"Ɓݧ` ZaOX"ATKّVwIX#^Yf_wF#sSi=RHDw,S(nr][xwEJI4Xt2n Jz}[KE"8 ;Rfw@{N&Ket`AZ5JrJzF.*?EIH/N?o w7B52J[Nyȫ:l:@ǂZКy}Ioo;x O<%\-p߁'P?qG$MҽEwFZy4Gb0vݷ;cBw|xwYS8f"[+ŭ%*l%ijY0CO|4{MFX˭I!/O޿wX~fHU, ?jN#F| IjeJ.fv(a)fQzHxw1:#X8*º_"#T"/"}N~`%N|g%ⱘÕ6ض~T[OY:λq?FȽ},dxӐ(~⩟IP(4_~2r^5޹jRH7Cgnjey]z G ^/< jjxicݓ E,. {aRNpWChtBuXL}om BՎ/6/m!E W >9||UVnJUE>_; c}dT5lI.$w0']7: PʐsyNffW6DZgA;įj0 KuW9\Gub8T}~Q ơ$#F֏Z9ZSJ('9!aMV#Jw<1Y=X[! U[ ڱfKtw9þ#!Rm0.\=3˔c0Dt[ 7M+fpy0aL]żҫ †a%(?Dchu]@V 6x''^rPWt%}QpM5BQYHj- n8{qkTky*>6x>ruM훩l Jϗt"`Q9uLIQ%G0@h'tcϠ5QDǷekQKȠW̳6?P0"/fQoK"MAז {|~(D N~&XQO2R +bWE6uVNe OC4QNALJ-di7zG E +ӮɄw8+kB[+1`($Ub(h"5nII6@k9u!^bf)51yT%>Q~Z߅iC*+o640)J&/F@(Yȥ5*(TKjMuAw aʃ'ՐjN]B  # Bld>mY JB}6M%'-!20lTw+l>:eף7[lHaaR+ kG/g[leGdZ$Ǩs=aX'yR$ L~=}lBtyPș|c|6Pވ1vWP\=y"ǵ# |sm.M5,_Tyoapza ǵ^[uvF+6Jy7 ZKKeVb/-W̻6ڙnc~$ ?Uc\"<)-^fԱ=$|I]Ϙhw}T:`:RI@g8,iY{BPMl%ΟP3UEpq F i,ՔFƺ툄#5k5?)qH(9#iE!X+QIHQ]U,UhW]w>a~`%? Sn A4^񀞫 F,>> ٕe) 5 @:b\8,ay4X٪6l].pڳВ)VG8M+=Uѕ߳9 |!(,U% *8Ja  z?2/",G}%N0t`j\e5u|n6JE%Osjc5KRh jhtIǨ㷉hAkv)/a)/}t8hvˡʑWڪ,ҸA,t|tW= z3!h\Z^C;1fe[Pm-pA/֣#+Px)rֽ/YO2:s7ުcy9sF5UF\BCvԒ[c+Lj: +J˯EaF䟑"~A_s1ZԨJ#ԯ0먊ཾ%-1xP7aH׈br^~T {H_6ROxkL ?deEd}۞?]Iq+-/YL0MȊ]C[\ѼOx"!{oG~=BUbWQa~:^Tpiיu%(D.% ] 78]+JsrN%B +Kƪ+GԒmGfez"R f^(|!JoJC+!d~,'^ӚȔ$--[?')I[}vI!":${o z@9m~)bN)Ei oSJ:/s?j/ԤH xV).9k[BE@`;{9%- X l|4wLSɳQ˜=ZO W*yhIr:g+Ssdt)8EHRKPI$ f:RX 辐qj3ԙ\ B8bz#\8HG!ts|m^f L%T9tw̡| {cO\9顚YTGIf…R@mIXbMn%{H1؎nDQo*b JEoK.5þmS%ܵW|ZQ=sy(9HIGn˷*a9y_zl`} .-a-~)OY=iY^dJ4DqPYAp,W$ރ WD%!gTwP=ڤ>}>msob=ӊ]/zRR Pș,xOrӪgU?n\T\q:g4V#5ߋ>~Q@:_;fJ I+FH4WIoRWT$fhAM!K'*B4,G:kU2KwզCcV2ʚxQ#ǧ\kZ ` W281Kg>gp`<Hu9.(bMvIr(̳pCo1DֆReKCNQC --g7auw=mFQVD. `P9/̞(x瑕>jK_\\p#n JOogߢȵVK0rDs{JT5+VA#v\fLRLr(V4]z҇W ^\uC]y%r ن$q3Ab9~"pĪ5weN  ]Vk-O=eQЗ' i!,_z(dWΑ[y9AY>ZԲUΜi?}Sjkٔ~kəQo T#4/ -"C;Li(.>~O }5Mxk{NL/ X-*`1/4?efQ(B slts/2 *nODS$MJ:Ӫ@!uF`+ۖ˖V'XzM`ˑg, P ud/9sk50ګ9BYebIQGEE4AB$ߪaMC·dXQ9R6y'L+_19 N ֌z'ע;v]T.iL<7BO7ӓ+%uK)zf-T<帉 |te9RٝZ-;9CD s( IoD "@% P>nٽUI.FԽ UJÐFP/ zKz#gKz@p"v,abgIPɨ>Vuh30^F.I^NRf )dY+|Mj=ܿ>޽QD@\1EK~@0zݦ5`Y$a(W N1RLkS9|}70&/ A,4nhv;G+Ddm-sb ԣҮ&wAPbf?xuσ}kz?}dVy :-HH@DӲ(j+[2$IБװ 5-$b1ʵ}PFUp[\KT{tBuЦplo$]*xkzH%i8L,?5#ۯ#e9|ya=_u gj{iXxs>&dFtn Hzq^:AV]hwqU&~(RaDA>/{"%6@4yy7!DVzB!?q KRqFxM,&$(>|IvဠS("ڰ,`?ewqȚI_S 68rBSdߧYzGHw; qЭ٤qY<5 /bDQ?nQLQ c%̭W+ä|DzM󺔕fH@c&bUI O BwG/ W."z J~q׳5q{&/ߌJHyqa\Fa$JHE︗O ܝJ_xK96U򙖦3}tsnMTӴ{`ab)AΨb,w4f]\! cVo*o,r c3K+VC>*lɢdxj໏{L|1\P r)=ۛ<6P@<Ug_ycz搯G%2hAE@*7—D,5smDbb1x&ޭ=l ck|kiWn<m#BǣwzqrY QXmSXb8(nUCD[՜V1XnJu#H+w_ȓKV"r6=,"^p/L%n1UvzjD-Svk-9 +8.@PpD\0j > ¤r}1\5&|ڜ Ĩ:oe_ۙ V DDσy ñ|?h(h Nh :Ƃlp> 3bf}/{ka j`IEVCHRGmW6ob`3s0QP[`cVyJvo3[++*sRXZ;A)@ۖarWȑg;Tm:Oܚtm+E 9πJxֻn*F%AO I\RV$VP_=Jm뒩_5: =F\=tN7:2m gq KK@r6PĂ](^`$ ?+4.I"%Nff-F7~ Ţڑ[3@I/IZjA7Q\0 T٠(JCv\;O9&N]n 3a"ʈL`åz^p ouםd%0+zp ?a?X5 ?~f@KykVL ۍZ%i1W8RGt5וҜ|5%miuaco<Ҡ*W\ۢv&qm<F,Ғ]]ru{-FAfz]jZ7fcmVxݦR+[P0Kv (fRT ?K.ox 9H"U i;[4AxI%Bj=uŊB_4b\HaU/~ELGB6r^\i,Mk| kX1K~0n:SAOtY.^JR onKU%c灅ۥP\@hA$r ǭ-Ƈ7$RQ4s6 9. X *|K)Fr1@$oͭVPoJ2ah4I]@|a$ plb9! ]7عꑫXv,=Ƙe E(o_A][ ~n:S(|(+C=F$CoiD4=Re$h>a^KXk3Ymaq/RW·z3ܡQwroFo|s\˳yي4Qq-ފ*[@p]`iw5~nY1C' &8k&r+$[45ov?N;ASvy k36n-ޟ^CהPAT [R'#ʯ 15 |/ŗFkO1RUI>5AV]'Cp 5}x g3}>ȂhtuW{3tQR&#;#fW*yn>6B/@ y:~J#:qfmp&l ]ȲQ٣VMM QŃjާ_W#pMJW U l"3Mind+KwHœfE5/?꟝ ]qYC =B8l8[~IJlO@!XӼ X 2Qe )ҺȢ{Oʚ pYw 􏆠 ĚiLl1OܸX\Ҙhi~gY?‚ ^1MO=+C:[ta 5ҹP.Poھ"nW0&vœ +neɨ86\>Nig66hZ&RN ˍcVS9{i.z,,+-Tꦇ3JtF> Y"qQVpFT8,A@a#3;z#yg@F->GbsGP/'KmzZ#>,s=K) A+:7#p胦[nZ͝M N~+TԄ9}>cIו2r>?Eȣc>&U(:](j~oFow+_jsõ4p^WwDP$!.٬6ٕ;e|L77&3ܛo"$:fk-U+neT\JY-[NjZi5Dtf$m=S -!P|R h~[ꤏhs,.{2jjO$ Yӳ{Uw\+h@˩ k*[s͟6jO[㿷Y))勍1mMc!v'(u뜣򸹎-q#ʛͯXmӷr@Soj`;kKQkq-\ ޏw1BeoC> FP b+q+'! 5k;JVj^i.z+ Jl]*D\F-e9ҹqeWj W|/1;X\u9b)m(6?E?$&8U+xUkLEy)䱔jk^ ׶(7҈k6ZCD#,V' ՚6%) aekµnh\{r4u9 GgA#Jcoq3Ap!Udh9S֭㈊0E^㼺@qjcy;w~XUN)-;F*.~?'_CoAe-#BT[nA= 1h.,@ɐk!*hє{[{t\Jҿ&*6bէU==T"[{Q̭!W%5MјƧnT4q?8 +pF?ͪbAl*D)QSz%$T}(XE~-:n_(T'͍. i̒;oٙu9Aŧ2De=X5ܹ)K̡" nCR>Kܔ*|EpZ]&* Q o?g4l2f;H mΕ] @|˄$!4OPh8jr3]wʭ4Ti0,6?kQuq&-;RK @uYe MAȢEO7lnHHyTnD 3M@Q)T53/*\qLar<fCk?Ds"ڵ"N98ӊd}fEwDy5[>RijĨQ/T߈Z(#ٿ4TN+\ehڧz~(Oo>@qJ8˯2#ADSoRIWh*$T]A9 y|"} gn}(7@YMӚ"H2ɑOly޶uDtoTTǾǟ`ԌH!$Hen ]S2b +hyqzmFWQLW0Jmbݕm r;nHѽ!{f*;&W*;?Uc_뎱<XEteFz_ >xWG [ꁪمQƳSnz"W=OjAO6KKi^gvtI ݻȲku l Kb}JFc& Ec%KgC78{[x8]- U+O,3eOz5nhl ՜:}iݺx+:\ނ8KV1}1mRo2eю,h1˫smdՄ_ayH]摒%Ԛ,6L#wt@3 7mS5-+ 1χJMBH7۬㵀Hs@ c؄ZTggb\ *$q' -DvA~l faVku >q)'&LMsl*-3їn^ەo8I?#Ώ&gE ғ/O+L¤;K/U ?>p!B^W֪PcS@f6c;L/H6]n+a?H0>ul5tI*1! m<SX,H$R2K/ɻ`߉Ē^C(48%3mSNW\3w}d%WaLܷSFc4TMn[gQוӷp8S)Lm{16{Ob΍V7B^/]KeAD>xO6%!dVKPHpY5JMxXåRip! 67|*(X1'B7tf?*OCMrϦ_θΑMJ^ ]D$i e2EY~::hS5!A9UñDd0nsaX@̔ ]nx1x$e -]>cqKI]졖S?T9uCi{Gb2X,'HmHKL&pUVJVD09n +[ho/Ff6շy&~>ci.g wL{[VfGţ??8Wa#lC\Qr*d El]?[O.0#PiIgC/qmx?M6gйUmWЀlѿstV|9%2\O[B"{o0 J [L!nP> XGp.2%kߍʐ;{+3UW*y iq3-s/ R6f7;3%Z8~=+u%16$F\Pd.G~s}ZMW,=>E^(=ls-$g\! D"w?IbG~4MpW{Jd)(XF#q\ \"a&|P'Ϯ"=\G ]XlUݡTD>4 hdi9(%DZzR'yfA_p78ڸ;?Z~'m T^9g7$N4|  &p6V]u6 jm⥺"\ܤUê"j_Q5N&N*xiҊ,%F BSZJ!&ZœcasNj[6OsVySRBA`. s%nV ȔFy"-7t ! Nn l3xlIX6p+EM~s3ksk;Вkrϯ-<;v`.o9s Tvv+S77feVHk?돽ɩSuefP|hEg<^SC̵JUwu[*-xqGns[T Ik P/,u7hy1ͺX7@&>I& Q `U_T⇈ *p$]<׿YH:evi%7*0R7+&ŧO]sE-n: bmQ:~3F6ZM-^p뭉IKBAqC+ h+Uױ˕0: ![3eڝ^|MT_*S4=yV靓Q;'~% ^!\H$C+}r>&<>v / ZD'W>P2'9uLa?yڂxn\ГS|`(%T}Ńfz(eEX0Ds_HaL~>0o{ea.!!k#sr[_LO& EW^,|k)_5=$E礬V9W긧ɒK+s"]3nryVGX(L\8x ey:͋#UOZh)Z@ʵ{czƅGV; VbU$%kF*/H!5!#;YmlH4ܡ\)( |ꞯEjL~JOL)̔tB7 oыl5[d Ș / <12P,;L[_8OHU|8 ƬxF5۴E:3tI$ b>lfxF]&^jߎ{iHJ5th\{ g) D(ޤ]l?{j7ja2B;liP|(w-ߔ7 4+E?e"ؔXb|e]{}N:E%8@{/Ӌ՜n)Cgd97 Jjp}W_5W2ڡD"TЋtCMl N؀iNVij~ཱ$2&YDI)UvHEZ.0/V$\B/&͸lov̢h[5rYH:ڹDKNu$JNKgƱnI%ϣrlGZcb-qXn͘ΏepGFDL  ʧL촻3D/ uݔ V\"Qql`]I5g uW6aXdćmd\y-c#&T-jT?2V()g%y'h%N*76_ ,xz[:бBΨNh\ĩ_Ī* ]g$s ҨoekB:w78$!'QB .!MC/PO+T.Uz^žh`DgfOICU;`Iڊ7W|*a+:rE@YTQ75=]1>Hy#}KhMzl薰)ⷨxK^|p٦?C~F8#yQulABGXp3e/O(QJ6mZUL(Oވp^c, "_<#E bnp$^x٪C]?{Jn7=0@~&^6*,%}+MbZ2v iFAW^a-& $g RV)0A+5G Nd?Ĝ׵͍8VюKzو'ޜޝPsy^6 $ߞïܿgT s'aE3uF=)gmh! ;,6ox%Vsw a;\N2 w~L ɝ$~]:4u; }TA:)۳9{:PvsEOJ4i8l/}|b5-gtmh8rFfNqHeſkHڇX&Z.pߥ²ƣ*è=.ϩQ7u%ɽƐYb>{떡ڟn7jom7?UDcAj-=jNSd+{s4lezH_@^ݸ҅{ -,%dvq2il]yR_=^v8Wx^f"N.!ݠj_8>JbL<3Z ԺU=|H?hAQv1H9w*gcԗjU٧bH4Eo'YѥL4iȕP"݆{B-ΠXi.y>&ǘM78@ f1Ǜn"4K){kH7.=R?܉=BʒR( B>z37$?9-Z1î`DףؑN%f]cBո@iwVlhyKBjGPLg^e5NlP0v{y»ࢭ'(Q`B&YI9"ĀFI:eyZ 7Wj|/!;O)Ȅw޳ѻe H\:T!}KIhЄج}kN XۚCgwYԈY4焺KiEÙ6!5\ !VsVGq+ܺoHwD& Uވ'y;).<2 I@5mS;v(7#c=eJDŽ9`U='wը1B> S^] v(iIX cBl?xW ʤ C-&Jn-':5)˸SD$A٩'_1YhB}y7x!wӅ B E9|#oAv@LŨ> DO.eUץ{z= d2S*84z%ƜJFtb  whTIqsC@PǰR<3t hGnh7:|*9'@ IO -Wܝ1AERjJ ִHheA)TwP#DJ_BÕX">aKL) Xo, ` I*@- !_zJ}[j%"z|f)hN#o|ղ6:" 1r.*T0 J蜌';c_q`ftGk={1cm[Q+g)Lfs{nvvu~KݟHCeA8j]DML+ AsicY橤隋8^:H T}bXz[d16,Z_Ӌ_g .8ׇQ(->c5>ͧT^#38(~BéDSʴoZފdz#:-ה=bXs|Sn,)n' tPu_,760i%g EYK;᳿:@ Ӥqed=Oz?LpĊvyv9>VzmypQ"k= zUCxc-+Pk rjj@>8삨Dɧ2laL0Ŷמlrl1-̹YU܉y:1bsƒ0F=Ҷ锏qJ֩xm>gt4r_ezcXpV{ \rBW0G x3;Y$vc;?;{;w s}$\+) "-W!쇑&Mĸ1g^fkPTQmv9Y3˧l GWq[~vL7? ]Nq $ڟjf`&.aӨ">JqR73iY<6`Z[#%;ԨW$V 08"-^M,lBW06?\*ŽnLxئ<ٳ᳂ίUKq8qe&3d4ܓ%t?gW}=ظPM2:(p,/D E#!aUhTݏHP Y]G.Ox{C) '&EHtrp ́R ]Fps%uX:09AYiy)p* Ruʖ.I@kVK|,_1{ )\(vucfW|~i2>Fz'` E(C h_6G4渭4@ OB"ຕ,)^C=97%5"҂zJ¥{|pǒ+U=&{y4[b`=sɉ-Ds?\f'x֢թ$l]=$^kO8DC*& 0Ԉ(ŨT1aԡ:1c%_^g;\(#,ǣ?C s A+ޕzTNSNJ<$wpሯ xד?P˯haivc%y/{ؙOHPͱɈSjh3!L_Ѱ>jCKPU+0(;')ƈHӁlc~a Ur V2T@tsnOʌD?BߥwQjpdLTld2qaWK>؁e(XU&Н+v-9ew䂙K;J.ZjL'N3@zE}V+hR4jZp]g/Y AqRk N{뉺 ':JS:*xӨClIl 6D@nv>{}}ot뗝?v9(ҕ~"Dx?xݫ X6NQ#8e(pBO m6>FbCp6Yitd%WЇ0>5Rz-(2^PE'[XZ|r$*7/TIY~ams‘Ta7ζk'f5oB(vv7jSJvf70%Jr>G& mlI)=\ **/G-N O: H,P0 9 զn} N'?cf48KʤrqDeQD{ҳVQoA`>;0{>SͰnD$'gz HUUCrU >$db^ф5WYf Y Ӓ¸Y*2x\V74}\ Y Е:`ŋXixZN2ήblɴXKHg[uk\e~\ػ̎*@&~SJ9+JbLIo2Y9 5vH*&B"~7V7 L%#Np3Jƪ1_ +fwx7>BRo"KvBGdV/xe*԰%[|a~# AES4d o&c,7{6[(ƽ {Bs|*M&Z~U7$Y4Di&C[pf_G}-O׿R>w@w=섭y޹g_7, ❌υI>H:P64]T?qyNt$z(p:'yJ½G 0dr6W ^pDcjS]=Ʉ.8١7\暆1l,UN*N[ Ohu꽂$?V(BzHTF39IrG8+Lʊe{A*̃z;^  xtZ;4r~{舳g1^8|[Oػ jgFd0c+CyGn,a:O+7bo]F?pcOLM,>b~:B=(>}Z)< DPObr 0US׆He룇YLP%慸BDVk3.9DԙaH?Jz:˟)2MEWĺ86PtoNjlNNӯA=1kav`v=Q5nFY+j~:b+:VNCaa `M[fF^7y5\kiJM559N#ʢixg@Ah1g׮$F/t bc[:uNKE-=erAb5N[[0ԓ\ͩݸn 8t8` $8P)Ծ Щ$_Mvms0}S1gނ` }.@^EbD͒E9Ǿ:;2:s,_ZL/L.z> n]UZ)?mtFfT,SK3o56|ۏSu48d RkN(L!;Rntr!E B^m?CITtbUVV)eMNlŁuZ #j7ևUPEܺc^DR txiR= 'yIb=bUZpGݓ/ a ;V:dF14 J:2?S!:$9͖Z8呂"QEHP@ݧ7bmNe;JͰݦEXhcᩜB#"%M42_]RnadkYtֲ|OU`TEkI7ћ T\zrAaM{yN9Q&A:c(%DGwMoi~&5'R -dO]aYlڌu='D`=$nnT%&9Ovl`VѶZW,L0<^GS8$\H#4,ЌW}(L#0 ҹ8O982%S3(HU\)7C0W-J#shB uzn:H&n%AL9S(J~V{K6m*\{=~mPsŨ].zԱhU'? ^ sG+u1QzgɄ3;#K\;#,7jQt_2+Bq52fݰa nY͑gs4S{5"kp8lZ)ǽ^V|g).sllP k^P߀)Msk|ctb0$̆}a»8)f5zPuq4t-|b[Uч+7z@#*y$[K:rYtחS!\hҖD"^ˆY1aD6i*G,S\g߄< u jq!ʅ]ķAku3ʞ?xxGZWfݷ'MhLע,D%m^T"{KnKWg\mϓ/+I* AX}UϳyS#t6UT;b++| (%"dSVR |ba'R藋SwUY?7Oi(ywA7`a |lRSgW*os XAz ]ِ(bAd8r({1n7ފK1$ tִ}m<Qg6uVjF]E=&8.nb묱4eI^/{Zbg4*"pjB4$*B)N{Kb+ō<5׵'ϘB|wZ+#;(EW0wP +--JX);Bt>#ȎirΟFJ:pf5n,қqVŴ9_{+"!_ٛA@]39ݟ̮+lyKeg EZBy/䊉tx؛;AIz?[qh/a7Y]sRD/l/ͿRFOͿ/ǁ C" gtvdf2?=-47\@W' 4qM8$^QZfNC>6|]+ _i.'mƵkNXPdݲJ. צӼ]Mm*d>|Jkxi X!6?;w 1)&) ҵ-;رS56c*cFڤ 8 lzc 5;4iw$t咡r*'Ν,}߿yF X~ceS Yk^ uEZ3|1=qkbڝal\۾\Ԅkе ,*tS1#+eT9B4-JC'8H]CGIiXqF$J{,(E0+s=ť),m1:֢5QZyb9@{%ʱ싧 RϕJ4)%3±Sxr"~7¿A%Ldnq:_Re+e5pώ&ۡIwٮZfczP(reP^vLkHp &jyhwZ$YGCqԺuA%\h䋥&qEƙPqVd><}»dRpJ[ {F❗K%KAu!OXaNڶ<ّ?^4a1Sf];SO~P<2saY +0);_(*h}xjg'Fx0}/_XC5{R >{8P3vTd**C~ޚ3!4-ɻU|q2~l7&ӥ7%LQho4[`MxZHM )$;E6sckW9FWP}Aѐ?Y=]Jj9h ,!xT%tݝ޲'#Ɲ Sapd躔Z=X"X-œ!u ~ sDP/l-{IgdˆJБ[4@a˺^T >b}|vu*qnw !>d>ٖH9޻^-InKM"gS:`8.>}?"3g1k/N?c9 3^[7Щo#"رugGk%J)cE.O|+'O_RKJ=bIPvN6e;ubNzjN3.?[N ~٧ۤ"G'65X{m/B5@r7]&3ql&{ ރ9zT&^̬C9'.fCaM|ΩKx$G=Z# 5go(߁:) ZǮvᯓ3u20fgzdX\VGy,fAv1di؍H gWt wM /S?gL.|/T%8&DM˃X'7#7y ?i8=i?ɦ hvbfV@I^ڥ4hJ8Ѭ[9F8pE<"ܳ]z\ F"ѭ$|s1YӴ!PRrs7=}X*=}4)4l1w<ĵS@zŎ}r{"xa\~O٘-&24f> b$i "w`9kjF٠;q_"t?;h7^~rX+[d7ˑʠ4I$A$FrzZl +vE=6].u~6c؏SV[/%}й-L҈8:|3O%eCܒ1Y֮ BOCo[pLPXC6|Tg:[ %a}uiHڝ$l]zE݋nNJ-:`dIp@xf"pPPeA|lЊvuvvta,|%Ch[s~m}л,(5chWsz1Iz%Đ7I4[L#хWx[4Zٕia=)b#NA9 GS;kAG}T9Hذ)=-}=/Kq c>֙mq=F%RE L*/չ$@lAȵ>lrQW:rfAc* diS$֥.2Bp8js襲DT.fzl)H5<@IyQgHkO7K$D;EnHu2q =]ɨ՘ u;oӻdvlw˞htZb&iFѝx+k+_b hNvW[H]_1+̳zØv<8N)ӆk[1dwk9ctQ67(:?ŠJ&Cv$r嫇A{^.?N߿Z竿5/e)nӗV̹U؆OH8Jr?"w/0zeaf0b— aۛx0Q5įuQaF>>"5VXPdw(97`J֏uƞkSw!s4y_L-gƐVR; o u6=ceڱt7 d%zB`{njdłaQzYedm֕ѐ.ԠcT&ܟZbg|F7)02kS;&k/mM',5:TnYͷpD$~ Hv'8Q#r Sd p杮Ü*MO-Ѯ%2=z"ASt}ӨXKxYf:7et@sUÄRNXL&ӵ{˭5]] Z 9aCݷ?^ >.Go'ԭlNz, f>10^ қU+2=է%Ep&*?rE30O% ݟ}LS1S:k[ѷ:>";@GOM t]^K¼tBɓFr?j'V.Zi`2R !azݧc5k>V:55p C#pE +tR﷘$4/VG쩜%l5=Cm| PbS-xyI-5M ;8`P E4]aTTa'|:Ԧ[Z6x޺BWU9R^wA&W.[_mǓx`~a׶z+'Z2/xbm۫wcYݪЉk6w/niNJ+yxOWJs}4Ww;ހh۾_+o󴛌ѡr3fm-cvs;|m\*]򺉮t]r?Oߌܿ%DERw< ~E~|j豮dY"l xj[\vGUWRм'WCc[!%WXWIk"Tn#?}W&YCPxb fÓ.pp7\ H\Pe]#-r29;\bl;{w M,1hR Hƴq,_ߌ8\xB6|KHMb3xC9Yms[t# c s3zaJY@(D?O%:."1 X3%ZG@}("i-I!lͿ5}OoX ].T(1#<9Q_Ei .+W2*WIۜ}uY᫒7oCٚl&q2=gg;$FQq%p"Sӑ6eDeL A+( 2iF؇V4mpx9<7V-tRU'A?P#ZSl 4@P1咬*_d}}6Fqb{#jqwU=+_3XEl4ny4u.:>{q/9E#2 ]B.d 7DH|!y:(=<|/DHB8;r*2 A-#AD/o3_cYh Į.2goՠ,+A 0ڬP{"kq9tP+1"@txʧ D|>мoq*˭~I o;012H%aoL`vu=OIe]_R](kRUq9 qgޏxbzYdbS1qUThgRDUb5^Z%+F| F*fϘ_]\_L]HXUTn4߆a.[ep-q4,e9JK0A7ٰD㙈wGɺ1,b&?b2}qh!/qW @CK2  m~_9fm_}bX6H-nEٻ$9(&?Gess3z4/4KiM@ uOדMj"=]Ax '3,dyϳ3fj𼙊6ֈlV唴nIX5BeqBlsۼNݶZ3PK`x7a-@y1VIއhxx0ԩo}V[R\9%3g(9GK֞mG~=҅ZX/j'+/(lyeTO\s}o/]3>bU7o@POۅHO+. |^\F@u+( >7#ոK/"YxE{.cOK:qiwAU+ͯ54(ZEkz"x7Tyc~Q e(Z"ӡ&~Lwl͑,l$]bYa0UTQ=xYYpͶqsQ9{@DgqTgeG{zxݑkKϩDXzj閒D˝:CFȼ ; +|~u~'h|7-B9~XFEWmf9qS:ۖvG/LTY`*XQJ*> b9vzf!D5\Yѱ|ԾqMtɜC\PanL9G~k2x:= -H`%X@7`;.x L6j]R=XoӑLhƔpcB'R_-Ž+#SAE"%<0'&g>@qϼÉcibZR7_{ލ^=o[DMo(:FshnJ;޷l q9o&aܞ{<;ޤv[vLU%RL{wz.yj h?1 TuZGrp2ovsi^UE6hP3 :F_:ƌKynJy3aۖמw>3m<[7h>=V- Axcߛʐ~z*%Kl??n#7v#ߕ m ]^6ZLc%!NUa/QB Q1SRә7f{!{}D"ύE.ySyZomlƮ5n|Q,woa%KPƔ#LRfq&~տאj?y?־ĿtkIG`t=]wD;zG5)Wc3=t4uUez+F;(ZNNiii?W,E~qsuFO3=Wj;|ڱ x/7v anwe7xON .|MrfTs_pNmsvAƼi,-K-)o3=NK""z)hjH=6S˶?ˎr"(=߆aθQ>%Q.(gVe?*] NNʠ bj 9"qg+vq3MQgtllCP`[`x)B ї[Q3.tyD>Z}R  KR{N ΩDIq QΎ2k䮵ۯH> Q:gdCJdTgRD ;s 5O H(c,trZD{RH2ZPt:6,%$+m3?q0l'*GG@sTP8fu$zAW\y|@Z4DJHX"E# 1r<ҷ\cd(q9WP[X(0ux)*SBD^!ޱB~q5t.g. {/Ȱ{#1k{SX.e;nEXe`x\n$ z-J"BWTT^r~ q8=y6O6iB3^%4wh}r1GP#L%Hy"4!h'] ZM.:ihB:6yHۀ\zoD4z4]`'۾dJcPfř[ۆQH#d%Z+f, )ngt~cCT+Ӄ^o\ھOϏ?}Kb4LmɅ\r)c1^]!Mf5p"7mr&<`bOam#7LZnÂs"k) (@CAfx)ej]FB%Xc)MxE*i$zp*-XS t+:T5ː*|c.V;mm :lČӦR n+gI~xJ胉)M,;wb ɩPɛ&+]83_gܡ0Qj9w)_2xI$)x&fTJ5ɗ]b$n_ 5LUC!? )`S;X>'5V67P%w;itT\Cd4IZаu6Ymbʘ[ ]BIQηtef JS(@hMthyOėZIGno4'MœJ(rf([ nYޣ>mކHa\zG,Am} Pֈi;F˽H ?=ĝ3E0/Q~˟[HmW{θ V6^䵘Q5D-*i6oW}w[Ri2ψ_;Eг ™k.0:(E]DkIǥ;4@͹oh!3/^4t@֕%O XMN6%"RZ5]J¤Mm "Cz&h.`$‚%LC_(cи VlI}$6n|R*i1ηV +>U6q%_OjW&' 9EӦC>T%rʆq50x?{?^z'r^ BZg.HprG}$戙~=*o$)n3ŒYLj/z: 1sk9*SxsqWk4&&bɇ!m GaǷM糈uLiQ[EMI$ؼ{>rq;?̫+1 "bmo~ @۾ BΨh@cl_Ojpl{Ps ^sA$1Pg8=9Hgݵct)Pq'Ȗ<ޝ1L,:AܹhioPUӌ G;ͩl}~\ny/~N%cOhN`E3b&u{[μި2 ¡pMNM񒐓#΅!uҔk*bt!׋w$>$//*1A8RX3i h.']iRl*K=rp|zXj{84-xXSC$r +68B3(BX.!`OǨy}u7/y6氢 .VHu2ɏ '.Rr"JJ)!t]oʗ` qvgj>7x6CP9@6{i9|T+VJÀ@~ g"Vt=>iAK԰h)־[@|"/Dѻ_j"Vք$ҎP}E'12nB!Im #|BoV(*G[!R3(SD _C*]j[9T9>Q ThgԤ0eH_)Y (ʸw$\B2 vzsh hH;_Jaðθ86v.$22rpqJF󒧓zxc 9*>WS9&4G {/eU=N}ˣHJ*OR[)qt1ɛiIGyc:OnG$Tf6zR\n`:"%gYN,j4(hx@e~vױ$ֺ?ź|< =oMxSCLh6sNy 01j{ljgUnNWPU%;|;dB^Gm.9BkepuDq ZQ/bÃL DIJ\?B^s ^*\]0p`C Gtq.8uK.H6pK+++% kl3JVa60Yq<8Y|7z)Qvv|f־!40Х &|?%rVй+yn} hQxpNYۑR3ȄY]x}B eqGxc.e4D~c}5 mKK5d?\H9O1TsC8ׅ7󸃇E PJTTk(/ M~H*#1VsjRzA%%+[N荙?%u~)IxRC<:ޮ~>OƿCSCo;N'k?:gw(ao-u!+%ZR (cЄT'x^}f.P/VQV9g 9UW2' :y/s FeW# zK3<+Qs{⯭i O8fx A&XVg3FP>-_8UXB&>*=mxjmõQ۝% 13|Įp6K q ɜ0WV-M8k82KzºZN .w_4z VԅdԝОHNkS溺ɯ5obź]ʛ;HNx]e6Qɘc^Q9hw8ݺu?pŬ|J,%]cێ@:>` +5 t:t$c(K.vv媔{*Զ(C#+2C?m#fČ(7cyW+]#]4k]+UΏG: (vNICJ1.8%kF"؜2ζ,P&/WL'J] 1(E Zslr$R8MvK]/dFk#îHD)2NC@L,hR+6݁U>#Sf:$Sua3.n[񫝈+]~E]tEe2z r!K~ 򹏕y.-[3kok1.ZM }A(՚̆)r{$3z;F3:td3]b0}7ydؓ|wM>2CKWm@>LgϏc#r_n7t߾{?_?#T$IB7Yu2b>/b? ^@f2ȟ/_6r߆œrqΧ9LǏ0H-#/9[N5&߫r=/~cdg[<HVs-˰|+^]偨65 Me y.@|Ӄ%#">&Nοu,w~T4Ct{%u:? ۥ̫%Y&ڃ#0h>:^SJb[{Á ~M|/^}y޾9?3C(@GTyM)u^]CҘafɏZ, dJH8 AE|&i^1?3U\0Q;?S~Y PH -(&.?h(yؐ҈X{'f ?gdպqɪ LeV7T~-.c'NJΧRI'ߑb**P,u#b q[TK&*MϯYP*QCFʶkF|ڴu.1ON0Q.ݐ2! tuhB3S1B+~p6t6r|2B,K17mV&3{<(@C%l8Ps*Xn:iP$}[w@@s~ V齚$59+YE1 IJlT ztO"`?2> L#"$PL"-ftҦax޵GоDcԚ9':bڤ%#Ҹ6Jy8qӝQ9 PPCgQ.GѸua:0A3G,of)|(Sі.~٪zzFGD`?o[͑f\XK)4u -[ܘ%BQ HzqU֞zTjzHvF2 _5RabT5dPBDTsbp8ģ%^͛P{7ʩSP/_ޚ)og.k[`躚 Kg Z[##qUuqj@Du";/j\j]^_Kw2 ;D}cwHdS"6_:2?@;R󘌞_ÇۮE[XL0NgG2 2yoNꊣ@=,|,W9o:,'|WlS=!Ep%WKJOia4H.)eǻ_ }:ćabxvv9;@ĒcpWfVYVuc&Iai+ (L1%y1(H'I8EEM~Jc!J疁_|aoQHwʷ%Ry$< )/+6ޯmlt~h6>Zʧ#||J%@t6Fu(W&`f=; wrc|TfՎdd@K%KKe-UCAx?z#gK?~:F<0V/ 4b|j09 JEut`M:RO%PHA;4d\)ՌaLc q%l[MeiuAw=ڋ"aKljY]7崛S!,LzEd?8C<&Б$8 c/7B~x@g UÔ.ZEOP3a|j0#Wa9944L^[{am12]%L5@̔$cԐ+;IJFf^ɒ cOl.LF5E:t) vSc hKSTwYzLEG.GMIb!3I)5^/tʁQOC3|1Ax+t/9R-ej(0LGbR씧$U^q m9?pԅ{TBgjOHOD\9=TgabF/{FH?G@lv&d=x/& ']l.KAǬ[N8) H=S$L=&!_mC 8>ޛ T, zq ::bD0 K''g_ߺK]_/dn:8`1zj5᛼~§ؠ 4F/x)LMa".3r~U]]F.R2J}uMRBBqY݀ǿk49!QT̽Ƃˣh2\eif]EX|ٰ7>hcoض2K(\4u蝨 9,6JiNW9{WuݲF yuZ"Gі`ևGkY#9j(k¦,U DS SD51] #e;Ne4ZqTJY\oD5Ӝ#(F̆G %uV~R`ҮijXw%S UQŊjq_ڸ0@\ G>J]6yC4yF-$G !uY">3[e dJ<2Ux qqV%+8xkXv` þօ/g /gW$eN4nшXu&zl;0RaDBU}0Rgɟ|:ĄKpBJ睝 9* @'>~rx 40Oҡ/>&$MT)k? KOBY8oT;Kr7-V8֛}[8~S6ϋ[e {{w~̵< {=}xZLXjK:6Hy;+z>w{hUߨw]'8lN1E6|@a Nyg`ӝӚċ~L,Qs{w|2lzIYMΨyS\C5^-A7~akri0Dh mĬ {mT& CTcGq=Qd@%jS%)(%Qe`W8Y{Fcrv?_ά?*!?sYwœFE`'ۚO^\MfC}*i!͘hb99LibNi8Ttkzo@4*aL墄2 9M&84g{YR:&O6yg!$mY=5X7a!U.Wq4%62FT^uGW'IwO0+"2yϞ@tԴ {CuF[ɶNP5wd|9뽛VHNn54k!m>5(dt4|}b}]wVA %^]sU`F*KPkw˲suQw>-}. NjQ;f@kZf+m͗{⦙oxgK.  O{,:M oz(w 3d+GꥯrZ3d@Z NWKDh (Dz)9:0֤t6MK =m }el ~WKYy3j my=&:bv`[܁8_1e?JK gHJ3Q;hiVxJu 6k3]7o'YٸU5ر2oc$,jϋFG41siL(x ,khy+ d9/L *w&/Xo0" X-r ?!BHo r?|%UT3F:s7hQsk-0-$oP)ܵgtt$N 9%hO/Utt1Yt9vx}6gޝ"m2&C`dy3sZv \kNN kПSݓ+BB8;}"L/j|rŁL[Q(ftz08VIF9sk  Z"`yW&gG0u Kz8#7Q>$䈱qd`I#::W '_= [tm+-~!w* im u\NJ1|;UGZTpEENqΔ7-HT@wnsxX=I*ªa+~ہ9hmLGr4+؎BL PF+Nށn%e vOl}`K S R(l8$[E9(3 yZaNxU!+xp9q+z~|ƨ&F5_̻g@Ku3uT`B4 p$_uKf` '5]N/o;_pP/ɊlLś06>%=%6k&mgf<2@!np yHsWg ) 4mgfdqˑcj|nj>5I4'T5}`i(O޵0-_PCdi؞赼U6t/H”L> `q[,ug& R\QVl>`>M+2pNDHs<~p1|Cf]w(oa9˗u^x1#סB:!1vVXI<7|UQ&1 a:-#:Zmm4yĺ<8؊爞RemΕ9HB2Ɯ^PGZf>YgSfͭp=ެI *%;tx ޜj7ψϲ1Hl URp,}g?~801[UOԩTD?b5ME%iك磽#y?|Cs,1wPON)9[ Cڸ'.*2o'vF,I*1Tx/XtʂΠ5HaD}>6YvLX4 W\4R{v QZk8)'jRM+W)؃YWO!K!UƠ$NQD"&E83UEb5PH=toS;%rs4(_fdf> RU('h_A0ZyAIXrugcA|uE__cz3Ȁ$kL$`;z[fO$3_,Iut[a3 tbq!4 N:ВNt3E9|?mcK:Y=aI>{>ʑ M(LK;$eY}Ҁ B{>hTĮ_+3h&i4@!]F$ sT/Ԩ]?(h&`(JA$fb$V]Ȕw$Zgy,]p~dq+5<3Qs ш׽>:V D".5F钸%\i# ݈6(ojNTj،&M2qΨ?Y4U|An[ 'L56&Bk;ghiյ9{Se]h4oגm3. Ѫb7qLq:>Ucte0r:ѦA`Gyn@pEsdBFms؝vF֕Ms j6;^bVuX@׿j4glG= ]{2vZ^#+5荣/Z/ZG0C,u {q\3)K]ޫ7M>M&݁8]Jxy)P1a|iA0U7E"\.q; G̖ٚ]T[7JṞs%0O7 `; ot>lUO2FRdk> ^:~H,]rZeW?Utqn؊0Ux=6\}iZ3,)# *Ue^guM\wZUV?Qm r\`6 ށ]dh^j`O޾EV.|v=ωjm5VUm ]U1WSzzͽwGIb*kWXm.-w7I6~Y Y5z1y}ͼo, Baz]c:)fSnr~9ԬC Sz)_x7V`"ÕϖӔ`2zCJ&v7/i\aTBBK=H1x _PURgXHѳ OD5fp넪3JY d.fvmÍj+0(3BdKl[@KwS.tH!SI8'?VՌ+%S6sh3-{?_$ԫ?q25 WۺPBkli3p[܍=wuW+@)G-#Q)ԉv O˔ ӈy=Yi=T{^8GdqI~OUOħZC߼>{v%K[3 C|Mߕ!!;;}">'г㛊s~ USwZ晴WVD +#a' ,z+eAZR[|^8ʠ>d0PL`KlEut2Id|shCSO7-}]z !+^q5-W2* Vz[hL294 ,ǬYn"^rdb^^딣7*/ T aptY7Z4Dn%43H#zW"hPuDf!R3#~"rMXD[]z0a* uRGf֔}-#چ')؍ZFP]gDlNGzIm<13lJqZ$EKKJdqM^56nPS3YZT 8.ܪsBD~:n(BÒⷸ"2;'vlf:Wjq8kB] .o {dɐlʫf),eAWy4vC)0v*,r9~ nt߂cPSQ~%C'|iMٙc3MW®cZYW$5]R2lͶN0MoP򋮓_KUв<`D6@Y.`J`wx (2e2<5MTu[oȓI6n'ԟBMHMYs7* dÔH0sF:ֱ)l!V#ĕXS߹BW7إ7o86>oBj,̛E)D H$Z$Eߧߒu7sjڲkjt?Tʸ `6!=ȳ@1qlB!sˍns]iQ`ʹ80p*kcq)Y:QW+f0B1wԵQ?JFZcay&tg ޻͑-e׸y=Z lU[T{h&,.bMʃsq$_&DkcEo?r8l= a6)**`2,\͡lcqOqFPɪԆ+] ʕ XPG p+tn 4/v=XM^N1|Islś7c5+JV6An}|")a%~.t >K<zDt39ümq*늢dljۜ0yFeWE/u$gKd )[{zO>Սy͏C1h , %\tXb,w}Fc+B[TB%-r5pWƿ?`ն\uLdiP\;`>95#?eƶiyvI\ȡ `hӄ/<_%CՃS;(s[yQ ɘaZB 'I&YMd3.,iNw%1G?NA{b+rcyײ GOc\mNL5k6Œk j5XkJ{ݬ3}XQcTz̈efVN@4M7y!qSިYq6=9ġ Q)z7 q q粣a}tw M20hYjUX8[ ,/b%K5KDT.* !Mbj:>@>#MWk}$QB{~,aM[\{I(Lr8#0Xy[ʉ9h.|~>' f>!Tܑ91ɂ{~ՇUB]ɏ2U!,|+}b[&b4ot\bwU$P*}_kܠ/?Y,ςh]lȵ(2CڧCiA47\bdEt_irQ{E(\,@f,+dQ`;8R#BУS(L=|Ҿ<D[E!.s^qrn KF1~r~}_裨f,eu +gE Xyo'GGl7}ݐ&3ys8>I- ;=VApSAK[:m0{YrZLUqV?.7B]oRMb7%"1lqL:=7PdX?Pw}`%P 1 {y'AgV#ߠ tR ;NuhAe20]rH\@򂭂hl7nw/?1^2Namǘ^tJ>dVt au7~ҍь[>pes:"Q:?Y*$XȎH-o(6m*Jl4ёf|uFPfFXC$/hsB*u)gx\ ˶Ƽ Dncl'QQ$?y n fՎ&gV睥c?*}SM.]q,lSg8}ŊmbtϲƖN֣e}Hu =,UF6[WrExޟ7rR(oȢ & )j%H0L ;).Ijo]6]Ռ>{˞߸4nj=VԜpt2+ H& Ae0 t.B r&# CZ }xȟTc-ohEE>|MSHlrڥKcOm#HW3P] c*:)+@_3^%TK")ͼ-ͪ /tݎwv^z{St8uڐQA) }gR?I˪;p8~d@/%էtYtZg{&CVegr;Wdw U1bzƻA 7 0pYkdgw>p4\*k .)UbDp<| K% -/&!b"jgv'ta: \[`^zhDn}/Z_9yq #vߒbˋ 3'^ߗMf|Q٦{¿--'y!gыrRǯ_}:ERDWO8=|8++gLrεy<]Mm}q 瓏j}0s̛Ѓ|~V=K sp5KРt/._m$\FvUXv !OH9"p>dQ(A B^でcf7}r@;ܔ~?Vt(}Uے奚3U8,Q/h>/DLږl%QG[>Szmp!E!V!z.BG{?r#MR̫Mpd^s]yې8O-ZX;RbzCu(ϩmRueB7pLʼv+t\ JF+@B 8t+Q25Ѥnv 4S L~| q a#vI[w;} z֞ 4$lE\?8*Zc)mT2TͲn"Ns-><$.s{F0xM(lg+C-APcjyMF"& =v9 m+H+JR x勺OڎjǞ)t] X#>tJ8Y?.Ӳy51n7{ .čP۳R-UU)nUκ[nq ~a .Cs qňq|'`u"7%ծCӠz9D2BuoGOX A+ĩTWTт@R ae QA&-7%\yA>ṿ2# u\g$.p }!}"qR.1Ro[K'~@רBblӍU0z*41cwIc)`EFEF|-YRST|kaWa;L۾ Xr mr)PJ L+d)U[W6m@Tp \aӸs?yp/,Zq^' ?p<̖R9+UUbV6a 51 *⣻TyJЙ#vpݞ$Cq,{|B6SEɍz#SI/fq% g~j[U#2uʮ9]NaSI2),L϶lR\smX18UG-c㾌RҚy fZW`;q u#kVaBAk^d GD.J٧ WE,|LbR E4~ߛ ;6KAO~;F/E1Sʡk5[Ǩ` VK”tBs1$at)f,٠^v]I+x>Q2Xl]$iD`,lp( pΣg/n7 7=,CǕϹLB$7Wp"y}.{~jfĚt"- ~^j6':.f tH0!K ]׮.iF6|C{DX&P(v-r?w3u~F7&kF2qĔ"n? &Y'X0 $ 8פ[־0$9u'q'Fo"oc_L\ r˴oܡ 37 c؇;|ؾXVvXi^U^{ rC̰ݪ ;ms#EmތX&'y{Pr '7Q|ܨMo'j+>R1Mߥ<>X~:+!K_ﳰ+[ Wc`^exl 0i FC]}^{^1]|k][ښn4z7osVƂ{PۑR)g|ҹT7?^R0#=-~@r ʘJӸ91{1x5Ł>]҇H D#Ң?ѷy LٽugtCQ:{mwU'CqW>>v_DHa@žj(fV|uQ|+B^K]g~~=|u&L's{|)fQǨI1ڧN$#ꁵUi 篿<DŽxE,QHJ)NQnYSqd%@KֳcpChN!&v] 36p\^jb{tԡF;Uw9Ͽ:$vO,0Kg_`;& :\,ҝA"sq+ s]Mguʁ 2f3}NeẂE6:KV("_E| 8#WplJF.QIuf\N6~_L% [~*}8F9`]y$Sͪ:3">p]^TNޖ'!# V{h|4r,ޥn³ۿ#fsKa"h;wQ9]vi])<]8twd]MSDdDw 8ogT̄CR5îzrucT2YJ|䭱-#eq :*jXOC7>~%q.tvעU'h.tqe-vD,5Ѯ_G @))byro؂4}e_SO:,t =EWewk30ѺcҦT\Kc4c{q083._`Qw%:9Ü/#Vu@&|Au=gh0ezTOp)@(' a()ԸZ,aMO`G7bj~=E!l2ܹJqz0XvM d$+&?\R2+4q(Gҳ5w.ʋq%1'=]޸1ڒcx1qPO-& tp_} #+6~}.(J-5y "ZjE,Y=f7<kdL9YcTŕ]lsTc5% ;Sa2aNllʶ]v]M]ϩ],cĂ{;07Ѷ.lZ^Mki0MP_ḭZ&p{qO KhꪯE7LhOX.V AdžREA”1(S@%: YhD|r&:^SPmeQ B.>S@TuCI /K(g`dRݽgPO3k1gQCЇRl! kl|fІ+ AR~:|g\1ٍ%Hol52¶;UfZËr4ߪXRJ.4=!VЊQwiJ"61.oҹ']s_~.wq^lTo8MXqq󠟒yh7CYM eDZܨL{W^Q #(L1~o6I:&?ТC6EzT#(PA %*Ɂ J0M7aȝ#pv\-MR bi<'yyߪD0d; LSƟ\OٙkRpx)?l/yndKx1 ,a5Go@bZ=D\njqe E9y'\[?WLycE}l{_ 鋿>[اX#[L%wb)@CU sg snO_Y9?rOZ#iM`vo5p!\ řזɠ/~U*e!⇏z,~.$= *񾅡V{ƅXC.7 }<*F}oSBi΄tvدb\ uG+vc &}2j lfbOcˉxd J9_7jr´t%:g\N.oHP >/]<"F\tV vN1ҨKba)6kFߢ,$0[=u}R. m!{YPh$݇-lTA[9uL(!v!iiRqO΃gڌ1 P{83"nƍR-[Za 44st `O @œj*v@YprSQ'@ zjTRX6vݩ0Bg, 05!/DC5%O1.L}g-UBl&dž'VY-؂PaMI=kFtzےJ}0/G59.y3,Lq +N@P/רź8s{g&0bU]״eUC4# N@Nh@3'Q^W99EfZKH)a=$$l@_QfLx%SڕRg,RR|Ԯ"E\u oLHlJA#v~9vWeL "Og''{okw:L3.5 h0@6̴u9sA0Ymx\0pǬ\ת Ĥ+s& 2j⃅jWZAjEFUFh[{:M P48ݑ_O`8FWcfLz\8=r^zL2>sHڠW=nL(yzY<-e MMY jpuM7PUMg Bk +MHPvG}pBMq[?4zc+afdcɓC`MN0H\'-j`pSZ~y&5D rZwCW%fA~2r@7r=ryn|hnHa},4])͠^;ڙگk8d[H=T\á[y-Ѧa3 k&2 qt9";{Y!]@,-:&+GZćN\9ƌ״YrAP&mhu`fE6^l oJBk$6ߢB__>^=݆v.U=_7Ƭ9ƿ:Vda5!J4{@2^d%!gaڳ+{C^#Rks4lZ\Yr'dʜC4\F\`S^۰AjCPȞ}ew}Őq)J)x?´`vo:C}\4#FCMd@/T=iI|)l1IyHRDJRŷA0P܄AALm-'\H#iAZpCSV9y # {0) I|kWjl%An$Vɬp $>Hp; FNpcY3:Y`Sy%0<BRv;_㤀X,U/6!a%lw04_*|aaބY19\HfBU*9͑q(Y xLH@.+VP"^)/U!i#^ /3'g23fP,zN P*tXCDQ1qԜҞA!ʆT Bd4LHu<\>BBѳۚ<At)" pLx9I@ a;嗸j+5ɕ^qa ):֝ .5IRqڽ}FQRo,:ԡRwhpv` ;0xi`;"3ɩr_{vL@ܙݷx*2.@~ Rca{oO;;CQ^E8qO@G+dEZ*[po_>O$B itIƷ!+ua ˆb}L/΋(tipWrh(8VʖZ=HHb?:|a0eg,#j8_auij].{2%n氶>GWz zպM5A7r v:%k2y} Z;K}sejr am q-70Oq<6 sڙA> 8eKE3F 7Z3s}k.~$ $m*(3.K*)l.240y΀epYE֧}Ĭx>%`g)4 kHTLS8;AP ovv|64'ؓÇG?&W['cBh95#'<2hl$a]Oگc_GíU؁㾠xZXڣl@0Y;GqP1RiYӹIԇS<>~zѡ8x%.I}܆8 " I u?$1=BFm !u _|9%  <^;=-\jr5 =)#A7>f?1Qg% G&%=PրIdH.==mwh@pUIFPYc mW!HZtƵ>"#| 9}Qʁ CG{Y-L3'&Tsx 10\/==?|c\vvEGG/AP<~! @IY鸅3LxLJ}[QYfoEU$sC>YD RVdaE(SNpLJbɐ^[p{ݿCCɠ;xp;ֹ~?vS\4DIeyK3 /, Mp 02NRR8bJ|G_z. #CNg2*&wE7H"55wD Ci~VY幹Af3ē&wCnƤ4MrDB[2s =lx26KA?W9@oY%mc=k[Y3ޠw|=Te0r3djFA3yLj*ӧO:vn߰Cဩ˔2V|"q"\i<2 -]?('mɮ}0M_巏djzh6t;{,*q S~_dV~j*}&/d A?^~ 7q3 -]/!EU}@Ovw-Xݸ=˫U0HYWVi [H}9«): xంvs|M8r 3")=hƈ7Q81S4`bQP%~r|`d; b7(B9`{!VJJCua넘3Cԥ4Zw g_ȹd&W8Ipi{G`7ubLFV!b-#ݮt9~ #kzKNj pF5q8"/?l’{C"IJIq YO1FEt XCd=0ph;T7Gzq2;O_q\r{@`^8ñ:o k;JCK5u6@0-7)ZztX%'vϦiyG3zYv"'ߑꌊVZ++Oڨ9,nu&flyj|N-ghwH"`Awcޝe"j\6\G#fBdn%J^ |eX{ƎlUgk& ,q{ȸ\ Q cOŘ:]^ؤF?=>c'lU[T%ha2 5S}O+_~ՇeC=R3Pi{}ˍ)uNף07ǝa.[JqiHb@&\y+ű~F]bQGeh,-qA*оSRFZT(qӃє*]X Khk 3Tun=T6PuEK.99.c&]|9R6=!S* ޘ}YSaɏc?BS4Tpchylw;j6Sֵ!G:; ڼƜݓ~3 Rc{\s}_V5(yOi)<)m!6TMM*ETߤ1*1R7m{ ߾&_i}N\@F/@2xoo0\$j,?!y-}OFk2#T 0H[RC'"0 >Dfxǡ aLAph9rHjIΏ^&"r ݔ׶NFƉqP[-ĘМZNjΏ68ѯ>Unzs+M ۮw]D'gDݛ<`ku-g 'Κ>;bSo+9G@%zyw\,~~Gгa-eUum6 7\nvd_ԅt.>!kOu$ NjD]q^b@b:mpsm4%/Zu+K.3 id)<'?~FFX}t= 7O`{Бu顶p HAR^/V,oP;W`~΃ñGG^>~8ލn;c>P_uQIvm/j(_ƕ( msN  K)01T47FaMi[5W}ͪӾANy-ٵW ?nJS%rw2Gt z AA8d/ 5WrъqU;run\/Vm%i#G.q$^Aǡ쪹XqcS #TƲ¡2KMxвi+_Ce@w!-e:znybSr( (H%hN+jsB0[aC3 T1= m`Y4hC̥,~ ]ݍ$R.`0^$^ҝkٸ>{ATѴxBq[<`郯\G{8pJP?VPI§؋B>@b4Wåww sA%Y; 6δ[ WEA*.OHm+^ Gcc>;aJIΤ3J/Қ@:7t:w59HޘO! 1͇h 2,RA)ޔd}X-'}7{nRGAN()ٮe[V$.jqa|pr/nr2^>~)^/\I?5q[[,lj(> :+eV{#'aOF_sgPϷN;Y4 zG6 ,s/~Q"Xz)H#Vb۹j0jP%hENS~7tRgNo]!O{X/>Av5R}y|ݯʪ=8ϮPJf;JňPw #ZòLF!aIR"d m`V\+j; :ƍ?hHaW{NK~`J!?]i߽5!q Ŕ""HEv?cx9 , G;D^2ͼ*WimV9KyX` ]Gog:..w$-c/$1H*zd[im򘿖W%m,]Xyu\ d،UpzdDž؟h $yM^Bn[{Zfgr$" 0$ dS@:ރW]Sf͢doGqNEc AՏ&{oxt EW}x Dž-4n팦Qj,} 6ZLCl8x&^} wQQ\U%ߣp@;O3'r5kZWZ:fVzvprĺ=bGul$$+F8Y 5iGu2lcbnCDw'vE(On&W{QChX10JHgX.Qe/jpGЕTB4ŵdwR?`oQĵ%bu}cԻ{&XW!ki_R3}2*l0wx jY>ާu-ёe6ިn NŴ'd~z`sp^k*1ȿ?M=C\Umc0AMYuP;|3Mn[/ ;5r^͙4S|GdW^t#ljʡ{+U]D^K뉙`vT z"I.C%i8Y2?vpqpgQW mq鑷>hh\lRN)05Zm#in NoT=wshmB,aغ%(q1`:}9%V4CiOnPR*nxJ,hXVV:LIlFg&5 {Q'P~94R:ږKLRmL1s$B*J?[p3Wu:g'X||9'?pYאԫ "\7 7f/& r_ [MespB,Sik{ uȹ8p[Mv ͧfz^uˆ3%51gqUSZbWlsdž&?Nkt f VHD$|1.NxW`ҫ-9A}ݰi胭KNءh9AM bR@9PT2,V䌹fIV"P7:.Z ":‡XjW_o#9Zp-@O,p>/ݽn_̴GaSgNw1dT?5èpiѰIը` j3J{k)Tl4eS$ϸ5w@È]JS{UnT 2Agf_`JNi$XܔFY3VMc>#G;K{Щ q$Ƶ|t+OISPMN̹w郭ukG)m1EDm iU%î",X/5&Ot r"av@VDrR3In S"n;`:K89IX1l c{W:FHFK{)6KUFT<{X}jq$,_iM{ ,`9jJ@VG7@F 4;>tM[,p1lMd&>PP,-}G]Wha,`JF^DxHI{仴Il\|H0B'6nit]^ǦŒBJX z5%eVͼ98фz՚ y6+\bwpwtÛe$+QLL-,kq&ڠb׹g %)| Mkȫ}M R1;`{ {8Hn> q!4*!ކ yYΦ)#MWuZ_\vHZQEl8|]c +!ˤS%_h@ 8Tkp.e=nOzΙK2{e5<>iđs~*W^OnjG#xqe*JqKne3m"TK)̪V[T?m=[vvY5P?>0,qtH. 4˘m1YWj)\d9k}pQW7ɺBc * [7@uEBOS2$ZJ!1_4@_@{_}znZ? 6vW؛3 Y?RH,Yejwx8w} \c{ބjMh^Ա\Bª SQJz6Q\JR6^۰;o7 xk6  3GkBq:UN8_I}~#g?ǻenXboG^]chf qF&xOϚ~98OA3 EїѼS>m5BqQ}`jrqIyϷ$T7@q8yZ+с]9,F[Dp bXA&O=FnbH.! ױ8D!$[7]wp"g+:͉|,-h  BP#ě31D7{ R#I;':d΋ Ňh7QW7žsqՄ`jQg-<"b`Pſ;~>YB>HrprW%djhYf! pJ%5(𛉔HVYLz,XdY> *r[A&'^K>qܻL}yc__N?.7q?ȷ3wץ l0yn8O!ȱF 0!gVw?owÑ(qXO1=zg'2Y.@3xk-#bFH_#̹nK)q_7S!Oboi_&f\V@ї,N7C2Ɖ?UnϘxOY'HKU8 +#_ڀ|3H % pLh:薟*3ao/, p!C,[y:ՄpNxU֓Kޢ(Ccz*Jde H8nEmpΩZƳ=caf~)hHVa-|zQ$C"3&T=6Ǡ%3/F\ULx$|wwsCGKk,\J?B|˵hR!e˞)1OIonffߠ&IvjO:G9n%8c#@Ys$sh>Wv8wң .5ΆNŢ?F00GDĕ[=GrTins;'}.Uz(L3y8W3*\r d!I}$$A 3#˓H$ܑHτ1F`1SOS\V-_4xlr! Nx[^ca6(`>._< 24xuv=2r5BQ JK(2"=p)Q *tFv 90T WDT. ;LS% IG!Rl:JMP%C㖛98fHGh 50&S./G=( bA'B \hqpWz>0^ Uѷ6FtWx*,ġ *Q~)pYIr'hp7G8pwY~Yzi)҉p8e@%VZ6UIߠ kԱgpwo$9nzƘA#FVo?89"aT""Ј*m@$S]F非L7k炌q%F '렼m<1/vS/@HW=#rQXv6=ioNX E39},#z=Hl#ӅČZL8|9Q DԔl 2}х`/;B2P*wVp"FJA"28(g, Y){"9SPW̕OdhA0g0B /k4өd1`#l03E2cT,"q UKuBx3Uꘃ#(TtLY+")K/'NEmdtqؚ"$9u>/"qۦ!`^0f$!;;@u{}٠ʔN$xs[wsŤc}ڎ2Fx^ osmQr3+'C3Cw9!W@|ɩppNC@<*+cYeLn@d1&x+A",::Bd?4L]T;' &Wxʇ'JP!i &P3\T?ANglGa vZuF1$2*cow= x$/81K"7. pF r2QUTpA,cgFbt9F(m0m]zFSL| Axdf C2Ք$N*_! #ֺDw#d 8k40c©kzEPL|}٫+qm 9S4#sB"뿁 pmB*/>Fi֯Lo.&a$|B,U{#)A&ZƂЂxLJ1F'1E,@CA G-Yjd)5 g9rVI['lY( q@y]`H EBiut`H2!:ƄQZXD6e<Bl g&wbpt7&9;}},릉rV7m,J+0mpKKz`C/pB1\5?'hxj"/_Etfʲ((8tl\n,n9̸wcTFO)[Hv1tˮ.C4aG`B6` _xAv<#Q(1#qd|V̒[ ?$ߠTO>4#]z[՝\G]~;dTۢSEC9oVLq{7sȷоU":=&\qAբ" _P *nzx 0J"QξJl#B p38 p@t$QdO eAM*OHCF pexa@zpݥ7ߕcTF4c2e#.{dQ*NN#$Y 5!˜"C$26o:#p% N%rORr4N9b!3y뀉v$"y`Q0EP![~4A(~yLɐ|"B"f3^ILpEW8WS2"3 ofDR=Xq:Tһ&o˞|:Q1;ax&Xtdm"Ƥ ~G5T!cf ѡ1xoz$~N0BIT:,˗xmeM&72U8\! :|RyQ)78`$ElyZ srG2JY~@i3@,kQtK֑=.$X.<`ʑBddvR 2+g;2FCJ)1JBl3L2CPQ&0y"֪ Pe-MJ)+!Kv]ѡ"ě$f!Lo{2"7LL 0`'rE\b9Pi3%3Hѱސ$d3P2VR8*!+`"+߁QjLw:8ݙ5`(=8v`/peS"QDD{6x,CvYֈRα gQAG 0FFxi[fIkDk"E&` -9:Zb$Ӏgk+Ix$R,G[icGŭq RG2i㷁ŀ@ jAw `Lf>fFvtȇE+=[{UQ082|Gˠ[șhS^!Lۺw=q)S5”i3cjgTaOb2o>3Dy\ O"3~9t31:(2!5a Z7(sdHVf Kj" o$!-wصQi0Z"W)?U " 01\|E1n+sK̫ɘFdhA#hW t=w, 3Ħ) A+7kdUQJUQ>2QGT% f`JS~EOiAkY0t'߅UyƟL=|ˎ @LKk\^" fxO/xG ,oGHZԭbNDT횆[QhEdq3`1Ō6Z\` fhd>HJ0@r"g$+mDSFz5,g$q3D`ZehCF%< B# Hf(2 [bO& qxm7mˁ.x;/s7EK64fQɺS!`⢢̟ cJB060%X8 "Yf,Ү t$F&w!~ n@U.biPbR`>V!$2)|T]kD4 Dz ".^D'}^WύTzADm5)pD g52.\HL¥b׃2)-y21v"؁"E*)X/X* 8ztͰ$~'MzG:0&b*Pwӟpx()xټDd8-5EOwfڑez׼iݒUW+a$oXFn+q D ofjͼ ~ 6N'djJa[o ^ûx2po5md["k{E ׋:P-f5Dނf{̶W> aj s)-[GK%[!z;P}R }[om/幋do Hh3UCIJ&XWE鸡/wԨU7Gj8;zf@z` g3 I+`D4*bHQ!.J՜EVD#"qY-E_w\XDCN_#N7} F0cD,&|gt 2Ј`9x#]2(zp$bP8 7h:3H-7]9Q rr TaLޫkOUxs '%f58nBӫ0i?: <GPtw Su״M-m$^N$>gàFj6gkU mtp4Z爖sx7k!h&P#`TF7vP9>kAkTm";"`ng|染nVH!yD*H9 178"[%ӟ ݃z"IDp)J@-6wJ_tȓ1U "7~Zʍ*HD=UunPSE1JЦ[73p7|zb\=p|5 2I*\t`Í#gEȑh24iۨAp%1YEzJR7B]c;QG ֻNԉɷz#@G^iw'q+#=-pz΅MXEu~:H4DFfZ;koWs$(2JwrG|lZkLT'-t+g\$=y+qc4iZ-$ K0EF#axW0TV@v) 9ZF3ȸ|#$zBuPF):aF^rG 9M9QG%h@ѓ+=(`>v*$)kjAku vGTTa) NȌhpFlj芜 c|wה2{:Li"T`쀽l8F'RBBh\ow/Q EfD v9e9SdT5.TZhr6 耏$um$P)t[ց 2e]( ھG,c0b$, Q  7FNGl띞j@kmBrQxHU,[%@1 BNڝcBKK.^L_F}ioGg֯H fM4~(EZd(Z=>=2a&!f%"c24p,9:gRMe(r dZP\zjxrFn 5] hY6^.j.4n,gؤH)LJ. Ze*Rsīi`hgJn8$>%sLżOHo0n*fD<*Ƙ:LVD%nj*'X&iڀ l$VSJ厛Ąw`&$i&[b[JAډ ~Qg")J?`hY䎛IQ5}8.^{,ML waNYwUY|LےD&Gƥ# .2IC , R=kˆ, erEpT'v}NIс Eӄ#jTdzN~$&4,#,CKI,ۅÕ=+7a3SD@g][f+_gE3$IJԢs4%׹zg{!=IqLޢ HH1FMJqJ*N3S^װjB|M%>j1rH6"-ieuchBh،AhQLbgՓ&.|Ԩ0("fzsv61OU׷ eJPIkI{xYD E[NWj7V)Tq=E77{FJb}YT!`<5c L" o) D,>DE ޡ)՘\Ht 6["`ox䃶 ʦHdȺ&+I< ,mH@AxQeBJmQmųshqu34s ,&.h8!)s,E%`Hi@#a}ݜM&<馰@ΕtS\e\TCf{/5H%d-#kZ&{A5)Ix6h"&hutHh`*ym 9h 'Hk;\hTƏVFtihZ'=m.<ȊꌦHa-a'rS)P6@E<[ /!xv#h2R@;]u@ %˼==xBZ#r,Ie}s\ .6&#T^vbIpdN_@&BDKW'mT1+4Q5xK`.sk:\Ү$:4`tR"-a=@DZ1@"t7Zip XE!Pw|L #M@XjC*sczwD/ڌ5D2->e9JM݀VVfUMRPhn ]g(L͈ت\p&ŗ -{4KSN*&l$L!BU՗&vQ<.kʆ/\zldHBtJP̿a\D?DEߩjPMxyCSXr.r&9%RI Ep>̥Uܰ'‰Okz)E9늙?@M_ LW#JFR"BeF}=$!B10+YSebe(_Xj-+KmeYs}0˫a(ϻT%98IaZR_SBpUS|nѼ.ְ\؆qKsSmMh-= B*=w(D[υɄkF^;-@IZSʉ8!α^ҷ7d&B) LD|{Q Td`SIc +#I*X@+*B&E;Si %dEDYTTU "EX$ +(4T%1MEic& $2k.s]Ɠfm b1D| Jש'iFn{%u*ؖS/,TP$gE߻i,X+h<1rmyL- Z/QJ#*7q^"1KR%qOS&tGEpHQSY GA)udWob؄ffzuȄB!t(}{!ܘK+*N^-mިUQd|G.R(4tF+M{ӈ2DJ-TU2@꿞i-rh-LЦeƚ-۰zHYrUDQp]DmP*/ I>Pa8I f~UT#ĕs-H1pC((50'V*22I8U@d"^tAPъm-2ITbX9~êfȶiwkX3Gw:0RDrQZ8u[2*HBPi)THH3LVY E+@d[i:JhP-Zթ\S&N TLh4)ЩW^Qrl3,]*]^)Mb(~U(IDDÛAhLk8D\p" J1(ĖݸT^R!of݇md. ly:>yީ5a` pG+&$ZQp05Ibjԝ1:I/@mR5j53TJHoO :*XHJzOWiCH nшWՍ75K݅ ܮPuUѯ9jEN+&>@(Xa6xӹ| \NL5OM kƴm^0 v dr!L$-M*irzrPn4VCƏSd%5Nt(TG%RR>&7BQ̡pB*RF& Rcf~Z35uR:™J-I1^ˈlDd*JlqG+s8 hl신im0ЙR.niǧ'~{Fxp9,xu3b" ET@ÎtDP4%JFzrc)6ZœT ܅T{|H%iIh0܅Pn|>%Ykb35WdqJ2vܻhq Gb`M`qx UBx ;j!V%J菔%QJp ^ AȈyު6 tB@o- Ɂ-^leɹVCmH*J*OG3,8 2"shzKF_[U t. cѤ4 T{8P֙ ]%(kIPIVJ< @Pd#s\ŅU܊#.0X$lRѼ VH 1ԴuqR'CۚUoʒ5u\ZFj-O@Шu.TA EnooQ#(?$P,nE0ޒ083 KGAOd+ƽfN4a6Br1\8Vm}=h5l`ښV*d%e-W#\)=vVưԋ XF K"mJ'''׳'Q''RN3!]+ZJ P{E킀^hx e +`#]2G;:~3HeQcz䒵^LR/ʊ=H$u/0, d4UPM!HTf{&%HG^@aT/RHL {AZ)޼dBWxٯ/.HO*(HTܫmTܛ]t(MFfy/E0} :+a"{p)QqpNG9$&>.7p<6"Z #|`EBc_81@XL=H0 ܨixX1R BЛմۣ*Eh;~,P ""G%, $-Hյ> N S.*-lɊH 0NxN!(\& 1AcX:)D(BJ1U*Hɇ*j>)rW Fժ@C2Q^Qi QgΒwӂsQ:1+\QY޷5xE>8jI) ʫ>VoB7_mh4bQS𮸝t~Rbdiw($MCk`⺧ i'xF@; t2,Q֒09&xsZ&vm1RO&q_aբg:w!xS WqS6ըHYS,c*tB-2\ |d d85[FxbEKQ$TjG[:[طvaroaZ55ZL|?hD$ثI<J?K6<4#F \AN|..Yq*3j06,*Uq/dȃ!  n3aSVqs ;< 8"͸@SJ] {:LMmغ+-4Yu/T)ꊼfRt{i[/MX]VF l||vVH'Rnt5B#t.BL*{Bi4t.TQuH%ӥzg/b#Tt|D5p&t9r`)16\„Q׸T{Μ0%+tayrPcfҬ %&w5{NBCª2Tm4: 8=PUr Ѽ+o@2S-p7^+ gd(,׶|24JDrFT&(!U;Y*ʚҳ^܁C-O^" ou;.BlofnjQK&MIa Kj<sKGmK"9{>o #5-;ʍtM]HJj}#oIsu^+3t{卻QBRͤfn`|:HY&RB_5ëL$TͿ$ȍӺiV78b7]iPݘۢ맣20oƀp"@v`Rf!)C DNTGMQ ie cJ$J1d09$u>Jo.2 .epj(v΅k= MagRݠm6&xQ?9VKL{F<]F~M$6!9Q(rS9Bʼ l0B%q:B3 a[ּ#(F'))F߸QJx]W WWϧO$# I7FR `LFڤzlji1W*܍!1W4~)B,BbIV.<U HRQX/ybsoJߵK^f%B!Xޥ[&()XܢpcW৤:)Lau2CGrdiHРFfjmH+MMY9*5}[9*aFXqAKEL&O#lxJ;p L3!&5 0P{Y&%c!( Lz6đ3 SAtfVjūί||s6u'GtQ7PWBӅT} Y=BYtBb ?g,m狤dӯA?fü:.gyپ<sL>~dv>j/Y+-ֻ'տIG {:/nV^nԽ&;XYG|#af0\Y/7fULhQoiV?Of{,판IC;LOofݟX~fq\&d^}ϳ7./+_W}߽S;)F n:|sG7]:zeJW@OB[;w󷳋6 uoz\t=C=#nu}B~?=8\.'ݟWG_/1)m؏{8Ll#Rfn1=u }7]NvVӵJouxsh ^zL_cdqx lsyDpI—RH1wκ :tNM-jy*$hiǟ߬B?2a07pc9! ?cD7}vov= Cf]LW or5:y< qet10;%N/Vb7lvbu ><>%2&MZ ~ }mޟ-khZ[ؒ p-毱p ǜ@gsބ)C$7d& Yst=?g'3#2ziw\Ŏ`ӳl ?R#GJQߢu`YCȈΖ\R"1>!qhLv~Z-D# /0ݳL;bxQޢ6ʹ{;{c<عĄAw_cOONws$q[w{{{X+ad*d7Bij`m!٣9^}7ShՌKF:T-#U{^+<3*ÆrJgةqnE7;:BEt: ѤsYaDu 0GZ`쁩 S r{:wWܯu_,/tj*v5;<_-/ЙѲ˓źVu\]go/Wǘo!</'q3>z >=YN/gl.,lUn펿溜wwuS{M* RŬ;v%sacN[>~X%6uvvvO&^te~;bבrԅ9Cn}k&7YLA6;߆~Jw+wЧO>^Gmdt,5sf,x;VtT[U.>"ˋsѻXrTx]U]R?}uJ<&:֙^`3@7d|wU֏0cO97]̊9úYz#,qs4?\Mt5Jg ,]_S/z9ߚ#,gX6{<^M/~)o^:+pׇ[׻)1hIkF=z#?|ݠc?ip67CLr#zɴ-3 nJ|6V|ũk5[c4,Ӽŗ`j}rzv _~ x}/ex3.m/OwDS %&6l7Ay0! o'c0!0#XѤ1p3~~:wӓT̈s?9ȡ"w1R';>]cW'V?=d祼eM|8LӢl/XPe N[BÓݧ7~f{xNuÇ>Fqjz:H< _9/yú[/uBgT%/o'88Rl}^ȂǠ3u;etO>dG;/-zj0N拾R[9kR_:=)]>z[bבoV8 q #&"yG͕Uڳ?n]u|Ad;r6Ǭ˳ܙsNU{H] da,7U8u^Y8 |qz@ ^o5>vAZ[ܺ=5ޡx o87ejύ\+,nxH_z)gShbq}#S~wkn4Z] G>?|O_~+_Km_wp>nwB۾M0zsXP~ȎB=NlqR7skqAIY_;,㟡w|oC"C1 d=37vl5u!$f+=>`XH+8Ղ!}b%Ak=ءNOJG'\)1sDNY|w'g꘡>~J0^9{{zCf 1'~&Fa l?t5dž]^_a{!!Oi+ʮq)(6!.l{9b&icb~rvZch-2`>.IA#Na45^9Vq*?#a5h~#.1XyAOc,,Ws̤Xt{tcn!}yl}Sɠ.gzdQ~_08qq`m- 8$rvDmOgShZáz'K$3R'Ĩ/Tt8a~?]gPgY+oglS䜯0q&/׳lX{EEǚÙ> ='T {";ۇ{9sZbcdsOw $br8ė%ɒ(}rr- oy ]H|"x8]÷Jt.] BmJڳP)΍1Fٿ843gI9?նeE8j-Ue}9/qWlya>9;{0x˘/=-9^~ւo͍z2h{Y0Kh#4;ߊKsr@:6y(I^> |<p֐9 ): _co%V c|nn_s)*MTE[%<) ydݹ=<]qP,6Ǻ3_BʃppaxGQ[,Ȩdtm& c]MS*)_Qdzs2s_5`й[4'\ 9q*mN9FyZ;O /r(lj`<?͎MAO}z@љ}&>~ÇBRtGG8$JYp{ 9p*]Wm-|-ܾ-v;+쒭WNg+nn??"4ڎV&;aƐ_E-ѯp>_pOKβ "5^FNM)+;Vlx%]l+F7h윹gux=D7y.zp +fN1?9(T?p 9q ;}7|7!M0{^1>QR |9aõ?F_>ͬ,C s(n_]to O sbg+=% * dvxO`ᲵM$߇ֲ] v?ZOǢe 5Ok7'Y,C4$&+a{jixM=KAIQZq+soIc"Delf7g:m,䊫l ha5<|_%[IQIf(_" dd@&fg+d%甦Lv{,TG}5GC=>`rx$XVK,,J6\ډZu#Ö;痮 ; .e!,uxdrk@LK`2bm_*ѐV+P@tXmPx8~(֪uxLbGՆ}pcwze﫿 6Ջ2rs`i'fY,-}IZ0npt!,mod92o V 6,`F#x1M|d`iC>aC} g*fsV0OYOvUCSXlI*\uZRŖ(RxrLO pa+o3"  a2+!_LŽv˛g~ьjaWvq^#dEYns̴-\[n@E wRmZ}rvxKT '@dU &:/#z$}^YHsQK&]67S Lw[q$C@9X*V!"N BhZJ&n0/ӜX6nly|YBBlAf]aD+\ac) eYA5҉pzy_(HH8~I’H^w+*#C'3_ǣ@́}>Z@XYD3&QeQO&e/Tvg[藞bZvpyq~g*GNBR5b/\7}:Fhp DOa4r6j|Pm.'O}V޻'mS,o $/.nI8Rڧ%jyz(}WwD.JCTwF(D(ɹ=N\(wːDqx~v*%{z-((Yڑ|ҶY3VAMJ6W*{֕\|Z+_BiǐSzd\"2N Q0 㜂J ƌ ?Rgq:nl"25i>C!4Jek=!QO?®O0•ʮd3y#uEMGS鱏H,4ZpѺgZ98!NnߛFCVE2MGB([ol);/X΍NlCp[lȈ*4 ݠa&1v+XeC0l`>N2RHꑡHK8$M9Iy.%,:l` yݲOۇF@_U'鬿N0cD{8s0-Fw m*M/y{y9&K붡r-I-'tK+!d8KpI|V1/0G-C;< HE,;gNȪ+ ;VGvՎ5-ȝ{ U {Z_Jة"Yl]gwu o(u]$m> M&[Tpe) | ]f͗"()[&p(7Y>e  & XWc2}couA؉B1IݔB̞Z 8G-9 鳠(ȹZef%ZdSQa`_FQ9IIE {B!uSSSVFlI7&`s\ԊLV_+S1PEP KsF;pgks/Oh8t̆N/KN,tŲW/,gnNVxkfnf(R%H)zp6/èV -x H׾bЙ䣽+\'HaxOK)@"$7He Y $ DZ(+ ٕ }0eE\bx\[sF~SzT3sh+UDYܕ(mAr(". xqrֵY[$ӗ/I~|^io0 wd*6?t*7*{Y>O o*c\oieM&҇'=5MncM'MV?$5޿kÇ?7&}ږWfT묮Bץ:-zٺf gg_f*].u7ln k7kSԉ|/Y䋲iofS$ ce,7$=]OeY5q[a~ҭޖM$E7vmi}%J-WZ||0UfFK;b7+jS,d&RR[K;y~YOcX4lQ hucI[zDfU5YK7Y>|7՛w6`I.JoJmUrSʒ֤jt:)ƽvLG;.$Vyae*β&]δ~.=O V 3,zDZ,1H9I8TCp@'զiD0gvO3MkhZr‘vD#&ǟ>uS*('RWZZgKo]%a)d Ts^T,CV+")-gv^'\BMr%[(Aӂ2LKZy->&ee 9 y,[(RV'lnơ|UT*nzj*tV!yZ36LOllY9?"QuDcI&ȉ].%ԗEqC_)t8H6NIV+SSg!BNC~%sGڑJ 3՞Xʖ , }"#:}R]J3k U( +?ذ9%Jot؟% ]Zg$?s&Qdz[e$Ty!3g9>'L40\sKY' XhCl^)Qښ^(ĝ%_! myI]'A {1kULn%lRk+7Ȉ7@>cŒ$+<5dK2$ kUh.i'kq8r=ij0.7:&HR"HA֢pYBx.8nu8KzޱSHƙC&bfLrƎD x,ІtsqhՒ) c9M 3+K|.f<7D6$7 j!T띃1K<r|*i5AB;HZt] ,K`|?ѵz]ÇD1m6 DvzKD ycu_ʟ>W?;`. L>qB'*tr:fM2lhS qʚflAWrsES#?Jn\ǯr `7))A*8+!f9;.zjAbw&HpnL걚#8k` YSh7-U&7ecsY|r]dCC`R961lMR!}_$)y %ә5XF{ a芎[GyI+}*d: ^!WZ2Od%x[G%u88=x/ݯ>35C91EUuXatMg'ka+N\,=&#t^%sn%1$ k8RRz&󴱒A̸r s- v*4,*۴1Ys@ d[N䩞1ud#ypeԖ|:ȼQpoUuP}@wLc].uԭB ^j@!e3݃}/HW]Hma<9ZrQN(tRB°d!ԘE ނC.p(ТOEQ6]PtAA2# Y[[|E㽴®0j/Ӝ53o;>tun] ٵ5oLCzT qbwd`!w_7gRT&A_y<8U}RqI~EQL8.0- ƥ\@b;5d}3,`[_հdxDԱVgSqH\H(:7uxA(MבTmv=c$v ;p%4|R^Hu% "y);z2d6-Bp)۪KZ-(K aZcSz1upNNU[tDIvWA(B=wV8KqzWSI gRB #?((*+s9>yX ȤK_^ %O<H!A@"g9կeޠeE^hVyq'nuY(㷡vG )ßgQwT| Noo_5w<|Ќ(r(9IO9 o8 |uԔ92AG0$$q66**| JnޜH_j:.HI@d;K=1NkgBdw&ښFMV0@bM w@;K Ѕ4L屶\ Ga=Sؕxws $38.qcڕx(ge|3>ԑ-p,͉B1m+% QxJJ1cCZNr'GH KAlTĄn qCChƹJm73#yrG􆓆iӗ.K~_9- Wڬ2֖R(YfE&VYyU2 eNư21ao!XhR7/ȷgc.Eh$"S.bh\Cƨ%h*|ݠ ޝGPLH+6bhFoY,_|zgPM EIߜfqlY|A/en+וȅ9ԃjd*nҭYVK>OB%:\Jg[iqwx~&4Akdu;g\3EG?fi ǁ}#ĝǍ:'}:[P`u<԰c@N"{k.MFF&EĈĨ"f_Tm4CsOEW\6:'.ktH6suDWOu-MJ̖sj-е"wåv.e7 HS9+B8?tS637[dg0ˑs_)ነ#J­>q~d&CaI&p' 2rz\/!ٺL4A1뫸mM:K.Gпw^1؞kO&tLdFTW҄{); ~r~{K)C͵X}HF"{N,'❑9~lgzA|`_0\+H?W&dta'IMͪyҼu&&M*)J~(jKLBTHˢ:6M@͍NqOl;VB?Uϸ\\N Yu ly*u vq|n~ڍa v'2>Ĩr)tٶly+re;|BP:7+w P\^GhfZw_\rN `Mj!n@H,95O%F@~IeHvNZ 8+{S ^~$QtHO_T59_ZU쏌 9ߴ `bR܉w*[e& uopH e EH׎ Uqt m~?Q4뙩Ps5gγ{hE8o jUIfqF[< ]@|3UV~j?vLۆa{H;Mma)= 7=͡;2CσG?YcOZ׿XM1Ltr3m&a?rpk#A(20i ܹAG*hyKll{իW;r"otr]7daAƅʋ|^u=?>4@?>z8Sf<}u$xn<1-Fyt0~8g|$˻&i~L@D>NS?"j ]A?A fp5~'i{2e폟d04x1#=H|ˇd :4nǃ_h?44I !-=_/&5zg~vAlVRٿ| .!E@ 8}`&Oqp5?{R=:; YѯO8E}:Nl z 6]yw]{Gw(-2k`Dbs_]=ɴ n&Odl~ٚkoO,g}=tV~ $Z8du@oh[wzcr@? ydE0:<8 N)폟?0(g.2.(冂CCetM`?l(2YcCeHPL )sժ $ ;L7YˇF/uZN-4 ü9J$©M8o<=&|z, ˢrEf Yx<RLîwß8pBxpe+)9Q6tۍ$$7ȓXCJH(Xj < ڽ^}&ϐYP/ md}x=v.vPc;kr/r׶˜iwFl= nĺ$lIC.2*:DE(.ȇp5 $ Q'İpHGwxeYucn(:S" ረ,i0{?o++\ 'DPD˃rX`P* ڐ$On/˥ &9;%)Xy<"T#=ǮʅΘ+YqT ׯ~1wMy9%hrpG9Nt%7_\}{kb#ɱFJG>jA-vh8_΄חPŝGPv+FEuFR#Gѽ 4/E/دkux31"/y?z췣`:U_Mί &`E9 EL󓣦T8lxX<74 x31"\\R~U>x~w LLBsS2sRnYx7m6%](lobfoj^)ĸonNixWBqHvg0]"PNqbS0WʱV5񭹭Ⅱ*3P =jvQE%KKNNbĪ4$a"Φ ~>*z ޵Ȍ7v&9RVcx340031QHI,IKI,.N-fhhw魼:) 4I]f^Z>ؔ ;̷Κ|qIPEIY%zE \>IoQ3{2)Sq/ xr6lE&v&_L\'jSgzHHB d] L4c߻v]2U{ZWRTͷY5|r~f<MRh?R^]˂݁XP50ZD+mw>L)"t).ls"ri`>HmRːYE9gb끹+沬8z "7x9ĿH np=~QdHS!XzMc H]L0Iz=osc&گ[jVUĩrf澌!OT@\:xjZI'2gR`EJh]%s .Z<64e ,ق5)9HBMmlh#:![`3 J6KxS XybyO+@뙭*lpMs{ d{] d6-u(/Z \ fL℻[h-E ir~k0W2#O~4幉mļ|+9R ZUiwL活Im7??xcɸ*:]}CIJvEa`AsʶpfB9->iwI،*c3hr^ ؒKTnpO*{%l8|::G󄩛$"~\95(Y¥e"Fnd\{ӧqVޘr v2;{&O:+r ¦bVx gxmG r 8#T Y@ܗ͍\(^Je rΊ'tb\+(S~ z[JkȽf+D۾bEI\h<0V';3l7g:$3$zox q:$#t9@=~Ut=>d0dʞl)=6:=jl֣}j |X 6̔x|c&]5d= e4Z" 7tq F 5gx`76M"8#6c0'+㎋U߻N&!-jx28_Kg3H9a֢-9GL)C3;j?9NͬF-/Exi>g٩c[dl1x/`C6^i&xЬ!d#11ɶb d$j:&bYcNK~rinj^IZQJBe8Y8s+&1OL)M,)ʬTҼԜLfIjSQ~yqj[fjN _Pb\IjE AeřI9@nEHƅT@y))N%%yP~Qjn~Y*XCbRNjXfj 5{' M >doA ?|QxS)G' Oՙ|^^wl [m9Ba4z%xkV; $?o5QxiI~j^bRNjpyfIr$x%EPԴҜϒ\$el; 9%axTiC>/GJfqbRNjJ^yO2 #%x{4M~C[~lR;Zu8@(57,տ$'J &.T\✓X\,X_&Դ .-H-RU Oʚ,+ l+3/k=9&d硸 ]:^hFb^z*X/17Abn9)P%IaP+Bp`NHbRN*T$Y9TuEOHAbQj(Ԋsxkkux&WnC=|E x+Df!uqjRVjr($敆T;%&N̫ RXRRTZ:%Ijd䤆V@UBAQ>px{"Uz$(XZ\ZTg) 5EhDjb.g($kxqB#@]x}Tn@o~'M4iRJ!=VzPW‚]g)ǎ8[Iޅw?fvzQĆv|v1 q|2'OQl,ӽ5?]QEӺœBB30qdzu"7^(iʦ OV,6rMA~̈́ߊYN*Bn\_D rʠH2ƣ(=]C2G2܂2Χyr6"͋'s-i/"M&ݴ޳0 ^!ntc@? AdKj-47h 6S@ah+,u(V*}Xe` "d] }* $ȥ`#cVO3lL`9ገM%n#q+~XQ1@ dVZ& ~0)NIk#ݭIp¨`}V贈 & n nJ6-bE B&nli6u=`}id masU{RfiLvޅW~pgݵ'4-=_u@nmUy+hICS%wLvciwCulѧNǸ6xN9A#1Vq_{dhnö&pmڂr/y$ۅMMkfü5x}Mo0&0  |bvYB*T׭I 'I.DAq @ҵp \d@5!-UX55ٵDTm]˦tŪw%OZ3!ܣ7?@x*BkH]sV&!nP9Z%9ʲ`^Kg0`Q3 Cޙ) 9m겼.TQ~RVjrI^z~Q.C 2>Ufӣo~2 x+[z!/WqjNjr[~^ɼ FXfj3.I|W,]'UT4X0Xs~T(5/9?%թ$?oT^yZf# `x-}_zAtrKKaXDm瘑=Hh[9EyhTvU&bT9kqcRvfP7;‘^xIҍ)vNs^bYS\k5$1?ϧx| 4bB!&4bhwl"vm*aEj!”H0SkIH+ϭNTcG6_qUS5~"cWi&fꂵ;d8Bp ̈43nӑ2 r/ՠ?2;p@ATP"5#ض-Ny= CxK";4ؓJD.0\LG pG[p;br@axvbQ EP8Ro^0noSI홤ݰ%'cZb$[kd6~0GF*wLGwBԛ#e,4]  ?U %¥+)mCl3 :+ Rؒ<5b{zZCSW5-'Ⱥ qzhnW xUN 0WR {+(>m6݈Cu:O'KP)vc;@ͤn ˪7g_HEgF{kbvQ)g{[1eȱ;HV ʂ^@<)h>E8xʀDx]j0z8b(@s098/(+!ݫƅ8=-;3|31X4R7,{k} bX3@zffCK gӜͱkk!^g* ɪ$!I`ٚ9L|ț-TmXG;\qfQxT89<3o,yf^J~5W-Cj^  ?xUn0 )" N&v &Uw_!.b~!R⊏'[̙Ϭ ״l}`C+kdF ᲒTeA!Y5Ƹ/"|Qo{$:ﳼ$1$/;eza|wcz sdyAA4tlcT7^o +/X4Td>M SϺ[GMsԤËvr)ukRw5[, M~F x% @E+nQ"ED"DISƱM=ܘtSmSpa/iDqm_,*8D6z;DDyFp;-hU9[$sѮ1k^Fj,8''(c=R"tK?5 x340031Qp MNMIepp̾pSjU+&\Tmigb yyzE S>ڛ+`>Y\j3ovBt+)I-`jcQWӟ+7방ewJxjrbU ޵Ȍ7v&9RLOF _xu܂Tǂ..ǀx?G_W[5Y1fTRRVHMLI-RHI- (5IID36 LV/x340031QHI,IKI,.N-fv){qY%.C$uyi Q"{gZ$3縏PEIY%zE [0me]2S4 +x{"]zc \686>PlNx;8q@glHxtqVԼ. s0xRN0WX=~5UDe9E3^,,NC̛Ƴa,b)ېG юܑXL_g$ 8|іBxc(Tm3ԿXJ5v2OXՅ5W!e )"%$t9>g,{VNYN_Ҏk05 KlER_9ZR۶Hzd[;#2?ԍP*:z: clk$7c0<`18\ 9& E=8 3D1w Ѝ/OxnoU J<}P8Ѿuʭl5ߔq~C Qxka*`_1}.t4x}Ys#ו+r41ARvσEb-XE,U+4fLd¹5}w$헉h?ȬD]=wjwY~,U=_dɄ?ozm\ty뺮J鋥˺:6fnW+[:CڨqKZKWTKc(v eO=g(uwWO_^?}uuY6[ C۹]w@]]ޕq׻:lBeNmKțDj {3oi:+nׁmz7ϛ| bds"í:`M~a]0n%Q"秵Mt@\;X- &zLXh@sYߖ !\e&oW:zωU;:p/iEWIQhj"˩:{k\,"M9=== &t9?whV[ dinQNmh8e^|yp{8(G>?4=g"K<5L)|d{enf;bW:V_=u>pҜ!% ը5֚"mGNd/qX6]>/J2E#m ޙLU, !:KWB]MwNhOHwF*x$EYmTUɕ[ pFJm-0^KmO|Mn_W;^NTCڢbԌ 9IN:Ɩp`h5C9u]\YEQɊߩ!xO,h_BG}Sdb1>@$e@rԦmSShڃa&Ox6WUqv+:٣ rACp*SAکlY!)oCg2tm03ފ9L `iYf[ A@З(YCRj1a5_Uy'Qwm%Ş޲6@2oiM?W$|J֓QHћ&I -V I9]4T ޗw&m%ԸE[tvs4CܹŦbZؾ4ҖsP#]Z3C[& y J>NMS.q JcF}Wd_&c&Jze11N4rrB vGڮ 9{-bմ}`#zIN]]4v+Xm,6ay(r:N_\?e{]9SLC[ȤU2WVm-ev?wAAksS9eda5L7PPu)K2 R\jIYf\vjǚG"k:?,hP]<\E4')r&>}H]s滢'ߠ,s:|6l{H!.9=$NSʖ3%8&ͼk܊]߸!,G4c6e+ muvzv.;Zi'qZ S e(YK{N" Zaj9}"F;M@X &R37" !6dDt23)gcv"8AL@Î<Y247yglXgVgKYܢ*X2OUM`d?=y2ܫSk$^zOY{u QUڥ1AiuD2Qh ːg ]>ݱZbCi',t4#5Apq n(F>PtRjZ_Ah,Q"מ0Aް=OqE{?K.Ao3XQ$P 7,$+VdE6j6m~mOk#aBL%o!1WEHyO]90n'&ER֕b+$2f~@~s7=d7dgTi䐐l9̲ȷϰ6(.7GFGC}b7խ [݊Oy՗BP#q=KV^|ϥg☊%&)~2xE_V^SҷP.N)q RǦ4En*$OSz%.zˮ lEYhfG.C<" :9q}0fࢳ'MS;#C im,!9q=7$#QAJu|Kg%+w${$$ʶHJiRaՙLCs*E]"ϖvJ/fڃ}$z%P9=Gf_`d/,7P8p2+^(ë fe.o%|g}ֶ xJxyxYl2=]^7U5x}TO ’Z=eֲ]/X5 z"Գ!yMS Oiӱ[Ǎ-*]G Ύx 4a l!>_s~okOuH{)+h/;O&a֙ZiBO˟`Ln6H|kf{$zI;@b*b0U)*׃&AHQD^A/ 'zjY={hdBC=x=24*~D3܏đ@"?Wӎk*yH[ +Zh-ʱ_nu[S6M ^77Ɋ$<( [=u"_3Gd!,h1AИpL'_xfV![E5IP^}wӂA|._xƬPnjM+`@d'P %ԙlFMvyDPW UtbUۋZ)8 Lt~uՑQNd*n~ >S6(#@-Z4{~&{v=6Y2IyE氵oG;𖎤88<%Lgߟ c<3jV0Ʊm v0^- =N5SiJ<B80̆1͜7',c#,g*Է˪bL\x}%CpP&}use:簇/,i5׽)se/ JșBV l=qoLvFa6B^)F Y"BB[m.<`;zןbcxf oD9ՍJLߢq5;.@n~笯 hSZ)lFz(Ǻ0xy1EYSyqTEP7'^KIl8#>m}m,6atO#ܪଃս~Qn,2*CcY~dWu,`M)VXʶOݚ"Au,:0C[@CJnoDKdp7$S%c~Z]/<]Oz}.U2gJHMܟ*$T/Gҭsz&m`^څ w<rDFPfAL|wH?zr&3l쑂 7qvrJs/t6M~- lfVn(h\ć d\$9MX9k/m:xσ=M0DњNcɸ5Z.dj +z3l[0r/ 8փ,ӓ5^/٧<5hєcq(|ca]48cCA3*^-2Yx-ϔYs}n[gmte%`Fդ^m94"ADx's \_rodK_3#уwy{s mNNne6ЇNF" DmD:A)3 KB|+_'y'Yp&!k ]Ej*P cU;:{>xK }@")8f%_Kś w@΀Bׂ5ńzU-j*co^1h@FvhtK7Pi֝F-5]|n:P9>AIP1$LDsx e`?|-·`-jO?qmڈ\>%Ws74|W+.= &[y"aj a]<|,U!tC8D,% 6w*toX`\V.+Wa>7#+spځAqyͱ& D)yF|L7^B8!`e1#k5AcuD!̿+"-[b0Fuq-k:}htM<- zcМipB&\0`ŖLkڡ71C ClŎDyDGa`FoBBӛMN7G5p*2+X+=dt]UfVuE#sd%xHHowlUhabJ\x Al4ۉ~cp7,Dn9d5ó-! rd1; m]#"AHXRyC-G>dR{ *-J-h9k^L4~PuФA X/ző@.weaw<[[U\2FFa-vs!>_g)pl@gхJɡ5MҀ#=Kntr _I418UtxZ/ ]!ݢh.b/- ˆQpW?s:\ \*El'kt'hH~'4y+i!t1f:XLIE+ݝqg8 SaSu[6{h=(Aa-.,/LLsw',c)"VJA^ю>uBGwwJJiQfŜ[M0L&l{T 9_PYB2/UI$^؏H7z~VY,:>}羼yoPl΅oN3XNk "/5LiU** u~x/ EG-G+E*,L6dDu֍0T$H^5Y^C Վ~IF'O_ fZپ`Ѓ3Q!dJpZsӟr oAbhbI|#y~hlB V4UNEՔ*ηX fH^Y|~.S(6QO0'IĮ6$(t+AŔ%:ǁ= =GVy*p4# 6B}X"Woȭ,bT0(yljj ? QA!>کLZ:oLYz]s!XZ׉FS"[bU:X6QMCfN ˳ǺI{/w)n:Vg㐂#+ _fTgϹ8(kɯK6q3V]Ƨk-ǟu)9@*J>Hӫ*MfԊ2H_#J2`G"ۑx!,Zy"ݪ*b&8z'$D!G)B>SsI̴LT9ӷ&$2X(kt,~klKpJ.Z\$8Ģ*7%P ljnoܚ6/Ȍ%q6eR+T 0=ט# W숨5VIcCX& T츰q<%_NiL&W.9omeyKw,"6?,,Աu)c,NB)>A[pQ8'5),dh]{EczP "zZxOZƃWĝGF;1D$HʛyUi,<.$< ν+xLJcа˂a5&paoQzHBXV̮:p as>x Q O=:X>Uk%c)V$L:{HNVg$-J.-l R,Xkd\~$sߋ)nQ}*(/erhxX K 1b6%wdXP;`n/oy2{.hj_izVR!*,hI <$>Ot;Z.mJ75סrEH+ÐEژbxLUxaxM Óo檴r$}BIQיf>;Ǔa5K IH"ƦǟTY"vbtdZ #Cad  ?=wM &T|ϻ,a8px[C(*2)@idjU, }:P um :[N'sx-˯?#^&o>П? -eSdhk'0AϷY׎i)nY=SdMHo'%Eq2+r CELoSg)|Fr j4;~P3'rO|O>Ũ# 2WzS0'FCF>RE5^ЧEBXЕhBT$C "4f!HP i 1CC@?K~Ñ`0bR1~X۽ks5\w ܂6L@4+U&m55\KX*4(lqx-++^eވ`6ˮ 9\тv%õ;Kd-Da%imҤ k}P ^q]{WEGR) D;L25rr3;3-g%^ D}hLDn2UECJ\ J !!۶8jEs(1a9F֗.>g,[˵ Z(K ?:xM>枂ww@l(z`A/V+"Ɇyqܫ!lBkt}Fh@m~qL\iQZ6= .4E*l~*<#~Q1v[PvfFςpGɳ2_H|Ɯ[6fjg0 9SbF1G ڑ;H(|stKTϳJ]K4J`DK;p޼ѥiTj~G(03 p]4 P}M-D!,碶N.<>r >%q ~e Jc)S$3x|@%EyZcwP?f?ڤ,~>sc4}+~(̂PMŹb+m];\F{#[b|U]CЁZT8&kT S_<8Ѱł[ u 7*N_^%Q8VM1kC.6 0N .` f8s; 04D~)՘@rL|(r 143(qBq8ܪX: -S{by0VVЛ<[RCS=.EJn75HckB4Eڻ;YЙh`ąMiW?dcvu}]|SwMM_S>;gZ~^?yF *./+m?ⵛhFc=k? ?^:mnf˭,{W7UV>@aiumM3:Vt핸e:[>$Ո/į3\)2r . tz(^ K.6 :&ub{b\ğӁ3?%b Z-㔭]P͵NAH'Hs` jT/7n#+iڦkZ{z^PEI,$uˠIml^'A,3}(pHo0.tKfgQ-kAՀ5OROMk,28[l"|IT70zI#,:R6( P@? CR1D&j ,$C~E80.1 4*Bc* oQTϭ`C1(m*Q5[CH:W9_F oͰ `Q(r2$+-*8;Ȳ>\<`PջKԆ%Ԥl@nYٖ*ubq\\YE:[L<H1(a%jvaHqy{VL7r#,~Y_fCuv\ݐC?+ ؎/\ Lt\o$nr_F'!⥰nlR)>60eL@Cbc~&o<: Hy:n0 FK-B 1 VZ;դ6$v( ހc;e*[xÉ%5k;@Vgrpu;NZZɀ~H٩wށ8(C+/P"iQ*e9&7: Wy/IE F$ AH,Hp[F r(>ۓQ8/V H"QB:``~ Ϟ$ {o%.F.6 Ϟ'~nq0OA|YnGƮmE^q9պ#J67IAOy+6Bv%XϤx+YgӔueߨIp؀bX_:Ζ:yRDU[EwyWe\¬Z-V$LΉo5&>ana *T>R f33t2+^Tp'3i ֯~޶I>u̲SE@jwEB=ƷZEE߀k0;)"U70|iH Qg*P+q/\x7Ԓظ5 BO魯@l`^r m1^гtxhDWq>ܱiU:# a&ssϮ岿#SumСTh,K7R .1/y(er7c㧂Jh;p,q ج􈼾3C4yMīB@G[-|@n5^o=䊏dƊ^R˗y,Lmr} ʵĘoH Yx5[jj4bpei.K}^;xE5}z }!iҺQ]QeB44OIƏ<:0%Z)֊:N"R^Q?8(o{8xWRg>eoifB{CBr \ek `y^7oldxi_ڭ"H/7%Z|eF/3g)H \"q+5o YIi4휬zp tm0_oѶd>pJG,~hI7稝f<4%u6p^CGcHAxk5OqQ6$XG5 @TzTL?Y韂[]N±SDp$8Bk=6!>R'2*EQv\kRp)C.pp$ ~Ë⋓(*]DkMU$ H=#^ E)|c9"E>H yk[SvP4)jT-D<|iaoHFU"5sMU@fpTjpUm鲺P:3o(h& W4.$ Fff|%YwOB\MnȽ(+ 6u3DAO3=;8 ]+4A)my_,7 Rv![t ; :K]%:y[W =<L 1FOo6gz2< _n&.(ɗܺKFasTjg1"Y(A0ѿ9J;n ⺨5z _R;U l7>\)Qcn&ސcOb|]lR@%|pTr,Ԗ[x:oxfrL-4 ^8}2NQnM4+@)-\}>PsJ ܺp͝qZ@o󇓙Ӎ{tWzMsrU.z%yU鉊/d/!BotCCNѹY&r@gz&T5A e!51-EdMb"P6bX|0$ax{dKL|aW鋯 7}?bE8r)&jtt|r}L^{~nU1]ݼ)y^{ӂ04uWe " EM*ei` R%<9OOvv˵E4QɨnqY +&2uP&~T^h_Dvٱ3&jDӻNf FThk"814{p<`B e-`sXEs}.zU&"7jZ0` ]U+c )@i4\-zÓe2`|G{ىyQ?ՈduxT]o@|ƿb%*DH}!jJ$UVq^Å;wETŒggv{z]e[DcJ 3;;" &hK֝:IP9pW3S9KD:px d#Gb.wz%`Z%y#My6'$Lb2oBءu X,厖X8'UMN{ի+Nɪ'#i 1 cWlKO.ozH(WL 8}h:Jgsl됞$AVٙqr/3KҥwZ-ɩuIa}zai ' ^h KXך'iZ|^./f7Wg .491鑖҂T] Zj8D#jqV?:g!X^SD~2bk%ޭ{Ùe_J[m  7Zi^7"սu3޻1cʗ\;AݻNS %QhR-Gڰx0^Z .;^K Rߤqlg:áXP$W@@rmPH"oyc_ʶ}h.Tkr`%t<7[ҦrӇp5N0LVra#U-AR+E9zY8Ή?i+6eE,}Ջ`)%eS y/jp5.Ij aCɐNO16Bxyc s~r~Aj^pIj_jDHpkdF7o3,"6x}j@ %e{O/PB $иcy=j4qӐw-=~>tI z26@{yP>5Oȑ/r)70jJLuD'D dy <$: (8 S͖ #b^C9g0ԣZ3EM<P͜>Zw{r42#8/Nj,{r`x&6KD a7H/wi5߽B?C΃Њ?'Ƚ^/4Գ;Zb}7Tp<)PãChӰl/?V$k71dVO|\st] ..opQ{uWBq߂?eWqHn"]˳zPVVitE2ž \AέuXLh:8X_4b,g#6.0Xx{vurɆL }SR2KRs3RrRSKRJ2Kr}2rKKR2KsrRSz % Eyz\30" xsȑƿeND[ʶٲfO II*W卣6%3=O?2x1)vm~' ^']_dVyvuыj1-RnI/aWM۟]rqZuEH/rxA}5V/WYiVUqqVUqx\T^]y^M >&?^z٬wM;/&o3+8Y-Lr/)burY ҏjêןmUIzK\Gͬl.P͛`_]nxWy_,˶|6ռZׅ6)ыI_U,XTŬ^T_lYd]u _Մ%5#v-{:u?=}vӃ{OBM{+.X-e/=6$'E]hhkV"_NŤ+ۃN-y!:U,-4 ˶:׳ <%Q_&,ӛejty9V^1!5xUϦ XU}Yui !/z2R=93$k͑zݮ}=T/kjr+Qjij\LY1E6an쇧)\Ϫnyq1P$_ݧ(ShimH7ÐHb'oZA/+%u^~Eed\ݲYV  u/83~vּGIءTX}8fBE_ Tk/٬v5W̘yI U1E]ǒ/M3%kۺ87b!\d]zàl.WT?논AWLjasJΰ{ ꨿ijԠ}`=iK/b֘q&齯B[- M2xs_ ^a<68@k0 EE5 _J3[uIfA (O^> 'zLDCkזv@`?bDi;o.߇-ЖV VuJݕrVr"?B & Mg'g.٠wc= h])?tUy=;t$ eYmTyLʿHkO)z 8r%FHKLw~0咚FaNY)؃ٶ-[[ʈ1E d[Sts^JdK}ihὋf0Ktذ6 ݇e?=x~ϲk"f昖r<^=0ELkaXֱ?>}}=~?OڧO^WmȻʴꃢb{:|IWu\DzJ<-zN^V˲īd:PlY9oN]I ň #io?@I {hxBaS]a~xjD /ta(K 8j{[I3I<|. ,o3>=)yEV|?I &RLC99d9H:\7#Swvh=L?*[gOy29.kZ:߀=Դ6nhãCTMqz^eW`yɅ g&%uтyh *U3lȺV-6qx:F?>Eřj^ nܞ51 3d~=nj{+ż9OΑ 9D|-Du1Wε,vwyhjHC i%,'gm45ծ#ISij"7>I~Qk޳Wn ̻wS6*- |fs?+#Ō(bٮ89:)t*(ퟃ 4R1fc}fדW,RbO]ݔM۸h sk7@-J( nc?7̆u_׮lB.*w0Sk)FgJB\mL3CT6UVK&1҃'0F7s 3R}iѳOgp<~'O|㴀47oCvjc5y|ͼIJ*X7!#n5Rקh;ngŝ|gMY=xi`e5qoHu;PtRz1ftʼ'gՄ)*.<;DW6ģl@5(Rɖ 3@MWrv]}(VJ?7mMډ`ڶ)*&*e,=$: =XBDMT {~85V R,>{b>SL?2M+mh"Kaz&kJZ\PfYMD ؼGr[hoTAljȆ,,nmlQM#^R=V:Ο`QO\t^,&xd v#]+\&rϢCB$Py&Y D_RΈ@lZQ Tݡ ֳr- — > cZ&xl='XmUI9.115jF@$"c${奊Jh@Yodw{oSP&}:6)!ו'-FrՑ$P5ČMfg̓` f:x's5+ ?}b#Bw Br6 6 ϺLTYb>fJK㻅.s%8}^Nv51!TWº.117 63]h-̣' DSۭ9dM &[tu Lգ\旨sBUD$c %S3#woxQkT03)M?byIxqigT^OҘ_N 5/ =~]((+1 lMIjmǬc  bYW(}Ěi]n&+lii7Kk}Y/F0JK!ۦl S7 bdבzܥ&w{֐[U(bmG!1gHA.nДН$CĶGӝvj1ro,D~<3Vi+(`E3E9q !E qӕ^9 $ޤB>>r=C º\;?Eo.U mn}:p`Y{G&kI\˂NS7Jo]ehq 'Îm+xAGx3#|q#syB E0"JCLuH1 Cv%QF\9_|7H }zNYȪLh5} Lmv=^T\,_4KMCfpY!ZZHo&-ϠM;_A5xmHwӭVf(J9Ious(Fqa$*b qRVCdi^CCw)a$\V3.rRά#X[x790b3:<WS3V]לғf+3#Ƥ I$hj{%GmU1&%-1 7E'MWq%A_Im.<,)x<JCe5kvA.Xzߒg;]2mg4sgNjCZ5Ѕ zC{-"K2aD`yY CboM0&lEܝrrZ0żZFyxDyr:2mӾ~-&%qd TiMNhC80M%i,`}ы6-r%Al2\1 4ьI~uMpʪ klS1EuZ݊ Gۛ6\E P>_p/)q48ޝ݇v_k8.ekW>Vg#4ډ)/c5J4地EY+7{Nzt!DOOnNoCrˉHhu`9E\붿y` ^7)|I! k8H4cmWR#ʺvXc]꿔Aw̒I>XkIFKQj[@S[ƕ$T{A ?V*@V')Ucu38Jf6.Ʋ$k agJ =0Mxw$9GG4ͳd{ȑfdH 5Y1m JF, l.a@hʕ)z疥ĈATXUK+1|-۳#d`X#zJk{}վ4*ΥWid 긥eCa+dWIY`L028TVJ~d2]lrj*T5MG *Ztǃw|AUBT\ LGCQ 8`Uo7(rjɗ,UEpГ =Ldh5ˌ/=4jN5#_à, >3T<\GρkYqވd[pWb+^;Z .P@)p:URbʀHs&mib0U]7F e ؙ~N"YlK{,V#0bCAtzWc@ ԇ:t04?Hӊ35ueU,AP|h^:?/$mhŲ$ջ K'Kt2#g= d Õ9í򴆌%bʴ)~G2~A̐Ktڛۓ3"ǐj!2BӎŹEaGƃ-Sr\ʎ"5$IJE4SJ$ʍjgHq%y=%7+?!C,ZoR޳^^=ٍ>ѦiKjv%ÐIy43ĹItJB48.Vњ2[ӶWQNN]"|t󿵓DT5|Ռ$:vSZR[V\ѴBw;M)+tb ހՅ.uWh7=N>0>%D#{82FԢBi{aI#ooL0P#az>$3m-йaZ˩j*ħ@=Eu@C*PkLis}Z:+54l9xh;U)U IEGyxCNz#=TO-27%qQUz@ &98aacu" ^_]\5x*1i(=0?T[wY d&ўP_ԥYɑkPѧ8v(b5WUroz8"Z~ievfMUBМbdRѓ} ҄teӣN#`W9 W 9$YBsl=K7zQHW1EY:뎕ĎrJ ?-s9vk)Zq0:ej aE(72kkqbHΔOVs2.l.b5Ij/2ϵm%]_.e/7A|K=D-\fh[5AmOH2HgV^̊-ѲP+fŖPEHlGk]<̷Yhs5 a tiAbl7}q=1%q٦'E^QAk]@M>Q0mP&Od8둮av'qOaAbnlHV/; V!H7e#yA 9Zm7KjmlM*ia"_^+P1:S7.\+'=,Pqmvq3ׂA~u\kJ,Ġ"d tE*jK/-heDt`~vr YXbyAFߌ'"{rv Ql~QʦF~5_Bmv]\IFM%JEƤo%{!. FG[ۂ|PȖ5tàʊעt$}/v 4d 5bk A[K=׼>{FaqM8BoiIĺG%@ښ'e<ȺB|}0Q$kL<+` Ґ6DoG#} 4Z_)8Qі ݖUjn9%ȍB8@FPTH(Fy/IMDёfۆ"ug|YքdUCHi \%pMGdL"ڻ#YiYN!V(Bpp7?Pl,ЈL($IWE)))bʫQ~A`9AAhu.AŽ'\GzеfC$`G/åwUڐ%1Oǡ^SzY[ZFEo>ioF'҂i"£5\0)2[mJz:ya)f'޵EUc)^{'CG!StM䑫3ʘ8Yޚs&{ƛO$ǒJ;TbT-НN{$3!6E+4b6&U7] 8eQ@,eDZduM,w*T':)=IW#Sц;JjVݵw 5lË.TQ~k&ZDʜElA{C+ox$pG#rL쎵ͲB1i䪪AD$ DB=a=J|Ek(ɞn8}X 0miPix5a,=P^J{#؇G/WlZ^ lm6 ɺh>6S-/+wWfqQdcN)xj`%]-f+Ldȅ'zE|_ x!sJokHqY*IaR-(zIwK@vOċD 0F6hGX s7**ÅgҨ-|IAg7ރv^/b/3Αj]x0?^ݳg/%Yř7I |·ӳQo+D2չݗ;:8EQ^mppA˅^!̷x9c1^ХG }vT~Av) ;A1Uq)M‚q+V"d ݧ^pY:5ra^x@Ia fTBf6S5dzhSxv*ۇEaᤌe&%|n= cYv3`Vj|aݥ4r}=rrݤp =/P[̱n2a>Nļ٩ƐLM?X>-H&1)Vs1}TgCJDk Eq*=2rU'V@xPAwE*(dkDa G϶ 7KzpV*$.&1&s"UE(n=:NP}˗$ސ,v+'qO#bPQ2n*Nԁۚ^5AQ%1pAAXf%$ dEsꁆ"*Tg.1bX{4<f;lgK1-~ ^a :#)Kd228;|TK|Nj i:$߫ziL@o e(UilkimҸuM֘&XkAŎ@!ReOQ GB #y:g旅j/Wa*xUJ1HAYy / t'i'  l-| ˤ$} Z7A=b4>GqԺlvU%j,IÔ,tɖ (cRsi1cu CB9.@Os&A0*I5y/1Y":Ǐ& ؗЕPq+EWQi2*pĸ@ rT"R(jN|e(14Jߦ.i$iCL̽Pp Y^SO!Bؾ*l S]y|!qJm#0 cV3/y\NvG`xc3&ĤTļs?aAԼԢĒT.̒\B,lPf -?PAB`)Ux31\t 0YXek>hz&ͨ9'5%$4oS#wɒOє{&uh2/HdHḰ_~/M*\9l$yy@3,ѓd[VNU~ܴ7!i+-.MU};ևP5e2W1>Լv<E-}46g Bgnbz*[Jǰ'+?H:3KR3Sd̙U69lvk4t!)|ud}F!'˛-?W2խ*#td} y}jy. V\q]?) hZM˙%bO?< -9%%HNsȐpiy⊌y.[5d!/JMs/*ĊF YB%44 :-BU힚ZMGlUþՖ:[[n_MyifJjNf^*|%\#|KNGNF sN3ݶʮ?l&>2CU0_uOfb,49yP:~[4 w373q§*xuKrҁGJ]mx­>E&:eE,( .2ؽ≤0i5^ļ) On̳t Ͳ8{≛E<`y\ޮ`>ܻ_/|AI[Tٯ̘%4D3XW7Mn`9s̸5>[df.b'\Jk'iZ3k'odw9h-O/E{vRA@bNjII*q3+|3ڱ."̞"<;YHԲ#B9MضwE+EV>għJD8x]7PcP!, UV[{axC 'fّ*p!R˪`NbUyPgƻ?_qyʹzs2| bx8 @hm༪{.kđ$[:ɠIO]<}"=x340031QHI,IKI,.N-fe)駨o:Mb]"Kg(/:V{ /1]U\R_˰_BkŜ w?o]3yw +.Ktx+-(rbL֯'mz=۸wl\Gq gxVN0}_]/XC)U "]mL/mBqRX$>3gm8˶EaY6j 30UIv%u_1;=X0m%Ex $9e&G]s $ -E%W| .E˥`)Ksޡ.$썆ks܉E=v! zk&tx=Ne0)P<v(5cQRV:;r j řYs >wB]Qfأlf YĚ2fe gpcb< BK>~ {rc#56cƍ`rhL&`s[Jf8G\p Cz6(1#jL5ʺu"d=P2/ Rqy*M"KAP$bUQ^08'\8blFx_ǘ}?Nu6y{N$6LedI0w"6Gq.B;(GbiMc9 5oNhP]K'6$V(P҉2H=C#]Gd'( ͜tCe&U6X$;)CZ@e޽3R{>hxF?/Yϋ z>V88+jBX;j~;7;ji^Oɇwq݉RrCKxggoxw-v>0gK l u3|:J;W&^0c8__Mh]H-#/jև\OtF&Z^($6NTM`1b37ƘeOwe7oۤU0mc xq8iީ20,^j?0Ockc++ӛ0ľ1>eQNVbH5ZLGrcӴ&d2e,X WmWcܷcqv=]LF}selWD-5|ɣ?ڟ?I(p9 06G s=e6V7Xa45NZn᪼g0lgP2lEXqH1}i7ӭs2mZ1#% bI~+18Mcb c"6L'%8lvre.UxŻY b87Z-˗ݸ8Vk\"6 XWD5mOBx'60:Dwf:v kFK6v>]`M+}:hqt!@\dQg!W΋5B"qƦ>aI\bse'Ƣf_ַ7=\&Avv [4%m~mWg[fͼ p>gMLE\ )oE:Ϸؠ vHҗYL_C[ǎLXKMйV\oBg_qh,NM@alٞ Pb~vTjhfڐԐ tmE߰͢Y&̥d6\Wp= *uYN6h{l^\=q ,krLQ|7]wr7@}מ .y|n`ٮo+KE+,ֽ!Pյ~G*s7Mh/~ۈ=X?G=5ܟ5 sxh7|~a\:PJ$3--vЯ5Ue9#B)òT/x#-.= ĸ:{jw- $r M < #hQTU0)u{ h/G,e@)XZjǞg&%l %{Nn͹IY{NsMgSMEyy ‹86>b @ lzMnT{egԭL9?q9UWmM-kzfПg)ހ1|]ˌ!v{m/,_nv.y9.m3Hp8fq:V?NdJIjwu>, xd`;G2:lXˊ y 5fQ%QzO0_/[<_AF?h=TH6z6 7Q[%;hXIQ'@BWޑl@aG]-D(TWJ67d#jdSG$’MDP8jdӈثӉj8.e$@ܠW6ja".Td Nģ9I {|6aAh'- սKĉhP]%~C8a5_ FpUd  2BM@hDE)pхqR? ;oSPj Rv&JFCpA`bjdPyt>A .Bq(Ʉ\M(CRK Eavga"B"/;HL$̡=&RN#Qy9\S̡bN ) r%;Vaʹi-%]BnlUNM&Y'?Ae$u`j:s4VP̡v%AOQ^#CquHXc(qpWSiS/J (#fh6dk)l8˱Gio_OpTT]"G((r=Op(r͒H$\~O.ئΒbTmjdI ]ud(C1].54q= n0&z)& k$kps!Ӛ4siWK ^ cg(t1mjdY*C:r$UF0 ᰝA^"8F\J(TSKV2cOQMU7STn!gRgQ lbjdPd+OϥHPg`̟OS'I GI _84q?/IjdS/D%/hA>aURɶ ^FBX%'IVr2惨h͓"":NlQ+ni"WRQ yTVlRΫ9"r>ODo/PTIE"] ky-ADB=*udԇM'N*7 M a5S (h7QaSI*5 ~*Kv3!ud_#E:7 3BC}$1p$1PV4Q**Qd6:bnߢQv"];(IeB=-ٷ)^v;C~{M}H=(wc~PY) r bdƩ{CuĠg?"jdQqô~*`c*5Q>@}Tm'T܇1I?%!$3SshzYJYEK0,Qed8.+\vF#G)ѡ{8#TB#Q{Y0z(sS=Nm=56dO4y Ib"zHبͮj7%{GD1c'ȧ)z` EaLѣ3g z aE.F_ZyjD6RA ꕅI%_&(LpȿQZ'(6_Pe* (uq_'_O[a?qE1\ɏ#zzW{M1~bPM4-uMcߡQRBn}8ԅrN0SQ;%F0\Lm9Av#(v;0v +%MSB!&c vrH<XbjHn 0Ff㨐G9QG98D_=NpBAqāL8*/9qRYn>0䘜88&P!DYYȉΒ<T8|?2|!ɩ"vI4`arQQWI~E>1|. ! WOxEGB]"$-`0 IZ LKp'KD=.s$GǕ8BMr:p" qڃs~Er+R81(R!T)6ɉRJ~AjH#Q$)8:ɩB=NN"a˨LSh rjk?0֜: 8z7Q5_rGPrIAPe54/8k> acגGO&q̍rqSݐ8BA'DZ%r@&N B?:%?&:7F.& @"lpcp6T!q !IUwIH*( La#AA1m'^ӀM8l1._995;a_~Ib!"Nt@s,J ԉ'-Zɞ!%ĝ|)|!g"F~4<|1 A82%(' 7G|2<|ȟD#_riO61(wX(h~ (gPs?[WLx (φGrנע<_Byskx1:7N~^\ mb䒩 % ֡;D,}_WkY%q+lTLMB+yeIeCPlG_ߖ4Zve^+[_NQL`o٤nPs֬l!%SFȇP'u!{r- TZ*ۀMycvz`~eOoAרҊͼ󃗦+Eoɾi̭ ~&ʮ^FU/P䏢w1{PߖIgILF|俷kZW?kӕix zqkں?`$9+{m~OaC&CoeSO]-d6,2jm60T,ڹC=/XPJ>VށG_@1#OҞ-{f~yC7V+Wvnpn1*ꞣu_쯣qZ럶V /{7P+e;җ 4<5XS_Aͷt?s?5آm1E^=QkGV+X ߇z>+;/jڳ\]Y}Y^%aIKC%6CXT6XFKUFaѭhesA~"~2H=wxg=kOЯz$%'V`{~z Wy;!4yV<`Y@4Z;gpZށk.2FzFuGE`4yѬZW_cWX`HޱTE8 )PRTT*7Kޚ\eʺkԳGA_rjAμ~CXdaS>elu:#,r(TTC3@w?*q]էO!v~QM+ahr;ȑީՏ3ڄ c.&ꋍz}`}0Z20Qkhi)Nc`fjZ&`5a; j#ˍyu/Mmbէtl6WVӹ'>RN][ḧ́Ѭ\O_U[ u`|t-|A).z %E`J:nX ,fl.t!)z?N%O(VNDO蓰g#'A> 'L\t5z߳XRXh.{6;hn?FxTx:w|T֙T&!Zw.HS@(RBX -{`˳łbAņH  SNIr9gΜ>Kba6h7:3sSK*D/>!9f=bP01f7).&V"UlTLdf795d1:J ~BD\iw{4deLoL23_.@GSrEmjwNa T~|@aG fW33J0X9tY|1Hvx`ª&$zT-N[upp!FM*1$[Y]2oTV~OmO%IceU5w'UFdu/W^6#a{ؕ}{@:Bt剣ujBq ldfV[;7d]a 6F'NKͱzlb;@q^T I6ݔ)ûDs{EͤysJ` <, , ڑ8cC~z0Sw REU6b t6'غ΃R}r)Yݮۘ啞ɱe]X%9yޞű~ݿ| ;SRdEZ 82|rQM 5d]v9.u>ό9#BnJ]r)--;iGX߄[E 5Uu A3a߇(╞U:?@\RVSUQ%um'^gvԟvY[qrh^ۧna{uL?f9ߡq~_g˙u5 uKcP<Ӗ-<,~_락 mF[xmn(7g6S=Q驔aqK: ХB `/p33鐶^rd;j̴ܬa. 8')3t}U]->Rڞg_7=*y?w?:< wU+jV C_7$DFJ(hۻ*9 +A%]J#3+!ǠFc#>;E~?6'U:Q…]OE;h 8]NwҐ J$#]JnH׭&߲H4dn/9UcfVqA)ZL((W.Z@aDzIDFS"e5y}d^ü@ܻwq7G+vsumwX;E0AR"_{Uƒ,vX͚E(QkG_BF*_OpH>PߒnW-OPbp+4D;Wqz%Ss}^(@C)O[#O|$\d=2u$D7"C%Bzx]d1*m9x%FcvQЫh<#veBpbџׯq=mȝ 5l%&>JLdSJLs]&z^uΧ zcavZ#ŀ\go:o5㔘rkK |laZ)XyrLY*mY۔( X)q>$(q YkZ= Wb +QI#VU@Ҝh 8j0|\kXg? ~Fr%%JQ0DJ-tZ #l% DP~*[)q8螁t%l?*Q7t1f&Z0g#96,s._ε O}Mu|ʑrfĴRBJ#Ehxg'>4:%.'B!ĥB" %.lZ󕸜2g~ q :8g#PshFk˟F ^_IA׫(%+q :SkA܄( su~zR17``MFg/՛PI@A2 ]P㕸8H:ަ 5r`0[u\E 0#AԝCJEQE֥hv`8;)w"犒:qDML D LHZS j'0z5O(V(BT+_C^vs6qEop7UUM*oQEJR]rW0M^}̇7wB\QQlI c2 8 l)iSb/ E_mם+~l)|؃& w}_/9n|W\6h¯lP(loXSRX%aUA@?8*߀Por=ORvUC^Y%JD~ Z+3u0_u~ ]%~#oQNފZSv<';(F79ȏ6"peCmxQ:wbqJJv^Oç:Gx]>4tG0Z<⇂)̙J&bMS2 dzC;!))HR2F. ZYJgpSٝ=*"{PFGqbptJ吵X vPKLrB@G4%h31^4.V7:͓̕d1ߑd.j\o $Jr;V$PE\L됒}hPCʑ&G_LI~OV?7GȻ$ 䙔,^%ςY c uZ#1Ip:u2e%d%} t<'b`V2n@- Ә #ځFWMsDVnm.DBv:hIP Yytoar4 E1~QPX,T "8>qF2xvc*@n'A&D)Px f inBR+%Bqw+9>WKI*;9S7%[ΰwDVNg3Fr8 l 9"UDᅂ,곎uRyC0\@h; ZDD{d Sb40YJqL.գrn%8jXUr@8)QG`l)^+(^{娳ް{u؂*\>YoeAU"G<{!>e=W b,.xgJ}Vty|}@ɳ).y9X !a8*E|L^ 9d蕋7Yˋy| SjE^ gut#7q (BxW0CC a]AqAFs!Gѷײ0OX տɥdإQُA*H7è4DL~' B͋{+9ҏ޺*vV$cS\w6>|~;iB4)T90|{8 P^}UrAn>AzKt8ʇ؝*r-!a?QH=JȰ=\ gEЮ[?8'mTIV{5SY(ggR9U!O9e"@6xAgG~5 w8ռ^K ƥbyM\ Ƌ|:QA18x:;'%{7#!j"7OQO@oQam&D*A6r{\ַzՉYOf`%? >$Q#4!{Q|qrD{J# >/ s6|r?9$:~> KJ?IW/7ARP,HoDoA|qU~Ss ܜG$ ,|8C(V7&O &0Qs(H~"vT+?eTL`]o2_ɐ'0 7[)7iޱPdbC[Ca[q4\T# %p}p F'jТF"ye$Q~Ud-YHg t*#CHv(KݽiqݦL-_R\UYIʢ_Ϛ&jPFƴ&p:bH,D!X^E/dH,F,A1s~<`؍p°2\ 7ְQpEx!~?Odx kE_ K!Fx;CCq0dAh?` sƇAXG,  Vb$W1| [>r G#ė$q1V'Ώ*X/JWW:V3gO55vGՌbe׍=-3Q2O1 1 sNkqr%f"啥ʘr/7eu@3 iaf؟e 6He?+Y:Dwy1[>1'՘T8Q[5梹 BФu Gjp5wxoc!rH.B$s1,k K^K>(sCTcIYr}<49E7*Jv[:(i?QUzՈ0yyF b&f5`zfЇ\kH:T,`CtA*0;n!NE4#I={bL6(ovq~l]{c g# 93|J@X磄z-$^&X|3|1%KeH8×)} t(od̓(J-E)W B\-t\qY/ZDl%uz2 GGAh`ʍxAt㢜^79z7#RQAʭx=ۑ=Mmn׵ -;q0ޥ/.H}”{D܏Äx@ "BXtPVccy8KKgoAtxWhQ}wiQcx=[V[qe1e$!$[})\]i\G$|m1dR` s KG>EK^ԧB2w+ %; w!{_Grw#M&a womQ]u)CgJiu>]|kq[>2ofۃl*[>A`OQ7iz=5jo3gxԞ#)T%oyrq{.?įCAus}\wv{Wq=}& jdƃh/bH!d~D6n'?ϫZ"FoϨuMAE#_CM~Waג' Wn_(v+oc%Q v!>Ȱ@a+ x&Tzz#SE8HÅ.H@4V:N4Ih"+G2J[Hl TPp774jD9l5Q9˞\49 +,cGjcbbX-1ck*UsscǏnkL"56T̪ W,Gb;6:R&Xnq˝B HUn [`/)fqxS*$(Lw'@KNfê'$mLzR8N;'Euj\%]HɮМP}vvhq^d L 1#t0ä5z*IcB ݸ T 5 A%1V_]I2aP7ā, *tgIu'dhR'#Lwh7;l! }H>tC\jv1L9H(ŷ9 -ul Ik.^!W_rA:bg=auKs/$/,yʊNinnRkd̏`4c<[Jxk+|"[yŒA'@"0"뇄М).2i' F@8QP}B*p!mSFUT:es/Exvkf$\ z6 &6k4-m[!5uC{E^(Cxc\i$#qh~-:y'IkOaխ9"_&#i! >MLmLʐr8![[\ b5YgFNJW,nЎ7{Ζ6^24TBJ8ڎB9+`TR;\$Tæd5de>OW hբXI ;BX۱ݶX)sp= (˖@CyBHX&Mhs7A)]PQP]>/IWĕԍ]ujHXuKBzx}VPJIH {-t~ t[Q^'NlC/J=H~# ~Mqݳw2kܬނ\,k7ÚE[6H1@[\WS t.*Uʷ;lXRGhqRp<%ݼ ygPE%wNܪnEo{jWvRm'm]u1ߏ,@sjrEB7Y`DdDD6ovau oAk$m$vDO ]if+N>#=~de\dF|%ٙgA!؃.dQ#iL6c:)k#+Cc̉cgwS$|>gH/lt:$^O Gꪹ aU;MU톨 4fN"<]SZ5_#|;h4ƷqŎﱀ~#!rȘF/02'~Eo[NƟ ~ǬA,]3l8킲93D_tƈk YLĪF#Gv3]#$,Vś]Hɍ#J|t 5D=HY؀9#^B^L 2u \][YtXΒY,v9XRv&J*Q ᒂҮĔ_ Lt^e'#p*/}EFG gY䃃lCL휤Tx)\pUa;r(Lgyy2Y7|Lֿ6!°eeI#=l\–KrY뒉mہ{ڍ3{ۭBW0msEt8Xh w^YOBc d0“i9돏LoX8dv(.22ZX~ l liqs6(I='eeO򫩜>aJ|+0Kl$na^+vRW֢J;0UrX128$P[c}={pKDn-֍M"E֠@ {⣽K3-AΦ[tWĸlSήΦ#_;?wˇ=n:Y@lA\W°**[tc)g!Wf-.4Z8#YD1ӣ@q=gseBih)r]Q|[7:pVC>1{l04y4[=B!TM]G70ءfsHh\4T RG2yX.[{]lFU/5a jk"/H1]3|9h|z >Gu:{`35u%g7*+*207#ZqH8[0O?RԢB8$\dQ`J0 ͢\TQ&nѝ3jbUD@hVa`Pcݡ"+8C=v6{ N"wq U9To fc M'_Ml0XV~c8Zc+7ub=j}5gnAWT{9 Y 5R{{<* (0Mi[,etFg;Dx: M],/vW'8{Z:vv B:e4!82wnOSDAm5q`ًؘ}*kM^:ѮNfE"åc7CwO щ4+gEڊޠLY}- Q>Rr"Y>ٛ2o^*R >2-dnl8.T3ٻb`F-g ;BGޗm40G> k*j= gn2BhUGڊc$184ĥ3 8YLZ1jlUӢ9th䖡NÞuRo蜝1/k1o,rlSM982~leK9yy? U'TݟEPH~7jap/ H;>ܩc3rb;#I\C{{1Xvb&SUֿXX_7NR+b}#+uq&Ob{t(Jkp%IN O(ۏ$ Q4t2'#5gt-jPR,IJ:NF%]@p+4U1:!S,Rӹb/ƛ*YTlqYa9+NY&S$ԉIEƺGi~Jh+yr]9}4 gQFk*CFXɕB֧\%spj +y JGm X,B3Rid9 /Wq**gߘghl58jIPɘ?-t7iia\(B J MS(\8R 2T&3ϕa"  cW+#dRqxXP=- |qe<ܤe} seV8;^!.3+d``lɕr* W&TBx94^SGreL_LʍSZ"R5<"x*iP>\źAx0]2S8ʕ !1GnB6M OpDʼTs R%g ̕)+Wx̣։y]{&:aY/~鍨_  ՞X=\_Pv"yJtJ2ŶCxba5lz)"6KDERt+D=.+2t3I -"+iҵӸJu[eJ1\ȝǘ/whE]A2+~(噂+wL |D]Խu4|ˬRŷ lMub|:M ? ӯppya킻⊃3<o/C2\yD7X;=hLQW 11MX X?;ڈJ OPqgGEt@qN>#]1EyNNH[fC%4> ="?yq^"ch+ x‰7cBxX:gxuQ^梼F+;`~q Y4T]E[ĥc!9{E X*l-[x[HDT⮼Krj+56+4*5r{EqW>U$_Y9uX|,";X@!v1LJ,V^<%pT1_QiaIi.SLпʅUҐV T:R|/w1 ODiܹ&ᙱW~gCVPRK\9+İ`ib<^IECKL&Qt0MsbG5f ˣ)&=qSAKnELΙD8w7ubkMq)x8$j>@PRSVFVyt\"pٽ>@>H: OP‡BB.$7+Xa[&6zM|R6:"ށ˝c%y]/_Y{TyRB(ĮpHc!A<W8D%c<,D﷐n`pOsB#sc IKO9/HH_©Y_Irv(~7 +& )GǯʶFwJ%g \I+an ~U*mB:jM2BfV!5Z#.qES r\6ځȀD($‡$&d։j+@t}+ l@+{҉c@tߪ[qx"m[ pB[!^lxo$Ec}"IuQYghrٺ…\ڔQ*+tf7IXܶs%,nJXܶpwR!皜d\m\% Kn3,YFלTJ)Cx340031QHI,IKI,.N-fPpcpIWl.3/-ATygWyJi TQ~RVjrI^z~Q.7o}3\x*^;1WxMo@+6xi/ƃ4iƞu%1.q5Քygم'ܾdh‚% `DB XQ5Crr*Mc)fکuBiٍS˫ 8A/Z~tqYp".m %U$\]CuTLcrjONmyx%6pߓQ2QB!PI8oied|ϳ9&`4Ӹvl,g-*RW~)ن))BZ^ PULgԫv$ *PLE "av W )(mp&ت6T6/LJ"*Lˌ!|G/?݄H nEխi֮e{dӯz x5e԰r+%.N P*J/KuI,.V/(vM,/\(1qv;'oaGR0adFfIdlj1U-2Cz858K RlA@jjji:`xqSD1?fFF6xW[_Gl'AQBm ^JV  ֆdn,F{?گ &홙$ٙs|zlkD֟kdoZ$hմL;ZPեgZ& znaDcͤ9>( L[H׼y E#kkl2)#[.lȥ&Pnn1 g68tmg@As;H$he9aˈt!}ԯH$Hh8 &Qf!-iuM*ogl:Rc +/ǁ%1iR)iMާi(Jc̘3 >iH ה mhj?0;#ȴC0id>h/9]3]=+Y33S .\oQn F\ n 79[X2z_b6aλɍ)Ғ ȨvI h-G]4\ eAP[z7z:[9 zEZ%f~zLUlL6UvMWnqov / >r,.[̮m[& t3Ss̙׹ 8ntf;:ϙ'I,ygf.h?sn=t|ǛQ {nlua*1510(½CttUe ie ^Eg=/n%gBvL6Lz$%g ,V2kUL 5A99V0 !,e;k:#0A&A,Z|N͚oe5ƃH4TE0KVw|/_+Z#e^t>bx(- z2XWaULe՟%,\Ͱ4ZXc뀼#{N٧rqV"pf Oځ+oLl'dpk=# du`bcZ BvPã@L"uz뾝ߨz%uo*`?,O>'- &k3ԁ'𬘉˙R3vhb0w\_dj uibΛ"!jP©ٯߑ2X +;YLْhSϲ?wyc'Q *2[`ܽ :^*-Ui1):yTv^K\6wa9hn 'W+<j.K:+д0.}; Aĸ; cv}3zIxxZLQpF6 Ms 4"|BϱNEMyZ6讹z]vxĒgH- //yW=X{s_!Έq:&ha2xI·*sd80sG3~K:. cYFF/%}3U+N0[k?TGwq_Ï?&cʲVz,a B2(sS5+0x340031QHI,IKI,.N-fPv+N-~Trh!̼|c_`@EPEIY%zE )3 8p~kkgO|q4:xn0 lR`Uk+^ʴV ^uRw!]?8mČd2aK]\,Yiv\!,M 2Y[ ƺV9*qW&ќ=Q{j^irS|tRJՐ4TP;(}ҀR(1Ikh*foJAHe>Y+ˍ ڑB?p)q.?eqɮ%x %y}7`df¦J UgJ&F""ݺ x\ \TUۿ3`" fB"IM6EAqQFFTґ4s+;mejYmw<.YX̅0Ϝs9υ{Ь1vKYٖ_hk!RHf/D!Dg 7 ɲNK+-% z^h3rLK] siE 6r/B8ieh- g-)(m).+2-ϔVd./ϩ03A>_C]\ 2t:D).pK}{+#绍~i#/e+sAn4 VYdCvX*VKQ\7܈bNɷ[KK:@J'WO9^dd-wtT雤ʿi$:MRM7 f'5xww` 4EPlP[tj;SLn}RX#B[|q?*v[㻨w?u9ҡ h(Ъ`Og0 Qܛ ʓ`W⛧LWRCziJhϙ~1 tVtA]Y3lsJ @ޜ^$\ro gCm?^;a0fՎ&$`;}Rm s(Էs&Ky湹Ǭ>r"цnB췕xÑ  q譜PT Bm5B$1N~}se!2i@SeMjׄ&4 J* ]}x 36F}]Vxg IP&~CE uB{}^AE\c\2Il'ݽ(>0*U6Ɖि '@1@-v@ z_J  7Bpȝϋvc;mn@ tNC\% ) X>R\: I:Ӻ4Hvk{3ؖ1B{"e"9H(Bh#?sLR7׏Av77`g2DJ%>!&]s[6x7]w_wo=vPO2 y,`)pHg+dxv҂}][OOG$]#e21yõ&rMumIr2м\ƺLqZoA& tIWiA$Kk ^b7=gCEx#HZSv-Rij绥&+̽鐕o,{̸6.yQܪ]t|PBW@hsJP >3 iTYWiiwfU ej~5W6U$R܅H;9%XXXVy["04V4*\T&ϭVT!eM˸?0>υ`S?XPBk2yׯ8%=!bMˎ؅*`3sMMt5 #@ kj_L'ָ%D"uC6md5t==)˚HOs.CRuCmjҥ fH~dYJ!|2;ji.o  &g=l2*^!/9H&RUO'xnURMe뚛7ݴ1en<OJC' &RQfqIʩ,a7<ۨMݬg2[$}e6A˿,E|{ -j۴9S,W5si|̅!Jn\Z$ءURnBVgW@I@NJMIxW( UIO5%=%i Aox" F{%e0Jm!fQ#WɆz"LVGvBFb r ^Fή)tDz;ߋ`J m/wM3c4=grRbs9RGnjka@\F Ca8Ά)4"¶ }"/z ?v !?22aumҝuF2tTt謖s)b<&;S^Μ9Ë?fo6/֭c}}h4ڛ{+t L{S*,UVٳ|N:N({իٲe Xnn.ή*..ʛVRͳll۶Q?e_Wd ;j֒.d'@ȯ2 f?yǂn6o6m6nVVlKtYJ,NgR-2qJK/q8o0}Y9m۶q;wf/.ǽ'TYF%tvYf.N.=IF>u/_1\'Ν;|Mk%颅5n.]LKT6=.trL8Zx.rwľx^=̟L(,֮a!Fy-oq ޟ޽{٫`]z)c.6ҩy4}@E>'FS>F4/B=߹d>6=>8| =s=X'߲?υǏG5ȑ#<&+%;/2Ov~^PN :_x` )IVu`=^ڹgkʚyZ>={}5rk"\pm۽{7x9۷ܹ;p_iiith8sP[|" gpj~z⯁*Yv纗?}3%"ǎ}@,F/gy8/^̆AzE!!F%~btE(VIL_h $NӋFvs˹pǎ,NkpU%bE^z-cl|2, ,`v0fY+Q4KGF=9E `6`/dӁ061kJY5=`ʋ5*8?3k59_s>af2hA`lj-KӇdёt>ˀ{ucT Q ϱkG<4,޹GbG`|A]`|A ~G]f efbQtJ g̡7Q7pAɸeLE7y1IL|8My=U?"nʺY߀yq rhƹskq胜WTT<ź6:nT}t;2d$0cyO:οalDS r^:B?jcYp!f]n:@7\%eAa=ee2~M3{%ff?JrsL>l ư0ƹGa eV9L=1l'q\7s>P/a=(99NҒ,33&ypd8#,)r?& k׾=|g^, bc,Zk 6Fڵk!bDgMM g#F Р$/!!J"TS 4-zn>CϹIa48nWQ#xj> x;`f=i"%'}X1H: i17%ѵX5;r\Byq%`R=:;EǛ(Wmsx;8cp;az0r7΃Eˤsy=U:˔Xb75p[pppzԌlv(cx3ej*#K S>~]v \?<7~0}vL9Aͣgx|1 e ī-]^F0J#ӵ6ASc0Ah%ci#z(tR;xo\( p͚cGil'87p+߃rۙ*K0ZV|&۫7";y R[-OFq y.wˋ+.Fqk tN=Bq]^;N:g0oRɓJ{+ 5;MuMu# D6G@>vE;{ԧJrIĊa[%%rijD_rS`*qyKhz׿M#Ǥ~~?~Mn(MiTrDn#"!@'~D~RbїXKId4i FÆI5yG0:7<:->XLFL#cGL:_O6RjҵNLvc>f|u434:7q `C# a`Ĥ ynu[`!4'72ۄ {|SM=?b(ä3Kxt=g!`@#yxOr"TΟ>K/)s ;٤}Θt"`bEpC&m32H@x Fyj;\2]NvE!_ë\y 4k'+ ä3pF;7䨽rSf(iP>.{76(#/w;l7ԠGIځPaK:~\Z;ڤ;N~jRuM׋*{P*IW={ CԆ\VӀS(Xn'!xH a`!^vx>,]`4B:yz jҭr^{.]xY xޑ/Iɒ%%qfp8F[@6i6i"i^٤wƔHi6䠄 !}3ZkmشIμyfgAw>|Ў:w0[|U?_5@ ߩ+X"( U Xosdd,G}I|ZR xXy]oY o"RuRa`d@M"lSK"&٬m 7AthAҜGLNM, @ppm N#y9-w:i:zQ6Hd$bh#MHTWqI51%a#-훺B+;C{sQLT}u\QuP;)gOKf׉2h1R<6?H$Bgۉji"8OWn.vQ$=!ZwK\3BdQ#ԧf 9 ȳIT\hhdN%%t̏x tT$:ޮ>Ebr{r5*!?M /9\)ۈV,Ē )QfDp5F#igF:HU֥;U_K9En|n?GtZM7򅨜 *fc66ע z]t0h |H0 †ޮZZIk\ؤZHyb>+建B}j"([7!,*McB Wfwh%HZ  /z*cRC*񅸎 'Z߹["\j)^Hn~}lz7nkg /Ji\X% n57SnVTGXNU5X5F78ߺr] |!=xuZ=̽riAB绕S.:;.telkX'q$ke^G t$ZK"Z 2_O,НVP[esM[#xA[ 1r9Y]G-o`LYc>-}B{$t X@uiYW"-:wvԨ: |T^,37cXfn 4NF͈h+v2 +dF~Vd2(<`xΒ1w`y8iknںA[>D\CNt8\V5E"JګPXALve,ߋ "*XP3ߋoS!wQ]ďb""ټMh:(1YZiN̓qN]4?9hV d'?oʏk:@ow(jݧbO:ϫwc鋴c-?.8r|S|ϸ3׊u: |ȥבFP1Sq1aÌR+I'#+)i=S-mYU½zz|C ف]a4~C'w ס[jOWo/d`ODtC;b9ශxa˘w@d(Bݫ<}*Nr'9|?AwR {USSޚQ3l~J5kώa<ΏgtfszlL!yaEQ&(2Y+kbǺBMhv?C`f6g7!^{znv$4ѡ}' ~X"ZǡC2خMKb̿R>2U0n7t:+鸜v<&5 <[~,Zns<8WOSqO=:IzS'9r E4M4 ae>ڈ[lv=~C%~,=?$&M4zųEMWNwS̺%"Mŧ'5yBwUϒ–;lw`8 ˮx^g `;YD~q8| x ~iBײ W 5WGPCgfy}tDŽVӻ D6Jdxь3Tkȁ91_eɿ K%RWHx8#M-Ei1,[CWF~[:'Hf-a|iU%ݱSbBlK4Z/{h;4642n0°S@B2%(!lPo@fe&Hi d9WB)c_ 0Y`I,@ޞ| }f X4g  Lp q` 3vBQѷ$9Lw0E eKk]f+<'!)X?mcf e (} ) W(%T~zP\6[cG(_׹C*!h}˵;"R2s' eS8@\N3Ȗ35HB9g%TA~>|-(!L[1 #֒J~4 N.f[ KOP<<ښoNIh \huYG%T alù,ѡH<7͇1p1{QH#>Ks\0= OѣQzoham(.b@黀zt#5ܪ )$-[,j*=h98 UU-$s\n3YVe+AfYŅj6Egآвa1Z,Ŀ %6@oҗm= h#~IB1Dn( t }B&pg`3}a.؞-IV@'mc)/a0xУP eq uzWI7,P!% ϐbW@>wyaåx340031QHI,IKI,.N-f8Yz ә W/4/f1DRP_u|}c_b(?)+5X/=(hbYRd';n>^Q"-BxO 0 >OE'pxɼm|:Vfwy0_) L #kѱ% AQ*wAp%o*8v2r14NS$5ţ%LEһ}2[==t!E2KERMQT5at 2B)&#Ǟ۳l ?Uw9BM{](y%Cix xeIs6ۓv)miOH4lB%[@nv6{;IZ UR 5[ E9DDEE)x?34/}َ3S1Ј1dW4cIPe+ipLM"dEF%]u=[ՠ?,+.T_ۯz"_hv$R QuC8WH@SHjR)` sRLd8RFŋ୬@ P (./S#m)6]J*wD<2$Dx]qA*Ux0]$ANANte5ӺP)GE]ࡋ2ddШ6EJ~hI&۩' eb=+KmVEpKQNChIQB¥r!;<} -D1|JOh״xT1}A]~xj&FCc sT#ʧI -)Ƣm! :v5ߩQ$)m')n•b"H-$*4Rfv%$-`^'o.񑽉Q@AW+302,ju\C٥*YltOgbr X 9&zTFR3Bg(xmo e!kGIf1GasTQF=( Um@!p8"(! Rϲdle._h AUV4f sBzjPcѨuV'l@42,Wb*WdTO/&Ϻvv<:PťU -8i3i6,b_3w/L_rݢ6^{ WuR{[hO_Q]k?)#Kvmfߺ>ܪܳ>oٳ2R9/DU s0rø WlGk$X˂`}P"XȾ@D45N{/f2?R#P_(/Ko RxmγzgE$Y5-a 1ʆz^UI7>TElx!븈1zckZ?s4.$`i|Jƍ]­.4>13 /d_%99aJoZg!|T_nj$d,/w^uP1,!"3dՈ--]xD簤&SAUTw]xÂ5 U j|G/}%@vQQ)wJe NWtY%^dJ#7Gt7CF)>dI[2G6l#sJ#F-ujBoW ܖ5īٝrq\%jRՔ]f ^,M/ S2=G~@.$hua"7*LK׽Po0pS S:& d-⑤/⨼x ӹ@ئf}o=lhQ~v2?kXB#9O),eGIpQ8dN}t0OaܖTi UcT` ۂ4+ Bb)0h~`X 3qr)joʇ3 jtPگFԠLEM]$Rz6h0i u =yXf׬co1aN7av2=C^ZB9L[pX-Kmpƨ!pzr\AWfkʲdINd*|CÒ?iECCKpvfl,୎ U~q.??w] *CeP2444zqsWY ÏL,q<̞h7Y-L|'WЫR=Txr $Р0 &v'렉"'IQFQ+P+wēQR N}>({ȸT3דg q/ n(7dN%nhzrn,r9ޥJp<qK"2i XS ?)W@w%vjI SwUs%ڱ3 SP!Iv2HIH6ۼ0_D⁐بX',|]Fn]6Ɵ=Xc^:і)мe׆>4]cKR} qj><5Z(FQ C9ij25q95QѼdNq}3\@_oQ"Ǿ`wJː!#f#T9۲Jܪ,$gx [|m"L!.NfY,n!ga(RGCFAF,E sV8`XT;Edcic+=ћ|v2'};đmpkL\nsjb'kRR&4 hp=%e~'A_{&3kبux8AoaE-.`۵HdgWab!G>e yDńoQz\ܻiHF*Ae8wϔ W{"Nr`3I_V=5V~Q |_˸'K0PHz Bq6 )I x(1e#zfdC:% ]K>($CO BsEt,N KMe)A7R0w;CxzBE?A?[Y/+q\O96[9J(砶9-AN&QiJsFoSH'؈>i6yߓ=.ԝw~*r.,_t G TH>93KS eZ#CcfNfHDf,G2v~ºxNd_ZrfqFo+Nf\G2GF9 BWwݯng5q7cdBҔ~+nwnj^o7?d $-&\nBuMJqrNW'ʚ&6sO'KOR~@a~AU7G]-CsV _\M_Q2۵=¥cҟ[f<\>Om^ q Ikz#\߅UOB%x. @[ P[("J#@a*ct:uZDl|S'Mctr8H{8|Rr,7EymYX>3?L'G>&s~Jj9P1C:F23*sXP>Ѽ١ fn tR " x}UKsG]B`@HK,zl!Fq8[6*8%/N%UI4T9 \qs!rUy2e%$@13;_O_wOW3ڸ?92'6RvH56yќR& %,']'# ybARj޿#A˶a[\.5jQxp )ACEp^<6/n?ïcq:a"}T.*J=$5藏ѭfM92DR)4yd?si6i+9D]Tr?ws& <~%l>975'sx~*Nd*±.M~yIrڮ72ALOƒ;(uɇ_ѓXr9H8jD ޒF_$EK=ڨEF(BttX~+#]Tԁ/$!}P: !AqËO$D`W)hW c9G<B;fjjT:|JDh\DO0%"a_NO Sؘy1b#ı3RGCmB=m yggxtOAԎè$hn6Xnsmp]GhqC3hfydg.]xdV"|Rv { yߺ!"ad)z貘!uq<dgK_eVp, 8ۙ,_*_mWH'9Wg zH7eFlv⹞p\?+GiW {c`at)}X2iK"[1&型/bHba jhOr>|KrwD;Qw jq1٦*ZÃF =I 7Gحr>F9c++kd4VaO4"HM;_@C!?eΤKHwӝ}x-'z̶.w\gχ}jӘ-Ak1yu$c"N'j]Z)Fd3E]EPk6gϚ6bBPf.!i'ϐ7~ XҤEmЍ*70RA f TF5TOe$$K2( h=iG3:K@LB'8'x^ x/ɛēP;BFF/mV_x340031QHI,IKI,.N-f8r\z]|\U"Kg(/:V{ /1]U\R_pYVk}|w H+xMN] @|~r %6ooEHi0L ^֢ ;'kv<\ <.XrN~~'r`j,ԫh_q`_Gٷ>XZEDEY+dD Rid&Yc9p=^bq\R种!QIHI9xd:8Ϲ$?9'3xbKNjr:)ԢϔI^`xmTKoFHzZJdKvyRpAQ$ Y4$9nE=@z+T\uMI5Uq@i,wfRYT$Ś[WNxIJg] 'uV& :Vaq,(ndp^wbBE{9VS8HqI&.q'l B&l8`Y A'?#%|x'rqH̑ElfewߛOQ\0?Fu?hHn$ЍQJ-|C[^af6/|56w`mj6vN!6!%YVs#bA,U%w]7_uj!_ O$XZl xra]s<,Ax340031QHI,IKI,.N-fZOX_QK?' e3=WpǨ]<^_^U\R_˰7LW%[XP|hB0`x}Cd&M>Լ̼Ʌ“Y L\:\ @RY:WHQ<8GaV)ck2le-7ElYm* t+,+V,1ŧzSdjEBG%W%f5B9 zQa0]UbXR& J+cZGV} (NK?Nܤ>#KfD0P\'1쌆SCʆ1,BIuա}|tW(Nju+U?$>sAnCݞ\RAYIhDoT4K83q'1'iD*GƉ4jǓddqZZ(Y^L? d*|;^X8g`CBDm<'I䮗iE\XN5)"PӸO9>!6覒9iyp:NJ„:TቦS(d/lաYeC1iml~TWfT7aDdO91St@YC@<{h415LFh[}:O`*"?exTZWk4_>I6_.,Ar #B/֥/aL `ͪ|egL`t Dbd?%Cj/i"*I'LxLDB8MD˞!=@:nl¡T*ͼY17G tVWh|+H $6q#ڣ7 D}ze1uV1*iflr.}W9tfͺޘu}F4f-]FQ>KE+oLI@e䵸b3YJ x1Λm+YOvwY]xeY+v_4z'=VZU͊PXUZ7nkb>[r8a#\M4u5#EZYsmmN{էKfͯu9J+Oofͯ ңq4r 3.gWM Vl3* _ζN-ģ# =A塭!5F9Sak"@|wqBKUֶR[qe$DfM 2e#3|2_d;4KNKpxSix/7#]\}9W|5_ϻ.iq4A|C-ԙo(BKe=8sۨVt q 'huhF\n?B%n[:`TYpoQU6n7`s߄^S2BH\YK6VK|ɼexdDz)fUPؔ딼07wd@" |׷nZE^v+E\Q"I )Y"8\*K2- WEuw]X.7D@2^}nКr)U ԃ AJUuOj n!D {i_ꩊudXMZ(8|\Xy"$I@Y*b#=sb0:%" W{*Ee+n"N"PQjPl&q'!PCRĩ >8MB7u 5 gAt?Hg/?o6d0b&ؤf!8oj6Px@ϊ LqRQ[}dтUXPKޮc ˪uinf>EiqCksirK/֘5^E". K&p q: q(LpaU4@Q(mrTwP@9;-Kyi]`+Ġ+@}TB7/!M*W7wZKk P(EAe'b ΆW  yBq;!6qr#@m~sz\棊xss[8qQ WoE oT zR[$w`FNG(~P/Ҷ P/c ͦ|?2x340031QHI,IKI,.N-f(|rc?+$Z .2DRP_u|}c_b(?)+5X/=(VFw|Xޫ_!f0xMM 0FCܴZ @G0.Ļ7P:0 <| 0{kjBSZn6r!=r%3u*a(KԌdXe*D/yU;G$KSl#^.G-%RCRV!&yYQc, C} 2 A }L2<:l9N\Q1)aWM `iJEB/6D{zѡvp;q<:ӈA{zgI6.vycv] H8 ,z44~;zӔRl?e0~mW]ׂQMMcc[nE,'5E&TPc#p1ehLDtW5z5B!aM ?"9~UQPQ`30҉PT iO#1.hWmq,ET,:'YWFg)7shAq+W(i_A\7>(Qn &i[⼄B%ǵu9኷&5slv`op!OdYQtF(>hHuB.I}R>ȂXvq9/j1U e \dy}2S@)Ia[YxZޟ >`@bx.$)]JR#,%nN]IL.ϰ_=}_H@OIX$?#gG/}_ Zn=< +cpxw ]4nB6 J\2z0~7ۋ~[rLGFXDb{Nf{C'xePMo@uۉM:?ҦIjՊYB|TjhDk!K7 8UpHd ~Ns鬴}l_Um=~YߣUb'W6|韪/)HYE'}QM;|[\Pb5_O'kl]`q0 "@(B"d I.;Ñ?@cuQP:uI$=kJgTsٱ2/y:~M-Atylv T{?x{riBj~QJj[Q~^$X)pq*RqjNj2Pb H>,3HNndgJf*J@uBy)N%%y}k)kxqsDq_fF&މ;9xXsW[+:cnb(=8m +v4ru(v%MVj*)PJX03 S00+tW |d&_G{j-i%7ў;{ι/-'o-/vzS?`~a_AHײS 騺لQI[RYM-+׶5ehƪ&KV5⿐1 [Hϲr[73κZ_0BAQyf5mغAP(>$&}4*2cAIeM+-3B??<Bl~We w~{mX%-I單4jj" @s]hc+pm{ѝ5^wE0oV)\ 'GVI2IceڋC}%}Z_uc(j垡F;5M:u+3?8I=4A{I{Rn[F{^)1P~WMVU3qtHo͠d"rZ3V-׊rgU Z7vNir4tۨՖ`޴ąny..SΡ]B}kգɅ9jyz9!Ǹ?bT 86L{ŹhIZFKY%|1í_>NJN`K 8", CTm2,;99fA5VhL]ɫi-JQ~ȅ]|`u'5-O{'k qEY,jzZ[[?_cL8ƖK6|FbQuTHhIqB`JZWA{'O?y&nS |z:~j᧩vč/xtVq7?mD>Q>kyG||mf];xxM߭uE!JAh(!ԑ_ncCA] _L/4-@?>~= 'z[++֏]`]8YS<=A$zyH9 8]3 ˠP%D={DԨX% iHRxҒӄi(h, pu14i^`p!n07rp/6"}p1+p2rėBDÈUCsq!8YÍeHz1/4y1/}fp䩆y&k55ˍbmSpúRI<׸k!]GKBiz\v%]32aeZì,2s9>tJKjN7$H{y- E]9_t~k Z(bxO*I5e8>xKoiWVxN3~Upo o$LE]T_:f/oqrV$cj6?h-;W=}ٓ nk2dFA|l[Nz/f 8/z/͗<#h8 x`>均o.<\NU|ڻpiD9\2VyLEy*OA:[LZ/uӅw7]wa 9xe QfPRC(r}:}wP@=wQ~}y1[xhwn{oSIqnY8xܚ(DtvUٰm |W*3#d YZ13GaSy'gr&N׫!ղ 8xZ7uGW%.8ߏ)1h0[OCx340031QHI,IKI,.N-f8>:jog=`s>6ݹI]f^Z>|3וb\b*<4c9RXsv<B(lZg?aD6^G-.l̛)tA/yV$9 \;ha%DxlM m1+ e#)QqUHi*xU‘u08 #ĝ B!R?UyB)R4N^JjhZ:|!3hVl5yGah?ձlX2[jOѩݑ,A* }w>I|i[eU,&Ysוb{S]lEe S*r,c/%U7f["-ݲDZU 5F UMbI'+ʩz.N(KK[Z4lg(HrRrhtNXW Vݨ?tƎ7?.՚kZڄ®j*=}{:隴G$9oyC`N2727$:2$D|N7-m:#&[!,4AƁ~U>IWRj/aN-ˤ8%:p"}80 iqgjz#9 * jT]%%xJ7=Qgv[ H-tHzqa?}7'vx340031QHI,IKI,.N-fٻ6~4n\q²2I]f^Z>Cqֱ}ǯ[0E y"b\6ҽaٿ7w˿; 31Lx{ƲiBp~QJj[Q~^$LbdMLO\(3y#nFjfzFgd@ٙ eaP~^bndg&e6x[ |Ty;BH *F+<lٍ/=cڮZֶx޵-Bkў`lk[{i^ofޛ}n6!_{3ߛ7L[֧5+IoT ![gfqB5KHh!2FC-dBj !$*k mۮkIn-W*+PqK|A\chrWh*KhOMH:b=AEr),b* :JFQ %P%.~{`Җʖ:5ݕLDYQjK$[̢ XQ`IPi-+PIKxCL.j[>l$dH\ S~*m [" X)P,Iv ڰ.M, ּ̢LAt hQ| IQx8bih5ױ͍+xǦPMx2Qǩ40TNZ*w2Ӓ-$:]c]W67lU\6"WSjbj &UAFVE?(l3Z` XDQ&Ւ'"r /"u8uclBنR@iHQmJ7_ 8= 0 ah"cp~<Cp\h@F5l} G1)~ݪ֖x9OV yQr4ʁh b$E]%fFd ǓMq*%dw"Z(ȒA|f5j8.hۣs:Ԍ5,(dIfؔb_Af.I.u\ZMnV.!2W5ue>$r1'TI`=1B/TU.+4T 7.wt|\OC5~ݱKl[fтr .u$4%.Y -d.9tAkLce=鳨d6׶J * nM #KYhwv,9P'"Eo&rp1ӊ,+& JAr<+:#lO ErdWjx#9k v㋎ W`=ߎH{F,,Q:L:LjW*P[gmMv)hv9ӶRm*SJKULZ([-mNk{.uT5T]k0uh-럺,/a}! C@[)KTN6أ_[PExfsGOc xb%zھ,jE:vE-;Mfb rm.6opK7[jpRKwg &7ұijYmft3tAB׌5#$ 6zM:mFLڼ#3&6vi[<ϳ04n6?DQ4[cfo8 _$; 7!>3ҷ\amUkbg,9>e~eҲhe:14ceԼ9ھkwŴm`[Ң· G? 'it1ƽYոڮQì'Z55esaÂXۛQZPs;A6Na]&w ݾωY7zi5\"p;no &˷oK.G=jDf%${̢^Nn6wpwz#8YtcOl~~v)Xyf)4,vZ,eyC8TnǺLIm YdG(٠-I 'gg&t^4.f"ڼM6/^N.1GKnw)O@CLx |Ix'vV-W6m!xG2y< 7[FDՔ03}⃶3Cʍ@J!6gr@7[#5RƮl 􏘲d2Sna 흗9bUf18{E/X[<ֳ /n6jՠ'jAGoIUl&9( }HJA~P=0G=lߗ8Zu]Y]l~!'~ &O_G,@,g|jnDGa,~^l-tsȳ0n z`m)V7:`E"NLT/d$r OҊ4Ԏkc5#I5Ex)ٖ\lԴT[DKmג)z,3LBb?t&áZgN3|Ziߒ'"4nIER2YsƑdDs2i>rg!}9{[soϳnToy{nK;yzXg)rkȷmp_Y zv~sL-L2%.B/dg.Y 9sḇ+cj>k_8KjS6) ׹3Krgh^7Dޔ8_y.<;]ZQS+bTSm' 2./ q%4pυd6&_r_y1o7-u\&ON1"~ \(ܘz#FVS㌪FUPFCiF :Ĩ@¨dQ 딨EJv(5RbSb4Rb e*X(:LqSj< NRb< 2vC$UGq $UjO2Nࠂ/~ѓ )4 #e*<]'ڮbėRiM󦂧<y-@$nK$3S C̈uǡ ɸqvu6U(:&|9ࠂ_@ӫ_"U0ἇ,s^@`58IFW+x6;9>ŦXBa.g )mqxwXi9 ^ُ*JnxȦn/=m(xo>;*jc~bx9e4Pd6oj\hAE4E}/ܘ\ ^^:Vq Pj50(xM/#N5 ^ 4PPTx8$_0pcSp+ `Fa6x0ol|wMG GoN6o0&%b z$x}TO#U3@[m=XBW캫$@RSZ]DYh$>fnBbQߌ1>쓉o{`:s=s~y3(4o?q1ň0ja#/&$~& En'\~w'#]=lDbF쎜sEl׵Qw㧞c<^jSA.w{.NmT,ovㆎtm 6'b?1j#lJ|\&\12pCŌJ $F&{&MbGmeUY/ nH գz/)ERD+m0HG'WP-laXkZ WM .wS0CPx":M!z4as;ŧOzv,R^ ڒ̶9;`H]T"Ӄ: ?.3j (~ IRLcZbf_\S!v%{$ DsN809`1h9 <kpA#ǦMj{{" ɷ?6[.mZT<-|d/;)ٝۥ>?o-zd~vu eLti"u}ҘS@&lX4~D%ԋ߻fjhMf 1%zD'4v:;N1[ykU*2!9=i&?hLǕFƝ$OtxNHr$O2deR"[dԨ M$'&?aA\n*)Or{rq淚wQ7>Ix02+pfԄ2T1!?ehźufRuoNi^!K!e Ãm(J mBP |G/)1XdnpM\>WڜV*<\,gՠrT.PL,+TNSrQ&UfUeUa_*ԦdiU LK!4z/ѫ^3p[s0FBoAf7v/bx0O Xrj*~ccb*Гx340031QHI,IKI,.N-f8ii$sm~lj=K e3 R0vG>,U\R_|ff?p-x @S,F!oR$E3Y wB*X0; c[ B^\jiRa'4h! y0Nt5@XHpE۔EEO i5FEɲ>(Q jI}7S>-%O{|=7u|8WrX<b1['gso0؇fzLִ\x1]O|H&)Eኬx340031QHI,IKI,.N-flYa.U^ьٯ"Kg)KOEWNB TQ~RVjrI^z~Q.×|M𤋮^s6^2bC[ .x 0EW F_tŅTvl#m).7U, a̕?< a q5l=P9IR *!@7 im2^ʂIJR,h\Ҭֻ3#΂4s]rHt9T{Ы˪Kۏu=2-ދ/ xe@E/ҞFEcHh/82lL,٘x33g[b (4xkwSEp#iKJP(PEٖ mS(UB@&{crCo߱ ?O@gv$X&'w{fgw3_)F~$YH?<1>ϸ'*zL*fv2c ?tKGF_/X,T֘ˤe& xR+ `@XR.dMc 0'5[b0O a,(@"4 WEH6 -`HsG\w bh|vܰn|6ivD,,[|^EְqStA͙B!U_urâBĬވ]~O#]1FD] Xʑ!Ty$[ 8l1#O(O]gߔ3AͿWַ8Nc{=~ٮ2 26lap]jZR$}UP*1lհ `5R2F%r`WT~u2gTuQjRLFPâi[lɶ-b?>褲*X\Kf9Je,k- %Õ[gIb@k,-FrQ={gmzg#1qՌTq!C1_)inka{RP"Ȁ"|./1Q~h (CrM) kn"(O pqopE=rCӔH=GnpӾ:< QI@Sp}(NNWeg{,QP9 ?**iq%KbMܞtOU=dE_ӊ^hAt'{Y؂-r-Н'qs.@w^뚮åE7(R-craSZi 񖦋tQ)%Lݲxww\9bS;yfP  6}xµ^{x]W7bɮ0XfxV\%<0O cR K_M8[)CBk| Cn*8hpG:I]y\dghD#gh|L4.Иq9Mu-=,4i,иDcemWh,#ЯY*Ynp*%WIͱIE;6z%U>B\ԃUmǮr=S\kܣ:*%*/U^Ga!>7(SBKw%kl@ %e{%1_8 ZR7-+[V8]wP>7Lleܭx340031QHI,IKI,.N-f.kZpZ7k e3g+_wX򗘇.*OJM.)K/e=x㹬2ɛ b/Wx[4iJn̒ 2SJK2&0* C xZ x]\"Hзd;MB5 I - kGD @sJ zQڲM$.9HMOzӓ)o73]Jμyo{;;R:${7ES ځkmj"p0ӕkh\MBdE&ek^ +>R "=15f 9KSI]wxC4ޗY"J{:SW,JG"CCl&H)d4>@@eᥢRE$Hd8# 2 SIe0VM %}lXljRulRω`6m L7&qA R #٬&?I,tJJR#H&#[U4n9j%(U$ "ג`<9U -UꄌMm$*l٪Qt%Jbv1&ROW&⢭*cTK :T*\ϸƺ쓭vF`+(ŒYEn:6]*w#Pnj.m G$uRwH'*)e=i݌qeZW"Hrr*4H"dNp[PgÂ=UR[Ih R%pk8 aLАnF>1.Y>҃OF|}d-=$̱[l6ČM| a 9:mK%]xTv\i|6:.`H^V ݮ"ֶ_P۶M4,ԙ`ʖ[}ف Vj>sPf&0sXtEf-YM|gePNtL|RFLw j5ɎO)V$.'^ kzgEtXR7~*׶J,*\ÚS,PZhʴ*Oc>%gL L dpHgXؼÞD8,v`!  [Ls@8KENJQ1xxT1_Ģўαs3숔KnD搞*VZ+qMMmem$]ڶYڞ˴=mkdt`0D=r#6e6 ש[4Vƙ],/EZhp,x :t;ƹZ^%lQsɼVS\-aR y&SR`^dXn17zxwf4c]HfU|gyt(s O Y,(&0 'G6݅Kvx2uaHCT{`9[җ(s[;:ɼApx$nt#m.2\"L]EmV2V:!|>^Mi< =X\;fтe{ўkrvS,2kˍK!aטrbwUNԎܰue;"3 w'KʔZ#WxۛLb3 x_?IxwaN܎ޫ^FܡcXLG;IpҳAϖ K5C,M{eCL%Rgx8%U2mrLBK7q6^'ƛ |K̈kUre9{tgRE'5z07ދ/cs!#h I*:{z*6c}2 轮ټGcʉZb"q,ŀOB9~(0V#R_U" 1VN|DqdO<~ ~Sa,DV٧8CMgLCӒўaMMWSCjHO#*f68܊JFǼ}#Ӧg,Ⳋ4Fˢ4_$O-BH8|awљj,ýNjy"1m%VZeY~`_n8K\rK,!xu[]`g.-6.xg謔B'VXE 5Oc㞏`c #5ݰ;56˜m|5dĉJ%aOx܍cW1<G3nt5z;  4OPT23klsei,@g8/$~^1^_"QBj?~ͦ q{E}(Q~s%\n~lQ"RqΣ{ڋBblاԁŸ ;/{o{ƱVL/Ҵq8KwP/$ANJHf:||1@܋ewӅ"ƿ3$s~hy-aCRDIJT-z[3*xɐT.Qz؅T R1=c Idehm5㬤6xHjaB,7h}A5di?KXdSm/xX |SiiMi6mIXh)G %eP B1AŵN1CyL"ߥQZqc97cuŝmb~=9|89Z.>XI`?-Y=\db{l6bL1 m[k;RMa -wՏJ24X +t ɆW]jFRBz61Z2<֫]{TϜ>I/֣}27JW|(S"s‘kBvtulILJ Cq#Q0ȇd,0~!S.ufb)%RRj5$kJqڬlAf"]=,Ȧ,z*h`HMBuW ҨِCtڈKLe^#)Ny6ik 1[? )#E ~['ȦѳxterҪ+ $nRd.4,/kiN1PX6ˊkf 5WfK瑭4#JmL)X[O,t/і4 xtxBid*A0CZD#hTle vn\{[SImSk v|0U/[^id P%H"T=I/EwGi\vk(2T~RO 푎:;dKbh{$R?rs[Ⱥ)pԑ~AV}=F`*)ΘPN6(2mSq8أU1&ʻJI9OɆ1$xJ̗*+޵@\C b[otRfvh$e^]lrEf,g)lv.cKga9\o.Zyct*6b$H\$5Mk4o]GoH6f~[1CZ,U21-I ZBAe`BHxE9,ԋF-bڞHb!lK8bL 9)Du*Q-UዉR|ղPF7$Ԡ2rwӼ>-)8T֒T zj} ' KiZl PP/1۔Lh=MN.¼˞A~b_wO7-ɝ:M&ӪDBVTy=$y"WalR >ƪ4o퍩LŰwlPT؇u\ʊL|#v4sHwe>KppΙNJ,ࣕ00ȍ9>Ɗ|jxw$7ھo nϑIh+%\M±c5~axx<ϵF`N8>>`T3<5>:(KGM OU.y^ *gK< Ojx'p8PH )Ƌ O3}*xFxvRcF,v[r;w /bpf,C募KzE3g'*t Cfx#|W9LG>ŃΑ\(^}E1CO0 `=fGcgQ .(ОߐK9~FM.s\oöu]hv C.W/P|u A~hqcd$JgyLUSF;xkemGT퟇?!:ß :|IY{.nf{2>^>@!8ߑYb6?9!)/ˏK/ =c7GKRP1\<H[qqoPZ➠(# ¼D!DZD8JEtա\PLCF9G+CL4Lh侎tre]šAn+3LDӣ,""x{!zBrIz ѣ Dr%ȉ}Qg@/(#A|BtET>Q!az!zQ>DǃbIBnR6!$:7牥hz!z>q:ȋ1|ȏ4GSd7ox|w+xW |SϽi6-MӤI6}ڔ~MiB["؂4mPpsm=jAԂ(2|Q8= {"u3_{s{#4IuG ӷS e4@([(3jTfsMJ9(C< lˆUm65")tcC yd7ge83fFb]ݓ֥äE3ow\`d25m@&L΅@ 41TQݪh!chmkpx0KYΖPOoa=TF)Ȗ $ )jE:8r'i-b..%)FsH*Y46w9dNa&9kWp`S2 BQh12:Fb,ȗl#6;>0YWE,ޒ0&@A[lcLQSSĔgebB%)L)d+ Ia󬂨5<ͼ?wgi6- gJ=*Ңz6oſI@y?n(C?)~R~R=y 7Vtg"2q*rILJ"7H78A4Scj\j nR[dmM0u*e ͡6"r~$Q!%%otspX#ϾitXȡhw_3mw'xgbթ\J|˅=ײ ze!G]YqQFӷK-fQkcCECgYQxlM`Kc^ծөE4*Q*mdyLX~9+^š3)*[>6nK{^4C:$7oFE̘'Õ+VI]{#<ϳF&w eKmS/s-2z"ri|9O;cߑ5=xeBh^!D`a8`Iސ <(^G:Jno7-~@ 瘻!2ϰW?E0NOg06 ~/ ?G0$g<ŬEp_ 8F /y Ul_ڼ_sA -{ɝ\R;:'Q`S|F\q?iP@U3Ws>eU$Mz.]^nL(h!pGĸQsΛ71/DSoDyqv>At BV B>:wVNtF9bO֞PG`?ط)0R44 :dcw㊞/}TDs$VO0"zDaO1<|Bl k닆76#!Dو(BdAGVDrylvs4+tQ.=JC@,@Dtd0G|47 ehFP3FGT\g|P=Q'".AKt?KQRD\/Bq\@Bѓ( DߦB"GWyN/eJ&QxoEgg^I%?ڼ AsqJ@1+ZR$$׮x\89 $ܑ3;6j]K~7oӯVo§ V'UW~~1(썷>-g}i9>BN?j˳s Q"92aߝlV<>/) !T6Vڝw܁}5TFWVbNc-=1I+ds0ger(4m+[[Tv3B آ?c+]4ћF:.[y?~d UY}3 #Sxzy{l u ~@YKB%AUKF;r>-wl%Zt}~Y 43y|ceC.HH<=@ųe,]'.2d.H1 z0rl^S/P ,2pƒK24hC>D%A=S/ UMF76P e5X?JkQEȱ-tvRO 㸲z$fLŸalH`Z"m!-2>qHt.}OI8' O .1\V_7J$!vGCPL|?d:X=*GGCqֱ}ǯ[0E y"b\:e̛YYbsm/wxĴiB.[iAJbI*M6䒉kab%哊ˋSt8 '1)5.K)MϨ c^x;k4h:YF{a9&0q200po'^&d37 4xuUSF_I`!زyڼSR؅yJJv:ә5ԉbQ#%ԫ=̔\rν$J=AsLgYjF}}/ǭBPCu?@\b_JWHXrx38gJ7\QQY(n(uV'[ͬ:T֊ =E2/PE, ej&@a;IU_H C.͆+UfRkb'Bqd֫g852~!Ma7P<4FmKY|`#3 Q K76f=(dʢnPR%#E!{}#BF?Sq./ kvŽ/2C s˖\ψ)E@)whLH\6DI8$:{g Muո.K8Rz(Jl Px;UM|ͳZ+ wG -1@Ɇi8.k߰ ?1A ~D gxNO,cxDhᣣqZbg s ʟ1[ih=E{"BBC FɞoX0RǚG # "~y@)Zx`,BtbI n?ZO? {'aqvrF=1R\Ӡ%wye7j (NRY׶*!1;aAN=W3֞OSpRMOWm~! ŋn=5-dn0ǽV(^( BL~5g0,,I6W)3dAi:Xx;9)ꥲϜWn;II?»URw*Fq)1jm2]$?ڑǨ K( DwwD29 }gmWJDd5b@/s{Hu :Oq$== iKAN,$-aQnebY$ڇ}5"R[IFibӴszu,+ī}^.E@~<w0L Gx3d/ׇ%ip:!\dSr4`saq]u=go Jqۧezylp>QDGhT0'QX)6K{Uw,98-kV+Ru.y Zp.<.sx|:8poO/{ZyV$˳ Mm-׸ YgXOݴEpV +2>?4!k0FX}2 hjBL }n@v /Z,0 Xk+QEEj?nNe "LX> H4B)#rVRJƹ1txWK_5כ9T.xVĸ }2XIwJ~l?C Cuc">W\dwH -s2:X5šjq6ޤ2hS~_ Eҟ^˱ WԎ_Ҹ,1M)ıAW3Y-Q$$y'pMzwJy$PH ׇCn%aul0ΨQ1sH/B.)#b[6?.%W9% f !l~`5{ r#z6?xY[*#q$!NaeiㅪT}n7V5?=2v""#Y#jdo)]ڠTc*ֆ5-S]~7/6ɥx340031QHI,IKI,.N-feڹ+>?c;ۉc'R-AiK~2)G"%,<qx>BodűMSi|۽۽=w_FX~~AtL$1:aw۞X}B(Y6̧׼| q`u~ds-=*)edX-o'hY7Ea 3 KqUTU=G| jF%Q=ޠXk8+W3 my`H0EW'9grLt|GC+.'a"B_Cm&uղS|5*=%aV [7PN5X)'ap ~`mR4JtO;tH (rsfn"@,n*]U*N UhHVBձK!%NKK{2,ݖ ij4D-V;-9Z=|;HYڠ m/<`t1as5FS0 l#xAu]K]Q:jzP/A7T>a+.CCm`-ڰ1l|/J(M5Ti \uV|yD7ݾU^fE?1~WҲ8$vN૩zhL=3q]d HE57?]=~ּ 0VlRLt{'U*6M,/7>X'\ r9:vcI:J`TyuZg"UXu↕hcף=/w$93V}n6\rِ3=~>=-1a~3?lKՌ ^@U?ps.rxmQMo@uи4vpHPG8* ^f,9vd艳E9G~'n?ve yyorԇhaCaA>P4DԢSB^yOK9M߰.B isX;G=K`7:'8Q,G6$8񵓥5TwB{Oe Ƕ;tX!fU22 snfgfӤ|č]Ŏ~H0mF[Eåjcj!(t1)ѥ yˍf]̻<ȉ؇mQkKY2gA귓*qS&:L]Ktڠb2fO.gb'+`el}s]|zNbigm~zKQإ6HP_UUh.uNwlI5hڤ :k<6־зT(SX2Sx` 8Cx03Q„b!p uMx340031QHI,IKI,.N-fMlkXEXI]f^Z>CrsdZ'.-P^ U\R_˰wmOZf>+:ָL+ƹ%xn0 @WXI|TN!kFT;Z4qX$+sl?$ 9UZ0`.}ExMcX8RrmF_;C -N"yl\x4;S¼cLLúTޣ¡xF?)GaJJrb,)H6M ,7 5GshT"UFa:t4Ll7{ݸQpw0v]ݷcl/=-{S|VLx)f\>o?[xXrF^NĎsIBʥgӔ$Υ(@酢PQ,,c_M =A3Ë=+-a0cyu9FveO-.,ˋp*Fc$݂]u BF52Tҷvee?hK͆kZLgLd/~cd|CkV+vs,e|rM˨Q M(9A\:f!gg1)lT #"ɒmT%RI[^#F,rk $tZr_!^M9CRp|3iM~d7Wll5OLEMz 4ɨ}Xv@(J*CiK+vCv#7w3-4TCAZ$7"A(BJ $諸3B\Hp])t tmuDEh$J˰4LQ: JV`%N'9m욊S<" Lr1I0,Q~ܨLQ7Ck`f؋ NV7mztˏ`uP.xRKF~b"bW ut1]7U 7gI)*ߪ׊tmc4Cgx lvdJ'NHl-!#VH¯R˄\5V &pԉkḜϪl4h]AIM"<&QM|0‰"~>3jfXsq/WZ KoZz1 2=. R+YW] m6駸nS|ri`qw}1 EQHZkG'[/;oC$S5z>qr A&mkm~-Fvyx~s&<1]VG>} n/WYg+˯wxxE:RĬrwV[e{Fr`|2g(3?_޾?toekra_˥CEϟs D-_3d"nc5@|KN?"Vc `Α)u\5pdrwiB uE䂟u9P l,km"GmXd;aзg N?)\ \ipCdG&睜ll"^[m] 2-qcnJmtSNOld :V%ؑGQM[f tcdwu{{I eԺViQh؄wЌ_nkz_<;Yuvq~AMdpTD dQ隆n:uW_v9_Jdx340031QHI,IKI,.N-f].m' 6ݦ e3$':GJy5Zu PEIY%zE 3Nlf]'L᯿'qy*x 0 S8<7'λ.sѮmݭ6#ѰȥMUy(IPd8bt9;5hl`$.šGJem)7Yz<+gR n2oe\9e:P`)mxj AP&Vx<^Mxi7#R|YfjdFu.N H/ OəlΨT xXRIL \ ʺӨB@2\C2$&[|}H/#&7"TYK3}N;O\zmKο`-7yk{ sj:4/!D 9V6_?PhDӲmn"mi{ ?AFbsF5VBlv)ihV*qM8s2նgI,N zV >m{[ $b6qNM`4Q2 FH$5Лm4Bz^; 疍&b oQ@;nrOt1PGa K~g Oݴ ۞{z1P ACTUFtT"GGG9ߖlKb;0Dhêo?FYCc#2[Qu߶C_C6ie[X3ۢ6h/驲-Pyh?$] zLml=Gٜ>@`/=~ Ff:G!uBE<%yhq)Ծ".2wh5i%++WD}Q%Ib--ao'j +[́#r_Y-r1u@%}Rs! OSF!$R>i%|6@Kԋ5#Ҝg;>c+P Caz.6E 5s*#j8t59tL` /ETzX!qܡWiB_9" \'m{)[Q1mF3:>>Ir'/Wa[+\CM(z>>%c f żi;!HǯQ9i\?ߟ|OM/X?T@0,(  L5fnR&fe3&]]\wQe d'׀BkvvQ iwf,?!0&iO͇}ސ!>/D%1 CN ,N9֩M6,*2lÄ{4& nP0RH7'T,#KX-#,Wݫ̙VᲥo3!B.}VqFꎃZe+IoaUצFG 񉩨glS|qVFeԝ#ޟ'z ٖʶus?7'$< _1McfK+/+X5̝)xY&UJ}vyE 4.Bzϔ-K/^ ښF[17荫X95[(%sx_pJ m5FE|o*-BPD{1Eóx340031QHI,IKI,.N-f8aG˝Ƽ4𜨑e.3/-@.EzoLLC˔TRKr[_?(;ࡘV S],\ Ax[yBr٘&`T HI-)I-(JM|Qb2+b5i PXVAS2Su ̼|(57,թ$?*/ILIڨl %$18(9hA5crIf~64k7~x{|yB|Fe.\ĔԢ7e9SRK2&6('NcT`0S&2Nvgf+K/̨] [KAqCmwF]S`n7-TXv:ZifMBC`~L,Zf) %- `} f6,+DɆʥ3LXC}I7zgt[Rx. y~Sޠ, q¿)%,1rP &UxCo67wSV `E8f91N&ˍ2\ 6qI{|B"*wJ۶8)%s$T  !t5lFo.NI\S&]EV,V]WKqGܲ2%69B@˟`9| .>8eH.)%l C}6qzl88̜d޼[ąweW?3,D "`!G"bs0V7: hMima0QA ;-L &xe9znꩨxy򓲆)(3(3 m_o $5uLo >.ʝ`gL%z[k.e<^I13+.=n$܀qw/ItV;Sv.=pl \ďIs9"jZ=t I>O t=O$̶GnOۧN9)֏K4{$ɒOڪ349822v f62T8 X= x|){ϺEgB:RNq%92lTw&+*C 4z~N;dQ2QH_lĢFH> RT9ſ8G#dwY \Ur >[~ZnZR-r0ú;&ωAߜqb>]nד;Ck-z 7Ak{ REv7:o eiR0(2Фy|P*B&܆-؅]gC+@3`w_tϐ_r O%S^,fҩXk``RQQvs6n .[j>WBs nsQc ׶!>\wQO'Rʢ휳5nY"_nx,_ڽA=4d"Q;BDlml}sd%woBAh$Icqb{eKF#IO&FG1~O,\+~]syuMFED漎WS3Pͧt@:5 u9 NPF8A_b]i#sFmwS|ߤoњl ٭ѭ#jy˱DHin║=WKoJɜ.‚jP)+f&ٹCӠUjznU|ǽs^rӄ*#qS?*ğ$[&>EF?u_:զu9Dr6nT+uXք;f!8'F0*{.Ȫ4 @cxeR]O`~ۍֹb*=37Fl#ԠDEZa9)~sx/0m0; ^xxoi K6ysG>4S`_'ǚ פ58!ܙ zsl+ͼe<0Nvo !Q.妧roqsS*%E]"0SP.UAӤ.d #-b16$'}S`0XId ''2;F9KmvYfXƲ6pYm6R`zl'&~hSHr4v ь= Z>:}uh|ɑyZzXgL{Ӓ JL3ys? v{|te #_QFݡN1:D͆bx0UU*5g$q%DB$3lE%=UTU)34CSUD1Y 7~JU;J {]D861 .mzah~y{Ug=Xb!b1mh xV# O+_NJ.J)'3[s['-Y+J5*&݌_bĨnvNJ$Jtrq̑&3,ixX{_B(z8cKv6kVuGi>1kZ1$o "a I $Yq/cozi3z,@MGbwvf7>pp:Si1;.?[jwO\gn[ײs.&yͶxNp] 4_[*z9C rb,be-f33Xd#|v}bWZzdfC6hyI\Q*m|ra&iV v]O;++%nSrJN>OȰـq(qa.,=(2Jm9ڃ4ܙ4HPt݄~jXWFː%^bʦu19gYGbR9ajyIeX's)e)z0˂p.ILT~2'O7ny=Xj0QO2*4h *rrVp61YhO\6MwHK17]CӛA@Ge*!Mb[ cn8R0=u͑+ I(&pr( _\Rn}KD$VDӚ~̢YD(F>#&p%X/ &g̲vf p}-X:s<5J\}E.pC_R4UlOd !뒼 D.w`]NtIkN-cc{kROR?3C.7ƽ7_.1$RdL~D) +vIHHG1w;5 /\Lgj81(PzfWl,-6̀;.xۧϿ]UN/<Hί(+QL'2n4ru"b8 !P㯱J+: $95F f(|"9PNZx'߄%L {,]S,X"z>~(ο*,VC*RͿr(.( a`28^#*ǃqmY=N`v[Clacl+>6֤z> x _c$މ/8)aS~C%okCBy]1˺{r3~FЛwLL -is6%C*o$UAQH+$uS|#)5.Y&Q$1 ctgpojd#kIS$NR:"7[$ SsI=>#t T*U,Λ =5&[\Q@IOw;O[G.\K5KHCE}X4$=x_g-'&}jNm Af/$x340031QHI,IKI,.N-fpR&~꾾Ţ e3ɾZ\2ܘ-Kx U\R_d ХJ0̓-xOn0 =7_a& 8lCݭV(2%1J8 ml’e~( LEf ev6y Vi1{,A}ϟu#Qd-kK3x٠B> Orh^d>=Zc:FU]!=OEք P6 [NT.j6[qr0$·Ln"ۯ/$sŪ[ÍIOg%4xqsJDq_fF&։=]xXIsGn,I^E[ $- ی d4ml oNT9斞rLU.) 9h$!Ri[MCm$t_V~˛ ?gy;!h \f(ZMBо@-}@A4X e*}h PQ9 eCҡ><]dt]yM26@ٖ1l05Q.z]L1A.W*bkw9/17BhN09A<2%CsxAP 6 6 Jrل!gKTkNLʖP7=}i> BIdˆcbb߆!4s1-2mYc0.wnj  3rj$i_3_I1?9Hΰ;R(B5l)#,T?RaRLJ&XYb妻ajs)k)n.G~a~J=ڶ$>V`3CkgŸ|p OQUB#tB}d,ijlS3ę4aV!3]#|H))uv7'4u5UQeN$7 ;[~L+*3cEgxB5NZSdK=!oIbuN KZ3rx`wm13ΌKQV)=뭚cq aN.@0oIk6{=U:+fL±_s;k!C& 6OD4Zp"Ruf Ӝa'M;Č#gіc)%"E8|F&\GY2I_~"gLG:rJŨRe r̋ |EPN.6=i|.YO[cLApAWCY km!fvlA:cCXzS'#9E3IPd DB"fLN^d!npAE:KSz)K{p 'Ѳ\U툎GLQJ Ɨ ^#E; tV4wo$y.%X>a3Ko'$ Z[XpCLS#RWmVuȝť0ɨ;! F$7dĝH{u*IH@$v||lOzUH8]E Sk>+4ɬ"s6_ ;NEpNY W+Z) >V+ +7^hL;*@&A5vmjjɨDu˚!Oۛh[ަCޢmϢ deTTǪLd7<λ; 3kkc,ԬY" R:mPFUh:e'CRYU.(Uh8*9 <7 k䠔E"l[sT5TC.ՐC*F z7x)dJPxA*Pm7BM-+w[^s[5͝_0x340031QHI,IKI,.N-fΩ2Ww˘@% 1͆H2#[%|Cqֱ}ǯ[0E y"b\݀р$yy'Z!.ֻ,xQAN0<'XBQP4AwiolY(,[ٙ1Yl+*;MK68{rT, $5Ŧ&C'0kGK ߥ ' *M4qE.%9Al[RaJzCZM(s℔~-)[- aU*]Sw|"Sy3;]6?O7?tAӖ d!P9Sl zShqE=D<Δ=CַÔ?9}ӵ x\y\ʦZ['.VVvBEDEQ#Ȏ bݵ.]wjy `~ܹ;~g7311B&sI%s,nžX* Uk˵Ś ɘs]1ҘCZ ېKðz`"<uUX]O_.6Z mXSp9jf;"EA/)dLL{ŜRl-c9A-&d aIBCTx kuf̊&Fn䬭 z_v8:$Y; kVFx>`JJ|tl[?:Fii;l;žmbC UModʡN:)-i qvj9MAä:SrV ۩3(ߎ"u)06鶂Xnj|Ue d' ,t Lh786uR[ĺ #,1[g7Dq)CCCfyFIdc|}/iz]~MUlbtW#-Հ-!pZoKCi9dW4ҁ}mj8T*%9BUaxW;jR^N_ҖjA)K$+lzc{SGԧEGQ&ݸ1aCwp# 9pD[Hѝ04nh}a{FЮe:#3Z}4nҎ@/^(iAګ=M0Ň5#eQ֦W}Zf}Jy svS{C5Ғ5fx>;h};i(J:%IPP)NfH^F// Q;EAGRAGi B^EH+ 9hQ1TȱK+;JRC)7 T BI%>~нPz"\)F1N1Rco iȝbȝ !wZmic_; 1r}(_;_rgh3܄Xhf S % PZ=4npgiB'Ɣq*Ҏm%w'8ȼ֬ /D4Aׇ2U"S}[+\O;n':X JNlkWsۊ Ҏ0 Fie(6x: tl3e-w{݆d߂!hR(=`7w?nuMYvjv3va78~1@}倘e0],Fp8LiwH* ,!rh~Jx,a at Iw%/Pe^%V;KX%,ije.oyO&rKqL+ԳҕȔ\iWQ* FEDŚ^_r־-h ju+zuoTTFDeR"[C9 b迆9^C`OcMh M&v+Hv`<<$`Q]F/#w ;ݤ]xpƯ[SRZ/KBg2":]7;z1c5x7&[nF·:.!e7=CkwU{#2 JvĴs<5_}ԩSOSSSo$0spgP\[Qy,WԁG!Qѥ{6;踨ԛF i=xmWWWϯ߿Wc7D=&wݟAU;CҎcP\rԂx&e࿪,yn}v1x&}E>~5OQX`޶S> ޴a|I-żai;r+eX\Z YUe/f쁅(CX^Oɪ",3A?^ʹC<#;uI4''I%Zv# v"sF]{O’ZXXrf"!2 d`ش &3B_i A v0pe%OK;27|̫OJ랯w{NA]PQy`{$b~ʝʣ0@u/n qy0ce>L T _}?ghjh착nw&$wVR(S(a߱3Vu2=a{D# BriDRN/=>q $QwBB< [ 2~3m7%6No ,0>zÃ)>q{^Iu9e(@$JQg`Qi(?/Ék͇՝GpC8-(?yV~(vn+юq؏ dY{!2{/L["hu}ǟ!c_mMAn/$()-ӟO£O{O~;onS@a54s`c}e솈}3Q8 f',J,Lat GF=/Fk&9u/9 G`n{ %=W1&~.g*뿄}g8A`,,>D*\w@C3*`lXU<1n[d__OEL qEW\ ~ 7?C(*.W#G2lnע^QXļxaH@=,*:QT%Rf)Ɋ%A_8sQڹM8ܺ+> ? ~@}ן[AaQ|~cSѧ SoSOT \ʰ>3/{ 5"PE$OWpkσ?{>]}N`Z9Deͻ 2$@C_!6Lt?O5t %<ӐYP[[w>g0^UvKxOED?6&pNً@X.'gKQbՙ[ܺnjxcW˯oއS&- rb<ƌO|UGXV"w+'2H?و>{vtu1|.hKo`NҪҫ|c~î?xIz݂葃\]]Cǎ0dv;'$V t3P֖_jnS ;e.E8B-_<_sS`N غ拹0pX*- B]kCN)WE%9~PLx3 ׌E࿾ >>ɥN9|7,:0ũBj?5JWo=yN<çAg=@fff ۷v4G#!K%{GSJA',~fiN?j=hc _.QGț_xӐ'\8nI\јcoT w &&&Tnݺ=`l*e4fE#bw#w v!N-Et KJ2k)6>!z_,nU_8*zh]A5'e`VAvCCC:t\ Q_I|Lh0MȦrؠ yz.z&{-];[k.P(،7;aIr3rY289; <ʠ=z}R99Du \(噲$>ay.|z֚"5j6F;7޿2cHC,Vwrc-Ư8O0O|ɴK{Y^zA[0"t OMĖ]fWՅT&,G~q ;49x(rg&Cx;ڭPv{81ޢ^S#炅U066+++jBD0"l)hӑ lv+BODIy޹|s=Oy,x 22'$ywwaO?+7r=*KL )&gY~$c]'{p][A)oBT6ƪ&KxLE`ddDdjj oݛֱ#L^IUE0nAʴ- mY!.F&Ξ1iOS<4@I;wCv[~K: Ger؃IN]v1XD`imM2Ӈ顾10yŇ] @g lNU#[Z28`m8I> srD⼽/|_bc\Gu};Gbt|7Kq nHMvoցK~ ]pn|l#JQA8bވu#_OY~ȩ+ gw&?ƦmEL̯? th甈9֚O+6}cͬ' `KWHs)IJZv;6jW] _Z7ԙM;gK{$K۶m<[vCIjS㰸0PB }oyσg&;Gd@{G 3Ttim,<<^O&:LfZɑ5E[9+/uet#71+SdwnnsL船)*ӣeu}2$KvEΓPU&.ӚǵC5T= M ^|&oy3ozYP"talo"WER:w5mL1+}cV|>iV7c<+<*~RR~ sB EHthHNrpJ/>$L"dA$Ȉ&pdSlp{bR#}Pbp;Wa#/Y.WIJ:t4tpNWL7+t[X]o󥧤MLG6B@!^3<%N&"tI,Ɲ=w SCg ĊiΔK2 [d(ҊMSQ9=F>Z. h>7>iPgi9WYtϥ>wM[:\ܼ`.{nyeyߕ'xMJ3@Iibݨ>u%\\&vdR&!J.q2BNXJ;bXK K6o@]?cx嵲 ][(n5\Z~ ƶqctǖm(z zu8v3e\Ԩ+suAzTw|+>:lHS !g6dU{9Y}j-67d=7J |{uYTj*WKu8YHh3g*fڌ*,8F~''< fKko-H}kq+~/y8<;:oGCA_ >ۢ4n~}k`z4nIR!'; {fDvMdҏ}$8Ӹ xyb*o G(qcP1)'C "G+3e9~=/dW25Lop|ǿqOo5 To >>oې~ }Qf^2B$=<_<_`mw27S  TU3hw# Sу s@bfzxuнK[aܴ7CՔb$! ':EEroPt"!tMmԣE&1$˹Qժ]D{=ky`\)wojtfퟣmU=WU贛xt*nESGޱX~M \@V5sOѱI(2Cqֱ}ǯ[0E y"bt 2-?2^kN=sxMy4g1e! I%d+B1R"Kn#"W"C($W55$)![И_wyy= A :b*E$Yؽ j0=P^t R4Tv:tWmJSܳMҡ]u h\M 42&^ΉMxtPΜc2q=+~Z|#\5 }؎~5"Ԛ[yۧ>bg*hokjyNy;$lcMUtS,ᇰ~iu8|"1)BZik~8X*\ya+4%9E~k9oDP:/Jvi2LO;ᜳ"IAHZ7jXZGfy|NZ9rLN*x<, K$Eq)kOƐC z`?$Yijni&dA1^i#O|?~6`<`Vsdi%UdonuQecXx-DCd>)F$g\R#$S;Yd1WCԼ/U"si®K0_f-1xXG﷯]{M9r\f@^GHisicN=^8F(3nkPBYg`rF,4Q"nZ&9HN;i.[Mv.h7chiKLZչmp>K~zcBɮLb0EP\k~>2m ;v98t?)ivoB{M;"(/,l=h}{I-xv~DpDƎ@*vw,|_|3Jvh?~)R/CR7°!J!{F$mʿe:r,[]0]`EǣoD <|#Nb)L5З{iBS`w纭;p {;|2s3=.}Q PĒ:![.$ÄQEG|B#`&E[9S&c_ "\Q'mkgbZ*槥"e8lCr}q_O"TkVr_>Xl,؟iV,}7k'gqe@L̈Z'mBiPGxNL͓PBs'ۮ5֚T@zkP@c#BݦqY%AaHHS][5P(J|„}`wAuo4'&L?ZVg{Gm^bUW%+2XP wfݙiV$u)M$ C9oQ4cxfb?:یj`B!\"'槜ϩ1Mƽ*x?Ӯˏ$ zM]AmnاH[ɳdvQXfJa{tWt`tl|%a5ymDlLU[[ )jʺߝ+ H]gb.Anq~-y0[%,SVe-S9CaE}nE-KD+*XL:Fm(Gd?jw qɭ,:zHFĤ3Yw'жv*C {p>̑z ]GWgtꫢ_ӈ:Z>[πǸ6?HSv}Eu vE$͠VTR=G-hj7&4Ff նz-,̈́}9s{wh75 Ȁ$a(Iv@oҊ~r윏ި@xaH9cE={( 8zypG4*IgU18):~0@C^$=D4 Ͼ+QU.WÑk9fCg#9l@q>XrqBUg 䫊C{RFjM:a(X1SfgEO+WT-,$YȊ,Iu,twȱe.:UkS1摡}6cɈ7֕f}5¡*g%Z:?IY BW$1 u#[ !fnkrGl&1#B9j/"~Y|jyۥfeC9Oë{M$qt|U 3w/gNT6iQ8} %'#|-f(Y@p  @ MŐMج86͐MI%adWo6 `?,9soVd߽]vgI׽xNn0 >7Oa& SԢu/Roxe-heXs6N&@U9@uN!:b%N_; O^IL1H2 k{NoÚzð2Mh|wrY:IĸTP1Ə^Uʒx"ntZNȹixXRF^m !m6=Kɥ!21IKӦaU%!:YM Ag}>BJ%+2 jh9߹\>7 ؞9?3`tJ,9 T%]oF%T"rξoZF4M:ʕ\R/Ws-5dJW9u ON cVqAi,MʤB "rn?-sfI\o{P;x##r$,U!j0aD/ 9Y<2wgdr@_EUB=:iJ; [>r C{"iX[>]07+*v(Q(KWIg ~MI_l%bt9[Ꚏ)t< dvR;ڧ'N *5Ãb/-H\;rE?ܧQLi$}C:҃<ff+9APj@z2z C,ojWĀ^VSb.A;C`/ݝooq{^ݒs"Ǿr>P^[N.͜+q$_p B)_ =H8⽍YjV?`vV.V, SN#Xc,'D QW>-lﺎMy(y^}`ډɒ9,a FIXJW,LWkdx8|$H2Pi E6Y5'9wHU~b1'g ax|EU΋ݜͩUVs0šrQ~B,mQ+Yfuw̬s4zEßiz%jPEUYf)cDo%yÅ7|BOKQjQ)G]rc* VFVmȇ51S#~/ۋRIY:9(oAᏱwnDXû<'%Ak!h q|CG"ؒVl*wXg P\m8"/꛴VC67qyXq 58ޥgI!T15'H{H $懬XPgyʫ03hF~ lz .qL.Cq u\Hy`AT+%.NMk.NU  n9)P%IaP!B pA$9!I9P|zd@iyG5T (5EP@ԊK R^tǘ5Ha5W-x&OpFԢԜ+%.N P*K-*LNKI-I-K,IŔMK)&!#0욂EEŞy)@MvdW$٘VnzNMk.NҒԒb[ RP0#a\9P.J8B M,)ʬ &夂5rm .-HCܛ_:x]=K@lwUQ:XA@cC| f'L&يl)mfwN> {eә9&q/6V9Ǻ`$]u3K]{lY&Sr+1zGxYP!=RF2T!#Uk{S'+z3Gtǔe23A [٠z2_gмͽ{%i pgd+I ѯj8 x'*a3obIQ]lƊ%řU%:\ @,ILMͦXRX^씘^_:7?%l^T( 1=P(Tũ9A%(*VrqjZsqM>~s>$ xk/a3[~Qll J2|K2+t8$1K(A,IL^Ix/+0ӱ((8*ur7pf^f[~s~^IQ~NNjl“97:23Mn`ݜP6]B8%5-4$<3$Q<3OS +<$^nXfj9Vt\(3=U$/17-35'TZRũi\ZZ`4y/c-F|xqDqF)[xWIwEn7Y-;`c, V؞DQ|^ 0qWp'pnM[H~I=UWn}4mzm;mnVqv#gg]7mc1Y82I&ŊtkQ_yNK $rּo?1*q8QMR &Utّ?)? 8l)G*) p*Rw:!n\dV~}~f۽V0Cq_lZ+)jSNNy0 /r \_I\_}{##pIicYNeFTLPߊhpΙbn*sJҟwE׹/#0~wpœkGP;] <'MRp?jb#@dR&}PcӑU mkLJ$J"|=U={k;4 {uFsP]|:f8&Bۂ\pvl^?~!?KV<8NY=\x340031QHI,IKI,.N-f)8+/;jiKf/o.3/-@.EzoLLC˔TJ2^DMY/pO $?)+5X/=(!)_ksngu%9`+H,-Nm FR=xj J2s#[g=e4VPR!j憈 /|Xt[)LM9Dɡ{L>R[~OQ*Wi*,sOɃ!x69tOsjwޠo7UM7We* sAaÈ5{ґ xm 0E+i/P\ō.,)E&Zŝǹw`!RC h /P݅!]Z#8NRk x243m[t3`W40 &+1޺ŕl,6,&,(zjV(.[~0g"?~<м_ o|ThxY{PUE+d#bR>JgДi%NIb^(A 1D,S4Ie=qvr}==}7 ` oF`ѡC]v֭[)??߮Qyyy߹s{n*--xij\%GN>-?w;ƺ>ҼY.6vǝ}YL*((XZb͛7,X@k~Z|Ntz#8P\\L;v젒ڲeKɓ'G _#/_ Il_]%>#qĒSX{"j8Afl_UPQQam%qK9XqVd:¿aW\srr(55ƵL\6ƵL\H\6ƵL\ĵl/ߴiݻWhvʕ|rZd+oZG\?uu5]vͮPee[?2 ~G/6eZ&eZ&eZ&eZ&eZ&eZ&eZ&eZεor WUU @ B3:Q9[ 46eJ>/}sk㏞+WkwD[> +Cc:9a} i"b~ߺETR*@?$/N}EwOE}0o/s*a.csczt=o Ѭx7 7L{:a^omuct^!Qy%wa5蛋9rswڴi4uT-""B7ə)D-Zn~ #O3Y8jhh(lFl;cjIsi Ih&Nh~htFD{0_Jrg rg^Q,]T~WUn@؉J zU玲#pђ;ڜذ2:n]9qF6d% Qk\7(lm 쩙ں7Yr營>3)ح-CLbNpoV oo޽ ԎCCZ~4u!~DQ8ʻ-wPa<"` bQ DFBhW!jx 9˫g(g7s틸m06쯱D݈zyo~Cga/gد c՜JS)#'jVq-+ {?0sq4h fUY;+ĮʏFؠX_~LXj/O} 6t6SZ֏2|^}b-4؋K?1xgjr }o W g +Kp~iUVAo%vƓ#5C Tc1y,!P+?T\dL1s@s 3ImݡC ?=6l۪q;Ґεqui}&֭x3^i[mY(-~Ըkm ҉?Π6ozWJOfLܘ,tqGoqe"Oktjs}~{~㲛>ߎ[g];6_k;w?ޏ:9?xOǼ^zE?}o}svnOb,1PFFBuk'/O~#ߝ ==惕uˀdz]Lhx"9G ~?`HfAN66~.. $㎏2qNLl33s?Vc,w&~};xk{##'Amm'A3#=~RRʾ hIzE T$ЀBqTwr/G1¢*@ $kPTTjݒ :bbR-CefU,xDҥf F /Kk)J&$ҤӑрF-ShlQ*˵L2j®@QudXgX(ou=/a^rk 7wOOPp>+++򠻫SSs NE"d7TP} 8J-%FUV?}}gJDdum ]c4..88c[#߇C)>KS2-=8L*5~#rg6E9`]cx[}PSWy$ D +_U  U!`,^lYRָ~Uյ::M;]ն;;;gnn}{{IH(f6anr}y9ےݣ mͩ =kj(h~D$1'ji ]QsD#P7Q%]IU) I@f09C Ji怴c'Cr E$CzP%UDs 7>B) x$~Bi%PԛG6Dfe dw50~2#RIM~=MİxeNSl"`8YzC PLVfRA;Pɔep)݂42}in i5>FZI*[ Q/J6k՜Mi"xl<2 s %x~GS,,gR(UTZC\6x (. qQ&y4mESEMRI s4 fǀ(WUP$64Oh+ `A-܋W>_\ai`q8aI|o 1G3^YSPé])mӋ6VOXlEtHv؄A7rT3cF'`trV{1K<߁Da0Q(L& RyxrG} YTjԼ,'_&SozN!,!=KX'/[Ʋ++`)6 U캐ˀyse2C r?j(@M+SJ.]>,~\]堛ZEw[n𽲲-#'uII>6{<'W҄0ɺʕkWMfHa#ݻRo0~x8|/quu;?S.*Zs+5>;˟ 7g\|tԹ+*V<$ފ =y睓Ǐ}CnEOgx=q(j=x?>~hkc^~bj}vIRw9$ :C7ooU& lo2ՑokA_5}o|Tǡ?7QmQmQmQmQmQm*Z\~L!U\Ub:\pc$e&>OYm,.WAV JcUI<98ޭ. @ӝ'D h#Ak,2 ָZJ:j(j8lG!Y[=U=HyuݏZ<$?^ =z"MjfBy9 _u Űm Űm Űm߿z\ KiB<,X ſOn_E7/lоޅ)ﺞoz֮gίy7g-nT;.܌ugU)VO6-. h&nRaMv慵JLླR"^%GiiHH^/:@5j:V)&WxcazT%ن2K<. 7wD@v) |7]<$SL8_+:g%^Ք_{_kċt.PLMng{.<:mq [l(ahBL`b:a66?=<`,yCc ͖B3uuXe،]1#<00Y Ҋ 4h94Sl"l} t[Dq8H+˂3,́fr*v-:*0d=t>Pȣłc rl; _D!^Ƅ0a ~L4x.jAэӀmyCBkЃ(#\ 5+ n JL`⡺F(먩)}Lyw-ֲ}RUZ[eP_^ ̨()= m=V/^fo}M)Wet m,[g#Gk*jj{qO:s _m\*ꌺ"33=#KW*a"7ϒ] w|åjb@c_|E'6|ϣ=yނ-xhxހ/'xuGn`c>["zB)ڟl_5r2QSsu2%7-7/kɒC<wƓ'IÓ-5/w\oy9\mm w!cŬ_c? )F;e.BgM%8#vޏG5nyΞk֤Jn&]jϫQV͎ҺZljōx7{v&ʎkl܃՛>wGG2^"wqHtŚ3g+Bg>PMCӋc*xji}k_$ *.cEέ{u wQI 7 :jMMPe9(. ۢ"ۢ\q%k =~-r!vþ]1VoXa,s,9]K%=/3 fb~W:٘VKN u0Wv.j7vy^w0h`ɥ%Xsr?6i°UsLyhGL0[6̀Ľd^O:szRsMejFf?CSżX~c0?ӺOiOj+c`pQ1Hwj2k"$+{11*-,YKksݷoUDNYZ<_qFؑ1emU$c3S@汲 !- m ŜsL=^>O?žo@q{PX+6!p/-3)pvw} ͺoδ&lZ&P=KƊU9{mjshlڳx5GNcطY<+|0LՈj??XY"WH9ablf?|:h -(cU;0/C@6xI7qOWh'Xӊkt.tgO?qI7գrڥz\P8r7ĂŔ¬is0=%#ɵG+M6f$IkE;AqLO B樧ʹ@ìuc^drqK{I6vo~ |Ï(/;k N^qr\1嗢܀up.U}/aQTT|p9$dDMfg.%32ˏZp.v!|;.'s]ړd IX5ؒ)76XE#>z -%XjOx؛5ןQ_߈F++ÙS'QUY)_| T]KC_aCJdGB|H"H|bOKƇǑ 2'f$oKqڑ {!i4%ؑ$ Ir&`f:f>Ne| .ƛGOdϞ?Ép;{7CTWūTg+M5ߏܴ _I׊Lې)s\؛cSdI_ݵ͛8wՔQC\#e8Q~'OG7gt-` p mN>IM&)$&:8;ъqI:>Ǖڟr&E;2I<Op-TQw]n0HjG/kEE?Qq-;kWuTp'U!2~BF!51ӓґ`5f'g ݏHk[boG (MI:ŝnGR(<+ͱ QNV$ zj>кPs˵u{!޽ _SZ{ Uߠz-ۉ۶co>TFu7 FhTd+Dp!vr&>$f( %SMDʇhRJ˱Ϥ] ەi+GЄXw̦<#!AyNquf: C`יjוbdg;Lt:r-S8fM0cam [c^>]LI͂3/Gsxx:dPzL6"4Dl4b}Qk7(k:Ml9.pw"1+_}f'GsF<)b$r:6o(gks-`a?\|ikC5#e-^tvtBOoUvtL4:?qw,ԧ}- ȱn!q@>x G3r<%$[twNgl&ߪStcKjw&SO1ApLzL5Hou@yU^+%=A"ot qi}9e La[91htco2X+e+[o_ԞA#<:(w8]މ]Bi>N:բlŵ-~o3kǴs{Cݥ,oD&B6YX]FS-1|ڥ?Ύ͘-*=[b^G'C6|tTT, 3-;h8GWӸfxmmX"ҤU^Ր/Tb^Qo/a"1opPtqrmpATs0T#(vqvqd<&?s4_a;h-` uyroa^M͞3D~,F3Kp8]< %I.vs6hRgob?ӻɢfG [aw#Ѕ@pRQǖ~y6˗ Or{ǁʼȏ:F,>Ռ̏i>C5a)v 3\Ҽivwr{>Թɂ䜹QHdKL+=7'C0%'7;37{,y!)yxkBd#UDA9%bTjԬQF5kԬQY(^&s2>l"/$mߩ00121lcTxe4#+#PHez{T̴4Ē̒ TwOJ fW%x[HSq8Μ %ԩRfК-oslgNXȐ eB$YP Г=C=Z_<ҼL7_3ۇj"Xl5 3] ݇011J[fLB}_FG>@ YallFGіF8>b>ɟ<} |`?IvEz&&&6.OVSiz?IiiCssmQ/ObރG0mӟnoo?Iqq-w>FGǤіg?8{L[gS--mOhˣ}8Oi#Mxt 2- I$<ٿW@{TcŴO&ȸeɚr<8&h 'RJ wž]),ddddX,.y4CIIK6U0L m]0|m1#tnhhQڢ^6_&_򡶶QLNb2=֎5.l6%! \HD_EwBJZku?O"k*H kq=!c5,pzDuѸ>'á9O!h {ߛW. @ zzLkZ1x[k D==F((Ɵ`~kig@{LZM^LyPYzڟ@x@(8GSSˮ\JJ>Pʟ d?Aw* |L b@6tw^ UiFVF*LE5x[k FoL/ hM~ Fn(cξQ+dO,%|6ex340031QHI,IKI,.N-f{}|C$uyi %Yzo<%桋RKrCO|Y_z{/ 1tx+-(}얍~u e9Lm.E x\{ `s } $%@c2AL ޠ yM6jڴi9Bh6@]6ڦGzV+Ooo߼y7ͱݮО!CKGRq _6KkلvMTi D܈q-EQTԅ=}j 4;H_T kIu(lU}PV]}z| 1ҫŒшZF#dYB~ )=~ 2Eu+񧾅R~"a$NHu"Px6LZՉڰ DkC nB7lgVIM(WFnńnIx)ϧy 5j4JoN"'Hm(,Na~Ugt$FsWs6J5"кL 2Ymp`H3s{ik"[vF1wsɬPvT"i?. Z[ flsZ!Q1qɛOcUh2%&Qy;+j"Cs[rH)*r̘c 퇹āPX425V]l49f:? pP*<(JNAq q-tu&w|ު&9=5)D"$F4:qbN!7~AVKO!b`VYz Cu0MGv>̦BiɚG}\Kx_&* xGT 3MHllJփ:aZ߃`izL|OwpPO6M?2hQ9666hGpK9 A٩p=?M2q7sYIPxUlµJ%j"mD-^1qEXp`Ō۬bb^Kë2YB!a7嬁o!ugM=l {2_ /^<{YX3[xlȷblVFa`lTJQ%Z֢֣֕сGGF;wFx7%8RAeEݖ;n8Xc:xX]Hu"G?0" ;6dZX>[̟ vR{> "O Te@◭`3n$'~}"2F,d wkIZS>Wvrs-` aG8h&] G)"1A $blzKĈ0_q^!-}1Cs6m1ySNeIe'={H7^lkkav[JУ3~Qg*31v."OV/#d{OH}IҴ7fѯn6 ?ͤ?C?RiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiL9?9?B2M, !~CB|Uo[c+4ش=-6Y` ms @4-R;. z=pX{DP\.[Lfvǘsc//6i{ 7gw;W`g[̽ni8*E3 w w%Rޯ5K++7eWtuBN2 LѩE#4Gc6Fc('Fcn-K_PɩyrɃ“Er+t=y'zD'CO78A =f[YtK?!:z@!SO:#w>O{x`x>ax}Sj j{Mޤ%yH$C:xY7Ͻa&bͷcGr)]x6'ERâ{ na:gS^gب^cQg^oЏsVuJjF"e=*_i dͲ J`ᡫ/0l^7=FS2[tHUv'>5)jjZ8N[O™W7t8q EUJHZA8_jSB!ZYkl{-&ʙ>iثQVƴK@Sӟ1}-"e6<  + Yp)_'ZOj|҃Qg|K,uh:x=jr~NUpV ưxYNj;6~W)g.õi—2y _VfgRv YFA-/cW _W<3Hבx 9H\Ι-$.PH\wH"q,EW3.xV|^ח@`I*6G"?R61B9OetYB.CNVS^?C 3&,s?eDShWLCT3ߠYER$q6ۡS#N;.a{ƻNZT;14fD2O\ڹqD!C~ .'-_mzE4:W hFKf9:+R߽b?Y&]$mxX XT~ 0 2 ""cԜ*X& "*iM@&mcD}uIئIS.mZmmĦɹx}O{{ϻ%^:/&W^Ѵl0dSm Oh]d!q17Dsm]i.3DPJ eGr׳ /rMJwg3ؔaoɚtۧ;}Ȓ-.fN YPŖ͂USB ^Tk!)1"\AϲBˡH+I)3"RVQƒV,\,C aIfr54"}CqDJcHTY2) _RьeΌKm]ۊ4&Zs iؾ y$H${Ē Y2!^L9n}k )="nnaVE:Zd-IzY޻w$4Dd_p_J aZPAXLxYMVu#Bv[1 9!9mj"#uQ‡V 4cow?i~hQ3B=zꘪn;&-]wbaٮ rGZmY4UYLz #KRP%$K^{t%nX1Jt%+IhE/3s{z % 8t,?WK ƈ0"KQ r2U(b4)!1&V޲f|Jɑ;eULu\#~s^{a`*VBFEc:Xb0çPc)1Ǐ2lxЊE.ŗbzU v^]YJ Y5^hB 5:(./LFuYI\ q>0q(0":'Z&FUq/HzItLx CAU(k4a6Fq\GїȲNF+Eu^FOPe*RT#prhI\;n%uyutJn죮229šQ &s%?Ȏ/蚵SI -2,'U6^,1V4ẇ6yN'FjFׯްջy iKկn\Ix2<1")"OxJ5 IEۼxk}߃{& nϥxF`45zdأr(]9UlK^a؋3v\V dLbw]B.n#ϯLݢ/ _ӮT2"qNZ[Wڰ\WgS`W?PnI+׉S$:]F<ւ}p^yHil#httabu V#j怓#TgFY$\wd8*X iigkNfóF@O vścg |t38\a7B/;:"yL^0LUV‰16IӜt:2L c@e{YK,BZpһᴪbytu'1FVx <'|]}|of#Ύf9 V U+\JXAӝ4 ^5*䯂0 G+.@jcƏk$2tQI!5c@|[IOhܝdmU 2'Ufr6MG/W.>#'k󯣸ߕۻ@^InդN'_ A XZioPҾFt?$O֦Qj)Qc҃|":F\[pCGA[0 X_hBt^@h^BdFt  -}ȊMB̑ IByUbzB,˄ڰN-[ n1"z1#QsQF)QMf>sUr1{7b,a,{o$Yn1c2@/K DD^DIrD?Qzڃ( s#:Qg9Dq4ѫe!z@4z Q6+DDiD/Jj`>WZJxVS_` b-$ V؀] ’-kin Db 6izIM4I۴M{{K8Ngڇ!}h~CЙ~+ )}=ҟ5T<ıПIMu91++ tTx#b:e6ލ&+gy霧KjZrk4-sa2=|V<ھRFv})Wɭt3 GlޕX?]ossZfWRPzR[fCXh䊺{r<.MOӦcT:x*U퍻Tf v+YfONV ͢+ KZ!Ђk]ϜL^o)VE|Gy*Y2t:^W'<jBYzNr9Sr$'5<׿<|޲n='dd|W<19{>C]za;)eSo pNaf}I}UЧK \t)ǿ=c YBotI Ō!HM^v "0Kq8E/+gDB06 sx`>A;t^v NȲ ~jm3?,gE鳢R 4p. Ua5-X/mEXFX×zwQӊ=nbg}^"SCj2slVk;Ʈ*9^ k&4K") |^+jΖ˹dPJ&+?ԉ t hiUXr6.U JaR;*i_9+\3+:c ^ t!:*Ok -'өz& `, zp'w^$9yH-px $蛄$AhEGo[je>E\ߦ,+WNUGOEߦޠ= ̲eO`%x@T? ~H`ATWY\g15&) p :V\Kps ?!| b/I0&xs$x/Wxْ"uR|$cS |H1zoHc+ 1v A{\%_rxJBQDfFD :[MI H3+Zyah^vvgyRзg9kytף*ji9`W/$%Ѻno$M@xdqN@L.P40i0'SL,0DNu8T־5Fpsuv4 ^HHIㅄ rFLK gF. |$r ,3="L?c%D/vb-cU}U[}@qO(_nݷSxY[o6~2MwAu8Z_i`Aɔŕ"=JR֝Esɏ!t|WPF~CU(Rӹ"{&BaXQBl cDN^L^'WR^ͻw.^җVBg, G)T*o$;!H9rq3•@ 1Ei~䠻z hbJ\x+8f[,?# yJ Mmw:h.TH$U=;3mcA(I4*8T+y&49GBD*%HC;‰ Eh4&<'CSEQH7@a'"sxFWU'GHH%V:x^7fDD\=WH2"$4>}5rrat%OE=`\,f{mko!t뭗0D9w>̝ gSB#ÉR'f[0ey+GB'bJ9? fL`= B]gi_i_F yuqIA޼}wBV$`U`ʏB(Yu &DoY{ ˊ bVɄ[Χ٭7`Ig0M&~rf}EZ\κSX(e'FyArM?e f*(=~8s!;ߜF-Ƞ{O0H0S2|^&p%r|j&e}t=ߙoܹ[sWKCMMf!pgS&H'b &Wq L9ٗB_7 h!U¯^//j\oP͍\IZwV!PV۟@qym^wʘZ []32WB˶"[`VڈD6F؆{ *؈g>Fdw6r厨rNѴf@C{ϣm>Yg1Ϣ: F(FTNs:g;{i93UfU4܉# crVƸ@F*k`\lxD%Fpq-$UgvFB)alRT(nu ;5ٔ,8GPoMN`0 SQZV1c]3/OuQZ4cb?'oub٤)gҲMHH-jjvBo'euj0q kϔ ]5G7N@@x갳mGC |IW0@ 4P!G\2'MvȤxHGO$|¢<̝8OY^(6e,픰Dۍ1agK C8)G31GB$j 8ވЯ#'i~̂1wVwlKu5 W'.j0:fZtk= Ԉ0)~[p#dym7zv"噯hIYxzL~`0SfCݲV k{EtFꆅ%}]i fcV.['o s>ڜj[ڎa.t|Ya*>]Ey_fa}!`KLezQ1VλyCbⲡzԐYVvYKJ6ڒ6IfkHJ9JJ %jI4`GR4V,oؓOOuFS yM[jU}dk Nl`[ UV>:\Pj&:8:<<1m7Jgy%Q6r>tދ"nʦ+ZYD,$zc{As3?If}븫 ,C, zFŷ^}wIu59{m5[meP݅?65pY|fܦ4͢'0-ʂ[},(˩J{3%f{DMwC@OV@@CڧD{qfjzJ%?< Z>9QaXp)nj_o].;o&}"_JMf讧7iYXOe'NacdH/|up@Խ@z}c*{ Mf'M@݅xj%MqIFzd,*JnVճЪt,Z9(E,N'? =xkޤYtr=obqIj~^qf^nbv*j IYxT@l;8Mj)60dM&fflzWڻBi!2;73qn&uƾc:7h@}؀v cJ̉i*d W sWTL4.J% Y2F=ŷSRHeast IJ wͶ >Ih+ `2~T̓Hj0)A.Ar%j&`YlG(sFm0O1]YUPyuuN!^wlPg*РAK]ܗ]xn$,%DzB1)DBP2<:ooOD:#xvIfҔD"Fg*7V b,USojFn īg?_r@3EnhEڜICʎH펐"&/[)W>Dˍ?Sj?LNӈpi*߾J`B v& h. %s2OPAk7?@?&\xuNA bZX?‘؜ ٻ .-*/6v3||]|Ueaङk6H# m г&V;"*0I|$ņg\`-TXX0ˡC*tyb)=oEiar\KGYͅ;hVwki2&do f5)PSjVǣxrJf[u w?kJO!MI8]] yL{xuTAo0Xi0RjP. qD8^e6ڱz6tXnG BN2.r8r-O( e' $ϙ]8}D`w<4UmFGt|H)!MZ~ԅDf 3#adFC#T̏AL?Dr; HO,##0A$RFSU V[lT ^7h'QK9e3&:~!` H-ҁTq@DSj?^4#h#?<~8Wp{P#{Q׃3ҍ zy%#(qnҗttn97V<|F=colo>WÜ#.&80%NʸܔX+7 Mf@i'MאihJUk (q4+g' qK@TUPo6fzExb)OV/xvNm!B@iBfBIFBqeqIjBJfQjrI~Q_hpk@_pc_mp$Pw!e,łގ~E_Lb<#B[%'x;vJuX1j&椖:r J6/e1y@d Nd$XlEx;:Gu'r`n J@xTe1g^qIbNBf^IBIFBqeqIjBQ~~BRBJjZbiN@qi [ w׀H 9YAH~d9~nɿ t!~lx{\yr79'mVw`dn!x{\yQFXy1\x{ܤstZ;>6xkR5!x;FɉћuO2*%ed)(ed((8(:**p)+((;q)sَ..!~>N^n> ڶ 99@2( I{gXQ 4n{~Qs~Q* AXY%!EiPy.d<}B]\]2yAd6&p6T׳M 3H>Uber=?` y{|s;޼=;5/6y(n2N1U0Se'Wgߢ9:>׻goNv7gO[ P, x7N(ncaK`'XQna38·qq4 yLk^,{` !G|eƠ+Qz]ݚq^^V}v͓/>}J0oڿh< ~^$ 엎ʋڽ.-{"EI5.^4WOoUE7 =GS &G Bb/*AM* ".rEa]G#1`$R|sH<_fS_Idm4G78+'+_7n>rm_G㤪 ן_&1a2ƸX{yl<`մ.$Cۥ+r륜uFHMyRgiLJ }|¹{dS >z;tf{۔l_>6`1|`'H{q KP}"ZLDSQOH3s\%w!Ni''[A* 0^ʒB{ gP.E7I~b}cmXp, #e Z?=9_kl(N䕶 5ߦY[@~O h8Lse\QӤЈD<7mAcl f~zE2޷: *GLdֶڠ,RB<@_PO'J[NaW'Ȱ"Ef..CZP#f4- *R [ 2s NP؄aV2ɵyf.Sct6OL7 |XH} ~6"w0Җ:gvMxv̹p`Gz+SC!L`)`$nI NlRll<E_BY`ǼX'@ԨXzB4Ghoa'G խ*Σz@Xl`Hz^Zu\O@2_L !. q:V͝p Ci3W,%p<;l17IcJ"gE-|q^z9:%+DgO :),TBƱج!Ds>?X*'#:*pp &7t`4#n@NQEbZI`F~'%Ej(T&\ʪT).$4m^c|&s~&CDtXʼnx0fv8Ñx;!UCLaA@]5AMɬ旵 >~2f;Xqb{߯<ҵGz'ªuWcIAwM*.!r,mOGf ZЂZjS~DUa)"t$~\ 3C|ND"@o %P25JZs#aL1z 1rǭe =Ob.&2ƶax#CB;J6D76W=fyhgy^sſFøn_4Ϟi{%d{kk^A8$tpĉ(N1,ٕ bD}V$wSeOw5إw޶Λ%+ al7UsJ ;vaZZћK Qj?o2.~l4C$c>QJtdod M!Ұz'ɿK h\$f)(SbZo_5[6%DձqbN41&ɵ٣DLoH` P!~%qi0/~J]=8L`!OR,Z|!y L\`TWJUb|,@Q#'eP7)/!d| .;fi>*H 9-@6~8־_e9KA{4IEU7Zݦ=wORz"Z2v- נ0t ]GPyI{ITV*/Հ2#J'Wbถ"*`p幢XxeT^h7I5`!S]P1s 3A_>؇|ui UXб0!Lt=(1)fCj4kyLL °ɳ@h"j,>A͙ *0f}nmb(=Jli!TĜvfߺPUG7}zhd=%g{Iu$݇_CbE\e {{ ms gIqiiv5hsQJx8:+:7{7; p;41&J rӍ1h=YT/M&d0d޲g]ր#_^#B -ȴDb+GuDmd?Q^?4F/iuwU/XS:>GiyVs! Ӯx9(I6r \`F^e(Ōl.cm~_Yަef ʶ 4 0>Vp}\B_;v\ SYuӬ* >At$Y 98r + Qũh/VzB T&|žk|41L>B%!L+RzmpG#6P![M,MwYYkL,uwUy"A3'Zx., _*hYSR}5d2'O4g3\w_ZFofY_~!'Od"ajRxax!3E0l󠗆U'sl8 {̮2gP< l`R]?"1k&Pk֩z(t /., :i;sgB3oBhqFY# E3\D*[.2LH0JS6P1ۙMQOPQZYnb06 4 c-5yZ>Al,?9T $ǙCD6lX΅}L'Rˣ%Cm~hm.<^od/o2F 6llS᥵ޜ^$`sX\5Lز}nо v`kP_y0:ǣJ?Bo1r֫>m3`LŒ$s0}ٿ4rz E,E& o5Rt0:?bNnXUK.*I ƿQ )Qd5oYB/~ ET`ӷZHXE2Xl&A>F:J 4N66]1K~IMo&Er84\h+%! k+zH42e!$Z$ǃ<[ YC j@%[HF 0H9`W)IZR`f-!9IJ+ԅ< A2xS(HLbsʿ"GY =˺_ /=~fl.-N;HJˏu?Z^`Qv]\(::jW̔|GWQ-e{ؘ?0aX!7Qg9v@=a- `=^ȻQ(r ,2Nv=ߎ\J{U ؚ._ jsg^]1,pc?صXiYy}Z?ZȵGw4|Y P{~zpc#Pzf7zdmK9iYzuP3 f)I{P q](dSN#.D$1e0 Ӟju"'?'ܩ\œ'H91"4s2}b#U˳awg!jH <#Ȟ`u+0Q4 hr'VdM;3тe׿GiŞWEE:ڤ$JIH~<ƒPr*ɘ0'eM"zz*O5+LZgu8QhL_+0) Gɘu 㻝9U2&77%k!5CS kdGCT4b~SE7B'?MAuaiJ NkHkth twX=mrD"RZ""V= K'xȑu Kӿvķ*p&݉DIqG @`_Ԙ`v.PY-|=7a${Hx ˊ^tBgZ{ d3"]q~9/ʚ5\\`=и Ux]nC3t-ӡIYq6#P!:T#nhB5:lkrLxcpaߤr>Զ>VjNF½ȡh,Kc8_#^_B lF3R >80JF]o=+:= ԉ*( uB80@W,Ʋ9"u\^f\r:\䧎zحE XAliZj7q3.wX:pW3› b 8x8yζkHkEnSv6نDҮIT& %zn`[ȐյARW=sQK܎{<j|adcꑔ;ֳR1+oCr7_꼈F`-$ Yu-A:\霤]J8z4j]bWנT~> #,/)dЧu}x.U)-e;RxLi(޸AIYTfV ހN Q(GB#P'1JRll` (; 5eφVpyD+e^8Sde m+)QPCA ,Wp6p)'A~jRZA枠gF1rwsDa8H}EI ['g~LzMkDz l"0ݍ]T.첕 5p?،y01pc޺/g29ܡve({sy@H#}-`tQ 6xᒪ~LJvoRJhuGh@QyaO'(RݪFWqmFkefSղM/tc8m(wspN nl2e[=3*-\㬇KPF8W Oeş-T\n9: nuH,u]%CL$5yeFa8s, gT[ c%5Zػݖ" 'yū 58bԧȱBp~}s;_z=o Ŕv6hfcڭ) ;IVZ93&"!ϛ液af,?;+g2 /sak\봼gߺNn i);lz\" c6۾~9T]*10%5eH 08ƔZ\0Ʀi[~mqDlÛMk4|ڍgòt6`c`aW~ZBFA@uf]TCwMZT'0;6_-p*N3ܫFꪍvNѡeC 0UD{njєК,dsM ORQм mmB>qkMm v"\p:t~P4Wtr^),%,Bk!.WrOJX(Pf#P LۻYg,5i!/YRo3TMXD!ق}_[/fAI#z7-Ա4v{)VHi/Z`_wT)SZIC)!8lгeyzegbþ> a a/#?3˪$]nM! ~6miI)k)q݂SA b`pu3WCYe$(# 0-ǒ!.C4[+Dy3 ;Ub瓜4J kS_Xr%4W5D[" kCq:Q2Š֫EaF ;0U͍²8/gi+{GݹrE7y0aSWR|ek$ׅQQWnD/_nۉj^&$r}Xs[?H1j[a[?ǭΗWFAƹ&*f |XuZ&(3b1(65cLhsS._Z`8Kv)Y>J%u,V9?ֱz•A-,Fw7=x.+ۺ-|V"oX,3pCH DԸJ"r$R^wl.&N3ǖjx4!DeDNn9@h7RTl5~_~#@BxͿ{M2-wuapQ~^V@p VyMVOwaKrQn_xiC'ell]b|Txb\ \\\ZzjYE7y%YfsJ6 $Ź899SKsSJc<0lm,Hc ~%?zx]1JA1a"XX 1 Q2QDIHH1ɾM'3qfv%-^AWofqIpz)|޿cf;:uQ\I* L ;fDրŌ P}&ԭ*C2h$!*N֡e;s>tB=>Zs6ԝR0*R|$ Ty|$ovB:Tz5o#3mPN^Rڸ^R: }BkH}q4H%yp5Q,htQ\2h=a}gS!xmPMO1W=J+$x'^13vMR3zoC ArDo%c8eFgŌaU=zԂ&vvwWg*AO)`ȋz¦29um[2k5ĶMevB$ч?Q\dq?[q)u4v)W,]'#hkbnW/h2@zj>KȣNz?mx\k_˙/wy 5wfwnom/ߵHm< _6# NіxZ:C i #( v=ڼ.^3QJ fx2e(gzQbAFfrbFşHB_ x 1 0F C&wYJ=Fq&_cӴ[<MxM؉!7vUVm曪$Cң.DN0qY9]0FNJ`\0r ]+xy Tk%זOHcٗeDԘ4̙ƌ=B"[EIUIqqѵ&!ڬ,!lٳdfZt0=}}ϑۻWa]G,A a3|܉"ծ' EI`2":RxYhLa/̪_R㉠C!2O1R"bLz:饛;DA9m9=>'dv)It "\]Dl* JMr"V~Q^Zq7 q4{Sk":\rM3#[0 sG%@'ռ pBSsk^4߂#_G cpV:d@лjmEͽi3HD<m Q ? ɧ.=: g@0^J6ewA@-<Gyd M΍nj%}k7߽G q8(^|>|fDW˻ś遻;O&~Y.nx{ny:9iYc+p"[?g6@)+ 6*JN7y۳*?ehmcOĜB5NYACDkNdg GGXi ˔<~OcmVҸ8+5]_>EFQ(GA4D!{$ZO4 dڕף_Aє ǀ掑uŏa6%q&EA.Vgm*8Ssl8W۽Zi<3ӓv#_ķ.:0h{a皼ȤӵLnkahf蝋&5`;{%g$>iόޙ ϶Bڧp}FWD$xk]rVElWV&=B!8Zi=1(Z\jر)g; PP[\^3<1A_%tiֳ'_ <*uG@{^̰ ܍dh6}Dmig>d7 h k$+Ʀ`\칕طiW v'`1ߚ^RK[0MIux; sٞ?;+1xsU ky~qdoO3?_bZQ4q $n%*!3el;zկysؒrݪ&׆) GO5vv[T8}kӾIjc6UFn25=CX&L ̬GOG]*8}uR ixW v1 ͂ [9(WpO'e$,T8(]"S9~VrNL4O6WZ']b&$X4tj9>D KVX#@!_d0C.E w Omw&IbI_Wd' ¹L}tyiB_e]lIZUn ?Xd9;Sz?u Xo~ OW.i`0٬4+1nuoD<eTm~)Np+l`FO ZIx$:vUEFM)1$COU +LDR $^_ba:S+aNKz8Qףl=U4- 5ד{uY~yx/Ʀ(GO;i)LpDnXG"e}]\|G B-^`ůIbG2V-c|l kَ1us`Ioۍj2y~'M}9#|tgPR@ݾ%Bfk#Cl._ @[]Ӂzɡ='Џ]߼ss]$װZcD1_kOơ($;8t"c7ʟm293Ay4[.%C*S_0J0(OWT+L1F Oo>nkɡzWyn=͇ g7MFSOV?m;bC{E@3Ni4QN3;2*̥TM@џrNo$(fyes0c#:0fO(:jheסH ː9'm(Q>KGxwD&#T/* 2'F3!֊]?YlRYV>6 XOfmS_Rk|Skk;R_,,8B*$„8 'N˟URϖ, ͗u奫P8kŽPLXKhL{F<_U@ dCFsW-{fJYsH_dO RQ%Zy궕 aIƭ3*'YN:t T+{B $zipOqJC)Iv\Ajf{ ωtlNJag>\BX^:ʑpu  aկΗ8pkY͢> tAt` yBd]θk'# p1h7^,'"4Q gK̭;4 F"&*Aq€B2/Ad=z-oG|aLJ,; M]2O~ͥYW O~ :FcTKEwzݏPwrFv \Ϡ쮔[| L <OzPj׃ ]x0FK*,\bBuJLM&9A:='+SeYpTZet+i41ACn jseZk~ Ⱦwgl8zGOe ÍB0xs//Ed28)@ϳj_<*Y3-_1Psq,֑h9fL 2g3ӥZ_%HT@]H[r S 2xY[o6~RMwAu"+V 9) 0(RAQɼ_Cʺ`wxx!r^ F_Q)GUmt-IPDVT|Oh&61"G/F//GIw{^л>\]}{?ޣ[IV=cIЭ(8B!O'^B AI{|p%o;iBSnOp]oMXn g8&KDB޹2g[۝4jOsd,۪FAęSQ(I4)8Ty&6t{4JԞ EduEwZ )Ҕ ck$ߓ JJGk>"A̡ANKt ">"XM3Ehr Xf^ =xD)c(!ɶ`WX~#E7_=~k]`)}($9 ?C&GH݆yv!-hS/Bh1B1сLf0ey+GBO&;% (ryߙdGD uaQCb8æ] p# &Y"f3~=ؑ?]aV(? agH `eA[\05$U\xM*\ד0B/+2~:Z,VF#SVlHy_pį`-i%Ż so|MCG&}[D355֟oDk306oj?d̼)I bHu8rnxGAt _i6[15+ &Ec23բʽBKOb&%fD)y;#ƇJF<7vk_p%k= km?ۍg hS@]mՅX%j3oO &j] l`8 et*NfWpattCĨh`/]QDUK%JSo'ֿ,Ip0bgH1[#*1ύgmM$DʈJf,7xuQAKAFXMPkv7U*ԒB+RZJH5DimEC22;wH.EO҃wmџУ(l\ޛ{ܛ:#?!_,lNr@K#T&̢l*;3h?ưu˲0|)=`q N)ٚ%/|Qo075TG=bI ! J a4YJ4,} 6xL,W n@;e_%jN u) ᾰ7CO䐨4u[6)gʊ+JV iܴRY(tDG]#v\zg5a.}BoEn0kJ &f/Uu=88T08K?}zzvk@oNP29I-1{{L MxU9(U/c-k?[ &xkf53sSbDzTܤ̔t QRG!4qufɆ,Ҫ\\i *~!!A!:yFϰ2O~ɢ9YYRsS8rdqq:x:9yǻć)h*'e9{&$q<3xVnH}(i^bdv!E!$dX@@&SmӍ SǓFUҡ݇{7ުUߢ/_o4RD~'Iu(2CC^4f* |Q" 7K+vޚi`Nӷk־^^4nʕ{̉ A~1[W-b(R$|od"z?9/76֬X\ā"KڛP!L=< v Ug!GҒ%yi׎ ,҃Ҋ2QT $`O\,CZf8_Dac+;Q(;d,Ϟ[2k=%HA I <6ATRRd&0='O _7ƋK[C&Q@F`Vhx?Jv8.^ |NɌz4Ө7l:ߟ%%GYPzwupDpNP1H^eqBKRi;LMkaY>Xv)$!?H5γc|=;;yc6Th8^7?A@i tFD"J RBw_,^%wH^@[{~-Yټ 珩D4ޑW=\BO~tAmӤjmP2:ht)pv25 FJ1̕~6Њt_!6fҧV;zwЭ ceIxxѲL }NؿV, :ϳv+A> 7zW[ˌsAW8̧Do\¢H}upR-H)υʕ. D]\Uzu;:ӏ^eV6dSI&zb 3D8M,*Ym1T+B RbP536TZtF jJ36.UBi*&P RkVG/H΢wC#hk&a˫]-(1R9~.UNdt.EI0v@tӆ- v?SMnW2Jf=[5ž| qE1Q=ewefZ,L_%qxm`Iv:zoT)Ubk#.F{ygb˟EEAw;1a_a2dujzPۀN:M"9հ,k %O5 qx{,vK_K=()b",D =ۀԢTȲb̲̜T"0!5X72?O/ȎKAK%$Պs)a֜~>..P+\S2K3SR2Rq+bZS$_bx敤%eC4eqq9dSPLSA3K2Kʀb$W5vCa`ayNOI÷n=|kF1x7܉U*P21i$|錮?!KݻM &x Z0l&w`i9$'6Lǘ[~/a6CqAp "L ask'T2ca`}N b1E ңHP~7U*;҆ȿ Ȧjg!tc$:aoEYykfiXN7K07TC*:7{E\Y _z>K5tU9扐 VQ8lt(eZۦMXyxCŗ\Rpj׫gѽBOkgK^Q8?aA4^l`X#Q Mx華S"CN0:A{D?pv4di,6aRN$Q"N% $x&\Л;v VX 1j4esV+A=w39cI71yC L-&(S›V,bTEͨsi;5/ 9) )c'%ppХ;Եɂ+22;ިV܏ dp eq<(ȸ wO}x7!E6^Ϝ-:SWƗ )7 tȤ{BS7g^;<"#+k֎rHQ.ȵN"\}YJZ|Y6Ky \jيElR^<)7y<ٮk[^_@MצL,ǩ[!g6]2 h4Fd%9-b܊E\k;Qķ"E a9Fe-dp`'gB(c?h4d/C`/i3!u/ ?OH_& [Kj?**ܽ6A*TqFb{Omj=+ дnj!暓=5VOOxCSB~2~:f@P'5p[)Gtkm^W(F.[CYHOȞ0upGy6vgX3pa_Ib|$V]TV!Ҧ.WPl49|_ l>a6QBe.0߭V]I2 -eGxm'#"' M$.%Ϊv}d:CAP$M<`[21ڼ_=Rx1s:pvu(kퟕ~طU[dfqC삱c)[K mdqG;@=ҞSϴN Etq4hdSSʏ$uG9WF$n$ [=M}~6eھuHj &q,8NgYLJ| +I=VmKƷԆ)8MXcy}Xr PqNrPY;-r9"t}Y?zxk^:dGm|MqɆ\ y% 9y%) Eze="E \ p\l@Ѽ̜J'8LNiǒM &qTsA9QZj_p@~f^Bn~iqK~yk]6y DiZQ~nXfjȞXkYOyu L4C4JTEGC$j&'I\QX&^>UxjNq*P`7_|{X8Wa⬝. tg-? 2*lf`/bꐚ3o=x[L}TG'Oa+I-JKLNu*II-| ?x=kSǖ_a+7`Mט ᤲ*֠iIݙ8{!R F3O>>z!^44r+6?_l<~O<77ߊRJ/F]RJqT4"pKޛדgIR('&ôȓi*UdyUְؚ_?w[*(\'Ur#OC}2) h~CZt, deS)YR֢W'Zζ&2Wh#@TV|1T(FKQ̰]нS i:;Td9u>)f0 ˦Sq%żt`wbWů o䮲4abe?|54{yW8:89g{읋wg-!ђhlZ K[zVev %ba'ɴ4OHE)@͢<MJ)_E?4=w{DXf:Bi g`p]V3|]S De{QQ2 (٩t G;#3wiu_17߁&O!q|7Ňo=ᇏnQ&?i٪ExSF`nToW8gJ705@3?Wm#0HmUC$s|wt.w߿&$O&Er50&gAP|F蹵 \50OPo tMga_^a9Ul.hQ0%`-@}LH.^'ϲA6EVrONПKQE :vR&ȣ JWD69T8-6HZ3CäAP/#=7{uG/,dr ҚRy7,()/gm\쭄f$}pRi(eT1,r`Se,]jQ)U (S6)eyTr:]E^q'㴠3ҙ,@\g!Au"CJ=f1@Ÿ9t]m\8Ύa)WQD.(\R9(++\YUDxz;w`Y"9Iw&Ϊ̬Wm/g !ken iqK%Llm;3&EE店Yw/uso9Fu9ˋ12SdYXTWx Qpp 8=ePOwUةvII4|NTVK7)Tƈ'"t{iJRh(^O阒S̔ &t1ޡȪj.+)Ъ l@fvމ~Lj]zkr"^(AlNҤWI,I UFN+0%eHn`cOӃ&޻Sm2ah97ޮ{-L.r/8Mkr^׺5 ~sFSЖuR˳L F8Bw,2;D&n1p:@͖dNRMT灈BI%6)'ܼU }HHٽo, $-!~V003 L:<" . o$ǢP>_V߉л LޥEQInlm5J^45=fKnlhC#ǯN=m Qa&Ifh:K@cD>v*&(,?sݗR`襶OtFw'γm{̷`7dѬ#ˮX {3&YKnDɫN ,%z #s^*wxDuwl]@|A&v76ʪ<=)™^Sdlѻ-#ҠYs/AG9,뽓71yS_}bmsqPRQBRVu;9<9P(͠Ý.O=^RF#j 074+-IT˭hL;JMJPsJ}Po!`PyO~@ZK0] xQP2/@7b gXLݷFA."o=1vz^ o?#CmȚa6yplC:ƓB `,$Z9qtJYaAqTiWd.et &Xe@se5v(g`sk]$o xBkSl*솾(|{u)Md5 p^TjJֹ^*淤aTIwVKp%H$D8f޸Yu^ H ڰ(܈@.]AXbUF `${,LYQed T[Mi!5j5],>#1L050c0_-#<`sAa*ߟ4 a)ޣm;bd)+Ei]!1zA\K]JہfRd4#^VaƏZ*D rqQTō'@nV*x'I>z.N)_a#֪3ޭaT"XR+@ Lб73)Ic&g'3XqGo~cyc^c8GYA`y,Jbs.u[)83}\<6j1x\Q/ )U-Qoz^ ߌ&25=x I#r%.#g+@u;6,<*gv+1@$^?C.{_yGlU_TpG9ua2N;Fb1 ۝+#?zH4 NNW!qƹ4*v[g l"V"h&CmmLhoXcqC.Uu,}[lMrDU}m0*iN'`D -үqM4$YQծ >qҹc+tl;Xvq6c]YWa9 Džsvvl1I $/1)DŽ'O;C3 X%f6YfFM+Y74LD9lwV$p0&_|jZDX9xI?tTʠ),zJNZ\K9sN~UJϒ\Nױ3I`Kb&bl_=_^(qs6jN|(g7د[6tTZX1b:|]}v2B6)AפeHj1Y?*G!7# UQ @h?%-Imٲ $K%R.ݻnvYS.J?fB.SV*UkN>Eׯ0 GKP6g1P倥ap1.ȝ33[ĢւƼai[ԑb"۲AB\?xۤ<9V S^d4e[5M f : QV$ĔHB"ӇЪˠr='+nNrvKS.9(Fh:(Q n9{% aFӢnQf6`GXՆe#v &-4mU<Elu]"U +R5r r4Aǥj`ޣc1[`_~Dsw-xG[LcA:cdSr2)7a>TU֯kj6zp0zx~qo~Rys]mfbnR!fe>_޴̪T]we&Ϯ."VY ђe0 mE.]}@n*!.qx*e(eb^\tD']HZk"@񜲘06}N 3w0f\Rotq #G];[^^i0K %V*]~A*ޖhܔR&>0ۂ%aw vKeR ;'D9$ E1 0x#voH;+X)ŝ#8LF4*f)]IxkuF 5BqG8]2Hbνq֊KNP,ODN|DQ-jRI |yt4} >KJ vrJJ׬7mzw.cx,15_ qXC-F&pQG:."Ӎhulz4F*;ǚ՜cOaxɁ#댮T9~N1ko%!ZDa|Jmi O魢;N^CֵnacJ*9x~R=xKn6ApZTRi! `WV7H7X|2e3|3\X/K7ҫL,OȾ54=SV91p"ma)?Kt"kHC)q x*Ù`R~-3]˓MnԲ'_(KgZ`x^L鋵ɚ>mКB1tBqyE^?G]Դ^6뢗EK:Zcl@Yר\nS!L|5K#˵RSiɞ%Yp ko]FrCΝ³UU٥gh?ᨪS8{+7+‚H%A; ^*Te,ˢ.p9Mюd--3kWmnd\ԙRh0%\u>8D3ݕu[)5 U$BbB7( hJlѫ97I~LH%y\ɲzY7)a `k߹`N`?4V;:sA4SjX$vU qojR0g٩K'FDĪy-mmЅ?:L$2z *'zMK ͳeO+񀝾[ g*p}`]<drΥO7oSO/٪o bG3]T+-0[9޾b$u '! wvܝ$+as"J%U s%2[P^W|pUtiJ0Z mEgP_$c]8 Sg]F8)IDN ]6T0yVqEr ^yS[UiX^frۈj>U{5T;4T'(K^*=3WUlUVHvoiaeml*ŝ9FhfnM:#[Kggd6&ߚZR-+ c _Hpzѳlt2滗lH *נ*.u@Pʼ~7b$>6;n% ץ:\k۠F'Lc,}}4/LN7C޽׮GL(Yigb|{60~Կ wT>mm6BFs~N3.w?wyf4%ܾvo\쟸5WսE n[ >oV|R1w힃U$]"?{f[".=M9zIȆ-0*duW?58Φ;k+ql} a=$67 ;rCjK'QKytT:GB_P ߌLB#<1(хE ;ⵜ}nX˙爀10-4}7C_ j37s@็}{P ǰWO_]i,!w;>EgASFz ֦YAnjSJudV;N ahl+F15w[X G]l(~M P{k^T|;yWV+u_`sA_ͳ|x%[2XCy{yYHVY*/AÓ+;]v:ѫ_g`lZp+_5r(U!%Y )~יvWn̴`FQn.uş_4%C,g+MNq$MUA5 BpʪfY&]]C7oUD^c|S6=Ma aWӪ9">+*R+gnWw3:mqas2B?jLBfyîZi 5qTׇFT߉ܪzۭ&.Nn+ll^+ʒ)|8[ *ݑҞNVר!y5ꝝq D^sjԐ>!''V`ut3}+Qxئ>T&#}/h{Cx!ml4~+6^u ~:k=_x'`ρgFtqQ.}y6]E)"7c_}"H<]I,>fD9u^&#ǻ"mP &hYVBW-|Ջw,`LWGJpMa ^k{7^^l/DnxSM@qNc5 ` ݕ֬P 6C-2nmӻgxu:@)5i>wk_~ϫT0^#)jJ% .Yp~a=Qx66tqYV׎Vȏ(%ԅAPۀ6\K,0}DW&*fd'% 㠇A8D v[p4U8'r,^=%.&gc$p/R~&\xW҄ZӔ,A=%A89{2fJ(?7&l;g,Ƚ(98EjJ53G3M*D¨4TdA u0KǙ׋[ #غYx32B\/$0lH_OQFy:EdzgFY ,u-D@XZT ]RCp7$rE~xe.WF"XQpI2?=Er>x{Wwax"ߓbLϻƽ$Bad"S.$8b0Fuxt8%+?D@{`g|M&pGuƖK!iMF,I{j3fU4|}JyJc6!,>\:zbo^“{IZd-f87|lUCm'蠓aZl5_,DS{ }.8Ml -.RL,Rq\e7'n߇tDJUMu,?:X c0yKo /N ڶ̐b8#;cٸ@}Yػb{Rj# m NvmKpx"H0HMk Z[i1]xS U1uŤ0n P5.贶>%bb/@`P=s65f@)A.bp,3 .#|wS» O!E e*'90/s|=`^[vVbgACV@!sbgiQ>+҉ Iq|֊@ޱ7k~ٰ&6yj%o$io$~o R|cZj:#ikrNͽh N~zqʎPh%*n'.}(.]a 0(Q>+t08J~r`g*7}#v+pIZ2|,dK ꋊzL!j7< uN\rJAN:3BV B2M2lcTWT~4 s`*~r*7 wp'8]A8N︢qrs`5Ӳdmp 8a3-KjN6xx^̢[q=2v &N¬G2rmV: ,l8*`_]%"C3kr1;u""O$w3`kvO 4@,:6 zbRBA "ۺzq3E-\I7 Y&Yb̠NybV82ME ƜY+ U1 i+Dԭ&JUO U'Pص.7lVV uuQa\whON5xXէ[Z4n ޢ쵾dïYWXDI N 1/d2JBґOo͍VBWWHp. bPq\46Vz4Y*ʧ<]`냧fW7 hS[vE_n$6S6G8Bny-]-jh6ZRa~,cɡ="8 lګDsf(h]M  b4cÂU0?,\cr\+Ff_k11Læ(ڒalA%o !ջ,wRg[DbK=|C|ުhR=X.Admu9PUY=Z]Z X S`! F?sFhh0?p.A`nEx PS0kE~6s'nN',m#ng/_;)t-<b"ة ?DA/¹~_8B_B1h?*F6B(]S\qW)hT<[P*I2i7tmDkݦ2([sZ$h2 P&][ǬB3KEk|er:5⵶lHrx5|/+)5Qyu[ȜF_n5j@un AҠI Z^J-ښQ$ LE.f%zJvP,/ssj^~l'eLMa+EnaLSCi 8l\o:Zaé: uZW2?v[A `7;2X/*AozXxqqMR]Oc/ޭ6x1uPY>kȝu>o XVP.BVGp-d+nU 59ۣŠE$=QxΗmdZ%9( x]QKAf+6ɒRJ̓D+i&yP"ٝфo:D{C?+]޼oǧڗЭ.֡Rl&n3+1)>;W(ԁ+ u:qY.j&vta3˪0ETȨwRcQdidw k|@l 9]?ո`1=!9'`!( ( ݃)݀D0ŰF0ӌ)Ѐ=5{ ߛ Mq k;l-o1HsnUWZ_ZZR_W```ͥĝ9ݳY؋Y \xq v,\ʙy9) 6y%EiɩN9)Ezv\mYode 7x=ks7_pI^݇dYv%$'ҪR#LfVt9ñqvڍ%h4Fx-^<)7IbvCla/қY%6ėBJqOe&IHg`YbwpgI1Ni5M2Y2 uYY8Y~Uțg8LVfU.YC["Q>{W,-4K.T:yWVr,HnZ|)I& 9IzYJ$i^|N|" Qͤdq[` (^L\]^ӱxeVJI9qMpGr K c|E 0ch#d3B ދ9,4}7ˉH3=09ޥ󹸖bYr>BXp| qp=h { RJo ü$}[rŏ0 \<=gG;BKDK"%.2NdLGœ%$lXDtoIyvCӄn!D:Y^2o+vH*a+h0^SrH< 9_w8J|9bGm~ ߙ /Tտ{x߼STBԿ{eUIHx3i2ϗGʋrgM{; o|cI'۰F~+mR0^-H8 ^MOhD ;i8e7m Nq*=2W\$< ҡ%n k ƒPd21{>S l_#ÞA[ @[Y'.'v<}-$Lz98֙<%ؠ?yz u biL~jrMbͲJċRS:y.vHnoͧ{ @$SQ9|4p@DVnt5Iо&|ֶȸ{j[YHV"Z/a !now\ȸ鴭/ee)S\ U5P5_-NNP{e^TJs9oAu9qKf00n3 12E _^jZ M5%ɟ+Ֆu`>·v/Z,\*?Nb}'- xˠ4{*:A`0ؾT_S=I5XxĎDmwBiMшpd j80-]/Au~YCmZ"m+Xn,8*`I"`HSf H}A$Č& 8hrBxJ!ࠉ[cVƟr\xsv<.Q_UJǘT-ԩk k0snK;~ b# 8qz@;{$iQV@Gͻ[3inn@ T5{s8|!?L8ܗ5M𡰕hjOX` :$ N_ $2` %׸M󵣶ImQFp;J`3ڑۼ5݈on|㡧%qAPȠvBuDZ9DŽ͘;cخ'FvO0@^&r`g*nǯ츎2Kg)#'Zd) >+eRgJџ22~(tVD.Aƹ5*78~~b4>T1^@HSO(_ G-5e u"-x,+jFuRՐ+Bziy?d;"1s#BSm;^؊x.蠹2קY1JYY[E4J{&h\[G׋vCӐ vO٨Ť oٴ qA+K>gǃ:3}Й[$$ hU-ETԚ i2.qئ5k`ʮ}#sh G1m\L&T;ZmC*^]5A 8}8?l:x}{mjk6^5nU@h: [oOct41 u}I:$le^i5v7h41h52-UjWxt~ZA8?B# d@u?vU}x7; hhg6jWwBw^"3l_ 0ڱ_F^F nF4Iu7>=.cd Vcmb̏feUbTN1gIv#KNyޤY2:siSt>d!wīnx.zOo1*v[(j@M@'#_N5)Y r[ϡɜ%xܗk:I 3^Y8Qp.`4-*W^(4P|:XZN1]vH(c8Pt@rN}x[3}dn_r&I/D,r{rfdGRsyQ"#֑0o 9uV-' 3qiWW'UL5alb{l|q7F$缬aQ2{$,3oM"5,JXP ya/XB&{!=V1./֟TJ1du$;+amGX/'ӎ1h8aWl'\0^VQ-)1q .&4[I\{Pf"#Η:s:k# s{LLFgbQ7ϵ8y`0hB \_YaA@,}CZ)b$洅2-^/ vjCEPODh&3,qbAwΣ3%ÆKD r~ô *Xbx\i蟭 h< f[%"ע\+NŚ%6)ɵky_O\;e:?QY3Köҭ}fCDi`Kؓkv䐉zdȵ tS3|v2yySD t:3;XFsf%f-<XL =Ѕq WFG/N Jil#\g=iևQTD4Юn!*nNOtmdR g{};#:MѶ8;k.pctwL)'f"KI;{-2W'5cՆ=B?0%ãxC]\~`&&!n7FEoS ů~tEG3DymZc3r! %moËӓv/M'78d鑪Yu#b"ytYYbLJ\Yt'԰FZFn\pO a6VWU |o Sa{˒Gl8".&Su$>^֫l&*۹D9bke 52E`kFk|ll-2f$aK,m9t"]Y4a cAyxlJ2Vɳ/(Ikp4`mnZ5los,'@ܦu1Pgt+-gsמ^R_5FSY/5[?׮дH=65sa5/ Sy@7^CxOYy-r{|C@[Ā[Q?Pי5/](mj6sΡgXa ]'t5ٕKQ30#*@SYp^"%ނH?1C3ߧZJ6mv0k+iǃă8WM`2{eࠢ)˜wa\兊 U706ױ?Xmd 7_㧪?_!V@/3`qm u)F 6֜',nzoȯ#)+5(FD]1E>a{kym'Ypu$9aFjW#BjA߭ ҨwƹK=߷Ez衞NzNy^ŏ sZ&JGfR\) E'N<% cX}pU;s52aDod=n:凕AՌ57M'MuAI@ŔXMd tW}ve^W}a{[MFhA!|߂WޮJѩ=':!oxqJLj[b28jAci0l5$V6~-+rO˖VðF^,C%a8BqLS&KB a%ZE٩,mkT|j"y؛0~JXfh)u:Ns弱^~C"Ȯi*9=T쀯іwdPŻܞP]o\N o۲5ț@V)ߧ 4m7st ⟕0Fl脚# rO8 ${nOo==/AK^~"N+s3ݙkA~m$XyUOsX9IPԟC.A0-.$j7+zxrN~$~# QS @!4gv#֋-Okݏ>-q!0wмi[WpDL;+)Թ4"+Ըra~|h?4(F$X?ӱ e9*q/>> mn =Fۥ&f>L}] ;`+1ƍ<+ m% 8=dp':=5,1Ԋs(U)E!S('A]r_* hQugwU_6<}{6AׂNۡ QWD+6#lzMkV3c=~(Y7(7+N92e&똀5: o MC>Ӆ+xI߲(,EQׯ#I/a! _Ŝ!pƵ lп} ӎɠ5 @{鿮c,b\ i^6ҽ^_~u1۔S {"BnLDG"nf%UP#ӟa~)4־_MR)x/r$_m數+–m:v+y0"LbF@M 4P,Hz\GW'ؐ^OpR#DJ+kkqJV]@bpBU+. +29kyI9^͛3I8I ;5ra lC1,EO_,!Q#[6 k؄F  * њtߒ>3v&Z/YDLL$ѹb;PJʧzGJţ>.{gٴV=%_ڒajO> [YB';V0߶CD@9{:~MO 'gL)ͅJ+1rYw~ !ֿ&^FAIa 'cHlZ h*,!SVV| JD4L_K-@$P~E*LoG<,ͰXau5 u[^m.7|amþP(2 ,e46%֑GwF E6FfLtlxǠ=G6q]&;:֡K+i6F&؏ x,rؼY; z)Fabso]g<Kv.K˕< ڮ;ߥ͔ =*%acJk\g")7V^APO A% 5:R2k&RVik(BCS;w.@mlenX5h]镟 h*#f-~73UD^ &/қzP<^J2KuRr^q ; }Ee؋W>;P}fAvW^Y t\9m(%s9-bp]ôF iy] RtgW|Y'&W"}t޵I^Qkq%.m5zp-7@'yȟY,zE~ 6fWUQk >m%&'[~edM>*72O9mSOzZK]q3 P|?4sÕwͪkFTyKi}my? ŝyޫ# ]Y7&{9bIu*;g&} #R:ĥnGh̋+l[귪fHXx9#]a޸7ol(w+IZ)5+{FyxG@PS>\ 5dZxj[9i},Whb ֽμ+sdفDGq<@gYܐcCHi;EN^L`A&*&`l 1.$2[g3#o*n?~H6y/e1[LdA;O>z%EWKI`g4ۚC<1žV#60c}?_v*YNqsU0\nOYgD"qU_=#qZ k7RJTu:6Phr *oE!$HIU޽S=)4铹#C%kU0joݸtt[wg͌r.e__{J|9⫃⻴zٙ}oC'.]SuRVָ3X4$ۥI=`>:'G9~4¯obͬ)Qy/dHyT'g.IuD_K rMlO+?Kk-'/=Nķ GE_߅_RilGU,]Jlf:(nc46 1 D`Xky F-W3"r_{1Fif&|-\dcR@e<=i'WKEKNBCz!4KPy69'p[RG1Oy_s@/JYniO@{,1-j!ޠQNQw7JC,瓤&4T\&9Ǯv&peTre#j/inf16i+0k`Qs/c}cڥjJwŪQy=zq0Iv{z4ĦH3;U>]PMdm.N_E{Ye`-m#~ DJ MLHJznE f[.>QT6O )j0@4'ѝ+rENq X7AWc0!wު2nʹ5$TןTaE8jؔFnsM_R耦AǠB&5Ee$sg`$MZ͑pRHq#|ؑYh3ۃ&Sc۫U \b|șvX &$RbQ&꺸 @[RIlh0y o :QB=m  ASBԹq'vI9zGUt5QXNay_wmq DftCפJL9vBmz#}Q%j}5ݹ(}zcfьl]"&Yl6g(XYĔ80Ūt@y8!cI7[ELW0o۳(G$mD}aȇy<`Xq%ۘ n}c2>_T# t09!Dhg(ۅi:5NGYG4Er0Ms-['ڶfYiB3急:S^zEsX8ÑvqWflj1 :PQ\wܮȖn:IhkpBIPܬֹybBj^.:U.w1GD g,e%K}o~j=nH]K"荼Q ]633Y5-jz<~-OUn]Vàɩ$u7\TG1Vٱ\#3^шW"8%%\LnҌoMD'lMhjNn!`1$<im2`qx$XP,w&@d4D1OXWۻHp)tCS|Y}xIcxke] 1i4O@n B夵f b|%7h y"6m%>?Mo0|d1f%֛H g4,aqCÇ'$/Ohlkz>\j:8ʼn>^0C10)bCp1χHN\xb ̺D w/D^>]:~q.<2©L3a߾ynfhrqc,[!*Cz+_-Ȏ-5'3TLtȣN$%prP<{xݣ'+(*/(wAGW.Q,?Y(PӔKT2Y3 IGXͣ#H7<Ka.2ܔxyILżG>#lT/Eڟ&OmQUd|=tߧv:}\]D@fX>:19ML=8joZf +ͯ9f6N5r͔6JF4Ƙcxݯd<[ EƼ,2"lTJycC4]/Mlp, Vhk2xJX{(:el ,b +} 2Qb+vA_:mFMa7:_9g-#]`CBs1"٩V!2mF=N[ҧt,C]T&)+46\lOLMC,@`zʋ,֣fa\17T#klFXOzӺZ-4UzJ}BRQNUw eɶQG Z>(Й[6ף`6j )mwb0vn7ZNWhXyb$q>Kx)`^Y[L!J@z0M} a!$ UOc$ahb|yiP990mzNT>Pu 6yNGPbp L(](a;v.eU}m]yZDʍ1ZzTQ-5YPVz"Te@/ֶhŶEqvc܂{bdr/X5m D}lgv:)gI9w뉞BNxn~ h_.4EGdFnƯVd:M/0ūW;.xH@)lYƂUU R0z`|);j?y9 Ʀ[\0f@TNxJ:Aff3ux ,#KoqJ"Vߥ o:uH{YSxU(,]껞r0-RXݍSө"/4tnASAń{MS_Kae7~2 ۳[}EAe@/9L}{0NTN[=RK$"}m:B{`a[[myY LTy;3záB0!ikȫc?6r{DVոvr0-];y^ UN*/a*wȶIC"tWU|V\5ѽ*,UqkR%xL< dvh> .ly~?%4t>h7Z|v+g3ja`sѠˁ쪟̫AÝ]Rf\]ŰC\dQ(Uǘpe.h8^b_]NJ=:(X!Wnj^\,RXC\cFjDwXPHBj(yJ+ԃ^ }Ȫ[ 2||@aun+Οnk΅e+o쏟2/6ي0n,W9䕼JѻYե .j#*:z>_E`Ƨ3~H=LG-r9W'2. KXW[/.޻_ Bks{|~-?cK5ni?H:/Fn(L,#+0qza)\LyV=S U *%{#Eݾi9BS%er7kIpxuNAv[Й.Q mXݍcǰ=|CBMv6"84h܅4;0YGrty,J]HK5B4X~lWg,7NX" RndB-f,޵'īon}ߣ{O}D&e -畝EtxPSyQ|xtXcjoh~bqײ5c6֥סC9%{H2V,\Z^_ѐexksH3^vXUg]`l\lp!;EiY 73Cr=3U+VwOsPWR-.D)᪹(CAW.WJx.ȩybÅL!:K* E8g*B"a\0 #x܇D1hfpR~LC2<1^.+6* xvx7۹0E.2  _67J[ޔ^cXB@$5K`!#1]]3`Zh:^Dx,tD́s!/8xJ;<  12C+K+L9_H,\JsJ>8 Ti7"}rpw [ cDFW+X9b%faI:[.z :pwW! oy $'{lmmd"+3 ٔcgcknI~`]^B_;"w~I5V|^LeV]-.AE7NE%)p"O@/DDg7,N1ricz(quM{Ị= EԤ~ZRǴ?(\lM}m(}iZ٤R7YpI|wP8O?lԕKz׺gR 1 EXDbkK~]2vO"04]7w/N% V1fjTLXVcCpQQL>`YT`ApMxT )jmj4$كv`M5~{Ƴ/r=mJMz" \P->jQH{y >P ہ.95{Fh]-8}ilV:0^K4P82udF; (L͸كNA"MMU[{oEQNVsY%ZN0?J˝Ǹ$M;qYԨ"MԽ%d;\RMQbɪKg8L-f81u<|wBde.rQɐDڛJ'Taq?VZJն皻]uXsf"tpkް6I~Ir)$ګʴ[/ץGw@{6cj/o8nxRkAHXD@/n6A&ZkJ+ $̄RB K/=̦{}}7:l1>0wBHQ!+r<^*\ȫz1ϋh c&]DJUp<Rrɲ#0bK,r@pLnXC@,ʥ#ܳcDzP|bj aaQVi*P]Z9?h]-C NWr*#pɨ0ZoS5DltV(-]&9T<#1X6e&ސ|p?, PK1bc(Í>)i"?e +f 3kGc/%B0U`\W[6Ol.%{!IܓTD,ȨP%ѯp6Q !NtOks5ruF;m.HR^|dj,lGx+2Od%}!½x[ms|(;uH!̴PG,9HNED{/UG ;QLHbؗ ad:52Nȿqo`ώ!7˔?NbD.{?DfQBF]v{z0K2xc1_qDܟ2ÀՋY(Ice/})x8fw [3p1IҬcy+$[s=Ȍ<0e)pK} 3XY,* L>~.Y(Lyp$Y͈> |gߛ94.12i)J3qm|h*&"⽔kXXEgYYE@~9q />_>9-㊕XCa] >r8?CgW`x2a'1p.?/GcbqdE 1/,6Ϲ|6}xetCb}&,i݃rӬ8]@G!~=8 Jw١LR$?_~>N~g,pIɅ( -9$vj ;<(Efa&Bpa&e,zfq P -Lgpk|i0&Y(ͥއ,g!@/ou~=לsV OaDIĿas??O~|y$G5H`G0%o5^jVSplKl:0.F@)^TV`j`:E1"B 7eAHyl&Qf30ʑN8QxH IEHz;R4 voe(a- "hN-!(Rq<ϠL`BQ=2xZ,?a<%52?D(K:i)PfONNY ?ILwf3%#!1YbgRѢF_e%AsL1L `$of0Cn"B+ W@Xl;,i,)ƕ0w*զ晴VWy.-6mBfXp5xM~|wa`A?oj%6 AHd!2 IYy"MT+k7Ko'N c+WÒ .^z*Yh RV۷:_ZQLBٷ2ERR1REI '?Wj9l*|{#]U;XPDE Qώ Ux;|I-7}Pz,2 <6|)^8Ielrz ۞鎿 S"sYdC^u4V~k;,#-h%LI3j!qVP4-H %bt.=O~ssJA@Ykz1vBV^E9Vq*_-M6L/otp^B\ oR3CT\8~!n[[ % v8n4ɝR;@PliQno (ӨGP&\i P#\:MfN&?83eTy`18nlXhN=2GrJ_I@Ƃ jTpThM aW?)7;]CUڡ")T!αa }T0SM V,R[E@EZfjͅkU(`S!~aO{BՉ=e7hWِ`"j'eU^k{Mk[AW۪EVk-9b~6z3}x&;&jyָ%D d&vO H6{iW4N {NE8>0bxUrwG 8Z[7enc_4vC^&ZiqBb!~~>`v|Uk}v#U}!%,bFWf2@3 @P]rY"1Op֌zu[e;Yyͧ^QRul˛8!ҏxkZa N]X1ijs" pE ׃0d>1~:S䣼b^6/ix#bw<ɪsPT]ba ^9}{FÚ=TW,#2KJ,^>&̻)u݆!?Wv-,4ߜHԶZᰊgURoE5KTNv.fIm{G%+z^" y'+5NAmyUI@e#qn{u+Q{)n!]?<|褯~ƛ K?ԇ  oKmm xQRbQc])2) y]bKƀSjHe6z߁)K<P6; >BMi =p<&)PF7NWJ Es-\zSudOL=}o*+.k`^%{`"jA)ހJ|5OEAguRA,8 ]rGH1`wB "E%[C\Bv0]JfF%{Zvvqy*{ |Z;+\f 4 j\]J_Z5X^$soKwhwў{Ŕ{?~7 &x-]ͬ0U|DciIF~{Qjz~QW~Fsbqbnj^IM:P<>wLKϵRRpI,I4200`4ğN$>K(*1y \9 ~NEũE:@cQQb%[Z [Og938/j&c,š5wXz ?7 ׽G}ż-N_x oi:YP \ȥש[@.M1EԫkߨjUκ,=V77mv|8DQeAvjwt 2x_W ¯|1&C#bp.L}ʱ^*j6: e@(Wb3Kx-(LƼXڦ_mM`Ѡk]\A0rYj盥q}ǵچG]6-CkZFda+b|=LMAOZlE Crpbţ_4m(P{cepyīҥoREEN9=&qcaĥIDa(r1v،.MYv ~RP)iyZPPK2OD#nfƢ FRҫř kOg'2S ]QYd#hzdRs5TxߩISE!4[&'$aG8L,>~Lgw?eٹ c?gg{/?fhi]mT5NC4TLԊy!Fy<.U34f:{h3a 3m]pDZ;CaL.9ΝO߾K1 R_)$rQL5J0mxīRs_f_hfKKz4CC:jz@qOyjb+s9`i{j6'JFclj?y޳)Ap7̿7ۙx~;'tS),ɇ~}L4/l(7X^pʕGEѰׂgg&NXuqA Byپ\'V8 x{,O_K=(9?(?g",D =ۀԢTȲb̲̜T"0!5X72?O/ȎKAK%$Պ rfZ^JjOKtMQ,%6aIYŴpq^׃ӟޞwםwX P$M2LGw.;/^Yýtv؛ӃݷvٛoN6;G3h<"6c^ܔz%l]s`'׀\Ć ه@4.iPr%#U HL}uTlع]]I| wؓ>{{x)Ɇ4ؙL~I'Ԛo5BeW˦vohȯxVdǫ#B4 $s Lt`5x]Pxn˟nQGUM2F_ihY iE&0~Óc>0[-l8"j/C]_(O@@{ HHw+AȆc&{U3 ?}@(#moGߎz\}I>M|یx}!*C擅l9|M&"j$IÛTXH͠I:Is ( 7p,H<1'Q"ȞI<1!( %7LGB{ X" ]t $5 L4(*ʆ!6<QZ$%uk]zրwCsv ̻iijC7 ݱTiTzx@FI $i( 8L^_tQ2~H֏p=%A'Y{;swXb|(Mp^*@-81S=M^V%pwe<>̫d IS`w{'fz v.GWO:vȈu;_/㚍 !2^SZn'f;ZyR$v RY$8 C (8 $F)A{\ʆX|~R؇Ka]͕憖mwq%w]b򢎌Y&P6/zNz[jNQ PzZE)h[i5ר7XX=j aɀE]9s%0.1` ~&w%FB,x7OxHa9%9/I9hTf +ԂB,7b ;(3#]"WΝ"8Iښ5+i0zc !Z X 3Ryjօ*|*b EǖGQp Vx@nPDGZ!:PEO1i*Ui|%9%Oƹt*eCE}R'[#Q7SfI͏MU*vl$q5f?c[1e?F986,-v';Q~ IsRh#hL1_>24OlIvd@h&dvmonSWL̳ںj UI4L*بp[WdJp\cR`C'kUQaߺbC ]dQ<ΨK)f:;}'Љ`Kz ~><~=s ׁ!cql}5nu(> J)*H1Se *࿺p-7=dKokoB: iKvkęly?eMv&t۟ܵӖK N|BbտԷ/w m=kGvږB?, 4h6I'"qF;ΕߖFssUX<9n',3{}pw~bxJ2kQ֢.bLoVU4ul(>#pFF+ գѾ|uI-֍hUwZr l]o@>G; jzD:%T&խ S9"T^'o̫(OZr\7W N 2O<ajR1@^aJh~*$cJN>gkt1c^&>''5^Af cɱsdqD`0zkQ ù0j>[%yBM+ch]k+8^,v?`^Ius߼Cz;+!?}EHe@bԱ:@vr[54ow;Hm %vA*GtȪڧqdP~^+ъuP:hDKg(ּfuH]NȝJ豤NR'p lY?1+oq[ty#|6ROF,cMϞuB_Oɉ{Jap!ч Dw[Rcz8X% KCr` E6s_Ť6SkH)!Kbi~k{B=^i3"!mw↽Z"WҥeBMx!(W/(YZ턄Pv]B`$%r fzl5A"*4Y TqjS 0C *Ɋ|`~1Zg ݦյyΣg{yn:Jvjퟦw:Q]syNOlW9=v~ѷ$Tw߄Űsgq2->77S}j[  MIʛZ6Џ)4dbzY{TRlMByٕMCR$B|A}s~|>p L ,C/3/D4#72 52>:߹έX5BE]Ӱz6* T&5ΈFz`_v&,A2*V˦Ư=eQxeZpYb'Lk5F|ek gZ6R#V ׭bb1Ԓ&6 z6@ iKL]jqa`j yLg %l F=ő <g|0;eS?Z.cx4v1 w鄊- 7m(5+8R]fb`@ǫ>ĺa f8$%Pd:i)*zćHZ.rFP|oy2 FOQTmvCm/o0aє0ļ#{ys~x]TO-†Sr":¢aϓPތγRZu[5iZBre!fH]!iO17gtR_=gz|/hr&?3 EL+K|#i/>v8N"qf|QwJ<XWXB058>`hޱ:Jݞzp̵F]9==٥ӟn)W`$t'X-z = Oo}$чmFPOjkPwΒYpJ07w=1b੊,S*̗t6ح%n9`-f T>UZfP T׾}pN³?}u[ iQfpvɪ(Jq-7t+j#{2^G99rR3y ÎZM\>KO)3MjA="Q^Sl)MD.9?2 j+؝itP ayQ2퉧MU + Q{{IuKɡqO/ӈiJIXI{LwV(dCBJA3YfO[:`cRzi^Wqϓh_+%dN m[ ]s>2wmL2sv{du{70l;rW5\newot ڌLS_@G@Jzne 0Lάs l6`6z&=#}X/E7^FOTU t}A&A6r!` lqd3{cb]py_ٙNR.P@{ֈ/J&viMǝLiPɳ<3daxWI OiAg[^ SwΩARhK%xcq%h#bw;hd Xn 5 i@nqi7s6Lqu8ޖ^"0\KO /Dz+=`ef|K~H[mgԷ9#25V fv=6E![;YAԖ:BsW*Ůͅع"=A4C%oS/Ǵbй( E>C$ ߩne&bMb(VoD "]l0Õk0ϸJ]һWeO6ņǤ/,-ʧ% Y2nEvfN.a+\y O1g7QɦxigY*q7!OQa][_^xWϻT4‰?3\ѳ/r#y/ Fn{`\=uEY܎]涟E$9bsRޚCzS񰒋RG ML~4`SO|-$*y1?"5*~߭[솳 ;x`2=!'@7js-%)Q\qFѢU.͹Ϛw펺'^NU"/B2AOmՕ 16;F3tel>$ԫ+lJSuIM\&)iP2:w#Y~,ĐNyo xRpU^}ZL>0E|x2/`xExa.白"`&!T.wA5l=?%TXESذqr_8ǑikNqެ sJ\"A,|<> ؄컸'%xL5J>z#wh-@y~BE֫Arlsq;kM."'l'E76xv+71=eBD- @|}w1Ka]`gȊe]+bnvB5CG |t\V{=qeUyE/hoπcNXɔՊ|D t -4#+E.w}KצVp7nw+O͍e1 }ǴweeměŽ)(39Wժ6%ne\f9Z#u%݄xzN˱iaF`K g"$` 1^a_4 ts'ų9y GmcB| X[-JE۝Pثҿx"U_NpGY%#  Tx׼hoUPz{E*fznwa}+1(Pk&^dS\4#Ni}8p5Ti:{ uu0^@w)10WG\ }zu/:z媧 /KY{' yJs͘}[I1-S\4T"O_ǜiS c@] y`9~>_!h=a oy)t|yOcqxW(]ދ29mL"&&)9>_=L, Q{&b(iF,Q|K>ܚaR {}:AZ,[,LX8#8l{t<ęx{]'1058uăE evF[˶:v$?cM2!2(ItH45%TɩQӅC]i* _-dyjnЗ^(yq;e ^i&3ۨ3QCŰ9{@ Op%Be$WBMtaRF(g':a4:@0t0 X@6fK.n,٥99pTz[ֿIy lp`dW!:!;졷b7ȵ3 xYklW'7;N$ûƎӦu8ڮINyn7avwݙ̬4r mJ$m4!JiBQ_P/(Rh{gfgvRػ{9~ԾvgjjnuM~2K񂢒SjFɨ3diz kQr.u[? 6[5[(˔ʪ,% iN*L7["6TIY:\V 2xEkLӋcTSWhY2C,:Ê*ksQv$øCRIϞ/ֲ"UMh.-am -@HOm#)a(u?Hh d4Y:44*BhTГ125wUK\ES@q6oY ]O#n^\a_, v[ ;<*aX!'kdg?|OM߆=CᏏjOfdڴJuO]on\\>yz3'KiB|r9$1]Tג}T)NE1#,y?FJ1&gQcB8Zg g`Ĉ#֌p8nXTX)gꀧk3M凗z~tzߜy.Pg+Om&1rN,$0VO2dR|(1F(FIW@'k_g |0 kZ t)ES!`;r\ɚW0V N'1 SyJEoBAaDry8$F ܫ B*m|U$=5:5JZ +,V!*1"iS~eU<zacJ2 BnUŗ}{{8]*5t5+̺^|Ҽ *0CO@O0{ZUru@dޭ*eyޘO;@Oya'BFw;MYo1yY1jDw*MVXs@#̩e:ab(:rUx}$Ir-# M8МwyyXXuWM]=e%XDT_KЪ$`"y]ޑcI 92ux#~#$U*;J0# ŘC[f#]~6Y{_?}~b3qq >ƗnsVf^z"ӆ͋HSןv9ǘ KrфfP5.v9bln2G_F5>[V)ݜ Cd X2{#dJ*i蔳Be%u"T*ND!'#6ǬB|V">4>{$`/}KrCEQRxu?Ƈ&tԐnR,(ۘʢڪV`ƤU|0]a ,agH0LEBc=O^5n]zNX9+ËmޜM3==1 GhWPvVM3;l^!| .? l/=P3J䜋4p9OۯxNE/xZ[lYVhCS&IO4\8Y͕\tS7xNٌg5}v{ Ї[ZeyB]VVZXB,8vHBB*\_풃~p0テnfIɩWJ~]9{ IZm`P/ű:}m֞#RG5a4i;V<:_z3+euf.: Os2-@L aIRT#JޗU]16 Q ơnɖj%ԌCH74m.>)A}\C 5S,0yHDnAsYB%rC{KrF90450 1n,ȚLh֐ [2K.Z+܊>u_6ʘhԵ! j 4IMJ}ecj"{qZ@ձeM`Ra뺎=DэXſ#U1+ONPbQ I~P[fD$Q}˔1ܔiރC5Q4 RD-z=%eFyul:]!xlKб!$R}w>ҼЛkCstɥP< %#+K$ >DI>IN.mW餑Tcޱ7缴tN:m&,P^ ڪ'UTEt54ʼnga" HLCqCC`zr [&9EiKJ0SoO9WXrSlЗZ:jic&GPBZ{=tt%o"nQdD/id z6hbuSrq 2hPžk gdMP,ht\NJsb6P ˆuUo3j5'2e/KhdMBŕ^!+䧪|-BLyX$z&lE[,ۧGn5wV?awb##k@$=%QݎWkq8ki[Vu*k'DSJ<ĞU-cQJA $d,|լ5%ٷ] G UA3L(BJsO4yMڗ%`0 z%hDה*'jp%W:8t:`;^g+*CɆBeƾ=}`5BAqobFVy#P 跛Me>V|uPh^a/NUjZ ɢ $aDzwQtK9.| 擻=HcnћgQBktsSP-*I(pb!UӼDUHތ1MX}|!K w_-f 2,ӛ"F$r wW?|n]BQ <ާ /^ n2ޕ n UR#!tۺ\c[g:l[zv8/g*Ҳ.:GJI3!͂.[pnUuƝg= }|?;%__-6?4WؽWPYlI.xɴ{*a2`?U*bdTӛ'͠{#SWkP^p9U{a>7p]2a]*&kybx¢6<Ng#gVs8hFVcVAs@؀ )9LEEl_xθqLfQҼĒ<}snf}̲y%EiɩN9)3͵xYmo8KKnwEQljS%a9 %V&=R%wݭE!J/Z0qZTb[85>\w~5+9U&#f0a;f6Vl"˜/Y)ɒ>jyjlT|b =fؒK׿5BcS\m 5w spS-9iFjlIts:ہ d4-fEq|Mrp 5ؘziH}Fk8%"ri80TM+&̜8pt*x7/t/@ir,YADsאJփ3!Xxe!W"I`!3|%$y02zBw Iw8Ab +EeL5O&/ҽ< LwA0NCwxܵNfqps&c-)O Ck%Hd:@3n`}.o+<2cLh?a?]:Uca0=<~ m7> j:[fT[@Vi$[p][7{h ,q 1,7H*7CvHߦ:TZprf# yNm9( |LVV*!EI7l(1):DSX$>'Ce<[=:`t'o91?G1h}l>E>F{t|Y޾B% ƿPC؁,?'SIɖ(w"TR"$!><} [  ƛ >um>9T?e𛓄Nѵ?-rL˼6;8\{D:Tf櫯qL H=@fɣ=CqO~|}?]kD0Wq,ŕ*kA6 6Xum>O6[:R+@5!cn-aM",a<22@̲Yr0."/|:ΊE0fx7rY+l1U#_yv2^}P7: 6WW볥TykMqMN }>9;Zebacs};)yl miwIP/Q4|< f]_5iT/ ED\ FP?o TIK'3QJx$X<*JK^cȀ]YZ|8q悽YOrtϴnn 3BzN Lzrju99B, Bt^ Zͤۯ:o\y[nG.{b&,r `Rj"ꆠu!j cűBc)& er)L"8]]BY(-4Vd?6>*vt#Tq{Iäe2+xɢ [CEe@zl\wI+ؐΦeCaf}C6`Vo<Uͷ[/ eQx{=R${ջU}?UoÀޛu,=20[θެCVC<IF@I`|aE W97 Q,;n;:ߺj^u ~oh_cߑ9f]Yʒ m #WR/Ԓ/[P,Y]R5' G!?~>f>9,ITf* i7#V~VhsS\tθF_H53m_)S3>iX:%xGo{7i7$jRGG5Z"0v. opV bTK}tEMA/Y)Kך? Чb7@Zwx}OJAflt2hˊ@"Fwԡٙef z.Ct/CDǢźwnk gAQZZKȣ}=DBPE(-x h}q0sbnxlΚtʰRB`$;5ՠ6 #5Q۪"]ʨs`欦e,sg]~hįwr).dMqV9#Jd1" d'\`cD I4 =!ˌ5ˠ=ڛV3G7 ?`v!i~~p|,Bx"U~)Vn\Ĕ̼Yء͌l7Y8=JRS6 el3}3ψgPxTMoEݐlDIIVRMҪ$Y[٤AB`ׯݙlhT{ʑFp`fzJHsx?뙙77nW˨EYP *lQ/O81[{ ^6* e qYJ yq 4\[y ~˖Xε(&C`Oq`AH+-u ZaSʭr ve+wGg;/~˗s0f…uK|Vx,^,W-2Rٖ1%TL+H6AC|B^2x:g7GIy7O8:_>J@(m;fջ$[}H|jn-!攉_mk7=QTRD\~Ψ]*Hb&fe Kk[#NFQj%gUBC.^FiA8³uWg3LT4z F+$4>8p2vOl`K[ ew JZR]z#h)뫺)x˛cLjVl }[$\Ѷ݁zWiĐiuf<.wcK"g83}Z&cLžyr1D4f6Δ7op<Ŷ*؃C`%;m7՚z-L%m͸vܻs+WO*RUЁzyJqwK\KT>QTăs)Fs/"17Xb8 ̯17 &ĬLM&e۩}W- glߍF}fs\$~1lG}#.9oَx*tlQr#09:x p[D_KK$$'=(׹$#_p̴4NO?gPWxtsNbqg^qAjrI~Q|2Paf^*1j'Td&bQLQH*//N-RPSKsSJ@|) yE ZH\̼tTiQPcpjЪ&됚ť $3ӸlqxksG3,#9' *NTTj;"8=}i r_L{zzр>{w-䲻bN(dn,ىVyb;V U$pWO1ԺuGX#\U911I@Up-\'Xu"g|6_]YtA_:1k1[> DT2YfgCG fp=,l+| $JȰچ' @2a#;,gO4R b&Hn k0pzK7eAAh0Z0&qWpZr1 5'& $,iʕڅQ"DIၑ_V1K:;3u6.F,{d_>G(t 9' {ҹ'wU2p5An;I34:Z,St"] Tb! 瑡]C\t\ @Z۸y4ۻyӿPߟA cXKJ;Lj ^xEoߞÅ}N|7oOv ƝfqR4&6P^$/Mu_<>wѦ(\VJ|BwgJ.9[o7eJȡB6zY9>C#EM0T69>,tt6:=m๊3խ  1S(n1/4 RsVEA25Nz'#@}Qm>]b`2n92pj0>"RC>t]zJ4ϱǴ^QVG\7N7EE0p[ЍEЬU_.q_g䙖Zq*ZJ*ql<2_k͡#v1 S!*)Y+) Ãa:ys"W`8_0D/ݞʢi 7hCũ0ȵ]76ڰ? 9gqO3 m) Mk|'( N; >?,v9R@)=_:ޛJߟaW9DVqL@KxKRS0렫&-  ͤJs0ԕ!'.E7W/-쯃-1W[UJbV42do@`?0g@]XcƩTi2pVZb+<} _SY*c:7ȜhH?;8ڲsLMi)a`IՊدD@~jRB!k1l~ZPtz/tƶ!v'Fʹ922.!A.14Dc*]q#ɗ=GK2V D CehvYN;W2yB"b%RB#[v0lhf@w2n(|+R%& tF(!%ʐ&{.۩z'e5o QW P 2 =')jT>/돎J5PFHW%$CZ>!_ȴRfv5JI=Ŏ3of@Cmsx~VD{_¼7hH)jHf}ۙ$oEUdV-Y`[wƽgf.ViN;HF< }fw{@劒 zX'QgJzSA*c94 1$9jz6C~gJpx/]㌒snI*Tl)',Ԥʩ-kDP䷓Z~֬+=)*y)fPM>R?sܦ\}֚ʔYt Ox*u+Z~MNfKY?vFM Y:/jKV)blPAr:KZ-$dJlB>J4GsE^P*fƃt_z^%Djxb|e T&V2SJ1WiV.Ĉ} _+kEge_cP+L;]6mԿjJK(d\W3,+YXS#u;\Cv`Т;5 GrY~˶\w|i\Syyۢ*.vJp`V{"PAiۛ@>,} D864iaaރiw26I~ТK_)am|CR:0x;zBuC+#Ƴ,yřy)ry L(x;Bu:f=z70i͂wY78 I-xeAK@OgELI[Ī(T{-Kv,nv "?B?4*bxޛףsmꤵNKAa.mDC!K1'B] ub#YNpo9g5ΉksťjCm))sNF ?F*s*"̒,]#/T.[N85͕plqCn.HB92EWk ppF\2k3V)<譵䒟K/?`p#MLw}) c{y x[͹s cAwfdAY5xoHg+^sRQ=/I e!BI\"0zLX~アlۭtڋHgLڇpUwc(~R]"FB vcPspapHRpp2F ?~$8joH@_ :^"x=EnhqFP8UzRjK_~nkU #8D:j 37@m=Hޯc$xmc<9\CER@,&nB"B]}9K9"kZK=!}V9!q?Gi2S #Pdlh1I nGYԽgjz &T!DF> Xk1_GD`nt=>uprs9ЗH ޢDCo}(`29GcUg<t/;c_^ $ xnB;z"v7Z,G. ac`z"pfSsT|Hbjױ^#%L>5k3>gv'ې&XDs1bH坻Y@h~p4'4)A,d=TM4Wv$L˜ʣp>G%JԉfKO5@#~ h-{w{K3 }:L\'qY*Lr.!`\LAE${GĉUW۸7 (ӭN9͹w{Yv֦qb jÏkdvclL\k{r `#+xdv*n\Ĕ̼Xa,2y%Eiɩ Υ%a V ~ bH\ ) y%%nEV ~A%i .W5BfdwVXME[MB5TPWJ-Y[bu9X< +dgA)NISir `Z YZRZVf=yfn(sM6Ԟ@ڙIAauYnq`}xCLUfK4Z(<+1ٛ_zo^Z.$'C>ٓ_yr./(MΧf@cFjE Ϛ֓KM~+6\~>j!91iVplf4b Fqzjf3 l\~P+7wH1x[cf:fq.̼ҔTǂ}059x:YJwGxVnF}b<vZ4-j%59.)E(=uqj}* ;3{fm5. 7ש6Y ][Lc+enM*&=~47~"}<3vM8kԂЇ Z4(7*˚&+Q&ϔDi0u9g̚U m,V?9Ұe,-L7Ė)gpr,p"ݳs)[CucR@ _\!=pZlt<ۄ<%c%̱%K&^SJm_-.ߐt&Cn1b"ەNzf*GEr*!`Lp:;Qg0yj./ YYk{;t Ym2t;Q:Izzt0DcX,~\ȷ  9W:q<(bd<`FE)Tbҙ>IGVVH wqJ?JG[!mb=q9MIUQp}?|p{:׶I2}j ?0A?"p f&0W_j޿H ,*^7Pk] -55ds|]rq!#nWyQ@Gh^VKȲ3[Nv Q`Ьڻ]aއ/@\G:(^UU.*v:k5m*jHj 30BW;!ц'l?CgV Ț7)OcĐ Yvz2&q $q(Z$]%] au'rUۖ9pe'ҹVɭˌH}{[9 _q&Pj[ $)jeq r2w 3S4K!m\[-Tf8 yf.e7^@*R!* |JcNxTzr™>_Vry~.uwNrv0] !C2 A&b9S1,""QOdr"}kd0r<ҜNRA-y\dvyRJgB68>3BaD$;?j)\^eSN^1EBj?r^XSo|Ȱy7<ܤ{.p$P-\zoO.[x;.A|&dpF]< -L.@Zl(& ,x ~O_K=(%5-3/x"DM3#Լ|td!=713G/9?׎KAK%$Պr4zNO?gPWx$33SL\\ʙiy@% 0 FNFmXY\ʩy)iHz334  *Txko+; ܵNQ$(.WbZn\+Bq3Cr+9Dyӣ>VzQEFdf>e}&*iZjco͛ؕUb\ v,FlY4tǥY+}v2њI~}ˣXe<;m7>,5Ya #5,~ O_kRz#[oaJ ȍ8;5X˂%2 Ϲ6L%0"6rVo.Aa '9۩EfRr>gW36fb:y~~9dl.-^qBz2-*ɿ? Hg`\ׇHx &ϙLX̀mMսXd$;ts=x"Ja/If&\QXvlյBsAt(&iOP->ȵߧwm W_M/g pY#[hYǬ`<0[k'\#DCX (oyTA uYןo:I]/Dj v-<*Mb K{3\o~ l!8P[2?Ĺ|co,Y"~1Y.EYxM"s"U*Ԉ ?l&5bCy @ӧk;q=k'NNR=xXנjcѼ{15Et֒xc 9%X$N(Vy;nR*iQdߕէ ȕPECaˆ~X-zP5sQ:ƭAN\#!I urQR@$DA95&еQ ԣ/A>B¢: wLn~h> DFܖ X>ETP&{i); WQp!iҤ.!RaOV9$0NJ95{d܃̌܆W׃~!Pʊ(a&/U%,s  zM٫E 1̠0rh# x 䎠-nƬ%'ل)kmb+E{J^ KRB-Hbm>|F @EOnn߫:RxV"tR%td3䮖'g}skpq;wǢ YAg(VP:e%,1gsUi=Anحz v-(`UnAeVZe\p6onhkR .r 5j0H8+HU7 V[&׼T&4x5]$Ү\SX|mjIV(z|H ӭ:5^upjSQ@&:| 9D2|]=}v[ Yzhc oZb< @?^K=uOVMmuEmގ꓊^f=# ϘRL "<#!kkۻ TRU.ߜX9׮ɱw7r ) ka|~h׺2xfmyC۵{`4n؁yԇج%hed vkrsgm㠓 ՆF* ;rT M}gUMmS9mMw!gVVB%{4ˈ7S,FaQA5F3GÒG!j<4P\lI- v9̒㣖 {҉Fy1\Wjlx䟧6'շKO+7_BS'ܯ;p8$w@TGB!EK@Kc6zd͢qD(iEP] [3!FG$:l#]D/+̨BĶ3ϵ:i։l;rK XQyi+ԽN@:oE#-{H$_x-h*dɪ,Y 'Go^rT ܼ9xWH0sWhgM<,Lc|,GTu!H*0oT{gALEFFFFfoWM^7k&rv]4h6oUiQ60iNr쓶EU&8iauVjL'&I$*kbtu̚|<$Nn2*+GApD@+Wna??r{t7CϻSQq_e>jɫ*̀K |{%6:a#X?:E<|9̽S ˼'y`8BU%}%}۵X8| ~?>@Ӽ̰wNk_'U &oOEQ7-LwZ!'I6'OkIr̦Z_>L[N8В`\h!3#p0b9K'@^v!iZ%FO7$t'Ok|288ݥg|zS_ sʼHO:dy%*Kt$҉ܜ iOLY]]@(U~ 7_2:w/,*'HpԖ}g8M:0Č j-q`Q"m/P 衏=ܫe6~_xnZŮml4?0°`gFX|8'h,wp`|ik j$/{c w\U|`҉MԆߝUo94O[[ ,ڡf2Q4IG&B;s$&^ @D@``VWF(l"nd<=8;sgAZNw]2ۮ=upOk$ kUF;:dp!`>+"w!\>e+"6`;+[} 2Y_M+Z`-Y^7Yp]ԝdm03#ײ,iAEj>Zv§-ipyၝ\޳"8E_gȚsӈ1\(( r+ ~` k0Ha$EVi."Ų \C$3j>Tw%^q $U NʪE.u9r|3࿐jq~3?h+yq+?͑Ol'AkI63轃:Bl*w³.$"H}=k8ܾqFJ6ByYͲz&MHvv;\8Sn vNf@r+a!Z3_ƹ9\W 0|rB1" {$[hil <}[=o*sc_}tB@{k<~- ?xCt(w6X{w-WܟN\UFsny*H],uQg2ƫ Sj|VxG%P-_yM [-YK옛]$.7n\n(]1Okl2M$</"{7H4 @z&@:|f*/^˯+s&Fo,ms 3(3R^;Seh,fVS ^4c'A Rp~6pc )B<യwߏ˰D,J:yr ۬~gGUux Oc>GNZIneYBAʓu7b =[n}r``C4luRFpɮ3b2c@?+El%y4,I հO?V@Kx 1KQcl%yԨLj^j|&5ƦSOMkEő$MJOPjEQ|a8NE35i>H}jM~69U => eE^5%N}N%L`65Gi'N mv  nj.cY2uPVzDx~~tJ-QOb63rܓo7, 20Q&="m;Kr/|9ҀE6T .FȲ\JK(4w<#'g{Gc?8Мݹu3vvd5CGn1  @7@g=~i|dB؇i˦IX X A&6{ =p ap9{pe>RA_/1z[qa)?GG:8 3:Q>5ʋ]iUܫ;{`=5y+;4^LFiSDq'x˼ǏWv)`Rhu0۹16lY$e蔩x}z-= u^-Z)9l Z쏡֬70ѷZC=<5:⌌e] ;>^QqI&.$p˴fCA#Bɘ1.pK܌k&Ďk \"A҈pK&φT Sh"_jRYpJ"I?M1G A(qyYݪAS|.fAoۡ9M'ph QgՎHΡog)yMS)ߞZ ZMAlsULD=2] yE]N6|38<7YtՇ{ǀ10%./9#u'+ @R@зB c }b]q-6/G VLJ_ExxRmѵ~ {ʌ"Vd s ƱNC¦9ox)*gN[=x;c؂=(#eCNMeg50=:\X+xwvIG뾍( U 'EaFUYȋmGxܒMU&)pcx9xɄ>L A7fyaT,8Ӝʁ+9>^$&|h-Oe=DދF1P+a7lr@+ҁLc k4"{mφj qOY-Q_rFN)EثQ4`yEICqdxI~O˰w.33}?`2pB+c ؽ}NM\Ds{S;6j9WЊ|ef{DnV{G Jx\3;>i޽G۞[`^]]-8QE1# 2(B9Ep'WLdAS#֝jLFA0%w-\PqLؐq >V#ZSF+ݴ$ 9E7x *iYw`+{yG Ptwۆ&H.JIp`D`6&/gvH}uX]' >l-?Xz{WEs`4y%cֿ<{$oDMNqV]vW@m]t<"yB I(i\=r|dc ӹADQUmi5EE*SMN92>}&52^(Vo:vYtG_Ęl,T؞ȟeNjCOX:2C_& lEQf#'\Gx*u&+Myoh:/ahnO.9E:-<Da^&Z}2E[VdS_royrJdVOS RwiwxoMD2Ssk-MڕₙеW>]?ţd7|,RHkH2с=}>ε|K/^$, "Ô/ #ѐZ>Moo'h(S85y{AX"GLA _M<.<kwbg߾O&|~,o&Q$^fP;8#%AWf6@Ea !,# \sYrp9h~^*r0J0yOkCBxYiFn؎-CHoStЌ,dvSݑ#Ͱtd+*;6 nR$⫯X-Sqrlo#w-Zv[v`&1GAuYQ 4w ^3\QfLo $tJV"T3aY-2]qjz|XQCO$̡S%.ɠ]Lle%,eP6/(\EPPdhr9+3Q1<ц{+ln}J"ܩǣL$F/%55zg,[I+3gmsOʫ@FOI޶F2b8eݚy2ϼd"B󨘋$TH&EC" V?TsVFB R:H\%{i i>-BSwzg4ixp޾z$"AmC {)) $^4pF}g&/-^tӂc&T`jw$uԜR17끵p'.()9~ΨWw4vNc>Do)nJ>;KH$ TOQp5I#nXx01k0AN@\2jyn`E#HtMv;8E2eum^#ĕ,־Y%\jBJ%VeX/09U]ln,AE'/MweS Bu9|8>SoPL:U, '1g7Hj6΃)0t&\nwH Z8CaaLVeqyrgN{N@0uK$aA}9aVsr.vIYL M@$ ,:^]șL&#&Έ?l}<_7GV&:eLQP||F|~XNg@:wT3v#JDr@ǥ׎鴈pu<O18/FyCjIV=}=k3^X€80@Ë<lVe01'w}0[;qgVKdUV8u=y:7wAii-9 YwYp(AAz䚼Vl;)E.ac* ը#jΌMu 9,Pc}~ss39#ޗ&3k V3pUsR^xf艶\߳^Nydh ePnMCar:s4r5b N/15TϜF(ò6rk/k7yR>&Lp s6н_Rجy6%9|$3@^=E[I2֯4G;*N_UB> 0v]Kxg&F}3X^`~M ^va8|{MË?';.`xuC)g[n^Yf!4 f|pLU!GؗV6 cBEb;ѝsS\"ğMjl dKejm*Nے aS-#s "b9m}l.<\n}T_?r8EEKAѪX+;c;qg7L!Pvp#jcԄ(#$[oip,\|-)} zl >Njo w{N/jE{Nͥ(x\a95!!o<:o079J?f ^șa^O :GBs/ ȼUb$u/Bp͐Z\rFbլH&ekDz%?-Y)C[\d W?srq]sBַvC%H?Z^ $x}S'ʢ_lRQ&zm?M/rQ,) E C1A>Gg"{JˡjAk9cw5v5=[xGF՘lbZ=OtXyӦuL5d+Yc19ST:n ~!|F0=䡫5YEm snHMRq~~(f ZddG;E  h i0)?:77tiɄwu#HfڡIYFJ$OMuՍgbvKQ|dI(;yND΋k|FODO}iuf; Aۭh]]H Cr; >CLQT5zRUcuc7P$8/ssȳE_6 "M=t ]uh3wj]tS]%SbK$4kr*T@ogfAB5'nIAiiq-%Q1c;ǒM gC%Ce+C v ?o(,Z9GҌ3Ic :5o&8cdl&(t˱3FJoz FUX>l9"r 5.Qc.sX-=/df0xto,UĎ$EwC-~K`B_pkw^tg?tcJ<-{v<0yy/CEķ r3̂)]:~.̓kf؛<-[\׶u\b$`Au[jpQSoIV8jL;cddh'v=2`Ic7Vd×3XG<ţ,n}"c^ؐRԅ X*H 9G@q^5T| g-ˆ*Cc&ܵ%aڟuɼ']ZVnzEcͽtZ ؓMkshinEO#e!G?4&e竬:iAU\geS\pa"э^cnNQ8,*D|[163 l.ZHcwp0K<i}m JܸPdڹݤ{:G=ۆjC&r_-~r#kSB\5gh2+ŮQ׽[3Qh dj9j`Ur8kto%9o r2H96ϑ܃vlL9i^8*lٜB}eaȎg0L|JpG4%#}Ձ {h>)8.F1Tn>C!Bܸ! yRG\ʊh.MMal< ]4 ]_Ȝ+0c+)ۢ)ҊDoͬPαsX@^*kJK;朔ksqഄ[U0U9riq 7>>ZRiґjr_T2IL%^`嶧}(9[ʕۦq ֧/WNϱ 0b:GseHsENS$c|îB]Ж[ŏl^ڤgș.^y #;" eF:&ocxkQ8|+*bhlb秪rulu'Oo'FgxJ̝<}5(]z| Ȭɠs_umㄕ}sXprrP1՗P<>9 f+KG0D [? ̗({J&j>Ͳx9kj>afZZixx!#~ (P)Tꃰo.>P$cAri]OY_Jg-Ng 6+/bS,5re;eA:ي M18l ~Z_WpP5#U yQӥ2&IzVޘW.Av.絻+Jr34TB+\Ŝ>* 7%d>p3"c'2aUJpȘoXz,S^x-93Ae*|Ҝt@sue~RC7er mJV[ZO=gqVrtܴ샍aʹ og{X/Ճm^6 i"ACι73eQo:\ዀ |ޑKm`*tLEs Ra'nCRKGj *'sѣVJܫk@n}53EPv,1w,!J`z;An*qyɀNdbKqs|Ρ{̛w8g1rӢ%Te.` *< wQL$Y8tQDkڦfe0s {]M#@Άji픦.[Cqyͼw: 2s8zj-)C޿Iޞmy Q:D΀5|2p6bb{vT:{#hޕ">?+O,t3Wʎ!C^:<X+YPZpqrK%(Ԝ'F2Ad䱐ܑ5>hMYmd|43f֬LM^cuh^aU!%3ri]D{b8`b+RZSL2t2$cfOWxW1(Xs2q'.,D 'Ń Z 90BצuLF,1u 41KZhcGiLHsJ ?x\-L 1X8 $KvT<\޹oO%v``bQG;53Tܕ?V/ :z{TUKy۔(lȵ,NmϋUBY{"Ѹ,5k0pU+~GWm=o>͐:q8RѼ@!\+w,d# uo5E3Gq&%p N\9>.4P,|a<َE氟 @*=L9Ao%IuDL\p,WВ. `~|?(U ^R~Ay.5QFwKԋ˭|D[U討nbWծWuM{a{-j6^4kQe )8FcCt寯jnFEJкަYӺRkrt sʝU^E%2y$m9YF&B!߱D{q;R{pԎ] F7Kص4#%\)>u.1Uot]8?"v 1]M~dAYx+e*YõlH\ZIz>骷bj6pҵ_Make7"CaIliXvxC8rn=}!G[p26؀."/6'O˫?HuAoLYZ) xɉUX^@m'`Bޗy֫BR F#ח1X=X&e.=$=uej$R-Odg)oacDn" p_cfK87|¼M 9žNW0^*pm rADpL:Yq"C. LX |c᧬$)#+y;S5Hk`5$ mvlXlk*wC'[m A&wL]8MLdtSaY=E&Y%7 2az^.dZT ⨞ _]x38y& hl'qaXz0;5% o|?u. ^5ͤ3M *MVӍp7c6[w_Kk4Hq5GS^ qJ\ȺBν͡;ݨ49KwV@S?{)wyzMX䃦4|8TF6̀kHJ#;b&p7ʝ^ ߩu+ 0`  63#-ʯ0- cdNE8\\J/7{&# p. [bdOgR;ʨNk)3#:q0T Xt<uXSZLĵ;1.Bݒȁ2RiH%c>ƪ5I[V/DL7ϥdCv5 4G9 ΧbD3w67`KEF6)&Q`z^*qY{G7] 3cLbY:Ȗ͘_Sa&il6ɬOL~GH~Qb7\OVK7봱BHG%JF>gSAؚ6$7NBYHͫRe$0WFa'VpaPx+U,'%1ҒLVXwaXFgif7dQ7!j-%yNdAf{%F)uu%#u3]0BAӴQڹG#ʧQo͑.3/Q!8Aabi.SIdE"XۢL,4[O"y^@$#fE}Йx/56yalי~x\Vĕ PlB%[a`xy.c߰ \hL `r& ek ?itpE\ W?ЌXTS̀/m=S'6+W7UhWJ^ioqKp*yȴU)B]!M 56I"f `mG8 \_s}ItbAS3ϭ MwnH'i;-NY;oH1ܑl0[n5JT*FaV֟Zc s홗whOKcix'CjJ|rK={m㿣RCggdJ&Ss<~Ae,}[b_A0iSaٴ<ǐ`]Ƽ4Bvy˺|G5`[c(s'oYq obh^mbP y~,Odm: '~sfQPt*QjRP}7l*.$(fMCd ¤H[+X?Uhڪ8 ;;3WHJBқ$D%JuigF2 *:d Ԙ>ΰV0'Ra[M*UhHpL WKH'g:Pؕ|#N(ƙ_O]:9,Y14#N!/T.6 qpPnYSQm(Sq[Vx͗+K#fԹf V% h ~ Mp(㣑gU*-dtm{oh;+ v6[ޥ8p P0?'}cf[k7]ٔ,PhKH>;ë1\bt[ f/BjT6girdKUB̓ ^Dngt۽}ђ/vDT'sqix,q!ޓ,?x=$&T%sR`2-U+&B iBŗ @8C^y{ 1߻~(mͬ͆.T UJjA0$}HH*y]4Fg qqGSIF@_[/Yd1j:Q_?B ȵ\iI eQTem;MΫncfqȻnFFB ;;II\erF)*VQesljVcJ$ܻī(efAċ e>C*S ʙҶ^bqʙEjr \Gި3*.jq+ps~4Q{Qg|U$0]֍"\,f`Sغ"1 bVD$/<g ,3Mh˔"?,{{517xpO^ pv^SQ_ifxRؕo/KCNe7TFv(ȣVTF$\3"-}tsB"]jw&r2Gbu eN*Ä5BdGYC=>n53,z2P]yY.H$eȊ4sWȪpEKݺv^RANjXGN_\.hxf~w-LKcYvP⍚[-QВsl8HZ!gpEZڻ%PK[(6.*|ޤc;&ިFoaAat8wvDɷp%7)c;6ءiD*F/zkӭ-{Էqz6#jJ25]NQMP{{O'H'TOу̓YI^xKl!+F]z.+}rmn\-3gGB[2 5YtrUȰlNhoKx2+Lit}~E/Z*:z>Uc̸ՀDA2kTMmw>VV6nj HP)Ke瀜Ba ʹ;&M!.3I`Zam"@^(jt]i9Uޝ-N9l>!H*8DDWjzåsSָ! T-]`,= e,]I $Cj .g 'zո` hpJÛ b3]BZUW DnUc /8{ )tĕMZ"k 1q"5tBcb~ IXY"kZ4Lm@~u~i=V1yp4"`) le4uoTcV e-;[ 2zr+nK< Kq~*WͻET՛j*Vڦx~)S+#A&;#^/IaM) E\}0a-#TH}Hr#cjͳ#9 |c#<&|e&ܒb/ mTPUW@St wE釨$w ~aBPQ}B'Nٚ;:~GNiiVZiߘYvez׶6^tQ]ͮ:zlʗ'1!o?y09̀%dϔthSahȍo3v+6r}ђ,S-ٜ&ÿ3ʽ&~{rI{e ](ZP@G_2 7F 2tpFb{Fy8j7T}T"Qe+ߦD5xb:⥤UsB#a- Ajo/`?6W] }0T/6,ÈJ:|WdHT)5:<"2_fE+*OSאD{_4B8ĥ襁=oqfDaUxSs>z^KLW;~5fۃ}I9HߴĬgmen[}=l=˯'|^!W4!%򻬣/LBxvXשt x=MĽ;.z۴nSm mϕvG54zr NYEc 69Ҽ@]: PvlQױu_<鿔pXf9t{.Ue6uI `Fqd.䫯~uw1mO(ʒm ke}L^o̓*,@$'#,CZ0`[H0L)(k>"6̚.=՟~}юWV<Ľ =t#!FϡM5 <d-&BlS ڱrIe8FJFS' Z9)x]+$#m )(MWPƴ[Am3pʀ(Bı0/qj^?_ܷS/C`CRٕK ^$RţFsyU=?x,/` *FrK؏݀&-ȆUv%b|.> H"j=عEsOj%?C֢-:)yoPY!jNKjgW6}cӆID}o]5/Vv$,5ϥFwsfdSZ1i:ͩ[/6{8񱢎K!JyUk'^.dTq61tXQL@Q4_%m&UnZe*dqK-nx=bMng7mC{P~`ȯ< hD ]w w{?Φ󢰆6MT!XGK#B.o$42wL6,MdDQ驜Y{͜Z fJ- QJ(ӔFuQxuT(W#oLH)~WxD>]__)|TZlU 6E{Ny~S-ktW!ήЦ^vm@ڼxi)WJt dER BhJ!StD d㱨GnLslA:>:I#ѩGӻa04D  5+uM$'{7+r\W䬓١ FQ+rАMPjÑ;JHfW|@b=34wʭJpJkRzN&fm2^ eKggW/0 5KQCd kYV% 6 >#f5_ێT5pz'HniңkP/^E[KbSݶpJ]Bbmxm \ĭӓŽp_J91V$b]ƹ~a ^Hdv}S4eCfL ]fS"MjH^0ݹ# "($WC^0cMV8$.{>*a;yd:j|hܪY/G'HF2îqoLWruR][_uؓRlo [4ynvce:7l)m"ĂV9\-& rTXFm"4v~jxϩκBe֞UUdeqisS`g ;7 JW Ѣ Rp)uClŞkT4:AGXY=|#Tr#D6p¼(oM2k#P|N6y=dS{b VIѣ?o۴8μ9Nwݬ|s_PF9 խ'gl]iyI%Z[Q]n^ +qFĚD[Ѳf.3W;50J`E9oX9?pj x%9>u0S ҧiæ AIVa^< Ļh% tIJdo(uQNX,EIJSJmD %-e75EPS](krYةbO\Oou{؞ļ; cXWe@T5rlMshۿTqMKl&w{W%Ѝurq(e="ˮC=YuxE+)7\[lItR\)WTz_5 K4Oo٭V蠮+Y'e: |0rmVղ8c'e se1mח3"grߒkwR^# 5³ASgbMfwwRȾn- 8{W3*Egp2\>nCܔVЇ"QFj _sZ0Kz?EP\F%Bj0-pb H#8"W{TP޴e3TGTy%RFIMA)jOȻ^FC)vym'QI)mzf + P_vOrE+ci%~jiR@$z[cY&!A|-%)C ݔ8xQD&u6\|Uod? 3ؐS[qXVݧ  k*q.R@ Ib}-fꐎt*{ݜȗ.9Ռ\VʰSҎT<@ dbyUe{NG4轾P0Ь%o GA\v38G!.ah||hCsg]^ ưN_e7kSQ;ɱiux^Ř}-GtOf'($Y $SZCID w߉U1S@'ͷFy9zY7Znz3ЭWRCLb!qjZqWk\MZ"+1%S &dY9ڋA^X<934IXΠrpP2O[qN'E)uL3Gyuո"-nJd}Ö%>OϰiMl9żwQU-6#eYiZqlZq(iᯊS:T\ԲCĜأI_N cU7ae:f;>tXå诈_P3/ dJICu>QZ 1m(Q3%xi4LCFec82,JYU$'{;<|KyB V(=7bE$9}&]~>8W_4g+b$ !F/r~g&7X,c8r!,r{Nj{~O+Ifq $|s4_x@iy49P7Ng{y=0v݇/&n\#̓,J9sٗ:i2)YmA&#@1GXd>tOoTu &X2a# ʌDl氞& |nHDM8RDT7 8%S!6%L`` %ЗY4 n4u%#}Ѝ%,CVN٥p˳e+0SxRdl4Zě ube#]zFܓrk$:CC 2TT(H Qh8S E]r!cp+Qoy,ttmvsļ3R\ gO.Ggg?p}F]/<̼"'~4:}SDܼ҈>x!WcxyGr ^(:^-Sqd0'i2Hz ꉎ?OR9:=|S羇ەGk4vv%MZ^Wmw;KH7;ۯuEEW.QxNrOv⁶/ EmޠY 9 \bX=3*B%\+͌엄Y9A]o"A M?SU U U+$#EfO/)鴮#'dsqP6 ,Ԇ/Lm $`  6a(V,Ms9gck5 al+đdc.jʠSA!v#=Y+(\c -Q"$rGoS:ɝZ;`NtY:WuQA&l (aU+a߯E&FD"ܾAhR]kmPv2tsPс=_ cw(l'ɾY%+@"׏c{195n:{u@#)˰؈ށElAYb; zƺ.)ZH.x#+8A#wgM{y=1“b@_8/O0$ozƄə S_ ;W{MKpJTTw pD R]6wB-K]_~v-ũa[ ˩V"x;=L% jg._dK$R;zvAdIOy̶#&oU[}B8  ևms@g/%ŋewUСaFlP2C8p Y=< 5Ů{8&I\OA[OBŒS>K']e="eAGdmcp;:اQ$uP P6ьt;>T'1y"Rk޵Jp$ч{Ot)Tq9}L@~ySςc_;f!R޺W- (gob l(.{tg tZ7vXg͢pnD#Dؗ&8MZN'ը.l47rε~kɇo%_Z y8SajW^ tv)%cN&9{\i2oIWĢb>\zmiQƝ3+s9֟Ư(.GFve])qSRWEC₍%F3FVnl> /oeU%h^$V,,O%*C%?:Af 8ӹyY7Xꋸ;+Xs\x˰$M;MCmѼѶ]&*GG IWaROR?9ث?`1J8xMIiOfGB'o):oP@4l)]O'FЗ u1ŒHH S1dlX1Bq9$HdZZn~{g3^ tjj7ĨUDwlJ9z9ZH*4 0X񓿋I`oå}wO0L+3h;t:i9) gdPFj5E)SǾ'cE0\3pZN5(@3%ՐJ/u>gMʧT+1|"Qt+52jcpu3W Vx.3\Rb]"i̹;' #22 tQ.ojџHx̙S޿na`3Vov%5^w}68MGIqTq7Nr ssMe`rq?2wSbÖ& i'"1=A`)$4gB:B4_-B3Q+#Ab'z/[":TGK=҉pYܯIw|䉔q@yEǓYsmKN$Qp|ozNP-o;bʄnp^l#πa^y{/z :GT.%cp*\,SSinsQE_aH],p;&N_rmooէVD]~'ĵ ?#_:T:dxW`,JDxO>/wЙp86X .1UiOBbCYE @DQv2v_ G&o/QeDѓ/VV )hEL.{v;.S~*@3 s8c!w6?i+fdz*!]-U&[EyXd3^RyHsRdDe.%JriR "fI )t-*"A[ݐ q&jdCXϠE|`|1UnoR\VC.˔sm+c,ia laTi[w7Aؗ$5B3S+ZdTuZf6Ǔ*m{\S{C?wE^''CJ ZA DG2FY^AwSz` Ys4׉AA!f,C G5$m`œ}?\ un_'yp8RkACXBa L]``LjRaZgaγò7(f$|;HTS# jYw>AKqxam{Wdp2$_)IbmL5/w<&[ )e!Nx7Px50{X %e!JPd5c[ 'g!RհWPUd"Ýf9"94/ 烇&~Vzͻũc]ڻ&^Ю i%zە8k;1VE=x4? Ԛ 9/G"xp*)UA+X’iX0|RWЊBo'Jޚɳ뷓'k%⥒,UY_]=\YwYNbVuZL뷑 1^Or=VxtE0,okR)=GS QM=xZ%We.Xݺk'KbU”H0fxWWUtQ Qǹ,N ,8-B E\1;"eD܋GG㉝9K)*:LFI%1QsPEy۫k8dwFiI%5/iq\TU1R'VTG~l]o aVU 6kн5GԾ|\n^&¸a{rD8D~\4 >Pnk>:cdl&0ШFnh f  ɱ$X-)&rS}6I2C@Hdkn#TXk=ײ^t>VS67_8H:]t!#ДGPyy#}`%YtOJH2 3f<ZN+ZVqZB(F6M~qqBim 1f%W`cr50TIWPPy}b Vm708 O/3\ʫ=bR(~;|H'K~k-k0fFѦ#xaw{8QRf(Ȧ6Wfr _f4uXfT 12Y:M1nxX192BAfk>7;r:sAP!}E><07oR &ir4SЌP[.ZϸEcm˓Ą5P`5{ RK:Ӷd/1g'k @w!xvOO2HʔOB:%jJ.5,ȽUƃϡ䙁uCYXVp@'ĭ&Z,7QM^s6_LN  5y'"t rL$}iYL{65L[d$иghiw btѴ'iO T0BkCx J~ %u,:б-sE T=,& +x -Oe1a,pU{PcF$(L VN D6M)+xp2i,2"E≘ y&=rTy$Yz5%ކ(uE,Asӓmm@O.aT^$O}}QMR變S;EWNfRN*)\RoLV!䉡Hv8߁sJpjQTVx'>rA6ۚ!facf!O$Q @9 s{%}rD'&󙙯+ aމ[-)>D ~ q̊:mآ4ٙ^Yl r:{'gB843CR}iy O{)jG>Y>G̝4d6"maV*r; Qì"p\ u&UYZBc 3M;3-a=߽7j[B~psJp,j@dMd]rޫ(R*N)$wb/.Eĩ :z6>A(\ZEID>@¾3Y( qΓEQu~U9( 2^WR!Zo;}FY2fax\jc*Rl9L}vt7Igm'o<`$M ꘟF&0;0)_CHme+䍰 ƽ]cE^] i:ۀKl0Ώ#䒽C/ZEh"1=pׯ"g[m4zCJɾٽ"' }Wͅ '2kc+f[;6[v{_^DP /}CC4W/l8Jk 0b-չV|8} xd>ZKEp __(=hKЃ# y0; `xƂ)`RSE7RDUPS3,|3֢RIXI%In҄n6]W]L5#ަٟנ;~P <* mZ\ >fXԍJm0Q I}b C7jwIID7:TB_gFTFF o*QYh2FG 6 r؈RoDK=+-ƁMj4z[T[i'>D+Pq)⊪E 2E7TbTg،.aK,gߴk2ltR仌nFw37C j0?`I@(x$^Ӱ%*s%g׍lWr4uLblBW}|"aHHGzxP7D=)i%҂t:ô#,;G&Py*6oEy}cz ?dS~yMc6*Y&t'mO0,#goy:,V?Ӥ"J$6u&f{̅oIh_ I>ΊC`%ӂdd\QchB.b= SD1[v1v ի)ѹjei2G"~l33suC/B@=-rɵhQ۾L) X;YnnҔ~|]eH;ƓpL}K: Ag-Nf&\:5eD&C !k.Bz7׈3QPgO;]A˸%-fhPĥ&Qrqv+%RjN 1E&WRԬӹHCz,XG̷(kП4<;^5tj؍nw05jDKtTU`$]svh]O;lZv=?1j\ +;1naیS./krZܼ=eW(*ywvNݝV'ϛNB\1R}"lYsdila'la'3O4<]%(|Kʙ,k55AxK\L$?`6a MMxev mu9'GGtqr9nswo.8JfgvVhrqr(GqTjazk(nf^q4o-'j˳&RݍuYp߾+ala9Dc>=Ysͳɺᗙ;Y7YSJZV 'VK-GٳmG] 6GF^ރIk*t"^Nٸq-NiadZC>n ] ?Y2lg4H|XܤzpGkEuƟA-ؾ=kෙUQ"i1{8vd߽LZv97 o?_M~vίpe<[`:9ykW͏םC䮧֒MWmumꮫ+&bn кu4 <<7>6fTW희kC㻇w0v rjOn;X07U0HU}¡P5a^&8Nmt~b. \r0{Z@HYFE3]犵),a0戅q]TEB]isN]f:f<^Td8tϥ +PuJC:*fo{=G@2%xs =%% eE e\ i e@B5T+*$$ǧx%%e&&jD'@T((ŗg+iZCM v,.N-*,QpS iV(WHT0OLA@((O!?)+5$&Ԝ4~r;fLNPHx{s wpoͨ]hx{3 X&wp$dM*jXPYaťS`WZTZ.R?9M}6͓ٶOfcJ' xt h4}:`8[BJ4̰gG F?뛷7w`nx5Ň{av|gl,,xF|ETU@^pđH8"姏Tfs'{Nd2Y:O@b@ux%  _R=Z x}pO'%Y`?_OǜV"+9g2UjsR_ա*y*Bw<: (O,` GP<I~ㄍ=خ,*,LU2x$Ȣnqg_ 軲T @6s.V<&1[ `[!׉Hc}3ۯDW?&Y,׬-u` M;ym)A\e6 (q f%Bތf!.X d(9W%,@C.e m<vpQ+ yGk@ec:Hx9r\(>CG&,stie4cvS s@@Rd5cj`OP-^ʼnۢQ*۝jeQ6&Zp pNδkEAy7 :Id{a O`pD nvF)C:]L_¾=$_%OiI;X _@dqQ X+B!` # p0Z P5ͼS4EN$ Zi =?AL-PEK=w1VN1Dkk*(5,䊥av#Is!l?ة 4L( ϣ /A:J%A*4 Jg /e!MO[C`Ks 97d&dndZM|0+$"$٤cX'}htu7jQBJ*QCh~?@h%[gf?EKU5sZ(X~4rj)7U2Ws[jLG_pѺijNT< ?[;Zj(OI?@d 2J8 qr =6F8ܰtd[ar)5DO70A!ACā\~d=!jU8@4ʄ40@]5\7QiS&UBJ= in nr$HoT|YJ=昂HE͔w` GԲUuvC󯛣R&,~D<=%P瀕A%XCge@Λ/tnM1HiZTp)[}jW *ŰF썩>wVp,h#uخe=Xj5.9vF5t?&kY3mUmr¾fҾu4h-Khif@BCq+~?DVu<@Iwkb=Ad7[JãУވBLbAioGeCap|UHTU|ĸ `^}Pe-aSl > *tSvʡcXeAbj?G7/B*Mހ0 C1ӄf4"dlQa; zgbVN4] s0= rP:Rcjax_H$we`gk0vҊG.?fьxggk!8g;K[!&*<5A죡ӎ.8׹\ְ݋]av0:(%jK~8o?xn A G0BSV et&>PrZXNo(4k |ߙA\6# ԓ\iQb>vL{a[m$p(`%|lHZME16|bƄ߹GR]6Wme=Qy/,yXzL!!Mz!]9WC$ fL\MBT6XE3yzi@>鐞m]dY B[Z"y5pXpi:#*&Lw2zK鋊Z=>:ʎ>ǠZ _0ĺ)bd_l,G&=O[ iMf"v r/V&HruK&VU% L UgM/tavQB ,+X]%up5,?D/kاy2  cΑYI םUFёwm~7g=*N"iU +En2ںi%8ozξukº5 -/KCx2+LpA\|aIԅA58.m]iZֽ},Dg)mbT{ح^I j;J{k 1&"-blqofd.kX+fO۫QRʽ-Rk3v5+֐T2{7a*5s=X٠~9nBK0x Dui+jpp$UxQMK1DsOҊjR*걬KA6 ٬R C_O&3M^f柗KnOHpl\EN8Pff< FOË : 7 *rHHNdS#rK8"GY(AdDzBeELw]=ΖR O0ƬB SV4&֞_W].2`="Y-Mq+c>x(k˱-(d1:Z/r[ƭ!фGE4~7ŷeAƢXKÀfṪZ &lxkʽa cAwf3,JlxVoU TeWBPRtic!*|nUȪg[wm" q,HpD8g80o?C*,v7_ׇ3|nvۡ\,\8eQ'Bp\Y pjxgA4)+GvFS@zYٙPr(]{C}2t_$O2wC3C[2eۡdl:xL I\F;,CsJ Œm]-ZuI*EDze NM`GlLpYrfU)sX?%lV課* Z:jЮ~LkbIr~R&m+!j,ۥ+e]/ЏXXu]T5rڒ,3&d;-Zt_)M]>㴱;hkܱEmC=B3މ id/O5o F@Q<42uEve&(2jKLZ- l^PCҐC^RqCIxdw15R^id(yEUw&TdP˥R @*AcWd52J٫ OЊ(?|̌(h[tp GKSy:u)%&c7*A9&[9 ~X3͸HV'9rZ4+*+d\x;GRI eLj\9Lᡕ"&3iA;i{v ^EUR&$< X |?M7dr%#ipj)g팷΅>^ɻgțÉB\k:yyD=.l,%Sd$qkꖌ˳M$_C3z3H=G$+;-NۢxSawɸ6p=96xJ ,?j4Fΰr%c7'%dQ]:vr~8}. .Hl\ C:ڮi\(9v+|; Z9"b?-kËX½4;;L+[L4[\kwe+ذcg'+mYFE XaxUms6mP nb8 f2#lG27߻+&L쳻֭:\itƒ:AWK#[7oΡo8H}2gVhՀP͵_PL+,tY\Y ogY_.Yu3֋Y~qWڡq& HϜ :1ʍ kmXbDֈYiSIKXDK=̋͢hp7LM9"ksUp`v'0s8q`m p<:M 㿘v^x{ SX_K=(7,3<<3/%\/c"D̍S39奤)x9ģRJgQ1y#7yx=HR/Î!3$(-19 V ~&W5SЊ/R\\ ) y%% Y+ 2M2]tPv>Hkqj v]y)\\@23 &m_::x9\93-/%5M!>'%=(%?475$<3/%<>K_KY|"D]50M,)QLNU)J,2s3ss&UxC?'a1&j=4$}OҢTļ" ;..̼ԢDQR 02SS*| #R}Ӌjt43R4SK`[idh"pHKRLf^*QL htvx9s:fǂ ;..̼ҔTϼԢT̜"}Tɷw:xUmoFU \~i*oENba{]E1v9$*y晙yƍS&,A xpJA AFT(Ԫ] ??s+m. s0¥.e"d\trU8LWB$cOq#̬ô4"aXę"&< `(3r9bs Ty% I, ЈF"(]e7v!,r8vM@Ivk42FAXm"gn@Wt!nz]!HstJj8Bf1SLMSȊkR$%1S]F(H3C=L.~NTtA{2p >{3cƣ] L#.1h}p-xJO}I|_0 T%w`fEcES\)/ov!OayW OH~ lz' ,Ƥ=Q^F׸{o'w c~O)MأC.'|% FMɸdʥ/Ҝe:e/'<٣G*y})°vctL ?p.W2~g^`Ub{,7:wɗBxk4ex{+Rx +_pg^IjzjdVdf,: ,x{)|VxCcAwf>˰RK)MIU+I-JKLNu*II-G\lY+u4xUMo1M$4i)DYG;˺26eiҔӂ?޼y3ʲ\b]!O6YvťE]ҫ[.Acm3ɖ lK ZU\./_4j{'Kj .ha2Dp%ڒ"P"e78i1[.+M,[UpF4i3iuZQJ >- :=^SD(hrvnxi)?_ gGZ(Z8< H}!il22R~u 8KJ& m0FЮ %pØ~y_ף"FiR?ޤkף+V/TjW!V>ftV 8AENxcC,c#}6ݕ|rz涙(,g6њQTZ=]Ps^~qXvUG/n\3lVh CZ9<Uǡ]`k] / k/4M),^@+p:kbYe|oF0[`OO0&ƗhZ8^9rnC L\ _%AirA{6 )zoORD>{o4"1?}~yQœN33G$Vuzp+uy0Zw=G_N!K"MP9'?+PH<gWd\xZmsF>Ra^&{w .ۢ\)Dh8IRtHH2~-o4=˴n44@M{7tUt6k ѩ;ȝ%Ĕ,Dnܩ^'u4-"/ h*呋!SQJGz @5@i8ֱ X ni*PYhZh9"z6N x&I%i39BHvQWGt)E'7Rtס'iR/N::HL[Q/BpcwD3KqL?0m3/cr#(olJ|}ۣ?hkOTsGGҵ UtLS:!c]ء8˰I: "+_bo}ahvz+FxB ɪ6KovL3u' bU=(_&[wG?sXxuC7Ѹwqvt3tcsƢޒ3C#83@S9g%h @4YOXޜB4i@"9GY_ Rt3E/Y3AuI;tMu:JMJAxjASbZv΂贳Z'mx[i_;}z~x_Ur^l-;>f:1Kz.^e١=pMË:lE-Vs$@1v1ZTm1>gv6AJxoW ~ntIⵁ\PҤXO;zK߽~}cuia켥Ns;%BKH@u?JQH_`A79ׁײ!#>U5:I?UgR9v8«T/jU^L^]y`-&z`0]B?C+"8(#QlY+7aCM,EF*FXU-Bo"2"+Y㤚qHw;>_h>LCu7Y*BmēD<C\ )zf6Z.t}YvZ0?mJxg3[Qcw;Nf Mg\c0f(~"šZ٧櫣:ɔr7 4BhfOCT,QerI11N йu!8NzPK^F5i2)TXhq;kb킗%b.ڪvG {C`Ny, 'ƢgEG%YyABfZLv~hfɴp1=3,x_uJ[\_V̪%}s߱&AR1V-ĈW-7ظۘGQn j?Q#Xj,{wXVrX"<)s㴰Z G FFYHcnSqN(XNJ"O) sWWٌtY^~TLM*ee/FR{0~9sSR"910S`"κ\ҘL4k6\6I׻zY\(|/PD^n('bn҉U{)R|YoG߷JfW ō~B˶MEbg@@"df# s8$l ]8p Ge1_P,l]4,{"D+*wx!9ؤW*tt@_f4!In< Jp.x;9-mˮNe/qȓYC[)Kly_ݩ3rtY/ #e{J#<%9P82f6u;vgTr(E瘫(;[|=I^v\Y1F-Vn 2lpݚE#}^ƽǗѷZK  M/h)maMe;*`f r.K4w2p, n8SH7Nи\S1~l![R$@%yL #YB mI>Jf&9p{ag.ijoR8<-Ǖh']l;_4ȶzBE^q1@r'XFkz{rg3:cIjPIu#d0('/-&+ jXЏ\hUΪ`dpeT2e9hf3Li -P#Дc^#Q 60Jn|?cB쫍}Cٗ©bw;ܵ>*& N=~"m$}P{|Y1Y(dF(9G_.V;jǺ8PLgŲDUNp; Yg7@θݎ٢)G$?k$58cQ(0c"$ $ U]C"Y!P}Jn7x{s6fCR.Nx{ys#Uܚny)%yzv\ʙy9) 6ޙ% $5>p^IjQZbrSifNJjX|,2%X#6ݔz!xm=N@ dtVS4FX #gN] @9bd kn{8laKksJ,OfW+3f!I-8V{P .mLpEΑ=@뒴ɾc^ mI۪Gxد.3~G-lS/6•pI?xK8 #IF?EG`?à$oxuR=n0ܡkIZ"J@T(ASeĕ#QEн*=@ 4DX~sq{0δzEf\|ͣb<~|&/pD iQ"AL72`a[esHULh h <,rqH®|rwx: wSl:pmQjK#cҁ0ڲ0|U5pF9FѴZyܫ2+i_s{N+FmNt}Us7% %k6v}wWޯLx}{d&fɞƛ{y mL?1 +,xeRN0`aabC'uQIPTM% 3r 16BP1| 4 V޻wܪyp+b4'z~PgURj]-l7+Ic':ZcM4Vϔ7gIpN֮Hc($B/n1HYH'ᤫɩJւp|QkmgړJ!-Sc  K1jM.nkdP#mRxpNY\dBD 3@eFԂ0)eN{J;,(zQ#-!-ЕVCy!Z:y%{[ ^sȣmH/iNldIʺ G^{E͍,A=73 ^}M ~Jm()]cwfW{w݃r]8\xٝ"$?%e(x;sg [~i^JbIf~^dkYԢT̜͉,zGxk4k93cAwf^*0sl xVmoG*4}=ֱDQBUB(Z`t3k 6/;;L^l^a$BY?ߴOwU덭mx}IuwJ?DR~Eep%KxwUɛ@о_ %<0qT yow¬/#"e`lYϨ)&0'cMz WGe"!u0w;4ƐlH3hhBLehͥ@g5-/) A'70_jjx &$Th6TըrG4owm b>LOzr12{k?&Q G 1.qzy2]qesU>XxՉ/T&^Xjj5q iOZ,*_AͱF^&BFզhF-%Yܜna]U9 u x-Xl5}'qoK# x[,Dl7rf^rNiJąbrkxks93*/ɾ$bu' ;#착nIn+kfV%~Nd_FVq;ЋD ^|DJS}/ xZpym] Nj' ~z"sp_Dm/?'WBˣ-Fo0P)LU("O&r.-x9M2ځUODH_:QFrD c_MWDP&$hSZ^pE8LDWI<8SR 4>LalSVd;D UY %"MD$^$Cɲcr%!{9.흻X ÷h.:cтRI(y?oG2GI_N#!9-Oiʣo1`9DǝfjP 3e0xG9F: 4' 8)a"vv}]z@N(# ظ0A5#Z`t1 vjXI`ӚlT M뙲 Vݠ#kΒȔh*sw1+vHcEG٤/\cDTIf:6ίH'NU'ZtU88w~P4`xa(F3u②ِ0Xmj ߛ9t=,JR5!y.]auґ R*&*g"=M9ƨoR.Yv<㕨P~rrYt"PW V g,\ >dOaĒ'8+{CfjdNƅq+ȁ02ωw"{ ӱy4|4M-* s6NnӅ78Jc璤";ƺ塽Kp Hv-J#Ȑ`bu@ep6ȭY=@QFei J_c⒵aNFѲ6HO2IV Y!n#*:,,yYF>>ujBkV2Kju}6EoY7Bj+r\5pȔ^9=Kʙ]°Nw=U.wV$~q3MnG%A:`n9~Kc+7bJcr-qP)̊ԋCj)< W/'UtY7C/KzH2E_KkI%)7"\1fPCx[h+nVD܂'E "ls8\XEMNqQ~mKhۇmJ u.[F-QHD"kSqe l%['ygR!6Y7_;f G?vĚn,uY^"!7jH73Hb?A 9Se1JA+ܴQFi5#Ѧo$V"~ Fit.f2==H^b1Hx`R 'Jѫx.TDdfWԧ xs.;4Ln ;|Ņ0ٚV^~//w?úKV*{Cw;±5uj,NWG@lX;l;7,XTIBڂǂ}7S:"@gGI9y lDH($ ME3g\9k!]F ΜܸGUlr _]ﲠߛTԙ⍹݂~'3mhӧpcQ>7F_`繠h\ҡl|`djVv` Խ^^wh+t$*<^ٜBQ]z\lGPc_, jdbF b\"@j@$di&BSI:Wy;fc@}p?:r˫]7o?ppŋߓT/?F2Gw2NWaSy&8Tݜ b ja9n_{:*Xj"I喲IH ;#훟Q,a$3< v9͸r~?$޷ĚfNefٱZ^vk_fcϰ{|]F:(b[sc]~ѯ6mtDC{eo:]9N;.z`{B:= (r}]VTj!;1}d:)hggcuSZ.LpCT"΂ظ@s&_:9{tQ,nnL}fꎣi -i$N$>Β OI_rX.9~qW,KsW(8`I&ffٴs/,e1eZyy.j[C*$jp_ylj WCu|5h_ {MQs{desPcWRfaA>!їYV4h+pV{KřQ*%G8C]黋^(7&%X=>zSxڔWb]Ty#wnk9*m %X]),,y!%Ub0 ݧ̓DYLXvSEK7X"V&L^ER!q^GZ:c ⇕֭19#YwtcsRN]{w1)XOvmx.ˇn=߹7ZYzp$301N2iR3NB;[S@7ۗV=?2?v.uL)T P9!u:a!=̟Í~BE 6exC7_g^IjzjffyH/"Icbvvw,%ǧࠔR[陒WZ[Z_Pk=@BnT ~*FE%Ey IYξ%)~)j9: 99%C5TAQ%eǣrFr`P0x[ad  ҼĒ< ;.̼ҔTǂ}y9_% x3ڪ[Wd7 i[IO0OҽYS8Iwi8b%^x!^R~2Η^*d^&qG[$6C s؋c/GY&=?[|Grml00{i.xs>|4OInf#q,"A3Er$$w`Q2T\ gQLH\-FQw/L Ɩl*1"<8b2]9ŽHRDHy*9kw"+o0&dKNX2"1b" o/Dػ] >0HzdTlzq~#듷0w|l V!^ .N}ZUzpv]Z\ їHDkx<&1{af@hԻ b_@'|C$^Z'[Np,$%(1T;#8LnA'l{bE'xgH&F >J!h-go^eA&ql[?e6_|oa >IЋ@9LFcdM-kȰ[J0$zFE_exywl8Y[z>xB>qҬ.c $Jُ.Aٱ~~ny4xQ .m8[[J1{{Liwsb;`fȌRЫ1?] 2-eh2%e?KP^\g|9P@ b~3 ;#qcZ \ `ArW#iEre>2mcߘgVe-߬129K3hdޥlz"(:{ B@4Od_FC04Y".#H\cʎ7# M=Cx#sMk}lC]i|S*}.Q#'^לx@~HDg=h2^|ic/c:(VR4 gJ ѽBl"`3}yhWKm!HX谾xf68n+"@IՒwDsxCЯCˣ c^np:3 xD-%HLVzO{ACq}X8oM$Qpủ3;7]Vʬ;Z66 F"#:0EQMQ&&Hlf}8@[uW8YaiLE`7Щ !i% ˱0]gϻ;[U3m|1|yA?t~4@ h p0t`0~熏aO&hΓH0s@}*G2-I@|1yW]l1lϠyZYd$-j*YzCS/֏sM؃>y1rO˥:]q 0q& y\0ݽL<ہ>@mBF̴h\FpBf&:VPijfFmJX Qgq1J3eZ VhqO6|0 i=%g_TĂv ~TXtE /+aky|=m;l:{QT<RjUD8ZdS>ޖd ^k\wӍj 8HG Kymm\nD*"? Uz3+^@M+ ߺ?]bt*kToh|^cmG\^cvUt}2H?R! =Te8^4j9HСDPm y&7fŹL8iͳb)FI櫃L۱[7~nVom`X*,\$COxVMlEժt4j!?-kiUuvH$iPhn)U813+ >A/Rz*)7$ 7.rqRUŠy}<6ݹ ,pX =:# '{!e"&]vi8y09t8sj m:Sւ K\tM^gpɕn0z3ιFȔU8{lt>=^3qraDtAE BTiMa>\daKYBDP+Ʀ⤊>U\8ö=C̀]E9RVqHQ_vz+cꌫ:eKP'dA V \)ђ |R j mO%{$ jX;υNXdV9 0Mh!?5}g[fc(>T;}N l7!^lYb}_ W0E/>ʴ~Akgv~z SdK|<3#LYM.Ъ^:rt]nBwF ^ $2uCXr=!5b?J2\fpՠVTZE@A|8@2/J%0vT,H )2qDrh bM AZC ^\hVE78tX>=9#iƶZ*ۛH^>6svLpM5Ierz|nJrAYm "yKx\T\h.^ː6y>cmTtR}IIoږcq%$m7&n1{L=+Ӵm14)2wg|mǂCXQ:HrTo\2TRY3{: XQ^kCY#~Ky1mo)! s Fȴuade$DC'~6x_s%TFkfjqRLE4g$ z QoRQ+:Y<=dt~~P?GёRvlPz-YΎ$Wֿ;oբ'|dьYm-Lj(i/m;]0ܠ?O5wVWgO_xH~rJ?\?gֻICLW(Ήz>8W._McMM?;ъ4oCqU_d+"kt 6xSm|+aXT`5[&ٔeoQxn@UVF@U*HQT QЦ7Em.Jm5CkE c#tc}l0$za;9(||q2uj9X#,E8.Ak"֛S&}yóEbyyبTuE{mB}.=jHRfVb> K@SSΌkQȆQH^Qm*2=Q\Db\c˂|taC|x󃢤$JT-nm`,hhɸ"3S҇&WkZܪ5anQXve\& pb$ep DAS놡Jc)Q|pfte ʌbD,Ja;te G-c<48% i?sу#VM: /nGțٌ?8=t*B 3ٻn!2WsUk69:@L* ;mSߦuL="*xPNaCQYԾs n(v|3>^ZQNBt \>N%x]zPb Kp}O*s S'}4$d,R ~2j|%Bcɨk={SVݩsI$x.ClL,bJ x]1 1E9-L"hN$;0&a6k#]DzkЩ N0n8sdlR|lS~l_rjcvݳ¡f . 5g=JYӃZN8ix[qDbSrxUMo@=ۿbJ/!g I(JHu acͲi(aIZrcfg{fL7\i GsV'eyEuFTg*3rUh٩&Jc9iB&b]M(dFM\p80-@9S@UUt CuM ɽQ+m|"aSg/0"_e $(IE,qg"*VC =^u B17j(dvv.ʶLKIjkhfLBJ\pe+jaaXLQ*ٙ9i*!z0ܑEe_jb&A[jIzq5P. 3m_gE؍v:ShDZQQ ڱȺS%Nk\ @\B_P[;%<%GDŽ1g~f6j/ e$^c/ql4G[(d7b맆* J_ܻ+톼ugFC ooZ; fio5,ݺ)ٱ`;o󌬽k,ϰ\fK$M ^v׍|/ 7<8x[ϷoB>O~bJf^ƚlAx[ɷofֳ3 xUoFb\ɥUՀ8$8@)Z1vD}Qݩ>D1k̛7ovÐVZ7lG[~>"uiH"%%J%ANsR6iBt):Kzw4r[:% 3:a*Ra.4*U6F#[.I(r;޸5s dRkd'%͙'#˵X>qA^+JDR 亲mIiWWvSzae-ߔnJ#l@Z+L(2Gk$%{6%x)a03a]Α#)0gy^MINwh-GN4{Jњ*9Tۥ74Z|.MVdcoyu*)F# {x| !h;͸fԏ\eVHU2Xa%0rg;aBA ݐ },.6iN3!|;=[#{lWvzx)*8 EhDv1E5l}r_Bt]2L4g l. u1$&pƆe074E{)4o46~ 6[oJi]#VtJ!>Ȓ_Hk\?Qtw0܅ ˓,s:el /[`؃(”IBu a`:s-6pUBʿr|BUVo"{ϟ#Ǘu!\x[ܬ3TY~fB|QjqfUjpnbNgnbz*W5nIegwĒ|k.pk. 8&PCkTOn+MSj.{NxU`µ\:58U C?oR&{+(*ehr!t((+yFZ)gT*(&f**$*$T*)dED=TW& ~߳NJM5,RmKMMIM$]έ)O0MíGU:x9G_K=(371=u#:fV0k~f9(ȢeZeox;msџ8iQu*ΘzsJq9I @l};@PC?T޾ [.GjalCO6\4ZcqJ)FjoTKDH%mOJTUSDIsh7[T'Pe /L̢X ]i.LrꔀVfh=[TQ:rHbhE:2T )r.3 _`DV&2cq@\EL2)|[ A}:2T4wqlBHy* ZVĠ WBPD _ &cq':uF,?ݼx{BL*Z(`[)\_ ~i?Rxp1˛p?{wwۛEGD$x@321ř6P,{ &dt"~|HďU2'9䉈f"Qy[l<wǰ^mW~=_ޥQ8xyݟ-ލz(Q( u(N4w`43kv)? [0k栦8x-p!|sZo~}?eg(1Ϡl _j`|`E{"#Mw/}YB4-O,m d4~i##4T%R?Gr#S!WЀ!kHT(MF-hW)~qb@SQ Ϣy+ 5cPi lSb \7VXg`Pwv3%⚅/ *LFJRh4ؿCܼ潊qqo6*1 u8PZuZ֫:f,:P"Cv$ܞNSnxŠg?^ˢO"nS$=1εw=g/Aʼ"Y#F˺+Kn2!U u > z7ËBqn7S LUa(Lղ1~DO:2k T)JbfpC +KG2:;A g5ꛘDDК6<b`(mnuCA]ūsB)ZS({?c䉍%WEyQr$9fuP 2x"ĕ ?l-NhE>. > =Lʐ<GmnK$n3tGFwcooCp8W Rnʼcw4{mz쵞|z(yBb HoV蔸QKxW),I^A q+@6f!hm_C 'E% 3CiӘ]AéMӎs| He.`*!M;1נ$R[ALL@!y`al'>(sQCV(q#.h=!}v~򧜬k =P:ăhd#r2HtYUiOO*̛S4ȇlv#~s l]㕑WEPM2U%{ʳC#ߺv3oXl AYXÒ?!V8Ly]g4Fš>Ќ&`kmavy&)M+f2s-3T"``dOۯ[})Xl 5(C* 'D0}%ï> .kC?\C1# OPkC&66xbǒ9ڑ$U {.mֈ .jGØcP̻qa[=(-\sO"7EC4T% 8* PtvbL8:M碹j[TIh]Խf%{8EnQ-qiO„jbT?ɠvlK) =kI8IE|m-/>ł=.YleaEq3c!H$%W.))x\@~bXQvR%PRZ*ހf*f:[Ρs `8HyTޅ'V#`-ũUU-FF+jdK.q?Hny5thj铆ut5taiU5"x'V2RQXL([[{28f\\ ` 2s݊S%ڢpsBHQv5F({.4hQ<@szVw_]}DnWWfhC~*jL7n`fI>-& 94QC@|lAe:KohB1C-%yj6$Ta= y r6Vw^FtkG-Ғ=/MzGP,/& M ĔSisb+Yqiur%gPG@Vۆck#<3l+2D17C:ҋd1;t6[]d]zF': U\G<)L15$Xhw8PʫɓvG:(,?f_n{2Nh XᲉf<#acRHI^ui:r:xVIU l>΁8 6bAi8yNt+:.gXSU"cBġ@y]m 䶞h=("/- j{*Z+ Z5yv*yh];jT WL{ 2x/O Sab^dlة||EÑAn*_龜uqm]\>PP3O)^yO V"a+.V*Jlz J'݃yֲt@~iCILhTޡѣ/wwg+ e޹0m(;G(W1? )4OkueO ֎4Tq{.9˺w^}<k|u n { G ^];|XjqDEjq^3 _.a.> cR+L1E7L9BsnWE{ &P7WCJ`-!Xfuâo8FY}!VYM(s})7Zi[tKh5Abhۣ/9^UߨzEBY%o@=Y59^9ƪ8QD=;2y*^]+yRwLC"E9*EҐhp{>na]'X؏Jk?;p9 };p2 *U͂|c7SxY| Cb;#_TPoM-LiFJЌǍG>Xaږ)AAL-%~8~B2G2Nl*+ȞdEY?y+ѴM8LXS/c>'ExuQ7-vG,{E(Qp*u jP3kmy8\7|3_Gʦs\a>TGx}TjA&^TMCD,114FAU$D4evR$>@Y A x7B s=;w6ϳLIjόrDTюB ! \Jԫa\CZt+9]r/ݐ*!ܜs_ %=m٫y(P)넓#ݬFkJ [! $K߲ !*B9*NïJINC2|{a|q$I@l\J kcpk8}pLQ{&qN^vn8GFX&廬 1+Bխ̰2S¤!05!Ӹ;Xiw0J+-U1+xfZ4"IM.P&!7OƱ`Esi[y(97GJ& Pt@ub[@Ţihr4r/֤ق*#maFܼ"92EB,-KܔbXZuuVƌ<9֒{jL1ىVîJdW,b0Rnc~dTKKM;^@'k'+Pvqvh%[GctCB8"-`j5fw<0X+0"^8p(@xUo@i b),IGRVU6 Q9>t|gP( bڑvo XXY}o=nʳÌNƏںS!Fڣ~yA<2Ch-CA"ϳ +\NhO~p7V\ 1Ji<ܖ*KU+.sT'X( z=:h 8dXۅC\T$ƨ5(mb9TbhSŤ\Tj4f 6SxTn1=_1*7"I(jR.î+^$;cy̘G]7*O vSi4S;Vxo-fO;c"rXu5آ 2hg# Ýjꠥѯ(C `md-G`<^YI-xrVc BPz2DrQV7U#ԫR i@\\4p}4_ /W[p[PS4j0"5qu0.H^ul-+ބtZ3HVq3&qdsHv|L\ &侀*Vѐo [:&[!ނ x=qs J(Ƹuغ )v%s O8Go'Ot*k~O@|H}+MLGeUCK|,){8,FgڳY-?=׀B臧V\sU yr;[Xښ'egQeB:*xz'˰gBø_8n$Ywrۋ9Z%j]xĵkFӿ,'5jxuRQkA4BZa}#1bh-D7nPG^S2鹚fofvl+.J5:Q*:a Pmǯ 0Z-pam&=݅;_=rz גFLs)*nIu7?E>D9B XA{hɽ$++v*aB{Ż!fѣF6NrQ]0o% 3sypT8e7Jb* CH;FtG ϵ3#OE6 j \[ SgB|N!}q$`vg G*>h)6"_~;4s-M¾K!B}%t)ȢD!&ҍ&Q >-4y:&Hx[÷-4/%$3?O/ÎK93/94%U3$(-19թ43'%H]`rv&x=ioȒ)bIGXg-f a@-4%);~ɦ' H$nm_S>*8 w-Q6}IG?79笟ˇ0M6KtѦם, .$#(0ث\8aemk}|7$I\qpOüd٘r(tn3ͳޞbݳC{vqt[~nô|[=]}"؛Iޜ_.^^޿^M`4Kƈa0`R5 9L[F 'I0rcf{,blwU&~ ƛx $Yoì(ima]$i8%W׸:ã,MII7'&fhhviIP6f,N@zZoyE|aߡq7bDX2##>Sޟ~|ウejmW(nZ>jPB6MI ،ӿC>ʀ,Y |Q\?/'hӑu >?o;Ȣ|LiXb,'(p|[26 GqzC-> yHydd1ϡ@QD%!rA7$K4]v!Qq-(?["e?!x?d|r"e@ }FUZKG?')Wy ?v;ɻn-w'7,OI*Q\[UNgIJ,@v'.:eհ/MKWD%BOijb$3I Vu1"/*hY=wKRՔAVc AٮHi꥝S5jP6v`j<b#<`ķxa{3آXN]ر_ф;OazҠ n.J)H-ʵӆi8ڊkj'; e`1}o% Ȁﳏ'}׼<"1ʴn|nN( 1W+<Vύh#orP:}݀*z絎ǼwlGxv^B-}b?07 Ny:nw `|>i}&'oei6Mu矠{ǗXl~nX)sg,-⛔2So(!#k$+V_p7C3"Ķ1揶S*dS\5W-U-oMWK8gٲހ+"& Ϧͧt87^X<Olیߔa(aScENIlj,\ <@3!/n*G q\VC Y( ,x`v4x}gwvV=Yr\ v33y;YyrJ*HZ!ِcYRhX,I!(1+> ?GMiFV*h Ks̏if-ýޑ`]˶ H8o#ʲD<9̢VNv|&]Κoed>;^61`g%e|/<ʿoJ9QC߯&Qϒ<NZZC&#K{ ` \%`'՚,\dE,a6=5l[꼗(EQcX4Qœ[쁾^i5"&)v,ᬒCY8ט鼭;c (XOK͑"sz_(0N啙IkV|+kDަL">u`kѬ#T߳2j Z',U3xAqs=Wv6$Mۦ4KSC&dA mFVBh6E6JN&|T\N5KwFUOkb&G;bH ٌ9<1^Rk_Spȅ ]zJz Q&8i g*MzΪjtvL~W'jtv7+.^XstQ"bsacLs@V)[OCϲf^2)^APЭ*鵌G;TE!oђ{=m!#JEg;AbաLkGSM aH6[n j+(0Ǽl}qٕ$].rע܆F[ΐ"{m|bWH gS&rw@ ()RAu40(gnDFYNd 3-=Ģ  V UԈFvl L]=Ge2؍ ($gYuyoPdO-v Ek \61()677(cŢcx}enȣe[D1i3m0?N+0VNo0)*# g.輞iqS^`X҆ۛ͠eL*4_@YȑқOE+fMK%Df9 {(?U/-0#\P%1Q5S-"1†ϖLFM'ﲤl:cu]ǰP*cxXT l[RCX%A6} oEk*a'G+/mQacu?9.Bs]눲(!dH9o H2Kk|ns\Iomb%`0q^_wZF;HbB'j4AM @Jy ڢoN>|iIc8RJh{-Z3cvf۝O/Ng>`#:0Uj.{@mXVm[UYzM!?w=y8eV͈3[?D0wgIBu7r 3xɦ  omz!(D6,e>u0T:tH]Ys3jQe.%^$ idF Db PD+ wˇ$W>c:&OE<KGo/leD1rS-GG}~6}G<ęRIx(3<"$=ƌ4+JY3iGNJLPo#!ٮ^?6WjUkC@͆BtђpigI5wD^2Փ.@=k6'"ҡl2 ó^2J~aEʢİE/eAQeIjj bi">=jc;?!x|37kT돉ur4,h\}f19o w,LqYdMWk"Ӯ$5%N¹+%vzR$} a0H94,DZ p0r-٭Hk9g^*ۈjJd Z!1~˙S*QiWN c<`lϮGݛ<1Q1?sxr {Z,`2E ^r9FD'4^{ңոM4L>xzc<$܆dehDm%=ܹ_9JC48R?^(R<4lDZ4#YK'/MwTDa0aU^Qb@{WҸv_nwNvy(,0BB푭W&~;ԭD#BA?{ DV Q@tϹȎ{Eց-Rq~@+-tTVמyn8v=/0Wa#]bpeKFvK ZfQ\P-[7R.kJ jN[8sֹ:)Gg0,.BR&L7oE*3RQ3!v=ֺ-bd// 9+{S*d Ѧ+br~ 3RRYH}>Λ'`o7痧ݫK +>JCEGf ~e+ ގYέ[;^:jG޿"NFͪ&A6i.ӹV1Z7.Y]dä-&G51М sDֳ^9dY  NGaRFea]wB`R><̳/7xofAF{sNz%ӲÆ29zd\^*Rٻ߈.e`O)7gPF-l),%ƕag ý;B}{ Pt{Ck%ڠPə5 樆jڔsNxcKS )H\?U=7͈`\Lڿd(ĺeo~ۯ-7a](-*k6NhJRUB$-f97(JʷH;Td)=E@HtLuQ 6sHtjB W~`wm5@cZ,ĩ;Rd09OƉzlӑQ& 1ǰ0EpSԁ]8uq%WA0,etCఄfX%mjUd +rOBEesJ@(o[y9PȐ{8alUqִD[34u{dq-W3=^򈫛9ՙ^b KdF#3&e>zoqBrc+>9P=-sM*,!ڻ9a5=3E!W;:f4Vk'dr:Ki*΁RFtbkse(X^!%˨E10nȻk,e^3cP5vA܌6j=?UjfųCP/uViT^7,p!<2j1LrC҈ ,jNk (17aEKֶD Dwur ی&(/nzRPn*i˿Ya*:&B7QTu;4( S-B [p>bh$q37lT: `2AQO-F1eIV,CYF6 9~J+W.;dNf85w(<>X{c; 6o'sQA$& (qrPU 5 6f5j!U* `X~d՛Z=xNXak#;ⰿ4W6:U=9X[ 8ñMNh̜|@)J*+)t c3A\Spަ\~OZωS˅wj{42Kj:jn"M0aE]jAߗ| i0B͒QE(, _V<5Nz+L 3;c/3n%4n+W7jo^rJ4]XxmݚAͻa9T\va؆[.^kBZLp TaVWc,:Vjm_1!L/E1V%7eeGf%5h{—YPUm$";=*a[l"5,e-daG6rxr+?+71[Q0"Y+,V*6F_(ՐVF͕b+VRˌP+Ѩlφ9q8:o+Ǟ5Ůbǖ#V~c5{PX$ɣd]0eYQfy)Z*h둂unJ89w%)'br\ST4K *hK.U8gwePP#֠ tlZ %M`lKI&Ji9KLB_VU)k٠׃g^:O Ɯ-zzVj^^̊*+k (Fl,N>j OdBYʚk~y:'^XQLLlAN[ Jk&$eE΋91|[;r=b?/@ʔ;!aUٔEE$0 bA!,ch02P)PXC(t(PAיyI4C]aj'cGL@%*x|Ei Ƽ0 3|o̩Cx:擙+^q;y%i)g0}N@/xr&ʇ+O -[m'WQHgR0DVZRb$/\QT LZd!T$PgK!AEDj#=]w2?Wl"nYN6Te$:o6}osYfUϐH稰,W)`˸tfj/*}=']^crOOAOwNzp񻨕/-YSVSͽNrk6᣼;>7zqLGAh*W0*E (Gϣ'Zm*uhB_[]|e# }֕hZbcnM4JϖG|08Q;$yxY  Q3T?Sq͌OuTecAHϾm/Nt -FQ(++&Bb)BUTB4@[RfExjXp^UVJ 7mL+yRK3s,/Z> yk)AKn 6(LbڈL*d:UޥhtWeYCa1wn$t^9xMjmۮ q߶iӰ m5Ǻt }͋].0W9GÙ9gNDB8m@roqo=^.aoξa=y2Ye DBP,PlӉ'@OxO\nG(f#n\c}9H-Ɏ&%,ZUkYtԗǹ*G׀gBLNd|\ijӚ.||?mN5 +x{)yCd)ɓ&o2`TDS+/<,3\V!/3ǚKA/l(-3GZss0o&gVefg(h*$@fXPN@IBA7y @-ļ̼`lI_ җWWyɭ(1%ٵgm7pg^M Rx۔.ifҼĒ<}S/ÎK93/94%UƱ;DB&a+I-JKLNu*II-orTYAAar'j e0i&gVgd(*D$(fc!֛48\7T^x{,SH_K=(3$(/1',3u"D =ۀԢTȲb̲̜T"0!5X72?O/ȎKAK%$Պ SrfZ^JjOK%Ie@= Ee) yny%V @TMRi\k x=iSǶ_vIXlN-08T/z5Ҵ\K33#b:3lr@%[M\q050ʓtg\[O$y s8i{{Y*$|R%8 ([<~G|Hp/3qh$O?q=' }^<0 FD N4@ir9M. n(f C1O"aiԛ.A&'a4#(TC)& G/0x#c#q5퍢 %PGp"2 A}*ew\D"F#H&د d.f( Li0a3`I1`:j!h,ޟ|F?GGX ^2h<E&q>듟8;iv:ZwGetGD$XB &33Q(et}$%[Jh $oYIؽ-xd8v^w{ĻNb^.ijq4ggҩ{zzZ˝bMcWb-&TuGq̰a0hw[ h=R5x[5qP>DύkF#h/D>yd b7?-[R)07S e@ʚmhw:"VSH" ңeS]  D6`u߃Oq[Me6I0I:r22rT!k(l8 M=Y*e+/4q="۵@P\)Q4\?T4Cj~]R=4|& )AtQKGA G#]Gp~Q'(קGxqKD _^^h}Ӳ9cz0ږ4M=ζVʦ=]p2d%rX;jeZ_Erx4苿O[$-hY@&5Og`Aqv 1mM*04 8yТܬ>k8,% UܴS8ַ^;@}QF1]r6^v{¯^a \ek4B("iS20\BU,7?Դn|؉~ z~V?KU)@Cq?eǔJm閄|W5mn(9Uf^ ϭoF$E`F\x㊑<}v#{ݼ`d~dyFRs2 ;<h@|8XX'XA0[6 SƸ^*Bu2@Eίu1jZy jB%!Y# Q/~pSw: Q6sj 7t|7Ԭ`5u }-9Lk,0l`7⚺р>83`,r%CMb +J@K"&ZezkYG25eԸha.35CkD >+]~*1XSXX2Tn ۗ!&?}R0}2hL~,Ө3ƆҠON$g|qa4!IVZ 0`i0X+#S ;vTϗF ~ A=mqbUZ7Z%\ A`嬌jK=]"`']#eb"*- u2^mтuj kхC:y ߀B[I taa+O܌b-t~g/L.،{S$6i/tFBG!.fTp'/;qܬD{;q\eF̰'$G9vL6-WwQ0uA{3Hfw2as~%AJ=Z/[v~ pA06hrEμm$eH-Dlr|9߄4D ߓXÿ`nᣒ& HtޭGS >Jaoo%7}tVc\!YcqPN`FHk,Q^&I&!ǘ}2Mk/ 7!h<@n:eM]VL |~H|8y|1Nb hqUaV](]=?m*=xIteFSuN[at'qM~>)O"Bhfsl][oa(;#"gϷ͸؈ޡO>>{fB5.eB:P>+ ˶5lAʼn`r5#[lHbX@8Qt2>biiX&?n&iUf 4/' 24h ɸSZ9t4Wiw6}tQFTpL3:u9ICIf" nkFmʲb L׏e8?Fdv^k6|ݹJPD aW 0,^OD^=)'*#͆QgVЎT\1)K )9qr|62sYPC0em(MCH=5*VZG}U;*QF}3Spf%zT读D 'ϞyY$,/>fbt*"I9iwjb][26a@vT˫L8TvB2sFYy%MM a]oC@ɧ* UõY0Q c7@:,q@TT^*$$f3GQ#D$S2(zPcqC]jz kEiq  h֭x1(Ѩ >aD:pA|,%-騥*A0.!gG7 f,K5289ZyogV }+~ْ-} *.`M^=u+}<ЛUiH2D n[)YrJFgTrQ:)坿4/Ni`xhyKZbE ǜGX;JXEӰrM[v<2t1'(˺{F9N$׏)j_+b_zۀ(î$ #dB'pNyhB.+hDק X] MB!7)4H qPs*0G`dz?͜xV|>]K[(Kr !"d(;x?U97spN :x! mg9{o@T̐-rZ77SVS5UO k,9 F$k(KrԻ靝#v U~2r\$3<6}QF4&LA` ۮiYཷk;$ұi ~ UeΉop^ 4]8_uқam"uJԜ%7KM ״maWͺ~qϢ1K'2>OJMq CzWO |]'c-!,„9]?DԓoXVmZFn~ݦK9ӨyӒ<~uAdJoʾO"|#VH28? ҏo آotDOwhw`!al4zPS(kŐ4zJ6P|C6(!](Y Zрiu]j_ DgV8*QMo@R<9hRVmbKgѢOwfƄmNediegU OM'`/_YpGͻ#hho]ڰqo [M"k''Ÿg9$dhd8y_{Tf8[K~O)9SE˂S29W'##HeXbDqgH:6'̋[kF5N{ 6DU#0QndgQ^!Qzv2eDIͦ1)Av*>&,B5䘯`,>ɲ egyhͺi׶Uxֶ0]\] ԇrN5 #s_IIK!tfa%܃RNZ (ذ! }ߑ{=2X,! wijÊ9V-б gPgSֵ U7yojMR&KoXi T;xם:f: Р2| .|6$ztcX-grϵi[ӂ[e%5Rk9]́R2} (%@?[⽤GO~_NrZe0L2|6%ÎikPşJ$8W96n@R3ﱘ3l`8\-HRz^SMKG-R`[ÎE@':/2^H)yZ<ɇޞV*W}U"L{1Se#ves3OQϏ)ӆ'FcgL[pP?F'#!]Neeȃo8rMѪqZhKv2{x\qLrqWs9{͢Tp ziD+@I|_Y9ᖅO4bX6dHOzz2 2uf[\[iNyRRZlٟ~TE4mUq/􊷦WؗfY2YHI1;TWX/0W7Ryem̼Vʍ7gFկ"K=7:Y}(ҕ ac/N#nٹ5v%XXTncGzOֈ> |v¹4`\nkdncUUU@gЏS,ōi|&Iq_XLh {Ri$|-C]a⺧𝇭{U-m7*̆Wo'-zBFϊZb;C>$j ]%SMYxc|5řy!vCJ"mˢT;/B+5uˏ6#z^AJrx(>ye^Gm- Ph.AjlPr@uQ(Ec*T8̓^єE@)y,qlz]1Q1Iuxtueǃ̣ie.Y/L dѧ)Q1 ?\{|~.f^ttp~  QLQ{FVW^ZE<+ݽi23QvԼA-K=q\|^\AHbMҧ=, E㔝7qU`KًK''qǶFeP%ے׻]|E`OŖ&QIƕ;͊[>چ[6`S* 5r*LLtwM~'^T[5ⳤZ"3D"Mx;ݻY֞vj."|ƝϺↄZ ožF'GH<^NiKxe*1ܱݟ:/c+z{M2%81?Sy~7S9ڪ{uzýFCx@߄!ZdEj{JKiz1~Ƥ:yQeb0go =f{;:ۊ\|0VPeDE qFċ{&3^LP4`E쏂@5y(Vࠖ/yȗziC܂s7,]hЛ8S1b9زi "  (ނFĞ |bK}O?\zzhU,M,f^ۿcޔzB6TO%%8:b] 7 x[v~ ƛyRKҊsSl'_TPJE)$ j&՚+ JĨKG$($CqQjIiQB^jypjЁyWn~BIJxqD '?`N"-S_뒚:9%y X]89` ![M ''?lps((v#'[N^&[X\`kZl.-\ qM,/RYX0]uL=s?NS_/3$5=H!Ν,,y9#'B肜& 'z$I;e͹@fH/+QU0ljk[O^rG2J2R3SStrJb9%E)zzz@gi@S0L*(DG0%?475$V$49#<\@((Ϛ!5/ ׽x?D  3K!^rf^rNiJg^IjQZbrSifNJj>H{]xXmsGl~E!N*l1Eg T,:RF˲CffE{]l;=Ow?ݸۦSmV_X9"AmRZIq*"KRI)$TvOZ,ԅ2-%&:W8R" LH)zkQsТ޼FFJm4y]#:R6=S#ҿ2oǭXj݉v",_\x4[*K Ƒ^:ۉzFXn>cbB.w0ul[gO4+˷H2Ftߥ*s إLap;&pnA i55c 5݂[JSb0`i rҔ$V.o&ljF5}O-N j*Ċ0"s[.OP:;?]# (dJ}Ogg.h!)`jFPtB^}毑Z  X8'(F-оl/Fpp,T1e(TLhIJQOo!%S9#lG>i븅.滷oUlv,NDһzY8 *,?$v7C DMȝ4q@ҨTA9p~^a$qt;qs 0HvSg TzHĎ}kdAF#Wdv %nymײ[hne y.J֙Uw*UnۣxCH0lhZ%-(hpqPr+ʒJGsfRasg _wC{H\NzAia"_5ɿr?QqFdrcV>w@ X!8WH!8=Oܮ*~B)(.5ʙ?:azX8Gm|H@=cv}8Beۿ&yUoZW5^若(Y/?my=\F+wy ^WV-*?=2dJ [(bj|Ͼ+W$D?2e2_/6ѓ?*Y1Ǔ=FoV:(NjBY402H²0 v.6iTN]ל?k{>v$ƌˬS՞vox퉰;S|1e>®s\͞:zsZ{(T9vpy} Upp7qދ'I$sDuʊ>u]rR\f?d2ۭ+|p_xj STRj5vE6 wZDt.; Dޠ0`ۭ"X3ί? .asrqp6b8D7=Q<NFÞ>|üjV8hJ9Jm^Pr'i2G4"D6pxZD%.՟#\*X4@Faw/^ oM@+ff?䞩=JPRab.BCtgPOm+$  `$X:,]J \]нЭ.:4裠S֭=,"6>W6ء@Np(uY d~Q@M?'uOcbpLJQ-a>m.h`25\Y ̊QA+$ % pY N%Tn $w#X,B0(e!N&L2 5\?1i} uJm>$9O?"#3tĎDGgS9?%`Z w僁c@h1 iv̙Q`\ &IPX>?f "k\D,h/Qpj0 $70|Od}ȿ/<($'ݞ~<MyLzJKm,m$K̩3AH!Sp=9o-\3)W{i%Cu[d 7%JSk ʹތ VV-ixih"i%t1@[{s?3-v6#$!";O2nsyȫKC'}#(MKŃTjnܷ?*"5-F;#P:03ft!I2¾+ P/<|%l/K}"?*k)$=- ,E@ZG`e\U)a3T=TԌUPb Jb{#(@aɌJ{s`dL5KרH AKzo͒b[5t,` &6j*pKYȊ6|%ZVΦSgۛd.Fuԑ E t̫%b[kw>;Yeϖ=a+Wz⮚Ǔ">=<<ɑcnU tsT%QR"w8ǨigC8Ex릨"Ze}4ѡ Js:VPueՀ6͕ HU}cYNj 1 #m`c34@i-o:Ʊ+.PtR)mE|.V@םJnd9,﬋ )kW9rAvRbphuOCQX\pyq-0-Vב)` -%^fHo i|yI1EFJ`ڗAzJq+e:xĩV}-shIʒK7B(pWc$nD(pOoMZt qAA# cA7a>TpG/Yj>\shQ<]̺yUN$IX,IbLÐ8c%U.p([%ۣ _T(IRuyC൙_GsE*xeҨ ]Q0'Cs`%vYt/V#lzozTo3:E Z_끃װofpKͱA%S"+0`KJ ߂;6<߬G]5R"nheFko֪ V-m6ĒMfW&2Q8!KkUZx(GdFF] QLjDX[5.i5-Fqt.;Uz=WA[RZuijܨ"Zp ԬV.nue1^ifފzYFDEЁ _xl.ltON<ϳ7M/ggK" S_e3g]|H6K@%sçsLMc.?hLپ4sA9^Qa^ RldXs7^_H$ >Ꜥ$‹4ݣNX1rɈӀ5f)QQc;s)L0H3gTBvo/2^!=>qO"t* T7ZtS4|nJ)>{N/܋lGQEqY4#e78bJ,{vD88 FE|#5^YI5xEA?K0C)HPɃ1F; 0ҿfFT(CVENMg"0RJ?H7a9vYH~{CX=?'uCKT 7WC=\_JXVT}/l-1Z ͸Mo;zz*}~YO.‡z|sZ Ջ^Jqˑ`5*K w)YJDY{SRHj奈;@y0YBE[J*KWGEI(D5\"jX> IOj-6BV v2w6J+רZMt;F燭G!r?fEPZo}L{XoOL-9n J56a.~ rgOBAB]/z-Ԁ 0A B1MdzV>eYD<&[K$Nb*6"7|EA4Dolg+ l uR?]t܉:O"mywn8 I{ox ?'kHO,̟WZTZٔE3xZ{s9>Esp5$YcbeM\ԖF0F~z[*3R/jQ6-+gבPꖡ0E؆: GSE x#|CŁԢ&܇C# \` )|m7eXIƕQkHеj B|"gyW"`axTÇs?‡YR nX,X_x{C:{GzNΠ^Q Nߟ kNbqbpMhGL*#Vxb }Ą2z"qj612U$0bbyӱ4|y!T&R37 bGb)*Iqf:b^,>}R6y?8єe,»U>h l+#'x ZCЛK~[-c+C p|Ds "n f7BƘy|o.ĉzomt'1; ׳FRA]:=Fb b[:E}AU.oS Ԍ{%DG'Qt*2CcZ a kh]>-D K$mǩY.B m,_y.5bDNT¶ 'O܋UV:}S?U=kJ7vvq+yE0>fdFvȋF7 - 6[SmVc)<0m󭭴i̔馉]#L\17xp.0=4<b+neUY)-^xe*Vn.54V7 ҂7Ocx& bLj1D͌ݍ#QR_'3j-f#F6~gR&|y}jEp/_NS.hwLr=>:`bs84Δ.βw!!xŪA~9%A+aq2I_"ݥWyg55Fmzlv|ܨހ䃤)q=ξL~}#S8<@]wM?6nph?i:v@r0M YQy1 qpEjp'{Hr^/t" ӵT±QŷghP*넖f@Y`j:qB0e@^u}R,n*j/5_nW]R:L}n=< Rf.j7< 0bg"y`$!]-'mog2RaI)E&eQ :DbD`>իB%Vzea6.[ ҁ6Y|^mlBga2;bp$e?$W*gE MgNS+Yd;t5_(Ax3vrUʋ=?Eц|fDLzi2Ht\cr;ǺuƭkIE%RF+(ٗZceUhSgd2_rC&G).qa 4ί`g›)ot ]f)ׯC)͇M/c=rEvEWYq5#yhJ"S xa%`(gbz]+YwP; %mwP*,i.zĀ&MKLcR H.Dvz䧑$JJm@{(>dzy A#+WFi\L3&W>GeJ FD\:PK}>)uP5=\;btt$Y9Hx>h$Hs?cg8ZΨ263\p#rG0}`JI=wD^ީz{Թb~MD>ƹrp\ωguhn:]HXp˹D?zS~tN'v Tgnp=Цi%fwrrTvu#;}Ÿ֗['cE*:wAHObOY(cPNv*}<~V4>`&+hhV5)ȣڌ3v0W/uM 2ՐϠ7,@o̥ED,0шiwҌ11Č^Uq$1 42' @`rЙ̺͒}rf:|#Ż2i9,Z"Gln2{)ʂr&B-j(xq& 7k/~/;q!֠fAЖSipiT: >j(O,,*>Tl v oV4r_i@ ]vI US95懰oa7,^OFkV͡,2r< %ER .mV^w_VWQx]OP3ƕKÛyצ0ič&XАf1z4'0jεo`^yAisShb:( m`gΖ2qn4)ėeH? OW= ^IӁe7lP [~FsL(w$}>2zfٯL-YR5)Ԭ`/0MST%gFZy4J<*$)QC|!zٗ}] $[6,D)v4lbLF&$uʶn%5FJs-?c،Fw6xP-ߝ]ȁ_8:KL2rgL.L?Qa t`ELZo>&][$Z gAmnC9뤺LOm[)u\TyR롲]oTwPf@ jo"!]it I(,!\߁r9.jp;O zi[?͊jc\qlԦzI=PB}q\p ͍WŗłVaWaZY>k9ph\ ]?(L+_¤cS&A# Ps j\$tX}Q *‹y?N=ê$MxuJ@Ʃ7у ziJimE)Bh&vdg>%x$XsfH>Qn7膇'C4_ = OsT0E#\Ζ^\7P_JQt:r_k`o%Gv[uیha3]" WgYcܜ/%[gAGϱi[؋-&m0'm/9[깦^Kh)G.V˾TI+@n.΃_ V)k^"֦tpdwyp5IjMvan&j`sK5ء[}~hMYx{kC)#2L\~y%EY # *x{ͧ_3Wx7D{xJ<Լ|tx|2PkǥXj`d`` 9$(B K/hs2+󙥠̆`eY\xJ3elgcF?E0xkn0xLL\~y%E Xx ĹxWmo7,i $Õ_-Z9#0 jeHU]~pw%6=bQgf]i[˴Dt+扣Y޾~O4RRcFҥ.H8Ca.戮k$3aE&sad%{>sW"p2謲#8DYU* a阮FwE!0znDr1{a+/i ENFF:f#G}m(ӑW=8, D&@#]\m1KUH*$wlOfoQ$I*z;uT tc q3"{D/RL8TiJ3Iq2pnJ=}L&7N,TH[~F+pz/r8]]'4d:<Lnr;.zDd$Ic&1NԮ=Gj-K#JijDCazD:{?!1riir%V! D"<0.U TksH:o޼`kUE$`Y~K>lUM%Rfئ0YbBuw!jA$mTj{&9?EJ印OFTTFe߱yj+fl[-Gig~FJ'L:zγVQW桎p%gD ^vZh1~,Czimpݔ_,/RP6a0fG"ҵ%K~#wĨhٖMDLcƞT ('2?x(/ ۋI/P W# r +Ǎn6kfVWx#4\j!"+y3~:_wT̫rB3Ci.n[.T-Rq{UC_OsÁZ>]LneS!;Dkf&"ωL6X Za0"MFY*ٯdjdC !,ƍq9 U[VUp:{]3G}{,B#ѐrφ٠z&d\.7i5rcSdG7AoDŽ"0֎ھvjx)we%\ۿ/GX,/=*/þaM6Y76MTV@l0A,J.(c")2ՐcU_}TnxzÂG@Q}rx;L&߰i_{n"J`erzA>z U"Uk ˭sm?wjglBu 0&B瑝K[-;cvsݱ<'v Ot1R۶ !rᱏ*?nRē\S/k|-L.RW %cdh9Cc{.?ЧXꁧ+2V xͲR(aa6äHtg^'}ꊬIѴM<Ä:D y,k_zU ;ʡUr*vs浂o9囘P8*IfKU5_[1jx-J1i)śHQƋR hHhf`6)IRJ D)oJ|QL8|>xyۏN9:Å6y2 wS|VޫQ .Ct`R">}njp-:.GsQ2hOʛ6Sx `%"ȢL%d*TnfTɻ}LJhRYtN`:06q3&}rp+o^.8 {E>P jiՏv˿y9Z\jEV/I <xnX֛'^+/-נ<Y>*N~*{=xpygfɧ4r}S22츔3sJSR@~y9zJ\ XqWHx듻.-;_pg^Ijzj쁓9&君|C;%5-J!-'1}8^fN`y̙J3Ix.{UvC _pg^Ijzj6DzX4GMSJXϋ@)kXe$#T(XV\o 2 Y$xN=}x]{w6i+9_#7'[v$g%B2%8n~gP$;}ln- ~3@$J i}E47ӌ ҤҘИiR!U:ˢuAگ:dogge^:,ntA&9N[N.|19!~^Va1ߛ`S8,$ɋ'$* N#&>_\GК(N p./d*4QaylQ.ZO) hE+HАqF;Ϡ4#5%9r/@1y;р4) 5>ɯiH>GI&I3$ <#u@;C'fu:&]MhmǤO4i$0p|ٻ rp3pp~~pz>#夢$24, G '~*/_ G9:;'wowoz[(E@E0A?8W-6\) FAr7HɈ 'ѐ$iIn4Hgg&N &h464/%z[E |n[ό"OQدГa0/Q ]~`!ƯO{8>8~?K9 k`5,Ti=viG TE49hǭ)t 7%zz,%j˳AFX&˳740i?/QB&]eZDöz@>%=ͅIwaWaU3ZL|gO>UO[[/hAK_l@GL?J]81iC1]f-> Ɣuhu4tP m\059~$͙`'T /lX_P^Aio JrHfi\-5ߜv4 ;b1G5ydDǧi AFhY/sIzӽޑ T{QI`LJ%m -@w3!@(%Eh zE:N/14%+tq7K Q0ǀ#>uΕS+) ޞW r/08 ^mK[o͗95’YgdTlF}|#۠ V_QSgCa/˔kk FDT-]lcMw(IU}P4ˮUWd{YΒ~<LW΂\gWT7zʲj#ӪŪ xbVq/ڥ~Rꩰ]kmFB^#`ܦ\Vv_FQR[YE_]J):;Ȧ3qu5'T2S\Stn2mz2_;t0 з7ene)bh+cSẌ.|Pvk:yDZ/ziDTs":`.7zx]VuQ|ϛt~9iN1hB}X*"am):kA|ʙ42QD6U((eKVIЏqV+\k?=I^dZ8,k^:ݖBEHbR{:>8?:n'D7tCLLJǜl(%ﰠp4O sNBhP9<}y 9|2_/D̘Š+e iPƙJ;j'BuH JF1HSQyU&P(^pML!IAaql" F LZEa\@KQ`xV<'쀙[ & h^2I0!*a-̢i5OG|3 ~nYgA#@&U')S46& ,W,pBIKVTaT\eHϜYpE U/-@ӰljF~S2wJĵ{Ilg st{W /(89.B%9 |uanx0}M+ɒ^/ qpGX(, `h.2XgaHcdi5^tQو94VКpk퍺`ѮTՓ/Ȉր?ҷ/#%% $ :p4p9,daJsN2Xi\lmm6'$Y׮$g*M,>2[~aZyz l1b4'B pI̴G#w %Sgf-T9l ;?e^O" iS;Qj1j/@Zʫ a_=gflDG>uH@d'ЯՔvg( Rb]QC1낉W's J=vW./|XE%Tի=A[QSSZ@g 4|0T]JYg&S$'b+mcp9K'&•(92TmfL k[9V[Yߖh!x!aV` prӌ3T<[ӷE~LoDw؟u+Nvj/mx7ytiz k U]/2K4*_j4b7E9 ⋔S%8`vtvGK߈^҇H?iBhDʐJ̋0p!R^ Q]+K')h]sE5۝COz*SOhzb~gd3T"/ =NfwһntٝK&P2ئI c;+ʞON+1˿0ĚmN`e\jץ.(!ҫ[!]GpIT2noSPptB&+P=fft~`_6_a:{&/U`p]Nb] itvjFr,>kQݭEGjk~{EoH7hʂܵ(EzRrf7"]*iֶ5.#AYLq{67R|2_!3e f:bR y17a!6R5 4ӕF} v=*hg4 v1@_Ydo.~M&}?'sdrg\&EM&wg|Vyـ2mpp$O=ҝkut{_eWu= a3LQgm~ZL? ?&_&0TPEV˱'ύ frkص`ۖ+9lJż{C`n+2Hz\aP) 2Ҟ<#  &ʴ{ZSǴC>iO,g0)sdl3J z:iv6#w7X[X"}ъW&枺x0f>opϊZ%ʢҨz9Lr"{D+[@a9ѧN]be;N;$"$zo kdY mqb}6ډj"UM*DҩKtkKHRk<@¸\{_g_ qC3wk\JP}?<&A7 b= Y]:MSn Н[pTmքgomhReJCWr]' 0xKlQVimJdcX^zA ]0ʀ&Z )IT`#WwL KNQ!X8rU[B,N[\I%LM#٩ʱV/8oH#i;}"8 Q duQ6uqk/s8BWsj͜coωijfl1Gz+7d$\V1x &vYs>ptKE|II# KJ6ZxY f,A7ȬOd⒡V k*YOǸ, >+a]%;5$^׈hSbVx@)RJ6<†e򘌧2,y+mvY)^Ti0R Nz;nT/LltjsDגB;Vp)ٗ&HfxM(eI R–sW~p6)CL/ޱi֚TH֪TG[ΑqcZ!K k~SƛRv]ZKkEܠgQb@Ugd´ ѡ0U&C8 ZX;vƙ#wgJZglUWt;{3Z- d9۟") 'TKt\Js@Aoa"IL9uA%4s$s^°Ȟ,35?3?pj2nLMI4Waҧ ]\ coxU>[3wdK12w@N3prqߺү:Ȍ|ܕ''r U9Dݹt4s#5$LxF9 6R60u/h)Ra(N|]V&Im^D\`rO ,sxģ).\AƺxNC.ABSmf.'Q"w} )_[/9 >UshLffyb7,yMƙJ,[GsFPFy1`5oEuH?cwM,+dO\6Ab%*3%W) z ^)0FW ?}y֚VBʕ5wΞB.6}U\,bn 1I}P#_W˴*"`N&~p߮ sr ᱷ?m+x:~_Q"4Ddn }ۦ~ˤ\^ L#y /n__pc>=_Hd)_ M&eOeЖí<_/^=5uz{MUS]zi+u7kxD'~#:3OiUBU,J_i+W \m^,j 'kSY*8Up+~E7_vfԨRUZ?RYIk6P?%)(b4▎ Y}MG5{=CP "ج-RxZʫwgr]Y+-?g/ C?P"ҹc 5w'kp8=]gCϙpBL~Q_cIhUhXlmIC_493.UחW!"W{%|4fn Z-Y帿䄺*dMVr>UԝwS孅v՞hvߋȶO|JR]^ۺԚ%/fky~alQ)dX6b̋qRAs)5C & μ/g(98 ! i6ǫ2~7s83r_EQ|dlEF&2c`)b\Xw!vڛ颹0{xsRWp$NRvq$ʤTXAle#˕ذDOpY ,ܠ2)V$Ez WOi ^t2wC9Av}]賿!{H"I ֬aDP\7(Ǻ mzJtAk}jQot?;c]p牵A7M|ǚo]H'4ыCH2O\{sףI`iIRYFjwqYtXfFO%86K\=w*:_;4]ON]5mlv Mdx] +.f.u*3.AcEtGe0rQ^jsH.iKQAS@^)-HinHt`"C M,&:`ϔu=\ c 0XY8NSu`bxs.]l/$И?;q4K!(B 9 $J# S\諀 LNxz2nq0gy6X}o26r>pH\Hglz4x-|-2H̜vN{3̽@!(nU,quׂW1w|ޙߕj *L@Vq;@^%LDjfXb})uv^޿zTZ (޿pn4ޥc/oߔM77ί?rPp4ƽ-CV1{E[6l"=9BI`zhʇ5UqV?.sCV#k¿yqD$3r;N[zB3m'6$6 =5Ѧx@P84]J=/RMϽVXbov-srM:JW>y9= FJwGqXD,c&=xswF\T\$j." `Ԝd_WX,UP `ũ%AiũnE@vqA~^JjBkp5Xm-W-FY~f̻.;xWmo8\"N&v`9 AAKT̫D$~P^T49|8=kcOJf).|iE~y-]Y))6_+ʔ:^ݦN:aW3cONIkghsI1"Ϥvѝ̾mr)w.'y9l ͭy`t=ZT9oմ$t5 l8-ҒIO8VtWNsЍJ$ydJӀ;^"GRaҳM2ȱ%3}-h̔33I3`@SIYi08P@q8yAĪ|*2 B%gGlnXAW2j4>ǓMLwQ|!%%;gM1qV?)ijc1ȍ~ vBxdTF6-BxX޾m_r{Jeʍm:7γm[EP:IҟW[}:Ku_PM'.AdmFd"݉-#Na\'(`p*3Q果_" 9NvIͮ7w4'2c"7NLs^4NoV—vwEgЦUk:~6*mԉI.E:<:iµ+L q5"=MaX>l61 T/tHd hDb'صNce.3[V r("[Go񃃇#|y~XVb=kّtBrWHũH_{a[ȟQikAi+ė(1((k܋Z1 & @jSf$HlbKHr^cr.[2ˤ39|4iex\ʦPȝjܸҢWBio z .9ؠ`aue&X:T6zd"$s16DYOg|0VZZKB깩@ z!k,4rpID%;cBԲO$RX+h+ SJ$WJA!pՏPMz58sT(E]F(꨹nE̠&~&4?IU rD:TDQ&Bnvlk9u: \K?\ƍ8Rs|"sCQMٳ)t(>j Bn=dm?*{fy7H6v׶mi0(Xr%Vς[.f qp19g|mq)\0MprehP97N77U X9TU @-u8VSTnja5\(*5 2_,Y)!C <7:uI~Azx\ si5׉ eILYrb 趶KDۯ).imD6g\[9)'cS7:< y@3:UOZQP~z0bK=YՍ#t|v,2?ώlnk#@^OA$x-]n &/gv/OLKeDnvVԼ.{8x.wBn)v.PϼԢ'Qk=fyN9N`Ly7@x;!wLn _pg^Ijzjf/\f"x;&wRnm紧߶&>jO}KIDn[/C`Z|3Vh !Ň2^Ӯ =HMw܆w``uR\\lR[WP].]} mxֵ""Qn&|xnP˫ /XX-I3YϑT|{%[bTQxa|]݀$r#́;N_)r8W Ŝ[f̬0ȃLv˳&MݢfXCwoGÒn /tDˊ6F% ql3c/ȘQPiQLwKDxcwNop&hN `6oHߌ-`"(US˚"LМ:uB|sv=Cd.A|E60ie DQ8j*0Xذ^4Z֥9yU$ S17mT0Н.znχ`URjS߯{6Ad x̧;3Tv#ŋm n2',n!%a>s*I6_h!wYA!j9bŻ{|3(p ԧDZīH{i 2xePJx|H1y=6n%W6zk![SÉ+~? 6jHU+bT$mQ$pYA ni+%Y BZ6Gg Uʖ|}Ñv?|aXOúėgDY+6w\%nb(ȟ=jD0hY$_Iܸ г(@@|2nL2 {㡀02\ f.>ҧg#e'ϡ~2(.66>'0[#b{dMмj_xCVs5Wgd(5{r )yQE7q,as tqtP-9V$qLdBWYi" ,x[ $cAwf>˰"'WZTZlҳ%.#DCxOGg#8]e[zIC 6¤iYxwlOYͮ_~c1k-j|or]|qhnCmOdelQKx8Jf7*qbq(3m=я}[fsc; ̥ Hggg2M,Pvb̚~`_ ;N9שH H 3L%ޡĚ <7ENSiWR2V(2tqx`XPOW@(eE6W"Sv"5|⽊8_N"S8UBi\I*ƒ۴ 44M]p)3 \ ]Tn3:&sHs B(%.=DŧK|z.®VJ/Hf8[ 8_G#q2=q޻}<]#l)Dpd&c236Z9)͇Hdd KMvd{4EMOL]9bbu8dzxG=`g:e.^sίZ|L8Wwg2R:VP4sn}{1Ujirb0HZFY tA$DEѿ9Pvw(<߿m-c D$ñOwTOgSwIE`)sb'ϊY= ϊѭ6P+͊Z=ECq/L&VeK !wj@f/.!ގ[{Ą6}doMg: ZwZn;p.pNCt X~t)':2^nM&f&-eaoIUުkU%ީ5Bd̒ "pd8=B:W샒! &Hxl0rŢӍFUE x\L ''pd/'ȓKz-pfk0  W}~dn0fFo:f4"C!x oͺģ TdzQ`M1ߠ``of ˅9~It"aU#CZĭ^,6s$Bk(0Uԋe4}pecq:{PQET:TA$) ?퉟Z]bVhXݜ=ʊvu6.`~>uX9Lb)mY(Pq؃.S%7`P-bJJk%VŹWC˱J4ݧ+ ?sXy #KDXKl T4!s',|^ҐaIhH BcB+zCykr|"*cJzutK^.x!~S%D#1ƛ;{arգ-1b~~,1}pcszil֤%6{^4c˃dzG q@ \^WZ]`Hq+7-=I\ćÛw 2)q]ZmP,jם:=lx=Rjao90Z>.m\+Db` CS ΝhDk|*-.%|{gLϩTTO$S W(1{D4"Y5$;~Xo *ϪTX!:Q֪=li'(ʟSbf%m;gKM hP9J=ߵꛋ/7 ]zLwF[n-Og|C"\b% |-9+]?T6/*ZgSA<^dGw9Ap}ҀŬQ*-fZ7 kQe]ovjZJ x4 CeٴyPz1Ar3>/PHm9Ţr66y ugXnԚ_{, naiϖo븋-;_Ԫm&+Gc(gj>ls(S!=Jyւژ1\@k U`L e ni P.WG&q/76Ev){[kGsR |m܏M $!J*'2z/x}ToEW͂(4i^l'ݭA#Pb:NAxwl]X Qr4T npBB\POpͮm̛͛f,{zr|k@Յ$iM]xE9,4(Wkh/;}vԅ8hA}G|wyzg`U~cJJRlXeUUUOiC^Jp`rzjj r䜰8 \QY%s(o0s]~p6|uTÑG쒐m32''2se.*wqWo{__|X!8pw.ځ@Bv yYX< )e]`n O՟|"mߨSZeWר t9:nhOy S6,24' F} CKC{v7fSdkr9UC 㓙:Ȍ/L@lsC8 *}̙ނ1B4C 6X j=JnEsm UjR Pf5%^)@=>ڳRZzup\xb(2l.QS)qC]BqO6(WmK,jZȶ:G;gS-8ޝB~yޒ'|,s'ainεtnl9W*.eSQԍ£UjBPp? "L3uÇ^5gY*T<%#uTyƞ2 c0heASky{tPؼt3 IHg/E 1D/EfZk+CI+v10?~|Vښ%_7{):bGwDs1ߍ~.oHob/JRQJjZҵ<*U© J9ZcPA0Xʶ3hKeѓ]X Ǡ~-8U|Ӊd p+xJ@Adp!dh75 JPX vQ.&3efR-"y[|'7-IΜ{3M/O݃zxߺD=w'?Fɔ1{ogDfx@Q\Ėm3BzJ;uL\RQGkj,43! V|G)8C rU CHV"*ve'PJAB:yXdڢ^GBQ^,WY!ۅgJek0p)aikH;%̇n8$!Kpط,䉐#ژKt2-Ĥ:^yD'Kߴxks9+t\m 6~e*_16N.R:#j4&ݒnjk]Z-v7{M{w^ >d3MerxqyEnٙLBߍ z;5&n'ۗ |6w+BGrɝb1o: z"3Q䈽ިv @H#wp#TI[l!!/Kb 37weĦҁ1PG,phGJ`s}޻f'ﷻןZ Y>皔A ȏ.O>\t?s= Yݿ\06(Gkl<"7}"P ăȚs.p. wqIO,bbB71):ї3Pnx131gQI#eg76[]^U1="1LǺ )±/fvXi\mC>Hʀ*&TbQ={;aLh ʧ<)@t N5*YWV07p'|DZC2c4phV3 WYVv{9wGc>w@zdi{pZԫrjy0"uJfvPČ"0ɍPEw$H^ D 8">iX9{/·|ᨾ _ $op%i}2ig6[Jx/0(Z/Q1珵IP&PqUt}MA\)M Y ؝ q*mr <MM{5!t_U M(+ݜ¬[; ̜Y2̢l*/HH'$ :JQ_c_9gJ]0Cd\Aumg@ :DysW~˺d,!} ra)Ο1 (1IPF2vz4D\$ws0e:/m3^y@_acoeTׯ˃\nPaCt|Qi4¢&5a+5zVjA}b?.@2VH T"DTK_orvLII|Op$jDo=ԓ\lB 2 uxZfՁ)Đm(Qi6.9!ݳG ƐV!1sBqfRTk$`jJO Au2RIŒсZmNk'Uh7gj&iPc] LFآXtNIМzB/<;su:fNmN9upvi f0 R@f~%fSO[QX75dlĝoFr4o'3,iR@]Rv(]#Z%G%'{9F$hqJ3jز`v~Lܐ5ܨ<GU 8V-:FFS7@݂% 6~:`.bQɝ˨XРv<#q*e1B$r;yB9ߧ[k%=/S$,FϹ uNAja`^qx+IB񢤩JHwuz6c.vs:/0۾Tp·9 exLoY֬!Pb~XҎ0a+?e*VYOnSPDzZ=twS,XZ.S9pճ*uT2o$1agȩv KB?@QoW: =mF<4 -Mu8KK"[&P{𸵕֩Ёt+;:5jRОeM#gx_G\ 4?ݟ!IZ 0 `nLQ`ĜФ?فF xT"$28߽ dLQW\_i9c{D CSCmY5eV `.(+*+53, hct!NNނ)%HD5:,r?XR:Fbac\WƷ,Bb,b]T@PC0yW>ĈT@(VB}7:w"7*t^nSS+ǟ;'͊)M"y OknV <^I+nC<(ţZē2D}"+ȅxfj< ַ̗zwq}?b8Ծ[u FVT.Ia\OPږV&䏶!H2=lB(#PfVONgP[ .Mx$שּׁ tg4=bn/CڭR]fBJb˺0=VhuV P+emdl'WX: ao5?U OtT_Al>K>|}o?Pep[s4q2劭]݁5ꙗRܟT\q]'&naCވzWyuQ1\7gw>BC-iXs( >r,;s [ޯktȶIxʇΫ:Ȉgx/_3߾?S+- Cx{w<`C'#.F&!ϼ _4 d N4h`ҼT$+%\4J yEV ũ9i ~\\ ~>J9)y%`P i R^ZR*Ur)AjNq*ؼ959'ssI.} Y$OI2ШlҒQ]VbmYjQ T-d&gl`ͷVsz޶KWA,?3ES %$u#j<t;x;a_g^Ijzjl7I eAg"v)yE\ 9yV pͮCa|\ @PWWə_Wb 2|SK2S899rb[JOfqFXPT X[E/0ʀdB* R]S2QTLgK+JӴl-نb+:jl^x h ХO#xWS8[nn%)$4w2y\ab+#$toW<J{xZbK}vU݅sFʹ/dEpB o99L %+Ж^ט@Z\sMNaS.w\s({b>c t}A E#-1who(jٔƤI\c4ZfY`ү* S5؀zj4KY(\KÁѴb!mΪkp$,iAEWFu[AH'PHVCĮH-1&1G>={G7⃐&63mӐo<^͊]wL˦FJ3-9?%; " ؤSPp!FRȷJ TIId#0րO@@1kթ])-..5>e0JH^ %3Կ4SpC90Ά&&U\ 9kp(eP}pke5 ѥ9 vnWK+W_P,[-ĵvdtΆv7|)nlRQqt0H4y̥_Ox}OJAP,RZ ;0)NB6,"~ '{޼7/b‘ͯAXPc.!TcmmM%ņ ,?.kXv)O5z3xwYvm=*#IYy:*o~ZgS$<:q\v&!fܐ'M$DE_oN5ag{@Tڊ>z'26[+}Xv?\__y'L lgW0BK"Asߣ[ Fq4ko-(.zҤ.{羰 L0 L\Exޗ&5-X;ؾE8X!XC=A`.W..~G*MVlMDžgXmIaǥS`XPY6sL xfvv["@)dAʷd_da_|͍7JgoϧRF?.FKSD `4OԋP"2ہA Y]"x($4GMlwwO$RA<ɖ^"I|ln4naE6 oi$ԛ(ś+hw74[xFx{l/DLr> R1 B)߹d" &9\|Q%7LMTQ/n{H`0`v&E;qfLn &)–d5JAF2Bq 2J^lLY}!xOe<-'bp8 d߈Xq-s(yajS ]a(FR,R9Y[:/_EU|霝uz_35גAydXE >C:ݏ8yx0'3珝3q?8n 1R39Z:̼ LY :@c_KX BOAa]ѤaP}*JIB_CZDDq%I2J/8)i荥}|wKi #vm=}%>:h4'—c?Z'7Νޠg$ck" W>>2| (Gq8.1XVX~N+ "?^FcaOlFcq qjD/z]j<{X%>^xW2mZ.6q<9 x_aqem'ekz@r0^Ȍ4I`lt$UaZ|X= V(fEH(#&6S/^mpw77ئnÅ`e;4y2"uNf/qGcd@b|N P"mCFb7Cđ &t/@vA¿ՐMXW2ip']oܩ*w2l.w070)l-/=PSE M`"6 bg`M7[@YP:^1?a]'62JSˉ3~@E~[{sHiɓVa,Xq@Yf垠>cpՔ*8ÕpֵJq[I9Jac^vv|6Pg4Gy ^. Y[ZFg/_b|ӋW{{]qs,ˇ?={e{{M~|E- !T`YxW2GxNl"ެ5}@ o`x cDBF7_m{}A'?i[G*X\Dh@d7ڥ7Qf7s4#8䬀X&t)%7/^Vv9K/ 1hՖbHn>2nnu6 bq4֬(Ct+dJU/A\A' $@TN<-͓;C9?|񀺙@~"ԟ "ɨJoЁ]'K8@=ΝRt%X@פ'q l4MC4iG1o G%JzCkOzB7\2c E  NaS*s#}^޳؜aM ӫ^F2Oe*R&Bœ}zui&ݦę!!C;_~O4K1Te]vA?{m;{R M'{ _I;^R;e!Zj'/O8RN9<.@%yQ;Ґ?EZ:I tPZfc>K)I<;T)HgM*sEz'8"k g?wZgNn>`~fD0S۪TE/Z@wi=Ԉj:btIb %ނx.#+Kfz.1MpK)U*-Z XE_)kkb``aAU]@K,mZ*M^gvMd{YE1BXtZ.muOղI&gA"Nlo;K* \}Ju*DfwڡLBCEtV&~jxKaf/ 6p8 Gÿs-N3/Aboi_fE# O%67"(3VL*1m>0̵^7z8 1 c//q*Äg#+N_0A*ХM9EOoL3dR2bI*ư옏[s0"Uh(@6x:z@X=cdex#6wr=_3|M{`TrfTVi\|   :U-8d$M񗿀7,!iY$"GXWp ^i~,ݚ? 0833z< 8֘jWug|!%CR;RI z d$lrcG %| #r/^C@@0 cap}I6..[;hjЬQA&n?EmYW6F7VH"]cq_SJXWNc 4WX!:#?=*IbKUR Z'6Yb Jl 2W ̥-؅i<ء~!(mk`Gc[g X@NT%VB^!VLf7 H2) %Z73PCo髐ҪiJLeL,[|/0@Cujyr`\h~p/Y_Έ)S 1U+;X,B'&U/ #~:Y:D WXbg'5QEZPreSx#?[Ý&k<ڭ++Ku8/ۨEkփT 0)IMMKri4#d0@mD)]] ƤML@ter|°:FگqS 接?bk,vzTRu3[KK1,V)$3 -6bY|=4~0gGSO?D*B raꫭ!u DPE4BfZhv-վ#iU8Ց\2?vU U JRf4s,f0cF![3b_*Tk)|O_t.oN+ޚ ҴJ+k+d MO+Xm:Uo9)1|/#:"y~>T1n+˪Ů.RѪI ]tS1k賫5C჈5 nWku46먬rH&x7tyC "Zb=y{fHڧ)ڳ*!hPdq(Um3a ~WEG9 xxSS)50!ko^SF@ ZV9ݩtq@$U"} 0~|&/n7"u7Z&o, S;>]Sz0R1~ g }8HPŜ/ h.sH a>?/ ' BҮOtul9Q>4YW,id*U>2Z\v; [|El2)"_onBSB2` !27Y0~vƖZ(T!tdmɽСm )ֆ^'fG'`ϳ|7(C@z)t赆"y; 7+5r kҧTU1Y#kL-iX55zsrJjj!㗕wPX7 dQ=5@~G#U /L꣒uرU' Ƚ`(Udg~}#6"nmOlۮrL*HK~CT9gAp5` vR1,W\P G`4,rk0Č5\jbpw{ӛhtZn;,}2h-+DYT2~rdsXR ,Jqz󂨈q'SM/1$TX!N(͡ ZAxHG.#Buӣ ] *#j>p,DEQ#\M#d éԒi{R.AQ<ѯ%Qc!y0Zⅈŧ>Q-l26 dQtBzw~zr8;Xo3Q1 ˘1+n'ʊTT/gE)k:% ޵a'r1,\Acɕª :-:SlHdEHIyF2zM(S#[Ϻ^#[ Ecմo& W߳Od"kEB)RumQ,+=5ͣGdϏ֜mJR1jvXޱ,n%y> <wJ\lN>Sd^|7$a*u#BK ׅBK8F`ոL=¼^$SEʬ( ]qT8\ rT7'Wԑ3@j8lG[[p+\)^MvF&BP `Eڡ-a+!Srx#|ώ)N9OlOE:/Dn0|uv4W~{ag(b4*'BĸiS$ʈb(70Aͺ0ݣ1 e4[T@͞uF*7 [nTo7W숾 !3'mY?nTi|1"1ufݿXViGD[ڡZLQCHo-:_bkp 9*..ۮ YF9Ahm&Aa_Yx;{/1ҼĒ<}sr(cAwf^d{X8 x\4~+dRqwA&śtAI[ yGmUukw|d!Lճ`Ie/.fY%*ugv^frf{*W 2Sr }JSA.5D-^}HEK7At!߫\n:ޠM.`Y7{.ṼDd2h\.$D?Q[=;)27Ȃ=.!Әwj)@oIq3%5VJ\'lv| mH# {f'lf9Gb@Gk+Hdq8[lTE6OXܩB\#s^gN⹖L2tNdF?5X8[Tܽ*A zDNm=$Q2f jMYP7r06Pej®(Zp/mfBl#Z H!!&qA /!V[XS)aB;׼ MW>! =RF  ŊI0S e9(62Pp!/ +>$uSnިGW$ʳvtQ2wdސ$t44(vqK|QmgT YE(Y0c Lvgv-i^0I{K5)ph7Q#ˁWh\=13yoj3HZ ZkYpV111JaSX9>?73~F^Nnj-)~&D(-XjKƟy#FVG4?]g,!$&!徝hCJ?Dj5H hǮ mE篌gjQ oT!u7!{/j5'@ & n5#S3't3* BNR$w^Q2d(>7B6뜀SdayUB^nAq:ea݋XMz1e ?7 bDH+ >f3f F3˜L?w~ootdBpLI qR S2C%*u\Nl4`2h \ à9_Iw|uaazǛQh҈\ *9tCoYLEGe02Llh!7uNXWfmYqGcpaq9;9b\?g3/#B5ߪQRKi$39p, 0O-(-(k] qmb 㟯2D\VZ`Ev1)e ѻM7Xb r]ޤK0<6N6ͥ,2^7KnqY7)(NEC}X"ӠQhtCqQWDxwk*By rIYI'Er2> Ķ 6W2G:]?rI ۋEQ+3iE;+UcH Hy:1ёz P,8qN~JL(hX#IwzN`xC =2Tב^.l\::RA?Lhqx%1!`|7\?04n6'-|b*^G{!O ciyGb[+r ͷtaV՜,8su)D! R(!tLjK&DA{90lHQgj%T4݊=VQz WXVl-mt:sx@7ӷvH#{0u2q?ٮ jA^T&1~ K(tM9wTli4ȏ0SsMt)ɬk:9̸ld<()3 M{ŶGf>Xv E5B*7C-='yћ:QG!Urw`BN&NCƅ{V>A [Zbv^(3ro8k)AAwH:q9xUE&p_uou3OGdɱhu4uk& Tm8+՟ o=9J&mrJG ܧ>7gl<^?d-HOgxT$u)zkCICA¹"fT? Ks2La:UTZ\ k&^.d}vTl ]t !-hh=MtQ9~[ v6eS==]|.KG]C7C\Rd1.?=&}wx&Wniel$-B( Ӱ%$5pa]UĐ#e9^|<Hjo*Itv/i.͕ Hwф3 h5cES>< L!ۺl n~9P|fUC * :6 Z4fL x經Y={Cvb)Ab{+Bsed5۰8c^bAy!ctdc/.'m] yWO.I6mYy:֊}IμF!G""3#b(u=TbUΣL7xnp(Gٖ3Tcq?\%GI`yU$17^:A+̐w}bnհRg뱧#?hwi!$ؠMtbX;W)7d? CS lc,PvsT>l6!c?Ci1{etRx>yxO*S){d=\5d) #╩1]5gºɆ #% J50AЊI -pU` wH`dl{-Q dڶ$noML]dBuOG_ʝ k'8jpZu>UD.ʙnahÕS󟣜90LySҫ*m7l'c˴5z1{Tj8}cg^cЪ71q;'w܊͛EkX %nS1*C晞:llGD;B~xrL;tt ^.| 8xj}Hd`HQW}0$OGHPܹy%zG6CQM!i*a6mj9/zJYZ ʴA\n数Ѣog:͕Pܖ`5iK=_ߋD ȹPa>v.aM0q%#Q,͓_ U JzO!+C΋kUxP #\$ f@-Tc Zp\Kv̘~I#Te3u{`;yS|%aG\xVKlE )&mDZ(Mbph7D 0;Ӭwqޑ*KN!U@ 7N 3p$ą ̮qJw^ Վm*x NG)mj0̩mX#9Գ3gJfġ'ʯ`g?6(9\ fyj|*)e~%fJ"pF&LZ㕋|yg']Ag34vj {rN8?Φ4 7غO<oA+[2|n@0d94oQK&tJ[$& P pδ5I8-ˊݍO$"&hyf5lɚbӴ |zޒI Q5T޹QXf%YSe \pL!>aZUqvphwh:脢- FOr Hfb'ؘa– *%(%0?nvBfb T].p0Uf1ч>*ilM17 vlFO tu$AǷEAz#fomE )ڤ$LNլ ֏LN!/+3ztUN;ϣ| A46 WЉiL8@&D@t)i YVsi1o*Rq/&%!9+'sjr[ S.[eG8 d|Z^+NGUelt$wf䵑†jTU9c䘫UapoJa^+Q2>u_>)R< OpW@]&~mb, Ru!D$g̽WF._eYp@N Ii0 HW| MF["7[Ò2 3d@!X G{%EDH'nH*C{/C2jgrBnKd3`[rtXp]fJ&+kLVD%mue5ƻv@2NAq% -D:\{};Z&Sjou4tx1Hx6VysF87xRn@UxI6TB+UTI"q<"5lI<90*k|Bز;6lc'MX9sϽsfKx2BśL9R4 B?fzuHZԖ̗_.ܢ6T땣c'MR)_#8q\82}Xxdۍ+:{NI.}k$^{$f׭M3ɆILʨRcY$)ةʺ1HPEs2ML׈X14j Eʐ-lZfM_·7TC/sN(8c\j6 \*h!0ˢ  ' T`'$*ʢX}kc%W:1?xMu<ACt<zp ,O\2P"&`W_Vv aICFEHiIF?U+_ pnny5'gw *W=HͯdҰV] G#e5x;"HpCZ9%%wޘmy̾ .x[$Dp+ [~i^JbIf~f_Par/ xmQAkA%M4b?F7t-ٴB 4!`vƝef1)%7ςG<{&z8*{y|{)[~mӥqu^VG$l61>|͗7\0="hGc4Hc2<'E A5.G>_^U6h 4\k d]2|+lO(eaLGWTfsu_ r_ qA42kg^_wJ6anpboyVK(=F۔y2.0JS՘O:(5jf1:{cZ. Iii `8$KK۱4Ls Iί\-ݻۺ4I^dod]d3? [(#]O"].QU!Sj;i[^n\A'w/,֚ӽv"?H^Ă'j1i4 +AL6vL2TSLm_[G3>5?Κ<׼VVǵoN1ՂAZkc-j?p4x'UҼĒ< ;?MX ix2wQfBrNbqP\)d*'8m,aHKIMSs uquw/ /J,(H-OLI-RKůh DRVjr^z`̜TbNCt%Ey@E%9 O>j a吚TWZZ h,  sUs)ثeYsri+htmHeA䛬BN+Ň}|^ɏe'QHtܚK(_Ptr&? e bg,xuNjA- Hj%xBب'gqsfa;fW G쉍Ha71pPrPӰ kR,1Kn1@GWVq,QdχYϡ8m?:ҬkQ r~x/ 9hin8%S/. ֳTT _K5F3tPWDpтϗ٨3Аexf `xklܐ49YLw0[(g%甦*ظzGd&'deqq9d敤%&*e'eVKtOJM.q+IK-RJ12S22sRb\ N> !>e9C42S4󓲬RRdfH|<3xmJ@@ً^Ҩm""UBճldq[6Y1!s[uv78/qσ@<˩bF`7'ـZUY gch;9l9wsov>M0"m 5zɹa,Q'4ƑႡ0)쒐a,hQ@XVWZj`[|o67IC- >):1VQw #~3xi _/39s.?N?ˉ7%ʂ+Y4Zs%#mOvx̹YK93/94%U3$(-19թ43'%H]` O)xUmo8L~\ A>U(m@BZ:m[EA$<3NC7XީxkAom:5P@sZ'9 T!fMɸ *ݩ 5_+]_*c9pi|\~UTV6(53SdFY*rXo6V0 s÷2jlCv+vTLȍ`8L&ma*)aM\I979eC.fLe&b19h%OyK<# \྆9r6AiSgkP["G%dH2-bL,Id,99_Y!'0݌gsx ͻh ].l3 4D?ݠKyt;ͱ fa?`0B`:o)LqoD)m.ᆉ,?V>/K e;-!81 @)1˔\: ) bR&CѮ[`"L;U\P4Ze?\mzdZH2DX PZP+(N[wiqDC͌:VG&%.`qS5|#q]qF ?z=BKG30;Ϧz..͆ ĦifP KXTۏ]/ZG+)2z)Ӭ^w ![G~>Ptсer30@/EQS.l^6e3t<^W;Vg_KdZ`m$9ߤ=g_ŔwPCl?]2xZ(c%_m0Wgl9Hx{/x@dC8K~qIbIfgYbBIeAjq|&QUͥ (Y`k QP@9BrNbqq|zjgPw^rjXbQfbRNFlA`XxJP~ΎũE%@ҡy M % iy)  PCʠ*M&*3H\;9%D)?)+5(Sst=9y="TY1Ne_DafOed#wpnlx; rPd+f&V;V"2x;(EdC%3cAwf^ d  Nx;"W_K=(7 4=3o# fV0k?f(Ke$囘Z`쟔\U=ِ.U *\*f%O UM^̲RLT(NKI-r\\@23 4Fx{= [~i^JbIf~fwMoyxmUoEV4 _}^oǴ18NmD5QV޵vטU x@@B@T$"8 UqDHٙM{޼o}}o~M۹3 kS2/q|OFU6pr][ITÊ1HZW6"d5=j#n.naɄ]aJ&=zƶ(F'8vE-sѺ[eƎ̱"(3F E=(Gӂ}&ϊv}fMބ6LHCmԉ8Vpo,i%Z* 0 n^Ac%bKigB: ͘9h5 ,j^iޖ+_$&~>vx."< &}*EmKw[`  3 X03 09b?~45qV*ˉw&[x|3AT\6u 7bJKZU[jv36TgnN~dj*yn;^f@&^ncGyu&!sK FK^v]3)]XTl> -;jShQS{b!pT;qʢ5Bqa3u?H^lQ7Eyz^Tݟx'9_iJ ws05&!PayԒ7R$;Mz8?ӄ-ـ06X˲V>':h>506eJXE]KޙC<$O>>yُ2bNX3ݟH3aE/8Jʶ't$lHZ,hfSٹ8MJnˆ|M ,' xq9$P7bc.Nxkq=[~i^JbIf~>aǥS`XPY@RsY4&cV<,@ x*Sn p^IjQZbrSifNJj^MX'auN~ZxY[SH~ƿ[e3^*0C6eR)jKm7ےp3nI6R ~Dmε_u/?..QCOfF G UUzݻ=z{p#)Ӄd*3FHv=MFt?&JF/Hdqʼn}_履^>7r͌G5D,2J44?Hk-)8ܙ loobP>'$t޾9_=4bpV9T>N(ir (iCc ֑Dq\F҈~|PbI$ɀcl3I<Los=҆TD’ƫB0VU T&044cVCGGwv\{H$T Ōg nP'V#V<:tNWnոw{Dd$x&1Pa\h!Bt$%\KuHoPGC'<"5H'{4E6@LXF_M=?F"~w6ĸoT0:}#"ګRO*4T^LQyLGoJN4: YdFmqis~ݪ{morUFKvjt(Qc+XVI$"sܟɯ*LϛnO$A <+|ZpT2TlD o L S\oFrA6Q6os*CImYv>En#J S.i?aSW?!p#נAs*pK2rSF}Ra8C1I: g(-Qb-5@E|/ t\Н[Q+B_*':%%sBgCZ{i|4:f dhOQgEeht:4ʿR 6JsߠqH@f1_NrfGTaLøZ٦K v}1}{Ysd91/ȝ\2rd5?An-.hdz/}]i˳*p:"Ti{=0*3)$mh.`}[u !q͠r糩|v'rie{*~jhѝ!B$M|.Ϣp.Ym" ~Hwl)+z଄|}'4C2vI ໩ Z03#4C'}&`DFb2A[C6, '9^C=-n 1Nr|]3n&G{6VqtxVYSCmo'$ "ˠ).gi*{tPt@=*}-uZxm+@`8lt=`秨]f͞Ȣt39'9Ӭθ>cubEQ bg\,0lUK?P^ugU؏ܢTVz[SC2" }+-$!:M(8Hʸ քw\3rbu;W{(a++r}{]~lzy 12,^WҠĮL툏/ EP3dٵN|-Upk[KjVqx~bK5OLD E~517)vm.զ Z9Hb߃kM~-Zigg(reӊ&U4Yc*xN줶wrF)Wd}$#~]΃YIQu:?13v;Ɉ UƘ h&Tvfs7DY2-qT٫ڕziKu,2cR^՛c[=MW 8sȖH1^Z0K;b[-%so9(y\4^Ӗ0p^ W:۸ةClZ|Nd$]KXiBRu[@.xk22U-LK^TSqߨ,n$7jZn~2BEks'"1tǏJX/h,4+icv!)bœҒt]FK ˌlj`#a}s^zlە(ϚUo|Y^/[܌ws-Vc?3w`c)^2I(7OmBQ2I.JuܜsGilX잣48۞/Bkmxt1Jm%ֱjŬ6C mc5G-Z`#^lww{ͫnQ5O׼7qiQQLn=r;ZqAr< )F^NgxE^+q ](}9er<ǩ$r<m<}4ۧ9SG_N8x}ϋ@aAY׽\pI4v˖B춊m"E0M^Y3u2RGɃWx3IVDsd|}|U|R$-% Wh0! 5(]hWQX\~zzey=<]!AKU†uFI˚Zo'P.:84[$TrxsL4N.7﯊a?iY B@m)X6*LBs3hjȈ\5 C%M9UEqM.xc`ޫVK F?c䔬'8m̼6w^JS)!Ĩ 1!̳ znmv߯_+Gk;^g8voo;7 􂖈~U)($rI~cmD+.w1g;vo~V;D26$֧BܚKiPi2'^NFhƒFFT{n OD<0S/JI&0 EԮSo݋'U VwW 8x{n7)L<}5<ܭ SsrRS2r47O2rWH.JM,IUHTH/TPKMUU .)KWOj, ,ɀZ)n$"9Ce-5x{cwnRa-ͼR ';{i%(iNdVUxlwn>AE`Ow?gHTbd嗘i  Hfm nFT?xTkA&6m MJa7B6*."lwf۩ٲ?rX9x*="^ȇu A )#2`h+jZVRZ l}5ۋPbjFޛ )M͉̙yjZH=]a{8Z:Ձ3OW(V2srmҕަ=8&峍f )hsɳă5pKP?1D LަN+ǯ/K>/^e.VA=ey1TՒϔ]WK>lƥU ߁xDztohW܇q)pLWyLXGI<hz!ҎIvls H%Dt^s:]Dw$͆6B]Ex|}[vgek )aCQwhr9]rRxų\W[Ew'YD P3#l+;YjGzZQh-B$Pc1ӳψKNZ|^ҥ%P,.h:x]zWJ Zh=Z=J#۟4R$x{eqb}=,ޙ%zv\\ʙy9) 6XBKR C=݃2|S2ҁ&eN|_!Qx}TAOAΒhpcB4A%$\VR5:3r0M?WlL<^ow[[jv7o̹ Y)3ւyk,g^l2CNYĜ[Z_h|hǠmO:N*ՕZ\eiؓ2'H \)"Q/TGu^rTJ|Z gIhZZ8͖ٚ%Uђq?>H&](9Α7u9".;^npؔ'rҌ' 'a766ֲ'a/%AwAW.ޕH6@D2WF9,}zaҖeȢxk cmΰ-Rqb B&=EYkiuiR(HV4$ܨ \I~7 GZBvA¡Ŵʆ 1Cq0I'¸Y.tbµ?Jy0>x74aM\2e^HX W>L_(ĊHwt ЀXP_93jmfsk}sv-IWC=}Y34ʐ&,`z(Ti*ٓ(֪FL6^5hJ2I4jw{j画O%O-*tUx*KhC;#cL*: E9yyE\\E%9` ,=LJ J4 ɻ/O~tW(Cj^ 2L9)Lgx%Kp[^Լ..e ZHx%Gpf.ҼĒ_X~; xUQoF~^%\tPC (ObVf]'rή1qr.Z ofvka`j"nZ*Ay F"sJ(cZ03a*$RE!BzP dF2/ߦNF-|v BgƲ13\": ~aR.& RLf;F`KǨ}]Tn$w. 3x wL|5WL3L a2[k9LLF1UV,\DVYlPb=> *?T5 0;64 nS*RsQl2)PhF|QætwPi2En 32q-]BFʩ:J/CNeNI>, B1)p+gp/lЧjVP|g0ń)E]R? 0V0| >,*bvBZJcZ3gLWc@}1!eOH?CMO2b늦YL݄拇`6NBϊӌ8+$%)8Pjc۝gO/~:^'4 t}s{\\~QV^Y8WKvBI{nLR*ܲqj&Zl;FۃkhPAI^1&k(?mA;a;=sU9ϧxʈe/fLl =3Z_+z=/,iC48~&9*ݎx^$K}tc'$nRR-% iK=IZIƶ}NJ S8qy~y ŎSyc 5y?H4{;MnV)iDٶ'ih46 j!Suz4!wV6,p0P,t=:_i'O{ "|x/ZxC- [~i^JbIf~^{,y%EiɩN9)EYFpxW[sF~L.8q&20Lg-жˮZ9#iAa؆=Ϯ'pzS-8dc*t˗ad8_G3F:S!B.U+ڜ2|~ֱKٚ+ nb{^%dN;E 3aƂjrZjB+$i9ltS`x(RkCfSa_XPDA ؘf5:E&&{"kpr`h(iCxqHX΁ x&3l]І@̒tBztwU=.c`H1bb!Ky.A0܍s&pfd~XPG^@u""c`)A p6*z<(`4O '8<(/1 n#Ҧ !fKp1/0*w<Ҷ =(,B^SKLoQ1F"BtR?z)o*Y?q2X/~{=} tCUMߵZ>&8S>c ^ihsh`F0A۹'F =:hw% 7g0.[_[p}9^w"Vuwt6zƤAÎ9A.;?B[=tTr=geFwlK.`(t$K-}uV~ i.zy%' {:c 9~Dƚ"#/OI:k@O,v;wA/Is^gD.lMpϤ|'5pCڲ$SZL?qW^`3]יcRS6-f7xDj7I\ySR)yJLn_c/fg1Gm5ԆN=:g d!uaɕK#$.UJTԈfe݋c=C5VЯȃret>Խ<{vaي0P}ށu[~|`R檾I]MJiti> Ș<HKLڲPEo>FE),_ 9=+Wa@咐&=bж0ur`Kcزɱ] z^0)nntip/OlWP/&|Ϊ*$Ht]voYHv$xU x YnRf>ҼĒ< ;p@ Mx{{+Oi^qfz^jBf^durb%x{__K=(7(8(9u",Ռ}E'.s7c怩YQfTq\S2KFe&C&dX_PVZ᜚Slͥ,ILNII- ,H,ɰR .)KW,U;%V B* Rp@ ɂ%!+&W} ꐚť $3Ӹ/\*MxVAoEH۪iPmۘM-P-vҘNi+\4񎝡*s9B7ʡ‰ޛuI²yoy{%{X$;?({cE<q4eȘ,: RdQDRerF^'5&Y>\u.gk=e[w"qȏ[Րd{,h].E^VǤdMC8x6vdWy/Gڻڿ8?6h4c>hu]`+`mF f- )I6! Ͻg8[[WBrK"LUu<څ燎_]V ]h]»\nRQ f)#}{?Lv{bJ[tH:랮- ̐Kd6։% I"w kڅGcU䟲%y)+S+l=B53|!1C"& XB2ΏDns+lDaavo4oƒ{#e9W` q\DpVg$!=Ez:yBM!p8`!>'-+ )/^SsʑCߏ D[iʂPHb,Aꘪ8{t0D,?vw&q77V}W"v #,H;kKoéGK @$tb5IOQf [Qa]˶`u8S;B8eaDzxma-?gR%!Mԙ;mODLWY·^м 1h'l<:u0\Ԓ_]'AY&v,.t4V:#/_@ͦ}@Bl\E]d'@K! 1jX&r qм5s+pؖeRB6_OH7% cwxIwY>c₹4-gpꫜ:xlfDBY|{q_?r{/8a9VJHM}*]5:eؖz2{aN/Mׂu1KXd.9Ŧ?*;$\>yt\ǷPsM`wK&;mjjV4OyCyaY6LL &ϘPRa%lTȇ0|SKm:fL!ָ*PNkݐpt[DFzu,'OL; `'3qZ\Y԰.on& CF&M{ M <GNP&G)G==ɬ~7B3AXyr1G]7s}I`HiS}& St2vvv1jВ];֡JWM yn_mѮTx5krf.ǂ ;jHxWms8\~KQH:/!Ceru1GN/`HҦL]=u ~gZ2ɖ\7/tUb[8'ka"aC_eȬP n4_**e >/q!(,V% _3/eDXD?S-nscyڬJZjs596l&APbmQ&ÖҰR&,+Cn p5K`^$"4"N 6p6 e(MjN%4${ z~;{C)UŨ݈$:i < wh>oxwd gm<]3Ub&5iIE7~A=Z}6MM7x>&,N ~ȅ rDbJc LBǐ\Gܥ ן~ű_;. u7Dgr pdoO CW ѲrurFv כӈDnLw)E;C*[7Qٸz2ŕ#dS&A> 0.$ƨ@i(جGgō4'qC j%%0Y8iHѥKRl:Yc*,*:mP(ܐqY'忉+p=@M4soŘQ?82] s~X? 'qM$mz+$f$]{/q ׹L(+|@բy٬S (wYT-,{⬃ב*%2ė/ CVxkVx#Aqc8 <3Eofe{>(x{#[_K=(7,3|#Bfw 0O+̲YCRKS}S2츸2JRS&)QRtBrHKRi\-clx{c o^IjQZbrSifNdwy xuYsC#^F=vO'ԼXJ{敤)dZs)(w1r"zM3q<{;HE.ɥy% Z~aK̝޼*gaӅ`Hlv7G) xWcPҼĒ< ;.̼ҔTǂ}B+I-JKLNu*II-GR!#xVoGWL"`>?Hp"h[`e١7Nƒ7<*:$?f'FKA9#F㶣'NFpFc&rNO2=6V #&Svwwp{f8L jQIMi\>foTAY6 INS|?YDώ s o3Ž?O?Br93_D7y}!0G,[$L"zT t* :À(YS;*\p pHJ$\Y ѡF ook(︱xKw` 2s=' ^Lr,lvkpz뽃jpFB,a&b8/~*Y0 㵨ROKH-7F8$iw*)|pBi}kP޲:3^`ےYb wQp2R+x6Q6SD1r9T'&!^3RwBݱj l$.!^y"HKl^PAQ|cS"5K#1jvvG7=!Aԭ;_ CSuTV~;ީ?bc #s.( =P#ΘPc= W^uVlAh7>y RF񕞔OJmkqńۡTi=9)|%#`! lEZO>0q{n,/oA%^6=` aĒC +#0<"2>YN|5i<9&^N$FHxA#Ҳfm,9)_ćO_%Jhȏm+;?o8G+3䮋4JA&k*< 6e@[SP)Ӎ.q\n7wi>~X=z13_h6riR;,R:x:Ƴ#όL6\ʙy9) 6y%EiɩN9)Ezv\\0Q , V Ny%E\\ ) @%̼T<@r~N~]ZT\/ʬ& STZd" M/:7(švr2dAn5 [ۚKWA,?3ET+ Xqj^ (4KPTMQarv %xz&#όLCY 6OfeRP/ʬ+I *I-SIlNuVSPfB&޲Ԣd\<+hT<pO*>xXmo~٬vDiv_ iM1VQ*f=yVW%dyc2jLe Nj|A*_9j=1Fe2)t˵B@p 70&Ҕ;Iϗ\WVɳ~_A[ZHb-ixܲRgSYG(h! +3P3л3_Uku3 Uk2 'dZLˀ\iXD̶0\Cq4d^"|k`=Ini1 !.p^ÆkWҤ2\Z\n!_VB0 06|NOI./Z{[}cUqoS%Tf L3m3"v;(;unCh5un[C ssrr[$ &B}47+%3RuK& 1ßl>;ƍ'񳃴n(c GvOI^i(d"JzUtDGgv!lHqW~2QO㚯 0)<!Qd]9ʄ63>ȩjv(v<ɋaAvɇi3qn&ŝ*h#j0/FZ#W{][hͪK; yXSaEǣ ?Uh7?@PgH%wԾXV=D俔 1?l@oY]:.}dQܝ$B5"(W>vӄS gE]?0t|;vZqDZi8#$,,tow\qAaguݼXxCKZ6㘰|V:y+[Gj_͇^yI[xقKL[ȶ {ܴsZvYl>h݋",na0QLէB>ƒeh4!o,Ƚ|9:-ܢ ҡ+Wf4H ɟrwNc*Gw%@LMUxqd튮űG%wڄkqw$:= SQrpU'J/b V|A0OHXA\jhh72K3{,|HDb.s_ -EOD콊taαyc)ө9xAC8)+ǝQ?e -'E<ǿL귋oHQ6PA'K@>pE{ \[XW]lʌ\Ul3pO#_އ}<Ɲ >ҐR4{ G< WZBUץAn*̮{xSk{eJRSJ3sRR26˱D %C YxαW_K=(78,h"$@FɉN"  6T K!PP_dFY~fBbJsNbq_KfrIf~^bQf c VhVZP\RT KMrHKRi\ I!x}n0EH 'bqށԪkC=F;kB;b#K-i.,Zq0WiXDi>cҥFF8 Y~8{;+ר ?D4ڡ-yA1Ðz4Sb=w>3j݂YfЍ9mzA4+<)71aI7.+]/4CB,`,@x2e9.ҼĒ׬ZQlCxRMo@W #H*9ńPKJ=D>lzfZqIԈ >潷3B\qN6H5L0$`8 ;s$`"‚\ Pe`E-|7YV&z_n3 5A;Jpp?Zehzs|6y(L0fjuMB*s`-LElq % ) z/ZIu8: ^I6`&LpeYnz7*Oxe8$\, {#5v692 jnJ4"W8sbǚ8ѡ)؟lpƺL;t:*Q9:xvj[~IyZڱM=Z8x>v `gؐm{ [U-0=D4 ~4c?_sxq}C _g^IjzjfQico~JbW5\bOFg&4x;ɾmBcAwf>˰ـq& ,xRJ@d < b$^j2M&j[vx,&B>)FKvf6OkQ@+udg*ECqdĵ`Z`B"%6`=! =v(וZm孶2?{WMeszJT^TI1K oZE`tK 7絵ĩLB"y8tFq[R92N# !tdy/.̲ :CfEb6*|-͹jsΈ Asd͝WJ ?E9Jj8f(TrS2Kd; z@e2tXpy/]Y8.[lIsWfߎ8x{gC< [~i^JbIf~^,& 5x{ vLl2fMҼĒ< ;.̼ҔTǂ}YV8$(-19թ43'%$Yŝc>xkl0YƱ;DBeM\Y%4 T'xX-`SYj__2QDO:3 5D$ZR1|3rfZ^JjOK<\'Dg~Q|2PIf^*~UUX,JRSJ3sRR'k;$$+e[sq9d"&bDQUS˥QP\_0y#8KANb%XZϥV:g܁mx}h~^87ǡT*$~$ $L]L:53:3>g6hZu{t&gKFR<ܠ|b9fF9oBVWqe;ܟ\r߅H~->oTpВgZf@đ҃V Eckg:!\ ER4A3hucmu3YҽbZ1H\%-1\Y`:giQu٨f_Y}ʥ=EntC;I+=wDf7v˺9A(0*0'yL͉ȡ1ΑRu _46p;@a4BcdJw$jr>62⒱D5»"NJJT*%3ˡ{j`6a<n8I12,#;qe 2[HVVWolCrFe:r&@dY&$^Zr"W{`{9,M1x؀6 ,,,T9>ެ/3<х=lGfBq^55 0\ q[ WW`Wɢ\Z0E %\ IAiEyɩV cK R4xr4 +EP/88hf>XdnG,ylP>nOqS(59(%֚!5/ \ljx#|Wx#f9!m %x[qMIfIN{~Qnp~i^JXfjDYqĜ̪bDbHyFk&NgT0200Jy0f%Fr.̼ԢTA j. ,6ךKWA,?3E8,gW UE!5/ +BMxUmo6\Cr]%Ei5MRocXN  Z,heYN_-/xsTۅS+gJbUGZypjس”LVl/Ժb[\0 ~+9*[9\B=I@NQisO5_*]*/UpD9W,W*Hꌼ3OU.b {ʹXZ )a:2"ͮ*UB <؞XcY`EWT*d`s땡TttpKp i"!p`X MSXTg] Epܤa:РcHI7~?5QZc_9NBJXp( J٣h ws&)͢!Dc*jסj-FƮ4+lStލoj<\1\ i4/oLgӻ29oP{3 Rf-? (Sن.6X!i?)UtMS kfWa<n` ow9"a*Y %zNKu`4 >~"`kT"e4Z_Y:zqG^nY z>8r"m.$w. hFm5>a$~Oq> s^t58ܖupg(RTHL-{k=[Ex=,qЋ;E+uvg,7O/%n[9J91X+6.)_D >R4we=:#WW_W3 W_Wu i aDZX'=⠝7j9?ݽhȧ8_O:>pQ y/Z.'*f83L5xb]3<#Y`lEjvKmiZ2,G~Md$s+tVyHq x-GddO )̼ҔT%Ҽr ,2lQWxɩ_\YZY_a*q1H (=1_hb6g@fjQQndYjBPfYbfNN*KbIciHd3&?̴4NO?gPWx,gp)dR6ٖE$Y\r[1v\\y%Eiɩؼ`ŮKWA/ر(RAK3%(1/'ښ!5/KHfqxkrxZ{o[{> ;I +Hd'5"ĕjRRt9\RlP4H"ofg:nw"] e]_D,#-KDIlO^>\f0R,yfLC#"m7MSnE%U☒W\>7M7!18(_̈0E&́'01%KIY1ܽy߿! : PS[X3<ۀ=,v7w`.Cr ngW\G )EOU72B+A8"pE!V\H&݇ÇLX O6%\dd2@L&˫)pHpqʢ|!_F{ޏOeiI,;G7γLk̚O e.0Gs*#:e/}l@"_$=-B.(ϔKD֚2x.}AR>k*g1.#lrξރy۲k="re!Zr}5s1Y"7U^7@j/@CPR^^.@%qء.I%p9GBU (#$3n^< g3l*dv !7rSmXKHr=aV*O]1ս=0m@+a‚`гLFtA4~+5 @䂃miih$6-+敘5uJCoI=)(Q *pg*aؖ4:V\TA-_ =gрJ+.+mkp@rM-*W! @ p g;bY* ,h՚ez[j k#oN^c:i.Ŏρ-a ƣT%9(As5A@^c2*wQ"T\#)Zp$nMR&i`X{{"aYSYys`%Dt+ M&,)],dhd`!L< ϠBh9ӵl 8z*TC`N 뵎n+]:!gF4]q8Q˧w=\6Krѯ4jd7eJ0e)3aMhI|Xkk2WHV*6 cDF21.-%l@e@#6/)ʠ:E1npDW5ZJc)RLdfvʉ_ۛSPAZ {J5m & 2؂[vQ?PrZ%0,*z24DM`WNnazT6p_&X<GO[`ʢ=_XPJZN~^kI;lM~xWea-39۞鹒8w=9BMxp*j_#Lg=PH1/vѥ+$+*pQ>ꏠlB)%VI3J~6G"1ʗkyv**z"dvk}arp^$VͫkNqIU^"a@6gAnz 3IDB]*s e/Y˦_s1Ek}fimլU6?r/$k~Zlu­m`]W<20=wcG8NxeOMKQefbjFlXQDZщBE "*ep2&:yO޼Q7~yt%nƿ` .nC'Qhy|iڤ:)\ӭ( (u7bbhV(ٶ c06nQB斩@^,'aD/k_1!<4孱)os_B]˾2OZ֒~YսB^u[F~[~c}ߎT=I?$ȃު:yPg%](ּ ,CjsFP)ȓІ\g\Vg52wMUB*MӚH;WcYKvRGu1S(⃵Z1C;z i@PA9oڶH8F65E }x6mlɧ'b+I-JKLNu*II-|A x{,)_\:Gr{Qjz~Qsbqbnj^IM:PH/wHMKϵRRpI,I6aakJfI~Q|2Paf^*Qj'wKg敤%&bzc2SpjNjrIf~y^jQCj^ 2LY, x}PkAeMvBjIT][4i ?)F*iLLLM'ixPς'^"Z#B{C5 ݺ4Y˴8#àd2;MVpq͞%Lrqbm\tMjŚGX%SJ$[JھSǒ"Lv͢ ץ DBrW,΅OS8J&p˷p'BY^v qXc[ϣU(QnQ%ҦeEqg 8VQT `JK70uITeH:Og>D(VҶʈ1gn$Gw\m| 7Ld"U Nz#f$w&([FّJokOz~I!?2p_ 9x?AenGp/6;j/Fc?orD!t~>>nY <_o Olxsg&(+:H x}Tn@UhEE, MU%*&AQ6ƻN$T" `NR{3o߼?LJԧ9?9g2v{L|Rs͊R#6#(s2qT.<ڄ4?vR8zkߚ4B &pd" ^pA Na[o<ŦsKa{[{xHA$)ꌫF =E&f`q7x䂕8=eb`^wG:\t TߥPF$<Z9{W8siւÝ;ׯ(&UL\w¾!͒5!P|Nc]-5놎6 ]e¥gBvR-ꇦT\+cORV2FYz}Y ) @9a7W2|])g8Y(T?@Oew:d6x9sD&s]exim Ә%KRK2L 22Z n#xYSH EP@}\tkWj-8 d09Cg ‰*fzׯ6~wy߫vsa?Z>Nppxx1?5s>qM÷[;SoqY2!l NOp(?L6GƬ2࣯tɟ]q5|?m{`D!l*_c‘P°]GUwe$oײ=?6|ulL #x8L@mAǛUEϒv'Rb S0,P0|@ӹ"=#s͘1;D`Ǩ#zHFuujpSkw'Znn7ם @ʢi^zLGi2߰OA졌xf?SfC_:}JȬUIeО\JQ^h ~ HW4C2$ iu9)|U_+mV >귄1:U󞏰hu(0{qڽcدW3H.ݐ&Ɇ @?se?Ƽ~n<&`Z悽A!~ Z׶C;\)1Tؾ!3M14Me&5ѵ3(V V4\g W3ιj[5C~K!6 qa}Wf~<SAxAKxV~ OrEޟv3[?ͪ?%m|,dpiBf[;d$sPRQxc3F ӆt24f1_|e<˹G;IfM7Y.jřsP7*SԚ ,@8 UJ=OmVˤZi(Y~5L09\DAeZKys!bGJHS燝uG qi%~cfpMf$5Lx7-`]+G;.ڂ6CM8p)PiAiqx38x`5"W9L 8JȩwX$3d_ݨ#%n ذF2H@ :J/u<[$gƫn6]m3[JcpEx{abb,By%EiɩN9)Ezvg0nvbQ25_x9s f6ǂ̒,@xXaoIl~EOb$H"c ^&bZeE2LƄ߫a8NwҡLWwU~U:k3]ՍJ"j+T?ڨRW;))F@/HX]$a3]ڙ6s#ڬzPOb.ᅣZ̴nz +쌟xRX~/'t>N\ˍspihzIHH֨rDiCsɚ;$ ٙ$+nXMXwBmsӥQPG/]e2&|t&c9EPÿdh++N_SR*ހ<ܦjnWv0zԹH٩$(@uɍL(tQIxB.].P}`BĆqGݹ<O#$69{̡};na0 >dl„<qpyp܃I%h-l6i:fĀ0H]jS˰a`̟aEZS=]>1.l粀[B͇Cl(`{OU|;Gs4HpUWM.tG֞ᕊ0ΏXҺuXt G&f"ʨ\i1)ib]uo%q $ 1vg ?n2䆗n&uq0 CƄ|T MB]h ˜6tde3YB7 ;;ؐ1cLYaDww;n=cR٠v-r0V4F?|G˝w|w25_ORR̀[#^Fc'H^%:UEVI.wrv}˝c(emcO2 «TЮ0i:0oS=~_sǩ{DnFudT6łT٣´ 䨖]P{uCzS=(=Ty:o8So4FV#xe%+/\UѐB)kF\% 3 8;,,8yfd?;sv>~Ds`8sU[[?~'\EKx}Q4ۥ\gN'#|ScCoum$`mGp^_OLYMԬ='$(L;OmX\])hsme1 <,KGzкM@?tL" [|.þ[dA{#c.KO˚@腡&}'ƽ $= : %}BZO&{8i:`UC#PbTo3SU}¡Cu[ $ˤΘ-V胯6S8 qy?W$?xr BXu|S;o"Ree;kJ`i=_(1hlX2k_AƷS`YC]J҂@77w>eB@* (r2}}/*fs}ol>iͧ0Ko`\L͝euk~jBB MrZ1:JlH2nUie[c.cíqܬveC-+w86R?Z?uX>l;clQ^!2'yV;ىQǫ /![89NDwM0H!Z`dY纨)Ti&е2 :}VhJ h}C`Ucj?}:Xc[ U#6%!r~Sݪ/WL`\휚cGA0KzPC b:u4ǣQ [6n{+~wBg&HyI*Kt ?YW 0}_E H>!g2Z-)\k4 4cN1?&H&*$;觑pa&1H͟O4[l Vw8lH&,5-Q?.,]%GG7a]vgI7G6|^jWfhrp)yDX~ahH<|:}:0ݢi&ŰZ|F-'i3{T+9 F#qABkfVDWmP}8F|O=$t行s3jCNɌ ZBGȑnuzo2{V)z7B5AZC^"A~43^+SkV-Q"B?4"t  pl dl3^G?ٲआ;?l6_/5O}pU]@@NmBY=y\BT] P'nЭ[dw1`I]_|r>d Ӛo~uԴJ[bV#4BovJp YH`Mfi^Gn+>XɝL{(ޫl0Yz-ѺnXeP??_̙`.Tc<+MUHRS1\WWfKI1Z?擟g}sǭ ٟDlpFg=n3+1?Icc9\wqp 4AIjy7U+l wZ|cNf8%Qȏ'D+<OE(VHq~`-|oMYͻt˂V9KZ):E,oΖ4(c .196 4Ӏ CM ~ҋ{Q?^6P3̄2#*wq[q!Te 1SoùNCKy}m\8G c .\_Qk+GP]D橩ښ'u&zPSI S/-nSk:xW_f/ˍ&NNJ8jeFxIXgq>s^ f'D)c~(?$$WG-@Q]o/S7yn%1D؍Z^SĻ:G)܁',e)زw]-[6A`/b%`[[d b)}^w( ?9>|[>߈CH p<<@+ܰ@f$Z|L 7 ؤ{}OAoϯU< ěG ! >TWOЎoDjy3x!; ;-̮L{O\CcXi`k4؋vUd g Ao\,xxq11A`܂ĢҜ'B5 n5x;xq6[1ſx;ks6_љ&"˞]VɎDLT.Z%)R!)ۯ ɞ<.WJ<h[>4OC h_0$ ;t6]$?&(^yS?pLt>"Q8u"rQچuŤQuciz'9I#gq ?oچq_`[ C\ϙÕ: r?ݗ@ȟ/Rљ* ^?&9^KWx~(XV m4mDB)2qh} 0ibY OumMWq*՟F\b;h;x^0Cx{/9|Tx^Tp˟FaG}Ia)_/o&,nm$= g&j-d8 "&5'9&wJI,~UBҠO>)y(ZΙbr0@V./-08"JE_D e[Rge]*X^'wA.̃IQw1a nFƭ[?556d$.Y;_4͡fy)`dl$#6ؒ~ș*l: X4!JZ]YzF:Osf1+Z|=l񓓟VN"DۢѴEggV +mc22xv{r _` v:_h%bAF[Hz`9aA5~G#`Ή1mNTC S% Qhp{ii[( ;eN#yfFEu⮣/2P/(v)fwa~3Ti:8 *m1%aYsh.¦ 4~(py4-L udQFLP.'zv )?թҖ)d^{RȺ+ _t.ɔ'\=.Xby5#Yi0yawH #VC=#G~7oMz{}xSU`aNd5bUZ0/3-8䒳Of:4VdPC&}sBTRMIA2}"?c64[܆Gچo{ehIo*.fS~NV|Z|;EJ{:{_#+=?;\|qO(9?]U=ԍ;?ֿ3 ^m[cv)dSdc#Z0 e}E$tĎjdI~t{.1^ͅ>2lRjJ(*m+Eo|E"ۺ%X5ƴTF{ڲώSbJY)D=m_U[Π@5$,nX~J's*6PXߟZ$sHZnD8$k,ض.~}*:?>Bu 1xqt[,+LIFSn0k#F7Zt@%6SOC-DU_,_:!DNbOo ́V1a~+BJ0Nv(F(sc= $zc*)tyxe9`[ ]Z'"{.ܔu^WpSu܀;m5Gr,@'gN&O`t1څ;^^B.c"=FN3z?C"C,Xǫm+BnMVHRҷb]vT^ 1(:>V8aZ ^1!6<1 pf̩zQ$9 Ӌ&Ǖa^m왒&ݱ9 |Z <~ hϰgfLb4z8 OhI0rO+2ٳDdl\_0\^֨ڶQi nD" fFe|%sh̬!9qmm{Λ٪>k:ԯö^&rqBʣp쾄=G }S"rw MeϑWhLE<^djҐ DΗ?aa8ѷ%M!flr&+7Y#-tVՎzGbC*}tQ(NwT+%hf>8O)Q K4 ɽ/6nv^>@t>ijޚs`j dQibthx/{ՆlQ2{9(TMJHϯo6Lb^a-#ڋ\E yNʊ+jc+WEѱU}y=#fbfy&n9TBihpT]RU5+R.P<鱘AW]QKjJ('aQ'muo,leǂ'Hmrp*(HBgq$&O S4Sz_CEPe "27B_GXch5r*b5P@˻D/*?`KV\y ˩j w6OqgNLWÿ!Q U3bgT@6N?.\(NĎ,-w 0L %y@QS֖Q&lm*.t3/-'X[e0Yc:*dWMǯy zWf)y쇉*e d M=䵕#=ze20;4 ,2lADJאr+'zVm d6 4H#T"{)iڙDC"4*epK'!QDxZEᤚ}#fBH4.*'q8QѮ\1B amdʼU"i-zs+j3Ugh˄G2ZK ᝃeOE~}Nw{)Knq8[qXnp` )a8FnJ#Ըdoc h&gc_w]eX7`)X`3s)9dlg[_zyc P90ݤ0B6N8}m~ITf9?xSMO0=K-!B#F)B4h+Vn2!]nKPD ?%eOc{kF|4QP#$%9hsW"f_uͱ=_uRS-͇ C 9Ϋ 5(3EeU U&⭼0Wyf\ mMR21UR\h~Nxz>Ne:[$6g,"܀q%f`7L^ը"'$Н1.ؤl2`KX1Ld4ohbrl5oONO>`%zDJ&{QV̀?Wxw l<8}]ýms}rz9~}r|44f9nqRoJ8cs]'8a^ &hgOB6SNzbґj)8ʅlT`FK?beEymcz=mG R=V[gYE͋d_)LUd!_~UE-X,?/9fp%1EV=A_}Geu1vk+$Vk=x2f4E_J5b@ǀv(,!Xf.&袘e4漊\!iK+vXLJpJ$|+ Hi}j\Ph15GfuL#+h6"hᡞꚐ8S$մv#;V8ن"ẠMaZ3`[$I/"Ogfb5A>LJX)iX_ه*@EAgdw9'<e"C/ϨI4aD %RV%ޖ/~л2#.cs@O?e Ho=d ÝEr>x_>?DG"♶m5THz>> KDz L LOZ,)0YyQOJ3G:O>ڥdjqttP?!4vc%+DSz FO i;Hf\46TRMz[eZ 3\o-}$$Q\ƊK}$GvRYqi9?H(Eʤґtu4^ 1i ^~QjD7j<;If G( ?"T]E?h GUS2w$qBm>i3",&ܒZ'9W=XN,.Os%/|J ܿHkg u ,K!dMKEZ&kScE  F]Zd7Zk@@<G)^+vד2he5:pFI1w-A!<2(k*ݚSe +mNW2.`dXu9R`-NPѓVOSc"9q8 9ɛKnoTVYkr\^GvFu澓pBJ*&7QT2`a£m Td ӌʾEjz0Px$.H!9,S!Nџ APk7\lHlB#u ɤ*ӢNWMs<).6-B4.`!7QDkf?|cD/5h۳5BTn9{~u^C/B!zW6J?X289f'og1jbn/~/HӰgLEO8RxR/f#>GO|5CM} wnAFү߀)qvD˂ma%Ղx3G(6o̓o:G3c2gyƈ?|j~L$v Xc^?#VG8n>!GŇa/D`ʒOSƔI5!Ua~:ÿܲu_.< WoUUS2fͲakͮu{Mp[!A.fn#XI//59mh YO4OEvK?Z0fn5Z\]'ߏ'p[Bܻ[/ ٿ{hHkU%:SAT}{ *͞@9)m-i8/m2)L1WWwKSe8;F5>)ga m{ܧ8IX%xk-soj5v\r3V%чlO } |N`SᅉZ#lMRKs~XY7o"R/\Z WC>$ݠ'AeY׳wGéWP`5 T!Ԍݐ풘P}0C}+d@D+IX<͋0a- a͕|`$KV>ӭ„Yr*pPgzAY>'dv|5 .J9@o ( PgEyӐ)Q7&s!yWA*;5nW $bT3y߲IM^kHF†ɑ}+*~8* Pv& g&b%f*UkBX u(}YȁZPSJAymnY LՂ e-B_p:kBA) 营 ao F6qbk!YCyRľbfpbz^S#CƶKJv}&.THVٞLebAe\(O P7pr,QQyߝ!`C X׽Elj2š>LZGI7X@DPzI\ nnE]1:YcȐ\|uoj$|[={)HAd * u."JS׳}!JZ74cLUT~`(^cMn.g[rDL۶4 dT J^ p)::d$Ѕ9đy!\"OQs +!n}f]jv:@'JzBRm/T+t`9 ?8)R<0tg.xR掕'tjp5e[@5j: 4@z-o>Q}$3]IyԘWe0%8J+-4j_|'2ɥS#e's "\[F`593, JDIZ-֐e׷j@}ψn]~Iݪ11vvʯ( \[ d (Am=ȭYV"v%Fa)?w4\P>b*q|ӭ,O)l @1e&P(۽Ȉ}(%1ķt"p/;v*G0 ŏ5.!v/REo3*/ۺ{W@AԶWQZGԜmT  lm9BJ\nDo 52J:Cb1ˑvu,layL@,,{2JU:6c(x5FJ+o!I&04pE3 E*lbD`fr!JJ y27SM<2VV: Cq&'/<"76# Yѡ 򶒙"ܗC_ېRʣF{=ce1s"'ee>;0N1MJfB)){1`^-2s]i4} 12@caEmIq4Tغ CnQ0țun>Up:?!d[.,._ lQ4zf[+P6CQ#i#Iҏ z:ߖ-iXZnЕ >ceҭ=%_rѦ'Й$8td2mqXn?vݳݵuu]; Zsi&QB;h,;;s;ẹz#!.1a$cB~ X=mq>ccw[) VCyZ,Ć-2YLB˩F#dݕCi.=j**۵erHTP=n]E$zd]֫E|OR?cYb3 s/ ]- Ba8 ,@'x.2kZ.[.S^Ɩ#-9<5r s4_l؆t_Ymnm,1EF'0:LNqDR\8ݤzWÁ]6ckS)rVXjW +fRzyb@,3Da B+[mm5Tzk ޲Z7ٝH+e`g˛Q7-x#sֽUU5YT]'=5ΛedlI?gOf98J fX,jhLy)y4iTzӽM6C3>qPƳ4J:3SL Gעp7!eHJQ]LC3tj dѭ˸c lCyȾ)֑Kq"U2b>aG.C+$`e%^!M4E߿cOfY5DfOu9fЉ(> ;Detq:|-t >@6vEĆoNPhֲć^| ZvܤE"r4v :wK47IRH$RyO"*2.]!HBN*(#"T B?ɠ%|:Y"'vIH3ׯs2VC`f+2-f ]B +u"`$'h1 ȂYv1 b%Mݳ,4¶V523o=pRWD c^.^ӡR!*Ҟ/NsLhJO^#y26?+D?􍺫Dy&ǯ5S1X4? ]~-/TKf:~ݚ \UvEV0~=&ݚONџg1f1{YkEdL0(䙎z]r#ʘx%\B 8%N^HD]bDTV)]j]ϐڼfz`Pkz/t;[dtX4 LczIsB |~ XsQ;mVXv!T{VmrQH"XtOp"EиD]BW/9x`Y=ke0s%),4 j'ZG[;ǣi殔<8ǚLb^I^^@IܡbO1?k֙H3 h_p$=YFד5/ W4 3{.Ylhvco.O?1jX5@^S7cZ܌ f7/̫Om dq]@.cȁH%^cI}UP) t+"+}y`u ySY@h[k;2]5:^ `q.L]nkA|>qT$^3] j;60[XkٽP{6mBs;CdiΠ}hƗ84ZX kau5[# mTh֖\L+pP;%o~v}x 5aA9_:XtJu{he! NVŧM0˼a)nU~ (tY^"8&Gas)rX%6HD6}u=X=0ܙ?%t;!T8;Ds%&(IB}R#D >WBD5s8&OH6g(|TU#jK2WMs?l>Sj[~u/,3)k&nʂhT7ðwx bb,E=$&y@$ 숎ZdZ--w>AAу, X ~^ws^g%y5Gx8X 2w/x GyNA*>ؕ5ڮ}]Yn(xre 7obVJ9HEx{,PlZN.PϼԢ;9W1s" E%x{(_lC0p^IjQZbrSifNJj^lˇ zx[ez7 ^IjQZbrSifNJjfO xioFs+^TGXM`Y]mmٰf`PȚCҪ{s4{` 8wu"HS* GTHe$,#o|A%%;+CDZEt#2'aw'R2|JNyDAx#$ȃ"_r'L{.6|aȏ]hm%!_E j|"-XLQ49r6r"wbREBʜiɆ$ "hIJ\yIY-6HށzTH[T#9 ALyBrBddKvH(uA;{㞐v: `&UfDX"/y *-&(fqL]qI0y?xy3%~p}=O?0-GHU3 7 ?R8(h d2!d@|pMn.''L(E6^m;F4XY?f ^eHaCAo bK=YIx#kck՘葿T<`I@-i̹c~1 d:ZbI%?8{qwO,S%#g7ɘy|($C0^=TC)A? v a{%&-=r%xC?4 ؀ό!ޞ0\'Wko|)k! 7I*rwww[G,8^!D:HEd5ꓶo9DuDl T)"'vFyCn':7$aq9cKdicC!0DC 6I@4dvh1*"wMz3^GM~_&{,x' PA 1Pj.m-'Ri GISja'҉v,"}"77pY@.Ȍs%M\VNt82LFgդ\,XjQ4DC?&#Jfaގ'b5q0 ™ pvf|隋d=:Bc{R|60+}I*3<GyL߳$穖Dn-BEF$}~z nѕn[(z1cn63ĆQ쇈b'P2TH藙@஫ Go:D9CqABU_ C&x٬#G!$!rи"Z\E4Y"pߚ3h#kB!,i,U6d'C8l<TAxn%]Zq)k+VbL&E# r&JLdO =E*_9uz X}<97ob91 )#lh8 !#ٔŤD\Ie<< -",)%VF yby̌dCyr)oD ?ꙿ0䥿.a6C\ N&xLUUҠPXVIk*VK(XraQ0=iuz#SKYI&/DB:l}]eS?A p`rݐ>0RJU\n \:JHOx`)3]BO 8%lArgtI/TYi]w( \̓_3U3᪥P%9 *vd Yq ?$\6X?c:1@Eίx&A 6=kZm>W[FjĀ Se={˗ ,9ljAicݣ],_nhb:3>bTfR&f/XE=QOr"TW.=4α#=2sy`էa07 0tu/Ji"ѽXUBs ^&hG֓S,G}zjp6y7f'mj2,@O0<‡ك:C_դw``N mQJ?:^ &'mg mN9$AY|#%!(_ ^/eLNˍ< ΚfpqA/pP:ӋzOTHp LNMYU4]}`-3F12iʧHiNҡVǨ4Js17WIwQ}㓩.JRЙl,iǜv`fsvllm~ fo^a Ի/.'Hub˓5YIk/դfRgxRնrWk;Gj ﷁٓxIk99*cBjmAF>?RX◽n w9nzJFW'';:ި$!eSrBNYʓ HO2خvbmyCFWVѧ9g4T7rt HpӔٶms=ԳY58r}!k$9݉ۋ՜4|YAgYv[fkRw36D=TB|A,?[kyE/g Ov7F/ -aA?v/Ϻ]Ґ 9«_G1ak!H'fWI"Tjgv^]•mLҨK#U5tOrAU]+ٛs>sG\BH5iޫY< 8J6%t9b<-5r1t#eC-uwȝiq1-yHoG<|c)-VȦv 'ϐ7*ډ08>@'rL2/O]"\Ŵ\-K nϘU55cy ry+#!61ɽ$wr[+Zy`߾:|~g exST_K=(7<3/%<$5 '$ubļ Fˍc2JRSQU*he\ e) ũ%Nũ9V `ZS!9ʚ!5/E XL'(XRqUs)(8(ėrӭjqqqFkx[s]w2xUmO8L~ӵ\/EmJV+rnbG[!8"v+P{?tN J&ي?FJoK#4܃*ZR ^> C9*LsRbR 2jy~iS}F^ÿ*c\Z+\6Wk*ՎT~I}fypQ@ii0K5Hw it*PR(Yd,9'e" b~pw] Ƴ]+(@dkO7Yx~*`80t>3]n r =N1acnVAzY ){xOHA^˔\9dDRIqz⽕.&"1-3)" m&-R|Ҹ2s:O۵iIɾ uZuul{@y BZy:^`Vs>_Z5{t-١r [u [p)bªOO:RLy oT^kUL9a*/ٙ䆍C$a{4NT*9 oAWB!U2} ͟OJ)U ꞔL[O4C.w,/lXZZ s{Bb.>:ԇF<"p؊@{TS`9IMDԡ{Z $2 yڨHJboӭt0k R>(;FxYnjo $c 0W+ҩXqH7#JJxX]sF}.vPIi ΄㸍xOfj+SsWZIؘ֓Ġ{?:ʠO:~D}Hf-6H ca4IKT@Ze&Kk֐J&|5a"a3iN+zXNzӫW4;I<]LBoۍΆ~.2~ӛ& wh}[탰Opb bTd.fʔuBi2e5l*GTBP&#*Pg tF[ փgOf Ym [/H2&_*O* R!?1/6"pѣ pJ i5ue3)݃ŀbM )B@'ܩ8u5`B/o4|>-FFnq*eJmX!VD&[pu>|ĕO;DA<hz=1݌nn7)QLVpcT3҄*v2GhGR=9A!jCj6,b8 YYI#RkJ=]P1e#'O R"3E1BTk{m,՘^k ƜAJ8$f_͂ۖDcR0pD DV sDC5LdzD"`莜_nŃ1S'Yp[e HMEhyF Z?jiK^sp>﹉(RC42^WnjϥIubJCn2Yt~dԳֳϨY!u9N5yl=DL`VX~?[5Zwk:{rcRB#sD+^3D/h- pQcwR#R4/cy@iPۡ*s71WUN3(>"BrQQҫ?? |&Q_&46F=$5 /+O39?#*oW*m`rb)F o1k0vGGо*j-b]_=v7n&zƃKU1gv(D:u 1 2k.sSS.J<unrViv@"ƴw7L傗?el˚8p6b6ky;A!Gk{5C;Ncxd}CiӧmϞ*COXxV-쌯w3u@kzn++KJ3 /gt\8D>&]>'`=~޲ l]/w햏Wou`^*8z.(K=@a -L"tex7 KIr99W-%~qO"u}M}vBHR\kpwfh. 6e^`;pm#*4LQ VB 7XqM{;?\KP\^^5$ Jj;K lxuk cAwff1wFCxUnI}|E)^Dy0$'8dmȲ" 53 Qwc%=5lo,lCM]N:47lK.TegEm[g**[8)ihga)]Tph&oEȬkprn݊P[xK,>IV"#,lڗd2i$/ dgt .w*;ߌ aTt.0i:mf+:B&)H{P.Nh^LJR%xI3Ҵ/Q"уtmMY`*"0rG`" v/o3%e2[ 9RiMSI /g ]jn/-ăAݶ|T*/B'LX?g: $ԽnupHbn{|z<DCL tpxV o1Zx:LV3:0I#x#W` f.ǂ ;YjLxx{ SZ_K/9?'H=(׵$583?X/c"Du]60jůF\ Z|gJKIMSs uqujb|2Pif^*'odaO^,^Wa吙WZd)\ZZ@*8g$楧+d*$T+gd䗖(d楃eK3KRS2Kt43S4J vB qRЀ:EAKl5t..ei\C{=xys0 cAwfd+>uxW]oG}ƿ▪`4}Ip8(BݱwjfB=wv_$o2ޝ{CJ޽ʹ*ٽivu>7j87tj;a$"å]f^u]DFNӟ:XX1v_p."=}ϞO}+DYTsa1}]Y'sNʍ1scV1h DFF:F9G"TjIqȘFx If0[Q%m8p!3 ;0->2͘THtDw*Mi$r\ ЧՐڽ{-FmVdiJMT!Wˆ?[8?J{~Ft:^M{|uUb#R <ؗ *?1%b&QHMclD(LI-Rcʴۥ;pӍإ?^"Mq.TkKG:n6y5] ڜSVYeQZĒ.6{6%{Ɋ)yЉ~aAH/f XDP)ڣ=bK zFĈDeCf*Q Qkxiȥ`mpJ*wi}lNR#m:zGo󛖿‘NTw!{tܢg?-.x[}׫?4`u?2r|D563k8-!0M>iY-bT_ԞQj+`t=f i3aX2EKz]C&7 = U07t=%L\Ϥmms1-F̿2@VCC_Z橘˘E>6:UBϬ.Ei70nfy7ԧ|-Yo3=>Ji``\ո~~h-=2egwnη٤Ő, 6{o)TG2KҮ2Zg5v#[@6w:AMݯp}"$(=\*Т\| Omu$m5Y;ߨ=V{^LKC@4&NG.vhW`JmqAZ7 e*'^WB2:qc,Uk&ӑN %$b̭6ߙ" |+6CIְ(!U+V>% S_ð::'!A)z $ө[NѷP)a{MRdD; 5-87o@b8l@hNȝ=Ix~ŵa3cAwf^̫goeoxUMJ@YM *@GY^SmJUg5 3w6%"6mLhW"ey≞K172)wEx{-xXpfMҼĒ< ;.̼ҔTǂ},r,T /&C^:j Å7 8"" !}yn<51NP]ވzozg}/^e'ϻZM!L1c^NT&R澱+4v e@\قQ&7V`UPŐXf% q.N̑rS Nw_5`, DNȜd^c>nWGt'+͠G)Tp3 6yP<΄ңOuh<g5Cr-8#*qL,a"/P:y&5yJa!SapS96{w~*Ck:G}tP&?46s7 ' %xJ@AM$Kk[A(\J{%lDA/"BO}#_@pT* Gw' ŔMX;ekI2z) ?e"=f:+Yh9aiL,B ߷`WsfDTJU7pD~LHXNy&˃kvcq)Q(@6T T l&0UJ/ 9uTK=wpڄ@/ɖ"1:eJ^VUW@/*_N>>ʚ-%0&Ђ T 0֗n"o׭jxUmO0L)ZF>T-֗MěcG}v^L#_b=ܝ@ 8Ǔ*v5[.~K3LK1_L{3Fg8Z1YL % *՘2]-d(f/ۊ[WEʤK'Ъ 2YyQk|@l2$I8 6#L*H狟h#c҈%O&Qt }k I7]l*(ت2I)4HdJbA?c¸)çqz*-J%0u{`wJ盜LNE /l$yCֿOX=fx[;w7d3&A\F A9św32NZ*Q0T0204\ɦ ZEx;w"F͋Y-'f-5QpKMR00W020Ŧ ix340031Qpstbx@B{Z8cI2Z}e~٩i9 {]1[-Gei/vTw,L $17 a\2qs϶~1>6 ENK}hs8= r2K2SR2At^gF=>Jݟ=2דrbw2$s=oe 8 [`.JR7C]W86CQP_T{iY D>;=]a13Bm~^^jrI~TygNg,>D0T2?Ȼ}ŵo+Togs(\ 0RAdZtak7nmhĥ P\WR4yްWf:Ea.k猿m]ݛ B+t'J"_&j~ujR e :zNۙNZm[< E o;55K[R, s/ST~Cxәm5܋b*MKLO,StmL>]%[}.CEbmn뛚z?dgm0TU/?:z|au#.PPimjZ \jSon5^[ӦT˰q/*Pi7shʑl3m{JtJ$gU$椖W^O%?E6[FCY.?^bo߸*흴dCe5D,䔦g ɭ{:3ʋ*M:u/rb_/cPUY?[V'.3V?tRtQJ>ΖeJʀ J-/-JNE$MyZ'*Pu'p*+w"S7s}+b}`wp%@C6 Ԫ%ػ?Ue#}['6qg5(7< vo/xE-.E0N9La[ a/'$(-19թ43'ݵV8g' >rutue?;~¯_l8jUZT mm~=xhJlCG x]ms7Dػ[[EK[YҒT! gyOwRnkS% h/fFƎ]y(rg]Kڭl]%d|eWiU颩 Z_2XzK_f啳b\Nx&&761}^6ɲɭ뭳봬j[%-靽qUJfhTk"!faE?I%|,B#S9ح˗y[rtR2t|Kvi9 WvMKöDŽVJ7pN=MitDbT[OLfV!Դw\^IE|[yrW&n1A._bx1bLH+UCØ~CtH<[$*+ЉTCF+yuHnIT윩nҼZ d*"O<.sMC9m~ A7(+-her!\\4fU!BlUI%Ͽ%n@P(0t밒 <)UCOs+‘49 e%% V.X]hϒ]Dh|>Hy{|vt}_gWVZӋ /Tb]VG TR0py5SDt}n# Gg$8+l,HCʼIU"I^R 9pyKߐb?b/+Z͇VT &`PP>; h< } N3ݽ h4-?L!aWa0dV a :"m ќJ(!"˶X*wJWUvGZ~/p&@QɴǾi.|$aT1P4E]>gĔ溄&՗-W_2@_vI phl W~k!l`joA ɐ3i)Ł,Н*1^1υ3mb,eʿ"`0B+0TU3j/:>o8lYGO!ڂqL?!oy GFIgv`O݋Yc1 )XF!$1 xtL]M{Ia5]l  XҼH,T[`ˬYa J˂ȒSڶzt1<5347pfDoRRsR!2` 7@8T a1s%bkKk4&/W|B$]&,q0G<}l^T!^9"Ye5>?˒δL+InbzEw Kh'±*nRE$t&=,2xĬ  gQmUaVs$>V{ȼ{3n`HVdY),Pc+ԃG$\IUpx(O(qMFZCDt3:l]:OLe `9DK"Dˁ})B'y\I4x 5|Lk+MaëuD'WI2 :F)t`5X@ Gxӗ70x-%e=, b2 _7"D5` 8@`O&F w|Pj`BY켘x3%JT[bY5 (;sW(V {vLwt!Er{|؞hi CBїޏ)Qvm5I荤I"FĤyA:Q1(`3EJ%`f @MRоTU@_I0Dgk 4 ʒFOHwB*gLNbeﲩTՆ% I-+ql)=dlvD" H7%-8~핽'w3{}7?ܾثl>{xǻr~ B9" vH\hjM`̀Y Y 6 R<&NKVlxh9su-m𹲍Ψ1aTΝKƜMqVG;?qˆV0"3Qr{i$-=J Z74\^%uB,s{FUi².Gʉ$T!3nGT"B?:+r3Hɴ%ş0AUTw*H=xS1Bw`{K8f [~4+Vo9 !cU.Kg6WB{9Ė)g8W :īyLΒ| "6 KA A$hQt<=9^@fmL^޾ӌ;oyrvk0wʼi7jBs7pϤZϚ9#rNIhFwMgLx^"a\LIf%'0ЄI,rql2 \ms~!j# [VG֚BŅ#8iE6\Dz7Y?[If7VN<)"E."5glF=_<%#/מ ;! :S)@6/{抖 NV>& `_%7 noWx'U{5[ 5 Vm.*2ȤžOpR\RkQTYfIӤo0>$TA3 f?AUɢ fک{LLX_3e;&H%5o2b}9N4tD3^ br?ņк@}ʉ&yJXyZ^\e pu0#3  1FD:_ZESpeQJ$ŞNB(/dJmSF!' @%:Yw>;KPh~%x'xgr9aڳ%T2B(!5m^GMa&Da 81t&`%0RYeq>"O/ĬaehG]QedDQ7mX7&YGSNfx;#]$)CP~6y]#kZ Ǘgh"}/{20ǘv{s+&#O?s1PL1)"}^Kz19hy&q;4t K,ڙ"'i2%&&9mϥIG2nS$nhܭWAQm{oz™T_8569|V>t; +mhGzW)$FSE䍫$cX9Ԓv:JDi(ё7˺.IzFSՎɲ,iN pН#P8P 0.ۋ8vBa ynX[V@"KOV amz'P݁$B.n?{>Y!WЌHxҊ@$g UAיP?mIb}{_Khm{RxBvB/xaWю_,)Y*<8 F82 |~J.3YOt#wvXNMdgBҖgvH8!Q#5(VZ؈[ skswTZDSi: t v Dˊ@VM*ﶛ۝&jEԈ` Ӵ[jq)O9֖b.2eH  Wo~O"LbN<$x% w7t*], `HQfK+Mi+65gEy:2Cז3XIH s=tz1ETW厎K![ ,vтN)Qyd1iy`zUUkZ:vK_f9e'0˳ ⿘m6r*W @ +!TUHQ'gbI Qےu*m[bgνq(ZJm2)doo8M^!gWHi?5c3&m=shH:!bBRE7{糡?WLTqe2À..Bkibd.+.9.RUsB #>ﭦ %@9DHic{NuKL79~ gr7HɊd o%RODQc2KEUL3,ʛ-iu셃w#A5l0G:{ةxLF DG|iCH#'*{ST0A"DIdykߠQxkϟ uuT o%ڦI8HHu:k峮BR iY?~~v:R^>ǡ%IK5կlY WS!MK1~#uTiL"ڜ6{9혰t'I᜼{bD5`'l tJ_]Zuxhfr飊^U>+_)Q//mU֬6 jCK#/4_#q~ZW|^=|C b@۸b`"Z1tыRʈp߱փ?2KtmȗP>zUŔ1W Tk2R['mMfmЭM9\z $Wߏ>*!z|FnJMU 5 ẓO~'u,`(gl3,aİisPJCHW/J(5pi| ^IW--Hn .hE3h|k#MHv?yLdѣolq:FJ8 Ott;/Cn|9zLMGv2b\xlxq1F??M@Ƿs{?~4ۻvtOѧr|?>of4!rfOnd>} pws5;?M hGd<ӻ_'W=fD4{>`o۫Ox?x'&1rr{ypOn4;m3FA q<%G&7Zo\O淴n$_>܌az7#$dwK;Pa&"G|N":Gl~{@}sa 5W|+.efF=3nnW%a:M_GN1ݭxʟ8<[t4lt5O!]M'#`lz?tx#O% ;g,@? {KWP\i%y}Y@ݮ6g<,cmr#WYK_>olKP^~F6@j8^1$Jr*Osw "6heV-`yH}l$w~09S.q]7Z·tcx}VRY!gp(/6Hjoj ׂ;W*d %S/H,זF"?7w=-/x ` ZuvdmT5?3B=ڿ(Wq:8E0Vq:Oп?צW w8|˥nqÿ\-UZzx6e4^s a ~ӗCJ.>Û*lF,{u4kD-g"C psyw4"5ۭ7!{~"'Ƀ{~<+kO9:@%p^+/p\e9wの6M>Csk=U ALPgr@Csq(Vt [aBߧe@d4 9%#AS ECD|ܠe7y 0(4D -:gys"ր`?ეn%7$:iEMPs ʔEƇD!hm>Y o$[V7S*,=*"cfn@>p :pXY%ڋcoI+/J+{n>FqX?@I8IYmJV'd-2V|)wh{k2Wg0^| K |NCd+h)xA^ ~ BX9E*X;aK9:J~O8!fQb t$"SdIPn4A!K`=$zIKD0Tl'*%9D xd#3T݃= cSe#+H ac `9[jv}#^ak{c ̸aF`Y5ݵhC9Ѱ] 1ب  kF:}bx!Gr+9H>-6rI9Ued_y#3YmwS {0p>eߏWNq~M=&xkBWkBz~Qf}FvV? GBx}caf9=}ϼԢT̜".΢\ݢ4==ɇ0L.`" oDx;ȱa7dqɻ,xUn6}bC\PmbZ( d.%$@ߡ.Y'Mib9s'Ͷd0BVNN&'[S .ϯ`!yd a%*cj ^{71TZAȢiVbe$q]:?r=)fʀ-Im>|[cKJ F}cRYRf?×I_$PUp+TدdNCW$ o9"spG[[YᅩFDqZFLRy(#fO=4;N:'Յ 7:WfUFzdǕ1thS9(~.KЬ{O(Y(l s4Il8 ľ D<O&32#9ʦa SBFb(uZwđ?A2mg9xVko6̱we7NUvǂ(ZR@R6a}d;e $PD{ι/RS0IJv)@[WƠ ߽C3 CUʄ9D2nW~ai3/N5I0rV-˔j*tΟŋG<R.Y0mAp=^EQJ٥NvaJ 7Vei IGiUӭá5 5 ΍cs/(Q37RFTw;tj ws GjNALMJJrw21z +Y3Ӭyչ>^B}^KH<m}}<Ti[N.jۃ b:vIWfeV xx.:Gh>#Ojqqjd=f#=팼HbW3@1U3zs+)T+d)e;$+$')&d*)$($(dg*Mb?Yuf\| ~ Z ٔ&rXOa1هbaNO'LVRRC:Nx#tK@_Kɱ '39$3?o#aƉGE6?f|X\Ra (hy:g8g慤c]'mP ?7֪uߤ?ihIFXICS`6yOto-}5iN}D&soϟv+Rc:nNxy;]Q$\ a=KeyeTX"cu@5%E"'+cUI񹱔X%[r|*K9>op"sxw/sii*d$ DO\*cZU8vf] -=KpOW=M2LxN)سBI<5rKD5$N&n3=\)ދR*U߅=7FCkZlbMgcUs0vs[i`ea㘠JŎnԮ"=DW[MWiJj^bk/hhqժ~t߁ u۾qj=>A9-+ԑ̯Y eUCGK^Z#~qov_e[BJ.ސ MNASdSX|SqwF1몐+RgoqD1/rWXm<_4NE'xOO0z7?KlDX<6 DTdok։xgGlǿB6M{4:>9O T*J^ TG) DŽFnrN7B1b9qǞG !)eWIa(TvO(L D;gbjy쐕iw>+s0QB \0A4NuEj`HF%=b_qj`T1,Ugp,YtOg C8oδ%mxo,ϻ-\fk'8bۧ*(b4Z, 8KL=ibl1ɦ,k㬹X 7g\r2+h"". 'IyLKO\\ӆkgؽU礴9aֹIN!R;壁зl6}#8^Bu 5݂ͤC:@e0 &^M9Lg4l'qh-=؉OsDfvx@ Xf1lÑ 82P9eJǵO"!9=kBBQHS?lsRL>eHB7"M>2։Їt?8z;2 z| G0KG 9}/n!0߅!ALP,GJJ@( $ 4a"CO|];NrPHa1퍘79#,ܽ` ;PYTTGtE*̌Ն7:jV| ^]QtB.:T|R,kEZvXgSinh'X@s1JϩPyCc|vt X:\-CbV5Nxlp[{+nF?Ҏ)yc xkf¼ɠ n'QWME9*8k_ϭ+[$Үx[$3Of/fVҼ,RޙY$&[lb / ExWmoH 1I($ i MRD\E|X5rٵ4jzQ+6kpiO&sk'Yjjdҭ!ǜBd1sʀidzod|N*nŸ8@&ﮘ(ɢt3!YW?1[%F+?Bq95.ܛDychIfDIfiV*Iy Pi`2hf*1)YBhKq$|> i'FqV8zu,xs:T&cPs⫢+Akֽ709BLQci4$:oHSV#X̤^$l,Nw" 8 3σv^5"%''o<TKLb4S=,VB:B*&#teGJuDGGGp9Y.!|EiLO G=i2wRa6w7ɩλ&}\bY '3.EۅJ֍ZWeo\((մuۜ\1 _ U՜ӑRdP"B:G󫌯L8Un{YK&;_ skɾض"BI)ުo%ժ6SP$\-[bo|4"p)al%"S1i,i.紮)bZpz PKF۷mL\RM*]SuX0AqϹxV#}9l@tS8FI2()loV}sRu=!`ΐ]fMiL7 y̥oj_!ZKh4(6+s GZMt[<0#KtKN!0ܜ&=g¯04U G]Qu2):k+w䵥Z&8v(iGjقCQ:5ĔGشs lB~%VbرeEw%e0vb^>&5;%.O%^7tAyDPb,d) ck=Ϫ*|3ۺ7%2!RRX=kcnR S;+volW˥FWnQѢJY^~Zqk/B6p |O_ $_d}z0حbW[F ۣ᥄c*mN:L=T""@.͈@➺Uݬʖ잟k.o\ƫ8v䤊FCm'?J S~s{a)94aYtpʕA(q V>[̮#GCa{q!pXχGrJ.'fHǤ7kEPRŭJP`hUT2k a-3wtkK]N6T[Eg5l_Xw WgLQ$Oq?86!h KW*g]Pԟy2%]ibܷ_pI=$ɘp#O/xA:^6``dx;~Cu"Ғ"+J<Լ|tx|2PkǥXj`d``,P_y6foF"**|x?K@qbAQp"lV%"%B;I\I.]D G_0IT*50['(^m?ީoZ1~Y @1|֌^}C+i7aɐ$t/~w69^Pɡ%(駄z+yMJ LU'x*7'ь3ἑ y,E3)]A:Al%nRlR"kV6TM`H<TC2\ׁk\Ry }=G[~>.?xkiٰY-4/%$3?O/ÎK93/94%UƱ;DBm~,xXn8}b>4 Nž$EQDZS/;橠%V& JV3$ucm6ř9s;3/.U\u@K-!|wi!R}dH2aV(y c\g+͗J$ a^%~=,Sgdu=ѿy& "?L[P)\MơVKVt.%&=R3 'X-EuLNJDZ }lr2d"\sc\nE.b1Cx 6 {&5̒ Ԛ$w 9Ft3F2ԉ><ȏIo{֟9[*Z5kI["~p3 Hb|=ߣ0'(t}uwi4D`qRrS6 h-p62O cSsXЯN'bK54q=TB¢~hcO1#TDϣHQ(WJÅ2SINX)'wf8G߿v;!(.H8|j`L+V겗}nK9by@IWJ/gDa?BD2]sYQDYwoX-2h"df+GKŪXmfOh{r2b.տ y<|j!d8 E5eIʱC$g-㚈*7U'QdIX[;3ʹTuA%ngcf >V=ʼnpoo݇}䴲r$5"C^DFwsAa5b lEī@x|A;V*/n3ClUf)n.#l&28R9q=6Yph LZcjkjNJdOp>qwȝKmUb\,_ 6atL!t̷Eb:>j﷛ا&˥[} 7k` EVBؒohpp-I5c]D76XلEZ[dʐ;<TM`o[bC ,]smh]x/y=hBSVgMZZ-v13wQ KҼĒ< ;,rUYf  xۤO_K%?475xD 1s2Ojqqj~&ΌFz[y1dFYY؂K2'{(# ˰ )hL/H̓)/LLN,SUpP«BŬ̜IJTtHR8ŸT"FYP93z56x[knf>ҼĒ< ;ǘ ,x;z^uf>ҼĒ< ; x[5[_K5%$h#.f.̼t-O' 3$9#1/=5/$3-39$3?KAVA ,.y@c]2S|S2*XxipjP X\엘O'>EJ\tf9x5kNf.ҼĒhyax;.~J|/f>ҼĒ< ;ͬ, xUmo89฾ U.{PzUUU+7~c'o+!833cDFFåP/RaNBP&fX"fKх]ۚ#FE6;{u2{pYݶ*cBm=:i73j_($+a. M.ȲLF$RR)F7#? ]*.!/VnE]4>WQmf,UETF1fM 㦳1WPZ8nXQ-tU22j}crCGGf rVnzl6WL-5k}\sՒ31:(g ջr]5W< +Wi9P 3p-~B:ŀE2U|ErZMDU}3PÊzIux:.0Ux |Hx#OjqqjduH&= /Du+ԳQ8yTcgğq,*sa> ֆ39P[ڡ))댚,jkC3xv!Hr,{xsi->LU>IUH*$DF4Xqf xwå>ifq 5{A)w7"y㉞#6JSHʭtM@nϗcn;vQYYRy`g gtO-xrH]W^h$9,~ v@#Jm-JmeQ"$JJhWmTgS5tVvHŔiOF OOBJd_Sb g*TkO':Cu9v0#IWvۃ|%?* QK B]^π"ȦP?C"'JAzMp !p8 ѳ(Si'M?کX>!5+,&le ]gCJF8,af*Y u .7GFfu(p S#1i@FL`rɤ0z>z|c?f|RAgK0|l(%L3AVło ^Rq}gghxDo]twge,TGWo#]n]ڝg^|)B~+k?Qnv%lZ,CUt܉I*=$V{ "?eʓt-a|čNX M݃f"-]Rޫݍp2dE7#-`g*>ڢǣHq>-XD, ׫_xHwm= n8m? V#&ACzۮ(ʑo-ܭ@DѹtWKUO.*ЁzjXe|2tlРV)R` \} D|eyKU*gC[UZq.# Cpkv|)nᶁPZG8WJCa~97]ћU$xqKPy q~TQji8;+n _|.̪i懚Q `_)Ui vzUM#*R=&^_,Lf{l^pwWZk{ruvLp:jBEXoެ[ҼĒ< ;ɝ,X,6ogqP 9xn@D D~ƦM*JD!mVI[N(88^ٵvT> S߂3W${vw~ݙ߭&˵Â> d腐Tz~p2UǡJGf k4d7T8W"c`Q9[!pkjjԴm\ e =f OF*p W1c+m_AhU%˩SHY):wZfUSe"}̢KtթOzj6zGZޭ6NR)7B?<Aث! W[B@!ŝ]]/w?,d6Aas2 t @t@5m B(ؘ( z|J@n?]iT>WvV:IuY>$¼k8WC>Wq(5Ѵ^s+Hdhy.cN>a< j:P G[:tf+!$ #!?g6yȯkuMP'TֿPS%fsS_-2RxJ@O )m*F(ivӎ%]xG1|+7 m+v7nUw傅JcI~gscayv2p=|\N.ƓR`iB(B~G;AR<2cB!K|_(f=AX!+AW%eD`} jHP!{F0(2nj^pR)ȬCz Ș4Bj TWqMm;"ofb2i<6L T,ZlX2Z2U&J ,P6wi!J+s&LrKmˋ1&ω;Rǘ7Sa}&#&xx;{w'f.ҼĒͿ3w: xUmoFTP(Nq(|"$ (:Eb-hw 0Nڋ<3,wT>XT'RO./fኹ'3K fڂJn27ם hR%)a217VEf)&ҰR1Ov.Hj)E2{0Fcw5-`#g1)ưӹzװAm:X J4Mf j"[{:u~G1p'O՚n@ &h`a> OtOf}dɋܧ⫵i& 38= 0 a0,LJprNQCc sh3KC6H#o#r12WM1Ǿ' mVsZ$Zڠ]}.h%<R X#Ojqqjd=f#=팼HbW3@1e0{:'e&8ddkrq+)T+d)e;$+$')&d*)$($(dg*Mb?Yuf\: 'x=A 0EA‚Hw)(tҌ$CУx̟}?%Kz;b&.K=^ #5Amsȗ,]IUdx}F0A2 {X:hSpRlz)<K`6\(±tCR5Y/ɞNJҼĒ< ;͟X wxV]S7}ƿ6!vH/`M6MSyWU%$ݵ $չ!%[e]4tnkfEy>}+ 4yxN.M&we(;9trfݚйb.My>[vj_䀕M )WZ_t9A.τΜ\ΆSZ%2.0Y:Lk|B!)H7?F:v9*+J% X'M#?S Vy|ӧq<").e vI#R{7#e"xa&}RZT|=|PwxO߻Qw8?02[%/2\s„5g+t{U24H&xLu;$wWލno6XY^vӆf2&H:B$RJRXB[3^6r26ѓS($/~;0crzOt7kFQ9%󫻋:{՟L_p%T/3I&ukF'r3S@bPxHeo4z.lnJ95:"!ItҤ7R-Qfv=Hb&w+٧ߕgYV@2zX/ b\ z*P+{̜pōȅ ՠyfsnҺ959uUw$c$Ҿh&05Ud?hMz?&pa;Zof6)]  woJe,k3x._OAL#*˸Q/uZr%A? o&d^GK )o۴7s,5Yp ş(}ǶN? ڴ@,&2BCucJ1p;=oA + "gkGٗs8&DަJ\+WR W6{jE6:\',%'e[^‰ra?\*!CQp8Gbx4QF z $ٔ3N&)˛dC" PK^60RI+@͕Pn_I 0Up1nLEבlŎQp'F{%*bm>*-0I8ܸy<ЊtrnW-9v)=)oɱo+@U7IU55SѹXGQ\D/*Be0&%_msÁZG~$3|TѯjnWx{(uPjf>ҼĒ< ;>,rX9Ɠ Gx[ߣA'8hc$zFPS )S6f.X6.NNl "j_XbZR__ꠧəꗘneebs'h\^f~:P Ǡ9Wl~&7A<(xQUܰy5fK56s4RxUmoF|CBQ ^zʧḫ;c0!w=<3/^@x?ΊҝoZp}y -"LM7" M6:~ASc{,.Ÿ&0NP{7Kzw[Ӊꖝ''R Qυ`xc92ʭYZbhXh(V- Op]caeJC('Sv8("9{BVd0.abA~R({[Xut.X cLxNxo!#␯K[JFe, Ik8{~ ^k0OTY5VPjg)5+F8vȴ[, * TjG,3 X#SK:=s72^% uj1p(+  KA9HꟈX!8jQSN҈縜F\5-kG3k?b JbhLVHkBJ["(J ĸn8L-H-"SqeaTz&w\oE*3mȴk2X`v(MMYwM [U^*+2\59CIe/5/7J0R?1<7֟4ʻ cA҅epAAs]j/*3-}6G=jV,(GU>v#~IJ }\B$]Mcޞﮀ^:<́5՚{5kV?jI~UA$Zx#<_xGf>ҼĒ< ; `xV[o6~~8$0 n*nzuvZE0ŕ&U;.sI }1/e~aѰg'' \n H3'X%J/.\7W)2֨+3ϯv,ӺK9<[dB*$3@fzcak/@mv)0ȅuF, G0ZsЀ<70 R&"AeEolW| w4p;U&7sĜOνfށ$'A`<9喑Mv+%Ba1-dכ a8^Y@ bgffv}5чP injKQJ QP *bRUȚt@*$*D{хNIϒ;'#tB[prvzz 7ا֏Jd_^)#P wçJY f.XdM`:[RS E*Ap2W,ww,Q m*EoF<:C:t5K^A:|̗B^BBop7dR^F'تA#L 8}~j9B/k3C^E0mamV" BWr*8N$vJRdQDË `wA*/@ 8㧖;jݠ.)x4Oy6;rr/=|ᙀa3h="4i.TI:fbabHTToQgy_{ ko^dΑ(e:B8,җ%au{0)haEY~eK!|UӜbh$V-6B{2uPtgbiMҗ YVSQJŪ0 =q>6qBrv- Fa%ʶ}gvmL  Q(%վ!Bhpso ~ E8XQգ`=>AGRJ |B@EkCjG'fp_TI5Zv^tV6EF/)Zy, vkV+䓲<-t7G{a`KR ²Ovl_v'O?bΫثd۹y HHr?0 jᚺ` j ,yG?fKEx;'Abf.ҼĒE 3K26g 2xV]O"K}^~E%n}cQ]Oaޡ{ݣOȮFΩ:NhthͿ240Ya*t&Ph2R[=< T\0>CNҒO$yi׎4NjiEJ2U!U($ѲcCI*[zᙾwC2̱%gqBA!Ft %Do*Mi))w2C~ӧgfd܇1*S*+(Rdfg.hz +4s+KQ=0*05v8~?;;yZ#3cM㧛ۛlvܷp

aѸ-`#;u'_d4̪m  rD x83aDڢ~[ &o?$\C1Ӹns.Ŷ.aN\*>tkwؖx{(-Eh3i1BϢZM̓wz 1V vڪ84jkD-cvxʾ6acr#uk|(xciju7spF.>nА;=ŅM*-̂ :S?{Lvdo5MkkԆSPYc|e KV\2B>`[,p&!8Ěc.Ϥ6_a}0Sx,vZlwf.ҼĒE 3K6 6xkVx&-4/%$3?O/Îkrs MxX[s~_qy ǩM*uaIK P\*@Tw#B\9|CTbfNwnirʵܨ߲-Xס0N@cЄׯ^׊slp-7IȌIIp7f%UvRC0<1, ~c+)/~K3û5FW7_ 9)26<J.[]DjhvrK@Phbc`-CC`ZkF(nxnE#Ds`(aaЉ.g4^LgI\L\Aʏhaf"W2EV܊8&n $o9?c@)掕X@hb١j: /||5d }O?dvu0''|0CnunVzq+1Ϩ|>|Ą2YZ;dD4m*A'B_i g 瀭JKzۇW~'#:EěÛaX/7"FvsD_g}$N.65\nZ`(6̲-ps踶s:'牬!%唻 rF;/wlԓUӡB]):TwFlw}*)kwqw疑%"F+ĄoDay[>鬿Y7Z@|Pu.j fPQFũ2kg\;h#:e2FaGJ+h:GynʑcG @-Ӧĺq2fEլMC'-H"5;;f"u|ޓ+ASlɨoV}%/>߼e$ӣ{hU>a~)uB(ekײ')Qsp]R&R iдK9%ZU Kqc Mqq/-=. ڄ+w(N"00O&b)I_-TVszB= W־FU掙U2;C~H'Blv`& 0{Gm<˭'W8VmHg:Xh煃dzn,ܤd~apeJ_{EP<=)@x23a"t4V"LFWU#WL>XIõ]Y`c$wrD}s晭~-/AMTI.wcL(Q Q-$*|Q;j ?U( m|ua8kOG%5&Jk2X137sje5 VҤʿ\U넛>/bgVնr6|>eiJ_ýQ+iRm̖W))2Q;z-K2ڼZROC};Yg>'aC=u"xUoEVҦNӸc/خIDU$:Q8f3 QJrz7B[UD8qȁ'ffmoh{ξ\"uȂΎyT?>+SgLf`ѭX30+)xॉqX/93'EٝWE^a0Uׯ2bjcKרf0?( `,xn AX~GN y[KV`솦?ZtT.5<zm*`0ɧ^X^EFv@2ZMlbr؂KЧ3V ?&gC$z{2M,5uIp!~Gqo)Mq Wa7@Nxx[**UP^7Oc 6?ccՏs&U+זK.sSGMތ0F9Q-0 rO kX(mY*LEk" G4g\əU_sK3'l-k>r_ϙ%JKH2ZybxTqz >}FwNJШ+o:L0aZx7ǃcf|x5VuUiݫ+JZј[! Xl܎peiilѺ^V L[%51;u |9axT]O8}ﯸ/PE-F#O2JդbjMcɱ#ہɿk0,+mc_C6RL9/y\r˕4@#?-jij:\O`!Q}baZY0 ha[Xi<(wUI1jVճcR\<Ô,@IsͨajXbAbq}HC3_`yk/8Y T XlFo ׌d;slS-LƂDhbgU)`+ 6nAAB|\a5iA`$UMEa;(+@N㽀GԆjp1})Btv'c<`u32)TƖz;}ʭ8!6|Τa/-򣱢o,*J=-eH^+VTF9YXgW.\2[!xLٙ`Vs0_%b˄}PF0񍙉M g:w.6Hyt@ jk'5)t,&0 M[-][677OG4 _R8Pr^ c%Wv#ex<0\xίnؐ]onG'? oǛ>ccd 3R1T ,kƗT8KVVSגhJ5km$b$bJa䟰,K̍ʮ L kkoJO4/.})~ _W7Z_1oZnD? 6R[qUޫ_%~{T Ch(JO){+.x0 KZ>n8\XK U r0f<; l[!L$ `h5p $ 0[] J]uԴ3:>y^=ڴlKj_'zbI卋Ad[.L1IYp,zx H@&>5mF)25>p8Pq`:1rHty* kN8On깘U!ԩNsFp9g !WG'6_XL2R$xm/ۈ(T/vCsQíBeW(CRRDAHIHV':RA5ۖC)wKo%ZBF_S;(&"A!=QNo~^R TY@aOk0> 11}m`ј"T"2Aq>+^QElA 2Ԃq㵂)Pu)}kcFR6"pU;v=uE[ŽU욤Y^NN夝vբOGM?3,[{I11`jR#UxWW,@a? 'dQh $\/z՜KN@eh{\t}PdUȜ"Y1AOQJ8_Qo)'):0ߖkPxQ8*Jzaj~;5 h[R&D"b H,GS~*Yz IUPA/[ `-Utʚ̶{nE"naA*lFsG+XZ !%b&Ar+͑wt]ڲF@Z R(#'üUE`sHdS 8Da)X(jREYx\& ֞ c0*AZ%uDU4Id:ˎN(a~Ӹ A,f Tzbmifׅ2rPAh}"B׾ډ>F :q~3ok G䃡Y3z >(W3d{U/d S i\*sI``Rph;/` ];/S90m d\OQX9ctQusVl"a10R~UbB7Qa[!J0upA3l Le2[a|[-@cC+FLȧB x.-FJS0 BT~&vxBi lPю|&B'/n.>쀞n`S%vj*2p+I9Pو7H9N;~07XZęBsbqR q&GGD0D5Anf$1jQjo8u<‹R.uQ|'zIO8}~D48 N7 z--/ AU-ۖ"2u &-CeR`بhl]1¸o21P[WKiu/ >7aaMih6 )Lq\5ҠP ԇ2/s!/^ODPK[ZҿK#!|<#?"Jk;[@DLVi݀W>Ma)2RlR1@R%]B a UT·F:umRF #?. |F0ATu >[ pB+xH.bP @#ΜUpLøY,v)edxõ{ ʙA&K"QOl̦yJEhU1˓@j j:bo&q6˱;CEU({f_ֳw^=Zs.j<\?Y}P= {0-#j(7k^tF 1X/!>{50xѱ `lV#Jo0QĚ(jE@jL5s"UgX~A7Ycp ;m"=E5xMά\Tw&h6zf)H"}fr*am[/Z79/=xEvu)Ðoy)̋J ,Z&-T% *u@:#M,FxN;a8g|ŭk~/\P7HXD"N'1ͥn|OcROEB]9F3  . kiOCD=ˆ*ڇ\le<_찚GBo'9n4Sۑ fB͉UBT<:S+Tpղ j4*y8^4F'x:\g+- ?G*b:nV71/(R" Ѩb/(BJDZ n51m i7{ UG0(9*2մ#$E@gZEnMAߑOGd[7`DsDޒg V3 _oZ @ s"@VӴ  `k(nZXulU!!ܹ>sԜ].{)P .@ ]3L s Wx~8{ʥq8*Ŧ)DgF$oX+3 {[UvH|!}%jem.?:Yj}ɅF)^5y* O/8 {gc03AojRH\oucL!=& kCUN_2BRJfݯO_lWųm=#l!Ȝ0FBoR42(#/~/P)L 7<޷IIz(fUHA*%"iX]J/t2FܧξXRC¡إ92+o/a˭bĝk):.pNDqGsm=%>2#qw* VҤ&1h W*Z6M[z(X;Ml{wxJii7uL8 cOg]w{a% < aǚĂ+B -}Ejrni] cnxٟi_DT` /8cco37NOtN~ øR^~ 70>anOzrK_8 xEs|;~~bp߸C(l(E qNaOx<۪D 7ü뢀I `Tp2 uC.ϗD|g[?h=?_Zw<|olzPh K0{n@\8n1$mzZVnCWn#`E 3 OϊWR-whTGy{!"͛e!Eſs44 NUxd(xwDpjz.܂ҼĒ<}S/Î $-/%5M/485K__Q!(?+5D,N!47)H!-H3$(-19թ43'%H?1/5"?(D!%4)'UMm8?i\X*.)K'ڪҼD$}rRNKLۼ'#g^qE)YMn`S9y%uxMn0 Dw}.E>te:""EߗctE#P# >Pm2¬qM~a8/ u* ;b);8d g[d dF^=Q)lއ Y45v5FE!gKQޘe|2W唊 Ϳ&+'4+ݶ,x340031Qp MNMIeM^pmuC\,gĔԢĢ" g=eF~M*6b?Au''i; І]QxsY@t2_T[uC9mds?Y-6uK z?z,YdgxG_X;Ttz }?z#E;?sݮEN+H-#pjC{ll:H/viN\O>,*žq6E5SaqKۉBcy\86&GQ>Q`Ո6bʌ`x/e#_vɗ Hsgc|0r':<TT~8v L8/ભ0x5kf7FMF̼ҔT=Ԣ͹Lgƨ /x5sBpkBz~Q ,r9X -j.xc֍1(xù!I=(?)#51%( 8H/cs4Z *xOkAٍQAjAᕠ6ŖҘl6Ѹdt3Sfgz؋_'?m }<;3_f lǸ0R"-%Snw7m`F44Ήn)RƟ^hfQɄTJT'-RꁪUrp[V%ӂmWq/v>毹:4 . `C ;ؕyNQ!y!!\d4,ezJ!v׽5o캿?"y#D& ՔH 94rGTQ?BaT !5ǟw¦AN0 3 i,{O#Y{YLˮįmK `9چej-Ltz4޷'OJ?J"L5Kx{kRf.ҼĒ71s fxWoGGPpULqء€8PdQ-wlsܞv$ٽ'vkپ|fwQA2I.A~-˕r_z\7L"M3EXn9gWB\H\ *6SlzItڲuO3( x,x@ψI bՋ{")Ͷ1V%6a+6$\iMhX7bkphB zQQf.0Dn= #fFЇ1 i]5JEcxHk )3m, "#W!sP2Ͻ{%"hE #l.6A@fxL39U6SNi1(L~I-o.;;qNq]83wۓ3d4:,4xaDaQ3+J"V)kGz  DnRhϚ%ˍf-Q,,VnuN_N5V@,1i&Hh[N㸝rՊs;Ӊ,EܳZI,xbA2k-&%PUKdL!=mÑM:ݝux'! AdeW#!B韗tu#̣X)yb(eͺY'Ws5vIi$܇F(c_]3zuЧ n =Q~,6͚T@za@h_~{#נ w-n٘O&u'?3 ӬI#y0iDZhO2&PM>7M,I3JyF=KR hzN K̋`$!B3RS)p#61).Z=B`- ${36/7u3rW?r/c ^6aHmCg+y9ܫ? ]Hh&mJHh`fTƤKڈmTRצRR_i- mҹA:'IQ=Z ԐǩɨKJ"5$Fpc>d*멆`1-( iIuVǘ̎)*s؁NT |}W'8!s.d)]8pDVҀ5Q:f\,Ϥ]ҀZ$֖V3S]^Ԧ;jk$Dt",?̧.04+E!yk9=a)D6Ee 蜉O{ғT#gF]pr/?Q]ܸEd1h Ϛn48A,\8-2wsg}U@̣Y/(y6)ݥ3\EA )ўُ[#XJ7{A굧.sB1+{j'TDN>D>lw %xѭH;Ybzb-*le}9à $oOOaZHq~? Ɇ@ntH*Yz%XWd zV z(n7jGEmA{BQiFY%v1Thx)A O/!CmQ/T4hEIz&;=ʞ.fϞ~kߦ6ġq7ƨxςhd'4ODU9#`5Te@;]vT0 O|~g*u,ڤ<J,im~8k^Umłz<z̲]Ia%wZ+北V\Y$RK"""g. vӽR{fJnxTuS ̙H%y-9\@eO뮢$cQ5u-ͳ{jI:!ijv]v\S~G~(J~zg_Ŵһjʝ CkWjR*ƊL]~ I(x׵KOVxEw)w%W^[uʉ't5$kx[ozWX_K#51%( 8H/c#OGIY%zv\\ʙiy)i ~>..9\@̼TlR\ _oiIbRNcQQb\Rn TWZէ`Y]\Uͥ[ 2ˀ-ZOEAQ~I~r~T M pPV_bn*vE`5ťED(󻂂,vN,IMg-檝lɪ%aͥ qo_YKBfSvKi-@9o&`)$c9u!ƀ\ wp*˃3S4 @Ě!5/*dfd Jx{w,f.ҼĒ͋ ooXx[o:tC?\,xddCG̢|ny)%yzv\߱(l` lwx{uY_Ka#o ̦3+M,][ZXTX\Rn吙WZ쑚ZXTZ`T柔\Uͥ X\Zl XhUťYY*? JAOM=@I'MRRdfQcxXmo6luimh V'؁_PP0msEE%Km-:H#=w܋xiTa>ħIE}Y*@Gk v^yN03uC }k sVjAT9k/BhI4TqJB4$\l8~QjAAQZ~@pJC*Hyc %\P &P\S!^':,` ex*h$)>`/x-}aAWVVAMCfx &cp1^-!2%HhF8 g(u{%:'q3`\8q=9C /N`DYT<@D i",X>,5{]m4szʧvdr\V?E}Opw[:.ecV3),_sW0b$`iSղ aO[Vp'07[('0^m*.PFs11Պ>r-V!,kR؇ޜIs٥PowVXOE"WuF֘bXq};~9XiZ?XDv2n ;3ꔭV#0VM,V,إ5Q/ui@Uڛ?`51)цM@٧ChJ3 s(<'5C _uHbUÞ*>(N c,?K%tT'rtc(5A`oTuyCh01Tb>A0/ޟzsGk]}M p{KDcL6TFxaU6U>Ԓ|LBz[g4nzO-/ܣR䋗vaWPYr·mz%ZYu;SkH}} qmG忞aR*˴g']xؘCn h/%`#!􄷁O4R7>Y}h-< e 4cNJi845QT{~CN'J{ؼ~{=#`3zp;sE#[Q32?z<v[ ̩{oLl0[ `9ZfZA |%;![L[MmI,k<0.4_ULƃdԙN33V6nYK*h"=uٵx#0ɆbT)>2 >R֒ѩ?H^գ^42t{VVG5!,d?N 73^9_2S(Dl} b(3EMRlɺXA 4!&˓k2xuIkJ76bnAxxVo6;W(̳и-xv^FAKF"Rrf;R%%͒P#Dݻ;CQSyNYp0NM@sЂ^\N0)IoýNngI !w8 "剀Bt<hgm8>::1Sf!|D& p6YƝX$^dUN;G8H3HJDKp+$Dg9JH TU<3rEk=he]–JcxY iD3 bmB;QCQD1^0Tu5. gn= {6'.ƜW!2% OvH_#>u3 ]Fpn`1gpOa"d eiBX/1 م>dK1e[F~պ;86@~fQ=MJi +V6L!aY@-<\."ߜ@ݛW8l)bX*7kxTcuke .1lu&M%2jQl[/iJgV[yp..ΞaE.9\@̼T\9 ~%I9EE:@~pIQf^5PEf^IjQZbrBP \\ p ZeE0 hCdj&[jXs*hC4@MRRi\.ZKUxŹs,f.ҼĒ͋%jhxW}o8|gt;v/8QT!4;g' 4c'! nCUyq.0&uڂAW;V~n/_ 7Rp2IF# }R>;|!/+_%)\p;; rf~G"zYRi)X>C"#KNUDV&b%Z-*5 v"pc*lG(-½ !a-RZlYa^'GO5 ޠg;=cR=ÇQ,9+89tɍQjIFF:5LIQUVf'H;/K]=0 Y$7$GHRQ2@#~FQCZbm?I\Uw LWjfvXZ NSLLv">M"GzsYr9]\$$\1 ؒaNT٩^jϿ\993.Uϛͭ#v{Q`@fvRt%/Z;DvV'J9n ;ݣFk x2KeW֤̼tԂԼ`BtfYbW *LҢԼb4"+%-%̒ 8_A)z{Vkn$'91;()M&'Nb K͝ӸR7Cx2[e|, 14xZmo7, "+-#'ٲ` )v) RC͐]i.HZ-3Ckvs԰KLd|T|5٤G~_OϟLcd!@#2!5\32KjعpKP r+EF EQbWdB51a$yAHR _*`-d#F1U5y={ІŃSFq/vD2!D|PgTd'C>0E̖Nl3L0E#2OV ЌPGdeDGSa=SO^ <-WD(s$7eϗ.aI[ <("+FIt*.=,xߏg#`m*3∃fX~p~DƗӛ=\OW'c2/=?,P 6Cf(t̃=-߃q o*N`=9"|M4gyfƢx5?wrK&=lVy;&gq~sk2Mn^]}(m{qݗA3upJ ֨88:fJRA7Ls1cXNsD%!#/bmMv:0^ߡkHT}wHBKSj&Y&hq+ dO` R7\|$@Q3Rn6{E4|W< b|8 ? Y@ 2Aw_tŌ@"PLQB?&p<g^{؟}|dWLݒ 0 ;Wӑ Vumy@1hЙ%&ZL؃U}a b?$vX4=@Ј1ТmV4f; N|$v=ahf|I L텅yN/L8t_F2Xz^MѹnhoKѼQ;.ByH'p13I.!/\4zWҴ|:&R@}e1R|%~=2aMuyHd売յb*1KP)hm6VۄK7lg]g tI'd߻qIG 飌ƚ|C JrjϪBjw4yzNS"4[3ei^FHՠNl㨵?>7mtqC#a h\EGF6@nCWCCߠi$^qE}E%u`pp.Lhr ~u:boC4x>mR-SeKzQ;hYJ|ŭ{:I@. k zwyXCsjLF92݁'47~RTUue7MZ]fD({@CfIKy}2ˣ%N v4ꤸdp͍s2sبc Է[p+{G{b$n+$)ei9U xR!j Z&OUAbZ(1ՆB{i!:Gne2i:=ߒVx#ICMnPb;g-|Z T%/8V{j!#k-`aB3XXĊp+R VׅxoZfW.})_~:Sj©‘e^IhKM]c)ٝupv4csu?koLɧs OsI0ϐK'<)״_?yN@HFkMbRPaa/|B_/̝_#Zf4\1όoQDXkm5{P>SMVjG(NS2gG$Y(0amnm(- k{St4ؑӫ(yU4gŞ7mG.~aK y-F-4(ZhɟYS`_X쟔\ať >K(U!9'X/ط$1)'ձ(R.)K+K-JKLN9{ds1>Zb`az}0@fc2T8q5W-FfBf^fIxfI + 4K +PZ2&Xd&{UyBE'P Bq*$)+i9H npHKLJJx[ʽ{f.ҼĒs9g(xXmo6V:ImQ<'؁<`$&)'3)zxm Hm=w{x)$BR jpZ2Fׂo™>pWGb&CeU䢽w.肋5Η!t$ c8MOdy%i{O)k룣sḑ19dLV~M$B@-+c1k d,*FHr|pp EK 1T *sRA|\̅si()TFzpqD:@ B;Iu&p@$V 5褍h]zBh;pCa%|7.O5|c{8b)[@ " 5.zGO7gɰ8p6 x^ 1\^/GNPeUxnhL/Ӎ_c`%Z{$RvpOO M\9l!p' J MןH -K>^p ʱkO,tG]t=rKιF7pԽ#oCD@O,e>NTdJMRZ4g!X EFCRa*WU ,xB[>lZSք5)h!(N^t˕I%]wlWDuG,mZjTjI!@٘kQ+?Liy%E}36s_ +CłeT#TKz*~^! M;O| gXPc$ k('. .Npp'C?--1eD\jސ,`ʧ~0q/fErgF\L-"('\EQ(Pk Ot_2sWvI=Y{>(%LM}}:(ݛlU$}**REiLUYH4c\L/ryCc,1 "ԍyi.U+e>IѪY"!B}j~NuMrP-)pӉ`AO7ᆙ3\<*6F:e.] !=j[3x<x`QI82|SjFFTO`0l%sҊW-66$~:W."@!(zt4jgV3M-K;}eGJR_#j.n~?0/ v#,@e)Sܽ\$Vcu%-l % t*+TBZv=>-nge?E6_eyYr"^lledD&f|ҕF3̤|iMc\ʤ&S}_jg)o_˼]V$''<.bU()=%cƑNi[Hɜ3mU+0uDfHݕYjiNXQE ٧h:K/ЁN#=c> :</m֕iὲ ˢODRx`m;EC^6b=Q?Y`~`^8QVX_cA_)k|c2Ur:,5ԮBUwi 7avJO˕Ǫ髿&~!" ]gN;[{a{W2mn< ҧ/3!ǹGx[j`lweSJ2RrSK2S paǎ0lHxk0h4ذy jx{W_K! 8ȭ4/y" DLn<KAks^YJf e: ΉIE)@fz%y\)iy ~>..J3sJSRlKRA~%Eyzv\\N> 9َ)09b0)ᖙif[~QH~vjNpådofxcf.ҼĒ/r Ժux}oHƟbJDVAS J Fjxe׷(f /mR%˳m_„izXr%Mk%=WVefoN 5"* sIMɸU͔n4.WI3V(K[)ՊKY־2YnXH@oδM03qLR K]*[U@LT 7VEafɤ4Tӭ㐍T!X+6s nPf&Bny 0YL ,JYz֨ ~ ά\]^݂LAe\L(#$ip!`PL t Qe<pO~{L%/q\p".ͤRp7P=EsQ )0Ѩ?0M'pѕ?-N)Q >N$5ҀckALs&\2)MhNNwcu 1i}Zh,·λ?݄Y; m{e,>Oۚ]xx| B'?Cԃ0ٓKS~#o!I{|S&>A- -(^/p]8pl4Zw K !eK}NWW=\PH=MA.Nꇪ>X+=l1*FS[E풷riSByW`3YL7D'tArQFB~mjx{\WIܔԏC)Xo-{[wW!Z)v8o2X&g12 p#U8jEq](78iΙ\ K=ixgzqϫTէry'6jlqxwor˘0%?/x340031Qp MNMIeZyy!2$ztq5_:RFԒ>(=5/(1'(5M/aqݝv +;]85vˇs&8_~qk1Φ**TVORif/L1Cť ؅:ܝRE[E`i-3G90OPkp'C9#Ga#0rF^&c^٣LΚx8 H,3& C0=~OJ?…֩]#%<Zp{hXc]u_&<22nƦظU蒊3l;x 3ԷRI+ R ^;.}h-;2GDQ{V(w4B/@ퟬP#B; kb- /EN :ن调sqxU8gx(S?2i%x2eB[~i^JbIf~^rf^rNiJcAwf>X?X>xWmsFl~Pq!v/g,(840L,5⎞N4ݓěB}ٗ۽+µғk.fQO4))A]MZC'"\~=7Ԝ3cCS%gF(y-2 '1ҕkJJM4 ގ'/_YTSw;3r0 1"‿S ;7ҚTf t\%1 "6Z' 0闕E0'q &`Ĵ pEȼ>é%4v9 \༆cEFxJ 3\^!Bg-Twڿ4!-xhRhLDsHb$A0ܶ7p:wpNgpWEa .B4i&FUZܡl : ׅfUi;}{]Qp9& QC#ȇ=p cab=|"%N^z "̴L~XRg]7#TlH/uȦr^7wlx2vj\D&.vuV0(SK R(ZZt}[1_[!}51af8YZK  'qQ8uwo{N14˫c7T1<>nou^>3jԜ^nxyi+6Q_H^7O :LLpESi٬ԅ/p""da _ P.Ab80O )"a0~ʦ-w j/A')m5>AXHqSX$uX͔47)Q?Vp8[U42"&ZV.Y]ș';%6AQ5CôG uHsM?y?|E3 :iZݡ.e9+\k;H Y̽MA;#rmud6IK%+ ah7NXTcǣb-_ GL?-+:nWW`fxY%oHY X|x1Ky6*6Kp]ݙ0^HrͥUQ"2nxM/df^:5xVjFFs 'jOnb2*.I,LV .)KW r p rquPr/ J-H,rIOLH\!?)+5J!/3Z..]Md?'O9L Iϝz\#X& G[k*pݐ @RRodx{+Aj5;f+vc6.>x uWrjTKRK22츔3sJSRl 3K! ,lE@%W2+lò*! xmPJ@%Z B7mKHK+E" M38NLBq/tGͽ3s=ܭS'br&V;ξn"WI='I7#k~}/Yx=s7nۗC)&̖Ք> c摃p kV8HT)Z=&?>!Jڸg`f<`kvVX\k #)Q֔y!$`B Bz eWH $<.[st P@! t4uP`{T Y8}SPL]Paf_O#riI'S~YН%'nx}{>ԜX n'x;Ž{#[~i^JbIf~^rf^rNiJcAwf>mTxTn@=wbp/v61!(%$j.`Ekhn;3kǭ>Ş7og{S3UJ樤/e Nww\=1txJ)Wz[#i=s]Nl7ř|1i.QޡR~‘\P;?*!yRK',°DUZy@~Yl{ҥ_3452hw,|B!(Ґ+JFm03DIb7fqA=$cURD3U,+'nv$% ^8m%nHZHdAGOn[م<IR&Qķ_'7xH:M$R,,41GDMy^)k^;H},_=߄:6|@qZl;Y$Mek#rGu{!&xmJAƹ3`n @TT9(T`q͚ͭn !v6i'fo~'yxoZzX)؅hHpʕ1HEzZGSijO@j(RLPYrB"LXBj& K.$ę Jc>qDY[f%r)zEcG-־}_;M8ˡTYۋy\Aba4]C8+8+碒X O.1.l0tqNW-ߌE SȻay=VT*~NH/ۙIi/Qx[wמK93/94%U-4/%$3?O˰CRXPY@R$8RAl :(8&x}RN0+VͥDsojhy  oEN"wTۻ3;k;\ .]=ml0Jx*a37 cObKRM3ְ&`*s \1{](Րmm:G̾Aep jJ{1_OW(Џ-Q'`r`E /_)gǿ3x{reB[~i^JbIf~^rf^rNiJcAwf>80#xVs8~J_{v.)$^'2q t^:Bb$.~m wC߮ZR`w,E=^?:S)wBa9ϤyUZ] :sZO%<*DŽC1h h+G3h|e&0,333vur`|,rċY0 \F\IXr,7Le)No{UFju14kɬV_NN1 K'ڗc֩V\f{6YyA#yᥖRm3Ϣ۹&޽W) "RzH yʐ<ä:$4s0K y ;g7#*) nA-:_h̊'Lrn[\J+ m+jO`WܛB !"| 甙V`b IFI*:;~PJoDGX9ℬPU^SBךHKg^r7u^ xa74<7 Ӵ;ľ&d5W3:0GaX1tqV  XoxkguԍA@J% !^wձ -M+aП6tC 張1)8 N'VBfY e[x?#9/M]5t݀7zUxLh'[2 c_S&8!VnOz G36%J6$ )OtФp~ֲGu ^bmF':႓_ї6BP#VAH'ᑲuwH_6vcbZKz;Czz$};`R?h%*hKqمdK{ W#ZBG>`(v GcX,_Bza3}ODDpH/I%x"'!/3$5=hs2w9\%ɷe&pX9xx&&ǥS`_XcNv,(,˰ <j x{2A- 4=3o,eW*a)X)'e&pUOSťťZPP_PPԖZ:9QO 1'$$Y\2y(L<(?!sQ!5/KHfq 8xkfY2A-1'$ueWc팖RP --ILIu,*JT*Ob%"*k@x[ƲAq {Bxkcy_/;86vSXg)O*-ۭͭ*~%Bh76FQ}.5v91FKbB</p81Lo7HeD*3aL0we֌x\3W617"a)rT8s 72{"¥Gvp!qLP#%#ȈtN[bJq_ -S9mc zm|&Uw%X[7BcH]&cM)sʙTj))Ts0˳AAtMFsS+MKN2%Yݜxӣ~%/:'@3!g}A5< YxTBg2'e19!UZ7TTLrvO\,B=.2M1 q5̬OsP×{{㙣-o+cl 0O0 -#UĄg~M[,QSzzp/SŘ[w>ݬT#%p F4kV*XE*lDzr(5_"" ŲV{u\aNvE~{aYdP9T%=X =x٣nx.ulfة.Xsy-RAY+7I%eK|(#bWWχ/`ė?m(Y[L|²wʈ`rAV #O^b5O, E{ye K k;cQg).P+: kvnz}C"=%]{G!2~,]i,hP%hKKUw~y3xoo0_OqRۭ nZPUnrUǎLwI a{]U!4oGgWF;kB{hǕ jBqv;m;8^]ed#91l.uM&*qb/_IS{+22]r9gtMP>I=I#ud z2Nƨph> 8 ts҉L,A뗧]Z3hhڴYhBtGUEQz+F:Ĵ fIos2ٺ4^/Wd^xmMLousJ~K\o`»-B)N-/rtOۊywl =d+mA"Kւ2;$9UE`F"JD1I[5ǽJL3-ML<.Ш]J2  nM?s&Ox,В_$Y :5 O3tf* ܽrs}V.}"CҥtE]@3=xnD)'L"J ,0+U!2 )DWx&h8} 2 +(X*ID 6?#()k֍B~Ǧjaܥpa=4Nf2{RSf`!nAe#;QPB9q˽WY0Wp)ӚZ+w`V{ߺ5K.q5kB7M5g S7ĵ9vux:3|M; T!ȧaV7v`VT I/RUʧy+4=v5ʗeURZi;ɬ1&WժM<G Bx&ChC([~i^JbIf~S/ÎK93/94%UƱ;DLmnb+gxYmSHE/[e`^rIC K-6Q.j,Hxs$6uF6tݢSm& +#B[DXOF UktNA2F҉N#_$JGtyu01_+M4ȑ6s:(z[/?uOO2;ȡIؠ+ۑQ4%PMH׍.Ii4NX~&?V1ycX;i(b铎hGu$i8_ܠ(m=XdbjȈ + [q&uJH_ʼnQ4 y`rJCXR"$&؛5HU: GʓQ,I@5clhh0ckTxn=udIR [nHOs+ob> )4LlrXi"@L^^@[n1rOtd*Hƌ9g `i?`tr{=:RZyKWݫ^N5eC6L/¸6yOcq'bO;'C=>"B>AdT@Nif2uXf_mgKxIU4,ŋm:q¤-;j{-n򽊼0Qf ɻm5]N勓4;͕Qwȯ%eo>_ ztbӺh^vo?Ok {rꞞu%o7@4 b{XjU-Uq *UP%V-XUTb}kuz=T aHopyϛJs^2vP˘T*;TʯR**DykC1zVkb&N(݌jЬ|`TJN9QbtJUŇJNJhT[,?Mul0T3c ՝ޅ(KKڠ\%K(J3^ 7 qOv^촓en:3e lX=QA9L2|.wU1N#DMyi/73|-Ah`;=C(:62l7%g!LrA-ˠc$7bqa]%NjF9#^]hb-}}-A/qNC%ڊ3ERYx8oǕgyl>il;y9+9oBPS؉xb\< "d3KՓw5 E*Jevjw GsA^\BƧ ;ףf"mn\-0sۈ&_ootK(9iZAz&+9cDKyeT19w2S7-Dl9jb/f`* sTڢ]+9{ߠ[גTf},p88',ݎ2L@77gn>&="Q& ]%aBG"KAu@\kYqĐ>Ȓ#I~{NgN.G LF{X<~-ϰ`PWV/؛У-=v?зzKj*` IxM'=xKepǗ֟9(/.َ^E8ϭ]凄'aVdm~Xdm' HӋT q8CBnRQiJnӬg幭ۑ|^_kt OrLa:r/4ӹa?| i,0Qf-G'_-ٽjLuyc&7Q?2'Y>k6:BW)Gj76hxlC5K3ṵ*[u3zivuФ?g(;aǵy.f r.+xmRn0 =O_K!qIQ찣l6(jF~A6CG>Wb1tz!f$ o?҂&aZ0EՏ% -\G[h S=Soξ7 +<&yJ9)WMLwP=''9;߯Z] ]tI?1vr+>'ۢcԇRP^w/>+XVմW1ac\ǜKRAF;LEm!l2{SݤnoWlIBE(^ئ":S|d ZWl,Uax>$&;$UyYBKk3A]l<'3#wx@@PaD %%Vzy%zE*&k2*W0PEBIBRifNBnbv+.IK&*嗤*d$(d&)RH+NMQH/%,(*9X!D(4)'KpqMVgr`WH/I᚜~AExe"D (((h)覗fr$%&gsSSl2JJ &K1JOdTXeR_54"$xe{n7"x ;̄@)i[2ڗ&N ͡^ ]2}€QQ'1w欲~&āErR$~g/]$e8+!9|~U ?n[٧v$:@L U tw';lNU.La58{P$2jĞ>C˜ɟM"G;g@K*Ϛ6H;|x"< {tRU;dۢjUEz`Vc6aA#aM~[ NFYV9\!. iV-jJi6mG9`C vHQ(}ݗ >Ij Ԓ-{03¨¨W&\W~ët# ܏\ɶ">݌+YѮ󝮖v1wqy Thݫ~X[L؛3":Rn~p4t̄V'Ak<ikNk,jk%X <)< ҇ʐ&בֿ[ ݘTs]L.ԦM-9Oj<ցO X/Y,U5%ԥo>ެ\K,[ @0zw.PJ|Uc]Ga4a׷m,+%jJb.TA0D-X<ئ/$,:i(Xo0 fj>{+`}ψbKkOWZFv1R{ Bû}q}G_W(E  q;1nߥۼ-Pd!xm>~+Nc +qQt" sbj(>=YQMG-?7UM ]j"8w^ms!ߗj0k`y~ϴd0uS[ߛ$ۻ4d`|Z)K몂17kD=`<0I3`"?"@9yP O^??i>|nZ緾m \ST_o]5(8t? {]G jכд/sB"tf@tWߛ {GMT7-ɴNnߙ߄`\y)VIؖ\M*$_@X1̭ǎ:O7ö X%cgv- # td`M#G{~>]ZF]׆3 MJۤT?ti+15Tz MMJ ;?k'hoΜ:7" 1%pLo*Qzq_,dYj{]-pPcdYm<,1W4#56pHg|oAdZr^4l .0}}pMs!UX>.qL]uW{.:ǜڸ=}g4oZbK̒6rSxȅ8{.ǹ[p-;GaZ%0+i߿̜>{#À8VeؖP͞0 &$hORW)_9ƕ9-"Dtu BHi5/s5.ݼGOgxϸ' n{wmO9t]}H2.eq!<94r-4,,4cEؒ݉ƒC˾sV!1*Dv\sq3kw4^93 ʛ/‘| hBi5.+`a4z?z&/b2FE?'<%DZtaV;nnjz8f֣.?Mg)7pݛI4+4w5}}f޹up˨ F;4yO,Z@ |Y:CrEl{niyGOro?č;JAi=ąΘ30fOךSyAO) \D{%PM|r?oQY^g}7V;[$sAcGߡ\TY]b9y#cGF ׍S*:įAL⊱r)g/ۺB .Q5x:߳;&aIb]1˴ôtitSvM(w3i< 7ҽ!wޞ^'YbήN쪁ٰx:Mr?OoYt_h>}" ('q|ә//ݼyvXԡ,lU`AM(GSga U7]-p>Ɓj@pvBO_*-]L)>5  z! Y ۫7{0Na&z1'A7y#/!K>r7LPߝ=ziD6JY+-Y\lqg .s!CϫV+rL1|~_EM b[?eBaZ0Wb(ifӎE3~ #Chʟh 5x~uꗪrT -ӱ7Zxe[3^Ig|w&M k[{~!Ր]!̌W~XmůkY}{ cފ5٧/Om߅wns`@fo-CQ}ECǚ[Isڿ?G\ =N{NY-|}i+Bc͵ԋXg*a/ zU{kMq+ !ݤA'ρVP탩^b q=So}1z܇\clfa7Z1cN5Mm,\ a?RuS} FObdc5|܃NA^}czukSN[{B SOz&=\Qus+)Y>kRS<7sK~j5ʝ'd?[89_ __k֏kUE;}Ӹ2oJXi$c-"ؐjH8Cf=uۺzcN խPkkySJ.b2ƯJjSub9O skS>chbK2_[Vu}hWOWx6O%ߤ\g| "Y2viX7,$֌g$ vӕS7r@ʚ~&{c5![׶\z غ*9{;ݸsH?U^`g`:1׻aUVa3 ^PfF׸_biw ;QOZ #p>MϮ AկVϸ/wfzfkGcmm )hm+P|6{Xu ֱ56<߾SGRl@zQ50xӈCָqT HgZoq^sZEV6:sOlJzDةs[?oe_mhI5'tcg |mR^%˅Iʠ/ Æ?J n¾/]'Z=b8S#k>?8ivbgΩUp%͉vHޯJv3m~"ДKe>_,&`!97VAmAYO?0g{9/Y}fu;L3?:[H+׾_aPJ~{>op4~Beac欷 rJg{e8Rέ{g;qy SHm,a)H+<4e:%{A.BКi7oN~z)K/v/=uT?z{G_ޡsk3 sB#oqտC5|_iC멹tH^1x!~@ߘ>>tByks}t͖;gvǵֻ2=|#'#y&xu^g lDד(>Gu{Χ޻۵Soj"RYEƦf&"xLAGd=YRADaRahX]TGd<@m cxwTgҋ (#*\IL1jb R E(4i H:(R KEcsf4 /kG^Y:L}}L>Jo%o%c8dKQ9.Yy-w&eeh ̺ ͸Vwm uU[[{S,7M{נ8ϙ#sUwvcwxDWEȞDؾ{y4f)Xn6,6wegPNI]k*'Naz_OEmP^嘰?3:s!VCs*l(NɕpHڏ4J؆f.,4Yx}אP^Qi~ӻCIKz0y_zgE]m5f $֜c=:4"X !ఫ!eDcXoY=J}% [PӜ=hIZ4r{dϲjF3|K:7iE4c= zxdcRkWy 1f3A #iUTR%`٦L,ħ ed_:E~*Fϟu97w%vW[q[h. w]G%q{0/g5AS_S뵣sOiݺWR;%XioR1\7EPz-Zryp-p .l/? /qgWywK(i= efW9S+V%Ł8|-Ưm0t +/1 ,:H?Jsvl"X":'Oqp|wV#ܸ}sJW#b!wI[jz%ϪET!S2$oM-Ń# 83cM!=VA4a]dxg!<{?PPX Olt>z=¿i-]瞹;T _#y%pUpG2,ݜͶ ~/1#槴簽86.~ ߼fT7GᓈKJGn^.\=b1/jm#o?ȵ&픯bCA@g# $Xet1|ҫ<"v[1:;&? y {؋^饣B\rrrs蔲ߦؗ3~[͔ g/+3=}2mv%"8&νX% ݣ)(ABY;u_|;C6vwȋ9[u:Cߐ˱1OL!~__oAL˱tgSu&d7ao|cz mK"Og_Q~d z#wt9ĥd!#Ksߜ;PM.M;[Ľ1_̵_ v# B21Ob W7 [H?,Y'wJ~%sv'j[N 6E447v}ԝzU-|s Q ȮqHJRp30ʲX{NؽqR?]}bHR]TGD|*2rQVQ//V'~Z_ъm䕛x\I?^iOq^5;`k _u3XO} g5zzԪߖ ݷ]mުjl# > "vʉ_'7bW{cN-6:ؓno.؞"8'Мnᣭ{a^4-9[rnv<|mpkS3gCFFԯ`yڱ/%Azq?%y™tײ\U^UCFu7"j_C7_l}?>$16=/@UUFFFǠ#0%h?g~rՙ%ӻ=Ś@l.N{e8tf>:@5;KwP0o#<S8?=Qmqg1wF ]]] Vr/5ˋtVAw۵4ձl,*k2*fVe~Ee,=#)?IG T7]yVr7›ݩ?AC@ cƌ#0͑ýyrU/Z{ҍSB w3c!/o[yAOUʩO]Uݍgy|^ gF^zL֛N/bkB>YYY5 &LdYn!/j= 3=IC4E۲XH }LXP?""&3eX ߛk[nO5$!?ARz7f줝+T.SD؅,ٰƣr~ر011@!3qK.g9}k[ߜ6gd/˂Rt%.delOgvPoIhj={'.ܸCyCr݉*K>pɦ$}j|l TTT0zh>l9n~HɘH,vc{f8b e#xy ) ~N)'_tzF% On.޸h yP=׍:ZVQ0?\LPTTZRVVo9 4^x~9hNj=;1.H%Ty?E4>XM`}8w4O췺pw|?+HYRUeUbSb.5ZZ܏`~djjׂTko,\>W?(?,hk콹6$WG)}nVD<6Az&ROfԞ7? Y`=*[1o] ޟրaذa<)Zza3];'/u;ΔyC6 Q``!Oy+;jnݙv {[EB1D BuϡiZbM]45z%6'Aj  e@wT?<+̖`t"ri@Tad4BnOaWQl)<ה ~zLWzS_ESM^.;|+J*O?\KlhkkߐX{ Gdap$ DS$g"iOL(}=lak(پ֋vw=4FCЇowAەTT丞{%O?'$yTZ(t?Bz7vy{JXE2-҈>SPRagveޫjL1rglCKK8;|~E5ܣeS#?]>R)]b9!n&+ }B2wdde^~hai& x2Yo8='t#?$3cv{Q`3h7HNϾz~Ǎb9N{A@k9~8%+Bu=Sآ#(7Û|*2ݡoޢ>vh//K>‚Tҗ>{ٖ;_,-Q#g{)9k>qV$zNGYE9Ik:B o__}нHw,?{ 'KgCAz,S<-3v޳ҕDCOzW_({齀ΰs{Jp{{;1|})|7?xOHAGH{[I. &A!6jҗzOK'OݼFaOB^=Ǡ뼝ϰ}<73ϼ=߂~HdEtbf(Jz$ra49 @666tnsnnP([[[i,V5jp8g^C6T*~ii <=R@$nl6C0|'H Q( ~ч|hM|$!/`0`>˂ ܥRggؿZbO<7uoojP(t=Z[[<99]V!}/DQ6pvvFz)<й]]]FAZvnRtAɄ:c˴_X }|-"hI[ԐgN4]M!4%3̆}F"EZ6(SRHF,ۄkYyQՉiPD64A[o&⼝xljs49dZ\gG\8nYf29Η _&C<޷ql {sxyPTYƱD$YdDdǵR,ĥ \QYE@PYPAEA6MPTDr)虈!g~}|i&my"#|޹f϶VLPQ'InϺBz݃o[?^Z xαeNۜJ3FH)eq.ϢMTV4*PaRLJ . {89e7kf%7=׾z}ŵ(":f B(X$#r75>inRxmӏ_dT{k=.t yQ%@%8mT}f H M[>{ }wjOg~a`z2f N1M72y ^sFưe#8hh P/K{k4wU͆T{.ņ 5X6q!fqdn0G0P'*<* coQ“(5CVX$ђ(~ CxeTvԺ -%ܠ^"`MbДKb &aa5'$aPIm#ۍ6(Mr7uF%بqy@Fbxh 3S,/YN<"~vK;AU{HHSYul%dT)|oAop޶PbLddI#>pqh{+q[{3cNi.觕}Ц lM'f(!EKY9OB~. f h3}ϳ|y/ڛ=W[?;}8\Jy$>Pnx>/3W\ a1[RR~}-ϑb^nzKmKH Irp22ȧ}pNg#_?" |gP\"}u_onMܰmEq6Z u~K+7 \^dýzaz |_o|{BW|g>13(o(;ӞAKD^ܵfpu+ ly?cy:`v8vWcY?r;]^ `-_͢He$3/o B~&NU(<w#Ww2t1OӤ/IƮzjKvl¶g?*WA\.#עTγ3sntc1GGkS{s>КIZ}w?W.'nq֪DƮĮFM>%Ŭݴ+ /e~=kHTR?L|r{YpLOnvJ~Oq;Sʶ/$.LEÔaٔ=Kw/; qǾ7^JauZHZ1T)#'sGZn#-ydÏ~* ^+"w'x&IA`;fiV}upu}c7a}ObTKf>NKrGd?6xL$W2pM2Scۑ&C-rDŽ=sS]B3"~D m jtpG! !bO$ i $CrƷ\sn=c$ j:pXUIWpϲSу+?Xf6iFqXHƎwW;7`ɜ{'N{2h b34ן7=qY\]XVYs\ h|53=]'58ާϷ;xQy7̒oqJ|d]uv޿tY:#Ѿ50sS&I6z-e3KK*'~΂&X?^Ad %y{H:q\t8_<ՔV[3^D6{j#<?Ɛّd,m v!~$'ܧSN+y몲3hGm {u Y+E?$]ހnַQY~ԋOEHHp 0s2?}먷*CA:Wd* vXY3i1jJiRV\vi`3|@Et86m5S|'a5=_)Sʾg"pYkI5N%8g[}gYw|֭<@8* pZ\ӒB2FKG>V2lZ q:f4~YzVN;hؙe*n6/6,D1i^nLkCUҞ>S圕Ghq{쬝JÄ o߷I.DqL{6=eG(7*z)*9oX1q <ǻb]ɏ7 f=|=XyC6)BQ%9;337o*({2B yӆiP&xSYMR%4XJÇ4by|g ]0.0{7l<[U(my&Wk|8U4 Q 4GWqxGU 2P,Σj!}72,&u>em'W8qsi(C̗,l|+ vX"4t0O7rf&{y*;9yZ\ /yJ3e4PW5>( ]o|BA];͢c=&" 8Oۋ p2dy1]7uV#`41BC 5Oɼ2lr'էpY_ t`޼pDcp-…Xksu-ـAX=,A 7{Z9C} ziU'4dS34&ٍa3:sUeXl˱YcͲ|^xbР||.N *Bdy[y<+l1%"N.[A;yO>2Yd4˞-jMO+lҩYl>iz:[$8@5owiNt6sKi=߲Ǭ7߽Dݞ Ἅ;:}t&YeΓQ &l Sȷ&qKBOd|w>57 fDb3,@( gb6( Yl AAġ@, fOP ! H!3?\  p!kxXAKA]-:$eQAzQCǠ"=x$B&xt :g:![ٙuűOivblȿATZ$aB8%WZk 1fkU{sAyV  sU{sAyV"Cgpl8|ޡ@WBe3X+zZx>%^cU{)k`}9m cU{ZG֫Ua'RZxMP=KA͇]n " N +K¬SXheca+x`?^!A,y;;C*[{J%|:yBfNN_B`{ ':]c!T@Id "ڹأ{!RK _3Bh2cA[qA Jӄ2*ŀ@+S5A&c|P?L7 c & f Pv43,@d 9!W ldda`ud&hɁ&2 R`6@4"3yJoOf^^IfZPCb ~0$ Y*Ax;cqbD̆7Onpq<@0#2̄0RKʙ] &N1EH¨& (h;1h76Q=0 \DR69&q""d3'|2?LgOĜïQ~.ojE aXΌ' R栺Ntb$fE0fiF*B;^xRNPKhmJBJRBUP1فAIHY| 6|W> :8xޖ$:}ܞSQaB"q,Lp5!?rE1C@5r8fBk Ԫ)Xl(BKТMP-ppzY[ ,N‡çD(pCj:n&TOD ͧ x,BhE6^`|lL'X5w|cZff <m1Jh 1e s6vf X01ieIw2ڔr-5:W0/is;aWd|KDpZBiv۽en4"n!? xc1ASDA ""/HL 3 -2y3" @9/iK&`6 .1–D&;0xcrD &^x5O|qz~Il r&^8B;PU܇ yŤ03,@zdi%]n10H1U100HCHg3NV6M8xX;KACR|$*++ A+KL.$1"?JϤ gYXv;7s;{&-0P@+NqyryrU*9Pri< ; d.W'qIU\ g{c<^ W AȢ11<h?03=LbBx,ԍU]+1.5R^"&\((s(7 DҞB^#o$!d߿1O0$uOܷ "9~HY9VЮ'?JtE0Gm$\&cDpS_9Ĺt2r3L;+65WL CƱFIj_E|E>Cj33}[&AVfwr:sJ\uka_$|K1K\ZIOq )hMeuY+}+ZclQ_Bs-~`jP/&lH{*nݱ۰N׹uuѱkviWNwl5UK˚ӶA/7;j\xpOI&ox]=K@riMLmj.b ;.N&PX''7AA~/Iу~si/$=oti :51*88I8B-昍☋Ec)Ă" 4W̠NǀOݕj YqO ް.ؘG9%kxWph']\P& }*hL7C|X('\KCу:PJxϧl4R)DQ?cmfak 2ӑ]x%Gxz-X (~@=ΡxNb &lCu&Y@yM:!& &`ϙ ]#d&B31qz,svs+F־7ߝF" x;c1ASDĈ8X&hOtrE'_`T dJBE2!LE'Sd,!!?9]$<1g)̹@52'jScr!p0MIl" %PAq`#g7O g`dda` q0LΑ֒1o10H1l[e]|2RJ2@ <Fr;NxwXW-mkL4јDĺ5vF ޛ4Aw齃bĂ DQlνHag>y;{{Νg Nyy$H+ TZ= =F3ڞ߆z5KjhϘmځ#tb:}wJz|TY_[yÀ?X0` J[3c"KZ,Qzg—B;cL|4Y t s}זgwT۪kQt*P)埆{f+$?JG Ԏd@h%xhz%C)cPW ˖kz]BSdsLcSj8ѢswbeGh.i50,~X!tB `^̓J1e8Rw:$軆kUB> ۍ bʚk~9Rp%m`]J'́9N)U+NH>C4%dXB3I68A3@3g d9S3Z(y;hWZqYgpiXWpv1 "A?EqLfD{4rEBEbk4 |9K 5 Ul^Z|+ۈǗs:@P7H!9&Et/=;?Gg??ǽGp)<wy̚?PѸ'`Kߥϟ4@~סuP;(A@$Vs@LRtgoI~v!fNz/)NMȬbU[wt!Zq3k{?|'.7Y=7–|OQr%<5+8Ul c ЧAh.FA+^;7 .pY8.mT[9v#<|g?2Z{fS|{֮ܚ]RHg^ rXnT3"NG4A_z\h^p!m[{xK}=;' ytebqa~`8PD٭Nh5cXoGgMl&!CQchF” 1|_0rx7umW߁?Att<\p 4at;&v,٥..Y\dc-<޾-%)lϿF9L!d!z+;ςY+61τ>O`7ˤDV%9TfE$h58)3F֨Z^Hl;[H7G@@P¢50x0lԶ+M0h0H9b;águ[`TBBBHFc&}@9<_2k^:tg-r5XYyT_8wn~qI90q"du-18lAXi|^w;}ꛌ{0P\3}r̠[I05yn#o Zb]"3{Z |76N!M:6|$KVP,unUf1v"s(2jğ}oHʂ yqФ]c^Ε_{ /\7b˖q刨c ;ޙoohjO ƍWxmՖ& MmW}WiSriHrg7YbA2nPzZ; }b m2Ӧ=$!\:sPWmSXLŀ0HFcKsaNuw e{qs(^[/Ҷ >^}˻DrwtYgQmBTQ}sZڷS=zO~+>\oEIݾWKqD~:oQ1f~͝aT^zB6ܢ=3^78{4Gۤ2Qo3c=33f?vHzCJPZ+#~ ϣ TV+Q.jf&g7?aLnS+꾻 fkD7{oXlS(j '<meSگE3ϖl"/O a̮ǥۭIoێfoK\a9{C+TP|(R>g)}R`ܻ[]Nza[y&RN}{ J/TT6=8B F=F~i屶  mQwxZӾ`sk%RNS8̪'ZëӘRFYu_! pZ3O\Db7R>Bu1=Sr_&eh@;bܯr'V7$b*#RtniU0g duՕ]Vq:Mevn=Ys4( & ڤ v~ Knp.k-e5N'4lKYjR)1_1g C5}i~FQ=9M k;C3y9G2%v F~?Y ˄C6@=bT]}v+/kޛ!??+~8i "v-bgep~ЄDH[|lQ|{H(߆f^-1wpu&>nw6!a/6?s̞5s5ل o'I kugxr|{ wIjIjKR3W50S7731U3TU3dhh"a`'^OICDr-h6RW:N?xXTǩ6:300 3 F,DF`EP HEb!IͽfswޛknH6y\rf8{-,Zd1F8(o~\~^?>R>En^̺ W/@Clg[n9GmNu㭲k/_U=x |t]_ރ7ex]~96vhjT8toMxH~|?gy7#Dr޵>sxSԍW;;eM֬?[2o<ɮ.RvΗuBr LB%7>_u>vea;^bJ, &fm'~K|Oj>|zŗ6\rk]rM޲_u~Q؊=f%6 _xJ; {Ce /KxEA' Ni_uVJLľA?gL_A9~*?&/ln165BƜLڢ0E΁L QAiP :_X*&zL H=5 í;>7C&lȆ<:kRa]Gl<2`߶(ˁv:layVKsj3vjt8{ϩecf:c~2NkNv[0{c)l+τUM)[uH~5X[cxn1tm&q5Y`-y٘ċ LҚ$+~oײ/*6v˚bU'(6wgAc Y ֢by"ixzc_Y񯥃0h{^ d^CYհI~51?XȟKn (j< ׸~3둡|,o~24M<^P * >g3*U پǬsPTs,_>;~x=eB`}g'Zq8 VK?Ay&p, , gLeIMW3gC_Ok^rzI)g1/N\ KqǙˢB6dwoj *~1w6K#@n*gx6 Ӽɱ}C9Vҋ5j`SY*r~)2}q>vLtc(.sIV4ž8ndVlwPǀUQKhÛ>I7ckSTv aBع>&PXRW|l^ΰ" sO@Y<ډΆ`6snƸcOүmzulsͷtΰ ژ^۪OYVq-w |>pP4;<A!Si=C~ ~93-#dm[~aW;CTU56 ERJIJbe.y*>MjqVtƚ~!9k3.nA#gl?-x²[c3y xVro38SII$v$-? %EѸOy:=Mn!Yt?Kl"썖x̢S&?Bسڒ<} {/N6t@{}6]2fәSlD[^@ѵ1A{Mg(řlvC;C-ތ{Y;1b.yωq17Yhg$GGel . ;N5Z\#XcFo1Ц1v=[֏_]eEq6;9kBW3dwFnwyNp)pt| 6U~1zKG22T Q*$sRJ$d{*Β[P2WjNI*XQ; *+oJYR-LTˈLD2ja+v.ĭ /;,tnne}YAx;"2A2J]{ Nz6Aܕ|庪krwLTk8$8G]#-tn fQ؉('Z$oiu쀃/g7gڋ=k[+"9q(YY 3J% /-9UZ~1媷qntIΝ f5mp8scʇvpnJl>gEAVxf My>[ҡFP n,ϣ "w)\z {.q΅NGf៨3NL?Yh_]^.H?e$χcOُCCOC8yCP2%͊T ^01a1ewon+>se΁[3_dj+VÕHS\c &:"55ȵy9>@jsڪ3Oj\@xWiPTWmE*M !@ɌJ$*"-(-, JEGGbf~85eRVߙ{=-g(j>Իηܯ}}m9m̝`0{Cww7m``ё//Å $Nr弽>@(ɓ'2prGS>/3_jXr%~My?"$$^^^oc 8^qqqxXt)֯_]]ݜ$.yh@{s̛7l+Vz0սޘ;w={q?gGןOڔ龆9Ef?ʟ!==nnnIIIgϞ!&&f}[ב#G>} ??k6l_MppKi ǃh`nRannpĉ{=== Hlf_O- #UräޣAkkk;"GLLL&}əFs6mz.ϟƠ?I}o_?VZ4(i>9'ϟZddXZZڏR aaa}***:ڀ9Ssϟϣ:۷GLb>|X?SDG,P ihh@ѣGT{:':oܸARTwɝy7稫SiZ֭['h H^"=AEQEȚ/.FtV|ȏN[,qNuͨ}Ad˛̴Tj8M-^]Wukx>C6sZ.{C_fK-|tu?3"3]ڙe3{l*th[?Ø>C|~mˋk38oxm<𽎻e\Ez~2c~2Bݤ(}j%tF43WAQ#lK7r}]Xx`s ,b| Ɩ|[f1bڇ!.+B]%8~g[ko˯ae_bdy\qB:tD[9Yq^2_, nd*FڥZ }i5E,:NMkƘV7{<0 _.fivm`҄vjYg0="<^1˯ka\_vz1ԋ~whFC5r6d1GGZsAՒ& %@ƿ.YڊqcebL7½j~{˙ާwYCko>q)o9 ,nǥ3i9c!m~Kk IGTdL}Wc]#w h$dDHޞ:b ZZ&;Bw7G]660z:%M:cr_hOu0AA2 Kl o68o"B1 c=F|g!1Qi53Lږ QoW<,M}ɇJn}N{r^0Y^\7a_(A`w[=ܮ<ڛD &t j9w1;ҙ}'BLݸFfwM-Y$vt TZRHQ6# ڣO`>k @kh=МCDN@Q?6Fs+qfje1ۚ19|,8o<4M 0(_?  `%~Y"TAqO-(BiiESh-E1)E:мy{"_Zea! gk OCzp*mPjNaL0M+n =Q.6:V;TUTU;2lyIO,6uiѨ( @J3wFM:­2[D%ySត[G8)4Y%XD =ߌۤ!ui3N_| YDW\!܋iH=@oL.dm2oMj:m^B=q=;迣JS[\*+cQFѾ /MߤtpS? 2'/.EuR={㭉vΫFNZsV\7bse57rTߙ_aׁOQX=W4|}8O[uPHZ%#lZJs Q&U&?wP̧fT&3jbzH֍#P >^#Hlؼ<KSY TWiPdR XԧwHK~b e = z'qJ'Y#2 Ɣג7&X|^XztNw-qp5~6?l9cU-{:ɝ腇[;jKQf8jqν$?!5˓渦kVԶےd]\' SYTm!.]ȩpڂMDwW;сڛi4fd\5νlĬO2,mu*cL@YkJDo<δX r׍G9 ڿs|ZB5WἦLhHEd~3{\Yi[Ȅe0fWpL4p; ={NB| wy3Ր5;SstX/yUY,r7hAoEf¿]t.6CT"sȳ *uYdm$Nkw~$ϑ{&gGv'D=d2x TT edu#, bâl"*FV[̈AV&Ѥu`l&ĥDqϠgF99ν~w_^]@3jp@>3| 3'A7H,Im?"aA}fǎ]v1}c9{[poGpW1Uxg\_Pf bz/6UvU ~?o6߯-}F5n2҇&'Q2R^:^į WjzT=쩥?Ci!|q\?Dű)(a4t{[@?+6U%ȧ`S1tʡ\[>KO|LLEy  jˊisXdGss`̢ ';"/J5pJϱEƎbPX_:*<\짣ã 1j-YAK6}Ȁ+qs4nD+cʤ#ٙ,B9x-/:36tD&E{Y+Fs;bQS)Retn? w@:@hU̒1^}OJ#V1'Fq{S3{R):fQ~$Q7Phw>g j 0͂sj:3E?c*űxcRYQW:NƄ vȏR-_WcZ2|Jm2Ə;EP7)ij}ܱS`d&6,?0''kiotT$jPrmk Fz.53/rXI\(0B 33+WDN8X0;rxU􍭠Bd7$ry{ v}^噒V;U<nE$}Tk*9fHf*mTaP߬9Ш0 76Ф44iU,}=7  xZWGǶ# $!<@^ PAVEA[AEEDZ"VZVv۞ݳVvC{o9WJsf3|̽w|f xuq*~AYYc癖 ÿ?3{ K`JθkZodll[g%xsp=؜ХJ\RC*!&)1|>z.K7 V_c/rg񏌌|l8gΟۦgl4]-Zh2+.Dr"b+. ew w=}H|ţ:C _K|TdsfBo^ t*Gl IEHA, aXP !9 'p!~Zkߣz}nLf'3"=jM>ueW!-i,Y DH1AUf>ڏg_bpʿ?T%.Vx$%QC^E:AπAFuJ"xqEh9O#O/4jQC+TP\`3?vkr0[4XmzQi7?N˟ oE C&@.R*AtD(▅#]X8l(qd(J vzكT*ɋe.9ā#B*'(BT()%  v9%[RSc^~r^|]6'f?`6!sBk.C^Nړ`Oº\cÆFvo+uYlŅzN܌bY.W0&Gqj)Y:_Щ?Ak8p|ݞQu)0Pmոw ^[K^*[g r2}{ַt(1ub{hϙ!F?šswa@Cۊ٭~<gޤkqdgv!̡Y;sN8)ma^:wzabrz-<'ch; 10zעJ9Keh=5rՃO񏋋{?m?ydq߼9;CwaU"x%:_@yt;K𜾀cPYv}":7as`NEz9ti1O,֐\ ׀yUt:Wd '=GBI4Ʀ=ٴ oNCA~::JXX݄4U A~g|}:R'3X [rːe![BqjV_ gW bR\eNulhB1<:蜐Y2__,0ATʍ3E1h)ʚa.,ݱ7T4,j+o`kF3["sNL9ON Pty0ːDV E%uDs5jhR(.B[۷!Q 7?}+VU gb(Y2.Y@;ȍ:HODیyHEAxyw}7G\G%37{A9_%ȶw嵟*/ =YIP-D8 40Ļ ϓ2^|0N03Zls1qul(B|ҧn;#`]}eYBy*RȈw( s925o?ڐG#MkEXhwmXnӅUWcRJ(D!PRMyv" H'o|5[`GJz.Z2Լ8G7A.,8 %!5R4-6疾cp59P3Gu#b1tb[Sf?`!p-ª%YuumГgP5^:>B]:Z @Dҽq#ů!Q!G\ hDžN˟=<9LlƮaHQ[wHvasQsFɛ{ 6E z+䁈 [ʖOo?>(o¼SWy12#1ٌ*g .ۺr0'Sؾw?݇M~)BlAXJsşS r_3rpZ'MBkp`cK/>win(Ö",\BwxڋX(1 2d&Sk½/︜ˑQhJ +t^buC;_v^4o'Yx#N6DϋVbs}ߡ}LƟyHJBx#WmāyTlF47DIzQG>6u)&/~mT.>Btvvzhž?o;ar}455yg/;i,\|ZԩSt~xN^ Et9'VrI_1uΟ }9'^:}/\W!OB\'LOr/ٗ? _=ڱr xdRcl޼mmmOM;ߞ nw*%h'O aːؗ%j2-@r} 6[W_r9Y?Wj]h˫NK㷸rl깵iˏ̵^7r˘ %:yhmi?wȰ100230.ČHl& Hg@e3 # ĢPq18H8 Y ! eW ^@2?Il6bPg\xYkLTحֈ5Imb&vhcwD[ZF~ 3 ar5^ؚl&j"Ge0ztȓ3y罜C|{^X-NBBB,|BZzl;Rątu:m۶"##iƍ[;O>ÇӆVDD;ے?ߊڱcѣGȑ#t!җ_|jlo>={Ё(..>[l"NGV***J% Svvgj2)1!jkkʕ+F|2 (WKk׮Qhڼy,DXvb{vw㡦&YH9B6l;RQZZ-n^0NnʭZkW0uvtwaBM##xẸ&t@jW/R2%id[kߋuvhƆFsQMM =O<jr@C}co4Q ٲ.c#c+nw w:}ms@꨽׃^}ĸmm69@)׎Tꕫ9h44w}Np9WH_D55|6CCĵ.=hq46:B?_dy^n ÃìQKKJITU*9NemJJ(d2e3TgT@-..z^xA}*333Kr"_7!/fZM 7oÇibbivfhUW,ݻwop+v/M7L K_n5O>)ʐ/"Ca$GPp*7ՐCϊxߏ_^VjcuRǎ[tuP>[U|}nu`Oq;ߘۣP,l~f v?/>;~(?!+D<_FѨ 1ڼu>&#PWŤt1qڂUz-@}ٳ ş *:}gq^3I&Rn՗WxwTWGbܼILVK1D%v:" 02t&MzoCGz&Xn ; Fc^> q#9{'?s~w ~rX1IxןK 0k*ˀ ^nzވ6]W}gqlC:atɣɋWQO_  _atQEGv)lAHY+| ":_#PyBۻ#ѧs(xqm)G|?=cpܶ Y*=-jW^G}FG3t !tw&D9PuKq 3̟?zRZM`[z*sn3gY}MK9 &T(4*a K ,skk%Bq,sius^yrvIS 6"0iyMp:U'qU҃nTgvv]fg,~bc2 zmHŔ8VUNw*B# sT3Un^_A$Δ= !foGx9jÙJ7nϿuq]\o蹫HY{f\F;ᜱ m,,A[}JϞXIUG&8f̞d\q#.\K7q&n7w:w1wpbK99;k6Y\7F1%O"JǗ’LLg!Xjq[`fM5Y<~Ӿg!ӗ/;\ N]yu+ZOѥ\`IK!~y 猣9>Y,4~lm;\a]'WQFc?_7fǎKo嘲x-嵑8/<ŀۈh<_k>_+[nD>& 2hbC%f(mY=(g:2۲]L &b<` WcXEf- ڌ8Cb_/oX5`7'ݘpg!F__G蝆i4t](lWz$51 m9{<_vR޿L"d?[8|#?}2^L[ҐG?Fb@}ұil 2ېjH4C,x~ޘS:Oul † T.?;-Į-})=v I!bNhOVI"b+ 9̵|sO֟%Vkԏ鼎?zkg+Ŷ]L{&bl+_V.$ eo@Ξ~W&@ پBwy%?onH:C`WvĂ%eX6ZU# ^>zsSn&>b}ԓ6"P.Mer<ՍwS "ߚBGp >sc/f);Bevm-tLT =#89][倝=EP-c5cJZqbiدm~Q73e&ܵ>usCLpYOc4(,E5% +Mz1gZi׋= 3zڷ79D=~Zc;wgF|U+t){켇57\7c^ )Gf9|oǽɗ,w~ensiۨ^^Ó+aTs;z"v@Lu[@'W:E)N;~;ѲNb2@{j^09rEirHڋ3(,pMl< ~zLWS_N` pң/ v!;G`;3ϋ}5;j@V#ԝ_]o}6SⒽpʌUޟL_P' d{pgC,W>X$Nנ5mW<)=+l}z-YE:GܚR>~sz_3]Qgd^7pߏrBz`v &MOWs>-,ׁ'WSh sר( aw`]ނE:kU\G'Sjp B­ihO!TKeo$3:}&NKYsMC+nC͚>MEEőoT 7}z<7尗+64V1K' /lDߘ~>3j;iϏzoݾ {J7 =WeX)*23ѝ*ҵ43DFDjJ|6]Zf&SWh늧.)Vzz˔zXQx;ys &pO' < dro~ -d&/,W&x&; L㙼@g3KdXdr*_B?C(f l,D%0GDF[!4)%ψL9@̡[Tl6t BaRX8x<~V NNN`0h4d2]TFgۅc8::/H-mTjZs^?ӨV `gggM&z7I;Nl6惚\.z[,kڃz&!J%\.DQP՘et:}f=?J^ollP6c|>06L8Foood"R)«pe2٭yX^^Kۍ].Vvx ŒXd% Gǃ0rS]ߊ VP0Cx_4L]!b_I+˄+Ǵ@~%>LL$ uhQ~܏~J|$^$bޏKD?{^S&/_uaxyX_ҦO$M6ml&$_cTc$1D4A@Avwa}aQPA6\cpzΝq`ڦ^w>9֭~h?4},-Ӱ |F'A :_=}Cݯٶw^hqlQ|pZ[v#ǖygoU՚ ˱x)wuu]V__555}Ʊia ?} Z! Z {YKḊ֡; xN=i_^:nR z;}4-w5ͼlWf\}!S:\z "*_a+@PI;[ s#` y&:fx_ݼs<8q$bx6Ne&(MILst #q^y`)*8P 8*0 L 1X\f`nR_>7nXmTm..bbw7H$#:;>e.&,hA񍶝 k;!{r[.5NYK+ VhQUq |qhY0! 2/G&xX-&?O=ebGm\frK׬Mfkl/ϼV/>gX< G$tγV~3̓\qf?ƕI|9pJ= b)L_ul|\ g~@"Pϙ `-^| aMqo|SognuCWfȏ9̓q\!%mePKqEu?Z Z =!˄ ="89H/u {2k9$sZ1 2sHb) L M4rM\ W}اmgY,σ3 )J<V i5`_zE`yB|v$@,q<_)|}SV ̦ ``t_DN533[-e xm"]#2{6j/ <CEnD8Vþ0Ol>?Bʞ8{b*pr'f`h|FC8 򘕱fkCy?P\E5'G?L%`Sھ)' _U9HM?XTvţ*vk7o3#͏)'r Ӄ㘋4O39mG%o+A~r؋sl جe~PYw\ߒ"fI;14Go9]Oz 5z1zo+ws9G//\x^a=iETVVBmm- 233azzjn݂'O.ȏ A]/bC b|杽jr!Խ_qqq...uuuKWuX)?ZH} as،$v>i 򠢢222OZw8Z^B˜?~CI7rߟ`uk|G۬2Po~٣X_z{t1DVt ֞Nډ/JzŘO֦9cD9ǭP߲%-{tu7c斌]a̝T?Rp@yRJԧCxx8-Y?#ۯih5 Vߖ'ۄO@@Vi?9O7c16QmI5I½)))PSSb688g!bj*#Bˍ/yR)jcbG\}<@Hib]cJcc_&''o /}`%dWtŝon3d!/`=?|?c7Zd)/O}^ƓO?&LYGq/3!k{pO5_2 8;4^V,"4442PR~b&&&>W⧽Ʊ}8nIS;Ιd%u` ๽/I{Y*A/K֧rrrXyW)wh~QXC@q2܇`=tE!B[!ϵ'vBa[w_')7nmm2 Ά;"tEwrj D n i7W߼FJm1[ ӽ顠L0+:EvH.$ LdgCc -1%DPƾ~===y`322bubO܄_904VvgN .^wPtfrͬól={`׮]l4sw5%q=A Add$.OA.YtW8w{_~3;ͧu-Cݟ6d2?ˍE"chYH)}K=`nPq5r &6M |'{7͎tG/=7Wֿi1nOsj<~NMV g{ot%M^FB5sO\'yeN.{Po?-f 3:bcz2q*dǔ2P[ƽ>\MN+cz׳_ў?g_P{|ǿPzwҘc)T&f6kѷX{@vڃVkԷ^^g/NGWTx[usFc lπ(@A4œ@3,4! 50>L~`+)B1x&Yęe4,%T݉dVY|S`AL GVlL bvB 6 JJ`> \A,]$p}N⏟wb*fFfFfXbQ8 CzYM@4Ke#?\  05@LxTNQPZB" lhEBP[MA@.4F!hQ41Ã>hL|Є?u}:ٝ='gZ vkK3xڤ7z%n`[8}ikslRk0~qf{ƒ &Ko˫_=g2zV&dq ry9U:3}cDZKgxGGp~L¹~f%1zE܈WK5=Vr}"n%60ž+žy&xYԟv@5[-q'aDљ80kiD<WާL>DS H=[#8-җ4JYT+7V\ۧlկ謹++f}V̳Y-4I:)kHe LxTKSQ2dr 0Pҗ"$}D,*mद1LqEY#J,oiC<{8{Ϲyy޳NVZi,jSѦQ+ѝǔsP:Uđ-4UX[nU~/[O _ އ ,L3y Xjǧ,Jim9xxܦ4FV][}N^`, r" t]ҹȗ53/+ 56&ףы$}p3R+e:7)?O#ۖT2a vck:Gعgތo)oI{n(HOZ/qcG;D}w8>/_zDKU+֬}bG܃c8=͍ K|u|{Mbʐ θNb¿=i/=Mz^g߹{#Lȗ53/[*[eխmW:S+e̫aޠ:S+yKld5rS65j?1ˢsZFMr։iWxRZWc̈Ӻ$ή|.$V[RxW TU½2]f ĜJD NDP(( 8HȠ(2]IPI PKIDfZ/^9߷@\ܟ+**kjjT$Y-?D{|pm0-NǍ7^UVVΑ-AD;bR]|-eX'gd8}Ϣ/o̹{7$e>,_W**nbڮ\FC6VqsꬎLŊ]덷 9%l#i%!+;--\R'T_oDHMMx7A<@Q]иgIlB˰%ni$U ǧ;4=*ŖX.&DgCxڇJ993 ڃ')9x Xri(oHz_I!o'uhyЁ JMM%affFF2i1RD@fN! *i2{'h">$_29 y !;fڎ3e799PQQ 450GY!V(ĮseH.s=)+lSĺ1 bv bFPW^)qɈ+w:BR-dTcGj%(8&MRVV1ƍ}SsxǪ&&nBl9S- E|q.װ7w~!b"g)-MHijLsŢ/ab3 L%ttt`5Of!*r:H'IItNnqbESs3'wFKݏ>JTa;q؜Tll; }#@^^9bccsssYX"XFD,%X""" h6Pmů򂏏k;n%`33%XAV*x<#''+++8991.}| WLTz=GQZVGmʱdܔDug{c`beǞMʲzF1^#t'N"&+`Oq 9ךF9BMF6tYPTT:!{{{ʥk0s`ёg ,:a%ŭq ?RXȣG!PLu bcc񠳇hx'd", 5l j=ѱ&9"?ZU5Y$ښiZ 1g`xC%<6+ _p)b*!.B Ahh(4j5-Gx!Y̏)%ˀ2ŬŎeӭxMGiU|.9 SS9,!jhoY%NnS+_r+;DP5&L`IՌ34}Yb}3f RtQ7b\tԑ6XAz#4TEIƽmw0+wtYNy_$zNEPs --vM=='nr  ,t1||wZ'6|OLmJ"nZ-*ɗ]FDDF])FLRf׎DFbOZkh}B ]WlxȰܔ -]ݻWA?xhR Q€kL 5Q}6dd*l^rG6)oY#%MiiV}YgJ1K~zʪN31vuUw6%;22yA+V|BXUUun*cRl*bKϴ^/W=9 mfx[x1?d0}'K_~cԩxǚόߌ6 Ĭ144"F}L_#IU 賙oXXgA9}ydsR-/^Вq9wvuu%ӗ {9++>W,x}<,?q'$D]YYo~~~'?>[$kZ"Q hc466qf^<Sy*22< Վ1[c:kchMnXmyUl, 8x;ys &pO' < droW`:BBKBPzT^H;LN,!3 3H=E9@@=xj1NRriְJқo%.Jol^ݸ ~ĐC} [N ڙom_c-6$;a[5lu >]U >Y |C߯bh4QJ|nNUMmg6m%?&?!Ԃ5{>΅zsnh'~1]S.:+W vS-~%?QLrfFq0.~ʁ6? S#5?I~'x?⇨/쾠oDĪkM+UW߯_~z-=?Ůh-\״Ǜc!vuأʯi{DS?i݉Oe}dcV>>ڞWsq^Twdq^1/l]_23 ʇ9(2RIG"i*KYڗKvZ^zB4LKٍϮ㖒\]ʹH'ivˁK"{f@+83ğx횱j@ ukBK--c^:zP tx̘g+\O9K.)E?d{P:RWp.2yN>3#Zm9tfe( [3ˊ,X?94Js!S#뺁3~3)/S齺S؋cH=&Jy%~^ ?W+Jy%~^ ?Wϫğ 7n7Wb\*V/3S ѩ3ؼ0~v}HFH0jz5n]G { 7$7'z랺yUQD"df~-~-~m|&>>2ߘ]=<]>98>9;~jbv`X=ęZ;"ܡaĴkD;TCc_h 凭r+FXkc*0GH\ATF+Sb%&3juL>qL NDq8RR4(l=bձ$D cb Vvs ZY.y%qJRSqt)gF %wl$I^6;V?_t@$#UΒ!;O}L!R DH樈$ 0W),8Z')J'NORd( sM\&M9r_`;g_~OWxhooth{?4*z$CA~ǰmT8"U -Ng`yL$2RTQ9 Ebq(.U}hg.A*0=4 Ym8.ah]I FLܖ3ܾ>-4b4V2`3,`#imX>;|xugϞ<~oի˧OVwf}]Z !a_T3*iWT4Z[J ~C4q l+K{4|I-P'7ag5R V &p]4ߏs\_5z%gp7.t ;a S* Ul Cd&@d2B0k5`{c{'WOW}7߿}g뱞OqoHɚ]SֈoⵌFdU}1}Eǹ9mlK5t=ZS DRvEB'* Yp4P w#&UYr*x%ʃqs2 |V2S8-Y!kmJi=w99RYRV+Ax-Ȅ!RohJ-I˃%eܜO1}w%u}_~/__GFҡ iψg\9lvL(xEm첈[^w;+ufC>X(xV!(d]:C ѹ 6YC\tjRKLx4'EТ#D3䓀a` 'V*kVvjRXӮ8&=P|df Sh|VQ">o41I7)|wxq_jh|ݓo}ŻoOg>аn`T9ն{&Ցqu}\1/n{dheZ,/0ڊR%NI 1LP0EdEIl9 EE Ir8J4N+ɇ@|=PJ"IgApe YYN#$ϟ?2gu*Sgrp濔K3AݜOA:T>X(kstMVǏxfbӷ;ǽI謣w\?m74h[êUWգ)nSG>{Uo0&$pJ VAX2RAV!bn*q+͒Y1#*4]mHȚUqh\ !@Iv&P-tq?~hԔ!`t(brjK|AԘEjSnhL@e^5Vvtϖ6{B+sAsuЫ4n9;4ŭ:oe[ouXC['J]a!smL 60!5" >.[i0U W O386* Iò(: n'уO?K\ oGҐTdV΃ihBȀ]ľS۠UU`7ϷcJ+qz* &#E=5Pp^i(w9B҈Tj \w!0P1<030804:Ұ6YUmr'DVE S|HCd6/ol+i2D|S2%Bdih* f3d&DGKHL3?| TC s>~ f5$z*jn3"h7磴Hv/6Ξ|7?'?__>ߍM7Ko?xpO{g?}gk5^oO׶EB/^~嗯Nwpg7&.N -s`ipDk~\+OQh,4K@|79;B H@e&!>'sƃFjsnW:98z럾|냷>yp"~d41RTb- =mXpkYk󇏿xɳʼnPSwiPf|vhiohmyzbrz vp;__]_<;9ٚP~+t1:Q6t sTY O$ I%~j;)͖X`|26(FoϫjnD'{WG~xpDHtc{ppzm:PQqr2\;ލţk5ޙٹݕ噍H&. ΍n=yzqquzvy'+Ls_O/Nw:LeJCU%$6Iʬmv&@'T܌9$m(1'45:47q8%E;g;7oщGbe`raՋu@sx:tuy:2X><]Y\^usq|mlzm~Ƚi[=09U3)tdrtbiZ'G؄MlghsP7}h-J^j^XЏ2?\P]HVÉJ"o\P?5?ulqlc'_<|~]ھxt]дW\;<5]GWF"ѡrt:U\h,6EWW7V:+{J: }r_?2 sYv[ Eъ˳Җ`wyoKaH=].#j*dfvw+¨˯(\YY#Rvpr|rvؘ^/nM,n//<jwj{iemypOXkbXO^|`yi`.48g~;+O q1JmZ̓Plײa*/Fa[XtvP3j2*@8;__pV)7w} ܑo犩Pȝ `nmF^ ]8i iFA z 2zs>v#yPioډ no/G|/&熻{:./{"m{- [Sխ#J?~YI(*[Z ķ{[&LRc!4zQv(P=Y]dXg6^lWv5J"VW}jpDCn~IΕsVܮJ%B?j5"D- ɧ R mlwb"(Wmԍll,u]_D7bӱuj_VZ =ƾsкk^2iyr|wA{~\BTn&ُV[u{~dfyл-^Z{yjII@?OJWK:A,f+IΧ7W64O-l_ihzy՛ˍKwTM:{t\RY7߼ioN/KV5bVyOȑ9)vKw4'G jR Eg퓣ynkFֺd e[tT8ܡYͿʹcSqu-3faoʂO}NJL3 "ƱўHV1>|e Ӌ퓇;m]{32ٿ_}:xjh~uco`;zx\pz^ RvqtєA +Ch+1 R?Or^Yl5RQIn-Z49[_8z>gۙT Nxl>: Rr>MEQƪzdZogvG|SyK=]2:g旦VWrGO7O6b|%8Rк|z26 X܀bcɄA^^SvY{よXmdyK]m>]Umr𰮹V֒t;î7"lIKi|h(ԏ`Ԥwh̬ZK[Y]Qf:=?N7h^]<|*~~:YZlpg{fF*+MK˵{5ǭ3#u?}_O:ʑw05YPWJ:Ûg|StvT܋z]b5LYqh~J;< yti8R.VKk/_,kFy>@D19yI)Kɾ\pcqkB]vM@kbW\3C:3kg[bs S]ګ񁡶텾F`;^[%Vi>lł!.%zKes6^۷蚏ibDx|S#M}csRg#vGWצ*j9JnώHs\z&[]sn}W+㋥a^o͓VW44pdYutrkr(2ճz8h7cFVsk0/nDv7 KŁeuZdm͢6`̾sj9<4GC\n ϷgN'y;gudaʌlfykؖ{⺾//gl10fA$kŽOa Ą}}a %U|"]3ܜOUWZl*t뭝Oc5B@Wݮ>T/ku{U+߼O3WCů՝V$5xK?=_>{px'o [.G1cT릗Y! ^HĎE}B_bSVTd"RR ɰ;riq+++>ԯvHvA!¿OuZlqhZ{M;X˟?v=_ʘ*x©)w狳<;wJj/IYU:Ɩ{._lƫG_?=yտ9Qzy({x:ݵ4]vul~|!Y:|ygTgG ./…ܲJ--(ַ%+ كs#&)9"Kg:u#7xbH嬛4 4twm<~Grbܟo gxmtoz뼯OS-nsDžMiiN<<"?=_|b(Ջ͡>SmZޖmG<ܦm/t^_ZY-jxVna|Lk"_pr& J@1&!TmU+RQJL#Q17Mo`v˫gkG]6XXχ=/ n yiI 4uU2y2!ЄD0.ʧAgڻR#XiCYB`vs>yAUGwIuK^CGx~fAS|ӿ~{iZ͵㚳ǿ^RkPpd{aBܴt}Ep'Y[ Qfpnۓyl$6޲h8>U|8>1tw ȭ-cř{;ZhE*0O{C~ zzMk٣FS|!HM@t1Кe4YcG5Qn肤ss>Uս[񙥍ˉӑL~aF_.q=ٻP?- p=O;78mnL>9n,m@%<Ռ0yQۣ~z`Nj&7&zfnWV̏E BI8tlaۨK_0( z§6,c(|6DzQY4 %;3zb^4>X۔./ݜB穨7 VՍu/ ϬlN<,+EF{IPXa//7|p:?t?qf=OO*͝]H\ti՗oTKF|܈_4c[G[QEz-<=+on.[GZ#íqǣgl):;5kC$T_ol"G'Ee-G~ىYD l ϗ}KQp'T2S,W5CM#yJ)QxCA SuS+ݜO{w{`cg_[~|~~X_(Yͭ/P_w*ʾjRAq8m4׆ ܌ӪǗƣcŵ1'\_l.'O'gh2?G#::q/-VC}X \%0,iu[#yԫsNʨBvCP "d#P\&ylZp?8* )_ϵk3_\k'R>ZppVwSu؍E+mԷz|ja<;sj{|xx3kROvGuyQxy{|<lo81ɚre#/V;qّ44;--x\dЃ~ ƯBQpIAr0ul6r9 ! aaY9.D4`A$IAX~cp`Vxe|µF45@X+kr8mmwwE;{ bL-X!΋PO Q\gݪ槏ٟ][+Kiƌ`}N ءv,;9({tQ{v૯*NPIV(`u8h )Ӡ"<6E`c̞t3_W Ápt`0>7aIHR-dt56WMe*1;}=v}dF7)_Gk;މy`m=2GGSytz6(\ a]_U?]>*;àԑau5!=>睞UN WRyNYQfX*]F_<,ueL[T3x !hwma@<W"$A䒩B*àP6*-99n.( <@KO/RO76\{iնjwx60 z.))Vm<}84<~Jffع"&.mkݙTm(Ad`4+ ~4(vn)b}Ds[LjjLţz zEb^l.D &al"Gưx2"`LAɊ\45#|N@E58P̫W ;iwr?*˛i"ϧIXJK=^Nɸ52X.<88&IcYb@Ks<OE|=j\B36UŷDN4К U#(RN_;"hb;+̠a8Q&[)J7YhÉD\3,Es M@18&" @d 5! ˑ ;s|[5 z PJ1Xr*vV'TA2`m-Xxo0ZP+Qh 4%A5E 3 .t`^wbx4g H91 CGcP43@}8I( y,Y $z>_š(!7 әKi72"1t5ڈ6 jTou6f, i.#4elJ d:̅xGG gJU83$A'r;SW!w3XF(F\u`4i(BFBFk &r\ɶ4]I( P)&G3PB6AaspRz0V[AKtվyh;:&dcz?̟_М^b$LqrNEIuDMyB^^QH4y@BKXd 3o?'CS;]`}$ 8ERx.,u"!Hi"߉R)O4.W#*1 ,=.* |5B3<`Q S<8]Tx)@D?Oh1e3ڴUo>E3SHB08 G"+<v>p M `1$$AYwanC'?GqWd䱴xJӂt=X/A%@tk 0)V2Uh'B\DL^ =dF!U@bX02%4 yl85 M0f4+0;g-]uEsw_iEP4јZ"MJ*( bQВ,Ƿpc:RQXC" KʂbD01Ej߃8'?KCs l# '"ʠD)ɥ3t&C&-dCg]@~ Qx#q!4UEbFAPl 䏪 eAqnG8 Qbr狋 ͍mE=]U pMZb7&0^P 7:[%Ns>6T I^иh"O(㻠RT$=äߓPg2t\} F1ԙ2`r9Ѯ2TqyLr)È"7\!4#Db\4"IR#9lN#d@ d&g*"-`[Y<#2\[*okj-,+kB2H\hps:ԴW LΖu 7F;#@[("Wy<#9[@#Xn"qZ[h*75!%_Q])W9**a*VD=^mټ GK-bdBPMQ8ؽ`BF6%tE!$R~-%ōMu͵5ls9*]ji. {ZK'z ꪬFlXp( N#:";CheRB%POM[IB579QEC2 +Gф`WEPe IEY"X+$:CP$"Ibd8"8" WlTS#́FkmW( rèi KKdu`QV*\Fw~:X4%R(QEs2lLVтl@|0`g9"Mne#h45Ȕ@ʵ d%mDp. IȢppB"!'8[ *``DvN.~&A.&N"Hg@ea4Fى?p޲Q^ݢq 0L(м P҉rQIdXB OeD22Gz!|Fb 3(o: ;S23s>gQ|(ei@Wf )Z(I  x $ 42+MNa)23UjYYL s̀)PrF`9*$Q gҝ:y/טgYAOQS#%(1T=iS0\ O!`2))(V&l\j*"DBA@fApr)Ty 'e,hh*(ǀf dh1$9( ,jJ.NKD x' աfp44HU,` @׀ ,̼Uc"c{Ց1ChrL|.R3Qwl GPb0I2:4rk%i;x6M) tf<,$# &$y `f)R4@Xv.IK10J&ť!ٹLn Z+ dqv&>`SșI6Q# XnK\$RHrRLT&Y;t9tM H fgU0=iI@iƲAU9i, bDO ;! \; v&)mn掏8ZMN:!E9T$JtBi 9J`TKFCYWRm "( &%5 uJScx@2$2(+J$3)0 } #ST$1C%|BFmm8X#xe? xƿ}^2q/`v0w{[B~*t+oEJ)EWo1?Ooe[B*)WT-YTʨ?*,$˘TOjO3s!d??1 AxJSaDA?A & (#  H& .`!<0޼L@U9ā@& 3La@ԀmE.94Ѕ 圉*p(3f 3Er@{x i[&&" kFɯE1$I)Y$DCh%f,15,* zt@ Hs0BDA}_b"[ O$%0 fYtd %:` 12pLP q (- e?☼GE)f f''d&'d'매%r=sS3r*2&P# x{%Ipš&L>ٞsF .Q i +S[DA+\ 2yDQq dU@:`121g&gw}fde`͑-_RQW00:\_J`@x$xHpB̚-&;Eqds <׳`ej$LF0Ycb='ˏ??OlΚ 𿢢h 2 & OAs ;+2lv133s q\n,B(*X` XLN`d w7 |Vc7 :Tt$#}hwvw@iFVLHgMJJ͙js-\x[uKSsY T2+̈ChB9TĤ$FFfF b3,@d 9!7 '#m59CZ(" eqMޣbgZ_WWZ\ZZXPP_ZT_^ZZ>X ex{'FpB,L`]2ـ5bF@!L zf,@0qKDAAœX':5X'3NnoH X؂X:gr#6 ` 60߀hrA:>F&1 w"Ҍ @'9SJR2J2&Pq~>Ox{#Np?#d&Ɂ'fl @ X\;X@E @R 4QPar7L<@̮JN1 vf  h&Wp$%&Oaa @9+'n9? O>"c !Of՘*;qϒ&'0ln`Kc dݝPDJ&{sgg黤觤&{&g$MaE-x{'BpFfnnɻCy899 qr ,,@"@9N`tNf6rYBl;x Xw-l]a;-un%&F^j8 1؝$dšd'#_ Dz^7MuZ-ϲ Oet!uxU?K@Ɠr%צV Bn#tQ:]0ǻ8ptp6%'=|şq5pW@6AL: .:t'ݒr-#ӂ)[0YwRO2=ntlИEzCCyjX=K|e&zJH `OSzY9jyNOXAU&4v T\dSArֱ44w; cGئ!uޭ79P8-r}G:3S5n:'I<˜ Op\v}DžN#y'g p3ux{!FPSa;#0qNfdd2QA`  `h2Q~6ljT@a0jO.`ee^1 w"Ҍ`LHLKL/KLCMN#uxJAwvo/grǒ h H AFlkX (h%~r7pnE#Yn+ @ 2P7w5ש42(IT8Nl="Wa. >_?F̴jkl`M:N#zUD(yc.Еjj\#8(S`wnSI })[ʌ#NXkcT͡nF(c^FB$y}A4^tN.Od">j}G 5x$ApO~è?Iwd{vN9%&^aHIcr3B̎`BV7G}A R19s >N(O*Y^-MSPF234uٱ"b$kUT4LӼLJZBlؘ x7װH^;sr}y}LL4̈3}J3a0vq/ʤȳTpOA ՍIB;}wRE>LlV$!V,N}eRE4hbLfȭ:f%Jۨ,54K5˲SW2d%6yh m׏7/\$S#uerG[Gi“3 Q(x{!LpC d&"Y'W0L6a Oͤ6Cs32bLϬʂ" ΂&@~Ed>.E&k3B٩ΙȲ-Q A >0;;54#+#Pdotޜ̼$̴9ü?h#Bx Ap>#ć?PFv(8'?``?3BމDPbhab $ [";e6$(bܖ1 |Yٔ<塡T3F"`4@ &0`e@hD&_`S@6w6 d}vYAI@,Pi@y <#{^bIiQb]f`x{%JpFfɻCY&a 3ٞur)))i 👑 77t1nnnNNN@> (( sFnLLL@033̟l#+++4:։2*lll 9@u'sd]܊]8n=P D %%a"C@Ac!+ `!/s^s Dx9}߃jgdis1C iq36yh4; d>cճ&NtHrv?)ق-R=VѢ!ޒ4`$ uꟃ4`mɧY4 А%* 5ie$: 6(Ec@?HXߦG4 +nBtk 4XŖRs nIf%IEاyaaWѹ{vsXܾ5\A԰Y%z#7 _^^'_o +ۥAg-m%s`{bbTjWk~?41xTcp\/*Ϻ1*#~Ri0Qm5|[axg ^*N7xxGÞ_4 y?[ '~yiC, R\ wx%rKdC8D2/+L6gTY@5&^ JH(ՙ\肍di&ta/-Ke9Cx{!FpIueRDA<@1ɯYD'``Y99$`*Y@3+ #fE RϤ;ف*a@G'Od]39es[u@121&gwfdeē%iEyIz%iir½~x{!Bp L 0 1 L,E'۳0TTTj2U` &??O@b 5q4`+ cYSP` Yx١L@o&0*Պ(3%=uvCvq Ux{%EpFf..ɻCy888 q d&~((<ٞ5 WTTA@04!:Hr`SfE|!:&&&$.# X96#aQ`bU8`"`6: 8"AE&'0ln`KcE]|L b@vK"Ҍ`ϮaV_2y 1x{%Ep>8Ϗe&'0*$PB3݌2`@0/Td&L<,P@UX 2i... hB`u.̊"03BDuLLLH\Ft#' rmF $Q 5gL0a0X671 *>F&1 owvw%@iFVL0f+IL*/qH{x{%JpF & `N q A \YXx` ۀ&#&f # %&al9qGă .Py'3NN`Uacc`@"""2@1. X@(r.3 >%l #*** zsNSkb"/07L&#2,v 6K.ѷ xmsʑW`K%Mvn-_;ڲe四|څHBL\9=Pc٭M,`AvG{q.vu~UŴzQ\TmW7F{qw(iOO>}i_Ysv^ݪYuz1^rVUQ}-\}WO<:Vm[U;ؓfVuM{U̪kqVQu醏xEsX,˶ڢ/梚W.JF?!O'?=?>lږU5 Wz9)WbZLZ,.ϫE:ڊ 21-dRٌ_vW7Ct(iU eή|I$x% l MYї8ky`VY=fE6; Q6/m&4o.Yќe@ZOR:]׳gDӴ=ҭcNBh^6]{0H$tIm.ѧvX^NVimJ~CӞJ<~B<=zPJ-=W>K*r,⢮. t[MuVbiU; hw;9];(>We,^vvݓVc jIncuVWMgV\ԘUו`3/K2n,L]hRz* 0/na/vJ͠xtۘm㼙dӑ*֋UՂ_uv=^$SJEF͘.fUzؗ%l. ,V|ZbMO973fu+["D b]V=ĎO~`ӣ4L=. ݽM|M{5bQ %P7 }= z_6jp~.Bͺt|~ݻi8a#FP$FEzŞ1CϤuP!I:fM,"[Ѕ)YE ݿϮ zL⾹y?}o/oZ($ Wt'W*\{ m*h;<^$f?7ӼoK0?c[eo-~)z+?tSyU[t?$6YUU* X$6pl=3tFw&jQ3-#Kи| ptS(ƣP̚i=6[Axmڵ#FCǾ;lkaz̊tl]\7:~Gm W&4oi擽'϶?>8xь'wpC{of]i1lzjƾ3|Iںgq{ w ^l>=&^-|"wv7jd[%ŸF5P"M!WxYo!=͙񦭖eNkci>\&H~q( E) Hڵց@c6o6/3} u"q|_U `'_J~Eߑm U2m^Xc2srU3V"'JDݏ"n2H{0ΰ5xRr$@X3>A01ԛ r x>NDF2Wit:|Z!f +b^wpm!nd#uMh<|V(x ;vw _#Y&K#QS2#AP&jpn~ۚv\F%x|rlISI5̞{> tHxNAuR&bQ`a规i Usq|-\M4)l#4ռy8Hw& k0(u(Z jVOWylo&HCHg2<CZwp\cK=q_5H&Ⱥt;\j|z61UC,QXt}،8&,S47V|wbZp0+|A g,%Eșpc )A$,b_V_N&8]/n-Rpahgnġ;Iq޳ϓM^3fAY'iw0Z\Wk`_W&B,ж η;-֓\܈}QY$Ԓ0>WD/cϐR\}L$y$L]9BPW?)g~e.>ySч?=}qpG"(;}~?{y鳴@?3Snc]y!| E+H<RaH2qT5O?szTڼ&=ʷnKOh9]5Jg.9`9nmˍ*epjcVR@{Di ><m-!d-28ؔHoLUn.DQ4CMh񰖑y+-Rd8O}ukq˯/-MYA|fBYboDjdO{$)R2y2@J[`'/Tpp; 6}raYċrXC-'ȑ&QX-"~* UxUN?`zX ̄,ϙlEt+WcJH*퐉)"e[&~ܲh\Nl["6-m6|~c`HESp/Q]M̧~Q%:Y7i9{iy`_;`+d (qJVUlYܾWTm}x;4=SsOm@(bhJD BMS>< }.JUB5M["`[5I#U1Q.ef"qJ|+h"|ٛ{ŒK%!f8J۲ZP[;(8BҾn2,R2{zi;t'd2h0&n~|U OKģ/dST7@RZ|io9 RmaqZt:d,7z|"XSZ:0|GVfR+%3oO@)6$] h }bj&Mgsv }dlVaa~GTZ&V4$cwxm]տZcFw9>y2Sl+x{ u?*i: )sADnq(ߴm7Tj͍vӻs'|[Qߙ #'Y( n2?/ڨ'Xk|$vG3zX^9ߢO鎢!q^w7eU=%ZiR(NRX\24DiDfH{ūơJRGl樏bkx`ITt $}k]U6I:`bS@aHf#WR,f<B )dwzJMC$cO) %g|:TK%5O'Zy]ۚ^r:z} JBNߢigΐI1YsD,`G뀩$X{9~ꉉenQ'XAҳTӴMIM Z0+ $ rR='7<;kHf8$0߯$4)~ut3VU=gSÙ]뛋}dbqN#q;?VLÜb0"IѸTz\ht"MR*/;t+HO>Ź#A1iyɡc&<CfP!5CϚey<ݤX);)'>ӷҕKp?GOFwx) r_zZˁumI֐:kZXk4(%ނ{}3 (<ix‰4jK,/qaq \ݢ42ݢ\>(UU {לf6⤉|IdgtR՜/Wvk90G-_M6qˣk;SJ T6c r'HZjVIg]aY%XCYTFJWX/bM~-oQ\ͷE6![śk6bl]ayL6NOO;QzqirM+ya^~;PblpKw.2LLk}.h+j٭G?ReBj!t&0#3` K6.9BCZ7=f0MKtTQ^˽}P 6\3L@fr#['.|V07+]끮5m$s4?kĉVDL !o?!xPt; <xlg"@ E? .ho,,$<F5Ngc *7@,Ɯz oYEږV)X/ְxL+7`0?2>!XUx&CU'ք9o sUW4ЍBAyJcb@dpH_DcctYo:j}@zX|:2vқq2&wc ye,N[^_`56;V; oƈlvՎMדqaцloNr#5wj`e=byވx btl𛣢*ܔcݪU O fC.VB~=lT&KLu؂.Mˢ9)F>7(7twgx h2~ ɍ/7}kpoGr0D4CQ|WG0 p7VlM/1jĢ^"C&~RpL-:L6 t7+ޅ§Q 4Â兇YIN8s &W-'Xv<0ҕy:I4b0\e/Q ]ǑEb RxģtƖ*=O `wQMѦGvѬm78 X}>pP*ϱUH!/ӷaɅx-Ϊ4H*۩_r;hl۷؈-g.QXwg4>AlxKh|+סC(>!藺ҟPq`+ 3nזJa_rwX6M(22F$ EA? vx-+Da;/jfXsc0>#$(2oLqŬ%e3e:IE"9 ,(I?({欞s~ٻ B=Hj75rE򁑨 >#7u&뱥XZܚY͐ȡ"e&;c?Prh:3p5[ ;sgvH~̫t^p%hƼ Lls;4yd݅M W*@M7x[&k>JSơ,3Gˡ,5BUI'6 n|c([74pnJ6Bv/cM;.K׵RQQ%*#!nVPSxmVylLb{v>6[^^;Ɖ)Nb#ޱwza 􏢠$Z((J-VR Ԫm5V73^JֳOƼpZyNuLXo)A5E [qe[Jd[+jLNp,F5)#D"kq)%;QY%)%$;J2JbYX`"L9Fo JJ긋L( ɂ \d.xysgu;N<. ;i{?:{PwX9h /MҰ ՃmBRZUbJ,YHhV+bRlTGQيɦt?Shʏb2>wd/fYɂj|gǏ x{eX8,&U͂y 'q^L2+˂Y+sJ_LTyܪ m&r @6`ՀlIvSjІʰWhQ<rЃO"^@ t.%3H*2I9+?C3h >"<ЋMj%inȘ{'v!|xy #2x Crꩭ--4ޖ iI68Y/d>.<0܀Kmxi8 ;kguee$F7q{^ X1;υ\;f ĉn#xq|}(d]ڄ7&FKCC܅pNB"~ţiOlQfU!䳸5ٍ&;k \#@K%KEc,].+<Q"SxqʉwM7>lZ\QVcyF=3~\'3mL- ful 7z&g )\乇\3,-oT3g{m&7fX[c'B\/3SA'T6vCSSNK2~:HBQ{੥3deWWO+{:dK}&KkK5`Tzhm[*ҏXlDBwM"wpMXX%mIYxeTKO@ P@P*z{{]7kr`HVj)jl.QjFbї%}͘[\Fo%rI5z Ww>$[ juUDu}O;kM- jjt^]#m1E-H3 pY*!*ͺ<) U7coe]$n qlZ=kn3QCU/hSm;\L`Rڨ+U"6@=fT:\@,:>F6Ezvy6Jpwf$޽ VT~}Iw>,*U=O!oll(o;H#iVgPH3#QW\*cWDŽ( QsaT8i~VfU(X .9b^|ixN=qT03b +a!,툅hd̻3 RἛ=kə7X2us<e1TuiICyƯYƏtkG6y2ggt}҃@~<_IA>t紸Ss|L# ]]͟^Y/c֯K-|~*h'oP~|y^ϞCG^D(&[)˨;w&_M 3O&i0 lå x31Լb#Pg5C9̼bg ꯮J=5_%Fy%E9 Njx7D~1IK-*fPlnou iBT$$2XMu)U,rmcIC3wԴ̜TMY6j?Pǯ|QWԬ;x340031QK.+L/Je\ctM|U=KS!D_hnbvjZfN*3.oV'nmHTWPToAU?sVOK. Le db Ey%%EI%Şy%Ez@9nsqiooȦ£7|o;g[$V=K->M\u ?Vsm)Z6CRW0UyVw2VuDIMkJ&7 S\nw.p{>Lky*[0~j%8CÌcį5}:Kؔ۬KM|]zq[+݊\f~3w$~`9@x83{4S].4Y ;mWUU lz rO5 :ŢVg2p<*JMR ȱGySWZ sRKJRQ!27E5":{{bS N>Gڧrt@LXoϾ9+&gf+&L˔~TUW$}$M];DշkYݞy{xþ}C>Q7Gp{硓Ժ͌La.xþ}9%4i'uvʫ;v7s\xQ$O7pIOxٝu$V-қ1ixC&Ά?x?X oO PH%5E 1/oL;*EDü}ZZ`۬&O100644 GormMenuInspectors.m/ҫ@k nƦ~+j?|vvջ's/'hzٌ viPJD/)d CNweٴv3d%l<+WC@qecc16*D> ~C<[ԣ100644 MenusPalette.m;\ WM)8#J<ٓ>A/ 6 {bP)gjOxT]o0 | =@!6u[`;((6 %CߏVҴ1)xws&=`wP*TNue4<~C*ije,WC_Jkuq[Y^(DJ3.Us?\-x=paڂ*;b(kZkVwe`Zș7VUk ŅP;DI҆l`Qצ4~Dڕ9x 0eL@]k Am(!(PNkPMxFw ȧc&@1\PqB\{~Q_0DF/.%9e&{&!̨U T DEpfU*LX/.A@qlXΈR\.@s@rU@gOc0aPD@kh+H(LKC:. u4npnbN\ 9ؼF7TcS)[slbRC\\=l'cR7Kx˷gFy\*>5$5OV,ZR W T 9"=($㚒Y_   rHij$5ױ(3$3 5l\. (*˅;:5?4p%ii.r)JLæs/#39l:~Rx[ɳgC?pkBz~Q们rO0'2d ʺ,xݐ=k0Ew A;Ĵ;8pTmc=/R+96oy˽R8@QAUhEptꁶf|,u9 :hlۓ1Q, )(L%}xK"N⹬"JqD;sN"?WBOLhAl6e9]g}F-txd,&Z s2Qo[A ㊰Cqֱ}ǯ[0E y"b\m{6 }/`!xWMT 3B`~HI`ה$&vpl4Bb0vVԍ{]rΛ]iN{j]4##p-8}OwwlƶoERFw''`k\- Se`g_UI-w$C"5$Kl)Ef|]*?xh[W?YlOL|V`Yh͖7xdے’,)Z*l_S{{孛qP+Cb+6BqXޚcoW*< mjHjCrVeF'0gk6΄T'8G:vb5:`RKl!?rԘ+/o:^/J>l8eRCR>]]}a72FQaYoB7}#=Vv0$aZ+OK*HnnFN$튑_Az5A=,)KaF!/vҞ6- [JeE` fx`|-C˯$vOtxIfZ׹ /=X[R1fu C>eVvFz |:&>:b늷gfyخՄðՍQ=;8ӆQp.`ၑLiyM;,v }g3{T6C5ce䷍r825镫GY`x+uLI3Vkaukٚ13%>WCx5$ݹF)s t$ԮjuKf\,VgE J 9DC~3cΑ|8s&D *=0Y3+&+N&ӅT&[8}Y1.rIP]e:w{<_a0v<9zBGb.X׏0xoElZa@9g X=?|dAOyE1`Fb̀Pf*W{p=A5̓ES&N͎b->"VO v3$6Iw:dWZ!$݄NL !$ˤC;UJ4MM k^q7+?#'sWy ]ooa;j8?l9|qyg$Y!#֧5q^qjd?:-fNô#u2mD-#jo>%k&~ela<*AEu@t7~*>>"_uBpx\ F 7JwٗͰ䎷sMt-iq5{n7*66>JCbاb WNo'p[{uHT ,J-p(V%Ê VwEqV u,s4kuTJ lGAƍ/0)މNzꁻ<,9 aب]x|n1SpO vRkRKff: <=!U)i lB[L(N7LB6F3WvcX@ѝQ]YZaۊ F T )CTʡc'(?CGHU.CWnqw+QWiڄ7 {JP} w!`<z+ܟYC`>` >%7Vѝ'1nyE(,u~]1Ghg ~\U|7yIqmɀo=L$ݡLxj5Hh (d (B ?C.~ &AFxYms9E!8 {|$%TƁ\lk\qҼN~-60RwQr zЛw$d} PQO-ױjZ.b!U΋]UxT>]F~puW\ѕE0^qhWNLW^(hx.35io6E3ϾO\K3?]82^һNIJ]!Zj{ uzՊ|/XR#* tr툘D ͧNw"ҧ$>]I_DZyEE@#9vCBb?[k|}R1 iz #I-k uk$##|2q;4b YfHWҽ_; +n%PB2.{Q~,˫W܂..sץ5uSzxٻ^ӧOM %X=:3AH<_aZ xa@sVľ瑏Px|, U43q)E*٧XcezH+:/H!7=d\)_Jtttnnw8XG9^C.t eaN~i-4VG D<QJ7֚ KuU6 4z@$,tqƅ7g/"xj>O%G\; W&*q{Ǽ׃]nO*"9/O`To?>ȾJTs73X. ]w М&#ˁo߾;=(\)/ь:)~4/)D&6|9ҫ%kdb'_UzǬld(@ C'uC9ppjN+5ky &Q|?E emiQӭ `qMi[S A[9p rEo빋*dV5\?Nw-Fy)W2Q1[@z6wz(cJ\WTq\^PB u)`e"b z)S~􁮛\:3%:Y( CHv-iƝ,LI ԥjAs+.PBG梀V!FG YzVɏrvy.r\ӏ;x BeYh/aQ!ϲan7u)066K&xCux#]=.Y{l' AU7p+tD |%b0@!I7ȼo1oZiz\x¥m0j= 2cS6}Af,,Os-<)YQ>M{ݛ7GEkT]Ͼz_#s~A2wḲQFε/>U;dס7?_izuQrfu*^qԷ]@9#!6hң =?&HI5Z4k0Rr%1lm9VBaY HQ,;P:ϣ_tSFGk ?;9cuFbW(Eq`v>p(#+RI8ogLv< 4CnUB(jڢq3mbk,kk[ ԐV;*mv{K?.PcnGUN[] ϴ$snd]&baz\FIVi*C>h[*Tص"߬ Z 4c3ZNU\N"l jxCU VcvhS`Vs 4r'l΋#6gߦ"!tPo9kr[Le譳jh̳plwבoM*=E.Dch)֨2gg >?4 zSPfd^oqW;\Y%Sh ="klF:N r}:/f^ͱ(h[E$eMiY5ja;<ˍ]1%ms*eH+|_{fWjM{ i{#9 1 L=S8oh啿M0Pp'3'a,gxmJ0*8T`B/6̱Mq0wm0Kj:?cOxo֭k;)|9'[5gq L>Z*B(޶:vyo] xV@&h 7P8o M0m*,ARQSJaAZr+,gn [@6̤bH}ao\ :k/.荘 Xp(28J a%9*XzJ3xoTu~  A@Ѳ|`h`15gה8}:'.B#W1R_ H.55rc_su˃jOd(HDև<%eά[mY?EH x˫ť_ZQ2DUIV]#Ӊv|.%V ~e @Í_3M~+gsh+0A"2䀟1\hQƄ)L:)Hy$@:D<'; )8#o@pO|(EW"*5=ڡ/ ESf蔌ԘSWp _Px'R61əǹ< Kvw^ccE-”O@˘Xʔcdo}-y;, NxAu{ SX6ǶLc 2[d~0<҄M98b1q"~]>2¤V#'LAis3 Soo|v*,"`L!a>wٮn=Ás[el]Hvײ㋃x`wW?.FIb޵q ,'q_PP)4#ThZz7F}XBIc'珏06Lh۰}]A,٨Jh6gդ7Sr@g:0,|4}\u,g֊ ۃ=Ъ};{YzYqZ+q#a>O2\\؏tH??`iNu?c@=<,a1jq 5=L0TڊI;"=˨݂4k JxzX%n,-+8z0dRx(X7ްb}rdn萻zUe%%C[KxM5e4؊`-#hY*ןGy* @|nB fo M{%eXIVPq"sć]|lB6-8ėMB"rSaXh⸐;hm#`HJo4lZ?s7œ3}=s73Xp-]]Zw_ۭu•k;T_iw 5xsH>{q/zT>oWjeR-.DJq~k.fGޭ*I1g8`*FR"x;xCaC?[~i^JbIf~>aǥS`XPY&faw/JⲹՐzBͼxeb```"`L7áKSř$^>"YBxrWL \rhY;ϼ*|sgΡ~O7JYxIZƐ!Z_W]~j4l˦k9c.g ^Ą:~0 w?ر$Xqğ*oK:lךvI0g.m >K>,3 ν\.s.d+^UWVnZ7~Cx#3 @f3 #3THA@ ,`5 kE Xk8\F) `{#2Hz5 400 hy xoGy%E8-蓠- ͢BLX oH'⇫wE))i̱1-b.8HD.fF"H½44&+m(r&E)yQ Yh,.L )[ ňu:(s<ʼ[=i@v1E1 ]~PD ,i0a(HE!' x~;ѿ ooWw3pGɠyGI0t~q~V!Nqv}+{w~+n\N{B $%4,(.?k @$kʣp ^?]nEqe?E7{|:O`,Q WmM}HƈTћh"\&%a*r\Cػ~)vdq ˹ -"Oxq#5p)AhB$˂L* R?,VP\Č({i6}^ԚJx t1Qi 8=K#9-@*e^$ڨmB|08ø65JlfV' FH6X8d}1$l^! R!>*8zr`+ >[dSˠ3 FFKXs=V&a[ќ4 bF#39~@_QzSFG`) mf_}>u?GE4} P. GI5>vnS57)l#n.@ d,i/_/Aoh(N'J7- +CjR0٠_.3ն(@}-BF$EE< H|cb dR00]ӛP{Vr0ˬ, |E8t#IjŽ1H|A;(zL `@ӤpXPz(X^EGutdSB8pt^$@d/&d0K(ZHhP*fu6Qs"SCg4hNS?15C=ʏ˳H S+Xs݊ 5]qEycaZ>-d^d)_K~ĩ`@Cn xle[L-dA#ϧ3D! lN[@'tAID(|_'_4*w )_<Z <Z,=궧IZV퉓x'pRq_/aL9xR4 r:UnqmߐX$ k![Aû@R@_셢wT\4N\NXj`đti@g1o3'祜KZFMXki>̳^1e"06""@մ@@-%a\c!*H~B11RKFɈrߢ@\'M#D]]+*6^ajh{#>fschCOd5(ޢ_qc™ vx{¢Xo[渦I C9ZL/˷b˷]ZjW\q?B;>^=;{+kWQk*{3Ik]8U ]F!U ڰDh'DԾ_aE79j5AZ:df2鴔 a*Ȋ,'mc?qVawQq#yHv=8Nwʉ1+h3`otEȁSX W̢I\YH6e?T aBBǫCňjB kL6+l}pe\+4'kyVs'BpKa2"O㵼cHQ @q6F`IX XI`B(*وe_H+:ѡA.1<%պ|bPpUH17mt-=GL'Ӏ ő,R&Lts(5{ƞ!T&Zx!`JEt2 W46`FN!&K㇊W^ރaCVkwryDYtϨNepGi1x!Z ITB%h⳴Zڶ+/ t zp|C;~QZ??[1CoPؖYGIG2(\'$˛lxCevI,/LG+6HyL}eTKàĴMҞgZ:.!3PжQ" 俌bԧE*n)ŃJN(@:+L"08: D!e!vW'30uqCDKn~qBBt^0^s 14C$)/H0Od^~fg9t Sr*ׁ޶Չt<*XQ[9$ J `nEf͂`k@J2QzdI_TphtdԸ0QjZi "I;+Z/vu] 2"GeEzN=C4fՌsȝV{5)"ͯMs7B+0Ռj5 V3Y(fܓ"J{ u~M FJYL1繁P[rqo.{E4/r{C;@&0 hae8Cnj}BYƤEX0? USCxAJ٠z Gt MJ[YoRnHudv;jGFeDDV~^*f`/⩄ɚ,AߣWbs_-W;Ys}r(9 yt02X]/u{/X4 L&ݥg+* Q ;R3 ѡށ9vϛ-js}6x`Ř M`uU ,h3wQw|A#)!U@(s5(,,Ir GsRPuKATѡ"LJZysg-zZGekk̪͛*8G!W6)ܷIH'j,ͣ_1-K] Me B1t`gȨP5@dg[.VYtaj9ʹK/S gU I|%*sA-L94sv5ЩQ|o ;)Swk]nXM[7xaԋr6x"u`̃x A!%E" ~KlM?͊]huG7bSwȪv̸mC]"cFO zوYJgf:SPG Rt19jfm/{lOE&7l 0JvOk93٨آjf_% ]>oIZn7r2ASޡ5!F2 Ck|D%Ph:QÙ F G& ]0ݣ R\$D%K@ =crzzyU2o{NFw|Lvr}R=z7.4}A辗zfOVKdBtCe=*x6G s߳7n+E)'hxSk /DՖ"b)4>wp rzim5 uTFI Z~8sb[X(Z4HT?>9}I Ukt6׵BYc.Tz^lF0hU)푫QMi~S2Ӯ*]1wjSx2KeHR?dYlT"\ZgלWơa^ ߀Axʅ6 u 0 @g@BկXIj+]F@?&_CFHc0b}`bRjF/yȵ=MPpGJYS7ML۸-N3#YN UC,ew;`HJZٲE ~4 ky1ISTaF#Hj$ګ7Hg\뒓6TiS^~yy p;$T T: W$0 sb bWվMl=1@F`KX:l'&aVl" CM"_M2Ybv^k⧗n~дQFR9|G%DO=3)DM5s56 U)+J1 E'sY~tNr}"nϗK{NMVdcyG  )p/ Xq4lN[{f#S-T:ͪ0\oN5WMt UÛV7?w~3} ovMͰWM5/4>'C"7DWDTsEBV|'KgfB,2'*T:9##7AI `ԼRϒ\-yʲ' r*d`L9ܘ~` mUGAMM!:$Y읙朓X\l!$S'fsFtN2|4f0o~k^. $1)'ձ(R!1''?9V!3/ds54RRS* B b588'_PCQK `SR@Ry,zA׼~y%Ey%57 gbBl~g  x;xy ũ9i y)屛yY$ )x;vy 'evgq/Jd2 GxYu?YR7djx340031QHI,IKI,.N-f8p븕κݵf2sLheIsϞVZ OKVi<4(uxyw#΢X4> Ň,;y6ʱyxbz[߹{k+TzrN_5N0Q?iǟ[J#Y,~A0w>E{m|[Ugo]`lRixɼ!OSS+C* R'G0*d<Z x xUy$MҤM#7›у6}dӃBi7Ifw;irJRQYPQxEQ,xTQofxdL|o7+ =Z폵vwҶ5 R?5 PYRJ45["a 1EQTMUJ}Z뭆jʘF.}: Q>́B QJJ`8n;!95rN@P+Ff># #"'Tr|V"T4*>eTJ@(Z 8piG+e&=,Qv%QU5W9jwr|V VY"9l!P!*E A{,ͦ.h*MH$hV;=cFV+XtE$-_Z qF:< eR;(VaeVOUT)IU(B=%cյH雀X&9-& =dGjWR-)u/[f(L$n/'t*){@ iPQ"uEP&̲Dtq*)Uaz5m lO:έ--&a5DB8xgQ+FjcVEiw%pO'/W9׫ { zNi]|Fp8 It1š1EHw`i;_@iRVEI=Ui_h%zExIYR5 -/B+E"N!JV(NkS`m!}xN;Mivv!.dTfi[ j5&338f"Ci`P3!5|J$jLKw,Kj R9IM EjV{ɐf Jd s}FP42%i,&'o#"&\H*ytp!MФ=j!UPoG50#|N秏^km#k7]ޣ--{LtAh;\pE#|IqmK3ږt1=]sʃm3\kgZ4#|0޾rin{yrl4|E02V,ua<ݡzZx1F7m`LR6X$>Ze0vkA'%np*8CD+i6mu_\F9\6Mt6kBM< L|'wcSEλ;cPx/ `k$\٥8 g/9k>uCֵur~t׸˱ z[U辞UiW[mU̷|àCDõ=n P߷=#>~8?<#(}8|&сwt{lJǓUizgK|O6~Q$9ßHN?#gBѼ,O&ӟۏg#;sS8&f#i Y&芅ͧJIcg/en#:~J&<8ͦ]~hFP(phz$…oeﭏVbn<_꿗E?A?u"IyӢ<;Ge'y#g&`PǙ=Lq_sea#''_I_=^Z>eOՌk,E/|l-ㅎדǥϱo_P\cB=g1{ ( ސs]0hr"|c 2. YР< Lcey7;ΰo',ֻsfʓŵ~/].yq鉒>a|lr3YOH[xҴ'9&%'3RK4F;,$OddJr:#S儲Low FQ:kF#2HW8H'azrY02)/5]!ڷckH5?A޾jȏzA,~,=32X@l測SP$ޅ,s, !F"yi_s!c;ʜ|,K"FNANʓjC0֊.gDz&b4dpSDz&bDC5<=σ 9n}Pq<,B&]ײT5ߌ,ɃMYRdszu Yybq68G9E)ȠN5l753R$, v@-σǸcPyyHX,ΗX]yyuRuEc,&ȺT\6=DO{n=ʄL#Ua?xX6˙z}Eh*Bͭf#~[fqisisJ\]g`KǫWQ">\V. H{ Em[V9 ;l#`dU16jD!eA2Ű>r #Es6jF.Q5lqٺFA_ayZFjFM ۅHh@iaԚyt{`,"qy_ķf^Hkjf #{\J41rp^Ye^Y幽O3r \B1b]7ddRcgd$aA<< \큁LFq|NF4M/Xv:[ +KeCc"FA\'W>sy 7eF/GbL1rP^U\ =in1[^c$̗'9$rin˄anU?}[sTyO#~@o+!|oCG#OF8 |?n߁p?L₯2B- #woHa9>F>!0㆑OZ0%>bc~Ӳ?6g,Tϡ{w[waY 'kJ۳xm!x+#LdTN_Hv^2El-[V[~NľUez B#UB7 t?Bni o3gή.Fx ^F= Kz&F|[{z[z:}\uh=rBz[[% {BtzHo:#GN?x^ ?"n2e# h]=f >%-u"?A\CJ@"t=B?C:Dh'B?G*Bڅ/J %L gySB8,_#_! 7oAGY>oYj#?dcٞF,~ogrč㽈mڽC?"JS{n [YgWԹ `UBށCj^GhBG t Bo B(B"O z BF2fB(jHU!Х]PAm Xs: oMEhh}jIr xZy|[>K%_e˶,m,9aNb[qDdQ$@p^ %r Mr@R Rδ7VIWwwgf3;3z'G$ \ab F(d2C:CT/bNR't yƢw, XN$/@3Ҁ=/sMXH s7+9JF|CذdƴHHGru6$GfY(eՁ,)f3̩( TȬqe 11qp$T}\uspaC3n':Zצ^/p -Ga녰)993vBG)iVVАVbKؾBaHî0 0N؛ҖFH76rRᖈ.c2ڒm5SZu/ t9&аFJsx,v '9GyYk)UT3 zϱ҉[ Mb=LS/e.dKMx3`OeYłP2Vd (8i~tb7,w\=V'ysvEVb,{6!^k"vl MZQ1NnoNRhҺ{|+\Np5J?TE]bqR(ekźur03V~Ҩuspj|8'ͮ r]byeS9gBDᐣr?6eO($3dbfL JYٜ!QlnUa٦Yzw|C[@>iCD$Hq2†p*.x6{>//nXf3;Jٜ--5 f-3d[#GAnLPY&7RL(sDU9QuComm/),I￟LM D D_4خx Dx:VKfkÄT;X/ 4 t;#Rj&*þ))}NJ-(w鼈=# [{D'J {01&!V{Duš*]ڻUbY N˒Gfhȹu!.T\ gJmb6"YbYRV,!ŔD? .rcuE!9=9~28YvE>yNWSѕS蜆sݫv=V'P'9UѵlMhk 'QP/^ \_-Alu͋ՎMLu[T_6MxB:a\)) ݠ~Ğs=?`&oqr7 UkU>7菣zv]T7AvvnɟFuRnٟgUj>EM5Ҕt5mT6k 6G:vQxw`az8)4ܫ gs@K9«G!b{axwD3vHU !Kѧ:6qW ߬ߝY,1F1(%J J`#<~wkO/O-zh@u΁ZGf ذ::g"|1*=xv{~xhR:/xxo"(MZF@vְ`h(Tt|ۜ'>^{f4>Z316 C| 7[P'-{&ɪvз5ڻmb X4Hk5!/܋5}%X#;RN^Wq;4zl*)Z^۴Dk gӪ䭭Щ_ٿݭ4ξosJ|ҒT3o1ަ4dumX+ͬM_ <*O\ZxdcA0{vz~G`gfҰkbԊ6U[Ap3#0ȾU:*=) ܉(Џ{2N7qdўJ QN h?(O}5귉N Cg?=LT e!~Y3T{$4կˢ ck_6ƔԲɳùq̵It]Y,?Dְש6uN AYJ.̵'yʂ p< "p"˴{\#[|aQ-.RՒZ2Naz״)I ) ~7MQ"Rv:SƿZ KI2%9#$]Uj4R|Z5iZذg'%Fn/6_jg6+vԑ)nd,XjGm3%Ѿ=~M\ו]OI.K6eJl|!]OIZIՕlJ,i1̳QPRbau9x,c{M PbegjQR9!}II1 lOwbՔĠWorؤ)).d TDT nRۤJl\y%U1 (fU':H-g`ޠd.0*:n)C!Pxx9 љ.JF!AI}Ln78S KbD|qTI 4Ŏu%hI ON q,1_A) EvJG`,g(Y 6f6]JZb,d.; ݔF_hGJ-fH , lL #DuJVBeK;(iG(i@di&"JNsH>A*u(:g.%mi#j<:˟`<##ngrWQ&qgR衤W>_S҇a)Cy NBRf7-%'p>T!p3\LslDZC4ȂQ>y - qr;"+%EObLӧItժM6 XHRT]eLV-:9nVn%Vʺmց\x? V*F\qڞ9)\e+օPW)_Qu -DT_6F0y=x |Tw^ͱ!ݜ+6 GDlK96lZk%--bķV[V(zij^U}˂I||ߛ5'I ?y\ w$KAa3>GemxgM vguR5Y$~i 2=W큆-)qT*tXCM s6ݯ{OUWW2,1|>7@֛]`>[fv"GM)N,׉rlr.puqCr!Yz]!`Z<+p88 {̜m _wak|L}sd,ךğOSLg5 gjR5w&5Bn\[ɔiлUx.սu{nj4[Hd ޭմt$ik7Jd׳~W$'!6V+/n,*H7jct1Rn=u׳rm):^ZgYo#ZqMj @ FLqMaÎ ˕[gPjQ34G[ ]k􅠮4{]Mt?͎ɠۙ@ mC;0.o#Lxɸ*"NŶҼ +ЩYcSYcfLwIḝD8qI/;%g6,ktO~ufV$!kl^Ł0qWvJ>՝9}>CĵG׮x:=xS藣ڎ6NzMAkӏu{kɏϽZ'{J;1j+J`n !':]ٳ[(sڐ_!Ue}UFjWpCAB\~CnP^B~ _ta,r]ft7hq9|ܬ̲oA1:ЬR&KI_S0t[ݻ8OC,-)c*o4V 6Mow"{9 1b{a9`tèRZ+z͋wwJ;>, ԔM1>~ f򊂘NMvڥ)AkeVMXeWbu*GPq˱}cəDGغeP(upt3n7P뢓_Pj>}N<ʠ>1p=%R@k 1TuC^<[d;qۢw.ڿ"( ϋsw}k{^LӱxnXKҏ;OcਐZK1L&ds '~4=EFgcGKG\Qz/&B "~V @'ŀ 1#P\l0 +p^`{T=?oSĨyuT! _Rx$N*EmnׄQL^ڢqz;L-Ƀii8a"iO8p^`!,,gr\!<l{9^TC!qEw94>V&ΪJA'hz4O=:&:#h*萠ibStޤ$ TYBf 3tQ .RGS` E*8˫@"wgBb*BoL;oRN֏W,O!W˻ۣ9B]>^OBgr$wtlLC M pY! \ >:/ĂŬ #EV*rV2Bc1rF^#Wj# yY,|d)$0W,ksV^ p3'IM8a y-n0h蔠Aω6zHfЛnm"# i^SwW!-/OA`# +A vRGAՓ@AWԳ.u>P7azݣ) H/mO쒻#ZSO!b҇HQlRfy$w wV56VxR;N1-pCABiBJ$Q"Ǟ#vd{ ( 7oV!%{ߗ^V /HKs{ཥaѥڍQxcײfulUvU|+2|:螜{NrxMhG\` %іcl_( :FgQ^RQ(pG>ځrLZTZ؁H{ c! =!פ\!vݵ5iw$'MpV 5.q?ng``;{2EyNF^ސjBh-&h<ˌol<'ñb՝`ە50Irs >",ڟ&RQ(Tz˚eV5}lXk*YvEYRev1̀$],?gs1ՆAwd7%GɃoy+ oXoSJKaB:i #E٦qe 4RE4vko6P Y Y7ȕ&bK6cu[Rq+@k;Ҩ۫U5HG8z%) PU(U0RKqһ2KE" g!nȂ wMa$-@saa(HTy,C`)t7~k/ZbWI#%1ԍ *DU,g@(d)V7 ux+ Qq'މx,!ZUU+snvn=88DqqGԽĂѨC6,פG;dJ ŰtW$٣͞i^AX( UYŤxh_ ޯCx/DM' O- hi=9`u(e<K?MjӭX P(ζ^ȓ8O&p6lM}R݆'_PJ41b̧gaWpY)IB\vB3,ݑ b!24AL MSҡx/k+M+xmHJvX25$B GeUeTFY{$r]5.X,yU|o=Ns6TݴZ*%'i]RףwW`El3dJ=(XCJyv*ݑVDqhEk'pwIkUdMw523Ox|CV*'pt`y\Ec'|I7k5Ie|`I5:EoF>Env2{n/q<:2i]~.on=6yxffP)˶qmY'bcvһbwEі!hf-ӟn;Mc>.fN`x"rǛGr;<2W:d2Y3QM_wVH/E#_3WȻ/d}$WA a )-CbI-0!Aka!78 kB/ {Mm޾ѓ_}4'F('$#4׽v4v}H>ـ}DuN/1HucZhR)k86$|oT*5ə!GKV} ƩN[6rHȅ t(Pc6U"9!5^'B!Kήq!lj|Yc&_XIXd%x.a$B!$SvYѩ&$/&4J~igq޼i3K^jœ^Y{Q.?$dxUMoEVJ8 BU7ۉqH QUGHXh;ήfg[LUE"Esȝo7pi\8!޵׎73<׳?˅9ާߓޑR/=y[ ʎє.g`mcc#w?J$„`'pb {e 'ﷶ.Qg}+Gd>6P, ."Gϼϙ ( d}_C;ӦQ žPMe+XUaBfAwv ;=丕#\-lr-C׊ؔ`='m&^/CձUMbMi|#8OCݰ-G X&, -4mnA} +8E&yCN{V0Ae)Xܨ95 7R cmtnQ lxaCZ\Uѳ"skxj?b_pHbRNjXfjf;owcEl#9O&q29=x}SMo@T9ڂ)rI*bW9AT*AD q\^Z뵫#Csg6$\}3#ïך6y< S(Ox"i)i}>x􂢔|a/iR]gڕK A٠w/XGff?(X OE}WQuK8~N3z B]Bv)W(Ū s3yoBSơaHNu% W7oYVyaݮ[weǘ8Ic5!C/3β8q3C>҄z&߀AVu,wo}r 깋Fܰv{71eTR_+\^ieOse-߭Qj,1A!+ SIyh4tm6̒6+,A)ͷl4 *U!d ^xW_K=(/75tH#ZFe&jf)y#>K93/94%UƱ;DBM6dQR¥0SAKS!HgdV p 5BQjbciI~j^bRNjgIjn5Cj^ v 8xWnI8hf`'$28^4jjIUmE~NUu`ZJ!}Qr0IZDtu& C&?9yO4RYK'a`JZt+EBP>2}dL$mVI+>3E`D _o" *|AfHEepH[[4S,X2.bW*YP&BM&;CA*њ BR4E$" bͧѕA}AD^SS=L7}(dxG2f kJ uA%o I&B0i0r0TPEG`zs7v`| 0B[(+Lc 0, 7<$n?tz] C~wfk%|00]Z~jB<4C>f*[;xdD2G$2ƨe8_$b8dKeTvD] ï;tݻwt7<tߥX{?nT9zIFe IJnnsۨ~\2F0~&Jo*PM$"EjHA-577WMTsWR\2wL?*awm7irw?= FNyD1p@|%"s.;N/L) $AEB͠X|0S- yeP@Y/.)[]6O_, K[afTl|n_ʹFk`!F!XT)zJf Jx 7[- 4lqΕ-0~m3|4Oe/X6 ty|.k3f.t-ڔ0(盩#d1zOS]`EwuE9a8yDž-ǞIUk*^( Ǿ6¾ y) vt$Tjy8=px^վ)+&&_;I.Xiϧ5+&t;PkΞFC[ w唫ZQ9vړ#ǓT9#y^adJE (v`+RxG-5Ii z9:a6χY&06* Cn曆u^QmXYloi1V7-ss}1^hr6qE3$fQ>]S7W=RL-FXnaeǞŁk,AKuԑ11F)^K&~y&}b)"Ď+;i}t.捳~uv0P4{;T{vo3tUp~ Jwugfxk0JY È"bT{H-YB+O7XodҶw8.գZ?6= g dϥAnHtk$v#Էt72ذW 3r. zBQޢ]˸;./˪r tO{FXer]m]N>|88P)cӪ!}bÖYc;hgꓯ+^-v#CӺRYsu~xa5̟ˬ }zAuW-4h Vϟ zE[;xqQcC[~i^JbIf~>aǥS`XPY@RY '73lfxUQN@ FW7#\AR   b'3tȆo ]2~+PWuɹ羼V>UL L1kvxi6 x`\EB'1!Jpb{ ]@Ta |LaNyKY#RO#qΤ< [8BLd̂b 7snRɸJ(MMT[_?fJkO0badsQӰGe;)nj$2f*^,4ZdJpcם+1`wLRd<E"!ULpkQ)k{3h-DV깂xZmSl޽ƆRf k&9P.JBH2ƷOHI6T<ק{ކO O|.,XS[p,Ugqwop1C1MND,I ܖ\Y$s÷Dc'vX4ák>=8o3$l_Bhcr(1dU]O"'Z _Т)kv`%:Dq"A 8xh O"[¢8E]Z~] 9`+׉rG8v`D[NB'@lGEf]˒\Nq=<!m4K0at7N5 \w'-{d}`$+d(wǧs;n'Ew8:pzWg\^ .n `ȘhSAO@yz,Acܠc`<2Է#r耋6F]"CLkN/ozZg#4aq14M& =|>*hL\}§/DԄ#'i^V}]_x >eٟܔN̓ezoG}hfSe-{e^=g)sͩr6*T)J7fS9TjәYkH{Á,籘b[__)TEb<6^"<77ޥ`OYD1i d., Ȯ3EN!QDlTi7Z=/64ZIKiM y`(xz TzR4a0T:2I!c/{WQ+v50EwĊs-D UgL V`KUPODd󚳕ig]I%=}"*ZwFWP,`ӭu.)#yJ1:Y<%G&S3ÃssEp&DHҩׂ-p. 6De.wM.JаM5|,#UGi5`Ṯۆ e2eGR#낐OJEt!{ C]lI%Z;Mh=H2PP-N퉂^޴7K`7֫G`ػ؉0v3caa7-Bp&TVߒ;ETT$i)[8"z'/-kڌ&ztZ~?Rg*yXSbOc' BhuM_[ldk>*Hau^DIEEJ { f׭h"4Or$[.ʧZ$J5}e^U+&j8>]JJcQcW"*wVSk Wu.wQ;e,pR-P@5n~mKG3vC /ěyjmZSpVNzz/bVU Ø=fy_ϤB'܆n3_151s``ƺdÌ) ,d4s bBze301> i61w]0nL0|kn~XR<˦,4Ž2&-_?u+4.[7w~׃]itF:]c4-F2r<4e<:L[UȿciN5 Kl3>Y`#GF,W#' '<>_*8M񲰤U,4ʣ&+¥@mNNOOר+ſpvωcmiA1򩖏8Z6 >^X/}6lnƥb@ghzBաݻl ?{W8S/"byfh*Sa0h!]cR3Ҙ$y>ٲ! k x<c;ӣ M(\H@]nLʏ础8-<˂WRl "!x^SOO-sqe_5q2o%3uw}j9.B敦XUhe1ŤCLܑeLP٬Pz:W/Tx2Pxeg r~/G _G<PS+R*1E* u#+tz-.SH6ǀ,Q)2a Ghx! @~MXs1lDF:`Fi gU\nʋRJ?ROBbL6 0'L ?h9gN$HCjIH a%fVpcȭCaJmfޚ(gnV+RDܔ8" )z9zs,I@c*sf_;0 s_ ) OrqǮnY%9`@%l' i.P^h"!N]q~:!ğDt> ۦ0FNhY˻ )ŬK;v#3SnnPછP<*x\g?̻bka3l\%lbp]/CT@ 8Nl%^%#t_vc'n41,Džљr)\'*>^h L-mux{8M%tR2 ^ZؒOt d ?>]~Pw˅W&$HknnGDO=I2gaXn\>GYj{hYyau?) @L j/ ꧗/; usL'=L7]6eRc<@WridL $οOiK  }7?\&x_&Y@ގI 8797 !DG#X̠9h1*0;c N̦1Y*m ,r@t_%i?\v*ȹ 4Mn[;[,4R."mٿFl7T&Y?mrym<2q~af+h(`/ FL״mfY\lo{>|H债?\V'i?>6\c=s>\uJ9㶿AV*5`RIяC}>bHG a=bX==bH7G AyCsWM-\TD7W;N[]-'[}xܣO#ۢ5: fzch]5jfc2aթZUhc1b[C*z!ܔ~}$ :E2Z nFY7[X0ӥOYDOIxT]OQBPJiPڴx[KiEM~@ |E.[v"b hCGhL$_x?.93svf\= %%O8BCQiм2_BQ_O3e{`Sz5C 7컼;vhϘ|ܢ lV|m 6WK0,Qc쌣Tj<9HEe%=Ѽf%^.4YC#" .ȰK S Ns. AalcҜHQa.۶z Ŀv=ܒe.vB pct*u*4@:Q"6C?|vV#$WpEF\kn@.d$ce(fNV7k*qʆ龘fJ˖-4p !jUW=[NCvh;`;b$bv~})]9"QyTҽhdo9NΝMʒ˪qMJ%|vqلeΟ1P_mn!IE"b}x+R X 8!av#߈(׬T Im+h3k`x`!h(rZqz ?T ?/U`*IvÎsLKV߅WU;bW^[|m[61~u ͤ7ex{V_AeOfEhs:ѝ ڛ̑6VOgq[ pn>n˾wό-~o֍1StW_@9? ٳE;~/×kݛvofJlu붖z Jc6UPj*c8\t ϑ?K^pA݄ZN i1B{6FK;(-'o6pnH) m\xČfGO}RmYc(!}!@w9Oa=o7P}gTڭv?ejL>6/a@s\x#4o68CfnANjnj^IbIf~_oj^좓XY~V.K.V7y[+HT)֚kg"Cj^ =KRsarY%Y"0lkx7oͿ"׾ xRPLrIUUPRsA<ԼĜԒTgr~VҤ̒ҒTTj{~Q_0HP°FL-K8 \\L/Gx340031QK.+L/Je\ctM|U=KS!DKQbyj^IfZ gNHx7y|VJL->ܓ)!ǁvkHOmɤœ^%e} ț_Ul\LC'Ypge x[R1%mƭ_[ŊSfX) !=KOC66o͔ m`3NK'I etDHyɨworwWQN2*BZE*]+\k"zAsقΑ)QY*ux3&XFSԳ~T5X} 'Rsc,Hm1Jneg}J %m1c-Ͽ2<TmҚ7Z-gm0{Ub',apud%m(}RY@9_uet0ἓhDBt[$!X Qmt7ߺC@+h*EO/,100644 WindowsPalette.m%Kڐ~v.YS`STC%<Ųo_}0) xOO0p񀉚Hų^ !Qn@]M#VתĔffn"tag;vafrp,$B^#Hn"Z 4T*|n\ׅ~Nl ˲ٶ}4ox\ͦd2[Ac,d>)Ht`Zl6q( (Euq0BAxRj5lX,X{y_T*~2iX2WDT9gXj_pWe0vǸy0tʢVZ巜 !O;2uL΋PߏLdI/l)f]oc}^# 9>i#z {}|U FtS\W Z<`x7ofGgoGwx?G_W[6e` l2xw3LjZx;zuCaxf^J~LFH x340031QHI,IKI,.N-fHVѥR..('eD~VeXsq9d敤%&Z2y5Z=Y/ة$?OA+%81)'5%<$9U.)(%Ut[jRRdf9l|HN_& B\ DxsA_KKAA=(ץ(<ȱ(3$3 5$H/ *23J45 &:L|`hYcNBHABQjqjQYj>rf^rNiJcAwf>˰,jWZ! V NpW5I) EiEE))\\y)\JMdZxTnGVXa1!\GI q4 l((rR4^3lER︩5/Ћ>@\}T}gv8$Q՛};3s9:]BEv5[܊wnݺ}fwH*CERul Th &.iIYed? m=?ן#dG&"T;i`"P_K>'aHC|!a8 _nQHAU!*Qbn0:1*`|ĹPn+ tAP3˄ϣ:CTt.ZKn3Z3f'.{V%p_`_+Wwef+{y%6Z3ͤV-y0idڤy|{wLN;֑ /9pM|ӛl[D4>"jRvLibH;ڱH3&:Ua\͛b&0M"&5n&xqdC'ؽ#.E3Obb5_NCK={y(Ha(ӳ=tmpI|ExDZOxa8SiN<@v<] I>eR#~d$*R Ir 1lVMOo6ueLpj 2aAEb>4 @JwPƚ7'tmuF儰\ \L(9'j/tsڶ9 x-Dfb>5"5?{ [Gj<ꍁ0, "O.zL]:I$rv~1 W~qYדWqu6GW `!x}J@QŁK]i"hK!ZE"unґ$&S(y+…;pL"9r'zNs!` /%@[oN0o !,NR[㷃ŪV'h>t)1kP,}am40 1P:pv)SJ^3ӎd)kz*o>dwZQ&b]+EBo)FH5)oHSWnxJH3f[gV(S*z{0=u5j?m8Yy_n~H2J;~ނy,KCA'e&2| ','xn@1-x]n0E+FaJAZ(,q2=ٓ^ U]K^}/U #k K(7 A[p" xbM;iY~$n}cV%$㥘;K+fU1P'0Hjc_&>#SJdf;"Єu*|#$ѹi"LKM(Rr C&xhE'Ovف'&}l{P8n_;:m׿m_ nzxüyNԜ,  x\ XǶpq11j$AAA8# 0( M#%-1^c7rnޫzTw= |TWu9iƢznV^i]e`3M,OfP2ɉJ"zx ΁ &zwYh]eqH{^ <7`c'eސ!$fLrI.OJ'yZa~8^W{G0+AZ.Kq.ln7uU0~>h04>~'#0d.dui:RȖ香l3uB3r5Y4 A A6r&MdY##ԡ$*+ ({xϩskHMt`!_/)"^OBϤX~]Y^>4譝U8 ~QAIlJkS==᪤*̲͠IeN^N6[ؗZQ"!C®}Rmwe6rbFĕ{FTDU2UOObO2+$/NSѶ_d33UZOҏ2=Pdr\z `q Y&3@f*{Ofn2dfLLAwey_; HfV>`4ސULlBc`2ӤT_ݵ4+t!3R9'd`*띗􄻷wo`wOn}#&iw[ݷ?Sdݽ }f>RXo4K+vh^p32i ɍM]?na?nSu GϸŮS_S_g)YkiyLXv X)^ye`j4ձ0?:`QiFK`\ G-V6}1@#LEk rسZ<ᐲ= @x2 љ2o^k=* ܷ;K=Bc_uߠrJ*jat^:ǸjwaXw]*SKd;pǐ181x; bݽetN*`:TNtD+d\Jj뼔Vo10{݆|3T8}:wQ+*/Ihή.N_?VAu ދ BD]>Gx9V8]S]/<#=# i=~D 7?b̅~F>fOFVF>1|֍ĵs "g{F _pE^SANZ/=ޝ j9e|2~%w纒{Fp0~mhb>+S8isx'~ɞW`=7&އ#>5zk[^9إ2EHK)<hڪd=T> fD <|ebgMPqvaˮWgAh DoD@N5n$UH.h!9Ϻ]"߀~]#{n?q#hOթ^Y{+%C?w%hFeld/Wv€mbROR߁IͿ9S[a#+pU\<:'_/?:U/G.?WP(THyN?o#ʯ6/cP3{";N2WǗ錦lsf[*UZ{:kOR䃴)\єeWBK_%и7FSeR8-X]JZ`u2O'vLsUUm91B-3v\vebQ#??]4_M80g^` qW\Ȇf$8:=rzbJ&mbF JwcnS-'}}t\ E;ٚq.Vv|Q?.O3%p_+;֬F'1a!-!)9_ n{뺝%v;qb '&7@+a~mͰIг> O?/O￧=+N@s5[O?y/+G>?%{G_z%vM'Nx`0' '^:Seeejm99m:<ƏoJg'O=HOI'O?M_}sα`;路~;뭷={;v͛5Ξ=3鉓g#?ߚFhwvK1=@~yP1#y;&azAzt߾tテy~45n%hi]:4ߘn 3H<930=3πO7 ֶQzv=^CSRhb6Dd^s(#md[bw@m9k'=/_Tᆪ9|)cQk5w=NW7zZRZRMR H&ٜGF3.`Z 䦥KdSȇ^#~_5㏙/+ٳ,=LN>Mz)0Σ>ʾu]Y=n$eĚEVM%ēM와OF([f]5QZFz~ 7@y]:S2B'oθF1a|v `xq 9?#رclߓO>A&e`;ߞoH%6UP/"?2k>F^ɷ~K1:|l "߈K{e}{tƌ$bB1RA0ДELIѤ/HR!DEH0 rvXR_\a\F %bE^_x6zc5kP]4r|)((+dȬd~XmUB49X k R<>.@ߦ}'roP[{{O 3drA{A8_`ELNNe+r˝EgE/| ;ڍFNJa~Č?îӓsǎ0=bCh'/h/h'GwI+htt4XބivqA*l?)ynpnM >w*v''٧~Y{p>l9V?Uٸq#E%FgȌ8.q_Ϋ16OedT؋c~uEhݥn4-$ r8r>3X9oll%%%h4di+*eؗ-YltG5ͻٍX3j+jn˽)䳏?&; r2;Bh7hhCڵki\\5<4Nvl$z9NvS؍c@Xq~vj& G[q켺a_اOIRb*1DD=ھ|9W|Z)S|V}(ģuc )1`D~ eddVRSHrs#IIO d1CUe;OŐl-;]v:~Êz#ζ6Dg,"iiiOKKI"`E_¾.OH`#,nE) bi>~,_f[ЦF<9T3LxJm+W3MŅǗN'rC4 ]N*"(y5EQSSZGd6c}kk+---yyy ۷5cEf:%5fFG% dW~ A]MINb2sض jp` e h솪ؑ{SK1_/9f̘?`Ǩ+͛L&K6a1ߜJplid}_ cVCZ`~p8۹Fb@;`/-9KZ6oimٴܸYp 1EdKVgЕ)9:M)d]j[U% Ư 0ns}E٤|mm qV0}D`T4~O%īM *:{-\cSxB8sj:g{)*y|F(kjk')w t/,dsv}T[|(M/omנ[˪,"?@sOz?4W5ݴZ[ #"?ϳc9[9ChQ0`kO|qÜa"?<Ρ"?ۣzDQGt5.}ZG Ixh'E~:+Zyx;j`8hXc#==U䵯"Հs0:F׋׶5z]_&}e"[E>{ޥB.7kqm̠!{:="%H3D>cD~bL$ Ih'ĎS0g7s&nXN^)U/|6\ [10W E%X4s%NT8ȗzr@]T_ț|&n)gٰ#$T XWKAӥ(tܩ^9W W|k[XRWzx={[|"{*Z#_!U䫼R y5]; > PkrENUXz㲬n Z8NmhFf6_VF '"o[ p*/7(-@W-ܬ*tkר@ߞfuMWҋ|s75[Sb`SVnv N:0>=k^n2d߮a vZL$6ͣF*/PrkuLak=n9AOhaT5 \.FE~3Jj?;ǷvϽwfv&3w=9SOɊNDQX <}o,*Q10 sL7p8!x]')WJK>/L3gaJ{Wjqh8DϕS._GKptn'#KOcE* / Ǣ!-m.olq93Ξk;MXT{9|,"&[tr(/VCĪ|/e}~LY<!}Ifq-rWhVuX_bgaR8ʱ_7 RyH9 rT"|gw0@S_ݘL&eW}ޖXBaQ{9z$ra1L*N&5BF%K1Dq/]]`l{cX^ʓv48Jȯr9f*Q9clo C&{=Ē8t J>h`Î j@Y OV>ܐ44l%IfW Ui< i6+ ٌ-jta)"f4$,PعoB]KmXŅjx.7OlMaU=kAt04Hք.qVNcI(iU٘Sʡ9b8*л"PT5 <=R9kϜ #TnITRմmiJi"I:$L/9֐9:L9X/]QX ^QFjZW3*I9KH9MBS_')1=-ԟlݟlqK| Ð"Ԯ{&4-JZk?H1XLVcWsp@oCn1?N*h$v˜ÞP"1^d Ҕz]rkWnyb-3YgȇWKG:t{87 n'ƹKu8 \*~1Xr~ݴ_RnFCn⺖Sw0xKm'Fkg蜱kt.Vs4Vұ]v޵qQMbqy뜖s"ވ`$6"| ^W6]EWLIzoh}TcCC[IC>XPmWWJ/Uj} D t '[2;י_O=2Jzb<.q10C!voĠ b V}Q=2qq !!Mg}fb:%lA(ai ύv(6!(,17W+GzÆU[״yÖК^9viՋgX2X՚'cZu`$Bͤ 1,֚K:j &ҩS4țnahoRIPz&&2Fy -cv{jXΧ: O7!\6zm5f=9#@@ ~N4O ?9CujT/|UOܖr8Z&6X.3#SJQК'gMVLV^]={W!SշPL|jxDX>Nop3rC=֍>qnAG&^y'm57Re1ۋ ߜ5ݛ 2<foOgT6J6Z%KJ"?Ԣ_)/6fuQ<.sT8-M`ݠtP)q#ↀ$ l(K@j#Uu.S`!w` 佪 ~Un*|B@> @>灼CO @> <0pL`y+qKFV;!vH& S.V% ^Q t8 2at؋Ar ]Bd,(t C>bea[&1has]\{\\my04g)Zw U*n`sCs Uc0P3]d(2v--zFcv{Z!Iv{.0[Ύ |{t&i~}:\jjLQEzZ(T"[qCe046e26`5Yf|J`Pl&FeSAr MGM,+4UﴊhEUVXZ@&g4,r +`bP\nc:. jt: :H762 i/# *Y[JN3L LC`+1N>"SBYrʦ6 446XsVz>iJ*PrikIYlE9ZR|U<ڴLB2684smBp yNlBM.nؘ-Oߨ-mNZHvF PA:H\WDFԳ {69-swN1£"F\2{6r\5\կ$/7ǝN΀KtJvɎcGUSsuukqZ׫[ :"ܫ)+T9ܺ+26S*VډB-j7^VܜTQqF]U:A:w[d5`Z"Q6R1!*4`\%n1բoLx^9!1={kU&u6 6Z`ԪYT6o8K汒(n3$a Mk cњv'֢+8T3ǢbjxF|[905gUZ'3T_ }CZfK=7 Eeȭ ^fb}悤vBŽ)3.ިT=c%?@ttΕNoV z*=l٥ZѣSV3rG՘}YQ=k 4?lQʱQըTh5#*tT;Ө\b w~آ^r4_-e U4TWxɈVdC6u,MH}d2fxKt]dW&UQV-e: 1h^ Kk^1t?=^ `;T?,Hvczn7q3 7nfnq QqK5u þ~B#x~z? ) /pzzQxELri:nVEqf8<.^oDX~F?wșP/vot!5lym&/ }N/-&RwkK͟ Q<C֡fx>U Ao#H}K쥫"7WiǢti[5V?)AOK"+It,B. ЗG Q,._+T>d+AWP{} s _i6e^̨܍?X.ЛFc](Y"F7t[7 c9==zw"fX{ !aVaQ6AQpp[U9Egccr.e r_~f9#I'DC rwU;C;,\+ZM)@cnU'`[` Z}XRQt%x+d2ܞV_p;DDw Cx)WG03 9b Ĥi+~N}jI@?QS\Z*'}7 oE~,D(ȽJ0RNDbտA@&;9 Z)VJ#K8U57I# EnCv&VV-!BPL(*ĖS g3ϖPl1ϖWp ._'aW>*G\-7W@C5pဂkI.:VZyhun\{&g:Ƴųųг0^<H#iI\H%%ѡZ'f39-TmE.36. {D{~>meUЕ͐TϪqyoStWe2J(.3wbT}5&暠9HmqX̃\碜.tBUa {yżnJ*R/q&rl*݋]Zҭ%:9"͑YxBmZnM>\o-C*o˰+"^th{\nK\61%c@Tȝo*7mUWwBOm+T!8QQy'EkGq5Lnhqk-8șOZbJ7+yq[}0kχ5:TWfoOgk0^uWQiUU-MY&O5o lp^.o Jת 1<[uYRr-Y$ܭZܶ`8"ᩒEv) #QeAO0AsiqvuJvt4]=^_"/v*2waqmϔ1@]/vǥ^U;v?(+`eVglZP#l(/5o0+Efs7|t6F?Hn*S.Pʡy={UQҘqt\$#FU6{UM1*-az?扬"Yw$X>14}ֹecCgFy*|YFZN^ n{'jٷ郛7O'\#yrx4Nv%<Kb5ᕔ&B1oS+b)۽y> W]6nPckb0${" '_'x7p0{ $8[M0;cKpNC>q/0$ml\hhtLfUd31:g!A;?" 3:8y )Z 4hYٜ79~΂ќY6 o_xK 8^hsb(w N¯pqG~-lbx ~; {1<` Q1klW=-SCixW"U1m-4dq{*er~Q}E,!"\ ک>}踠1A$:,_D}H4!DlvѤłP}DVy=p2({(y$h=O#z-'=Þ&`%N%= 0<+&cLjR"q˩IzF4e=&2bDYD1"ѽQ6v((Ȏ=~6MG|#-Al-[z\-|pEs? ^{(bJ 6m'Bqg?N{x340031QHI,IKI,.N-fxcUd#nacA e3g+_wX򗘇.*OJM.)K/eNmQeT_;Eov!,tx+-(}^f]NٵvqD ^xM @ EWqӂ .M]Xڱ8K*y^ p"a 3-C^f歀KP`RAghإdN@.ůU8V/CHn;+KcP ?:@I4x`Z4ᩊegBKKRsS'>UEMuxm_lSuzW**ʆ/AO<̌\])g)Sl"񥼨xmƜNns)<$Q5iLF|~ss퉂*(Mu8y2?NOwR|aoB.S-xwwЌI wtߤg7.~~<b.S)if%RIz(S/ 5>YHm "4M] ԉCӻT$ýfw|\ٶ7z(tM(\&Fӛ ϧki :`y_?_׫q2X_ԐE"H,s2 zIH(< $l:T530&S2$#yƷHe"S]RL2IIɐ>q'$7xi^1ԅa)kAq3CR5 A'\8;ILN1߆HӘ:t;#`|N/b[cHYŰG:g3޸1`H{OW!}48]4F`pfMs 'twcTX.K]q)ڏSH΢JxJzxjTշfȹ\<G]F?XWDDdʴ"TɌj/[= [` AQd۷|eV?:CUAXaN-9EJz:ӆoU8|9GWzV?}ڵaXfjkSed??Njx:Bkp afK3DJgaӡ]|"0{L sI.<\`s/D%L;wBfG4CBczMo{2C/-ݞV C-Fg( 웃#ISHE(w"NQ-{yktTɰ ~nɈazl\>ۺض?8ceoy4(VԠojO8trA%Rz,%u,_!찆. i ÆhמTTo ],]Y^:[㱓per~VϾ#$Nq4Cvߟdzq4#sK?[-t="%)X)*:1NjF-W 91Q'JT8L-J"KO/VG%pӑ"| xБ[{Rm 網tAzա 8Coe PRFn"LWZJU mT ֐:I2a s`X@j6 !3He=)Ba-xPheDhVGxMYB 5#L1dhga66F܎`*-+C9ȡGK:a-r q`D ߢr+K`nzl펇n2fxlLr֬SvNH a{ث⼘F*g⨏vȯķD"|H:qSO?k(#K&?k&wF#7Cnk!9n?rm4 ƹW :VzU䫾/ۅ?DI"!ľm)MBg^c.-c՜k_еx3QC?vy-۸I; =~jkrgPxk3]oa= VɗXٝR2&/aۜ*- d -x[o]o(I8X2SsR& (楤mb.XT؋qU&Cմ{zr<:pMݻnF7Y07LDz=^F0K\DAz!EJ%gIa!oޞݸN;NNN Ϗ%|{,ºL]"mAlY6XCQ 塈A۠)-="jN>'U-}1cwXJǜo8[m  '/md{މ+RI$LĦYkn_cgoVu)%dC4{&{G>pÒRw;Z4uH ^:Y\qU³/ݩuƦDeNza~MnZ;e)y51o+x,a~WSA` 3ɇwO0hɰ?{ ˷6U+z._4xd UM*$ieQUl* 3V^PVEx k/;ʻ]mdr3hNOoini|N8ag|",%Ԇ?Eh7;_ }%M RSSG]_&vxeJ@"E[z[MUH/eMf@v' xI|O7/ooVߟ?b{H%_cօ<)FJ}+w@n:M.'v;؟b(@de#S0iEiӎS!10Mfk mw 'B< XIAzz҆Ud!$7lo'&k@F l64UK=yyCxó _^IjQZbrSifNJdV<\q<%ʼne~ Yg@x}U{3ɼʙy9) 6~%E>)yzv=46etGx}Skt1ҼĒ<}s!(cAwf,V},j=6aI>xJwn.Լ"[[̼۹,Y@ '8"u&O N( 6ٖWpn ҒIJT繥|@~&TI}}+b 75/9?(T\b A\@+hK2sJSc6vfaQ@|_)0M) [A_&/l, J& `@@VEv#9wڛ{x xj@MK(uQ սҫ6+zVg̢COK#QYĮ{wmK=M(9T ˕d_o?ï/-%?n嗻z?>?UkWz˥~~~~~~~~~~~~~~~~Vmks~鼍}?͍cCq^Xkߌsk׸6}e&6o=ٞٺ>?Oy#[_kxWsG.AcS%ǑP2wmJr+MbKݝxvz鑼ĖSn$N8?\ gxgȒ*t{__wX'- _(ڝm4%ixm~~!?>.}zɦrp3 tMBw{ÚBdmZ!u&ygYM,>ȩc]Kfus rPn{ܖ"caCA_!oz<̢iex@1f'D@̇MXj.+֕9˺9ԷSdzu ҆|IWsrIH3\ZԠ@ݾJ\oݛA f2pbXrk[98=OdsmnAq\ <\_W/T?=qYzvkmρeooQƃ6a^i o]+)!lsjg69e:7Cv \ :Ņa퇦`_febp%h vkl0Bv5^tzH|&IOfG[i{y]uhNԝcVEJ7fSD07˪Wq&EXlRŷy#k. om<㲘F)?$}8<hm=6- S.JQ-?ӽ/4|u٤,&M`XI(ˠS$ e:*Km,eBD*=wDCCw¿¡[ҴT"j8u>>i[#B=~_\e@E]6 0;>h.bb)BXe|[=ePN&d*k6c;8w2cH/.IPծo(ZQ_oB dCny6ix-Tf҈Db"Gq{Ĝ0>l F>iDk6?%,; .HE,M @)2Az'Lϑ_ۻ2%H`=*b>Svy[ELiȁuŷմs-Pͱ_0;?O"M >A]]/AtQAzrxX_KKAA!<3/%8 1'$U/ $_PYQᬩ`hiikd``6Nݽ(5=r&}Ưߙ&b+I-JKLNE3J rHK)tx{}:fԢT̜ۙ { kxWms"7 B~m@4zfl/W.%w2ɰ+KlJ Qedž.[(4pprr{ -9x*s9T gZX*@_cK*b2N>4nhғ*2?cWݎF0 L[P!wʆT;&R& *Ey b[tgE0Qe`,C  [Čy#,8"{̸6G=ReP5)1Hhed4s>VSLi>1ɹFbX*u{{5Zk~39Ee,)O\T iO.'4 f_`Z%_/v뱐Hʽv6E}U-}FLUZNzslbGgʏ'j{1pRlC>:^E\V;EÕD/<|V)Q0wb ]\{l*tO)@DwQ@='X\ir[](̔#_N8ɂsuܷsJ-"aʼnmx1|!] @XɃe$FaC*F\C}nėe'`b6'3& 9p{<'pL8&|HT83`2.3ڋǴYpR lNÔ6R\^q2ٝ)6wg)#B*) %d^E( O5-ra{d14Y.)ii2t~YjjuVk~okw6F.eg/jDC'K_N4$]0YR}#˘%y /lk򆈌Ic6S;v?J~9͒fIxy$aROw.9şWMMFu /*̒5תبʧ89v=)1<@Y>G?@K͊ٷ$s-qbfOrp T~܉Up/_WPʤZ|^߂k-ff1.DaJ gvzx65镻dXMULx~Mu*fԢT̜" ;.̼ҔT\T}$/Jt~Qfzf^bNxf^J~BqjIHfINDXi3_'+8%xeb``j`PPeoqJ a|I@EAQMcKT%I1 VSAZXϤK7ՠ&\V9OTɿbJ]]ZilkͽyqkCq>;i]=X:h ^z^CCoWbLTǑ';E&[iOUӋ,{ŋ>VygSQ_xec5uyOVsVK>muWi)eΦoqJP`fd``f`Db3L glP6P#  X FQ8'Z(W3Q1(@ ĕtI)xwOhɿ 3sJSR3RˋsRKJR2Ĝ;Xw$ xu @ DسxQR < t,"nwEmfo ގzLG4P 4߂Wj@mSlpb,~1;آv4A]꣱%r@b^wNc}uF[ $⪥z@֠x340031QK.+L/Je\ctM|U=KS(8$椖2>}3gn֣ mIk?m1>Aq.tVdLT;v̴4%fGٙ=/HF T_hnbvjZfN*˭%D_\+TpnLezEI@~?Į%&nۺ1u,%-/z+KJ2JKR= RK2-sN4]={WE^r kx05̘.;yY_iII~v+c.??- C&o_3j2p̋6'Ku9vȼ5%bQe{k5ҒٓEqex1łlu7Kχ:v*EBR휚? ҡ~7;}ߓvk#;*Dhepߤ:ss6os-Yc~N~Q8Nk?3XٔL^ӈXݹ o^{xCחOkwIc[;q U|3)1P.E9nW!ո@Io"PDwsv톏_nbܼuyDiePڑ 3<-KT٫+!Y/Ӧٖl/vqאdQl4%pY{yܱ*Vp0CJhZM8F)/ E ,-#ˎɂ2 y&yWC4-1⺁6~.p.Q3뗺w2Z ɘmeaӗzR@BGڦGoY(]fQWTP?zgFUJuԽ/Dvj4w Hxclޟ02ʙ,O/J-D64Lu-)o4No^js2SR5+|뾗DM\濭ESIjAsNji2ƠԊԜ4}yI/1}Zu|9Y)l痟ޮ^"TU¹zGkˈןDkq,\vKϲT λE T˝jrd-葂K'mȸv|QAUr* d&{駗-M^(HcwΧkVWtQaGGҚː=G}|t]OQdڞ갉^|?W~'eh*)bஹ[[CHzi ͻ%cf*-e;Kk#~~ۉ՝0a)|;?fTLb{yYTbjyBMǤDOX(Ԍyu5W{N1Zi)73w bxaA <ݓ~[|HUB (%K6 `8b,o 3-D?uӟ6ӳ!=7Ҫo {8ԳW &MtHě&`A *HJ55ģ}p  QI!-x |AxcIE㘥u{3C3ĜԒT\_EH}8/zνzLCqIfZ'ie*ʷ%XyU4l9~sQ3zNUVXN+ϝRٛQJ—~7w/=zɫUr\b5a)We*95YEN?>Xs-?V`EŒ.7IDM6M`Y=&Z^D)lW1dn4KV|,d,w$JΝ" 'öݕvwp Y\53ƭkמU:ѹPoȲ&)c5ﯓ ` 'g))5<-[n*LǦ"Bž?yo::V|} 3$x0.40000 ControlsPalette.gorm,u,$ :%ÈV}ym-L|_$,x򺑂%_XhfZkvtA$Ƃl i(Ld*j7^y'/#g8>"?אCEy%mu@BI$K<`Z_#kޣm氫p  K%uv޺lp9 kOK#ml.2W>x8%8*緉S" W%~^=(m:N?:I~TA?m9%3{2!B%mF;ϫIE!+Gό7]բW֜&~Z\ Ru;ʃ9I#4c,\wC :`rVs$St*P 0h1@ILgf΁W"2H2AkD\Y."0UP%h0?7ݭF4b'j]ݓP'{. gw~A[1%-(~UgR. DHD 'F+&m )}/oA (hlJPNF_A *Mkt-[_ ! t *B? @i I733s)k'<-1OD'6(1JLCYw"&-nZY-}.3r%!pk p#kmFù@f16+{ѤLL-41fjwwp~g JSsfhN ֲҪ,6˰x܍p7}`ªIqe[_ Mkؼ yvv" f5nc?le5b:2ю>;;QezliD.)w&[6ƥm ˮR .L/+a_j48vUa=r>^_-[`=.F&$ o=4j6L|i7%F|÷2'* z0p A桜_Bx+lx@ղz0&WBh}zX"jQ' Vbmu2Õ֩XYk* ^!'ZǂU"XztyVˠ7#2t+|Ze$*Dij!5lqH !yN!U5g6sSb(bY]~~R~EaB{B!yVsIm`v8Αiͦ{|c/{y7 M.#!{[6JʔWd>G̷^ucY^k/SYw yp2[$ 񸔇91ŋ[ *QP,[ݥeG-;b4cb p8t+H~3ד?XS/VUDn~VE#-XҏЀDt!Et"+TG~fO5НF5Wì%-+H:,#I=FBN JV+3Z44{[ )R d݁ rP*Xx_e m=|I.PM6(2tL46%Uh j3@mBs˯"?";T S")_<"*݀ +t5*^jL+"V-o@{ǔ]YRI.3U5E粇z"8meu PaL{t~- ttDB ^9!3U0hZ$=yeCǖLY7CE<Ԍ*r_˽ޝoOnMS{Be5*9.fMCٰ82k'Y c x,žR;Q XO2ԣ Q|f8(^Ʋ|sܵCy9G4?}q[m5bڵř:YoVaݬ~{X,J lԨC4 'pg4pRvAo԰X#S*Tn%N㝪>8d9قZ\!_CGKx,XjY `y1Cg̼G`p\b}.y'L+WUbx?*J^C93]XKKMԌhIpy7x+j #lxM9M,[SQL5\רty/HUhZѳ=|3yXg2ä:(?H]H=CdO dJ?#{^% gɾ-e35Ij h4YuU$]O/y;"% M*.sd#{<59rޢߒ}<9ɾJO΋4p5r^y̭_ /Hᶪ 7)Z=ܡ'8QGqgÇ&?SLi"`w)8\,4VxeIOSQ{/uMli ,n.!n T7&JJMAL0OE>&'4ƅ?Ʒw9ܓnlx'Xk"M1蟽~xZȶP]fW(i1B>nJ4R{}Sj~ڔӬMhorH˴鍊FC" {?c^iS+>"bD<6%j܁E_5ُKުw'^ޏzmm 1ӀZJ !9vwOE{$z^H*D_QҠ8|F^dž&#d2p)PM#{ p,&pRr9 z<B=~=&c==)\Ey#x|:[jed+ ȪS\4]d4I$YnV~X2D#J;ο;֑'c3lۮn|J|.a+Gc( r Fn#בOi3yX[!w&V~PU%FVfBօ,ꢢI\BcoPEY;$(x>'8 xklˈ x&7"s?Im6fL<`-׫2vOR|DEѐEUH0n0] g˰3m1>PMq۪rԌgL`dƆ@z)ˀt7^ Wy@znҫɇ㸦oX4`#;uFK]3!xeR]K@5k|,iW ,UDĬBa] Ceqt2kkE/_P(5W/^h0OR泋cQEH8]`ufbuB!ÌB]Q~><9 Pxb``d`h`PP`?T_K'ጝ*~L;bGOJ籧B,)u{-I9i6DZƁ̰P ^%'4,:+ʀ^kzϟphd;6{bOfV>we:C\멯=_!e',` _5Iv+ɋ) z)2=H㊙$G U{)m9i2l'ja̠`PbF$6* lP6 2լrD PĶ/U ( $c@BI;.@:΃w% xoF4fiw׀xg `p W[H'&e7v+IK-*Bb8{: dsRKJRPUy9{;8S Rʼn^/$W\\_T ;! $&夆e#B)@P$`(jض,PXd;H̪TOñ>CSNAAήT%ii3ـMa'ft}ٔ1m>{H6'x@xP#b.8+>5$5OV&ZRʅ95=(ש$?o$?+@bbΩ99@A &?'(PB7 Qã& @ E~bkkiC Ђnx{O_KA=(ש$V,p,H,X|K2+&DZJp:$$+OcERZoW\\_U /MA+1'3=±FLGwLA+;@U_PMqIb:Q"Y0" <\eA*E2)*5,]e)hbNo~=`qFfHU4(S07(6Y]  Z\\(NxTKhQŤ$I EK մ54ͨ:L'Zp#A7.JB)u#ō(mF\/IA`9}o}KcO<,4E-7D̜!T":BN%x9' YyXL(ANQ9 $:ͲlR#*wd8_;%8f0g.MLT<2AuO]qw5F)U.HTZmHYU"*V`HE%WL1Jy0ӄ8䷽n!2R,A{<qZnュ6Z-OShū Aa,6b C+2cR %:\^^n}NSyz9:>.륳jcdW˚R!#xNZ5~? ŵ Wn]wat'>k{VPg{jhT[<}VA_wg_om1N#!,ja&ל״r,còli3*w|SuLGWDvr v5;HbM64$īC5RrJ8YHe J{ "\;:+ `8v6^FOQ|#Eb$=(|[8̥Vտ#_\=Al5Tli6!ϤBe!{zj1Aqhd GouLd^8x;7T_e[AaJM>Kv?{wW wHgpzNm񬺴=~\NT>WǷs ;?a.;1cUl$hϤDe*xn05UFibJ@!66Du HdBBUơRgBS7{xW]Gzc9?S+KSjm"[%UJ=SDj6u$,l")͇ZkjkiSDa/2p}J?2s!{l3'l.{;ֲsXMcmH'gVeT"Iap|DvmR̰煅e[ b]蟧wItR7cm!OAHu1Y(Ͱ߹IBC ar7UqHl@T켯,7SbȦjP44k"R* Uaiv1&[0MVǺBB &,?  ovh8"LES+x JQ)y)i/(`DHl3,==d׈ZL)̰| B+;.Z\f%{[(htDzqTh#ǩAP3v m}ǝd= 0H8ipB4h;#ʶI iLhegiN(IYF{xBgsO1"gVpHWǵDu0YZX>؍ 9y܍uw%x#^VX'n¾3[s+{NxUJQו҄ %A_1B\*d:3sεh-B/кEޠ}Vm::9{y]yEriUCjYR^"˪ lۛXve{jz)B_~N//B:G}i!L&sB6N#g.);89tT.:rG*ڶ^1fd`auhЦ|OpBfD 7%z :8:͂셗YϾҡٲ5kط,xP\hH(Sv@4fmG~Eb$p`t9KN-Š`S\aB53 Y)bT wy@jxSjA%&fҴk _ORR,`V TJHa;IF7af\#x1W xS7͏{|s9sW󮗖޳|`nJ 1S&đ>ՏŃ%1L-'!,'&mI}6+&U-eTW8@( ^jA%ՀQJzTR|3SHZj?.CO=y(5‚0PE Rۋ7Ϳ^Z`1'qTmNO3fWOXP@i^9?iP.mBYHuKOq5'eTS^ߙ}Mt٬EH,n0C^2oj!gwuC ZQ4݁a2/[ggeZN.?.$W`*.dDPa 3ty~6Hwan[IgSAzY"nxWsE/'EOE6Yɶd'$r D@RfZҐѴ;ڔW 7>J^[ˑ38Lq U~^ﵿțkLeGu_!/MϮH\ .\Ԅ ψ y:w UŌW&D%]c4\V~7}' 3$Bñ]@x`:# !"Tlit9Cs72s pB [6wEvq  50@vydL˓95pYxL-yjvt"]7emn_U,l`bġ!o_awˏ<;*;&.0 .sܰ^^!^dNȳI!sO-Iб=n@%tM ʐ& RKCYcnv@{`Wu.\McԐ0=ȿrjp0ENC~` JCA.#c> _O{]b |ny6+;* m 9c|IUASE@)AH %uʜ12ŭ$ pa=G9KY9B^VD*AP*V# rF[: J2IZN=&UrpMٞSȁg9yеNj NDXcő+,.]UxLm/m7((A|шxmD@L8һyZ:K8 &==1"O{KAr :pOza$A4{Oq|E~rLvA, czUd̝X M]u:>62?c?5vU8[}mܐM:.U'ۿ 鱩^pmo)N#"*W^t-۲qI> J^>4!>%afF.9ťj U߂:6|VBe9Bށ?[E .)COG Z[H}+31,n \",~T*,$3[Ca)60)}Cy.v%7` \R0W[VL?PO:Ns(,"25;cfoWU{IL8Vr|WI ^"vtP"#]겁" ]<8?qcz&q>z;2*ݓoA4j[Xwl[|K==iDkY ՟0<\XQemAٯW),J| fZ] 3z)"'&O<ZI8P{ k{u&-mQ*`w7/Yr }GʇQApVaϞAL(4]3?lrվU;wjkwՊE#b; Q?!y}o7.}21r(~QB@Pl l()5YRhN{zԶNq'9`'%kc[uSr iW ۮzkkNֆ|ߍFەdG%Buy᧞ӂ=8l 63wo,,PÃaWi5q3_}h2)xuQN1 .PId 1d!1.Ivbi'm' ;8G.ڛsi=:889F6I*d8R,Π_NBBHev. f‘m9Ê@Lj۟#Rp&B\džT3ya ԇfz_׻Kgt{ĞʺZC14 *!2aGaM2.6MCЛ5T#cGFjJ;Cf^i38XjKH9 {ρ p]NmHBz]*&MdIklnUjqæeVX 6B3) Cw$_2ȥ ;!l|\2n9asxϷ _^IjQZbrSifNJ,sŋˋrA,ɓ*HH*xYioH,EZVv90 XPdSb dӊ7 )Y>23 dwuuU;-w*u.=?RbsioZr2wݽ-r!(P^3Ufq^ ^*pFg"V9$x*yX"2MetڑndKeDmEzĈTT\JbD4$tLN}S%EaFeCRS;Pdb1/Ay "`Gz'2)}(ǩ\F"+GilOBb>[2&0P99FQ #UKԿV3&j %2Mi,,DRy7 >~}]^WAǬS ]<gO/`Idp>-lp5< :}]^ Kp}"8& pR03xƉ9&3:iQi G[@4ix+pđ.p}5o*=! "idBүiK 1yMopa@q&=T5B{{{t[;3掽 u)qhޗ)JâF O!c^ >YR_`48ĸ~* ֫Y88cBe]n;H̢Cκ3}٪ir3 *UG09s2<@ Eγ}4 #qRdgpQ38FZF_35f9f3S0RS{pr1_촶= :ѩqg Ùh}ByFǏֱVkEFYs0f#Lr(R7'#LJ7< st]j6 Gd!0089 {X{Z$F^YqCK(ʅL z\$<|&xc;H[Q!#TP/B;(Pxkuҧz6E @oKăwqN8GN}oZ2ښ+p6c7txHL;? D+S8|awz<j%e⧉ix08W˾ۈ4yu(٠v?I'2ؿBM;@Z9 *G0QXB̈́ʄ͍$˝I o1,n5g[tU%D*E1W gɡ$$2ێAh:( gl/lyg_ sSfLԗpU! ڰ>n߱`"c, ƽ WݚcMbfmŀW57u i Z?3RT%H\΂ 2W`_R+vN4]*;-;\ҐƥtX=~c7.$R+:p_(lB{yQ'%XtsB9dY0 LסWt7k ͑sٖ8]Ht Q.0f"!˵e'ΥЌ!Tx2w˹ܫoulR"ܬQ( <Ԫ ՚yggaBKn;]M- qsOD=ZQk9zuAFK;Saȇfcms69pCĐthLsˁtg *;Fˡ6 땾6o^l؍:cCjx[ލx,/dfǷy[Ѝc^E݈ZOM+9+6XmWd^B\!3`N.eV;Zy+>ؚJRV.ul5YrJ&po,~OoRI(gsm8%l1a?wYOW87NN _!0xc K3͌m5}drӡBN<'Yڰ5՘)\2|xKU[WFq{Ō~Qˡm;᳚uVtZ0+c#XȸϐlG6:^ 1+RUz%2>SB5?mt mC8-͹ʂG$\&xuP=,aNCK9\Qᴉ4H~"ҁNb`-A>{{yL.Oqd ;>$@s 2 %OHi wS|S-'5Kq-`vrehg{ DX׈pqXx340031QHI,IKI,.N-fpJ vuWLKN YI]f^Z>Cqֱ}ǯ[0E y"b\=n<2QTea;0tx+-(`սԢ/hN A x]OAn@ 3q|=C<{oɻDwzX<`cJXߧ3?oCVQci\ywM콰tM|CbCSI->)sc\#E:$AOBJz}RHƿ1iTZ7}Hch ^IR6e6+F< W1]-')_Y4LpibtO[~$Z*(\*mZE"SAI@Yvdc%z։`w!oL\_ڦҩRN 1x,$igP{}r1,'փ¡CpXr;OKGn=,Y(rzpM3"\Mfx5U^qptthT5Y;bR&?~IE,rB7PQuK vx P闓}z^f_;'z_O"F4W̪phOCCěy΢1JO͍Cd4v`1}.5f9 ~I'>;,kS=x zhrgc.M8hؐjq|緒[hd6A ]Z e{8prxghsAtMBRaVZ"~NݨXEM*#.5Qo!?k}uy ?0.ziNJ/pNd!\1-K(Ĝ`6=3(j.&4; yѡf&#fh%T+ :5z_Jt6/D'avsMG7/K+u: .Yg#]ߣ74WtϹC6o(cf]_YZo*^bh,u EX"KlKR_1#TMK vE4 9Mݨ^wiy% _eT!MWc4oUBzObqH 9,YF:o]lX!ipkPH:8k #io# 1%RF˜nUEm&INB|_X! dPH5%l[(Ė8:bW Y͞gKS#:=K;㗮uF̏K|;WpBrRfgWgw࠘jܤĞfOFV+i}Vѓ{E^{=(evQ?,ͯb"@xh:^fo"0uY_Wk~Jaf»qsEtyL 1o ~Wދ_Xv!̦_VQ⹙4"jL9+q Uɘ"GZ.*~=ZZ&F/HxX xT~MfdL2A!D# A@,LI21 mBRk-cťXۺp_DE J bwSj7[{}^?&}s=w^ 2˫H[P.]n~9cj,CQua ch|?o>n!=Qk1 ?/T[uBZBpdsW'ٯe,rHM60r~SͫZ>mQ1->@R  wdrQM͵>"oW8lq(DѰ؝1͐fpr(_a^ŘL Jgx¬,%JlQ'pM+|X;DžDʝյʰݚ[2'1C9aRcU. B$$ %˱)'bǛo!IglҖa{^94=&"2pCLF(9u;4MAL<ǚfb7^g+vg8q5ÂԺpţAGɒ([1JߛcP[<>0Bg1N$_gL)M-;yZg/ /Bh-.Ttӊ* [Ԯ=cl9VPB4%yڕhdEQjZ[$ej3u%<8[{Β27*FF :}E*>G9xegû-#|`Dr*ShZ>oWg69#oNsCՂ2d@.`r .TFb2\ " 2N|Uz|%fF !l${C7e+Ypo*guL7:Gulmeb&~K 7Qmr,cw|*,cWy>)fzvS[yԩ*Jr7T45!_4]kV <)KvMf,lǓs;]rVmPr|G2N2NX6/ֵulӉ$W;z̢"w݉(z;Yې@wAr@$۝BRxz_Oc41>䞐s6 eM#cDbc˻m}WӗLzr蟱-E*vDkvD 'LT@SؠK&s>*~Yf)) +ES:5^iڌ³hEJzHa5kWkU&K H4^ZpA4j|.N0~,6֓Р31G1Za/G ֣()/ Y舱!=Na FOP8TQ@vY]JAǔa0οGǍ梻pzrr F [Ac + $*q%z (d4# :e\ >t檯FLWi-yA8-}yT/oa9xV?jzGb紛s生ӛI/ M?:"iY6Q1><ʲGgٰa<8 J[ɣ_?^4nuKg4ӛYY70%>evӏU'3*67p&-lT^v.Q3fWUcwꍌd>hMg&='v^2:$Ҋ^40O/FoES#zEk+mrg IΊޢpr`\p@=]߅caՉh'.Zybs=hCj?j?i؟CjLWMQ3PLFU:..q"܆eBLDG={Av!'3e>A&Bt&L!س0i,fF^#=׾Î56&E 9 uC䰇;Ȫo09L l^{x :FmRX_ZX~LxHU&gH&&<|3ECԦXxp8H&`>^Iԡg;MI5;ƼF'%r:BxF=|ZmS.CpT;aÌ(yP 8SP wu|,\ʤ+} d@QL%C f y Pq <|zw'e=|HmתA@6󏓉_0 tGfC ۶l:5T,/)7.p ȃlc<h(J@O'Uz< h>{Q@ go -^ kgrP-!@udhŀ%2%`h)teb5@N#.0"Zcr PdJ@ !#=2O]s$NAǪw<<4^:Beqqxd\&di&ѡ OayxaMeP.UثOņD8_x iUY(Gt-d4a5>h&ͤ 2u]CC{ksƪv$KA)Jiy73uN+"!,Cw5>.Ƴ Aaf1nAAF'e9$yMf:OD}橀Ml=T_·lϊz`uUE4ЭXN`mtz+E'\`ڥ>d)5mio8jf;V 485vb+~rvMmEDYScд)g,֊籍iš IςYQ]qX a@cn6))M#az^nK8 0'tϑ'lvjU0:(3u$x?)؟4dt/7TT˖(FJ* R^JaUhBPP4/v=Ѳv{#۫S;'; ?;ğKJ˓ *v+B_G샊|2j~s,͐op\VD_=] <\Ʈ'+ D8TY $E>DB %&I&}n>*:Us֖f =[E`!@W~rm>]QǤ} Y)=PQTwTrpm-H*0|{LIOr,2+>v=DOaF8Y ySIZACx SY,YO~Ņm_Mү@,"oK̉|[ 8FŢ_:@P aySsK<|T73gR@:BE$"BBF*bjr\yc_7y*@ott_hqoe]2po z.+| l%},^A I% w:b."HMIs<RPz|m?/Uǽ7~}~#1d.[?|&D~q8&g 7tl5dơZKoݙ O$?II'E /$yyBK=3dqu uT].~MVczWb;=N"C:T.JKDlJk["1#E!}*3clW4gE$j\g>]I>\?*+_;4k3X_m}IM$av)G௲%(=$ gUV9 ,զyI W\kӑ5 QN\e:3Q譶GQmڤNbØ1,cE$&Aγ0gu,}|mA~^\&G*FzHNH%HGiRW }Hǹ G*G 8>V d#|HHoqf3b5` i{"o i1 vi ;Tt -EƮ#"fHuHQz7٘YOKH!$O9@:~V"JC+ &7xuypUӛ=l9Mv ِ@n\CQ`D<S%V--ʲ,Yho"TD xx~& "M~=jZu?* gH3Z^( \9#KX/˩)B"@ .ZWxk&pbLl#p iѶA) 6곝L\-kP͉,-([F2!\l{ˠ%^ ֥VK(넭b&^l;F!D[FX9hIc*5y< y3׆ i'Z j2$^Q;"]t5*v7sx7m .4 w&UN\Pkts5%-nwԉ3D*5 4%fV8I|:^ytH &^8lb$GuUsg!,F%$IKҾr@?†ƻ\JGd=tLUW!?&Mig;7UF&~GeXQ .qBUGN aްxUt>lQltJ梕HI}(=HȜ5g+[˖E#,k]<ڦ>t5VF@b)()Rg*5l&e!$MK< oWrAr7 vNy<ů#r@i< Kϫ[ ٨EN4tTo l*o9crJt*Ţs`!1[ UTfԭx+{0۶(mFt` {u*OأWY Rn"Sgh0nt'T UN9p5\Rqy&jI\353˧zW֣u r#&. *wZ@ON z^M^2٠gn7$;@3A_)zVl+tzENA-9mr#ay t1f%nE]YVt1h.E~SKA]z]F q<x340031QHI,IKI,.N-fzzDD?1`f.3/-Ŀ8XW-"n^Q-K xUMn0)FaRn(-,('M&{:4p ^97'JA*jH3rin $iU'¾mF J^*Y*wbQ-~K2l u| .'Pb5Fs@v|Ǝ8}tQ|ȍ}t5c%sus e"xuyX9#΀ 00hDA((,!ZMhћƦ&1M4&Uc$XVmM5uFM;<}s9=oԛfQqoĺ.Q(Wiz^<n7+/XKXFK<>?eْ" g1% -o }!˳Hp]NXav]7QDr!Ĵ/dȩ~}fh_l-8}/BV8}/Jf<~]P+(F&JdĩDL Sc<<>؈G Y{}c4[ڛ:V {gD b<79~HpN0RLp09if |0޲׿SMF[en8dd;ٍDAZTAɲ"ɒR䶲FH*v*(Uw*}FqD$AiR̵f90?,ȩjNAэ*U ˒l"h)I+MP33\mq;O r3%+KG9{KZ @03@! 3 po 5V@kWTF*Ux( Qw Tv?T#UXijwTRU|/ӧP`fw*TÕJ-V_fa1 jshԤNtԬq-5AA˴ r[drzĝU61yIwG(SVGH Ќe3o׼\YK4? N]7@)jy87@m̏Gĩ{[efme+S"`;=~$w&E>tlKQkOt'oH<%-p-gXy=Fꔓ=-X[֏aP۟@hOLρ7g"PhoPG < 1ҀKzq{rMW/`媳c뗰jT3l x_κȗTg|`#\w̾| UC@w^ǤUÆk'G,h /?ޢ pFuaxPGP]$UޔAG#jyRQRNA),٢tV-onYo f5oCR-d>&;<{4?A@5md~g7C"G٠A@T /h:,hh<(t!0}KG&5N ; 2#WkJgj tF p7ܙ)4O0_ 3#/:b݂F L{ ow I FQFx4; $?ob|biI~j^bRNjpyfIr$LWJIMK,),IAT kQn }Xxkb895'gb!GJfqbRNjĉ"+ #cx%OhQ;ٰۺamcS--yk7ڋn&*fDl뒋FmB1V^dћM6(( zx + +}773oiV$[I>5W$c OM{pf~EW@Y0IHP~?$ӡ02?M1[f ޳T~=Ԩ̡S |j9d;Ÿ 3S#ÕfU|k38Nm xw#g|*A?j-C;|6d<9ޚ$0!0_®" a0?sžbL * O)\ÃfAGJ|V072~w|A@G 2aԨQ,\/f]h} ?ip|\:f}po};j*;%P$~*M 6#jqvxTKOWsm`6~` qKZށDŽRS 10+M`dQ.TRUuJ˨ ,jA{=@P7,<ߜwνW>=!J8p q;G<~" yӺC>" l ']`vLGr=gSnɉu |R@sᓾnr񐯛df۹M!k8\Hnb/cxI~M$.5Q1ͣSbiM ED7;!n8XnoMRpL Cb{Ev"]ZCʻ}#䥜n)DjpHEt0D׻n"q:'_iZ0ARVg{ i)Җ#,@!D*XZ^3È\ #0ߵ6hZuOT J^vhuM׻2M9Z9 -2P: ]Tl?䗖8{ m&^}#H4@^'$ef-OD0*hny}_SսuC_50@Ç 0$ug(?[೗v_y< W]0BNa3pyo@a쁉Z:?I'~ZϿk1$!vt&/)n_UpP6i+G@4 }dgp *_cs*B>ca\v[j [ ocnDX\'8&_Ef/)Sd(rt Cqֱ}ǯ[0E y"b\|ޅI^r1R^q*^Z-xtiBĩ9E99OiZsq䤖+*hpq*AR~QJjQjJpyfIrD0%81)M03/$31n$T$1-35'e2H&FrxVKWSW&ܼ0"y}X(|!(` )Ch[ϬkuṫCRծvX;>r#چ>g?sNtM֗t0>I'lx?9o tUOiEB{ n8Fprɤ~]JqAQj*YfQMȣ(QXQQӹR>vYvt5UϱA:fGȯ#]:2/,=)~%?׵>l'r5V)zrS{~W٨l+QCY c6rF~z4a| ޓ{C .olHMS8 ˥F9--萧ɟ@v^6FZalmmڭ`PH({|TdX~vZspE{|NUt<'[q2n[m+.Г0V;A hcFRDpPQm e(ST=)$G:iopEۣ{{sҪ^@f0:1$gNj˵k߁e^s<40&WTMz AƞH%rKKѐaQ Q1$i\%S4%2yd>Yd>{/о WTZN6sLqK!L89b0ZS.7cOV$`vQY_5(_Y+rnFO#W,+SPV}holj3W^6[Kۧn*Ia,W3 0Q.&Mr{.rQP Ѽ>'_uF" L"| ED $.O==\%Ћ9/0r΋%F{p6J_!DZ+?qEYx340031QHI,IKI,.N-f*>=LGg"Kg(/:V{ /1]U\R_ː45w~mU)+tx+-(\]/#q1;w1. xej0 SA vuΎ%bl- 5쟬OwR \,`C%|k!pO !:p24Kt(U]$.ήnR`zϷR+:R ՠ0hVC秼'iʒrqz(ʚ>-" E-u7T@]=gdDi \bƿ=wwhuEYE7ȞtrfJhRJ3MTөfBٖ=:G9h֛-NKjmzF8J6oJ6vvժI,X#NY4ZN8sE{RJcZIc-B3`_igR*6ŹU*a%@ﴖ"N {$i! &dM!WR5Mxɑiavأx X1 Xųnئ|ZF*k=FYS>é<}wmOa!n v*ȶ܄6K!Ol.~8YKrX<Lvyf#Frzc07'pX6siqo_^逥|C]$DHAڜ4 sfT\<׶"+c=Dl@b}42<7D0GȠQ)]R>rKCЎ^v2M&j. lUvf& *6N4b k7bCe<_bBY$%:TUj:tKgn¦k?G+o t]k7i2tF7i%vcQȶ\U]< €i73hh|Z#7ure 0u]8N㤅[;Ը݈.nvG h@7O F DtFN[L!wwPp4gW8;¡^پk&h:5uillqa$^o7Evڊ$v>m4 #IMU"Y -3 g:6ݭ6tKehX+xQܥYYp7PȦڌĭ~uME~<=9$ A ^IP_h6S#9u͘m=A7z?ɓԯ-je=xQϮ-ݜ _d˲ܼ_Goz|ķMe}>]ZFct#Gf9.'{4)gWiR֋u.R7M{dLN;2XLM!f6^ [qx y٠ qe帇>!JK2۶ra; &xW^<)RuYgi>s pa j˩CaV*8Bn.uS vxFi<-x "\؅n.>%ك^ 8! ]Sn3U 'b0Cl.xۚ[Nx0jsufdlOeO \dMϭRK܅BRKkK}Q/RNRB(}RT27EBjw8QfBN8VUN;% mos}U;wϋG> s"KTG0c >~`I x:;)?Cp>91E~n_r+Ue2[_ G7|Ыo^jZBM*%uzZJcKnlNIf)Rq ɧq.PNKIQR nNǛ/;[Eck+TtENYG+6>LBH_MrkOejO=gկ)E~u-!lՉ' `|B;Yv_r ߤ7if7~;L#^5-Z뷴m>#ѯrwhJ=~@G}wa5EsoZn-47Z^lb50 &MLMmn4J-U-XG+1٬ ^nj{I8E"><.kkjkڛL4r&vC}SW#vN2h@l t]K}֪u܂V 4jAOWbוjoX{hF1$"VDXDW!ԹF_tf+$Jc {۽]_qv4zv*$F؎+DO93ЛA ;3Q°Bф BMRh,6OM($֔'wWs33$A! 'y,ȉANBv:U# ;klhtw($ {(IVH*H&Enq&q6 ،<#>ȃj,u3qʢKM8v Ǔb9lC֍T4z}zaRR2f$&-ΰ#h (C@ӣ|ܤQ>Q Br]( ֟b(@TH^4r1vwq`Yω?׊XmvLr[x;[q- ن,]|+C|.lW-z9Ѿx} @S EnFI!yqWuV(wOK ^fɬjJ='M%\r;OѱVZ72)I1 K+}Z>isߥن ZmLI ɜtVEF,pl]ͿY)ȭkxVmo9@usBIr#U5̮a}56!(ceihמy u?YՈxJ..?Ӫ_&H2k~ʖ\sq))$əXr z 謸+tn`-.%`R˓@,c\)L[pyY`0X#^L r-av{W/ͨK'.d[up6ĝD|~${W9](IGO&uiCrcuΨ /Hp&)qe\e?ޖ x)iKOuv]rCy b; 27F\AL<=ږޛ5y2G/2u: v|FN W 'y;$"UZ)x:r1\tAV9QmW1,dOBPnؓ S['_AM7K|cs4ƜcYA,\{3CG)[!RL+go"_^i9]}9.%[~ډȈ%# z*e{[KfN<05aCQWNj+C"1vfX0#1ouă~՘Ҟ ۫^&D?riycHR bRZܟ5%9%;qmm\檝"7qh}B7]y҆F ,yȽN&&AQ=~||& &+ȻACj\$`qhFR,L"ɥ6C~wj˭;KdπK[du*Bpj96`h1L*A2Xf[%OQ8X/̺ [J4+x Wn\rUMtzn $϶)TUJ"߅aF=C>?LLX`x{,Pl8s~Q^FE'nFq&x340031QHI,IKI,.N-fXȣ̟^ܳkm<`.3/-Ŀ8XW-"68첗'LU\+xX XT. "Zy/*Cd5E`QkyuE\ Z[hScQL#Db>Wj>&mڦ}7}Ĝ~3s9gfw(yU>2tŢQ>q5Ňb1F0,El@IKY14 `K!eCrNDz dCnɥ sBVK|\M[@68A-Ժj& n]IKnܾxȘ-~(RrL,fKlu )Pa=F&^ Y3bƹɫm$.6.en0Mjxj}ÄF$&<9b9]0;vwֻ]l1a24 tđc iLn-QY.Tн/sy<' e&%t >a~}WhЁ_$."ǖhk*]XW~HHX'*RF`V } ]H Ea8;LGy C95tIw+ >1YJ,zF,;zI.kG%5qG^)i*#mL0/LSiTO\8(3TS[^,,'kqN(P<7Y:+xV41+VVb*Lw.}^tZ3ڬkiY_}_UcyܯF'AN\VwK֐f%v2Zie>OTP,`Y½Aml,Fg#-笺*cFxٔOI,YȄԩhimlzai,Qݽ>o2 yn͹^7}r`wEŔJMMEKMK}41 E'$P&;׸}<ۖ r72Ica@;63ų|wؕGL/JG0Mm~&,ZީӶ_Hˆ#)[Xkw4{Ԡ}r$Pe]8G!#E1Usct7@VmAȻ$PMv 欑ڛkjR}I >^?pv2F {8e!W2s6M Ir,-~_St>L4دG26:X(;kݝ{{nA S1 \ϜVL>=Zp\B/4z}p&`*8-v \,pWkpH-~[hM=Bd,f279 _$ms3 bt^Q'Iɷ (Ax4Ԇ_AGį"81e_Ǚc8Sϼ<"W; ~Z}k8F S;uNbhHu &ivaja{_ z;54*"M飯.G}=_ȴU _z]+)t玦ڼ댜L]l$8P֜Ml"Έ94镼|/NMoʪI%qUfTFT|K%-!"QIYR3jܢ/]%xDch՛ѻMoW]/Hn1g*v , UBTΨx537}]ӛ+g2X+tNbIS%fN@ Xi涹Y:VʌT2\jAsEpvں]=z+ I3 *ޫ8wl5]mZ*lZ<+C|McYE/mH`Ĭ3`q a%*9n`lM_=&mu1sOi\mW iNa;wS-?o[5@Q1. '7ðj:-;/1S`w.'zI}D$gtn(Vٚ^6}[]8#`A-h 裫c^d?x$xǻm}Lf1xpM|ϴI6QxX~%JGa`hs7 YH]P"a{9a`2$CECmPbu;hXccE]MFrR~fG/f8|ÇF12|T(Tcܖ5a> تXT'b;5u rFKK l2u c,y >GpIJ|6˥?ST`+kEm*V>3m1[pir~PX=>IŦke')cwL l Z]Ujy.EOjJ( Ɠs6HBI0t4NFTlGt''q@1+ hjZLk5$G|P N#crǦfFh嬹A ys!km- `,Bq04Ɠj6lofǼP-$f̂(@UL\= j-Sh=9`ϳ"flQY\ ⯩D<E2sdW/魘L2)ҽ}V{x!{lЮ60#/WýcT^F f&'~3M (vO.^س :%+sL: ՝q:ZOoj#dġx,eݎ!^WLU8\Dv~BF1>; A߇qIgC\';cD 8;SL[Ū?+\*bKq$YĢq1 ezAK A =/0[+ |Yk K 2dhROH+tQ?#xӆy9௪qx340031QHI,IKI,.N-fxP>Lha >"Kg(/:V{ /1]U\R_˰ՄJ~.Q^/.xmP 1 5Yu3#cfo~ ɓIjn|n% b7lis3'9PnM&۹&v/:#xsWwKrm˒eKI'Y?blh"ʼnSĩQ"i]ie;mm9@\B[h Q 3 3?1 3{bcyWgs=wfУ' g?ا%r!rUX[qnҬK2'rH@{z["S[Epéx8"QY9>l]툇HD T?SZŚMl&hS[%%mݘJh%6zj)Te8*M]8K< pR[L4U2;n$tqNV;hV#sS=0Yؔ6pFp1ښfgsE-W;[V?6$:UԈI=Kg܋ﲼK{m7.\dW9*jZ)R7T~xr83r>pf&֮0VaKS1et9a呗Z"3y7m%Tn+_oJ!;p  6lK &rǸG}8FM8~ b VUI\*TgƁj&Ny+k U #H 8K8gfgvY\5X*k:)]5Wmk5KXfY‘Ud VP3ZJK|4J\-A S6dMANO/|ք)=)FpPUloFozHd"´ W\s|*; g/~ģr!\=WUraxnk4gmEp^y:[X0Ʌ9:N}s_t&\v\|;oKVWv"CKdѪDn,qNq̄2,=O5&@/WxL4&v'fM:E+uh#_Գ{~tIJH4nR#gr,/|mIڸWrȃȢ eVVL65Lb1ght:]M^g97׋Ձ=;?3bIt_mK>B|/ ,o^ !Hf;Y)Mb>ȖCd4@T i _| A嬞IV FdvXkAӪa: mZ?<cl?Ի v*UGtn:FO$Vx_e66w0A [xÝ4bz mD,jQ7(߱tX7MwQl2}&EqP1<~X<31|x;Sn lWb0H b*p{R Yɣ6G"eGz1 LX+urX4=yEϼl:E5/Y{N:}^ xEV%KG,OEDe<<;ʃSIT:"mD7 +OִFz',mTn}~jXwPѬ8Mi%嘡/N߃_rL}0< B&ELSt͘`x17( EE&|"Io;yj{7iބ?f"Ko ?Y6$ψ Cfx340031QHI,IKI,.N-f8#.l%ۡ!̼|c_`@EPEIY%zE !4缛]9io-sx+-(;߽{[ce\]r  3%x+-("#a±߽,a=RF xej0 SA vlή%bUl%-tۿb r6tz-a \k}-E!9K蠳5UҲ7-:\.xqJ-ϕ)62ǽuM+a <:c\ݑԵn7<@eB\J< kRg0?b&=ws=!kep`xi7gHjE[fjNDCĜ<Ē .N HJLN//Kq/(L)J,/v^cO/Լ|ٓ,ajx{i;gd槤NvgT G^xY |T~vCnr&d$$9 G.΄ B%,lJPDkEkk*VmѪ( xpmBk+--mm3n6Zo޼oɾ p%fLlOC cޅ9cYNEEmRzI%#^l%7BrIL jCG#XOjČ4m(ڢ [8xD9z <SsL"k{|>Z# d.WIziMN} ˾p#^hn74 ې#QԬ>(3F$F._kۉIBxS-N6VNv$ qM͍dt{Nq0&i/}ȡaɋ1a2&l2UN&IMiD ۣQb G3EN/&mS;*H3S`U  1wyW1_ 9 p"0^/6/w*v 6"&#uﭯV*@5r ,a~?. r`@Sw"Z(rgrBO!Ed3- s"h3>"\q%|.s)\f1aBQ{J9O QN+}nWg9A@jYjSn cK3mR&lg81Nlwz|ή+p&aFVsN[Ni']MWRHe)v}OϵqĩdOd8 qxf~g>й<0̕i dq\Fn^$b4R'k}RA[6B}KR-n`_"nt)Ek˨FzRHZSҀǪRԦXQ V%E""~Hr"^F&[H^O'NZ|Z^|L kQ' i yAٿJOJ 5S@@ k@jFFr$UM3h`@Dt^3կNZV1{V ׎ښFmmM|kKXSszm=_m"rTo_냜ANc(ofWæ`Ÿ-%kS&Sn癹"w~jIrgM%Rʙ\o8UC)n4 ͭ͝]Odæl @??̩$QHP?<Ȗ,E \21=k>#_1n;[BFnXX:FWsܿ]`;@`ZfZV D3= % lW#j֫oCp* CNQ)\>6UpGͤ7/\o)7BeVþiGheaTi'{Sp"e7v 4_U;+Fxk]ή*LĭkkWEVvr9%y=~ `#*bwCHICY]ջƌz e,JFc%7.#Wi=?F˵tI+V#4D ʔ2 1+Ky}߷!Cn*K^(>PfF~ %}(rle >aF*ran\' 5mK=Z4;>Q@I⣍A'Z=]r@$8Ga~/=P,A"X% 1V2p PEQh\Op N?~PN56j̆!&"(aeU*1[#m=>gm{+\]aSLy5|2ީo/Z~ï\|U];KG&9SdΞfA-0\O5xk*tKJZ_nvBed7_7c-n0I~/nJ. i/#g49rDbLa9x.m3bX uߑ{ImCz{.X VcЊ4G[5PR(iGWk9頄Rp2gr؄:p̡һRB t82K( Q[Vq:Ag>35QVw-& jQump=$4 Qzl 9O|8ެ39BìzK_0at|@8 tXBCO]Nw._& $TzN.Jc=.0Sa >gi*UW TB3_8]P_64A Z@zt- ?(4 Bn' F] F+l@)]~Hj} P '9c:&@y ^ uS2,x{;O_KA=(7 `?FV8od $[vҒrb2{rdMnLB'Q Pf0d>%R& %E2ZgVN_(&aNBO"OzUN3 u`M .L0aءph;X8 EK^=eP(>(Id<\Ă|K_+h9Ԁx$ŷ S xmu8mPN%Tl)4PXٓT{#/щe~c˟:ׇ d=WB]1Ș;z=&Jz)xWmo6C t>:Kq`]\Y0 Y:\iR]R$aJB%H~fǛ7ыj7oG:Ǿ{3#l8V}xIʹXѣyT^ a1@s=?ZA@t ۍDƀQ4ŚtVdjit.|'ضhGRr,-*R-ߋFй"PŠX1t t%A Õ7w#lؐA/twJ`?|"=t!)9mR}Mw$L6j2X:b=CF!=wμFXTȭ=m΅wqtW'?ggf s3/E>0!P"Eδo#DG% zuFK"c-,9HG@JPaUo883~3~?NpqXCg"L@"ڈ.P ʂ`6މs4'/%CZlml86˜"8ZuK1ZB9g@ H R~䎖ZpϒAUWjۜa` RD3S/QF0DXdQ-|RR]voq4ƁwQ˞Dӈ?9MriBѵTMoJj4%$9ֹX*r9[}Z>N7hk+4^Z/Y?zܢ4;R :YMk{ ýi쬝Q[~'?#HW덤Aʅ1h81H0Rd; 'Ӱg7(AI"ٷC 264_~%yj{DZbz)Q3O KYV 0įU 7ïh :4ZG"w!^s; NFԟd $r4LAŀCg>6dhe2':StH, voi|,6": A^2rEn ÄYD%,d~պyҸ~$-s 2xHF yQS]=JH` Go@b9CvfH][҅/aŹfjul>VK2)v+.{6"n0KuR<|^&,CLtapqLKeix&eD)բT ;..̼ҔT%\Ғ< S 7y Cbx{w__KA=(78'3%hDV,l,,~2n@ \\y%EiɩhFDX)x:y&qU iR*K)M-M)K.JM+A9)h%dOdaOKLIMEJ B23K3 O cXbLVdWB[|>fX]Lx;ųGR_KA=(7(?(3/%39$J,X$'Oc&ZQ▙b吙WZӆɎ"N%%y Zy)@ y%@wäRJr pKsJS1%+\y0k&Z6}xuSJAI!D$7M6 ^%BPJS3kG73avb "@B_w 34[~|ߙZB84|JNt$-X"`PC*qrR,Ag\r,2~ hB/y*lga $Ucɍ IοdG#zF xOʺ>V@(jBs)̻saguGp˿ b34Cz{6;wIw Gs*NM_0vL4՞߰z\uW\9c;+&vЛƏHQs/L<]FX{roK~ɾ\l4 !TWY=,ou|RVXӒME1l-?F"hsWq,*N>h7 !A1=J5 WN"x[ϳ__KA=(7$ uE,lp5,n-)`W\\_U 4/8$-35'EA,14̞U>347 .d:7̼Լt5N%%y Z@w&@DPd /J,(Ir9pq)4.u^rG xS]kAEtfbQIzAMFԇHXei35Xj~Oq7c_᳻l/qs9:Ӗvs\}>v?~굤jl4F`+=.6s%bJ ڶڊFVE#;ZvdL[}-5QrPsg mK˗zM2'p`ftxQ)a\0!W+3ri?Gh}Hp@cۇڴ:)B M:p P 8xa6#tМvle:Z^=mg{I<\E3:"1KfS W'xʻ .'(6$=^V~cAJJzmA2Jzem ӌ;2fY/\ s3hhl:h +t3|Dh:XhqXe߳<m*zK$@~m_hx;wWH_KA=(7$-35'e"oL幔3RR8=}B]\]QTO>"+[Nl0kCf^IjQZbr*e׳&eV(h%dA8@W;(h%%&g楀!N%%y Z)ENpK!iٗ_Z NXꓙꛟ Qt/ЈtՀԼ|k^ rq)4.Txrx;iuȆ*N̼ҔTr26Wbܬ,̢4yBL\\8>x[w9FFy&eRK)MIUPCY/Cir%lMduHKܦn4Zhku%yCfnANjnj^IbIf~_ppIjAAjl@/i s)YsrA`4 r@sq3j-Wl x{wwߘ0*$xRPLrIUUPr+))HI-)IUJ;$L%ZQ_T֞ 2@C!ꙛ$\T\YRZP^ WPp/ /-p*-)ۆ·Ʈ95'])H ֚Pdnx340031QK.+L/Je\ctM|U=KS!Ds~^Ibf^jQq@bNjII^.CX}Cdک3N%ii }L*s?~KUSD/471;5-3'!2f"GsOlLezEI@+S~arˋSKJ2JKR= RK2!uO=oqzsNXOH;Ln>D h)_yyo(4߅Ui.=nJvZu779&@ P'ҁ l'"6giw{>؃biI02Sˁ S;lu:s{dé<ዮyFvN~U+Yqd7$9?47]y4,CkYmOY[/yjDYQ_>j3C8kVcwUw3*߁Cq.C bLSҗp`4?xeĵuUo6{@;5_;QmϗSӛ˰+̌)'{/c _5%j|7i0΅Sy.Cmgo_^`ZKWDh@=L l2yy~&aMT+`I{h?3tPYfJ_TrAJR2|.%]q0r<& wOw14ڷn_? +3n׬#S^^^g>M]'34ߦW}$gC\'c:p_Kwg^ ~nxhbg$YX%w]| q'fT}<:EvWNܟ.MzxzAݧ̓&dOAX_.ƛbBW\9^nr-IT_&.V4&JSkJWm"UWJ@_3=]&V@# x AF'-*-YNj100644 ContainersPalette.tiffL@vsm}'N)# Ƴ~/ 72)kc) oW5!2G©|^k֩䀲(8@CGPaΓ@~@6R#5X哸~5*7Uv%)v_8 xJ:6a]MQ]f~ȘHb(4ZMn}=5h)zNw. x{{WD9?$13/8 1'$U/m1ӳɥo=ߜ\|}]C7 wTYn5爫2Hycv?n|3QT,aGv{ujعՃ1(%.µﴛ+N:y cR۟E޽a[r ,$-(ke_+V;<فium^lql}vA_ZiQ1; />Y9A{^E ևK]7ߥ?ً߭5I>Nw&dcUݦ6,*~K!PJZdRֽ-=3I_^jdZ7.dr~wY6u2U,b"Z~w&JmxUj$Zc~iJҕxxa{@Lc=XD椮;WLl{&sF}.CAOJHD[_ JdsM,/`iD(G u]68sI' xcT׼)(<>eф;e?_j& PĖ7@Qn3vNcSeuEӘGܜ՚W\ h# 9'U<+f4vn5AxXms6C!AµwrH$4Ab$4߻kcHnk]v>@DX ZjBU}hUc;cCGEϬPaWMF5#;Q0ބiZ|2CIÑƹU:z=NÏd2zp" 䀿S-1/T{S& U As_( (_0'N8XC'&\4n9Źۮ`dG[&35Vք"xX__>r¤ 8+ᗑ_Bl.ֳ`.ekpeq$׎SyD}K(S{/#ŕMBR F0fI;lqaz[lnSW V.c%R}GJ#InLXoy"O['`92Fag d"M|^5*BYZD-SA^^bBj hK #BҎQ+nŸ-q'UzZLCW( {_;B \{B!R)3JTiKR'j>YYHmc7?7}Wӈr%:tʮ L/3}7hԀ8 g. 9 YIH 0/E&3c] #3 x1^$@pыGERѼ.WLFF%2c.&gZ\40ʟ-jھywC,e,aQ~$WP̷Mu-' [e,S8Y9<͇&'&dOg7y"꓏jE)V$楀BJA/?)+5D * Լz|re\}EejRRغx\kNͻX#գ23s3RSKB2KrRK2R6[Fx[TsNf.ǂ ;,X"6eIab*IlU _8xb `!Tp˥XŴ#D Vt) .ZSe(AՉ%pe՜3< Y3?]x_5g]6&]yԭ8f߸R[79h𧡁&e fDb3AL@ e1 ‚,`EŠ| Pv'K1&@Bʶ2Hvi /?\ H4(Tx[v23$Z, qK$W(DJJ'SA;MEO?yA5EGw=~+S !OyХs*Wsf]]w} o$f]*zkCoCw}ȼbQm?蒐&M_ƛ2uI+sMq ;ϪM]~X6g5WrʢmmOt=Oav37O=pNwO4oܸgeG jbeϗx{?*,߭ snw~}8Ppa*gއoe© ߊpIϲK½#5;&&U{zUONʙ~JgI]L3.aƞ~ҏ #"0#FDeD*fDibFFN DlxoC?pkBz~QUǘ *xuPJ@ݤ] ]) gFZ$PRܔirc.Lf䆶 B]9sg g<[<稇 vx96D6_>N&]& dF\#? "Y$a͗~']|^uX[T-k!yy^ț]kE"Uv33)J)ie*L53CoSuOcShz 7/):e1eGrK?~x!!(%4$b<9 r!_跱X 7 Ztto4VtcUi$|b/yfb2(V`džUbT bCX+[ },JpϤVPɣ@ɴi~s= &Wcj /oݩ٦B04ewؤDWw J o0yS~6RXWS„=_Ki8 4rg$(Qzg+uBYE'x()VN-'45-q|$( \|!8~n m.^$`Z'9\8!i+"l̊/#u'I =+I8[` YϘ_jN%3'SC'Yv _VU.0*k*pWx!=;í x{,M~&1ҼĒ<}sr!(cAwf^,z2+(DONO[&S3JSR &)L!W3|Fa$`]x[ͱCS_K=(/ة(8H/KAA9(3=DAYSpdg^XciIF~B@fjQQndYjBPfYbfNN H7퐚WSVdXj6≭ *wFd+F YϨ $d>Tn HK&; %ϥRep}StcAwf>RXqq9d敤%&U tIfB|:PKjNj:З\\@mi\m%xȱcMf6ǂ̒ɏCwxUn"G}(Y2{@a,eMӍ{j== W_llͥN]NՙznZ=Եy@[-VOg |8;;FJ3ɄYd]׼Wٙ 5h` Ct-Tsb>{r7ri *޽-j6wvKЬlJe3 n&0W OWQ-,qEl"x <vo xZ5,Qzߊkv ef]U(je&4#L*h Bf0D OD1s[,tس(*܏hP⒦7e1n E߃Ap ްKS @V e|}W沱WvP˭~6RjW,[t&1K!_r&].spDТLK8kn^_]\UOh`%hC> Oаc*!>zkxV(VI{?$Im~|!Lx340031QHI,IKI,.N-fx&3OOcbmeQ5DRP_u|}c_b(?)+5X/=(ƶVE^+. >$o-/tx+-(xmIk  xuN0 SDA ;@i-r] $mAtH|'}JT8zvxIVw25(iShar)4 "? °] F)YA [udbAfK I fB 1)~O''HZeC;3g9sfd.Rܢ׎ `?`OL%g-QuS !,2}E9$ތrYCS4-I{F!G/mr;Qu3o-i:;iC-eXdPr\uG0$C2Otb<ȲE'p n(R2LlM&{O!H]JIyLL_冶=#\ѵWllADI7&.t 'muK:3J/G.)hh@R:Z򤕡a6PRohW5bjOMXxLH,i8F*Gc8IMwBܶ"'^hv٢ q}K9 jK<@&s.bhj'i+M* G/ZA K; !AZ1]Ҍ,NnajYČ@yDZ2ӇĂH?0w]W K!n讻@\)C~~mf`uTBQ_$}reDHC>aaٸ:+5O{##};"~>~AntR ڪ[QP#ԇ꡾@}N`Mo 0[k07z@@= )ZQ6(rQ.G#Q~A"F 3z +; c{FNl-!EA!ѣQgR"HrXhpGIZn44PRgL[\"3(1Κ/#&f@Pm!^^y-/X8Oskh]~ +:l;ц;-nUP)H=Y!baFfwjR,/&{`.RXftH,w&zC_VJ?颚]w UI,&q2 aqllC9O%NZ݃jÑqYG#{LY\u115& } `P< Ҝބ뮯K1\P/~g PL:|g%>[k|+39y?//4Ҹu:f2R5 6X8ջ}Oь{Rr\#bdPr)5`[e3ް06q-ػ;c r~@4؁|E)f VZ B^ҳ' ^Lg9o*A^/}(@aBwo_- O5wS/*.&Ï㖚"np/w&¦Hր٢5G Ŵҝt˖tn}թw(9t>2&FƤ)g)u,cٞMop|BxRv]@&v ݽx X C#~.T_?DPkmkmh${O|4ǽGmbM*^'A%ee\Dٻv^/fzY(|{̕$7<WYuOLx2d28 f%?*jA!b*)<=+-2=͡'{ qo n6CX 64t(|F>@ v&a݄[[!Zgy7]| 11eМ[(sYJ)P)D|Pk:|+ ./!*헱W-cUlMlmۯ3r#B|Q\7!1eHbao2W+O6P4O(~mO.`k<›c7x>{~\ʟC9EB^E]X5XKjsP[6R7cʌ R&~TQ?CW .0!&$Ym~G#7H@K(p~7,V z}[lK[?0dl#W\dA79.a Bm\*<_?Ԋ_0>3wZߐh#ڐVػ~MxVmX~7_ $! A΋R?Bڡ%J U@m]Y~vs{}vvݺ}~l?ǮۯdBU9y}yRە-Qw? RbG)\CY'wNZ$[C435MaW\ 9F$_pFHW=qJy\}!Z:.MպlvEAQ\4EYQₖ9Ɠ}9kŔ(/) ]Jo&Ͷ*e]^/@%EtN?ך,P^,:q 3V:\IK0T4Ջ=(<:2=E2j]CH`N<%%&" ?457e?XIEbVSxE}B"5ľZ"eٷ}B"B]Yp%vWxYv?_c_m+m([4v8>Jć;CCZjhNg2Cc3-T6 WL F)F'mn#]9 cBF I؄; jh÷-wuX:սMEl=BY4֕M/EVNVR+n|[Faÿu[j&V ;jkxm9ڋꁎN] W*:&?-E*WmeocyJ\=z"W,-RإSy!Yl.=ϥn ;e|L3tv.z{T︓::x3*%[;;'aj0Gx]]xKxˢ 7nu6a }YL G8ZTu^q/;RݜoZk9bwVmvm~]9ٱFd5]p;pal ÉP\>թ9-u@"Ms->hhYTekex-V9s}:HmПq|ݽYNSXzj m, B:}xvdRqFX )0I4a8j/ڥ-aR(k!ʚ̧BZ|0Ѵ0Zr[[5X6DWI Y s5l )Qɍ)Xb*`y|]`[h">j .8{l O$ZY7'h,8 Lgjx8HF{acW=OÓ%ó|A irc (czگ{M)F8"4Hr,_"0sZAxE_qof:B/kVϐUJKf ߾& $pmZG &E(oJh;4]7H:Y+dоyxP%i<0B 7*5}4 rϏ4c?!Y)YLT l9yIf=^ 0 ӛe @(p%V-XR < C` (kgXFw qlZf G"Wwγs \g٬YzK5sچ?=Izo$'Bu jVrmQ7@x=KLQ`-`M@$b䐸S#pEtaZJi+bEV *hXPu½L,E9N3a5r8eol}v{2°Q1`)'W6EYsřZrP$HB瀀y/q|Y^2R.%ꀑ"t׻jԫF 5麑4]nt*o!T֝X'61t B~C0--|gc}(Υ4B!KC(siI y[t .w5d山g*WLf=!%=7Uת/Q+ٕ|Q݌8>ohg4AFo2z!b8 &=h +b>3&#"苾!NF3()F_k fTUYnn(K+X[9izyE,X,K㐲 w7U+ 7:_`'Ш;kj,g4Qg|Uhct꛲lbnMp"CasF.ߖ #1"AGzWe1 D/#D% (q0$N~Sj#UEivigUs|^RU.ʠ<.O{Y>v۲4xʛ.t (]J7 Ci+jt-}((h `^nAAˑ ˑ2$%@Zm #G>3t{j{1Þ}G zR)z.j0.?cJ?R}Sk?zEs`0zEK_Dv a0b U$$"h ndN# O5^"S3/*iuk!#aw6bD/ :|1aVˠ?CdxſoB{Qjz~QW~Fsbqbnj^IM:P<>wLKϝxs-!QyRRdf:"YxϷͱ;d9o&=ZxXmoHQK啤=\N4Zu;KkRitwbyf]o~wЋ=߲'35TP G"((pd<؁VHhB) Ϧy?G ]oƃ=WI:zRc !pֽ%&?+=W%& 6a#I:,"$|0wwX  $~g4xp|߻B{ 7~6QD)'CX ae~&[Nχ`>/Z}_=UiQ]MP}"!90&S۔M1966rA׉ $\܁Gc$/̋{$ 5E: <~߁Ak޷_X`{Cakg\=VSKJ%u 8[Aj',k= y+pLs[ڬQ_qTQaq 4_Bu۲?| T@Pn֯ɦ!9w6ʔ]=qo-Yr=)&ǧTx B=W E}C&웇>%`T,=y!*kù8SgX޴zA+B&rDP wBfpO 9_4Cym_hm[{9l@գCM0>=#I\O(5KY,+ 0;=&T1{+0,3"gvy|t=Wj%Ȃ CjP*A p1&\H5h&Խ%;] F,C+qMc034.ē(F f!`Z2MÊCHFbWr/ZVӲdcVI5Dc%i;2iR-Wdkhʄ\v}.ռrEF_BJYx9,mY ì )>u1\:xUAkApօ&KIic#J֘dV)(n[D*NW2dggC zQc7޼]yA}?ރƇM۽BK/Eш-ozВJ 4UhTPP_v]tdEXY SmޖxWhT{-+`giҷT.'n5rb8TA5qz?q,T^x˻Qi4`9>ao,N[reGEb17o7#>xJ8v E.Q;4D;bw옭aЍE>kZ B4peaZgE/>~c^Loн})lâIoi5D%hGhسfi 4xol2!(5=R+?#O98175$_&( ;T&f%NlhQ/3$5=h˰Ǭ" *x340031QHI,IKI,.N-f~_uQ-UGuy]h.3/-Ŀ8XW-"Zxk:co<4ٺ 끸f@~T3;F3Ћ(jd ܉EX#g#q5𵦃Iu^/UTiH{"c6I6]g~"*Wzgϗ}м do-:nBw_FTpn/[~ x\ `U>g~5M[hK(}<>)B4v)$YM7@((b* ޫ뫊bU+_{UhQΙ9;3;Iz4JaLۂ[ !ޠBW4 k Sj8bh $BHQT m^2(j*6 Θy !-0S PU[h{4I u}  |&9_-bd4@ 4|D!EQEP 10%,ڢ'>,Fv/_'> *o/VӞfN\!Q^I0ۚM5BCۢ6klIx)V%QM*E 24CBߒL9(.j8נH` >)h%E@SK'h6)8]f$]*'ˈX"`R1q17Rh:bnPkfSlW4nFlΌR_ټ4ᘸR-%r% %gH%g(hO4ZHttL0xjibV4kU+%2z,b5@Q (P:FL֮Y3Y%2@VâG@$mUh>Dd  erJl]FMA.!ZEYtu~ԞG&)S\=^=HzRao8žWJajA4J3ټfGFI{M~gy׉ lQg`HKo}AKL f&KÑ:ԳPCؤz|QllMװǙa6u5i9*;6\T Z2Х#i*3?-CP|=oU9"Ν 8os.+vSQCKR\F1PT٠QT!/:악K|{x`XhFLEqZu{#iUbnÖ+F̦&hټvhvWB7'#zrmt ,%j>;/?IE$94<FLtS+{jp^ՓL #PM04Bz9Ϣ]όo+ gp:Ov]xTǴG#nCznG?n3K;3*JIOՀ*PK+aBvȝI6>H[д[Lq}X== u%be*NjQ57Z*kY Fa("MjˉZc~Sd Ukuf'I6[֐<)`.sԾcF4%orjjPi܀qQL`yOxZֺ i{LrLA[ܑtC70U$B)׶܈xOO '.Dm(TQG@:c|'ĨI}wHMw۶\Ӓ|0,xv]/qO]ekb l6WHjrUY{IlMcдj&kGoʒJCeɋmC?rq7y=0@캃M"wXH;rWK #~eeV)j?A%M0b1Sf~w 4.+ԕ{>@srޝrxc7OLN鋀ӗNe2=ǍhwT/M+dqGa$V/EI|e>_Y2|b͙Q1t9i= FѐY@?_dL>v^2ynŸnQ9~k} ߰΁ߴŨV!?`'Ň7KX=[G%(YUBty -r]̈́ ܟi -^h}Xór tk>oeftu6s9o2{f./kxq+Y19j#{X'qn|vz0ҍ }s;=ta\z}}޿pr4OX]Dn81 /q/h1`^ /hN1Xq}ܧ O4COi|qLyLuWM.P k#EaW}OZפS\ 5L@9<*PG@51xfqxCI޸BzT+̤YN '5Eż:j t\.2Iʹx$q@u P#@] ogkfsEHsDtVwH|!₆/3:_1"Ym_ŧ6S"zL 0wdBǑAW@8Uѵ@6.Ub3r-&cqW,4jux%plc49`ȿG!Ix~&}ȭx.F8$Gޑt ޽!79JF`;ƻvn6o0{]@¨?d Dk8QgA Ohx;rA% '͹4 gبUA Rb rrWW%.nb˜yoq WoC=w$0[:`lۭ.-~"z{Ynpw?l NXX_p|[ 'Oї_S@gCpSNp.^O~^G*r>AOGn U1:o ߥu?P'0c@~ZF#@ԃ.> z5VR1h=@㌡>#s2PH/ -ĥx340031QHI,IKI,.N-f1)+ka󥊧zW5 e3g+_wX򗘇.*OJM.)K/eKг5vGy:6W.$xkb87$1)'5,3<8*ub!gyfJI[~Q 1xʸqBs~NinĐD2 xWknF^dN7MvVT}X )`O X E9e :A "=B]r-˪\"fwgpYL\*ۏJ%"UAc~u|rLB%yзo)Y5h@A-}rnolm7 KqMutn M(9\{sm|劜JC%=am#vRao(TMՎkFIaDpIH:r$п@X"FQhT-H<WЯ{\_ %jZQ ͮl m>Ob DSߟ\f0[d(44߈$ES{"46AŹsliZ|&xl_6I Cc3q\f0ۨ@R\cS$'ͬM3~[f3(A`B`OK\l60Tg 2E 1 @-Q[ N?A'30%MqxxRt2f5's֍xoJ*¶X[HYkjJը)Y -bbclg X]$>'zIŪ.oCHzJŸ+~椌y%c^ZVǝ6V}i}MlbQ/9w"Ke9=&Ky Γ,Y|Wao`%(2trVu5 7[o)" UF޾Ty_R Rr "u{DNWSAa ˹Oϖ+5>T o+kHGEb9출^ʞ^Ý~1 gihQտb:ǗTл(en܍z1Y|xޓ*ܓ+jeNiug鴱v@{Y[*h*"4ݴ(ݵ s5%(jS͑Ձ~mdz,焾$t5\MPlI40VQJ[j#XP[^,)ހsH";KL@E.'r[*çôyhˏ!Gބ+2xП!\ 3$*2+t}􇤮/IO}3=i"?Y)%QT[32M j(zqX5MuCx/g+ Qcb̊ưwЋk^j^J8пäww$񙁉x!LtMUkUMaՏN/e}ԍaYbU\)Hk!f %3!ө΋=şJ!LYb_L8i])Ⴆ"΃dczjonꚚokݍVD]im=Vvڛ[&) &E%03T|ղ:XK=b=B6ŜaF-NRp.PfކkF"2#sEN! ,O/R',Q3Djz²1f_F̻xſo=(y)\\@23 t_&x[÷W_K=(/8$1)g",D 1ZFe&eihCEZH L-WR9<J$Sx[w cAwffMLBqRxTMOG F(iBi&Cmu*-6!Rd,BO̐Y^rm2U/iHcKN!eq$U|>3</ p񝖻mO&R'7Q{,R]bA0\lRyq#"¼lww⛤:BDC$H={=%EʋzEFb]f%pyH-׺^ؤ  QB^+&Es*;0s /=2q2 dC֥@"_5LP.庂+vVAy9s֜/ѾS Hhg"Opl>- ~ 𮰨SuʛD:+x ǎE8V_ke]g$q|L{8+O2滞\cBE),^x̌-}j PlL0n{v:.誘ܲ}`qُ:|pk8 >C["z`n\Yf3 *z"{90AWʿ.UJƑ/,`uf1R>1^m-B!35hx\f?z18utjXk:-6KHu e`򆨖ڰ Xo{*D1VWSGt2MRTeS}>lTP̆3sجk+3G\ΥnC&t1iaˉ;a/o8_+$&F |dWpό;rrRIWX*YXor^ 2|)}6BY\="NkG}7WkHSMva_s9 d=E>5 x;]sBqjBbrIibBYbNijf~QFf9) ħ庤椦'Zu&+*XsMͫ5(dtZbv*xwM'=Y_q*NɞΓ&3 no8YP/ɭ(?/3,o/"?ٖkDfVԼ.=Axۮ^cC#jF[fN`ϼԢɻY"xYQ$u&ekDd79d́ikNx{Lc\fMҼĒ< ;.̼ҔTǂ}YV8$(-19թ43'%$?svC&x340031QHI,IKI,.N-fheݼLQ7: 4"Kg(/:V{ /1]U\R_7cbY/| .tx+-(btDc W} kUx|y:xX \T`kQ!,(x j#..k06)4iRslGDx$1&1R 4i}^ifޱ,?|{ߍnjJٖbn_\ ;ccSH%+?I"E@򉘑]mR9Wj#bfl-nS5bzn0 Rڰu kKVn|H3޵E8!04*j<%mt\̘껼N}IIBDK: pԤ35F1]wޝ.saw\NȖU=qMNRmE%$>/. #.6Y% &t9g}뮨0+j-AȐ8Sdwevɿ%LM%"FqSTrhтbQYӲJ9JB.<7~w59WZ"), )uի:.6$ՆW7W@uj9@H#$ťV1y E'SSɩy93(;j}j?_ѸbC]1lJ6MFO'=g'2>4te0!Od :zn=A;<~ng_Ϭ6OK,~rpFB'Qt;<:!1%Hqv,Y=5+Yl~nUY96G]Br^v~L!(G{lɉ\iT:p 7ЪA2N9` MMT s<9jfK1t/}4ʅd$a=iL${S56A;C.͋.eq/y"!tSK;5|O_G.$)39`ٮg ;d#\(=Bٯ0N`nɵB W4ۼ\~'1w9,cER ..SypGa.CN߮|wW`FP雡V.&Ė#@NWY :zT65_mU-1+ u(P !Vo.~NA\5}<.C. ͰbcRre.Y2l|~m=ξnwK-)o+"] 9.G6z+K.nd" D}$[ t9ڝkr;~몾ᬸgy`a{5I%#.sןM\adw}'uY6FGF#c$A^ PH.u JshkӢ^K=cFٕAa`-)O]. dOح3Ku4yȯx? 4/VI)h,> O$XVjRWh >*|XDGfz(R|4)%*O3R'~%C~)] -_DȽ,q%a !|мE6z]MǧrC ևf!W9KV8C.ek>; ڎ_^h!~uc6z+~ - k9vGsO\eUGR:f"VI7&N ['Ȃk~gЛR,{m!n9~6C̣{,6ڃ'gWNxEƿPJj{ e --Fw_g듞>K)d4d&i|,iHlz>x_8Ga7a~ (}ڇM6{9NsQ}hpz?r#OLMt4qaПQB\ĕwOfWJ5d k0K1A?ڧ8Fp?H13 ُ:oX8=0D%F'9oGo8SX0[3jπ/A? :1q;B(#QNjrtxvF٪V =᳣#E(W[;B#v%B"($q\bҎ(&]$*,Cămvd#tb%Q"I'q.Y$M(َLepaRqٞ놷bNѴ(cLU_^AXQب/6WKMu6l,@ ‚l9v xLsy '<ˎQsaxEyvt3,c8^=q#tbtp>B# =Hɦ8R|*N*tЋE2e -B\p _Q`b|j|{U*;30}%}(%^h)82}PY@ޠ5zj=h1@Mp98Z5VzUj@'Àzt4gG-[Z9bLix=]lU>6:F767ޭ̏)+BI͒aT7 ML`23ySA(K{[Q)LB9#i~<眶 le JD+i*,녨]6kkIL\;_sֶ]~%މqU5UhXG| #R p)=2O B B֋#c;Gݬv]fYJ\PvwEf%JW֊\;E2_W1#~3⪺`G4zSb<눿Oo۬ĵU-ڹyё緈x^/壎YTUk$L$RoX3\T.5 z:VعU|đ2FUPɨڔ*J ݁I5jkM&$ݬ E]N}o#fQ[ /î.65pɣI! nFBLÜզx[`IIj7bIan<gN'3ԊGJj 7b%GG1MRyôLDLs֣Ips]pwI.wyN h|\bnx P*VvspZMq }qCqI6mmԧ&1}ScGG}0|bx3ZugFC'>O9 =h=tACr> 0xcGiǠ؃>2 ,g'xWF]U%fU| "WxeN0E,#1xigT*)]E8U|C``R2y9:sp]j!+:yxh#:'v>LR¦A+49H.iP29 [%ijظs-{o%$i`}ޕW5ZbJXf-QmK'%a@{s.'Ev=@~ R eH 0|i<>z[wO5F-)1_HQfO_h['{AӅ:<ԻcޅCw_q=6X7=n: ]Q<=stgm&?z"ʒ5)K 0b07K)UUbWGM1AMTP҆?]Z^R89/Sc-) >=5,uK5xha._RcA}u*Ɓ9Gzn%L$uG3h|\p?4;_ t\eDcev/A1;/y'|qQ[1O=( 츍2|l}4gZ>&y#KA V]tw?t?:=ظr UNFgP^ Kẁ@h{6+,Qw e& |:ٓ$L-ۀM6RǠ^0Gk9Nkif<&`ϙVbN !q^ϊT!hN 5BH2G- WpQ+ķxV bB-rM(6, ~BBH-PQᲡT Fg_k)u60 8?u.#[GuAx1%U;0X(?]6P?ЛTa:0 9烉J B "SiDie-rH1y-ߣO=,n)cu?&%s~a * yY)p>"8dJ[˒DB8DDuBߜD扵?/{G'4I[8CS\t<{fSNjwq7A_7F͔KJ& xsedn*8 =񹸹?5{#k!r7B)sO lкa&z_@tICaV8UCfmL3>G$8_k"qZ>%[v6$ ikWlLnK[$؝c@Izu'MMή,l=dKf HOxk7ZmEK93/94%U-4/%$3?O\*XPY2">l=ox;ƹ 3s~Qds>4xWmoG)Q#"vꪭj p,B.]ޙ{5؉ڞlq23{G^8~ÄUpZm/,4.B8~40R}4+,B&t0kB@p 70H$ H'qi$[%c.#Ojt bRލ|uXٴj% I!`0$h΄ZLY$;RxKzpp vr4t Dx%Q433!£i,8Cϙ\ຆ p*lҤYBAH.D[H@ tjI>`amxN7mw3vna7kft% rԌt$Oiw;dWq3Umu{?8MhG-ƍəߡk K, Gϸ fw)%'n.,T Z`XXMSd 7΋h9ՂSMQrE{(9\+)E5.OWK+c!9|-p~4O ʗ\ZG  7F`r~wg^$H-yz]lV-g;:j p_ 4$z9QAK.4SkIK"fkCF{cxEx+p{s>y69%t\fm\/σ Ʒ!=H0HG]f bZm?S.4&&h$al3v3g?7 #o!,avz$bGqq*|zy`tIaznz/GCh7nddL8OR&z@>`.B ?o x!A~L'e&d+I-JKLNu*II-Y9(u,mn1x340031QHI,IKI,.N-fx,Ee|+Rߪa.3/-!99Uw̓_zSp*OJM.)K/ex||+k歹nػ[Y@+/:xU @ Eםu>P jG@wG[Ir) V:jS@-P]9#<Ԥp +4hIc{ Ndy$7XuQ)id"e")+|~F&]Q/ թ[H]0dţ,Q=cӠQMpJ6[| F}eԽ[0xWkT-oI@H< F``}la[8ƭIj *B%@TNڦI!`'ᾼJڴMiڴiHqIgZBtwgwwܙxEK޺_p"l! ԟ_Ovzr&υ<(I4B"vn/IkQaxWl7W W)ZH *0sпJ52_+H3[*ɂ?=p?ІgrRa5(ӹJ-8g(V#?!Q47r u; ࠕd'm`VL\ YE jjӿۜB$]'Jڸ' p'PR*9?4T$ bjJZ`\S#q*7Svփv11{ [Ha.Y[7W `K.pXPރ |#ߖ ?㸉荖<[S&NhF#U MB)(:rm] |M`QXPm wd;Ű/fΩ1Aq1L|n~M%?kwp^# 7Vux7j=דּ K[SMJ,J[x08$g=!MŊh׫󨣭[;MCO\/i% .^14g &&cl$+1}/EzWJ@ee7Ɋb%mqކqˈه@'=ZgPٺ({ɒ{}B?Jgd,J_/>TF2 ]qF\R8yld")p`\ |)W;ig#皭4Šv݀萱1*Z-W]^#,#Z-(x9L *?"ܷ`QV}ԧʬvWN!/[NKw԰z`2kڰy,#\`NFd&nd;҆h[0qlwsbL7m3=i~8<|4ǐ)t& :RbŸ ӟ[ C>>2Z!E>_SQӆh?x&~@BMl 0]{uBe8\@xݻ9b+h +}'N:ov $eM?? C CN0m g1“W0`o%{[?&JGͼߖPr {5fz7Odx3S8Dd]r i$BN~ßJ TA"z*yݏM՞X:31Icb ndN̗L6g2BBd#곴șMcޤh~S`v18a9{ZL6ALO sYѿԍɜ EL9S+9O<"ʌg(2U&45fUv{Wj#rx>\M?qFJ;@# *5,Ps=/MTq 8c[԰r{-b x)\rLz9Ҁ: ٽx20]TvjVhӃt`lS ]nn} b/RG~ BTRcөIMFejoI> n2)OJznVGz?\/Mez꤯ض?'tyy):4>F""3eXøx6}/|((75}nU% #ZL ٻK_N6 _Y8FaNW"|MXR_EgYl5䱊%K(_F@nx:^JK=Tb*p`hI\5?n\jjëH#4~q8?%4ͭ諹p[\hmby~Or˸A~:ϟh XMXo8Oo̟~{ CoQ^B;NZ3>,1xPI?oα@H? CX/!{'Y)KxZS;C ~c -d<,m5WZC6]^ -3 zk9u裌w4}QO8HQq{jfEoONN*9Sn,J#Uhym[;%] _nƿѺ-~u,"E]a> ͓_'odP/\%:3ׂx~\껉 Ixg6Bʶ'e)z/|։KB7IhF>i [-3w އ& t{!'ZsV ~Z>jK;U]"wfe~ Fz+(VFWVŃW %2IP.gdg1j~ `m M{KiZ?'=Z-(Ua!jߡ3A2I>":p GevCZΛg}H.˪z9VwCm|xl"bcOhu!QDcB#knMdLkb) .T[̅@s`싣 =,I  >aQs2hhvÁ=p,4iKD*Ppx/ 6`l ARɆqV[ءsՄ$0!"@D}c.8v81LqY)"¼;厹N+su&‡ɤk R~&<BEBwӡϗf֓~jfFϣׂ ǯ*U*kϊ,Zb>[bgQu#*c11A'" Au:8.'ikP)ZµLLòKLYZ9)e 4eZLʧP+Ζgpo)P4ts;-?_:/t3w 9ƒK-&AX]xIfQCkjhD S1:D}w4q u{y}s.̮U*<"LΝ;0R$R=4M^Bq ⎛Ί6;U'?ql:H;_tf:H8XF+,` ؔO5~Q7%@V`S\VwIR ع&Uk7SI= ﯯ;kv ժLăF8W=l4s҃tR'FX@-` q4e)Wӱuռ&J ,i!Ơ&ub 8ȣnpJ&jSK((/ Mqc^0Ṱv;f3KȤ3k d{'6JЙ; ?_.}ث\k7h`nّ!C6KRI6;"ylfɦ4¶C-kޏ1Y-ٸrnԧjuG" n05|9ߓQ-˩G3de];da]U%H}>Qd6)BY)ώ'5 -|t-L0׮ᬬH lL9[Ǣ1n? ߪn^"GF>F'owqZ3h]@WM:ы둦}8`=ͧl ?,g3x{{O!ǂ}a5YU9(șp [/XxuRO@gы<(tU<46K-jP4y1&3afb ^AzyWl{~3tau !# [Ichv,?_+-^%p>: Sk*dĭP&d2uTDi##Fʓ<@pgnlPOEjS;d9JIn4`q6+1!{yu5touϹ2}k@{dt:ĜjH-esi$Sn RF钯 Ay5jA$$2%9۪S(9OS%彸:<֕h#ba?MLN P͓{CZ1q\4BzcJ̃qas`}yTCJOBAeB75DIV ?* ElKZlwjS͏2;"+b@qxmť_ꜟSYW\\_R_PYQᬩ`d``8(1%1W-5%H& D9ہ ҢԼҜĢCTD7?/'3/%$J4l?S<}B]\]\ .4i5L>5YUIpOyfJIP5W-Cj^ (4}-tB3x{,@DR_KAA=(7$1)'9?47/8*u*DЉM62:33q)LbGS6dVz^rJjZf^o(tqP0 ;@ #2s rRsSJK23 5d!" YauͬOQ(N- L)ɰBtt9G!95'DZ$( ` brKsJSccd.>C!q&VZ@f. ɗG:<$QnpZ)pqѹz٨Qp +$+t44!fOV7eHUH>yYWx{ r_dC)[~i^JbIf~>aǥS`XPYRX6˳nb1U(LTH+) I(qLqKqM,KR /LLaPXPY@2Y9RLl"bZNx;lvl-)CMԊ׼ה̼̒t+ `̴ĒlҶٹ #xɣ_:Gب Y ʺ쨓X\   L-r+I-JKLNE6YEKW]V B_-Cj^ 2L/oxɹ3s~Qd!N2ixko+\ gKχȶȆ$_BA+ ȕ|j.3.)Jrz~ݙkyzoe6%O(V2;K_aP'M8?p),^W:rL\QbC/ -\gf2k7beǕa8IH8/LO&Ov(n1fqE)xۿϕX6-29͂9! r aB&8G )xQfT%Ш"32Z#}wpA:#r׽Q;:pz7n !!c6MrBQ9D0 VUxW! NO\H RS(X1oACg YMzß~ 1ql)Nd 8899?wJh}huJ-;]ʥLQY4ZMÛ-kgfK6sOt!*q.SNC-#- }~C$]0IB!v"<7K8,@.u?&rL ᒐ1 xYE9N jÃ'GxbP,Eh 2bC\VH541E$}z.@á}%H&q0Mp(5k6 Nx^̝_B SW"NfFT B:BWWi'mMʮqs#ɚoG- 9?wN[^!\:wԶ'I0u@?)\iFvߐAq:TXs2UhЕ iO$*֓ df+X%؊r:b;.2SG+kE0/Y8[pS S*Db.73K_1DbD>Y!YNj}DF6:#l`h9f G c)YLB`dafZ(^d`9Ʃ^y q:/F(yMG2Rౖ&VrX U<56ց#r" :"_&*ƨowBt , 2ð R; F(q-sL%կD.U("0-t\8~ J)ϵuD{HGtĆZ";?k}\V)6lG'5G ݺ q8ٲ+EB5E)l_XK.^a ܇xmLkJ'P8uZx#o*k35C 5&|UvG$EGgIkzoKGa^c| ?1} Fl@seoHk.Z O%J$ϯ*>=VMG} -^UzFxh*v҆)2Vk[ֵRJ+<snJ-]QFqitt!qʽ [:ʦ%LHQ/044gazoHEZ_A7)b[~Q|1ҪJu,g)*\fxhܡ!8Eqs#DG9={fi{6-B=YJU }f*Yoa`Ƨ,Gb!szt-S[f4mSVB][9 QLt.-Sڶl͕ͤ* \?ιpF%EXs#sT"KO[Ҝ/d#M|=tËƃg=m(uA&Zɍw's5>iJ{} B4v qy\krlc%V@E$29I/& (3/سw1J~#UO Tw$8cET:UFۯqC,#Z"f$vFe^79&ZC*Z".+Q=.H2a|E(%2]DJ [A`#(0]+3rt.LsgnW7p'I~t5wQζ9?QtOfib6_jb6VA֗!8^/ݧ.ENoFyFC|j ߙ׊]74xev~1X`00{inl]h >XE: ߤǥ\9rGl 4@^|[mgR)Pz-[>U;,fg^G~ Kv.VT.UߤGHv Az>R~8iyޞ\g2`(ht) K/jkqcxe҉ RlݨaV; Ǹ;1I5,6- 2yF|ax ru&C8TLƵW4®:NݛԨC}5zԪs}:}*-{EB7Zpkjv">}N$r lr}cWJ}1ӭoR)2m9\5^8Do^2 -Y\HΗgPuղ;i4S3+8j-2.f=Zn#Mu<|Ĩ鹱y%yb8&~`6^5YwFk>ٳ xVoEW%Ѻү@Iv8!N1BT2a;C3ٵӴ!H%r8 '^y3;M$%{o{1=~e d{6eP!u;^AQ6}@ůY z\hS5S+uߢVRJhnf`Fa%.'p{p]lJn!_GBvDFJCk c2e .0 f1UHBlyS@ٕ ȑ<>xsK ;OǞ ]W~Y6H _x{c- ۤpa _vsUpor,U‘qv;- Ùn"1H.ҷ\%ʽզN[Lx(g@3x֬vCBk-gv*fhw G1MtLaQ`Ai,70h,p;NM*ͺ^=,]"kT )g~z5?qf}PyrzR/?Wߜܑ-JQo7KZ"4Ekm2`>V90`t9ɡtIP'lImՄ33ӃEΒ>eu0 8† 5ڈ]` 4]Rk8>eb &qJ5[7=x.p:p*M=Bw=Lf W6f躶ԅL,1sms~tgm(۪gʡy#-"qSR.7c}hn!V916D}e.HooZ:ߒrˑzMaAҩdz6d%z@R¶P!ȨlC@0ꮜW`] |b5 /g8O@ \7O"M8rӍI^,ޖ(iRBsTmSit?=5ߠl/0{e23"T0~؂8mq!pS4YiyS*akr 0AӞHM7M|$^WOZ} 8zWrN%pySTI6ՊYK;kŐØrxu>4:کې섿:?ݑ,~ο eOY|(X~(5 3&RX,D8+wt.0qUՑs?/\]<`c,DsQlVޤY&ΏC#P):x[|2qLFFͳ0onfK +IMO-Zu> _KQbAjQbIf~IZbj`wXLx;x,qaɇ-'[q8eqMl9T 6xeOJ@ sÂ_ aYF","xQäl~xS,UUqc 'vЅbCkfĐ*XNHhV ;.sٝ]R6;|AsT!u[-kU4P9MAMW.7|sagԽ;8%O522n,v'ίimowa|0+հwm z980"OK?H?h$/`\3k$]/>Q8';O!]}`iyHot 8a\SDQ Qw]x~txxAc"{?iL.Ӄ`LvEՌ8IXl?텨MSe+?@?g xר3$$? xF_Sd4ҞX 除nۍH %b9hQNCv ȟ=6E;ë&.jAO߃O8&(h.۴ED=Ov@A6tK?fr/d|z 9{|; NѪ6D%YCqU$Z۝ƷFㄅ~ 9);툡ԙ],Dž {cƽ\Gׂg,HK.h!6݆&>rBɴVD!1H8d_Ww6wk#'QO}Wi9gQ‚)D_#D8ș@*v") BS9cy-!' pzy34}@mF G^E7mx$_cjX[YߟFY̘qfHM40FR:5@ <T{gMlr AeݐCO?1`ܔpF}?C$<Ҡr[0lpYmn7wz7|T 8ɝ`R OI ֯e'h3TTvg Ϋ;3*nQ'/};id/n4μ,?SEGjqAYquJ 0T2O(z2hQX,Ata@KU65Ox` 0C XSG$Lv|qgB(1 =B+ˑ'nRbcv?I7`ՄrJ? l%bʔk-"s i'b1)%? 1sIy|l@L"GBV_2x}$% dI sqENJ56t$a,G6Y;"OFg3Kr?  24+ʢѝ2^R~f 8܂M ".y =EwL/QIOaԴ#VV+*ZC.v.]k^b:UKJˈT# P-00oXއ~1ܽ*?fWJ7I|(9))iA%Hչdf> ?xGa]3)3%d8mgJІUؗR? USc*^D*_'+^ysۍrYҋm!+*KL(Z5hs>v?q.hm^x7w<+#6cu/z"w;^jmTt0fjVe:ٖIGCk EtF)ppB.|a XҴ!p<1Naj:y?O p#PmҔw]Dhf%IgpMCtB@cc @*R+i)#<OT]HMt!-v+,$duU MEзi'm0oJftnSr>H餩wb"Ukmw"aK<,-EI j~@ :{7 ]YJCihقr%4d)}tK.fU$w*]W8HhWXôj1aM_ JF&:c}d JE7ZY%6Ν4ꏑeuJOLacl=A3Won^s[Rh5|%_QG6C_N %ZLwC4RROǼڪd$zZx5rERV HucR5TחO} c_l>ݽ}/@w#6[G#+K/P$X"KS psx7k݁8&>$Lt k 㦚0 7NQ55eN7QB0<҄WqNq0ct'L&TRrusd\8ݬIj'zجǓ(F{f7eG8 ['e7>AFONVQoDƃ͵~]NebD]Cq]XK!m]$Ϩx+C ahnCc*DmJsKc}lʰ0ʫPsꮡ7.1ۃK֝ajaJ ?j/r,mP~ 2=4տ(M< :JQIٔNV2kэQ60m[}al1_e" u0*رɌ=ǎ9Zi6RO&+z& ٞFYtIKv>ӌdljWѵ>\GPVPG\ͩI:b RAM=W:}h\ixqt]S?`Q.o >f*vnױ=I"O'Yjy"̋C&ÿfe4N}K]=6_/߱^YCKzLbfYhCkvcoͪ/I5eybH&)Uϗ^Z4{^d!bcUo"D㍸J 6ٜ9OۑXo}GX2.sX 'R]g~wsZ܇x?[{UK"I+ Oo xGnT\aJփϜn&Zp/ &Gqq [7i'm[:C3^ʟ5nf-gX=!;]X̕Â'>}sdʯج1Gx?sdĝv7,@[1́-ewR-Jj ͽ,QF#Y4eWhk͗R5U56j7w"qD`L!gM,>?%0 eY90";CV Pvj C[CinCdF&nOYw/ Bٮmlbbm)+kꓕإ8jRRYYM'S*(>y4TƅTl6WeEpC>~4x5f+;=Yy&+yO?]wPpfUg^qAjrI~5W-l6UF۹xu 0w7K-(O=AArAM2Kn)Mw2|C*G(z(ƆR)smDXEEBC ۆ+kP3Md䢺7fs`} j-[b-~pT9Yx340031QK.+L/Je\ctM|U=KS!DKbIb@bNjII^.K 6W`EaIfZûKΟL^+ޅ暇P~٩i9 WxddǦqz`*+(JMM2oâlFݛ.r,))L*-I-+.HM./`(Yl^S,e"ń\#r;|'biǿ&IdgnbzjXfj9vo)H 㥭@lW='Vw.CG3>%/ ͹ FO|wtPͬ=+}Y˘gShvMɄ|1!cN߷7Զ];!uin g?*,^#ZYʡ|mA,3Rq}qo__jy28=BE:g|{ L[&H)Mm};56A/%+p)ӯԩf+s4BS7X}a@n2d>Op!.8ixKD%$1 1'$U/b|5r>t???Tg{Ȫoo{'1jJ]Wʊ;b N6}qa嘌Nd`y5IH_7gb |6(-roIԴO-2L&0ŋD ^}eEJ~o|)IySg]y# +'[292+ǭovʵ?5ET]8Ws= Jr1h8冤Vede0)(&I[`trƯrOV w s뼻ߝdk\d!V `؄ f9r:8}0NdYGl 7ZcO]f|2;xK 8uwl]e2?::痹}8Pk:C̮ |9pKߐn\ |(xʤԆZӘ l?@8>NfVhaEhƊ#ERǗqtyS YwZ͞]6cEÅke fDb3L @e # X" G*Al P5R`M@B$dj  ^ sS4yPzxU!kZSl"xtVi%x;Ԯ}r] ye6W^a} %xkWAeD,X1ovg\)_nFWm~77+ui\SA=ho6uNLh/n>lRpy?} R9c1\;]5/C]T *aYjHfa'WX΀ ;xwC?pkBz~QU̞ 8x;zuCKbIL8"8xmMK@A[#9 bk襕TAoi3 d'XP e^ ;Q"4S;3<3 NI"WsAxԯwLnN|U=WQӧSD#x{N~?BX>HYNEsz!H\RYS^󽤇V \@ckHP Q.1"Q1ɖ퀣Ŀ%5DڡNǦZpb }<\ֲR=+\8F;Pd eQ.le] D=bfJs%. &MmM[|Jfx{#ť_뙛Z>Q$nl f&3)g奤)x9ģ(|Elvq\y%EiɩVMaըI(qLIQL3 M,)ʬPJ/JI-Pes2rSJI'ґJKJRS2KrR3'2NV`Dv(>hbHxmJ@Qe<o^T^Z "2N$7JIG7b|0ok{$&ǰNnQ+Ne  Rd!T+7ۅZz=.mGwvRn 4y<Égуw3Wy 5aȓo8|6ևi8&g1Yi3KZd.:MU IW0濱rX)* (ȷHPAnq!^-,`,,&;g*"Ш W&Y0ǜyd1ċP$ض\ TIx;}k, KbIXN,0NP$ʿ<3>_ , Nr< /^y98r߱ùL$2hA?pۊsv.X"/w͞ | goży( Wp"FBJx=WxR]x^үWa< \% cS0bl&-C9 قM1@V2rODq(&Ib`6]HOLWߡxCEDxCU2 Aā&s&Q9 \ny3k-!1i$A.FqWࣹ2Zjz@\.Q9D%ÄCiⷈN/˛!_K7~dt-~\/3* ^G$__Q 8gЃrsѻK p 6*7=3G_ѵ{0g]rq1p11w1a fJOd.1OKk+A'\L/e؂2i8<88׶v-~qxfosSzo"Чܷ2\ip["uag<@S3iH__^h?)z#~ŊB6h YLxx#cpbQaY9 DT:1GW#A!pIE./"ggxD"ƒo87.4oMdcwmh0DXF:E]:QmY{jEa[kDs%Kz7@6!J9 fkʚ6r %O*%\ SSu 0Vc[?&R:u C'σ2H!Dils;lqw;ZY4%YѰ$ܻwcpuQyO.S?eԛ^u;jfĎWRe j6لgYhEny  `=rF[(prُ)*D#X|KyCSeWy.P順q\km ]kh=RUfqNsb>Mw_lIlӤ RCyPOYʉ*zH6#}YOJl> Eh!z¿KI]c4UJͥqhPSY˙`} ¢$ÐGKxO1X)\U\:fUEZz)~}%Z~_`p9-@ƪ\FꃕRאwƹ[l뚶c ST\>BH*_=&VH9ey(gWL۟mÝO,ELW3D$,LP2&MaZ 4pl]s'bw^ ♘frd6Hػr :COa I)Q|*TPpE;#O'xٰLa1tF @u!b(V(Cl :Zf`TR:bكyp.×#7Y0_xȕ0AС(ö{|[Xy IUI)$ -'ͥK6iRmݥnŶ`<ȥb;g8Tl5b3 ' Zr +f`ՒFAOȶ `q{G?1(z{&6ہʖGcKuG^UGEA.[Lij"ޫzPfyT=hWAΎYh^^hrZ VW¡1FҨr9A]BnCD2:Rś+ʹ?+@Tٍ \RuT+֍mII.\O(d➐0S[N`fكBzs\Z{pgGwX%-1rrT_Ъ"ȨcFI 8ZB6a(Q+b1:.2g$Jы又O9 <>&; dLy=ɣ1]`rJǵkѬĶA`<#26.YfP}*uKуUwXY= 6FFu/=4=?fZS Z7bt,ţ-2F]hSw(zMTLÙ4IDx >[a*֛Rm}qݽѓNߚ^ }/]4x|iC s~Q,eE~\xTKOQP@6J{h6D"ҊHy*'c2tnL3s Dtxvp҅k^..,wf4Yw;|x3SbTM!fӐ(_ Oҳ&So!lfE,}S@ 3w͉\u30A4dTK K |^YWPUqٵh4O(2(*D [P1HD"!-!&PV(K<{({>(Mp^0#*;,nmi ˸ oa$h&s`Ra7ĢȆJ4,BveFRw΍L@;šDKGl'`5 /B x1F89Ш[OQ{G`rJ Ca]+C΅a:9N7ҏL*co uLR4U=6| 7X&oRے:$PuSiLx=#feZ3emۅjG/qzRFÿ_sLؙ1;"MԖh%Z*xgRCUHSR7Qfdž"!΢[$yڼ`xu(+ VJqYp( 9IIcHBw#Ό*9hĵԃWYOھŎ;9[[3O€IFaR(+.ZܯALEru"+Y=d'-˦ di㨤0OGۛ A;4`ȕc;:VVtkph엯U`)v[;lLYJF#jwb{R1T1=ȇ>ЇNs.OZI^6oVe}# x}J@AE*+ %(A6 %UK&SYde })x,^$"^73syaKc|…gux msw{{x-7*x9O?.U?;o7kR?P#!]֖5mJn d:IJIB&%>q`oWTrHAcF}| 3i-1֩o=k:47! jOp X猋MK5E}P= jRNT]&Vb-# GuG?̀GP0FH}p4+y t Ъ:i}nQGxW[s~~Edߪer)rxiXidrף8ʀf~u#O&&s[IfeڋӥZFSur~E';]&RR`f^$.M*P/:V? D2HBz󓳿w&*&d?m;OP)͔H,}_V.D1݌ M C;2MEL UZ8Mʒ#PdB5[']H2RHd,K6jJWj*Tj>I2ۂ!pНLR"Oב쐚Ql' c2f#'w7qfIܤ?t|zrrBׁ=#S4͊\˵)@EiE''h _ߋUʙ%xVl"$)ZW6+t\Br H{K%uEV{߈%(Y97Ɋ8gW2DZzS;GOX[;(.UGˣ/"=Be"mt;]{w&nXB;=FlN1:g6͖+>Ӈ+~)ssm쨹4@y$Ol-&sn )r ʄhGM`S26-ߏ5rW (BN"-2LYkUwR*#vwuQL%*#;8jǷƕ $&mn 9S~s/ME[Ũ9ByՕV~IRgeITT\]:&+;9ʹwJJ|;4m:fW(Ư1h`0~jtsP?Z԰Fpwnֶ2G&yNC4{ J>sY9U9`̝|ޓVQޠ2sW,|w'w(κI2ȟp_dK0Vo&B>V*Xoe䀼bKD2OU`6X m.133Lce #1y+R[KVԹE?8 x>Wkz%t56>ӝ'jT|e {ӆ<' 8:*@xB7%+h UUOQ-T[V(_?m* #+nMo[z֡D_VP 1PFwϷXd"d+Q J|p9yL1,(\JmO[d3M* xLíы5̶J)ƖR򐷖kpp.VVxc(A#㨬]X,nUDMY7F./ˬv`Ӽk~Eb M{Ld6DxQAkAfk=!hrѐ=$4VZG2oMM rman-^{+K(F(f}]t|2 c~ #]3/t_><ԳЇ*n(Ib$'@| >%T 2hU ^J ~)zdj2@qJ$qY̽1mǁIy5օ`}Gà'6LK @E-a=hzR$G3{Dٶ56tC'E8j•Ddn:ɷs~TA)tw4Vu.xHiB1tľh4NƝ.ͳYK]dmէlMꙆ{I ORݵ^P};H5x340031QHI,IKI,.N-fX[\ud湠 5b:[ e3g+_wX򗘇.*OJM.)K/eةtԽm%xwp,8#-x]An0E)i%n PEPv)j{"{ wM*ԒYl{.* !p!Vؒ8OHst,ŞZᰝ@.ʧ C-U4- 1`ٺc0oy^ѳN ³1.'lɛ~C(NAWnT2 EWt*ôۅlS}_yf2)[tpK zRtB'3dِL4~Z]u8U(/҂ixƼy‘4x340031QHI,IKI,.N-f{J56G l.3/-Ŀ8XW-"A[isiInMS |1ͽ" */*6͹nʞnmn=ܾs#7MEw||9+HL/Xm.Z%h:ym׏q׶-I\,ɩjRA)*^#mR~KkMt-:Եp4DMOE[хۙ|4$&rb{>W]ZL5|֎ `G$Ns]o@tX2ٳ=g dnnucfEaidW]S0E-D$z]jA2C&gFZ-pP[Si=e86n1)3s>ȧ.=!Tg$),bU9\YG,Z !ש(Z3[ YL' aCKlgDbĹ䊢ǘa[ ͺk6UB,9^O(ٚh!/5lQ6I%JjrhS+hydMh%j6I)@uQdV-m!>[g\G Z j &%PlAŚʹIb[bevF1[m,3m;vh9m& VΉ&1L5%]3I{㥉䢒sfնƁ-$\[/ uOKvN0qVZ%V .zyglYP$UfZhz^KGşNhU'Iχ R˙ю'㵵D)m$󲠛:w,᰻l+pVJRº>>c+Iz>F+=39&Mmӳ<" R]6i2Mz[7²s2v،lB,]4c.u !Ej 3 4O%}pPƦC[]u[v|7Ս;Ϡ\fNj˨S,8)y ~Ÿ'}eJ4(#m-;١:Hx~h{j!*І<" g6@oj~%m u vY'Sf>ME nR:7%-o ߢ3 M^&mI|N2;](^nN46zޒʰONZ^DGQCJymjf {Sf9g/V}>M"݃N ^>~7\n@6HQJe‰,Ø9wb8~f[VxR@WCy jii|7ӍGiTt-Út3n? ]W ^O 2md"u%L3)LLxW^ ΅ɚlsu-b> 8S~58C?D}0!x!8a'j8 ?X,[O ASYkw:›\k?iZŦur7 )|~)[!$ԫDu_rV55oҷ騇[On]'m.tc6Oҷ9z~Et? :Oj)?JZ+Ma迚7Irla~}s7c1: ?x1P-XD1 /Mͺ~S}2[E?,>Bj~n\#?H"}2e6b<#f/Ŭ1/Ѓ(C@ zy(>aQq BDrT =Q {hRECT("'QDq#?LbP\G q55݈h:.sx}V]PWI@h ؆*Lm#c2h\qchA͏6vMMN{Lg:Ӽkkw7יrex4h.uƦuƠ>pBp#頿},x%zHU"9+Y]c@T/z,xi _أUaTt-u#`b \\qYV6ׅl*Kɂ.m$-:3+0b98&~ 6 9/&zWkATJq$[i;/3Jvv=T' k̓1+ 2NlWsm8Bh^?]Ty!ȣu`h3YJv9F~nlkjAG*ta[o)T5\)'^s ^8bs]9S(g"\),AE F `ϊ>5*|HuhT7)o0X4'qAHL|ͱkl%:˱ 5Aʼr݉SϪ̑ H*̛T@=q J+j&l¢wF/x>oua&*-[֌ˢYH z ,AVj>'3 L嶍c: j{Cܬ72 tpd#E ^*H$eID"9X1>ۜ$lm(4"tjieort1T \cn[0X5!i]Kx[w<'8^6bB7WY|﯀^W퓝(zJ6^&mIcv]z=>Ǖ-}6W+[dpGwB^^3+!CMDf~Bf R`&e}[U ]svK{(uW}8б+ |7~S 1[&e#\k |ٰ݄:)Ҡ4c"khEq_ m}@K)RGZo6oa.z.F!vU Ea w9xFu@kս8m/NeJ* ޳P?4QU6_di  f S>01dSa;49~Q5ޅa|Y! lOT ңS8rdqQFLF4u)*lG_͛PwUPw=BկQu['7(duC-ha_x340031QHI,IKI,.N-fP4.o_~/z!̼|c_`@EPEIY%zE Op] {˧%w f1ؿxUM @ FםSv (]4һ;E0E VewƠ\7P-wA7prހd9v4 &~J#[ fOuJDR(&:ɵg$5v r̴vA!ErHe*l;/Sr60bQpxX xS&iG>OHK?- -w q⃶4@0Mj  9p[inn>6:搗TG‡smkb2O`6OG J޲yZNB5 @54s>6 dCTs'_E>4դ2G`nU7;\ȐrĐeX#ҟHK4& 1}HWBW)rˇtKwEz;笡OIoT r7ZYS{0`745xh'#}Y[g]Yh'"b1(S3_<6%L\"ȺR7Vv6Sy#Pv3C1i<&a$-JR(:E'JOBB1Qb2Y0 #4?ė[Ũ5S|js 6rd7lyd@nAAOBT-s2ʫUKv^ڜq[e̓3NWtP2uLٮçtXang(ֆƱ 5\mhBNAKA`x4M,QliuQjuռBr7imm͌Ӓh``nymae5~jjL Wפi#YΰpHkv\.eP0ܑ̲ߙ,R ijQkl4;4LUf}.zOqV8u cJ6mTO /f"/Ivrt6>G5_KbR ܔ$H3[(1YLVX;@ `x4nTjW*v&RA^]qoz*UU??^'Rl4 %oWmW',L)U(94iqx8?2\ttť0$^vxטiwr\W3b؛}9p5cybAVrfyp'mt$xjWOm_dLq'CFJ7.qH?k3B/!h6vt-p2n & ּ֯pj:5@UA^s E"(K8gn?ydWwh''VwP*aHLW}{ xvxD*HXՠZIժe9Hb^I-jh֣iEmi_-~4~b?F+aM[ gLL8z&XK~uz.Q_'ꋏsvq#]~.ir+ौAj|Az9%H| V 0HWACRa*{{!B lp5cp uUp\9ۥxRwN.70Ԯ)f=[y>fohBwYg?N(:sN{+{oٓ 5SE+FxET]1T---?Ct/^T] 8MM=l?9s4Gav>`qw|!=o]H\vӿ>>-=M_ORu-x8_[/l;Dx340031QHI,IKI,.N-fCPxMQ e3g+_wX򗘇.*OJM.)K/ey1KFͺ[&UM&2@x]Mj0)gBn`hZRIJ LI4#Zh+ǥc{tUPOZk-8.b9Ù=&9HXn0C'JBJGS5E *j;8?0y1%c0=jomG |'N 0n<5:.h$cYCnH s4osn^x340031QHI,IKI,.N-fxH1^cЦ7Jl!MC$uyi %Yzo<%桋RKr]Ɲ!_Fcw-7/ڿxej0 SA vlvвGMl+2-{% t>MA~b[va8og7&/"Տ` IxY`أzSq[*+UX Z6p͖-/v9v$C]u aCk$~.Y+{NtߑÈ6r&|hvF<118m~ÏtKpxWiT@b_*M6+f'1qjW^0ƊX clp^[7oiZ{붩tKϞ99=}o`Ypݹ֙A\Rb/Y.5 'Gt%:]59+5d%-Vk| !d42 ,.1ϼL.!Ha]ž?,yt+dj&PEz4Rԡ,@8HI-0?L3_3]4 5y1Xq,ce$ef, jQҫK>>gr=nDX/YJ8ʣ()MX̘0F(jVVDIIjqV$v_1ctu =N\uD^Ϭ"hmԢw#/uYpWfzHix-͐5cxglI]J!x7ܰa ewSj"-m󏫗!+M4<&z''[󃟴(;aſ<,-)rmG~3F#7:Z 3c+q0_-$)N `NDI`~4`L vZgȋjVlLV"X`Cp)x2 㰐^8B,s d .&;m- FXE\ڂS keVAJtO 3>`p@&6gó| e9 +%m,_;|ؑ'$;=>oR:.>BӒ\EG#97S(s2|LIҧ]s%M˒&ktM5exm.\FLWd ZϪI b_t#)9JO|AED2G_ts%<ߞѰ/M!Zqn =-W3"Y(iN./E޹&˵F2ۻs!׹q)'{6M> R5Dq,t y~wů+^dؿ볘xY ?@47ᇨG ]D6ɟr ,vێ_k}pCodaWfx  Ag7~- #Xĕߧ<7=G4]s2izA?!8O2 :/Û& F - Apex ,_'r7W6ÃW3]EM`|KMl֡P\ Y50?D.;9l5K&P{j}NG4]:Zrk2:S&z(b%ːslb mXJ7بl&2{{Tߟ/nM éX4 yP.nVCw!tz`eP倸D+(3 ݓ/byЈ-FT,LLu.vݯڼ\ݱ iϘ|DQDH1 uG7!WB,Ia2Sߢ9fcĄ,K}gi0ڊxऔ zS a@d=Gܧj* 9iт7L%O٢k"(+NĥVMd5b;.+$@P%Kp?z'c[pE5/$FMnm"&-.o7g['$p ^!ɜC `Yr|afuc9st+AS!pF0a╁k&x!Ex]N@ӂq!&(p)٨lLaL!T%ƥ@wqrᴥ|s2O1@dLlзdtlI KF B㩠A!% nTN32RbP ZMK}8P+Z >2ÜQcu~a-~ZkiӐ5X)Uoݘ׶A6QQ|M!k MFl7-.FWQ)7X璙 &p,=b" Êga313c!W#C-K2e71U?Pa QJ0ГQ2NAV)zFU°"uY<+px;kC<>!,Vϰ8N~  xWms8)tBHrL[]dr\veې4NDZG@(ic|bFVcm b|͕A}lX4Mx+2TW:U&: ^6]kĂ?R)3_ P^0ǻ0ԛ0{×l,##5]җ>۲P~;x@υfoI&4lMr18N!d uF,Rp:ӵD%\Xqnqt}+nq"kre90H,1d+ L#ƕJjm\[G{WfkN*T(ӈSW*"$SN5PH<)_ {m}p^FlhuĚ'/#}ᴯ6\xp ԩW7߮z 8#FcbA"jb5w-~ #B)ݷ۾k=qa>4܇AWQw &r J&'F`7mZNC$'goXyn0llpۅit T6xɓ1ek>?8dzᡏgs37.lR%!\1>øAv 0N"sb2ve_s`Q4ZX8($!ԅⵁFWaRCe8+2BD}ohUy&Ow|R-'w&FICOsv98|4y:_9WK=ڑ85 ?Fq_2q$ 8GoT8./8"n&jQ9p ZG%쫟%@[lcUJx0n>K|TrZR;O58:H~5-eRKpj uIQӋ|ybi9]uY)oE  cwi'~ݷ^F+?-#N+1|  xgۡƙW_69RbZtĭ*8 9kZS %Σ 1BJ(]$E 7lJ.*swϹa3 tyL߭fn7Ej$3~PVOU<4ԊJnx]D?@7灑݉TuYe-3\<+ 򬿢_6]#/[+eB+f?!ISflFU(nWȏjdt%Ҿ޵_sx,gm?~ޞաDrxD9_1> Etl6)~t4e" 85 {S$l5 M<[DYk p<hRl Id+^Kjdd=] @fl ɳ _egXgvzix[Uq/FFͿϳN䬝|]nɺ\%56r(3N9/إ(1ݿ ($3?or2W<|x xb1I,%8gb1 9G,L04$S!ǃej,Y=9PcHMňdHyL9Ձ[4h)M&#Fs`i 8k?ȐEƋ(3ywztߓwN}:ÔSd?>`b@?bx}|y @:/NN{둓K!˫ӣ7gKrwCH!Y Oc)Ds6L(>DB(p>dcFi\>hL' IyMt0Gt6}o;d`M٩5vk(Xx`˝OV|G[?G" ;ӭ̃>>|X*38?$: ? QĹ8Zr9"@<6EL.N?.ɏMEc !wZn@Cu@nIcc4Mv{w1X>i#F@Q4F/W;DeV#l8UF(Kdq6>51K!eh[B Abc:^ b¬k 7m:(  ~v9)Lbl'0`\Yخ(<@enRyG="MF͢%3ME t¯QHJF΄e{uPOE%ON`4_p!d8&chG/!h C oms,^f(GΥ\^hFկ:z_#1hN o+;32]-xe 7a:et"{bޡz#y;ZHTdЮ2FqIm:'9$,;K{b˦)KD[ T2)Z7k|m;.С񢐭VtebW@HrTKu "a[ G0wG*D "c͏㻕ض1K%:D=Mƹ _H@ i"oA@ͭBwEYȴnY5 b冣_`e,5L?}J,cU*\щAwF mE{p'> (_ ^`+T J| Tx`֠uY D*?ɞ\ƢʢoԲ,a7ϡٸ qn( ^赤hr.WܖzC1R"/U!`5㞪.yOeشƷoQ.BQ]S]ҟ%qp:a J2C4r>蔝 F1Xo'P_HFN6&=޵U+|eJ1сqmݛG>g;_"}~/ς 6GB3+VǀDypǩ!F4 h=lbRwh98|[CAw; `[h2zdh=z[Mٙգ|D**Fڥ1.x˽tG cHgU'k8wg20֪'82bt35F'Np$)`<@*Mq X򣍐FCFI@ !bvJ܂u[4IoDwQzT۸"2%tu:x _m RU%tB0hցȗ{P݊H ss# om%qCUJz#= KSW>d!tPC0F0q3zҩ4eO|ȟFCbOQ!H!EWpE1z-D ,~.>9eKy gLlU@xE8LZXk:J%tQUg6տ/x>2hlXhGDv4.B/-zb`hlBp1TA 0{10y3qkK|pA #{~1K~鸝[x z83a&q+nps}gÌu ׌;T YN}%ڣ~_Khl|y 0.1|Q`[iX-$Yʠږ Aiߐy1OQsڦ)Ҋ2c|)gKϩZ ]t ?: 6+#Z]'j9|JOP>qtWmcdx$+p [/AWSF{8BDW2 S(!"'z!ͪց滭1 r-vA@vd S:7VyH7˯EH7dݝxbia(I%'x}"⇰<ol aLk<6 5w+E+A5Hl3'5 Af/9얋]yy(& d|[NKteѱ@ŏةJnGξ(pg_KMcALw4Q|+ aS!+,BYX}~ hļEPO4!mLђe&wYq6Ǣw7Jx'oi]{tbWBEdex{|*kk5µ~1H~~y|vocB~ODZ5jjۺfnJn$&2hchzd9ߠx- />y#>dž}wۅ/BhtF _>wpDH%(WIcOy6ޒ)'| =wvsA{lF4ґjyP;r\Jfʘ4^[7`q~vyޞ/q_-SDi2ӫ(ǣ,BP$pi7p ypM^si ëX;EqZ+XbJ@)X1:['.>pZ$7w߻=/Q"kL<E=~_>Zl. \H]KE? #1\@pa1usL_0;.&b3V}H|}ԾP]\*έ*"^1x7ԉiqy$_!5}+~CFU"c0P˪[X1ZwYZtXҗP&VD xyl4MG4@N0Ƚ ˫b99[EO2ˌcag/bI)M(-"*OUzW:ڧww~X|U˾_o8\9g2qAYx=p7l`FcsSx椆GlFy!,)9|8_)iv<|4!  *;Cʤ Jǯ QkX\FwXJ*9E9J=I8 gcdcE3dlQgI'Y_w(Ŵ_INE,%XٯG?"hu̥>'Xq`OO̒)/ʿ?jfF!A92OV}i9_M@ASf7RK$3_r3Zp6Hg {%'RL2O#0Ti1gY[9POr "e%_{O%KN^_Y"94П-f \Mx!CJă\ LvN+𿎂\dVLDW}HϕƷ2D|O_f4Fb?+ 6E݂VSS~ dID-5XEkMrLR6B/D"5XB#cER.&!!*?߂fP&4!n6" Mg!ݪO.F)j%vwb&e.r edUnb5 \\ ``y;H,3'Z .컬4JG+0Μ+(7?%5' 4=3O/Vz&͞V-tCuxQbAAjO~bJj^Û\1N'޳4|&M ȗ1g̊Ȃ;]+kZkZ^o;ꠠ4+yk4_v PY) *jk01 b`۾aMI[ ^@ &[{b%,wD=-Flaw843@irLM/^jz *ނ@8k \ZJ58V8= :1X A~r nI(Ya;.^7#54[RLԻA aqygL$$oYęd,;V͒Ed9.Ex*a P- JX 2CR [1/_?Ô- .֣RrS/? 0ˈ8,dũI~pYdP5%IYOBg)Ez03&׳Bm27 xȵkC?pkBz~QUm Jgx;zuCo~JjL@w+xuJA90[i%bpZhP/Q$1?Wln璕coO ")b>ob1`3̰oi4땡tΉb|n~zRB^o؞@w[Q!\"cs4zifo?AK$A}(C=;Rdp%=|_kڟxw}L2\Bj\ TI ?dV'cf쏃ll gv%E<58Ї*,࢟OcB;pqVR/%eŰCYX rA,%̜XkZ.Լ..Qx{ySX_K=(7?%5' 4=3o=zny)%yzv\\ʙy9) 6 E0H~fKFCxuOnP X*Kl:Ybf'"\,]n""?UTth>{#VzXvT׬ +`t͒9I 8u.|Iú+0;J9NRb5?zZNU1W9]Fy֒ ?5x%F& AQ ih7տ[s5; `΄WJ ecx{αcC3Lf(97?%5gf%^Լ..e | x~yts3~`$ (Ȱԋ5Џ.On>”X8=L&Fbt#n&'BL$%IL@f^)/ ZEXx$ؗ7 >C ^N\pr(¹/4&KU1O20N9?$De8r$q7c?)6Z>x9iwpvı$0sV2,IElfgw{g_g79DaeQ^^n59*Vv4vT^0SqKg7yj D鋣SJ<,~;,a}bRvBzEVH/u7WWC /:koIƉ&:zn!&zKx6l8@`@ں X]P? =I!JEŽaBV68ʌgi2ѼXɀ=p/g2Ng 4w.KKD: 8>7a~˘_za|)|ȷLZ(+h3T  !w-r=,vz`~gpoo3 .QC6t|XǓl:iZN H倚`-hs[$zp1;SWz0N '8 )ȧO s]c1iOqLA |)hQQx.bVbt#3 _ڭ-dE=h{3;`Aa8xrf sF8z?>O!|G(UC?.C;'tIc |Fm_'E3Zk@*;98MNuEQOZG7xI$V3@WdVQG&j:q94wuȡJ?NaS5 A 0R;,4⇊%U+iMM6H;Sr& T_F*uCخb;"{pP`XxΒ3}|ܭ _( "y?DHQev*WTF P^x3z@QQ]SJ-Oa"Cv>{/!]l QnQ/'3Fe+[ VB{eϟ(Ӕ4\zPu?WKi^j0+j~Gδw:܋p *vF0 g'bXwЦjlGjW/Ǡ'}=v^]KtN^LKM I(6'U`u8.N(o3u^qi(gZ-9V* BMBq"GJw=&@q4F0weQ$;13 #.zNوE O0nz[v~/Nn,V%|%_O%1S;(-SY!d|3 ,7ra)jT6%rXaDf\@2dB,1pxUEɵJ=uх1kܲGwӕމv v!PqejNTf_R.OdZ/7n (ו 'm=v]$Dxk^&L_vzvîۅ_>]݂' t:W,a0ˍ + =DQ*Sx~(eSHChȧ)fM'Tr|\rz$9+uH'2?hm Al]:T 9YO׿e IAM1! /tWeLki7G ᰼_`*rQ;ל$z1Tv3BAb+XCuӇiGmԶ^cy q%tOn4yR`Q[Aݢ8"mU F`JVw+oz-# ^Gvk;#vb84W,G }!74V8[j~C3Y쎷W(8^,H 0uNl  @UN4ٴGuGRg&\19M'X?#7I\6B~f^c:WRp#J-Dh&ᔗW B'=J_Jy+83z:܆Bז;VC܂#7:h_N+g6tzY%՟d}soTCR yB7׍ '\-^ʬ12_8m[pt0bjSzR"s>N!m}]rtBBQIel9dKң.ze%ʤa&!>t^ꇇi8.OOuae+\1,^y-e멲i/wpXި6Ju`j'=mV,mUN .; b*UٍTPGF\6Hxv) _%-@+­s(6d}dx[8^B c-|~pfoP~MK@1iFfF{_f@4fx(1:Nw0RW:e7ggu+ ¹No5c"0Gu{C#07dM'0jVC*zQ82QfZs-b톊?c#gQrOjj"@Ju4Iʞ[E*F]k>QsP--"3k3pUvW3>URb ;fV4Tyip 6CU8RĠ*N[MtxJ#3m/͹]j><ʬi9! tWsl6+f,biu 9fxǹsfGgoGwx?G_W[,r2pqFd&M"1هx340031Qp MNMIeor柜`M0PWPTo:Y~z/ uՏ >(rJ3rd|j%ȔtJ~hjË RJ3sRRzb_+'y=Xձݲ@뜽Iv=> - Nl~$(x^s'Ւ`kYtGv$};nZfx;zuC{~QL4}xŹSP_K=(rJ36 3[$d#zv\\ʙy9) 6 -E0H~Zf]FoxZ{o[AH,- *6DђF p[ko/{wb#߽3)9N[T0Lvfv^;;s.VET,h.#%HYFK@b~ɗ'oyXhy ǖuӍ`˜˿}wLPJ&|A/(OzdyPK.D zņ/2 {x~Ǜ`~WoP },hPM9rߋ`t 9: /H$DЈe`"q9 [lP<󨐾ʩXY&T1.1  iQ$[҈̥#B HEwf-G8Ƅ5u7$7Y֭;3#)|S0i 25c2袈{(wS2 77Cla>R%Ҙd0LIQ`.F`9Mǧ 9!r=.7t E( 1yZBzqD#=r ! bK;yIx#k c kE葿U"#Od=8p52Hdgl]<Ԕ$ׂ<. yN1߰~btsF uj@.|M0Pu!c&)*P.~%A%ytr5HJ`@(bYԁU}=GH=j$:j4T)>󟘫E`5??& ;-Z'( aBd0`& ̎,[&YddQ1{)9#ezt#!v?€G~tP~P҇nrp"`~,Ug\a/D&ўT$Odr163 'ZO6;'&bL&qNpjR3<5(]zead3 (8noǓq: ™ͨwڰ&|3-58d>83w9O/`[UNCH=|%cB?C26{D|2yUw]6wqZ/6-]BɕDoMz!n!ĕLD~lqZ lQ3TD臙@ l*B{e8BԆ͇NHMPgd$ԇ\'qjȭ!ղXj,YY3,@3 6ZI$Nc^1b`>1@Ík%U\R0N.ksWYi-.iR4JJ k:ouDiK-bZR߷^~Xr<c ̩5@:Fe }/pyQҟt?}=(5CIvl&i0|8a޻'ʹ ˃@P-h*j*;/*ݭd7g4{/Vl+w mAaUi8ސHe+xF8dq Ѧ{j4֕,+%s6=bETHBƣo|l,.S `Ydža"edVsC 6>WJ8nhtQgd3 +p’1@uPde Ym, `r_'WW.4jۑ'vUh.kc"(p,b$y6'tczF"< {vi{޸֚8Wa5j@|׭ _%t:hQigW;XvAےUѯ=ўUqȎ̘bl̋SpKmI/tS?[Al<[I$_(l%?[g)kFI?Y˖ӳf \A}(*s)OC-4HɑRץ{gW&]+p?ݤTίm:ޓə)N_հq9M͞  ϓ |z.=B:_IKмGFT摴t09m;owT0ko;3"B7ɊK! p:B@(_ ^/%Y&o)NYO9 = C3Uoڬ LǾ$[i)!3+=?FHcty]oғ3HPb )ͯRo!/2.O|1A) fRvyj6{3kiYl9}7*;{+RbdMׄ'[բZ_{#po-o{'%*'ʨָwf&XU9nxj+cB߀jkAF>?J_X w54=%-ꆤޘ$>%%L5ZI6Zf)O"ˮcgkL;^$Fd5tUznNNTB2Tn?szgfsعs$ϭ&yQkixeT4S:cC=\ƽ@!FEf\!u]25J'ang4~]תKouL"G2-JQm ^o4W.a4v`eUjKhɦi<^M M&iU + +HR4җ(/:^ڰUpGYEix6OugpQo]qO^\/׵îI7=HP>5)u6N1ޏӸl-YaP@j|ME ^^HY1r9ɫSԈ5ITŢ.xX-B%#^x7٧QZo3C$9ۋWU|YSvJLt;s !KeiޖWp Bo嫿*^߼ʹ7CӷYMɧWbJ(Qt߹J='8u}c|Q+W\!%5iex/d&Ѧ~ca+[RW"g#939n#%?pQ"u9k{O\ B{6Ā|t+LJAe|@K}c³$)' >uZ8- Ȯfm0lȩԋF&;x-?8[dB8Xy<[GC[4JB C}DŽA)l?:}؛e$ 5[ʍ*D7swO>K+NVP?B]lXj^i(S+j[ox HIEF󨸸2;VJ{,#[}"Ikʁ!uU%Dr($LUQH9+PX_}rTu:*lv !aTed rQ0ᥐS,-k Sdd&S 撰( (@j@ __Ti̎(b_!ɹ._Y oNDS^M ߾H*;ZtOzH 0= KȿL#e30 jS1KJ)av"%~ *װw:[M6Sȁv1 ~"V5<%:Fr(ȇF2c"z*OFߗWGvWu?.7Mˁ˳7fJ);#nE>̧shx[˸q+B,&Y$R7Q +IMO-VUXI_ko'&-C*x340031Qp MNMIeHQWUܡO/)*joL(517 >&j6 ogLqx11v0L}~Q_fsiqI~nPjq~iQr^i+|g-!{mIŞSN ^RXy4Wxa'100644 GNUmakefileo|!DO0s;"p 'n'qA7s9_F)bM74zn~D_HDWz 4(pxgAq.1G.\"*S!N.<shJMhX* WeXMȜ>zC(g.6x{gC?3&/gQfTPPȢgbQ 3 5$X/%$1 1'$U/ws2FAVSx3kBcPfrFbQ[QfIobrJ~^bNMD!(13$(W/9_4ێKYAA%$JroLގ~ @ՓB\|I\P׈W`O?^ANizfP:> 3'18(4 (QV! /J,(H-OLI-@49 OZT:d6.y_ qxukmfFwofI̤<.. ,"p\.\HxQbAAjSifNJjDd̼܂ĒT\IAAήn> G? xO, 8k x;ĵkC1N_oSx;zuC_fL.URpxP_K=(/3ɹ$?7(8(9KA  *23J45 ,')X+~(o\^K93-/%5M?794875?4ٕK(K=/94%U/$=S=HĔ̼t ;..̼ԢTE_0RRv4.P:xRs>d_?o0c|^RR_ L0x{9]rFFs 'jonb89ݘ-)19`DvJ-?1N6=9Uh)fNF =Cđ[ S"]x.P_K=(/3ɹ$?7(8(9KA  *23J45 ,'Z)t+~(oܶIUK93/94%UA zJYr V ~hnULT, ,pOI-R4A4W^<:Z.Լ..QoxyC_K=(7b""Dl q& %pfRxQbAAjO~bJj^^fEa.̼ԢTOA8#atOOTTd&)eZsr9pqg*xyC_K=(o""Dl q 3@!bX̀d/H^fN^fNl5W-Cj^ NUxĹs?]zny)%yzv\\ʙy9) 6EE0H~r/ L)xm=N@" Tq,7TX`Y2`c2kפT=,,qC6beDӠIhao06JI }D|XOg E wӫ8[x 8Z]*N"λmLu )%$K;V_je0! o홝qݤO ]}x[9sfT ;{&?dhȼxks6+P4\XuDz.2:O&! imo )?p,}?3n'棢 SL'#yP|Hw#;r#sbT"bEԷx<[KO3VR=ɵ #[&2I~X#|@R#y#R8Dol)_yJFex4>_~)rr2 pv9]gjv1 3d!'tf=,;=}" _i\҈e3I.b 1.VI=L`C&bDJ 6+(o,WXPXI!V6> Aظl>^ϰ_b2Ђ$ RȚ+cf\F;YvTT!꾦~\ncb8rkED ` kU8%0|@} ̖gtE"ezgT${Vtiag1r:++hFx Q4O2,|- t^ﵱmzo$y$Lr LLI#|Kd@d4U{}zp榔j(ot&Hg-ϩ]v4's`c\#pksoOAƲ^MLE{"8C4luWkHȠ}bnZy^8G=ݐEO5ۭ,dJ!`kz&`90@Kc;(DpryL|`^=[e˓ih].O38ѽ]r}]-v$[TNW,Pp2q;:XC]G0 zՃFdvNf4<9*_TyHzBoYNr,zftiƭzժX>b A+]-uɞ: : CtML'tp@W휦F"yP2*OB|j+sb\"tz4gDҡ$KQX_Ĥvr&sް5}U'1"zdRj`3p de}k C%JRyJwk6PƟIy5$]K{{72R *`q].|bE3W5%L'&Y&p1MBjSA2ZNO!ShJCT( Cp%j}[٪&ShO5| r` C,kKt\i ag|:YJ;~%]V2{p9]}87WgDa-E4y7ZVѴ`D`aFOPȊ.phE m[?EMU;);X:2R$*|Ŷs^s?%Lq Cri&P==rVRyCeQ]Feu@ؤ o|ҘSv $^>;P]-A((s =5o ³opԿ7Y77 cs# |e/Z~]*dK.mߙnа\dabK\O9lzG^,ޙU" OMcO+b%fe#s65!2X!=ۊdf4z|eBTUKAS?kʀs9(A=童`4hL܅zXݾL -IlCM` TQ ʤIvZ_KxCHx̓S c.fω݄4@Z?Lt]'+pl*0xkp9?}\ qv |Oɛ7f.M,j-Z27>ğ3/OxJ˓~gWwtۘ/;{7V|ڏlufh݉ǺC^"/k1i^XI')IUd =SsB1sYjj|% yYg,Hk}ϲ_\tM_sqr0T*J1Z +7z 8L&& >Il#qM&Nkl\\IV5'28;NqAOA3ዏ' F xo!\@_{/>}drM M i̱#ݴ-Sp:A%"z7̂;Z(!9}Փ%94ǹ,/w$Ko]O;͒?O_ɱ]u+947]_~v+pgL:\<-❍֨DLJ"/#w^'~]_|Dovf./#t@;@R9^i~8">}o<=)UN#:8<G4saoRrS .ZlW\ k VF,IW'AyBB4'{Դ]Kb8X1 5\? PO6 - xuU[LU"r?;, mZniR@2Xܘa,3PB&FOQh-1AkLde!y8g_^O X_j_UuXK%M)ܫmKKL-^nU/h %„a.US.3dE'}"_rUΔKTxD^a]8?|$B {SL3~j 4˨,@3ΓZg>cN`drvE࣮=l,qfRPͭr%ͦ`+T=E1 ο|p.|p/0}?<,{ɓ(包XV5t4 I+3G<Q6 ~v`b|D&Si N58#JM g0W\Gě/oRSutuYdO6-$Q>SEحs&1Uy8G;G8CR$dx{<9pwf3TGx340031Qp MNMIeY$bI&sM 7Xm1PWPT{scx738E>(7"3ɹ$?7(8(9U/ᴁϕ c6Rs&^- }]%_e8^.aMڨZrJ3J+ CsFU^XPZ䓟ZtnmUIsxs }jB> ;_,LWеq"wz}xxOtY G.X pM}zvh 6= iHğ77!8܊vReF_8 SxĹs?]zny)%yzv\\ʙy9) 6EE0H~r/ L x{qcC*3Lfi0oS`Z\Z䓟a吙WZ_ Y?)+59?$13/HA+ƴRPLQLrI-/r9pq)4.ͻ22Kpx}SKOSAԴA KTJ[JBGxFyH1b{{I{N-(2FOL$.LꊸuƝ+ٸrg:;93|9wͭKJ)#Xzw8!ceTNTnPӂE@E,vS]7Lfz{sFT B2~+-ݨW55)"K=񘀼LV~T0~Vܭ^RWunfIj9r;8Q~+mO)JyC/4m5dL]Oŗƭ}eh0kbf!Ѭ$w4Fq\Av]-,>ȣb% =NQKu#Wh8lW`8y +M%<(Q aP57޼4lEhaZ8"#:1`eLR`Xk~FEʹ%Yi r/um݄a^{ŋMF i@thd,4{;n?rw'/SٷN[WC-Z~X Zx=-մx0 т*OŷNG˒'۳ۙrb(xƱ?1 " `eҰBxmSKo0 WX >lI*kEAߏ6!N)\ { ?OUݡԐZc 動 c>b'͚V F/}e}>W/$-73 C)L@@n 4Hߨcko Uzb&B>~w-8:pZMGpkNԽ/r x/N]0ҚڹL8!/-&{8WaQo0ۻ/pf\;p s6(ʁorgswT%o;,} nY:>xgL1o ]\x[1P3(?4$3?kBPjbBIF*_pUf8 R2 &ވfTl¸H~`\i\XRZ5y Q#=TĜԒb=. ̪ۙ&obpOIUН I+ϭx340031QpI,.K/M,+,.a\}{.YnyVCԴҜbJ!_z4}5oFʰԢbEi90 x*_eyl&:x[n6)>Aul?X Rp%.k-)PNwJ4$%ibqHw39cT7,Ϩ}}7g*&x c4c(\'ŅoGdz0gUؚC?k!ݰII. ))ͱ)` l'5МcY;VUN՛X\ _ng4}H orNz3"vPD#" g@rZ g_׎aOC3!C[qB7s89u:k"FbGγCU[4&p ;Qȥy<  f=zT΋"g)1ac`H0%L%G%;{*Ol=pCNkHi &2W -ʭ;)XѲ&Mϼ(ͨVpUgjTTݑ`tנ\,y q N;JؕMD%Ěd@fc̸l+4@.t*`1ږXdd$c2X !)/ 4$-ňϯkX9h@.mfHA8q$ >i"Tfb y8g}fg3h-}]&V jҏd [D#I?R0: 3LD#VH\ /eyH=1S* :O)`'?/("%)d D+vC=O]1:){|ULXoڎ8ӋN$V*X'RVM7gG<kjjaݻLm94uxzKqsG: %>AX{h.p!v+QK+z`QɔN<0\2fvF[,#g{fg攉C9OI6qџ69dj |ԯ JwHa%UM%Iu"^xT $xV G AƾfiCκʊZ#H|Uf1˫&ݜ^DO{'t yVnSDm€Ai W:~vHAPjPTtȍ3wxmWA8ljU7i3P>-i;wqֺu@Rr<=ә$FҲ\Lg=bL -" |9#pehBre Z H8\_N[qn D+HhZIڐGә1eec>2fu8\Nϊ%ŘZ؝6]T<@ޗ2 F AI fP zJ[ ^Y'JPYʨ3+ɍe^̘G{^5fnz\ M]h& >VCCϊ>m?C]4e_%hcax@ 6qv[>Jȗt>[rPluCbk.o` v#ΖHǸىSM_9MI+1гc ~\셏uW{`.\U7Ƌ!Z6Wg"mho\\Fĺw4LѢ&b$w̖B}o46[nǻj-xQN@=Wl8ib 4ljbk&],mуp`y1sØ_K%Fwr2'|a!T)ʗRu9rr".LWR. SFXC߄^gjCy=r+DKt}jfsA}g V\$A3\ov+䬢 `VXYe}]n$ok c8|cH 'Zf.%00K/-~ex舛[-R{2t/Ӄ^?@Ah _h(S9ʣoh/" c> u|ɝxMk@|?!^jZhՃו4Yݑ; @|i"Fǃz G]y pڇp#Jְ"-K4,Bc*g+tzCPf#\]M` FH dN9f@-pkfzyFFKo:,! Õ5Gf2߇w*吿TV!ixkdYbYix|$Il+ɅʺRh_jfk_1*J@%C3߇0;|,P9M莌 ev&(p8 ef( %G M& )rݖ;j(x), 6%D/3(]{dҸgƼ&+Oa9#,3^iC?Vx]T]O0|ϯXGU>@JmADx8_YE:;;;3;%]7dx%gS \P?ERN'Xf6x<4%ILqn(>P}; ϓ4;'l?Q xp@_C׵@\r9۞޹г;EnG4:I4H9*i!8; %J/X .^SXd݁zTtBhR]}۔e{뜖k-1Og.{5aӑ<1PIvC 1R^˔kcFZ:q)B(YjI d8UQrfҎ_a+AXJB3{E7 U5@*ЀgC>nGbcd&TO` ~UvE| IոF`uKp=0/Q8.2CWS(uw֛'%PװD_s @MW0غyuZMU(5gGs~mCylp@Fm g%®Y فIԶjm:UtT xܖ{=?Un+Qujb_b 5s +p Y^%{ަ 6] 5' Q#:4pSNPWu^"U 1:}PeٙG$GmIދhV"=zlޤL(bp5ҜOK~q Xax[Ƽyt̼܉l BKR C='>d22!jgkd<9BmVx̼yC1#F{ "x5OJ1%[TɃA.e[S-V ԞD$ %M+%x/S0q&of޼7a^v1T!v0"8NׇpSҥ͉9 .Q(\A{ߏ**Л~/{7ت̈́vxdp%W Nf-9 vCΝ,9Ҳ3;;:4.vY G52}Au:P- 0A5ĎYEV0e(5յ>—)`M x5̒8jqv/7. r6!OT#8 zkq<у6Xؘo86ekD~܂B,40000 GormPrefsx:;Ώ?Crr6@0[8̚q([40000 PluginsS󫾄TCG[hGyMHl/^Cnx9 '$z_RevگVa"^)أ_/Ix! ])O2+wQ٦zxqnEx340031QHI,IKI,.N-fe)駨o:Mb]"KgHNtl]+ץj\RKr6Ĕ"\fu+x340031QHI,IKI,.N-fPv+N-~Trh!̼|ikm:oU.1ǜ4RKr8LW:c~[鶥*&t0 xQ/$@!(9#, R&232NL :x340031QHI,IKI,.N-f8Yz ә W/4/f1DR`Z "X=7&!eJ*PEIY%zE &^^{θN\=+}xX[F ؐ8!6m4q $qBb,^BrЃ>=أ|Ks_sߛdˆ#Fo{hX?l4ZR*?78gR\;΀_KqMh])9U`66Mgb&VS߮KblVK ~,9 I*4Iy iP>j MxS3lŬ*zqW2nV*;xcorFTzÊ91YcR*!%sWMCb0LHy}VȠ%%0 r] g&BY-)HB21D8sPCH\ZG!|al$ӴtHÄe@ԋn^U`G!Qn\|![7NΌ߲Lf_Ht2Z撻-l!#GE BNE~-iG է%3GeLiQxL9*` 1AS% _X ~,y.̲,Ŭ1#LHCU]SboI1IWpXdB |})q1E*嚣H+qk$nOKBiPZ4ҢiбYWXCu7f|=%XFNO'N2KńYtt;Tn9berʬqՌc{FI2jzӐ4 /q!繁7`EUYS7[U%>fU(*I1>?a܈]7/3C W&XM-@-E;`/|Hh.1QN|\\w|1<)=tچwTg_`{խL=nvdnԜi[HDp^R(KAWs<uRܬ !I{Za_w-~Ym5f|]+)}J7{'L"PR::]+h cGDIo- o \tGJPLv8jyS2%u_ wɽ`\q]ň4t? \ ?mMelTJևvW\PKc[ѥlt{ %׀֖W6dEL7POxҁ\T<+ {3q/?{_PfL٭$3I颽g g /*Y4ΈbuOߑj~a)bu#WkڌPA*IORQWZٗzkG*hvoYڟmj0föcrKi .~O$aJl5+FGX^'.Šc/7(Ao~dX[kyP-f7} #0aЂ&&T!ſEm@˖*`J`@QGlV祤] (߉`o^2P7ˎ?JWJ")%Sd\E`vp%lptnyGk8y G'CI{R|'xMPuLAdŃːi nԃjv%x340031QHI,IKI,.N-f&+ëaʌzM}0DRp^w^a 0Y(?)+5X/=( Vfz|A.ܗo,2xqsiDq?FiA5l_xXwGB|?FkZ[Khkк[mn`Q`)szz<}G'_?wX $sν{7ݭ7^?,>1?|'h5.c#Y-W\Ϙ^5ƘOUX(\d>~6VzX.EמQ`9+c _ KZVle.Bi5dZݪJ-B5&UcJVlf9S A?QvsZf68pH !yˣ$R3K\bZ4nErm^5+#̊#_Ob>G[ a6"!Nj@7s{+S ~,R'K4|ȧLY=b G =8a`XR`2 F꺊PCݿn}dE,K(f>6Ά<բ|& yaiFQ*D³t&"OC9 w(cj`ϔ(=J$En;GhLc4uVt;Ow,2n,$,2dғ)uK NpM=DNrAciu ?c/.8$Sy #WҪzހB)( y GDO\ĕi=xfnU!{bp9$MV0NG᳣ xekIDXZ?N&l-d!{,8L؇Ď̾)4/ N:^NTҧޥcX<=-h"lh` zhӆ=V#,뾐IZ Q{5yeމ>c=ògwGO?dC' ^>YUyg`.3"=>rGK\b5wX;J<2 Hx#u,m+G gl7C )ZTlr8mvS^ ksRg vwI"O,]{dfOoeă;cӿuS9c}Fwx3nujS{Z~$dJ+\qm?_S?{uG5.l["RͶ=ѬN"^ޛfyhV/fߩͦ.4<4 MONnXN5iq^:]tչ6|塕H[3 ̹NӞzY4Hvt\b:u^.bZ25pϖg˽7-5YW~'zlr!~G'+VzŲ6;7xa: ZSV[6f[a{qK%AěQz})Jן"9eYwNhקw/twپk3eJ24zwV8ՙ%/<2"֯ղy 0 <`Yf+X[&k:3ڋP(DH9:C. F* 6{^!6(bcA~cͭFhtݰXK ^oCA(ѯFKgSn,b3{^k ѓ Xqo6G}'h:'{?i7@n<:>vᜐB0p,ml.j7:ˆr,F'̢Kv S2 X"x340031QHI,IKI,.N-f8r\z]|\U"Kg0-o?2%ab\D3 s/gъ- Tlq'xnFemEc;4oTI%`(acKK JO{쩠n=ZP ͛/So|4i4?"=>GEThUn_ow B==hTY6頯F췭M6<1–ws,+%Hb\*.ik;Vөz}S5^۳>˒6fԺ6AyEBI\^ہ1thVqti 4`)KN!UbC8ְmHåpd[2"Qo * ɆV%Oq7KV3@.Y?.i[|&*U!6\( )`(@Z`ձ4ʹ)rV䨘f֚mۗc)RsRfmʚ KSJ<~, ezcdɺ!y[#EFW S.C V2-N[<|L\eТ꺮&UWI3VbmPV-r>kw li5I wn˝\S2+zŹc j^/*6au %]to$'~Hav [zwTU)\odxbaxbjM0/pOQR z(?pp1z~4k%؀xϟzv㈩3jO9oIWT{eam\ږ9tAW'F6xˀ)5?x S8زg"6m[g٢lFaj>+/"_@ּ?J г#'%RxmW|M~WOJ;m)tCJ@|i\N椣PSm8u'\]?>SB|vr&/]wE)lE/G;^;t+ [A43\^s_rC|2ءtlSĽ"e9SpC.,fxI :]6t&z| o[vn@4Uݤ , #ex }x340031QHI,IKI,.N-f(|rc?+$Z .2DRpS6νbwb\L L*@}Rd=]/RhxUKo@yH0ȣIC&q6R{T !NUـ5eLz꡿ASVwgyٙ73=8 >,jp49^cL w<74m E5A TXjq> ;cuAh{\ #S:8o,#0+L܁0օp7,#LUa*SUx0 \ VRSzFg2Q1s,}HYl$BbeEIz.CjMe4݋k:p1 +.9ۀr *뽄q. 9v/f >C M(tؖh&tې].wjZpx340031QHI,IKI,.N-fٻ6~4n\q²2I]f^Z>i\|` ߘ@ևD)C'e&2Hoj?Q'> _f9,JxIsG{FmIȲ$NB,XKl Xm1T吪\rTq1_o1?#vR)LO|Fvsv-G+?o5.-`HC7=-;5!!M1nL#eNN E|r4ħ 8}43":a_i\F7[u k;`{n4o3س`F 8}㇃?.!xtCgt 0Aaga:&4jex}rsH̗Av2/tGK]/ 6s؜@O֥. ke$Xa7A暑a^Xua}5(}ɔ v4Ihae^)]t3@F ǵp$%N d唈fZLpN RZS?\lK<5Oi#ӰUQuh\UR1-3uw-æ SmagSEʱ[vʥ*Z) Ѭz]Rڂ2ʧ)?UMk"&ZsзzݙӘU&9h–LPJWrҥ7Wvw;II94S 2`0 ]_)mwJiןKutc!3TsX.jdV̚nC"{I^ *%_:界Maхޅ;yjf^2Sjt]CAtwBʢytIoj㼙$Uq́ƒEր͓L#!} y/ཀw4 5a>S84_M4S(* @Q @,c %"^Y.q["TY~5yIr,Сovփux340031QHI,IKI,.N-f.kZpZ7k e3ŷV i}Ht0TQ~RVjrI^z~Q.^>mVOuҺtԏ~r[*xV[SF^-_ кiM/,!q/< :a F<IG Ӈ>A>gtϮqlHK{=w.{ζ+~Ge<ΰ3l422tṁiO% 88j@ YԍڬZ-qn1}s <.Ϩ3=#1Mp^u<#-Bp; tt!t̛?yihTCH$WF)"qu4dAjWտX|q<":<k8=H Ͱ4:e^gHR70|ϙ(;JNIkTʂyv &a9ͣG= W$,[] ]&5Rgc~j]aJ5/HђHKO 9EG5<)K9[9Ϻٵ:b3,Esj5څ%9ST3EږNǧwJAQiAAϨW? iQ(Ոu-ٱ=(<*5O-jɂQupPD E,̒6H?q䐘Cl; 'n .z+*NV-X9w؝W<ӕY>.Nɻ2|)JP=RvLo<3T9_”MF+!?T8Z"8u9P$v)F7w iK{\y¶Pٮ޿Zt >`KlG`׶0fy(奕iz4-A6GD/(=ݎw>q.c\y?3I5WVl/0IR( rO^KjV ٖudu{C̊XE4^O/(L>ήc=ma~><{H |y9I7/ JuٮJ5/X"+UniJ=}eP*+K}kmXU"^/ʴLg"ܻ,z-pgPFZu&iF/<`%Ȼ+ EPB.7Ź-%!,p`BX%ځp2_ i@ UW ;Q.orM *SfyVv?8d}CboOdo5[!RU~ckxvd" ֥x340031QHI,IKI,.N-f]ǧg I]f^Z>פmtJk~|7b\);sY$N9׺6\0OUxqsiDq?FމiA5taxW[sF>$N $8B/uCKM[MJXY0ENB?{v%YC٣seWG}[4s繎W>ժwcoaXC1KC>=ۖIXJ=(fao>,fiYBd!,5$YH6U*A0rD"9 ˞`->w/D g]$Npκ)HN\VH ʋH $ӁiHawtyh9Ѡx3Q& [JnݪosSdL `ir[MôD< 5.x,ij'z[0=cq6՗%ⲹ[{ZSt0Zq n/΢O삉rNqM,, \ybZyREyysĢy!"r8D+ >)/nܕk`- F_ʂF&Cu3 |tSt"TPq'x`}5k~ލCL h^moOtEڞz6 w>;>ʀy.<'.ak?Pm:,PDp_9QnKA}] ☭ϿH,;_AѨ~9JW(uݼ»Tl45RV P2}~؛!=$y:*1`RL7rpzf&o61jH3_tܖ;]]ҭ`OF57ğ3ɟ߲M8'؆nO w'~?\Kx892`:6(1.,|JP`ʢ%w`[T7'Ge;!;rArk=u3AV[z$,#ɛx1nc n->'s<@s y\lreW7E qɉB2^x340031QHI,IKI,.N-fH]O\i H2dY-xZrCPnL[n<*OJM.)K/etsZcssνo4c΢2xVoTymڤNڤiM _-[W66*R {Dnbu 9.e9^{B N yqto(df Ί7Y׃.KbabPHm}Z]gqYF7O `qteXR-&YNKn?~S0!Xa<ݖw8f`ELScvƅmRd(#m%*en,E7C84v<%S@XXh. U(a4QN.v%ȱ)ʶ.^j2k $Qsx"̇!LA{7p<aFDix[Up(t*[B-x-< t}: =>ˬ'CJ3IuS]؅O.A=-nt-ySnx340031QHI,IKI,.N-fT?Tqeōw&_fhX&xI]f^Z>Ö [ܛpgVniPEIY%zE L 1MOjlVi\|` ߘ@ևD)C'e&mf:^KhNiZ/>9vxXWF]X`?C*`?(H5+ֆ%@$lA9>ӷ$AgLvlĞnɝ;w~7fX.?hxF}Jw;7oݜQ(QBZ(9BvwQJHYhV=ӱuded2ES̒湦,sy4Rc48+t)64&eǭiWku, SB1'sVkxNd=a wW(K~uo}dʚJ{IYP +qh{S`Em⏏g Sgy0Uv)½}i\WfHoYk> |a _'CfEIHW=sk 3Ǒ.>W6%fUvScM}Z`:9N4'H7)=P9ƨ9v54[}B)n?[Ìb &+pKpG٣tjX>CL:wLih}bǚ=a(x2، Y'Ţ&W`ܲfڛ~Ũ-㤡,E:=t%Vr3mâcu - M/2bJDo(\8VK ZOQ>|a p?bVb0Aҏ{ }2Ol7|sP~}iZ<%˃\e6ϓI>OdI3yKȿdo47j)",%V%WץH3#:Vxh844ضKnΡG {{!v_< VnҞp/cGApoLd(SNP#uQRult<DWRG`0ȊLjQw1gMB˰v,`= ZrEaq戯`vN. aخa ?`ۋm :IƚӰ#RlkAbA9ߠK:IϒQng^A ac@PZ³WdRwv#fgVcȋ=V8TPkaƔKna<26eQXEtLUڦ~!Kϱ(OI5YncrCTu{Be1M1ٽ;l4&psq%^ 22z^ k{LBUD) .5 lA!\\b`LWmFRcP3a*̉CE"-ɣ4uBAD"0WU*`ܜk,H.? uA3o!̫V=/DhaCP,Z_VU.VЪkr8~Q| B dp;aTmZMVOv++ɦ a '×` (%`j6sLQAÓ+K~`yxÅ isp @Py EQ4OOfĘg$<%u5!Kk kpZ+9i x`}r~~x:Fd0L AX./.,**+*GC2c"\ ]d&_wxKp-&X5Q僄W )i:E)hN^l?/Q݂7lZ\pw~%%8WD-m-N$k3::ꀥPQQQQQ[>߱cckk^1eROz~Lw'F,@j^Ƅǿ~z 4OjnO=thXsz 5DPGR>WFe~FF>2.tW?_]x75یEPWW^tM|g[ :f֭[oѠ3hV~޸'FN9qs~a4eď)4?WUU1:IV]{ߊh2柜Y{?~ύ ǡc 0̛+l{g0̛߃Vk~l 2EKݻvl-~ 2CSݷUt=xǎVj7< swY,+kayyVarYƽ]mnG ~s'aX򍆝FӲl]jWzdѠ3(|XzSg YWhY0:g87鳟VVV 8wqԫWo=rl߾c%g$ows 5!v7/Vԋ̙FGG ;د?hGsh~9M6 $q4)Π8zs<x? )4i:t\fm<&):v-Kl>4@i/S;lb= o La"fsi,1|l An23N$>r=\kvp}J\|%4<''_SfcvҖ"x[L4<Ց)h>`׃5pRi/nCLX{bEИ""uMy* y*bEZkPop~TM`)Oϔp!E=va1N{|D!-h5:cE/G4X0cBsqMH àbl, WnKWn9\79X+LqGF15L9`8Z6 R?!Ղ7OXS'l_'j_jϘ8ηTu?d,p~\Hq\ވ2lSoeO\Rk}9KɞKu=<:kz?떃=up{::98~b{] %#;vCF'b(?ll?X~X +&? edeϩTTTTT٦ 3M 3e I{^֜nF-I^֊dQإUh+0xqy`II 6%E}u,t8lmNT}wӕ>i"9ٲV@1ӖDWG/F7D`O[N#W*ՇB=of6q)1`1 m WD)O_jֆ֡"\b7C.) dv/HcPc= G`lc0עoDo}9JH=c_P4҇y5}Qw P`Sd?ts~/}yQr~ãeLπ&ȣ (PzA@i(/} d{uMP@~6XH!k(19j"[S!)զ -NGqDP=v.(VEGFTGQ3 J}YR_i*@AA~Ў2 % :W<l5{eoHL *rx340031QHI,IKI,.N-f{}|C$uyi |T$:aQŻO5 A'e&2ɿFQ S,ݿ-cSP;4QxYsZ-q[r5 3+zh[bT{7ێ`tm|&^Zf۶ۡ$e[ YX%ʕЪz&=d;+ F5>wen"!a Va츙1B5*~DrFONZ.ҡ?Enl3+,ai +)FdTޜ G.Oqx2cLqI Ef\ 姉ZSTYfSkVE:6SfXW\ nn)Đ (rҦlD=6 zlF=xr VV;l%djÛIjrjr &5iSԴv$hytݗ/+glWʄ6P=.YroV4~ĕgvu{WZz9^U>>]"ml#銠k=UYNEekSU&eZQDSNYNQs)e9up յT@f-̲z) },9/ǐ1^YQ/R:cUȕݲE4Lwfcvye זXjt *^TTHb?TQ3>3xcX!/p[89 X7H6TqlS~_!8KNx/~/{\+~stbS7^7(tNZ%)g<:/nBe?;,ۈ9ziEt]}z>Kl]!X@u>R7әcX-̌%5:д"x{ti{ffœYu64 lmxM;KP"蠵`?EEۢzâ.&49GNО #qVOx&.0{etȰE,2y"”%gPҬAi `yXWAQFޥTho1hUĐ.R3{_g]1rU+w7^%ǔe~t_+}jjuvl\cb._bh=Ҵ![X"0u Z}_ NԺlvbIMdј|Yy,0[u x31ԼbD5 .?xp@WdI\M 3Rˋ,/\iā_(L[Qb䜟WRS/|Cދ{F-Q!jAj3Rt͜lrjnn㧦ŇL L\K>4M2wKe4x^D/471;5-3'a9oC?5+_q X=x(&Ά?x?X oO PH%5E 1/oL;*EDü}ZZ`۬&O100644 GormMenuInspectors.m/ҫ@k nƦ~h,a7k9ӄgj/)lI ;J`Gl<+WC@qecc16*D> ~C<[ԣ100644 MenusPalette.mGƏ÷[0lݿNӽ|ړ>A/ 6 {bP)σx340031QHI,IKI,.N-fp'sᏵ"r:ȟZI]f^Z>CrsdZ'.-P^ U\R_ RFlV\T ։Y7+xX{\fTT* Hbڤ: iE6iZkӚlSh wIZҤWZۦ6iMRˏ$U!N.N0y웿GҼh4$mv>;f/3[L_%Ϲ*¸\88?WO\O+=Q\!W/y+&arF>H]!?I5yk{tehHѢς)Ɛ\c+јLWRvw.W9&b}`$Q/r%;B~LD[A۫FS]Fch- *~n?5+s]qKx:vӎDn GqX7B>oqIϷmo06 F'kv*{Ckv>d}?W?O |h>$4MPtxȈEj Ob$6a{E4z"rjT(Al9u=Krq\!nۈyl 3J0GG)ٹ>q-eܜMvSp:n_' I)v{wyQK#ʰ7}=/_;!^XN!;t pl[%+K/}qmnFoૡ'_|v7Xv%M]9?C XT vGJR,ݦj0k٢tCH;BVtz>Ot%\~5 O!_CT)ʅ@А ;Jz;L'i(\JLY̐eE cgF|S!7γt" 8>38NmvWNx6bkg%L x> ;::C'`-gJ0s|\X(Ǭk0 G(:U9:p?Bqb/"`y_"/4?q ǟxǟsqg7D?U4JR.WKz~ߤ1P594~(~5w(B3 Z#=KNkG|Dk'|:;^v:˟R+l)k Oob1|oqOdwb\cD֔udE xP?Q~ރܯ)A&j~˯+ xWSZ $B'6.N%%!8pS4i]YZn>Ӈ̚}n'}gd3svzW bؽ;ιw?[ ]MvaoNv ξ>_wJA 徧Mj!W-6bԙoǚ$O 6F +jY;DI |aCi4T9HWTHE,k\}_sTv4H&G'uHtiWh &?s! A\׋OX$/,՛ch$1eqYpYӊf{!9H#F!;nYp-O#ge+ћh0짖c}T}hvp|34W̻Ox!&'`uZ+!}+M1K :&|Ϗ9l]d%CrI#l\$ɇt4U fXZ.>9r9{R+&#2B^:Cw&0-osMEyf׍"n{>}Fgb@ x#޵\ƶQXy1$:,P y ReJC6WՓxl#L>zeN%2*(*+Vc&\fi}A!Ĵ(+Z+ H}P6;rnAp|qíLp~ʲ>|0?u^Nd/vsEuZ֢,,!e>bRATJkC䣈r"z!>^k:U]$ jU腠#TDkb JO},.>xD9'55N֌>9X^M>3qoMm0uS*{ 3 ~giT}Ï1uO,kv BF 氐UBVdl? t_No3CG-9m;3̐sPjON8٫elU'\ܘ8 b nz4x(Ug<+?q ۸#6,/Oҋ ('"_rb7~ZA^[NE` [M54KE<x[Q:|ڶ5L_FZ$ i]U`f.B86)6ٚX\JA HXea:9 69~ Qb?2|ڶQm~Ώ< a΢z]zF?>٤=\/3~P 6>|Cۈ O3sx340031QHI,IKI,.N-fy7e y/j_WPI]f^Z>#j齥>@Db\mkΆ^/L+0FxqsrjDq_fFF?xZ x[G~ɷ|Gn[9TP}`Pݖ UGt`TB]@tM}u04fCƊvKW"$m|Ԙrٓ=f=ͼYQQ?"6aŧ"a" :cJdUdLc0ǒEG}>{#FmTb8j<ȟZecR!5# 3Z;auZ/kNӨ?kV5vs2v0Q;',uͮwBw>mzE{JcLGhY( w 8k^wW3gMoyCo-lՐ;>q"_08qJӸr;| }9u+Ss2;||-קd&]TLɫڕ3mvxFG85%g6qic,B֚Yk;QYv&ⱼO sq3/Vص8c2Z k9 #)GWhpl ܺW3f:w:T"m»ZPdHWz 5&xLqϛI଺גεyyfQ!H +!h`2N4#=Mܝ^ܟ?J,$MjOd'T "?"R@chN Я HT~s}k" ICz?#ދHB''鸦/܁ E<ҿ!}ߑ>HAO HA"Ր8rnQ@i8r"r('!wO 2GuE%#7A(W(s !hoRFH+P6~^,wVǵ+OhB~B|5c(kNSV^$4JnYtNtu̙c:-ΠK3"3*5q*[lBc3u[m6o@uA8LŹƠG|SQr%RTj--tm9{g@XEc&X-Zӣi z~HŁOcIU)#~ճbM]b{ľNCm.F^}6{艽3Aϲwj5yepȽ3[4 :5<$kXbc^󬓂8CA0_hEҐ.q]P\NwC'e@T.inސ$E<@y+lx;u2jCL'{xUoEVJb; )uIv􇈝81HCEޱ=23[ $C5g87+Nܸpi[{ma"Yޛ7KiqE`OQɥKYQEm Vo(HS2ׯ]x;S˪ "L -R5N,Pq\vd-hMtpssy׳ZBv]f)`%- 4 C*Tl)P(>Ç&F9|H,pF*p_*˩o͆ O/G1U`kQrEC>&|ḱh<.ZǰSjS>=Jd af*8 ;IIo3kze&Ip*4X[,HU~5K)ϔ޿~$UvQӤ*cHݏ1\R/e[2?9]ϖ;B vsŗ6-#CMVKoӪ7hп=?VL1j?? |5?H~_b%P,E+7D(KK~vLVcTMd3GD,>LMJU%`3 jWR6N\!9u5Y-YH]lcG[[{]M,=a/(x$ CІFFs>ef!zeBo!!L?cxN)4R!`̶q*33&#|o d F:o/"oN]zwYb1bw3s4̣Yݙƫ+î)6S3++ԦbX^Nsz_/+W&ά9ۭq^OlU:q̪y~Hm8v'0q^yuXʫ|9R/wUx{Vzdy~,3,?UxZMKKIQ`^t0q} ]qMFEAD Pq%>pO|@DAE@EsƿS;ܩꞙc ]S}NU3?dʉ$555eZZZ(JQWWBmm-*t멲jrR少㺭-W;ۣce\ md277795D<L%? ;ˢ` wJ×&A~`쵵5!{1$wuh<4{E!>$Dyi=?Kz~~};;;sKgffrjjJ^mz!kKd,91fw$0Fa>*WJ<#ǯMqwBSHE Qzvu& ;;;3r<)E봽M4;;K4==M400-A u/&''vww[?::Rnoo677UҒTی ĭ\>@:=h_@ؕgf [<K9{rTX}xxA<9om"?E %mAo o ԟ 3ɡо$GݎKΝK>h􃉻Οs^̘:  -ֈL?c1OI0aLNHx7y|VJL->ܓ)!ZT8vnM=W^%_fA( ҹ`!.۔b§ZflS넥 m٢0X_Z߽؞ F͓jG/x&Rsc,Hm1Jneg}J %m1c-Ͽ2<TmҚ7W,X1WU pVa5%mG@L2&hpM U8Hkpy!j (erGecÓC@+h*EO/,100644 WindowsPalette.mЃS=_wlk̓TC%<Ųo_}0)2Bqex340031QHI,IKI,.N-fHVѥR*G |#{hL#SR,Mۨ5E~~3D<@YO:qY:l&(/B"{! Ģ$uXk^Ѫ6+lJh/Սv[ԎlZVy-6J-"Aъh:!S)f#XEټ fcO~%$VH~G7$vlc'ъCw? l,6?jBÂ@%H28eo%C[Sbsha#  $=#ot/1`@A1tYHAX$0DfEرm)5/5@f*Aˬ^!'UFY⳩gP-+K$XYRLE ټp3"vXV U4$A ٛVGsX:A䒰#P2߶Ce6#C؁[pyf0渚yX iBf E7\06I) % ,dتʳq-- Y%j6f',&юP흊"(Ro(h E18RRh2(HWccc1F(f ֽ#{[xH?w½>xԻ4tˊ\pnMoP@ l +I/eӫksn#y'SNS4VzWFz lM$Qɬ(X+F_Mz˨rh<_Z+ڕhT__[fp`kBV+`%EϚv=ʩ=6s,J]XxvvLe89;\#Y'^e>I:,1]Quy >U .qL-KԴer`coؼ8 @,Qdg;<v4ސr+`obX wU`jC<G  Sy#tO xbj1]C}:52..[ e|D=p=7H{|__op ΀1ˑEc׹=b!P`dmHyUglԕ"G27 `PmVL{9T O;B˯BIo]uדx340031QHI,IKI,.N-fPذ|YI]f^Z>CrsdZ'.-P^ U\R_UfaM SzI+Dx340031QHI,IKI,.N-f;7oλM% 5ϼ4DRϐ*VɯK k)B'e&2LzסI1)խE+~sUN+.kxmRn1hRU YRV)HUT@ 9{űTU'D9 >!=c6t{yyH{N"ʉV!M o믵݇wv?jO&[RUeM vݾq A p'xlŁy2rfZ dkp3ǓFͼ's4(|FR{/s\jErA`aњh<)u%`D0k`Z_vi),|ZV MfFBr8ʳ3:9=tp.x_)Ҟ0Tb^ZF PYd 2o8:0!3?Vxޠ*(9(U HK˰RK)MIUqGU_RE>gExkP_a^^IjQZbrSifNJj^rf^rNiJ{~Qs~Q>y5U>.Ix&Hم.8ukG%_XhfZkvtA$Ƃl i(Ld*j7^y'/#g8>"?אCEy%ma9 XUBQ!~K<`Z_#kޣm{氿*E/Tz{-K%uv޺lp9 kOK#ml.2W>x8%8*緉S" W%~^=(m:N?:I~TA?m9%3{2k+xqB@x}VipU~3$%+eɲu9gO6Bl,D9XryCB;G.37M.GUjk,EEEQůj3)'YJ_{_7)uq4Ki^y:^wc̋6^~gCf ͘fO ^-ple#~e2/*3sׯ8W\JeprNP1k*۾=C39n}샐⣑j7Ո~\d xm/6?DiY ?aC!-P;8gUzm&AcDܰ(!3NtufVezza.zgd$ +ISuXZL.ۖyWv|ŪR[TjZn,fNc εP u JM䣝sڙKAh!K ;YMugqz- xiFSk3܈Kkٔ^53ܕRLat9VXT Q ZZ74R gܛ ԋ]e@(Gf%ubIeח,mT\S3YeZ)?7ȡ r;)pcS[ruʄ7I޶0L-6])Og&uK/\k"uyZs̷vz2Ks&m*zHo(^wɟhc6)x״wdz$؄Mn6xEjfn1pn%۰_ݎ 61,-^ w) ̞)6uw)>OgOUڦ & y5:A[ިg^"5o'V`߇]<|#.5PDyNJrKq3'T߄{7dѣ &0C#uW ŗ*6$-FQx1҃8)}=Wވ[:C07E#Q_=1]hzHkl OG¹>7kUx@ ǖp^Jr gjE5V>DxbU8pJ_jX+C6u8&M܈-B'ߘ'J.{՗/SBi? JxE%2ɛULƫIВ8, vǃWZ:$wq iku" -&]CFuMd1JSk~U/sO.a !<,JR~M ;K,{Fa _&HePŖP+bR[= 1HaQvۏS<͕WWWnnnژw666\m@ݽ h4`aaU~>_|(׎]6Xy???'׀|4>݊}\;~v)/zFͫ/T{_8El<ˊ߷ .T9D/4\_gS/a@~_yFR/Qqm_*y%"N(~w\&Cv^(/ˉcIi{_$On=vTcQ?9Os81{#߫d%ƲDž5='~d~~c|0 KB$@vI2 2vԤY080A>ǟƘ@w)CQfYǹ{Cqs<1}x]9!O[N:kvVi=/%mkwX WfPԶ{;͜^*EJ~5Z1^Lg?sYQNx{>g Ǚ'2[:zv\X̍my'x;7O@_KA=(7("e"oL3AD'cF0& PpKdRiIjg^qAjrI~U=ٓM~_}IbzpyfIr5B`ԜҼ DSiII~VJQby\1W(h槤BبZ KRʖT`Z>7`8)h}bL>ͦZ_^\ZPZQ(h% djRRdfOK<"채e|>}BxVMlEVHҤ88$Dvl*Z'-% qׇwloYZ똒T8!@sT.QqB= cōā ؎c|ξy~{˿^/U8J㟞J߿B)YUk:Q4l~`i`&ߡbu[]#EǴd9{cpHX` ;ZX7NҭESilsu<αqԩW zu`f+Vezk(qM =ߊef*j-A3nSUa>)apO4eWG{ u4<|#A-2tpy!X<Q(H]?H#Ɔy*i&Qʹ+1ݾ9KN2'#,]?K@2 e` b>:]WwF*B)6qn(hĴǵ6LWs2sy?izO%.TMj.cml^f:sfn,t?ϚNWɴx[UMvK`ukES#I'RVuP͆]tN>i}oQW;l'MCGw0ql?BM?[`z,!잹=ШFQօH\.\,2h% Zk"զGXE9D+YH3Hp+*9F<k^Y44 ~.<+<) X葋t^0%%ۦkkU#,|`CZ /޶2TS} Q莲רF?Ϟ#z\C 0XoOqSzb1FZQfXy\%W]ZJ\DHrro8 n PBГn+ʞ^.uqhyP2ԘCyܵw-Yĩ[}eia-6kYm~qn9!bR8KTMa_b|># @? Ŗ?(m6 ୍ vDǁ6׿+өøʳqI G]#+LKt/<{V;F2 1m \ƪvRx340031QHI,IKI,.N-fpJ vuWLKN YI]f^Z>CrsdZ'.-P^ U\R_<{ٛdu W/%xX |[Ui&m&Miofڮ=X } 7ullXf[\;t=K | ܋a: ؘ~\n[d|'_3q@.@#JLQk ksnoo^#;KEWC5^e3g8{Jgxp߸0;"69b*w9W_`&)&. <4<"l< UPϻOHKa92l+ V:T'2H^׿&I'ϒWUT]jfs/ e T*鑷įFd]F&g8!*y5' "pZ#l`ٵw>ȯyP9[S`@XL u^<~n#p&Q8P@+EAE|,CxkM9hjPYPhXP(L9Y|Uk~$N)Ps;{C"i [l3 ^ʻ:un鼱1W\Sk57NiɅs6Gzp&5(ME|Wx{ VlR6b՛Bި $YûP+GMLa9Bπ7!nwϰSWlx٠Nۘ\RhU>cGZ\]bRO+F;?(hY)WN%WJ:!~BlNKnd*at (z$mKui$J 6O!B]PPWPVtrhGƋHoS4V16qvH4X_V ׸7qE3q C&&(q/ Έ33 hh$Ep"kN\po*H/Ĵ=P,8^@@;K MFGJBQB< 5W`wlBQkdjv:3ӁVJcq^k}Ut x4M6,5l/9u%b9SRDEV6&(#9g_ ` qNUzs%']2j{}.aW@$bHm6`>ö];hje賒MU~h?/е_D,jN|zݤH_/ d>Vqg`N+R{v'3rZܔL ;qeC}5.|]p^xfÉO _J5./m`76 I+!5{FZ?0-yqc ̚)wCA bzZgh!/KM>u} mm}|(){ioky?]@hƯ=X uBρ*e*g-ۃd:75gk`rH%{ͻHs6APNj.O}&2H^$|X/p=?4_|)}=bda[ZX9 75UQdڔ=Vdfx=5WcVn[_Rw'pOGZpuZL0N.-rDAB'MDey.#N f6JOAq,wN˝tU =ceRME'fbz=lz=~C\~VW+rzz2PF3=FBMdS(_͠V*A/dF zI߄)}/ L{H߯*7o%}f-2ڴalUix3g<:~|:k=2 e'w\R9@` $T(W\u~]DT;BuQポOIZ$ 30X-I9 *g@x"C;+%DoZ;wujQ0hR}-Ϩgѿu8UOxi: MUdb_`g%pJ)*MDdy(A8F ="s,2{3x'(>N\ XE =Kb u"ƻTnHfAAq'1ZβC0=ŗx/'_#[p~Nnx<؆fP71>He@ʆ%3;c|6?M,ZĚ_X'Iثٖ3LcO1>1k@>\\ i,`< >h>fHFN_E976x340031QHI,IKI,.N-fzzDD?1`f.3/-!99Uw̓_zSp*OJM.)K/e֎M?1Kxe*tx340031QHI,IKI,.N-f4ߵuGGGﲞl.3/-!99Uw̓_zSp*OJM.)K/e2-pC瓮Jt- ,ǺxXnE_8ScIJSP5%.1 ͥ-_ӣΝ/u+TK?< @ y>i#E a˗ٙΥkzV}l>XpK > fH[K\흲xX BeΏ֮G(K1ݸs;5˰Ȑnr H!l궶z,>Ærl6Y K9ܘ5lg E# 8":1bTKZl/QՍ-YwP |9űSҞj)$\B/$!!úq߶ZG7bnE Ѥ0˒rja>#i݈k;BHƾ|뎉~*dT77ZVm-U! 9l+b[ aJ{0$#a@&xz($L8Jić,t<1ՎfWq >76D**0+"_4 c$h9!~:#A~RtoBK xIiQk%M0 YsE=Z(^,d ._bS 2sƈ@5r^޺3]ϲ"/k:=(E8+Fd+6~UI^%N}~Wш zn )^I6=x͐NkjFv9[셅nB0Çy6V (1ciNYhQXd@H+iYcӇmA3-1R$.v> RP?3eb]Px΁g57f=6ڗ ӮKYY!6xy7r3ə_#+A'alLal4ϟn2JPςb ux-xMZpV2e;q)W_w {^%+/(iٮmbpIkVSwVK:,KQ%4J;u +} = Z iXqf /ʎ+v^Í`]j/W9Ɖ ;Cfy=m D0a#8"p?(ZbBC+H/k}ΒBc@YRKRl`SXcΩ7 E oIɬRzݲh0PLC-Tk7Ype)SP2j;gu?`V?Anx340031QHI,IKI,.N-fs✢I r2gZ;I]f^Z>i\|` ߘ@ևD)C'e&2|Hz5SLn_kٴΜ,iZxVKlG];ql'v!B ̦)ŏJHB 58vp8T=ţJ=F=vŭԪCJz롧^{_Jˮ?3gxο**>|j331SҋF9xD πLq#0 gY>{Z@mkI- {09G S"H k @^^!EA6<]Ma rb/MR .`R-DSK^)sJpb/ zk{D3 2_nfz`0RN9%H^=[/e yK\+(F4NKtΫW{\'xw|殼^<&(2RGsm\$w3!ދ_{|'G>ͯv^i`9b"t]ak]Wtչ[@AfR+ᴐд KRN([8b Nc0\QT#Jg4- )D_طDMZ}Aߞ:}RH5lp68n әn٭*&眧y7[|Y.ނaøފh)4ux5?6fn-݁XTfvKD#  ,`hQ#h`MNCYH)3N@grI|=Ӯ(mL4g۬doԓUUkQC0thu5Hc( @164¢\|]+ +~ 1i61<X|p( p3l^4D!U(nsMHy+%DWJ"94 [h7,=ږߢ>r`QG͇Kt!ElaW(^rKВy59ﺺLi~4q|({|aΡwy[pҲ(mn;qC6"ՙ g}Ah<_C uCޢa1ߪ|:L96Ћw!]> kȎ:MihhIouA|$ᛱPO?9 ’.>ܲkXh: Qa򒄩zR32nU>r!Ajld~u-r󔻂 tMe8:g/hwp0y\Ik iJZCX;lć/z( r~j~#n0c ckVAAucZ't!0~5 T)/3g>FxWIpGYZ% Y mCl2"Ȓ΂ T [B; ![9')=T*ݣA„D*Mwѣ7y1tty{2 [I`.9Z0~f"Mq @3ɞzN.\P7YaXu}qa1I/3*ԓPcBd.*Aqo&(!jZeE DthPƌtDu{3CP$r\ZD%EiqT ĭhFa'rd;[zh܎BZ˨`^g&0}K6 l\eS :VCG0E""t) mWrow5=꞉uM{%[iYK]Sَ(%jwYd~s$K$)4ѐJΐ}Oe@{3g5"~+J!t^#+ TbA8Hzn{/[ s!8b = =D" Wr:exY&hQb0LAH,:}XnGO!tkf9 cOmOxhX"p0\2hMaaK(B/_1jgZkV^e>c4xBv&V4?p ;`q۷wJ<9H%&R:o*z6~IFdV9b }QBE܅O.R7]yNoMb},?xVsevsܚKIR{M)AΆKKФ%Xi!P.*m,5nhBGqR>Qw7wgG}lnf~svJ?}2^SNtYphw!KX<_(ޝ. kJ.9ءd%qR"* $OdpvH%U- q&SӅZ,AbVwN[O/`4wTcP A, ^Svo25WR+9%V,Mdv+g d8NcN&cU5[52qp6a!d7X xd8{7p(@짃Dx2Vn3Q3SuRrʪd&)8>5^T_ 0T?!aAeBbNb28]^ =JO_`EN05 \/2B ,MWt1TgI'{ Puv.`rܼ8Q> {kռчjv[X$/Y9J?)T" g6U"r+ʖ*LulV8kpgun҄m!e~-u ҈4!8-#tGC^XBTú`辖d4Os"܉Z"T1-k"jZD?~zq4C;Eso!*ٔh?X?i> _5.`ǚr?D}eד ۰hc0ujNIGIeԟk׵dֵ|i\l|ճ5v0XPJ:{n4)&'vHn\y}f8"\7 \{z>C3t;Sbr"ZXԢZKqh7=k| Iy_HLUٕlDLb͞<>awo s@@: 1oFTܤ{Bx.[{&+2脯,OA25WX6+4r2rRFy9kr9BBx%-F8  g%%Mϋ2Nbt F RK68FS 8iL8l:8p胓xz3<8KXmQ,6<@MF6,co/!dBrF*R#ؤp?Rg=!xeKKa8ccKٝ! 0B-Z(2M񮥖]f"/o0Zȁs{g|\А81Ra%WncӒ9r MRk?xҒ%_H}@]1J oK[K_X33ѩ`Bv!>V5R:u.5luTBHeu6k =3եu9u w+T$+2 @ZtztЀ4P"͊x>fHT9KA߾*xas2 X#u&KTjq8@=LGg"KgHNtl]+ץj\RKr.`7_y*}>\›k[+x340031QHI,IKI,.N-fPmzu3.OXSH8d!̼|ikm:oU.1ǜ4RKr:\H[9]ѽffwd0.vxZ x]ɧ|1AhĔl$)m9dkEd+q uڦ-ڦ4%4 !!4}({͌4ծ,+C~{{ ^a$?^,v,D2%tHne8z$PYIe0:_'!5=W*+V, gWRFV7Qmt:4*QH=H* Wd,1@2FQB)/ 0Hb$AD#J%G`V_0^M k(c+ڝ[[} i܆dϳ\Rk:J|v(SIy0|yL-i32d0'rGld22ƀ!p'׸*[J-[l{6iHv;g`\e1۴0UՂi؅>w`-jFiO6YA+2zR SJjq&9skjR张Vi>cZGqFj/: ZebUI/Ѕu2 ߂r{x! Lɨr{ݘ J-%6\F1;"*Ώ!q&tK sxrѫ܋c$Et3MUԷzMG>_7㴉 #l&lΣMh`8>aEz9H[~[,2j`eẗs?f\ޭLt+G1 ڔ U8 \ˆ'nz^׆ՌӺk5Kt'WG)͝f J=l5uB:| :zet)LŤm`#΂rV Vʁ]KnP'ȫK5xb8L3Uy=QqI$ONpef UpdXof5W d?k#wkp_Q^ԕi F/<0fQ (b:)V)N;X" OKtk)EiX 21ȻV*uiY9E!!ɶ:ħK:ݓA[ ٘&,2w˜j6$-i8_7ژ&ͺ\DBulq>ӔmVfdٷЇ}zl#GoX2E' #>kY,;lNrlFcA:=67Mč|O-ѸBYFQ} "Oi{\:]w8m9nL\PT3}-Vlw[9[)gb#,f#Yb>˩g+35 g~h4|2mw؎Dbb_%|<=/m4Eq7&A] tq ("(w;A(٥e+ܣ̣ºab=OR+ɽ/x?C`RPCPJ_7_"Ek."3c QZlZ;F!O89po3ّW8JE6$3O@m9ˇqo!5;-3Ẏc&oPiV.{[4MJ\8F:~]e9X9zus1i sm3L'sE1Ȕq<ℌދloJڍV +yQ\9ĊN-yჃ̫!gRse.wq<6 h|8RR*xµR8Z[|ru/Kdq? ے O3/]1rQї%К`fmq&4̱DLE+bɔ.ncTy,UsH"t{ #$6"%#Gj¡PO*)&HD*BC?d? wiPB X.!@nRR'ud4h*}#QI= % +L\"Saa-O(#kb^Z(UBB$LI$Iȸ\A+p LJR T2ʚZ譭5AAFlĿ"(ӑ=cwrEK*R 3lvۂ`'lujR+J R ۏR X)ˋ[S|-kO:R SS )&-:cuLe5ŇTTM.*zRQLFYWDc= T&ngRch].xb-b,]kɫ.C4lE\۲U{ʤq5ԍjݥO(8WZJzӻY+8r3T">V5^{i(dO{&?X!*;`Ja!Uo-z)Cf- {cAHFxm6YL`š %[дz-q\( &yxC3V%[%eY>vjb^'$pČ7G":| nWD(X" ( []oaU;wsCP^w3ZaBGmTkqIhW v a*[r*+x-xhq. NN%8-7"pK Vۧ8KJW *;/_Kkvpl4ՍYg5FtcƇ*AnWTWj~ Ӌ7CF1dSTd=39pY<.6Xm-VpFarcPhJ"KOƇf': m"or"R.ע寳-s1*:akQ^JYZ]ˬ]kR:;0\Ʈ~FհA^BBuBc8# K@\K&Ǣ{:a@wb3\15j)!e4,[ .sOxl'O.ݶ50ﻢ^4}k}3Cw> :]8 T'0^60''MDx]ij&-U#Z*m<*)/VE3%1#Iu*#CpIص덳)4l:zH.cXbzθ?NMKqN7M$(yJ|"')%$QHaB~&K wwBk/Hc:Ũ3g)1Cd9^N0~lP+cN+ΣO:J7ً 5h*1 x?_x5ޏ7ql뷼\L:?UMD˛NcC/y7G|}z 1F]E\ʍrز,Qeܧo۩jzXg=oyhr' ,f#&xWkXWp $@.$HFQl Z,)n#@XkMt8UR.ۼ}Ne99%y|>%srsNtm])y2EN^n3Cs8TeeIвhV85镧IM83Ha*("Rk)-oafa2j䟒[w8>z1kv;{J$I=\I0tL2b;`!yL,`[R` 5Q&͞{GzdvnYG ́ xBⳐټk>b6q!<%7 ռnU)0t$\TTRɤ*)( OFfS5^@%g X$LD禘VJQR!F"R<'#ΪjH%f2\e&5R)p6d+)I0)~N0EyP_LXؗc"SG%VT`"^5B2\d:dT"htj:2ɖC"]jJI,^!_bSYх TЄ{rM?zJWoГ%PEc>9FbrܓkP|2b^0BX!XrGG6Bi'S s<~\=m̚6M1Q"SJ.S/Z@V0<3+%!+Gu fϧi $ihrt.Ҝvc2|N!?qS.O,ݥ&(6/ĚZ{֘VV:E9z[#Gj9ZH{xހ:jiwe-=O"P!:{v \v[ޠ*i1MuF8ŐXIfv^ ohK ʧ v `l|,Kf5$GՐ(yYn w22QIMDƤ(crDxP]Q;"jl׍;zi5^btk}S|#XܭuiL{lG}dzXG0J>dCX]މB. f)s`S7ი3OeS$52k,CDD&sx<@ Sv\%̑eI^=OL~\ʏƽd“w]D8k{>BK^E1=GKR}⣲c x.G}vC<#?]qs?yVjP ~*,Q մ a>2|l56}JB%-c'`v"pU`T7y-*Mxk8T 7v]!<Rz` ag/-ɳ-tq @uF#|Z ) 5 > #F&gxjW)*aD/!F6(P5)x*_G<@po"Nm2P6ZMMcf^) ٪WME.@Xn,"Plo+![H]OOyUq.gx? ,y9[0N璉x ?XVv.݆r+(>?m55~h_ `藈CB(*.-ߢ/^z'V$ o"ZC׈#]~h[DH!"H#ZK]A4:O_6UG ɑ||n2R? (X:HxX_޻, ..9#Ԡ 6j50 ʮR$m$iN~LDciHئ|J>lX~su~9s=wݓQk}~!`sģ0Ʊ;3UN3B_(l7yZ[ "V:C}pAr2x[܆@c?3c3-O*܃-ƶ;;o=L>޻#@R"Ti%rL,+퉪eUE*ɥydwbr#|O.F߲mS EVͷi/]_~i v ;Q %V ȕ2bwhai6-JX,x@-pmA. 1FQnKf#$Rڄ_oߋ(YJpcUDz,|tS75j!mJ85r!T} M T_/K9$>.FqR\QhSC ߳kyr͚ZMʘw7R;KRe-{*L NQ+wM嬧$f*"9tilD)(5UEt9Ȅ+DxC+v]6RˡJ{ 93C4HZHpzD TtcDCtVt݃Lѩä5*G'v=QK 7|{~9y>9O4ϗQ+X,2(QRm˷T:Gh102<b1l>1 E‘|1Ξ;c>T%8; Zg)2l}:%W(24 30C mdHIݐ`!X?$=u0)UÙd`c<7sԀs|zH8W'0kSPM($pFgؘ^Վj y륂1/SB'ÔaWI21{WLJ[űYǺӧ%v6GI(4e"_M-N^r;f g2i9]6DR=|Tk݅e_%|bJ^Z<ʽHL}d})PL%PS^V+w{)PlL0-/! 3yC@ bOIE~8/:C4;~t2%A?|A3ZZR8Ax-oҥ(\"9B5pI_cEuk 8neQC$uq#moI~di BKqyJHJ|)J%X]Ţi<|8aiuZ3uqxjP_d~(Ց*Ϋ)~WC;RS8>_# \k3H\Ɖkv~L *]\Kӯl4&GS@?C uPnZ_[B%8:=?g k]G(s7VIj_"@1RYRS= F8z72iy5ay wlz~v]Dn$R$Ϊ'#og(g$] '(W$^(, -ʋĨqT+ߙWN?R^3 'z,u[k % h5/=Q?x340031QHI,IKI,.N-fx{q,Wb{n!̼|13.SR*OJM.)K/e`2\g*umIVZS^*粱xXYSG-a8{cr'6YUV+\J\?yC*)Xzyysy(67lO"Ϋpv_>r PAR$4i#c&#ȊLb95e"i3ոʊ0;dIR6ISTVO*Qj= liBa*9-3NN08%ɐ41HA fm='|ȤXhuU Wd+IZ_nͽ>37z9Ou|Q9-=~)ݩ!cӲnIׯ˒/|Ed#^7DK |stR3(xy tb]]rʡkzQ.աALԣi≴OgKB䜕`Q{ O"  -"9:AN|"@ve 9Yr AN#;8Q*>NKG{rgV-257Y,|ϠIHdT}`<)0׉O3mpVFXwi <ؚaD 6'/[V{)-(ebw}l/@^da`_9%EezʽAN1?}wB%}ƿv"5 zsArtw4B/:Ws.E9p ~8t  WuY's.1 bsXcI ˘fx;Άp~yEXTibga.!pKlʷ= +UWK*@-&!*kch[2rSvrω+~O·NUh* zg9pCt{W:õ)8,T¨v9DCy(+]ږ_g ۂ+amnZ6L5=2n/,bHR+HN"1G! %^Fq .UkMt |5`+^oH\ķY˫rhY61U|WE]腭YTd?| ݰ߄#5ǨY߰GDAOi*6y ~7h e-ZBryS]GKs|_Ʒ<s%<]_p&$.%wԴnҭ;L;f7~-B7b;^@QoĨ? uQD5sbul(fZ@1g.E R BW|_ߘWāaj8q]gq/ :nk(]Oq[KxV[pW^Hɶ$78q8I"ljS&[6#,KJv B @iKBGx䁙`x3IVB5gkz{eڵ~1 9ɤ눸#b^Fc1@wL J 'rKȺ>zN̼h*KӲ?&ʔ@xI'Fsyj]iI-(-85ĆczyXʣC|F/x5 pJK|"9MfDfjU[ƈ` o8oOtZ63u5T@8V33C䣎~fDܞ3-ĖBTYA'Ř1ZPs\Ao#K]R$`vT z&!5)h DԜ"5Ʃ'W,Qam=N]Nf!7fCލa븝:|:/̗0Hel/5J̉J`[9V1\V(@$27`A+tl>9ҒA;-AK zNjMOA| t p^Hf *U/6FOHG ݝDȻ5;Mqw Ԕ4FYQCGe9i>ħ1Lj[A MbRvß.'KōK''hžnBF@$g4y,ʫ[?tY9G\@/Ɯ ?ь(;HvFSL?cD#KiĞ5GL%u Aq@!{a?DSuh\Y-7Cl!WX4al294Xj~1W8ؿSюse8ci8jStF ȧ! \nCx 4av:ު= *hl#k@lQmb/aͽTmvsQ .]5em4UFjhRLm4@tKE0fnY t՞Ъn0[nn-ߨloԋn^Ŷ%-4YX)LR1.R~cV/vUr7zjljxE{8q'|4l<b`2otX e(W)qPg-m_5{ƺ_Cb#A+H;&QfKf4~R | ~۔x[^㎱"F—Zm L+s88~:| S-9k.D}H4=n{}n/Hy.ڿCx o}Ψu66kiԏڰ,PVFk O=w?V.*hzZK][l#?(쮳R= ztl1Q>|`!^42}FnwoZ<Dl&D ߄Ufhfg fպ/ax340031QHI,IKI,.N-fxP>Lha >"Kg0-o?2%ab\]},Gn?+* xz:(ôxsWVk[\[8q*Z>ϦMJB!ژbd%m]h|V \,̧Sp%>aȟ`X=*(>a9dyJ]a׈8~i}xdiI ZHKк3(fuЕ~ 1Nj' (>M#=!e$tMƔ˶jdI]WG.R7 !=HRTpʲGQ$|zQZnjNB-ǫP˝Yu{Y׃e7"^@V~R^KY5m2j_Jej8  ɀ&|;LSWPJ]X_H7u*p3]x2!=ǥQ5Ipꠊ&‹?-ҽmשBuՈ 4=sgN}6^&NXM/#mi2L\7Mr)xDsp,"~{E j6]:/?%ܥW9M_>~[c˸x [pwdظb"5Y<}<bd穇|f᥾=gpWΥ%=_|O\V#A;E:R_&9(w3}3[}{6Xm12.ŕ$`#o!|#3` {qfd&gXP M vHIBul6HpPx /=j4WZ+5ޑY^&CG5zx.M];O8hQ]\i``D-~6ͱtt5q*rǮ9$PJ\1J\ J%. rG6&s>n^"/ISԹx]7 9wBrB6,gMjKK1{JΞRĂ+PDԐTqHΦ9 x g }xMۇ_TB8&oV[!/Ų2S-BKBjI|D?ۨ,?$CltIY{NeгC< ⣦Ax{FwFMFn)00p;}[4فkdK f Q|ܛs3O! ~=v6yQ¥2704L~."ٸ0h/j EL5l &wZryI@OjZwyb6ttY1n +jC4dEoHzd> yCAd}1[ `]')O,0`2X'5Ě:y-]gx[ xY!\&! fm'$l#+$@Z;J䕑ױC[BK֥'EKK J[E6 !GBh>Vk~Oo7̎T$ٳ#[imYъ 3Bji6ZԊ`#"'A%Q( ;w=@>X `xa6KBQ0l|?RP>5DÛxDi #T\(aa5S#d \%ޤhe !<&hk^ E/\g6ƾ%[[FbER0#'5 ƇDDD4ix*ےjr862 b8=1bW2MQWqʸѴERf(I.%KR>:TYZh)o6uz uY-#2&->B&T%$QS&STT)d T'zH5G6$$er2U \%"?GRPa]{{ e[x85RDEBM<(\z BMӲv4ҁ.S@8js%fw 8ٜ0sRx.UƁa9Lk`y J92̇gl\\=0y4)sTOfyD]Q#%3Xo9@rȠHs-'[dU> K$%u$ Rt!-epmkh#r2"=2>1L3eNS'*՗L )<572湜y.cIiDַeMPDF黀\D|V"CMeV,7M9j欩gj9ON60;&%1Uv.J] lNˮxa55wUlN-ӂ~w$S^mP^ӗ,{+}?4p*]\pIY8#_Ei*Ɍ;47ټӌ͙fmiF͑f&4ds!ݩiGyoӔTmcʞ<%!Dbw31D{"yY୓MxcoN1E44IL>D1}ؽQ-_/4%P|)tTfk4U>6MBFXːq W2جՊ Vk=:ٜNлՊ]m6z u9mVjI*&UVhdbgLBzO(BqSyĮH4<٬G!(Wgo&iP錐&,o>g{gjZT,ZxG"nm>03ߵ%S1rK{'pt)})91<Ѵ1A+ ( fI͞91; "?oSd{H)rH}[ˌ6-FAiMQB\gIw=Sȗ&5AO]&$!I4{7?@mO4I}ezf09I nDۏ ?Qv~~4$?f=7`62٠N6[%0nGàky tQZ&-Of,>ȫ}~ ,y;s-&-_ ˶Şt9m3y^ݝ1O~`3~0de4ڈIg=l؂|jl  6|.O6YF0 }7>1;F]yv. A/Ƈ)='<t|>&F|ԭT) Ԋ_ؼKz׊clڤdzl}%]'=֢3>֤oǿfm%7# u~:#oB-}sH˪.cQ+Q  %x0!ZqOwkFHޗ ?8@qaB _ " DTPG(UH58BEj!42 bTagPc!T3J2_ȅPe>B>¹1PL?OP;I%vPeF;UP ] >,ւH V_+`+=dBxL?Յl)=Jz~>J<2ul=S`%UjGQ9.ET9ӏk@ 8:x-r/d)g!tBoZ|{ 8Qm)Se31Z^^bs,`<؏ClO{)}DAO SOS` 2$O !zR-C!"SJ-z] 3 9!}~:.H5м?jrxX |S&iڦMۤm&#mS iy(R%RXDB%6Ztщon EeT E su:76҉`tsK.M-4=s͎ͧ{M-+|ۼ*7Mا* \ծ=R %[W2Һ ՞ E5GgL3އE| g(Z'/q/g#ԈjQya.D%jR-Ivw .4BX2]f8$kdaі2,fHH)fʬ^#R.C&)Iw0 1BL ,gf2`$ypf82eYWV5' Lp*VkMf osI_TK5aIr_8?^UĆJR׼{K|}i+fzpY+CmfseFQ";z%;f;E4@:%\N#) =M5^jynƫJYIj{+ MLopp}5s?yh#ׅAn+."\(FGu8sMȘ@- |\7?["T<%I%|dT+D>M1q:4n*kf!=-l1:nhX`nЯ+ѺhhR6M5 / Xn}Z<Uf|'(i:syUCj#}`L8fgcNa16iSf1ٌZx`Jѕ F2^ c$<Ōd؊&"RJ7J)=ff_@u/+Ӥ# "Fv}OM6XPochE -vԖM$σ^l?-d`6E63f.mA,(Q.~Oh'f+5be4+/[˄U]WYkRVw͖:SnHQnCbV)~7'n&;R,kJ[DʍlM2nV*Qxu$k]IjIWq wS~>|'kxn-^Zvus0XBn˳:q?NC8at`tBz~dZ+z< URTm=t9^~0hJu_9fxԦFŚ' ݄Ʈx!oY2N-N ڭHdKD3'R G nS$sU_|ƿ~>{\ (x%1**VEl#63Hv0ۥΊߚo8FEF%xrXKȇwA앪wJEzyʷ1KW3KYY?kW% 1#{Vz[pԿÛ$'>B."ޏ*5ˬ%+*JZNkA y(-A aUpINR^r>3b#QK1 T,2E" )ALɣcy*rNN3kjěcp}UE V)HW8[O\4>8V'{[OjM#V(l4CL-BDh&ս$BjE9*h#OTTUpnHE&܇,Kh1 K*VzXoz|&߇Nٸ 4&ό|B!ىQɄGƆb39#htBzr5֐p}y,{@^(U:e%uݹ^j]pb/Isi&Zj\$\W,Ur*%RU~S)\3Koimk 8N<"ϡ7,!=RۿGu)%)xc aqt2NhKCݾ^?Bcf{y?J @p?"8MZz>$!:lzx!#⠇Wk5T5358pm"ᰇ" ),ӈO%E:uçAomI<X[c( Y>g"b=;EiP(Fѳ|A<*1l`%梊<Gz|Dx sȌU,l p~%VT$R6InTY#!1ށV.cyrZr҅-E"e;#| fM73Xx=YoRA`.Am+K&fxwIMCR !֫_ q~7PrޠIquߵ{#2};' .3-9 H;<:rx~rο+[Kѡ6JEAcU *i}Z?O,Rh,M{ %A` `b,ltKN8vf :IpU%wCz=V L{Ѥ.y*T&$T -nO_x/ѝ،].},(HYW C7tlF[(Z0H C8U&Xv:JY6X`ML v~3f.lx{{WD9?$13/8 1'$U/Խ[f?jZtu_MC7 wTYn5爫2p[jr9urO+<;QT,aGv{ujعՃ1(%.µﴛ+N:y cR۟E޽a[r ,$-(ke_+V;<فium^lql}vA_ZiQ1; />Y9A{^E ևK]7ߥ?ً߭5I>Nw&dcUݦ6,*~K!PJZdRֽ-=3I_^jdZ7.dr~wY6u2U,b"Z~w&JmxUj$Zc~iJ, c$sr)s߯xxHsٜv}G?amodШeoTi%r't !<\S2K2nZ<>Q@`B]ׁͯ'\҉GC.|/5o OY4!N&I=M?P~-=TlvYݵ}zAQ4柽Q:7g@f&m(Z!२(}lu$Toξ'c5RxKcNf.ǂ ;,X"6e xAj0EGkLK!- @C5->](^f wJSG(3W~PUA]-CU[m]'Q<_YV/_[Q<.zjfq8k^acpP})cpP}:C뿏T_L/R}7oד'pP}):C&Z!SgT{~OR̯H߸p_<Z! WfMLQp栰ۡϰlf^+7 /P+3=k3}R7]ؿ8kn5ߝy|oa 7Jg\xSMo@_) BJ N# i*!A(MH@"qxknZ‡pp;'Ik_yx͇K/,2+B:)l^Im<+CaDq̷0:h C!<^n֒5ښ5WyB\&S#B4~G*o2AteN?ΟHGȵc3yGQIe <#P3{yp.8mvQCEQp=+Cm?:JOw"3ăH1$a_ؕhql/}mzDMo;2\50La-${-pjI9NمUVeP"*'Lyt3ͩaDF4ܠeFyfMbNm ``R o(EAiyTa&/q.xz=R[8)\Ix?=6WLLiПzjY6N!nFz!ODx340031QHI,IKI,.N-fx&3OOcbmeQ5DRϐ*VɯK k)B'e&2l(]e&kܕ%SvO ~.x340031QHI,IKI,.N-f~_uQ-UGuy]h.3/-A`^_BCsk>U\R_mIA5/[ [ծfz.QxQ/$@!(9#, '232 LLK x xE!$CĀ"}P0n""aʢ7!lvfBGkmj[k/kk[7m"UDim\;K iwK }%oLl,av&~z%.ZX[;*%uўDog:e)=CQTLꉮJڞa#֛ԣhVIEO4BN;zY"՗Y &c=j%ԙ EGbb%\VbQ#H@h|x4!TNzH\F$EHp\AP[MB=ѵ`:'RI9ţ9yߔ͡vh욻 TD/M#GG"fQ SYVH-p&*WKzkc,R'P#-^""ćqȗ a7X뀈IfHI(ڬq8ۇٵ>V3Hkti~eMmfYjj@_x;`$;'b$ F,OO%z# " ޔn'Gal`d9f0v|b36E)CJ3ùxbz-,OZ9fJY3 s(=FrˡOd}Pf \q(+P{|H|zR$l:LjKJd#.!LhgVsBWz,8" jz(ᕆ>czm㊛S /X1q֧R*f6xnz2qɄm{^#T\/&MO61BK#HM,)j.rDfln3#? w2>?BUf'2u9Xϫ^; kYK;K{l՚Liϲ4 Q5W\߇,d!006,{=D7gé>QKd 7؈q$l9ǻ#WyCy>՜/1_b686`;7H2(.Y|oFupš`%R.XYd}ZM~I=na m.17,wF03 p}[[%6*}`։d6Ml(!otǘݮL:}S>w8Нҝ^նj"U[.tP[0Xw&U+<ଲuVݫ7z򰷩sE ;LNι`sf=vvmwω+%wx8~:D1DL{T[L=-MpTO P`HAy-rǼ>=Z6G^?y= q~|t,:?>>0ö``y?,lC>=e$6$tY(DS g2i02aC gRx,G0om,i{ZeejhPt/ -`"t3yBMt= Ӻ WVk L? v%XF^]eo?a,)y6o.)wf/e>\<,dw.I߻p ό9[q%?B^fʟd/%+"-*?=ƻؓ=Ko;熅[6+E պ=@-eTQv؈[u`g-i+sjgvb{؈%1t\*voR{ο٬Oc V_,Ng\26|1Z EE#P%at!NnU27dؿi)u؋ʾ0G*9OP-y*rQjQEΡd]'(AfwpOhX"KQhK+!VF$h٨њ)ѐ5Z[Blhq(Q crZl,$%"6]f z4@ӽZ܋#g#,G'vH%=Ym+(oRq9Z:N1[qZ暭hA_t*6V 4' p>"(Y3 JK.:)ZȈ8htmu}pa8IwEb?rt{tJfobd B, @3YFzSF_f.gjBi`۠\O42 Ei=K[g>=ww\ -s'=[F\~y؃ECqXaq#'"AhDۣN!ݐ^]r^^S'"~X[^ttӓz̀/g_̈E!a+A0{UrOÈBt4^[/=Hw#cRFҷbQ y\qzf=IIF"\ ߌjt-((:^xQ+HdK4zY}: y?9ɛi@BD0l7{Qzb=pqdTW2cc{zF@qIɕܗvc5( @?! XkcMg qJ`A<@ !jtBWQ48ʺ!AiE0߿7# K2C-Q<[> |- __^ B7=0Eo aI7 n6@_̹ bĭ+"hqD9x340031QHI,IKI,.N-fzm%dzI{nb.3/-!99Uw̓_zSp*OJM.)K/e`azuVIj'ϫD,wx340031QHI,IKI,.N-fheݼLQ7: 4"KgHNtl]+ץj\RKr>s*Y5u z],xxX X\s ]`]]X`#$$@ 1,`ؒUkqT[k[cVMmm mM ¾Djֶzfc$$%_{g9ΜO8G,vFL^mmĩ.4#\0JũB&gn qZy(<.N8rәJ~^ԧ[GI 5O>z2ať=X$L&_n_69)L`2瓻L9uVm 5(9x ϐ-fp8T ѽiw@G&8I{.%"[BF:<'G2i71ȩ 'bSv\I|U&`/&t>mMܞ#O0cl)v6!oy MْtNN.)P$~OUw0^ BCEF1y;ŧDzewt_m.U&RfF~54C".sɋJH窦DON\.l FJW (FKIS29W5m Giɴ=v5m/$h?G~mybwSYĢ! ũ߬ս4zwZ,d;8(@d ,S3 5rTIL!u-A'2 FS zA2`QLMd8ˇ4[iE'`Clr0';Ѹ7UOklf̶쒳7;iϴM׭5meGCb=pW:'8gGM ͤ^z9H}U9-Fvڑyz?|͊ŢXLeDn֏B݁<.] wiz4Μr|^'.~Qktѩ4h\Zz423n8" \b\$~fDrI-g),sʒE:xVsռw*37Jhg܁)pjėAK |9|zTK$^7(kGxb";|sI{d%hy)_'N/g3{!=;G]JMCud@n}|eAuʺ1T 5<]]BgQ/5Aj2!q]8>jfKXQwu2O<\\~pmڳww@4'W5̛5tN9.;Dկ!%Dlޒ=n}}8+ɥ`ګ\ȹq툪ıaJ1tiUU84\oXs\D641CVnM_HŠn fiU < D7}boV h=1eOR3] s†[ +nq5v:]O } O j,Kϐbg||4MgoL({֪&y%"EwhvehoÑH?=f:v͎_~[~P8x>:wRg=+2g_S麳t7x}pLޒ{^6q1$d~ڹ7ei;Y@k0hV'tYXXMÚu: .*bŷ m io8Zs}@_Hwf=f?T?*;~rmfD<6lHy5/iBCl}u;8to)+3\ԏAOt±`Է5N)0H"S'k#Q.qA5X1~9OcpL4V_+\z.~#|rS,Ubſ9kwfʼx: IZi/>IZ WIL>K!cx&\5M~lG3e EA^i,53g Zs_,lYx޲"LwȎLzMi#}ۈ.qYupi*ŧ&"PL ҤSr*EQ +ks0aaArf(0?8`:P`b=F@Ng|# :ɐ zT@o2e3,fHPr.V.^Ub(\*ZV&'Qa3|Xax1i%RKe'9Xa-c/u9wjb'h|Jg-lmnYَIM5)je iz:J؇ו3x}Xi`G֬KvlٲdudNrPG-nb9'*%TB -&.4%I! M@-j#a}{߼cfv/^ E+:2;3 {w2X]h'R ]lZZ6 ˪Y76K oۈ/DvKfjB™mvHw`}t$I_,$sJЀ{`0+7!y+i!ylV`aU5`/Fagh<, x ٩aYr6Ygr'~\(7q⛀x118+z n{O)ݶ4a&eIm9LT/)rw5!7kX̵f,qDKFɤd Q&OjAl+)Słk:*V*Ñ@WgP"Ja sHQ,] F9ey^e^B>KPW8 ji \ʪ۔R2Ŧx7ŏ!eh75!a/JΫLkC:%!mE(=NrtYT6"ԂY>BHeKu]FYsrrV j(75iW5 `~ Znq*%O.+jb552"Y2H>VT-1bex[x%{I4g%J_ŌORkhȽ鍐R^^ZHBY̅x4aqΥp.->\NjQ}]]Jթإ$~L/%FS:`٦._J!ϬoL&Sy. ȕ4ɫt6;"m*y{cc(~xXٵ'vk֞6PDr)%]A{?^#꾁~²Bޮ [{< $J-V "O`R\'B`P~I|3⣀g܆Q:َoϒs}J 0|Uxml{8NIGʏ $#y L(y6W/?O~054}'3(ЌҒ9* f|nzM@zQxyYؓ%#di}AWm?&ɍ*=:ab}-l&8 N!h'riRCVP8&O]D9> l_');;7L'M<=&>|NL·QT(a 3+\-C Yrkâco6rSblI{PK`iPJo2P8KQC n}hߐhBlՄ7F xoAӘ@:mm-xqHHpXYv -VC_0s?كgg`ÏVde޾/#%Yfo+>{E> + =OB|.wʏʎC;\@5c>gzi3 '!S<{Q-7Nf$0/:EnO=d7MGt7̽D|c.+Retzyޝ@ \'cU侸WurLFo' 2ie0$/qϛ˳a ҷ$jܧ^l^ 0eΕI7;̚"*y.sj;*PB>A]3}v`9E!%a)%Ez y Ilj7\2]B\5:nwg1ZW?YU=Z,GNg6gz7ɜ"-Q3_wSv̚49UoE7x{(j&fAǂ}a5ٞU?$(-19թ43'%hr!4s~Q*Pd͟Xj:O$xWOQ~JWA%mq&p1߈DLH"D4 X .pp0OSc<ͤ);}-^tw|7m푯#+6:ygt)p~(]`(%y) YN߳*V9P\Gt$D,]| 1/y?ȉ8z ^OZy+/3`W({v4'C԰߆ >| vjA2FHKaڳW!(wC6b&/3a_Wka7dAh8  U_ZW[,-Tn\3ܟla]=;qq`"`"^렛aWSgtX^8bPp5*+QFB(FD0ȩ!ProIN3 r"+QL TRN4k/EpqTK$o':/Rbk74'ڭN.~NxJ8<('Қ#8zwp\ ` AVe'o,XXF\鄳 틝wn3֡ ~(s#J)<>ۅC 4~K,c Kka4g=+Z<}n ]x340031QHI,IKI,.N-fpj;jr,2DRϐ*VɯK k)B'e&2|X:J/O~&{~)Ip0Gx340031QHI,IKI,.N-f{J56G l.3/-@.EzoLLC˔TRKrSw-o:{: ,xkwGu_C$4!1Z !ri)t-m5]yR JCJy£w=ï;3#VNvܹ}ϤT~ikjUkw4yy_<#dkEӰ՚Y,ѲV IٲreR5P=:)xY soVآY| ($]5 bZI<[3fVo読1iFE]m6h0Q!wRF\l9DRRZe-SC+uYJ;=8jQ{D N>"j d`y,@вm BGbY yd$i(r;ͭ1/1/ul73j,U誱R48#pZX{/ ĝ()\ #b:Lb[mRCmF6!6"у\W^H ;]SBƩGhp])$À8;"48"5hkQ(:iݔ; ?=L z O͕HJ+VdkZ|peYԷYV>FA`5Խ&C+ŌH f :ܫETg:₼HXZBzKU#Qrl u\Oc [f)=>%w. .t8v(T |RIO okXZuY S` K̹3i?@zA~/ù{C?ܟ$oyI^O钟,c%co#}_~ U*g+PeeQZSR E늈2vo̞d̚X%s|6.hťnda'Są3V7-)̮ h\vX䜂Vj0᎟+!RO+<!*RuFaOL).Ϲ/xSx * :4,ce񕰍*Ll(*#|EDH#*z=L㬠ŦՃW$:WkX{44?B'Ee<|{^K_)IDށӁKήkPxo Oɧֲuty8Ӽc~YZCgmRMJ-Үٕm0|XeAL||4{ǹoļ pϠ 9o/gۨ_{ໍ_e|0a"F6xf{(X*U+[KO}c赸ȉ&x340031QHI,IKI,.N-fP4.o_~/z!̼|DV ߵ2O~]Z_N(?)+5X/=()uO,0Xp[.xW X\G..,oX` Hx]$ !/ͦ*l`C.{ɲ5m!Vm|vժiUkSnkFD~j}mjV=3s{Yh~]gv9)V)沉U|D=p䳉cFp e4.#:>O v$|Ẽ~h\5sC0DsTҵýBM߮p:u16-tYG61 vGjq&ޢjx1 [7/ 07MSsR2"|.u/1Ԫ4[/ KMNG\ޜՈ 3P.%m}m %ևr.TW \ʏ砂Q)RKv"{9K67Ex[ZX!'JD:m'C|H‰ns/Z\e@(0  ҚUM~f 6nJ7"MJhP C!Rfu(|0PN/.wgT\<). ?C@{۠,QaYX^@V|qqcN|pb޼dNA3"f-ƌX$#`m3  UƝh$ p'ss`Կ+@J4S~o_0:];xoSnWR͟?,~6َ&k`xLڇng8_)uv|]~L1 }^_xMs\UG#3hGw0ZFk+~قLi}1 U'lQ^'{]\bb (_2೻ߋO+ğx'ݭR;8[o"NtO򹡙zV]_3u0Y$kF#&7o7lXеI35uK8%2}Mo3> TnUξ[dz }Msx. ~.x$]K.~eGxUC`6-l"ʓ``_o,01<5 gA=KKٴ4Q~I)< U )~DV'2L YN0܇Xl,>Y"vy c{"b)>q΢6{Rl =,p?'/ ,< xx xI`eaOiyy#ޓw/<'m-mAN~էzC/Laݷ+z/c-ey/:v.S<s 6^Pp ^ 7eө1/9śybޜ@qytgY/oc!g A?nLMJ@g5a(<ܖaS֜U'&x340031QHI,IKI,.N-fCPxMQ e3Ȳ<}L7۩0C'e&20YY4&[9sVL)0Mxxq(SDq_fF։:BxZ x\Uof&4{B[R@=/EL&tZ;*e:K4)VQQ+K m);;**ྀ;xνݼ7󲕤/o{9 `oK{ TXi@w(c@$)hɌc)UEc.FS9[;TRdfNT6s.oZAb\28yh%ʇ 0+j=YXE>2C% ˳AXP!xUK^G%JT,mG }I=c"M*V]ԇjAf3 *Fb[[0t;c~ڂwymAG>O}0OauR\N yјSNUj-wL>h>u>"Ma)j`bP-S%S`QqyTMw05j=CU` ?:MH'E"5Mes|<\(RɁV{yؠ׃獢fRe0l0j5^jHǠN _)T`XFBvP͸Yr?GhR 45#7MdM1Ƹ,ƶᴆY.me+J`wfimιhQ[C&rq#4~PpHZz !ƌF'ҭ "{v!9;tNڄXN(X`6X Y/\PcÅDؑNyl^(Kl?)Id7♯6ődžA`IWB]=@(h89 $# ;#ώ~Y5i/7teM > X.`{mOrNCH Yl g X&PhNv:8vJ1K)iz4깎eq).:>lӄ]T ҧq#R4Ĉfa%o4iUp\:-Xp(#>*ژS@gq*cGŎ)\$W0ğa/äҫ[b~w_ҟ!};egb%JR-ɉ Iy|qyd;Xe6@QzFzQ-'>#JN\O\Q*[gX^\mǀC2^2^r7EYpJ#kQK<%ȜIXp>6S~\N#yI1cWY(m娲׹O`oeLbLJ+aY)>s'&žʀJQѨË/SA$fv;t%Wc[WvqtuM* udtˡ#J<({\>E¶]Է6y`}'flil\R43. gQÃ_F83s8ѼhhS1ǧs ͠uܔĐNcy UZ&Cm[V=OؾmRiN4Iq6quQ܆*;@K̵T)wqWؔcWK0RmX3wu.Fna՛Y!c.v0'ٸ>iSwanmi\mDN~Р^1qO{M`xjq>a ?JbGQbƭ594Dc51~t3DdONS<~$a>c2R %] {b#2חp"T,Ɔy3G`dȎJuQ,-?it-Yg~RHx@QS˼_tb؁poqq3:DlX ya2(['q-nC(r;#w!}bYh Vi8< 3Qq .#SpXipt6gC% B/2zwF/Nk Rzh{8>d)~Do!qǐ8Lķ8Bw0.=$*>$C$!Gf'NXLem^O=zd^?L8vۖcy:o,|~{_ދdEEm ǁu!8O8g}v<߇0~Q?.愊t,qWPdω]PcvzƮhqA8$s<"| e8zEQOe-F:%e6RB]x340031QHI,IKI,.N-fxH1^cЦ7Jl!MC$uyi ɉΑke@{+TQ~RVjrI^z~Q.ifחov7 [.xk&lSG88J3+۷.`Ȭ[$g4"Nh7OneQM'D˜ֳ#5BjE%* 8PkB-{x Wڄ ⬖,]ЫDki.xc)}b{!<%x(f ~ x{iz?Ң<̔T̼TZEҀª?р:xMOJ@Id(9iГɋ]H-"zw~&}1̛6xy|~grpC֪ yG0ܳ=pps>lr gRHQê?F4 IV*M{~YQ4xrI3~0q+VҐF>H(vONdu#ȖlVԡRaͻý+s˝֑.ݻkk6̓q6o*fvxyo9~Ixp./ӏ1l21qdQSߩ@VI-O=F@Y_Tf'#=Ľ ]V8sux4=UJ ֨0xբV.EYݽJq3m_ AD%s"%kJP_Ǖ;G"ƫT.% sox::m«RήGۈPiؑ{N*}h} bIzzb⤤PU4~\on+tS]Nٶ6be2 uN@9mH;.^!N{0 %ӬgҫgmE 'n,%SN=QDwVos~r,1;)|D>m>-ajjّحG<_n jW (w&hL%se/+5KC5ڶ1V>;aN|Wt6V91 ?O·@P]5 {z]Yuf4kWXLeM^0w+ß@l]^͑SPXWhe!2Dmf# o q.U<-*e_[ @qȩma y8f4! 9<sn%Y+7i%Fg+o}".ᛜvr&Y&9SnQߝX$؇W0R6^uۦǬ`Q<hjXf % UR>Ùǽx % UCw+dY˼PKuzm:jn34;ZBX 9=#( 1@zegY[,o9ڪ Fڈ f>mԜi!ZPXԬTcWKKvձ|#326|_W,fcJ5Tk{A/Qe=/ E ۿ.xBT;n:CԨ`j$\C*+=yZUz[5snKzoȻgf/s,6B2:.\bf.9pfw]v)ihXmxMLΖ.L(g+F=8|Xvc\Q8].~L2zi+ȓLnlD#f I}C)Oޝ4&@X=h9⩩14,-ݝ08*@tkh;jIn`_9p{~8݈{`̫_h tQQZ$4'z i:JQ'Q;5%/vy^*_u|Mr>-YļF{׽jsΒ@ce\eK<ڄUCcnuͰ ;q$C$Z՝GpkDW\["J.;ke] 3}lJI L/g;΁PGEo!l 7)Ol'C-a pCls!f_7еu=6)L(scR:I]i5;v[k:1309dG=Y^,O罱3M=N~44ă@`9~F!Z+vKA2taMZ?]sH9\* ZJXv] OrNĘ(81)6ٻ/6vK W`@RtqSpʹ;y !qH,~~VݸrJKb~y2ε@ ĥC a?lFš-}Fz d㖆"0^$@XpbfJ㤵kJC]Ew3Vd8}~/!nɹ+p < N+8?մ- V G%=PgauP3:YVQJ{%;Gx\9jRkm^PxVV|)΃q'ۑ졔$+[\UM ^GDŽj>Nfɿʔ.ѠK IւUS4O%jC,AoSi("_J9fC<} b6w92{c0fc[_yg7o#VjVŦ5dN@\?}FIBw'NA<tsBFNe]f}6zyxޫUF/ FpS?6y4ƊFla}N4wob?5DhXI]ZuYoKMc'}VWMg:^ӯ5;{Ԉ)5G|rLV֖FIĆo-cՖyfgڡ ؜:FL_+vR1LGUӕYKг[#AGJ@t|ߦYުC6 Ohs|xH//$@Tx̸qwfA`$" Ɍ,Ny :,: 6 MJ DxxqCBQjIiQXЂĒTTĢ"<%ҒԒb%".̼tĒ [h B(k5y"xqj HTPt \94Kx8-`SYj_\Z\/srfZ^JjOK<\:9'3 5$(>K03/UXX@2(g($Ys)(y)ɥy% >~ļ"d$.H_ppIQf^:H185hUf~X_bn*D2PϼT@CLU(LT( Y)h9ũ:Hsq)4.}t07x۔2yCf5OFg6U`(JM.+άJ+L)PU.HKQ  Bĭ7i&p; xM1 @ ="U"`E8sG.A"t\Mxd V`wM=z/R'Fz=3@꺶[ҏIoaȑ;O@IF$[xAM ;]4xsw"T\$j." `Ԝd_WX,UP `ũ%AiũnE@vqA~^JjBkp5Xm-W-FY~f̻-s lx[q6 O'{H۸$d;%Veq)g%甦*:xge.ݻDzB~ܤgHi=@ҡg[Ղ ܯ,ݵ _(//c4jڿ7g rxz*#ό6OfeRP/ʬ+I *I-SIlNuVSPfB&޲Ԣd\<+hT<p=4oxQnA@X Q!R;i'B 1 k}7kR3D<<5/Dr$[~}yg/Z&g_]>\ނ<~ ƖhlSgV-Aſ~U̒j{}Dـۤfj vxDA@=^' yҊ +o^@Pim,m%Q籗25C1?|w',*LȖCŷLT0"5x5 Fc˜'4E[M{%񲖮5qVĩDbEą>'{Z%jMw6DN!mS`!)Ϝ3nLs<#kci\lJHԖd7-V(xUN0Ue+ID":!!@@#79cW >C`afaXx fI$wwgOd /n;i^B[Fdc4no-ig)"K 轮@h˒ vLHjM ׮RCAp:1$4cn%Vdfn7 P>=*[KmY"jMHG&7z[H!(I0)̮"+ Bpk%'DyxJ@m&KSRKan&* zonHij~iQ%$[Ic\H,is*YTwv{eMzB`Cө'YUCa!"'LYHS{67 V}r ě] \jF֜b1h&ԈV 1qtD&UB#FdC,6LM"K͘s g-uꑄJ ԙؾ'u=:V׿OOʦq.AfL_]boҥix340031Qpstbx@B{Z8cI2Z}e~٩i9 {]1[-Gei/vTw,L $17 a\2qs϶~1>6 ENK}hs8= r2K2SR2At^gF=>Jݟ=2ד˰n*ǫ+wmںŖ% p=Ω99.՟ eWg((/O:&au6Ͽyy%E gV,&Ss5'>aSг`Σ~kUE+Ir:Wp.Kiҹ97afBY~rinj^ H!/_Ʈ ZsjL Ǣ0F=fHozpd>립\K1Hp0e k2na^%,_?Sf٥up< A Ks_jfԥ',z¢0AHx㓒5~v%0&% >2=r⌸^zU\\Kw3m^p[MYZST;yyN49}5>sO v[ڿ&{~o++Or _>t"+UVKkє#%7gh#锒ÇIΆHI-)/Q$S?6Oa&spMPs}HL5.ǹH,$p/Mr9v'K|K)9.b;8ve^B*3 fjRIUg֐BFt]B?xҭ5wI%ŭXOacC2jc;# ^5tlkOTu >"wYY8>ꋝ3_fr<;Is^'3ral>>zBC]Ҭy }%P)ռ^a,JBZoG q4_Egt0q.9ġwm\٘_[]*NWM@v;LG1ܰ75gfZk)V[j0Z[IjxT/-,WJ|313":a;np;y<3zܦ^jUҀ9By~h6DF;O42|'AH+ct[WT yv4vU6N^Ćx?Cf+j]р+)1wø;<"9pii c8Mt;E5>;} 703ߦ)x340031Qp MNMIe(Noғ]y !R=RSRS2&vMW=}su}-fBrwI~{vGsFED~{iߒ-jń)eH)4*;V8>x]k\[wumZC<9HOdsjsܻMaO>-W{Mn;?Y_uN+Q2TP3ձ-:j"J(j\Rsfup$R0UKsmbeX}܃uk čv}?WZ4\6ԕ2~U(̱]U.vGS8;cl*H%dbC^gdۺ }[s\pkƶ9,eO*K-*ɰD i[dec?Z&归E(jx8r}}$ȾIK@0dQl:םѶ%5a\xtSX_K#51%( 8H/cpsrf^rNiJ[~i^JbIf~_RVjr^rfZ^JjOK<9\@̼T<*s}KKrR+uK2ҭJ2JRS\`sW5! Z`SR2sR]Kj'o`1dUFޚKWAGSd5Cj^ Џ@23 bE2x340031Qp MNMIeNZuюV0aC^AQjbnPoz븚^)^#jZRRS_뜟_TPpb/9e;ӱer.ju]Ź 6yEt׺J,-ERZR k?\_]a,C:'qe0{!t:oK򮜼,ȪsJ3`F)<<|wwi)VP| -$J Y10e8[&_?ݗydsWpe8fB?Y𪨥<Ԝ4hLd΍}?!|sYv.GN% ;nBk*?J ,x[vUD/471;5-3'aX-NHŎEG $g‡-Lpn e~723HݐdIsȽT kB(T+P3'O<.ܖJ23 B _'ķU`4YLI1f|1,9f!i5IM\njʽ(:NOe(Ď)''PFoZ>dm| {+ybx~hlI-;U").Tpk_bt_]]]^L⠪EdCc2/waF{k"*w"yk~d:UUFfg<Է'qY~/'E7RAΏpgJIޚco/;5R[_ MUߘ6HqƯQԹh`%d٨!SCG:XSxxqB^R?W[W|Spy3rxþ}=F捍,YKK}iR3nLb AO,ayuiHBjPJSc fEWs9FH̷Q 6ڛs!w~x{#ť_뛚WY;QDrCPfrFbQBZQfIobrJ~^bNFD!(13]/9_4dKbIȌ1)x9#[3|..p&(hslL+x3w.`Ē̊_X 8Z٩!>}IioxTMkAhiS,}]H~([[K"bZA&Idݝm-%GeEy*ox_6ۤq<~>?}46mnd+MbuH| ʎ88;@^X9 Hn&S99 A m EũEe) Z\\ʙy9) 6ޙ%J/nrg^qAjrI~P!3$(-19yoKf(Zsr9pBu1xTOA%;PAh  ZP~!%PRHM ld;vWw셓1}ųO={Ɠ7nK[̾}ߛ>=9FnV.q5O[^&yP-p}P,Nl>2HCȎfRb>rEԝLF-lY!':.bV:Cw#ݬ?Z\(kSCd ںq[v,meҏ/b9|Ozp؞gɩ>Qm;'+떹e`Z(!.i6(~vb,>uɫ#t($eX=OuJVUigRDWE,=`_@.dX `KQJu%Bx]*\}5 bβ)PL}lh2vdhl=zM?B$+b&gt=-MVKc!*WCP_SG9?#J&QPX?9߱e>=pZH*TXg:Vk@aȱd9}#ć&ǠP`2&!ZS3IMAx-E~0 {2=ﻳ).牁 ~{$zb)0wؙ񆧁L:xx|۟H5q6_q4xgqKbؓCGTv֬QsXlp\/ 0/:: `wE[K6Saꮪ~ H5"*T ,(ic/YNh>x[OA6" 7.BMp Vxh*vvfv Tc d+Gw%9me}9;g䏱L`q{s9?g90^׬ EE}͛̾qeo ☴faF={G>:dsAΜ\J $[n"71cQ8>oD>/:|M.H+a<` `&LEkTԲ fALNS݊J ((qRAx؄j+n ;Ç9f54AE4QvG0Z5-I/*NDrW'#-Qyjfy7$w.DvYs)ؓS0xTU{*(8kXF0T-k6ԈNGi8\z,hV+#ɯy&PE}f=.Q*,01/ŦV㲼2+1`@Ma2c. ;ݹ37ܫDA(# ^̈ы("᫞Y_{zUyKvC]^ 1.U|5ԺDބ|w7{V3jc85T*7?R+$Rv(DR-lG u:*kvgww[G[2}]rol9ČBܿHmb}xTMOSA :X QsZFK0TC@ISὡ 7CfCLwغ`Ƶ+h_[ͽs[g ĕ)~?!w(LPCe5x4?yLj.dٶ$ h!H}Jdʆs=uypt\rB<$T8K\ .kFeSvp;;>ELmIW~[/ŧ]%isC!0GlÜ rX,kB#5BߚV, ;NYa ֠[jy3,U׶&88m5tObN`1* mPÙ֯.NF ctmƟkd GYܛ7$OQ(7H~R0LohأlksX{ яWтl; ɎPg ]ik&G^R?GL]لP%}=(y~VB+c#mz\5%tmca^#ǣ;Q0n`wa@"JDMXn89,v;3.`Q[$5ߴyr]cX:l~oL+UM&2YfuBCf ͸@#J(:ѿ :GxeOASbk;⏒m@Ԕ ڐ6N#;A^LzգGW^ۗvwGd' pk8,o%[;+Mi 7[.  Ú ʥ:?7;#"cuC!)fq&+l N 5W ^dZ76)7br@ _ھDWʁڣܢn/yיtRf8=ѱQGV LR},ol9UƕQuU:`Ҵ(`EJE^һB1tTlLzPׁrp(<[Wxj': 3щXm/ՇTTu_6ɮQ)NV*z_97 Jm:tҦdLMrW!rl|Ϩq @̼ )k5U aiZER(-@# )p)ФKAq2:w t+De ztO)WLo=lw,CR7C\UV}H2C\HvPx;*_|fQ;LbEyy ~% I ߳bfN,NLʙ̩Y3q47kP(5%6z?.wF)[x=JQQG"N#ČP* rƫޘfTDA86Z-5z>s~#M *-[3ywЦ` G\gvW.vֲEzf:_B2RriK&xި௖G#aqbCf"d Lֶq&ɍBb0Oׂr8s;QP5#onkHF-N7ʁ!nDn 0"MO,Kgr}j4 Ӥ Yx5#Q{61VCh\s:@+H0AVg. @ =E5cds ""/)UTD'R#܁LJ$?dscL % xQJBAKIADNE)-"4S, ,h!.9^3G+D\u+ zVh٪p|?B4 K$(6d ҒIJT~ ?ܠ#QQ] Atg' k1w)kGɹA;]`6$JA.doMoW.6W$x{??&lxc[Dp ؇ ]/QqdȐ: 4m;Ek?%3׆5.%ڏfU{w>/> C/prsXakg,t❷QּT2ݵU2)` N槆f߂hN 9) Bi~:x{Oy\N55|ʂs89, {xmOMK@m*R衰^bժ-"hxm.neKK/޽ŋ?@77T-3޼՗}]Cqn-wKJ(n.8z?~/w1;!) ,ZEyk-)WRQt/gѩ94dz*O碷Ԥ` 4I|mG9jK!t(`Zfc "pB (ؿ R(B}r&}(WLq8%K9 ?işw@EiͶG/o=g6S_f6P&Sxw f!"X'cZQ$x{G_KA=()b#/?#4嚬xb&I.̴4NO?gPWxXdMf-wHI,.V LI-r+I-JKLNYXRRTZZW\\_dgsUTUU_Y[%-AvڡUY bBC_YWslYjQIf2s~N~QxjNV2 q*-)!19;(4/%<$9c6%ތP˃:xUoEWƑ-j4^ )ƍSDUi|("HUVj;lvݱ4́c%n n\9#@ϼ]DD/7\* <+ [wϿy?(wQ^qsaORkibb7[K[A=/ )bNO#!޲9"26#c{mZڡ>&߹yۥMSxR)s)sheО*嚺RZCg:&g']_g ϔr!ye"&Uɕ)/&V]U) >AN`l bd'Z8Lt6,lrjq| ?^s b=R7w-OaRI\~[(l%צraA=Fcsdwj8{F5qUCCΜ^о.%sZOS^u/[eY(1&2y=go>gg)бSN=3&sR7Ўt0Ske33b6_0(u #oo%WӭpFhZ:b.o<i8ݑ@-Z牔&R+L=^w<1#~/d/fg2!n 5?SU&@T.Wt=:&ğ'q_\ @Hx{O_KA=(ש$p +5y?,pPV2`r?jJen )puX|mKZPR-B $*kď|y Ԑlq'Ea$q]Zw:C0FqX8 >;\{nNx;sgFF[X+Dx;W_KA=(95'gFJ^s&Ns r,-/Rp/JM/TSpN,NM+WI'zv@\KR u 0x惌$3RR<}B]\] & K*[sdV1Ғ<ĤԔ̒YŕRRTfVDYW^x̻W@_KA=(7("e"oL1ob|E,(:ɤҒbϼ"kYKK3R3K3V;)hJӑsSsrӋKR'IC a*+(/HLO,AqLP:Ss^A '-A k;qA|>X}dx[GH_KA=(9?'(<5'gF^&Nw t,-/Rp/JM/TSpN,NM+WI'zv@c\KR u 0x}*8OKӷ*m-ǂ-@j! 7KgV0L _9{ѷ7<1y?K_8CfϲCvKI惂"311`],4gDӼJysՐyeWq*04!0넉l2]\,,U6(ț z,+lA+ǝ' *ط@s0<3$>tPk+{.CׅƖ`)䇯AMZH7tI|;123~g۝1>=0B>U| `&ȫ/l~ |7>Iab=&O?ճ+6O9> 0y7z 8aMoYJ]#xS.*VSwL<]Zx&{u49̼ҔT%\Ғ< S 7y_Lx;ʳGR_KA=(7(?(3/%39$J,X$'Oc&ZQ▙b吙WZӆ6"N%%y Zy)@ y%@wäRJr pKsJS1%+\99WEAK CZ8 xuSJQL&bQ)B 6 @Jh̜[';w ƭ.|> Agq&F0ss}}=9)d{Wl(!c~/t{_^ξeB)*}^9Qk}zJF8W\0lAQA 3CU,,Y$Xr8`-pAAhGl(8cb6,{`AġrNIxCԆ3$PL'7{|AB=qP_p 0§~#wJihv瀿!>pӕ%c|*dδ,K4bO\)N|~dPՇ=|0V-"T5Ê rjA69X qxh%?^2eNxMOASc[:PiQ##DCP^,A)o%aNtwg4''n4cxWw[Rmzؙ}7o'`z ֍L 6Bϡw'&4Z&VxcJf;tc6~r n"}uL4 Tڲ!JEKf g"2i>Zs.E/Ⱥ00 &&?[t4T%6 >#>WtD3V~_ fpbNP߆$$^†Tm((Q&r%GLߑH:PwawM5%J09Y4m50b KT܂Gkr +4:et)u'(\pAlȂGb_:\/ПI<-5})~.Zfdbx:~a[6K5]f4|u _%ʚ+JkY$>:eI!:`' C_{YUDZ|B=Ges38=NhadFQ|m$Pa`o@OiDժ{6Ǻ<%ܱN8;}l_jzڻ(rOm~w+4ݹ1đ6&eE> &TuTB@T1y:^´,_x{ķG@_KA=(7$ hH6 ;=,HԊԜk..̼ԢTd#&jÕ)h%攦B((#IfeQXA@Ef^rQjnj^ o"Ғ<ҒԂ,yE0Z.Լ..e ЗfPxTMoQ (< W 4ШF\B0\ٙ77iRWntaƥ o|sϹg=gچѲė^~ϸ{[ \xb'rẍ<\&YLe=<_UKQoy8A1 @cMɑ2e ڷQA'HYK|#c`XVuxsx,wQ[\ &b?"uG -mXSuW@ep njCQ4ugM@$zD3r6'9uɀI;$gOI}[6')ʬKxUVdkbmӀt 7wƁk0`#wmVۣS,qj&pqFg&k./K`N< -?𧎶蛬Sx+*ºouZZRƱ1)-&PUć!_*]x̻WH_KA=(7$-35'e"oL1obZ$ϥg9YqrbY$2JRSQmx{:_}SV\ܓwqqgd槤jr)A5TPOJM.QHNɉU(N- -N-F1KeS&ArT&HJkHT`/Rox>W}of^zNOf^o~Jf_ V  x{wVnɜa)c;-.GX eoLx[\k!;SIfc/,'P]xuPJ@ GIp K"mKM&f`v'|œFBO3|||;^])]o9`&S.+9_m['cA]׽@I3R:= JB% Bd*"%Y0\&yf^oM)|$Xk5 WJQVJ9A_&"%uZ, 4o)(0|ݢ=H@{ܱ3l &/Ђk|x{,]a=.f " p+ |J2zFiJ:\ X>ɛ86cf3\—Kx{wW@_KA=(7$1),3|ٌD&6p,-/(JM/TSpN,NM+WI'zv@S\KRK @4x;Y@VN>"6y39 tpIjAAj5CrNbq_pHjE[fjN|VQVʂTĒ ky% yIEi.9% )`Ғ<ĜҼd#!Rp`Ab%P)he%SHA ILJ́hr.D3Ji`MHecM檝 "Q-}.rxmť_ꜟSYW\\_R_PYQᬩ`d``8(1%1W-5%H& D9ہ ҢԼҜĢCTD7?/'3/%$J4l?S<}B]\]\ .4i5L>:YUIp#OyfJIP5W-Cj^ (4}-}t)ex{ \tEN#]MԊ׼ה̼̒t+ `̴ĒɊ\/r&qrqq9p-Jdkxɿ5ZTmxf1bZiCMԊ׼ה̼̒t+ `̴Ē7me Ix;ɵA'$$,3<8*u "@Mrf^rNiJ{~Qs~Q>SW\\_a吙WZRl\VRRdfG9sx鯯_ZYW\\_P PȄq HBb^ U\X\Z7ąǽ(5=R+?#oya;~.]B3Z +Q<7V<6vE߉Tvid61V.@$4j/t+f#|?~ ӥBJKߵ)ޏT,X d UZuPr2kȕ.%ҮHe,thХ dH0+RtCETط63Q(<"cYIK%f6ݒFJ  |ii ViM7DF>b8L)GS2鏦{8bWndJZA3"N5~>|Hlx9~Ft1}.U2/\c"_[<ȕ y e*N? !-FāT8'(@c|Dh/\8\eG*ؤGtk,6=(S A6љIR>{^<99kv<: %v7#_*[@D 2݅ƮHp\Y9QP84FIjw^<" V_Gw8{G..W(Oj95*J@j9(y`b)NZρe?=8 PF>O'-]_5TƷnmvԴ{?ڞ'i3[:\갊(y)7cwWnzJsg R; [$[)xmNyMm+}wšd\H݌aѳݑ߰\; 3VanQ]J5mw{#,u&zp)t{,ge!Mp?Y,7C6_D'i6_MXHbz? ًUJs[p*9t@S9pBd\f}woh6goڨzM"HCsG,B}29-Xe)(YP>#tˎ;}ǭC0.Y[i:>#U oz^ HU0sp*nl*}8gmT߅Z4qpbnmvMV5[ M?wq+P:H}dDQ8ЦyNޔ9}l3y/o$.o_UpFuLk+^"9%K_TTrs.ba&'qc6Nm[WGBw μL ?]u1T▸\-Pnj Dzú#֞sJen@Q*@S8]GWzF,g03fdvW{d e/.sw9}UmvHrیHGb ey?obcGE竦Zr.=Uy8lwKn㊈v5i7[ m}6Oy~/gͅ{n.#n绊cb`m1Bue Ԃ[ d yejFq`t9#EYLd\0udOPKVFlRc)?;ińGw ;.DObRB]I΄ Ϲƒ95q\ ^41gL02Ϸrr˰*Ert5L%>d[zK/ja$ sHSÇC#o)}BQ_O+QjK N%O2v=]Xht㈼F+9O+1d xuTOG-6 6hD" E5BAMR.A]ϒAJs ͩ=c/V=9Ro_蛙ň2y{{s|']rD}./7/X^o^pgqNj] pI9)X1ޗsNZcB840(D$ƒB0SSʁuaP\ažSFs5eLk6=K-ܗ!{.LѴȾ͈r+ch䧍%g^]Η|o >YȡaIJ. K+ F=גsu4m[SQ5h%-۞]ϜU^0S/$fk0\\@KYYL<ٶ yhP'F*\Mb0{Yliݚ5!4wE#͗b60΢Gg;Cvy4HNZu8$/Id}\j#qIXk, }SҮjk',K;1_h}'z Ȧ|N8GB8ܮNV s{ͯiՓi/gRzx5d )~),c*FљSL.ExmN0 BX` !0P UPPYR&a@yTeg`dex&_ t]vM0Ɨ\{΃1dq79<_z[F?~r6aȘ){4v+7ʥ 3 #RbAo!dPZٻ(AlFa*+ӌ[` cOB@ؤ BGJ%K`)xH <'Q} ̘J]k+,lڴU~ZD˲ x e?ewseQ[aB]} 3>xAKAY" Ѽx}t(P$q}n3[AZ0"- C-w4Qj ~w|}дvXb6ч|pҠA~ PVĆ^srP=dRM&%󉆮g@lD6SsU& NLbT-+a.MG5+)BV'M Bռ )FuGa˜4o,qK/RXQKQv9KZ˲\ѕxoRt/?bx[+ť_ZQZ>y#De-6^Ź$%6y(7s~N~QxjNdUVed)a+O'ϼ"X5J\kC}K2+RR XSiII~VqjĤT5ljJ&\=dniNIfAN[~^I16EXJR򱉧e$$kRRdj6!PeyhR&_ &(~B7Lfsff.ө,Imt`hݏNN?.I)5TKAN.3ԾlhXkfyHՂ`#M - ՆAT EVݍy[sbO\RmPdVQ!ײ殄#~,Z:2][vHm:0ŀR 0 Ѐ[K($' 8;X Lv@0-)*S:.T ZEY1"Ue?c̊$]C)2K P'=M`f&}pvGxJND`rEQFHk|(›sHc>rnbQ5R)܄,toKd& w6(\ "3H%‚TX00g&UA4zjpms&JH-C۸ACu&0̏4j_~/!5CԫlZ`?]v1>d=L#MwB/TZI?+.7G=huocm%p_'ΆHapf3.ʓq6: T/U{._R㉯0a{~{ƨ :C x31w ,)i`w>jh``fbPR=Nwxy[Cyj{?b1'(oYۯ>|{nqyii$N ]\~RY^u"~)rѕ΂wFݩsA3#x[̸qBZUqgᦔWV޿ZNL rOxkϱ!gr& ꛟ3+d% 1xϱc, Cj^ 2LFbx!n'n8 f 1x64 ٌƛs&{pM`騷q/u/J12KR2츔3sJSRPU8eQ䒟\WG[i^rIf@^1"u7eQl$[?y5:ʬi9!uWslf3+f|?f!AC|L8x340031Qp MNMIeor柜`M0PWPTo:Y~z/ uՏ >(rJ3rY>p§,jL7GS^XPZTZԳ`I|N.Yv՜]î'?%:eiƖ.*,«%$da\䢷ƫۻHϹnWx ϧt|+; y x7!scM[x& LᕛWwo;r7xk9? $3)3'rrPm)k?>qn8xy=r;ƒ͟E^:ExWoEW!}-UCKRMMکKI[%(}8%E2Ewv4*^ :[/U%NGđn|38Kvw~8 ]{{T~0M[ڠ?}\5􆟚u )ktۄ u\9vèMFuYᤃ9(% }8rhP;(X}7\ PU`.hpk"-g2+HqPd)*y ~8[VD/ :ŋ nY<" kF(<F6CuLpDq Op+3%!u  ~DN T'A6:EF::Vq8ϚJaG *6%wRyБ::+BU,NkN<6K%ZiErFV֢>m?vRmlt/پef$(*VQ@^u]{&(4 Zap7eW\wC/9fӕt-"Kr_[[I~y-;}N~$rhL. aUZ_͈PžZt'5t:DAj+`Ub`w`}E.ʚBYm'{j@+ =]%8_y`ۧyhх|EF-9- j 0,c`b۞3ʜc@vxkqvЁZgsE<¨u`l&2meE/XG k1ڌ0UAY;eQ8|b\eeC4q".T@98K+G~_=,/D~1V~t]HQrxd/JYOz|{܇nCf-5u^{ 8akʦʐ*-T'# YsE45"CSyuE.^K.*wdْR)t5 X"8Cc1{x.juj$Z* GOue^<O ['KBkO>haF<ү+#j+>S޵\Ex!\ff5p\jlvPhXj{CRr@LjyHS=BRܥs.l7s+3^ u0t6!%AxH S3S;W+FҕzpXB? n_ԳjW{H}d|L[1xI D'm?f@fsvg3l2 8^\z!䱭6ח-e vWYQcdѓĮ!=_'S˻Tw7巧lGp6~sLt{rM>O Ӫ{xk!!5/KHfqKFi8x[˸qCU.PϼԢoUw* 'x[˸q?'&}?\7:3zxkñ!5/KHfqH!< Yx[s:z?cJJfIf~^bBnjIF~JB^jjJjBIBQjbBEfRBf_Ԧ?y%J[Xk'oPͦ2y[7q`_TXXX!-H-.N-( K/Zzs?\E@޼onL%s"ozw7Jz{Hd#kjc'JԃvcMIG}8TT?tBP,Q>LQ |R,Q#yg} 5/O[*ï|qZq@P re\+p6$W=#h`Ɏ*d4i  mnZ{ @zUaN;gsWr&=R^᳼>QofKVbal+ij]w"{q9mw\lN7G ÷S;AKWojJ [< ͛ w}V|W*]afs]D=/&v9J=WxX |S&iiMi6}i"R2a R|niAyL"Rߨ M望uOl97͵moswwwnw%Z!,VhOƀHo5#Yd8[B=Ad:b1`[CGw e,@O1*G}Zn*'J*hRrX fdm:Jvՙ9F6i !#3R;Bݜ?L\eq*ەbY2("8QMW*oJH yk{{gvF-6 !(d=,EܭuhyyAl+W35ܙNJ͜E9Fz;l%^ nfr腐pUf!/ 9r󈥼%[!0 t]9ohaR9I0%SJqPxXAVҮQ_-/P"^$ C,((3Ǚd-Z!w榖8J56mTD2L29撑B7NSXAvJEsd`Lt5lA&/dyv_g@{U 5fr$BٛV`8f([sz_/C^a3ҽguOwzGS=se4Jc |"onk=m&[lYJә0]L*Kd"*B$ 4$.E)NUs*]{+-WwHa<|fZ8)w]AM`2\a`VP8^{Ar~ACpk{# qX2) r/p!eM 9+D*Q&3;Iwj6zǹegy mm4u,P3~*s$6G%k3~%啉52BV6g)V[@pDoeK[aBLmƳ1Ȯuvia7^nTV.+z Jo$]ueKhyb0,:*ul^,fFMrC1R SG(4 jWŦ>Z\L?Y-*ϘZ[5޶2 TKJ%Ҡޕ zaЍ7J6W~OQ~I]m/|NN:NGzqMVuu]}|wB4Bnj2X$deWKk]״ =4Q >{&nLŰobWQLB؏[թ UՅA"[>jq(e1t1uZ}NjK>ZCS0:7%+i.Э[U.kêk KNs+D;;!c~oqt]]U*M6(|v A~N!?)N?'΁0'C e0{=Xr7 >ėGe%{GOD8!ͧǤ05'|xΓ' Ç@" y0!kP#z 2 :Q gb*2zaCz4hPL'W6-|83M %E& ("+gl^툞e# zC@=(!z#'9r!:AGY: ez=H!*Dt݋(=ȃ0=ct?䱠X:/lAћPDzM b{A^O @t#D(G>DqT9 cXx WQa<[-Kʟkf0x Wơ^aKkFxxqB2R˾V۽R01# ,xxqBȁ)>b|!3ro Z'xp7Ag蠨~uUA"XڳK7+3Dؓ%mAhpw[7uM쭳!&k g)\PI [u2>x |Ax9HTժlo0ٹܩ-Zhox340031QHI,IKI,.N-fPmzu3.OXSH8d!̼|c_`@EPEIY%zE ew峩||zw)n..xcC8H儹l[G{Kn|Ƥ1ir6Y)b.x WmN,C-ؓk4.xcC8Ɨ2]xE5& dg,FxxqBȎEF_n[^aebF. g,xxqBH?'De9NʚoČ\ *xxqB/6sS!QEEobF.˅ *xmd_*A/U1Jɳ^;)*D5]!K`֦pZq6^S!{ nebQjZͳH/|xTlD/.MkZ#2Y8$=Ig>!SD׀B@*YȲHJ')bx |Ax=O|бQT[&nA\, x[4aC'G7Kp48&(%**DG'eDK R2Sc@r\ `WY?GPb5\cyf^J>PWr~^Ij^I؈ԔbₜJ}e4@C%k7WxxqB.e [9opꟘ } x |Ax/8_4wl:KISX͊,YD%xp~/!&}jžIY% ťEe屓e&wm>&{FyQIļT+ `̴Ē<-Mɏm&xcC8HoɋKuWkW_>9,ɐ 9xxqBk5goob]3r=bx |AxmF4 }?؄L+x;WxcC8H%q_Gf>:9,U ?xxqBHUx}!xՄL Kx |AxC H5[=!/y,{fG-<Ńp NxcC8ӽ7_Ω429,].xcC8H_TiWʱXԉg 8xTߟD=Mɣ$hm.xTh`?\ۗshmLx;tWA*E/pbi9e̳ݮ}Ht&B{æ(!sLJx |Ax/8_4wl:KISX͊,YDlx[,~CIyuzFx! ,o 3-D?uӟ6ӳ! OxVMlUV?{CH؎fN'.R*)6z]ǔ=BB0'ıBˁGĩ8 q@\^v7/ޝ7?o?o./(U:q  }~z +W47J fOTHc㹜uf%kkjpTG3`6Z6|ql`hK:'%{pXY`M 7Xh66p=>rei FmL(cQь X#EN`YoEӲ]7i-AؠB,)}dǁ)@4u_' SMR70ѝBMFa!/dO[Y$F'˜GS磣xfFY=/K9ᘎZ55XMt#dsn- 9,$pH= nE.S?B.;P ZYyBY[qׅj-rwTT!KB$]ڑA97xSK|O EY4nK~)<+ lK[ڝ.)%~YApMw-|tfLVF?Yp,JГ̠{ V೘ѿN]SMSxcC8#gϹm/pmAlT"xxqB->6|>yvk&s%Č\ Sx!%(J\{bDx;u.fC*Z`R䷂HB@%' YK% K$64yP$jxcC8mF5pz?49,Ү xxqB{^՟{#_]|xČ\lx9n%X2WY󨝱Y%(J\{bhS x Wjɽ$.zE{Ö~ѓk5(xxqBHs {1!(!_7"x |Ax;#o6>^;k^kÿfYKYmNx+-(IJM\`)+3YUyr ^&x+-('-/ ^O^ y wCxklUm)Y]ѭ]wzumӅ~@,"mdD1b0D s)  +D?x (.߳~{s<眦>mhS?savJuˤƔwlI=)%j0T?=wGdP ɩ/: ?YR'M}ڐ5;GZXJ7]kP;ǖzhB{y:͉vZ1ZӷW\KWmYK<>sdEK[;^ZՖ[VA#*ݾ%}**̡܌i#R G-Z W2{(;V绷xshk4 QSYjQQ++1{k*Կl`cˊa@W2&*Hv/忊MMX?)fi$ʼnkM͈nlF)o}i[3LedG3גdiT}-9$6܃Y!ElTZeҢ4(uJ3NK<e#| cׄ&0.}i{ʕގdwgܨ* rZ>%{:aESݒHN_!_ܴ/L%|L-6HdǗ!9z&VÒpA{|G41Gܠ&#r8GfqQs)(c2[f2g&rV@=I2~JT~ ꌺz/ZbLYO{x*`g1o{?+)qz^/P 4?`cd8Hွ+<hlhw"O"y Ga~Q5o^:).1(:" {Gh䊉 /ڠ|qհwN]K]x/i^L;+֠c(T =P tNj"4)bdnp&x+-(goc*fO b&x:d'gQ0l .)<=I&M60wkjIxcC8H~i)LoD_)Mf> 0x+-(㆘֛UǶnoWΝ; *'x+-(=1{Ο*"8  X}xuUKoF^(-K():g!Yv:&2PTH*aDW^ s.ɹ({JAs@.)F%7&̱RX^Yq9Cs?P<>ſB^#aC<ˑp[nK)N E)tAƽ(P(jn muklM1]3NO6y wxK)&4 0J^$ܮI/d 'JvJ5VE #_(F팼|]yz'BQ*^ߩjI;Η5z(|ʋe'\A\ì򧆡?v=d:)Z%N>(xu!Ghv!E7M z'GHF06*=F88KNۘ k{9Ò;7wNv+3XqNIXܫW rdx(w"n԰GQ^\FUwk*5!cq!CukϧUظPӳUr[o<_~DC"-,ur W`PoX鏣幇/Ԉ ;vdyΟ9C[8MU+y+G=GETj𹝶:u <-iUpJΝ 8)%F6֭< ֆ.EyJ$3PT=A%k  u=ϋاǕQ=S?HYUjxeTKoF֓,)lKUID*PF}l  IT(OͽƓS.r riA/=Ρ\U9;ofo嬂J[ r${' 8 p : hƁ= rA߀JmTwO6 cO#_0|*y%2Of#dIړJq+-U`\^r6 Spregup?ALsR7@y\ -<( qRWyG? dI {j:qk%?nʦo-}V|~Z"$ui]7\b# v|.DG"-Db˩o^g4#2]+tmZ[}.l=&lY'טV EW uoSYuc߽!Zq; ϕ B2#!y_7:{}S쵛~NL Tx1qG$sãxJd-xZdaިkߝ햹w<no#F {NA(jD`EDP u"~Ɏ(0]IL~}iӻ,#' / ]x[#Ff1zbfO(Aa0ǡ(FƊ9܅ Pъ 36dLe| (:y?cT 12&p2N(y%af+y%!3PmyL&Ws/e/ج8/N8xxq,^<5*1v?U<8y:uʞ V=x={C1چ/`v&.f }x:y|qW<ɵ 8#4vPLa>CqIfZ'ie*ʷ%XyU4j׌9<$aumk6g `S|t309-,ԋ̢(2iJnCG堂MQ~Ń|\Rx |AxHjE)<*Z\Yu ρ ~x+-(mRƢ׌w*5 Cx+-().3\.ޭ ظo } x}q1 q2u4YPJnr-3d )sW12Lܜjb<> 1Ln0;lFnULn4R4Ff9QF&)l$+h0yLi2,0TG4~"{=,xX%^śyדkJQ.xcC8}%kބ0ܕB&8l 3x60jF\ᔥpc >}D6ؼ]C6PmG˝iExxqHogt8*n.<qxF *ACn4 AQkrss Ntb;@H~*Ux) f֩䀲(8@CGPaΓ@HUxcC8'7tڛ>1K4Gl'*(xxqc >eF&1lN=e" 5x XFSԳ~T5X}   x:|4"T!Z.)/2yJx%'Y{kIx:憌U|`=3.)%^śyדkkxHxc;$#bY瞫Y4e[z\ x5 qB) c<&]w40000 GormClassPanel.gormwNf$VS#*gRrgL,iiz U뒷lAxEWmcl. RIҥhMsK&\ВkTik"N}I*5.r[ Zxg qBD~jXTqSr0bV&40000 GormClassPanel.gormmpL9APkH=so݁EYm P]#&نW` @]Ke`fyu9zS70%*5?'x8 Y޺S\)m%8|ӏ]̸!{U4Tsx+-(rPEF g,,~"] dxcޏSRu@x_Fv_Cf=F.fCxuk5F鹷+X>O3*W,>QYx+-(f~-iIW_y8 c8 x+-(Z'fT3^hz|eqJ UxcC8Hp9ͣ9~M/[ql<9, x31ԼbEO4U[v|ܵ7L 3RˋrYpҹ Qb䜟WRSpp̋.x0&13/`Mv[{wTvQeX"ګ~}wUf&& ~٩i9 yvl_UXSxzؼ]C6PmGudx: '$TpyMUl aM)v[B7` hp!$Rx+-(R`ӹC.k}Qq  xm{tw6.nMِl~ MHB ?PK!VKcP[Pbk)+CT@_Gm{EHcZ j959'ܹ3ߙK{(Ok-<=M!{yvJAgW rNw ;-;%l\{[KSm{ֶ"|VVWʭrĿDqHs KtMWEŴ-c2ʴԋ_;"Y .>|e] hZ|^rs^Jv[U[[[{:DIZlwBzŤP+ޤ0}1ץΦi:Lu E8CN)!ּE E)n40)Zs!3kg5jJJI|&8y锠%ȿmNHZb8_.LI[$[LJuˇ)"hReȣr\2-E} >uNs@3.!L?եx@"+_ @U]Y9EvA>3ǶL*}]:85clҘ҅2Ѐ<z[A>V4VLZ`?\E\gT!4ullo3fbh.jȢlB@qkC~^3ZU-+xoLuq_:[L6 k+U߁=.ެ$ߢ*FuV&VU|B l k'&OmߵNxW n7lxȎwt.Xaܩzmn-1[퉌\m(5.\hCuu j(֩i3c#Bk/RHʈ=:{ܧM*ʥ?հ6c#zz5T3~z.[#E-+R1au9-G;ZnnoH!F2>/oGC1SƟ_q;)9ڡREi A5 yA2W hZ[hw4;1?z&=_@{A*V 3p'A@ˠgU@R>ϕ3 e9 }L 'zܩxcC8Dn9"\JV?<9, CxxqBH|I${7oͬ>w ux_ 5u,m\1!*e%kn@) J} 巓@D?pzzPFJX+9[x+-(4H;;gU'_ Jx:JQTl2㝐gFb#40hpA2ʭ5U֓kIxcC8Dn9"\JV?<9, 7x?// H%;cP.Jk!P : "o#Y)cL S Ox?//L!еlne怓v=4 Ç 6xxqBߜ !m:%t?|ʼn}ix{w }ڧYGaΞ}f MxcC8t+%&9;WϘ0UN8~r9f 9xxqB5fr%uXp@Ax=xT .nCaKum0Z꦳|?~;Yd}]ӧ~?-Hbb;z)N(xcC8Ng{ txxqBHǍ'E;ssagLP;x! 6D?pzzPFJ~AxcC8H\Z߻{6U3}Do`xB B;xbݟ \62ᓁkcɋ5RQѼ𘼓xO@CrwWQN2*BZE100644 WindowsPalette.tiff*]+\k"zAsقΑQ wxcC8u l~59la\-xcC8șoLIIVlg9zxxqBwQϞ*l+  +xxqBH֖u<}*Z-һ761# m x |Ax=)HyK291b, Lx+-(rEWD>ۺ_V_ xcC8HGpܮ1]5qlp WxxqBA&e3a{#}i-x |AxC HM 5b Ӻ,afxTZ֜l1<~/,iԳPLY$iX>ÓS!`10n ]x@5~H~~%cxcC8O`WB;o}ar6Y C-xcC8w5 :%ǟ49,6 ! x31Լb= NҭW[Kx0=t Xaxf^J~y1Y=x#й7>{9?(? qv_-;ox&13/aMX8`s:{˘ L\K_ݳ?Y{Տ׶/γD/471;5-3'a9oC?5+_qZTxxQ |SJ=mzg'k Twlٙq\h,q+m68ľ\IiČ\l^xfAA388_r{);100644 ControlsPalette.ma H1[c^X:8__sDG(xS}c,-uxLAAb[SAj*O:6100644 ControlsPalette.m%X2WY󨝱N P$DJxcC8HSu -W>jlѐ xxqB[s/>s%%3r{x+-(rwc_sN6rK]%ߩE} bxk!sr'N&ɲlKyڙ&o/$̡* $8Js78p0Cf5OEY47tN^> ϴ\7Nљ~ W7oX?%1 % x?r?#wqX9Qas*K&T<!p`*S\lS@8L.1E| L6p #zl)*nad r|[)1n ͷT_)lyx"3MjC'l%)4[xcC8#S o.-pl l۹ \LxxqB<m'H[?i|Č\ xUx |AxH=.3̉:$1Ĩ hx+-("Q=̯+]y6c] ۺQ+x W_j,|L,FkP-xxQ |SJ4 R&<.pnώEs웨7Sx"wѰ%>d#1 xcȗmݯzj[tt||d#3 )xuKrҁ)|ڵ'-4oDM"] y;\Qu?,עݫ7*ewUQxuKrҁGJ]mx­>E6XJM8x+-(=`³+ksyz9a9 -xc4hzx1@' 0Qq誘hT0ّK*\1y䇌q fk YEg^qAjrI~Bxf^J~?10!9Ē&؜+ tVpx:ꌂ}B,@ Sē.y-bo%Zיe#0VJx!//8 =4ȜBlY]#4_j,|L,Fk/ &cxc?Jݤ'}ªϜfe&Q&/ x:0)6w~]nU;;#4"vޝ( rb¤HkZIx:gWAJ`ij#4_j,|L,Fk\x!//8 Ԛԣ̭{0d tгL S II0x?_wC݅wV<D x۽6 &BF: F: Ff: f]5 6D痥:Zs)(DG'e+deV$jSKˋ3K2ak؜JKJ6adԘ9@0f+6F&}ɾ֎! B7%,JM+-N-v,* ζRt \e(c9Tfxq6 jcc'QU|BMͩ$?o;]]IĜԒT̼Ĝ̼X͉̒"Uxq6 '( ;gd'[)DobhA]lndy{-nx W_j,|L,FkPgxxqB޷b'%_:CW"FW~x A#=0]CYP2x#4ܢ[cyϏIFkHIx?_R,'&F?ltbˍ}x$x6 jcc'QU|Bm T x31Լb~GY_{7[ʣ7L 3Rˋލdwh̤}/鰕C93Ltޤ=so1IK-*fP_pe<&}&Q; L\KM>r\7mni LLBsS2sR6>d٨!SCG1TRx6T58O`n%C믜&h2Vxf=@ rp+A'.>x *V׍iz>~[x~}C>XJ ۫o6}yznf@'x |Ax쾚g+ -J0c 8f1ʾ :x+-(WszWi+9 dx{wHX}Cdک3n"w_GU'80=Ki- xkj=!xz<6G119l^5Ev''uQQbsV&&1MdS\c$5ñqcVX HR,USlؼ;W09QPb>ɳq„''JBEU6~x`df&׆͞j,in蜼LK}7MA i22n3k n߰~9KlGxcC8Ȟ3^4 =ãNuˤgV/xxQ |SJd'-X@m{&NT7nxþ} 9ֈt(f9َm Tx:a&H(ܬZ{ԭ.#4} Pf?Tk`DIx W6h 8WXŘ;kEx?_He>W?ˉʕ}x x31ԼbXMN.^oue׎DM 3Rˋbv1Ҍf0|Z\cDs~^IQ~N1Ç?>SnYTL jAj3RRaǗ9$VQeXp d2~oʺrƀ0C3wԴ̜TMY6j?Pǯ|QVSxxqBHOk?{y:m3r{+xxqBH_eG2q81# _)x |AxS} KĮzf{qOۺ՜Pzxcj lbV1T?_Y .xckSuPdF3Fkmcb Nxuk&{r&pocp3($椖$.2$\{'ne"cަV YEX\x! iz U뒷{Hțxc;6NyTxyz\ :xuk\&} y}jy. V\q]FuL țcxc w>\i4Uef=F.f@ /xcKul^GHBv#3c  x6 O=OÇQjN,<l?1/nVЦGlhTeExuk7:˥~n7jo՛; ȝ,xcsk5)y"\uz\ /xcHctÇMn~5f=F.fY Ix: s?bO]Ǟ ]"JDu.(B,2]&GC _hIxukCȓ{";Ӹ>4t`]h>3wȞ~x!hJMET:. dt1x!ܖ586+BSo.  9VxuKrҁv,'>bk]|(FuVsO/|SS8aCMxuk7HNãy_.,u_#'cd x+-(\peOXX[k } x5Xy|TENUw I$,ÒYʖ BX%aOoF(pP ȨSP%sw9nhV{B5cP4yVeFi*Cwr{౻ocgQ, MCr˨9pet;lo$w0j. G̓knj>;p>#ێŝ{f8O8Y[a[-"5PJM3j1m{d؟RQKhQ:T vQGḓaRc%e 0cJvz̨Mxj% jS =--ӎ1N4E'[k_רu$'}PXO!;UJ jNSi EBD?t5qKmh@Q}SkF9V`ҨMZ蝰#op'(Mxԣc7Ʉר-9Fm囃 r`{+ 8OO?S %\hHZ1V2D%z"L1 Xmԟ(hJe,RO Z/WOͱIQHaSh6?¨B~u{g(6=<څ>zVTJxs$1 ]Ȏ{|v(I wb<S㳂$WCAN;RF EQıػ3Ѩ][Yfn^O=adK"<φr`_?[, F"Fq^%y#z FNZzߣ@rp-R &>@7GFCN3٨d"愌zY:;sRo5 5<-wHߨwwH0J<ĉQphDFhb)U4Uf{ 1~1(pd`lO@ݝ-XFЈRH8:Gcdևx LJ5EIwZ˂22t5c22|QŨ: 8F}ʺRqL`14'Ny)7Ϯ=+™9-3vO /P<Ȃrqkf$L;wV($EVoQ/yp"F}͊l[[fCsu1;"fe8Hr!_4*rJ>LJt0 Wt{#'&p$1F]n<0)/>4_A4{~IQ7`.Z5XjN#ϻu0f)^F⃉h7YMQ.hЖ<8p5 ;t.I Nm87< ˠtP0lfRΡ3;JDtk#m$NHC9Fgq:FxԭfI`6=3MrʎQYQTu5g#N9BOCC(G,P.H Hw*%p%£39RF(lrY2.Kp%ԡB(F/7 7z9@OW^8R`nQ"iO`IյL5#4RL9I҆abhN*$Oz臃F n*a5$ N*$aOx afM.˓ll&[Aaoۮc&΅l# ]pMY&6_ L|;̆oD>0qq6)XLi /iJ:áaJOPޞjg\R`'V2S[B{ bꇟFSQh ؉ug`=>Rߓ /1cOJ~%qF랧I8Шc}qa*#qw;!g\$aowJ'Sz:H;W S}q z] ᬇ\w2錇cv<ʎ )& >&(At:z5ӆgkՓl@Xp0$)r X8,Ejβp L*z6}Z N =#',̘(zՍkf7Iov<9V_ot"/p 6kC.5dž=sh'XoDWoEMzRQ3(Y_eAeU.+򱔠Lʄ>Ue1He!B(<8_ \~NBun1q~ O$?4m*y o^7[,$ X3φ-(ra^Kf|K%X\.~eIqesO]^+,2I6Ղsj)İw2 eJ>q>qظZÎ|#aqmjҩĮ YAҙQD܎/=&OFiw"|Eو^rhc`ᝂs ܙLw Vޕλws\IU6n'_RP4nFBr5~BԦ6POVP7Wt_SAAkYIx)gK,UEu`Ru/LSn}zگA]kxǼ\ ]r{~h#>@K zm aag :̛ki: nG*~A |?]@ظ  \ ETFg?Lڂ7n):G|RSSSN\p/ BMw6k[}dmJC`[mTkrlנz)=GpKj'뭎ª:7 ^@.?Wt\_׸^OoJtfߔ^'M :y|ԯWR.E6y Rh Axf-r'~"^翁\Y-[Hj8?/fd $'d<9[ϓ^("@K# Ÿ|C+B8^M֯ҳ=2pheObk]|(FkVqU-x76bSx)eJ4>*ً¹R;8j100644 GormInfo.plist(5GXO,_-۪0wV⛭ w-L`b0IqNBBk8 Rֻfw+(U*R*T꭪TU=ZUz魇JR yk;AC7ާWw==O.nji)YX FyZ.{GN٪eDgҿP6 !?4ŏ[+2YaK7qG<_ - $MQdy>+T ^Ә+a;uOshIMt/7@EE"WE"$>kS}Mn,Oz(L+JQr] te|'_uZBj@VG+T**/yI|y~`C/~>@S˲+#b1LĠ JL$o]<&lHh/萛P$`ʫn0Aԑ&` 0Cm@|%]4)HIAm ad4w,Q>xg:Oٯ}d5-.\⍌ ``I+(&3VB >>ŻA0 \{n xIl.CZdl?E={U% V >?Tf9Ӡ$>]?P6Uj*ipqW6g%7ZɏD`w'RDǏMɷdgD~ʕ=~vR;ldRڿd쩟q[Ocdyxxq&vSah-p4V[u0'=/Gڝ M" T &6{i?;=b]3h%%/c^Fxl,|4t~;D*6AAbhx>h2(!Ɖ`ۉ("L{ϼۊAr9=8 .WUʕUjɐgV1>)1^,Y&++Q2UAɚ(5&۴j\U XF6J`KUa0S= 2Y)UP(Z!:*٭2tͥ3ضDh]ɀNF^2ikZ2Tގ_rDXjսvD)4 mwvؗ\.FbbkYgA\z")l^ :͊*%Z:G8NU2 7 wg>o PI}~\ sx6wQ0ƣk\J0fg=ah&tk7B? c/>Y̍x:ҋ3l1x+5ВD% d+7v oL.'1>K/v8]nw>I.Ov;6 z@x1cS O,>"$ofR>ލ;+ 3xxqBHb{X q 3rDAxA <ݓ~[|HU{ L/xS=7Ҫo {8ԳW &MtHě&`A *HJ55ģ}p  Q<&DxVMlUV?{CH؎fNJ@FQUvcJR^!!XT!S9p@ q{owc;NŻ盟E`˴jwU>./~rafF iL_:؜Q VYh\֐o1 tBE6VaXf9^g`âб`d8;mWIQ3l024WFE3*R`9U< fYMbv4J af l|<#1a3IJf7 dBDEo`*4|>>mf;aRS騕\SsՄ@w$1B62cOIyOJZZپ^}ݓ!@2 vNo W F#t\.S+)( ~[{OL#wdzǿGbWx0 v~0JaVy_+jfɩ]> 9,&̃{pwI=n-VT*jt|ʦ%ƪf{Pk޵Lj:-iX͛zCסd6 t|LL%tt$C~c?sTj92L H3dsD ̝fGnE)S?B.fO(#,=VЭbyxG;V%Rȁנ3%>'S,Z^$L >ENm{:t#%ۡkk=ӉK\&xq>tihY=E-4WtG]^Ϥ~8<lSE* 1=T0 #nZ^8*u=.L'U.R=WZɩEVx],UoCGVɤ m <8O"Zb"=$@]5D&Zŋ 5k\MX*z Mj.DPmc)ݒe gw=´=7*SW/d2#7sIg1aw+x=G|^N+ܤmcSA? XRk 2;XK8\| m(Ew|4J)9,~;]H_ SK4:YApMw-BtnBVEa01Yp,JЗġܰ{0V೘1A]SGOx  3ZBٳH:7ZN*xTsԠI֔hmJx |AxC6ƐUK&ZLQCyڔ<9`!x  Qiĵ8٢⩈% Y:3xxqB;{ݵ5-ݹabF. x!Dqiտ3$1x{}7]&λS dmeSnYTLL @9?$13/)f8z|CoEyU ?xSxsMmF+ ޥ7_Ag+z\ 0\4T@/+l\g (&X ̈́"cx!чĭ( |E2~ FxU//$f3 3=ZOilVIX::`8 Yt ,zHĴA+ '@ _!Fċ d ѿ$2?cP9^z Ht5v6}rW{=n/9QR3l!]HzxVAoEH۪iPmۘM-P-vҘNi+\4񎝡*s9B7ʡ‰ޛuI²yoy{%{X$;?({cE<q4eȘ,: RdQDRerF^'5&Y>\u.gk=e[w"qȏ[Րd{,h].E^VǤdMC8x6vdWy/Gڻڿ8?6h4c>hu]`+`mF f- )I6! Ͻg8[[WBrK"LUu<څ燎_]V ]h]»\nRQ f)#}{?Lv{bJ[tH:랮- ̐Kd6։% I"w kڅGcU䟲%y)+S+l=B593|!1C"& XB2ΏDns+lDaavo4oƒ{#e9W` q\DpVg$!=Ez:yBM!p8`!>'-+ )/^SsʑCߏ D[iʂPHb,Aꘪ8{t0D,?vw&q77V}W"v #,H;kKoéGK @$tb5IOQf [Qa]˶`u8S;B8eaDzxma-?gR%!Mԙ;mODLWY·^м 1h'l<:u0\Ԓ_]'AY&v,.t4V:#/_@ͦ}@Bl\E]d'@K! 1jX&r qм5s+pؖeRB6_OH7% cwxIwY>c₹4-gpꫜ:xlfDBY|{q_?r{/8a9VJHM}*]5:eؖz2{aN/Mׂu1KXd.9Ŧ?*;$\>yt\ǷPsM`wK&;mjjV4OyCyaY6LL &ϘPRa%lTȇ0|SKm:fL!ָ*PNkݐpt[DFzu,'OL; `'3qZ\Y԰.on& CF&M{ M <GNP&G)G==ɬ~7B3AXyr1G]7s}I`HiS}& St2vvv1jВ];֡JWM yn_mծ x{}aF*fl WѝE*ߟ=(3pY|"ǙRݤ5b׉(V~(~]C)"3j7~x m8~2mTd!,6 R'V˨FypҥKb>5˦[Aе-u♖Ao d&LzK~f:]ŎqA2UZSjyYĔM+^AP.#J5o)U(Bv&ZBN 6S9 3+ 5>yDdR#c*E}xHgoY(J0(K~*4-,ԳY]G I-1~_3 7!϶l<Ȣr_ aXn&[Z!]6`=W$Kmd@t"#._7}r]V|zd[ M aOe׷Γ)]\~=&@.Yt3g E8SFKKkcTYtC-3mu \Ͽ!V$to4}eC`g-]l+!O#0Fwn$*ubpR֬Ƞ\⠔C ;S+@1)E dDSI` eTg=YB*s'р doY`ע(% EG*1 f" + °^S -+ {Ӂ6Wwԇh2R*'oY  nCMD)bQ:*Z Le9a^_3-HGl~♜Jxg5+)âƇ?ۄ$:AhaRRP:PJ-QAY e<-鈬 xgeULEk&C٢:L)(P5#(J"4x_3 C (GP 8fClJ%_\)оA9o` lwBgSrU'`U$L"rK=G%iZPa_dhb,0 .6Y&dh$@㏇k/rs-Cc|9ZseR Q#'kys@>{)† (2\=-7 m82Z pphmeA"ʭU"* %cZvND,+ jj\ f/'5lWz6nb4`Ig+ua4|mc#rwwχvl> I$::9U6gOok#/(nRy޷ %Dא4nQT0b[`; 55eiXmB0wxUɯ7ˆ[EA,>5u~\zr)^Co14>࿼1> > 9nҁGWno-.~oxfp5ɌQoGoΌ/h>ӞN*wU2OcGgĞWu'NA/y-ͽ2&t] gnKTdoӸ&B:o^"Ѵ!"Ix"ֻ̲k@BKY8p@ 7UOrငě]}?7l?OhSLe!X-e˕u zs%xIbzre$. FfRg0N=4mκasg$rO/#$* /~lcR/o/}mhsNDZyAJ,8yy>ղuk:s&nl)䡴j*n,¶ѩu&:jy@'<]dk:J[`d63bYpĕ$V. H_/4ǮJŒfwQɖt>v4U`JC|2 n=$IuXΆ{^^Kf3!$C Rށa1u}zYAKZW$A~JMAiP?(rާ;XHY|yrG@t#$2i8Dw{d+Rjhy !"-;KM4s!(5udJw8,J "ǵax 1odžX±Fi5;?źŐ;cSI(xyM"#V#svi!/^YA/ū e0p}nnP<Ġ[ opi(T&#q.slnI'd:6E^Lܻ]TKSֲYpS5"#[Š0#bue5Qh3׹tqEUXaIhv䟤&3ʿ*6 0_ >K﷧ ]>oƆQ_˿L3Zװz"ݴ!Mȱ|4NOh顈8k׫76{ f64XIAn\`X}K#cUbbPCk7(f~x8CB pEsx{>cfmC3J WG_W@YMf>jg Qgx;//iѿ$2?cP9^z Ht5v6}rW{=n/9QR3lx?Kx?_Cg؝'VV3HxY%3y*VU! 1x!// _!Fċ d xW/x?_ H>mz~/qr0Oa @ 4xpɨ[x:xsMmF+ ޥ7*0vyU,Wk\nUJx{}7H1|j| &3# Bx; t[ŕg;3ǒɎC8đԐr#gz'bLHŧRdS=@˶)P -np춴s$iˁ3rGzs{gsU/+>[z_);T-c,gB6%H2޲3Wν᝱jnz*%9 \Y]؟Y9=r.ٓ} ߀i+:syxD954۔.&D`eݍk~!ˢ4򐝞 {'MؓSJnј`RM>Vu0܉c^seA{~,xx:UIW V')iId-X \r+hUcdݍٍ;ɓiyZ\(:LUnC0ǘxǕ בo7/4l0H~q9ZGz_ 6 #Z/WIxeG:qXNBRFs> +$?U$[Ww/72JbM}iZ&K_x=s<ʷ4]­lS 1Y,NJJFᤤK!;vcFwLH˸Gc:{TL ,i5D 0#9G8%#|Q9񣊦L> 'I98[pQU,vuCb$X!`8%3,{{1s;D_-6غBI avT0@~Rk'!rѡ]C>Es"(ӠǾm#5 5jI=۶^vt=Zp'o,a|}m㿳o , 45IZTb1@^m#OBْߦ$sIȂL1!Ua[ %F e؎w]…`c|1{sOZMjIpŒ*$_ ߝ6o.@l /9^{+Iv˙<ԝ 5At-2=sm,S)SJ&4lY4de* oFE[  MtWZ-=<[֤ \>D 9*d&Ax j `^湙W 4> e<䭳+衫QeMυB误G<t7d7{bH i5'DZdᾂR>@|Mհ/:9i԰lp(66:r)~px5y]W[FC-c9Â<R1@M- OD6\8[w",Qpbd6a\ywÂM%+xp:E} ՐȒ%XDNqEr{ x2"|\F5uHEL As3)͎6LG»j9WIfxlс],̢ITi3XgIgzء,i̛٢sIHI/PK{Mq^E oGC9r3fG+,c(;2Sq?}03"吽~EOISɃkɫj.N`:^jFA# -;.i7o"ر͝e-uǮ%>veHȿʦ^,#ogʗIZ3JW@5^R`*)KW&,{0V0Qbb׷v;prSN#WYCּe I|M耊}+cUqr rM,r,??d=ϟ$+_jK]:rឫRmNVqr~\Щ3SLF.j#{wK`+QTGL0h]UGP{wkIdTV1lTYs\|/I$?`8OKxeN\&p&'CrG_"$̓Az-YsvV- k8+&5!3I]rź-D&Z9.Usk͇&sWSȁ r`n<+c' 0n{cS CIFޘkjtac#yݪ=չ%jk*2Hy #7XO~qɤTx7{x"Tֶym K=x߽Pqr'eEwl܂P"SK0TU7⡑2L)rN%R0c3̘͊ ֤ZXO'ThBj7Y+wo&B{hu/щrK4х$XϝB/ucFd,8ea| R휤[%=:؃z6iyXHt!)qz)gsACˌ҃{N&mFmKa5}f4OlFZx5>Jt =׌Jom_ކ\dçZXt{q jʩ-/z_?d:wVt 1|)=gp`±PfXF?.V4T;:j?@& EAH^״;6LT$ T))3%4㠚N5Eȡ r5j*g<6RϙՃ* 3&Sug<3hyPB_BK `vqSg@-*:`XS>v50ʁWd~|xBQ3ߑ3`` F]r|=o(Qq1cU;c& eD:>?9픜H2f&M@,Ks*^AMt,X0o+Gan6D5CRuS/k0&c-NFQmҠoGF#$٥ Gz1'يI(SS0Ƒ8v1Vdޔ|sxVz2 ( E":`vӢ$3.E?܅|/z 1y'P^U@;OudKxV8PD{v?K8J戜S 7࿬#v$.*#|9F7pǍ!kIt &dL 6Iゑgo\D֏vv踑y=Z헤Ӌ'hWw^Ԓ gp%)qϭE(=ҮO.ֿ@kǖл? Z>w]hu4y3Z3g.oB#$@Y0}m5{4mްWxݶF lJ@*#x];tz!=wӂ _AMѪϠ }t\g܃¼X-?#3~G}0Z Z{uXeCV4}KpBVP2b3C!_!:y!;2o\Y̗Guh0}Na0- q =:# _VԳYX|6S9V0![lӨ!(M oF&Y˦ |@𳖮Qnqb%yYHj%8` 7.j3㞬)Vj448q-g֞&ڋV|¨1srTvד2j ccJxM%ߎ#d}F2c:%Up0b$˂:B/ʨP 4¹ Y]~xq궔feZ:ψ ".V~{4߆&Y4Zs4.ǩ\Kk1:}B]c4׍U>sPP^j3Y IyԄs.tEɎp#.8KW|D?l.F7hg~< l07:kRѲiiz6pujv$GSp7jTm^C^rr Uߊ€}ahآBa|* 5W7U&(s7Ag8hY@.'q I1\J־"3˜/6+ն.L'v)NN0mZg)G5;N^G .2Y/Y6buf HbXܤպpB赏P[-^^X/\1bYcDRK+ ^1r-jr4٫o=_K~ҭV.:EKkW"[k+;ȝO'[lYohLBts.ŋhiG)sɅ(OGdԦN3ͱ71]FF&xsi/pcRMP TC|yQ;F78`rtX=k lӌ_J~PNk~^0F kҤ.eB{7::җ,' tD`8:5S }cCxGFcLJl-̑@J\9Fj[*n|+ Uѷ^1h?U[HWMm/ؑuxAaٿ* (cc.if ^ =]class㽍 AF{xz1p)GǦ@`rnGx340031QHI,IKI,.N-f~a͙/Z%0 Z.7DRϐ*VɯK k)B'e&2dm,'熋ö6o4-Wx4id <9j&)J-)-ʳhoZa Nç:x340031QK.+L/Je\ctM|U=KS!D+ý}7J8qWf75l qHKOOgXtgʈFt~#⏉('$d1L2pZ?U_n/Fuy9z9EY Ew[E^rm+#&fe24xwZ4rlEiٵy KsM$ >;Jpv4BO+Ytᔣ&%{V~}>(W/kBq}s)} d<(?Ԋ36>=P)&rq) eΠmuKhԯ( F23/-_H% \͵Hj4;a>I  {0.\UeGlIY)EEũE qzΎYS@H_}}Դb9Z8j0Tه qaҺ潥\{_;b[f٦lW25e ^Cs ftڛmզmq>& s3q>:ś+sRKJ驼STKD4!A. br-Nju'WC J-/-JrqoJΟ4F~C)!. 3[f%>toRʇR*_\d?)8S[c$713z8] -LKa3yY&x[ξ}BHW_y;T]'.yc3m ,,x!ɐiI^ Pjó /x6aܑ9=lː~(bͬ100644 ChangeLogk *^~8w40000 Documentationޭ}d`9ڂ >C ivh>z100644 GormInfo.plistMŭ̥uLHZXMZr3A׮7iO3F?3"o<&S7uV8K"2aoxc[* zUgDo1>fK}i8J<Gv100644 GormInfo.plistlПp  fS(1rx8[vϕ~] P!MꝏoyD45p$<{ejFx9[Ow| $94vP!o1WzBDV9taAnGx[ξ}Bcvm.얯h1߂U 7+x!(3'.H /x[ξ}C3Ȣj<6e4DL -xa6aYw|H1100644 ChangeLog?Q|mXڟ4w؛A40000 Documentation[-:'3YFV  $E15/f!q' ,`i"*C,x9[w8w0o[TPk;ha٭r[L+ 4eHx!KI9F[01/xQ[9tVqdB!Twn.goɒiBnVi}+Q ,Que'9&$p_xi[[[ޜ`miőocYv>7Yz B__ܿFRhc cܷx1$>23wxR[Яe8yY4:"jE@3o[A/CܭKcV{LL/p8вlG"s1$p`x9[m(yuG#k^+1Ro[өs'kwr6GxR[t:?Fu-<гMo1U04^%ܽF&]Y#`xR[C8w,V:쨱o1gp29>kˉ_$X4Tޅ:~@BqoZ$W`xR[תH݌T>W~?}Do1*k ox\3Aϳ4ƴHb5,䞼FK'`x9[SmH~u7oedS||d: 5GxjPsE+C]o%߼~* ؐ?!]C-\œi7"=-^ޓ3(+H)Բኳ2Wx}MNAC`51&&vDą;C"Q^`.5]ϊ+=zAиqIzoǟGgA:6Z6I" [^QQ~$Ё,@,1q3Bǧl8J d .J ,B܇|!P`<@GVy_!(#ĦRLB)40ShS~R4b.*tP+TF_m%j5a=6+A,E,.NWsd,MB;C:i~;xUJ@x ^ #IJT4*Ezi2 lvCvWz5t71;~M>&7Q2>əc4;f l_doБ"4cv=hF%'297$%@Pj ض tlDbJ%X*t7(<>NRfZF uA}BF;Zdr-H5]zUbU>gۿL4k#{ @/mK34A=`og@+Kt}G?y"xmMN0F]b,JUP~\'6e&XzniRX{c=zΖdy}>nC6<ŦBȂcEI%ؘ 0p`?ΐJW(LwypR^\+7N(FHy:0rҭ vLЃ@W0.txI׬{? ?f걎xĽisGZgL6%JrEdNpHl,Z̬ \@ǍS̓grgk{oc{kcYlϳtIqП/Ŵ7O:ƛ'Ӌ޿'g|s|9&\ٰ8N&Óh:)r:,K1ybۉ Vb86Fvf65gŏ~n^MO02-i[Owbzyx4 >tc? b4-|dA?͇wpϋ/x]'gLx, lo?^[t0,f:/`x2vIL/_?<82#мPgglQ]{?pﻝgO"bӭ7<,G&y/42b1? Lb6:^2p2Ppr NL B-30sR~6Eo>0ĺ/@K6r>5-N_8lܜZh`ܟgs5:o2o<~3φ! 8_/ǣNcu-!8G"h7X'9<sysKB;OmSvf-2vQϿVXx 4>2=cbgEN͇g%38/Njp OB? 0h%œbκxwσ)٣wg%Vw ݭgOkK|;ν+°wVުc׋墸/{b>-UggJxy4,_ .7AT1NO bQ^"\4r :r ~||{|~hZd:~!6δޗ@@Ըo Msȇ2,^fn pelNp8Yg,ċ?a\Ʀb^zٽۋUk#/‹K,r^T*p>]NIPؚZlz+-d(>6F7ќ*tVwt6_-P/<}H5sa< ޹ۀgpc`:<|v9o{/'-j:Tg%2^x(ggZ3;'ukwuI\_NSkP%j&3oZqK̆ G˥0|h2 y*!-,'fͥsқ^Xޗ*6|'|\% k g<@tfep61ʅ' G- !$c`ol9y;E@z-tg.A|NVn:V+mW(5W}m#K؟2v~A}#,FsʍdP!샅| wҋwIEM<7x6!~9z{O ۛ;;[Xߓbk{o?QkmGttb+H]ܼ̃x͟MX| XxƂce!irmo= nQg̿1^Nрh#M/J_*2-(a޵}M6(_J ۠6qYU2k^կlL?xxd}WbgkμbkojOQmAl8~}Kfzd4*zɌt,$ֳO/Z(fhzIT_0_sh!LP^a)8Sب?~S= opYA!XNxv6dX-ؽ`Sp8s RlAn ǵ=*cRtҌ%j[>i'n-G*OpasZ j4 8Y E )(_31k DQb'LȻ^.VB$Gx.Y!=+1-8FBtļ-''˙lj1zSD>qrXA{x}{H_lwݽeȊZ&iҬQbSOa"J1sNy.xl!~!Hp_L,юbޝ) lB[ ghb1|0ͨ i5ʦ1Q 6f?^G% A^;< n U6P@(a^ƴk5,D%b+DVDA4˾rSc; l;w/T{c@zs)T5ˮ1 <]6kg,$S7.oGqِRY!L$ G)`~{kܭDe i;u=•eG5HI`Jum~K2"H)7=X}!Sd"p3_ϷӯjZ*8OX10q?zQpLD!JS%[=# 3x^cdqVrkw.Y!DYgˈuLud[>“{%_;/f~dgJ-m-{ gPłpVa[48Ra.GgkKX^nHj{oj"KW,fNɴ'A!YteZ|~ÞRLSW_ziHoxZ?OF(`T/?}R9Ks#l`moy>:fbB/%g8Rz c-;>AM  /v{ry3> 4LT Z?K M!%T mZ5 _Fi[DuD#IJcL[uS*| 5` aKrA'9)rxeܦ֓%72}rدʃ]J(X ShǐA3&ann*2';"B '%}6U$1~wњUB9:I^+5j;OfC5k2$!zcYjJoayqk Ң-م޿'fq b#z'@(?Xi0Ձpy06G2Q's4ז^ENPd6 K,AUd6>CD dVFToҪ9̉ʩS"ܬ2!W=Yrm*9LANb|]Zxv"t5G*̰B"L>w{ĵYNGoD/d$>f֭a;Js#Uu'ݿgG9W91ffeN!ƠU T֜@lٱLI[6AQ+B櫛8ZM*niظw򃀳b є+8I @ wH6%ِ`DdG[(ν^J<#FL-:Cp4(+l \c2 99\kN,ufJE`x Cn3ҕtc>@< F(bgdK[OfKWfWH3WY/KTmJl It4:~0(`Zf%#5L i;nhC 3 8f.QmJnt}/A Ip4kC  %#hU:׼ (Fr蟡F&x #T֬jDJ%N^G?H6uVNe OB4QNAa[MK+>ZlC8+ W{dG2jP46Pr9`"⻟/扂&RWHXHM͡XN7s-bӂ+瘄 LG40E ߁btBѤe?*u!1E/wri 7Zǁ亠;sTugt{YA͓j4.s2.b})3V~ʱ2aBbTni)JDQ)o*>ArX*KCdasY^ W>\>z#fFvwOxU Brl%5dVh^Uao FGejÖ/qʳВ)TC8z-̧5&eޏIN$sYu8* |^Eե yU*Ջ998 ٴg[,(1V:H+ :BV x1V|@]&qVieVG& UByrq3FNB|.(ՠU?/Lom`>YxY:K.Fd=>p5O~.0NcdleNX{ސsƳ:gPOFHʉA. uJě✪6#v _  -сV'8a'$/ -x SQȵ>`u;LBDlOtK5(4Ks%frm63zN~Y N! |Zա+Vl˙62RsԒ[c+Lj +JoٹEaF䟑"~A[,:yNc3ˡ4B!xoIEvK0/"M5"&ԯ}i3ACIPlЁ)ՖLrU^ ٟ=[ޕ<" ӄ5zw _hH_P?9*w50^5]ǫb[ .: C~$ 8JZx9v46 e>(鼐{z2{sJINڵˉFyOAH W=4!Al|tTSɳE0p2Pi"2-*yhIr:g+Sodt)8E_KRÎ=z أUЕ\_2T(J? JI/Y?=_h@!I&*B8-yZHrD"8mU˭7&ܿ0s QÜ6g7=T2K6¹~s(lWP ±- ^̰X­do8ki,e[} {߇/^}6*HGrkLU5i%P7m~DsU6L,/uELnѪ*Дh1M%]yJnJO*#ׁQiSI! 1Wq!PǛp8>fX֢M~TZD%YdAc;BXjh :[^5Ϳ{מ(f=nŽ&d=R1I>2֌?>f֪ BQV((YJH 1qںeKwiJ}l-]~mN:-JNDEM#!F\gDfZ1\QtRU%urlA$:bsfxw;ϟ> GXvAFUTlDdCxK{WD190X/&ry<9+4:Mt 6oʰU^g88-ݭKJ'Vq#Of2-Ƙ]!&%U\T14Tu ѐa(u@"K7nh|c.j]iN 4*\?jXLQܫL*il;[y&zlu|1}E9:4(dDg Bh?gKw.QRN(zmA4"Y$[17_7BV՘e[srۧ\t2_ JCB ^{5j$ &1Psv 7ת>ݧz#IAAk(Ee9{ r\ rZē=ZRMπ}XM]sOmKm>4Tߋ4# zlw+܈ӻٷ(rR*t\/U UňY0 4d%M:!lP6O%E <tlW/&V)sҔWKj }ūwBYԹAij2Q˪V93ҧMV_ Keu YlzI'-Jq@iuzfC,~\LU1Ә5Qn .[i*<ˈ B1Z NQP"6*PxMEu"y;3ݐ1`p"Z3 ӭF%mTU#7][ _gԒͬ䭜oO7'Ey4mn桯KJUr._;ߌ-جkIxG馯ja4"?C֘.$>-APgP~j(ٵwXu/)pW:%>" 0WpQg,jTdњ-s zˢ^>+PcMz^Q0 h.;90* . G%XVcfG#1SUaȚ\?BL?Yy>;R>""|jНDF"s8=, c"0"0w7*OeK0d}.Fښ:9Sx=5ŦQ94UjȘ;tcpkÅ "uѯ{_в`kb%q ,&˨ VjӯheGkTĹ BػdҒ6PwmH3Q7#9?eQ@$7:yE w<Ĵsn{|Wı5ŵVmh pҚnˬdh)k)$p[_ڎRʹzuSglrS޵O0gj~?NKebzD4G.=uS=M֝!!QRNRͬKWܽZurU/vo[Fef·an,gD0uQ}aC!C1,hXӐ3573D+\s٥lN V>cr8HAN Ew庨\z+xկho?ޝ'W^,q[M 0o-MKȅ*,#̑jq,̱"jfDO2NM`)TN(fi[h$5U]d3L5W hR1cwYer d |wwrQ1!iL_8.!ǧGi X I=JhtU9O6 :*̄-M8K U#{N/{Ȝ+u1!l} U0w&8T x8*M?heq 0 @IZ_/{"Ur :ms) Zŏh')3-|J5~pk%?Ied"͑voE 뫳HZȪ]xmf`p|e!OⓕX֏'Dŧ=ck4rZ6eUi5WGUD(A ,茕X DHC⩐Zo*"'^@À%gDFZ:=y[!6h%٬OI9 :q'HdXy!DVzB!?q KRqFxM,֪.DYpnJҁ×d<:ykjò!kھn8T'LMY%c>;B:۱d{n&i8H/EFIdx<@v9v-6 2^g_F%J|DzM8sUJy3vV1V*|SD|J$ȧON×+mFAFu=ۄo%?@8RYn{VCFK2'QD*|G exkw +}/EDV bgZѱk\>P5kuӴ{`nb)AΨb,3f]! =^%4|o,r c3K+VC>*lɢd2w%bR:{ٲy\l8*oxd#V!_Jdu T$*#(/DYkZ}ۈ<..cc5M[{l"'ҮDy1'ڞ4^ˋ|ãR嚳RXmSXbG8Pܪw;U 3RaE C&2Uߢu?H-'tYeV)ZimOEӺ%TƁ,BBµcUr5$Zg[8t*Wp;6:G1[vP5J[. ѻC&)ƀj0+ӥ5_9R<)):p{s4P4U'4wNXkOc}6[?hCL+mZsXm2o?XfPS7hŠ͛/D(،L/J` s̊ πAxfke񥖗?j86,CDt8p݁jSy5g֬k[,*$h tg]햩RѱmI9QT4%jObգT随ӚD Uޞ #:qǁNF⳸|%U%icu9\G(bN݋.p/[ioȍI~Vh\DKOZ8oEjimͮ1>j=WBQr,9-dg*[H x ~Vy~ҙRDz8%4 `ȠheH^-N;IP+bܵɠt{bp;C@IѨ[ץ04fz¯9{Rչ+ 4 䢨w/j3 Ɯ Ղ*o*'6aAQ6>rrL&R9l*9S. 6\ .VOD>fq%S.R#lxGPA뢦 u0ҡs )}pQ˰$-1Jv`_J@uSt4'xM -?k|Z]{mm4Um?WǶcIܾze+侴yW\^˄r2ؾڣ֍>۶=^氰ʖ:G%:T.ǥ#],m%JR )[rӅ~$4ѭg v<̤!bn/S1.$0Cgsdbc c!;U xUnV4GG@n/L%nd?O %*i~r6eTxPiXX8u`I}jdkou{ܯzmTU~ 5queb 3 QK0?W7&wVk{RQq kPZw϶n: x8~Cg\wS\c1])@%-N4בLz]R;=F w#}!/ՆV4x>z/o =G]in(ND[ @[Ǧ/JTD0-qHTD%D]ߌ%j;kF<"pK |nggww7;-u'wkfW:õﶟ>}cc 7ڙ>|!_}Q׉[x7[l[+5ar@(mrmY~]mv'KW4)]^'T%74^zta}Ls#[Y|>}F'0)~B?rKӧeM_5` 4qo,Æ#޻嗄 5˺9ŏنoۖGKSu85`QlV440Эf!E~f"݈!eZAYo%亩6%d4JT%D4կҞ%4["BHmsӓȁgO4KJy) !mϞaQD,n ,JuohPݩ3 e~eVHNR+.b21`^i]*)e)Ex古ixp9lUv7mcRJS?ﶹ]3x).O]xȋْ怆7>ZGUL\NMz fqC*k1HB ⟴.' W]X!Od\Z>81W'|Rf/y@p%fJgV, RuEw5/paoT A05ޙKgSxźShfr4hDK;SZ.d%?#>B8ĪE|NΌ0P{#>vzqBg\4i\hpP.x-_ iq=PS$%p0Jj..Uj̈́Y_sXj4NYE}}⁷`xC@SЖm%|LQk UкN%Oz%iAʺ&P2nUC̒' Dꋶ2MK+wzMkuuXUT;ot^WS.DdW+vylE,ǦZ1_,?.[VrcU$-DNp^;qK ˰JzGjFnl/l[{r>R vΠz[>SQ)NP&]W {#_<[!-1#nPOЅg )T0tr7}vʗpm. 7ܿWU=;"(evːpplVKȝTtӉR>k&ӎwS MM倎bM㎷Mԇ̖zL2u.%Wn,H |-Ӵ M"l{|3J ꞩeҋ(> M4-uG4d s,.{2rbO$ Yӳ{Uw\+h@˩W k*[s͟6jO[㿷Y))勍1m4nj19DIʕͷ[c:(onGA:Ͽt0wÖ7$ϖgOFe -s:UL)߂Ó9S1t4Vډ1〖Gou*G4XninU |0{n jiӖ5sDa_\%ue.' ;,{\Y{U+y:Evٖ׾߹ K %D4v\͕:ϧmt+{U;hn.`'Ap8C(y8.hk`}7e`_sZUqtmc\]2ڇ]oDb|>J!M_f]"Е?}wYP_?b7?k@]V\b:pտ%b脇vmWq_YmVXQy,z:Ƃw%ʻWLGvߴd\9Ue}VΖ]5ӕ8wod-@ CױFʨ~Ңʧyd(-({$Q@j]GÞLۜ''zTvM_>/̡_ܘ6m&/ط^1OnSvtEw!<\?rhM6uQrYCDgfTgfiu{|iŗzb^1or\O,益c|]+  Ң}~ ef'QZ]@9WV~j>ڇ:ߺ[mVVhZyꭐX\'\U+7%馀Z/nwV}]7R[wW)gN[KVQzZAwuߪv[T9Q {S_[57ɬDXT2*s |  ^n"7kl{UUjΙjTyJˑq0ky"QXkYWJ/vzͯ U0F՗EZ׋u\ NfHtm;A*8nbaV%|Ӌ鵔r}}Xv.\DMAꝮwZVmlxⷫVIKWQw"MhxpԱN_ /CyN]~Y">YXQvufj-Cr_{4!>̆}b{RD%*;{ʥԯтĸU?$DnWX7k4.8cxJ)}mZeF;wN 'tIf'?+Éu8.wTс8 b#Tҳe*=ne2n,=je~7'CPwqXX6@foL4jRTjznh\\BuzWMq/nXEXJ܃yI=UT鄭R+$U k]`#,"sV?FoRrB53E^Qy Yݱʕo{cP(l. hEĆ<D=߿:dKP#M:}VQn< \ƖUUD 0VSH"WI77-M . @Z/խQՔ-ߦaic|G!Ʃ,}!%~z/X.[,wLXRgdD +N/VU<+޺(ӝp~Z7j k*\KU^Aջ bʔBS*_%VU >t r{w$l:,|"?[UxkX[]:]kb@n*{ m% Wb ZK+dE5&{NH­Xݕ*P YԶs4gQ:W04.,@WMj4F{K.=6@,ػ́#t^'(Ztj-q郶(/ݿ= -gʺuQRk?pWm,oyo. #}FKDK2tyڑmR-]vzMLŐk!*,iє;;tXHҿ.UGMa3"O)h T==T"[{Q̭!ٷWG%5uјƧnT4q?8 +pnf~1 {]" ͨ)lju Um?QѼ_N0 Ik)rW Yr:;"G=]:UoO,a2 wn)s[l7 Gd.* Q o?g4¬2pv~ۨ/vY$Ui,]9/Ni &?u܊M)Me<8aC|'"*J bݺ8sZjİK*i B/|(D`G+l>LnZ1aB+X#Z??)Ǔ'o: _C4']x)xSH}n^{GZ՘hH*nAjuhHb2;+/MBt`b7-k86}ǃU`cg򓸄vwicl N̔#);o*Iu䑪KD񔦋>:^X8qNw!=psZ82e{sxSZ y$\m}}" Py]~!w":KmJۧ:']Ęw=;(O#M?usFJoD,I|Jd󶭳'{kʠJ>fsoR3" H )atO'&ċS *<=5^E1izX^;-%NmpvW5ȱFH#E{grK*c~"_j~Q[{0&׾cNYYDWf8:? ^ˋ|u1o:mO]eABjRj4^'g{Zt+>٤ EKDϳ޿CEWE ޏ G}O&E=05ZCډ\$q9 [pTlm:ˬuGNhSY1<|g\ڰܧǟGx2Oi}&/gexٯԬ{FC$Ɵg$W ǶyA؆b1S.8 B/ tű.%vIZN>S,,[,>: $RlSEFSIq}dΕȘ*Z2mZ-|,!k_dͣ$8}K #??'a^8hUڵ3`2Ko{>< hk C& }'v 4+8ӟ@>WM\AEim$?$r?)o ́%8/E]BFCiͱ}( @۱Z9]HeKXW!wVfx`+XЄs?mίE_gb='ߜuR;؞2zBBmqgxouTzÓB/s7 cJ ?bUQjel9~H t@oZq"RKpOCoO^4(H٘,lLϔh]{B,eؐqA5:I:j5y\`tz٣̾͵,Rb9 i:SI=rvlӽSZ%KA!*\gUJop%* C0:v~v%uKЅF[JEApM &4Y8~"J ֻZ,IEGt87DЗ͆e6Ώ֣_IA0?g Iai`٘/!~Ð[Ax?&SNa9XR~V &bA M]T7נVjqXU] =iӯjϪ  Y4 \'gܩA:U͚rPnQx3CPZiMUk-ygd7޸4Mcx'+vWfI:_6`H9pz?2K@x@vW Dy[‡o:A0{?tk:ɢ6X*$)f٤,N0ЏBq2qRKVd)1mZ@vRIv7YԚ ˝v҈]-T jyr}@МԶʛ@f]c.w 7KdJ #%Fް6Զ"]U{x NudI%ݕj9ݶJ<}+|yc}S&s.r DNigӲ<đ'\4NYֳ i =]ϱZD=£b Mcn*oؒꈵZc#yvNy;j+g+ wI:,O"Y)@AzW)bZ@{q(&HYB*/q?)zW~[e:ԟY=qd9Y0vrn:Ίld" ]07 vyx& J'OkY6%$a&j8_cYWh'x_"Nw 9||9[ʐYY s:yUenW)dU+vh3,&"g,e_2F<S'6`l㤩 ojh9xo,. 9Ǵ h2QRJ|պy i%ɥ:l$WЮ::IE3;ۛ!] 6(c4ږa 8u*5vn$tW©U \S|iA`8M2 dX"bwyT-[kP,ş9N+VP>ԭ3LNH2:%ASD4)S\`Tvwƚe`ʚK>?H7{8)YB!g*ϒѩWٌXՖٚe MZҙ+:W8DXtE&/ +J!h&tDrOY0L}t廟Hťo b˶vCYwθ1Ά`wz m%$EDf2/I *̠l@%8 @lIs~{Ah#Coz@|3:/-b3n18jO !s0i&˩b}:"Z`LPVm) ui̝@۔֓ބx S/Gw>4pDΪa{KZq gyũ/Ai]ѳĞgc;˭O9du #H&e>h&>l#oO+{=o137T4lQhAqBN9+jS_@RVpgСUrFuRGb0'N2V͗)Pr8'|ߝVF+.#^\ eC^㐄00 *껄7 8B=y-QTEzk`=%I9Vmoxg'i+\񩄭o3kT"kYSgQEHtAxDp"x ;.E$K5ydz=[¦ߢ6J.Yz Y%xm*QNC|)DdӜ̠Ewvدk6m#%0N4 %="31oZT%C/cYz~#!!z5 %)<]]ɥ*DrRn7j 5~Z|zzG)n2G@;cr#-0g??[_F \QI"SvhL, ZA&9At5Z2E91 bHN4]oTȷ^m1Cc`snd&З=)qDUs?яWč;4.;++Y턏R7 MڪZEKNgN' EQ |cY`<Аn$vKJ:ʷt=-q6c^j#&y(SBhsZx; @ď ӹGtq]>:;ohA˜( o/ 27;e\9AOsp ,8䴠xojSrN! ;V`tY -/JxQ6Yzda JT9T+4VNL m٫ai'q=26I<4%y͕U/JsEUEPSU8av{$XɝK#F#mpc͜ a_CAZ0dC ů6 ݍ k4Q i= Ϥ؁:>M[% wq(ӣfA>9~Rh"kŜ E#Ji`{^Bu %)k%0"AgD!TSA aNs]D /[uGrOfKOYe$wt}P+fyp_J_Qw=m(+eۄo!"bpN6%8RØ :ɼl!pH;҇LAJ?&h`%C؉쇘3Qűv,e^m\F<1UC|x ?=nZ܍INap(ASB s&"M'[ GһVNUizʼnt|:5֖Q#pר!qm &BMO*Ϩ& pp*IN3Y!$?v*TXf=^3:"l4/:=@X+s9yUH|wHM1|wMM w9b[zY17DJݤל؃#D&v0:$n.4f \aϦ_[E e+JCwz2wb7JEЛ̇~p<kC<]d|M!Yq8uێ,U:\! Ig }p0w}Yi$ jDݕ#Y4/S]X"9:b3(dALso7@QUJ6#$@)vM'{_?˺.ƻ;z.Q/pϺxԯT<w7 !1k0] Zv\2p&&Fxex .#S^Wm_J°Gk;R.x)~eye}JDdi*LJJ{`g;%=PۛgPB3<.d>j1 |s6Lc4º;C9",ܗ35Px#&L҃;C ٬G=~Z"y?g (W]S\v;rE,!K`>+%\w~9c0js~| d]Iro~1}eh4ͯ[O8ј*zZfK(/ [׹s7t!_xDs 8 _/].|{L[Wzſnx5fsEw[%IIF&-QAQj]>LMb4yB w( I;Bb|!R]e2X7{Ui/M8wIlt)Mre5EPK3(nKަki+=x1fi+KJmT60 $ߐ䰢h _cG;bǯ[vI;kp/}NSbO.^fQ$v%ta-,iweC߅ʄϓG ^/n臣D d%战%\in4_mezMT8 ?d"N¼󞽍-c@*W֡ [jNG&f]+]sj":sF"$>9'%XzH+2O )Z*8V>{}tGda +_%xS i, ƒ9.t$_o6qmNJRL32S6LS>  ]sG^LC xhpx:mrDP;o*֪IQ~w L?AXɭDF=Esc$:(;+&Z>Q4 M/&/n8z2WAȲ]ϒJZ Owdɿo`]6!4W` Nh13aMZU}sLY#9ȃf* ̓I~*,-6NrnrBP/m*.?Wj H%+>GF񃴞x.Ҍ?#Rwb&ÃਬMRګ9g? ΅h$ %tw17`^ƍ&&㮃fiO@7A1],ZBD\g0Fs , =S_; &=i݈Hb"e$}EZ٬%dcዌlϺ]Ed1-6 [>ߧWzy9_]+#no9K24J2Ej;:sFh>W%~`S TMԉCJD/Gt&왚QDN_ǞJSnh7:|hӋ';ϸ;ci ѥ )!G{E,(ݺ!H~,W*[t !cs t)ڜ29v0!IQRVk/=o T1j=Nxt24P˶7BtyyϞ6+{ _CDq# fEc* xE A?6'|f$ZQuLb?dž}'9+az3ٸxy1?BU8~g[4MJ+ A P4ygJ^sSYANнw;҅c>`1 A+rЧX @ k4RzmypQ"ֺWүJ@woeycaWTYmbSG]CT-, Pn" "&697;1O'^vy4GK,K1rDG`6>4Xt:zC K{I+RAŝH:PtA1= ,郐4}eH8Ngre%ALW}73qӜF5EzP1U IK͒+ʽGy01(١F`ztT&A'nobQdHBZ4m#ŽnLxئtp =\`B5YSP_#D. Y[ EC!aUhTݏHP Y]G.OxݡDEh"g Zpq29@Ta.q.#9ƒOю~z,& Tsa: ަ*ng"StqoﳑTz&jſD BКɵJ1x RmW7fv͗췞&3cĨw`^rp[;T꺮P>&z1#)E`%eu+GYRzrzoXKjEʥK"oy! ~D`]&MD&6Q3Q0w$ojdųN$8d!(Z~RG!n.:W7FD /F eՉAt+}_?SwBD_Dd99:ip7Efh]Cw"xv:V!}He W%jP x+ m|f20/"G*-[*źvt GZ(|-;85aߋ8:4&yĶ mC flΓ~MPނ}֢>e{Z2OĔO`=2PkS?"Skr!Ifs3n$ 1h.Ȟ!͓&>AŤ#W:,3DdL*G?Y}/g0 PTЖPnK`JZ̞+kEks _bɵ;_~+%8j-ywaDV+UpO"̟ 8@v=D'2EjRથ+ґƎ _B[CH鵠֧>(dὉ-)xWEee4\sIt !4ҭ_|b)96nF~b$,L*' /MTFE'=k63wk/}.'[ Jėіzol0U.g( GLlBڛCJ;BNuXb͛h/y~ՊԆ6&뮷ݴ`\G1: FdJyrW TjX5=,WН, YhW4F͕oBB괤0nbVvx{eYOڛUֳ+^!a6+Rxt>>oZ+ISvMX"_ u)}.V}̏k{1Wo*"0] 9gV[)i`_(X~-cP ັ_ xj׉b"*$W_z!h*/z”]b87$ n*xZ bvG7gʔ8,N\UU׮VKɺ }:Ԩtz,H@ۼe=W^@!V̨B^#%J?X! ǐpǢVzwT.JxY$z.g#4@KnM;[hJ*fVVvr;݄ʵcTR׉ڰޝ}#}:F'd|CI hb4p?= V&[{/J1&F ŢǩCn +{vT\Sq\f+bB4LH޹Nۿkөivӝ9 |NZu-5'Eny=҅؏ ɬ^8N泫T'aK·pFZhL$ XobmPN囍{24T~L4v'aoI6/͏;i2LQBc8()[+|xzJ [sXnzY; u#}8u*lhH~tޣ(IJPRuN ߕ{@`ElΝ/Ԧ8|r'@loggpkpTM:8oTv ?թ 8x aG}>I!JmDCZ$ؠZ/4cy[yA1.$w[f{!HQrq.<*+ wH'ݮJ#9{9upޏη Z6q{L}jD 19tJ]8? {'Fxs;E{boEdyx0[uAJW sIU$\Jur}0IļVjmҥ?:h:3 AU2At3;sP&XFxQIi5'f l̮;&(>~E^/_%Cn|}&@ #S:l54P'eѴt~ZWm kWspbc{TX1=ޒ- e(-I(ݸn 0t8` $8P)Ծ Љ$_Mvwqly= \kHcYr4G"7TygՀG'W6]97%8TkrYw6oC*Jik4#$64b G]}c~Zk/I!\8]s޻#5~/Mϯ/8M'g!RdQ!$ bh 3.?ud~i$C_|uH>Js-Kp#Ep Oo>& v[y\ dZt룾:|3rOk Sb bL̵ҳA`lca%g eFaf]Q)A叇J!M*F q.ۛЖ2#@QpG>Ƈh!YO&r0'ĵOC=Gj}~qT~Fit9w}s +Tν!VV]*_I)*ųWQk}tU\gJ<ҏu9>XD 䁳4ta]Kr 4HktJ4F$uu4JU5_gU5[=UbRa^dK'uDo U'פ`lXb7ԉ2'JWפ7hRXx6A&J]7&;[I ⤔C "mӢrW!z6#Ez?*ruu8Xɯ>GtNznpс lӪ76PkCt>%)hi0Eb*?iFA:7u)GFZdjBuItQ+UfEidmZ]NMv$bMD4#72g*ƶ]ҕ ЊWt/WQs<`iڦM]} pj"/E:MݴG[+a(]1ѣ.&]o:V{fcgx]kgyH^f\-n6KubQhr2:AƬ]5 ­#9rlFbRqo@d ǢW+ˊ5w en94^=3߁m Ps!pLAmv{\;9'hg6 rlVc젗XOE_美HH*oeY}0|H|jPZ^{D%8`kc6@'aw@:}#02vJ;|9 M2ԡ|hVk#Oӱ*ͯOdÛVrt25uMͳP:;X_Яmgkү\ثK|V>)qgp|՜e}qۻoӭ́x-z"KT^`[Io.w߉궴}uV[mߖ<,8=0`W<75@gXŊI5s+{bb._,@6e+!2m_,v-u>^ޛK9nJCɻ  ȦP`d{:Ty \"kIʆFa34b$Ñ@܋q͸V__&`K/E:3l|V30*6wq#_g/x!|(N2z;=g>ǘ$_WiNS,_ҧ!QMqڻ^,[_)nਖ਼=9| ]A/ʍx şp$lX^[hiХ;VºOUڠhvLct4JSWdn~+7qc_]oV'YutVDB 74z7P%g2s?] + WL0V+^<7w~tM/*_`ÎoO;!^T"GͿ/ǁ C"q ?3:;4a3Ǟo^.Qƫ8ꦀq[(Q-3I`Jd׺J=[E<ҸV{T ܟ[R ^>tMOǟNh-/- t55݆u.!2:AU|;yʑ1xL%Sz}̵7H4֛!!'נ!Q/ulw$Bf4& nn~\2tyCNEĹv5bO^oLlJ8pmݫڝԁH p&قϦT/]9p[O_L3lkKp vEŔN`*sd:Z]#GEViHIk:)8K4؈DY{(fe^44FZT_];*[ =__,zD5U9}!_=C6>圣Dpf]8v OC&V7Ġҿ,-NQjMC]Ɔ.%"@7YQZ9솙֐@L@_;$L|QOH>.)^ouwJP䳥&qEƙPqVx><}»dRpJ[ {F⭗K%KAu!OXaNڶ<ّ^4a1Sf];SᏁ~P<2saY +1)|jP>FV;<81RW AeI=K){+͈4J\Zz79:\n~$$n\mD;)F^Ek ߂{#2?1ynTUU<5T'eIh^n!X-tg7+p(e!"$0pG==&!_J:::\ ۞Ez_S} 1~]ecė耞es(6ݗ3Q@ sԝ&&:;\?JwlvՌ(Cօ2 '_ {]/v<38<%_jJA}G{T0 &9J, lG% `7}/AvZ^Hox{BhENiֺʻLCAgSuB hb!r|=h[46Hů XXX,~ǻ4D+U >{F{ٜ[c 7k|`DGk^ոd443Jh!%gIOѻw&Li a Eqw㬾.c_p8_r̢+h tB9R Am+e|=rƜ~oDpw3"w~[{ x=Lטi석mR>\MRq/h=r0R`cMOU=VMN6*-$yTS<4? [G"aJFncsQ!ヮD' UtS",ZٜC"(7pvuq/Z/Z#X3>պ8NIyfՌh=0ԛ"uR*go>2U[<6[T# G}+)dzX[ Ф@` OcsCiO 5;]*S~eAzEU$H[h%[}{gnϡxcm=\ֶTxy:;Fk1Tլ;f;Dr Է3eL3g=*j 5`Rb\hsT@ZSȦnI֙6^|A; ¤TБuku{DJ dBfhhb5>& QNyBV*{*0G5\2 xFFT_2)<[ $Q룳cUΎs H[@,4i_m]$vPζD"zpĦnɏsC.]$l=?ґ+i wtqTܟ!zcH8tap.ϔZ0zmC`^ӱc.CO)KRƊ\P FNzĒl20!7vڍĜf n] GO=~81XkS1n-@㫹OIE)hOlj}m/B5@r7]&3ql&{ ރ9zT&^̬C9'.fCaM|ΩKx8G} G4jQ%tR:L-]y_'fd`@QqQ>\C04Ƣ]:;`6 +!KnD Vttox7::MeE /S|qrq*-a'4$BhBX?s޿@v{9}|T&N0!">ۉYe'-z1RkӠ}(Dok|<#pϾߌ vs-3?}x?YLdNh@I <ŭýCyBF|kC\+?i W%y840t92Ԣx0ՁCzPP1X1ZL(>=Z};ýǷ?  94im(.,G8_k="FҜ#: fD|N z0H=&wۿ1;O~|?9|.֊rq1Y<ǟ1nNHJbD< Zn( Zs`b[g9H8aoQڿ>,R }}Qj ,h.7jZR6-cʶ[_d2;۳5:1@ܜrw?7jfH25 i3*m2&S5NUW?:C+MYδ,k]ؿ!-8"\(PV! S^>q3^-ܾ4lvY3 `r+})ծp!Q\fzulB~tۇ9Xbl#OE#=As; KHV0X2 al-tnTL=?+CjF'W6Ӟ)!_( zǯ3Il4zW]D%IBg`P1bmlcj6D Qһ4QhI/*~4"&'{t5ڬB,1&+7,tۨ9ba0zs=a>)#t@m[fE2lPZk'aF!iJv%Kঝ: iqS[ezk> 3s{l_?^ts˵?TC=Ji50qsAZ9/I_㝆af2*yu=CQVcҦkZ H~L932>UFg~|1o̷n;dM$oM.`ƎE7'JE푃%Q!a8AqC!"KSAEB+jxh[sÔA},(5#hWsz19< SJ!)oxxdzi" F [4iP++<{(Rň F.r9k*k1Ev9^Sc afϦi(nI^k,2x[g,fK5| |3x; ^LsI蕁3,X5k}VQW:rfAc* di= uξ4z,gٺY*oJd6Rv /;Pq`ՙ4ZgM#I-N [xO>FDeBOllW2j52Cr(tD>ݲ'ZIQt'dBZʗ⭳GVjKK+&ryVrN1G|)tpmK?#ln-'{2 EgsTiTd(ߎD\.|qО(o~KYesnU/a9)+ġR@G ^YX""س%ⷂtBN'Ɉ~ 6rJ7JZ>ZbA 蛷Ax Y?{JM݅ ]Ck:~2C[I$ly1n >#n{(J3+:kuGdł~QzYedm֕ѐ.ԠcL? l -ngadצvLH^&NXjt)TnYͷpD$~ Hv'8V#r Sd p杮Ü*MO-Ѯ%2=z"ASt}ӨXKxYf:7et@sUÄRNXL&[ k|sj(?of/=\܊O6[ٜL0Y }l`MAx7Ed]W4e(zOK܋ಳMT~4";@GOL t]^K¼tBɓFr?j'V.Zi`2R !azݧc5k>V:55p C#pE +tR﷘$4/VG쉜%l5=Cm| PbS-ވxyI-5M ;8`P E4}aTTa'|:Ԧ[Z6x޺BWU9R^wA&W.[_mǓx`~a׶z+'Z2/xbm۫wcYݪЉk6w/niNJ+yxOWJs}4Ww;ހh׾_+o󴛌ѡr3fm-cvs;|m\*]򺉮t]r?O_߻%DERw< nEn|b豮dY"l xj[\vGUWRмWCuc[!%WXWbw_uٳE1sZ$z>q;Lh@K6ȇr}5Xa{+[5a9?芺:gx9L6ku? wZ\%}p镘] zuʧ D|мoq*˭~I o;012H%aoL`vu=OIe]_R](kRUq9 qgޏxbzYdbS1qUThgRDUb5^Y%+F| F*fϘ_]\_L]?`sA*o*6oC0-2ZP% lXL{#d]{PGb1XN8G+%ފ3l= Я>f1gCF${"] M~ޟ#>v=%A\ ^HOWހBɿ# 9YzvfpcL 7SQpUj-0˸BVӿ,:\XHmnשv@kj L1QV~<]py(>ªó0#'қ`n4ړϲSSkEd|3Z͒7 2k}@=kCUJ-ꉼ2}Pii%ҥ!š+knaZ~3(lE5R$dH|*^Qǀ u0eӾNǟx\kn]$jᖺͽȦ gT+N:zOվʻ@kl7 '%aV UX诟`ipppwʠ?!TX8 2t&ŝ [s${#6G?I2hXV{t>oFvYv.UiS'e1_[5Ȅ8H~ E榨P|:}6qdKt{ PO{-0Ap)AToRHB)ه='WT"(Vg}5rZW~$B}S*tbH*V*Duti_)eEn_Yw]7~@ PF+Yg}fW܀EdEm`G4& U!_(h Ŭ.ѡDQ/4+oCH WtSy !F\vk,#,%NT;}jK?X>1Q;b<^cT?&eAueso$3&r-C{}tt ˥QwGڭ /k@܍wW<TIAUҞ 0KnW]O#g2/:\<ަ&m>Bhwf{ :hѫS ElxM9q@X:ZM.:ihB:6yHۀ\zoD4vEto +)A-gRO40yOs(x5 `8J;~^gօY'HR$+pΝҹz 3Ж JJαw/0!ɱN.<XN`FK@2{[JWn8=6ğLU2=1ƥ;x~tgN, j5$09&s%eHzu l7lܬFytʙdJ==0J~XpTkiX 25X\0.॔uaA`6A` Q$:@ro\\,`UNZXБ+Ph^#/CV?s[q촩1\<3NKӓ>J.@E^ֺKbrbr%8:`)&Pf 6t\*tܕR'BI'ohw`~B"Ir¼BG b8~ޅG|DK C'5g~0Q)}zG$_Nv^-/P0U pЮ7[ۃML{cyo;?_j}$u7 s+my]{<5K$0GӝQy#Iq{)bW3t7CFhҞ2H ׍ĮIe/օ5-.;F$2y/Al\uxt6!e5ϖ_mtz;RqSI ζվ=qߊYjΨګLOu.QyRQ4-ȁ[󜃏ctoe?CwNӞK+gS]k G}nk:|Vڻst5[r9>:#oR4u!{R֜eʹWGR_311i󆗠M-L> ^mt\8_u|Ԝ_y>Xǔv{^ԔIKͻQ SC+ʼJHO=-z**" ,/z_mN>vy>=9U@fۻ·R\OP "Յ?_^ęA:gKyHPT_/ޡ/?HcUϐb1袹X&wOlDǧIB(3/qRȥ ;t= cu L,MzXӴaMI UldQlϬ¢0 b@=A%#֩^?{8ÊX!$?n':Hʉ+"էuU)_3&E\YTd.٘A }зۀES_.Go^~=BXYߓ|K;BVȸm $) YmHo$J͠PL*t tmPT&D:'SmQZ0dF3!i~)f52+ JpZ 4C ד2EZ"!|Z( :ح֒v+KN))t0T`TN]JМS%hUU8q,"+X:>lzK%Zsn[!ǔ'o%a( |3mu4v;"r<w0q+̖:'t.9rzeITȿ9DEA*C ')mw^6"l6寢Nÿ18Ҳ9I,;ƐA*}'UbG9)R8 k_NBUYyaD >IByu=+hGwB#21dQ')qL qj=U6Va0F_cy.Vb.8uK.H6pK+++% Kl3JVa70YqM ~N ס7y{[S-'?7¿]0@7C<_d|wKݥ{ =ؽJotm)nc{ uFHDf|/oK]>T%aJ2cO$ܟ;:}>q8 WM||r>N"8lWdPQl~ޝ#ӷO^CvPޖ{‰qm@\Wr<MXKys&*2s3z^&yӭ.[ W̪ʧϲa_5f>.dlc$^1U(ӹ<'DXrŴӷ+WQEa^zr|3O(f];w$ǣ+P{4ͩ`m1KA-cjj򎨕S*,eeHK(čsXQ# O(qXFm@_΃6hsCcuˋlL?]X$Fc7'/j(7cyW+]#t.C5ͮ*ǣk̽aknWN͉ !`%E{5 #bl\ggہv(VJ] 1(E Zslr$+)U m%^u.d2IQ5XՑaW${! O@L, xQ? |Mn*@^i.|BRQv}LWŒdTf1[,6Mсa/,h^:h9}Tum' 1at% 6piZu ]e=;DhW(Pjgw0(dۈxߛE'1AJ³Y6EcES%lE<LLΡ$>+6݁T>#Sf:$V O乴lͬU-ǸbӋrg`Ȱ'<|te۳< 9|:'>P'PGb=}ony>wT$qB7Yu2gb>/b? ^@f2ȟ/_4r߆œrqΧ9LǏ0P-#/9[N5&?r.1m-uݕ~\2x:ÊWWy Mͼkx|8 u 6_vkkm;y_#o]a?~|!}A='+]^ynI]OCvi<%*ir ,"}֦4ǻה~==ÿo}/Ϟy/?y iS=;6y _7v Ic&?j(, *#9z TrLdFLSg.@!u(.`xdbC^J#bڟN7/'jTn.5&.(dr2YBPe@8+YSԝRI'ߑb**P,u#b qTK&!*MϯYP*QCFʶKF|ڴu.1ON0Q.ݐ2! tuhB3S1B+6t6r|2B,K17mV&3{<(@WJp*Tth'1I^O|"&={5IRkrk)Wz܋b,#@2F+D ~-e}FDpH.EZR6M /jNk}q!ƺ5sG$t(ĴIKGѥq mpq;_rh-΢b]n5ޡqxu`NlkgfY0RPt1-]U0).L 2# ̨=Rh (2Z+271KANm r㪬= e kĨjU ݡ1?B)<  /#Pq$GJ8|/.Pԩ Wd(Tԗ/o㷳vh-us0t]OZe3A-‘XĪ:8tk5FEغKėV5.RSՂ/ť;D_dK"r1SJwĻ[$bZ)[/B>NP8]cӫ?#۵(} ّL?L|kh(P4K// l;:ѕ%wg;N$~I^aI7-I`%?x`+-Z0L Ў4gX2z^* 3I N[Q8Gܰg)L4нSGA ?O2)ڇ/jS"+5$VĮ[~-WoG!)ߖK噓Lh33ؿbxk С%hp)v 킛QLz\w 9- zy9VbXB"20o)cUܶʳ)xf]8IO ܄tڃ7Pff-MÇ}70Ȁx{KZZB )k6% ~FΖ~ ZuyCy5a^h`r@e hJ8둂vji'ȸRb)JشҖ낎z`EAWÖ7h)[Բdco]i7#CXv3:~.pyL"a#Ip4 E_Po|܁)]Wxf;8`¯_ŇjP?S0zyttl=QlG ӧP oy*eȭ1</<d$S-,\I.BjgP( .ajA_x3SgbD W67()sD|=>=0q#QVz,KTz5tlzucP>6Q 9K K=!=mGrhS%H]P1_  [X P#6a;cⱗ+c6"(vPx<,e_7n9ᄦ&c"eL0`| 5DJdDh?ϰMJ7\Y ut"-`@> q޿$_tpbVh"7 j7y `+@ )35]`UQi{xvuٻH6ʐṇ*!T j6I h eQtb:㯡ntwhGS1 .;Y&hs j*jwyy/!4ujlۣr۶]Wr ŝ }N3d@;gYڀv|F1*9"U]fe}]-ůvȑm%h9ACZHΨZ-$)K` єX7@p(Q"9FM,d+PNkm{{jr6V .`4RV+e[ m:ĆpM4-'"#'J(!$3FIk)B*LuSxK.?}j*JXQ8KSH֒8{B j{eW8L(g O=i!?BqQX%S(>,0h>Uƌ@$ C_lURn*yC*we&0g]hrN!BzvuBnJRN I,.AAX[^^mFJ1HhʺS*=^,3^@BtBJ 9* @:~rx 40㏣ҡ/&$MT)k?ܿ7ߦEm :$הICk50ʓ-5@QWRHzmy\]uAUIf{Of!Ø ʀEUW gm)Rզ.t-^Fv>A/]F/ \LەhypcU <|fնR=ϊ{WX꾋^)vDrB7s}_p r }lFȢj07\]riCK,R`ļ=;a=AVg*[ eTFG.F }2"t> 0'o6&gT~FWɼ .w! Q^KWU9j"4E{_^Ĭ {mT& CTcGq @Vh>u QQrYP&{n=&hˊ/n;u7.Hn7/;-Ul|bmh2XtPIH mnƜEˑ-uAfH wMG[{U %f*%AHΉh2xU6ġ9SΒҁ71;ϲB.HڲzjGo(&Bt](h162FT^uGW'IwO0+"2yϞ@tԴ {CuF[ɶNP5wd|9뽛VHNn54k!m>5(dt4|}b}]wVA %^]sU`F*KPkw˲suQw>-}. NjQ;f@kZf+m͗{⦙oxgK.  O{,:M oz(w 3d+GꥯrZ3d@Z NW KDh (Dz)yuu~2Im2${,%IUAnpf4').>|utqW Mu*+x)Bwq*e?JK gHJ3Q;hiVxBu 6k3]7o'YٸU5ر2oc$,jϋFG41siL(x ,khy+ d9/L *w&/Xo0" X-r ˯nB$ɷz9UOT3F:s6hQsk-0-$oP)ܵgtt$N 9%h/Ett1}t9vx}6gޝ"m2&C`dy3sZv \kގ kПS+BB8;}"Lj|rŁL[Q(ftz08VIF9sk  Z"`yW&gG0u Kz8#7Q>$䈱qd`I#::W '_= [tm~R[ch18\A gcw ۵ ~m$EYȝㄝ)o[<^Jݔ3mzx8TU*VnZl\ ;mbuѳgs.5L%4JJ׷)%Dj/BTAyF`OgWr#@vVV yw:D&Zf=d>>~vڕUD9><(v"HPmQqN}ԙT\dR\Ӭ_W)B? ;s ̝?Ha"Yҏz,<= ETyD-v(ҶG5TP*c_Żo B (qdVoŦP b-!dKo.4K=x 3*w@m:6Ҹ~玸O^# b1G U&aUJ ڧl^G*GpQX!g)_`1j?fǞj-0b?Q^[-*SSY( c}rI` 9 te?!fZeze] kR.QE@B`CVךEFL`H=5w92#?TFYac;Dp( QQ>Gs4Gm5$l`,Sĭm0p~YV0"-rfpz-R X %W/|e /mf1t9j4Q.W|A{OVdcƨ,^?,)х(ȴY0Ooo[<3 u3L1`UC: HUɴ6l>5w([<%PQ;f(}Na81"論UNCy i XU5R$KPկ=^Qeã]Z-o bTىEGtdeAyl}MJz~=sdcQgFۮjx&諢Rѝ< ΀_}YwKlLa R\Hvdp}x,ذn|EdjU (`?Y;b?S}83i oRXbQnZ %xtBt B:Z{94+bCY~ G^ƋA z>Jj`᫊7y^.)nnk+%XVD=Gؔ*kvIF22q,7:bG2'fy.)yJ9[7{zyAy:<Z3YI1NkJh"!:#\k9U7-ٕ۷ZBP|GMEurQ,cn#a,7r1̜`Cʙ4t#{Q*bA\܌D11 x#ܛ">/0sxN^.IN*vV%n˵d+ZNωC xn[JXtz^'?%0ʉgB1܌M/E5HvIw.Q8k*CiPe?a~-Brנ5 ,{YWP6IoE2ѐ!g=S q΄IG~Zg-m!tl7bE_c+PuKk;BL/P(e6j$<Jg_sA?,]l1 .oQs@LKsƜ7ӅVg hW t8 ӿp)i.ՃOEn24MGW,\LfHjtk(rOݨ/o-V*0-w+_?tD/V&<7߾f?=kl Z7kqF>۫ z2/I)I)t;Vݿʼn>PI,>H{Fٍ^]ugm1QC1ʘnfRۧ(wm+#'@[rl UI-usin_4-___u&G4hxP]±|.% ً[\4&E]w?mR3R &I/͆t4CeZbO=OJ^MYOם/j32k]a |5$vih*=AGuRW" x|})[%=1WsTZMѽfok9Q&L x04F*ծ[۝vS[o&`atft 'p;YjbQ+Cs(O31x`+6rw!nj[[08IMPՉ(;c!Bbzud>3OwV˄!]A䴣|9H h sٴ1 Gdqi8VDntZ]Meg;,^?{]vFT9,;yўU1,q;N]AoO._/Aa 8>oCR $).1Ų|V)g `ɶIR8d-b4u(/T끠5jx)I1fL/{^K Z)@z M)4Bi_ rnnё2¬ˆ]h$o!UPaPiId6}&>R4"Q,w}2҇ќk U4*;Ϲ|*$7uS)iPv贷x&xR'~bXW]ȴ6h<7oF"6JșJA rOEh\G,)PQ|F|}Ab[Sekgst)_,0\~rYL!vbgD›QCkEᠫ, ZT ֘MceDŽEA rEx-,HC +!`oo! U|"ʔISRIm s2Zw;`f\e>/2%u&E0)ř*ـBQ{)YauE6'3`B4E9iG-ڇIzkFzحHY_0tO텋+|D6f T/6Yr|c`՝qFEI}wjrds"⒬1PYznr Ch>@t6>:"|$un t@6 $ӉŅД.6^=k"za m^! WPvQIpqܴa$tB}o6S36*񎹤ETEGOhBa -\ίQ$)#|(EDT3A'v^A3@)R*x6 7&Yb?S[tY+ifvXu!SNhKd-g*t#cԌ[]ů 噉[F6Dɬ<i%Rӌ}\cZ.\u? ލ8a Dh$JQuO) ZWϸzrdYcc!3zˎ>Q]7UjՋvNIVzp-ٞ Kl8CBMg:S㦴OcU9|]N)j1Xu5\vY.бQ\vg݆cb'ue;qӜ8xߌU]{>+PD@,-F5rߢB~>^j-`Jkjv-#!L:=aN ה.G[T&gծX`YF_YI~(0duA>9]jP%Lčv{KF܎`Ñ?rf֍ao&sl}Ϊ( 7J7BGV:'#)5/eO,]rXeW?Utqn؊0Ux=6\}iZ3,)# *Ue^guM\wZUV?Qm r\`6 ށ]dh^j`O޾EV.|v=ϱjm5VUm ]U1WSzzͽvGIb*kWXm.-w7I6~Y Y5z1y}ͼo, Bazmc:)fSnr~9ԬC Sz)_x7V`"ÕϖӔ`2zCJ&v7/i\aTBBK=H1x _PU٣ϰE#'ٱ rgjB!y Ue-J  })5 'lW`X)1zğz^I{ý2p0lU )Ox~CJhg¡ ѫ#=cѷӼzI+,/Jh2Q6!b7{/V cA;ݑ%*/n_! N_d)'YQ~@3{%–GĮijfvfW/74rE!LP$ VRx,DS'z=y?(=JW^Z5HyQ1%ze9(3&F؉E6%bJ-䌴_K~K/a' 2l靭轎NSD7N64T Yyҷ2Wr]{ Jjrom~.Cr̺- [PLثK`p>=CA%Aj3{!AeF]V$[k 8RPՅ?!i2YḦHF\ =9{6(EViL *=(H*zԑ5eF>srt4zChkg jg vCT=0G׺g3֐4ҭmQ3 ϡ*mw2;W5_a1d.?_hk(th 3>z9OّF): + Ɯ F];[ϑ` 2;V2 .'èSW[d iS*&iΨl]¯#]GN)ʆA>K5f`A5J7:9Pi(1&奉zxfK [-bd 8UW 0Wr<^Z'yDVF䰏 ȥK/0@z^P#`-^̯wͭP-dr'[U(G2bh'ɃcSLfd&13nۯR[7F۱ZAq4? θ~ >ضvĴQܳlwoF6?C1]Uk[eڲ]T٨pP"%q,j>OGf"qG DH$p$RB;­Ǡu4,͍M5i,!Ɩ!'#IY9qUk4ƅOyfƦ !mHRsM!ݝQ}+=>Kw繙*d# ?6P麨}18F' XpRY2 j g1' j:> oA|&2a17>ڲYq3Yw 1p(LRm'T;niPJzNVmBbk#s.ck* +7JC{܊LX#W.s{ŶMW: ji~iq᮲vJۿ O^SŢs.: Z#"0y׳ϳ+ZW6ZdҡgnLSסN .gѳ"4".} d3O{t(}.RBТSA1= I|v%. Iwcws{vd] >jvBQ)Yj^XL+>O;舽҂4dU=Or'@%!u@A)|eU`%/6@7ҖNc=䬿G>Q,/^ rQ8Z{7zM1v]l89L :=oXkP6:rSу~.S} W0c('_,`Nj)cFN!4Ar5i?v:I>,/lKP'-ea6䐰:%3ns5n917BLn#Ѳ!kJ[.5|jA:wr{WO]+X68(D.#呵wᗢY؃:q.>yKoq}JNgUW" ׼#%a 3~~v}(x4ʪ9p88(KܥO)2Z(M,4I(;_3$w1ߵ*8TŸ;h) ԡe򛧒0RYKR%zg AT@k""&|fwI;LA#\=8ѩ[ߋA:Wt^E]zbƾő%.,'`|Qަ+{¿-ғ-'i!gыRRՃO/i>")lGrbqblk:3n &v9Z<^&׶è}q 瓏z} Hs7;de[Y/}3݇,Aӽ|\$2jblGǡq)`1'Y#17yEJHPWؠٍ}N 7e_-?,4:Dh_tUim9䥚3U8,Q/h>/DLږl%QG[>Szmp!E!!z.BG{?rMR̫Mpdp]y+!q[wNQS9_ۤ܉f y3!;*WL;Ԕ'Z AqVdl9j6IW^Ki֧ȵ5Sc40h|*yH?\=G6],A CUEb5]P_G [vl0nrV4B s$Bj=f#vS Sk18Y= jcJ k\s] 3jO]L :Ҋ{i(4{-g4;#g ]W:%C,a|䡁^iYڼQET}dY(*g 7pK*g- ~a .Cs qHq0bֵ$oV=LդɈ Qߏ2G ^+QũTTb$(F *p<%LZFW+lF}s' e >z uNOMIo("BEF"\&c,aOj6죭QK8 0U`Z]ThlA+,ƔS^ÊZg4ֳ7]s;38mL۾ Xr mr)DWJ L+@*g)>ЫmmP)`rq|-C\NN _@`|%.RjyerZ3ߞ4,p-3[FJe/^/'ͯ*2;ײۨ)WVX|(M=-J 㮆] :SXs֖d(ro^f*HT׹Q|$b*Ŭ":#zYXBGz}guX9⠎^ٵ5 6q9iC&EIٖ`3v\*Ёkv*Kְ}ʈ}VcbܖQW*"Z3o5L[k LaP7/f*&E2pTHDɲFE)#nU&:Ԫ5ra rG?_q Qm~=F+GPlkc3ltlBO-@HL'd_0jjJh50^&içM] G7Rc~= Y!l2s)Jо`6mJ.Pr q^1*ʗI(eU8P[=Ѭ侃uQ^+q![z7鍻.WA rkHՆ1`DsƯEU׹Fr1/vAS+Xl7agFGߢ~S.FJUvet7\/6p;UnU.NTmL7*+m:pgsWzs_h[6IRd&狵8f(4fX-slѼ%SiT uKuעhOX.V ANJREA”(S@% iD|r&^SPlfV B.">S@+Ti膒@_^s 0Qf@l{ϡZ U g'LZ%MھѓbZ|zơdRuҘj&+e9w`GM0}/O94QKxNB `1Wi1y;MFZ@/u*_n5t^ flVjnNݰ\ymi ֚UeC,$_eܚג׹v1Jo0Պv׸z!~w/REhBСmJ,͙nMW smѕb)@y ۆDVZR=Q]/~5oqa\~y3vp.'7D.TMETdw \Fy:+Z;[frki%wVt y+%zߢ,40[^\*s4Ֆ!BgA w ߧGLю&ϹGCQpm+ N@[zzEu>x.֭ƙܻs1ac-V̷ֽ4p~gp#ÈsS'^ČXXh(T+"3XI%uOаp6Ì(1FÜ)J3af)܂ik)ԃ]jv Ym.: owĄ>يы?^n9vW8Az6EL[՟*NN~**wt+f\j4a20`6 ?pfں9 oS6\p\*tĤ+s& j⃅ZAjEFNUF쀯i[{:+ԛV-q#?pFWs! IW/1y=q(cl0챓Ker1٨!z` y% p =YO3 ewUa 0 BD f}y>=3WzCt>{۝a  ?~{{NDmp؝PCN`0?ZLr! N&'u$-ޓS%b0ԩAOP-x^<# R M9-k}S^÷ ?_ AG<@357$[06[j.)^;ڙگk8d]H=T9Cq/6[h)NfRdcQ3MheK~%"OlasD6:BpX*[4La[ՀĆUᡔh2L[f9?Ń׼鷗sV eFwVFd9ff٣< >_[[\_ceO j.1JdBFѲۚ<t)b xLx9ք12AK_↪&WZ==ʆm2hϠбt-ǠGŎ`5ALZn5wEN"hӎRJݠ1a!ɘ;?+ƹ;#U| i`5xϏiaw@1y~ @lqk ?M)<\ߞcD EzaƁ?sP80Rق|'0(䍜F$)/h|¸R 8(&bY(B&1_+yn J JYZg3 ]lGP?ƌed-T5"S xeqOܭjvRS%UhmnSsx\tCnIcʼ>k;K}:y 8pUcmkXƏkysQwU0\֩o04\VTD;0ctox5޿o}|" нf?1Qg% E$%=PրIdH.=nFpz?z?<qC(H<>*6&$6r>='-`*cRjxlR6ZT;y%Unf2HKXMr,Baw;>|[LƂ۫_9? J3~|wGlZc;Z79}Ǐx1ŕ/McIDZ&w{)quP|zbRHKю X|@v.d7 d[>%}|lP@MGR?8]u枺/Z$yHIARAq;Z\Ì~Jt}ě(wh5|0ku(m?fU0 }b3(BWTs+D X () ԆhbΌ .Ѻ8&ݯ9qNf6xY q(m܁|V|}xSW.v}~i0idJ"CߠC}ەN?Ǖ/`zdMwx֨V0<.~CP S?g#?CX0cwXXv"K/պúk,5ˣ:FFncv-`^H5Pfk=KnL_ث'xWﭢbs6XwgTihIC& ]!?LM#lu9gӴѼ-,HuFE+-jkV Qٛs,0YbM,Ys k$ TEp9 Boƽ;&Up ,/m8JQ͈HJ6@DL鯱<]٪"M49X"qrv9oķǸ1'4-1*({avr=ViRu*2ZLk=D\(>,PQ؅OC po^[\ntfOs1px{Yf?Ydk-dB՘׸N]g%h*lq4y^wJRHj%@yzߴ=R(\ +\aiMC|,~֑w~µGFؿh P-9HŘlIA*Tv8]o꼁*BDhOJԆUk̶,Gű )**Fchylw;j6*S֥.G; ڼʜ ݓ~3 Rc{\P>EͯfꔼM i)<m!6TIM:EcIct nR5}Cq9>?9ssYX)?<(0P8}|q"RSRzVP1Ao|Ty-g@ (Iĺu/ .94":[X]ԇY au$t##)-EvI K <ɬ\C=|7s ND\ɸj9֬`K:'4g# hW@ Ō @7na9vmK~p]DyϑZwkr[k!H 8˿pX>a/6msTIW0{Ǚ(tȂZVpB<c FwUFYp>G. ]4w!]~w %a&u|:v 91q .(SI>ho`;h8hm*yI2([l]tQUPNC|ъ˓q|ݸBsUa&x؞9tdYz-8 IAR^/V%,omw >뿂 $GJ>~?<]XZ7A\#_@>A&%sX\P$x$lF% ^2 OLJ<N+9\jۋop=2C=圮G4J L9̍VwXunVUoi 'UּdõW ݔJ"e"thzw)q^@,J&4u%tV9G=b+Vm%i#G.i9'^Cǡ*e_q}S #TƲ¡KMxвiT<+~J^@7!-e:rfybU+ ȦH%N+jsB0kaC3T1= m`YiKYÑ"5hQ6]z\rm|XxIwOif%QtoSAFQjt> u4nsBWi#)ѽЀ?A;PM+Rڌʅ9 a|C 6δ[WE*.OHm+^Fc =>;aJIN3I/Қ@:74:w5)Hޘ/ ) 1͇heXb)9aflmK!9#v-eArEI9.OMvb_Pp @~+i[[>nk {) @Ί}YqHŭOX%9gPϷ;[4 rG6 CSa_D,qۏ[j>*s+P[P uXƘiV円'[t< vJN[\/AhSk*R~t|YYͻSw%zE7ž#i//hU [7PD3 UѸ4?:\P҃|FEJ! #ᶢc0slF[24#7iXE0bJB{0g)-CNI1ؒ~R۪WXJ;*TڝCespBV-yТ4OdUGq1Oe?Yl_X9ʔL@LzLp[;qYwe]TkG 8 Kar#4ΚuTeg v2u-9> 1}˽K|vCW!ki_R3}2 `={U;rA6/8k}tOZ#ˬ"ݽQ˵;4ܸBHO 4Q.4,T.cґzak4ylA.ΣT$q/} ىU"nΤ)|C P?LqUM}1B;VZjR%+M Q5+PotHJfG'(2 -cj7peE L/nӌy&` T]O1$96¸6dF3/q=!)ȁ[r(RCNDNa@E3PDnFԾh= &/>!kZ,치)F)yÑXIJXޡܑz1gpAyW5(|JLUpJuȊN橘~|v9wWZbP d~5ϴ@=uE1Bv&bZi!{fop!iELU,5ĐABWjq'-E| J͇;:DBbk\d}!&\Rp 7E`JDf3:Xsc/rJc/{z6Fk?Ru cRITH-)Vd{`==[p3Wu0w3̾tO\5-*6A5{4=Heي9̊W[p[MespB,Sik Pk-biDZl!JюiQ,9zpkK?P`{{Lj7f.̭ؤ3L:ipKq2~[񮿢1{B!5Bf|6TJx3?&^i(#+>ӧ9%jAo~/vjA Ӿ엿W@1W{<1a}|3Eu, ծެGr\s ^X|_wݶi¦0Ϝީcp9R ԰E&)cT&fJ{k)\l24eQ$ϸ5w@Ä[Ǘ M JS{սUfnT# 6dL18@gf0zid o1(Z[>8Q@d)6sSjAMů蟵m"${0ҿ=Yl?~۽n (+\_6!xfՋdvt3W*%wzՇ=+2_&9,MgFd̽ɢ߻f8&a0PNDn2L~k~t [|iL. ;|7Dzqޯq|jyXj AF$,_kM{ ,`9jd oG#(XM k&h/0c- 8y}S6HW2H(rQ>2#.+0x(Di@^ LxHI{d MV.{WQaw߆*5On\hM%jJ#Y5fWDUk. <۵Xs;@ڱ1u͔K0He 3.^T:l^$6bjvmy4*?fl;}A/82[OC} {!)Bh^1vL҈fUMG-/"QvHZŋYq Fgh/N,~Ꮳη)sSԯW_SC֖Q(Uw{JӕuΜsٝ.ѼI=#rKM(zX\jt\mѸ%۶eTV[xK<-b;[v(vY4P?>0,qtH. 4˘1b<#Rdr4j2"nuAMuqTj,n.(& dI j]b"i$*7մ~c{f Zll篱7gbY-*,(YnqNFzJ5YRΣySr I *$O]F)mDqG[(I{cL]׻/XB?<:> yUT$X8|%һF޽~ďw_ cQp|;zϏsF3K 05*~CMy q0^|Y͋9cنZ})T1gf&QĚ |KMV3ߏpTّlň w ƈnc.[ϏrCdBuuǮ!Kq2Ӝw gÂJ@X(O5N9|Cyc>W1pPy1D05ʪwn<.B J̾MD,(u,1ON__98WO25̳֐ pJ%5(#7)4Ce1?#wŖi)Gua|TCڈ{޻:חKMpG{/,A0"hi:ӝ,u }^*rur`@tL"p$w:# )dPFjzvQ(1f5Ɯ@춸"7 x3d)$h|OZ2p\{:RI[_™ɁoB2đ>fcg3$S҉b͢6@(f)B>2NM3v8B70[\c<#F @cIRNӱ& EsJHUIO/zTdq%ݲڠpαZ=aQfz)BK`TX+R ^|KЯ CnsdUYG2ww74.y2[.E5 /AxS.{(bd+`<=DV̜;MvbO:G9Dn$^cf E8`/߁ 7^ d9S TMP!|cBr@;lFKaF`-3$P3B'6ȵԷ'|f`)#Ty%6߉w:qٷjKܕa4D'EHP9Qu2D"򛨆%i͔{ 6pp1 ?r9G@fc-=`;1ab7r~ )_Qda+N!0o x8.!1X4o _[YDXG;D@ 9ef`LGs9pZ#XkiۣLY]<3ݽ4MSr<I5Pr*H>ge A 8cЄ*nAW0٩A.NO͵sAB ʹ"醓eP֟ 'p!=Uπ2\N< R';_D/?ChH2RЃ̘(t>2^8\/̠*H͗@OM&X`$((D"; _; b( nn~8]WTdA@9g^JޓHENzD"C^>W:X c``@ „5lt*x ܀faƽ!һR^& A,@#dHX-g V{8zcGh8阀Y@+)<$XNRMFb aWmq$ɽQdN.%NЌ#T66Dbk{8Lľw;c^mONF+^$zg ԝ9H^C_$62?%2\0kak[3~⻻#." ӈP` VL=S/30/0=ǣ6yn 04%"0 ֏NvpA a Hx˙ˤD[.DgmQfRT@ah|;G15<x@KN=Dc5ds@"}.CDz>(HbPMVE\8GqtEȎV{iTgD+F\#j!!tE+.P1($qkq9F$o+SUJK D%D<CG]~\~N<ҥ^*I/{UBte2V3GNcL4_Lt)ztEH%?A@$Ӆw#yMϭ08RM' &8DӎA!S;MF@$&9ɷAz~d@*HF{FEWBo姚C<ؼ-.;%_|-ح"19*A a$Uۄ/s۰+\~C"S`@4*mGDjX̷,_4 xm 2fKT}*. w[IGG(T w[#dJSꈸ#-D7i R7zg^ ^Г"2ET YwH҂ /X(?.$ QBX)l+jB oޝMSLMY=lީ;$nl@bd譋RmE1 "dv5 ,GУ`&Ī @ghdۛqZ`*6 1 QA 'cHùg8PE@Eq=fC28ߨGHx#iQ鴷56 ,vi$pTrɋ1(Aq !!u#"/?b X~EYx|dtp4KULF#{Ğ[mPTQ] ܥ hAo:; xZ (0a3=B%գt$t$H$D jzh*Pd#3pW6'ƾ,{HLt){p?B.K$^ᚲ0'j;6$Wrs{&0ȌCT( .N 6[l>y/{=OsF+)g H@UG KXG>]X y* 1#`@QP.@/JLrQc.?Vq`,'т 'J4 BL0(bF̐cF<(BͼF`Q&)g[:=M`![+ƓTטJa~wt-c #Јc@Z4BB Yw8jBjay0br_09xKH0*H-m+ &鿽vüT* ~g3H2F; RI,B/Iv@1oʷݷãhgbLyi8RϪS 3Ap<'p'ZF4H#l&B_ c3J%/aang4Hw&5 1)^eiNԒ?D}"7M[i@ oh^t9۱9)^/7c^N&0唂 [NfM0z'Y>w/+c уڠ0`Z 7 &*Z62bހU&UhHX Hh rQ)&טhӑ,",^$'}cgF +p,=aѯy[ %2P !1=IDI2U7Dh GH:H1 gFr켥=f+,GP'|ҏ`5IǨh*i"B9*Q_p 3IbRqґ@ )\%tӢl ٚ~CZ^K&,RUT面W2U@|w5f$wqt֛\! _+ yL+Wz!3 E)(N [x *#M7Fv90jeTeZoI-)$>X(z-ĉBG2f6eIke(.f+:iv6x7gyYx- bf\Tx2*E-[4U TČWT "Dq3 JB1ݽnI@\'D_ 8[7gtaBě' &᤺Ga(xʽ7$f؋D3|6Z#z2R[ 3<.-AՖiAQc)cm;HOĀԜma[o݊YBe+q[ЖD%.Qj*q=K[ Z2m!nI`Bf{ȶWoLر\Jd Hu)y+Boro 5"o 7 e< <ӛuNVFzZ3 tD[Lw`I~Q^2JwIrG}njkLR'- 4+g^(}и><~-2Ip5l܅$oFlO9#ͶJ$-A8.+(_ b/!zGƃoU3HT+FP{Sl9BEf`#@g"00DX#fY2[GjcrXtxq×M3d 9@NP |NB3y>kDtāb#Ne9P=0vZ a$xHMpᘘ o-tE>=Q1U=#0\Q\9 0s|텗QCE%DؠQ䊪YA8hSd;(#ebƻƻ 1$v6X V+茀t'ͻ$+FL0Z Nx&I‰Zqp9cuz:'ɓٸR[pٝ?#;n# i"juq/=A@",Cn#"ౝya(nŻEg]'=BGI"<#c b@bG# V`yǑe+ErC&{-dzlH Q"b*nUQz}ϹSj vb}xedn1*!US萺e/ә::sjr+L,n]m-9*54}X,{F+X#ڋ`Ἡ4%O¹%,̝ GhպȷgUIMh=:FYFTY$BiX c9+{WKo,gH(EtiJʯs,=RC&z☼E2'֩;6cD"5EUfQk@g5&a m zK|\cl$SEJ[\?2ǘG4а>,(Ϊ'M(O]7i%QaPD / lDc o? ʔ,x%|#Jf@Z; nRMyC 4+eQOzn`ȧrA7K2304-`N Z {P.Vcr!7lDʛ0a"k⁒& P*"M8!JtD䮠&(l!^ Eq )A,G ;m2[tLDz]rI 68I sAkiyx(R\&iWJ}O!6B IUuOQF$Zêra-Mn.6ꢵg$ Z ܡ)n= #'yuH%i5.RO)'8zIp8 0E* 24OSM'[* T{>^d,@ƏT&!P`[^R!L+fMSaCSWq29c,ΣtPɖ\pX6!'?\;"ֶB\VH$$vOڛ6pm2hZ (\q%R`[NҳPAğ}鈴cqdȵ1+@~TkD=J*Apx2?Ax I.sKH=eNp" U"vDMQd-Խ^Ίa!> qK(bӡhP*HU{)\\:^`Tt"hiFݮjΆ";vҏPEMUE餡{l5*f]idF!TPmI/1RLӮNnCKlɶgR݀6- F5o؆mMCZw$x"rmCVaI`H :áH*h 5󫢚}x!LD}] kECBA)5Wq98RɐIN‰\"%c0r 6Vln6oNB2VՆ0CH#4(](E\9*mE hf5,ũC(ؒUow(V@2JKBEa*R( ]r$LөP7FS@lתN7)v5mbB HNr*fa)UJirFC|*EI$" E+gZ9&RYPAQԞ DƥJ( x3->l#sa`9N ! cdTk<^1&ъ|9(oMS(Iz4DjJQLUB|;xR@5pA$T` ERb{5LBZpFnuOq_.vյxu"U-ܮ:~Qv(wX4EBrͯ;нN-ugyB<-׶hzpVX6n%iTPnpAI-"4N$r*' .LcHJK:[H .mh:(JƱ^R\^MBպћ{T9))mrc- (b\N.yo4`kP:,n9ff !A5SS,,y.}.FD,BTS:jRzK{I'Ѽ6VJ2`j:\z5U`5V^U)_qaj0ZKQCo*޺HƵ,)s*ps^~vmўoAnSиT)5lU);Js#қѶ ġz%dd+|g!ʱ{ UZX)Uw|Nc|:QVkcX|?6 kUC{Dy*daTNCʝ(άթ1$ԉ/i 7x\(w sx9q+Ǡtn6jG)a *ҔC\(PA7 JEczEYH u !]yjTI!d1 N6"(Edn(ÎYRM^5fJ/ yٴ y:mJ qW™ֳ(:N72͜R77`Ubi 1NؚCl HRc)I 2(KoNY&I1l B),^B.r<sJ?3vX߸@:%…IQɸ(fP&r }0卝?vs{$%:mJK䰔oińx>T'AXJVX( cZ㬓nn/mC]Äw7=n dsD%XzՊo* i(Щqj_ 9X=]IӨA""vG( SԵK:IJƋRӠ(+)Syޥb:p4ƥދB!Pmq07Re`Zq M"423A fKJ&Z҅wVD*['=pcJ$`D!Q\hC8G˛ɛDvKm5MU>7p \'~z[RԴ-h~D7T jU%nKkb_HZ5z18$9/B&JVPS0 EgWeuPdתX +cXUekjLMKt\t GK09o /Q1K~덹zypc@EдmB)oaX~'~{Fxp9,xu3b" ET@ÎtDP4%JFzrc)6ZœT ܅T5KҒ` |Jp8$:^gj  $e*wwѶ@BX"1Qe0vXC62کi J)K h!w%Ti9VUsmљ:`5n[[ʒs9ڐT6)TgXpeP+Dz2% ?V迶Zzh\$ƢI(qi@@ p2; 3RJPb(7]!+(W)pÕxA:F*縊 3F]5`GIR٤ yؑDb%i`O4$5"^%k~긴`( [Q\\560>0qߞKF9QtI^eYl'ݚF '2`x"q;45k)Zxbb3XdMVmIRUl$G<uėt-J#\n}p,vE^Bs.a.{<~ ԧD7iW|Kf g!'cƉ\j $TWEP )X$ƙaXZ58 z"LM]1ݬoņ7#̇pJ9 ۴1M±jEA)5f$T!+I,k4O}vط7^l҈ w}7Bf`ֆ_2i Dl'P:=Q p$:= t 5,\N?W O+jBK/VXi? # OF*ncE$$=bzPV4Aڬ'q{gaQ$<,n @g646)A: z)DJFtx0 Tk4ERK\H(tq)Raz=Ru-{OhvFLս{ 6RhDՂQd*m'<.PLvioTZBݴ\Ń* WxTmuM1^jNL|%Kd+LN;ܯ][ӰIWkh*]T(UԧM5*R˘Jx7>u 7סE#)YjNs$XђDIn7/n\?[DVM"*(}6: *kdæOď !MQ1'WoS:_Kf$ @ "A  K󇿽 nU  GE#v<`ELؔv\=DHm`3.Дl׭}žitJ MvV]+K:U "T5^Vz2{Sk&VWk;>_9ߡ3Ç}q)d:`!Z:r\\&X\\I=!I4 W:epWsR@=ֳ*t>"8ei9EnTʌY .M@aBk gNXOBޕ`ʎ<9Q(ʱR3piVj='d!a zh6@APH{`I_q{*9څ h7iX商i`T 3mXk[  %D"wR L#j^q(!U;Y*ʚҳ^܁C-O^" ou;.BlofnjQK&MIa Kj<sKGmK"9{>o #5-;ʍtM]HJj}#oIsu^+3t{卻QBRͤfn`|:HY&RB_5ëL$TͿ$ȍӺiV78f7]iPݘۢ맣20oƀp"@v`Rf!)C DNTGMQ ie cJ$J1d09$u>Jo.2 .epj(v΅k= MagRݠm6&xQ?9VKL2x8›HxmCrP,ryؾaKtqá f b tyGQ N2SRƍq:QB$:"R-dٯ~On5 LIF=24 oD5IGbT#3B$c"iS֝sX~ ia&Y'HxPFW5P#JEc,J̽*+}V,az]j }cznuPZrbrIߏ.\2EEuD$ʐ}ʑa"A“e"ʫ!75eu洪p]l娰aiU/Uh:!.2L?q{)MZf&,3i~΄GH`x'@;f Zɋj42&2ql.G@jdH$L Mwt~r,[Mv6dzuwp<]?Lgݴ;-λfv Ȫshw6]N>^6MOflW8ru|qx~8,W{~`vY;_7/gp[.xy[6ź&;/1;֭guuG|zzC]% NZoQ6*f f[Ӊ 55N7/Vc5ϧ djX! dlz2y݇}~VCCONfݟޯjX_.V&}$tCfvv6[yRRޛcgb) selVuT}sp2]GeX[@9Y판IC;LOogݟX~fq\&d^ϳ7./+W}߽S;ËWm7 c9f=e+'{_RH^Y|}b: j=_.{ڏa~r:]v.ӓϫlg˃sLJ6ztY[LOgzMt\g3r/.6Y4Fjy0[c\#у9\RezT$!h̝d@|#}a5;]SS Z+ ZZ7k)ùLX3L' :3FNCpxCM-ݛ'{9=ÐYuru\a;yh;3|xsp\+1|vmn>]1NSj7ۇݯm}'t'q0;9 ~qV>}zvgK9=.\Kk7127|jʐ{2 M;I;EapzBl{=]ɌckHń^],Wo#hd~ ny6[|TѸGzdwh=op~2.z=HLmwVK. Q]>?/Llz0뎧^|dzh k3?_X*O)v.1qӓa},Jٿ.p>;o?9,XHhyhl5㒁Ѧ~ˈt όa|avjt[cG͎`>}B4霻oW1p]i Qž2{`*cTiy\N5{'' ݳ ]W tft*s=Wٛ1fd-;NjIܢ%HwOCmf53> [վjobf]]"~<Խac^ST1]-cؘoiw-v5tI wݺ ll`>]ߎud/8uah{t:߲[ڀ| ? n6,w+췡ߠJc9]nl;ϮQF/پ0K}fAD #>].0VOzly`y<{-OE׵1%݇_]o͓a`y,{A'_ì~){1fJfVN^m䅀{HaQ?T,cVjcQ:\`z&~Ka95}l5K]^bFxPa\Blk^x/ 8F]c'd?|ݠc?ip67CLr#zɴ-3 nJ|6V|ũk5[c4,Ӽ`j}rzvXbab6y0,Fq>c `9UM 7s,g1s7=ٱAŌ8*r#u5V9?@qX&;/-o7|ga*e}!ǂz.ft >7/t>ly6?V3AQlg0y)KuVz:*yy>5bzM'G<Ş]dG68.{={Gv8yxIoÞ^pPItuw6_!_Ö7$AN9j7q8΢lmDȶw>}X-ڜ=a8MO5oǘqyyq:_H=z=|j<8W;?B}`qc=6 Y %OO-s<LQ4?S|{~Jor#==p/=#rhO"gYv@dk,;Y8wʹ|]PCs)clEٖ;>qg2[3Q+Q%?,r^=~8[b| tzv.8eNUFV>y[bבoW8 q #&"yG͕Uڳ?n]u|Ad;r6Ǭ˳ܙsNU{H] da,7U8u^Y8 |~z@ ^o5rAZ[ܺ5ޡx o87ejύ\+,nxH_z)gShcq}#S~wkn4ZO] G>w/7ꕯ_|Eszs~t##Ƕo~̇h>㭰p[gZ\pxvƃDVl]+ߛ'FvPi%&H05Y̍@MvH1I_E a-8> =45t`kH_:'l{|ڧ1u!!&v++>} WJeqSw?v:f/qe:;*=a3&Bt5{:$I QtXrrA/8@6]ͱaW3cqpW{_kHX 뺟!lwc V|^Г 3)=E-%ݘ~"gH_ [&FjԳy~2˙b<sNx\:t[ 1y]0Qٔ/pI̸.1 NxOY)Y ƛg;89+5L˲lv=Mk۽Xt|8ӧ*w0Xdp/grN+c\,qL?cTB?yi?@8SLNd#Y{}%ONBN"+qO$x]k6|]Υ_C)^{vj_s4Ź1(fq ##w~v5Gʡ=~Xwzx[]uccXH!ő<>ˇO\v 1!EGkdߊab-4~3E%ɖJbowHc?/])_]u|)B8lSC?;⧼ّ:@03I/[c :}owP[$X)no]P!κ\ʻţ/?۷r5z9ng]lͭ'8Yhe=f U g,'Һ ]e_ڤ_ˑ"_ڼb_?cņJ?LQxltCvoi|Ι{[pwCCIG)1̰qn;2NS \ R=ij˰wsH~C8/tyjX |o1Clcxh@~5=G9 ^?G\8ƀFG 1lfe/H͝tHGq\N6~9xe3~;[/h|/4oWXWqxh'[e>C{*LF8.[;y䠈M\}h-{ݵ0okfXkXV#41!F)~-iV3T c5\Ϝ;z ca)kuK>ic3'q|x8ly~ aZ9_>gThg2qZ84YJ m,6xƸ. t[]?uύͿ0_?%@1}8oE & s.3sv՛Fw:nV՟{_6'kv_1 v{̲ ii~٘s٧OY%iGgj4zm1+;&T9uN4?`]aN`S&ψd>Ϟ%e;td3]?2ٌė'23 Ο Gj2i݇gsqa)phY܃io἞nB,,X;pCԛ7~\bs?Lv mo03 4Gn2ۨf[iljN٬R-fZl^+!yk{&N 63;Dtriplf6uRRseVD뷭1m֙ כ?u%|iF2_z5<&k1~mgnO1/SV ZY hue델h݋J՚Nź o~u}Gn@-uDY'nE"U^êaON+ؿ~\[e(ILb^Of^zQ JcNZ}3L%hzN4sM:n,@!kh>a뻶#%em׺gycBvGf}GQ\J!5ʺ.O}JG;pu|k~Ѫf?`eQ."١qu2z/XgrWȗ`Q//!G0?xZ Y_ݏ7|:UM궯Yp+_G،V~ZU߲vbmgw~_xOmR˿\<~E} [rsTiiZR}u9/?KAl_>v#2o?j0k8oBV{8ɺTgyϞ.4&Ng<]-<paic˪Ɩk7eff35֍eSeL-9 z< l-BKREv˯%WZ¯kOlu v_5,F8v1=c6֟KF9T& :tՊ$³W~g 1[.G^^F[pQK_5> aQ{ٺ.^g_%џhgB,xg0{ևiA~7Xsش[Kn} >Ok-{Ļ=Z3;/;l {{m+[ؗd_6!>~1(7f;l;YT`8m O'?ϛlgSol#SA2(sY`OOr .HG+Ͱ7CbMU\5t1'>bue'*Yz݀l{{76ކ?gggZhc'dg >\hwbT2l.Bm~G%WӇ/Qe>ڨ/Gkmwc&]-6 w9ˉ6)>T̾_ڶ~YaO''c^={`Up-|>/_\[c#ۼ^k};in^ɯ7_>A-u['m Toؽ"o>|݊T7ؗN~;>9(m$]m#y#ptgxߌL [m=r< mKq':lXFZJ~B 3hCcR孇Cxzc¾Ř!laS.x?iI< @Zm[o#;pFGU e0~?lC嗀BL򨍦mGm4 H+[#6kC"߮>]Opav(J~7BMD5=FjWDnoWnA ?n!48y6ݽQ"x7`$2lԣo߇0=^k_ӎ(.>0O_b1|z}7d|?l3pW;O;M*IkjƩfr2&5;i'w P?24߹]`탰He>Dv'%ܬs$?2}^BojYFk"=aǑ|Fp >Ŝ٨1Ҹc{ܾ/;kmJ憼Me;ܘwy#O:CxhKf3`紶OYk,34阮ʾ&cٌ%I$r-FEI79e@L).Cy0@`c߆\:!‚w@x#ΪT˵uCuNsgx*vU;NO^2sMa T=낍\&TLies`nMؠ(r4O_f鉷o?T~A4c룯=w%ЇS`;0p#g- #lU,EN9gAv+z{U ZL 9G^ԔӗJ5O'zBoR.o!'~-﯏CKԹE pUzœYOVȐ AqBSCx˔F !i3 QL*򙦡5f 7*߆&a)Z_,WDpe u0OFq8n.l(] C9rCRt5'rjX$>5c)nXǧ˷ӅgH58Kt*fFQw#w3n JJR1tΰ$|N\`"D@8ʐ%T@LZI=1L"sBTؙIA\;z +Ÿҋ0s>缢92ע5=ǞJb|( 9 $݁Qn cZ[L#-, `؏. u?>ׅ ۝=6ʹ;nO]T'4@؝$0!^ٍW?aa Mikgϙ}vfUKHW:g(/lI`ML>gHkNR"nC;ghCCDg|4$`DHYVg7 C f(tF$ksh0/&{Qc["ǡqģ4_DIϋcFؒh,sAO@qzo@ˀB֤x6!WqRF)`3o-"5E@Ҁ$숛%y/BbʯK9S/eyθV$6.6_;S9?1R,J`,}"s򔤁=d!Ѹ&#>S-~ֆ]Ț粈=DkJ\2)zFr<`Y醧q pGqx+dJ7Npe'iHQHKc Be1$ $0D`36?""t$Xq,YP`m-lo͕d4K#) z;iCE}quF$5pܘHIfQހ |$+-|M}Hiaq V!] |\t`էp|ҚA0 xƅHD?=zx}Bt48(#˜4 1CȩYK~CƜy@6;MV\@&y#mx;w< '4s) t[۝@&Le7D{4v"р!flUc?`y7 C6`}M/a#Ghw[Px/Mw '=Rc NiC"8(D $UizK}K]/pNCaw|֪ܓb!G.Q/8`c!q,ԠQsxnFЪ8[Pc}mղ NܵCTv(~OE΢@$fSlKr3ٱw3؋7&c" =sP/} ]HmhF ǟ&˾o{þ4kq$ TgCl cfCx^s*lX6;5dMEijeW=Ux4IXg `7(h!0H,rYS&?4cUIaHs%Kښ|6^ooȼɞq5gy>9CqB`j9 n*WeOZQ΁adL>0_8>ػ=7Q]dijD{h[;D)?r;&]FI$`-+ K2YɠqfFH\'@ v:!)V{U֭6JXBM+9Ă 7}h%$ͨD( 8฻.'p#fȋY``}tu0$'KOi{.w[j$-0HC"Rg)S ^;iQP4eaz2Р0"28!{&."J?gL KWUWNFaڙZL.٦VJ&eݙJMs,tne8C*'[6 Ua0P+;^f㕬,;i ҩLYbUJ΀'")I/%aM(2#7 l8u O\T_Yca1E6.:yZ}?F6v JKC@)Q C ץ9R&BQ:MI.;Լ-hzяB$K 3P,ud4 veϩ$*A#%58 lӋV'[0hbuf$"p9%)4:~,e',1#,eMW7pLڬ<7GRԙi;&Q3Yi)%u!pl홴-u/%(7ǏBxdЁ"%ǏL~}=;np8 ǝ󞟳R_*>EHð#eHgӺiiXvþί؝ڕdv&@ZҸh!Ir4xe9Ǭ{]ƾpY# H*0s1"*qauܺwJ^V3N1$VB6dz%sG"L+0s[l#A2rs? #N/.j4T6/tDvzl`GNv=@a+=](aRӹDZ:sUC7ܦLR=9&n^7KNj4"}Nac.KLtX.p9T ++QH<@1zYR/@]Ŏ'IEVE$P檈X+Ap/_koӂ7aFWOYr\)=ɌH=-4$q\cQwيU׏G]Ci{cEIcNRX$5aŨH ТG""p\.:=<]AAA*9BHч/8 f֍BB;ed7X3c_|%jgmX sA~PX `ov`1 M@46哒_ZC(sL!|CMzEnf6@"셺=-R7`W%y/<O C!{Ea]qƪyI 1} E{rVvGأ4.d % ;vl[u<4n&4q zͨ%\oH+;hC`Φ왗CB`J GHΈ w> m[[٫<{^F#v!iB^*//oEdG>heo7Q(J[S$Bk0 }{hWc 2Lƶ^*``W1 c̄dOA)1qI1`5?kB%Muc !9'HEOyHq9 't喺&5-yJS4i=g6&兑DAfHdA4dR`t'{}"JDzx3m.e(j#ް-sZW֧@9i|ǚ_sļ4|Q\HfJ IRlpL(8-+ق_k H%T`k+:g"glړ yz>Pё^Vg_=< .2#2p_4&au%`!r蛓 $[^&K y[ cBj0]l]- REAQ$@R+W=69 \.\4 8}v8}/[ױ܊?q"Ԛ]ydf >'k+B@;@[<"QVdq/VoV$={;h ;t VW"!R\pq290R'd@ TܜO psPj1A^[y؆t')Cf{ckh NI ͉eߛ׭ \R{On~| zn./QsK!'-]\*(dmvӗų{7GؘeȌzB+Va Ǯ$wD)SPp =|Z=0Fɟ0֣8 %n"/ȝ^ @ą *0԰{r'DuZ}lg${'8fys{̲]DR2^22qa/6J%Ps\pDITJ`EE}DP!IvQS_I!삋BKuɨݛmDW`mH6b.?bc*1, ($g5nl>%զ{ u/Z4rd>Ø'}܁mvwvM=]ѳzimޱsO =Zk-\D%`)dŅEG(2M-Й1-"Rjg$Fa*n,#3#_`eYAHe L)EEP >FCqГѡD7#@̃F\q &i]u?hMR&H1*qGc)A;W{z)fFD_.7L QP9HF&:= )Al&$F!8re+CIe$<%};4-zZPHMfkhLǜFCfח:c۔uEm8awDƟq:Q*g$7l0HyLJf-@'w t:mX!CLr!\ wc5䊛ECxXƔ0\d1 tw$b纋_ca|CIc#KG*Пp+VAqI|5^GKh]Bf{=;=G Ai RXO tggN f׺i]NihV:Q4[Xpc%:^}3 >z`ad'懡va>Q8ƈA_L Mt3q SpїZðo +}_.Ȋ` Gq˞}(+b9"}h1;1(#wyȚ -kA DЗM{*;cRYGFY=9_OZ3m a9?iekmn'ΒB(كs3a̯G~$ǁoѕ hZ<\]q[Ք~ycP )3 !klrܓ]WB|ϰ:ȋtχ2մJٓ̽"}2"(ɘf-{f֦v]nUwyo-a$:y:'ɼ˛(~(=]r< g Bi[vo}ּ-Gcr"pڌMpƦnēc'41g$nXgέ&vz5i4ސ]$ P{9NgLD.ȍߟˆ8\ wvLh1ӸEYo( ;mdHĵr~:Oy*S,ܘ^K8 !;Gx,!_ҳzinBIfjR'@.3[ylӂtbNRU"ZkYq %21IX^݆s,.E((\[o;d4͜W*1Cǐ"G\ BЕZؗO^sՒ'UBA$,t4 sdn"Y 8N-*"?.HؙAx<%If\QR-(g'f1h WX4cz 2Iq/J'zRC6I*M{@3FӬFeIԘRlֳ3TREI߱_B"). .]2'$^bA 2"Gl>8Zs8$!;m[;:U&cEKU8%yn"c/wfRG1E?f`21TmI3qvծ&/[K|*[2q6kS+gk"" 0p(Cĕg>ρO˗RR4G [A8[Sg6vOdF7HUA0 `(WQ1,/*J-)ks} _ cٜp`Ȍ$IӾxʣ߇$غJr[ܤqXZ%lkO̓] d)5#;~ ̻U10RZQR 1¸S"~qAAHd`6֌$8%f0J3js :v$S 㛶4_<|XmT%ylb>yRp]N*ur*Dx57YA[^%!eX+Don-8{Iwd|RĦQkq׍? fYҌMvF6;z}mH݉!]fN`$)@P}Ȝ[7nNdLX=֘Л(%T)\GE MңҘArpOi'E)HiZh\ \֦c_OKC̸˜sԖ $B) AZU9`s{ 1BQp«DU Q?hMzcUW{XSʂ45:MN}? G n6Jt`hPRpu'ce{7cQH-ܐH Gk8Buk1,ч0V ċ=U k顬[TӇGYzef/bw)7PqKJKf5Xq*R6.gj9B0(B{:sDX&Fv7-+tUYT+W屍Wwр j4tW *2Q)Yz-BAmB-&vTJ䥒Er僲qIB(JQhiSęA IR2]KBn6&uN%|}u9k0۾nBRLZgu$`L*M&T!ۋlA=#X)C>Q`pڠGxB< sȦG\޶%n/iI s@.c'#g92@GᐣX4FWewR&<;NDI|qlZHWĘR!+ܕ^,Zxb2-d7\1TYdFqb?>J/z˜TPke]?mU6aZD L'ʉvQkTod4|Txvsm39%}ZAPѺJ&JJ٫uN}gWW7Fun;eo7Ƨ.x_@6}q}Ȭ#f]k$¾s{VT:NYםLP3.f\<%U|ChyTF*p2AD4 0@1Z@W*|E֤”ó#hw@+vߞErl<"#VpA4 'a QpN/@ J!}zMŬvR-P2ˌun$/fc*\%J<*x2'0CLnPes}}k4W! <4GS ZוmLX{OT:=vʃx>5OTʂX>sS)ի<\r)Ri1hğר^K@72O+$8ʂF P$GRd)&WZ.IhU5,EN3Z&=qH(  ZW & :vHfcDhUy&H ob(x JׂN!o OP/\fr)o:\^>^%a䧥 fKe |PGϧAOZszNWk؞;ITMwAxٞSB㍓lrrES6J2LOo H .M2h`icIIYLO rajuEk*y0t`TeC3]gyU<=o[s_[0)왛 @&UUEv* !KEPcR&@J0O~:?=zvJ\ȇu".V#91WpK ]v#)Rn=ҁ"P(I h; +N ҧ[!U9EBU"5FՖUtUd^$0=Ţv-9z_'ڹXɏsSſ>s-.|%@%Rd/(Ñߨ8){rByd&8-ȴ_廒[Ȩ-g+q $[y>Rc@_6( i dg%3Y֬5CQqH:ԺnDvkD*"z.pߋ-QYζf=0`-Y ;Gs{ښLO?XlivaȤ~#켪~^X^ .'2N@ A S b 뚚Q Qj_ GP,AMYupPCTD GĹrrm\Я0 3KGBu Xm+iIQ%mX# A UU`XbĘ kt*7HZtH*dvn{!e[x)ƅ^9}\U ) $*^k" 38|JްvI@^:֜|!Yg)~$ ؗ/knm'%_iӢȨ:>gO,TL9I=~вkWՂ; @;q2!8m(ShSu( n+ʞ=4}j_%%Q.b3;Ģɞ6}vjGIq$`h&c;mOW~>XUMz RTd&q_go2Vig~(M8GVN48RvKL:3Ϟ].t~vd4jDnJUa)BO@Ϡh4[7*n ~~QG;Gh -D VweiI: !RMR/ȡrCIq 93E}QK}!^Q-baU³/`N.4J]A.JYduzGx,E6#[ GWy*g[~̨ⵟ`6+د,‡-.B?бz)NqRX=ҙ)M<'7?j~6$f#G_l)8VY *dkrö:AFk &(^j1aL%o#z )\_iў@/spS%ۚk3WO/^Z1iMhGL#1^ 6dKx 6_xjy[t.\>`/\maլb]^~Z ~:sNJvQB\ gO~š"яĄcш\Xq}?eyWI.r!Pp깤r_'F<7/CL~rK)Ai P _k_]O*kc~d*i;6"8UBAt)cjVISCbq9TьH!ۂ(Y'&|b ,FsS&*l`ԉYY@hbZ=- %F۱/? ~ÂРJx@68R5K}q^ qh3& o@8J} ߫c M".;#҂ lTW2i:xsLV>ўh䚟1 ]cT&YTĂ2c:J`OoEk쒃<3h baI zLpHbT5490uEsoabٜ&Ѷ{o|K$])Fe )WD,AmH *\g.tJw%h\![ʚ^); 4:Yf`!TnQu09?E0e#`Taώ%^ ۭG{Ь\gJ/mltK-qS0q 6J:eiX*"I}7HCdyp0++7tma-yQeK m~:y,MW yLSAZJȊW"a̹b{os:R<+ ܙ5NiP 6(M/^ngGR:CshsgpQ./яۋ1ľ ctQ0hah"$,\;G"\cW^S #AT ]~Ӄ0JJ=[nD- ZQqv n.*ƨp hp#ڊ. ;TBGnp ?(287jO:TF ԛu&|@ΆqY2u"N5);wG+F,>Q*xHGYO 8őiUh l*zlD *Bv6VC KM9FNm>41]I|Cy!T_I-lVY%kHBHR#}_ͫ pϐX'wۥoߎi'Pe$S!TK[Xjux:R7h/264fFmn.I#?Siq>%:HRUJwi}id/,6d\i >׮YuX;[qfs*ٜ*xUKƎ`̍Ai 4(։#вMxј5t 14ִL͝* уf1ZFZ"s=dMgۂr@:&+@s.4.2TR6p!){5ֈyUn쒰Ӎu{?>GV76r\"9Gl5%"NK+ 1TVdjl :F\ZȊx Wdqvyϣ,U  ^x0WE c5qXx*mVe *II՘"Ʉ-ڔģ)x V4A+ʠuȫNmgC/UĢژU!8 k?!mInFr]8viDx2^.l-gZSo&pa;n&WDEtE ݈) Y Y?D#R4ztE]}9=v f(#*{6+K+RuMВ}~bS2N+,t؏xKyaqcTpOֽJ?a)T%>PG|+X8I/"Aȉҕ1dWOHo ,=\Rho|挵ac,߬3g&_Ǫ,߉c c17+uǐ)l]4t*%Gx W*$,ZD%U\^nF_\3 ֌Jn-UjQ|РVhQZs ?Wl)Hz'Ie4~EH2 7+9`7ɍc9%T>ۥjkj)rg,̅}l4G^m}7SYSVEw0nޯf=[<#I)rx hUf_A4q SDD(i P3{Ba]b֍ثFkU~9ePTXu0H(K@@=VfI[%dQZAn !PePkSl&n~mISJ% H8![VKaJ'tv4vB!DM:aidG~'W唎;1X˚v^fM ̖LAX.N $x˧4[SȚz Ne5C&$R^ѓ}=ǣhs!g8;$?Q${\m6s6" $*ҰN맇#mI@Q"aˀn!b̭ۓMJRVt|@! _z>^R;Kn}\<2_Z7xEL06>HɚͰyz< 0.ZgQX?h@0s J 5^$*<U<.%krɑ*2tǪ*Qq-ͦ(p0gMFQu]_D\t8b\@BLX1 g\nZ!Òl#⦃xtq\g~5!gD\ɻ R$@$ h% R)l`z3!i3\uڱVBGؑjkW5}cgc{Ժ֮]WreWQ^'vw{)a=_~>XM?p>vQ +#TU1"Fէ亣ޤzBKarhAŚ/c \Ufqgj o[nO?kKؐt_L{RdRYPFEWj4dHb1˫ :& \n:' Ql76u,j $E$ǔ͕XMWb Li-mx'#x/t  UL힆sۛրf D%J0ՋzF yG|9'5.*n8X1ui0ˏ%i| V_lx/(+*Ee|KB"VFBc6#QyXTy;/2Z1/mz&>Ƅ-,(i헫:Tܹ$jK3c4ZԜuh7NBmkVJ="AWעWuY{κmѻhVPZf_5\)ezP3bζU /@t}W?iF9Wٵ ]y+Nq)Xf 0M bpZ[TYTs|Vq?;:nzVG|a1;]b 5&/3x꜓VoI],DRb%vZӨPEn#QTB؟s⯦I b^N4݅{UhJ &cy . n\3Ѻ3,b(X?R]R}ؖ6VG %$0'G׆}itD)ϡ4m 6I{R6k@߅)>*(s%0teٟ7 Cy߽믦{>piKl##?pOM~u}H䓁Q$f3^.`v%}<FkRW8!=@ A J{ ]TbWx5^~wC/^KBv-d5d3*:h0jx]m;ώѺ',+v*r):NiOe2@M1qv{MCķt~:"$_tl;ZGԔ\ӫ֪hx(73RKVZHc;(6w$\'%J` _&{6X52}|귓9W)fHEV<4.٣ lpD͢PB̎m&2JSJX i.q>S_Ĝxs.)iK DFXj!Q"۰ ~`xRW"暠.`X@[` ?Mbuq`?rkCMTtXeV\WkJ@ljI 94nƶfM<+ӻ E|(ڸO!2IĄ<|RRyf?MK-ǖ| 3 `dgcW %cYA38,ЃOl]CcWn+ubg"83b0쑩r,WwN6Oːm{T.k-I5yM$񗐁*6ZcZ 昷\r͟]4hTbOƐjX657_(\r'@>dN\^HH{֫ 0?3ާ;VdYGk ېB @8~9KJݏ&Bx ׏ JD}Bm+Ę4F.fZpM%l(h]!,L>,CCÜkjGy2=<$mMY7DOr Hj!{?lt q~)d%xE_H]U50;a%b!SP3aKG%] Qo+o%tO ڐqrK &EdxU?> BC{p,Pyi!A2%CZbgOD=@f:4-\kf1QsuW6T; hT\"^j<p@:\+r+M5~UbIlgE*x,PEMKΫd r(tԫB`oN7Ҁ{B-=bNryo<&*ڵ[[o1ňR"HKoÔ*Kdz49~00NՉ '@/N6T&\(R%7ٞ@8s!)' r7ocQP}<)7#e4W.gFmUTyq4rx[s؀مr [MKb^P#1&阠W"^N69=( Dh`͵KQNB^A'6+~S8\h!0)樷xx)p. Fs`TI˸nPA$D",R#a*`c +?rzFKbPelTUwL: u?[Ibf?c% G0ޢݭ :DT>,U]i;:ԘZT0}k:Wa\7R|Wav9Mwb^tbSaK㢌?,9sՀ,Cs2@=n gT(D3c燍0Nj`{q((iM)r4$cb1C1*fjZ6or)xq)kccה2SRnM& H0 YJފ7d9K@ P)\4fBEHGetooHdwR#c-}rաU{EWإ5pb"GRid3$;!Ӆ@90 SR;l s/M:HP0@ׇ?9IEDrX]t #wz`T)Z؏” HKA=Dl$͸B|pj!C eЉW$c'vb2Z۱p㋩>-}8kw-I|<0Eŋ_lz6[J,*S<N4ʍQ^f[-bVEekjg3:e(vs C~i؝MnvKUU >PvT!7j= Wl6N! M(Ձ'Nq5t#@ą>֦xlJ_Мy*bX Mr@,|hOZeK`Xh]5gl;H3XLĒU_wzqQ_N<0V z9|l?t՚/RvW#㷈CI!Z߭%,7 Fʺv7 1%6E)#̓x$ NhO3}G#S ˨7AT*AMjTFbȇe7F!@@K23p۲ #~4QB{cU !˂_%(}RAޗhO۷ CHvRCF$U f eGG",5QV Bcw?R)QZxr%xW%:‰U FhL+]'+bV'S&Gh̡=ҽ rD&EV"?D? p+q5IW2F[pЊ[T`y62t\8 劎)S9[`qE—!P5&GrG:7>Q #2e{XXT"F I@qEhTBM+GX^>lb.n3Y*ٴc׮H_ v«(aMHn @eg T0 #=(' Nw΃WjȲvD^ul-;bPz !*SvZȚ% RM[92C_:Wf(7R&*#f &l0w9Ŀ~dS2LKJXiN>n1"rx ?@+YF'Bgk #jM4ZsW\< oS/ʴwkǠ$IT>;?r^ +\XYjc Tr:weyWisGVYE,ϧ#frB97yɒWA %.:LH“DOhr9dfbBlکkjTM.r*6 F Pr)CRfY?=a"$>SǬA4r4)Q)z1sv-[A; n9H %wZ $kQ`UUȪ0ϾC1v|{[-gֈZ}6s>gJ2,1U!))DLQ}X:c\\sJRzIip\Ū*(4rj_a47-'ΐ|Y'^=;)= +'mbv]|ODגⲓ2#t⭵1$%vT6vqJp5V7MVmplx?/TuͭCGVD4=\lyn"S{pOUZ>֒e& aqڟL%%GP Ke?@\<↋?K?L͠p+yCA tLe1hN::\ƆwA]1=Xi(|?QRÓzj;F˦/-Yy5ܐ 8d[c'm⹶(ڳ'k ڗWZY(  4Té޲3/IΌ<]"n}ioݒCo8mtJ[o8i1\j<d}U)QXzک&/3wbFK0C>1Lj=UUU^>f: @~==}qXXR"Vqt ! ֐:e h)c@L>S6GC,WX Uݡ+RZ yaΫ2X9u. ;NJ2ۥE*a_(z)ޗl\ƶCCb?uy/ {~b|".l}W{Eד[n\O}h &EG!<߃e æU\밆!)!#bUN%^4ΩKI#yK+Hg~Sq'6(dY_'QS]DixR &sVUE>|36<"ƗNf aj> ;h,>bLvA ㈗GNuSr>ѝcYiD2Ŵf[SGM*SI%\Nrr0u^`qSଫE8e{je3#bPYȮuZyS\.:pg{]Ka+A¼D^Y.߉WD7>俏G&ΐ^іR ,~/6C.ԫ5*"؟^ 06F ~HU J?pk'ڋtT6?}dzCkgy'[ܺ#OI i 92:2(#3H`K+FP 9m:ByEM̴EgL"v``qvW۾_Ξ֌J1ݫ#c -a%&F%Mҵε9+38խêЯ~Epi*P[fX6?*'~2t7GG4'Ve#ukh/׋{).ģL* Wry`a.' 9w^gV&k.#֐% Vja1ȪeyK w6 0rLqu^?1U͝Hu"cSss柸T39N|:xm.(8AdWG:'b ,ҥ W0'n}.=r 3rDH 49oMn{Vp߿H&S R( V5Y?bTE$~閧# B?%ǺRNj{<.KCU9`HyE'8m}:m15$׭BhEmm,/ D7-:^+eveBU,Ƨ9 ^&szk|Us5qˡ yנ>&P3ڏo-Ւe!N-wIBze{{׌ ΢Is%£!` Gml|kd׶);g"OTvjkis-ZH8L,8[ׯDxfԇϦ:)8jW+c((A( 1ñ?;9' F lDnYoGȍd4_H%-ݹvեR0Ma]p]>W# >V,-Cd#?C<\yXީ~{%+߻8_1Tuft@K:o\H #e U|ْz|5fN{Ya"HRE]7^ݢ 4JU[ZSR5to4j],4 ABɠq:f Ls90P9wxZc52GIxRdxxwEJAB'J2X'֣30|:/U:&KtWsZAzعO@\pTI}XPčYzp=xy ;W 2g#X*erHjEH ~;:^b]+!'EIz@+>z TW:[1xI kd0X5%fԘ2B4AK@.Fƀ3g^0J}N{./k..LދOO_ ͩ\.(݅fw*BZSҔJZwi wxPto4-q:;dW#5HP F΂y@\H]dChHdBS5N*z!-snmW7pR+c,3h>?3`^[(&۸ tIg葻C+*hq&]+PFy3ކ7A\[x0 |Utn[Wnrw& ̒\Xlz n~.0ɛc:b lDT]DdD;{u 5+:~FGu 5bqܙe nݙAmd@ezp=cʃd%> G?e4)zw~ ޵/5h{@{\}2#R;0~_VIePT^{@"PSMjhoJu ϲy_U/#! '2:╖1gx }E! ju,f[|Qa 6Z3F5SD'cn|MΝ={)_jkWjɰ{OIPI: ))S*27t+>.e QUK2|LgZn%3dfoQ Z<=# F4{9,cEL:]`1gҽJES>qRdOcIEJ3sR$0S)rArb$M V!+<_\lpl'|9D9<T Yd3̉՜Sg`P-5 ?7^Hߪ*}+] >ÁڜEoP~qPEm@ROt!L}<ܰZEɎ۱Jv0iD900%DY8c+.qV'̬.@„'5F@yUipR3qΧ$ʏ|6{ϥ0pӹUy~!;o&7g$_(V%Ox{Sd $,bl @A<(;3/}qi -vZ[QWdddif, T,xk$n~I%I9%7km>Fa\k(113o_ jEx{QxWe70qeT6OUjL@̼}K6w8x۴FxKpsP{#31:!- #x.Iم݅A4v&<1xkfnf( t:_[i29QY .x[rpf'=@f^9;~hyF/%U-i100644 readme.texiq؎3B'4hL(ixZF΀^*PWCwX㫪g呸;gAD暼?ThæsTQxkfnf(b -ViCj>WJNaT ,xkfnf!ˣ2 RƝۘ# !+xkfnfP/|H`A%$YMnM *xkfnf(",ubjIRS5/pT\è, x31"E3-2:hFbqsWg:0(>Ux=B,3A7x31"\\R~U>x~w LLBsS2sR. 1լO}楦{qGɄ&`}3|SJ!=} HvsµLC&ųBD;!eҰ-GH:_t∫]\YR~8׵Yom/ UbW/%l-XZrNw#V % Kq6HUl`3)Ti.K@~/5Ffx3Ήݥ x340031Qp MNMIeضmW_ON((&f2L(+koHgq?ϼa1η9?(?''H/a oD]Ovțk(߬æ2Q*QQ*:nTe.r z#3l<ۙtFI VIQd ʧ+xöm܂Tǂ..ǀx?G_W[ۆpd1l$^7<2GjbJjBZfNj1P .dN&Q$]LR]4T3=0Gjʉ8xka;:hc\&ʆUxF! T is in alpha release. You will $ H L<Iclɏ#x¹cC4曌 Ʌ@x[ 囟3 3N|-6Yf- 'x{q e'w1۬ms!xq$ %yE'lg0Y@tEQ{7 Ƚ-x51 @B<Mk6IvgT&Çپׯq^hGJnDvT^CNKTH i斷6Fx㬎0Wfrd"! ? *?v>E,s)$tSz~9?t!x;ycCdJzɉu9)eE%90z3?F&Zȴ3xuKrҁCKjӖj[`5+`8xukBw=ʒ(z[ 7+xukקH6mx|7oUwYU-xuKrҁCnqi,<%{ш-GkyFkVmo6x! x~AԒ3,^2n6$/xuKrҁC^ϛ vb dY|d ٨"UOvcT?Y햝>aq< #}:Pxϵk?d;^oX?p,;0xkqut0dn,YY # ,xKrҁI2o'V>+ب y7xQyJM`iUw΍Z5f?ƅK 2xkjڠ"مn 1=Ig#~ߎ ,xkj`(bp#}Z~,ُq3$ -xkjR11\t s;.Uud '\]zSՕy';Qx% SZຘãڲwq AJh3x;ys <1>`Ñ&'3 (x8 ?O[i GSMu&,nMGRNz|Fx> ?=] 9mMid%JjHZScQc Kl)Y}{%4nK ALxCrҁ&_}P2g#g\61{SAI71z2%tx340031QHI,IKI,.N-fx'IPpgHI]f^Z>i\|` ߘ@ևD)C'e&2}qyn+f |-.lȩYx˵k H'S x Eǻjds!d8MR=$kI)Pl&,3EQ#(*"g-(ADQ4E?߯jv>瓼շ_WzSj-* C?2eQgĢu~L _xSf =R-W(/M=ۃޚ?J-Z* R ?[I?$LNm ekBd|M\LL ^Y^UMZOR驶6@6+RPvC{iߐQj?ם )x7qA ] gz^K޹*Fz9❷[u #(>Q|hWQMzQ|ϫ շ:[M;vwcӦ&) WT*9Wqm#qv5y]Mq2Qge'UWPl *BoXܥjݙqMrnޭsl0g0ו+ I`Q3:'4`k-:TlL6`s|b6Q^6B;EkmosyZbX;k\Yu!,\( w+ ]:tx~҂[L:NSOiȕHYSSGa1 _O6(#ˑQ(9) 4!Aļ:N|ӎkx;~Nh(KaZ>M+RXgJoבsJԲ!?\-/O7jѧEkF|3B D܅SJ~F3p3u:FMML­­rmү2^]KeƉaeWikYf(iIb'kS&7ȓ-9sd+Qt%TRoPpk.(6\p*ߤ:"wUA;,ʮT]j)Fw4eFmhNm*E0%Xr~3ud:s`; R &A nW:@SrE? Cs x:W j@= RW9"!  2+O ^FVmke-|k8p w; GM0WŰ z?KfsPQӼjk7P0€Q/4(U9 npA# cˆr.q蝄;T# @M;iUo-h[hY[}1q zKQѶ5ʃz'v)*0,ߴCJ]FBMWP^tQaYȻAn4 ~_ew2.*"?kgy`:e ?@Y]}(b0!~c_K fˏ=1/"ݹ~;p|'v}VʃSbziCiՍL'~$BC}M\eS}86Eؗ/τG3J}{ u3n cXU-Eo6J [p,'7W_ b F×YUuv A1tP];(Y hd{zq7Wɨ{ ;G 70ۯ꼥GTI `%  hv[˕jLF&w1{p#k.u  |30,f4>HrXU?bxb!S!OcCP*ГzC\٦;;ZxoTc٧,V3̘y,/QiUdQ31zQƩ&^fjf6E S6Կڌ9E  1 Z7i!'=Z0QXV7jƌE;5i1ɍYܘ٣E0ZLdri-& sܔY7i>T&7̍ZLgQ ʕZ`:x&ˉIYL'|Z,n|A9LnԬb.S38)<8aZg,-0)s 9GiqHQ;[_EZ,bz?jSeD_0&76>ͭZYܨY#8"(7LnAv 7Z&DZ 3Ln {4;XKYLrxO:lP=#GxZDGߘ+ʜ9=xL@Eub’"μ %њI"fКi&7jkac_eLqx"SmILq\Lq\)Lq\;BS XQb(е^٫6NZt 3*&9jhIk$'hJD\:Q[ SNZg:Co`9m6vVk~scx-9aB3}i,c7t"IDwfqG`:2OjDw,'t"mnL'RU^r"L'2N[D ssX &hq.Ӊ od9Ƅ t7jf02Qsy8fޫEUZleZ1Isۘ┹VSƓv8Xq1گh~FcKSEY\&7>ōbXar㈊*D&@,nӄ!&7X&0drS],nLn|!€&&7HofqC/bq -,n[\.fx68 ogx)N;⤹Mw2)s2i~Sw7_=$-.cE>jѐ&)Oh+X\S+(b,nLn a>7Q*&7{?ǀu5@0~'5ē^iڎb,7>t#ȽoiaI a=q-ۍGYn0z~Fk5ױ݈Q>r#$rL3Xs/>9>4ۍRdG$6;217)7hy6>l~NZ|]ȗiLqL0i3Ma8cfjq36F1r #3$W\<ŭ,WܨyLzas`wvӎRP6,g%~L t|N&7@ōcq7@}M`qDx~ySaa-r#ɽL7RoݰwXn0Fl7=iL~pɍ3}ΘyZs o:gL}Cq|Ɏ"!6;IʏpfLɎ#6;OyJiem f?gmcLM^SlLꩬ/'̔{YT%r)\b8SlS`mՓLM5Sl)f4`Qta}L~˖G1=͊Kè{&f͎cxɶ&ddی?Iamɳlv _lyF?M 36vi%dmB LE#lN%<q/1tL[͎?eg첽'~@Kf'?`ߎ Z)O$'/طCN-4'ۑB-3X`N/rS]VvOr}~%yʮ z~pGC1 k9or," 4Ó3XD#3`Qb8Yd}v-9Yp˒r.Á8DA,ZN>0p Ar%'`Sp I#y-K^2+2p ES(Im.%+t*g8y<bXcG2@"U)klG]2NIԽbuNbuNbuN.aq:'2X\(9~6-,.drLX?)&g2bALr2fOe,n!/X/qINpސ{~=#ؓ}>lgA^y:$>>㝽gV;/"`']vv?e.>qLd.:$|띦+tHvoCkÓN2[dѧ;Pqgw~ҕ% as7>o}s"';-Oq[a/wŰ:m ;Eξa~y~'>_Ld_ g q~7}lq.xG½V)zI4=ns(svu7-YSTkZ3w*[˕ ,+'5+^E⫆H[O j;tB^ jެc[!!ZeEjG)d_(U_e* ;Kɽ8GIZ͵Svcl,EZgMwevεzKf*nCzl]VmO'}h=kyjOKo'^.%\TG.af_z_Q}$ Y/.K(y=[=kk)`F6뤲euea9rnpfnVͲqROX(隳\)qȵ ^/put6/P*y(mtH[}-vg5娩9;(f-34;Ne-G *Mn[c_Pl[# ߲Bt}Ӑ{?VsC$+?ܓBͰI++n=rsnyIA}U?VSRkaIC}U?AVp[xYX9TKpQH_@+懤 eԆǯ}PϳÍ; ȖYٓᡩjfBg65䋬Q4a=:ؾ> bK/KoKQ]%?ޖBJ%%^,<222 gO'=sݞv "jTM}γ(sm]Aު6ym܄(%4fn/^Cd9%w:_TPC ^kx8[~^g٭n-Eٍ~xv+!1=xx[AUKn{GhQ9#GQk?u F>:>M{eO-Sވ8k #{Qi)!Bj3ǘ'̂3x-l9 wيթHQ uiT=IN {Q" 92Qd[f+3QfgO5hKX)p(l@a%,rY ¬Vs[Aܔt=q"ଵCg\3^ ~ǐO&m:~#ڰ՗*ĺХx340031QHI,IKI,.N-fPv+N-~Trh!̼|3VW7uW> KPEIY%zE ;4YQSӚ3 HV=/39?$13/hs5&#c-0k%SxqDq?FiA)txZ |U3ٜ4W톒&m."m UQa;MI RQ"r*Grx (Ex-~ynԆo޼}}H!5whu ATP6Hd@dHM% UOjBȤj(e-jRF"' u4QCO%4{HP[F:r(SʙѓcL3/ߎ&L_kጶ-YMcZJ4oGZ[L1޿r AGsPf=M'IP*IPUUdYiu x7LdIJ"S55ezxm׵x*nLRb(b2(j?N V&')Ep|rL!AP#ةT<ᦠVU<RZWըuRSBL#0OIM$`U}^Tŀ,;g0RIXc|wPw//h`9C&]# ENײT2&MDM=w3zx9΄gr9X4yN8dT [Ava*DgL jOMT" ]Bgpv=EHVؒP\ "SD6RS^y'kGЄ=l`$Xi68Jvcvױ֝>vq)V1UЮ2l8a*y;Ɔ׌]oC}sp^3-WŶ#lWnnv=Ú<[_a+*dk~ f(R挥LpЉz1 mc6&|{ua..ܺn=P=`jfL3Bgh,&;9fNW@F~N>o* XNG3k.ɣ.L~z&e!K.],r_hK RE~)+)ؤ,f3G -30$[ [%f[KahdlB?] fKľ= K88]·%]:.Uj9=tǴl4N1V}3rtN{i֣Ϙմ3'Ǣ.pYsc L2|ݵʼcz?1M BCRpr$i(dt\"}UA;N=/Yv,,Kl]3(znZ8j ^5f0im m?qyb*rp 7ܨlQ 84hnf3H:䷸1S"5XJ c 6ubyZWp͗Q^ _pN RM^G/&S; Az 2h RSۊzOoJI腳{rX aVaZ N&y"|Je/,Iǡ$\_F1o2^,, > KX*/=piGXu*' vϩZͫ. K5:i/k KAe5ia!b.bcuec$D&I.*W8cѹa a]z7wZ)eGCA?p`8`{d> #N^ \6wxG#][r(reDu*'ʞ:wl0zlmaWי~:WblYl*|WciR%1t[l\abARs-u4th'YFX:1PY̓e _SE[ lzQ; Hu7f5X;uRTFp -ٯݯ/ZR^x;9zN ;aoAA"x'%gER MGB y:98gÐ <y.*yأ {ZV9^ _7]<%{Qq/Ey0!׵SV$ADjn= P. fcR_z]e-^@0)\kJSϻ=Lh[\y (،MkRQ0A^ vX%4)NIQ1&%Of4g SWK6܆^:B:bwICHxҴ.Bs^+9 "LJ2rhD՘Zt%N~g? -t7#C.&$Eepʸ{+l^n5Ľt 6n k8]Jʹകm.?/c^qiw#1O3eIEOTt4ՅnӇhMN/|V[Y )jcј"8HR$5ɹk9gV,{Bl\Tr/,x-a!㎐h \gc,W|}3t/e]+!Mx'`չmYMt{w߇GaJI~|;9=6ND!o /Ꝓ.l+kl]SZ\O㦦9N! 5ۺ^ 7;9F c+O_\3>5!u#]Eځt i:QH"}8/үF%_#E H7^E-OeL%&a<|'mWx(}u?C8}ZƃG"@<5a~~ P \(m _< C3~E>D=t#4## 1Mgd ~c89ernRM##z&H훸FDz*Q&~kĵ|+]x340031QHI,IKI,.N-fX|WQ뮊k .Jĭx2amg&elxZR[xW[wD+vė8i-PB4qJ BQM+-YS}Q'ϼ Gy70ko}Ir8XjwgۙofWYө<3ߒwuO4:  !HSiՙ!]##0S66[SekVŵʱ[kŪ0^6#*:`lܵX[CllfîJ?^&ebdb$5sR3ӭ+Nq}ʵ91Wc-W8i'8D^`U 6r"/}IL+Nk.ZUe'R|Ȅ„IRS9 C[;\^G{I}Z'7XR$[%_hp5(|7^ny20N%N IZtR'^S~H:cʡ1ڲqˬ*Ӑ*ݾj*Zf`6 A'aJK1M ͹+%dg)AߩYYzE`&X&;Vj^NOsz"M{?Aqi!&Ii T<^| )vf^'8o}wbNP 0V'_a7^ޞx vvD9cJ"nYaFդQxBB ߐ#i5ڂ>yJݪK=f0÷TW#K^Z,V#  A /Cp&<fb9 _ed><6M*qNq.=seA{ƻF~$}U."YQ_ F"=`n$"G9Q#"wzw+\ Qs"ڶkxYT^Y]϶W?Msgqw"^ `8طB"/V 5r'jU:eiĿV{ [e?,ӿ2?#hׇdmhhwppk bel2g*8_]C˞ I%7m\;]t}~MrH;-\r!hT7׻ڵY,JMaE0?:۰?7]4^YJ yw'~{G>4lygpSLp38~f!PAn c;~C׳騿R:<,ˣ i2Ù!'ʇw B|%z J T*U&]9zwE% ~-/nhK2Dlӥw [}YbJ2&9F!t&=]ϠߑDdԚU>i%V-$tKoܻxQ}F0u_.})"?AXbx340031QHI,IKI,.N-fp5-/ ủ{U e3ŷV i}Ht0TQ~RVjrI^z~Q.ClB;F3ww5nW|ʹ'Ώ6gZ83{>8>@CiϚ2hLAü?LRշ\{W/"ˆa 18'/; YK$fbǗҸʅl.ulc$J(53Պ2U,Y%Ef8#z{ 7O3[vC0=Ke0s1,.M:j0ĕR%7 xѸwĖ_HpCpc.XkՆ3-Ev2L'\@nrtQ)W8&tI 46xQSQTW\ iYH.WPG$qze!':kU,Y9'%Q"#W&ʤVF٫%$NK!E>$)x{ل;1iz^-VGTQlOhNW:DFU35)˭ڂ?)jHi̐|*;i:ٿ֓J%YNB V,p`,X۩,넵j/Uz Ga9"84r!,<]<+:p/>lxDy6L#߸(/h=HonV7wjKgG``s껶"vv'NLV ; S xcm5aIfUT27" (x iijIUfhJ^ ,ȑAEХQi? 2V!!MIlE raMdr-`y6w PEh }x340031QHI,IKI,.N-fΩ2Ww˘@% 1͆H2_Ӯ~t3TQ~RVjrI^z~Q.Ê\߾?' 'FBj:/'J"H"iG\(59B^I*CX>ExQ_8jo mQR4MwdƟ_Hy )<|TB>TfpgULsB6%Qq>yI;H Ls@eeaDa+i7feT/?j>$>mC^!cq/Bg(4"(btLoN2Rݜw*l(t4wwzH MNd$#[(lF4xHjV n OǗX,Q/D6VԮws;MHhf&%N,픺СJ?24/&/_flR] nM: ӘW~E]9\K@Sk*ʴ:rl)$dcMƥݰv`=梗GK):P i7HET\<nD5LdJZHYKp?u.LwKj- tԃh [jw ;TY!w}ܤ,tN}aّNA߻H^Nt1'\B ;/ $K_D|->s>1*+uaU a2U bTX`X܅v&k3Lan;]B 0y.æD8AK]b S-M8J5}r`I.n}nV }Ɋ 9 Ty9G?jB6O\Tl_bƛ|F~[--+ض}GmiwN`wM9׹Kr%)4ǻBSuYZ]la}6x^lJvv퍫 %|Nk7Y{c0C%X{mrvod\]ndhi ~xz^5辚^;B:F>j>^KocbR0i6dƄ`m8:jc]F ?~zffOT5'k[OUسWg?b{v`Od;y͞R_7مl=?ksP|=:;-JfeҶ T3h4g(F䴒tGe=KIer^AE<%\.:!g20$tuY ,OD, .εpyMv$1AI4I,ƨ4ҎX-}V qstGt/5aN6ӻ$?Dٙ#60NE_du~U:̶)2ȥi.l-\~NZ'kOh.{exĎ׌41O8y9vR3~Ý%V+ Qdr׋15RÉՂO_N\J;nf*&izd~׽cJrD= Y,E%E>"க}-P }>[B"$iCu62{ߏ̮Տ+nKU=rV?=y[%ܟWMU2h< _JL& 9E+P7w\R)SVKd[ }\>QXIkEha(9$E$ G~MQMuB -e^b hWpSC1-ħIl&yR>{{!O;Hv>;Dg=@xO`&+LsG> :֔y4[=@_v4dKyhL\݁m;_].;_2DBd .P/*ҿm+N^bk?؎fP_67!g _qV5'}RdiwEaү=iܸN{8"4Lac=xFjФ"¬#| CD6ie/[Dԇ-7;vͧiH2zCBRzN HE$`b@P$ IHI$q* 8@<" n@b1g/HKx ?/ q8 H-CJDj9sʷP9֯cDGId#? "OHWbDX!$JUgDXL>SWΐ +*W<$na6,28v3FF" | 'Jo|Xa/K۝ޱxT]sF>cxeKa97rںeuu峤|(%: de%aU(2?`<`/D0CAX]奫fZ)Y[z}9뇓A*A@⋈-ya-h&YDK-bۉHM'^Y ><«弄LYlG㽧r!LQ^?~g΃윑r){Gk${=e\+V=9 ίCP/W'kaX-aH5WZ5 H~[͠& qW:Ħ!; =vL㹐Tf3xMv߬9\ *|Ԭzk}HI}+m.ןޢ9ľQlg[/{ޘ(6%"'ZZO!ɖ{`_<DJht^y`ByR@N.I+`֪%|rnѭW\6MRαJXI)IyhFpp,6pF(&ql#l"s4J8K&I8 NB 1Mps<r/M-|$ kehD4hbcxpHvxd!9/mAMN*Pca-*v{UpojS-bBD*Pkvi3ڥx340031QHI,IKI,.N-fR| ;nVm91I]f^Z>i\|` ߘ@ևD)C'e&2\2c|ؽZoϽkq:Rkf+ĎKx;zeBc'3T7y2~ cxY{G_[;Yj$׮K-*%ZN(! $ .$\J)vy 9iZn3;3;3ʖ^ܲqJJ%DΤlX4tf.EtfvҲy}YFyc錿D&N)cFaS!|42U4W 6ti>iVYΡYSC~譝әGrXX0>V8V`u λQӬ_D\82'LSvt{Yڅ)=/XInd[g{c65U(pGl[<1}ռzZZb۶PΆD⯟C.h<4K4+S_V۷f\VUQ&PX=\ɩbh"C#Qҙ/РLI'(D4 t3?%%Z8g v9]ڕtqz=׳fUq;6ZdK%7PEh>T\rWIu/kJgu\'FP <ĝ@\{͞1ol&N-]೭Q,QU`X\bxUNK럫_C6ׯq@Q[>-b*&*-ЪMiyQyXͬhK:V"pP`]$R wKtXM"+,֘,l]fsl-n۪.F{$8R~d;@IFص5~w1Gުez?A&2C,>eP44wFvIYwHe}Rsno$An#E(_qpoY,pK.I[-.ErU˞~e(,ƈݡ>"zdOb>hA00j=H5{O7F~t]>tVTjN#:TүwWpz}N >L}tW qax`)~Jb|ߡԢ+$0Ao#B$K\P}=jYv#1xP$F StLPB1Y4q#}`dw"֑^+ɠ 02P!g-{wlȆ+idv.짃Q"/! 2g KV!EÙvQw惻Ke۹s7Rs|rgCsA8+sETM 7\1ya\qq;Y''fi3ӴY<(nAi<(WEPo[vZel_N XDW`9~KՓPDL)5tX3UX" 5t#wa_Խ̫v`5G)_J׃*zvHpiRP~Iʞ^RhI"/odހbHDB7:'+[V3ղU\IryV+9W|v 5ijYC:.6_ ˯Ak`ɻy[<9nn˛{8م`dhV]Vkj/S i1Nb;}sޜyu?4yh\<Ŝ?мe o"nڻs¼-6!,CR)-odM Kް 9 / \ "ҤМCo|'sdu9:#X.#kDq^⁒/5U>mv;Q*卜ƿ`%1**GEqg< W`G"vXt:Ԉ^yA3W!C|*|\k6r^B'1X{)ǰ|M,+X^0Vn-zلW.#,84~,p]L:S{PqW ZuY^Uƺ4&Y:U["\wX9+QC0_s?ҨZF `]NS5s ^4OY+tbs_ywi^O1&4pd^c˴ΐZ!^G >7K̿.›WV1-/uFWʋ@PM^ixmSoTvN6YN)c4'ڰJSBDCB՝IhShY (_#i]0`Px x`kH[Hd{~w_ڠWKRwZ8z7`&ħHT<f;!\sCVB7M?+ɹb}:Jd&h#`jGѡ!/SB#q͟ B~4 @_c[25ֻ~z/w,qhzz&Hsܻ,$Lbq-8,7wN948T|qlzC r0DcwOdO ej} -B%b-Vޮvo/ł*\ %uV"ܛ[=7cY4^"$09++s|l`d;I JT2#Fq]AiԗZ%tle骵dchۥ0kG)yk5#1Q>im 6fv gtKAէS](ծQ6\}垽}G Cwa Hd٨я1(¶?2~R\_hf 5`V0ہIuDlbٗ1bj׶Q+-$MYe$G xʒ<98O0%R ;m3w-%f2'^"3*h. 1[Nx340031QHI,IKI,.N-f{}|C$uyi r-3|cgZ]" U\R_ V(E/ל[ Y-kxYs_c;v@IZ(г"bIƊ!VlpѵHBZ 5^!M_}Ng 3L?ܫ^i8Hѽw=9gϹBkV '@SXКd&A6TЋBޱ]ò*cLT_ԏ.j1]cdN[F,Mjq6X[~714nղI3ۇD8˱:s0e :67 u@?- dQ?f*$gyt2>ccd2(4/ay<zxժ!&Y_Q~ 4b?ay, cX3#dž@A_~mϖeO C%ԂS-?} mt ;8 $S_e] ]I*/7\Lz~$.ۮQ6"b,(qb2,RIZ]Oќxjm5FaX=&Wyd-T \:Vȭoh!usXTK":<(Nu˃!w2mb+UZov WD1=4Ĕ|0݉Dl:Ml뫈Pæn60˨tpNWKT?DmoASrjtlf 9A>6 u6tZJױnt?UExJlN%6*83Lb=:USzyWHU GT(7ҩO|&"Fa~*JrwIHoipX)-NE=ОagW xKeGޏ Ḱ[E|`m qĿ0#cW:gߕG<!:'x[ptnKG$ 6ntkkqI`[hziN` [bVҴ(iZ 15'YӍe-͆q;f3+QUe/_kE0p[Q&xrOIRe/9 q .'ez^ jA_{5w#֌HGԂ\/ڜQJ#&~iiⵦKN ^&d|XPbř^i6*.Өo?F&hz.h Rmܽ\گ{jcw5^CaQȑ O& Ix   $|C$\BLQI6FAGnt̺FsdtG 9ߣVo1I:)>?t\~W/O/+_56*e2_Q_G\&FRSeJ Emd"M[UF+ޅߣP:ϥ?ds=\z %2+֐jQn֖Edl˜06-fU0kcv *M NvnKqr?{.lx{T 铗ȏ#/ٷx~xAfI<;b/4H89ν$c8f|c'$fXns6"p?My'lxp M9x2K~FGuf0([.@ydhXEG//{?@ vrzu~<%벋iY]wp$#>ϼ LuMu ;_eԯ |uQ Q:iJ ]Do/nbPWKBi4/$* /$X$9 #<,NR<J~ 5 (eyP9|> jGfׇr7vit8?: f.a\ΐ1h~ &Z83.TW)OO;kP yG(6[R #1LX|+`J8 hSO NOLt(TJʅR/ad7T"z3BVDפo􍧨ߤB=mo/c0="oz70lQڡ goSDGEnL" (GbSe/Qd.k ԑ^'LE3h&PJ @ So>raH@ 9/w0^{5.d)<AdrG o3LCB￯-! YoTUSěOQ7^O2/qĀ<^zo9}lm6ԁJ $bEՃϡj<9II 2RHν RJTP&*p# g09\L+@ml<1IaU͗X- HwK8'[7`f[)SgE#*2{E':u -u,Yb<"CB~?cm%O^ٰ@0E!6,S24{润L{zU++c+fM.۾mM4yI˶ "'*b/rX\h~>W* Su_|@~w[A'JQVArU[a0pmc<Ō [8!$lcmU@{`K,&]R'탵1l8ZB͍ Oh-LHAU;h.(ʟiG0N~9̾,9͡'%X#‚fzƶe 1沢@a}TY;A >M1aPL^] 8DYr&76jWٮݖZ&V`Yd($ˋ<6%{~9FoqI#l5yb, hR?D9Zۢ4Rf0AksIl} rVCFxO&!_SqCD?,ph^r'K.l4šx~řfo.*c|tGo?IZoDLL}&kJi7Z$4^R)QD1tz ĢRR2P4^T0rYrM/j;chW3v]*")NFGV9rL6O϶q+܈aDNִTҫx G`aJPmQITP!֥Q&2'0wx!,pڀx2 "Z7~f>5ZxPqm<:5RPa4X8 7x>8`%7NDVQ16NVaRjM" _(T^`c)B-G:ذ6F #}-hخH` UZ6T H;0 BP m+)q@4?i2!OĝWggWS3dF%m+*B;tyÅvH?72֍ oY\5N=Jwa]?4ɰӉ>6h͕V]:Gc(V'UtUn2D|ɩ'| RnqLπj&P?vjrVi Pn톑`Ժ%C!Gk۰ 69y4 lEaWdMb U"\ tKXu% r+Ճډ`D;ؓ'E*,?/Nu9,r)t ny:}N}:N:q]eϤcHѿVGvicvQX'""Dq>-Bw&E .lF[6{\Fΰ\j*&}M߁w1eq O[.Rʝ7c}y`4;pj?B|z`-1iI6ؓgxɍ2ϓy!"6יL4 q iqa8*])wQ%D?1bSJ0݌G*rBcSwWMT©'BBPq Ty@Q>}6*r;m&T>6NmD2xK~-[2&J;@oP g_퉥,Mo0pjM7ĐV佄2^^H [*FoZ];rֱ)i26 @4 [ w{u/o.y΂:@e&m¡e3$`u': ¬pu&%Q'1: -X8x.1(Kh@*.۩=]VUQy\#ߴ,$^$qtb"$%ءB(Va+ꯩ`grg5KljGǃ[VE}`^G`nU ,d !uly'9x顸ǐCk1#sAokJ⚤~e`nb;Nq vyItLôPJNG~#£.T[>Yd6st4K"Kb?wHKypliX1JWHb.b򞮔wκUM +p՗'@ns*xSzJh1mmCUǗZzdL=JT0UD8uݿ(c-ts,|6+ҵ(pgJ< m5Q8VY{NW{7e^ǿ܎T{yV?`۫Vr<_6GZ&f yo+WP@J_uvPDE歁-cmpxF 7۠l_x|P njNgfrc ?SJ9cUZP4WbI@**JX@XB+{4 AaaNFnw>.ii$Z)\9[&ڞ~5:[=W/RF"XKG(73 [~iƆ.+}#"lvaꖿ5v<[[Zpa=-$|ٕ**H\l7nhs溶lMzmۀN\A^z,1,9FJ3@ϚwNɬ^#m>7(Q35T)Zi6ddLE[2~nFUsz8gNŋDϯgonC 6) U }/0^y.9L-w/|I߼(ۃ)@YȜ*,201[fTe)ZDɬѦ9SOI4N5T['jAlwAoc!.S'hd:W8U^ylUG)lZ=}UԅgF_Þ۲SF%RBVPTᑽyw2€dZ&d3ݭrdnp\TNHcc5CKM1ouQ:%U;ٜPY*t'Y3>vA13dOϾh3 '4 {R浭W6TFtJsL՚ )Zc7 7G8"8ѽ"u}PKt눹MwRBIq+"ÔcoݍsV.. c3iUc5U#2*ƨWJ þGi3Om;9co}]!&vN.E1G2Xũ`̀ɐ鮬`3'9HPmV')#2g5J>"Sf[HRWAycwAnFxXtN; yP#+c4+xck]xP}LTϲ4ER7Mpœ'3{%V;zqC7|Dz ]$1[rXXvN9ohڌi0=A1'TM2g:.kE<54tˋ(s?)l:¨ EZqdb}k}+(ö!#i7KT@Qǀ @?"U"|RBD-/[ U5p'HA~ hcD3t6;zPs'i_K1@ :Wx\w~z}jzt8NVoc|`by$A~Kd_xTjJjwe(.TNՎ ןOb@f$*JTIV'yV0[VN@F(tLՕJ> u`RPҵX5,BfL5}j;ϊ3вzuuq< h$/Oi#+ż68>k/Q&;=eohg7-],SXZ..nWoۯY̷RgJ^idsK~ ,m.Eo*Ѹ_Fk;ܲ#X" W@^3&ygu]j%{wewh˝ e/ tcA^*oW.z.vY{T7De_ر׾ce}TihZy?6v 8<'O7By`nIN)?Y%PP1vub(),ZU[K&m\KHXIp8(83tB9YmWm~3]?sWnt)dxjW@+.\v H2"(~Y5[{ a$Ox;kpTy#L] $:.BB ,Z0xݳ {{JȘ;6q0IqG2$t33vt&:#i}q+ӺS 9{.7utȐi͌Y0g-}j!(|GȞݻ`c5W--:Ӧ}xpQN2hincQ광A=LiZmi;F{:;; "Oo&IQm.;zvhfx21Y\xp*hP=P+e(do3yt@>&DφB!șcA]|O`+jQ#CmoGT5>B71l{`z8-o@(I<`s U{_ hp&ײP,kf3plBXIGYjg&pb{{ ^MY_RDH`9J2;$gZ!l̂n:5UԳtf׹4kiS-1<")اm .U85E%$"`\IW>YsVb@oVÉ慠A|~p49f.!-KTS*h-|8ܱLkF6Oa:zNZo&$tEXid=r_cc;_\ْ3+ {axqjoR#2 |̤n乖:~~(sc^M- sMD"Ͱ"Bhȳqӂ֪hkpt4:!#TePbw.gu'96}:?|9e "Y*RE"|ĺ=Dn2c8gdfo6-;>V?Zދw4&9wl˪O݄yt;빾x;s_FϑIs_w%.rMlD8;xi%%|aI 0w<8$QȀ \)H_&nO>^{9ENp{"%}\ Th Å&Cl7:9d,EmCL *)8u0~h28DžsT}`ۜ  ݶ007ggi4z36}aln#cѐMj-$)h=b|:鑝 ;n@Wչy#BEvu9g7Myi|^EvßUVS Wu=2_i?L|*9qtS##F$<͈D k`n+h#N"<)AS [*AJlVV# *.1Jx JU=0.h@H W3q={t"1>02Л|gNGY痷_~x-|rb`\2Ld c`׽.5!-XctѦ ? &!8̮4/t0[x˫<9|qE'd'@𔋴\r61-Q/CG♢ ;uM}Z&%uD΅{ ԋqGݒ)ƨàOtx;{B G}'( Gp;9;aFho>xi@bqPݬf_ԅ ;pu}٫ly%Ww~4Cޏɭ)`(/=-mZu@ܗ\ٵpJj5Nu?jv2V{A:Lhd[_ kԲ/°c B"_8x0;mpp,$kYդgD5R `חbhWr:SkF kyeDP oW^ V4^;`*GL$^# o'Yyp 67KB9BHF+`+eO&ľN=7Ꝗ&ids E:$4x&DŃhK FzU$`V;F7A k&}16nbpMrZ6=nk !cY#t:"F ԁy`1l=íK+HCv̝ػѝVAsh>F+CiȒi00{Xy~ ˏ'ֻ[WzUe߭#˹JSHE".,a-D{ވ.ƒYmJhN4̤TʛJHRksiH1R3K=A=W# /0]Ȣ1gU(O(` ˆJ4-PZi8" , -UG mhB^Nd2E ١KI\`f4v2Ț\ 2 ^B%S$X_uiKг*N'40/%KO;2fa9Q˞<>:7wNO=-Jwb77xE=jjc<Xkol]Wwgֲ޸9:^`c#D0 \i [3CKl ;LJ2 4E,?= .=yaz$ :{xB.YY(aDZV ƳrW[`'`Y-/11${`}@">lՆe^ma4;D<: ZYu^P~j89*KT@yNBgc\C_AJj٩6Tia 1n-ߪ[2׋$P5&`E`" o/VwVttFQ?ߝtc}2B3c9#OM{X=V>&,Re@@XǞ΂՞ DRi#d=GFs Y;bRNȇ0[*&1Vl[v[l}@ {rh|={y4KC7nc7 _Bt6yzVϾ q5N/;ƫX}Ff\S/4Zq%RnYϺ8]2XڲOmh1YS Ve<~IW.W/<^lf=װ^G %1_,?93=8jK$F"Bǯĝ}]K]bf̓H0M--q/ $ɴ7oFNȧ<'|'F|܅wRW y mFElegE MN(y*_ӦM{l-X HAB5/ŧv qnH/_g^z_Aԍq:Y\|ylW.Roul싲zaB CD5Pd Wn=KěG5v7[^}ۺ"`X# Gȷj[^{yQ*woUAcLQ$*k)~bwQ^LsQo U!Zvt6w,Z-#0Va[+X$!t'E,簊ǝfѷqFRb~v*<%/7e>eL]n~ٛ}se+.!?j7f}V|esaYQF _4c'7Մ/߻܏zΛ棬of@|7kYSk$eluK[k74;Rl5 !M{٩7m3H5R`Y}t--Z]^5/"D0alJvK,.h+,-ZetaE8 2Uuۼ9] c3  uGu=q‰!YpS_}SJ5(L:Pc #r]ծZ1Q)`* ꖽ]01j9aŋ0X'0:Rƻ{"',q#0 mJ-h爏ex:bc՗ܜK&pmp5lDxbV(f W~+q_繦 g-BČlО~{#YϷW+(u+.L} ߊi^p\>tJ,b]~GOa]b!KVCy@2p3TF*/GaG ̮"һ"Q ypVrT W/)E{c3`.xgk81D=*qOCR+t\c 7Ta}ux{< )B^i& nfFAbIB^f&g5_KfrIf~^bQ%V m <#͆$ʓs%x6:2_sL@LU'Sehɒ9R6/OQ R%&{x]QAkA1dXi%zhR㶥 & VVtLLHo?x}s6Mfک} gsqc6 uQrߊglZiִ~רB‘igo<Hm~/\yW"(m0~aGb%tyb@5'dޞٷC%1} J6^9lRG7?'Ǘkmt:*2 nۧ 7H5X;P%۲`]  SֲT B#t0D$z 9c:H%;ơ;m!6a,qnL9Sy,ꝛ/=$ZU~E%(oW/{&["a@߄b׮ mR }P@ŀz3@XbDkz\seTxi t !ei$4܊f0gY-{ZHJY\KJ 3$JnPI 4y3{ذ%k' 8'h{Z I8kjn0n'"?|?$1RD!4CS r["^7$->w7'OoC9_*67tC&P2J!~qM !_R!~gho2Je=ʘIcg- ̙2B/dnat}m_n}(7m.-k8]=Ulņ ;_&>s-dIΟa ^{?"%Eـ47y^QxuS~CNk@1LD}Og>x]㨟|n/@*J6DX{zӋa-'X*y|V^,7ަ=%kㄊQ5YZv`f,?/]B umC]87 @1l5[{: apSܕTn]Е>p;Jߢqn@HWi#+k4Xma;LjAQ4Nx6sk޼)-qT]PئHSȶkx/$z˫gɮj;%TkW/}I1z=BDR &~MJI4J~~[g`Ѡ+#I|/](oT _Q0< Ƒ"+_xo]$RlBz9wdC@HSWо(PPy Z';atv(P/`D S+Tt%O;$`H9Iau%~53|kSl!tE _"{-$mMLňE羳i2gפw3KG9&d' '~wc,Y rY_GXR:w/MhZ}%oE%χ,Q1mR 9еo}i~hθ=Aq7[u^zՃx^$z>&*V8oc 'Kں-Q9'q"`syyETJKFT({{T_J Sb^t}P_ v*!H.Prtto"giZpAqCn99>.+}# 8 Ǚum~oq#>y+}cyZyrjazy7ts L9Eh zI9v85իs+ω&u9jwν9Mwq6$dhnSS@gxR٧\<2X2 Ny [5yaxzRq^á)g0=eM&.:hDڋ(OXF7 G](5R"H<:&{۰K'pꥅss{#M%i~˞`”\@ I3$l>5rE1V{lo?'J<<4֔LrR'=SO{w6CG8FFVػ>[-٣YWMCD)PmC8OxEӂbx9UueDm1vipYF[cz7j};›fELEuKj_6`."UKd֡ [%vdhȎpak43wP ' N[ZncyxGFVcK.M{x﯃y/o y(-:\W;c`8r6@nr\ZI&Gmș(ƕ~QZe2:@CE2S7eIنWtӞخelVePHOЛڴE^39յOPkI7U胯2ce5q}ҘѤo~,𿘜v6RF9cԤ6K|xvd뼋˝rΩp.j(գ\k4/?eZCxU&&֡`"-fèೞQ:ZA8K74/& Z'/rJ>a'Jk(]سhq%f#dxUmCzVvKX3Wh"y,q -xn&&&FإyaF.o* lVJߎ8MwTq jwWR]V6w3{2䀔|s% mW:X&⹐,q8O= ' N sC`x?&&Ӎ@0~$B"5/E2njm sm`wAA3lV9dNxUmCl维^^/j<|-xUmCH|=~ nI^ I`c9?5 R-xr&&&KC>Ԧ q}=5lV4k, @qnjhZ##*~O(V.U#Y)_lP&\mM@48bܚ 0xUmscxۗ!UL.xUmC,[E5 g4qKds!? xH -xB&&C)A;U!Vz[100644 GormGenericEditor.mPkL_4CFWWdAAaN7X}D= ' R5_9W|8$y mƠN:tRv v Zw(^0{hEPgqQͺ xUxFwfU`__O~e qdC.ZmLJ1ISIq0ȣ4鈋d!zbKq&4[dM#I˞񿛇HEKWAt!·*nhGxIibTthGu((?NDI>u^r͎$<͊ Jo/ί2 (ql皜Dj6lyE@ Fߑ|;IL꛳u2G+|P9Hb.@)qDoZ '~,eoDdI|,mF  b_(;]s)D[{h}K 4Nd>7 cO։ܼgơLBD ' l0ӵXJ0w$diBR8@"e^ě7e`Gӻ K,xͳ>ѓOwJz9to30q6VE| ggh7`rں: TN4/Hpta؄V!3/n;.9^!q^B6F :ݾӈ*T5]"Lu~@'T7R)n5'{U;',9C\ [UAY;E!I^((i>**HT3`^/쉟b"0ʽK?)L$ȎgpbI˦u vAZpp>|RpXkݕ=x2pr<1Lzyگ2ҼJUcetyCr*q %}iq=gjsc)㝪7 6Xr%+*U*1'StG=&KRp Y #:ĵpr$+T\BZ,E&}'Ą#z%3ƫI9DӐ9hO+UR:! 3\+vBۢ9k"Q" ^$7u  Pz _Ip*O6RK|4^TC#޷NUh]v*M8H} Ϊ`Y`̨ϵ+ H<0)[2&doE?ڜ@2P58N4դ!z -pYQ4M~jCF;\*Hj@4ipdL=:2Dƭߠclw{{{C *WTp'r4${ $v7:T|rDlW4i.mJ:Bab __  h>a>Cnߏ?Ae eh1G+Mjڷȅ~rYIţtź؁jҲ-&;=wN@GYQ4 (T)8~͆֝U69hwأs,StYjjuAȑ~82MX;^Ty[Άa&\vZu(Nb\h1󅊦zR`#3A !Z&Vui3|5Z0qrfj}c'} ^^Kt.٦ы&դЋhv8 &v fPwjXzfꃎ8ʙVKꬕv}5Z7!r4 `i~[q8v|1g2f8Dae%qMSnET3:.M<3Jé38iU Y 4gaфum_-;? 'c+˚UBmħ璶ݱQi Pv:<ԙj\؊E_QSLTK^U9F4 qjȌ+uC&m 6;ہ!+@~tw`=0€WPf9SFID@췑(-bҎ%J-J8-jszGÁfjM!妴T=Ǯu{[uDi&Ͷݨj^ޟ*rOn|N/C[|.]aӵÅ -)6#4P9tw iY.j*LIS9=؏:$ĝv}RL4|.%LpK_Z/yD6|c'ܳ( Н?U}q(d'"||e1d-n\,!$ܻ=8?Β2G`AjG 'f%W0GT8|00m¿XMnXƳC ͎s[F(pF0HiS(I ԼwxfN|\LeWdܐDd?:́2ǛLhK8,mI^xH,0|ܜu]Z=st{CQvo}9VS9"X8^{qaU(r(öob6g*.]@'3PQ)-(BsmTV\(v]+#Q,Bt5j`~ɽbjQ‡jp9ixsd%ؼTv} jQa׫7ˆ%6M(&j5f>E|r;(%vgqAkV :l2m~cU姯35"n#8@raNl<fΐggzaY Bx5s2(Ϭd&ߴQb-2yk^U[[M{%̢⒠"%hkɜ ,l ҥX\엘ym #wr~^^jrIf~^dnY,c6:*8 x]q<.>d Uy&W Bɛy&N\/8ْG||~[F^FxۮxA~C*F8|\' *~[F& g—[x{k.+ x;$GxC#f ,̙y%eؖ1bo%x#+]95/%3 *x'!YT7X,UG917(3%uT0024a 9xuPJ@{ɃxDcT16=UAœd n٤J/}W7Rafy_yllBNGt=HI iЁ/iKZ W7&` }ڶ6Y%slb^ۯ&oKގ KNDJ"*BT!B/J% F>8]u8vH猭S*EmN D'SRyT]1֧B|<2a 1Q4c1Mc}}Ѕ#xySH_K=()5%$H/cNMAeQfYbfCj^nNe~^ZKbIƩk&;3M,?y5<:ϬeᜟWWZ3ҎK93/94%Uds~Q> TZRWNI,.N-L-W(.-H-*bSK܊sSRK&'ӑ#8L~ w5rrMgS, \`95i;xTKhGFG+y%k%K,iXlyR!iv֦]RҺ/}@CPHI[%B!K r5tvfWjh?1_|u74&BŹ}J Mc(V.?{{+ }MAVnɀh:8gJSS gZ|6_Zb<PWZ,9#(; rYlׅ1apYss*rSVA]%A) kTWb\HVѨŭ[ї5C6eMP^rexttϳ涀h3KMLoU0*G ~zC^Nj87}k=F'{e])Kk5\Ҵ]5 bq4ՄuX]#E|A5|o}:Ҏ#W9"{(}7ݬ2˰ |X a)C"v®[6I;ݠʝ(*a@cb>?$' fTs㧨Ixd(pTZ iL8$w+V0di͑M<FA.:N׈9RN= A_8OUP>"r+DlsBjM[(F-'i"9"oG>K/FG{l3U$UP/kZdOB/'r f"A~*{lKc"]W=]!b#@N8`TiD_E{1 {4X:J+6~wJE98协ݜsvpVJ_ĉ>lEoy<3H]Ovy<;@E@aiQ2yݥ~TI!SmMCZuګέ7]N\ KuF\sE7u_zcy#ynǻ!?m{]xqg w'(Mc5YBzAMy S:/3ǚKj_pk+qި7Gx'@1A //K(p5Ouiinjxph=F6&$x[qj q̙y%S& boșbl6c +&OtJ6={YNpm"d 7dNz# W|`zDZL`U:I`y60lDp0p'\&E|Y ͢rϼ j.}E7 XU#9D pVGx[qj D6+17e+|,_xsW87 -xr &_0S,-1IWs|U 0,3'e % yy%yz I}}1֢TdyXk Posmt"qx;qr vEe)l'7XM^g V\ iP{E9x8M/*l %Mv g=iN } */ - (BOOL"pQO@Fx[طqMFFͷ:;xipqFF'u&ۼIh [~RVjrd/QCv{sbs/>xcT\^Լ..e rf x= Q̼Ɏϋʱ9ߤ6J1B9:oV5 DAOm&`vWKjȃe}  |4jkxy{ K R'؜ 2~<0]x ̼?U~Dxk X$BKR S݃KR2S7avbVωsL}J\ Eũ% % 9 yz 7RA~@7;-}x;+ JON1c:f 5,0ͬS638 W;3x;+ 6`l G rxUoleOmPA6Xe &J3LЍwז9Qb0"D? y!/ DLDD`4zeLxo~y{; 7)0[BtYBW>Pӂ4ҳݲm8QTTpT/~Yq%z]qf{)^sZ.h0G[`SP=w3 _ V/Be9?3xP_Pc3\ڏXFC YUtۘfajHCV/.\#Bz~6M9<.>]jOޡM-j N!9g%˰ǰ:*0C&3=!)ɸis%Tm%`lFHeHe 8"dte*+^AbI ,9? ⪷ҮCMXя>vqXT$Y4W$f^hj z14pڭ>x.e f"{C]ǖنM oYFi_#Y`iS@7;) Pu4Q MM,mA҂1:iU@r0bxgwVb4kC)3e?-nɏ̻te(b!%"aomxu=bɚ$Qcɖ(  r|2_Nؾ!)qة7MXc$Æ`y `hY<7gU1@ey qENα5f}b*3%1 /lr/?ү.ז9]!>ŞG~B?IQez-lx[* 3 M ܊s2KRSKt2J2rtKt| 7b~ϽE`?FtqjNBfqP~~sNbqB^bnjBMRI jj yׄɳ)*O.Pқ?9!msx2!ťE`8NV,Rx7'9g66:5&OF5a|Q+84P@9, jjrqVsqN(_9پ@arjAd"6By%EEV *zrGa+d"UryE|ؕ)oN-Vf!H/'?SV}j6^gbw3+{6AEX"af2O~kr۲-$ U?9qy5&_6g~?i8覨 Q%L!œ9qxGB<znr1vN>E^'d@Mrp 1[vѷYJnO}D}vdV!Pj(i$^H C|Kez1) HɋHx;Qw!ͷ54RKJrK r2rR= RK򋔬7sN6\$A-Nx(-,f)?4  %r V<6x{Ӥyl>\\y%Eiɩ En9yEy%E V NpW5_SQ~yqjVa u,*JJI,.N-9prf$; r*hgN,(hy [+_cFyf^J~dNə*X'/LSHOh,fmb|r #_05Y u8tSs6 0W~@xRNAN`` 97ݦfKJ Yژlfg&{Kk^:;[ffwykvkč"`TpFln\~x^,=ZBÍ>rO_y +yCYZ +å 4K (B1^:EزXTc$ЂK6!{#+=L=0b!Jeg.iR`$& ~7S, Ȃ|ˑ=`ڃ)Rxi&rڜSV%g\I3v˩ԗY~ w[R@ߪOvL"D:`ډM׌K2 oVDe,&ա ϩ./qZyFFa`#a0gGhyݚ<( 7:*>L)@HT(*M$gsR(-D?IR0 [}L}vlqYq;4J1U!w{`wusvV*)!K뱐[g)G((QDHiڿ?PJr˩cڃɚSnqx[ɽ{mFFw2* Ex;^2dMFFͷ?1gLQCBL)RPr7sNb|+̰-%#o=n #˹8 &Y)h$*41*L.S-/MΈRM,VH,VHM,IMҟ<_N~f.[=8xSxC3wbEobQzfBj6=FN8wr5]645x^|xC3iljϳkN]Ax[-*hs췙Bx xkɯ_WZYV93-/%5'%YJ0NXfjkJfI~Q|rf^rNiJ Hs~Q>RYԕWУa 2+-19!UV  UU˥XTXZ\R_阗Y\\TT\l RT4JA(P o5zHfq4e+Ux9P_K=(7$1)'5,35%$H/CAWTHtPXot4KbIci̬`&o`Vn1&̴rHI,.[ (WZ= V`Q@xfI\\ &*h$JMrHKRi\qNT (xyK_K=(7$1i"FfU'_gwPK)MIU)p/J1=ZXW3ſ^Rtԓj4zmyɃѯsե1F=ZXWl_SJIb&>#~|S"~ JԿݱ?ζ,keIj[{ӕpWŊQ ;`.Ad&AHpF0t|9IFG[>@ggK4GSv6LρUb.[u9Ly+z2"h H9b2躅{x n2 BΤz9$;&פsʞL>3) _NNX?"pyx j0V):6s2[z@笥If U`4,[c=cՎX4Z9Еg܈(75XAֹ7" Nfr$ .j.quI(סVv0VLR: ZAȸ9ҧA=r8 $wBWXo(iɴ07}8]lR7n~pÏPqYf{4ED&<B#U0cN; %! 1[< :L7y&R't'Qi{!a&uypAuMd4wYXcs59]l> 2tw94"rwOžLh_/SAq^/pwAx9q96plfdsHK xϻAul&k:p *x{[D_KK$$'=(׹$#_p̴4NO?gPWxtsNbqg^qAjrI~Q|2Paf^*1j'd&OaQLQH*//N-RPSKsSJ'`OiMKLG(I.-*N .)KW/17M]A"Hlf^B<=!\xRRdfmkWx}{#H$vxkZ93drE9N;X Ng,/WTPH)ͳRI +$!\\ E%Ey \\y)\6!^x!ZX2B %&' a/x{q%bfasDbx[$-Aqc8FS|&& -Yn-xPh#|xeJ@¥$ƪTJ$5Rlݖ!s $3e2i>+/r/>>}=6gjSMmu5 1uKZIYnV8UbY ] 2 v哑ya..FsDB%vSTk+D$U֝ WM>Snu-ۻvQL*,7?hxsO6T 0Hedm?G|왽06RɆ%WÉr \E" %[f X|E?x[cvsf^f1 l|yřy) @nL+?dm>^| ,xmx-|]xҘ6?a!x{l|IkG'aw.NIS(.)KK)MݬqL>- &6G9g:f ̌M蚬!\͓Ey7/wf#rxE}.OYY&o2KKKA!3MA,83?OVp}~I̼tkd̚D8׊>67'R/V L |>|ui֥%D@MeހDx"} cYe,k(@pr_P!"Q<יE# [vL&t*{zڟAK* 2NCXGLiZL%Q^(DeDZ < FǷ޼X6U #9IՠZ VRCw.H" DMsȝYD?9yn,:F)C_* p;.-S \w 7vF%m(WL +O6 Z}EՊ zw>qN Yd<@mjGe SF% q ,̬ËKG{[ kp`*|{|١7_p)I>(kW# :BV $޸rQ('"<.j9/[_ᴺvOJD qZ/ETM#FDY|I1\mƆx=ʈ rzŭʒ,eRDI%lf\W>Z>[t B>nلGaSC=TP$ UÉZDZ#MNJ5XPB.>U0Vf<J'.VBaʔaת@ sQ"6 /RX` ʁ9F/m UA$VLBVq8xP`7Dom&6.H4Ġ:4?QyREZW#mr ^7C|֡8#^˱Lolg|ˇW֡ <9li%l&qy$E\s/++wE:XNj3 V43'jkƃlG֤y+s&u?.ձ{ ܸ]iU,!?/C|dގfx·a)$vPM"a!Bk"a,R//o"" 'BT&mj-j k+^&P 4ezZRQH}9V#*I .[{g9 @q6!|@I\MI_R@W!9毶HVQ~e3^(Spkv+0_iIN0LOWګo\Y`1<5y>>30+f]_<ɬhÙ»_ch-Xp5ch!|a`s1T*.?sTo.Fߠ4 )b?ɤKs}ć *`1n@ؤ`=n_X-NEQ7sat} z=3#{۽"Akv U :j:U|2t "x{ysv,< /ثX7g1M5ڬ&pXB  3x;A>3D,83?OKA$Ybh``fjjlfP …r@B 0<T 9ULA,tu)z +3P,6>e l>_ lvl8 xk 'g%R6OTwa X$xc"sf^ds z3RY_ZUU吚˘|9x{c+_fRHjnANbIjfQ,曟qd('e&(*l֖vD>x}R&F˘lٙ u 6?,B! (x[zC*bl t u6?\1Yx}qbYBQjIiQB_cQrFfYjB"_⟔\bPPjPXdǤA⾉y@ZE ESRKsJXk.@SsSJ2RҀ@LӈYT 2̱$h5@e բ` x O?w.j.9@څsr3 \d'>^jEdLL]MNP Uk0ШZ~.>AK8"GUSڜ&搚߀Vxnz$NVC38EHiHx=%zC#fʛT8xM t2 4j l.x}6|E(*gLx.&#댧ٵt4=sS42A "+< 8C'>y'WxT:x;onC4sf^LҼɁfD9`Bd x]3X ~Kxowz r&Fsd','m'1_ T,xe}zIFFͧl>Zxb}zd?Q9>k.̼N̔MA *x;af_?] `T-L_ZZd矔\UͥPZRZ T@HLqjNYIY + R,zx$tR`{FFY61I+x[|XjC #Vƅ,?O5]AV!/3grw_fnbzBk \ `P"<=d Sx|jSsSڪ\}\]5Ss47ccI(x1G_K=(784/e",D}=oJ<Լ|tx|2PkǥXjʼn0LlK93-/%5M'%nkJfI~Q|2P>3/1y9) J ɠҢT^Cf^IjQZbr|&.}}m 44R "Rw42Sl<`b;Dۚ!5/> ;ov*xx9G_K=(371=u#:fV0k~f9(ȢeZeoAx\t\fi̼ҔTǂ}Ҽ s6GK0Oa$̏ B(h)[~֓۳r)(UI[ himl 'Qlpx{Rt.͟?.]xTAE&Y5La\F}(nY\!w7H&a; iB 5UmW*anC< E W3% zޫW??_~\l}B WRG-Qt 4m&+*@/L4{|ǒ`;(DO>f$vO˵:[88mXh :G'ѝC0Yǧ6Sk[oC. kSz٭ܓsfT^(F±?ٱk ]2ȚO{$ս?W877!UVRcN/yQ=k/ZN#53BЇ&Onyb+u\b$RL-Z95,>.g*7LɂISrve_pn5b 6w((M}tVּAmvF])B^hRƶVnu͈cuDGt೽(k٭r1bٗ١t1_pSWL0z zR}o'v폘L.vaaj6Sh4zvzc]dp|!DZ9;8'OՀ>.ыPvT׿;Q{b?WQ}{WvIMK;mz_Э䦇Mvu>FA8+WOrvü ÀδY:4ɂNnJ))`/qxfeoG@x]SjAD*rܶ4C AS ik+bMJW(d':3Jx%{Uo<_z!Ϧ&ً9gΞ|E~s|j6M猇_8?  @ϸ6N]M VXeQ6c>;8u "du.B>YOMɉsm+\xƿ uyil=maOGǚlݫ$$櫤$̗}~3m5؛ aϋKywJ/@0EbxKle\ّ#8N2keRi!eUĤBKƈ;^.vEsN-:( P=)(zɱ r!iOE{3~停yyߚ|p:4jzq{9^ڥl{ϡ֡]27>W1R r$C<<F8bÊ8=${|&L=$ޏY+ |rv);F*ۄi@S2Vx׵i[bWM㙟7n\dq!Oj.8޺E}F82HdP1"l+6 1B&&yx}6Zϼ66^*"ޟxT$\_LL@f֙"GG[LO^~ѠɢbIL#+&4y0S >Qa`m D!A{Do_G:AkIvT %fL|0q,zd'f#D)&+S(64cs3o& Y&>Dy͟.&p½uAjj&\;D=ZP~WViJi>$٦Ӓ9ѬhtDHKC p?>73쑽XHey9;(#M,Ha`ǁVk(O_ bPx8lw"f<;{@6#s–ꃶ뢺6k B͆5fL@֩=HjJ'P/*%h+50捔 !UwlHkՉbI8j-~w=ΫN 3Kݏ Utꊡ2L"{fͥKXU5 yѾҚ6W}Tb0#UlemVN.?`L;/F娥4|_ Ɉd#UHy%=@$q1wc{~ɈORBXzgA*Es&9Q2C[dkL~Q@}+uᜫ߶|ƵRku8t.LrhRF7rH'o_'ӳ& !sF"WBd,\kƽVts+s)+s )Sq`X!,ieay&SYh-ca㽫؈AcpU@&>%U Uޏ˄7Aaѝ\:P4;d7W^y rfVT f`z4_+kuBi3_&0JB}aEi },slD3}VS5#*5y B<0JPԉߴg=Fi3HB! ERxHr$ ȹ$70DsIBMVOpDQtTQ^(F8\O9i(x33˓r*8_o;ɭ]B!$o牏KP=/' MsGX,{ 8zS o+d_N=\KAg;D('wq$j5m[\@TAZZWr8y,)>F,bv0'm"„ wX n߃RVRLEڃ vїi/vd ~v667VҠ!y Ce%|}I];4\u&:o>6A6R~lN=fj)W]9 /cA™%߿DyXR3/ 9FqTqs[{eK\ː#_ts">٥inC( 0Tsx>L0_.9$@RV]!' )kAGBZeQb;Q47AtY)FuuիC Q`Kr0ԬU?2*!ZARȠi)o9"L {ڗH^),/r[+1}QT'ڞ^H?}]| D03#6#;aAӧ'|zgXTL#/k',o%0@ `#鍠*obU1JeelO<$s#3v|H|k\=qrXe i]SZbnd?&&"e) ƭv?H#nRv-As @gf ]i|J~bԅP42B- m|@lWwrԂ(lH6F@>fZ$Vǚj“T}H% rɽ"!ǼZO9 /u`1!q+`>R#V K|8pjZt x={|Q2Jk*6PiK_5d;hƫS ۤ645lxSWnzo?ufnYS򨓆ST 3Z1Y}^}]T[sNuP^ ќώ3 T:?i0_< ̀B; l<@(N0F<=^aP3S\xmTnF@hk.R$Aa@ ;Q$ `P+i.])P@!9IEgTĒ;oi7\" U$dyV-gnG*%f-5։CMOPo|ڌҌ& -i&P>܁Ç.c/Zs|8-)PTaJpM8 \G/879ͷ9#3le A;evuqblJra9"YSltrby.g=z۔?YJs"T\[tlNcI |^gL-*U0oĪ 6TZuό+~b޾<\an)3x]AkA 5 4gƶ[FQ)UB;f2;)R!,HMda 6w>ՙa[r1;>F[Oj?չVC\ey:Psj8`Mj1Y0d-BJjۄqj6WfP]hji!9Ode+ةHWŏK^, +(\X=l pRaeuyFy;b ftE #upZ2j85 o{?v5jgB=5J94vz]'0~NT~PI@~]>.+{۲!A1Y[8wq*银q`:9/K r Bm |nz "%m[?$.fЍLnE^'^X?\X/F[#bY , wE9_*yZSJxlj"G{l30+ ~.m < p4cxHAUKJKJ5WdA5]Jss+= RKRSsb5&((TsqNcg] "8Yύsr_3}|=SKJ2R23sҊsS3R*@2n A[La\7x32rnf-9,gLt!%HobEob^PfPbEDhsڂXt7{cRx!~#f_=R~٩A%::E@^qfU^yfJIgdcG2SA2UI9յ7G2Saxq| ؘ3J6_f۬(d(gdXs)(9id'Pӎ: ^h0Q3LGkMUʄi~FtS6''j 0"ּb[Ɇ:ړ--6Z򱨡x@%H"HLw0kH^7;H sx2x[2q| li ؜6oc['%m (x7a>ż̙y%'3M7ccEhK7;HtO 3x>xk~+5.1n(Sx{?q ,&PSTU0R6 y9@dFK ,uđuQ'X$ @i]VH&2\`ËbVEeAV Ep6a㹟KAAa >NHKRwlm8jrɫ}8'?VbԘ/YǞq 34hҏU'FcxuR]kAE$-֪hć|<>"1B&*a; S73qv5wA|? ~! SΝnTaؙ{9{ 5nvV@!\<rar _3Kws1hv zkyi%XỵbcK01|P k@3\g~F2h 6gLSr9e!u B_S>$BF.˃s[|LS'wT gX?Nq95O{V&(&}^kCYs@e&nɵ(Dppqp<*7Ay=(Tq5:]KFknK{ܡZH^"^ucF UF] k鲼(BVyBOқYof?,-އ,=ޙrVVqMn_x;sgC'#.],)$ nLx;p<`C'#.ƽj/!Mx}QMK@%.@?&R,&DJOzgx%8 7cy{N3&{;5UYDJCIE%2 Û.'Gɤy*+؍cNyF+;1\fYt}%x4)FA;8nAR@٧5+e`Οa{X,gc8|ąuKew=E`j7VNCɐEp9?ޜ嘓Cd80D$dfٕ0!n<ǁDt ^#_^#E hE : {".!~QD_$ojx;̹s'dɽ,f,an)x;wo#FF͏Y-`nn%x*UrFF{-0q Yx;| 嬓3glc'd(&gd)*Xs)(3Ɇ*}%3S:YPBx)f)$$3/9?47Zj2B5 `u<`F^H_A!9 x{;| 5\z%iikܠC\^Pg5p@YG`<̙y%Ho6xnbrn%a l~ =ho24sJs: )x[z g6eE("y)V ũ9i `^,'(AQjrYDcr)=NA\n@x[+V`C#F5l&n,x"E~)FFͧ52x"Infͬl7'?㒛lqir7\5_gnbzV&r/ L-O-檝󓎮FY~fBqj' + ^MɁ›Wqy'Gx{p~7)L<}5<ܭ SsrRS2r47OzĮQ꜓X\ sS5&/ p&%)h%**DGkdx:i;($&d'B́jAHYKFdY)8(@u()de;Ca,)|PSAlN-*J-)-S檝Y8QarHBrQjbIBBr~AP#ӓO1}YF qVNizm x/MhWFF573ng{8295_ x MnC##&FUǘY&;qo.P`)x&'+3MC85'Mv9B^f&TI WW`WBU\R8tj7s2d U{-fq^{&!pxeN1cѣi’ \@HaMawP㥙~3E.괧q2bxѸZʭE8*Zן.NSFȩPrռ[yV%-LX JmU^xRh  ︂ `a$TY*4W=JbdNhu˭PLn%K[? $8݀95ov%|.1CE ƓB=:l53v7RoQ'rfG3`2>\ |i۟_߿"!]˛!h\xmTAoEǓ4iIPjNZEq!8l8HA2Y͎UPͩT@Up@ƕąp`vk˲w}7|nQϦ`C>qEKVɷ[(1?bCIIBTPdB4 W ,\[\\;BA*Uֲ ,8UYuibq亨L#߈~8pi,$MYz4y;Oۅ0% f&$ c*K\ulN$~88G%Q-A?9?'NU*HO e!.:`NPL~d(Wְûywi 0`Y$grY%)">zL+:2Vҋ{=0P[㑙($HF^ ?yYΡ)Z"@.D"vXm`^'@8䘰j8ur( X,α/pn*֯'HN26Qs[DޥUcB|%h[•|^qlۥW(nfϓK)3O.Td2f MJ]7SXzSəYDД֦v[-nM ]X݄WB}wx'!I_kr &TIԒҢb)%E9~`%@258KHiٓY%]zJRylhx'WtC+f6 6%u VxMk3ar[̜Omvg,%bX$]Y⟔\kͥN/NZRsR݊sK Rʀb)ɥy% )%ì**J-)-(*H=nExSMOAΆV-_9`@˨b5 K4ivw vwpvۂL7Mz3zwvC>>Uy2|Rn߹`AҰh8UNu`bjtZvd䆸"; 2(}Zd#v ,f(iV4Q(-QZ-z+5jS*=(_.ɦcrh7dvH[1*%1>.a5 sƥ΁5]tY5 qE= T lqf#VXdna1 KF[xѣϩ/bҮtܙQTW ҠKضz2R*2!s4 u28s$3R9ⳚNґҮ-Rv|+e V9Son-}uFKE$H<- zb;HY|Jױ]5"pSEۮ hrh3əmg= VcVg@u͈\liEr5TAR--JܪtY]z 7Ly"QbXH OM%b3zkigXy$H"@ ލ{T2qA I\Ӝudbұ]k{v81&왼>J^jx4<]20SwEV H,ɈMIAi@g$Z)DB̊..-H-R@9\,@:vz|dnG3)a*&Zsr9pѫgz}x{'|Lx3Ɏ,›x1Md`Fx ax[#Ar7f[O?gPWx\Ғ̼԰ .4 O,=KRsK˭42J4˭t43S4RSK6_`gޜ}As*dmx @r7ɗx8SR2R'_l̲yKvvVg .x{ 93Y_KK$$'=(784/%,3F"ť`T\R\bY\YZP Ru/,L(QpT0200(ɦ71Ӄ7,5q$_hqIjw?laXť2X(8,5EAKK93/94%UƱ;DBemw+I-JKLNU@񋂕_0U t_0XBA+~kZ.]Ԓ|\&T.1Լ.ix-r]dC +sf^(V3y&&s C!'5/$CV!84/%$*kͥRZTa6m2 dnWx.r]dAFF͇r.d+xȹ!YT7X,UG917(3%uT0024H .;xmMJ1YR|~,A(UA;μj4&%I[xO)KЋtJI}Wan]n;UKGy*EpD os[{K+HxŰw0#Un}& #`9ƆI*G@= &ai;vl=H:Mr]w mrVX&g3rM~895j2#s8U3SJ42S4SRR42LÉnWxsgC [Qb^vNfBpIQjj[fZI[N~~S~qI~:i\T}#,35%$H/nZY'C!U(kxPJ@=2Ei@%XB@Y\wJi|D~w?oQp7R{Xy;[(,*>&T>o?565v >OՒDˆ!WغknޗhXㆽgt:ƫ|񐍹d6<cgArf^rNiJg^IjQZbrSifNJjRVjrcJJfIf~^^Ffs&f L-O*,lĴ$!s#1B""LU*(ZBZƔnNOXߴ}Cd|вgs<,t=Njq]X)Ʈoa[{}iEVW^g1C⊜@ &U2]y!jF4Em "JXeJq YWF0($oVdUׄࠫA)&;F٪DLeCkdNQ4ʳ{iJ0QBΈBKLjHd.Z!̿' /-P J5t5u8J ~Ѻ vbUM ֓f7 lM\}?@wǃʙZ $`$~:lU2fZn/r 㼄~B!5O~"t=t0N#'I y6s %&:4uJ1 Zepʟ&!J,~dc&AÐ0fQuQj5@HE:&께:W&CFQqG9CuI V()*Y(S*b ȅse͖U.Rֻ w\$=pTKxEe)k/~ Hwp!l ear<34Ev4Eӳ9|z_heCRz<׻1_Ks }M6;'2e`pt'}_vl@]O6,qG^"s2n㆐982쉘VVз׆%;_?Pr|z puu˷?:\ݏwWO2*7uX5P8xibށ+K&Zf1S+L;K\& wx<4Hs'Jg}:l9/bntyOʖP/ Cp%Y8KKۘ}Nwx3'v}Vj"?w>c)iw$[a<1W*T;?kr~ Py =|MP5jď;9X8ix.x\gK@yn7%2:}Qw"&)3Ty`)IM V}ޓ"ռHXᎨq0"6vۑ.5ôKHTtрCC=Vrzv=h:]xyk5;1"'#UeRT!yj1o,iw%I#UE6΄*XAWp72 L4#=|i8{MB &\ 凯'5k'{=1hIQL%T0l: Th1*w0MfkaKQR-㡍x&gy2_nUd.=CUHF[ {}`l oJl,no* WVA녝[6pI/'G?n/xހK˛r-Ӫn*ևJVg`Gçv=nYan.3h̟9xg-߬_&"ύK@83M]<+ı3F,~k$Ɋ`^ = [ u1 ҙSLO<1&%},lXS1bAnZW[r81Mľ4Ɠ wo449k=߸U ށDp-LGUx[L`{hX$Wt$^ \'z` u6gBvaHiWwVXQBr\ٺv\1= Z3 1Vq:[gU 6IXL1?LFlB|-/h{cp_~e-{NK-or ")< #=3.4j薎JUlc*> 01VqqtH(N9BQ73zn:^zgeWd߫&wEwlʧ?) aaCyKW`Y7hC+op2/HLAVxi[ 2͌\-&5;(A~y^jBqjNZ5f')NVkRPWP,/-JNUUt smQO,RH)JL+OK+N GgVrqJ2R]A,.΂ԤĢ+$.b̔Tl+5@`u5P((ZAa|fJMx1/t!)-@I)j!&\! {KF-nIx[Ƚ{dFFSyY$).Gx;8/pP@pqjIzQb_SNbrDpQzRr~N~HB|ZqĂbԊ䒊ќ+'3N6#?Yun Oq2Ǻ Yjͥ,JM.IɁfEhiBPfxfJI푚QhNfCxFfI*ulF=' ~\ZTWZO>ĿP日qLaNf.8փQhQgb ,b&@5|88sr4S KLvPOAL_* ԿVeFQrd%7߱>ix8)pC sf^D)EJm"xAU#%;(2(5'V/ǚ$$3Y!3b Bs~)Pjs*3T02KbQ;CB hZP-9%MPirqVsq*( D3Rl ͬW)읯d.0;[J0R0 @͟* Y ln7xk l hg~5. n?xk#f&"f&f x{pn/f'.n" a.n/89 /xgwnC6+,& )l&c!όLՓe'ɱO~%'=Y_}r?'˽nKx;dwnC7#m-qx;/Ch6d#ƈ=< mL.@Zl8| F+x!SX_K=(7,3<<3/%\/cP#s}Z^JjOK< .etf^*\ʙy9) 6ޙ%~0+It2KRS`3KAIA+ HYsr*hdh*degdd4`4!tE@Be ũ% yL]y)@O4."gWjxۤѡor'|5~9E )EE`^B,L6xh Ϥ?Y_(5e#qLs{"xka&9s*0Oȩ3]s?\Lmx/03'eMS\)$8MP?(\YXky;#XXx|EqC3#]̜ pL+0{nA I+x8!|' 0 10_    >0y[D xrqe 83J&piy\rC<PȴRP 0 !DxZ͏GWvL#k׊ݽ&`ƻ_l3vH&wfgvi #BH8qq!7@!q?8꫻ub1ZTU{^UN~C7DQ/Ÿ>˱ϟw6.mE +5jmc,=sn+cVupX٣_P>}fӏ1~0}:>h͌i 6?P5V,a#E4& Y lb,0Uf6 .e Ru| /D}v8.v!ˬM?.?`_\?ADߵZ] G?Ea@dԣvF936ugu41z$@fB1^%qg/VIxǝMJRj5-0PbT1DA<;Sa2]q\74̒NV9gz* i-z]mdDP`;.ӯ(f$q Aa/ ҫ\ s:.^$=_[gOYkVoGa/),q!!=!7|ũ͒=а4T ur»24fn\^2/ƒ&|LH-'$ Mnz Fa~ȧvD&7(w` vp!M [T(l-W)`;!-u:9y[MmQUSo&?;1(m@y>8._W,YIp6En ?gry8MM}!Qφĺ.QՆ :}*w*wTUp;OиϓsȷESKr2[ZLw5)FveLZdurYk.,) ovUIR GZZNUPL9:iEr:'] ٥L6k/ԔL\K۠f_{r GScu"zRE` )ip˿Ck ؏~\XD-.$3`" 8™l8.5 Sو /Qc2)g /x2ǔnj3.{,)CCw:+t"R4TZ4βr]duCoJWtvLj!wldXSU9"w1^ AR"MI"״iMU1s+ҩҥQ@evХl ]ҪnM(H VIRB7 J@ Z'nq}u'$\ FPUq,]K;$B)f%N< VSg8<}%^\H|M^  P:Yy8$J(+Yr{D#g9u"qy<-)4JF%z:wR+GɢZתNGMyn[+ZC_$B Gc߻=+i٘1yT5eͺ0 }z>c"Be|U~rI5O&!;@"( 7U NeFb "H;9q^*g#nz&t%mpWjZQLa0X2Dz{lar!{DžcZ624)Z0%[ņ׷;bSd-QÂ(gޤPfB):n@^1#2Jy[S*%R(iv(=*djTXq{" ê|2ƉXEP&O4iD:Cr ق'݀R܈L+R'PI:[[02ySeopEtĢ-/s+A碞]S)f+łU^>}m|g%K-b#hTʂzqJ)Υ8b8˗&yt%i)عGYP)A[Y\H%G {Gtf 8גdaZD;FOk-訟ܣǂ{o8a$=أ}"~nfd:! ۱]>؏Nm 3;EM]7z?P#Oں&T C1CB˾0)Vk=4t"Śov sG&1~P}& y17;`6f&glޜWC<@˚Ic .Rӛb?=:Z@'cUV2;+~S<<""P(tlבQ! j)^ hH6yi+'a1 l RRhuؘIT_._@2iJI+V+N]ks2AʌG_J*՝/nv3\*IH_IKz='aw$Cݑ=,~T8rRA*ULKePnx7 =F{OVG!x7 쾥%I9YC97.|iriDtYfjyB~RVjrcg^JjBfM$8`bd 3n({z+hx;W !7+%egYqqr*~ũ9i Iy)ű@5ťEe )9@axB~No~Yf^:\ɅEz`+*m*]2r6X(Nh:F]U;м"2 ON,NUH/LIKi4==$5e*7P" vKV+PQJ $\ N 3a יyE:`#YOahrʰ@*[ HG^\ P6ۊNm^2xW 9-Y8`09PQjse#''MfYz=V.NxRK#Ag]cx*QAJt5?"kS o2dq+;-Dm^ia A'lTl5Ab_*g?2YU)Z|v2@RγxA3)MEؠ2G~^iɳ6LEЕwW*h70F>8>/W6IBvjWGCFatJ0 {|h)([ M23Ԡ 6$Bi#-:+҃9ݶN&XC;olK1G7CҀm3ώbdணaA:ݷ?l% pp^MUUtoV20ں*8ozT]`fr^:?e}M36hetY]mS D-rX51Wz⁤L="7xuJPiR{ۺ(zAIAPDDAX\iःաI|>it~>j~#9&]$2*/B+"%ȄWY8TX )L2=\|Wlΰ,ĂdT&A>y\61eݮbGp |1Ė,F$T]c=R? &]EU, ~|#|9vnCx{,Xl}FF91/rqx}TMlEV"Ȃ *4!i^6u~hd7a8nAf QUr4 #8" B8# ٵ]{g7o373sن ]""H@j+*hw[ tEmт,ESg|e,JCQIJ !ȉ@ fffggv1Dicky,=zSL Y]w|&uUG?U['΍';u.Jl?ø'=/eXS1A!ϝ|K9Oο׍= k>#=\0UPdnҠ.85(sPUА1pmXdi<5B( yHGCs;z]dd* 9U+35Lp LBWsK8 JOFw !cZXA{]jQ="= [, }QDwxںoe(,):0B +375ewat4Rǻh#U <2yetا8i-cU=M8ALA>|]nt_;@{Kg'.mOh` :q(:Mvv;t|di0~_K,Ihs|X?{c?pF=f; >P ΜO_FN엎QB IRP/_çĎ:ceXXVz7$lgs X`dDfJ\\Cx{}Cspz|F7=x{}C)2$F!S"CK#3%kZ.P,x{žmBd&'޼ф bwq!x[ǶmFԜM^T,```d``dU0 4x[ömF0͇33Hbx340031Qp MNMIex/ [2=iν^Nae7PW_\԰S. g[sTm'T\ȾQٹePN9ɉ%y)) X/aU?U)gMv蕽~= V3QL}/ riK \sjNyU}dɴͫH(KsjX6GmLFKM./zBs3͞l'{~yl*s/zYsew_?&y 1"TCB '敀P-FM3Pf3(e0\uY~9"3oqV+t'u_]hڠ^b=ލr¯G=9c)E%)ޭm޼pey`3/,s-s, sls~񖟹};BļTIEoָQt a"?n ;rfNѤcG)@ï>{j|3Ukݵ蹞]Z%8S,WH׺VrGk4HIUgIcp&n U$椖'f[g^$*-6oٓSc(esPnB֊WF }VA(d0σ6JLNSOt u9t{K~17ҢTD4;3vsN4^Sy.Ús'lԉ=3mՆ+,.IjG&ovxu Ѻg!EpUa5*lgKW*߉݂)O:tvQR{"CZ]3ҁzssȘ$g1T˕Z伒ԢT̜px|ze OӈԂmmrutue?;~¯_l8jUZT mm~=xhJl`g]?x! $e"Q˘&5%0x0 '100644 GNUmakefilegք4V'v>x{"&'̿7{ϔ'4D6&Of D-x[D/471;5-3'!]Dζ[K]ޭz7Xg>!~.A *0H 99fgnͷs'>Bfx;"V` dkƈSy'`l nmnSx.z]tC#vN*x.K@_Kɱ '39$3?o#.ƉGE6bX\Ra (hy:g8g慤,.LTH/IIO椖ID{XQ, !5E/mA!1Ŋ=ʶ4K;j<>o!>`RT>yZ{]y}BEDp }.<9QBt!@k}3KqG^yrItuB̻m^,jn}sTm$/qA# P1KwKG` O  }֯(J<$_m1l 2TߕmyG~yy1Dڿ"wVLl3{~zxkyϽAq!cnFC|V& -Y$  xmJPqҁB5nj"kdn;`BE>p [v3_߰G2lɭw>$nv>c_L4B#oűg WSԍ.I;K<樂VpZB;~/x&[*组P|1rdoPzd 6Otxۧ\&dpF]< -L.@Zl(JV -x[]w*1^Լ..e TxۮSgC#FƇM/(–\Ix;3 _x[5k&dpF]< -L.@Zl(0n-x5kC#F "cnx[BuC#zFMA'j2xŭ䚒Y_w1s=_ppIQf^c TZZ윑_Xǥ`D@5y@\2S|S2*0-*(&P=y#L}pjP )BssNbq_bn*>D |waox |NxBԜ94@:X@x{"pV`dsƈy'/a sEx#TzdspFy'/a )x{*}@zC;#LkYd7gpj)x;ɻw6d#ƈ=< mL.@Zl8&f ]x{ɭ䟔\2Sxn&89d*fy,V=DC@Q~I~r~^B>XT!1%%$3?XAW!_PRP吙WZ 1MAG 601]v\yY5>4Ax&4_h>d3ƈy'/fljRx{(uJj:d=pF< ML.@Zl0Ì n-x;%uJjC#z*4#7xuN@ē73 Ag!@%Hie.1x!A|[fw}g?NΚz\=bh\~?}܌'ޝݟGnY5˜Kw`Fagb]Fa@kp}\&-d2*T"]ߛoִ,LS4ik*mUD-u UF7IކRbfK __8Pa 3FupͥXĮZ!]95b,9@& AR?"\}v|oWvй*59$.!S[p<;GƠ0bb<* &Z*7j37z`2}"N'߫X4-ǢWݩOȃJfpԄ:r R9N=sV=I o88wu 㢊ߎkV 2e'# KqOl&`(wfsgeks|6O/EE}cX;Uu<|A7tY8fjղaBRk#sIi6b7mOXWa)Tťl -_Y OY!yl @V͂I=1j5m5Gc1it^uL[55<&d{6թ\xkilhjV\RZV__\``dhh 7xų_bř0>;o~x&q5c橌Kx|YH&ٙ|;uٵ#s2!L DZ4Ss۞}wbWs?ppqmcH(p0w=w74nPkPC';qL[}cN %"40"%drgjo{͎ϋ!PsZְ<JAծz!b)#h\ܯ /uG v~MW\IҔ.Ms< Iئ)x340031Qp MNMIe4fȺ9ѫ>+ ȳuQC2ļ"mgĔԢĢ" # Nmwb9!szNRt24k赆+[p$,#v.gb缬X@Ow>,2?{J-2 Տi+Bs5_B&[ l&hbW˰!bggͶx+Yl ÿz%+[`^ӥTM{ݮ~FUN{}6L8EKjrЬ/21$}yǬ#J12p EWPudT|3-Tl'Py U ҼK03/(\9 eYE%E%@%y%Eiɩ_)hɥQP TZ♗S4b-bKWڛEfRiZZj5~;H-*v+zl\(rT.A8# HfqxJiC;#rllMw x{]qC'|9 Eũ\ @~bqqjBbJRVjrPIfVBxۮxHa6ER &n‘69=es$aFUܼK:)4x;WV_K/8891//H#51%( 8H/cV,p% j4t43S4''pke+hiC\ y% +$5ZIiiE\\ a5P085'MhyhAȦdŢj£A j XGfh TP 0)*DC'pJ PDH!ZX\ZTVZ=\( ' $N!FP,GdF7CްxW吚ݺan.x{wC;#F/V)3x[o:tC#F<͊٭S@5_0D /-4/E(䛘  JhN^79_kaibXI,̼tiRRM[=䘜Q+I-JKLNK4 A7$YX_T tRkf~lxZDxfd{[XSJK27f;YWQ.'??1#51E#9'8(3/]GAZISSas7Ǭ4toiIbRNcQQb_ppIQf^5Cf^IjQZbrGjbJjQ@bQqjP$j.  bk8̜TĒDkZ..]M̼̒̒ |Uy%in@eV } hJ:h*g吚ť $3Ӹ_TnpxQiC;#Ɨ0!xuJ1ыG@=KRj+uW(E(ndH6->Co HDu!dI>o`cz(QNڭ c!t\ U^P+54I\BX,i6}9οfC!b@W!)s}hVl}Ke/$)?*F4^ Gx*%guU JN\ET`5<Xa+ itWlD3ƙc*\*^x)mɌ=liA+CHĨKZYMRGw+7ˡ+}x;"LnC;#V,l%Ey/2N`3e6Ih`DExfIDJAI)zG͇kSKKRl}S~~P M&2LɃl P"'/Ls-,MKkh%FGg%AOCɿ$'D)VSM[Ը@I/'?9$3?$iydr,La'V&O|Wga|&g 2Mnw5 x;&7Av/KEũEny%yś9Y0+e+gd$&r)89٥6_acđ23[1'??1#51E#,(QAɿ$'DIs2#柜Ke*UpPLQ w4 xk!er3B^Լ..e j7%xȵ!YT7X,UG917(3%uT0024<M 9xuQj0`03ahQV݇&MmDRISAƐ={vs,me~EH^Gk0 <&";-8vNZ֚)ŕD7 +@ bRWF3/Yno.m}8Qoq7ʙծġjI|U\TSgq#q\#T̛&>E0 1FzII}};Áݻ!t(#8$9^T%llJ e{~`%,Ass563B5(SQ@EG (4JAFIΣb~,|i|nux2_eC-#:ƅ&n4x[ʽ{C##&Fe$P#nax[j`C;#ƹb)x{1O_K/95'G=(w" 1481%%$3?8>K9%5-3/U'%2.̼ҔTǂ}: ;..bBR+J̼ԢT#4Ñ UЀ(W,N- -pLIq9e&[!)dy)@4.uVNxYT7X,UG917(3%uT0024ԙC) 9xʡXTZV\WD E% Κ- LwL|Ɵo1B1d-\\ʙy9) 6ny) }̼t ;..'lnj V1NNQwKѴZK{x.zBtCobqcYsbnRQfJ:``dhlهg:x;!ɫXTZV<_t~&Wb)*|LwKRK22츔3sJSR2}r3RS4K2tH~prb[f^&W5P.(1/=UDZs)))Ms-,MKkh(*D# 1JXM.NNN`T)@#K1TU״e";xRKűSP't3 HJQEQj >fFYq!,.ts7|HѣwC#bx[˶MD/471;5-3'!oƖ͒.VGݨ x) (1I)(59?(?''H/ᅤE~Ge;&qL0̲T :lZl!y܁"7{3dF&%x i9N /8M*6}VZ/x:қ ft 0|o޴1m@zM;fܤXE  Hx=o96黓DҦǫZrG!&95M5Mi 'n.F#GvXғ8IV&Ҧ0k2 e=ŢNdMG? +Fm"66100644 GormShelfPref.m03:$"GRDӃYjPxzUD/471;5-3'4eDﮥ[\]M;Q} zp=xzuW9_MSҲb3')F ,xzUD/471;5-3'A;¾De kWnT_a,`nx5kC'#.Nf#rIxRr0=8ini9BǓ1#a: ^ieC4=bڷoKJp^VKm׃M.38iJ+Oh k4w.i wl:ȣP\ j .;R+N ǢJPY獲+O@(aٞ<5(!G(7-#,1E.=}ۇ>nM?NἆҟS;Q8;O,T8oGJk< `5ԺBq1 %pw{{8:9]\G;C F"HhyQ!OdDNIsJ3ByD@&ߵBa')YhFKmḀ e;rI?{I Zx#8oh.$-'ӷlrT6EϮׂ~ImJ=/GCEg C7/d4:5̙yき]1Sylmmxry£?Mg.@x..a#湌ܜWs3Nq`\#jnVxŽ{$FF͓Y'Ws"x;uk FF-'1ymNdza1lx"M|e%Q2x}SkGƍ!b 9$Rʫ}MKJ7زJ5„tV;t4JCS!SJO+z9oَmТ}ޏ[mVXQ M[c<آU6|Z(˰ 44"**1\ 4e/ܦJk*=U*  e3wq8eR~F.fqes'tSn 3-[=c1o2.qJBi *Isc5fJH<:"n\"X#ҹcv><4rb 9\5@N ƨ ]ecv,%fv *se;A%җVh \S8儋Bn0EqΛg.>NkW.>'jS2N:Qd)*eqaR6Fjs|LD4upvXPr8wJbր' Ds;uס_?'O!ҕ/2O݅^8WW__z06D#)ӃkƝMN7<0h]6IU $rICaAAȊŹXz3/SyK_|L߃VW=H^\^+s.c5r..J<>( h?$:e Q@"!ţ'7]{9յ7{_-./x{}{QFF'G~x[)މei)*D)den>͸9y2&T$n!x&Mh'f.v'1nnx`uj'f.&7i'f#Mx;vb7"I%m S*ԈןOuʯbVLKxRfze=mꞫ0ia~# R8iV O6VPq:y|>^$9`xSAnJOvE.bQY MUwb㡊1Έp:2\?]|g44.&ax[)qQ|Hr=Enme DWm bf˲ )#7JQ5x?G63,NŨe*VGgcV t֏Ϲʸg;\=۪!{~QOf^^IfZC7g)ḽWNNd_-W39 Gw 0c\7ߣcs7ogddoMw_wAvK]zH"9N5;ozyK:ݗ׍9g@^]eá,WKQLKc[L-?h2BY~f_fvKk}_x",AU9(/3/=$1]$3-!1d~u.fe|ʱՏ }xM{<ǿ1c[H(2IrH TfuH:dtSI)'Sک%1TSk98x?}y<ޟ>vxH`Hf"!*ݶ8^/t\DžT>qͥ{,wMMD'raS@796Ո&(n}\[2!0ZmiƷ''$gRZlɳ;Bblέ)m|^e4yʾyCnP¯3R ێk=r/F77+IцӻG,6I0`J$ 8$!c8{`Lm(Y\r|ԙVn8ء+Bw+BL80×Xa>>0КS1KW*7R9Vv>S%ێ;>),>+S5Ҩq*\8rJ ~cV1ǭlCg`μ|B0vE(,gVU0umf=t@/f}hE=Ҳo YԽѓh ;u@{p oMuw{+w>aT?QU=^+YUYx9Q/#7Yw/@4H,LjRy[C˿3&zhXiŗY'-?^vn0>3N2϶,ꅸUE93߀f.M 0Sr;͸2\3LJ)ecQZrTh0}M1Ϲ{vκyāBZzEjWOv2)|~'O\iuRsq(ETjY-.&})`'$ M/ ><zKaͺ`Wi6 '٫'w09oxZ\=^^~,GK}LZ^i! ZD>5eץO&e "7{^B˟V} 4[\ǩffuZmJ)^"Nl]Wz`E$e#̤9yJe&USn)1Jurf 4*aٵ5[&{ʃ*2dNZZsѠ='"UO\ vzM>![_в#uhb7yuc1T =ݽ6-/dNGiIԕ- eV k-=P[[9 /M)x*%ߢ[?%O ) 7 O1ڝY<8e!ؼńnr\'KbQ H5s5z+5t!gSQh,Ff6C='@a@eccIYuk1PT``~oY7PY-n&ZǞէ*A+$(+:,G/3K_" 2*EX %ZW퐺CG؈1pkUU7sWZ% 733]QDqn[ X[a:>ϾP_>b9Ҽe5b Zxdp ~)nwf&<d3i sCs-\>ָĈV!OIh͹VNknCJ$>L WI "ZxvnھAGG t;UNb |!rOq7I75 CdK _0#fI0# f ?ztA\r+i 2~ȓ'ԋ:y ZP31㣼њ>/tެ@;P`$Q;T aLu0`ViL C]Gٖ*O,/粦Rx;͒SFf! ?QЙ!I~Yd"p\ϭ|]E"> 6 GGA!& A.e@"/ D6m Y6nLzC+?+:a]ϏS&ȫ gQ I:ÇEn2<,EkYUJɂݔح_1l2l`Ǔoy6C`y8>X8sjlU+B S;(ha@w@\=Im>ͽc 6Y {n;Elf$8.~6Q)=цQz15W%HR#<һ iux;f$ّ)qsS0Vb҂& Ax`^M2````ddf`@dW| Yҟli(i'9&Jxf9KSĉ'7pOT`/ c"D73 ng''XIc`bde` u30HCٓ'oqnx;f͒SFf#d{^!s)L發_PqA <.$&OQb$E&o൞3&Syt<3,@di+))FV3 [~'3E 6 xf9KSĉ3@H?el##g''XIc`bde` u30HCٓ'oq+SxSMLAnShx(Qp((W,mh 1zQO`b^xZRkԈB;,dͷ{f6L:_̿'0.#qp};BӉqd2 sLwC``Vm͌ xZUTr2q:n9'{ai,HX:lS ꝍ%rMX1R?~3ďgxqn %l"ўSj)KA\,QxrcP]taXд @)iF!s_wK.ӃDNUL "׃S)i\:'~4e_'UہVqxb{RT+7o4~}7HFv==c8C!g=ikkW!S_ u叾ϗrr' x`57#r Њ:{qe~ WKM=j&e ELN8~+=kS~h1ou:`y% UȞݴZcf0,6~dؾeP:)ddN5N~O^NaP8"AdL܌I NV8Q1O?^zZKx&N&) r͇E~XI0.\ţEi,ya+'x16ш($J#x&"H AYx{'NpVF `Y&FLT29&/` ! @9@Xq LXOg:^bb:#Z  2dPonk9 > L\#VUϡk[m ڦ7uuV;Ӭˡ;&ÍIqgr>g2B\X!jR%m/>Ғ`NpzpTLN֧xrzXO(x-?Hay^1 )|M$PP4IK$GIX-R H DZHm4DSPKCvq}R$ >8?> %T >^ ¾Afjb$F야n&Z$/۶ .`;& ꭲ}kv~IRxq/)'CuJx$}Da`(ܕ8s5PrI P]10H-|`ƈ\@Yc{x)*(}PTn#S7MUbH W.=w}fw ޕNN3*Zn,Yfv>޿yNx1HqrE\JgwO)BPK:P0T-jiiƆ)^SS5D79DHPCΝn{uY]AqjJ\V?~9X9$T7.Qբ\iS4iGDpCbbcܼ95Iz cɿD>§=)7>\6* tBĜ_F>E8aɩԷ~^r,Q[ -_JnM4LX o@6#q}tۺ\[x/elos+ ǫˁn-t JpBxk'%L'&oVٜļ4bhf`d43=90NVThydA5Ҽ'-J& M+99^ z~026*cۤ49]d;fL`k6/6Y\ysds9Fj@7ip0ZeLn21bnx4YBy5/ m&(oji$;{rNvLt} -ir&SP_{U1N>:T:l%x-=HPj|J@[,Z.cu6NNB8FQAA4>qzpt)t$=w+&#P|#2{-I$-0R3] s`^o. ;c)Yʥ(j^Pҫ\iIߙY8eD?+hhbhK[1j`_ږtSe ]{'ˏтTXo=@`|gWRP :wFJgGno#xqv g7?9>xx%=KPy/M%Zuir[)BB@!Ak.ݺ;(8A^S]\)" N^zِ./ aBuyHtO5͉&𙓸_cW|^#uc呱F0] 2]t1p Jv YLW棌Z|X %_Ls]HSD[W j)Źg!Z~:uW xmK Brr ya]`+jN)`T"W}B=a$77z/*cx[q2 713Od>h4BaOL{'?ah~qA6+9'OeWwr f%&F "U|?8oh r26O a`CVlf'^Oe7ҺRi]>7?bb4)q02LL`7wnA6ޟf%؊66چ01WO1B8Xcr#.ނ\vxzg'OW,^8QCq&&+lih d*m~6P_yB!;Ŝ% 6I01ZLҙ,ùy=FK[6?@\ysu&FCYq| +7#N $av6sU=L`f/ -|5yV!L')ov=hY~MVU|[Vhx8obLE?2Ngћܠ:s6Y,M&O0Qma63xX'n-heoyT7f)ɡz׫oV^4HYusdF+ ꏘ)nnby$̖7ۙMA N^lys͆ʓ7ڡi %X)"ʛU*@ƫN>hl!_A UP x31ԼbSsm JX*oqe̼bs.=;;s۹q<Jf.740031Qp MNMIe8ng%)F:<40YETxzpgbbn<G7-x5Tf-q|I%4zËh3o)ދE5Syᑮ'TOCxxq,RbY bϖru8 *xxqB47;Z2 ;x340031QK.+L/Je\ctM|U=KS!D_hnbvjZfN*/Cob,K[ҽ Rs-7*gi >AL @=(75Ա(3$3 5$H/(vкJfu՝^ S_/vr^D9P`N"42h_D]IO_TV]X>{"4.Ez%ii Xj%/xw o_GěXZdB N_<ׯ>lo>FS wG1Py5{t]oTP,Ir7< -*㷩ПA}k*<'uyTaS N>Gڧrt@LM"yw7Kof^"(II}5oײ4 9sx 8ξTEbx2sǫPM/xM9f'(ˢ$BK$M[0h %J7m=W@n˹dt#[x{mC>.Ƣ Vw~qfƇ-x >ʱ!c=TGix[{C?{O0]zx340031QHI,IKI,.N-fp'sᏵ"r:ȟZI]f^Z>ý"wڵޏnwW*OJM.)K/eHu??ɒı{ۜ^Ϟ8 2Bn4x;}{4FF5Y(+xVR8}_ż$U3`a (*-'ZedRSvΕӧ/RsKO*ks1*,7]e2[7Yu6xb֮磃/9Hvr]Y>tUpGNtE5.9pSJ\ ]/f9:X-x5-|Ts1Ks#9HhyWa&  C &9RˆCaxZ}@c~npA8o1w/41);Gp}o#Y;(Q^ n*m]4"N+5N]PDŽ[&YF~5H+kž88 1O0ʼn+%[ RP iꗉۍ_ъGG#RH}8Xh~!FAkz^zBQ&$&mѢOñ  e:`X4hK-PdޢIFITnyjS3jı$T,[cfu%K3BmE*blLNmҗsSMe 8g%6rf(FW%B_1_#LoSS86Ex޻/Ap p܉.?!,^:Z#;a颌PF~A0u3WoSC6oLbm+8}+#-;*^Hȵ6BoC u*\-eJ%8%j--S"~atǵݶkxlM#[[u~^iH3]{8pTkfJAt25.nW4Ya5WlmazWJ6^U}4~4ݖ8JbR#$Zh:يѽAic#IRqeiznaqtX/hrd. =n`&k\ ٟ΢5]N][X6~_i9 J8p_TR;Up`nHjߺ~c-|Uu}xhT]=|J>]^g\R>zDwآ cl%e\$ Sc6_YXBl}NH|: .:Ix.,3aciIF~{Qjz~QW~Fsbqbnj^IM:P<>wLKϵRPPpI,IR0200޸f6ml]xk$!csG3+!&xyqe ̆ nEy9y %E%: ni% n9E: N%y: F+lrRA Ҽb IRNIY%))`qW _Y}=t_oiIbRNcQQbBbNN~rBf^fk i ѩ@m) y)N\\z(M(_˥0ʼn))%V @^n惞,Qnjx[xq9 L,sL/<nXx:AuFFW_2O>ϯوmu x340031QHI,IKI,.N-fx'mgk~ge)k8"Kg0-o?2%ab\dmw״)[Llu]Fj>*KͭxɴiBĩ,%YkZsq䤖+*hpq*AIbzHjEW_T\ dU'1*nIx[sFviI۴Gi`\S1v,4AJ@[GM;әչ6#>?sx?盓pLL 1,M=}'4pb(ᓣ> f;AZ[AgZ<`AhZcҲiy{]Xg-.iE+ !8یغD t.{g >rN{Ator˥h!Kr\9ف~vA{:p@T2G8ՕP]{osAuQzCToUK> gmpTwPq&-T{Q =2j98gZN(7ėVb4| ]^̛/5:J)Kwrb8;{5s~͜Ѝ7}#7t"g6~B权 ٻ F\HW;'I Q)9VUTG#)%ZiOrC[-Gh.R/d9BœϴW,\'G]gV}[}{q{U0BLቨ9לW;yOs&z.>񮽰kUb|3(jRʾV4 Wx++8<|+L tu:O{S`G 6yo[oDž]I(%B }*c|:fN[R*Z h( :JQ.=CiۂV!e5•@5عMmu`mw2U1b 5p [>Nֵ̿ڶLZ= 4Pn%-m4e. 9Sqr؛j'dΟI"/CBО3x˵)/,\y)\\@23 n'xk,FFͳ1/4/x}kAIQ*Ƃ(J_+-B--ԃ)*9Lv'͘8;-R<{&y<W&)c7yG\['xOln3wcqo@}r@=?TVOQ.#VaƵf.y-r#+؈*'hY6y'b,mV r;3WMBx0,`RSCYz>7Ͷ֊b͢)rI\p\WLJA̧JLwe||c +tP 8ke̔"eHk & ugTHj-6<J?V71SJM U $`H,6m^7+ 8MWL6N0,ۙ!JꝓCŃz,ztbaZ(µDѵc3MZlx;"[p+>m\DxſW_K=(/75tH3 1y5<ťS`XPY&y(X)@si+h ST% \$n吚4Hfq,AxqE}l>q}}<ԼR+ #'-z 'lkP5jXPYX (I-/J,THˬ/i*vͅBL%{x~N}C)#2FU26sfg #x;G})A҂"ԼR'@a(X+υ,# S9xۣ~Nqt͛E#]7b4Eb3xJ\C&3 Yx{V}b;cf?6 &T|C8c$.JUE  9eA@ Hଲ6@*HPE|AEL_d^x;WdUFFm&O scl9' nPx7o%FF͗=X'kixX;֚ sxcBHՆzR252K} 4zb[7-xpЖW*.h+n5#?#@S;KD]ZA{v2):[m;nP_g@ תYLwofp`$|@YɖZ'j0~x_4`SuLQeRЪ-x:N -L# 3v@g@Bn0TK%{A4)Q|HxUJE y->^R[I\J^`FilA%m̨Yo[ {?9 mH%Pcx:N4w xmI8^D )!dƙFX8Òq Sf^HxcOc]=#‡ys,xc *Kч=yqd^F\橳~$6iCm_ C3\ļ _-s_?qwߞXZ\{<~Ӌ8x鯹ĕ}u( 3RˁFj ͱV|]k[gr]QLdZ\r &k2MdXHIW^^ƭ!32%8=ќۮwفk _OeV9[ob|⻹sw29k4Jd1$ɻu-XA{] ˙EH+^so8&cݩcruyRvG/W.JM`r`W43SNl۳~]ⳜȢ cxg- GNUmakefile?RYyWh'K05mQMFDZ"9u'A-)ڹ&VhC UٮQ)+uvx! ,=qO:x&'hs#;;Z95CRHA!%5-J!-'1SAa'jFĊ\xAmFx"A!5/ x340031QHI,IKI,.N-fPذ|YI]f^Z>O8l+UJvCPEIY%zE ~O`ݢҩ[9A֧s/k̰;xxqcD*`gxmmL[esi['] m`eKr` 璱P.0/&(pYK\_̲O'?mN"l={e?C/Jvss Ml,g}ƋeNn@GN㑆BZkr/DRC{ o6xT׿loljAWG`hm<f^BEwj=ţ=rȑB;:},!*x=c"Wr .$Cnܲ=Rf?oW\qnO2ǻڵ"8wpz 7q.1FL'NGgW|464~@iiJ6cd~M\>!N?%&׈)g:q8C&~N Ɖ_Үc|f]0Y,d7P:xha4^#_1cz8QBcj-.o}$xY |WEB@BHFl,-dX. ]ak/Z 7՞jmA^ZzK{ovg?͛}o8t4⯻G"jwsEYKuf<:bX2N7⿅U/' eӱN(blMsx"ou[Vl I&c2# 8YG2B6 3$Q,z%;!,>GPr?H-#@hk,:.IU 4ͤH46 ͆GutXV@p)-S(e>¨.ꢕj>kTTBD6 >m{AW~R)y D1V% yW D7ї ?w)U\IFd>ˋ>YGI3Mj@2L ϻ8Dpΐ2`'!{EB ;7w).B$JK gr3qa"hOgk~v$sC Qj a~L#GBF2uglv"ΖraN?_n~O6oqXc:NJgsQ+\X4O>0Ӓ4CE + ;XX\˅>WmyAdZf1-W2wUo4739ܢ-!D!0Cv>KM<6wF\ ]6Y,hd:mGRC,VwC\vםk<M_ZzN-#QqE|KTlTOwWkԖ*X.U[v,(;k6uh+P7c:K:cuNTx]F+rf马MH[lfAmh Qc1 pw'4,[4-ЮBob| Lz]/Ec=bV7Uxt#;Vd30nqâWψ\YQVFjظ6^g78q(D64dS*.t R ud#Dr%/WjR*4R[Tev6B6A\ );*!+!Z_[]1j۠ō+m]^Ш4(i|&+lKijl5}#5PJC"c"4Ź`d[NGaڼښʹ(L!i,ڪBl 5cӨ^ 5[mjơX]RKjTKNZa)R=( ^znֺYa~m cHq-gY2>%>(*0=Jw9os-7[zװyĠy{a-Fkof|۫*۱E yZGVYgMҳ;mčpѻ9W5';p{" N)[]ݻO^K{]!{ P{gDNE&)>-CX08[JV~zب_h:ؒF7jME"cPǒ141ૌ }EKNjz6cL?Cf13~lڙѢ(7R g*Vod8r:Ld0ܜ|y_ʂsLvHvA:tgRWc"%Db) s'$pc%X֟t`ܜ MwMpl#=x\Nu&;|kӬV3x8C5SӭbHpW* f1|^hwc0ލuV[/byE(N6ʮfiY{8`+ {!i]M!h ū0"|х\y,#e)|Eo7yѬpr%|Ձy rrz|z3`J'EݯhIs.v$m]-]8GS2w#߳]yP;[p6<Ǔ:ʆ16e󟜟;9Mzw=53KpÔKq5Y,c#%Yt7+VjD~K=w9hb$-rH`)?鷍NE*S\!> 1dyl߶ɚɢȲ[Ş?X s)O9 3S?< `/ 8+lyŢ cgrw@cl;Cl;$;ONvu{X<> 1-Je8/RKxsfZÓ9ѿYDo˨Fdf.F?$UEU &r⪠/''{Ɖty?2;Ǩ}\t0dDG[ B$B$g{mY/m8E8T\meQũq޾MnWvaRdsHhӕ UA\FŘ9v )T*'KN[PNjIcیR#٠Oڶ숈+)Zui Dt4J$+zcJ]Pi3F{L|& !oM?c=ew]zCךPTV\\2?߰;M|x340031QHI,IKI,.N-f;7oλM% 5ϼ4DRpS> vUDo].pTQ~RVjrI^z~Q.CdY$grUU5Q.M_y%*Ȳ xkxW# P6%JF2{euǖb(L,(s|l* r48+xthCsX%VcIŽAF^&giBBP^#{J*YE(LUPxKL{ wT2*gDMMMk_ 5üs UR n,DjYU(l ]Tg̉/!Yjpf~ZصU&[PpJ>2Ap@QRI.o ޙT9';s ,UfJ3Y=S4[NsKb::,EE#rN''wws[dI{55-TDl>>_ +%&pM?gCn77.cՋ9]L mmmS._A+}e忧Ѕcǎqx4/Yoi`/5)ƿ1bJ {nol:^DǨߩx7x$8p`:F4 JR4jեڵS:OT2-eK[/m)_R濴iKҖ2-eK[/m)_R濴iKҖ'++fKg9T]:<5UyK7 sy8 Z`7^/f̣VkKЩڨiplelf|A4:RI/_ϘjQzlDқCVUU Фg0ǀzj<ܬ/ cӧ)-0 gpKTRNFV[s킫nXu\϶[x5 T4.exʸTƵ[-EjG8N[3iE6-F-YԚ6x1UY%|CnБQi*(6 Ŵ+)mu)<5 +m^?m6\ay7.-[cLEKR TJBWBo0 ic7SklF(YޣtxTr#oLyY&PHBR6RF2#U?JL739 JD>T{VH: wtK [}L=} ]Pq>S= ?jhrhCσ/3AۅChNNÓ8FLNJA3כ330{\B=pe="H sGiV!WX*łQ!@j%>4m>uQD t~yJTG| M@U$XxMQ7Exq*{ OLҪᐃX= "HWX2,'"5qx?<IhO jwH.]K]Lb9..!GOY4*@[LovE:bq@K_qvWq:?[99;_ptGz,Ww;ߗlp2*+|5jkVE}4hԭ0QAӚu/@u4oKq1vRjv[w0pdĬVm!Y p"pF~<Ǽ!Ch>~'{)s~e!92%~)-j􏵘߫giItݍ[_!}I~Idr0q~88c=܎=ϋ>K7vGڇß8(ĊuNi/KFEE_UMw?R?++)g"h9}y&O#_/lȵ]tJ{PC@gQ۱ǿ uf׎%LŴ@P\O˕>5*a} B7_3CeMiѪWJKJ[2yٟm ?+ Jk.^0=qꚒ HxT-)uf*Ή/ʜ~roȺBR+J2SsR]2޿YP?/RD )l~ʵ_jW0u[I\cs&?Ͷ}Y O a/ia5M@`IwLXB Y z`w@rKkhL0p2D7Zʚ\!If$S  Yv-*I.'Jk.C$p+:vrv΂rlo_J"No.=Ӥ,5ła*RKnG Ocmt\fϩg;w'* LIn`Xp]죀1{ܜyEs.@ug”5O ն"Wn}vdT]jh:a皫ܽSd-|CSǰ%xV&U ]^y%m^P%ǣ>%b/9mHbTUպ,Z쳈&ex;zHwk2ĮL&~t3߹[0`JmfȳAJIxVUd2V hGUR f#16FobZl"%m:w Q#fv;-Ewt#dx!4nUMvg*s/x$IhC* /jBXV=VT]ﰹ';C-x;qL{h'~^_g;N7;- X=BO-ǬuXVk}?@k[^Ϭd@kc70k6/6zz-ޱ暐.#M䮼6W#jJֵ"? 05J7ې>h?7Xrћx%o|b\2ΙP԰s?*7ru.:Og 9h $]Ll[ZOvI<|+:.A='JLxI +NC={q6r淈EBѝE*~gIQ0d > ҆q<0>tzs$!IȞm1-=bG,6]B=Qv,YOYA̧S>0r )7þΥK٨O/e{PH P8墼Q <0*< OϠ,rC9 qPӊ @1ȷB/ 8|CA>ȷ{ O")?a%mAy .;;!Z3w'|@@!WR)CZ.wq|o ~^x`~ΊpžE?+C-<Ķ ZK] XLnp3yg7gygXm#>쇖 _D`7:Kޅ\9őz\yMicբ_Z0uf0: ;ܯ[b*- 8 _#΁ݲl[TΙmʈgxÁI}qE|GxZ~XØ1}`ELLӘg1#ca'Jӵ^$YWGլ_ͳ30sfhyfau0=1=cX?pNCxWox[U?7IMҴIڮmf9tcsֆ-ut4nt( b# AEqe))~y{νIs-}zs}9{=1RK0u`h`kwlT"Iem"?"UvҐTL>*:"XaXvE+z4.nɨ48xJ_O+sB>+ngRٝQgWRZ`Q7&3DV\(CJyj^W=m *5˹$,4٨g\GGpncǥb@J *͗C܎|6_[2FGnDòegǧ8o oIM_ts:;QHdH@(hA61rڐkU.P*K tC6s@!suډeMzfwm [mN@2ӵZ;t|'KBā( M|ݨq^6卅ጸ=V4d sҷr/ sgtdn>^6E9+$s⌛hVV+@w>`תlQ')EujJ-X\MI#/ h%H[ToezY!4O{Jǜ-AD=Zk2ҰU.'+A\[dfbNk섯ڽl vM=Ӯ ~hPo}˪+<' !s]f_F舻6MtA9۱µQŠkqtGsa͖`Kۑ|-\C-%!"h-jY*K6:3pܕລZ,{29F=n&^Y65=̦0tDZw|="Q;ٔͶ.["݈A4bDp%W;0+v҃X_ ~Qv$I2wo%;r@+ס9mṡ[pc|t.yrUfLt9q`&Xقڦ mMG {Jd q5ɝy6=_z˚쥽^s%CĔ8yǷhP0a?Ć\j:wnUofv.N_m5 d9e7lh ->TIAd,ծ Vjk+;Ć@f TKPRLcEev>#M?i)aiw H,GN2(gt{;pC g]&&=./ٜXy }ᚣCj @kZj 4h߃pG>&3 ߗ &l l1gjx"x6yj~M> _7yAއBo cPqnT=!('L'qIÉoayBvҙ<<+sH O9vSmYKv },5XX{\Azx-1[<zl3޶M[PH{~ ^m 2#3?F:'*g)/ xx<9QCC{G\?❉\5[`(_Y' ڞޓ}V^zػdOoxMeijw?T,R- ^^xmu5ڠ~14n6 =4q 5g.+GkJ-&/x_p:3|p!_QozޫU*>;'_OQ+g{+QœziD(x"AfCCrNbq{~Q_p@~AhSiII~9,78+u4x WfC5#G"xWA=8!y% g"b`((FHd(h6$@uXБ\AaP3 ;,Ώ7x|# 1.az\F!FA=7<L-=SkL<}>L$X,R &I(" L ,V02a>7_pTt:=76ξbfaҍ^/$if{ͦ ͒CأBvp8jL&EYQ;>Ē !v*ьF#K;(JLż_sͅr2R(ry&4cLNǦx߸XmG]BϴjWŴLΝ5v/Mpi  A0I&1?3'q;aq*)Pv)aWV"B\ތY aعH!dRG,"Ɨ¸y_Yhv:W$d+"lֶbO~Z!S!ϔU\%s]zZ32齶^E?p6}>k'= H_t`X)sVBrrم 9qΠ\ʷgo8&g<l=x[ "yj毬n x;{wfA ," xkPMZA#Hi*+h+%qJ 8 /xrCe?fvԼ"ĒĜXԢĜLS\EUy%(R}HmR% 3YO@Eps"4Lzx{O_KA=(ש$&FFw2&gE?YUpr $X4ϱ(3$3 5$hVĜtiIxgBVKYY@{JY'9 x;rfy&Vf"[ ih*Ck57cfdI/ʝ,a]ZRZPkHtrjNBFfzF;Ul~<ٗbE~͟7Iel.isT 䛒eD&U7y꼓;yb5'+0M6PV߼ZIq}Z|L]&jO)`rHK4DlYx{eyrE9*3m Mx;W_K=(ש$?o"[Q "8y?隒Y_5E"9?(?"a吜X\ZQZn +I-JKLNEG ,bW5 Z%@,b_=>xSMLAͶ%؍?MbhB) "@AY))ӂ&J ]< MJ<&ě'.?*_y++K3@S4IMDEqa(FRldJ5?:v@ zjJpY\HNbvM jB&1`Z>`~pE tEG=X].,˗Q1<%:5w-̺;vo'%p͗Yw뒇Gv7MZDW ̗B'k7ny@ >g!vWF:F$V%(YI+DRGi"`A<$zv +4GuF:SHBb F*G""X[a O" dLMgjkc&?4Өf SFNYx̸p;`ަ´8-5ȗ$Y{Hr֊Xo:V5UPwPY[^mH7x=]0 ߛNj=5f$(˷(miT6DS0d핦dDxo)%PdsJfs{,}B^nMMoPyeS p% #0Ba\G:/-U!x;-gC=#ɦz9in x{f^)n~x[,XdfA&!$DnxgfQ'*l x/\|G͜"|x:t /l\¾K|?f]n66.Լ. /xcd f^ gQ~y5ٜK$?,%N:/b(Jxed0f\E%Ey\ O Qn;x[ûwAFF͇_*|t;xT[OAJ [bF%`eK$R5!4fNۑݝ;B̼3/c|7^Bi̹|s?iji9 Z÷a/(,a#TBs??FLH6c`b='-0rwyfAD6&M\_L*u[dFf Yl8QUq'5ܰ#(MȊYmNYDؤ1SSTޡ*Ǩ kS0%2t S:$%LMARTE~JyN] 0 AdRJy|PUލe s(*.+pdAPCa\ A/ QvӃ<:l&ab̉LHG{M~ 5r(M!PlYsoHK2:H({Ã6ҷ9.EsWʞ7A뻯u]-v9>Irc,ͥzn TUd F/;LRi(U[/> ZK Ͳ͡OCKZh!Bكi%۠^ (Jw7n\ m#,ܑtE^ N5S訦뵢E @6nUwq*щ%Echnfim{%$3G+ koy672{ #7{Qx;|DyAFF͇o2'e+($+oR,WY_^lͥ@fC:6AT Lx@lSx;Vyl͛Xx#x340031QHI,IKI,.N-fpJ vuWLKN YI]f^Z>i\|` ߘ@ևD)C'e&2(q [n !.kx[ |U3ٜl#mض$ MZMM@v-$]7&Q,Ko`A -^*y;M6Ѝ/o߾}}{GfՑ@,33[ ml.(k\ )닆=Z:K !DRdRnTRFc@Rݔ&t,~Hm8,#eJ9faWvࣼJ263,_5>- iGGr^G:> LPTpTpt[Bg?ݪh8!:E' ibV[kWYV:T*դN%ĸ=jHe8j}](\ Jp㨖>vBհUkXdPmVSQJeQ=ZRlWIZRMٌi x|zRl庠VY@ܓkCRGs{dN8*W꩝YY#ojCzĒL,ƷLdUV=:Tyϝdݔ)hT(YCc٬vڬ0sWVfh&͚F:Xx&Zd'oͅ) b3X:-J3ذޒ%hUzJ1iA;)H Q2N$;2D9zl&q[NHdqN%f3_j.!y }f.e\o\ܟ&5^d∈8@q{ #:h7+cQw{V1U~WV=:*Xށ%t{4p(]9p` >찫 xzd :#::Z\;b̛d9)f=A-$Z&[BPri/=rei{p*Z+hשu*d^C7:l"=OZ6Y<Cbzt01a6kL6b_MZ idw3Õpg" v{ZrX%PVItJPb vB;ۂvЪu)[ralF ۋe"6#6[^j OMMɒ^1\Aˆ7/񽛷^.{b|T@PiO&EQX\ƝpoۣR-9 Ur iW赊JЍ 8b&/&t OiXdxǁ4 6bd Rj<g<י+|!$[VyW)Em/%j_gcEHg\>X*Dc[+z "v~mhiHD^0a+‰r8eNH@#v ImDv)6=odKĩBh^h^4! Y*" ^^5K X.F,s[Sd* #. ڮnظ{=:z CYDjL_x^$7?%H;'n&d|cӑT\ۮi(?xO0sBgcԢ瘡1Ek1H%X%Ep pX,0@]谤-a(b\K Hr:e4n}^\F#ދԈ{9ɈnfrcYk!kgXؠCF,lE.lg{:0țcEw7#o^\qh6$ dž3O(K^p2ڃe{dQnGq8jFxy/8G) )(Xja"r-S٫R~<^+PۇXH}x<Ǭ|Ō,oi2CpgEފmr|;$քlKLb\r>a_h+fl\_v]G]u #MQl >1.ӻĶ{{O6./)KtCOFIޟL—p/vb1}mBC)Sb))uRcC8ܞHJ;i苢H2eG8ID'FFDj0Y낄Jt 3+0[kp>n;@zk6UlnRfÍ=3:ru|‘~r(>n̟voARQ3E R[ڦ$Fp l23}$әh[^\/<}dO­lcHm8F ^ Kd`Ш}^f&aг\{tk;L{t00;'H~qcc/12%Y|ys[| yu޳zѳzy&eF|-޾9N}"?}vНr_*R1wGe݄=S:;qk&ꗻ=nD{FZrc#-CLLk1j8mzfI l߶OkxXVe ;f|wOP(Rff9z dkó؊u`5b~ @u3r_a[|퇎1~lZZ5,Y\'n$&fG"yp z?g7SB<`~}}M,T`T6(r]H(5Tlq4"UyVPGe ) *Fa)A)$?Sr˥;&,*Mw"U]SXcLj`"RǬ̢A&4;8"57ěe>ba9"<[r i }TXH[Bm5O3Y,OF6V_DZfK- A2ohd mH>ډ8 #R[;B~j37贕Qc""Byܘb(O܁!c;Qgt3y5#";W%ګ1G$oIH*'>q#Ye@'5:>A*Q!?x-?O@{V"BQj.pD(ub3\\MYg.m~okY|(uyJS0TZRZ.,U+qlX(ψhٻp?;[&dO'y_4nbh^wz ڼ`X:7{H5JR2[`/" lA=JʬMa9M &qQ ,WpO!=>QACK`Xl7RFhQe2%WEtGWt&0_1Yh&5nKOmJ.7*3ؘK=RP *(X*klUR&RKc\lx340031QHI,IKI,.N-fUu]F9A[ e3wWX-L*OJM.)K/eUwoǕ .6xN0 EL{`ЄJt84D5Z4W"E{|O09GM΅Av9!/LPJDzpWS`XUbIv*_ %P\F}M =Qz!=8d/FYL.GN=V3k\V f Rg_5[ZlēuM]ƣEr͉jITInDSfZ$gÓ4Kʵ6-|>i[zdL ~$80_ZkᐦQe/D!Mm7gnצ=ɀzzv pɏӣDtN@)T`8W9OT<7ķ[FeP/ >"ky<]\: c9<4\"elz&=˴ 9"@=G :`2)cֶwʝݴkYݻJͤآׅ@q04p:փ']wQbCNT"-b}e RީJ*$@ID!#tj1ium mi sS F{wHbftTmvMA% !2])늚X+#ܶl:0͊tuzY#*w8;[˝ddQ1&uu %2nP il@$=7+s8OnCPB&؝oikHy'kL$=^ݢ *vJٸպR'L15}]ass܄e&k9m#30< ]p'`>Yџl J&K̵ EN1B7sG(b.QX/՚YzN9._z,='g-7m򺭴J3t뱬]gKo*ڀʐLqmlPK6.6`mUP0mE2\"!l ~޳V>DI6I?Jz",Cg96i#cD|BÙwy`Hmp?(mh*O]78hsmErQ+iD])N-PD),ǘm1)5y$H6 Gpmhb `WFPja;xKXmhAuHE-GWU*ѫAZveϸKYqMZׂzV:E(URwN 'eil{h ύiV=5b;szbڻi1ci29yL{/7 }%70 Dz%G^E#zGit0ۍdVjMJ^1>j,8dPʱn#Loڈ77)KK<\ndz<&D#'2{SIde9mkSY~yN;D$2F=aޙ-MoggϘposCƈ5ƌq-@ܽTZh*/<@}\F+1!H 2-ЍhlI}.k>5jǺCMC@҇ _䋩F%qvtxG27c+%+,*K 1=(z0Rs6Kii 7~Ѕ Sb'"Q7&o2f%DXr;jңw*riDf X0N#ao+Lf#ڙлS<gQDL=΍SxN?=sMvHfs%A?H#exgncIESzh>Oxē`HW 58IhPIS%Hp:L >Ȁ45u R}aHmKk,;L,=Zl@)\7V 񠀒> h~.x#&DS[s¶hz֪8a#PҧͣWbn%T` B!zDj2理s2uȧm1VƂ(HqS4̯̔q#A 4\2Am1߯rli@c3OFtυK%ri͹ɬI.yٜ~qEVtAԟػʚqHjKlr2dNѩhwqsX< 6 1KXH,Gk8a1+$C7d-$,3NtO:NS+QtFj.S_Z̫%V SE D!0"goރl>h9}b4ڇ-݅6q0r U*'Hk=h/-Gpz/[ޭN2),1'8IS1Vp++Tۙ,~i ]҆2P9Кb:¦t̅A A 4$E D  V /[9m ?x?qjx340031QHI,IKI,.N-f4ߵuGGGﲞl.3/-@.EzoLLC˔TRKrVѾ{Ma^Q \+xWrV^NlG!v~lH)BJ$q)F7S[ * w+ \1} U'9,)"M䣣=gwvϦ\vѪ޳HעCqi;@--ebmcX MDE_ά:*Z+ڞcleXvh=Z +,_;-;9zdxiŘ?Ÿ&OJnzF$CHt VziػnM 1evĄ6 8[f{hu1dM숷1P+nڍD X٬Z @-]4,x4̪YǴ#0&`qD0b{o\9*M<}SzA-B F=1WU"Ϗ#~ ' AhFUˬr7<Ծ\"H+QAɓ&][LW]&Q5q2Ęp":<68`.N`R*;-{!igl =K*KFjY(~>՝#]=ǂ=ǔ>_D`"Y_fQ뱤M P%2[M]Phm1kO(($ {ۢD9 I)A( OiS\J{c7 CaSl p)x0{J]<5@&6).u;Sg&]cJ_2 jMP%Xt .Xn:l!CԏS0.<ϐ L&^lRCKyAY-y)0/BH= G*Tԛ4^AXʲfkޙW]Ap\ #p|I~8H|eKqf`Wz=PZ\ HCHHsN`xS. VrB[ƨM||.ƥx340031QHI,IKI,.N-fN5>[f;%Nj ̫g.3/-,=]m{S_:Y 3PEIY%zE [8k=%}(8N0xZYxW#Kd;Ig%lJ4Ȓ[]@K[jM)(eiKi([Z__x9^hF$>{OZ&&OX/5Oh*i(NSz4Ҳ1Ep]ZLg#3zt< $bz"fhRp=voT>ѳq5; ʃ5}| MT 4˲)6̢LG*b,41XWz,3lTjXu8r"ohәt*.􇒌73߁di$;4/a}2O.5jkEfBJ& A(WZ޸UdKܡvHll 7Vv93Lj)_ V3=X4~ӆUh5+aj #mt1mRd$QVEf"lIzśśn ^Ь6kIDb}c"LUDS Wq&u`yX.]P9ȒSCKHf2t2堠]m+H&ӠCTmKEz^5bÞ9W͡oEN 4H%7n6Kpb؂0x6kPus\lMAIElQ5xYq#A Qh" W-Ќtˠ[9UKX~fT; lu6$:rV)Z\U>®+ (fvT0k.P_{t9Mvև<"vxDy ;:Aw K}Ikl5.`ZB$}5Ηk83[IFQ}!iTmzCܵG0Z>;A8{4j>q~9pVm.IyRIn% .(qqBw3 @LE'4\.܄\!)6@ǜډIvd'h}gRǁ:F젯llcK9(vG-x25QC7 zzo!1 7Tdt7f%o&u>5;JKn ;ފ2٥[&xekK!L}{һ])}l2k0TA BfQ[e\([=㑄ʧ%Ջ K oR)P0DA*28]ʔz,OȮq9H1iw J |5xI0o(V}sTOî)lv+2E5*YJ4>˴0HR e?; *0Cs"0Z%h~.wI.'\+v{Ю6M%7[?ӷ";FxD՛:NM]qw-˂;>~ĩ(Ob] /ZE>&PS9@ݮ= {ID9ϦټgI&X `H $%a5UL2WW s )ĕDxTͥC⚲5%BXiG1mXvރbV"aF6ӗ$&y M0#"lVS9G'd#]'> hwK79]J c߆u/FY(ҳ{-y(2HsT&7qPsdtz:2dy6 ཎ6Xj7&g`3T ([ >K HUEJJn^4g7BTRP9&}z9 :$f&x×?Er *5?UUNptpx8T([ȏPbG1p|q5BR!ATc@ H>#H)iߗr8K(m]tX&DGdgpƵ OJrQS coF5x\D pq݉8j<2cq6͎^ޅkC9"IGHTǤ93a|_,pkV80y4O`C2M63Gx>GM<~( h 8bLk&'iPR]Z%nj`(=Ơ+[+cE~{ %j)Z7b2hǽ.U⍄W61gc]DDlP*H؏mJA* \/UՀ;d~75xJ^$aEjY졌BJyO} z11|Ĵl$B$}44|L@$ ^7_Lt `]JJ-bJĎI as`zg`n@V\Zc칅8}"lIDY}H`vC;J⠭ lڅ/ A=Z)?GfNf.ӬK&c{,h2yIZ\H0}ppOj ez@A[YE~ZqZw(V'.W*΢QS+ܡAINEQT*5ii7d+ Y!ŶGhI~$oLM`yHUͿ-+xhSaFw>ϐfDoJO{ @b&o=  WLEܼƣg6ip2'dT[f, ''谨Ao/Mop2C\LPx Y!"K(Td5Gs}:7Hw Q=/8mFC5ƗkS939 vKW E&Bmeʬu8&8rp\̊Rc"}653+f:eo%P+efop21g38-nz+[Y}^/AML8#o Nө໢6Y}9PWi?4KasHS[1Q;I H*7j'^Rk`h`@4>5;Thfa !#Jkf2 ۸"tl\DʅDžp ?%!ƅ~jےLEڒ«jMS .;L8c; q/ŊYaqgu29M^SjV'Rk, nӖZ(Ύv^M>/i$ńIcBoӡ)F3u@cGHux$"}DR3[_36<IEB}-odM&׶H6x340031QHI,IKI,.N-f8-ӧyl"Kg)KOEWNB TQ~RVjrI^z~Q.5w>l<#(_m90xUj0 SA vlΞ%fel-})Kh@>tQ Q/%1p k`z:mop/0 =4F$rY)p2#KIWVKA%wm. U)h+AJ1F*L~dNa/ٙFsec:|rUXaҗXܕBВ+¸_h*[  8y/" q:ʺP'3gK%O%.4^T꺮0sYrJ6Jcb/c,]JwD}V/y>H+9Ġn6  qApB'$H[ej v0AB'Q^0ʸH+Cѱ?^Q\8)xH3]u)'[&Ŵ.9K] 8joR4Mad GIؤX&Y!:-uQ|`G5 %%{S{FĿʸp?3a٥%f) ;M5 pV-2vPjj)w>;om$=|noOU=ɶ Q6ۿ.[0kMR5I$ tBqGxh|T 5(uZ,Mܴ1c({4?KEsAp2M6 P|ŸpO G ßhX%a}.@n8ISVmg4 0QrTUWwJa8^3Ҽf1o~@FKZ]ھDFD"!^'?xvBUCA3R#J'l1m4F8GORD,$Py8^F h4l ?Y>mXl3Yrb^~Ylqx[7;ٓdȃ$q4 IUJhu> %W\i!pnlnEw>n}Q#Q_KaNpÆY).)/ڌ/Դ.zr)xӢ-"[WAles#xɁ~RoW+$0J8y2[Fò?N9|S(6Z23_`^KC(E#j@-BW) >ESAo /U}cQ#be*!y}'JEWUDkK30},߁y? ,nuv*k7;=1JEآ6_8v.^KPE).z{sP}{!{ *nviX1yͩQ9*m’ŭ7&Ĺ= *`/ɨm!auOf3ċs[W".|-F|#mF| wrX:im)0 ~Q& k,|H~FGg,oXʒQ[.M^72qM.f~[ޮ ?E ?yE\}~!e9nr!_"rU{o!CNn~+wpLFY,eti,+θjûH}=REqHE0 qy<,~0qpiu%THu2sޅ{K# \ qٻ=3!ҠbK^Cr/?^ӥx340031QHI,IKI,.N-fX-_V|xgC$uyi -:z+& y(?)+5X/=(aގ=Yrmr <Ho1jQx[4i—<qk0xxqB*#Ĵ xYwWZCgl)qf6%!DMҵIHj;5C~a1|@]8?gWZi{ݏ3;3*{fÚU\ͮP7 bI:*l>WZ͘ bIrd5&ru[[- ]2 ͺF†r`;CQ)o[%qGK`5Ve:+0EccQ4VJ:͔Z-U\X.E=El\c:@ ;duseV5P4$qd<6 ="GbS1֗˟+kOL$K>ǁ~5F|S tX.*QPY4OA!-q6d]B4B^H |)4{i]3LCahZnQY ]\2AVֻ""DQa!#8 2z#'Nq&H7Ϙcly}L۞oGC򩰗8P|ˑPk&`B} [d%>eVds;Vyw@ ,&k< j|4cMBqGiZAD*yv T )~Rabef\a:YP%1 2dri R\Φ[O=sFF@)3-_FC"4&8jzPL(Ҏ~ 2D[P (,:ĪНD ? w \ 0YKB z4A Pc=J+sWy{~ŭ-Yrj+XF\ q,d#C1(j{QUD`m@^gv" ?5%v!qm %o$C z#i9̿ۡi@z! yQ goiaJ9<-ǐ![!@rxC-EbderJE[y^{U5:Ť,&#|2v*&ǻO rﯓ~*u6 SK"7fsm^=@XU }֒Q75HSThCF=HQ"a1c̩C gll̖EvIЊުṠgzcs9ľ[i7eQDpK0ЅH 7Xzjz1pVz?Ț5 .L.5Ղda@ !x-B> fw2 ݂'N(,+&4~#d43՝KFި/AmYws/@],JLW5.a2 5:W' Xk33ǣO{E_VCivQ=>z>wy&zPEIY%zE [ou;/~O6g1k9x{tidwFenxti#Sjd-FM%y>_xxqcDq_fF5Tx xWfsnȝ@ MS+Xi-$YJ$U&;$ ݸِ@RѪVJ= "HFV<3/P~$_&~ \;2FɁv2?t=bhjzBh?Oq#to5R~@hX*3VFRDFF[|_<4땬F + YU@ȾЈ\ *2rG-]pEBSMCeҁJD,3b1r5x*0S.н'rוuKq]XWj}Io-`KC^CVx_'T:]`[&!œN#*kI؜w "JǢpʈ ES=40+vq^t(*ۖm;:aْΫ^cFc"*j"<;DV b*iU^ȉ#SN53gZACZvO3$HGF$64$e^b;RH0yk1u066Λ`c|\r9C$ե =ݹZգ#'쯄.h˔KB)&!3l)\7P|KWZl~W+ù.8 FF.TXC䒊 j@DVz8k]ߌ̿N~!=b Ro($x# (:YhMӤHo>[β٭m ELK 9<ù.+JgmCWeL*{x3誼=}MyڢZ=R]hK]vn^GΒDr]ZX̮ʝ8*:Eg~N>q5xAMpuTS65/wA6Z+@]Hmz?"jQ4):D%hq y iwjdv&,w "U?۽Goeu=h<h )~_@Xxt44編lӑQ Xn01mPǔ(Hq>W^ HTr<{ع4`;$XPq7¿4{:1>r%>WJBL}O91)By]E*^g6k~QYW |Q\|!oV |s z9[G"ZMat01|QQVX2nخ0).TS)byHKeqò%/+(VeMW3u¯ [᫊/@Cy|U|ӎk? ¼j>S`+\5m|S6 nWl%%+LNsЮ͑] 4oWGǦD pbʳmݼ&ļ Cy?|Kȱty ,n b5IR/BħKŌT8 8 C^f<#p '%G&Ǚ n@H}^GH18OGKv}s0MQ~1~@)F:~@" Q =! Td ?cgņ@):g)*~aSXm;AYD͓ ?2m(ۓc8Bc'B9B8/zӓSb7EOOK\dsp1\41\4ݸEj4A#QeS@6H8ˉ s2hN\֠6K9;%TqbVŠVL''ڠVp7ƙ75Ԛ4[9܂pEG~Ie]v`+gbԺɍyyl0 x5o@cfl"c"TH(HRiQ"UqF #_9p`$ %4,a{3ޛͬ4¡9@W߆,!Fy|CțјohG~躽"Nq͉8i/7%OVh9v#HDFvmlcvb,K%4m}OWN3kgk|V]DEKXn{ZZ rpagX`3]S|G3=MYEҎ_ VlL>*ZΦTT}?!u`v@~Lߠ:PN -b`LԃUuwjnm4 8 n t [*%t6){yT b.k1y~VmWr'D3(Xg?L6]״Tbr0pX wXEMLn+Bxv3l(iFFF-SYMg`dbPc``Pwp|=C(0]^ήu6e`v19@QL imfUQrx{ķGX_KA=(7 $p ;y?,BCY'˰rs9d敤%&XRRTZZW\\_dgsU MP*,H3KKS&IZ%&g$g@Ը-LL1RRKsJƕ^o{;-E'=ιp%la΃sFqfTjq녩D(]lϋoc[-=vwz(^4ksP0O(vmg6 5(@]oEnH֛ƈ={]:).?a&ɼ*5dQ%~YVB=ĉ⨵W[m\}d >m@jbS'.AWMn x.]jQFF7r2@xSъ@Eܗf 47P]wemT)!M;8dk)%OKgn6Crι9s_]aM`jp~N:cSH SEvOs._%Kژ1 kaS`duw, 8t.Owsy ʒx"!rUFp)MQ hTb>yAxuuܩ" S S: APq9y[f ] I. q2Py&0>/VmX}uvFH }΀֢"C I [nj̒F&dk|:&iV761vz[ щS;YWJ+=2Bօ\ai!Djh{dߦl5L~{mc j^F)YZ%Ek_Oy4\>{(+֦ѥ4RL?5wp7Ȼ!r߼LF&ޯ;ޅ2nx[ųgiFFgX)"nx,Y|iFFgs,+kRx;ʳgnɷXnx[³gAFF͇X( nyxknްhnc&Z.x[̻0##YjRRdf p=xzJiaFFG7:T_hnbvjZfN*Ы❢Kyitc2$} MJzZBpO`*k$\"ǒ̤Ғbϼ" ^^b>=aSs)?qzs"ŊM:%6'J{oAk$~P@kfG.䜰-Kӗr;Ī4AwS#xڴ&@t0@EWvuM>/8%9 L-GyΞy֕㻈#\bN,=b)| M!xp)Cso6W0=yu:3Rt$ܛ9ӓeLvZ3K;"THu&mSۓ82|qUhPb wԢKپms::)l%@m M?̵1Z>}w+ӛ@΁SAL;vP#L)d_=?fW|ˁq*e(uƬ$yy㠒9ЀF L*&N{cz8s=V"{h$_ȱcRYe=l^§g?!z+Jw.~Ԅ0 .koj\=/34O6oԳArtvkIk3W: d[9՝pweb҅8gm8Ot@'|DJ{]?.U֭GC.G2Nd+fsqҋ<6 yoͺlΙ3U[Ή2{-3Lo|%͊xuDAe”E0xPGIN?:B |iwwtQX_J '{x~ f_'d]>@uzdT?ָ}dVk`sl)u1oȓ$(? cl^"H7x% Dq#:9  4x{wȬ{|jϮaޘY]zY86l0x; 6G~<3ےUDg3RJf62V4lUI#VEIx{w{:g# =W&S5ө{2'DZ)M`> 0x{w?&rɮڤsNqnnf!l*-x$ opy&4$d^"H"dxGsO? M ܊s2KRSKt2J2rtKt| '0$&:eq)g%甦*8xgUe K% YU_pprQ~Ny%EiɩN9)E@O1_a/LK ͇&'&dOg7y"꓏jE)V$楀BJA/?)+5D * Լz|re\}EejRR8lxwoC?G%Lnx{wAFF͇X.1x'C~_FFx3'0e*M~ xuPMK@dS 냂B1JHHPKO!4/B܄MZ)"^<̷V-L1ۿ'cT$1ɌBthNL]0?M/5S)c,0L<@&:1w؏=Ф7Off3׷GQ8.2 r aȃd23;esiZl$/bs\E嚋Ķ664\o#.Ifd `P3HFޔhXykIG-zhN',%&j?|~I,hKAN_%M4&hӷh,w+ X"%%%DYbH AGC1j2 H-Ĵ:.Ix46v泩,f٥jۤP nrR)4bXCu![UK- .}krbNEZ"m$p 8l0ڬ@G6<ϰУ*@u+iɢ4qgD &sB'9qzRG^,c+,,KZcՂ>D@'3XJHJ @*vU}m3vb7(&4Pe<0w+0K=˞X ,{]܆Aˠ)q4 ;sYfw`f_QhH!1. $) 4`[ǻ ]p8x/>)Kѥ1xqcxu:`F*ayU R..gGī8tX垆o@@>H[)c<4Rӥ[>(ǵjZ!/ [u=h4J 9#햑l*KY]wxژN\(M0IySz~xP!|wR4 * H$/LKέν˹G]CJ$>7s6hhf}{!achqňCXOb7 c!>p:汇&J/C[G~p ױ`t>$u(W]I]Sz4IJ ~-;!jJSܪC$ԩ&j wiT-t<+Y>$& SAxTEs6G^OsL:…=[(F>.[TKi㉋3lF bcOc{ݹi *%<:']P} Dzw'l:x:YHi-z̦3 m=Evjc&8LCV0YpFYls.dg[oI>G1Y8ꠘĖi\KzqfE=| Eާq<>/)T2 H}5PȺ,C |f_@q/#+=HX%mS4*f|=Kpe߀{dsXroayocwwM ߓ!2;V}Dž3ԯ8k;<^d>1EB͝3(\Ox }X>\OX^όuxM@CiJr5xsyc]dPv qO}KUTd [c_~ B=hUǺSMtODՃͪv Xz9<͹n}xķoC#f'2xk6yma! sf^U,,@Zs9.ѬNPQ~2&G*oz{n=x{mxC#f /Zx340031QHI,IKI,.N-ffrq77~]6{S!̼|13.SR*OJM.)K/eH8ۣigq1i/P^#,xmϊ1 ӧ`0*+v=8v2NMQ) Z!__. z63-װz{߁=!HҸ$) N5^ZfOv6Q zU\>Q#k"drty/XTŞ89\XDS +T<gJ3jrQ5"E 7WNGc <tG#Opkhx{tidFexZ |U3\^%)Z(~U&bk7<&$Kbw!"xTDx}{onh/o޼]{of0xnS]Db72v&? B5[ ESH`8$F$ӄESIM0}B} T۲Fd8DGh2Ie5 md- q hbq=xlgb&Q*xQ|ԥ&!&ngT7p3[LCaclC$IJ"?TMaƇ_0CϤQa1a>_l*UTn\Z ԟNG:n 5j))d.(a#O[ͦ`e|W1=Ɩ&ב`Mr:s  .V]r}BuZ=i 1&JX|0MuG^L%AmAU~9UzZYH-r^&woXMNA̦+%\huĨ DbtGw yp*26O B4iI MCKZ ^W:'XTOhC|Jst.7Kh{0G 6CT%a^!II:M&'d6!1 .,l`:jH5,a ,$)\kaF2\&w$og?Uds:XX+VBF!W jjԳF*`Ƃnk<2ުjl9h"!TV4CFи82w'I !d;#c E^*ň*.%]rͮ1)XoC͏˷Fc:&M-T݂gtW*zg>[ s{-;$^Zƹ=1/ȷ Y֍YR۸O>Ѣl^- 48斀9e EE67},9~I|+}r\>h'X*&bEY/Ha=YgHWl/v/*e ^":H`<Cz<͎=і1d2H*(n| õc +RH>OxqK bo 4C`-U*5(eqۂs' )6XHj'~ \tR翅q1ӳNmxJ[ac']K\,c#r p> 5J[s9VwpBG"[yyel[xйNF^j~\/_7,"Yg/]DO TwM5,njL30 OJDs -GvkPs-wrRFuST=*"TK,M_5}m6RR-&SӪB൘N(W)TFL_,̺/((="^q0w.jCPS) E yPB\8k\@Ld dIT0e;b9/*%{\3(-""V]NX Q?tp5ypǕ酪U}W9ʋ ׁ,QXǚ5~<9fKW'f;SVxވ&1`^ tR bkKrx e+!.ahBV>m9GX̬7Eevs{q&fpxx L) 8%jKaǣ+Q}W"< \L1bXsq_ɷjӔ<Th{ækU޴)e >ENwǚ0=rjlr9[iЇ˽"FyK[8|%wcõNxoE>iA#;D {r}Y.7'mIYݒuV|MŅ|EYrz+S4whk ,-~MG ϕ8lW U|>oW/:[̓Kjw&7Mpg~>6̎n6pf]LoᎨ:/LCw:ztǷ(uƵ!mW-n|KUлee#= ]?@6*4Ip 1q^I]yk{l^:"2LbD'Y' v^.jWPE%>龲l:^u,M3X `DoF~şC@Wp &Qhtfܦ*= |8B yu%|nxH_uawI}a(<~Go_ukGo=&x[4za'Kቲzxr. *)˿p.>Qcdbl,܉>w:v}#J5N؃0x+ >@)$62H0GH<Έ#q?AaFviRgnɞE?w;P$qc~N VAg0xk쿌>M-\¡ ܽ wi-ZwHax@?$mU*DyNW=** NN%V2@_CT~s#?E#n?n ù\H!H<{"È $60å)e)CJR2!P+nBJmѨxoubt65 jk4o3w4x}T]pU޻Rפ-IIH:#-mMARB BC RMHSZ"ŵ w)*/83S{C:g7mw{=g!6 p{NZ%Ǧ">ԜE-Z)awY^eTVIE0XԐ_5JhT ō_T,/7;=G9s]hQxE4Rk0чR$̕E2Œ&;ԙpI[3}"Y~?^,"!X(YipH |T ;*-KvgHg+%Cet6i>r MLJEzzwҲ[+H/hݧaXSRььf͈W4#^^wn^'-f 9U\gpo 1.8SY,07A!GP水i`'wĊH3~t!'-l#= 9~Nk[<Ҝ%1YkC[ZW:EţdDi4WBx<4߁.xaW5,0`O; d ZXև*x 9*Ik? ,CZ>Ly53p,(k2΢=v'[=9I|'4ؽl=QH..wguۼӈPC/B N+F(cg+Nk˹>!}d}2Pư* \VP.'.b^8jS:y$PxݤbjAWTk*/p'n} pV2_!8`MqbpyJ%jZiRt+9/&x340031QHI,IKI,.N-fzm%dzI{nb.3/-a֛%U^cue}$C'e&2|7E+G~4ذSk>Q2dxW[sD>"7&NRZ8Ҧ@|$Cԙ(4(u,)O'`%ٵV{Vg;XCs~x'ɝ{ ԄS;6nx]7MPG?U=ÎB: & ʖ}v Ĝ`Nvx'YWi\N T4FLZfRI>8pp1x44ЇZnP|f>3dž&NsDqӵKNrkR˼H>6 VB`AL¤eo4QuH^e#[ Ls=VF>JŬӬ*MM+&ZtŜ", ԃQ.)C޲Weuu()=nG:K%k,~h*@e1 el$ۢYMԕz[%AHek?WF8dL3aDt Ѱ99JX]L[P?kj2NY6u4()g-mMvi8 /$D]BۜWz  n ~L6)WG8x,%, MNv795$ x%Ki94Lޘ=9\]k1Nt@i|OY", G6(l`4~ jj) ! АS\@+QrG=) ' ?'o͇QQgz 7|k*~)& (` ?R\UsA 9/i hS5Mr\ c;%cu ƨ0,Z~}x9]W~f:,Mq-{= =*]ˉecG]X2PK_[ ޾ ~ }N“ӧ'TZT$bRW@G@EyٱnGej6X>q}{z ;DcpU .qŭj 4wΠimx f8xOѫ j4\BX7^EŬ"n_ڮ6N\}Yjjd/*yٽ}ꟻ-/CJ^7pu>I'_k0/=:;n ߌѾ>Zx0=}2- wxxqcDq_fF։5sxZ [E}fO憖ǢIjYZ|dmh6Yۢ-U"> RP@DmE-(*--VTTPϙwro2fil9{99sΙ8GtlS|N7BϧqB -H(>L%xROBEC5,?ܤ=Y%H+lmڶa4: 3qCaff@+?IfuJ)eRF v()@1\bM@& |oE8h8WmUq=1h@ԩ^#hqx]w<^5\bpxĮbw0H Kl0#ChLKCBZvB'~&Ql @,ʤ*̉z0S1Ft4 )8r."m;6>$;J±l aG8~Mmi|VF~Y<HK -+`j T'AIf`(a jb r]\mfeuefˌfV ||vԃNo()d X{vѦo:{b= ԆgtcpV9 ySɜ-XN2n@^n0M"PL5*V(8_KjG9Dn]VT8>[f;V 7ųzEp:7F/7saQ*]xՠ*OBR E~콋#0Jd5ۭhIRn:r|[+$Vf@2$-} Y' [LE,N"EWp&`6,6~$JN1DﳌtguҶeHc-[8r̯w@INjf[oO I͓FJ,#UqݒG^m*GwKlz'0F0YхĒ 8=>}e52 "M9cK0qD#gNa)E XÒԼ'z z&AzPIjc;oEf6ÍqWCWX~x3,H$ ^eGMyIُf қsn۬-%ۨwwWvVЍ`9+Ul.:^V)XTOf \vGdO83z -,o^h%L[;D*TTr Vb8,ó 0` >l-Oh+B|;}@B"ŒNrp\Rb̲ mgPw:Ul>ۂV9.B> %,8dJK\Kܠ\CLYOF6 OL&2agOmԻBfwm6,4] A{{l:\3frln|ЯWܶvânu7[#%Iqv&YkJ_9(Gբq~fcY3 L,Qmb/8W'6r2HDs1߱35CٜLp86.Nߓ'yUvY3'ܸ>]x>ýhXAtbReS<^ w@K:5[ =[O(Q~q?G SHHHi$~n$~D υav_JjM0c;E쥿|f>3TXF~x弚f˾D6FN k<'XNMRd3顿sGLq'K ~[=B aĿ>D8 w:5& tQ_x*;޿=?spwW_;/}M<4 [az_jB B0V\CA*bpa O'ik\Xu@FAp04HJ_IqlҰx +Ϋ]jWm+\Gq8L/*&jZ?3 %}ؤ QjV:!=t}.fЗ!3؀L v 1,̖LAyj֩sCX+ ΞXaedFr -Cx!<A]VäkIS8⫳- 0?nƨpx{ķW@_KA=(7$1),3|ٌD&6p,-/(JM/TSpN,NM+WI'zv@S\KRK @4x;Y@VN>"6y39 tpIjAAj5CrNbq_pHjE[fjN|VQVʂTĒ ky% yIEi.9% )`Ғ<ĜҼd#!Rp`Ab%P)he%S0A ILJ́hr.D3Ji Ma^eQ׆n=x[Ȼw]FF*wxn"G|YG؞䡱 YϬPTTbaGS}&> tչO>`1`ς?׌ 84\}ʢ0PU fsF ]\\B+jjYBcF( mRXUtXpo\LRMcg*XojCi@4W3<}<߮\D-,3A3+j>ߗ'\h ,0}І/+9ef[ܔTֱUX&̇{Bǖa޹ `<1]WKTi4Qg!%9OCY& _ڃ_cx˟xDJ,R eT,`YDSQjv=xD-~ZZz~$'{lP1+f #"T*(C]iCjpJpNٷ$$a"\ 9fFMk|f+MAs`}ihH. I" g&p5ZlIW! ?"Ch~Zʈ&V[.) Ccv^O %bg;XQWKTrah{tms6@)cPϘƵZVn7wԬx{ܰ sXSBzH")mS'H=LfQe }-f5\T 2Ø2F1R٨C#9|OHa%*?\U8k5ESs&f]a6.yGA6Q]uxL}h?mGs$L2J_b &:a8@>JsD`lǂTv;0l1FYhmeKcV_X#|= x6F"_XlJB^V y?\ Y8&fֲ$Q;bE0Ѭiʹ7'">GybmUH3dS[Qv"VӝmZQ֖ 並q#[?R05=z| +3ʉ5{()UXTn24smN>o{+<$FÒ}ծߔ>ZDGqf4VuqhNURD{B,5 'hmQ,lh_LF)uDˊ= !c{- ;(3}hV_V S:L{\ 5&EɤjpLK7L.Tl,q~hcw)hsliO9q{߱r,}Id5-NT< n󸕿ĢbNL0M෇=zb-DNF"r;4,D h"idvǾeȬعycg ѫ$>6~M33NKۧd+Y܆Dۿ2m eEi+ds|(I/ט3_ʲCZ(Ndb;x@1%2#9d ];q  i",`  v @end n!x!C~C#Fr>/CMx340031QHI,IKI,.N-fX}+djŧ0!̼|13.SR*OJM.)K/e$ MobNt̲MG+xxWkpW+)zؖlKlٱW4&.! 62I+:Q*ki%Z0C mR <@k a ?3p݇ژ#{}߹ܻ"#}>{rϖ('ěJ&B?`iTC %+3y5 nV )ሶhnýZ/q"p/M\i=\(w&1@jRY%3BUdS*mw9F$Ӈb I9 u"],0!%XDI)c!AGG ` Ub6ϟtjwE:*()nm.Ѷ V_5jвNKd8TJ۵A \f*iųE )C@ ab4aɑ)9h29~^ dyd>;t/ףU=Vđfj1ˆW;Q}Zt Z€hcA @:b fDsټN[x À{-l w d'ev _<-qV>"6j/u?'@˗yNn1w.L=CU*v(FI0+Rn*\^ 󜿝֮[ zQ@/ EG>65i<^#=WoD឵nkñ278[t00oBBl~_ V%1C8@u K!1[{8"D&'<9Idd("Sb]lRu=l#sr͈2Fb#q"T"j4H'!@mg?eüG1{5Wc# Ey<gY`/H>jD_Smh}_} ᘽ~'?͒?f%V?PN3)zȪU?!C a&K£L#rϔKhQ[!aBJD}u-J)K)Ki&a eμwQ]*xs;lQXg Յ(MV)LQ ^ ݯTHZ}s+;ض\pfz+HN3"h;#j<4o:SQilb> \Xȏ؂mwGXl}J&!]..jwŞcQ)/>Y 7k7D[zsfs$:loSbeH&'lJFɚcom]z".§DLx]'nl.2F$rϢCx"I$G&ۚ٫3-6våS}zۚG?#²95d'EEN2Hf.yRkzC'3l1VUpŜ%8f(- {sw;nϋBʎ67s=PR9C_g~"NfJNRV+U}^X7?#bE"69NaQ kKht+qdtॵAϙ;l"|CR:꿊hl\WpաͥWSC֧|ݮ.:KhY:Z`]@_7&3q)dTj>6/w`s黨i5}o}Mo%||c*݀ zӼ oQ8+9!zh%LM6&[&'&Lā-nY@wB d3&]"y)j~. -9TmʂwLu1~OH uU~iWb7LKRq+=챸5^| x^x{ķwQFFۘ73NcwlxYmol~ũT8 8Nuک"ewi;ءm}ξ`Dj̞3{tP#z?DWEy:i/N"*ikZ9iwWOtA?tqkCAӠvzBN"T L4^6U2=eߕLDeI? $'gg'TX|-Z35UxOT%+? E'Sg+T3P0!T94|4F1[3D ~IM}.bѬ-5M`gA۴RK 4sIMRU('+3^@ -y8{ďz9d@W2q*k>Igul06IHO^$)~ӿ!}͒'׀+`u!T&|QDcATL!0ڻypwK'ss~ja^XRr$(Cď 37ݟ9]n?A /<.7ԡm{wչ뻛w$%O`Ph_Fi'6xQȺpq =Vc"~' KIN(VA?r,'!t (?@'O4./#C:WH 7tuZ+ vE4ȃ4WJl''H cNR,-[4pb rQs X¹@]1?R Nf,/27/O u"!vsvZ"yY,'Q;_jnx/[^J! [E_J޳Jxުl7ƿCg;qhS38cWJ%h+˰/K],a\ lDoR,fU7z|6'_km+(u`> wآ3ƊV 1-Y41*w?d AzF{!sk׾ +Cnca p~Тi :¿1rA㷩]r"}ѧpHoi8dH3E-ئ0x FCTT$#*a\L0]#tizkc&Ư@)ea0St(D(p`:Q!Mrs2 n=ࠥ;ƜJbۂI Ha EF6 [oC^gcF"Q yo{ d@d7A3჈ ÜoCL4}I((]ɷ M8aCh8j/BH>p9ڎ/#]e<YRA!/D"W-tafد6j:]E:НuZeJuYG7FWm1l16k.ŦyCLBБ) s|`Ɓ vVmooR0-h.`am`e2yV.20>"mtڅָ?YkhO1AvjdElu3Z~sαߩ`1R;w>{Jnv'*$(KEyt` -nEX`/K[c0ၑS3K< rQ݃ѾHHծX^E9ݼyZlq;\xfx c[,/aeˌAfle) eibOh͜l\bۈ2XZ%y ~$Y>2)䂑]ڏ]VJ߬g ~BYpR\Č yl>g&=îga߱} w|l.l3xB54nڠsmpnZ<OLv Яay}o%{?*Q Ol -CܲER\\]t:kT*`(&>U0pk=.j8,|T ɗD\`38VQ݋6 -NNy杹`)!" ߪ2r%t{ MybU|b]y3lß/`Bw*WX`ʯF6jYLU;5[܍18GN8oO2ޅPجVSlLx0yd.cݠx9d0A8Тz7oomr:ί]XZ8.9K8 d]xž>]֖Nu+;kY34!!v;k$Gn{503?p^+DbxP2&PCfu|W3 w2ѳU7c` Z9vV3=r@[x{a fW blʬcrfnhx={FF3&"n~x{ @dFFs/Uqxȿ!us!0ls'7OJn"xkophƅ&Uxj|}FFW3%甦NΥ )($&夆ee(qe'dք*)t/J12KR2Tk'"Lq,(, v*-)"霟_C h䳬Pl~Q2:?)+5D X(s;vbF9ro)&Τ0G~%b43~xkAǩ?+T䙈nhŃ5-Rꏰ&.NflH'˜=D(^@?@pgRDofx8ge&5EX |τE "sڢ mvcP65q!D-3tx1o>/BZ)=-?H)b#:Q ɯF=ëPlBl"`AE?Ix!&ׁE&Z;uY2̚[&m/ - hi)d^vͅ"pkb5y(!͙:wM?ʥSQzI? K4'ӧÇ/ۗeO3+ɒ ,c:33"WyTkkx{_!3M#:85'5$3?olY^ nJx9sFF{1'Fnlx;ysFF{y*n.x?{FF)[/xS sڃX #FŰ`t Q$B u꣮MXda4O3?򙟢szwbRҳp!.%cxR ;!Pw7lGO~8:S߰sAЩIVy?u)$O@G( '`x$  i;?N,˙WƓ !E2xT Bg*#8B 7J>œVt j /%ܮ׳Ps.(c޹^'Ibx% WTnE/>b Iށ),k 3x9 ;7kȨ2|?vO=s+pgLC߸M˪uGx> Dr< :獶K)Hk۝>%6zpLx< !FBֱY0 kw ӓ'm9*颕EyNcprFJx={C ȁ[t:ιGh^Y!V,s" 6-x={BH^[)Z_<:ԍb? :+x zX!F0/O-x# _4`SuLQeR,1x={O_7Zzy 7 M(BmMZì 2B1YQOD9X|*v7·?s0F-?Wd]#`tdbA@ \ߕi2;qDIoז 42[eϭ:%M˯.Eb}RD4om` `='8&_Lۧz@:z̦<ɜ{4?'`azR"[%slսߥyZ]qnѹ濓 LLrCR+J2S]S2K2myOڗ;Йjmם2lyS;jN9Wj+O^5Y$*-NXۦfP{gpdNVe'WUUyT5Mζ|H(ncYpҙ-xN`NʴVx< ;<':R1|D9X s/x={s&% [ bd.wZտ74&Ѵ g-x={ }]7xWOf=[GWXъ `x{0fUB'Hn^!T˵[= sf^n~o"@25DNĦ5`rd{ yt6/ĸOVN̴ɻ5'h lޣ %t%wx{s'fC9# ORlz: Kd7!c ntxVOQޅe]b)nCIHM4&E(PGCW0F… Wgn1fo^we+u}v`p6]].doggʇ^/`}V8bt||\:88GƋhC#n3-'Oȇā8GhsPz¸{q_Q ~S_ؙsPi~Oċo¡OD)NLOgqbМЏz:‹8o?gЧ|WkDB^*N@io ub< ӖG8iq7{N5m6WnZ'/NW&B+,=,IRI+⏛:i$<ۘ>-I2Zc,s% 6OO3zx(7p.ݰKŒs3'\痟lޞY+سٵ>XVVbq{f㹮89I8Yk=,X1U߿l]x{wC?%nyx;uk/FFͿ.x;~AmC Dv5첛_0g(dTL!ف<33P`_81B4XG GxvHmV"kx `6b-* gn-x;vHm/FFͿ0Dn0x0hb$}x[ /!us1;A\\\ 2>- /xiٰUZA#Hi*+h+%͏Xu9 n,xki0hT${n"x7o\FFX& wxkQsf^̌ 䯂75u5 n(xIm,FFͳ 1dx340031QHI,IKI,.N-fpj;jr,2DRpS6νbwb\"=N-k}d0x|@0x xUH&g6mSQޤ*P (G7i MC'^(VE ^((*/rr(7;IICeϛ_sF p4L2t7NOljN8n8דMsB251XMobsE@ilAobh!ٟ1t.ƏZMml5.Z%bJNLu4!f},Y,r(bY֪DeF;DU] a6PǴ{ml zu} ZZ[f/NU~)h/ / 9K[Q&^KOL8}{y6Isk$g<0v+I |CXI)˘ &p %Hfڡ8/8>Hf?A%AI l`~rCQ;t:F.5 %43˧&K/|*3E>54"G+AG 񕮸c_CqٯK-A #itL& st a0HҲI%Ԅ)Zxed(f|YپXql=GYUcS< ]|ܪFmn7R'S.YJ)CS3`2b4a?E}Jd4Y9bU|r zhcRd 迓^7<"7ߛp5Œ{jm9gdneyfg8|͞/U Bδ:;b3:13" O i~WqWWf/cح1o8잎^aO]GEX텩dsfmk%:76[ (i*Pm~ռ|eNj~SNn~| 4C$w26Ew,oݾOn)vb? %~x[{<)r5J3W4#E?' '&<כYE&Xt\L89.s\ ,@[cs_L/*]+za(Ljf?`ulLb+&+(۵-bӝ K;= ymqFTkA'?1䔒h\/k9 h/p ܴoƭSiOLxLY]Q"+B^Wj ۬Px @}*?YrG/gCtWT4f!d@եxMBVTY=;vt`%gg~:CBZj$>أų\"+ KF՟Ϫ) Pu]g P:unGPfQ{VgV|yc ڙs؅VΛRċӔMgeYgmlttmy!$t~D|jz񔚎RM/AM/UVh~'[Zv /Zd<:Esۦ|WLiyWJ*m%^5 9y|len4$h5@Ot$@t@2#h"ca^# :1 *p\:ik[3B!tB#T E:D$ljEhBb ͣQ1OǕdm|tZe>TkTi1K'^bl>.9r2Mg /`(S |037 tV{`r%_ Hk7󞀳׋  mjOdقL %([%ɚ϶i|HP{޵: u#Zu*9BqbMDS" VQ}Eϑ#.‹[)|Yp{N?tj59NOX\F@t=W篵i)ȷΗ)}'Y `U{JꫭQVfwovziz!e73+3Y%NGGb{ ?ݑ(#,ZC%Y"@,O&XBIB$Akhꐝ52 GJ,%>Pv@F2lP6K v5\mrgԕwG]Q={"$IdHla2L:N|$ i1pMM|\1EYKk8ZRm)xWG6%J&8W۽} Ilx15;57Gkei4KÜ6o9$WuZý`Xv/җ}Xo>,=HzKAe"1ćJ<чR$y ~Gsipөq3GFF#֎x}q)ˆt#PEs`.x2ߣ[\\p<Iж>|9 Gb0Pk5Fх@.G\Z玃6ԼutiL3a71yXF3(gXȴTSV%N۠z6(,̂,%D6[w_A o-Īz-vM;q,zN.#9""U 0)p4q&wݎR:Ё:pzeQ; t`ΫsH 'qRna7U|c{ nH7' 7، ]vsx< ok⡝r+3MaS&cM.pQ \Sd3pa7Li'/?+2rSsrhE>f4}{ Ÿ+K*[>4ggx/@b~T3ADjstE-df )șvMFkmQ jpuc=PG}߶[ŨAK8 ?_7C7Ԕ} ~R[FK̰Wu}:\?/f%rw䞞rw/Y{I^ҍ|cTqDMBMr`v.3U &$!jfEyN AaSǰTk+nppMXm"/c%Q7k212)[i4Y,VjP:kLl'D)(_3IUbeO Ul LC%t\yIy%a~vzx%%˾*K+̻Wυ"ͿPiEZ=p,W A{2h8\tWAl2כ̓",b1(aC\!4_,X2> ۍ.-eiODG*T9,b(6w @$ie!cɌsRJE1*Wv![!=oI9*K=u486[SQsR)pNt) Ra`-٧Oר%OeU4EdV' IbHRHciOJ58( ';*av8&8ZX-3(e7U ݷȰdd^g  !_'2w02pev|W5c{nb 8PLZūA_ùUgpE.C'aG@ kYXGS,K+fvT>uT/kej @[w~+S=~ʣz}N`Qdp&=s|`uj^àC0eosћK4g2>3# 2ʮى\l|oƧ0 8eTo.6Y%[ڭk\wVZ k~m0w 泉goճh/ΔINYm;;ʚ=&Muq%}Ģ)ξo+W(L Sdb9kZxxgA][PG>4.w?IIN^ÜRЏ苒P }U^vרD-~GuC+)4+U4S^A5U( 3:" }ُ'cs:/ n=bêj޴2 {iS* Lg'0}T +Zi`:>tBH'sH@hG,1TFSpVa?dBT J*tu]`E:#k'Я2^Qp7oJcG#-ߴ$ҳMxєسoU=0Lz K?ե5u0wQ:++\tctvULM3o\K0<4$V V\Ehz }B>@)~|ߢUA +*_ivNSy;ȏ&h6}zBucs 3@c/cįxbF7#~D3#~!F#Ռ33 Wy%YheJS~}sJx{CFLi'9D%8J.߶7==Mk^^SV.}BL;AȫH.{vvӪ3(ICH='(9@YI JNg4F̜:jz WB.W})T }CRMP:u z9@PRe>[c\fƥmVS(렴œ8!d$&\0`l)x,[> ,j;inxJ?n6xu[L[u{--q)wgcBCNpm݅nEP8=af8?E.ŬM_a31fO> 0/=]K'=]x:Gh17?} YΡhA9?*EI )O IQ$ԡEmSr8#H rEု}\snS{F3S"K>^D\Vzp]iF'hP?&"4"'s;jTSkj%lh0xծZ X2тPTVCe>^REuTd- n=MTP[$(w.m㥱af/ e1(Ĥ8NYu| >V-hQLZϘY9Cr.PP4VC?z \+UhvooystNfuآs_DBQ!^mא@RNIE(Ɉ,J>tiAM萣ۖoy@PJt,e}kFB ~dktrZ+"x[~8A2Mnd2vmcF4BJ<|5k$F g*{AenJ𵬖3 YKh6q%E'ZEsh(F&n!n_Hk^}*KC_HcϨBr2ʆm9NGbBVd(Ηi{Xm0ݪ-)Dc|.p۩4l-vtjsEU'CK+}~|ttNЛ }9SXn"-sw|#=Msi]λ[YC$\=py6<pa%2ۜ9Y]_a8Lk  |CbX#|a>'AGG v?aX0 71ncX!3~&k_ )E,I? icMf=+ɲ߳-X `"kVUAv CKO&@Hݡy_TfRKAj)0 J{˳e%2) .w 8P>;ior U`^ɳs:zh- ҳ]\, Έy)Bلy%\9YlƼY p|ϠJl8;3~ x340031QHI,IKI,.N-fCPxMQ e3ŷV i}Ht0TQ~RVjrI^z~Q.SԹEWMf~yE-x xUd&4GsЖ( UiIJGMmPPdw,YwgI!\"*GUDDVЖj=Q7vfg5iof -Ps_:_(~4Ƣሞ1dFB$E&+AJ i6 u8KƍQsMG1Qj)KfF)e6/8r_A=Zn!0L>29 AެMI-:11tZ@1fNOzR]ٯ:cII?.. ^`fǰL?,EX4faP.rɂhADZGWVR31Ii:ؿ4p Cz>i`<QihS5CrdORI@U~*\F*_i:FcKDHQSjhMa˪q$Z|.RSB)h:9\0 =-J SzF$t7t}k6eQ".TEj*X lЮSCO$KСt J/VJk8I?:ɐ-$FI8:F62+G;YBoз_u"tqIN X\jG:1-3˟ $RofXE:zTlMU6#ձl&VZ,k e:YBݯcq$b{ihkUю?Jf-.n#%=\\5:$v|M,65'zUʅ9^/컝9W8MɂdR ST!| e>~ڕF!&E 6r 1\i [E9=M,ouڼ6ovlL173*LKNamr5iё%(bRc9([nLQ[ރ4%OY6PJ'ûnX?'Bn/=367G7{}_j2o7O}4ڜ2oԱ[vD# $P$bnG8_ˎ^̼ΊT>_ ЇO[ּs48>Lx8:RS(c*p8|'^z/yh2lS{z_UzH`4ba5o|cv4SqQ8Ho#A1 |Z |)}Rw6$N"'-~4i;20O[_!vj e x[{GuvŶN4i(N(K%9V62XI\(VzvH\hi{v }㹿G~юZ6g̜eΌәkeG/kv~X?S>B]NJ/Ut4ۄIIg&;{Y;~@V#d0h9S6a5{N dc,CDmm)e6umq ɗrlPvKgbZLљ4TƔuTb2Lm^)uʙ*Ir'dD39\#h2<xh"Fp4u߸ӷݤ=na:edrTC>aلmkܨ=#r)TI:^Җ&i5Q7CBU!nˋRP $ѩ# } 0 5#H4 ڣQ,Ӳud']tؖ٠̔`JFbѢ/}j,UeI @L=Bf?u7C&sE&{1. CTQ7 p!Da4%lI\mdTʄ$5ub &/L= dΌ:Ds3Rf!=&䤖_^ba񭸱AP~[7Ü*VBMe8EtQBdCt|\,k0j0Gx$`t- &=xR!Øې+4B8 1ܘTB^Ѱ27?j)OJ_3o̝SD#U4z֧+"qQ8X E+iٸ}(u:}➫ע=('|i;eȁe[C /&'>'#pOp{ TX8(,>EZ W<ޕ% &퐶"7f`zES(~4J>M T 1ZyA"zOy$7vZ=oxÍmn u*ՎW bb)$O,_ ׉,Y@ B9PxH"F"*ϊzO{#goIuτ ޱ.3hs2Y.6/`[LZ %7}(0窐\3ՙ wXwq p \E\ o CSPz~O_[4ҟ(TpOҒ?|Q(=2|EC-IWk~yLS?\_i_ |:)nB$M~#B ,N#AasN$xce9P1\̇ ee 1sDUG/k1<ġfaO>RG*6;i*4 V]ͫC!I6 wJ9_ q&;^m)1uJN[ 9"x*E6jജp`yX "6ۭΚgy#d"֛ljX+V DlusJŦe6A_"bU ¤A= Fu_0{q-.i:sG~\dΠ7[cdbw; ȷa5 |uo |  |wآkR;ہrrܠ ^P{l|?|~ͱ7%)"F \9fqMF.qoaZ˓#82?FhA?A;MWFk :T0v$ױ:k&mqYj |6=CeRbR@؆wXm|w ߿`ل{u e@:1. ׂ_q>ۧޯ6 oP>{SJ o,~(wM8/-4^Bߣg6хM#/2? i߇?"͠?!TbПZk bl"]+BRm B%]x =iqr?gGmTIΤenx;}{/FFͿ1.xE6wp}f ŜW2Yy3XG6xpnuìP;I@lrPfbsKxkuUZA#Hi*+h+%YI n-xi/FFͿk8*x[{GP_KA=(7$$,3|F[0Mh!LH &OcEt/ Oəʪlg^qAjrI~Wep Z%@p5A~%E ZIE)EHF_K!$3?XAKҩ$?OA85h|bRN*DE65%UI24$ '-?ĂdW-|690e~t0fxsg V͊1Ux"@flFFs 874و_ mX}n,x;uk/FFͿ]-^j-x[|^zC2d_9,y 58s2ړqm%ϼW#D~ %E%yy%y֓q*G[srmpdduHK}7"\nxhoF>f'ZnSx{s/FFͿ02\nSx{o/FFͿY2XTxy{ f!̼b.#~yfĜԒTskBnbf^{~Q_0D׋)ESLS}q|@gOc0H#< 9mDUWv)JL !;'8*3 5"$H/(,"[#1)' G? xO? 谼X$&7'[x;˽{j̼ĜԒT̴4GY' 1xk2dCi,&Dxukd/{X&cJyl'x;w zc̼Ԣb.$v|kHkB& 1'$Esk0Pi g.P\/+.HM./*rˋSBpĤ԰rBkJ& l~%9@'ABqk+AZP \n n@uK@'0} pkh+1tda>1n$/Ps~Nin.)Od&6lN k0x]ͳAE$713O/W!3 5$șl΢_ZZ;EF=(/ة(8H/Ca>I4X&Θ"5bx[{CL{Y7 xmN0U0 NbABVr\[Wf"<O[ qII+s=>`sUip$IH㐎>$SD9)%JU)"g]YJ iv>LSR?<=sLX81By'V,edP#2̥l =5c?KI9א,䈲'̛W0c%yj!ŨU嗹g5p.}% 4Ⱥȝ,AtiÏ(v Bgk/x{ƻwd[lx˻wD&x[λgX$ٜJKJ&odcqN3rA2mY'':VsY'˳uX}Fx[AE8713O/W!3 5$X/w;cF K+x5J@C)Ń0'!H*࡭MAcZk6-^=z'*a fEk*k48=f)<.2]mwCd`>B:TJGgBBb$LFؼ=2 )b𸸛NrM 9M'buy8a={쾓xqnGs#D/ ɵ}ҠK\m}'w~tmxJg^ pK+JTçrV> }krFD8`L~0)>ѻ oTy>9L\~޻ou0##kdu ZnbL@p# O80rlLJ읝 #G``EH%2Ti ǜȃ>h? %ȸ )co~bԻ*q*z 8hnt* gA:2ke'Jm ҍ,}[җdm`_G$cQgEUtH>,*^N\`Cǘ,_Jb͙ȫ[Eٸx:SN Eo$޶§ų.XeO2(U8<# Opj'\^1᪱hx*'lw>8ky k.zv[P­'1g\3QK]_vFN 8)dң bĚ&Gy|E%|:t6F vIHgOk2 hʐƍk#Oh&5/x-Z-GP 4H*eE?`nK:ho &?$xUJ1J'jZ[ *"ztwڍf3!ԃWֽ_ǤdGё5:8rA?믵eUk0"K e1m 1W@@6jhh93*Ƕ N$]l#0VU'KU4KȨtL%mAD(ZI ۚ>=ïgsdhS ^PyӓY |rz<E+>в=A6|N+=mؚƒ_ѵ@wlaR ~)a !e>0{:~zܥ;YM˒.)w4]occEcC.ʁ/*@ҾuI#i;^ vbPͰQ49N8#n\JK.y2[\׭R9f 6JLdbG9 18V~/3& 5z, 蜬OPX_2s/p)θV D+@U^2ZfJGSDny+<50ҺQpp̽fiETtRf*˛/p^ʸ1i;d7;'uXssnHtIY5x(4̩O*[$`F UD8&AkGl3ByШs*6ӝ8rC6tE%mP&V [@cG"l5Jtv%iUϷP8M܏΄S"D:g0țZNaq ; ꫅AkwЧcY0l)f SnY$L ȓS"יN[~M$0닐C):y+! D$z0f:HxɊIN%,X^uxf@ˆČZ2Ez_HFILxoha0?Z'{䖍̪Cj@Ice MA'׸ܱ=( !/$"'~ؤXx# cVئ@+h{?kcy=j]N:P*QSŏ5ɩ.~{8Wrz}sB>X8ڲuǚvSX9 N)'=+ ipg7cxΎ&j Wx[AG|2MP x }Aq+1͡&;px:a%9y2m)x!pwlͬL '2ImbY8Ygv& i0x;Ƶy2kdOي@PW @x=Q ݻ߉fCtJJc,;ĞA(9[& ̱Qb^̖!{2v:&&4 TzGj̙"xr! 2$X0ϋS؝Z"g7 Jx[Ƽyt̼܉ӬD,M BKR C='>d123&bgk49eZx¼y#d)H&CɥI<"x¼y+&K0F3ZL.eV!x[ͼy£4 & 0zH Xmx[μyC:# F{:bx{zVjE7gKa|[Lo2$'Y)qD'kj F~RVjrB^fNf# &VԼ.Amx}e,r| \\\y)\@_%xreobqcYsbnRQfJ:``dhlv9x;rqbɾ,lޙ%(啤%&:f椤eM:KhD4KO.ḙC.#''((l~*Zx5PJ1%+"?< =h,nKm$"!`7SҴPDSo`*d&^{ L *UT}̅Zft ՛ە9\PЧsZpe.r߳]Q1,:.t@ oW\Co6C -4ᰜK㝢ܐ?$umo/B=P#QpXY q*dFsnBHH:΍h8v0Β |;R@uB`,of\gl6lyw>/o:x340031QK.+L/Je\ctM|U=KS!D+Cߢ2ht>UU㜑ꓟ`{dLon/jxo('$d1Z>iEc0<^ Dk^zNfq^NAQ~ w\ښPKBsS2sR>_飭.b*+/.IMj6@zN 4(]YW`P Q??dѱSfY5܂\\; { :U3I]%齊YEqAj^fCrUjŎis2gPl$VI\اwg|JbQQyiz@*aX\w֌\D̽IaOfTR_̏u+S?)#51%( 8]=׊>dxz!E<(5!=wVڬpT:ś+sRKJh_C\ M]NJHB rutue`TuU`{ꢓo}Z_Z 4%dNf&BԔ癭gLI}ҍ7vARA=@[UՋ$Lk]#<`'tQ+#2 /{w%x[ξ}YMIZ['+),zWygUC3ļTt6v\w_r""[M @%?475$$3?KZ,&l!\s23r ȵ|{p~.^٧}YN?MdyL 7f5Y9ܵn^˞h)in{]@L\ϼ| % ROe_|~o >I  {0.\UeGlEhS|S+Jf *)В3GEω[VLd(rBWXڣz? ]9?LF"WW}+Io?Ĭ/2yI-O{ymTnɭJîVx[ξ}Y}ߢ2ht>Ubh``fbꓟ0}nOoگ|a\KsSJK2>:̡B&jSuĆa \s23r rei\ZF_ќ8q4{[~x-.xOluvgəv<۳ 8-heqԙEyiz@J{;]5<%s/o|H]F&tVW+)4y;HGm9F}KM^?L"^$a]GMneV*Q;Ox}Rn1U%J^"!VH7 j'e  Zvx<733k{:*߀Y {_g% fds9ǿ}: Z-*k 疛B _Px%@3,B_[fh]u  iV_ L"2|(vi- Ɣ򁈔4kWv~|D3=m}T-+k jqNS&]Ⲕ*R5e -/m. Nf7Rؤ] YE&U -fԩCXt" Fp4M:m>{k|uN,Y9{Qd?Cw ;mI@.׬ =KZh\ۄ2HJ+-bۄ.l v;\m~7Rzƨ1]VU}/Ӭ\D?Yǚ:v\ZǴԡic[Ǥ14n( b!MsךYWyk5:|ТMqsf*3s/1l"O hrWWȪ[w{cȄ1i[ lH;i-N0wNIw+1vm-t <ajzW:D*_&~_Ø]Bi/0vAjhlFV֚NM-M0 m.3}i5oiShXM- ̘m w GV1gifhfjg1|kֹXkDgG;}VH8˵ +|-|mf],X6SQN[:ġ2&yg6TP#c#-yZYfzJ?9lZeCAޥ%b!GrsV[H-WW[uGG+1ƶ9CւZ}yw8]Pi;iv3;}ܿ[]grYm(689uN$t1FNȤ45raC-J&^`?hsI9\Ҝ$U|-\ZWk E⟴ntkgZ<4o{i@,1׵H\{KniBRxrTR< }-eu-Mk,}k<#YOx+2hȲjMԸKQ^ܮC?:2FOwGZZ)"H.F'wW|!F.KK!R2e xկZX&'G$[`9Q1֙R+~E3W?AƏHz[#N\|~zMMZ+mԇJAz>ٽo(a7#ծǤxnQO_Cg>NܘHMDEo4GඨG}%{/yh4ps=BAmVz6ZG~mqz7N?fG5N݅Q:\,Dk˒z*ۥ\ۥ[.,er?򓮗$Zo Lf{}+sdL=[MY}=t0XWo}dAfS]n/5הiu'Y

+g/<ZYLzE6]~=X. Tjѭ,H%2;M\LEm-S4M+Pd@ `O 73e(?jR1lVBc1qQMvmumeϱa$HKKA& z9:.%Ѻ Ov1$eVUj/Kll0`E6yyaɘͦIlpjwS1*It&d?oa@)٭lX:kV2Mݹ "LZHk5rXmjYג% 6-en26!c옮=O"!Yk!fr>2;mvG|x҇Y2D*G:P,XZ:`l6iQ+'^Z/ְZ dv0: zcc:VW#BS6n<t+3n,͠3Emd1F]M @XBY`!f]!K녌P""f^.wPfY=˿섎ƍKff:za *>>Q_:_*}Zbn_ψ?!rl %Rٟ@rn4<ʺ)YlO ?<>iDЌI&hpV2eBAa1u듬3㤶jͯ!dP,K**#/Nnv9h <-'!4b/_ $s/ÀM>(c6V#`z}S Xug:AfMiwY=WDyHFzzڐ0&%;OIqG4Wh`3_e<8|2=`3tNgO6_ SL~ET-g9;Yrq_q4e(D:Oj ba6Aj< K}kSt-hx+/_6lV<?tr&#i3m %ƍȒ3Ӵq|"n!q$6ET<ԘO:mp My셧sq*Y_529CDΖ\RҖ\*ncv~'t{!C2©N쑓#-9! k"obB!ՙ;ے7 -?zDN%"|7yj}g%Ձ_&V5ovG.tQD.Pӕӱ%;wPLIi/Ild^{QA휽y5Лc_a5V\S7:|(Q9wz7l\ڂX[]W:v6$ hA|(9dn̷p'vC@"PhvCOɳ#[pN8aFב!xJ`&r'kFh CXcFOjsBu A}yS<:ǒe 2^*'Tr!cB!G ?%/ . oYm~}t|\BeR+; t\Azل ڎ)e``),!Ҟ.,} bqqMUdl>pӜ0Df~t ~$]eӕ=NR5yV9~KM'Spw9cql˔+m&\](5ih)80iLj4oi+9[\|{ͩ'SOjBWg_ȂKyup q{y8-?AL7[F;rkJ\"s̛T P[z;Yjd⍉ HwG˔;5WX-e-6YŚ_bnS>EӰ#Ԛb {> J~LF3F SMÖ;ɡ}¿4JO(L zǃy,7+c"Xjkϸe*SDh!^y>A*]֊kv<"W03ea3< OXd7m<)g행ШoRy~"VB>*c`lhz㢚-Bc8g0GP " KО0|*6p<,%үE;˜ݸuSXL*]x6Wp+?eWIpn7)1lFk2;$[wo`)e4SL# {ǘMtO9ۘ9~Mܪ k$Ml(n-kH㡧:/2bG ~+ 8E|RɹM/@ܮ\.ޘt@^PmιEZ@ݨnk(PX`GlpϞlpDEd~)jSWs f6YB>zyw(ŻMqqK p{zt F ]" g]BIH a4-Qk!!=?w/w p2 FCMpK< .~`[hpMJ^"\D̽6)Xsy_$Ys^^4Ⱥ8 &( zϨ!^WPX !nPq/е}+%hen *:ʇ/YQeES&nA,) we3j%K92D]=F)_2 !e.5,.` C,NeP7ҙ% S|Jaٜq!A^!TʌEJ~#X<bF X 2RLSdg02ԯA'HV~ENҨxueNx+EI!e;8 מio=e{18JR[fV n"8׬u.xLgPT埣 V}S>&6 VaO ؘ79@)! ~g=JRO5m! ~v5dbne°? ;<;Ȼ<4T9ҺNe_TubJ+8\vA03"*; XϷ <9A-e'p=5Bڌ7"yC#)^[1uլv Q^| ҶT$. ZW"R !$pL~GMRQ<ɒ/aϔW~KMڪ{GBJ &c+)`Iy #{}`,^-/`wYo Ijy^X3KA*ǐjQ3Xs'^F[N:=!w/ ,eA"K:BN_%QoS ms^RXIm;!R'5;Kk"Wo9Gv( <L2Θw)&lH&gnFNܓqn7yʶ~.py9v\oakMNv4ܪqVj,X`8D/S=(݂ ե5 nL+jy HD8L%|!dc2!Z6XԵMb N!*Y V}|.2,~QzeĆ cw?K y9R.ݑh ·~5XxPZ㝗$ UVu?`@D*1ɔGIAα5(*)|ù% deUzPؽ doũ!سsm̵%#^^c!jhٴEө^@)(yӴ~7aq~r(#=FP,Ft4<1K9oZƄuOv $3JޥJT(a)G-Z~X;7_ޏ`+ ۰Aa&A5*3[OOmV8X;y}E^SL,e KYx(zl4(id[L$ok{*rDI,o*z=8Q.1} =0!t"*HX(1I%ZQB=FE͆XB,}QyND+TEO,+ 2)({42kP5 ^2jgxZ K!,>(z-ZR,XH\(~xwqBJXRF0UC8o' |չ9F v!.; Zń};ߠ;8Rl{ kDMͣ'䩏[J~Vn*ysqgqW3Ӎd^ ieUW}p`n*Ys Ptw A[hBnFOD/!`N1wR@KZ.z]2ge1@7N@?F33K  8<7D"3KPsM:§yE)ۈdUk+RdW5ښ"!SV3\AD}9S'P*Cχ~5SqIyxLh@JR|A% 䮻A2TVoAY{(mLIȂHMo+17857]|*8yS}3L֣"n(]7C}eQMwk[<χ0o#FH3I,ra n W`v [˝}i#)V18pNQ+jrL6ztėN8ܬ *b,]T7h02Dh5Im(j^ݒ&HR2oq51L 5bKNhDW(9o=m>jmMnj9lWzbDg)\@+PY`pJXoV؆ Q!zToX"v"=_ϾD{8NiXޕ VF,%Gs }\_lBƩ"rDH{^* !w}c*|rO@Hxa!EH1>6PBT Ak'_ (;T7!l Ds>mQh@FȚ{X|H0_)P>e*`Ր1!䤉ܢ{J->\zX\Ϭqz0f~|~r~kBIKqPg?n*p>RFW^hs *'.pNхϋT\e-rb8 $*^{WHQ$B^v'>5ߣ=#,Kű/2&l5_8/⤛!6e|渔nJIj/:rUQzFqg%`1rDjkl)л(y^?](PFNڒ=}&j#:؟Y٨J_k /U:^zNFDud^4˟C@0CkT-z%5)%YMf7N-43L 8Q?zOdFGJ&l1dJWpo#gXg0MH UPKt$jIg&D Cz_9 P]"\5! %ͅg975'ʁBX Jjk]"`.]SyY}*) n]]?8N,f* X("2(IuEK$S%|uv_XSZ9nQ_}fvGLMiEbc cC$7E4lʗ;СJ"| 7>45KOv]rP'^PhYwﬧA~QWQy뤷EH *-*g=LRD<򏊥 <;Goc+s9KvzXU/ބKNwdCc8U7dF,|x^4:+>6>_ԵTiJo}U/P~4Eny>TFqxT)Y*q FR)4O9Yi^侭}+! `ɠVfzfOe{F,e?ɜwSpA,0Ɉ@2}(>&h@fru%2'ՃIUjP,ψST?t"WNyQQYF>ҹN-B?abO@'N&F;åT}^#/PT@U򺮗q~⸄A59/M HdCE˹5R2J*UD#$Ybejv7\p=7+4mGB !;m %^Yb}LEhC3r-ۼ*s*vpτ)N< =ٓ8I~ab9nRǸb(bW%dZ36,*,Ec!F&$<g*aGP>2NW7H[k[)kX 2eڪY&#9ʼn%hx̽y\Y'Tr/hQ˖MkٖZݶԒՒ[UUU\ZHʾ!)H;ppNÐ!Y!203}o;U-{?w!VWη߻/hs / z9_fKJK7}/'+_v *Q{E7sK\Wv * qi-5BWAk|tt0wl\9Gėn另QXEV *UnW6kW. {: '+gWk9ם,E\!,0îa^-zaV|_ra=wWӂ ʞ^)=;;D:#Dk{b%. wlB{9}T<,35=n͇='aBɋlPqKM <4#W`l1ܨ>K?#<0 #q`),r=a>T1 pCwWC#D~>ˉ陛y 0dXv5h1H}80!4 #J @2XqkN_G]cNtF~1j?ls~AɴT%1!6ԼyyC IMy8i9x=*^oH`x/ezė>/YA6Z3,Kx(yuAXJKj0VZRտ56IZy9}"X폸*~fE|H0ɲpASm>v'> _wCM%y"G\qv(̓ !Q%3>+N( }I^ k׈z H Xfy @'nΥ|I,)0ʩ6ڙ;I$>HRs6ei @;u Yz/pKa/'2O$.()xHo]}ɡ~:oIe1PZ+&q{Z*(j!QhjX]s/{/3+rH)x]C)@H01M-eAgwf64 +a:&$SOQa92_k>i ْZy+`3 ͓ueЬBQs`ɽ>W(}RP84ҬWv ,+x<~/JKN8 qF̚<&Xu!8)ͷ;)A:l_><,9Y9R z pG>+s۾x#V"}R-OvVC`}⍭Qa= jPQC 7kDDSr&~/370;F{ D~HsH\}p+eiVX-\gV!FNeN@y%0r Z!$~ AnYGC̨o\p3.u'%9N<;El7C>A*\Qtt_CYq/7ع͇:#;?n?rѡuX43~w_“aJ%$> ^G" o_l918G';ʩ -]՚? Дj=T)P:x+pv4W_Ku H ]E*;p= RɫF331 @Yue}+9zךl;-2|X9bIF~d25fΓ,TD $NiL|2}5+~ڭj$F׻++^;_<wt\ߒN^ HTz%)Y`r3{ad{HÛyQP ZR^ qE-Msg$XjrVʅHA#r6 whqRʢ"\ 9e~$M&sNƘ¸:$tQC}*ɣ!74Niša=A TeT DHQ(2@IhQS>w+ypx[YÀGě?bpz ITp5j~q&cg2 4 taj;[ {`H%@9|0$B!1sg%k YIB@DݩU"־Q~aՙpMa獔IxdL^Ė )JI@8Ǡ?ROM@*HhV g["YQH- [sH,HZIl fY&/'u풟a *.BAƏWϽTi k ŸDBuW+k^08-:nxƐ\6:E`Dlpc~?p"FP$2HIkZٰ(ٯ8:K40BZAxn ZŹVT; /(vnE-؅ڥRZ0S*[6oDmj [>a{ĚKƅgNNΜ_Cq >n)*m0"A]*T͠ngl 6òd4'l<ێ.ܬ,0L=.':vIw8WL0ya$pΓONzAz-ԹK'&/N>*Z>kT {P ,Lq64D4vpp‚Kh'4C5Ч-)o8EoIژ 'sUW P»j[}6Vm'wW8w) X3^P qWRRxmܨ5fc8.^ZGLq-qeE/1ssxc'mV"9G?GoǟǏxw;1Q2M~|\C?J޼'5? #X3 5^: oȼ%tSKNMjMJY-GAgӛכ!{_.?zdSCy*Gl0?Sj?tsм"u^a PAۼUmx ] )c"I7ŸʐBtZ!|VzP%*Co_,􄎞h/D5Dl0HOg;r ]OqTrֈW\b,Lly‘1T?>}?H?42yγo:;Zk$"~p uz{2>@ݮ~l71464UycaztJգ5t5HӁ͒CjV"/%15cGBfdo:+Iwrl 4ҵwG>nfQ_R+d2s_pv8 N}@9̖T~en%$p=+?&W4ni幸p4Y١uAM eYmO*ĒK'L ۘ޻or͇>U|C&iVaFvdZ jߙ$GyqBmt=-z~6T1zْbj#*!%l2>H+s{sѫ#JH(}[pɦ$!m/E_e'gōQt"6͝|bZ 1pd,C3Wb$>ʧ(Ƶ+DL{I>pWĎM@XZ$pD|qm!P'^ͦrf8zMCI}%HSwPIZ Db`~d~>Uux,uHQgGǪF>ܠ?qWя =ޖ,BSW C? 6وUmLɺX&S(_tcސV1)]%Sdąz4>ȿdZoA RY>?nnI2Tg `6!4eAW~#a|?BeΊhj>ߝЍF$εO:?Ѹ:zTJ~>#{É>nɰ_mn6~41^!w8;,ݠx-9`IY#Rq T!!DH~/z1;Oh&@+ ;F11QB9YWbՄdXÄbijw&Xq3{ss#rH^C"`nk bn+tף pE]N'NTθku|G/_\LjOFGpeC>xO˼43˫3#n!"zns?g?KYx! &9jer%(&-\WB#ޒ pC@75w-ҦE`xFKaCҔ@ ^;UvDefi$Gs߇p U0)瀇OPxEg6|+e-|-I/||DcWR8SrpJqɽPǟ5}"?GHbXr{h(v%!C Dr:,S)G>֐eCVM#j.g Fك.){>c(cj4hVVTD5\8)!^DKDQD qt*B*(}H2$.8ӊp҉~%*GxQ^'PP)SF ꃩAڈ]̀SG6T AH+SAk.T"׀~KB鸥lK+Pڬ8c*U3$yoJeT O )%KDƼJ&)޷.xɷTd(mLՁ3i͎f8pt[<"H"a4H]|1szۥbcGUO& uh&;TɎ.x+,1 i~U2K7%w>=n"7~Bzڻ3b]ʂDD7Q, -9GFMwh^!k<ЉwUj 2$juޡdL)[u|Ԕ:M.?x0mr_:YSZèj}J Š^ =DF#PhP(>g8K⓮Γ4DL{'ߗfݙˢ}FIT .M9F,tMeE%ܨ)I )/S~$؉bAzXI]9)`}yglHԥCh]E'0nUX+Nɑ@6w>j+'as)g*cs[T:{ nҕ8(ź)zrF{ZEei+*T%X1;TrY5&qu]JQnqxXR6~o!F6r0N*f)qhM0RNű"&\*;sIP$QT]7 (bi$M >RP!F'KDL$ؼ˄$gi4B>Jȩ<\a q>䮉񃣉!8)))H3ⅲ. iG<6"߸J0;e q 'cK'NL!lӗ{6#1i%\˙`Sla⾣ۊYQ֌5zAyh: WnT ŤzE:3GSl2ɇQnJ-?̙&hSs*&ŨD PU7V@7evzJg*vGKq>8k&~sLڭf)4Qɉ7bz𮞘RxDêNQcMCȐ `f r; uW}dr': ,ݘd<& )1Z%QyW'ȝ  Ԭ%SqIUM[W`VHk!GF,̖:hɿ>\*<@}: {lQlHͤלQ! GVr(_F7N?C@ .Lj )rkjZ/RsE2=wҝ멥.˰ѠUĹ\wܔ4N%wU{D2J@!L=e"IG$ qrRqEqrwzm#yaUg $lLDo@kR$gD*˪ {?JI45> h(0С{2[(h.L|^jwCċ*:_>[!+>Մe;wvق>"}^#Ne1uGͶ1 ձӻEx2mw<,GRIB|t,'(A 3C| oM>; Eka)3 'dC Ң d͜rɟ=^v뺲Txt:CU6^R3u'85w\!#㳺Ԗaf$ }!80YEC˟',pP"64'83clÄd]SzYY ]C8e\~eB՜F`Ɣ-XJ%v%EJ荢ߤ+{teo"YJ ph}%]˺:!pBtGC#S!eʒPLNy5-'\XON`,RF -)_ɨ1.Ihvg}X뽯\uW2b23:0X"+_,dvti]IU s51Vi9. ; -O8X!#gp_fvl>FA)c;7`Ew #Fe6*ݤPy&=YFsU$#x˱S`RR4!YQIJj._͸%`6˗*(J4mDϟm8TwsQVeR oA TE."w4'"e"{*tbj4RvYU'O>NLԪ^Dhry@ fE^:M.ͺ DŽ #∷QRdek G2=*v6IK!x }+./_ڂΌ5[ks3"-GH9I1\$tOcv FORXٖ[`y*NӕMʹӣaԧq: OdzSk8)FCUSTO{ujX $-s5# 7^Xo6k}-mS+g2~X-B"JEeDMEcR mְUݭKpDf.f*XU~Q?c~!Y9KfT_&v6NLEOzrbBo,#Fx=wS/gg@kZ f[U% :HaRE3SC֯v7G X Pgξk)w1arx gO}ch0Fǜwuery B&2k/LwV8; }FcH^j|6zHO_"nZ}n߉?Ome9SwL1El7? :kdz(;w@twq&H./1`#BPVv1@px Ҏ,v|Ƈ@D ^hm6>}WOW}_kZ;'%~PʲxU Kc~kv8.qX5SIڨVmV*QJ]TןI[E+ihƷͲB"kNPL d\fhUxԱ#aGc!}"&N8>t=v7gISg*o|:mO]0n?iCI$$C$[ bJv& rQ.>(աs"(xQzPdl7]HSq5~e*] o^'d0# H$D yn贵%[2F媅~8,`Yk+I:>a2jSqkA\u܉s* y_]aדŝQHJ♯O; 6 "^KK NB-_K ua&#BϧmmqrdDU|\g&ZP{3;:U|DpW*K-(݄!?M0DOaUKb. a-oN;=ɗ[֕$V+,Ӑ6dE[kr[\LU2F/\{ 0lUc!l47WMb=( T ˁlqVf58)$pYiw/yn {Űyx+(8x&CO(%8*}A|W|dN%򮉸ډN7>l=@w2gJ 3\E<hWVWFUe޲2aE@ #SNp܂5\gʖI4ܛxó{VZoz$ݷ*1"b?su<jke˃; xJgՂI=ʧ;ǝ֌mǁ[l'ΞL|ٷ #$Qobo;=s^D8מA*ғ'p~$zP,љO"CUߝ0)5fRM^rdd=mX>8TuP׌/8;&g6 Qz'jK)N V|\sdM 2mÞ*k> ~E$˸;x**yOvZ\Bs! o/܌sO&: ӎ$7@l}~ālFk 1՞ܠ6!Њ]\%;x_f&uAO4'gi!+r-/nKԭJT)uP\w8Ѡoǥ.K6e6T2zZא"V\TYceA_~[]T0°XBE^D{+C[Y(TQW=Ms2[_.UQ)/#hOKC9QD{;Ig@?{u 'NM?Ϝ Gpl7<&qxnRNwwfx`VPqsY$Xy^lV=@#aO憂 RrH!qψfw, 5sA1K^-ֹ2LB9Fq2].q(#%Sp@8f+v.d´^CWAP00xTPn} h!ZZe6}f'4:!6,cŮFJq);+r I29ZgRUgY$rk(܃MU yk>x k5@$X̘4d+]Ϝ_annIRAztR*9#Z" a̴{yRl{=S *ݡ!HHpfA|M\'PE;qfRPhf.)tZ}km8ܿ 9SNaU×_3tfc&9g8F")$>26xX}q8mrӰs9tCKClU8FۄO &s@%f#NfF?E>b?j&HBش`?H\{R./q1Xy!HL-nIB5uԲ$Kt HeREٺDHH_M:xh2-^:t\0Eڀܨ,6 a0J)'t՜KI;oR+*vH]YdUFZ3ow~pHL \60{ p5_c 39y&;2ݧ΁I0FQPIC-T&ںJl 55 a`lH]'&!blx='"ix.W\<%K 8aMojpWWbKd*-լv !]owW4!쐪&&~3,— L#7l0jv7Wٕ8ssNn>Mۿt7elBnlI 1]͇z-ʌ*FC2_7Tu>8vw~ U^.h@m%ᴣŸ`>hn<_P)0*c`d>Z,Otzt67UycMRqK-(,W2!HgWَSE tWqh8iwq$m4WC_wNelVB>ʧ!^lyR:鹉 jb=c#UWyQ6\6xۡ{{f+8-1Bz@M+EPsU -ܟ~I,'`GQ&C%U~W 4Ul+6` gѽ9G ;Ku6I}o[֫sv$/R%d#LUU5'14̙E,@o1, ގm u͑u?)~ʞm<4֊qX,FF'#Clj qeo8#"z`z!̭Cs nlMQyY5]6 U :tF06) TB3CvSH.{x,p^KZ<*vtR. Basagj Mt׉}4Vu]@PXl8ׯ{2kK?欟2sYX.AN^L kX_;91"_a)Cb))[qVꈖEx+pv4çV׬=8/?՗wg5A05_ Фc Y *(ςNLyO&v?M4Htŧ85ͶTx? tk݉vJ9쌷~R|qŝ;IzREʷyQ`eɵ)`v̬qZf~-; >veR)̣ѯ HfZ*(Z:$R0Xl{*p׮J<~˅Jhig_VR<'}eϋ~E1Qv63 `CduJ-h4.xgdELP(6i^!tێ&9̢;jmC^0%eoujt(JQ+^вOԡ u*x躑 sA]##]CrgAil'=!3hqj1HE2u;aI 7. ]?4g4EIX2ȉNn6,;m|S9&J%ݦh~0S1f^wC=Iv~"|[qaJ@ojA`B4$= 9z|A>KigdꓺjJ l@a5JhȂIf T}d@fk]^@SIShATڧT:NOҨQ`Mmٰuq T4+}I}tO *Hi4 g~>™-/WMCUz)$[FA %eT$1 6T$T*o CQK6c 1+},\3>}a ŵގqqhǦ]Fk/I/ GdUDrdZd;M[jciu,]8RՆ}WGj>6V^_+/VO]O[3" N:[Vlf+bu6N0SC.SjgݘNU(UΟ ٸ(cSm0"B_%*bw*YGKАa0%ݭ ʽ XtinF"lqJcw+]6" M[ͣѷE馽}LjͶrj8I ~yEb[+{3VBB2F:R{ٌusDlGBvp >3g넧8a}Teȏ4[H^nQeQ,.3%,x5R8PPpIɣ 1_8H/y?-|1+[ĕWĔa%;*NJ ,gin"DkLXa4"y>|0ӝ! {H4R2MkJwn3*PՆôUV蚞Gp?5MU(4$?6{9$*-rܢ2wV&*QS5QTR%FF'ZI.]lp֓xh#[ O|"ݫb%]snZZBKqnj4AT雁0tesY3h3 r)}"8 R!mؘ_K~淬 5 sЅѽJ%+!UP)6#mIGB&2ڞ}SWnq1i);:<~4> P;$V߭QkSh~ғ0+ly"PV#A1&2l=~;uOr\rlN' 0UDb_NYCΓmz]C"eL5uKAaI$3acRL%O=d.1~< Tmb]yr!L#Zk>>E#4+/e`(,9>x-x#ASH|킳NN=W.q^%>=Z̬>Uoec>3tI>[)$$.a R=L@݇ս7ykMqta+_8E P"}Ҷqb, 5rXe$p$i.^kURJéL$}Cant#Q@Cꦭ/2-gKd>aFFor-H+p)TpgToV_倎|v2?L0ՊFCŭ8kN*a7xh! LẒHOψOmjD2]򹅟ABG(f%,HK!i('[l'E&CiQOx-#Q)CDUaa"W%P2$K`K. KX070cnyHbsC{-zfӨ Sq\f+ݦse6=PmL BϽK49U1 *boGh?pCpm.&@LҰC֠'CdDF5&8XP=DEڈj"ԘLU J&*K Q& fO܎{2 s~zWowa99AaeۅvI{? ;*ܼTcv2]ǖU0 ZMX϶u+nƬg`Ȣy;PWvzTyj8p|MkTV 1T Bgؘ2]Y2uֈs@Yʊ6(FbEQsO r՘Ǔ{*mE!ڢWݜ8_ @8/#%Wk;Pz2y`W/MBSya]PZrr4P£rՕW]0f:}`FAКԪ= J]VSeh#׎ۜoc _NxPF&~|AH)4 g3_\@ЧAߩ2?Sv7NpWQ*i(zK FTM}ۺhnb@P'GG3+##RIK,AY=[\ n+Y 6Ȃz@A*e.CNl4eshmtڵ~Vt!G}2Um FAdū꺳.XPEͫo/Qg"γ[JR*~;[_+Q2MD Q"\.6_oıxmNjxGNgZ\-kJAGl`g؟+Q7TۚcLwҍ-or#h"tRC͝׻ס'!3$ S)*e~ݧOX@UbՅhۗ9>Cճ|ԙLv*dB"׿ٕE` :$"MGJg=_T/_XU^eD2`k$HXSQ\C\]w욚ꢎ {da[3 c*Y_>l9:-6m\mBg˜qNo(Xn"[{ʟ{"P$,y 4I1v< Peukt 9K"EU$Y6pX+$RTǭ#;ON}_/ܑ+InS;ӍK(aXQ/Z oO?6'at,Kvr4=cX$Ա1NmTU,ؖ--#]_M7fQQ]zd~D3I4jZk;Uepf`Gdz7IڷҸJnl] +.)na޶zU+;blL. .fI._zdk{Ha6V ?./5դBcyC FJ+V_L.G"l-CHlѪ7&W2L/*+3rĮA uJ.Ǔ##3FT(Agb}Haepd#_0h>YI2~sŷ9O8s-Z `8$ Sn'oh1Ԫy-+=e67"͖J$Uh#>4QmyI)S~sl^ƣ dvNegSe-T1]eN+Tn&APWW / !:B %=ˠں3V@I (c%ښV,摔XVL0]]OOgV/2@ ]bPnSڡbTn&'۠Q՗}ON;BpmDvp84#E'b #*Ùw '2&uԔa)a5[kʹI=eީ"Ǻ]mJyZHzH(}:7Sǚ5Ŏ:+FS`H ELthjfEH,лޚ {3Y :70h[~ 9~(iU8 ^stj(jX=*`2CcWwNkYqOQG)d$Q :sٸS+:1CÁ~oHo!cl-WÈcXrl7p:2b&*iRlA o0z Ej![OVwU-tY+1+9ZhRpĐL_ oW]?fZ $^gcYBm"֎EU&G>CMS ^`mI.6nl|1-Y\q}]3`hUR*(HfmٮOT|K[vA#SPq֎)G:PxRW')?rbiel69E6 yn*n"#Ps/'|xԊ͸ *vx{SchdU)n>NCRyX2L{\qyXYRw(j?J#9kM =|yFN[F.V Kx;Z>*3o,OUJ6F 4lJȏ6g*6s2A=<,GxzRڦmBUZ@G5o1:XTwrHd KD \u0j`KI6EOGq}VƎCur};Kd\.*⪺ֳ9E#G"Jĵkch\bz]dy$cWҨ\$NՆ'UL\Bh,ݗ"ujA6=z=Ċ/#\"(¿{n+g,8e$Q:&Սvp ή-6.nV ^3E<Ӝ'V*/3AyUTgAާ@|mhJ̾!=F#ҡrv<1ЬJڍDܞz Mb/F!g/Fߊ&*^Ojn7LH S]΁+ @-xY6誻&4pR&/C?l9RA*c%/?ue*Z? lKihZe'9:4rW_v7G u[6 ԅiV[a bP9I "|"3|KqѤTIX~Icғ뽃t bbwCEF+!~r4:ym^O vjֲM4\U l88`3jRuԆ<(!r7a{Ի.θxf]<|l|lDgڮ8ۑ˭A@T ]3N+AX=ʦMٶkVp8ۄNٽJ~—4H &jsؾ<a|0=d0iIkY]mI97W$2TmP2HBZz  u&IY g*ә,IZrlޭ5hņAxGn̸rQ~ed4_[IK0Ex_m ĭ"[͟;Ҳgߊ_bYU-"$;Uj `77v^L k\L?Gb,Bu3i<\v<ߒWmښ&؂N1Ϡl#5$a kEEugiMƜIcd]v&&lF)X>n8/(|wm/O?$>X2pm@b6\uEn+z sC'푍@Y9iZWc byhn(bFg#Ȑq#k5M(*]pi̷'>snEjGXxpڐ^8omfyГ,wNjo|7bĴ @t5aK"쀕zQLՐh@:&p.fLAPx@CG}X?ZO|W_3tҰo&;;ǒm .i #<.n~o469ylĪϖ{-ք-`'TfQQauB>-ޞ=k z_"̠!hF^9HBԼgP#{ _U($*VSJeN\D>>泂QP_rqo)xpñY?rqXߐn!9R̕UCUʈ ]FGNq"m◟u)t:T[Њ@>d%yd2iqeâWY͞)s$7:-]\(-{G9;@=Vk MVv& ix!Ói/. _fc :+{`'D;`3i~۲!jo{Wwvm甊|G~Uh$Wz\brZJ:oK_v죫1ѐhH?n/S{RJM|nRխWٔe-.ݿ>KMWxISz“\|-ֿo"p,m7y?DMھ-]aoCX^oMޱuuqkx53X4M4P)}"G,"= .oiCpA*.o)L=-瓉sʼ\En(M@^F1!xTq" J-<0:FAR =Axs0D0Dn@:g^ .h-WY wu^U5 ><{0ݾ"AI0QkR4zp)^u3 ,nW3BE8Od$TTQ+a~|"fj=ic#|QO{f0Ob$/ pJE8bBJbY[J9[>x1U@ pF-2{JZ\"). .h!$mLhH @o9Ԋҷ{|Yz5&y!\2!hr'=0u=-۝b~űsq<,6U=) QUFQJI28|+rwj%t9oE ChxjmWv)t=X%L Soس=3e;eR9;cmY%L7ztn4H䌿XgI{?!(Z4 NB#Ƿ!D(!Pw /hsC@Ѱe D󎥉 o kuyD?+8P 8sw8um>uY*C<4/!^MxrGb+?, e Vj(xJ|Ym|^ҌE5/j21317-xtVixZ@@̲}*k &x{( ,V̓[qqnn&ќОL@ ,۳X3J=x]y͌!qbB'm~?Yߏa4x{y^AfMvMvF fbf fٮz . &x;pPtvfvVF fbf fʺ%]&x۲]eͮElF6W_>kI -vZ[QWdddif<}R%013o6F%]x{|YxaI0o\1y0#ILV:@asq{1#31ncmAKxۺAx O"94/YӾd #31%kX&j#Zxkfnf(Vo;[T0[SͱFuR qx(v1c >/N)05C# y8x8q]FɉfRLxU3hfη,no>wn )Ex!>k[&Xoql1x{c&hF^fXx*BMA`VrqQ8V98$^3x340031QHI,IKI,.N-fPv+N-~Trh!̼|13.SR*OJM.)K/ex>⩒}BOGun+@,x[ |Uorgh3MzmC)<=&;mlvMBpӵE:x"7"GQPTOf'3;;M5ɛw}曷͉6 /__2YPBf [Q+MQ-NB*]Z_S20 Fd8 aZJjgD-Ùx8gsR݈RII>1%KXZ:XTRA.JRl kC⮊Zb  I NRMM ui@q;bV*ٛJ2R}HHz\A1HλdvuXuq;*2)C+ bj-] ASCw8$uQRNDuAQ操5kJ&$$B4NAXZGP]`T1NQa-Bͭ%$JazRorE#jmormXj P+ PUZRΨ\2ŕ)Lj]|Xf,.$?k!)0؄,&-Zj@HphLXIe2Q GCq&c4ɲwջDIRlY>9͑L#cT\ĦI,$0hG<6c3d*{.CXlY>fŨc3,Pur2&5Gr˂\yj>v39N?s yɉ`&'ޥVR% nOsa Əg 3fw@T4$rV ] EDP@fBYdTۂb-qܨh)pJ8RdYGmmg+R B6-eՉ{ ∽BF] `SvՀV8Dw2J"DbEb߶Qe4i'/ANtI (fȱqat;{-قa:aSӦΔ- VKC;Ҥ6Yl7mq0}K1}p;+?9~Nn`?vێx؜|! <wliZjڔ35xS՟:ӟ?^uNltqv1aYXi+N3 p&`zv0|32h,lwŃfv\4&aFLTyb,a& 03 3ŀ=l(?kvߗf.6]f~0pi.3&/? w/bWx5wW_mB5w:'E_vwkdؿbޣ77v݃dl~cLO#|<9[Zv<=iH-{nqЭuĀ֗ŷVR*q? &5XWaH^Z''&Tpu Fec$% i@/zBI$sa[}L~2 ѧoQ}@BMYZ؝w%-3t~mHNp;hdF_;3'MWgr~Dd!ufh}"&JLL'qIWg#TXRj?;ž* ~!iS_ ) ~!gAt Ateã3}D`7\a^'|ӱo~uBV ߱H.{0]ǂ g?V).!TI}9{8";!]˳$~ď'O]m=ϋ J@/rRxRfN?t>UH+=>N˧,OX-~+دgW-^-\Xՙ7k-@OK-^<ۢByD =vWM} @ ;:C S:x/\M t߲Abefھ8Wm yjS_B^-:c΍f:sٓIMi}w҉(ډX)DNڂLjwD4rJ$_^cZFS٫AϾښZI|8-q%½R:8-s?L4mȈLq5^$kEn8BBD_"[VʮZ;﷽#ܜ=ߜX'v?g紦ho8gGGNuxԜuΨ> [Ay\N48mr(}X:sXMhrd9=&xNx$Gf{TŦRڶcLis:=tpK_) >g;##'I8mγs-nzqێEBUNg}T=Bqgݿ9zsr4yzz^r*Nqyrbӷg[-.$qUӅyϹSVǦVTHx(R{Q)KFrK}FsL*8ܪD tÜp/d@60Ә !g9āgvJ3Ppz:na*U &|UqQN#r*~ckPP+,6(jd19UB9b uā~;q 8MxRYI Q9A,*@.B`|Og I ^Ėx1KĘKG12`sx46@cf9 Cb ̠x%=,F5'}(Wa#*N*еZh)7aK.n@7[FhQ͍psPMFR/Cn$ Av7sIMn-:,dKF~<Hxhd;BYD?f;"xE=hAd]7;{?DSHwVwr݅=8 [ZH@ I!ZYIB SXt6ywٯ,x[VY5˼'aFKyJ^$,z㏹1Sh')ZA@ qTqfPS FTbLop)$+bKآ i붃m[QFF 2U9AޏbzWFQZ/R7QK>uUC=x1޵ƃz=U[V.;B| Trq/1֓J7뛌Ɲx)X[`L Ƕ0q%%<eܗy,z7yr.qCx"MgW0+B꾥;s~ N*DKp|gR5_N?4#׌Ӛs|RBY׈ T4vz{kgw/Z}_x{ilAu^,ncIb;t +xk6a/kW75b,p@d1͋'W L>/)TZR皒Y__49@Pdr/Ҽr}b [o#qKaɻE FL>( ԷnFNɧw 5x߫a>EX&o^"x'/.b 1$l 5xk{UksfF~bHx{Ggr͗87e޼X؞ 9$xBgk͜6\̓KD]!xF)(  )J jIBInspector.m \ IBPalette"3TxuRn@Р($- B'*!iTQ\uLbⶇRv݈3H= .\>K mf7/nmo=CP@q hSzRqB/mv^i v[_z\d赳D$*K (@@"M` JD^yj OE CZgRsBT xB($*r*g+߭A'BHYkR۶"Ib^}H-LRk`"lGcYf7{d=)* C*4<ٰWƌoTۦaq 6\ Xjs<` 0M)PLK/b+%Hq#O2!!`K&YX?M}\]NQC=7>M${wdž/,g0aEY鼱?6S'x<Q- *-EvR-panel/2-^`?*CxW&%>vX$$!R(MUJ 5u7qȓ2xJ棆Zm XFئ](z;C"Pezj Z}n 43}rS0?2HHVЂWJ=YظPhlV4|L F*CEQ*5kClɏ'ssIirqVsqN^ d3U`Ԝɻ5&k(ABt~RVjr;U5B~CJjZnNN}}̒sE&7ɉLӜGNp Yɏ&IOU$ TZ@,88(?'O륍PKȀObV(AUqG$$-Y5ZXAIJj>( SBqj (iX)䥖;S<')AiʳJJ?+`゚T_Z O(KC$O*j+ Wx:ksE>7x4}D-OnT d<`#x9`/;[&ۈL6woȶ9)f: a0LHIL}C>/#\ z\ ũ9%ya sjNNxfIFHbA5P䏱̵\\cMS'u`M+͓8<ÎWMɯm&pHO7S3FF1h$9ɭ>0m @PY5b o\*_[l>^ג39g@TGx~}8V~N5l4se|p'ǹrLk^,lqWJ-&yC#PP3&uv]l5@22K2JrR2S@Ԋos f9o!̲ĒT̼̼tԔ̒b-} yVkZ+l֊FS3ɇdeJr[!4txR_HSQԚWdMeYh4!Dsu;k)2zIp z B0R"! zKݖD9wͅ_+Vf.;؜B8j)rg5:sq4:}>(`//E(mD94,w%ZK `k:\G >'[h »-V!4g_ZٝFD iS یL4T WK?<[Va]:TnX 5;1W`b G |sG ޟyG} ĉ>!)I ~]a\Xoc?`"}vlQ}#Ǹ_pLx"C!>6{VHs"Cj+Ԩt$ {bDZWja$/JUϢTk7oiCKs$ZIŇ5/jL+ZOE'/H#s妳gIk7i2ܠl^5g8}R =z\z; `a}oq!7]i@3c |FWi"ҠM~ =c q:xɖy'W zl(x%zVt<%bx[wFFW73m^rqJVv %x{λwCY<8Rs89'{ʹj%'&gZs)( B JKJ89 J a@Ԝ<YfV)I$N\pIQf^:PM39hN& RWə\ZTWpL` `u-(qxe/c=BpIjABIBRifNHLK!71;UAM Bg$䀥rRSKRJ2Kr}2rKKSSz JBKrRtuu'1M,0x[qe/)U|:?8o6YQIq(D M,0QJ (XCV N P$;Xɑ=(Wa.%GVļMg'_О(O~!w ̗+_4zry]0:M!M I Li;[BTZn(d̏g-D{.;:jm8C̟Otd^-%y>?2]fƍi.x¶!QjlƈJ~l6wfFF5 x[{C?{O0 +# j4x%ZvG()N\[ySж<&"DM5x;vmC,dP1Րe-T<.\tˏ 1,x;vmgFӄ=qsݮtU9|s6L՘"nP1x9}TL4èalʗ[E3ZۻeX$!qKGx!DsC$6潽"dѐX~/x=6cfC[##"Wa<&7 ;HUE !q1PKx@9+TD>3"%6бMjX>nIbe<&ؓ&" ANx09TeaOq"LTMe main"xʷwɧd'eN K//HI-)IUT\`\tļdYX rϲH 6z-(,ǪɉdDVkY 8ߥ(1]$3- dr y%Ez@Q@ضtH+x˻w Knbff%L4prx340031QHI,IKI,.N-fPذ|YI]f^Z>i\|` ߘ@ևD)C'e&2?s'vYlfZv!,BPix}TMLAl-mkDbԸQ_"P"5hL۝;bL4*B2^yuhūcIĻmApd}{{|CʭK 4},rQ{</WR_{ 2馒 &i%>3 EufPmn41Q#(a_[ׂD2Nt kܪQ~֔5`DT H`d02 6ЎQIJY* Jan:T=tDV1CsZ?ՎV~umP /(MRP6 5&XR3E&X)X-`G 8GT <(-x?;K$SA e,d$-@|a< í9p҉W #T7>xݶ!Y0X#Օ&JMQ=Qݪ.74p7M1d8 [x@qH+ *=ʢʒJ VG4\wF5]_kGwN[z7aD l{r[egh:!EYRnN&XrGrQ bkovב8dgḂ5\*+qwH!w cܺɯw*AY_6͎EPvZiⱯx)Fv.:0.d >C=U;YK(GܯDJLv*˰ Z{y7DYqYAZ&P]֙_RL x340031QHI,IKI,.N-f;7oλM% 5ϼ4DRpz5ݟv4URKr]?b7cN|xp1m.xT]LUsiaIH+? uh"Cmm b˲LCw4j}DN&>L@SHj|Pkk_ekU6FK̝e-iwg7{kB. !#ROn~"l%HsB@%BBqKo&DM@"\ ]SA,sgs0\82%(falu%8ӌ2kHQ0iyT`ZF; k'qՀ.JlOE} #0vo6blvؕڕj:,H؈JOҩж)_?1sk o=s8%wͫ}49Ѽ1W:h:ahG=m"h`  & Eu1Zf:wz[wfuiꔦxTj]Ћij1'/=1)4*/Ub82e Î?Ag^vwt'O\cq-wטϯsEػkdQ*dwU3ѼlCoA;{_^HjKjva(>?@'Z:ΨE&y)F<.1&-(D&3dWlŜ+!6+sl lgؗPlQWZڍ5woS[̏w00)0n*{ LySVgR,`m13b*E?q̌z1z F%v&/>"!_xuP/cQ?_[rIpEDJ !\cce +R&b-ّ`c.j%D 3Lі1wbvI<k7v 3vۄHsK5_cu1̻aY-(ޑ=s w`UZLhV@UIfLyU޷.4pEzS$%k#Xҁ-T;æɢ4M6iKg+"_y6X_M4XxK5'+F_)1+3iIW Υ+xxxh]שE̤0KF/'3)+yq -eCK&V=>1>;5jF G"3Qs9òߝ;n=?JP;'$$z NUV=iͬ44n1/_%rxJA9MZXށhQ#QlnG"|<=`e%ڸ12g~\]~vŹ)qD)C(HG\0b67˟t m700qåP-:p*T`*c; Y% P7FqѪNl.fD9+4P]fUrA(7J M}VpxF-<:R*aA];۲crCIbXB =ToHmYdT)Z4T49SaoO Cj(٤>M@!Ve <7:Wv5JxMJAm2H0EMXJrd:3  !/` by;gdS,fKh4I:j۲/m3/Zͧ?lDt \ye4`fHK|;c)gJ FpJرBk*ȹ~<Ț$-<0U݋#]l+B#炧{M(|ko? { JZw6OxB\^h_!x$Ih/H݄<JE,9iCdE@ۣ -.x!dz%kZ27ᐽj2x_ /x$IhmF jZ++oQ>-xxePo Z^Et?5wzy8iDͯV tM^D9=ĮTwd4ȹh!C^i)&":^]&x}GGjykn-خ! Q5<xo^ci˷p5N ."E9#mYp[k?[^Lhg7@gzK}ϧ&! tUר·аy۳[Tm2 ~x`h) rGpؠ=t'L)"ˌדy%mOvtŝ8 .ųE̚eL/+b$vB O&iwђs]|OUJҕ/ͫ՟@S w@I )VCJ|-x.l,eOK@op&" ĠFűwmainkP "l;x[ ShC?̝Y'hLdELd @&`=dUӪllғk*'gSTTz, 1ػS#cx)NhKnbff_6f>Zxr]eSĢ̼t`Ԝt{͏YV+h+p)T++(eo(0)B!X! (2O+y?&Wo'xTKOQVTt H %|#Ns[! w.ܝ;MKƍqcݺp`w#63;w9~f==U,]J`9x``JǷ5IbZϲw!"iJ}uX K 'HACE%(?Wʔb<'K+%tTmPTtsa`ɢEm$"rN*UX('5lݥ2@B|>D d34ma:P%Q3@?7/kHė&FPx:TW( NJ-.*DA[S<ګJLDS΋E-NjKے$ -C2%6d_13mۑO;ěuܽresH(ѡvc2ͦ{{O;;- MYw|̥Ӕ :*Kg,Obs3uZF v}]un[#؏|DR6kz(=uN?*[-Xb"Rw˔s2?*ֿ4cPvD.E: l;Xz`W$[k11AFo M~u(+ٖ~$+kLx{w)@E\tx{glrybQ^f^_hqIjBRi,QY 97;?f)$x340031QHI,IKI,.N-fUu]F9A[ e3ŷV i}Ht0TQ~RVjrI^z~Q.C<7+3ߘ'W=Ԓo/S,Lx} TUǿ7 280:G<9vQ eEp M-efaji]Ql15LLӲ Ҵ8{W*pLv :Ipl'MV,$GŸ}4 il Q}]v%r-c7uCT> }ɺXvS 22g(uq|^ilG_!3!g.6*&YoL0T+`51= Y`96K0jaL a,).F4d5tڞ̳ԋR8h/"]&ڌ+Q&,Lv.Qڌ:^2IR?)eЕЕ`sk53)5O{X˰E(l~c7 j05nwUʟtoQE ,:Yw )?D|K5<"!x8n9UR?~KcA#ϡ v3ФP ƈ%ezl4l}zhH#=Ic~ǔTcaih( jvH_+^VSDoAÛBAv[ Wa63imdtޕ{P/ZLU4Y=Q[5 ף&v+XK1(0?&/D;%@GtJŒs+٧( jc,E砋^e_>i8AڴiLO[!%.qڸ|rHs&b񸼘/zz26Md+hۍrGB_[s_~צg[x~ x"|U Ce.P2n\\|Fz=֐01EO&1pʣ 0:-[=]Ӎ J]l Uĭvܭu_ZU}+:W93c#CI ΊG*г%p8)W|hd&ǔ7 wӋ)KJКƎ?`IiٕEӫ+xk]ve G0ku?9\DrqeArWÒXsuuЩeEyUz#8pJ D 6F [D W /\KƵd0 )DRl^2r=TR|(Ly0s ؁ 0Cs0bFWx[*;9A,r|‚a8`r:H#׳6"8 DgәKpX󊁣4FVr8AE@FpSP1 b D&X~{='ӎi9,s?uo,q$˲v *w VƇ'6x ި-VWeI y{h}mQHlL6;dy zl:-! }zhj&nu[#HӨeJ>W->76ʲ#W a8oEX*/Q-l/?u୾|oQ1G/3jW '=s s\y0A&LA&䰶@Z, qEu,Xj?IoN]P}ڈ^etr׷7tӿ!uC*Z67m1++f{p],7[6-r8đ#%mqA<n H,#EvCpe2DqD/1?'Iͭy*c#bh9Sz8N ݛ󨒇gsQ k ^$W(4pOkVr:5W5x=͍cDgM{Γ5%Țbl'D,O3Erzy{{X5@:HuxN BۜLH=J+W~޿ zZJ x340031QHI,IKI,.N-f8-ӧyl"Kg&nI1g]7yvPEIY%zE j.RF_\2PVV C-xWTUϹ0 @f0  3d @=˴H6^;~j}ő w}콿g}9zG7\λpyyK/c5̦]UcXМS#Hihn`9e xn:CK8<^boh8TaN7z6Z-7'B% ~˳<볶 nS+NjL'akfp]T"%F+UŽnkJ'#kQ(c1E١w:ӋA:TL7s 7[yPRۡbroٰPju4ys4N^Ew|4i%K=g֞+7dQ<2j#&kpU^ r/ ɺY?m`[X Θ ˗ཎECL麐p9M++\ir1 J8׺M96;2< <4./s0L>W3)Q,ȓ]^jήvY.?* KᚩBc< ێ68ʭ\`dZm>#5>6kՒۑB<ʃ).Kؙ@F (mq'jQ/N%FM8;%s+aݩ[v)eD f*vI[n0e L &B~9.xؙZȂ՚Hl4=w)LKH&M2*(ZBL!nLV9O!3؜ y&k~K3]l%nX{fִ~>ӵߚo)b;uftBlQcs v@_ҫŦ9$[y|;Y97b['/ 7T85WdjӳkiuS QWL/as"+}vQBna%S )mdZ[E VX"$^)r y-M)e\H9c|SQ_Oi'D%Ԩw~r' ,N}uO=.:ܱtҢ( YO/K.Q^wSeA@]A( [[Q>LV4QQS*v8H/E f3~ߏJE} M˃~H1*}7{r"tv A-"!|L QOF%}F4&s/(Z-NݑȤ`mBi/ie?yO 8 _m8I$Qo(N#&{e1 ? #Gm? 8"gZKx340031QHI,IKI,.N-fn^ZFOMH8I]f^Z>ì7qKE8ʾɳ.H*OJM.)K/eg\cm0 x}VYlTU>gsgsoδӽ,= Ul;4Vu)e šZ˃׈$*bQR7D`A|1cbbbϽ3eiM;߾N93v-hk1/׉ۙCuP)BU=0;=5;31.\1042orWzœ< 7d%r/z62fS`ʇ=90333~{!̥D#Mg̠^~31;Yp@svFnde@Йm4T?e4!n4PQ_ ,j K>/2Hr_̯M@)GᆣBlc!5D-AI6( .xSVE*@fzt-wL\uXVekvgܭ0t 5>m ;Q8)4)l nGl6OA$gI zkmB@rwÔwwOb̂Ú|o >hdkCߟժ `unbr86oEq  s+($ qt78B,!4|xfr`>E·[ TlGʦ; }hN*6͠MnWr!AV;k)1} ƀHL9_*oȁ6d-~&3eJ7 p~j-|G萉ĵĖ.KYΕ%?XT$/̱)iGIwDG ,nNg+!5K.e,$^/({] ebR/p-Ma%!J[Ծ[K~JTk;]/FOxk~$a,wsqq9d$dq)hx:'e&8d5t4@ 2ҵ42 E9~\\ E%Ey JYXj'gU*,,Xqx$ 5=̔jͯG,^"HOr4x; 6LK;ʶȪjJfҭD7cKpH[gl#tIxW |4J@ȍO!z1 o{O kb羙I$ fx![n[kqE?#z%rex> L5ɭS 5+ 17=4Kma ?#Lx %iA"-qa).x{wHAƧl#o[nǦ4كm> 0x{wK|Irmʗ!df/ -x\ r*L ԛZ#W5IՇ &mtY]U] v=kcmҳX^j~'jx. ?n,BX"zU a'/main>"szxwoC?Xr36װ|afefxuJ@Ʃ ֓ł`.h[+/l̈́z'q"-eo~mؙYGIzޘjGo&2izaμ8;Yk^Q}coS#( t#Xì7qKE8ʾɳ.H*OJM.)K/eP.|ϱ7-s,S3vkxiCRFeIΰxYwG]_c;-;*iڲMK&v-m,٫GW@ O7O>'ßGYv%E `ޝ{}NVU0l wuZvU'>0L*P2mƘl0Y6?POgji˅S( {&u 31v@D#I.H2$Q[b5J*hz?1,\ td킹˟X,eV+RN(H:-X<:dx%0OQ˜}zH{mScl i< kzЯ Bi eOX##FȀIWUMlF)OTM`Po- clT**@i,G@2l,˳uv݅~[A!*e8j*]"K\z.rTaا7ƌxc8*vI?&PTB2\ef"# c6S(ʻfbUHYF5*Ti!vPiPMŬfCu$SpD.o2,28 vzp0n`܎{Q"5RP }aLZ_ľ%=Kdmưk,0)Ph,tA%⎴ m f۔OBaoI$ ~zxpNpZpϴbr l;FK?SNQ<ŸO!as? ;!jp œ`p)e]bjƬ6j"[jRni{FV? Y>bi\bO824Xo31j2*XvF>#ȗ=Yji?60\ Ç8 sY)V3̇_h#HZ=C$&#;Y@`A3SI2JgF2#kGKR~ >gs>(P|~RMrh.n ;l\),?M3BYYT#eXMܭե:@xYR=(| bwoia~vknZ}]oR.b!,!| Cx1I}EŊR#ܧnVBUnf=VUA7\1h;_zk j<"F6|ܛraGP6|>.v%ytO*Z>cX,*/6ƁU>LfSUz*ƳJW&Fгi&4lϽZ{s&[8iRhA[4[[2GGRnK1\ 3<7zsb~\Ώk|f6w7No6R?s&`:)[L"Px.wZ %|e.ɡy&hL}ޘSo|{xx{0^i5ȊY9?K#6yUj#I~Tb#&?61q&uf8}c<2QOEEUW8E1<^3/zXwK wԜd*}[=yʽ\s :߉Rk5};xMwv{}>jR]K̇eV1*SYkVDo (zbW @qUqNCi|r8-fBexYG2s'AUHgL",LQ=4*7aW?&8z ?)5!yBGY;$w|Q% JA _%?| }y+*yj6|C)rł%Ye׸xo~׽Y8|QoN6޿_{{+›B֔\qJnoƷ;+)Go.Ɇ IR҄F=.#d6}:.\J:HRA9]#Րp)[Ǭ'Wq yx+p%LkhC״{@ r+_P֏96':nIC"VC\Ǝ5?\u?E*©!ϑ/sꗨ!zXȌI1 U&y911 WHEP1> H1wq3ϻ+&k&xftv|.K\,R*̘6i(mR!j^ifbDa6?"F=!=fhLTB HҠ`/ӵcZgO9"HrxM0a7)VouFHw  5>@Q5%EsAKKEc}F(|Od'> Vi;c2|q aU8'B_4>lޓMIrsGN j7I%BIMM[HYB LQE`QT++))]u lyvYܙ@DKD)2A9>jPv Y`Z*{n:{,84 .l\9RI՛5p oPJ\0D˜jj115EPZjeJ1 x8̔Bip‡z*xGw#ՠxl8>w%?x vzFt&c_o ؋200p1%+en~(gr gVeO/9 KXZ!_ZS~K6F<&oer<0y C H$'szUeR3I800qgbN3L'ɳ%`H&3  | hu<9Ue&K1lvad09Z h2J0MvضZ1H1 yBVQdgɌrb'Ƀ. zniNIfANBqjNjrIfyQ˙@p\a 1%A4C|TQ19?47Š@AJYLo**wc *~jl˓/ O ;&l/-x[UiɁ"߳<+.I,LV .)KW quP,IUkrgsbByBbNN~BqIiAfB^inRjQBNfv(C䗜&N6fL-堤k0ywHG^-dT+* RRL2SRJJx2&ɚWj4Kfld>}|^ o1krqN/(7ِ_y3 ~\$uK<(Ԕ{.ₜL?e @x{pJ~ls%'ocV|ٔ%54}2k]KO1T<ה̒"+Ԝ4.NI%&Z)DZs!&^q-͛eUOn+~-ffuHKQ3@ x;%@~C0s[Qb^vNfBpIQjj[fZI[N~~S~qI~Bh>rf^rNiJg^IjQZbrSifNJjRVjrcJJfIf~^^zfw$MEE F@QfYbI*P.ayI &of\-y:17D9 Wx{tq fWDVqĢ̼t̲ĒT{Kٗ2#$C]JSJӋ6{q+1ܜ f¤CBqyfIrz.͛%66-IiAF͟ekAjx{jlC5(8Լ"ԜO J V!3$,145VaA^y>6.:.qUlFx[h6lC8!x:y"fOǂ}aǥS`WZTZ.|fi6(8%ܰr+(Lb ac1@BfFtqjNBJ~rinj^ Hw,XvDBQjIiQ"BJPݩ9ũ`\V0Ln꒚T>y+u_c_~s-P< (eN%t*\X&xMdTGT\)!$4m>)%)IY%k3㑖1H[%x{|6yC좜9% M48$Yc) /QWȮ9Y[Vjo*kKxEJ#AJK U;ɴi۟(aDhj-Tps \ f90F 8;+' kEe>K,ؒ‚jg:RQ;U< Xt%/>(O^\bp3hi*RA۫s v ?%d<Matrix *optionO#warning should be 7gx340031QHI,IKI,.N-fL8~4\ i["d.3/-@.EzoLLC˔TRKrw;eUO,D>ݭ+k xȼ!qdFex xUMH;RZ7A[nPhC7m$YG؝4V@DXV@DgQKDT#Dw{Ioef\6% iT?SX3( '30}U8*fxMZsPLN6dW:FcNyIysX|k.;:#|x9 ^*b#jnbjӃ"3_CX8ñAƀI[ ɧc0s&Dl&(Ⲷoh 0JUx74X8Qi֝b|@32s |>2U#PvP/%qNJ LʢX4m`v+p 53uLm\a%ZP=mb.Lp LJ CåtR.Efj~2ˈ>j{9ՂX-ѳ2cjTp,́'6 $Zgd|B'Ԑݺ|Zh] Nҡ5\&NM5M!`Npa2_lf7Fu !\*l'A<7qʫnj O6 O9T9)jP婖cZkYvmv3 ԎLlYrl9 DY̠&S).cr Y?#CQ呂d&ff (MgxCCCnIr6$O(&<1gٕD{s:^ iPDsZ(o% .8 S/~Ah.9wX'+F' pR X\q-G<,em0P]IU] Єޤ[LKb 9|HqGw~dYk@QQMaU5dVF"ZNY-H7(xg)N͙doeMJlB V1؃H)`5+"<<<,n0XX_ǘ,rJ|; ^^hpxbdr$\>W};FǪ <^<^jxqLL;3Xk.kHz1v+HJ3RS%Unf=FӇ3T5"~–U2*Jg@j4>""ڤ")0{ @j4"妤V_%%SpځY(Kb.zJ%we`ye]KJ| v8@{eT drCqEiɢ |$GhC}Ǭ*Oy/g潼(6űYX66%[ l90m$de"ɔjU'ù)9ѕH!/1%֞+O3_>O|z\e2#F4H `'U {\{}c2{'9=}PM{X0A5eWV<`d۽, 6|jReϦAwCp\IU`>MUb|0SG@r` =1aZ"Sq%b4[KN0l%˔_v 5KS4#!/sc+ftp΍tDéNY{)GMJNdS vGøN;NSO-:ZiLi5dO 2r x&jx46[ϲpG9ORw2,wŲ!p]Rc3a.o^}+_J}I::.j/\:l +6+< qep.F"bi tc6~lNG7LqwA]_,*X<$Τ;F6Z6*Bu[Wo=цBS@~԰9bد{֦ۃuw[lMk`S's뻨eFafvTԇ8AaZV:k'_x•iaYq,Orm,-<Ŵ$묧YLvz47QvͥMs߇]8+U&+UB0Qkd}嘷>"Ył\,G6q ir:M5jJJ|@\zU/GVU_9ʿ ft!MfCAE%{N_s϶xZ0Ο MP 6А0ԧsZ|(h;3e{;8ylBuyѹ͋lyv_79uzNORI;}Uv^`_>;?8_᡼M{+?O!,n0JQEQ^B2ڈCLZ,aVR#m䐧jy ʩB?b*OF) )h |rزa#k}h-H_IugUN%Gk]>CCUp =ճh~v6}KE=(gd$36 %Ţn݅Vh=0D̰6G+buWr &zMʼn$Ēp2$r(g`X9l6h5<<>h+L!ƾ  Ǒ4H}L#2Pw^Z>ӶX3%E7h3IX|-e$X,6 I82/d6m3E'E. Xlilko.g$e _ \ȧ>fl IbDSEյ D X—jlmˠY_Qm Vgbu@g%u mL Ύa) /d`o^xg m85tߐ-]IY%YrCP%6:OPTB&g0 ]Fm6w1Lxk8:KbDҔdĢTrF*Wx[μy#3P|kP!Wp F{_ 3x[μy'#d^FwP'_O?0נ`O?[ x[ξ}Y}7J8qWf75l 540031QpHKOOgXbo5vf,@ R蓙7aɁW#r6sk1_7IL&6.9M6dj;`ַ#<#70UM.}pv&C+OؠR{ydJEn1^_Ï+[1x;s&F1Ff u4'1je))$+Zqq)((h)8&3Rr2tK@̔Լ̴Ԣb<ĤԲbk.&~n{xs&F,*+lxkfnf(b^jumFu, $xt .qON\<͝Bw=F Qx# 3b[i>ϡ.sNID}x340031QHI,IKI,.N-fqJoUf9b.3/-_[imY*MfU>U\R_pcĬywΓXtI.Գ8x}Sn0 }|A>d)2ؒbHARf#mCkwsDԽPet@<,vqTGCN-_WJ^vh$aO9]P$$\ZD{7kWzCy#ߣk<{p}ZZoإz[ 0hCmd6P#x?{p!4@ҙly`Wǣ=h'ﱥ/&!B:{';hRHS]+OQp;1nREgԱ ۠%%UZm6~]MƗO(ϭmepy" Q7Dph ʼnr.  WʕzH$=2m2*kn_>u[i9,mxqsRDq_fF=\ xy|\UiڦKҽR(w"/lC 6̄IEADQ,(( VPXEQ "_wtڛW*/;lvV4T8{` :t** zhʯ9ír <xXU*W O2eCyEȠ$%-.tjY|X^Q'NS(aSm¶.` E{q0ޥmom=B7:- =f67- |6$AiC [iKhm[ `uA`!XnT Uxg|r7TW<3-j),"vKC6GiX|J"`~i*ڊ 8U :|&٣qC q|Ux v\%\}'C!눮mRrT[s<'/'x6X7PW)Dm]6RMj pLs՚R&*<½&+v(׆Jp>A_VMM_H bi%k/Yo~xV ͍POn Q`f)/oa,p 8XїbNDp@RjJeK6Q5T` U"U%!;3*G+y)1_ooOz _!|f_F7\j7c oV_ ^-yѮ rihP5tЕm 3Y+&ۃ-4n;;½33[V)t-=H#[. &b#!bI7u$o {m t<_ܭ(篡 |_H̛eq%@?X! wr_ ]>Deö 7+o!G®O=mGvhK/ܠ4]!Vr`a0mrW {MmĨ7%'pp;9T)r5W1t"6X ;: U-\b;`e^R,3؞m( #/RYS~I]rpwpb`!n~58FMP*kA`=(x^B̵5]%|3tMC{!{?ng!_4o?HC4$;c:бf4.voV!|f9\]0V;A~(%#Վ}T ~~`? Lj>'XzX? ej4P,= B<8Y9NGT[E ~ 10G]X*t΢ q)>=”/oK:t9Oi-SC%sQj4ۑm!yB68u6M=Y9'0YGR3&!u9CH 7*g!/'3OߠS8D w*!q81ެ"_ zr$Hl "S!R($g=цjJ92NRr4*IFoTN/$ֻs[3*HqA!\W6Nr"/QE";S$8ER_Nҗ))Ҙ,8EsA&[=dDOIwe"I+ E]|Ax薷s2e!ȵ] "R@A$C$1$7r ƛD "3ŽqlQgLķ0NhdsbVIU$m"՜"9EӕwpY9pE9iSdr-T)IL҃E^7z%94p)!bȔ28Dv#yC$gq47s$r "汶'޼4ȴq^R(f$тzq|JG/)4^y`L=~q4ZO!M?yq/4b1e4úgXHSrVXH;8H\ߥϳ-$f!fP{'Il$VΗ8Ewqޫ/3Cʾp W߭G/F(k E~4ɮQʩm-r!3ezqd7D =@F~AcOb%mKڃӂ>yI@=xIŴ弤I%{&dѵ>4xpr4c"?dd0%1΋Ͳ$pg!)4? ql?AYd'9ٍ%0Mf/)8tڌg(if.9)3lA>)sl ˓D<1y[NE{VE}TULRuCʜpf,$9͎_YH "sBM=$Z3攆6V/ro INjAc21{Wܙٚew*#ʈIIEM02b҅BpԬ(+qXGuX?1y vK*&r솈V'&qv,$IOL ؞SYHh ~,$MOL ^! 71S`a_04 V,N%uӐXs8oGF.6DsLÓX1 ץhl?! ObqWc\x(G£A`NhxXE 5ct1x'8,c\Q(E9;!x,.FwR,\`qY,d\$8ytIHw,CbY02\FwnVƹҳX̸Ydtiꄅd4zgzѷ1b!W9iEb8Ҝک$:H1ӊ4:0 TbV02< TbV N+CuZq&:`dx.aE'"`dx.VXE `Ndx.O k8)V2NhhıNAd#:sXÕ8)F8qPCb Ha%.TG8qPBSJ(N987+bIJs[AsuKb]JlX5C?77)jw*Q{yJQ.w+ᩏ#{}>죭: {=}!㭝}>نEؗ>a/Vخaϵ6󬝇}/}/} u^v vڃ3־.>ƿ;JdWaIdv]{w^m9`#ٗ^Ody He7#oV&LOd^N@d/Yk_9JlG ;kWh^a#v5U~;nk־9~'{} {=iHuc־v Z{ݶzqǷ zM3Jڷx4 qMF!+ 'V4ݾ@tXێl>Y bU ېwm;6qMJ|TG!m16i-G 1~y _̙3Qؼo;hn - "' 2N_ n PeM|*8}tIOCx6?\eU=Lbbcv/B @!=&6kh]x?'c 4o`PMEڸA0ꇃ!U;g Z]Q}/)>T,|h'|Ӎ#+&&~8v:X=3qǐ4ۮmP@G~F`EU\AAnB'Ǝϡ>Pk;(G6G s EsŦB>1xxeW7aj$G5f{A&诃?do ~2<0M=;vR<Q6or C![)|Gag??ğǦB=H`?dkga?m~/6W./]Կ!h;?H T42fDף {es57Xo yF>oj(Wxl,h`t{hEM=U*Y[R=d9DŽb476es+ɦXDLmCEHh{Ҡ_JAĈ[qsFM.$*:O֟fiqi6\CB%o΅x"N3#9pDLy<CGC~c=p(Ա48`h[`n}jA^1hjߤ|=O{  ݀9=D@ *z?-Bƶ)M=J3a}hf;ʘ()Yf|xGg '_X҉pƑ̮O*!]4,ĚcJkc2d;No0yJ3` V3#;8K?Q0@y~F'O1[eL E-!OX/UUŮdOS-9GUZ*rWR(M %wG/p@BD# H~ vW'ڕG䖅r HMz"P.o1`3F(πC X)8ƀyFBzvS6ITz[(/B)7 j,E(C5eGDCb 9i,KHJ.!OV(5OVY6)%0?8]'-r ejfev>݋PW qٸ|q;BhsG|4|v՝)&䧣+_pRXx1i' Y%yf]E%Ey ~.ɥy%y%E99E E) ɥEE@!TnɳN-Z}LWlfe)#7YFP$4NyskUmԲb.0rqu vC$6wEQͅ"78xvW}ﰝ=Ϯ1>JZN矡_hnbvjZfN*é7fZ?ɟÑkO :#uMu%P::وJ}iuv+0Ȣbk{v2K!YOm~(rgg.xkuXqy=D4(.XrOOsD>$O`0d>c|,tҧy79>(%?4759?(?''H/M9- t]_O.CҖcGnXƾZ6gr>XeB¡*&[pvE}g9,r"_wٰYm>9"z ln"ϧM ?`@떀ɻ6hlX\lo456Nn`z엜+~4 |~rҺ_?Yk΃3w`ޗ|c b yN?Jyqa1l&rJoVefx[5>ǔ'7r uLMOLZ$s6SD!r Ӗʪ5YͪK7L67r1,tPV;& %gY&r'橴fJZnкοԊ]_4yBo? `~~iy1O putGY h.ۍY^'nfUL뒇Taxۮء>f>5L80meex3[%N_0 9oxc`C\CK4"xx?$mn$dif([document removeConnep_ ) {0ݳ֐Q Oxm M  @Copr actions #r outletsC!T%?2+&  && superClass != nil Ѭ[wS ;\ x[zyM S Y+'og2%Bs_flQ@A((O!9'8x;u͵4!Tx[~e -V)y y9\ ~%Ey (@(4l[3O;cHmL9Mnў0uE䌙%C%';M>".Nx/`iFFgEr2sRRӊ}S6 3sgsn߼^(WJxpob'HLPJ\qsD  .x;s lEey IY% Z\\ZZ\ Z %E% % peEɩz\ e) IypL/g܄Լ.bk5&S,>9AEb" GErӪuA!x{9yC1 gHjnANbIj/6 e3O<3%(( ȚKA!3=/39?$13/HG/?)+5N!&!w-kBIF*BL!J!8?9haByfIPQfBJ~rinj^>=v&nN<bCrp|T<Ԕ̼̒t= RdOy#A^~Sx!7\;QF*x; xTչ I YɾIHf!!(C*$!:0!#aLbD XZ7V(SMXuj[n"Vmm|,Ͽ9'{^N}؁38:H_7ꎈ|8EX z[#Tf󌛍#p@X7A`XfJ)IьS@Q^K:}Iw^1l;wKE/ ;ܽ~ f3/~%b]]kᶂŐ\Vvd򙂵•pn..juUT;Be`*R3\p" ~UQ]`ʦ_>wh1{D$vY=Ot{ פ`4wA K|RR#B4N!F9A)>5P!,Tn,-̭Mdp(,2Er|^ÌF7 a ʃؼRW^D!h41c>(wF4p >ηǺ=+fñ^T/ۖm F\u ԕ=:\V \^ S0"J/!k[`A,n+/c|R5dg=;Q:' RG/+ z'"$`o~U]rοp u8VhbuuȔ}/e[ŀNr *C{ EE[ 4"r &?q!{>j9 Kd  İ0qG R8i5w DW88Bebf^x|sY 3M1ڬX5_ nB%pdo2| x୾uS&M֜KW2Xd+߮mJ"ېWOld!*d%$zzLl#01{[ <o,hŘ@0.Hi.q] *LclLosjB ].FZ Th "!~xZ^%wvUʪFUaGE?߀MPAOB  C-vUp[t}{݌ vA)Z;θ"C^U1ےy^܉JJ 6٣>zu,&i=3+MĊY&<5v V):HͅDG'*d82`t?*L-p/e|!.$Ddž {!{.2B^-x>z uMD *{v˵8$2Sq4S0w`N f:pf@EK*;2簝h .%1 4;1b bD  ~0( nSO*dYc3TXl7h/n5mOfP틈#:"hʛ?Dܺ)![_06D:3 7jh&aV]$GnSA.Q"*j\. 7y*/JE?Mutל =핹3̼"m jTvJiMg> *O\7Ղu>E~y~*+zݰTo,[8-oHf\>[ ehq^q@ Oa7)z} MBU-WvZ/Cօn8nwyPߖK *sz8ѶjߝY ;3".&񋎖TPY,( EVk%Afl0F4b7nX#>1W'20*fǀNg)܎(kvh%%qfi#0i/UL@2'4jV@ 0QPyhwGu&49Sq|#!qO/Y8٬3J_?\o⼐YyWq7*S)_.hSҦI7w*q,Q9I$.̑`Ng>[SG5vW}i`s*ٙw΀4̎eȨċWG);^~7c;% &p0$L}=>$X'âg)nGHJJw=;;eݏf9"Z8%B!f7ny&4 #AOoZB򣹻-+yEqcz'Ǒtߗ7BwƣIJχ.{S<npx ْ3O儒xzF:|sPlr/Ji#:LDBfj W60Vd'$/G>EX#aq W 4~>2)TVGErhaYf~a K8||cQ >zg57P5wCcږ'99YH#3J񋊁{F)NO&le%-DcNj)h= )(LuvNH,rŅ5 e߉LrDZhT?+13!<Q")w^xkDȬxAә*YZ?< $rnwzGF(e\";3\: b$&<,'񀗯KJqÄ7l\=1څ,j㷿(Na1 u-Kqm'SƴF:K1"  mD d?/݊qu̗}E(m*dTm[{ Q3\~=q& ?i8W|Jc|jDخkдbkѴb]YQ!q˺ )X]\jB[5gwi;_FK N<|"xo\ k~|O)ϛne'8ً]I'w5#y"7Y( 8JP {x y/?$rfg\lXeMKƍҙR͗լ=Y M FIFu?nF aDq`ك`ڽ .'ς<tWw,(߱`Z=AݞD!g%qC5ٞKpÅCi^*uwKr]" g/"X1hfo@lJ CBNLe%!?7l|lJM8A ZηAi~-A)ʑ[L$кW(17҃Uz3V禨T-: +K]E~#en~trҜ)iElq\.<Jn})ǚ~y:&jt~riF?-Eee}y vy) idZ,c>4a\ZJ D7dܷ+y< xeo[=G?Ot|Ku Oz5>}EoQNt/ly&iOTM< H@C$W֢Ck6MGEQ]s'o=eϘ#s>livjz# L]ϴ1ƅ ɪ/^J&UI*/y9/n'vhr=4 m~?=.ֽ6;bԬ|b^b~1OMh$͓9iIO|7خLoݚT.Di=Q)v6%cvd [B&_C͘m#(wȐ=I?9>v5x:O2iL|x;Z9SB'7iON]^ٟU9WT3Q2y7F|"qŻj5Xr0 JoYlwyY&%ƅV{EO|&8dN]h1Iby}1#Mr s2L7j0]̣,`4.x=Hz]>! DP"u(,x`uᗛPe*&T<_،Jf64un DbXur#R+Bu~7-GW~V.G`^V|w^iԝ;KGh^H6^[ܞ$oAV:C okEaӊLVñńiEY5 U7zAdᗯ6t.c&]> ҆+H}~zQ'*Aau '-73*-b77v`@+8Eɓ"TF)&t8(i+Bܿ1y"b۪,jg !IvC$Ʈ˨\ Jʵ@Mx;¡/naKw{pIvbݣc(i$FbC S JJ7TXN|34,SoN\o)7pHS n)D<0&CegL1윷&ةDzYAIZ'Eθ.j^_)W cFTyglb9*4FȁYT»A]Eԝ ^ҋv؋*vf֘Jv%9%.Vrd^?=R< Km;Uj#H'{ݓJ|+wHWZ4x&*, guY2s*e X&YAZ/l7տ2S˲Arj4]t Mv!_7FNr)ia s`k@'tFo撦 VNCW 󭊟H6v|A;sAM(/ FmFEN߮~/Tm',PKBmUv 9KJw%I?Q,~Ӹ^ڀ {;sSy'y4MОUdD¨\؞"N:e1|h>j< B44M2R&5A t*JkeKł>Űampl(J^Bʀˇl2L*k4[/SUډ@r'ަ| J=|MQЦ =FȎy?ՔQﲰX}L{^_§m}ZL [;jK$%MʶLAńNOQvy}M@GuUFdI37w,zr뚒 eD+Po^ՏJa+[4WKTQO,mRmPl< W_LprS$(_խ<қA)D#W. D08.~1/W_00iA9*xEO+ߏPRengu_9Ҫ x `Ż3`?V%-)z>,kNyD{xah~DJ`䠔x(lmtݜ\q ~o\v{c}XTo6 *g~q0s 0BrvaTH8nM(E PD+|Z?h -g΁C3∹uа:h"h:QDM  k\g#4sEa1,wۘ]ڍz<|~%Ѩhj#g4DP.㥲fu1O!V昘6X"W:nVfS4B9JS"|RXVU;Aie]x[}m ?JRSr]KsSJ4}SRs4t42S4 R BV ~%Ey Z%'n0R~NDT[9TKt3'vO?(oJN1˸Oxk̽, Mr]KsSJB* RSx\\y)\\@23 inCx̽{3f|f#8 ˶xuS}EFF͗1O֘waɪ" L&ocZ7Ys)1>!P zf߼y0n>7dA.~0*2A!$>y1TP6BtJ~BI~irF5W-Cj^ M:xަPX4:%?Y$49#֚!5/  ljx{ɷf/Ef"dQnkxcSNF8#2~x2H=2zg0,11  O@end Ogkx:|km9nʀ8x$4Ih{FF(nbx[^yC #VF-'ɼWx{/Gjy4%4܃C\\\}|'/ |7x#5WjC #Vf¬''c<+ x;~ WfBJ~rXfj2\ `jSP6;L_~R- &{nȦmxq~ Fd'*Nl*'9I> B/x۹> uT6Rr5x{{UFFyJ3RS2J&¡ l'x[[2{Ib)Onx"?Knfͬl6wsfCalx%TvC#Tĭvx{eqbC0?sf^,E<9bk"xobC$ s~nAbIfRfNfI=年'M%dkNU3ٓps+w*3sf^nUyNEOx[l1bC$ O~bJf^4Otxk1`FF;xs K22s2K*7'0mbWe\/.3y%⢌\?p(*d%**hk..ԒҢ<Ԝ4k$T6e`>M~Y:j09_X?6*S 2*3MA,83?OV@YD{!E 3BJuAkE0PrM$B )ܶL^/"5yD.1U$i!/3"R;IlnĪx*$C'?x:Y+!5/KHfq0 nģIx/_xWFF993Nx;BsBciIF~U*xg)8''+ؤa|Č|܍]̓2L^?YeKfd}VɟY&+(\KY6g! ԒҢ<kH|uM?&PYZ` R6HfuL\\ ESssSc&LQVBXZ\g琚Rn˸ex{ @lC#fƻ,p"x;q7 yB6R`'EQx{k f6C0ɏM~R$dU`d`d``dU@A 37x{ukufF7?NR(d`l`d``dU 0x;ukUffc=7E 2S#s%kZ. /x;uk+diVEǂ"###3%kZ.|)x;ukUffC=7E #s#3%kZ.K /x;ukO.gxLcr,xj!&aF=C7EA,J# 20SXElDx;cfV&Ofngxۮ]wC#FF3Q)~[xQAqc8FS|&& -Y n-xUaC#zo|/ľxZ}PT+b@ QMDR!NbF6h24ڦiGIZDm' 5X[&#H)~U%Z"e4&FC, zQ'*ޞ;{>nmL J'o ^ۏW uق8SɓL_~׈<Uǯx<]9(lo01'쾂#&,{p-טP$B/+VK G7o8/7܃O/H ],PYn_5( D.6É ~Up ôY1w!#4ǹ//\- ظ x `.þRFyϥ'/dl1Wt`Lr]4Nh{G~*Yx#.E~5yݽr/^zo>K>SAG+MMU|?HPѶ ʾ=. jqD[}'u'OڀHD5ྰtv%to1*N; Fp7q3].!WV(.b?/C~;Tri`T mF36hp ş=;\'uR}ڪ&sOJmiG'I7q<\YΎ?WL2!z.6C; )LIyv=5Ui;sd95gAj^9c?Їm1Y5+c9^ó@{R֟'mPoԹYGOŋ#=nu}=VznؙPub<`Z3~(Em ~wИr#Ǟ=~uVkmvhW{W$z=Tpi5˥ |?g ~=y%mX[@}ߙiUxȀy#],zv{ ڗq#bo|Ǩ;!j3^]n]&}41?Fߧo~0aC7]lcw;ux mQ;w":8qJԥExDp9h￷ [<>cAO_e;8҂A3p-6&KPB54ǹ~ߔkƫǙnۋ?;sg_q(+cp"_޺*#e8ס_-e1d!,>Yiw>g١s&(N8N#ncl ] g{c_E<\ajZ;FS=FG cOi,jkSyڊd4O?݀h:U[55Z> k1>c?c-ٞqI)`'Üwd]o}M_~9_3A&nq}(3vh;G>e=Į(IG>҃دj@*dlcӿNaGIzTs_LӃ1w(ԃ҃w L)*fqoNH?`>eMx(icvgvzN#6ѭI6ꡘ{B=UwB[_2|_A?Kv]M暃kVf8_eֹ sq>晿7]w̜z0.16s'n% 9724yiƝtCE3{rCݿ(f+?9 oqM;4so7'pwc1}SJ}6ߒvMYT⥷'C{hm"r9C 3 6"p6wv)7N|h3~LC r" ښ>g/*pX%ET*NJGa5peiغԱ*:ԚWTR`(sZӖpdpQ^ARNJeZJ#̱4eeaaYTp۽xZ Xg{X fl\çVFUJ:!-D QJaID˜ڜ6s[?Mp}w}mJn,_4%Fֲgh,+ ?235efjQ`jRzTEpu\4R@ M3##DKKB]OH{`M*5*Sfsӆ80н{ؾ};|}}aaa{NpSu/Eގ π}Ý|577'O֪'F*k4pvf|g~$`K$7^.WG؎qv8^7;Er> Gԑ;w?HH,b9x㽀a{,%UL¿$Za+w؁M6aҥZ Wx> ݟ6 |Jˁ7?⹯IM3؎  -֭[7"66CG.] \ܴvBGHz*qρ[X|9bbbj*Ά 2~-\ .I Ck|.q@v~-\V{i\{}]#y)B4477...Z__?,c_>;z$\HfF:`Ҥ)Xx 3pdgg3^\{GAO>1blc1gfOcRqr$DtR./!&vlk?g=3h ~ &qsvh9> .!/PGOOa0#PNM&_[A5kLk>{vcg*VĭDN:f;m |6(^R=Algx>gQ_ȍ9s>vk\Ŕ)S:VСC8vX/VּzI>Bes^اi$8u |rQDd1\]=0wnHQJJJsi`sf]i!h$vɍI1rI\ppc@p'gR5%q wk`J6H)nXpU"`V?–-[p9Ξqk_.ֵqzP7V [N|5@JD.J7?>\ի7n)eumo׭>'9{7-1`}nLˑɎIv$&`ifCY6 ׮ݨT3 Ckm`hB|Hүy]T?R}Ojrrr9?HJJBBf8!՜P=DӵWa-| Zu]@v"WSܠ9@"}ƟgɝP>2^Tߎ哈>ѱDs6rsZEա.Jlhn6]T0LkTZB!W9ynZ '$GLݬEȜ\;~* GeD Tox8wP5Ж톇HЯx|8ק򠹧/֗ےӪ@$Qpر0÷.JltR3c 3GҮS۴z;в4:C!dc:SX*TynSRbWJ\i&4e~XDM>N<輄ίgζq`/7.NW"L񌃽ILӜ>Cʵà)®%ZC>}\/KI~Pb/gQob/J(X=U|0j|zI5 * U$hkՓH?hvDLFzj^jax1h%ks6j{6UF6}Mk&y}6ӍAgϹ}ۜkf,u,Q._uJFٱ:}:1TXTcd[В#&V V,2>A[s`_)@]@9;*9T{hW(jX(<ٞ(,XX(; ,OE-#]3RcGFe$>,̸̞+KlY5_ڝWGNH%Nemyχ rT/_nhVl%V+8y|(Wu`~t2rM=,omc3dD_@*:۠=Eg:#[<@q{ٴ!m0*D7[״ xHFHyHmL~V"+ quQK;4$aC"\f0hX]fmr-Fǖ#Tj0/`VL3le V(kIxjddq=C{}:]ոȮwncߍjƂ-&)0L֙ks\<*;**WWq8. (xV PTfC4eeyOYP\X6 dRCԂS1y)J1NjcM3)C) tt2LS)!z]Y2}3{ι|{vvL(.lh .7 _4R?|t֝DZz.|UK5鹐a!Ҷ(TI\t%(0} Ji07Gmɩxfc&l*܃Q'J" >?FS m8p8J?+O"۲uYPi2`^s8s)WǖA? wʔUjwq cpIXi,@e5l;=y,V)%7S?a+8w{=@nsnTYl.se`j YwKj8Beľ8NFEBK,øx狦 ":&LU矏o?˿,zLJ棰;Pei,MMMx_oZk:Eф[_VBL쵴u`mĩQt>.~:0SBcNoĕ!~YM@m)w)w Y_)@umg|Ca5l7H. &us;/W9T6>3ևĸYI86.xS*o>ˀϮ"?}wl uu$ Y 19Μii=/nsC$Tlm5ĤRXw6I<7]9hV7bP/_~B9[ }<-/R]1z0J8~k mz222Zemht"soF=(իU֬R8*[0&^h_2R-EK#M [ibKz%^܎ {ǁ࿸{לxbVi"GCŶXWWlp8׿a5Yz`‘NmZcFJc^}}3͚ZаČzlEeUa&Ú;z ~gxw9Z 35<z\͉%?ME-3{8Y-)_1сO.}].T~@V94:?CguJU`7/j{,.¿HH*-3ZƏ9'|!k4\Ud|'1^)X!4aLF`K/y&׍Bu]ܑeO/n ^O^JI5hgA:E7 y{g) XܩͲ.zq^CCsaP3:VE<}K> M*߱6ƺ-+q*b ȨJx}V X޵۵n2%5H.O5BM6bB(]drI 4)D5#\"L9%ir.=k[ř{뻼ktz"!SsP3zzf 胳JЍ{_tBCCy>J}}, y1bM,bPL8)ɟ`>iVV;Tl'0[-#>J]!@/QzzC8yf zv~xJKK1gB(e3BV%IqGwڝ[P(t`i2J0hX,SL8::ql׮]/|~+V0hB:[]1-6Nia.gffVB߼8x 6oެ 6~!@W \k[a-?H0p8n ?AL=v\\\l8p۶møIk8G^@$pן\2qv^66|NaAv6CJyAAn Z;wrĎL<9X_c:;ՠ? 8Sꎩ__VI$R/nnn]AAABp444 {KR0d쑲V\ =F{prr VbIJ\&D%K`ˢ5[ /'O?Rq颒{놶/STVH։Z1>ѡN y:z);.q/bc<\:]vۿ8ͅ.pv9>4Joƺ#Х[v/0rU`l^ srȕ+ԑ;=ҝOC+&^Ꝗ]>_6Z̞ 6"?ѣGI9&9! ,=m/Mzsiyّ'\A-$bџ])MPr\C&XCβv{Zrk30ݾeD_V} gӆ'H^ݻ3S7(o:-!3 GB-MCBrrtTTAMM X&fEe SHS A_h{!*j>W }.TUUˤaY{ER 2hVҊKXQkHNAHH8VL.VWGqX(Y+-܁.6zYnzWb.\@?!4 *#NCRU7oDz.nL?> ĸh?iTY@b+øsq?zN񾮋i)=-tV{KNOhXfRe`޼yH'pN8YQt6mkSf Ƀ'b%CG ɦ39C ]Պ D,7bŠd?,ǏrfE ;ǘ)\j^ESFI@B/d͵Z#~)vfEkaE]T]7Q/KzŒ&J@II)W;{AF!x /..u @iS uBLHER^Qzz._el=ў-z.5h=O+ۥjmV^CjCDǴAH,: hh1ur/_ $2[ { otAGQ :XtUgAs(4 d{C\-$>"}=o4:n _! VbwL1:^'m ё ?Iԟ+g],XDA[8Oݲ*W)q$HRTΕ5Tu䐇ĉ)I+Vp ɋ{Ī!f^nRbp,D.BJd#'E1J Yh:05w^CGpvGfl(Q@vދ\Mex@ +bybB$Jb8 YViTh/Kevo%Xj&m*cP~&%8ۛ#‰BYiyӺ1%8O }uB|bku`L khiD9~T1~&AHV9N}Z4-$jWQUn#Xsl%KnV♍g nDKp1b&sPA"ra 2={yT+"LɇSǦ!iOIJE\] ڵ!FwHK;dk?f%6xpkM/4^v kC$x׽b%ìH 012 6Il)QF?6X0:ߩL6Q$+h6|I%:,Fr4aXĎ)0|Eͬg+3>'h>,LT1)Y!rI.cIkp~'[,V[ m__hX$GM QR"}4B#/Dd k=mNެLԹSqh<6z9=,bR:B<7Qc> !cuty&ٌ9x}u<:Y;'m8w¸aދ,0j(\##yMU@x\ X6N(YdsE&+Lq<ӂirl97r`eJl6Pab2U&HLܼI>ʛr06h\gZ9Nq:V)mKi~I]31&_5dhjiFS-_OdU 7S`++'+*O>dF\AǴX x31Լbr_8/(ף&`y) ct.^V/5əQ%Fy%E9 ڟbfP/j۞7?&13/[Mg3NKYPU&.% ~~Ǎ8F?lj(&fe2YV7s#JgS>USxxqG)mx"/NݟqD +xTFn\a3VjhmKn,xxq{ت~| TwOOnD2 Vo x;xVq&?Yy2nWx;vm?ȑX+do0\99ecʌLfx340031QHI,IKI,.N-fUu]F9A[ e3Ȳ<}L7۩0C'e&2J=j-NY3">/x[ x\UofNfiC[H -;ܗad҆J;3mA$yMNfd4 \ŊWMUTEbE-(!* Ps}{37 M˙?{ιK:@s8ѳ-Ci᭜>-.ՌrEUXUg(cp$%cbІ+$wnVJZG'‰|zXE ,cw.wES(g*/Y\frO_r|Ua,!8;z$DKq-j1+ ;IVmhy.mp r3샥:Ƽ2m;lkz؊]H2w*K2VeʗHYI d~PK%'[|fXYLmS,]f\ׇAB V8'Q]T~3~iSLWh >2%>jx0Uj5ZPyIHR.gidE1%.] MP>KT^@x@ɲ&Z8NZoWg;U {4{akjkEVxX3(֢ZۇɌZ](V X~J)OVkrÏhXCn1v#bސ0,pF] #^VZ+=,Snd";DC|by,@"dڡd8a)¼,=?v8> Ph'h h7oLV%օDIuQ@[aBLVbK O̶.~*?-etǶM<>ajLB{m%& 61TE[޺CmiKVֱ@h3&E{ 7KB8ÜHrtgș =W5EB-@_̈́DT*{Ǐ@ U}.$%g v0|r?PQJ}k[=0H,b+"/,epŀZ|Z!bCkZPJ`] M,W&g "*" ' DXduTakO "CH _[>`a$,,HYSQ:䐉[Ej1Qt~AI,I/k-Ԃ@ ݵ.U o?F}pyIQ KrYHLS1R%|8t#p U;'@}kaX qJA}S>~|d'ץzv q k|@y72a4wOC&AT}# a yfʝo̬\XFPO"Lߜ ApIƇ&0;bdWa`SԬjjCIH0Ubyi ~5x޹P+8?;կ@vJƘ)@UZ`vQڪY-z AJܟn[DMB 0zgGTQg93]FTRoovD~2=Q+TUTA2Sr~H>ҍIF%aM)?23R~QjS/M Ǧ=#>,NVw$utSv$8a6n<4~3GV!|~:UB@9xBnܿ_ P~%P0[E HO($,Ed*-ͬ^/Ϝ݈:?gjۇO?ϧ+B-y"h~@Ã' 8zbInϙ_:uRbWiK6B(LbSmM_#_$=F"=N%b&Gʃ7 $u1x-Yv~dL]D(f?kx+c;#|{r:5kTߝHwGpa7t{' c[r>.4:>n{Y ۻQysY9ӕ;c% Xw-dOgf폥Ôm?QᡚqWźc,UIQBg'cd̓84=O''Ŋ!EbAb*A[?l"ӊܰzk1O2 a@soDhgUMdӠ}CfbF[3K# 3Wג5F [ FtfY ?,Y޲{Tj:CGbZ@4԰'xA菆CI1pL+u 4ͬ{= 7C >b7+kpb{p WPJ9.xv nKY9)w{.'>H(`MDOǘ(u?}l֋3נGdiɬYl ^x֑U=ğɍs x_ak`,i9II6ׯηqo\xWř%~~~n 4n*]sW_jMpc`ͼ6Fs3Ad1H2/wH5tWUq~vafxҭ3ʄO_/WfcZO2.‘~Xw K7aZr ԝDyz"Ɖ*J*"}Duru'Q-ĭċdng A"JI9x۲)TQAZ?-jžR+V2KzGYpPXރJ=f *dI~P.d x,mAedT a9A8\ zУ9d8N*$X .Bb!"q"#q|{6[={`&frSqa5ds ֎%vgˠr ATdre jm7Ӡ}AԠr:{}D>}3}V:!ݪEp5d#҂}gRQ=#zy.kdϴN *HW rIJ$teͮTRR7IwH2i!uA1lEc8(G v D  Ѯ*:FU"3x340031QHI,IKI,.N-fn^ZFOMH8I]f^Z>,kͳNtc[ 3TQ~RVjrI^z~Q.wSfoq1wJxۮy]cC-Vpw'pmLcr)x[9je<)UrLV>v0=z289&뿟}DkpIq)Do10ewU"+*x{s7fC9# ORlz: Kd < [x340031QHI,IKI,.N-fP4.o_~/z!̼|Y8#I Sa;yllqVHo>B}>djI_W0# GVB0~,WsҮP*ʰD = - SѬ6tdu"%id@IDx=ڙLkUfh4TD7. gڏfymn8օ|9轠 rjc(ճfw[) 5G5T s)4S.]T:Rd,e.LoGB47!p e.m٢P:V si3訶iޛA4Ih|W-FAW~`oTU"tw=?w\QK,*k*=VEZ(3K"]ae[2 dI5>sY9>9f5E0tlu{x2R:xۥ2byP`zTф<@GBtBJ$Bx]QJAF% E$0fɩM^AȓX4H gegf>Z|.''h JAN 7Pya^Eq2+wl8m`[!YH g.MxۺAx}~^#S]3]#S&8U!sz9BnjIF~ g~_RVjrBf^qIjbB~{sNbqqpybAj.9E(qqcPsFb^zBrbIjz~QDCFQn=.N-\=ʒ|v<BYjQq&P047)U+N6N-)HK̩/JV,nj*4]MyLd}vf%N髗2۠>˘61gCX(]e373Yc>3#u2Kxto3G0ds7.s\'6F?x2q!#!#y%ʳ&9-0*gxke[7gcGN"xX8l 5xֻs$`o9x31\t PZ[X|k~b}ݥww 6qI,.+.HM./0Zexל9rϺHḰG7f<ל9qHKKr6H *> ~ %?475dܽ B$xtQny%aޙ;C=v<;?"z&dUγ,f"B=9Lh+u3p)SZ3W"9CT[ԼȪ|qљ[c*PU%BCuW2btbf9MyifJjNf^*Dñ57̾hi+T )0L;~&4GtYf]< 1'$~_ً?nqWƹKTEy0jI/wsּR54z[E99 u,))L*Z!rb/sٗ:} d@j_b.A ?0m/W")HI͘\]rҁ}&NF1eō*eZ `7x>}qFj,SGی-x>]rҁCqGns|?I(eF2flN6xLB $jMp`BV~ P^/%f51n-'bJ+& j&U!Zx>}~syKo.SÍa.t+x!>,w HI"罳kx340031QHI,IKI,.N-f.iltԞ- e3|+"UD+*OJM.)K/eXt[Շ:+:/弍x[ |dEtΝ0(:|;QdB2b:#td (QEADQⱬrͲ\}._L ?&t^EʇԔ#O$DIGg#hjb(㩬U`HEc'N6S bKH[ée]H5Fc ?c*Rbv!TyZ~BA6r2,blY,J,H A?+[0Vu*ZsRPen S:VU~uUh3FBޑ ~`PXԺy+n:9_q+ȩZ_OY@}^YfY84DX[8%ZĒ K`KdI ![$v`ıv@l=66&7+|l{upVB9HzZG8kqZ|>JUBY dlDke5=+d*40yG'\`-b͌KhQ18Cl\fkU\踗rC!w =Y;W5Y&7tGc)K z=TC=htީ(95gi$y(u}ŽTʚo,Zl M8ϒ٘8#m'r;ᛋbᑹVշp1QȥTo/긚")B4%kԨ(9t]W"\s\pM“TڔZ}b>6bl)\7oo%=[c oLeofmix_GxNG_ƣ)\_ůFcOd2drsj4ǓA'J5+5X+෺ @KVݮ7\.]Ϛq\ʣ~XT>Q++s $hO>C?/|UjjCMn_=N¬T _gƻ /N1ꖿQ0ÿ魶ݿRvxP;rL ]Nw9X-(UȤ8ѣ2n":m#Mhqnw $aDwڀI*FDOA4=ChѳFt?꓈# %GE fD/^"t mQ4ehrCGnBqg ~l"ʍ6s>We ։z6T" >+ O:yOB+D>Y?A8R"\]d矂Y:KܝĻU}"?l&9^TeURk RwsH!~]=h dL5A8s'{_ķ-=W6R&ʅM;y8U!N'>QWC=Hċ1BfNs綱B%3?gפ5DmBU ]ܫGY$fT)Č*? p٬t0L%vU\4O%d$i,m&6C 9_O+m  o> ~%nϏ1l_`#dK={Wac+D5Jkcaʄ˭7c3 xuy|SUs&K[%m.IWڛeM`qHhCIiSE@ExTDQD]FgtP7-n0 83WS ?|9sy{|׻-i"71otL[2ݺ:ntG= u\J63&qbGzn3&[,!Z!3eePTZ&έ(,R\fSuzdq%& Ne Iۯ1buY`[?ԉzyۢҚND ?lsN2 l4\է<1cc-| ݝ`+q=^V*e{'%נMi9t2 F2 3&Jc& U̘4`p*4ژԥa]IaL gF%,|:/OT숶%j.aK6S8;^2(b2oJe:nd3& ΀Tv t߬VXOTf 10GY]fҌd2ߩ8ǒ9㭑{k\K[ϑ#X-mZZmйX]+b1yLue XkW  b]I\$ <uip9EvG\J=KceZleL<0* \}AGRد%L tR[$-IZ¯&HSʗc*p+b6~+npJLXoKQ| w[e?6MgE6@mДnȾ'!Wbؒzޫ> %wjD֏qvP?M<”#vow#(:cVf/YXt~ZasCYS'A$YPEu<^͋+k=,rHWƬG`Or{p0)0xlp.'P$LNgO}Ii6F?ɗ_By.v*!N'K-T!5^S=9ሚM9< f\]ۚ}l[~6"IkTG+F}[ N ls-͘jdڴ"JC(=d maD=aD#RcНh slD9Hr!}DA|BRt+BB֥⠖]A$U4)N "qHeH[q$v#&D*Gz[TiQ{ZJ5I=>*YQ7Po!}G4Ak$QQHLjF#ǐ $N Y]gs 8#}B|YcViN ň>/ԍWr,P+i&G.Zݍ)\,$k̂ T`94c |v#ڟ=,p/ zr\ݲ0k/.#镗K#/7oKc߂p? /vwڿ=#Z|OFw&LXQz>J,T6-T3ٳ!@mE䢲6?&/yU^Kqع(SIr!{joةC; n_qɞ]Bخ.BhoWbc@qI]b[ M%2&Z$l9}]W zԼN`w" ܌$%/[QiV!mhC2ՕhCfoίɪ*/?%v'%vRFEݡXvL*uQ!iť?!>x@_.{C*r"Vxjk=Q9}Ǻ*t֏ofÁj89ٰq2MҲ.w# !:pYVY^*wN&#pcO]%c&Xefت/3D2# X']zOc죧3때7aޤ:١YV'/-q=ʭ͂ѡ|B ZB%7jFh da`Cl~J!аųfH {Ͱ"৹.ƹ/s _T}ZjXc(2bV{u\SV '-f3 h{>Ȱ>/Z:msaYD ҿNG6"쏸j̏Ld C6J]j&m~buٿ6_񿨣A$yYt´0˿3Q2,.Ř|;Nroj Y[Z6|G|7$JXw+.آlO'|_/6oMc۝!lޢ\Mv\UuՊP{~F1zv!by+U. Q??voD ߉rEOB<.pR$ I`$:WSf6h28^~[>3YȊKd`B2Wy"/刑B\1\ ~4X~RbR@#ZEt96FDEH7GETtωute/{=(Kc S׈ǩ@w033'02aFV/~iы]1r" ;M"\ @[VLbԇ?xS?.^}؇҄VT/`x-x *'}O zʖaT|[K;_:>]r̴Rfv͓V>Nz.}lJ|x59jk˯Q9XuN^S Sb[,_*F]DxmipSUҤ)lY M)MIlbÅ" ei Qܗ*88'#?*Y^vDY|?,ɤk!Ii>fOR&1_κEfkw[V!G=|zJs\N<1+Dr?HT"k!uy0Q #D2ʏUV~L,5r~\#W+?'QsN!pd/?EF-!/ Yse~zJe3jRy(X\T_Wʥ,74V!+˜.*^6N̩.So1?1s^W^7Tm70DDVL"3 !P*)*# f|`t㍖Fi|8Ro0<rb-׫"6C͙9& k ?91%6MD "z~ JDth+uuʭ^t'(+Ql^b Db6A B4hb:h/QhQ&h?QA:lYy5;!yb@a\AԜ:/\ ]A)4:tQAEPh3͠"j̆T8g"hxAmb Q)B8Q9Q$Q%P5Z0Yn9*]@#@eHD.F4zxAw1wkZM`;|\,YJ{gȌG e#{_' cSϨ:M@o9*'O%7Dgހ&oO~wԅչT#BSM=~ M]{U.(jרÏ?!vrgȧf_I.Pl(p~3Ekb{7|ViBpSELlq͝ρ#K+>خC818W 0$y]#Cۺm3Ea@H,nB>?r Fu?l!e"ocOy3(YE~{E=?gݷ95bd6R1 S_?DXwK 7<9^F0e^uWA}M|W q 3R6nvA-bFKov-0Wow=.Tߏ%`+DiJe4@ 1~(BE1 Rh%X,[b͟6`[_Kn GȽp(ZHЬ'Es-\;4Wmѥx340031QHI,IKI,.N-f0po_nͳ"C7I&o1DRϐKVTVm_(?)+5X/=(۹ksrΞ*[mv50nܮAx[uBr]S.x xP-oFBe ܎ĸLq;A'odU &_8L&(LSyÅKfznM @-A&^Qqc,<@T&')9P9# ef9_l 6a|*)xeTip[~I,k ";,/[veH( 8 :^86$ 0t5MӔ%}a`J[ZJJP(M7-=~3~{|y\7 IO3Wj%H6_8{дaW K^8&"jp6ltMYM#>8}Cazb-[7LoGp[{u=}T>opkQdXnG϶߶GXk3CRєnĪؗJi1[(n8U[_)M+RA8 㑰J*CcahAx#aFZl~L8›C[)#ґE6?tS+viYt7ugLh<(48?.O.?,s?d>'< pպ?EIMng_L+i/XA_/HFo7F/%м!;8Vt,%(v:/r}Ovz\n%[A4WmU?ZZyM8xKaCAW\μXB~sb8'^Dž-~}4ua pwobu^ƿ Z2%7$Gn%z[-_ӭz$JG3:O:u}*>M4Y(sQTFT#R ōS;%Fl0tؾ|."/t]'̧;lzjK!т0Ҡqo%A0OcԱ ^4-7!uQpFxΝ4Y vE@Cvyy_JAa |ވa겅&n^-w%QXYY7 9 ]byFR iIfZxiGc'IItI1G> 0k_&2%ڻpnxvu*OH\|߂eE^G{1+YuYWú}`W(NU_93>* m J0O0r:hVF0Ů{9S+B05~Li2]~nFV뢻VW| *=B u:H9}BkUJ vVʥB"gɋȰ*YGȮ<2p0c^x340031QHI,IKI,.N-fX2P_>Zm,I]f^Z>CW/[-RZODr b\G&kvl XСe/txN0 SX=NV&ܺvaN\%;iWԂEv~K r6(X0T6rjM8vLAZv^ѷlE%M֕hܥIߥ P!Qi'P}q|ӭ$"Ѡc^![0:vӣRmk/ ΄@xżyB.[f^Jj^r/ OfbT"ҌX+D9~nEk9jUxGqC7M!R4:J!ٷ+֡Ah"'8ƤQQZ;=:\Jf% 2qG6KIo &}ʾIԢy`Q7KNxA9xgJJXIR,5vM r,<+;qPI1Kzy;M{/ sA+E90oqs||473RkTiP4DY;1~'Jl ϫs]G-<"+G]E^/}rw2d(FpV%%߰+s! T _1.I%+a8'y50JTjrq<$ ?3'kIK-s`ܽY,:A] D(?S晾R6)^pqܟ'Gu~zU?Q-T+Hq\܀ܭBO6_Bw;T('=UDULTX->1{n?:d~%(H ?Tr7i!lpe %;;Gm ~f11>[.iT4Bsu;%{S^'O!8'nywR/a "O˶wJ>[7nL -V3qe5~ ;GrJY*Miǘ3? q>TskwY_cj5qU?˞HJqpޑ0 c[N%f #)(!R0ENMT+Iv(ZïEWJLĘaU*K]M64rW/fA. oD񍰺 h0}ns+l!&>E8G`> -lA#m9ySo2hJF8eJ$a7'$HbO, }Ф} AvV:< σ>] ?%U-D$Ȃ$}mn!c|+w$Վd8jts3L:*}7ȼy-${RQ~yqjdg&eLxnFqd,˛Nⴱ9nu#QX.ǖXW$57  SAzy3$&!!!͛7o_V7}izax O(nѱQ5A[U7Z]3翘>ЃG` yO>Op}lM`~cv78AW9a۲vÏX4: SC%edVZyEV9MR'KkO =;qk^*WvOwKhoKw7)dL0 OM0Bp-1eӠ1z*19?x"Cy<]+-HhKx.~waS: /F;v[ kmB)VkS7uߢ 6DP Uֳ'x,Jl*y/ݨnXU^Tf%xGI|F'4ۇ #n&OO\|J$g?F/Dsz Ǘ4qWEJ"fП ,|##5?L%\?25p:1g\LSq(4# fiSEU!Ыeo G1-1LSc BYE]RjKx340031QHI,IKI,.N-f`~=Z@S_=Gq|6DRϐKVTVm_(?)+5X/=({Iճujge1'1uxuMo@NҀ|XjLBjW*RA A7 PZ@ C4|H! gpd@-ͳȗ^AbghL6o$]!2qX7Z^s`|O^"n:ԌZ"~, γ[.PgԅPp-B, τh &N"QEףz$rD5̊Ӯ:%ŒU4 faE10̲ewx;^c:Կ'py*"Gc~O)iRɜ c@&0*^ vW< {{Ls |H@1`GH8yȥ'/=2I0fض:xeh [g]_dy! >2|C>DD>BRc ,)"r 9FN#< --A\Mm<=;{TlZ]Ä:*%uJսt+}RX(f-˴\>;Lfu3x340031QHI,IKI,.N-fٻ6~4n\q²2I]f^Z>CW/[-RZODr b\s0įN^wWsຒOx/x_WEg7$/VAUI0Vڥj. qH{㋏9}Gl{gK%imdfv;3{gti)?9[+s(\adnlMpc WYI(~-ik{U5Ͳkږ'H3̋xh3ѶcKb1x,4+Y,O ixx2,4LsvWE5Ӄk\_GogaVܝWvZ=칓}S= ovD{fo0~p8=d45|sH*W UH53pA LQЫ斣Fects$x?TXz͇GVl8KC/{E}ɇ}+B+=]=]nfp-C>` 24,Ϻ- fK=g"@$hkzנЌ{`9<E2uC R*HEL%V0KjHh pMg"&GJ#%Qͨe%3*)56L Q XIzuZ%~AFfC,_]bK n4H~u##}!ɩd k|JZ~:A+%)}?QϡTnYv{[Р~uߒƅyS^f=-nE?\Ƿ\2Dv~XȖe\U+qB| syPOH /wiSniG$5W 2jY)_-VKH Q5VmZ^g.!k0La*lժYoE<Ø19x 00OX-| 7ܪvD;ar)lN < Gc!0U) 0ErEN`gԄa{v ~ML3ՖKUW-\1hxeNQttJ"B-RAK;vFfYK qְ40!zL$9;6є{]g%Kg`cXwrn(!$/OVAR okb4?˹"qVLe5ҥ~eհZp;o;N0Va{(^0>g)jOoܥhTʈsxDK@yW?vfqJFqGKQKe{xec+>̤uc= 9 RՐFD@?Dm?dN*Nzr\}/cQ%?S7 U'4),QLŶD>W\x25uncyi2S8d%g+H3c~Mqqu^ ^,H耱|DJ/-~%+ $J Ʀoٍ&{m]cU&xav"0COL<9p-ljǦ8},1EN_%G=dJ.'H^O!6!6左aӃ"ͦ' v o㋫]Po~>('!jprYAdjX" ꭩ5}jZ@PDdVnvn$FsE+62 v*25%7)8%ez0*d7f}r Q"Q?uDWx340031QHI,IKI,.N-fr/뜗2|o8K.y!̼|^r?ZjsbPEIY%zE 3x?U('b𝞥/~xUn0 }nH_6_,[6 tشE jQNHn‡EGO4 d8dX%Y%t U&Tp|CS'gI65Tv)x2^ɧ u =ͤt AnݘmBRO8s0_g!x 1K=3D#'<+6iJI]0 !<.Eي0_J5߱(c:t#̦*fhY6f4RV2bJ&9,BXZl FtȬa6j`.MMq?ۭ,+wߙ[:#0.M[W6A}8M faTCJB>5:Zވy-. P kA2QhX@#4p^8Xa*! Q8KXGk ?]"Ct)?Ja;tg wМ!a5-*ξap~ĆB~y1eMStk?r#QKMoXR2d}FHZ R]j;2odE@^jEqtJ<>Nǒtg]ҋ)=vx7o.ֿѓy;"F_C?QK#2xmN1c!CLXh܊, wL\L 0"KsTJ?6>l} װY{{{~7>mD)ᝌkԃ]- 9Rl(*/VbI.b;3@鵐c>@B*!϶ޟz,gP]>fbJޏe䬢k'%V &hV(LRhJSG?p$a4#رF9 wK*'.H1HR5nwTĤyaܕ>MT+bxG6lqZPpE^+ISWIu<U*Z@ÕCXFmrg<ÆH2莙e4j< fZ1)H'/ǬР!Ë=x9']vѸum?Oĕݝ?ˡ9"i#fsA]Sz{p-픫C4 ?o8"0_G鹆kUD%g&I/U%"KFx@ce=4i\q R7#$\k/h(EAUNkkUDA3_h݈,N+ڠ,nAmAn,zlA/?%-t&ԃ ,WѶ /#ŀWzqRRK:[Bz.yY x340031QHI,IKI,.N-fp5-/ ủ{U e3|+"UD+*OJM.)K/et)}k^$K%LgxTܷ^]5iRfeUS;r1 d[r.{1@tړ3(F!hZIe4q9Q2T^x_Co %}7{/Ibql^XDGB2ETDwўr=6{NibL9r Rs@3ς۹h ж<!jCAn{YAlLy)v ;GjbJjQ~BzE '7 iO>.T7VX1gr"cF ;\y=x}VMlEw׎cv9NImhmi1qMixu$-  \a@*BH 'R{ H QqțYg4y~޷S8tӞBX*w:+!D hMW F?2y!9R$E\WP^tNlQmQ\" ܪxƲ)]2}k V5mZը̄13Ie]}DNP#> SoTa(I`EQrJ ì)6uf% &zϹKKwFvÃ[?`z`FCUE 3qU y*#ɧK~p_(+p 5 \houi|cpW>a>p@o4` UҬ<~I3CpN#hKyGsGSjv uL #Ht,j :ݸQ~7Ia?[q %5F 쐲3<(PPD9r JeJ-dJITaE 4Ǘt,$^%mVw!FR$^͞]ٽcK~{zI9Wmi 3nǻ^/ s|o"v([Vʉg0c<6#"&4Bʤ5 >#j===k6эB Fdp`1$^`8&{0 w8ipב#Nq?ץx340031QHI,IKI,.N-fxSi[}m ؄sN۱,5DR:!׻vsO沽Q\U\R_3\[Ν..ٶ"xxq -.NMk.҂"[̼r"k. ^bd=xuYlevMn'8>ioPJ4+D@UۮE$c diS BBb-PBB.(.%af?_\r;e7> #1 x:_gcBk"Υanl:}NN=.9Ri5rx? /B "Q{rBa2 E0QvSwn|n:J-#Ju5$}mkVT0n%(4b =UR!߯Q A;U:{*VˏRnLeg"v>ZKwgI{|uPE‖׆39> ONlemh wf0:i٬ 0ɬڇw-\q~>1`C+W#V*i# (rvUA(_i?ݲWګOa9`\p|nAlxa(6-YַO/t{]w(0ƏHˑnW0%Qx$* qA8HN~깥p[EIN6E`}+MfGD2();n~ɦ`Ylx珕1.3=zi_zQv1M!1 3NTvR [\E?9TcI4ʮUdx;^kz}UN .Ce: !CH#'h@MHЂp3A+J6;ƯG:NA$hG'""!$+%N m\7Z¥/ڦRaX* Vֲh* YuuT/* [yկgP-,D?>JE-sY6 *aoNsqg s肘D\X82%&kGK9-hJJU`K<L7,hx340031QHI,IKI,.N-fR| ;nVm91I]f^Z>CW/[-RZODr b\*>rT7Lʞ3i/; x340031Qp/+LKc8d?^ʤ7HgQXX\Z̠zV\5H+e_u̼|^r?ZjsbPEIY%z@mogO<$?سJx/C 3[~f̲:\ @TZ⟔\b*-HI,IM+ ,HEw,-OKLIŦRXRRTZZ<]і#&_d,,I I(˅jrNfWb;E@ x{¿F6l+%.N PJNKN M~æ)Z◘ꜟWR:Y]zvI ϩ$?"?[_唤VeL~&X . xWOwF_q؉lhln EU%ؒg==zE=Џ豳bYJ7;Zlqk>h=2 5e:@+PFk]-hYfPdCdCmFl=et5?)ftײe.[z*Ng!?͆Jr.ڽn: c2zviXEuQvw[Fw{D(JQf2W[cakR*! =C! =V({㎹ӵ a[.j3os* l*U^.,Kxk!͑> |cyl _Ǚq!GW"U8$ sNksiXH5䪡$ WM7uY$s xdy :%^6-:mE._s/>l'h1xKpxX9j4.L&- )\> żq) CEqY00X LI+ =p^kY6pXdjbW RWޘ8g}+ʎs9&Ӵ"|,F4?M,iJ` Z&iԓԌ5bayʅ\Ir>~aDivf (EphB:4,3w65&G F#rdRupuճw-ax0)ΕT@V<÷,P^1U]ކ~+1";DX&:xbqIH:P*fWgu s?9b.E2NFfo˳n5+|*W\G=#"#LEwx)h?!魻2WIbz: Y"uF_ͨdo ŃYJ(VKox}m&%N=<~} 9_pC_i־!|/|/~'4Dxvo+H@UoܢJ6RH6!fӶN"A^X]enBzXiaM6`@yX;07_+0yGّ^|ZY!ū52V z+a{]lulc;51R a-z:|j$@N6$2'dyf̊nyU&oaYt2d ,,M`*9U5?=='u V"llE%4RsRKKrRKt8@)1%]85'59'Y0(9-M<9'39?,:MjfWP qcrIf~ЅRs|NEHKO %Z)M&^ e@Օ$&eCy. 9!I9P|rdA4a."Ey("/pBR+J&G+1)@[xYŵf~ Y4s+< RKl8K2|9yy%%E:\ @^_✟_,Iu*//N-BqLI @6WZQnPYfqfR'P{[~Q.q!%P^bJSiII~__"֐Z>%/H/9?(?gdvfQ9.NMk.҂TPP[sZs">_rx[5sJfҼeB@(59(JI/H,-NE$V"x%VJ\\%9% bkXxrքeOŬ2U#x_pW'Hl 1cfϐLjc1iY:5NN8Rmh  -e0$ӤӖ2'Ї̴δN& Igɒm>kf[~ɧwNWHb}{BD&L#/ #x*v .C+/B&C3]ɭ x3*w aEIn+8%-$b3% Jid_ 1T3Fjy|8T*rpT~O? $rkJ\%SpCp!oA n"+EaVR^Rd3ᴪ*H7U6D?@q v2B}y B^2#maE.7(h@/ %Jhct! mIvDۮh ę(g$c4J+b!Ci +!N=.Vw'RcThN`Zlp_O&. &S!CAQ<ǽD -M6|WhM3A)&\ɗ42*(O )Wi:E%/^gdImJ!6n*^p"v>U%ETZ*NHK\q::ebbbbbb;yh B0xVO>?! $cӆ  $S^}ߊhzν #L¡ O^Tm=*( "Tl6[GYХ{Du:{~WU qFãIT{c>ڱjڍ+ ~G<9ƻ-eu74U[Z>q\S4Cnv;,KѰfR$~Ѿ}/+V :CTO\Y($bZA%|lAn2sm븆E)Zpp}J]|s\jӓ̀D"xml]̮7r l8:M.4Zk5hK^Wڽ7ݑOXR{bmCaE E3 ~(2l0J 2QTs .qTL&-SC47{Ƽ~<&_ BCh9xK,oݣ ,z2g"cqq„f1h6X>˼RcxVu! 7JSܑѲ Ɲ)SʣUX%21111111Ky1g3~?g3~?gĔZ~~^ 6]3wb ۅO9e D )Ŋto[䖃7OXS'l_'i_О1C:|I 잗%co=5Fǖ=BRdOźZ5ЂϺ`OloT~o#ޅ{.Kޅ쉰?A|OP.r(&? dϩLLLLL 3e􄙲z^=a/ kN7fik$/Xk5 +ƎTE8k dN0&&&&&&&yj)$3~?g3~?g3~r[ hBR@ 7na3:vݩe:V׏袖1|c%t:42:%Iܿ2qWҢΚh"9gVn7mEGk+Ejy= P}{ f4SbX)g‡2-nQ^ 2aA.r~?e#ډ~3旂6&{;}!dZTA +>IRI[W_ס}SnoINl]N2KMxd#nh"9vҟkN+i[Kck`^i "S+O$XVԍ=ܘ٥x340031QHI,IKI,.N-f{}|C$uyi /_lH%k>/RKrB/||k>mjCZ=5+?%xeOAwvZt"B·Qx &#ؕViWq Aj8>@M D'{ibwfoۈ7Q0"d)c$Ylս =k\JMj)G~ܾ o$NoVҜVRu3ΝTWV'cMZ5hHu/|Hׂ1xkR+obqcYsbnRQfJ:``dhlYŃkTv.L@Lד$x}cwfĴ"Ĝ++..'9'51j BV E 8x;ziM 굓5k3rNVsl9Wi:_.NN&ߪdQPpP %됞W_nR9ٷdcC \!qxr &;p.%0{պ\\ @0YM+ y/x{qӆ ,Y7 2m% w%xV[LW LEWhv "bպ UBYQ[sv9evf),6-pĚ4FMdcl%ibS4iM>?3vv -#Ve+UcJZ&NjꚢzhKa_81u&K tLf8I&ThdؕǢw9/kTAvvzbda)I)`57GI;gB'Kk[1''cAU&T"U@i9Ǎɩ!1#Kme=­2Hb&,(E!vkM좿ɆrzEeqI';_qެ3T,ھXUS:|j4%n]KԠ# \gwӳt kF D& ~N G:t蒩PKs"䳾wjm= :1ӺS71J~?7WxA l)' bh@5;m' wF).',x(D ؙ]qe1(H+f^kBoS2C!W|.MMhU''IvIT%0dZ+,Fuێ 9uF6Lؘ2#![/] WbkqfQ2A;?=&I)%nE!jflu6 +Jbr<ѩ.>.uP԰'DhMvZ;v3سJZts2tЕ^u+0;:Nxt:`Q!6cz}6ݰw+Mb^̷qw8iK2K7w6)RH8&tͱ`6)jmޝWn*.'kF~e$TʹW03e,bxV }iyIE)! JEJX6N6|L`zFzJ uR'*2Oޘ9(hSd4KҸ7/)VXP0YUbtnF n5&+Lep :>xeӆ6m t8R2SBRStK3K*+|ļJyI9 )>yJs='qPr,FܜyOes]^0FfB^jcAANfrbIf~X85/%KA!3s"|eˊ'VNPɮlUť35 a&bW\\_DŪ0S0M@EU,R5d }&fGJ85SKsS! bX)(amQZ\4yB;$Z& gco GAx}RKOQ@HUNmf j)Vff斆;]hbX. ֕nd•17 㝙og1;{>mش+iOtf;Hei2eQ|nG!HE~;#3~P2Vy;'cx/|w50ȅw =^*.7A]Ƌ-_Zz|ho/Gm{n1J&5jE[Q ۦ@??Y@ӀQ{*ꪪ Cx͡cz|KaU8Ɯ*55 ^=Lŏ" fոFT{7jV謀/<M>.+H3T,rC'ME^P'I^ޱ(rkS_ɐT״|*ӣAqx$F2ٳFYZ̑d{I"e(ջ–KM s0#sۛ=|e{ k"k4/UX%cEfs^~0Rq2m:9MʑXaS538rk͉C2ڽ(]' ԡ[4` y6NҬ,cYPk1Fk/mlK[%Z"}7ֆ,NM PʐZ &5/aiq1A@hIF&՛fEt1jXV+*mG"PBN9|2qXy.@֗}B(²T]AlH$2> +ؾgD=XKc ˱,q?tڱk;gS]y] *~yi/ ; LZt?IMڹ{ cZ~10tmW'rT5K/aj(ɔ8#Em[ƆIy`(OәQsCH!1#>L8҇ˏneoآS3Bg35Q3Cᾊ#= \kUFTƦ ue`\<_>Uf|~hD&>}91]i7]Զ> 5Dc' Ҕ˘ &vZ[0Wh3$(cd:'c68l_Z_kZ~Q"2#3p0-SL&Шۭ[lbdr'9.y$&ʠ6DCII'L$fZ6ɌCn f9d@  glP2)OP)+BSv{Y gdZ1ӂ1Ij" Y?ca:$Hxu=qa{Yk_D ⿟voCw]~PI`3} IDY utw8zv5CUG;|{l;h4?36SN\KO jԤ6'j4;`T[+bb!*"#N UppM[#sg}N%'UCI_DN1I:3-`a=_5C~ 9aI ziG ^}.G,Yr_0Db)YCfЛk}cU(qRnKҬ`VH2hƠʖh`8ʕ>,{_Ӵ(%=42%] HX(,kqp]=V^XQ, 7a?_o+Dc )V0'w=QӕqEmH8 '`́$vy95f&E# ŭfhЏ r#7{M+53 = ^F{;8C35ǖǷڲb=Wn{yxhZB-֒.qZIik\[pOG8oCJl9 O'ZH鉑]͐}@)HC;iqzqJ؀r w"Bl d>K0PqyaΩLH.lY0|%_ZY1o sJDK`I|CoȊ_}%%|{Y Lu9Q%%i8;`>[-dlגd5dsx֮pe|p ~Q᫜ͲAxdu:]p5W@L4M&0B z8yc)aSб/$F<Å\؁'a_nsKocӳwq H\(>%J2@,UC^1T-*|:F*vTf+ k6:,B)@lpMm)zJ؃'qg4K8:u0HNb8p&<̈h)-JkncxV,&2V+AxaOw9+wJ `gE֧`,dwbod4d pT4ڑT ĪLi<űۦF2c)'Xva/(/o cCI.6scI.{.a%!;%΢)/N˸ǎaܲAdy&$_hS]%`,pAK绦;tue Ul9`a}ψKRDȦQղ4k&.f 0X#lA41pt&nGU{YcqG`uyiNCwNx޽gb8,噎4YL@:}R޿i(']㿻V nϤ׺a"R-K5O\BӅudBwU+J!()JW{XժIڙ&,IA~|`3/Vʦa\0>WAG$߉c669OԺDZBOɜ |.zzҞzzok3?ⳲJ4 MخkX¯+ۮ vNeO@V1U^04K`X)phCbǦn]6^(AqrG*tKa9@6^ a8Oאּ/7*wG hF Fb̛cRǫ3gL*nalp0gڭEq^QnGD jJj#@{v&ֳ Nlȋs=& dTUzuBNm25E3&DO",!乫ފ"!z5:hޢ,^UlFQ_@k;6fV҇$k5/>[ϕ72P{HMXR 7rs$%IQ|N˔z尪Ҭ %rm?^۶F]hƗf8Cg&SwFF)V:żNr6rdt]%ֈ&+beaK \N̑aap/g"4iohj\QAKHג7Dk(`EYOf%V.' 4_tÇGlN]S\JI˂LFvJξ98A\g{Bm)bwڬ*ixfrKחb, /M`ݖ.y HYŊR݆;h)4:hnO8@^[p]" sPXGRAS^1F-h'H}X]&+Qz|Psjy)=t /@'P\aS޻U8 Оam ת#( /Nü>mwOi[1#ǁ1\2ۢHıpntUezY]sD{]l T,Qghyʓ~oKq'`Dzr̗\i,z+wf~=ޜ'8+ڏH:M9ҷHp<5@|fl A;Krc,(zW"A Cgdxf<t$Z.k'EH\yJ=o_ڻ  'uJ*{BבuaIZi[K`x|?8cc yeT10J/ð-gdfyJU4 \Am"ځ߽3ŔDrmg9{l.Zޝі{rܣk{]]MU{.{-,H)Q+ G9x\{ptEi3|~nHY%/^uv$:m(o?ۗNFftܞ+?XAlhC$djJ;?}|z{"w_ziL]s򙲭e/AolOK|%^8qc;4&qiD@~ dF_ucoovC}iܡw ڍ+qVYCPp}oȺdX)@}uD+8}aCG;upx~`8?9X~Y 5aQQѣ(FO05a:!p`vr*ݪ7k>Vʣbr{8q]W7ĭ5)2GnʪSRaE ) bzb잡ؼrJ->iMjc+ҫQM|!]v*֛udYD^2"̑w^0l7r/CdWDpz~R~9R%M6 (.. dP#I;$aEM.MXpr.Z+YT+(?O$]ҧwҥsk?YB\UVegWPp;9%w Ӹ<{Mv'Z.ɆfPjR˳i K|ŋҵ6#^rϵD"X2S6ЫuĐ«d5:uz@yxWol[Wgβ6͖lkO鶪Dv&M,c8i,+zN^|}q.] T`CUMI 1|#$$hbP >BBGl]?w߿u|C##GoySLu9dt&-Zp(7DZ;6\i^#0fUwVGGaT J6h630fq8KQspǢ8P_5L&tx7p2M7n<ڍdUGbv:׃vB]{1A'蝕U`&1JT鋺o\ o;0* 2=RP Sr lj]z3+յW ёSyqR: !TpYdIXiVvkz C & D.&Ÿc$?S nm`n̷/r4)^sSV~z22CbqUmX.uTg`Y%!7?I#~/::Fcş_; !|X0SFuV 5QL3,:WXݱd^?]: ^9P" bc~vDV0QNQNoX;}S|Xٹ Z3Ğ'ԑPδ=;\+d(s,-ZժdQJ=yi=B(Vh?=>os$GTBGďl7.P}C1._o=.:DE$kbXai"hȈPfP'F4u͢R0WeЄ_)01)ݰk[R/O/-ffBI|{ܓiRrVl 75Q_9TE9YNe_LS >5{eU**7h:osYhyƘ_Ipu$zws38,Yk;_O\9lH5f,2pɑUqG,2޷/j<dѸo]:-ѷ6iE?*{e (z 6,7ƝF^x۷N 7[OO2)6':lPr8/'3QP-4OLܧU"k hDoa8rdcG3%u2,/ƨNpQ yK{M_n]|yležA]xxY|ڛ8c[84:KqEIJACj$w+: 5fQp誡^/6!V9aѐa7 }_~ᵕVfFv4Q,DB'ݽzRT{ YxS |͔H1|2I6߱w^ƅÎr$85OQT4 F71<ֲ"=_ rJ'%*Dv*Wɞƶ7i|uuKYUp4PeEl!p~WAMWz8X!mOZVPZIU{-}?š:Jx X63̞@ci $xw5ӆw,.%Z%E% ,2LO0yF)LZʮm`=yۜ #X65;*(&k8(L--MUPMSQۣP+I-*K KN/ܼ>7S$:YO{dB4l $7KgWBe LOU,7MSYx]4c%ɟٝsS'FM֏OφkX&^-.]MԔ̒TSs2 RK@Xk.ԒҢułA \HӕL95Kj5=[O_m^-4c,(ܳIttDhd(b߶l_]Q uq|ʀ(Zߴq,q1Ll-C]J]ko{+WIYPON*`*dE)0HBbXw0P;#3# #p>pts{k VG>8; J N ^j%aJMܜ~d`W^7Iv1ڊ if0 y ",JUT <ɂb~9e,b7@H> ^Q8jfX5۷{~gTzƓrM;8JE(;_k8UA ~h=mH=_. H_gD}*ԘhD7iE<{77>eDSD"E%c:;8f}hp8M'4#~|Z.+1\Ƶ:E=^9n3kW,ɡ{lB0;a֟.w=M l/7|t|U.ضϋFn@ Ѿ7y7>(T Fܻ@AQq@ؠI0ǽҙ4챍Cѩ8%B!1"1OXp_J _jă2z ˽%HqBTXX 2`T%QqveܐϘlwrk D6K`!*V.,=po8".E5W4ʘlvd&D$5~7p~0x$B:7W/]Vk_ݶxnGXeK!g>XNa0]8nr5]8Nɻh͉ݑ{%y1`"OvԉkZ0Ag\"&N|qc6Hp y[ِu_t᨟~i/<{),M[2;|͌sgrz#CQ]gg_tkcYJ-A簡ȳ f8L2BesBV{S%n)%t)YLf"-Q8lq~Q[3|ohNVJO@GeL_uT5RU6^n`K,EsYvU'6$gՆgPruJzmlG>T 13~q{ĸM+bOX>\NU&.&7Tݹe$rq r߳ Y3U٢'_@:vb%y.haXlA#}k\gbħ kʖxW3INüxEI|nw[i '-+8_*B ǥO/ ҉޹t•Jy_'ev2BohW^4sg?5|6pu\ndLT3ߺ(.ɾQey޾? :x?; @x5$ x}KKrR+R' ۜW/_뜓X\웘Z$'pO.M+kܮ#Ȉ!yn$H48/179?(?'bfYLM9M рĜԒTdl_#cH=x5Ύ!T$67O<#9a9)R<;=9alt>K:Dx;i_7`U M xôibf%3sSbDzTܤ̔t QRg ɓU6?N<`%~EE?*Zr)(+%eT*d'&d+dd+%d%dTHdy5}^ݻU%a"H "ZuvZ&Ig' 4`!)ЎD*nɭj&%y- ³m{5s_ hFϋTH v%0USol{~.M%)j1WĶM9`NW#Pm2F_bfF4rdwK'!BBǮ`kΆؿZ~>l@9W|7Qp 'zZX[V*:mѕ|vqh8"S1맑1F|dmBd?kkx|=hh>C /:Yݺ/5Xٲ>j}Ci@#W>,uwnI\u*?)㓖B ^jSTolqKzmG zJOB:uJTI , dE)^*rJ+ÝR5mUcHvuS ~.6-{΍YU#Yzk( BzCSA;D\{u|}aస Pnɓ}uA/;y͔I'7H^7EnBB%o5'o|ۿ>_}/$.}Wqwnvݽiڲ޿Dha{Jgk@ֳB` s8&4IEȇZ픒+ tyLӋGo{/8Dw/&23ӷBI{!/gQ!+W! ;jwq[^329M.YZ 0)ѳ`5l[g.J5*s|lnk\m7ԏpon -Aˤm+(ˀ>FvdS١*Gyz(zquC_0D_QD<<}jfNY$m$-qfV_zgwR$;R)82iDž WI4޴E74c ,WTpf%dVqt*; (3R]r{hH;ö,\#h ƉL9+pYY RO%Ȃ[;臢v!,S#{fa=qgP^Wհh}%y!@Ӟc7Rjq<%kN"h?,>j=#jo!'o4;yTE \SƽBi<2)#%31PHA'(lϛɻ?hd`Ue-3~H -OUrp@i2-̻K*Y׆P/pJ)<>9I'"A!#+yl"T$hD#hig|^lϹ{^`:$_}|_r1+Ω!5_?\$Y9 Qt|9FKϼ 1 {㾋oEWM|\M65m>?;6!TQCfrb6g\Q}^ oZR! , L<<*a]}gkfr͒J Q? ڄ҈:~mhul{sty.%UJe*kMh6hd(f~X9UgF$0[T c ZuVxW;mBxp%%t4<fxuy<[kf&˘ܙRdIDYƌ)[7S1bֵ]Iv EYݢ4B7z^y|9sN1;wn)%lɲ`ۼm{pQ"~^/g6:ـME"A7ߐQHL#Rq''ϩFn īXw[~oWp!DR_G6U'(}>I1QFSijjWBn.m_/ETI{~m]@ P(rP>4M=}sG?Z.i0@Xv08`6#>+8W|%D--A& D,!y{|3=|Ώ7.⡛:0@W^ b6X k& Z-SZFP2l-bI"|"y0g7Խ"d)Y[λT<$un? ؠZa/teagNCoLZMP]G >fޔJ-sum޶!\".[|=o;%zlٕ < &柏mDZEmT ^ Hv>.]& ]jzA-i`:V`݃CFFC:z\`7,HOh&A"nxk>Yius뙢T'.ێ=uך?%*kkh95 桜24]ۥxiTdD?v](Hb)o M$c>1>1AI@  !]Xn_iICuJ "p{>i^|#d@˖M\rke]O3y#87}̍\R^σPy%)I2`wޢR ͻj03}[u`y|oE{gqMsiC5_. 8Y]pk֞[G4B-IS./h98R(q3i`l?AfuyKJ| ܏VG9YSy,\U2LF%SJ/<Ϥ,]7 _v*3{KxԵeҧ0]L+wP))ɵ2:C:h%Pc+.oϓp6n*YyIylaA AkXa;4ppZٯj24+Ǿ=ֻG ]s?Wz~D^8Gκ]s˜}uMfpJ7& k]8rē <0OELώNLqbA PpJⴰ!U-GlmTnF >-McUWR2,ƒ^Y8T*tg-X ,%73OGP"O@Vn47< YpnXk`}]簒@Y7YR~_u_1x!$$NH uͩ58^,gNB˳b0x%$$~JM;(‚tي6:o\+3x;$$\|C5j@&#۳2b;o ijG:\:lY"{Ix{$$A:(Whx(u(<100644 GormClassEditor.m|4lrbR# }Z/h2UWgN֠o(c Q;ճ2m?Rvp۬iuA=21m`J ^6Tx[ReHFmn 2w|c.~rf/#  2x0$$|Zyg+k+A ХrhȞ 1)k100644 GormClassEditor.mAژ\coEZ!"-2Lg|\ S(kWQH0zʆCf Zfs𼹓bER#}*۸Gc?r4>x %)B@&$ BXu]x!$$yu&R?z;M0x!$$:j&`'Yc/xY$$%ljh< "OU=̕'JÌ/w:P:ɖB):yr}xM| )) gxf$$ncK|ɟo'2`>7޼of7` R 100644 GormDocument.mr> 3t]yvVZô2o MUZ?H,ʠ\K >B~'x$">jCC{A5uRrH*2o<MY6:A|*h0 (&q4/ GI9jA y~Tmk~fm6-xF蓨emz|*} ȭPP|I =f4,Oӓ~HE5f @'aTn  dmbS(bnAF69$Ӵ1$wZ=b|ECh0F m52A7q3| H'd'T = =Xmh~ tǓ  m&%_0]ŴƪY?]Ԏ ƽy".q,sѓ  .Qr4}c߯͢[7cbKە󖞤^H"KCp\@'Bs|Ws'Qy`ӓ V yx,"!>jo< ^tHվi^ q:>Tn100644 GormDocument.mGoȠ`*m*4RU&q(`r-jҬu~Hy][: 7 x>! >`':D2K$eR= _i\ʆ ?21 jlMx: 'I4syB2 JG9]:SrTu׳ ^~Hx! Wj&2Xg<\ /xT =k@a>h63 u /h^rݽBzߧCk 8;3׊|*sBE ^*bx! EκCفЬUXP P/xm /Q{iPhfk6Yre=<ʼA9 !js͏/ZֲuП[oA4j{x! *'E9u /x K ^F8T;W?N$ frGU(100644 GormFunctions.m_S>)IVF%+7y捸GT100644 GormDocument.mdTaI5mUϗљ Zc7|ՃL9x5T1VNdԌ{*c0 I'x! KHaGne,U6c_ K,0x;p\agfዑx`<#n {,< ^xk;f%3sSbDzTܤ̔t QRgs>;=x5 1ʓ/: s((d('eM^ lS&'Z*Mu"\9E{e-%.N}}`t DU%VDMk^&4'ҐRۭ'&i i55I@S`k3ydi..kM-$'Dcg=LbT ̜T̲<%Q8JkoLJv돼ң*B:yFp^+FQв,#e90t|a8io^=LBxTOP6BXf!#$ӕ˸ZZAS͉&d>3o FcL|3/6|ws#_FV!i8 _"KQ)J)5ײ6LL-hrת IXwo̡B2˲%KpkY^zoPV-W=WxѶ'H3 KW)'q69" 㫸_gv{!n霩LزvIsQZ]g>N1mak|;5k^i?z@;{v^d_'Niƚ=,WVjij77M LQ*Hb>CuK<I Ʈg,3VV /ңeyRR \G8 w'6¡xmnY6I22_P,K=<"T"9Jmmzj֣"\ acjz`lϠrb%\:>~/+Cm%XoAȁB[/}}s0(pS!usp}Jl>ɇ#OɌ4pLÆ:j̞Zkuؿ. g֭~(?p#͖d5QxmRAkQ&MRHLbl4Z1Rl UD$/f_1E"Ho{/@z'tfwv:aKU7#Vho3qߦ@^ qF]WԫδZZ^i+y|1.,KjS^$S|)H$Ȗ{[H󲹭y,,Zx]RMhAeӦe7IiL4~F MsHlv)^<ŃуT= B^/Ew%xw6 }͛G?q3n}Ϙj]G=Jz`}$[xOD|a?] | >lse10VEq^'mgX5n`}kH YtYDO/M2֥eZ@^Ǎ Bؒ$/8 @ڽ?8z_S/pq5rʍ4OXZ$!HL ]W;w$LMNxvY5c~h{;[D7U:~M% r2 cUrܵS7e0fwg1y:Niqd xVe@.6B4KI#xPs27l0Qھ27Ijz=j llbA7V=dSh[Duٮֿ!`VOLQ`ebhڒF@xuSKOQMHGE-Ţ*)F!PK{ttn) qĕ&71Q4QCBCn ƅ |ӂ '8=9c||:[m,m{ʞa-vqHtܔ\8A;2rqelc5G .:m78& KgU>C, }YU[NH$k 󸋺Z7UoݢO-y[OnXN}mfjOg.0W(JM,.I-RH/R(,H-ӃJGU%YM 'Tl_듙XQ!ńPD2sb7=ԝ7Fls]Cx/<xk͸oy$@}2B* Ru2sb7q69#nx98U// loose connectione*|4'-AWlmKx8¿a?;Cj^ "8j,x[k㆛Fo1rOJM.QHI,.KM| Z{6xqR n]'rUk[7_ 넛 z&rS\.M~\ .Rx۴qR K''+NSNo "x[i)6<D'ᚬ+Y7q,4tͺ·'l(Zm {q DxkZEG>}bה̒Ĥ +*Z+I)OTR|Sxe>6Dlx[Coq_7)[xRo f%3sSbDzTܤ̔t QRgImnEx[j +70$ x;r |9xCħo.n n ustomClasses 1nlp4p4 { p/Xo&8qb5Rx;B Ox7w-`ΧkQ̾3 w+xB zdd+g(䥖)d$)($)d$%*gU3KRSs+UͿ>"5}xõkCobqcYsbnRQfJ:``dhly"jF\8'Fx/AxCobqcYsbnRQfJ:``dhly"sw*xͱcC0obqcYsbnRQfJ:``dhl3y;JW Ԭ1xUoEW pC}-ąaQWjGuD܍ޙMnfY U{Gĝ#ĉ 7;um%؃=޼߼} _W{-!ӒR-ChBh _ XRTvɸFµ6TO kfwujp# ]ƴDĉgk^CK*7 7{/hѯ>b Kd[Z]L~{fwdz>I, TK{/,&rr[LIwp9yqPKyJWSR"LITȵN(+ʱJ=PxMRze}(PwGTrt5,ԡoܦ]f0۲=J}ʞKiAv\^1OYLqjoh\D[@ '$Ϡke@ͤz9;ϴS~F]y,,;=a&ŏ«eg[[;vns/-Ӈ&g5M'0d.ՁObw]؀utZ90(UXGnDPXfF#z4DUTͺu]nӼ!ˆBۤA\[X(sYLݤGC*A|= ۉ)GxܔLE7(CaTV+Wy{!3%8GSDd:ByiOCEt'BLuO 3GHt8!T/jMBQnS-)4[؄AOԙ&߹GGIG4}DN&d?Ʉ;t =&5=V3([P;x4 ]̓w1L~1Y}s' ; k"x;z1dnaliy糋&Ve(*(p)D_0&Xk,X_sjNV^j9ac5yd))]a y%y%% % @zzzPpWaq&g5’h e`ĜX]%\PSsSV8y l%2z%NT Ӂ0Y+@Cj@q$'(p0$IB Z'eaJC2*\d&(Bp\\d[9+xjdC%%Lp2)(L6 ON l%4s=)qf?x{mm f]- yΩ99 ũ%A!%V bdCAoW3N'(YP(OxʹYT7X,UG917(3%uT0024ԙ=B x~Eevf!%\ܰr ,"X,ʙy9) `Ee%@w؜7qe&=yN^"kxrTeCobqcYsbnRQfJ:``dhly1F>qQnxToANWlR 5bIM)Ԙi;20 4|'ӓ4wO&6.,FI6̼}{߼ټykWP ru2quzY-9tv ~ԉ}o)tժj:kXV\ # e@iҨZ Üگ›{(uj:G8WBɷc޲'3gU{ԏZ)cu}V=IɿK4gad `{89a "pz&4:HV*@ 3TSa* !iLDOk(reM&R0 /FfCٟ#H,qN @0`,MutU\&ѰXpM^Fp;lO4w&3;L2a@ETFDAuL ż&4|9'((:y;iۮ<3X2j c1#o3Tt+;nNG`w:):BFx8> ,a #K .z YtuHxG 62֜<@?13pVyfz =xm OY+((pqg)*嗸3pI$m^s-Cj^ YEx3WIY?XGCYXGCYk X[[]lSuAxkzm9) řI9lzKv'֌yg+$$jZs)AA"X_p@b^jOu4R3mKKRjj@ijrqVoϴ9Y^v(FYbͷ2pNe^(h#t,ƀNŌR-o2ضddWH/RHIM*MKW((-z/u;w=cB1)ťE%zzz750aJd&"KJv\xlv @-3 oViewsNeedDisplay: YES];=U! 1 }~M$5<{xmRKOQ"ƛYic:JI0-$D Z$8m/fff*77D].jH\w• cRƭ2u2|/-os9l٪*1P, U/}ҫ4?4IAw-<64ØMȑ͊~HI1),M{L#u]ilZtdtL9.zXQ8(Ea$ i~^A/rg#wtdž]YGY!2aͦSjF&K~x ,Jf e: ΉIE)@NkXAx{m B9œ\''ONT^I?֚Sar|Uɬ@9ɶʓ46*|5'NNL|yfUMzlE99G Xإk@ۺ812tx;ڢ(.O]K V) !h"V$mZNJx%ڢÞZA`[ZZ*$ Ad3x;L:ExMR[leΙNݡ^ P]L%l.Eʮ6[ۙegeE6 FbjˑQC TvT h`bQ\Z%bT7!?;;''ga\^DUXQ,v|KxJ tk7n| ky[}N- ?ZS HЇŒcXc٤ZR~zX>?}2(ԷN*\i݇*t!|pmR~"M%ޑ0U." <2Xt}R~&/Q^~r-hVq|6[Aɹҷv`.2Z:g3ě,p yY/5/xB JfiJNZ>w^w4 IJ}| @k5cNSݲrK"뿼|PepJʌ9 z[9Jnĝ}&X(4)* ~An$TWk@ewC?l1-` DbT/՘hLn>6F)i!P|GwO&3:ŲMroh{hC^57)Y2CU"_i7Tf˳, =>熋  yAWa':Z#ܰo*P E9>v.% o/`_!a QpBƮi^{G JQKxu B&.a|w9B\e LVu|f==M}",y屓[:jdekZOl\y" 5\'O^x%bu'۵ln?Ŗ™5O`ʁ% ٩ ťE %% y % Ee) iE@9|bRNL2'585eD>Fe&I0sS *!CUMH*䧁 U@23SHI۾Y=Nrxn+-3<- oldD4P5`o?6:';E,g7y7_j ]7 ėo$Rn @.;x{woOuzX=xL,F*)W)$'j<- (int) version;"h* r0+p|kZx[!yDf9Jxn=rTNf3887p[#xfbC BkpH|cFIbQzjIXjQqf~_bn5Ģ̲ԐʂT>:gpLh'{[xk|C ٜ̖:ƛrUJ8x;sg,f%3sSbDzTܤ̔t QRgi&moHx'XpvԼ4.6x0bC(obqcYsbnRQfJ:``dhlyqg;x[u[%?fx;azf%3sSbDzTܤ̔t QRgYߒ}B;xiruf̲ĒO5u'XL>bĥ;KIF75xey|#^cF~RVjrIL(8(971/1=Hz<y)\EXFx;ol7_rN~qjBk5dnԜ4̲ĒX:n縯0nȤY)3&bxmJBA EbMA8!L-ZU"$Q(2=z313)⺇hK z^,;};m#^<81܄xz!ՠ9Y=W\>|j&]vB]o48bƒ剻ԥ’;\a18%B5_(ؖ0z!aGA ϝ˒0ZD> 0/2{Ne39ك\fk\{dFnӁ͌:b&s4\TPM K5QY#`y4 @*ҀsRa"p Tч1(B},m8.ZKiy1\ťp)~(:OݴGu:|\WO_#|}Fx;,@r/o]Jx{ yQrC8obqcYsbnRQfJ:``dhl9l20k9x('!gL =]x*yLrC8obqcYsbnRQfJ:``dhlٗh(;x;&Br$f̲Ēۙ9RM[xϻwrf%3sSbDzTܤ̔t QRg Lkσx%7 #3 > W?F?-F@/5xX}L1% &I&0$ 8CHٴ,=ƾ GSGI[ϦI,mMk5MuTuԩͦn?M۞t{>._y'^`u5.nSXǩQꆧ}]dJNFÑ`SCQV6DiuE|d#Lv= uwP$6?d Z5PtFJvLJD&-g*5UN~5FHoT!2 +dAZ!Y.U3YDRf/I*EePt4&,3Hl9K5Ձ1BK*w-jQ&4WI)I$di|Hz1NZ(k5p vRVlyQe3:Mٺ$kEP ڎs@ZO񹻮:#hc%OֹMz\OR#3Njjqt7}UGMuXlobWՇ H)&fOwV ,]DS,QiqIa\A෎N;r6l0O«&+#<ކ1ȷ45t& Fă>Vx =KS]y3ҷc6\^7DiqGh/nߎ[k&~X\VTU[_೟ɴEoR,ut;E7זX6{)#NsEcrZBƺaĥc%-c<)g[p 4h 9k@V({r%&Kx/uCO[%-B ,rǂH| :(ljH5.3 !3jJ6g$?q|&9Iڦ]Z"PTCZ=ppQa}p!:7?;ofd/'-XY o??v8Lw2x X~a(qtb,,e9:l:x؆ (tA'<;CCl2,' $)QJ ;󳐙WӘ1wjEJz|tURqQ=v2RvˎaWֻ~~ׅ hZC#;Rqc>鈐7>&h#C: j:Il*gtW+ 7O줖f'7) /EKSK}WPi>2X~r'wIa1c&Ӱ{#o|4>~(y2'VVSc"a0NXE9A7_1퉇,rON.?]8mhۺD'@\?7 U5̸ؘ-nH?R\[3 ʢ?b+M6=@~ VZyGoL7=3m4+!^L %Iƌf7|CGBѐ4Ik1ngւ~Toy'Zκeo+dp,&b2cܧT%} kAIELz"k?NӃޅmgwv;T{{{X!a37?BoHD쾧Nx=h",Ӣp톌2fTX#Pt]M>sf:X"Ǝ 1 \ᥕ,w0Pfl5|C ͒7Wk/kJF8 9aۀUee150A;XŮQŤ( ^2OYRbb ЮCκNP-(ƆMع`D؂}ҕqv|r@1Y(g>rplRJy5UPY:OgƼXt Aʺ(LSg`+0Nnɪ1 MG-gs>tc <A 6% .G@7]'fƵ}pC+eoc6؇Ή4YXl;g`tqp_}t}{ɒe>< FPNǜG)Ne*uQV26y FUĨ`ҝ):::V'O[<йvh4:94d|6?)`n;pm^pUU3||s^x{*T6]wad>xIڳE_|9&aa r~)c.Ó K-_.-s]eXʏ^=hֹ}E,*|j:t%PX Fܺiئo^ \x/^46o][~gV?N{j"2cxuTMlE&K&m"T1QiGuJTQ-Cd=cvI@%@BSġW* 8p)BH~.*U̬`ɚ7{{{_w}m5pXF1U±v޺Ք?qX޻Mn_,~҂I }~O2ĝKwbdk^ ZFL)d2qq;85=baE6>rZ((9*Q{(*r?Bݝg|ƺʶRκK%XM8gg֛}Dԙq4n* bHWnt`xыW~ršQ;lk7OW{s ua֑A+@3jiO{ԯ,lC8 4XJRpzӡ))%#_w7 wqB:̀Sf`̖ b(0P(.|!]^~\$ZK$F.FR3@\k$PyFbk1~r/'tjPӰyteP]jZٵ{mp[ͲsVOׅ^|IkuLk^p۠lCɷ.{"qb^<'#JiQd`40Em?:^'Wpxn^v7ۧO'R"Y PXmlcsW||*O kLJPsLLS<2&TRŃ^gl WS}]-ۤBk:n$?6ZɡY8(rލЭU RNwUyփj7$\8{I@ \~'L b|T? -xUKlW'$"l?;NIb;IH&$ARƞdxƌ1 ZuQDEtUkJ5VZE7EԏT!A.X"Ul73^x޻s?<fs9'fNzS$Va4#e4#ʲ2&*KhnL&ڜHI*V \OVJ"5%H@; K+Hyc2.b +s-a5#RL"f\xt2PTY$H\b ( ?Xsӓy7OaRq Ⱦ8I԰6T3zNeΨ.*RYX0O=h`6seL_Q<-=\@(^s|x= Wۼp3 \0O/\rMQ+be5J0~v-PծwVw(tE,|lSP:=3csw@#_3QQZu8 K95ǝGX2 첆}Ycenp$n:Sw>w4pj%5gWc}[&W8!q}8 Al uw 0wA=v0F=g]Q,cI5:D. x_?dz8Xr"BIktɅ79mgK(aC]ꁠo!%a$ڤX41"87"~X,µ>;| t#5ue G7Samm&H pweBE3r,2)b(eQVV~!c@Y^MI<>?";fNH~LY8dhW6'207"p/mW )cD*UYyT}k8DBq9Bd2Z`G%˪PT4Q<-Ffau.H.=nscC+oVQVV VaA>YCEXX:`"nV<=U¹~?q'im]Z"}5ƫ2(AVpW@W~2EU _/U*gr@]Kx;q? QJf e: ΉIE)@n% DER7~\* LNT,C 6ެʚR7EuJ]gɎzry)3ԅlϼ"FzP`6w١ƚI0N7W\Ftrr;|;}yKҬz@_BDxI0sD/x$/&xGߛnzeg}QoBwτC٬IdMOBy 2eIn$L~x1;R!V f p`qbP vzlt**)àZI6)Of8½˞XOS2H3-{&8\\9`R/8 ` S彧`NUkC1^IJ P~μ.NǪ2uc9j-rAג*e$Ew=An9۟rք*:>ނsZPqIWMAbh'1ځ7A_iz5}^{iõЖDyض~b8PualT6s"oqJؓ*()l$&yk : t.Ptʁ[IЗә8E Ƶm\;-Wۘjƣ]EwK?w yxka}?ƞmE=["MP޾ [zֆO\kdV"糵~Y~j:Ym1ZA'"CD=#2XŶޞ{!QO" ~OWf gsaW/EO&ʌ{-} $xlτ{gϾѡa,߉ot|>:ҽ=~x9{am=ɹWܛ3nj-FDOC8K/8oQ#`|P#fxW+B b7QӇ8`'2OYڸ57cmد"BQzݷm87'9z7׷$[MuXm.S>۷ ,sJrB Rb||*^8Olo)D7nyLUj3%VװX/TyskY #xGQZ ,ը _dIcῒ4\qma@ kɰ x=f%3sSbDzTܤ̔t QRgs'3KbI5xmTKo@VUxʡHAmpLHIãqV6ݲ kAU@ʍw'9vmd{w7;[W* y|wɁnp=Qtc! $N$j1j{j``.eeJΊ, #2DmTm::AH)]N1#k)FV3yZ꘿@%6}UƝ,B!7ȑ:bxLOenu9wUӠkQ9jt:,1\)|u{\zb׮k"apt̿tAYheW˦ֱ>o,"-\QUr?qbiΥvfz5=?ٙVp2w[`RFTeaBh;5-P,hh99CYDb+vug2QY#򭢨_ u:es0~ !T<(/&B M~7\eDXb ]piy"է< $6 q:[.9jؘ7GL v^Jx d ]=@DI$ֳjRNU)Wc. D4]tGu|8?p_^x~.g%bR6QZ 6)AK%?P՚R&d^%2u>;Mp4f6UpLĴ3r0eRl9aᏰJS{'NĬn6uqb_ '22Be"pR>V?mvvWZecOaK];J.XSqY$6=9oѤ98Y5~zEiAbq/{Y她w<*~!-ֳe)5MKjUlevg!yO)>$ BD$j[6u7& 1,K *{22u,!~e7'X+C]LBઁyp`=x9tp^nLGl:H5.Ы_}zds|r3,=tbT&"3B莢H(- ,jAo n5\:җcS{˴){oaTPb*?}^1 EȺ' 5 ,qrhfpD.`r1!w.I Rl?U!XQ1f].#?u հ7:eK>@ v-G1(Y+U~iyUyO>#Z($KŪ~5#_0<: &*%Y jSȯ% y^5b^(|H@d zt~~yY!& <7N,wX!U0pik|`#lxp# Gg?a\(|.'ds&B)T\P"U(ϵmݦǒ@M{5JDDLs{ܮ)eja-:~ȳ,VZ<nCDT痓b=rT6n%JaAg+<Sr( I~1xѻdEAs#.8m?I9(:9vg3KL&FȻliE>ƺy:ߊBo9M)<~nB4K <^oN{=\X:o5oyE7 (BMqow?I2Q>^EwyAq_Y/E* .%_4gˊ{$-g60EN-Q=[LJNiD;c(2<-7hw}_ġUcKm@xUP5 WT+ J].K " Y,ܼ,2.cQpS [$*kp1")N_wLDxQc?9w2xcsI`s$xo<ϺumGm_ZŦ&]n%x[&{Cmܓex7ϓ2XWhs @+x;}3sD'ݍW9J* RK2,v,*JNe;6cdN*[n܆֓\2bů2M.[ x @p9,G)Ll )z_5r__-\BdeEk2Y.M?E(]|X3#oXg`=ځY&zͺ^ l / FIe[PY gTQg2R/ATXF9\ߊS9y%grjbˮֆb(ENdL*%5/|I ~iA?S&6R'qS?L~:͞mC̑ᢱ >pE#7 DG]1exB E|iũ9i ťE y%&7(A|~iINjs~NinPe^f5gdd!“HeSr% T{>Q& oleXj& )k=?_F_(rfJ*JM.qɱR<ߊW E@j22l@ZsM.qg2R➩~Eo?4Y@휗X=<6k_ɸy.xp\*a,`XKD9H 3`QD(XD3#ϙX7\h1E\RHGʠU *%9 @2y~CyY_[V5-j!("Z1u4݃VwEI<3 җ)d:YQ-XAO*72`=AJ=2@f|cK|X&C:1B@T`Y }T! PuW b;K:0_mP@Ӗ}\UHɿaE׹r$Oj3.gөRΝ"\ٟ8 TvEǦd)bO94q{W?(Ȃ=la?V!TMUg'i!Hϖ)꺖n-6!K]iXv`m{^!8#K4ZKL]pHB5lUN+;L]<# vC&些IR?5/Y/aDzثREL| tsin7&gΛP'0⫯L6}^wsMsڀ.Hx5H6lv,䧽R&~ȓ|2߾KjzO?,=p()A+rxs*~ɺ,zX7q=QvI,.V(.-H-J3msEb'_}7Cx7qbL]7Osr )x[+0O`C0obqcYsbnRQfJ:``dhly% V մmxjbJ[61m`@P3-3'5 xC-l$l3xhqbC*~G'ljx*MdC 'Kx&Gd5Nf==8&r)Li#x#+!YT7X,UG917(3%uT0024됚ť $3Ӹ6ldx&&>f~Vu%x/!YT7X,UG917(3%uT0024Q vR皼Ybr={>x0v'`ҒĤTǢJXk.0((/WU v*-)sNl![9Ix{{)vCobqcYsbnRQfJ:``dhl9L9x;5vǘ&Oفŕ:85'M(5=$-ȥ(1==5% J!/ر(R!Dgd'e&[qqNgQp/HO,Q̉I40+Ex'faͬK2&?刘/39S((or4W-g-Lf痛WJj;N7Xk X\/إ(1ݿ ($3?/?/zGVͭ\*%xx.\[NOX S , #5X SXl*x{yOm^~"}cx{kQjZY_ppIQf^ff^qAjrI~sNbq_bn5Cj^ 2LR9&ˉ5xeRMK@Si (h=x T~T<6ɒnMv&EK^"MVB.o޼fv]9VVx}[:\޵F8es([ƓS$8"iyq+>C</f8mNB$c\VY0O0 $dNo!?h NJ@BI@8ȄTStgRʊYp=(=SYh'W*^i++H fTtq$RBSVS?vjH))8‰gݏ#k[0LM Q +(~ PS M]^ݩYHnw2Q= B!piMLLЮd(pʙ޺vnV~ xk?ba1[Qb^vNfBpIQjj[fZI[N~~S~qI~,39pi+h8h*$'&d9$[)hit0KA((Ozs3mn=ǢJĜʂb[d 71/1=5% )?(,kYV"@mBY QH`l]2BHǦHpO S(,` ,h] DEuRM###e r>\l?I+Fl %.a0K8g))BW!/MzqZq= 1[Bl}{ζъ(Z l_[gsփa2j0+PMp{'w8m;qa+KBCat=BNkfnHD&ݛi;}Փ"8 vT|mQs3]HTW(m`%| ]nAe^®LE'ݹrf`RCg%"y$ZvɑkWwϐm2φ;+12,Wa) g+eyb 2-9]+ V ')B'hTK,3^]FIW9't )ˌ!GvT2)^`Ҵ $! %|}߉㮵< *1 84pb}Mw$!Ll"}W+@ϒ'hcvȈE™2#=bV{f1h25Q^e/դ%HD$+h1XJP']V))XXU8I/ -T\b@ğ(J^@,iU12,Sm@r~^6}H|1| ys؃wvlqkN6^s.D>kXll$уhg GBY{߯kc( ̥!GȻO-9G\xG?zDVо8OkHR|=b9끍[΃6YdJt~ŶSLlp!xRShs֑3CXrq6Ȅ`9M K v3:!=}X! bggzt;zHCRDr͔x[i# cTV]!5Gݾʥ禓>cf%zdF}-kkMs44WReT7ڸd۱z;W:)L뺸:s;a#(i$U  }䍶fb'x1("}[=Z9GF*U 9C3B-W|-'38UГWi%O)þH#E2y^wzl%Z}+kD¯iO dN6TŒbFdxC{L\ ͑Z,Y[Vd,< K0Ph[ϥl{_ 'M/%xūφw-XY>AUs΋H~CLX`YMNaU -8_/xK Jf e: ΉIE)@FfE`xgihsSCfnANjnj^IbIf~_pXfj{~Qg^qAjrI~Q&_ppIQf^BqfU*\9'/17KA((o!d5W-\~$m J R搚ts^IjQZbrH5RRt̫G6/ةAk| *V*R&TR*P&th $f6e Zel?x{h~|$'uxȹsCobqcYsbnRQfJ:``dhlYU zx;-G~CobqcYsbnRQfJ:``dhlمfo ;x#V|}ƢYgVNU e5<{2'䛜匸}5jSTtK2݊sRK4R݊sS55'r:E)@Ll]̧MN+I-ڼHl.MxgCs禆6㺐%|ۗͰz:XF(wd\s¶i]K/-dX3`KW4N+L8?K@ %y80p/to(T1[oH:5!) 5А9V4-"N}TDy84kӌ@ %aց-.HOfo+1Qum2Bj(ю[0ނ5K C u.8 dQuSr/?9wbF!6;֣RO+5iwۭő{Lntd$a9AI4H&љ~LDy,W~(vkȶe~2e - Ygbvz̵A6Y;㿚@?e#:r vC0WK"'Rī E5a"E`^*io31e >%a Fsb .a#Ƕ^ $M@Q%>}bZn=#i00LL_&M'ױWg)RR/_GQǐ"a_( DSoAy<>r?^K8KNgTг#92'4h.SX(fV2("s<8_Yn6Vt.T&;}yiCh@DtNC'UoV6!A>4 w7v @YP^vG~a1~P6n\k 'Vo5͋bDlB,aLv9Ϻɍuf7·wf?>=HT| -cSx;kYs`ҒĤTǢJXk.ҤԔ̒b[hLEE@xkC$obqcYsbnRQfJ:``dhly"m9x[굡y;̡3Yv*]P]kxĻSR_K/9?'H=(׵$583?x8XFɉ"l `01ʊG @3*LH]  %X js(x 9ɖl6eJ83(.1ɽ=ېbVל'bo@C!`ێިI=!p0+Tſ!d˯U.PlYVu57E`W260Uk@gYՃ(nxUQJ1".k{Uh),Š?R nev[J_Ë_f]L27_K~URwyU.5<(wIrGe(f蒜P6'!2xp\ rsqg& ʙXSNCʜFe'=L>@o5L @g`J2Z)eQHL@D< @B!S;E `KzBADAaQK\|\G;{TRPQҀ 4.pMʂ&0c~6P3P]E:'0@&T~6v? 7{.V-RHv qb>ˑby"y^;b-SxƳgC&obqcYsbnRQfJ:``dhly&\E# ?x[__K/-?71/1=u#zfnhAfU{f$^Cf^IjQZbr*YE E%yřyŚ\ N> ũy)%@Qk. KHfqL2wxcC>obqcYsbnRQfJ:``dhl3ymex;ƿC>obqcYsbnRQfJ:``dhly c= (x[9S_K/8,3|"&Fɉ&r3'dV03Ճzv\\9@EE@̼ԢTy E%yřyŚ\ P Z ťEe@ 'M`wf^3+ 0-Tť $3Ӹ?-x˹!YT7X,UG917(3%uT0024<P~ M xsgCobqcYsbnRQfJ:``dhly&1&k'}x[öm.FFͻ |+ Tɚ :-x[öm.FFͻ |+ Tɚ +x[ömvFfK=ͻcE JCK#S%kZ.i 0x[ömNFFͻR, LjZx340031Qp MNMIeضb֭=..-)ن Ks6zʥ!7lscP QJ 0v_1;ɱ '39$3?1%%De0ɯX&=rfvU20iz$fO׵;㜚lkH18ݶb(Ksj]zfw3ɼx.'"l/a5v۪c"Ѧ:[>2a~!Vi eڹϧ*]! 2[c m ]6/^"^TbԼv, }1 f$cQPpϟ ŻV,8BW`A|!Yz)^}P{_.W|Uߗ^ܙ pey`͓()L$^ IG??bQP33=%hT2< Sob^bz*3ZZG\ ^:}󌟓qe|Qf}]N1c{ʑӉ9ոz&>Rm̾r'N ]Z ݼtpy F|4H KbKጽr Z\u@bNjII*(7xf o<12k| t:xV|G;Yj ,wL\{~S=}-v2?3ֿ2Y|c9\WZ_Z [Koe;IYtQ N Vz&]<{=trg1W ]y5F#7M:qhݳ"rR[~V~72Vd(F )i;l> >ty[]l (ja.v)JLOKћw5W|ɱ,y<0=y%EiɩN9)p-yqODo>w:וF ~w&^uBBoxP _C%$/ NGh~\_100644 IBResourceManager.mܫ.QGiw峢"Q%x}{C<<X@`)knx[+ g x˿CobqcYsbnRQfJ:``dhlY] }xkCobqcYsbnRQfJ:``dhly%#Zh*x{qcC8obqcYsbnRQfJ:``dhl3.Ytgx}{CobqcYsbnRQfJ:``dhl9 f ;x#!YT7X,UG917(3%uT0024dW1d E%Ey \\y)\EdHx; QdCobqcYsbnRQfJ:``dhly+`1Fxkα!YT7X,UG917(3%uT0024ԙO/Z*x/4AhC$obqcYsbnRQfJ:``dhly*+S2 >x;%uXjC#zN6ƔVRU"x;,EjC obqcYsbnRQfJ:``dhl 'aUqx[?7cf5,)Y9N (x!YT7X,UG917(3%uT0024,cs 5x}{CobqcYsbnRQfJ:``dhl9 ewx#VlCobqcYsbnRQfJ:``dhly';^7x{#H~C$obqcYsbnRQfJ:``dhl3q6KcQQb,}KKrR ZEEɩśgi31s)hMNy"vx{$I~L+YN3nvxs"g# | kxntRnyɟ6701N;hi6ɕk'pϛ+!>ِgdQ>ǔDҢy 'ݘGp2Fb Z0Nl#15boTL* j$3crx82.$+/Hprq9pB^x{qcC8obqcYsbnRQfJ:``dhl3.Yt=x&\hCobqcYsbnRQfJ:``dhl9+tQxŷoCobqcYsbnRQfJ:``dhly#3[#jxoo8c [7\nE%6HiGE&r=m܀C(>.71gX*U^ A/;^>pUGΓ8H'V70ZP;0Gcw'/W# Ó2 =v60Kb呓M*Ún5,odN}6Wl6vǢ+jf{x9h\BώՁ!˓ ^14laVbHxioQ ~ #D{etˑrUX BҐ6}оϓ 9[Nsz eKd=8VȘFUE>twQۓv1wx:p:h'!pzZ1Um0/i5EEVw Ї8Hxzu'ȝFT(>bɲLNZxuPJ@W냊!MViڊUcƬe)x<C7T 0$D*B/BhD nFfY]֎B , qwNng[È48_t^RzrtMx|T^2:(c/IwĴ?7ACίoX?#cn&N&=WSa54,(QE]Wn-]%tf!PGxyQyC obqcYsbnRQfJ:``dhlهnh0?ox`9Ǽq"ɿ)8 ĀpxAkC>obqcYsbnRQfJ:``dhly}AO;xu[rf,uװlúqr1V. ؜ñi<566Լ..ox;͹K@_K=(׽43%5'3/u"$6#Ӎ 2*%eKRSKt2J2rtKt| '3+M (JMRNIM<}B]\]Q*Yb3t) +`, ) əy9@E\`ҢԼ`T0#1' *2EWWA,?3E(8diX=]xʵkC*obqcYsbnRQfJ:``dhly|FZox{ryB8Ԣbt42S4ʀٌo2*O6d2&M@x|yBX֒ĤԉoKx;=>bcFLϢYͥy%)(g$gh$ketrbqd>V} ΤlkNdYC+ Vqdy#1V!l0y!6al&0x6QlyD%PSRKsJ@ sP%k&e.]\ZZTkU吚o\ x&4W`'f.&FV^]̜͒T5GJDSKR3SJ242J4˭'e+hi)~ ox_tV+Yì<y x31Լb5%*>=u}z̼bg^L\q͖sO(1r+))fzid 굥lu< Qc RZTi&s_d/U&.% VgztGNv+l LLBsS2sR4rg>ZP̏TYTxFO]bk9j2-W'n-xxqBȃ}31'kfnfZ>sۉ}R{ rxb93~ yNE~9M.M m9?BWD/*ED:91\%iOm100644 GormMenuInspectors.m#٦?hĭ5/1 P*,I3Trb .~=4dy&M /,x;re.#so7{idّk E-xPWbgОU ґu# #A#p\W?A+ 6]Β5%0ϓC&^x;reFT^N#A3&}(_xA+ ,xmxBƚj*[<:Z!@ODxA]M)GAS3O/ n}'>8\ w"̴4d7%c:e&jݨDq}Ij.\ad6VEV &~YkJkAx½{_|@kx340031QHI,IKI,.N-f}r7 c!̼|r[;Z-j-597 (?)+5X/=(QdTiN_SOJS],xʹ}B&~,(1ٍQtr.䅌b2畸q@b^j@)}&ɉ@nFHɯ40Lz=+Y _P#.ka05N'~t]&kP֛}E3|c(,6W OUrӝN5*~lθ76玘7>_/pK?x U:nO{&܂ OB3[.VI#tYKe WK[$e;><],+Fckh w(plYO!_x@{-Iue9{pM ޗ!wR M ߓ;2Ќ:k!n_ьJn^#={ȢHTƮhW:U+UdR$,J,fq+,rt&cc.kv UȚ]w=o$D ͐u[䨋xUYɆha0l*0 iVU\_b#e}}RŪ M rrOcC[nXWv_)֋Ĥz/Eg_xyqU יlrRA Ҽb IRXJ\&c|CioEZ.0NM,IMQHLI,I͵Rrc'?Q)g"Z%O nj1x;W}%Br~^IQ~NHjEKfk^kJfIf^__~IfZfrbIf~f"2zr\) %g.flŭ9%.Qּ̜Xrl`g[ꠛ+dK~SVo%W{| wk䰓lX.kvfx7 A+`K)4il"lkLoumu4i9ArAN%I4Iv"&@˒%q!͇z7l;q<ЃZT^f4~9*r *+}S?4/^u0Rt`&Qק𩈳Vik6\ pQ.0F#@>ބ?']bc5'8<84g Ob' >Ӎr\7uVZǹy_KjK`a.b@O(uwr{ާ^ qwM-YMW%-mhkUۋ8|p=!`iaͰ$.,N>ȲdqXuǣtntápl\!WZV*F/AW`*^n4*6,aq",е:l$$,ؔFB^cwjD-U},^- 3LQ|] vS+@)}@gxoEgfc]a1MAmCimc)P޺.N,k7 .#WBfHpz=P3ombW-{}℈oF0W %Qh(:m6[6":>!^l0[eq:Cv'Rм/E(Qzĕ ՎCXUH?vrnvׅ׫L(z@tQE r5^5)؅1_5T0bɶ_2%:EτRzi*;NcegSlu\;n癝;^w|H;W|_E@ q YVw(#0z9 3#>} 4Qԯ`eL_2bex/7I2q(\Y56{d-q0/e;sBXD/+5o8pݐITjq#Va?tKYO\r.|&qC2*TƖ4FdM+ɭ؄jT]86^Ri*ܒVMZu`]9bcNrsthAz3RCmY?$ٽNyVK啖SjeQg$f74R&t]'xƱcfb\Լɷ}SJ¥\\y)\\@23 MxȱcobqcYsbnRQfJ:``dhl3yD Lx;xZnobqcYsbnRQfJ:``dhl3Ygf1oIxZVYT7X,UG917(3%uT0024,jp2axt9w4U֯&n_NM@+ڝ5 ]U)2jX%hV* 1IJ[qA main.md~΍WZ I)T4ux +}K9> 2J )r/xPMW?/mbK&@XNHfi03hX;y#ZnU>ob4EC',z%^xRD]4= Wn|24X%" '(`.vԹgדh@+CXZvs3K )+9" `xƲe$rg­n|f?6m)Qif&& E~y9z RSx<_:'\|<=,:.{W/Q K/e޲Fy97mu~hde(>nvՇEyNȘ!&G=C9iS{uNeQj DxƲe$ :4o>v| C($2ȇ~ϔzCq,o2mY9;}b@xf^J~9o_,~O(xM).DLux$VxY_lfdduHKr6#x{+|OxCobqcYsbnRQfJ:``dhly>r_ϡ`x{sobqcYsbnRQfJ:``dhl3y)\\@23 +#x)y_n0+)dqkq*hdh*$fqUs)(k8(9UA%RSTSTtSsҠRy%: !Mk~piQPMiAjTQ5Wm(ȲJ|9ũXvr&*`)99(&@&'KCAB/JI-r++GqjP@ʀgǵfQ=BEPjzbQJNjq1{"h%@l K/|F0l+K+mka)_7xf >Vܺ>x)JfobqcYsbnRQfJ:``dhld x340031QHI,IKI,.N-fmSmb҅NTS4DRP.~cG˷E&FA'e&20Ԗn_ڨ=nQse+xUO0<ӯؔ& A94MōEXB6Lfgf{nxj qH,+Ȼ0c7,UG[k m_ϧ-5i*%ΧgFZL`łûRDSQbaNj|G#..`B b& tsUj,?[|.m|,ub6|]R;x[4i7[xf^J~@CŤ̼tĒ .N H+)ρM\#=*^&P/17-(,'5ȩ$?1'(<5'g_e$gxZyxGS! @ߺiӺ@, rҸj:D:K #6 $:(GC Y@H]Vb[}{73};s )Ĩv@TFn œm'Hc_< G T4]B|Djc}j$$OZb1SN=Z ]Nҋr46/WQMq3{f^ 虴CeЊ\MC4wLJ1Ub\.>d2 #b*TQmB[+˵,? \GzP1oon?HH0DH{0zOOq~v6ƞnr=wi*^%I>j99Hg٬@jbOjjQF6Hگ'.5RN1}⹗"\0Kv\MC)fE^A ̂@5S_|H TMlۯͥ3/)O%_I!XVhFZDMԫdWj;lz|مmKU܋YX.q)#M oFuLIIvS<$TXaD=D$$ zP.%x@DYcLꠥ h2,`r/2k:l_"vmf]h:zi6^_+ M%r7ϡWc0qNLW;Nn ][o|JHU,1&Hw"kSj.9lLz*ǥ,$C>[etqҏSKiٮڛڛ^ˠN^^cڛJjovڛ\2ޅoGGV:?tc|$ q1(0ˢp"&h㵖IJ$=enTsа] D *x+I4txܥèINH22txٛ/w8*C^PJ~CbC -w.Et+,@z;f6SA$Ns!5F(5{Q)>wc>IHչ2⣼{TDQ+了!ybӾe||ԍ'26Sq4>C{JsK»`Sz&ιido1Yq4lYmxTs!:v zvU0Nbޯ>r^OÙLJK(tf϶e4C]s 8:} `u5 swPwp!#6́`Oٺ-{^6VdWfedk,+^ъݻ}X4쵃~%_(v'pz8cs 3S H~&Ԙ=VCklw/Uv#X[ؘn/rM%_HRù!/:?_גV&?0fTssqxǤOZiW k&?|!uyi+!Ux9 id'Qwg8NMMIjٜ)^obO[u m^b ﺫ Ib~~5F■x<i4ò O,gQe%~L;uhXJ !'H .Sxsy%W\A7P b|[@((*5P%aJoeB2Ag]PT{!e7,6A^vgQEvCl#FQV&o_uhgl|6VՑ-(HM:},q_A}b\-JέSpʿ.52lWACf2n@D0#DBx0[fbb-6[dQ1'QAt*54 [xoGaut-JVŘWVۨ0.յu8`pn~f)ԋR[QJݮ3 0Řk z7Uy'V{,XwcVK7Mk  1񅠳& W&^:! q Xiwy +6N&ec}* Tjddx4[d hz;Q=!:B87eӒ_&]ޭX`T }o=*@ rb w2b7/?{;O[N[ #ܽ=*.L6pP6f992v.>,\5Z^>JAXc#tIG=,Xe=0xF61MaW庒 `!0C&#:/-@]~\X![8GeFe+̘)x? {l=< ٢%LÛəb?'XH -!~DGUU#.e@ݒu}Ѻ~RiA1}'VljGIGYkkmZgXk{ Eu[[}{K q;,ԀLtBΣ4i.6-FX}>n{Ӣ`Pm"C[B?/ YGr_CBصbFd8 &cI׽N (Q<t84Oe3u46Capd!~rf#!QKx1%߄ȬjlӌmDr,͍2)~xnȷU"<)Jjd1򈜗[d/y ;L߅Pk\(L6SQX (gN=g($W 9H栺8I= d~ՃyPy@p_ GDNJWgr'\~"`!59eP!@$H^B%ϐ_x cd" ̠ߨn||_^_9:o#g)G^ O p@D*N܎xHf/ W(5tTue |FKuwWݛ ;b:{!9h:Oĥ<( r`^m^~wx340031QHI,IKI,.N-f.zlnzvڵG e3|+"UD+*OJM.)K/e]"qVTAr+1qτ.a?xxq7Wxf^J~ypfUC<\.N ("qJ'SdxXKs] AP(%Q2DJ(L1&(ki1 Xk-v݅@:/UC[`BϋTRR"jFv9\2Y7lk3uw64?8#r(tNK0^cRb|_S9UQq9ʩQEa6%ͦ-c0<::Rh/ {Yi/[qIxYHMH <:5dz@zYkg=?OY1GTZ7|v$GS WƔOU䳯߄AR{}rD.~(]8w٩.M:Lئ"fNo.+tLʺWi\Q Vbn<3)VĊF/Y ̂0תT X{1.ƋWQYN?”?! U'Z?呟TVL bǨi+ÞyZgCG'TCqCˑy5gDf=&΅wSE>> OQ2]?'dx"8wǘՉ٭d(mXuV+_ |zuƭ{6qJ/F8NNҖUGS%(|mQiFiد~N_i mSRt"͋6u=ψw韘%㻓u1VG':`'/D|5&MEkQ$O/%9)Wbrj$.- lodm1󊓲 1B;JĦ<Nj5K  rh&Syė,pE]*1u&)_K$uWbhk8@ǬD&8`I& y+!Os2Rt CxO3&iZbnQ-Hi R,[yB%>tqEmq}&)e*%l#-TvB~}6@ԒYC3nߞ/dg,VV'66h>!t+0.G&Q{]}"2`NS(xUKOWs=01Wr IxuZ-- vDO;jFQ*n˺*]Ԟ{=A+K˹|w`eԼܤQX*5l=%3'ie!DBZ.?E"%a? Uzyʶr+X[{![dmu Q„@2NB.CO?kcNt~Kú۬N=uYe~#+ QAEc#UADJ!J+qUBx/M[2iQ ATyA/pddHzmA@|s ;pʘbӄ>XoaRp 4=]Vb6;v (C,轮 TZVT(d+ѣHF7JN.rK~ 6G&-MĹ$Y:*OQQq'S~_m. W ⓢcB^ԇq C<3lߟG0g_0VuX4R  =jc hlBhF[&-~xo.z._7@p|dײHe}m֜5 Iq1<'l?E7)Epv筻d aI6xRH&L:-bZ \O&|fX1ki {8n eY)e%/fֲ #B(뭤!=ZI%sY#)Z88zU .^!꽐[yfMIQL}NRNc6v>F*) \NKŬlm N|3T;/Q X@xksG3>]dsg;Bd"Jȱ]vӲK, ]ǾX`erʶvg====]27*P'NpK89^0,p}E"p;M՞G lgBF&Ϯ>\0D^2 i ׄE #q3Fm罌8dSzC]!P ^4pC&"N%qoC| .}Ɂ!kP!u:A J|Cl@HQ@1Z5]"> fiKy00|4D[hw>MsqJ+_pMJLg@ʨX' Wg7}rqyq Yhue\w{gM'8`㑚&#&<k VxY8 }DĒG FQ(f:_ xqP̿ƹ!s/~ՆÃxk7{.{cs:Ҟ~ўdV{o{18i;2 v;OC߻8f"—3 m;'[8{&pS iyOi>y\C:wesܣcaeQ.tzPOZ\=KhVN**93-ցNbHc)r<ܭ3[%x6br+>Q݊0LBoEq "7<ɆOJp)0PGJXh#tr_~O2ᎼErk rͥpq<ÆZP9*A= tUȅ K@ ;ĵTr}8\tɈd}NK?̹C!W:я=\5(F26 uL_9, #;|:ՄxG˾c?!yT˳vFu9NM_gZ+_"?58E?+aҾꑮ9{%t{=dĉqp_!fFTYee֕GiLo+;z<O=&e 82hl,?CB\C^b8!L'?ބlc(ʮC~.v 2P?-棦!;>)o9.PMрE<.ej+J-\;dJM mFJ[EqaL}2Xì_4{z1,hhm,35?]RUk-]xxl&Sř'6s|@[ߔ-KpWMZl0-T[:֣2Sk{jt׾ƚՓ K{{/~a7Ub~MG(hz.4Ee$ &OUGksM_%SS;PAp#<͕+Q2QSI^-딛lnح'A"$Ƃ|YzT]GYkJlҿN84(p|a3WָXLmM@ DرzϖW ͘ne(􇁗8H:9gl1iZȎ5`ʣIƜ3a>;c*ï-ط>z#SB-NR:w~* TtLJ_0c̼9XOO5Ӗ56j^Jv[VuS߷X].o,v#mrO<\eYZ]MP'extU+JC Ic5cqkUEW$2lC%c ݙ)q)o* SR07K%3{Qdw#衹/: \?7WMʣ^bUlI^gfqJd("6&ltȲ |ٳ"(m` ;Q,ΘGtZO| b41bS WG"x$>R-dgXEi@&~/R5WwJZ%H>)(^C+qpr>xcb:xu҇>nO2> EךQHZЪ90= ;J2D|o/B\ IYn4ZiR50Cu[wGc~:cft0ؚ2}nP-=[czמ̀9Xp"Qb\ 0>Pkֵ'.tm ?Rϋ|0"1l]bd lh1g\i@|h(1]M̳@C,X:&gM1?ĨCMΡ gCN_*dF(!R^j<2.s:2׹!"šT}x,cmTCq|o;uRT﯌uwbjbFZcz GJD"S *ݲqqa?F6EyDE$dR5"y`pUELԦ.qx_k #-n[J ڮIؙь(Q_O+YT )R!65f']wdO5ml16;)%G0a =R6y0u ::\[t3Y/`nG M+8s%)i)BQTD.qx4阜Zݖ=iɬ1q:MpEr^0*=:]ZeҤS?q׎[SPC OjP4+̂Pm>CsmSɮN+-HI {+Q/%][]0_7JřrASgֶkp5 T8 fDQ`=>̣2c9bƇgmmgԩA߯j[w?Ɋ_YߞU7~twA@<, <ǃ6mkַV4)-'zD_N !5j)kѸe),/Pg{ 4s(\ yFrn^&Hq-7s»֔:*iе6zl7ٱ=K"Us-E.?'m}xPrxFE3R2 RK`/ dm^$ا*,>x;Q|pNo96G-f_ǒ `%x;VpC>{~Qnxf^J~obvjB^jn^WF!D@b^jB5mM|59xR8#m,›X*yFZ)'++$*$bԢToUwL.Ul4YAg\cq2O>4ydqBVԼ.X"ox֙YT7X,UG917(3%uT0024\ޖywYݯwD! .q<%$}_!Nة۬x|Ɠ 6{"Zynl{~3R=!xKF,.~t r&&ߨK̃( S=Փ,Yz VwGmZ5!$CvJޅp!"R .?F" ÓW$3Z|_6cy=G'pmL- 0`3^ )G`0xʱc5fu3L5Go{.Ƕbɯ-xʱcDf]^r M41L9!ocf +x:1^KڀG$qmXs(Ľ D78?hjHx!~hy4@}Ҵx340031QHI,IKI,.N-f`=HmnʆH2[6oE6U⡊RKrn=_cfK-Anxu{PTU.ޅecay?fD~_hК)`II ,"B1ʌQYkeY =̚hiisiw|s{=JumX-IR)*̵K8s0)+V(Blj#AͯQDN2 @-[ˆ1SƭU[U>DQȋR؆vg0n{H;xC?v;sH1#" o2dA`2 f=hpxŇ`{ 06;#e}cg}8c a]8FvG/b,oDa')83q܃}p:?420C=P/0axF5^8GG*n gνބ16uwF q78NttgL)3<&pj6:Чzxxdg7mAhj O.=-3_hI'7X@iP s& 4UWimX77<r LPVnL!:I^=pzrtpY,9u5;=r.tмcp'E ڶD_;@J@4:K=;v U(EիɦqjNe2caǔ`Tx7Ơ^*cgW|yj8t>v"_^R/EisF8v/¢g;Q)ҘrQyš%Cp5*XAW%̨o_ebVPJ(us>q>id<V49qtGCMVfBQ.vYWº[z%sϷgm06*1 Q89wHځ["ir~uQڗOtg^gˍ sŰC svَu$v`pЎK33`IfS8ƜIgr8;D׵Lօs(mg^d̽_1&u~q;<OÌ+O2|~M㓒~COinbW""1@][rWYt϶4eDD>Ū^&.]8qH%6}BH^'}D:1D,cU䗞Mqυ(d~)[ Tkrv7xcC(obqcYsbnRQfJ:``dhl3-^:x{±c,\y)\\@23 tˋx8#R{<"Ω99!%.%HMn@g?]D#"T`TZdX7}Q+/]lus@d'l qRSNW40z3 HM㕩 x+-5aSGKivc{ hySV^8#`nMކp(P\c`ɻZqz&H"1[Ƕp) _xF3rxp%Ae.싔pmc!²4ͣa = =,C:Hd0OT#pmEtH8Lm}# }t&qYgwU:a*l3(Ҵ$3d3< "1_i ڛ_KF=.hDEf.\tg!ˍjvޑ_AFhG$G-mNDE{|Ea5w xXrK ᨡ1!^!cBlmmsݙrH`hWl?ۤҳp0ao[j~V`c7O)xb?1}B'Jc@CO鸠ЬӋR%&Rca)DBLWUbB0 $z\!f6G,1sňtTs* qsK :swo<MR)WH)\ujBOXles7gYNrqK6R|+zح/<OZ}Z#ރ{y\)Hs[ۗXʹgAШ"$HmS)_@ؓ1xx340031QHI,IKI,.N-fXym=m6Qn{kGH2o5bhU#(b\u6OW~j}oI50o0x{2yBYқE/"+xu;OP| ЂL$6c1 D4&DMtŽ [w\6Dzzm\oZf,:/)ޓ9zP'%I%=^}yF@96d:ݺ9[Ѳ 鳚GDt苚GE黚#" uTBYY$9qZ0A41=6362pIg F` F۾gsI M'Dgq'ĕsO󈆇ľ"^ziQOq d|, $J+e|9+h,am1[#\D;L^E7+\B.Wjb3F-RX_ sxypSU}Id&itI[ 8GFivPpiTFE3AA\ G( JQ* 羗b!s~ιvǕPݫ  ?i1h#wAp]ռ"!9%^kF殧fN$ GItT==Y0]]Xb0)esW\R"2u$ݪ \; /ۿL2oFZ~jcs`FAubr6Ol(&bHKAPU76%|@CK=WՌE6(M7VPkIeV2) @%Kmk1b~ F#W]u,AR8QgZEK~m,؇ىLJnCj0Q ̈́F.y|[[Z,ܓ dK;`a"Ԙ  cvby9־(G./h'G{ݰ#&>lٟDYt-\W_)q}a~ TAwg8?c/+5,=;Hȵ?|V=`RG&pOI!E3 &l?@}0 _'Pfk!1E(aA@;̜crlJ\9V\(SV+KQ A+ P*: IH8;NG&ݡ*t&R죧 SVCu%XFO˝f;l*07!ajF(LψvWhӳ% @2sGgo . \D8VAEI5$ҿ:! ^ze_TY%M?V5>COS>˅q*i{G䌚hF _kQoxI# p{Yua>}>EvUE>aGt8&It !:IFp rS{YH [/s$x`O5 e`D0A&½  ,a%Bh-jTah$'V5fN_oaW۲9*^"ŤbXx340031QHI,IKI,.N-f4ߵuGGGﲞl.3/-!嫗\d'XTQ~RVjrI^z~Q.Ý--;Anx5S.'Ux/Hz-nin6Հ@Z6pl5(Anr!<YAjf1L/7pe*@lp,ϣ/dPbr vL~yE \7Jl0`9 Ȑ1܁ vPrV ?HzmӭJM6u1aaf϶23a?V2 `aQ !! lA%v! <%I9%2aCe` r@f3nH@x340031QHI,IKI,.N-f\~wdˑERǿJ`.3/-!嫗\d'XTQ~RVjrI^z~Q.CzۙjOzu1}(k{ݶ:~0_]C># EdY}J)I2,tRq*qZ ,]roJJb8N>HGTK bɉnepe$20Hx,\Q D6`C+:dχW_T~ܟ}z6mIהxyXa.-+CI $dήCACώz<pPDPXp6rRR薈!fRb>6X͖|(c[m&Mdka%} B{DrOn I4°V) 1E06W{V 5 .rיA21tY-x .|u/R2\t+Dvd%nrAgF_9f\3dt,kտm >6i,$>FNõlY/ HnNZLۭ3 :w:z ؖ(Cp6[+a]cJj^BA H:?Y4 epA7!`A[8-RRij,J ȢlCY9R!Ʀ`)Ivod,rk጖U궋ZzG[*؛&iXJ]~0ZΑh9uS zpY>@K {*?{I6W4?D$σ.0Vx,%.Rda<4r;\9U=["wR!F_"6ev=6#iel,۟hѡa\E^%'ӝwRnvyÅX=\[R7 kk*.uߎ꾃q|nKe21eu cO!w_w~' [W&,U;^PkD\bC;|bž\l-_~/>G'4#UO\ 0fqꤡq㪔|y+Ub:OP y ; TW:P:柷y- ͐J!ӬHV7L=\42{Ѭms昁2Yj47Z%  "\-*+#T0=. DFc/q^8Cp?ƒ:?-€&vXzMdXɑgc%@%K$K`fR lR6Q9w$^T&qB tQҋ 5ҟ=V&q"Ϡ(ۨETc0ONh";HaoPH馜ĒHVos}UBɡ|aMp }c%|Tgn#TAGBqB˄FŻ4.]珧B'zsa<2/*#Ip>"[h^ןuT2x:_\=tNg΀Klbf7uvNa"IrIxQ_RŧtT o#! :`8$|Qߦh0x.g2L:Ys"$wzZ\kvjDFzzn0Zm+Yv;h6tj~OYٶH`}nꐃlbӥҭ"ЉӯX# AzBv(W2,uwB޻t_$Zz$n9꾩ds|'}]$S!خPPbk5TLҽ\z'Ji3 46Ga@\lZ蘙OI{Hs6n{1ynnTScDh垛}϶G#.U[9qo|P3Uz!4hl0ȟ>%ͣcy)m>)zb sٗR‹Uܸ38qHn;y{\3"!_G3}\UUk.\r3}7~Jv/nh=/e G]X`&@3}0M 2n '=vy_wC2__Vv_{#II:ηss-l\ڡ NM6 W*gLJ["0-]p$;sID7;f¶ߜNoN{R'5u q?.[OfσvU`a `< 71yqZ kaM!3!͇4Q4WmmR:9!;x)g,օ( ɻK vl&;NIθEM0Í֤kk[0o" TA D ?^(K5Z[ZS%A IP/~ U r"ٓBU_Gġj(\<}%r:Kv۪\*] ѣ%$1Îbqsuu 2;a융f>go7xm\.;PfV,A9zv]b@,@KhӪX5 ޙ 8[p_v/ ZY te^?x; WUĴ rdI yVwJ?6wR1BUT&{DvJpya1yVUx&_aHJHȤ ;&13wҶP.;'=Zݹf٥**qe b@ΤƲn侎{K &KH̻ x_^g{^>,a{!3cK1c՝~aLyw`$-|i6lq%dHr˖N>ޗ~+Xw-amu5 c8\LVvsGEG<7{0<'|?&,^ܾ"oŭяc0JHM0̔jkN@߅#<k6s-XNxl`e B N1<a !$0[Z~ ߣ-;FD3.b{mq,?:¥3foOͭVtM :Er({JY|FhsF90G_,%n!p4^k-*&w ҼIr̙c\qw^Kfx340031QHI,IKI,.N-f8-ӧyl"Kg(?ՈۢVRC|RKr<XeM&]vEk[,fxuT[Leaeݲ;eib_$6B+̲eҁYffDۘHJNJjbˋc+Z-g5}gfwѸ~ܾs`Kxh7em~bЫn44aUKu~\UiytA˦guE<<}-N@pHxk].;!S.@ oRB9J8@4>ϖ?cyd VNFZ~%d?jdga$-q\FUr AEV`=`*2*Ϧnn4u+# SbFz Et sTKUvPIs:Ҟ^U'%MJ'YL!5oo ջN'fFxkc\.:UCOZrfRb!:* 'sʢ鏖(~ӯG#^ ƽȓI1% W]rbF̜_֮8Iݏ.H)P+ YiЖd힆TqI{f5,5<þފW hC-C+.V!}MM{u]Q;i1U(bUƿ ,~$2V'$ jzƟfV@SjUx~oJ@ԋQww#{oN<{YdxuSU}}aYXvaׅ]Hڦ(&⚮iV `(de+G,m5+JDoXiLL/t]|`vg~s -f|ku>OsH-ɡ6!nktBcq1@i/pJ-ǘ~eRr6^QB5JZǨVD1bSF:Z6t:׶E<ƿ,97lj.aQmnIԴN&'.#D_HR 8B}L$*ӌiԍã) UPZ+x3#LZ'TPAd:/r8ӠFu\H*.3Y>*=r~nIe^oWF~"kȓxՙKt"ͯc]״ RiܜA!c9}X!p6ֹE(&+ ϱ*q2xjxْoj.l {:eD!^:v=`o`Sԗl 6W]c[Yvf)Џ',zֳpogXNCC {x5k~_ 3"wsäQ7*[壃!uC 8Ḁ9 ÐaXᨀO9 `e  B_i+; L ר/])|| y\{-B>g ,ZSbϪח`N(RI9 IӰ+ %iK_`-,ƦHK`>aʙ‘ #ۥx340031QHI,IKI,.N-f8)pYF'%j9/L7DRP.~cG˷E&FA'e&2, ʌ;y򄏱 7.N,xX{GIɶd;R$YׅƥD$ZZ;j]UZE14 x/· oO >iN/"Ҭ'!K,)8'%Sӟf||;O7En8с6P#<-ԗ-OuWԣ[m琶WYfR㠱[Eo SRm͒M /{XFnj~OR QL :z zC8}7rNwo|Ss=:<m!Qs#,r^ p \Ad N95Ρ ոr.;zb8-8!OtpC&&)DN5,0Iޭ𦐕⵲ Wc~#YDgN{\yPgC[U_oUO;^Fy /z=K:nn<9(1gز[p/B; d۾HګvWܨ,ҩ󖈸j8V.ހ661rgTJ+|qx340031QHI,IKI,.N-fSΒ:W+s46C$uyi r1v|[*ZjrHoTQ~RVjrI^z~Q.ϖ5OxfGi 1.x½a9s}R~QJjQpjNjrIj(d&'`d楤f%bJ&V%bÐAYadNMbϼ{J&(lL+s7d~Vx]Pu0`\.(%ԠbO&eV@RKrR'dU; xVIsE-.[-/lKBA2I[c`H"KCX<TA4.P\(.PpܸQ Tqr#%*u7oׯ!{>s>t !b͝]C7@4M҆x340031QHI,IKI,.N-fS%SV4e'9JL.1DRϐKVTVm_(?)+5X/=(!5=Y)Rn_p?`t0FxMPj0<[_8&>Hq!EKV$agg)ȯ];,-lF03LD%$moP#F|>7ռ!xQk!EY"VY~N=%J_XDcӘWq\"|k @<$\HHE@t6aiҸީbgxY{_QdҒH(nHqQ(Yq^HBl @Hմq>ҴIY;q{̱G@C9s+(6E}7X73|v[f6]7]S5A HDsY#LG3L&HL"b^px6h>k25}`6Fjj9aSͬITq A/DGeofѪ\2[Ų!Ļ1 LC,8&#*0rA9bH6Gg[%!lW]?fsKzy2|j'D"Rp~D>ffIDAJҧ`ܬ$PsCX74֛5@Ƶk{ Q2,!ewAҗo9lCMRK2zb.~G`TaHk7h*dL$!jq U2R/=U,\"X%f`^;JF4fs[ZA^|' At gpZAԚqNʃNBV4,W(KںκPɈ0ؠF@,1U["dCai4 !̄7N @Ý|P/qzM%(Lr¢%¢;yqR5]bq.NNCdx@{ rNq?ښnO:-뷮I9|-Yr'>!q-( 2.yB/`K~Iq'Ïa1*,X s^*T6RwsARⅅM:͂Г? Pɝ3s)z'')N} z )~OGMqzWb^v 3M^7Wӓ`6\> Yp߫~zs)l4 /9s֍ngqt4Ed%t+ T %Aqˠ( ]pc "92&ɯE]LkX~bi+C#Kd Q6P4G)i;faCqG+DwџfuLqvy($I,RްcǓF<0M~l(%c8~hemT@W5)+u@k`ұE2Ƽ7>w\ \-rDp"7_m_C J~0 ٱ`'"EX^;y/2R5"` \1y>);f <>,q3/+OP( ʴfu#p?Oez'{D'!;Qj=aa|g(:,bVSJi~SZo)Өλj/{{Q\Z+\7n|d`X\0,n#o8A_5LՓ􈜟SJ8LgI$Pnݨ͍!<čWܼ{ 9W/sX vMN>w AKGRĄt =1NpC'fZ ~_}ިo wݮ(IߢQw(T nG(,Scu`.8%i{]O ΡG!4IT?NCӐa/:Oxj?e~gۆpU":tŅ}ܟ37PZfRCn!d⶿d41Mߠ_KVoW(Pm62>4.e,6C+vߒcdp^cz޷=Nˋ \;xVMtSE6m40MRiS0 -:nD}={u\V7rZ4NKzK3x.@AK# f.1.<\5s7>O)+̌"JU2G 1^XqK.#E*9Mwey)㺝MTcz=PNGlxH!W25./εhzt,؊ȁأd֏On<00|V*o i"!B5^{Vz8~3b8qr"}ner\ҦY-?V֊ײ}nv1qfՀ'dNڈՠ)Z\wEbcU=gNRT ue'ߒy9P;j2F-m.j}(,?B᮫<v/Z*i ca 35>B Nm G /WL+r!mPS+x5VR=wKZ [LTeO`C0j|%HSr/Y n7=~M洈?' 3_Q/:qMԗmKqQ[«=$,;t~FqJ-vT(ôѥx340031QHI,IKI,.N-fxP>Lha >"Kg(?ՈۢVRC|RKrVٝZ2/o]fr+x[sDײė4m[Zhv6%R;.ICS4*Ҫ%#I5P.}`O_ "j5j4:'Vh&NgjxRx$1m[ OA܉ LnH(S =tNEQTTWWUӪ]D"l꙼\xp:%Ak,G<:>:$MfIfZVͬłcjRfgo]Y *YgƬ") 4A]4Xh1sm~xkO{Ie\GCL}jiG%9JWC$wMB-kJi:匢a!W!&PN)jKbI^Y.+j͋l 9^ϓV=@°"N$z w@3d:192&a+ՑQ="sEI,>| v8 _)8ay_ixkrˌ+W'6 W|-(HAB zA>E9'A>ir )p-jVFVw虠@n@@ofo:@ )ƓrǓ\b\QTf2\p)\{x'v~ѿ"R̵o\{ȵSA^_NJ]xE#;Ql{),D2[:㑑wUT˪b,LIk 4k7vYf;qdM %sdM5m3 Ę\q:iq]ykg/f[׬hu((UOPLFP/SRxkJZl n˦ZRv ׷n$ݱ$%w#tM&݋; f Kg6ro1A4I\TO8]|Y ثDSCDi-o.KoO[6zI`뒀p$jhdT{vʞ k'mj;ng,&_z.yN? 5Aڏ:Nd2d8u COn3+ڷ iKLcľZm} 9Kg EfAČ:30q23q \*'4FŏpM !VT(7^VyX+k8uy#-ǼV >zZRI,:7++g-*N|t 6T¯[8m MݦÒqrYɦͥM[[ ii))H [EniH[ -'x|Aٝqq|gpwtɥf'߹a'{jCe` CHg:u"z?4Ql 'Ɛ )(d/3Y ˤGWP$;RM]5߄Aӂ}$0kV)QH?FnK`Kjࡏ(x '])-+e$r>t">9L:ҙYn.$6hGpI.@;#AHrOLj܍Z~/.R؂{\>{[y -o?6x>~tplOd Sri)Ql51zIr6{D 0MCr|)~Q^k Oథ3~8&$y&a z<6c[ԟO9;1'Z0hba\T`dTJ8zT#M/6e4^<⼚++%E՛Wnxug-/ۋCLipN!\hY]lL!Ev "k5Xa;B#KM |ٌ+Рa3# o"1 cט1NZ!.M]E3Nqc|b|h >8,pWde+dsْj6@at (*ANbzAklJY۠V}.p~ Pwd{u^8^GqYMU?Cƥn+ \G@@ AQV1GBE/*FD(ӪiL72>l@.E7x+Hu}%N2&XIo$\/kŶpw ϱÉd61q n#ᨊHCU0;qai­9Cݡux[yA{^In,)yD!Kx6YdGTxJp߲ Um8 mWsا < Z:9$¿[yHF|'2+z|}Β)fgoq 4x340031QHI,IKI,.N-f%r\{߭\~fVr6C$uyi r1v|[*ZjrHoTQ~RVjrI^z~Q.tvv8֛˳uS:_0¼xZ xG]ɧ|IܮZHZRھuZLXc!7]I{Y2:CiДKH  (4I!rPr\ŔѮvyvvv޼65e/.Y8!A$"HiHO2jBIBI$@d(Pxݘ&GJdBNM҇46|jHa-&Ȭn^j|8rw>j7FeBSxlu"=h)=ݴg#v I jZR L:R oVqvWO<%=LĸA2B<=IdH{cv4+L+2H@*%s4Pظ :q8, (ќc,,ff!`QPzdj3HmJhd@&F$S|f+|X$5S-XhC2"G}]OwaCI R+U6q/14hi=r\dMmV5uQrUt 8DCrg.u_m¦96jfyM"}8f 2|Fe`ffqm&6;$(jMu0$i@;3j"ѝCXyyMj.ya%P8 E/"-`^6oY;lǜ~J }tmi dfvFs?^dG .6\BS S9+BDhG?L\mxV.9qbmֆS_BgqM!5!4;<[I]-]mŘk"RBv&{E{{qqb>.4;.Mɻ]4\>\J^ls (q:IF4oAͰ6U$R|ab%(K&ˊ rkWHO\Nɣ5rPR;ϥ0fS j*Q12]#PloG&pQ#P+x;xOi.̇&`zSMaյ<(f#ȀfǙ؄*0^^SQy#*W@d:7-Xcmmt6neYz__nmY<(suDF)t "ʶr]O2 l6"'Gb]zZOiBтfA\[2ޱru245A`y;~&f1l:&~3Bel݁84p|m5qQ%)*"i_]0-&1 WSBw#1w&;0WO^%  ƃN 9&dm 缊:uk w!gw$&XvpY2OAJs?h\خ4,<.N;Pui>4A~/Ko''6xGOo %.VAm4[c XK ,8y٘Y:=-˝8MيVYp ;,@pQ}=[_ Y+`q=UrܦO;Z{Sϟ䃊>z?{d=a4S4f>%)y<ϧJI2 %L+>v9'<(h^y[3'qf̑1U:6 }wt ~/Fh>TXG>#t4?IgX=)A ? 7ŷ<{ ZFI7?Sz BJES/")7RCz 2O#uD\/gqgR1W>bd&UcH zAԛԻY8 SY/HSI~/r7|ӏ`@NbxuUiXTe0 ;?<ãh,1hcn%2(:(efjcS2qKW,E l=m?|߅y}{w=n{s)cfMBEI!ptVu Mut,z3O4ӳjm_x6F# j -P1e=KC-2J~?qE:3f`,xL1ÊPL R ,7`z 7sد+Fx?%gsf)Q$n;n{*f0oRkX|>h8&q?qsy0)SCy3(whVGy <8i5sMvƚrbGBjF˪|-r ɦ˓S$!#g\%%ƗBŒ8O q#)s+ƎD]L)O iX ؓ`f|[> : !'ʛ=F?aqvA9zORr&;N3p$,:{zx_p|Y| ↬Hp|2y_v2SƸfs8G@v1% |E(_a |D' }ǫw8!;=2_q=WS=g\6'hL¨ˁQwI:fx{R M|Rus2SҁL_G#CcK͗+xW[o8~.n2ARDTը&q#ǁ2{lڙh/v4f%d㉂\+sHJI#'sRf&B̛C |!/B}II+!'飱Dx| ',q @pջicIzf| x$I}+FB HY0PQ jBAQ9u@AኆTdę̣aL`l-'ԇuMZ(AfT iK6c  jDDXbs9($1 ^0>p6wo=}s0h Z:Fk,NP-=h}Fe;|Rڮ 4 wv\r!>Ux\SF(a<蟯BǦX³,P̱1Uz(i nHCs "ӑd7M(UܹM,䨘B'>W3>E2U?[n]^&cG}©Rts 7c+=9ܙM],\x\'}E=I#YS\L֖%9O2?iK!qNr`D'<;t 16tHi-P)"zZD*?6,ţןCX!<9[õoLDq} Qm:areĭ||Z Xۊ %JE _OPwq%d4C0At۹Ym؞؆1}e?H."k"LʅhU듇LqSU[NkBx޷Jq7jNɘE` ojn2~73.i]op<콼"rM1^~G̑ކfk } =zSt)zw 5!5B= [謊:[K ulr65-_:ťx}nGiX@To}gcnIy~c6ru3˕W!mϻ|5DxW<.&q0;gf(-ͯZg!7ldTA4&)|xȦZ5D$R1_e_>Y$im}}"^|,C ^K&7,LyBk%W%O]sExv궱>|aVJ+H.26[nh-TvSݗ:Xz]+-RQioR }llpjRGǛ F3wA/PGg hmz++}SXݚ7t%um˗El+x;~L}ͬ,&+%bxTKO[G{F5q05ĵJ J48D;s^uFJϢTjUvUhMAA,=s +[Μowө_$;C*:9(T-ЋBA゚Cг=e3"+pû _{s߽e5C$g䢪;5ì6[2!,KU],* &"g=na ,1_yN7 .ܪ] 6J"B3UCL"q-j.2LDž߅l}ɪt.M7;?F_fSNOrمKv@7*%B;\hF($3B(C,*7- ݩL&C7 q C#p L7c%6t3X5ض!y 4|;*w]P!Eo?PZܮV\@QDo7;ֱ3mP?)0xB~siƍc9 =⎈F_C>u?"c;^,xxD~f*XwpGj!凗]|_d-kE#Nr&{[I$1tҭ!Kbpؔ]`%$RӴ|^:&q; çk[Zթs@JPra.ñ轲V}+3m^=ΕT<<_ V1\enn;5nj2aȄ41tCG]|)]noDմ͏d1V95*^uuq=ףRfbF{]v.]( ߐ fx[6Im^X'3Nd,V/OR45[ '?x':7lnJ~#SqKyAx#/bzw-VÀog# /sax[={obqcYsbnRQfJ:``dhlY Q# \hx8Nhx ?n,_|7)YQh F!; kchŖ$hs>S>DlΩn}\20 Ó[BI#XqM 4@&;6khђI-@ƞs2TB:o w~4W?/$=?Φ~h*ؓY,inspectors.mp1Gmjgj 100644 main>"k}xذQ v`{ ˌL.xؠ(r?Gsߡv=8ٚ<״ -x:6:e_=!-:+E@D_mAxK nHxpVIϯBZ <õۨ±;myJ.vr"%̓i `bDEi*Wm?ny` :%{$֡![$5/;o(q k듘u+x sci+lSz瓗JkAxw d_}xȱc7obqcYsbnRQfJ:``dhl3y+Eq yxk&YT7X,UG917(3%uT0024\^W x340031QHI,IKI,.N-f%e,e6 /S8ӂo5DRP.~cG˷E&FA'e&2\߽E\f5~)q9Jm*%cx;tq7SQ~yqjÉۅs+Js2SsR&+2* xWKsE-ŒcI"`LzMCEblZ{jWbNOs{BGNSŅz٘k 7JUr6m) ߄7AV#R;ZKC0/KƑ<6e[ܫZѦcw-& (riA=MD64Xw4O߸ӬޘP#?GL %sLû #a)FS18Jba8Gv @ǨE0Mc q|WwvvLI./#e0A ZApSU 'pF>J#QD u5͏F1=PeDwfK/ [7t0=Zag.*e힧0L3H+ǢqC񃉒v2V{FQRgMp"(|1es IQwghR{ڂyHcɭ3Z,Gr EhI G!Z$Ig# @I$ZC#+6vy.{p1,%: !Z\~a*$pI2uNB4L$JkzF+n,GW9~p!Pow2A)G7%M Бa"+f3Ҳnr8WE_ |ydSv+At /@730?Ѫݬ-RL&&/HL؏ UXTu!i?XE׏$Vka~m4j$2KW kViK,Pnxb!9Myzdu\#7 )y3<[3Z:8ҥC%~F`)y(Ƀ50qp&H5Mz+܎>*&ݯ6jR˧5gu_J8H W^NaU>AN5k1ݭDa-<n574*2Fk]v ax'{ 4XQ39z'Ϡ-} HY -8]hJw.-6Ń(U^)ZΌ̝UlCB^xͿYT7X,UG917(3%uT0024,M =6.xOkAƉ I:-kMS HI- kNLMzA8'ďśz I=g>}S p%8Ƣ /!2X -&TkaWrӧ. = /*~Hx@o !T)<6ڊx)frjҢiYar4Qs"ZUw"/癪|=F.Ӳ`ñ9ZtާRU}$K\@ c%Jޘ8t=%rim"?!7?XGP=Bk@"F]D7Bz RJh,{q0q]R?2*8#-YH'}[-5 0CT:xXYQvcNIi"b)Ĕpږ_ݐ_(ͻQ|h #`q:OP䫶 N;{j&[&k vſ0()P3KUP$iO曄'_F֋Dxk6bYT7X,UG917(3%uT0024,i ۥx340031QHI,IKI,.N-ffrq77~]6{S!̼|zF[oQMkխxb\72Ų7h9ȉ7X/?HxuKLQDJkeЄxGa 4%365h !14qq!k&Xc ķ ַ"Νb >f1;'Ϲg&CqP`*uaj"b1|\[lh8as/ahЍzV^ye,[ݲs{dS,c}s ["Y @1@MK͂}!j`¼<N_O+ J &J"t.Q;,v[BDAq:qaGA Pwm$u,YYy'(u9qWM|vA-b9d|)'gh&[ݰ/bW4ik连{4/6ld)a\>~- @P+y3 4NF2b_ݖ YxeJRgw*9Cp"tsxpcEƵmXmE1(i= 96mlTu堤=3.Ng.?ui6 g{q2^4}|W)^#8S- zݦwZec\ ?`RJKdAElB>絛57$q$?<˔ @<tZVR F4F ΀|K0aT2 4_̿3?gHIoB֪Ra?67,pBQ\S 0=aPxgؙmhj>8ߠ~J.>9N#o4ipHúFtc([*ޯ(%&𾰼רΑA1ilt1%fAZdg{5A[#F)Lg9ю9QF1*;[s?ҦzH_EIɽ;_4\Y&Qϟ8*jEgTN3[zE:oK4fN 9לlؑy`v<z:IoW"aL;IdRRu둲6o0%ᷮi1v8ƿ\9%bG#2I~2~'Fi"B3KdY"~|̪BzU`VIh0G<~DP 0()"vQmn@NJ@/CX42ԾzZğHz$Ѓ)g'-UV|0_GJgxTKo@^iv&i鋦> --mjԊCC%WHibĮTΜ\ Blq_G?]BS [ZgY37{43#<ӟEudɲU.ִ]kSۻB?I#۵d+ bf˰Lbt&o$7v CؒZ*׵bLK/W4Hy '1PDb+a[fm\{h # ?$=bC'OY'+ZP+G$O@b8A/)/4ފ,##f<Ԍu|?!ryħvҰ,Ͱ oψW>8s9#}u\@^_c%w@'"c"#'tC\:T&(MƉu0op0!QgIu]UidPf2,3ɒ&7`Sڏ7W#W{3IWjlS7f ]%rݸp܍_ =R- ίOSQޝ,(Qar|τk@GuYDw0mZ P_ ,MnnMf=vP!,{[pcp3@$BDX{xްSI\("^P76Mr%KmYQR?b\/)Mx?W_K=(/8$1)g",DFÍY@B1C! i!#5,3\Jws, 'FY~fBqjNjr5B4&吚ť $3Ӹ((wxȿYT7X,UG917(3%uT0024\,I :AxRMo0VƇTdK[u2$&-& U=6sjU@[n8ppo$N31x^?W;˛e^lXqo8DI_ XSY7/ͫ;iz:&vW8gt aLkR +Q^DڈO鰿O.,2K| XN'=XI^ͫiWHRCF>`8h` mX7M09,ÁHk` L uU+ rwB(HX!ؘIǣ\<$\uMJ#EtBe]*x$ P|;̜'.͒}`q fD6:02#P?̆>d &it.vaٴlP)WS[%'7>ңް}}Y+l&^"8H=I7 O U[{)m{\QM?uy WpS k#*xjˬdfnX\XTd:*[lc(S ݥx340031QHI,IKI,.N-f7W/KPU±r!̼| ޵;~2rb\/>LO9YsKU,_5]8.Ux xWyfrgC±r&e)Xf3-8;!ڦV+kmj"B*m=%P[VvfgvzM"Crx}d'dI "<"DA0‹ġ#(`vP$lXy&**j.,6MA' YjL_| lL!L@ߣ&k%0Q"6qT$ i9Xj:jA%i%EZ!XmPxXYw%~쐅>I"%&E q"󆕈aVšd9F3$JT#6`c PjQ,ZVⱵ^߹n]e8"I*p@t>W'TUjVD*$ 3?k5l(ZF| 5iybł& 6%$ʝҍICٜVDSS`)*H:^`I@)FF]xt/vtf:S3F]&eYD ̢*BPg[Eo+Gѵc?g`؄-$\QJ?'IPXBWIlR 5]I80Hj/+bzM ͳ%tPzVu4^bFS.')W*YQө?`_0\jSE&GEV^R8r-N4#cPJL@-轗>l6㵋\%nިDڤɐ٤ܘ&5U&w<ezaդN|~*/UVZk+ptww%cg!nF~$Dm+M؟lFt pvZ L:]*>^.Ez+xhHyFݥAVkĤy-a>oy0#dEFqB> }Lg9T<40W9ށ> |&b."[{Yq?~?DҟsfɊ1+^SVob୥6=n1`BCF)|.͗>l$/K`GXx׷^_N6G)fffE<`' \+N!DƝ/y Wc]4f8qwTnȑEJWRX.9"˱lJ+GzJIOEwkIIq*Wn9#*'$ifZ E}z{Бl"h$NQZavrj;гu{]q++ƣmDE脕b:z4zVkv:mͅ]ѮG-[MAߧ/Fg& Yi'٬i\E?\Y9D%%cYXC;QrvBE?9  Q y 91_Zk~;I?A"+Fѯ&IXϮZ39~KT5ՂLnqU/21EЂ~Σ߃t{t8H8d=j&;?π8=1p/ć߭gJ|?cK@=g7d`e풱I͸@i  9<(Ez E00UkV yRU|)0Pi N =f9,:tQ=[T//L+`AYp:O~BШĒP2,ka)(_>' 0vzNOk#v$p#iS10 #Ld#.2`jlK}42HO}jeF/}v{fdQLpfF<IC ?79TXxX x~˶C,Kalap[)6-#WmaD%ִTxӔ6Mv7RIHއ靤iwst[k,,fvOn~|cށC"8ce8邡5"}iD0˩n{Ch_:bWa!P:6Z/}5`!uA q W4Pwb8-* 6E#JHjO"IJ6k9=*zX+ p C1X'jk؀G/8#wO6./台d Hӯ,0,CVf2(Fk\Wu?QľegPs&<O#5B*/i=c$UlVumLOO*|P!(_F!PE e>mh@ߣ?h2lVJ+WAJs \'[Ceho'qd?2\tf5O60žN@;rmmWF2.{n:*ri3]]ryai@REv ڜDl $)@2/`Sj?j |l=# U"ԓnhz2B1H@*o>d}qH&@ ;rmcQ璱1\F`hCd$<OB*յ 4>,ܷIfn6iw51ZKZ 78U""Kr\Eb{u*Z+X4OZ+.,.#(6 /fMD$aYD:Gb)׀ ƖgUUl+?Y֔-vxtHdf3vwXI/״dv>\[e YHtd6ʱ=e/WlvEz69#Vnen]8{λ(VՅߝH)>3#)< P#FCZ$^9H`rP:{ *b"Ē;Oz!o^-1lV of4ΛYou%[b* oցwě$MZp-K+ehqn)m<[-Eb Jgخ(0}ʂ9LJe (^-6UXODr&jt+<:Ir].'30^( eYcWI6<(Z )t75)Cc݊)wꅝ;MVgx/l,9#9*yCc=& %pj:c r0RRq/C*(@'<_ntE^'h"u\+{sY_ýOa? :uH2 DŽ\/ʱ<0MVJzY%Z* cдz|P*JU(8%ٟ (L BÐ[@G$ZZ5v(+L:'I'R;uutga!ܥqhT:ʘ?,8,x"s/qJ |#‘cHs;VlaVˑxd&+&A'@mY]t3} .IQT/S=sCO 4"LQ9OC -nn: 6P" >+ "Y˲In!܊mj,W'+l~m}?'T2Lp;>7U$< N0Bgrn|mmƣgaFCTt℣r68~^Ysv!'qpo};'#5 WNjM BR~(څ焃# c .'@'OHq? !~x; Q~C0obqcYsbnRQfJ:``dhlنa ;x(-y.f'?fUr/ IL L-wM,/P\lوx340031QHI,IKI,.N-fX}+djŧ0!̼|r[;Z-j-597 (?)+5X/=(!a6<98߹KٰI@+xY]Wɶ| AuIZ[V&2!PJiWVznLzPJBܧ>@xcǞюVZI,ٝ9;;{z)x֊ ]/kuY`zz{$E"KMfB$E&jY-gY tflټvRٺi:I4#GoBJ)c[Igf=5N B.jnG-)C;(.̳^ҝΜյ-vG"cZh B%N<IIx$Cf?n~%Y:ʮuK'ӤeIgS_(SZ$)ozty$:O?C @ -].dgDϪF(dIgK{|G=9Z8éHf/+30{|':':~0H2>_[ -(CcbhL^2šb."ƙiA :dhddx'D2L_ӶE]˯7h߃ʦvvP T~D*>]2[:Ӎ9$3ĔQ*"F,v,}<’H!EZP2F"eM-#װ5ՂΌ2E5(7Fr fQ12*ie1w87}̜Qǜ]H ,\MMu\[8⸱%Zrz3NoeNAboNMDm>"9"n?ǐOi$r:$VyzJ =-(nEG÷d1|;Վag} 4j?SG=Hg9.K>fAQ b%3Q|/X{S|#}'o:@`uͰ ]YC-y~3?x~>7s|p}&d sI#-9]%#27 IKYHRiE-+!N-m42N<~FJi~fJNۯ*R@Z*Q;W9qj\NV¶FNDQ&h\P75v,$-(@1h0k'gcEJ6ƾo2U+Ec^Azk DxeRa P{h{6 #D}8ǭ**: ݀'xn&6T~߸i.y99CJo۫B̗8hيn7 wXX]8_r]X>Sİ\2 v*LsVC\ XP[&, ý@W\Pv8hhAH?`C ޑ/$ L7\*u3@Gzw%v僻&f,7~|hwq7 ˚'D'5G'Ag /o#/?xA~/0$huFNy7 :8,/ct;qW꯲rPׂ۳NF˝[mJ::OlWxoPQ`$WзCX7ПګCegm)Y,u, uX [UHr_Aļp]$힄CE+l0q^{F2Ete; ^sW?VqfYI{x~Z,H9un1",FdPYݠ]s~ޝB~ɮ:UJ+wpw)DH0N`>wclO`[l!l֝?×ao%h>Fh՞e!pˈ0K7Љ:N'p.!EDģ$#QC '|w?C#} xù!YT7X,UG917(3%uT0024M =x{{5vCobqcYsbnRQfJ:``dhly.6P;x&fCi͟ EGxz /:l>Ǿgo1$6֕ n^cz@|%n;x;qz M|Rus2SҁL_G#CcK͟+8sRc'אuBU~WY@5e@T0ʦFk100644 main8o"!B'x9C `->m^kbϷ ª3UYA ۸Hxi0BkZl L*( [K0Bp4dN&6}N$fqF݋iDv<4JTa{L' 8 :ϡ]s04wxòeF*O[<5&2"6>`da&M ,xB6к?fV<Ú N100644 main.m%inm_Opߓ)"Px2eBϮsImh5G]Yγ l~x5kC?mxejc)dKR 2rS2JRK6 03q)Oe֩WRVuSp R~ E!@\0F3ft*Em'(21wx\}y(,9ҩ#"^Bɹ>bLrwLk1ɭsYiIldbk:* }¬Ћ~!Bum|B{?b> 90ժ+z [^ n ʛБp6g MńVIXM|h Cr=糯ayy''kNx;ƽ{dE֥Wx340031QHI,IKI,.N-fy u,gOVvC$uyi r1v|[*ZjrHoTQ~RVjrI^z~Q.r6F454e./Q|xi7s~nRS~'3*eTZxuoUиiU$nl'qNmH4n#h(2{4Q[vQ!!ذb3#%C*]4]di( ˰ԚMB4hL榕铭/ sR=A尀_p8szWތt0xlJuCןp}'})>J\еgT +y~(қaLܡF@ohHHۜH;#}iNI8收7n~iiҷ2H?s:h US̼Qi%Ө 賶 (!jienyC7W5]'Xu3OhGmsCTr˪Yw<#:"֖Hq'J%qR+kNeBk~5#0h=#@E;aR1Xr;:G{ qg:a0#,n2Abgg2sH a86:s eIJjc^EG^1ZԵŊ-_`!fdpmś8mwSPTU4j_\y&ZոkC^u~Ww[7 8Mklqn@`d \uu ڲj☮BB\b f_}?&;ƗLٍcpO_K^i6Mi޾B"r (j2 ~Å Mԡ9END77ݼ\Yk|y{/5V%Y(ǴcB?̆ ^ꖳkG49DlѶxo_rsG; ֕M](; ]zb-}}] ,Ȧh, Tm.PPQdi q3XOQL܀̍azKn| 2fxh+Ur [%#-^@F._ _Mn`gs:({i6TbwJ_%u-9Tcn9tמxf߀<[ BXW [ Y߲v^o Vedif!^)ޑ}.M~徏kDd ^,5ޭ9/IIc|Hr _ PZwb/<0P)W?NIiɞV9r{ּ(;j<{ _x?E8ȋ0#+N+oԼ)DM)q)ibƳ.6L,],UjBl,]BHm1ÛZsfVHL7jں,g:1v]YҬ ɇz/~i[-auB\ɚ%{nW_Z7RȦ*SC}M~Ʌmu kSm |Gɰ2/Z]#w0@p #(Twe>JP)$E(L(L cNsT G] j-0L\E,jGu>^. }hU$݃MZP=e&)dDh >:LŐ?N`βu0Ԍ 8@+{VPCn" YZ+SfdG2 Fvƴ1lt1p 304'IƤBuobG % w [K~Rr-lm,_)x$QV|VΉ*d&DN5z3ô%r&([ vDSbK^즥x340031QHI,IKI,.N-f{J56G l.3/-!ﯞQe[T!`Zu+(?)+5X/=(nEoJ=lv|p-lxkwGu_KN&!4P=\+!D.4-fV] BiyB)@]~A|+H{ǻwg{g]*?tFF+۵;:/m^\^- 1#S%\(ZL&ĨBz! "sej6 }VqjٻlDY 7 CtQRfn1|| ކ\6 b#$URU}]7 ѹ4LƢ5j[k4(Ӱ7̨IjcJ_N[BI^ӛ ˬ=tSw IS,]?1p$Z 2RVo&l: vŔ0(M)ټmkBdBoq8I2\V NX|YŹ#Bþj 11Hx I4>.a7\mM! db68k5ݨrN\϶ɽl0no0wR`tߢn%fc1:W\CəpV|+R=W;r6n#!q=a\`(jFm0^+8*pM*;s޼;33ٶ:aKaR0[MǪg,97 ie(CyXg$~Y@aH 4'*%Mᨘ_D6O!rk˶ZKV;1o/jus{pn:PxDeXI2i8I|IIJ  Ȅ"tY( ;%( j73lҶt8MY8\ _qzŽWeN. H/&:D!*dMy@~H[gH|[D?aRGh R])À;*587XkR(iaw{0 yا4|Z(#%RVuGl}Z35HSP`,=A`54&C+ŌL f 6ܫ%Tg:<]" Fs!=\T'3r`l(u\xg겉[f9=>,\]p@= #8,p'}'ְ"&|pQ6sgEzD.~M=%Pȉ&0-yE(DxCQʙY"7u[B)*T̼욍uXfK&ăJ]q/}8V2}$IsW|/ ޳#wBwѝT9Kqu<E_E; ۻy ۵}n׽{,,W5q0 =?h }7 Q-WU7LZΤEX_Gs1{f`?I$DORls# #_ h><+1HkrPeuJ3lDw-9ܻnAՓMoֽV7UH߬ZbClyK";{ [+e @]/} *1FnU0t/ !f2_v&`SrfF~r4%׎>/MUtAG[಺(SL-ɩ%uED_d̛x!= 1Jsp;S whoZRٙ5s8Q{ZQ>sUwXITzZICaH)X;슉i91uO㪚D#cvfeLBX_ڨ%&4T-+brELRYAZw%.6-ߴv%ѽ^ĺףIQ-<):Hs=D ߧlrWg$; [vwܡmo 0M#zs-Н>N׏>-: w 1nO>+ZkChLMI)%JkNes=y4VyPEO@3"MľރqbZ_xQܷqFw >څߊR0'h<FC3@]bEBHIjDŕ-\[A>c:-N?"mTҘXWKn>'\^Ÿ/q2Q`tzqβp}7_ZYxmVsSE{IJ&i)gҖB#@AQ+TڤKԖJQQ1p| 3~/8:Ψ~`uޛش&3gힳz JqGw _h% !klb:sh6'%X/+K:ӛc{j#tĘ<"eȺtt1{v\](dBĖΔi-G^xDH0䛵&1q7_DJ%Ti:96],s7."3}\В"k&+{ʨըNU7.ZC\e>y\됚|7FG1y80&" ~Q?Gˏ lD677<j&2OHdgiDT?DS'^|5C;i0sm3$hǽUgDCU5nHVBkQkY[E D,J"[ڠܘ԰`bMOPOΎ ؁?9R@<%9u~za#զ66fx=PgjQ ?SO8imXlW մwdf?[KJJg6;.xRߩէtȻ5Ы!~,1AwԶW3O37Wm4ܧ]OghÞӦ* V@ (9:RuGUdUo{ݱ&8tf4a8z ݳ 2j[yKp܀cUI^pw=p-$3&'ppcV6|:utsm)dm缾\ Igaj?>_[Aa5#7F#gN[R1A=,E vDX$ðDZLl B\ksvД⩫{0T_]Ht\iҒlS siq᳊YavL/Lz[%42Y} o"yT$X^"^Z8U=*x\wlk{AM-5fDGvfLu0-CC8Fa W55M3\Flobt .TԐ#גw!Y(MM=}۵Iz*E]NQ'mJD7tE N[S?D?V?dI+.:~,BhqYǍԫaq{>϶Aیu$_-_ev.n_Bq0kbyh:3 `X$(Vv%N!Q#Ls80 M"rA#Oc!8G$ B/_}2Qo4-Ӹ>׸^vchdC,&ZS?ZcO8Q_K&PZVxmg^n[!oyLTll$ eYCcRdXEs'Wը*4vkdZ|p<֓RjD؀S līl$vl_e-; Vq!䵓6n !/y/+6s -FJ^',oP8xZ" lN3~=amqYk%^u _ v/ R?f*O>ű9iAHTA>6spuCnc{ B+CmkBKh@8Vaߐc+SHaOngZ p;YI\RX@=Bi)3udUIJ41$a޿c6ҥx340031QHI,IKI,.N-f07afJ}{o4#ɹI]f^Z>C\F-RU\R_0;/`ujl3{R.7ux;qsjE3ҼԜ.N (*@M/(M,)ʬȨ Ѵ`xuSSUw7LB >fsuƏV Ahj~m쒅4AQ~X8~tɗ>O>8㹻4ݳ{o:}g=3,&e1it]\)Ӡ<;Ѻt q9 ȿ> p? q#N11yl}Êsӄ, Ҷ_BxAn!C }@2* iD&&;$4{FltӤ+Ԕid =vl,f2n{-Q[]y]M^*Es*Qx 㿡^\p"ؓȺf]c^rQƳWSr0mL(>IrzL0?74g-qJV>xd;8s jrJIΑ_^蚥.vuݨfێmϓ+[ĊXGή c0ڙٙ3PPyhfXȬ$nX`Q.:FԍTenD'⊰`PAHt-R/z.om/k>'T%6|A$6|IH|en;JHn|ɹĹ){jgXfs.pUyunxuV]SW>|dCH0ďJUBFGN@FJ R]yE3n;7Li/^B$3gys9yQdOW"!C9Ⴢ _[`WĖeJ:FPĞ]), q7xfɡ//osstQ$j]t&SsU݃FvE)(1oED]JliJav/C\,T,ϕxg2 q ӛ!4y|bG2!36cES|k?{wB ?X,A%f{C,ϔ[,Mdn$*6Nj>dt?֤ -JjN +#J2D*v|hƍ8*ӛ \F[)MXz:9 )H_s6Ì=L9X_kƋNtyGbbfbp"0¨9Ns?8h,%n=#f{wvfΤIUÝ֥8yG)k5=L7jv+WB32J kGz/M~ni+=KRʲ{)zWjܩ WGztq8۷N0;0)_4|FjҎlѝuid]]-"Nx66teӧ x*^Z BcT/%߁Kz+ !ӷMΆ?K ~É)X [4.34 UcKV?NHt]Hp$&g bI)Li)BA3p.{iZu@hEUjYwoУetǃ3u>/[-/ y⃺Yݽ5nrܮ\E :K\Ht0lԟ9!9q~kobc#% z791[1Ѧ`*կ>VQE:=ӦTX21V(X`S <ڢV/t=OEx/_h2 MG\c`?hßOeT1:pQ{O)Zho{;[Ƴ*[X>;&u'I?gx;{qY Jf e: ΉIE)@e,xysCobqcYsbnRQfJ:``dhlȥCrtBt%CUjaT ͳX݌NPaE@#2sRa}peq.\X8x=E8Qx{%x*͏7O Tfix|/x]MZi.xf=8#c-Rix;yo[2xkzɲAq?ڌ @PkU ghl xsC+SLyL#x340031QK,L/Jex6M9{wk+qIODN0xTx[μy'#d^F7KP'_O?0נ`O?[г 5x[Ƽy7#dHF2b#x}obqcYsbnRQfJ:``dhl3] :x340031QK.+L/Je\ctM|U=KS!D+CqyN4UN6=2>=9#1/='?a@䝋yyN^k;F&@\WX".~κ^3yLq5ͷx 5/='8C/(?̀jvg]nFouj_hnbvjZfN*}ϧo' x6.Rh&2$oi? 0Oܵx6 EJ;8hFIjI__/eQ^sml U&e1D,!WV옱鑆J1K!>)sFI`bq?݅zy?Qyiz@*a˻{2gx|3W]0'3A\MNɠ4 iIY)EEũE WU疔}7g:]?!ebEi *:[M=ia6uN qaҺ潥\{_;bYw,O}{{f5ɥ[avǧ-0yO`r<;7Gh[ȑiS " 1'hIG=o EBw^* 5$וc]R|xD@Ju!AE@SX0f,K|_C3D8l=gM곖n̾K *ZT JG1{ȝ[@|->'y{FibQ<}᧝pG F 6cR-1qQHk4dR}^x5NQEbvގ0&&cvyff^_0KXرhyro?Gχ([7<0NjR(lpIC]tсYa`dX"z ѪTJfW@hO5u vNZnXڤtSvl=u KÞo; -r'٦ eF fbf f#Ú36 &xkfnf(2K3/]eO*c hZxkaú1c I x eOscSէX{(3t@&6t>*UceJYw̆D-Wj:C`ޗ3:"asFU o mS̾g7KB\Z)VJW1=̲@(!̱t24-R? vGf%p*[% YtZT 8OqmL,0LjZ5?(t1%VLx4غju>9p7ZBܪF\mFG6A77:nN*=e;F| 8*̧{ TmPtdje} I&ulC؍iaQBi ߰6GA`Fpn}W;X |5 Xv7H3[1X/+ YRfeHPxPŧP[͎` ںl{Eڴssg&N#wCmdw$#}p泊žsn[~ ߮;)C7^0qix ^.Ĕb|X3 וãHJTWy8"C)@}\֖}zل~ص_ &k?4'㞸,gm㮸~`Ϣ7fz$K![1~W14+ˮ]ɮhԲkwNulx{oߛE>)̼jm(q8(owoSg)0nzZBv{KL=٬W[-CD*Rf$^W|hFuiFpj`QKШc[`uv#쯭3wW;p&Zm30><9~"ƄBv;Ty?)v Sύ^\Gdg (:e5zoŬPGQz&;fO̱?$م*B4Tj #Cvc}d/yF3.6я'DY{àtY5S+c;uRg߭}F=q! g/bK鳲\təbMdeN//`XDNҕτX8Gٗw-gҡ9Z80X }f6ǎoUZ@N [N_sILfrOGُG4)/o|["Wd'劾=S@&wPnEJO~/u=~Oέ-Nv$n+{"~h9pv~7p#f{vʱ~7hwuO<>jjD @c Ai_ K#{: kĚPZ,yԢrcFFyeR'?42ژJ.ǸJ %ӺCCQU׫McLXizkz$8$%5RCgb42=^ĨFddeidGGinb]{!xK!//\ݴkK@DԹ[F&,4eq9.QmsTEl3;K#S lG&vF,N_?vf2&2&9[#3 kOX,\lF鍲:iIUZ|~F줒W)3ٽNg.ҖjjiF4ȉ5BݡPQei.twBoZ@Ӟiq1Yt%N(C#K&|NABd:{M%N S9Ѵ`,(@Ɵs\NJL\i^H02^J[*e21m}8me}rP[tz2ͱf `[.Un@©ځYēHFT0~ c%hr:qXh;?Ę H1'g0%zՃqCj%RSc@Br2|#q8 q>+CH$hvG%W\S4r91~c,X#J4 0k3墌>ks5Dz]`V+097fZg}}i:\M=^c~~܈UY/xa1[c _mk8yxw8 D-B*\$6aAD=>Avs;h2Q"/\ &dpIX H^"e-s37|IrҼg„q^l YSEh49CϢNe6f@jWDjRg!Uf8g|>y.eoy{'a\ kJ.4 [/l=K0T.h\ Jâ%Q[kHk$+GwM4)KqT1k+{>y׊ˑϞ c?Q >TxmU{p\Udcwl6M>4)睓h9g+|?[y"ezUbU,v{FCCbNґl6 GdVD =؄B~&u.ey<6Lɼ%?PIJYrB#,pボ2o>d]DY"$$r=*9̍@^o P/2+lv!\nsuUrl]98E޽8k!ȯ2eBQZCOG(LeotVB^`>-{;h/߳#}6;E^=y[⻽(>^.aYK^bC}j䏹?<# YVuh_f0=9WqEEz%2ss FrsEf\fw`o~%AH.ܿGE.>+WxE;b.ÐGb?UU!sfSq=TZjƊ))&77:#9숡j׍S b"|jLD0&\>xWi ]h,].)MjYᚪ YRyFk,Ihei&!¦VM g©nJ F2GvjG`uȧ:T޷c&E: kZBOkD@+q2jS '.S(8.R02k<L쁦Y67Ԯv <Sv';k\SE&{(8D*SybF]Bɍ'ӻHjB1%=:i!'U6Ve|E;U[]M9˳f >B ^K";}+BPNЦslլ5:wֲ(4=|F+9_XkRvQ, M(D<5(ew5 PO."w0jfh*Գ@zWQBPq(-~ U렐dR #s;6ó`5#G]̂Q⛸C ;mx#͈ȋ.DQDw˦paքyi)|DE^=-lL_ozlt E]P"P|H`>=J}?/=f¶+kR{-ܯ7Kj^AfOV6o kOm&l2 _uitYCT!DF9}r^ D>B8'(qv%Y(ԉDESˈWD!i~k[Ȅޤ-Y_E"91"6I<)D1v5`>7O$S9+x}V{|S6m6iynʣŢ)x :ӹced|lȐ=S]76'(M7"66LG>{|9{N7-Փv215 $>>4:!7'P9I2n}GΟ wznL;ZtS+aVE ؝)F~H$p[zt~7LkY]j)EUd9kIlZ*Q, CP8\1dE%4sBEAIyzݩd<޺Jqm-0p{zO/ 164"g况lfOdd υ]B/paM7)fSXTҀӆ6w8rG27=ٽ/ߛIVCRV)YO]~Z$;8l!I[q>/nq=59_TR^G%Xí%ߏ{iW# VT)RDWVq<Q_dƠײۂnF=Vvr8e|<Ν?G?[^A/Jbv\sxW?;"^lW:7,5*3(y@¹:q;^aJ!Hq 'w#H%bh:Ms9/*-IѬc(P#) ǖ&_SG{8+vs"e KTs2>~}Ӽ2;Y58YĊw<9L'j Xpw٨6TXUM+Tem Jrhgϗg+i"jTfx4QLU>֗\ oQآoVP UE5c5(D]i M0?r!JąKR0r+vC$A>3do?LJ‹ܡA K7#X*^Q" f | P՗aJ0 S jHg\ń:MY ĵT×;JNEC#|D|ZxU:^\KJ y4\qFo쨋0i^[Ukt''X@2%l:AԨ_z9u-e(s/rl4 Cu`.^ܶyby^Uy9\ǼG7N)<oB~{g5ڀqE?a  8Y-wt^o IݦeXF7R4zX.`)ޫ2$a9^N"' lxqT>>% \ړ|}RWh6%88NGx:,]ȱ; jdnHd< ozZ/csW | A5„#tw~X?6tѥx340031QHI,IKI,.N-fX|WQ뮊kìw-3n0xuUS#E$|I`ʮl7,( H`ɺ! aБa k UzfŋVY0EXMju~~=_ 4{i@ֶ?V6b?,%ʵC[՚I%u!Z4O$:ʵGc=PtV wbF Wn+(5oY sQZPZ̄#JHz L$QǸ`Yʉ2ŲONAf/,4,qz+!&oX6N:C6 n'VkKa[N@e<иGct1ʸÒi@aN:!fDfX+ʇgH[Pil֎4.$Yu/ywFǕ!f4PyAҗMQ3.b< PJ%9jM"954"Ί G7p&␛߄mt^HvъTkcr~y7Az&ܠH+ѫ^WZi'A>W5}K.*HfrʣҲh&P $^i/M%GIG_E-^MѼ8Hӿv+3-xgD]{|K);cۃrea1 *"""h-TP*<è ЫHm:.=ס"3 <xy"+PV Rtg1#$@(^]h=^<,ӭkV5P ") ˩yN;q\q1.Mku9" APX4#L;Cx" Uêb[ڱ3Wx!INwH]SUmn]`NWݼsU%kdNCs)L) |~>~%| a[pR𻐫\r!{ܯpJ6M,2~-/6f'֮RW9 ؖ)o걽?e0|?Qorw!fk^Ҭ x340031QHI,IKI,.N-f{}|C$uyi Οn[RKrBU|xW 15xYsZ-a 2<@B! uC{U5@Ð86[ڼ$)mv:dWc>O9jZ $cssM>QT>=m"i=0 B@ Q-iL$̬2z1 kOj'?P&Z|XmfdX kIj/lImeݣ1#;i΍3LILPRgkV frGK,yS;Py' &#z!gf'ۘ^`,f,L,@-pXpx A֚Ԏܭ]0%'B6!%3U-_E @Ed^/iy>Q_@%^ tÕ1tqTWw#f~縛2t(akXGRr˛V¶ܐ |*u-zϢZ-ʱZ0*`+bR7qiŧYRuQl۾A =F l+U1dvVD5>ԷEl"'!!$ ֪a섙1DX'Я:NfInRiz!jgpc^ KMXI2'lV8p1 }º_ZdTƘ3yd4^4w*.JcH? NS)WML6Ͱ*'jYK(>)و%IQd r|y6#[|lE>xr ۑw̘'oɝ]HMٯSbۑ)52^UةIm\?mBv,7+T-[2vnM*sEG}tضFkb-ʾ)lhܤJᴍ 멁Ze~),CWAnOGHQ._Xr47ٍ=Jbn4lmم2UĨ:/UrHC.#%<𨺁Z`GaуvuE%fl.ȈB[Y,/o6 IcnH "Q/idpufafa' #dg %yc.xc&G/ZZDDZv+ yCAk@re;.{Er1j\pnԦF jH͏=y3<$y)ǚʛ|{Mv#'W}H;B損:WC>/=bp36No]gdVuvAhS_rn\Xjlz#CnVƲVa̺Sylbs@!T 2;U=LHRÜ+V:y6:lcT^n;,yxQzWXVDgGt߹xN^&lRi q|3@У\>\taA(CR*S4zv+{IxYnun|'g&ɆW^C, p7P8OOQ8GP'M.`pp(\!f2Ukѹ3OXVq3/B"-J^n02sW_=a"}3knq~#,*ؠ ~m^[\k~stb[X:'"ᬳc0OF-"\WP."'!JJW1J G[| Οխt$gd HeF|?_|s x[q' L:)%e%)%Eśt62Nfw*//N-ڼ_7QC6ɌFVq `웚WlsSCrRRKS+ JbSsSK|3@V `sb'[y0OjQ?,s^f+ƕ)9LY7԰PI5Bx[q' lEI9l̜T̼tϼԢjLJY)qq8(mho YxSDԼR[[̜ߜ *&xkĸ#g<% 0?Mb[̼"OjYjTA|5Nx5PJ@bQID`QƋ"؅4R'EؓB7@MyͼOEmILG}|꽭Jۄ1CIHg+Fjrw{+{_GۆpƁͲNG$ºhZ"z_B@襰tȧ'm%4$$9m)*ȿ & 'c 7 isa ;P O0kgJel8jh.uR˂Gا `i 9m9**oR;ȸx׮feeËjv{~]x; '7bNV}2cLy!n.0PSS|Q^lCˈxyx+$dA<9)j&_w>fY1۫HKm;׀A`sʹW-;4 J6ꆳ`̸](l?X0_]}pKG͜QT潣PĄOJV(Z{pO_C24 Dֱn6=yl;2/$sF!G/knLUV-tC&nU |]1Azand]_"$o!%ڪ JތU?gw4?mдyN ki U޾[3!, |ϸbFf'ԅ>/X|`ĔfW.c;޼+ܪop~Y8}{w‰c//qYmwHHʼnWWziL\W5srmSJd@;o_Vrm6@26^le-;xrGoS,аbMWJ™)Ng+&A#8zZqC=xpƋC].6}5J΂@Q5h"JʁC",t3#h7o/WImE#VBYc\i_ߚ6AX3hi92 nW\d7 %ܓ y׽ $P+˯f 3^[ΌdS="ZJj[B[Ϝ֑;7]8mNLt;Af8Nx#Iə) ?Lx(MJ@ pj շV?XUzwci&ٿޗ5sbgUc!'·5<_:pRմ? Ah`;NA&7dWTz}K+(r͓b٪fk HPzy>22瀆ZzG&LĿomV) # ȳ#UHFwG!3RID%75<t kNֽW/` ]y>1x$:<観}1 B93H<W~ם-n~o4ă@Hihf6~z<+vKE<_@[  1`ώ~xɁC-E`|QKI|Q){ZqkX6&񭸎]hċR6 7.69;V]'ZdAJy`cmX+:X^QJ//K7%weʥh)ztդ 6:Ja])EMU7G9i)vk6M_,)7'}|lh8[.Dq1WSzEykwlNևxYF@_ ^TBsw8 . l@SB5c$PIꇎ?Yg݂YXYb[\UI@kȚDt|??Ni"v$OC<?9Mv|xpiy㑋/]~UVH7EƕZ& 鷈z Se7E袰XYCZmYgOlY2毶̣ ˷#kN]x֦qu `2yW:{-x.,B}_ y7ܟYW7 rfztO7*}I}|  .3.B4iYeyǼAnӃPMQ:hlnjw?41{>)Ag8@0B7%wU!QWszİ $chu$ϓq6S*DP4 `lD} fz"e2El=Fڤ]j}9<{H0s)^yQLN3>X‹*;;xWڝF?C#{؜L)^3 U3ibpVG챝5?63r_%p ݇, }a]| ջ.f%Y#%lxdpY|kKaM1 $kq?Hn0 icฒdM ~(,[ `ADE{PyKjLЕ]ՁN=k5yC cv#ǩj.:z,QOEm"\sg{J-%?\oK,g(d>QפD= vU+߈Qx_m.-ΚY ~\`31lvC[xBO."yYCضUǷQ~XE0` \n}heΧH>}+7pYU2j:K=2`ƫQAs\n}gIrYfkFإv,2xq#; !WiwnS@ xUYˇG`bmJʅK+©pYkSbZ7yNf^&o5„o~?m##:`$[_(%hT+KR?N:H eU.oկ h@=nMuS܂(Y?x2OLb ?5x36nкJjmcj06$~~ah@LX' Lք[lV&iB}7y)*J!~ֽE0[ZSM cf Emlb+~ &ybx%,, ͈'K.#GK 5 CC3xs,, ܒ4qA+o.I()XK9Q7$;9 # 8%](tQ+*]f20k xo,,=iW+&wm/yQⰁJU^W9;eRkM 7 {o/D]LjhZV? V}6yU)]Wk͓X@oƎi8A+?x!,,'Kӿ`Zΰ0qRڳ;.D0x!,,mDL# N /x:,,Y pBGX, "l6."E"Zl[P61\ Hxo,,k ʂ-焰؄ު2\yu \'ȩ10X'ݥDrΌţrUT;nA+. H0QK 3;~mvڤF iHK][뿓 %eAuxX,,h-`KLZTi]]utQA0юo9 # ,gx;,,{ 0G[F cYyDo`9e?-h_D oIx!,, ߓU ǥW3Umǫdz R/x!,,aARy(A#  y/x[^g .#ۜ1I|4RXkm-x[^g9HÒM,E97Rdl=dqp7><-x!,,mZYS|!k/x[^gC Sm"|˦_)ped{>M\^~w9<4Տ>ESD7_e<Lx[^gof36FW뉳LvZEA" -x!,,ZTi]K#p/x[^g .JwF +{{pk-x!,,7qho,fl(M</x;,,7DKj:K)ݎ K[!̼:dez %Ix!,,'_~s/vp&߾uI!;L%x[D 7g\#>9[x3Tf+VQ ޕ;x+_xIv̼nr?)`#WHksq*($Y)h6r 0pxS]&#[z\ E )%)z @҂"l+ԼԢXɍrg7s>6"x9qC#FF_6plfdsHKs po_x;}{C;+sf^䉬08mx"bu͟Y6/Tf|_m} l܆;x4/pMr,]-Lx,aٿp\Pe <% _fRHjnANbIjdVɡ,6KU" Cn/x{wcf/v._d)xmT[LUⲰӖ,]d (,3ew>(e ff1uSmS㗨њT}dAc6Mً&_w7_5|N|Ovpn<8-H'] 9aY7j6ݸ+P+-"I-B̌3\3Ex)z7i3qT):'dƇÙmFf*Q|kmոi"IMK/cW.b-[UAhT1mD1&uRTIR)jmeJiۮAUgQTTX4m`HƮGQ7%$0Xr0 MNQ2'0a PE%8 4J ִPAÝЉӱa( >Mle"s}%J1} RUuۇoc"-88H x%>M &ZL‘J%í칟8]_;cGF47k~R~j:AIhrjO)->|u/`»}x5 >ՇxJn̵A?6g\S!tDϘo }S?ۙA|YC1s{\+A\fYar,hJQ٤hj wkaA&7q/7_szO~|73M~?W#PZi} ,U.2~W`8jZ)Jk"Xx4H.n|j\e_{YxƸa*cYl6PbLldy6o_ yK 7xkoc¸A[ms#{_fs~^Ibf^j9+m kF r2sRz&@KR R5IaBh>--ILI-?y>`" >29x6zb DB8[con source] =?2 !QEx{^h|9X&sK'en bWPj>]xY2KRs'J•L^-rr?UnnyVxW<{C=Ӭqpk8(M~ͣɤ3YWQsr4Aͅ (e*:r7!),ͭP9H!AD\HI'L(3/=,145Vs5]ҼrE %`dS3D&݇0Nr~d5q7).N4hBJjqIf^bIf~^x9q6&Q$Y+% 36s1NȥEEE:\ `'46KVkZ! xMOKASʈ^-D4H0&٭uFq=Hk :y ebi^d"xK1q &Rߗ?x#5Wjfa֓?1gx=zC'#.F͇euL֥x9sC,Xf^BqjNjrIjJP~5Phr=,˂ U(x9#|Ct^ɲ_꛿>" rxWMlEVhb v6I /I)uiDk8 PB('PP߉ B(G@ TqA !ďx3k8`ɻ7}oތ~|ő3kAe0Q-V"%VVjjk5fSuh ti}K$S}r0|~kpVAä Zf¬VYLs#jR$Ys*k3^LJt"Hx'H bPdPa8ːHiʄE1νdF䑷svK5=;Vhp LvHu_lB&b0ֽgbT4\kMR]g'-Ӣ9dJ$YDHJ4=Y5B)EoQcNd1`fLTp\)ScƧ X\Kl dY*bJ)7h |ΠrMğc)0IV Gi>u:5JX4AL |*X,<-PuAKcK _@8F.ɓO2408:<4m ehl葓TN܌ }9pphjXy.y=nM˵ޟYkXەBLMxހW~l' 86 {>f. `8ў؅}p\N[|сJ$3rWZW|DijXNjYҙ _| ao 6-Z:`,/vfqczNHu+yxsįܵvE,^Jbu-Tbsr ;nv=bO%93~/3Fo/|ewmLwFl- a1M'~ʼnK ? {y ϰF.W 3]dGu]ݬQ~Zhb,|0{p o;dיQY]HI srra1mD;#* %Du.ruv4⚨)NI:|-, aYd1>cZ $j w5oU*aH~ ~x+oශqEQbi

r)izFP#>iN7.M?R)?2!87 3X غiQxk꾈&['c"axt|pk.5:Y1 XEu]ÂSa0ЁNB( PdQ[rΓpCp$)/66#ш(K!.V S×> VR k! ᱛͬERJXiQeUĭX[I̎!xXp_Y\~(abƶv]>/J~3\ef(K{JkB|Qvl=‰?u.HS TQVLRrU^)bwOcQ" x;QDg;($*$$qq*(H`ĂĤT-Btr~^Ibf^jLS5DcQQb%Twj%H1P0'f HLGGPA!5l"LrⓏM 5S~d 99I@cSK`(kUP,( 3HR!-I+W'ޜ#&_R_擪M]0LaxTO@NmBbʾݰdn"Q#dPHn; tl6^&'/'O4=ZV9ηGAQ8FTs9n X(8n+_p|+ ~# Ě7IBgQNRh>˞>C)vLew߇u.(u">'~ت HUʂ v MUX2g?#.,kuv4|m~(6#ǒ cMN 6ul1&%{L]tcC*#fA4hS86}ޔ F VXcPv%K$c0.~'%S4b @- P>o3.*{9>b|xh0#+z?|;PyJs'/򘋭%8bOn1qKo35e zYSaG;a :x[?o/f1̔ɍ"\~!I9W(r;%V*hM>#&WZX_`5GZ|V@MF$${VN>/"TJUoz:d7u32Rx$Yr2< @P 'P<_Nj Sr$y&2 reRKJ2Rr33s rRs60N'pr<, * Jx?FA̼ͻ3sg祦l! e@s:%<|;x<9q̼͍ƪH yM/X3 0Byq,dR4n0x;<fwQ0Uhx;>uI/YXX'ݬ#Qm +x{z%yf&H<FA>xkjhD,@glAx QnrǘOq$jYxᔠXf^BQ~Br~Nin5Ph3 A(nzl6xjXnK96%2ҞhxyZsC57<vZsqMf䗚|^@wD~'VB F/x;9UsngY?d(dZs)(1EtR@y6PdBQ7Y{;3H58FxTc#@ ɻL'\ymF zxuͱJAq$i ̥I0'bH!Zon':ّ3ʷ0 .^.j}o}5۽n-$l=P4,zt-) 4[øxvg(wCe#"'g:A_~.~BbĒ3WC– %V5>SXzSəYDД֦v[-nM ]X݄WB}'x'Wt'FF͟'1mfc`Xx(xk|#u0.</o.x#|Lxɷ9'r8zx8mC#fK٦ nEy9y %E%: ni% n9E: N%y: F z\ Z\\ʙy9) 6y%EiɩN9)ENIY%))%yzv&`N|3,3;/?x,Y]RJ7g2'qT@qDsLVgy5ͳČ6Pa'mĢ'N^":ٞmr'f&YL7N:Q):%?475D!%$19>+bcb'ɱ:pbޢIxYklW'7;Nl'\;{ݍ mIc;k&:A݄ٝifg3vڔIPiJ;BBBQ?(TBHHp33k )TBbĻ{ι~8^mwgjjnvUM~2jHqUH2(bdT[2#úiZ5Dncf{ԲLɎQɒZ_2uФF楲j;"q͢F^Ტ`1(QJnDV,;+_[We-1C|B+O=Gӳs,ۭJyIԘ=AϕT.?z8Z}w-!=௝$1- Ci@dE } eESI!QBαx@JUARM!}d_eewP&E%r뒠T"8 2o/釖wK[j9c'/2f"-[ ł>wL_EAMQ፥[.,m"bW'YIIz5FS>Ud ]!SD1 s2[q IU仧|8lY4R*RҁI5DQ4'ќe 0b 4 Hu/Ǡ}iJ%ܽTSSy11~g jڕqs+jRO4Ia|ISCI<]W(8؋wmmEC&i?xĒRֵE2 pсoT*g>aiu k$,h\~*LIm Nk6tIU=bӊіUNf٘L=~pȩIEt- -OI_ܚ'_gWݎAm@Q:NY6h犩uY| N|^ !`b5b\nf(M&J'V; <&V8[0zQxk7KCX;d8F)iv'=慬$C@xxmbDnY3?P8 2"5{S, ׿l vd!\7k®YKz–nnt|cp䶆%U׀=?57 > tayqӛ91\2OG绞#qcTRbNq*a`gqRʊ1&~#*FyX hq2Hу#HJÏ_3W F \|ۗWBHLa|;QI^adޥPbP8ol߯ O]a״6j;B?* w,pG߽5a`1, 6س$NbbS#77*1!kބy*T HO ^Ep I03)s.h>7`H0{k jtdU!m3V!*񤄁dqLi+* npu],dmUe1x2Y|+T8 >׀ |r ~7 ӪJVukrg5&n](쏲<o'_жOinW2'b}tm^xV\Q=|zJaӹvskAX~!l^)oUο|]eęircg΀3>oK?ɢc[Cv555-+ Ls(;?L2%D#'Xft2N2zDQ%zGi3B,71=\2( $m\~v|1k_S4S"̼(D+ !A?s$ y1q!A0 ͠i\b3r#jdn5xk|5|/S:9YEkSɪX2'&Fɔi䔻B$m"4*GND!&#cV!n5hQćƧ{5o_Yc M,gM=Q%WW]d[:ZmS%2TxVe䤷Vi,{Gɔ-]51,+MHf >5wFa((22vZs:G^~TlQY\+~5=q_Yg4+;ʥpf'q51Dy`sO:?_|5 x[|i- ̙y%tcg%ـL 'UU-BSy4 4\ Fr~i^ X\Y\ |9y1yI3g JJ{x~ӆҼԔ:Lެ.]>O!3dܛS\):xkӆK,XormafKM?y j=HOpiR_욒Y_a吜X\ 6(/1( MKLNe;D9c _cQQb/\ ) IY% y9\ ~yE%E@U)&43m^d&ؖ"nxۧWu[FF&nf\ ,lӻxgTV}Fy,xUn@]Tċ6 R@ybU)Q+ih)b&Ա4_5 $<|;~|wNCDJs9sλJv,{B~=K^yf[zcwz8p{8^C=Vl4+:%MǢ"dFEo:ejturt.(-98,6]:~9-`}j.j 3ҜQ\S7rp(0ƒ Zm/v*=CP^~.UN8ڱA6(հQzOʠhWf[0sY`Є2[`eqGB *m*RAp%ߩP@F0ڣQB|= g9 U;@5$y2]O a%\ bw{CTb֏v!)X95.^57HZe#l/UU}Ed: TL L4GW,u5qvɖe:==!$6sMtA>h_s3 Qn*)x h6ZR@ g`;]Bzofp UgYbħ2Y*?rwyKHxEv}n=0+t'{et˃/ϸq'l'\s؅qz__Q s]eQqmM %X秤 JN* ۏM{yejsěwFgfq\RP-r T'PR+3!A8R82ܔ-խhʑJ׷KTqFp9%% a 7NyW Q2;/a(eU <ȠEw=zPS4lcQǎחB@'\=N ׿N%mB*y X~HuWͮ9>-lxmZXMl_RKSIf^!%W>wr9+\Sy._O;->\ypeqIj.9[4oNp獟;+2SˑHGm ^Q  D?ޯ)*- `wuI ֣إ(1Sq@1pR۽An0=y%EiɩN9)hw@gi)goH|$u/Tu+C~LfsoWԢb$mklqCˤWef|x{g&JE\I:k֛m Y .x{GD/471;5-3'Adtko ZQݝ d3pFy'/fltEx۬;Gw>d3pFy'/fʼNz?͟dxų;#_bř0F(7x;Ʒod&fɞƛ{y mL]XFYx&q5c8橌,9?(?I&O\:鍯x D1HMbf^jQ1W/W{ub- L\Kۧ4r<}/"o )d~$~2yې%xm_hnbvjZfN*WغT/y eŵjx"樺E:, _i#2x:o(pYB"broؒ-E~.(lLx'D4܈k>~Hx:8{W \;*un*uCR%`}hph mHxþ}C>ӵo u;ҽƛ--xþ}z{U~KpMcH ,xb &`$KѫΞ*V< aY $H]ltZK100644 GormNSMenu.mw$e^ő~USDL棼([pxR߷1U~Wt~˫#;oiW eZgZA*F;;-J׻=>=&`x:oZExrf3t/b%p9p*[NHx9L,eCWwxČXND_ mB:Q/T8PQOۓGxþ}/Cob,K[ҽ} ۡ*x:b%K[YpӋ/)ߏ*tØUo&(:V;lPxRūx[˳y=V'6>xk$#nj=l8YP`ĮOx;xqy ;yJ3RS2J6gF|pq6Lp^M^IAx[{qy yřy)y} "x[}<ɛ̤7/'bL>pJo~xgI,xku6-<`ÝXxʱc& Cj^ 2LIDx~N}l26sf>Éx[p8vFF Y6oRERx;Wdrn~,-mb ű#xȷa Kl205"x340031QHI,IKI,.N-fHVѥRUK*=V6z.9ƻ::  48l[[*mÎq6CS c LmH7 "PFpb ]H*)gl{12/v]x̅/Q\R^хcAy.|%e|-bḞbV G@楆Έ] 37FW%vB1ڽWP=vN,͓oxkó1+sf^䷬3nUxkn0xLƷ#nrx{kC)#2Ə+[Dxcg!}#v-B! Q%cx!7CډHTxƋUK'!/x$Ih8ӟiN>vV<_ַaĝɅřW=1xTnC@"2;&Yľ$=h~t>aR4Um,u3vgOSnzT'Tbx$Ih8ȵhU U'~|^eBvL 4 1x7A\~!|(3yUI *g4vl+gtMEx$IhmFIVnk3:@ߤ {f-x!d֊2׏#UCϢxH/xV)#y?G3=kFy%mw ֤z ]6M-5Fh %fІhq#6dx7nic'__"^tAEmC 1-H" URi-ٙqsEx$IhW} MJzZBpO`*kФɎJ9C0x$Ihȥ)ލ[+^a{f!+x$IhC*H ˹ٌ > \R-x%6G:aq0[,G3x$Ih$z㉃묎9h) \;dh.+#c -x$Ih9H&E-j/f{zfo&uvi!lx Wf$Zx{w+[pyfIrf ViFW[A+17?ŚKA/&V)\R&8y'kCx{{w:dW+ x;3jQnԜ .)vZq{Iv\jr5x3jAƼg$72/(o^4 F(xX}i]Nrl+=Q#jB~S2LhGքTɴA'A'6G͆ A/ YW/%pVlPɜ* *')sURMeՒL6eƶ۵&|YѻvĚMݜ<!=9խ(z'.YX8ʆ"CzzXc\3LFUHVn*UIAQn7*_qA퀛LYfz3:KTg0ǩzvUE\/43͐*9yO+BmU_aEυr>D.?4Z&J1WKϩΎߝP-iTg-ЮTEz_Ҁ}GuAzbs$UMϕWam'׈W|gPX>K3~K ʗx|YxSmgSN<),}\#?GM22q#Oyp=Z 3@nN 5wN w 䳞X Y s2@:ܜ;9ՙxyO=Um<@2ǣ7w3>k/ ~IN %%"%|s8y'|Ǖ)!6bv}4JɰAo8} f̯GxX@ݎ`)[. 4y~ˑ;\k,PF+sӻݵC{ 豁ܶhZ49י`?3s2Ne)wa|>ߥ$@>.PLMJ/P*ӷ羵wrc'45>427qӟ9fs#z|Vt\hئ@sFfXue8푅ڠXy[<)QIߖ= O +{¡N *z~)(rPU@.гD裿.-}utm5b6o K_߽x/xNlї 6 ;ī@HBt?C fan_ܰ,x;޿SN< ? :ՙAA+MN Q2S 'r;4GMˠo&r($ғBW"oWI-imT#Jj#DĖnys+FTGY O[j)z3%'(\Ɉ-%s _^0R F#e2Y#ݦzܥ4^SiXaH!M 8=⸇ثI"J {oZoB;fxRjKAS(!~5?;!0R.`:_~em`"V;#iרu*#U`ZnwUg1R#Gj!zoЬ0#9KٴԺI9>0Kg22YfX4.Xz)28~j225鬒 w][hceF 12C̙%Ff|9V#iӬ+Ѻ9 Azt32O!lE[VqCf=9j|F戎#,gN(b6ZO08RFR)F߾z%=wGփ8GXki1FEZM+YdOuc\<*!Ռ,;ĎHC@?DzBzFA =Qˑ^$cqH xg g z6W9n5a2&Y 狑\q#~`;V9ass#d?kNvWPEn =I}$Flq]#yJ3 .cdBm qXilİ))lC J$ #H)HԩHiHK9Cvmzz#9$>MT{La1U1rv]54 XŃ9XZERKCK9XZ9R Dd2ݩG3UsS2CXČ"9#[m5A#ºϵ-`d unQq`{0Vco8?'yH#@*2BHmGjR}HDjR3GZ9;_p&ع~/Dz/Bz/Fz/Az: U#j/5Ue&,+d}Dw6d{w5JWϥۙGk4k4)]Nz{Ɍ KCޘŗ|ETx340031QHI,IKI,.N-fN5>[f;%Nj ̫g.3/-SP8YO38kN*OJM.)K/e9qnG7{1\-1]xqsRDq_&FƉiA9OQx340031QHI,IKI,.N-fkSݬÞ߳[;ɶX.5DR }p3߫}^sNh*7> Oݛ|2z4~T"fe*g8pS8%/eƀGs-{Frs+GE| хM:z!Z"^w}V&;2M!CYg&|"]/nt_rl_YK>HИl'S$RPEu})B.e0I3kk]菕ʻZJ')+xH#@M# ۝.[[{r88]ի9?MrtfHz?rz@Kw?ޏ4v}6PrHHyxoNV&>;[HS+w`ޟon|0E)pwR@*E,RԼ@ۻB)v&e8Z^ŷ*{ lf p)9ZwKłu,]HI'zŒE3R%+BL#בjrMX~~EfOu#/hrW /, _eS|_ƌa$pp14XfL3] .5ur#입ˍs%6SQ1i-p% NS>3垆0o`Gk,,q2vÆIqK+ ^op/JoɇTL14g "|;xD5'wP.e"B5p5L;kt%n!v8ŗ0^GKK.k/%hB~K5!Jk#U1MUcJ%~BmmSfhsO N g(R ?E bҹEZ_{Dޤkv_G؞-9. ҋ<ޔ kmԟ82Zy~K۳;\2x<w.71/E*̘]ӟaZ mnV:xYn_9$'pID'dg$g($%'4NKLIMAe,\Y 7(vv^9!+ĄL|JU7'mc"1=x[̻M!5/KHfqWExzJi' :uuxC B$kw%,XmkCn:vbϏ1I{ SxC B!N_JmK_)jeKkCziMx͂Zp$m'yd GQxt "M0`o|0`ޗtJ˓roia~DvƶBbF!UBVJ?'.kL]hoj}!5Mx{wH'w )c*P t.x{wԅ_j4V%M]}ݢord ,0xr +C%bdJ'}#RGQDFD^; 6$~&} E2$p-$ݰ- BN|#:0Ix{w FYץI<Ω]t5֬ 0.xB BZB=<%=aN!Ҿ$k'7r\@/vp= As!^"HPx{wCȼNy'8-[S9فI|+lߛ9D#E:;x'C~C cRLT'x340031QHI,IKI,.N-f0]Q5Z"KgxdC-pTuÇU\R_ٹ+0Jt߶D$V/@,Zx[ |ِDX*%*˔ţ-nv'f7N&lPkkSV{(VkZlKj[[Q"D{7vfg6lH,}}C `0G*?-Q5 ?-!X-QpHL&PuA$YJCu=WQC $F'U, ̶"(~?Buw-KlPC%=r 3 D0Z\J#TPi3<%,irad4ռ\աd"FʼnyM0 BZ7(Ӱr4V] HšŚ:rdLLo_Q ]#[f%ӲJJ̎d{hc@v f*-%JP4UAc@S pm/+oI. %4 W@rP ӓq%mDz~SAA+ؠL!א\lZ2ѩ8r- @@R6HjЉv!evĔ.y)Gi2XNRIz'xRg0kfY1 fEg$0b;(sx0U瞴:ǃ;jd|TˤVp c0[Q@naԳ׊kc1qKLJ>.u)jn)2L5+r(톴#GjbYV@L5Y@4[n$Y3`FX R\5 (} g2H> &ntOU,n>fo97c?aURTM>g>>l P JI/vR>3cYrӪrKZڶbvIsP$T-jMǬ XL/I4#f8ũziT5 EXЉ^ o%:4i.:"M}zr8䠓SƁ~jU;t J^:e SSOs E궤j2{,[VJ`+-|b'(oSh/o+@?Gy[*ogagYiU+LrRH~6|c]\йϦH٨=Մ:YÊ`hZ^:ʻP6XFv덞]r\;[K=BLfBLb$S+~dcH0 R22 6Ud.,:N5Z&͈1I҈YpIhuOv95t-o]'s)} _NVyL+& &y'y1z_8=N;ӔyR@wKa%ҺA6@yQe@iJ#ǥrPfC(oP_Ҝ (p (&f|g 6*y3ݜ7aIp_tTjs$k-Gر;b9Gvm̶rҚDWS⾣~8rx:2";P:Oɡ($*DWsP3 Zv?ITDQf(u+4 ^Zɔ9wҜ9\Hբ$T]3 [.KIR]2\ 3,a;lv﹐֔pL 7L*jqy+VnvfBPVW>[ۘ\)Y}LQ^ o>A41>^v4ySw穻<ێl;vwOͶS.fO&^WL? U>c@?m1> = 6\0yjss>k B1_< lwU}0 X  Cz u(&14F$Wiþs`JiZǀ"W]AS A@g]|!CʟvzӀoޗ=!Q9 e2 x$t} %z>RirޅoDcT9߂d\@d}Q(ڃv\(k@P(_8?ģՉ|In!sz{by7z{̑>ILO4}35=mxճVj6{CoRěa?vOgE洟|&>gӺ79l-O 3!p 2(L{:q=/ ^\Ivz!tS?p~ƂsxI~p{945?G_pG2?Ge|oRJZѯ<Lx^߀yz,竧4wy[p=~9i\ 7oww 3:ud?s#3 /@@"!~BC^$Q 0OoHX@J-qoo1^|6& ??/oM|WQ [AKq|XEo}HnZRj1yx(*b@TPP]*JRR/<4IE,̻ij]ڼP搥Lл,z ݔrw+bT>|5 p%q"!'=PdqJ/z7)NӀWDĸZ-Z$ZӇ ( a|ǁTe@ď fT` R3̠4 -驀"ƝIJUYv&p":ϦvRsR (턯kxۮy]cC#jF&ͭᜓ O( H x340031QHI,IKI,.N-fheݼLQ7: 4"Kgվw^8վz{fRU\R_"Ջ;&N: +.t8x111u i",`   gG t7{Axc8Us#fK6 ͊beLl\y)\WyLcx{wwBVor.6K x{j|}FF3M";Kd-VAP .sx[%qLFFͳ0onfSbjxX Be&?f,ٔLr"wR}Vhu=%튿Ab3C:ϸ)_b4^zA(xsgLFFͳ'HoVd5gfHx"@f{ܟ&+8Gx3#!39 }/ - ((#  @end x340031Qp+)I-*HI-)Ie>R ZnF5 M%4 q/LKc~O9-\UqbM#O@&fe2+TM޾_kW_L(517 ~a߂x欞\4 f}"Haۥ*yYz~<>m>%ZxVmo"7$Uujrw pG6QEٝ7 :y!ivgfyU (FNg ANJ^D8U *{ʹ9 Sm)h +樜SZ+.bu=I8<%7+?I 7ƁNwmGBS#,vb`"3rp@ u"5E [/d.P Lp)cTAi^3L`qX]g ,Xz h es:g HڪfRy)aR+e0AXXLY!Hn/14{p SRi<$!S`F(&Tew|KQ@;}B۾lap=G#d^8i"tBfv-֒{Y3DJqrI NLwLLAiWT1TO[P?r$O~'Ԡc&Y(Q8[$wc}eި\8*WdzToA Ax$֞S oFNJ/@1ٰśw+ݛpN؊.\A+ *!I{EV0vY9Wm'|Iͥ٦îS:TPVnGB k;P#/F+C#уq0nnDRD4ڔs/MuoEk.g`imk:Gг՚4RWPcir# ~Us2pQP}NH!G[9k3:&4Vޥ%|=,Mob[bS+Qf̂쫑G-zN8szZR3]GwbOYA)mG>LJTq?D9p{%4F<q[r Ò"AZL>Ե DY&G-:"YϵX u/sTƟ)1?|\Yo!>>IZ )F܏m  He:}OW2Nղ@c8No\*Nʙ晫+NueQ\-tkѯa Co:S~IJ EZD1` cU,qamחd>.ukpNъτYx7wz"t+qҥ̒%j˧OqG,3vuY2#h&գWbnZu\Cj,5܆yN{O\Mo_Eksa5e4̳QfCt<Ҥiqae)mYtPjJD}6 "iYJjPڸc8f=Cen}f/붳!!DYhHፅ0_̍otäp!OOlbS-pf9#. ;zg!)]MDccū|K2)r!'D b\ ~a| FS Fn1G /0{'Qc]?>?)SSFq)kU?-1 PsM:!=rm!Rm`+q g=eb kf\q/ڞ;Ѫ[iUG×(66<݆FT'h_䌌tOߐ3HMM>9yuƞK U+N%xwkBObiQj^WiNNfbQMD! *_nǥXj_`d``q7ɫ-MJsrR9>!!~ HR9%%hʃ<=}@]^.YE)LKS,r-|Qyr)p xRPLrIUUPRsA<ԢĜԒTgr~i׊! c4*uRKP+QDBS\RKsJ\\^=+9xs~kY&`4u+)I-*\~ x340031QpI,.K/M,+,.a{_2Vt_JhܶJ4pIMK,))tXH)eM_C+o K-*P ˛o5X;Zi7xee!"~Y Kc:}9': Ox[n6)>Aul?X Rp%.k-)PNwJ4$%ibqH w39cT7,Ϩ}}3g*&x c4c(\'ŅoGdz0gUؚC?k!ݰII. ))ͱ)` l'j [, _pKӇy!NEZwD8" g@r g_׎aO01Z!89j}θwHѿ,@F GİcUIG\TsDi8e}+r^9K!kt&3\Va[#p Óӽ_qd= Uf5X|nQD8(P'&QPϴWRK!3 xMT %d 㷐y7,x*`H\r-n#5"k̟Bdw]$8#i&G*"!X*+~ gsNv@"_DVWC DxJXBQ yd-e*EkaKǴRZIvKݽ]Cp jDUF&UV,=>G3!(ͨVpTgjtTTޑLנ\,y q% &rHYS Ubɱyf\6h.1-v@#Iƴg"A _lIme>z헉P"Ɓ87;$|ONR3}IIW&pĞٌ'Jgf .hp!v+QkzQɔ|huYIi,E*V%KCb.2QWvc;\;ls4+|Y_ô=J4:dzT_q@g} q[] ae9p bh=YWObXKc$i/z"bpxդ65 }3x70qx*v~ֱMPVCCϊ>m?ݘ4e_%ax 6gv[Jȗt>[rPˇx]+]ߘ2zQu+6q^sě)]*W~1гc ~\셏wW{.\U7΋!Z6Es7g}MސS&7Mnui4G$h /x,[` a5]֖}/ÑoZ\ Kd2E1[di7«cj֌m8PfӃ,d̊ u lL{Ǟ&i)p&V*tSj͓ T' `xQ[7Æ4,Ls&)| 3o. @\ P+57i8m> }zkdn%qc"l_x9['"[$p;5\rɿrKo1: [%B"8RԤbƢGxQ["70t}tkPo<WW&_fƄiy_ZK, A4F-XPzCja$d_x[ξ}C!nr7;q֋ƘɭJ<,x6a$ೂP(2тMB100644 ChangeLog-$^}F9]o$x40000 Documentation%5*a h` >̈JdBdۀȩN] 100644 GormInfo.plist޲?[3avrB!Ie`ElRqKKXn9"/bx 1Fa2W܈AL N0r74؀؉w{8wϭ:w Wz5) ˀb`)Ԙ.8[%5 ̧h%#OsW%*K3WuFTHϗ ӥ񓡉xc0U]ȿOBקx$lkJ2]hQa;H!~Fp!# e `H +̡s '#&g0FniA,TЈCIHT$4y$3WVX`[5C$vҹC4_'%NP]hC'J6aw(.u6.ɡ/6*pv+v*.bkx.ySn0Pn(y5xQQkLb?#BZސ5I[K=kMjG1z7c$5! GBHbۺh! #%g¾J.oK[|}x(U':o`)WY=.o|/>ߺ>< ^ -=[wgXÁe[uTݔwCZ!M~njf|0Tv vd&o`  dć*_DYWT.ߧ Ӎraezה[f qh\;܂~f9ޚK&>{;| c;Fyn񭙣(KK_Bh>gS0Ǐ,v-$gIpi6f;ЙPwA"{pTBL^LϨuQKv.Sa6KUez-TVMDQOR}8 ݳPORԮ;]TdʮO\x୞nɥbPRY;,DO2x@#ill6m]s4Xbxkfnf(ph|S[]z7Mè gx'vCN8<6D 0IsN/ANxeROQΖMi!i^h)"Dl!{XWX}o4U덃!1Ib&.c8[mZ;Rf|cu SMLjS/cRC% Ѫp1(Nu8bbSl!= rti8Wm\ȯ%*&(n݀TW5؀t%D<)s}JOJ2K#95M@US褜6 H'Y< :7&2"4/Y#e^ Cro}]7p(퍟[ː]Z%ބ4 Ͳ|s, ,9))Yex91o&[i^n}rײ*OiFZ-l48QLdPSiěb1D5F:vѨ[.dj֙L#P Ba~ľEj)tW54Ox܈'5 sɰpJ s`=<|خ1cokppƢ~VlncLxq' \ `_PWP\R+$*V($(*$'V+d(d) +Ӄ O'PPZ⟔\b 3$(-195d S+!}nDS;b*k&}o7J4dXjSŸ&)DO(/ O |TMSxq' &ScG@s  xi8]_$F$-(4}%eih c&e- EYZ%"ID0B˄,EFbF}?9s9YYEa=cs9sp&Qws]oG'r`HW2 ^T j䣁ˏ~$2$qSHd3DJ±T*'LQۇXe^2FH`͵9AL4rQW7Rݭ9 |Z6r?I PcIT#RQ?#C]R[чكgleF/} g]vw:ؘ3vR֏W *9z= gMFFE<苟8xi2/ř5wʄv=XtY&^Z;k@[_8+Uh u E9j.[yVU|/ȃ 2\Te@o ꮞexE_;5Rs.fe9 ZkDd%F^Hɭ9 28fٺw +=༆I[VVJ?k+k'tnKRBeO(l7'# C'Xҡ|U!^LGIc{wQXi7j6z|Ӹ"{ӧt^@d_;Ф& 5vp #1ɚNeq h_0A5;i@XC/xicrB[1P?WT#Ƴ wBtӷOh&Y%l7q!K|ja0v%zpy :iqZҾb%ϯPtyETzħ oEl0x 鼓-kQy;~;t40*YS 3L.L'' m܄'~ e94,BqSm3η,@};6(6؇MЦX!RizW3ډkچ0!(8xTw̰ A$t<oHm-<ٺH@&u#gXIMᗖ^xBx#BG0.Cu4}eG& _TKeȻwD D!ٓ]Pfq>?V'܇s'Qsmݾ4MK cK+\Ηz=i98Ŏ&6+_'#TYyyUH8@9k@WT[ep >pB1, m3$G;k~i@kmd!kgK. Aa&,"-G5!y >$sr:JEY 蚦ixr1է3&,H=O!php3Vl O+ы\#K͖֛ymO\;<X"~|CfQSgSM@S9F!˛͔Mo<ؗ-OxR^e4Ű$L&Rv6&Ye)tDs=h.lcut ųXC" ;yvsp$UXgەULQ ` M$ÔkghKWJYƆ2i\b^@g;7ǣ#^GhL֪;. RdEhqa,Ч(="^48= )*tdMt˃֯aum~s1LxPs[3~5sKtWE{pi,q%boGmr?Z8Azp`|cҥ\K׆|>⥘I͉sЋbY -$hm?k$l[9+S#DiUb!X#{AGS/{3kK~c2T>^T Yt~rT;26=8x!,,YUژ)2ϕSfm(0x[^gkIuMה4whNg ~-x!,,Y6!K]m//x[^g:Hޓ/)`_{fk/ n>xknPhC#px[D Ւ73Klbs :nkxi.A tnzx;~J}EFF͗0y'nܔ1x9sFFY#wx)EhC#LFV6Լ..LxcR&F˘ 7?㌐\]~n@xctqFF'H/oex]]'CӚ .Q x64 dHlf3+f|?f!A x{wiFFg+K6{ ensx;q cEFF͗4,lix=zCòB*ٖx~ F?2lnAx>#|iFFgh/Wnyxph9ƽ*- x{z%yfF&#LrL+xfQfx[q g6e <@Fx[ldFFlN`>9beAn rlsxkjڐ9e! #Նnx QnC##&FUǘOqGU5xjh1ZvK96Grnx{TcC#^B/n8xۦMkQFF -gn@x[-ZdC-#:Ƶ&%xܧhs f{fO-hfl/x{azf/y$zx;wiFFg_0ObUg. -xۧWuGɟ6xPkW:xg)FFͧ73LBnx8GqFFo,x;ukUf#=CԜw߰(O>ɒ/s,(R0)Ysr6xИjx ZxBԜ9LLVCx۬;Gw>d3ƈy'/fʼNp3 n9x[otC#FF=I)bn x.9]rFFsq'G6Ux[qr b&;Z(L^ǔXFF3#&Fs0SɈlf_c &&C;M3MN3Ulp%73Ď6Qk= K:V0N:9ԆDoA[ܥ x31Լb+|]1kw(G&`y) ct.^V/5əQ%Fy%E9  ||\?zӫ$@$f3?-onUBr6l2qI,Idx4]ʴoӓ8%l:D/471;5-3'Ȳ)ǟ+\V,̙y%߲N[nAx&M~C)#2F>'|nx{}C #V$&+Gnx>U}C#FF!%38nx#tGh%FF͗;/zn-xIe?f$)EXnkxed0f4 +nx,YnFF72^nx9Us]FF +bx{j|v;Xd'_c Ū9u hn x{0fC9# Ɨ:32nP C#mtzRiEmT9Ү sThxnjQw1]H^]O`gh=x7 2<`g0& j#|ǰpN? IrUGÐ4^S/s$l ,1Way_+BeJ* ,jKz/D!>d*6"+`٠]R1äɢ9!$6#jRô<9.UkobyZ7h|V:LO{Zr]B x{|Yxq ©vJ*)$%g(eV(*$%dqquLoldOlr ?D+PGjBZ~~1!\+8HTar4/.ya.΂TϼԜf fYck?P:xkfnf(!}oyE1 `xxqBf˙no>o# Ex>}CHX2%[y~áų (7x+-(21^]uL%Y }\x5id&v}-܍|=9DA/x%%> }-9&(RӍ@0~$B"5/E2`>' REʰC&szX>100644 GormDocument.m6ȶ=ΓPH5ךG~i#[,x֓`J  ;a? rQ|ͳ~AgsNVyn#V Gm+ꤸS,\mf鳚H}i lXxk%Asg$lxZ﹁ksJ)|l/xURMLA(*HE^OaI\-PiD#! m;m,1H3٘HƋf 'xԫGAHip.}߼O5geFǭ5'F?t:S$ :Uh`PF=TQ$g>iK܌bkM-A&EMIqL,v5sYU=3pOo:A<1;H vGD]K\bo4f4[61K|;y@`[866۰֦.wpG"402rBy5׿Bv)4֗`閴"gZMsݾYW&WI•wY80F}TBJijq-˃ uO*SO:SԶA QYQlZ@Sr<]\+YzIEiiq6*gQژ^v%Qp Gpyډ V7MK!L\K\b1-gEj3440031Qp MNMIe8ng%)F:<4gYTxxqBH]{k݋'VwUx340031QHI,IKI,.N-fp]ؗp4nXH?v|I]f^Z>i\|` ߘ@ևD)C'e&2ZȒ{jqy7_,xMj0)eBNE3mT! %Ul@w BysV^,C  h A6«q 8cIrE! FtgUXMQ0C6$UgCدr2#Jݾc'_R#2 #ώ*nת'? GҘ2^WT)l㖢]gT'QAfL?݄f&\i{7|3xvq ̆ nEy9y %E%: ni% n9E: N%y: F+oLv<#kg")[xsqe k7(KG$&:%V*$'*delߠ#ix340031QHI,IKI,.N-fmSmb҅NTS4DR`Z "X=7&!eJ*PEIY%zE 5M [豳3,,x340031QHI,IKI,.N-f8{I'B̭{yI]f^Z>ý"wڵޏnwW*OJM.)K/e0eP-5/݆#YH0xO @ @wjDlxPxRͦ2e(ĥx340031QHI,IKI,.N-fA]@}}?*x340031QHI,IKI,.N-fXym=m6Qn{kGH2L [gϴ>$LIE(?)+5X/=(EUkǺ*3*Z$&,+x340031QHI,IKI,.N-f4ߵuGGGﲞl.3/-@.EzoLLC˔TRKr´;^HHUp% -TvSIfdRZ蝹N;K\; sҕ;\z0$ _{w뱐t~>` Egs9RPf!.2_~>K<[Is6QF3e,sl l\- PPDO$(!ƟnWk1~Ɍ\Z$ͥZAU"!1jjo0ڠ\ާ!c!7DV0*M ZmVvV*ӌ)W2{qք͚<i)?;SQk vbq=|'`U:uӏ V2):ذ5ε jNm~aJ2(t|793JEVU]G7c_ow&;36ٌME[,^Hr^NA4yWɓ#OV4yI@mV3R-ԇ;sYw{1 : ? BUT)c8|9{,ЧR-Leo& }M ៍$w7=z`{Лw_All~ =䄾t gXD8S YEVwwn!CZl3v N&'t!mVt2 nXv=E[ 㢐8}ht8TaD y^c[.*QgL'bMrtƟ~8aQZ}Km0WPչ~ט嵱nن 8:(^ʉ+v9; &YXCx'IGlOBwBI8S`LM$MT2ODxj3O4={kCuqZl[m5WJ@u曽V鹆KV(rDhl vvŠNUnj@~%<(!;r!,隦=ou.wyŹ3b6%iFf . 5Mc ߷lFxEG+rO[ C|ZxqMV JERSkUs)IPEf?(@Eee~^?R2n*o]n .SV;TʎPlw+OpQs9SPsաAOȥrQX $rsR̦̠9g_ryNWfN`Ct`Gp VFM?n{:Ru׮g13mn17wx։I}%7apj\ca^6?ax[LR$\70P)L 5Xp^hâL5"OQĘ5(k\b?vfwf6aPM/#Q$(*cfu k 3&+yr f:MWYjtor_ʔy n `#I3mJ5s gVgV7vn.Rcz)G|l Kƕ>CQr >Bj%cƐ >Aa~q/Lfd2٢bF&k4Mb!ɸKJYax340031QHI,IKI,.N-fxP>Lha >"Kg0-o?2%ab\s/ ~k+ޡR}/U,.x340031QHI,IKI,.N-f%r\{߭\~fVr6C$uyi WiKs{?]u(?)+5X/=(|j twR`<)7 .0Fx k ~3c's+P܃RחYw'CDlΩn}\20 100644 GormNSOutlineView.m[BI#XqM 4nFp0z\"P˓pNԠ!z)$<f2^ YL֌lh'IV3HIF=K=t9i!inspectors.mh%Wl@~^:kӓKrx kX4e-?&Xf#!V*(&m"M=;'xۓW2j,ƞs2TB:o wHѿH)RT}2*iam7S>;6khђI-b4W?/$=?Φ~h*س&wfx{BH|-4#Jx:Gbō+x p1Gmjgj K|.x, 21>5=̔jͯG,s'Hx340031QHI,IKI,.N-f2v|XUm>Gv"Kg0-o?2%ab\3pH/'+Yxxq7SQ~y0c<Ē .N M+uLId9gdL< `2!xoxC%&sm. {֥x340031QHI,IKI,.N-ffrq77~]6{S!̼|13.SR*OJM.)K/eh?F|ς|;!뫶Oh),Gx%xEF bb @&ĸML_2.ddYyibFQ*C|{t?%^)M65fl5A%YJ-ţ]u6[= B.$1::B EA.$ Q,_If=90Ni B5|>Hbqw\p%'-}G]\,bm hLU4t\Y[ƽ{N_j;.@!.&eUcrfv<>`Āf~ڀ=4"M&WٓJC6 wsYRJeSZj-J+3PSq>X"J\"|^V ݤ@t4,$h"c(pvj6^{E$@>{%ѡugw<Ĩ˰gy6 M3:|COǮTGkcYMaX,(RY]Y%B"&s>B9ADMod6T(Idl"v(@)K[V`2 *Ke0Xɍ"@$k>FFy}>1ZSʽJ36ꭹ0=HdDt G"M"ZHT TTul f:쎮Jg7t^;1!KIpF{KߐRݠqƶM9 F>j5[sv]Me~,d&~\0jFm< 0#aqy mպCmOSCm;vby+=B<Fiqy})XҠh}ԗ(.+LvZ;`GJ."s(5lg BΝ!o5t ~M9,8 |3{DHЎ/bNfQ{eR{!zQ+eza]u" _ |HJ*`Alml/a6APTmn'W׋.] P{6Ӄ3Iŏ b .6(Pgc1F ـ=ْvĵKۙmjۚrˁL \B)Sp>K*B@j~UIxqȵ‹ww#K2/śT [v6Ym{r+mXe+C^=zt=+&_6G-)fzScvUQ{W..2f>bT=n\-~{-.vؠ˛8FE1d5Qp62a\֧eb",s-tձg=anp%Y\JÆ94KwZ i0?Hχ !9Bt-_JΟ0.Tt0[Pg]ѽtF\U<ʛJ$ñ[n]gl+v;al% \,xHv\˝k]suޛoQz*fscR2 )R>{8͓y!5pu/04:-e=0YM.'[_':";wh*ys ]~7jjhXmu tYt^S1`ujoW\c^7pBh)t(6&r^;5~~I\-WUkUw3 <{6Ymhsyf`맺 HDT W^'歰&O(::;T>kqe^Jbmrz~g'Dž|j^(Sk|bv{;gJwIPVv ֏ẜ6T{1,\G/7NJ͕et)i`:̵4X>;-|l ?~ʢ]\T&yR\}p~Y?Wa3+52/ғ:OEK-#aֳwM;\*yԥ/Mߝ6Q\/;WP_J[;65f܆uR|Y)dሎu`DW a C,7d ˻ {+6IŁdy_OGpxY<O|j5,% K4/Meic6蚪5>ͿU߶7 xIJ|Ô.cS>SHSHPGHXxZ"'k("~ªOI⦉ 7~ZLyŢbyX6`mᗼMh,1kQ+Vӂ_{l΁)e%ilj*y;7Ji-RSR=R\MG$SO ~;T, ؏o/F 0bѷ F!{Q ΁e> +<'IV@XJ vtI23uBAyT&\w-)dO b)sa)' gt-^F!״]ejn@zct#>)e AaWRidϳ8CXF64~| >kVK$+ީ즮wNwb/<2?Tnx340031QHI,IKI,.N-fy u,gOVvC$uyi O^/9u毽*˭ =b\*9-%^ݖү̯^5:xqDq?&.Ɖ,x340031QHI,IKI,.N-f|#l9yn.3/-k%_]]eUU\R_ 3@夯C]Ҏfx17 6x~8|D9b @B=(371=5,3|u'R0[FF2B٬@A( 7Joai#ZZV@ s/0r0rs7l ku0>z#dwm;F[m&A=x340031QHI,IKI,.N-f07afJ}{o4#ɹI]f^Z>ÓKNsk/dyu5‚PAQYm'100644 GormInfo.plist݂YS]&1`+JCVtt~,BlqaS6m;? fyvaØ]100644 READMEd"HoH?YPcS0E=`]eY"K$t)x5NN0VDRI @(* C A Pt` dӒW(, R[>߯cg,VVҚ" yCdeu<߼c^qV$O]CH2$YN:3Ϻ ʱL85uhWrS/HY7Ɣ1oԼeMd}K/uZF1dTH{k"+3ҼuyX4T3C2p%gPX2e현0g/M$2TB딥EeTeO8-iz2%9EKRѬ3r,SDky(Յ`hU['?.B9x[;w7d3&A\FF A9św32NZMT02"Cɕlٌ/x[̸qB暏׬?O2u](|@(Dd&1XGJg;#T{ixiC61 JZq̯whx{:xuY7?cl!mn[ n7xU;KCA hevE]ZINǽβ;G>( by89[v{mW۷$5bگD _%.f:]8*zCEo0%L2,Gz=,(_u.y\ Ț 83ybX0|DxyTS#6cSث٦:5kXBx[Ƽyt̼܉l BKR C='>d123&jgkd49i Uxa6a&49Z<=eu100644 ChangeLog6X=SzƟcX-!\D40000 Documentation?&Zqi?P|3b{a V^1 v#%sjZQݣecqگ‘@)"/C.x8[59< KX}aoyh,,d++ GxQ["_̀/κl13k*/o1Qm~}PI Rp*듴82u` 7qN{P33`m!_x8[d-~ʠEQKHoZ\ Kd2E1[di>Fxj[wZU7A5= @[-o`^Ʋ½Uuyai7E ;;4-xh 쿋 ˪1;xx9[r]8/ l vo1$G.m $IGxP[vp̮7W*o<bΤ*mS5ˁbAlrh36Q4CFVEw EQ\ʓlH\MXƻ|&g`|(6T(z#ɑ@gfy֐'!C_Wؗ] 0P0"~Yգ(ƕbu|=z3-QO5sNUĢLRFtrZ:7#Ul0*#5֪N6 V؎INfȒg RzL+ W+VBhgGt'Lw^^8 "RґMQn787yI$% )m&Q:JoXN?^@yy!39bzOL!." Ԑg 1t*l%^a ;WXj|Kn{%¬ɀ9ESJZ aꧧ%+`w탌צMWV@0>~mФ6YWtq j2fR2oL%aiS*}b۸uvlgiΆxNF'=Ј+Wzr5:S*&Q;5yΜk/^FwyjQLM>Pg7kܹ#v " ՞]JEB%dxJ[!%ڱN$`/MC߃_ AuyZYt^$; 980NgMfQTer3G{eٽeY+LK АGRV ]t!Nw .0Å9]3ZhT?J6&^t?)[  h=K..+zFH|X=uy;:@f @}K~mq; ֪ܽ`HF8 7zNq6'=*_Yx,Cq(#JC798$3؋E% \B^ȓrS'-+.<$[Myh'euA3<YSo/C@y=r9W~`j2㺞uUO \o

ÛS~Oʫ-t팼*ڠ'T**D @<6<ܶM Ӷ]9R^Nm, P/- Қ.ÇGݷ|,?Y8Ӧd쑂ON7IO)F@?N\ZQ*OϲQe pǂn+Xa%Hf\Wh+{W(Q]rү5ܔxJUGCUV4Zg;`̐aF>RnfDG-!e?#n0b>r#9P8ʈ FjER1`b #c*3b+|#6]Rnb 8tJ/#N731@~x+Y}4g$?ֿ8IMk0.g0{$_%X4făeU뫓)~]Xc mx#%0쪭O 2PI_gkP>drd1R_䝬HP('eQ8 m:INTZ'I#ռ]ԤxZ:|U^BFBZ͌ԣo 0,hiDfN-pNr02 mn:͛()isUFuIit(oU0 hŒݦ]`gUksq\Ff -5I, 5|5IZ&I lCU#ݬ C!UԷ`gB^(χ'Ƈ]xL(X~h*jE'p6I.(1 }R-Y$?([>SnbvhxKvkRР㑢H!9_.åejQ_/pUiFΕᚕ+pW"e@*UH,R'#UjBHѠ!է`h=U@nf7!哑zAke߬#׃%#vzF_k02 lfqKF2Mj|ҾY!Ri?CЙܖ0"RHBLF",RcH )#Rq\HmŠ@/#ޝh̝@Vgm-2ro݉pY`08RJU5}xv >u^v/}#.VZ m ٓRqh8jHG_hx}Wk`;lc_y;I6; jHH@@IP! IX!(T|5VV**3ZGmkZUVD[AZsd7٢std r65ͣ~J!lg QrG@s}|[H#yb?TVNoOݘ%l%_;kᤤήHbo,jBC|VyQ I8i10)3.Z^`Y8:3=14eM |K\[ȟ.mLţCEPwv &ea(ۣ; l+pxI "66*i"BEUFlԫiEZ1) u 4163ϥ8<8OjZTve !N2k)g  QET庛V`xt-+Լ"1ݣҜ ZP+żTNTi VqFZŤ:zH@p/ [HD n gOljZ uZ(hVX_Z,5yh#Ѧ)JiDR4y"v4(77+~ts9 V9 E QkG#5n@-ҷ)KX"'#mp$t%0,|ME u;l#*[fKdc]{jڐ&FRL;ѡF w3IRS$BdQb%ѻuzż[O"MMPC$==U%.M]8,϶)tTSzKv#-tv/^C%d<,ͰaVP UyV}pjA :źܮ K7\+.s66gko6k Dj F33YxΆVwAie[/9O^/]̗- A)^+e#@F"Z<۲GY6|fp:@VÆdl|Fڒ*0-[]kM2dlEV #(p;l$k6 2eq_ķ>F/f|\%JuW5g±D Kǥ.S¬JRY]kl;22 pA@qkr%ʞ+c+ӝqL떎Ʒ]5J\aR/_m5ɖ+͡_N[v+S|rUz~_ /BW`yWW݇B@nK? {s{˵=pW^r'Jfd=B'kU} VR3$VҜ_C΢,эX}VO5}=&7#{pF+}3^^oJLo>~Ax35C2(ӵI». [(Nw>Dc¾ ڬ&uM2Ʉѿ0h N ]fF=ES%(X23r~mg&VO]蘘慤@lO<5?y#?OCz xb k{wXDw agD|#>̅$} -?OxNxʸ qǟs_&HxugG=hJ,Ѹy,ˬh$"t>=FR})/nNB?mꞐp+/E.zDXPմkwn]<>Gf#u~{la1F rVǷ$.7oAwYdosb7Ep]uvz#.<]擬0wjFBmi6qyocA{/A|+C(T 6yA?q^J#/LN} x<,O0RD`,4iJDHHE 8K |*ɂ@,jU%f>^ۯlC=-.pRSU/SJ9u*+pk,'kRI.ZoVIE^D &q]%W˲lJpGeeGР2"~ nǛ8I sEybXUU.^vχTڠSDŅnoZt$)$N |#8a$A%((5ʻURv(XrV AT6*1%0QW&/eJ6^OU8yFr .+`s d 0!?CRI̧%n><Ŷ58< vVjx6޼%X阨^#Ef혊/i|d=WJ cAR*U2I%$o4HG= ~8| WiM%R_*>0q;qoh}97a opÅ@Jx#Ѐ}K!m -1^fr/0pO5C;*chlv)Koxy<][!T-e;1 00 { EٲeHR)>o( c_P*^?~s><"lhn 0XßO *eEnxZIq s'aP ΋quop:1+S~DK<I0y*[GxjdCmsʃp${gY n1B,6hNH`õ%AƓ>hBϕuYH~},YX/XrP4= ё bzTRه\=<_H5U};m{ƀ\?^b STL>+ xM@.'ffo`sK 0A0XHO  {߱oU=(ep`9nqnX7q d O¯ƊO4$oa7ĝfIgҊluVhAwlڳW$PuL !6Ul hvi* Bڄg@*7\VzSoYtˑrUÎp? !1$3"Td[Qy:PA:35ZB% =38fH 2 _ ])U9fŎ}'3 &KQvqF9 )mk0v1mx8v}?j7so(F;-.Z:'7.%~VUieeݎV }WңfKǽ҃:U/FK08a%[g{;ip165'FY[vprh6nlIdZ6U˼xB04 M8?ոG.+FyS>긞ŔȠa{LompYqIEh$ߪeDڮjvmiiO#  D@g{j>Mgy#RZq~V{ᛗw@F1G,s^!B( )ӓ q{cE~ >\n>s/sZ;B#xܯcZ/cf;HWh W>7 j^Ķm0ZuSh%yC/鰁[+\{8b90T,ဲI\ LجZNSx(!bX]әO֍^a^w_m9+Vˌ҄I}(R)'%44OʛKXʂim.#!BJŽ]Er;`h6wMQ7;6$y9lE7Ϙ5J*Y$3J}"?+AY*#`]dG6x=M:*=>[uB` P0FRQ>41W 0|\*(ySYc则ۍ X"=TekVY=$qe*-ъ`-WZuƔd tʑ25ݨ = Bt$!^QymJm,"hZ'2uZPHz7RXwXJx/tH bz\Pl\",&.SSQ.Wc$IWLP&nRv#Mw,bM DY$ȢEkd 7̫Y7,B8x*W JUO968ٿXV3 #u۞XE D-fn%.j@ۼEtc^~_X,UZ ~/Ή 2_º OT9yFKӪ I_T$#l#X@ER%қv[5L|1a_u۞Oی7ݿ٘P_h<~s<_W2A@>@x_I]!o^rTFRG&F5a۶2A>c13$VqӸ+JT!R$.qmK BduB2&sY's9ef-'j>Fk]v-Qo|jQrYd,Pr%nrAk]' )osvH}\H4@xrua S7oa̩RܨQ (x{ua _$5W&NLdto I!x#S$KAfN TSxcR&F˘lٙ u6?㌐iex[[$gNv3Xe&c7H)+.HM8/$bx[ξ}B()[>W.cp|| fNj +x TϚU4Q)( U-x[ξ}B:vOK.x3.w M+xcG +0[@H100644 GormInfo.plist MWs*@Ơ p}Gi"uM#:xi[ im\)lwՠ3ܑo<R\ ‘gb[Yކ cٓi7QXLΘz/T2Vxx[>!Zsm> 8yl# {'ۈp,@ӽ:eݝ6q4 ,s||~e&g2'EDhzҊ3ێ\jh``fb_뙗WY\蘾ޜA<۴f>bb`>I 7%ޟa+x\Yˌ'1mW HI-)I-fx]$'6`gcaD{+m(Yi[Έls*vh,x}[Ei 'Ow:Tm±o1nf㌵ڞH Q:'8D9N$-)l?Jܛs :@e2ړSsJ nB&$6 ӝ9Oxkeoe-]7.-wGq`ӛ~43+ LLBsS2sR KsrR>H'{oulR!7sOofr燩/ex6S_` o|Y>b8~?~H>100644 GormInfo.plist{g#BoGp[aBat1)S{ k`XSNbpߐ4V& eL/N:x86-?d8vL~h7N4JY<UQ-# bΣ} Gx[[<>oKK ]Mȝ40000 Documentationkz ?e2ط >VQ_!8A'100644 GormInfo.plist䓇<v (WrqD `:#lW!EUc"@2xQ[<$+VxF[}l+M9ޑo"QS5xъspQFi7G mZYj\?ӳE.#`x9[GJn*VTjĖf {2sMxh[h2flUkDsf-g= x.[ x;wAiFf_# !x[1t@̴}:sGw f!xz<6m@̴}'~| 4!xrA// @̴cV s!x{˿#_=_=#3mc^i{x[-8GpC>obqcYsbnRQfJ:``dhly37+Z ;x#xS`C7 5},bױnβc4#x) d39E%9ya哯L|Ս!5/KHfq֥3xmRkA%B]L& M4B/-(I5M Lwg7c73lxAĹ /"*W_PăufHi{7}?o_k+5hrDB+8ƢM>4x,VSӵZm!ҀxOvRr49_8b1wpQcY-jC;}2$y;"*YQ `L8HF }LE1'`*``&]hDuG!/SOL(ޔ~neKep8F_#V.w뜣m˰1jjd\<<QMk:>> x.BqS7xn($c *'m]}x|U,(+FQfk1# L4c&dCX_2hNt_[ٓ)H)XYI^|YZb h (|=y RV֌~d4ႀ!UorŔ-WIH CF]̫g\dԄ cu@}2i_,дo?x;Esx̹!YT7X,UG917(3%uT0024ԙ<@N x;_ DER7~\* LNT,C 6ެʚR7E} if&8\\FtrrX>,Պ90ɒm6_ [ZXTX 2sr{Ydjɿ 7w =x_ QJf e: ΉIE)@njtxϳaobqcYsbnRQfJ:``dhl&+^Ix[}:k/7gQjIiQFx )ĜļԔĢʂb%`B^ffnٚNKx[q M|Rus2SҁL_G#CcK Sxj9d'>e,&sldbϻwr%wSPjq~iQrob^bzj{~QcJJfIf~^&FY~fBQjzfqIj[~cNN@R~bQJHeAjP>#KsO.M+(OJ6[H2Ë5xkrQn\fCSCļ<̴ "<_G#CC2N6dvI,.vM,/ڼ&f9,ʩy)i\;A Hmx(wHn\f%3sSbDzTܤ̔t QRg9fnu|9x;$7GnɊlb&q6:yx;bfbf%3sSbDzTܤ̔t QRg)|YVx{ukCobqcYsbnRQfJ:``dhl#j>x{Kmx[ömNFFͻ,   Lj#-x{#W~C$obqcYsbnRQfJ:``dhl9sekAxkAtrf53xk.!YT7X,UG917(3%uT0024\bw x31Լb`yʽNj~K̼b<:[=u7T8~䖌/%Fy%E9 &=fy: }ʛ!jAj3RʹnM}N334vKnAT$$2x[y1=9ٹҷ^e040031Qp MNMIe)h~zC%3?.Gnu*W&Sxxq:}sZPnZD Rxvq e'q x340031QHI,IKI,.N-f~a͙/Z%0 Z.7DRPwQoIpyS?(?)+5X/=(XBr/k\,xqDq?&NΉ,+x?#wC[Qb^vNfBpIQjj[fZI[N~~S~qI~8\T}#(,$U/ÎK93/94%Ub2 5Xt&d"9u*+&ך%`Ep+ 9ũ iy@FkaibSxfNNpbYK~rinj^f\ @0yFgQjn~YRqjQYjBqjPd 6~%iɉ%y\IY%V y9`CTtIjnAHjEIXfjd=) QnE@bpc *';CL` y,pm>tirX=Vρ=P]@;&GiOayI]f^Z>ÓKNsk/6Y1&)$XP5S>6_M;pxl5̟ ̬ٻ(M^i.==% :; V;{Go=5;߅I QUm]; MjE}}!IgDOQnUrˤ3JY𢆹a1i}m 92/zҲ'YOG"wWi!,2]V2,&>\ s;o}EEB-qD$Q4ϚcVM/eRkպw-`ݠT]`[vt-ĖwCwgp#/DBK`&/w4݂0d-Kli@YfLު4X1*ӂ2Gj}/y=9{ˏ3/9wr>1hܥV:EZ0v-` (b&4$wJQ"xw9}HX^;¡r]ş&ngwX`كe"&XZQ2Χ_j8`-b2(V·12bcmg8N&.Py=(D/Fxe([Bh׃Pt?K*lqxTD} ~@vXXǕq*}7X ҄[O*A4b"Y#Y':b:YO bxVSU؄ MoһҖ V @ldTrg|g]}u/8>'x]RdϽw}7#0뇋+_puK ә=VP2z1n";`^ tF9mx4A(t8Bhm&YBtfJSu0p!j $&2ߞN-EdGއ= g_ !Ii [8aN^>+uz[sqp"BgL9ngU@[B0H苶-$p7'ۉp1t Uz&hcU7V>k3).tbbO 6q9|dSk8hʒ豻:A?NQG+qO85S`efOZV#$wt]SSJ߁ix]kx*^y,,Z{E/13eiPA -e,cY'fd6YC22L:㬐ktQ6wB^Uʮ9 'ydE M8SKu[dQ-)W c|jي#BTRJ7U])ndsq%?yoW6w꺶?(w+ b|@ڃ=-NInlz<.rymq$@܊ҙt~-ٽ I9Np]U)xj50f e  P+:*Hf6C9JORo[QSJ~ay*?̜!/u2]BVB]]_2Ugp>C:h< Yh PW]LAC"`4R}>C7B/܎':'93k^aԥx340031QHI,IKI,.N-f{}|C$uyi uYO7NwJeiU\R_zX^ɷoV1Cx]QMKQe (ЈSteAƧML/( -G e??dMSs;TOS iq"*‘0w-ǒIP 0*g{5wRZ v(pAXok& ٚnMlXk2/aVWI|D5͋pv|ߚ xOY.r>1&,T(q]fN%>HKԉ}ڈH x;ϴi~k`m&?^a7 &p'l2em6f1X =xkzx)ㆅ̆ nEy9y %E%: ni% n9E: N%y: F3d甦*+(d(*d$e+gV*dq)bIN.%X"P.RZJEq()pq,IUHO-KM."Qc%6g#d@jb57OL(!ICx[y 3 M ܊s2KRSKt2J2rtKt| 7b~ϽE`?FtdEKwYjj& OW`WPPSSJ gSU\79rB(XqWjғ}6_ q6$gLv&旘`;b\ťE9 Ev)pq*(hʁHI@5588' L/fl_09oQdB̼|ǢJ+Dk=YAkA*P">ʔ7+3OސFLse~)+LV>o/ Y=!Ȓ'3M#n~dSz߹lbYZT`__/%UY'_RVjrޔk\|kY32 T/8<3/%\!9'8V3֚K F$L^\LjEdjj@iNf|ayޓM_ܸNt #t>vUKnΨ8=qte F\z۫r*hghN(9=ƷӹͷW3pN!ёyƀ{Koe<Ⱦ4bnW(*_TPPZ mEB `mmfMLOEoc4q.ƈOM;vݼQi:G }1 '0VO_Qe}y)\Mx?eK,YxY]RJ'3oR nᛯ1f'/BUj73[0oNO]x(wZnd~>z0%|xuJ@ƉmE[ű $7*--$[]eO!| >IN^:)Z α:p0c$<6ŠpKSRz/U'uIc0+IS21SEۘ!Y x31ԼbClg<6Fs̼b'9bp<99?(?j._`guX&13/fo}kSAUSuU&.% ;]:d+{Cc{K LLBsS2sR,bqٹrEn3M)WSxxQ |SJ>RTpsbjOT6t5x6T~DAjQz+h2m{j0kM6؎]'DxPXi鱏W;')lj5xZ>dX$'Im~ƑWY J|S3RSDb@HXk.}} rD̒&sLl8'gA||`|Ll2\.a(`}4G3[^VOad|rΊ9%]Y\柫P´a#xDY+|8D|WqFf.bJ2nUKgTu6Fn< ,XCZ٘ږ]'ctHž=}]t:w U҂qK"/pCràG_"\i-nԕ$vuU­Ѣ'3I\"] d0A%gyW>%ߤ8 SX#H'Cwi|ȑ'c!=!<% ku7Gc+ 5aWMxExǣw4N=CXp.]X&4DXqEkDg#*n]Po%``l5Gx340031QHI,IKI,.N-f8{I'B̭{yI]f^Z>`t`uӍ]R٪dZ~A'e&2,7+.QNʀ G{;+ xUipSU7MZZ6Ku"ETڦIa)Z ")m@+°zAռ$wDDr\T+SIy<ۤؐjT@n]%5pMLIqj&&tړI/P3e.C~0zkf:h .nKۙ8leXG2wX6 nƋQC;vh١pJfF7-*#> &3i4 'l% tB!c[g@:Ky <; vPyMYTBaoNnPǍ.?r%!N]3 x֑o&f; x'yuWЄY& /˱8,WQjvY~MaMwơ~UٹV8SMG5:jc씳#~'* 9[`H~/}Vv  Nm)iGe<. M6w)pmgb4Wj^~R3U;?ɽ S`])T+ .%E h[{dCD#*aI%5Z*\!:D8"A ?' S|C!8*9s|`H/ P1XOC<|K-aɵ. ڍ˳ ?O)!ՓVL(W0\do6/ֺ_W١[6ĖW(ErO%M2bh r)z"xB6Q47m=SQjUx֊100644 main.m| xpw%v&#a$4Փ)lmzx[ƼyC#tF{֩șty>}3M\KsSJK2^ /3?W_Yx5/='8C/(?D)s=V#tm["噗W o9ק_ݱaOfi5MN6COrHMLI- H,*N-b8:98D,C((JM+fNϏv?fE F1C qaҺ潥\{_;bYw,O}{{f5ɥkԠaEŠp /.p gtULSJY UL__?ڔ,$H;#ĈKExSUpMRՃR)f3wi7%Q>` >&݋AhV_s' XS)̓k xkfnf(4L)~V}RKoSh/è =^x{wM 'PQ}d x340031QHI,IKI,.N-fvi[ w32i.3/-aÛNb}x+>p{/U\R_UGB'T*:4-Zx;cBr1n{i? i x Eǧk6}C`A Tf) qOv:!3lPQE( "x" 9D@D@AE$5gg{x^پ4[|I撏 ht4ZT{< {*d))L}?y;(4Z8~R5$omne;h @EQ|~l5Xbu!ӗAJDZJg!|y.M`bc1].3gީf~1eC|oEBQ HQz4q9Te!d%c1bґ⣭$m"N tsKlzGC~݅ =A#rt".Z_,l Q ~D5Y "GF+ nrc }%fՁ &1v^t/=|o.M=fMADQiǙ "r-; a|?^[Hg͈+ 'vSR0<@O?cWl>.g$Ʉ?nB/OfQFmrC_ߥ3Î2geI<ʝ"g{1elfci/?7 _N]3n3ϓ_@iQ rs].to+pKI^Mk vZ鹡oC'ܠ}پFKZ1૶cup9ڠ]4Qq}Q/דoQ&;tœ7m|[ovCmd(b/6k;F@NkǕ~wa/gOv\v]W(zeÑ&j.ٛ Iw`C-=*O;{9ƭ ЕyOQvNs5 ]|w%ޒv/M/w?^ͷ5Olg:.w>oLU 4/пj=]Xj^颖0=v!;vm 3E0!3',6l#oP*biwҞ.4Th>H%76Qogg$,ݹY>=tY{X>!?4瞣n.y&W]~3=bya(/M Mtmyj/T.I.u㻖׋%{57ۓ/&/ص'_maWѫuVl'ֿ5^*zUn(4 =\EO-lj"?lq}41~pw Y1N M,GtlL6׮YJy];BVH@4x^} 1XrP`e9D2ة&^Q;aѴRHה3rp?+3I*xX9$[3sw*g,HMAX98ܣ")(׉")cʙ)hCS8E2"LS4f") 2V9392Aucp|oAprDХf3NzQt "|K9{q "ܠ}8Dl`rs$)< /*:[ % =!1t!<y >b Ks$Z00~!> "Q>!b׋D8Dqpq1He|A?!h:08D O3$L!;D A3Ō2NaBYNs"g9E Ssxpr)ʹS$vr%Haiv \T,x*/ ^+IQj̯a.Ƥ/sr-0|CDPk_e8D5E:ޯ7-g]:%MK-[7C9fcyIuz񂻕]Ka{$VndDPb%HM\>RX>()73H!ˇ /?d0xX& A$ܨ[YHphpr~Bsm$ܦYH Sq8 S$~'Ha.Qm$%1!\wA^pre=5[>vJ9s~#_1~#nQTd3 UD̓" bnj@Mpmғ?xcDze8%A뷜8E'/IkO2]$|荾|D{&)<5=ÅgX/QFc.'-RHbeq8#C]܌8qB,=[pXRpX봂;bV08<ӊ봂91_8X8JZ6\q4J8A`V08<˴b5`px.`V\,Da;!qS91b$sc y +qHS)pS91Kp)ިI"Zǀ"q9RкM K1 %Nc Zsc@DqBëHs,%:W.ʋ91:9*ՉܬFb55Jt'󝬼~.;W(ըCl$ґ}&쓍v'%} ]}!5(}u1S>.ɾtI'atI%wSyv._ߣ 2/_׍ 7Mːr.]Yا`}9&c_}}}{`G%Ic_ d_P$˰4[ح*Us;%4Z=g_g3B:S~s_BzQboId=~q#͊j޸"7r\ގ=5\N_"H[vn)qB^`}cwS6 :YnG/vgi}heyvk.of|vYN!ZE坾5|T?t]!؏=vI#v]˦=7kVwjhn[&~b?jv(*SU+_ e󸥟O]P;oTB?zF7զWLb/݅4lJ7j=;wJ܍R%성PWykn8&t>.f-Jng3KWCH (aϡKw8OWCCuLZԇ~VS+UDǠ^uޣޥ?"}n$T˴w*)kUM-a R> J|RB٦CsP/?0?FC!;NdǮ^e\#Z{C0ğPUl?EbqC vB)Gꔯ=q (ͫHӢӔ7KṮoݽ: Ԉ=Du>tQ2:忐r&%}*].rcI@܃Palca?i&O{W=CQ:Tf+_ cC)rCTxi-?Ex _*Z>we4(kt XkW( $8^'i'|Faavt&R*JB%͞HsN3ۤ 6EAԣNx.ue ++{C}m34t^3 Dj?\-\}Wivz[5Z+nÃ|ϷrH :u<]A~l3.O@$T$I"NՀ0 Uyh5qϘo3#5]UՃȌ*dH{%6"DiQ\=RUWOWzrDԮSv)U>H@9G+5ڞ?~H`Ф‡qmǰET>)iXRuL )&28EgR/`OPHy7W :eyw̰^?j%px}wxŶ3K!@H;BͷD$0IhH0 *6T{TTp+EQ"( QĮ]xW<כ߼S5eu׏Ur47r_0$"r#QTOv8:խٹ)))ُ BZ-IKm]d֓KNNEO;S3SzƦ҆EN=9LC'tA_@U ? T3!Q럅liգǷw6;s3=z{O\șOXჁy8('uE FlDx= 3KCWӄy,,D"әK_#}4 m5Z&YKR[. +\g-QW }`Kv^Ng- ;vƚ؜*u-,̩:;T][1JM0_fd~~u+6oWU; wb|Qwc|O3qxMbzx-LP,q7ƏQʩ:=Sc<3뱯ǜ'דX)h-V=g2e,ḽTe7!x R؁51~A3 =yaWMpM`UzժU[Ƌe_%^b*Yᘼ 6dyX=pKX敩7d@; %h$y.83P3r, `Hd7v๴yrۄQCcQ ĔOٍ? :NbQC9-mM;΂:>t"ɡ/9#|*#L*|<\[X[%_I/^zҖ.kptol8E\`ܔbO>| }7è 0bw~dFngq'{] %VW>7X\:GnDZ;p}l}ب*F)™^1Jc߽({vQn(˨}(/wیvQilH Y&m2vߍLv|sױkb;4ho0*i6/Ӑ٨ר~L6߽Ϩ"Nr_5i.5*i4f0iZ4n1N-/!4 I%h(qgWJF2 bXmQ,#Ҩ Q;بJ1;ܨ*q[c ej0X[QXy] R#8Tt;*i*/6j9qЮ4j$aPU5 CFh$Aa!QUqN5*"8F#2ډFmȨ846jTPS}p7Ln]Fb00U^5;JP!hk8I}':l:D$-{ ?N1<Vg*+ w9׎S^'8IE+q/x]$:DV)+y1*Ay5M"i22츚a5ôH"qdkFhcoy=U:6\2-5=1MI znfb%NqXBinKVv$ZC,acԝbI . ;tkk{ĚU8!hO,Q:'g1;Ũtf<8b0j`ޣqԮ3[pG"eս_ma1^sv8u'O n/U!ʿXQ3A;Ajir0eF&®]6Y+}QJ;&[Q*q%n!N 8Ty毲#A;5q'5:tngw6q;"tϛ7o mQFu όzq}q|@vG91ȮR)'_[BaQqTw,q%g'(t?>$s3q{Q R}8AK!ZxX ~|M0=qi\ *}'.;]{eWrA1Z͏i~ί_ @耗.c0B#.BtuWbJq[ZW0zbalYBcYQZ!]zTGƭ1pv]G#)G#k'iIL>ܟkOS 9Q*-cq8(B` ݘ:)H(tVҕSgbxvKHX/קRҵ;I/"1D QFzI} $Iڃ!HX1gS0SLNgczyw_X#eGy>0@y}>+H}!OET3C7HED2KHO})ɢ/#=EJE_N\> բ$=D*. Wj cWaW(iZZ_c lu$}=T_n'n$q7e7wФa| Mފn֓ZG};t2?Nc`iVyƱ-/h_ Mi< hϺ_jX܉5 c)jC~) mښtwRЈi`ð篥LLZj( uC{5ޑ.S[GQx ҦW'@pnC7w$顢"=B?R pt'*̐- 3gōTa&}0DiR!f{ [l%P}(OD _]صLZW[Wa61O?V{\Ivm  &yo"PU߆|L`lK{xZOiq15>h/nùn;sC!{ઙվ >-3k|2jVq~:^(1p1>I<f2@ts0 pTxWT &m0D uoIo}66iN*e"9 Q@zIo&W/7ol_%1۟gʨpY9:oXaM}qURWA!3U5jPP4aԫ+}#a0_^Sçӝ[SskƮf v0REx340031QHI,IKI,.N-fMlkXEXI]f^Z>* ; NowTyn~kBPEIY%zE g*7wWԲ 17xWKwF+o$Æ@ hKRJihKl DIP(8Ȓ`â.ɢkWb՟UCJXJPNkK;~Νo.j m>-fr Cfn3LEUHn>%(jI-+;iQnξң?d R{IzQkeA5(Qezèոu֭3'Z6lr}4a$IME5.s ”?M^d>MH6Y$NGM^McU`7N6D &0Ы!<|C̡[a.+Ч' ?3=l~ V ABLaJ*ξf?)[=cJ MI5֤yh h:K7ױ:ƚ-3_&̲ғOl''KoJ lϱUγOu;xۺGaB@'6-=aMdHsM(p2<$W}J{ Ə u`Rd9#4&en<?yR$C9S7Er~ #2fTi 5D-!+z} o( Nܭ[c =N8C#rd@0|@:|=9p}l^{?=Ʒ6ԓW d&XkLY/,iCvwxm}Q>'H]o xAy"|th"ʑ,?:R*Ȭ*SR>;02=-l:p3'2+#(Ta^it\x?x$ޡvAK(盧 %5[3 sZ2K;dVbuzXRO1y7pE91}'xp#)Z kq+ijAhqLU1-zԠ a= .-4fympQu+q>Ox20R^ Tu=ud" t阭=(g*%,|A3|'!(" #5D}? 1F,:lW܌2PTCѲ8ZWƛ (`*ZA[bBδM4ӭ{xmMk?rwa,!V*jxo#B x340031QHI,IKI,.N-fT?Tqeōw&_fhX&xI]f^Z>"7&LwW|^(?)+5X/=(!s_vmuk!.xUuvΦIdƖT3)DnhMV4}84iE b16-} U~޻3䗝{y3f qۘ"U(?=)E#EB@2ųCV3.(B}"98t2T%4 $$6,U Mұ&_Zu S g'+& qMKNȹw)ICW3# ?jByjRE0Q&۔\63L0MSkp0>`ea'``T)(&;TeI0" ӄZIhvէ^EB]"i2!kNjʌe'LEOb!3KpL0DlbiE\B?ptpdmt J-w* *4СgaK5alk}},SU4[Z%tjϦ肆`_Dau;Pj4D@R*Q[3ps;@ώ˚:c U 'srJJ.H`]hI$+&UцRf_PX@6YYSwpmcB_;wBV9FVrZ.rZVLe|&̄ 2:j#aXK483 f, Y=K""tZ%qp<.+]!|3tu=\/9Q18Ha;c㆑=D#|)8I{t.WLEZJ=Q5\ }jJ`_A[g5|{B*2P[PȄLȭ8S+aJ")?Rn[$jW(]yHJ2͙1@6mXuwpqqDoWd%%CK{؃&|`:1W?]Ïz;Bw_mR-@`Up?*u |.-n*SِR^syr *Fa橊w0zo\P:K`G~Yh?[oK嵢TH[k)HW eQ7C| I&\&nXq3>cqgq3ኛI+7ϣ>>YȰH*(z2$܃-'*rZ1`IC {=' ]w@}./.w M=vu /MW|$+}i?#j2=~)rJ?[!ӁREJKiC=:r#__WLKzl۸~?y~x,/{^lΌ唔#\MgzD:Ṳ3=Z [5`I9 S.Lr4yk5yW,>5|>ϯ$9a78CNqCSI S[Hd6y+Kf;|IYܓ/h ,Np6NMied89b8DZAass AxEBi_\ +8URSZ]3oFsT "/8rV%~ы/ָ ވ8-+>V3&U3-WQ'wF#p @#O# ?#p3/_Q(}^;bECy܋LޣOjJp_ 4rbcdurvDx;@uC087Hplx{z\uR&n^x; 6 Q>9xq,*'100644 GNUmakefilew̭DE̪Z'6]V Ȋ>xVq~P$2M $I) Z[;~8 ~ 2Aix8Cq7kNizf›9Y&tMvc o>k >t}Px;$ Jy% E 5D'7g좔 ޼QՁ$ Urm1Ċ, X9o4%0cMY/2 Xv G'fx;;i$ yL)J˲F93J&ߜRqlV%k7x:i$ L8J3RS62Qd+|5 4sxoz r&Fsd','٨^x[$8EpC3.6>34/_x[e ~ԕ7אgT{F xvuJ%<錼ũ9i 9ũ֓( Tx{i% Wa/i A rx =ƛ{'N^\8kϓ E$RRK+R|2KK2Sˋ5c''hi(AfBjBtr~^Ij^IPBjJfIjRVjrIm[J  ZP&Z&TW& 4(57,խ(?7 d3TY,EkxFu!VƒYOp) Lk#xۣEqtVƒsXqtP&\Pkx{l)ӤHx#*Aq.c8vFS|F& lnӛqx;'qFbC #v\+@xI /* IBPlugin.h -d-D,Ko% k,  @end 9s/x[)ލ62G0oVfd x31ԼbǾ<ԑq&`y) ѮU,֮lVyQb䜟WRSbřYWDk}}\lӞA$f3̔Ӿw&n+6~۲4-*ĒD nW/[\'f&& ~٩i9 W6HX.%~CdrƙDU)Rx0.LmC8ǸMXowD-x6T(֬ҢjGNbIfA䩜h2'/4 lM}(i'l¬Jx&oCc<%q x{w)} MJzZBpO`*kФ83|x{h~|NnB E99a ћ_> gCxs~kY6`ff@atx31w63+ږNd340031Qp MNMIe83e̽YK\0zpӥ&sr>skm}pؚ kSgB2^f9[|2\"ܚ>Y2x340031Qp MNMIey&`Kk[3+7B槤%'2HZTfq[Fv9ql0$&HTxõsC?O,O0D槤p9ƻF{)*䔦gqq;y9ǻy%c8r!REE>)Ez\\yœ$-x0g:vĂ"ĔԢ},ғY9KK2&wWĚ>yo~Jj+\4SD'Qf,^'Q~'oxǹsɅ,2?0Cx340031Qp MNMIeqپwص/\ۺu!TY~Q.%9f椤2|L޾gm2TDto1TwJTl|e³RIx8[Ti9i.N`f;,oy戩,<=4|7v^fq|oC93Z5oylU[~B$f3~ebQ}W' k%$Y}J o(W2 LLBsS2sR:l60\KV䴍3W5x31w]pfZ5L;7e_hnbvjZfN*Ù/geZE.7_ˠ|ZTKwZG\J ~I }Gf4o/03z'0zx340031Qp MNMIe/U]s[xva)xus9/e'LcVZR2- x340031Qp MNMIef+^ϥoKp})< 5xµsC?W,0+L,=YEjr%K[AbNjIdV ( Lx340031Qp MNMIehucUOX{Eix;5kC?,0oɲP=!xεsif1̤ O?gGxg`[I,2Xz sRKJ&gӠxy TRI $JDT(X6lcf3,H%%KiQHL5]~"R!BhWDaFg~>{, H#)TPVT<{J@_FGT')}KK+{KC4wvcVD>LT2K"cݖ mrvޅ¦ F3#{SNQ$"X, <v7U8NgT׾4,-2VfTQ $'|qZ?*GįKlb'$u4x$#PQpV1黟mšKn,8ZC8?ЛH3 Yd|W Oq',hHjtT8×K@'/[FV8Iq{MpHm@!g{ٸ$Nf4"I L뺶F#"8J0ڋHPQٖ!"З()cD!`b 5< <#ЉtxWЅ]Fp~mݟa32'8Le叮vS:`yà<TFn]WV۰1I&dټ94oL, >^8 !+׌]2P:= ɐBS)$3PM#1{~h Vgv~wP>nr$RE!Q4 yrxj~͍G;];f! ٸ1* v"2s̾e@L}e.ЕsP&D7?ؼo=@FC3htʯ{I{IM /qd$A|T*vvP>- K'X=:[>wX$o , G>~l?g@":N`WrLO o4΋/{6|<#Hc9Lay̧cmkE{ƴOdNidTb,Qct=n*鞀Y Uy}Dajׄgtz8N@,(z\c|'$ 's3j>M!X +մi7[^ZG_2¬RxH=zG3 a$J+e&Cr.?w %^ԃXIfC7CrJ;͆)/˾@xg<jM%[Wwc5>zF4ОuL+HpNA' w}UC9`x[e|c~hH "SRQ]ɣ="CˎPsX˖}=! jYC=a^c9g"? Esnw5RA^#irFDCv7:-2LNU8F$pHuFLpD7 Q- ju/anIڥj!Y8cfa; v?hCgO1,ʸ=wܖqtY9DHfqx+m+Gx%'h}:Y 8Vaˏ9OB,CX%\cd%Gl"!E3Ot# :.oT-W# 3rwi_Ƶ{Bg|_Rc.o%i $䧚~!hh4wGJ ɛ[~EZ2b#ƴBelovAŪeL6Җ {%)j#|:ǷN` {=lΜ8/AHxV(([J_N2ҏc,<[ FoPد^Î<1CT=E}= G('dx=(([Uۖ=Dy4U<ol T.#6Op)O`G_KxAcaFIe6Xb\; {,x8(([޳e`#㖽HLXro5u_*}~vS}X=FxV(([OlՄkя ϱn6Vf2RHճs'H5U&^  =&wdx[(([@|WY?8FNDoyLHV?h:Wmd/[:)NJ퓜  ;)ixy(([|W- So:AH=A9^ULs gڒ[ BhѮ/EFL|ꖎ[N7?A}›Ȁ2+`}wo,cȳ9 7%i< xAcC(yQUW~YɩxJ[q.EɳYe60e>wy^ \C3< LLr=sSrwnݚ3EJrB^&.5%$mW9Y1.}͎l+sv7,Kf5|/]|H ccg?M<˯qhgZVVLOx!((|ϭo9|x7ner泐0x('[o1HUhhd5,-owȲd VEyF=nL.Zn_BsN?'GBnqv-?$߼5KTўH%QEditor.m5м0W >&HҦ> ALZ@N O8b'f|y*:jd[GOy_W?|C1 v ʖ5|or jH ` >^I?pUi9 |Editor.mɮ]#n0bn<3} L,+2[XfW,ڂRur2U\j522䓸&v x]''[zN&~ND=o:XЁRo~:t$$d=Q8KNY#on6 scï͙ψWm7֘bU 0)7_m{hS[8ܓ2/زJbϱaz^NQ1x?''[vDI-4XoHRk?P3zŧ?F!xһ8j(>QetOr׊^4:K jn {gV8*8.r 84y fo##M6{`y?A5 IE4Qιx!LW 3FD7=DNm\ؓi hWL gU~6fGn  lt19EHd㥱(s,gNW"Ns`Nxp''[7> ħ?,Ήo~/yf>j"-Gx2<)wj YA*im/&Dr_S)NP/b O#f.xS''[_1B|~W ]+oL 9NW4,vGVC'E4/!`]Jo$UOM[dzd p ]!sax9''[`oV\ч/:oNE(㗣{"?/iFGxv''[^;чfej b|X#-ϱoK@Yrin(Z#LvgeϗJaCZG ?`d p\]=Du2N Wv&øm|4u" UO?WxY''>YZȶQ/&WqkH:3YU%?&2sqѳd p $hx9''[&T_UZ5t< o 6TSP}fqo 9d p ,Gx?''; \yBѳTUvƢP*ncÓ: ? MxO''[՘;ᯌlohcBnqYUkEM6~_<$v0h# 100644 Gorm.m2c;{13oP2YSbn6֍`Z/&iDS.?1G`L 9d p dQ>x8''[B(V]5~l3Hsֱo$0EtfڰX p9UKFGxQ''[lEZ[)Sg[Tfo$z?8<ӕ6ۈt2dIԈG>`;]I&S_x\'&[kxl-R)!o;_Ag>"˚u100644 GNUmakefileX;OzR=>γE;]*)6Jdv! nsPCr`fPO\Y>xI/&S_7v[Gߓh2B2ȼ`&l0}x %3=45ޓW # X~A,g,  X*[Nuz@ %̳m ;}s2]N%~ԝ b#40000 Palettes%UwXN_FdQTړ jx_&&[iҥj+u7=ԱoD@m_ߌ;VSB100644 GormColorsPref.m~anߔ0C 75ַ/"dF]Qryb7 +ㄙ%tII/xm&&[`0.1.c"2?oڭ'SPT.z=/ mK V}4&C³m0A*rRQZ0|xۯ_mCsnB&5-zy!Bv'7,x;&& @"+bH0*kiih77m*2eɇ -Ix=&%[UOP^ ~evF:#\Do1TRqQph]a+e# Kx4%%[aF2 *Z>Wo;Wك&c`bI100644 GNUmakefile6%!(Ñ_ųEӖ2ԯrzU`7/zUa>+FR&/ +<:`y> r!mv.r6Av] 6X Yx@%%[|ϧgP8 ^",y.oʀۊ?+&M:,P-?*5;ۻkV!]G4pܘ}Мm;/6|I:U&תA@œQ3O mn"=k /61W >zS WUNx8%%[~AI鵌nou[@bR(ξ;N9hgs&1-#Pɜi`ofƄj!QsLz_6 _trcS hɁGFM {5u|LF ,xۿ{G/ws;{;?v~PmPx|8x‡܌4k1lx;:xfj>#xeMk1sBl+"=F3tdd]dU0;:JimzV_34sZVp[_~M(?ء 8 2<7 $VJi3-hV{*İ~^Kv}^ ;[AFG;ƕw>N .@o: zmO3cmx7< xs~gϼ}k;f`T\.M>s7.s\'Gx7c^ߡYjӐmvɂv.\'ExI 0ѱy &yH㑸&,xkfnfpII%;JST e5gs!*x7AR3$@@qT*p^>APo\'Exkfnfޠ(R?/aY-uF}'3B hsxka̺2\zx0h44xMk6ClasseYN&ɨ[y0@x[6i[;ӆ/ynaU?x{us-d͏[''1o|wk|x:uk:L+wXx4dZ^573qjbwx;4qf7!5\E&w+mSȷ%.L /xqCLl\ 09]:EAMMaeiMj.Ɍ|aJ\`E5eaRy)@I$YOe*d! 9ũ\P}d6Gֲl~˴9Yet[KTX|(xĸeJI/2n6b{$&3rGn.f_fpCb $& l g]b]lӤ&J3eL֑V,%)/; Eb!"ڧh'tḨdZWL$]ء$29߮J-eR#?"Y*_5#J+!UْkeU-)>=0Q = %\l^/DfaT.ӈ:IE5L2YUd)b)70dk<4Y:2iCHcvZQeR fɦ ~B2q60*f֣Y1)嶴&d 6`$ړdBc35`WȦZoh?\| ;qw2J3}qKdCC=xd[0oK_f^_.ACn?ʆew̎=4FPe20nM ay!-MH|_pQ "(c1"Ж g!|mY|?s% 8b/K;l )7x+AˉG7H5SN#MDh[g~Hi0w=UW&Tu0O§C0$ HHjhvGe_D`>64b ZLtiCFuvF2'Ț12s*kPd5pף';%&`|b%ALlFqǵs嫠-]g`(yWXJ=JHr!4K}78}H*.lbn;B⾦S2Ӹ*&$ڣM_Ҭ5Ntn ՆҶEKa!Q>+w`Q Z?;T@ 7}l LY>t`Z{A7)Ekca&\??_YB1 _R4O41wߦaɧZ 4|hO=ⷬ ݁xi pY t82aN|eK+'oxY cV4* k?;:-+SӖ='01Ty>Tt^ibBo7)c,f6jL3+ ShZNNyutd`5ډ9U1<Ckͬ[3s]7VUL(xs0kltJDҔff5CҬZ||:?Fo^Zc .3GZQ8x[_̾{O1ewH$x0 N >ݼ6=1:IyVm{TTǂ\|2𫧃_;$K LG jħL\'$كnBϜ9srS0Uj'T 41ouEa&p9 #φ6.yXm˱3Ydٸj= K|:3a9e]~ 7#@c/.n3YTwݮ-Πz爄3Ud9p۲d@R1]NnH.:+CP71LdCNL-F,mIXs%Ҽwkmxl&AZ?x?um5XeŢkw?#yn!*'Vs7<>Px@m:{0z`mPtFToEx EDș.R[%.<*7Nt)4mF)r\|{YEùd`I,7FD'Ws`˕=QՠJ]{;GZ{"A Q;a6M\qg(/$.$,J3}t޾z8UAzx #rUADk2t_2UX> m\@}&s؄)tr[cyvDBF8 Řɡ1"n|˨w6p"ĈZ:̸. pŪ1n`dUer {2IKitbVW.K3]V'W}0d|4!$c˝K| aY5e~r&WCQC'8 \$7qIؔ-YH'¡ݓkM/l4v×Xɚn A4n*謊W -; MБ F::j){@2i Q0tđa7C+Ntlb-UC1viZ,h[#sQ%0ajt!d:Ƌr>"Mz"h[COdɶr+ҭd^b|U#x+V:#bM;+&wȍ+v^ɝPnj줶_^/, ~1[;ܗgi * qVjl4hɉ|caO*}C~л3 XgQΣ3G\)Zv@LJhsiS\H/b9SR,0:cu;Ae>rZj29Y v.9oP4 =bA*JR=sL" nԅr,@a.CӜ>mvT9%i19b(Ixɭ-vg;|X$*[8D. vMWa71qG_Ïd%qh}l`11%w./QYhjr&9U>l[acBWDS7 sԊa-]tfVpc"Bp?Pm); Ov@ށElg;CQEw6};u%{j_6Jw%S҈x],I"Sfavw_$ʱ]`aT9S9_  R0d c!=5v^އ Jl)"~~e~ƺ:3 )]?!Mfhģ iC-H^U;+]xu/dMϮ$:g _[՗4ĭؾexBeQLS1ߩWOxDŽ}=Md}tXd@ MSßރv^۟v|##(;p%\c&s ^g3WKzxR+]x*%<,r"dM+J"LKS.0w`1S:eqU|^n({c> ["u,+KW_8 *12*f;2)RڜEjr$Ù^+/N+|M畒hzg o8xJs&%G3-I)M]Z(_ot<*`mXx뵶l֦z˙3[D+5r{3omJj9YD(b rE}2مYi3MPrAV 䕾 20Ք ic$zq }RD?p!Y:7OX0w1ٍ.0WDQ;4n\vCquC& Y:/RmC~c'iA.!LJ$@hQ)U&D1^؛QVT).>$pV(2e?GsyF<O)C">yiU 9 A2Y;;[G:;Hg`>Eٝ-n{Nհ沂-:7yGYz= kٞLui 5wIj0xt=uh[ n⾵$+ZI;%q2q%;㹵rCԣBxiF ?'EM7ȹJ5#3}F ;%60!dTؼH E q Nke'+LQgRC[gm- Yh@:L NSRRS&5I'l JÆ~v]92I n>+,zcx{9P u ,87-۬Q@__!%?X!/$#3/]oe1`;x;¸q{RjjBId. UV' [c\ ;;|J@>$ wxkx}6K,߰𲰹*hMf`lcDE67pk!)|Zq$ŧuLnX;O(e5 eRaܤ#~ /s$.L ?X ;pTaiztʿ^\+K==/<֥1脀2n9%Ϳ-$"\MтQ3q8orգmT 1TP:9(ժ2XVщ~Z=I,iRø$x:#^i$6ҶWz*RIJfE3B zf78c45Ȕ-B>hGU +GQt|܋!t2h 2AbR򘫫kE\1:vbpmZ[_mf6B`q:x&''*S.1C7><> 5x0qd ,LNc|%]-=(%?475D! I,/-I-RHOJM.y)[VUlK2O]x+fx>$ U*\ @P=DtIfAu|%Eya9xS.l `0JtZ|r]э* x>a" \Ů)%I9?*/S p&xkq7.l?qQUr x{øqCmdHbRXfjgIjVIYBt DL85'5$5IM58(d;&d4E4gdeN6tH+M09_K|:[>.M.j.NɂϪ*M^mg̒S:9n=L &os B'xƸqܹty'?R<]Ar=Υ%**#8ؠJ2`2(9"ce)deʼBJP[ML\ UM&e?Fd=vARi쨮7YL$et&Let |͠yV]oY&XNV0)՜ꊇńJWV|(QBc_^9+L-iE% Ey)E %% % I )%)z\Ee&>#kũY߂qV4JbĜs**DO~4ƶ"l%y71rNv<" 4jcd` 2WL/QP+$f*䗖($U*d&'+gd&g(fgYAj^ ЕL~!.2AA B+_> @YNYR<Akv35e>3x_HSqǙ]ۼ~Nʰ!]$ennmR ]u6CLЇfERP/oQPTս3^=9;{[5VkՒJ.҉E 7P~1\ uOk jB^;=*6ദ~cZU5!a]*b@Elg SR.jW\hT!YHo =K`ESw,I!a ê ύەH|aHݮ }_Q[""#T?S\LJ21.AA- [eSb4<6Y.񿲋_bt!7]x?X*ɆaDP&ZA J5dMVr rY*P@!,ZI᧵:]6 ZL_\ Qp\)whj0K.I0xQ%,wB?Za vb+<5x6Gc{S'̊h=IIx292#6:O7B]@Py^z"؟si(墢ay&Z_YVN5lذ]7Ƞmb>71";!ZNNkoAfS/$0?Me-3<*ǟ oWXy[x+qӤ1viYњV()r?vYE-r(r&mA.rN~v8sx޾' ~QrY;KY"JsM[L0+p=IFL-FV[WUU&IiPևU`+*VF H0cxtJ,?_Dqۓfe"3^VԌ^jp&Yxr-ц,G[h!!O>:l5\cBKW(򍱢o[D=X90FxþmtVw&*M*pnxs=õj%S5eBɫ*BCS.nUkA[1X [s}ZRqj1' r$a~ #NTp*afU L>ťB_aZ?%8ታWqPW-[ҔLk;SU2 ˯Px0WiBq%2<b2-;P?n 2Z3)I]qEIb͈we|B31bt!*tJ2IkreiL)IZHqL .Olo 3P8(#OzĕSPf1D\M ;[76'Pq uU{G H ,M޹E\-s7+ϑseMzג5xqfW .}"D, t$DC#(| EY dhq]80>ŏ8Q2ɟL@$M\Ļp eH_(lt iN eNI &ЇTF<;fUpr*N^|Qb8Yu";=Lg̒΍%9m b 0VL ׇvIA&S i&WbQCx;͹irsd~,&̙) kYbFix9s{~Q[i^rIf~^^Fh; {)xc03#fAfn6,\y)\[-_x[ñcef!%ܰrה̒" +4 ]̓w1MfgǢ0%=(wfmVf0oc: 'x64 _5YǹW&x49g2uE%w\N ZD5io`2ͻS1bjKzTw]F05GjFHkզpȯ1=^M/tiɉm.Ϋ*z5{fu(>3=?[bo׃Ʉ4z(4UԱ1 uHH|rƴ8-PաpB ٨'bzvעꔮ(JPYLGN6&TM thA$t-Pnj8-X3hDM@Zl!_. 5 LEC]ZV&P;t>՘v:؈N?^Ewk :.C^th]3Ő6ѻHj2iN:y8}sל"F=t`:,D  Z[6nJC:(|ؼa{Utxq+6Z$6mVuBCv*AlC2O Aڸe~Kk[o⷇\U[ʇ)6x RޖDy+CR GC]pt0:4n,Nw$/Rp2Bk;gJ$)p*%X wGg$c8M <%kh&RڙyYZT4?U.T)^U6 ŀдp]jqu,N,?<yz*v rHk_fiCz|h:9w \_ ?b/By`%)8hj`j$@&_ NQ#2E[5LC~!OdU3lo^ ^6W: 'd%Pen؍ Yo$he~f 9*A i%Ƀ-+i -, R`,JprR:ׯה@ \Xhc'U~OM;/xtRV/ߑ kV,9]B^æ?:jmhR&(8FFP8KKjF*=dr2}߁%"v$0 I͘JPrtCKTb7e˜{!:Hhz`葈Ժ*z Uɭ$eɮ$e([}ܮnhԂ'Rx8҉NVLS{ٶE^@8W,nwiX%եNsNٿ^oC8r ] o al j8y]~F겳h8#ښȀg+lz})9Xvy/L$_e>a>4hzMg?5|*7ҙTO%ɫ<$!L\&$O5{cuag=W_@jTLVuJe⪎C{$}z0 zRMńL6Q),J{t@š Wժ:P 2 *d(%׮ Vm:Or Jʮ\:p2_*AەK'!Jɲdq-Q"*}]][DI~䭨_/!2rXKKd<!wXNk#*'=TB9xf#CMET$mLm16c84lv2Ü̐I_uKeu*z#__忭A'mؾ0"Z6a8tx(c4z{v ~Xo`HQvBGfOA(# "y3^qGjO ˝%y. Cn"}Ž;~|ydi %IdBZa;wTvtx΍T;u5y,^H+ܳt.e@<$殅3^u_;/-rߪI3/<6r_o38&_:<ҧbRڷT7CK9ՓtwӥzrX|kQi VtMr(&oQרm[)nZoh^ۆh@[7Ҏ0*b@]( SIx]B&rג ,ړj\sm9?HPCEiL3C jn! \pU y8\Y*M߈U짺z7Xo\s_@$e\Xf}J8G!= IRqcn DMb1#A|?t9`n=t y*Gҵ#tɃG1I'WM`As.(xAN}q=G( NVý}A?7_:> F6ͧ K2 It:,]D$ij5rLiQG)wSAE>O~h")W`ى2(@m(yu(sqVGKK%U!Ӫ@y=m{5ȏKM7)7ܬӕ rsȁv5]h qRwq r ZRMLlTW5I=Ā:~f;]أKɊ_X\W+6++fτoU 0@̝<اHfp!ႅ&P\TR`>ּdXHQz@@.ֱl/ovCΧ'jO纕]č %KC@Sʼn l )8w2n1ad(G'VOTgȹ|3L,yT NmHRˍtayzf9KHXh;BDxE9gߝfGn1v`BH !=$`v ^T á{R8xSSaMyiDtԘJ}A-}f8QZm#KTi0`AeC)&Ek0Gyޣy*re1Qpۉ?Sw>}ꤲ))@Uܱww#?V1ff869I Iy}9G6ՋiIvlP1q1 DG\\(1 ҈-׌5ջh`D%'IGkm) Z1ٝ3Y#2 [y@\ʥJ|{V#Zl"g#ـFRYo&<[O{u% :c!nTΘ1FvǍx@7o˲7|QRrTV^twO~jQpp 6ڑ簳OH [|,$`=ɤl^BSڴX8F-?펱"xጷy%u$hv8Td7MŘoZeJ%6$tL)ziDIG{&()2pcPJ^i]SAW]-IZלU\Dž=yC:aw=6M= Nny37' B)*S4YaZN)eLbI^o V[m߻Vp$vG(}p};'U5y}%ϿoFAi ڷcg&<{ʳmxg&+>PIv/{+$j *\ar\)"J|wZ]ā#7Q ^z,=F;C}L)Wti6hR.Ntq~n$~ߪ_o[U#gUi%׍Ȭ5!jU!J?z$gYcy=w%fm!}Z%Np3e^KzMYueaG'Ytr>R&ל͉Ԩ%r*$i1t5% qZ맻-#\H<ށGF Lvr*C>ttΆw(+퉐QZXw[ylN_k^C2( Љ,-e$ ~s|?_?b"|g;dRO$茴'0@D3)&~|zNYFzYkU LPӷLJFOhҡ,n)+ҍʷw-)qYZTXbRvqF4؜=͢f`kP <͉rWq^xrqe>Ge:=Txz"IZG雛A4k/1rw:f8c&צq=U7i5PѺZ9ga*Pwpj.k+cҲЅ=FHjJS^2e3iL#So_4.sf곪Tj/Plg 5;*V9sfJ3kys°F hr ifΤ Lsh[e4י&cct5$&(;mVBܜN̗+b}tz)czʶ:s`Ԣ~:eT+Ǔ@RvFЯ B'h) wV琡|VժbԋBȓM'.QZQ}v_>5yy{{.|K^x5n2 )YBO||y)o#7~V gzE+r,eWȻ?ͧ~PyciN&>7NTf1OGn[R* Dy׺2aٝNI4ml}bn724ELR/y tnm7SκmwoUYgG=~?+oݓ7dR/p (uL1CZ!d|ʈǧ%OҝD8[$$Z:Z`p_2Wy[Pl) sCsuEƆynm5Z+͘j\;_PfӕdϽ+Ȇ/Ԓ]4ٹܻi2Ȓ.~5?/]% [ILU1K?PG~}yLfۯI4j06 JYW$1Ϯu1#/I,!?;{sߧd^Z1*??k6*\ߔu-%#p}`t~iYJ:AHϜt'/_Kn/u ~ĿH4r$\t5&s0/o^ ?#7\F.zÏ*GJ7f]&?.unUE*ښ57wKn͗lŤfrÃaRygq8*/ŷwCkIõ˜p! 8rtb ;Ҵ(1JbD]/kM2/ 8m(:dAX*2.Czr@!ӘKL#؆NBа%BNB7 Q)l2cI,x 1_*B+1 F>zSHԙ v!8 |E:+*4FG8mSBYa"!Zg+c~џЧ&_45їH<] XԑKꇡ)Aqt&&ND12"lqbG F(AD6+^HS~94@B0v4WheM~G؋:Ky&N pzc+ֈ7"g@utnCNpiQ\8 JZem7Z*i vCL(ib5aģ-Ch2A- n%-[T2qaeR)͠ `1ƔDvKފ@w.;7zef]+f8E܍/7H(_6KCQ^|nx)5:MxS9Ʃ$߃B2 M5*ʁ/'1@7ӶQv0^|rCl+*=ѓP-8rWyo8+燸=#8<|5Ees;қZ*6lPG #kKpXإBF!@6UB]1m20:8zND*jU\p nWWHZ0d"r)E <;.OF_Qe!T![9_Y ҥuWSo2!kI$a@SzcVNwzC\k 8E0C@ 6@$fec[qi; 7HDMą5g/.OPnkQCtwǿOh > ._g)5JE~a(Сzƣ ^3Oj@[&Za%!^U+ @Ê"C'7-5NV-ȱuF^C~tVՃ'涎ȠZwV(ea\kوMS0qF%sqIL(AYHNSGãlzZ4 `!O,d~ 0)$DҠ̾4CTq{z,Pؒg8/"Oj+Z[xsdy|ZB 3HKj#diZq=F\uq0n5*RUt䩊Fs5:+Zr"w]D]}wFplg*4T Iջ\_@4͡,'opgJɹ) Uô1"gET1W {Sf;!Al8H}tcgngig#$ (}sdilN#jA0 8#9W44j/5J[&c)g1nzRYL9VLOͤ#ԔX1dv?{ %thș &jV>!$&+;ӜaܬSz -'`53W-]M\)Hڊ C-'-p D}K";DC++$ T: 2y s1kʎLi샧++_VəWͽ ,#Qɮ/jw,hr;*:<nvyUCkR `;T܄r,ך6 ,#Q^rjv t#ȑ@OȱX[5 lδi]JHu'q~u;t6X,U2RKcO"`G#Rwe6NDjFNp8JeFlG^ʺM(^Nn֖n'r5No.t4Bn| 5d\j\p U)aIj d=LðP륭TH `3M\Px uH'WXVk#RB=QcWj:HW+ȡ#\9s([ЙZC<7[NqO`;I/֩Lg cgkpp>'T``cthŝ.72/#D-NԢmff`* ~6Di{RƠ*;%tE.Hej -{)qOSU:^[^r$w'ˬO*M $8;%&Iڇ6.mf 1w}Rt.͇g@v e`6ϱ\g=>ZTfaw3ߜ>*"0G7&D49ybHa n^ԶQ?3ݥ{4`3lb0K7`6B; H`& ?N4:t(9Y\ .G)ssV1 6<&ԁM3+ib̰\H&Kf*| KYqSHEʰfMb:7+jyi&A+,D-~0EJ,wzt1 w{搲n1k*#1Y†+S-mPBޠRKVzK]SB:j@2SLs4!mT8X*.۵g]{dRavz5Шc*kdTTPDÈ"K|&89죤‘^ff-(W 83$(d@qO.1h=W^V?13WWߔCڬBTޕY׈`%ZЌ ~3 z 4v}+!W_F>_G~RRs~8LSG˖_!չbӲB^YZ%|Ժ帲zp%)r{kMހpy9Pn[@ XŎѭX20gs]k{1F!'!5=FfS!az>ɺurZI T-|;|MN}R)>TV|ݛ8%eOj.vڱiSGyc"a.\!iFaTØ~3{*8FJ6n0򣒕vfxZJ  1dFQz~iLq cVD*! ϖ}v!߮%+wޫݼgG^+02]8;z:%=^(VT2^S1pskZ~?l?Z9S]̐p9<$d(rLhA=)ʉxJLJ/E[hMy}CăSӬ?jYbkd~%^!Ygoܕ^4rp}(X z!b$r^Jzlg4Nr  k Mhb5#] ĘamR*ĄD2L%1YJ8ܞ?J}Oo^`G6RY͍,L6d4uSkkzEk߮HG ʄ_F E|p'9._ܡ.@뇉0sC:@ RiG(W]uq8׷fq㮞vŁiB,\Q:o{6&BjF0:W6)Lp jT[-*M*>.?_2P̰"/<޴mqHnM79nxtBHb|<)F`wDKD!ʼ0iDl+„C WEZZwh ٘fJ-4@R;_if1]We$ N֚,|w|p]'\Ve<qNaڠvCD,MSɋ'+,rӏՕ;J); '-PzyNϺftGdF0b =1nTt竐K,&,Cz(&t(Ч*|ԥHOF^5 ê4A=̮0Wh ⽸.eO2)Wuk@<970%`B;1=$pޒ+2NխvcÐ K&vnaOԈvLI;>;ŤjhOC!EN ibQ'۰\.x#nY9>ɯ}Y$Ӣ?0Vƨ""a;>WH zI tZqvY>:|--,/%B6Vrr#uIG]i~P$/6%ҍ5t`1  Dx>_f2Z7D0#æuD3/@1qR"Cba8YZcnuuD6O#-E$WyvL@i.I}nQ,Vc/e8HPv NSJ9Be'?dMC{,8ĉc,JF_0٤X 6*(X]pq&J玣7(kh UiPT6n%≠x3*2dK[I# 9睻/o>:JQ}iY[ oQN.?Y~;H|irhsi)/'yJ֪/:\^S,SM-qǭ9.:WaO$87n -5= 80YyrsNGuf.#MVt z+s0 9 ' G1<PD%DxL]ih\DډC%V9[e]W$DfC*t1Gr޳!U*EOTs.gs.F#]voLtMB/?7Rgr]csvU[Lʠ.xv0,YinYamu¨$RN{CV\J!Sʢ2C•<*NizNj7)iEZJFJ(~Hl_vq&I"ؓ:zȲk |M.is&.&oxs"}9W|M%W6>gqfL4x7N@nx'|L'  ]%`شם>Rx6b)d ]cYV 03'#7L81 "xn@M/ՈQ]ox, 15[*yS 2dy|7NGAI85΂͢!4r tkGnLָuR F+-͢e[Nu'7^b:Db4cIqDCd@ G'llx_-"l@3ic-ds듛. 'p;XY ]N6Yu!IOӝKhaFxDzdull/le6 xQ ܣ٬ )}R/nMfq 3#0`"9 Z[+_>P,/P꬝UJ,Vڬ'(Sjy<T+_.R, cI-ykGrjW)0=tM}g^+QX[ʕ*Yjm__*{O(ۭWGUZe)bP{ .V*N6j8F`*eB*VjeuΫe _+gXAiU%Jb 4\,+O?{ZQdb;^ ZiU+ m}Z/?_je.qe7ہ?sCebYdҀ15Y?*VF9d}iR`S׮]Ϩwbw GNAD_"wQˀ=ER`b$7d>ԕ9s1)vFl6rz2'"f[qMGvZ͒ݶ8ٶqo-SsF4\m6{Z JcACHh3cJ"~uql r^%wh&oP2J>67e! /83ZagˊD9pHh 'C5n0' aS GOʫ d5<x=#&{0BpX`URw9n)jf11},L`APj<Íu M^3Ep'LEHszDg}! }}>ZTI{0fZeam gD U9:YJzId^^݆``eu! ˃%LzHFHDK]=bPhR."*$uУ=iXcj1 IV<5B i]ʵ24QSuLQuKR֭aF2VujFŰYD,I/cՔ#K_C%lJB]uO0[} T5#;ᡁ?&xawFFMH}-Sw\E\i{Idbwgi:Z[wWfy_hFisWZ5g)yib._]Ẍ?\|r^l kNZIUW>ꮚvY/Rk贴/  J=d׹\ᶻ,UtvYyܻ\bn$(R/3Ga>[HXԺ~rZ+5:_0hBvȄrk5?JUS2٫o'~0agZE %tls07g@b<_d.JAޏWk`:(9tEbZhrm^Iix< t\őe똑45}XeIm [r5_Ҡa!6Tx?Y6cMˆ᰹  lG%\ǿf4~?>aބkzӸ2]TB AUyJ 7'{HSWQk1tZW@i6&)8Q ~aĤ#IJ; ]?|K|eŎ$lj)a\<#!Pvwy(!8]aab\_=K11q=8$a"1zD׏7zw#zJNuꪷdUsGб"W(x cP ݄816*7Q2/pwލ9(0$ GOP Mn6Kv_%Dmfu>{dah3G9а69~7y.xxgC8Sno~iX isc'ҹͷX3(1TlwR99oGe kP;@,CA"69)ox)2jw*oTu|82oJoAY{leG8=74sR 7$ك,F2 q oIk=Aepr$e{g)Yx/|EǾ,'_mRoQ 8:Xωe1E ! epHS8 Gu$F~oG)ƹO=,g+Y !nuBP7bD33wlc#(DKH"ؠAO\eQCnJtsY bIeO M A뷫sGvQEdG;bÇ#&۽!d'&6G6Z_ly.}fsmsWY:8*5F Ҹq]Tk J)>(bX{M6ѳSv?*RQ{[;iF|2{#ݫ40C&&3>LfELĎHnfTk9H o+f#0Jq_ /4dn>"ONP2BGh)\-T3l4MM IO1b""8 5^Ow% v3X4:Dέ[a wN1-@TiFلLdWVE VBi=l*„S6nja"!h}B I Sl~$]ي3M> εC#:`H`ŔEaF@W_7[ycP"mHYW/bX ԄVH+#D f.mg 4R]/qulk`N3DCIղX6Cy[_X|}sx7fh'{5 }tCvJwΎM};ζsvtv:f^I<uc ccZL#㕘BR{'&smNX&^Hc,;8HKgib7`טA4E2"^!$T5B{CU2KS,xH"wҰ(zXBZم)?PCl*+ ƏaT/!>}duvg ,s;; E%aC R-mX QI*Wcj:gr m핢uǢ˜vߎ,_FYbNt a oJO.hcU/'„5ılNUVjrѩ..KLDI p!O V7$fu.5>.$^IԦZ7M^ʩ go?H˚*B%} J %6=4#{Zen jlw6jQݙe?zr[h=&P*`Z&MgUc5 9Q8J1Iug㩔Rl䓿jr|*ؤJF9 $RBT9>\ `qX(5hjʶWXwEqӴSyXTaUxu4_5eʆHx>\`oNΈ)v# c'քpU,XT=u [O,džsVCށГ 5w962Y5ȏa땅00}8ِ~GÜ{f2*Q1m\qچͦ]4璮|R6_ҹKbLW/35r[io4MK ~rpN87 ,sE|:do/;@;xs\ Vj/w ugjwW 6j8lx',fS)r }>tƢY+Қ7{wXS^?ȋTԺOQ\Ȥ;ؙ5qժ{3 'G 8>h-.LT|ac 5N792VǏE64 x*K|)?ZڰzU3Ѡ(pCMioR-+Wl-/0&ƺdvĬ!7?mYu(n9CVLl>,_I;^Vh|bk`V߈wV,O}+Rԕ$75GY`G^&Poo R{z@@uE,\fTTp?غTiYV&J# UרWM/wF{2m31@[4*&t9<? r*@RTվ'+Ku*saU^UlgEl$=`U ҈n)ʴY8FWّ_>u%ֳ5;lL`iՉoRu!uijI]nU4D\*RkBuR:n'(IQ1if yY n߿*hepr>-c~`_[24ԥrkjY瞺 Gay~d}*VڠElg+ ܥ|[uey<Ynp%-Y=qG"CB0Dzϊm!Qq< ٟ'΢_L+% ǧA' gxU#JP67{=tvBzq6נo(OoīZ/GT<0?}]~¼?BuٹɉFY59~2e[Mof>'#xm;nb .N){Ir5yc _<~]G$rb4n?ɂԽ8AdOUƹ#f%э:a5w,~!8W]m7}?7仢Ү&!8aYv:y̪͐ KʇfBq*ҕjjl7w0\=lJST 146$H>DsblS;qXܝt*]R/«Gm֑R:*]D~beQ>L!{bl~\ 'K'71ǞR2dKy6VW Vv*P.+-G?Rm:ȨVL#:ml.abu&| ef8/O.! ڝM3,ũF85Ϭ%\l??b>x@-f@ƫYY;KkdEF65vۍ-9UZ|ݪ")~q:ÍǓ1sE(x^}/]4[$=d7 =WWi"x|<_/a6Ǫ2.c1{)Բ֨ l0w(O%b_)ۋY9hokG8xqKYb3㒴d.wA; "~6 A-${%F:ᢾLh} UAcF:uK odw߯Ed$zcPb91|P;Is+. .; ߶(!<Y=qȕm֍:"Gٕ@"s4߰yQ$?ǣSF<%mvТxvm4ŷ 2rle~ːu{9/t )% [l`L˟eIx;ͶidYꛃg>fw_j,U 2@l D&Żdk;x; T\յ a0@>F!DC 6E;!jڜoj5S?vT1ѪUh՟Ͼjgi}}ι3]Xa9>._jf׿q9~x*5=T[o]1= ɩF-ף vJHӇN?ξ-c/yng|vg~vfZ-18ulvbmomLUGUCʹ4QU1f3@׳9A<zrCiO_6LZg)QC aSUfX|ղ+1Mn/J824Ӧ@#hշwy(GFDׅaZ %|{,;+/蜃4`hs=Aɾ|G`6_²lMwV}Ǐ٤ݕwp7PcR1U3h:Ս6qllKg :GgUʾ|OIy:+&3 xٙf JR Fi0X&EWUx:{W4Sgxߓqe)~)5- u 8yOY7t7kgsZL|{ uΑ-ŷ5z-X*OTǍrYs1]?Ef,e]u5`-*۵ƮZ*KPNa8ij&Z rX#R#|h;hzx1|n >\ #4uFA)>2a-5SvӣI~*f=)MFRK)M> H%|i!v4IYxoфGS)q:{8bocޣ!{=͂9v¢u{|C+-V Xb=xIهWn=>p|>tY)xtm<^aO<^~8({>W=Jq`.c,tUι|5K?>x ]h$yFvuGzQRj'23(jUEN.dY -TKqeeAxxQ#*FxP1qy}qdD>^mpƸ lG̊n[iO)xqM8+I4; ,aSTCZw xLqL&.5Bk+2<;Y@5[sM,r:C-,d!;qxa$%Z݁3O!y(t Jͦk">@Ț~Z+(d X*@Y߰Yeuً^0f2@3FAT;A >gKA 2CȞR͂bzZ#Q*`$!?բ2`q-jUrXD),Fn mvicK+xj [Ha2~E"Q-Vu;cJ> Zam{Gp@f3up H?jRSIh]HI3R&n֢K,Gxt\㠗4h:'QeTag%yeNʠvFͧV,DqqQ,$=G 5̸@05OM5d)QgLp" A* ^A(YlMyrXWf%ׂf?o= &4GX,}y.fX*'Y(Kk{&H>;~g{JNR^0ڇHZ/+c{Hv?T{4/jq$.a5Vt^.o*6떱|v R.^Xṅ7U#Pѫj־q)d8&XtARcF-Srl';H*K@!PDZjUm>h1لX[1c03Ρ0bzA UOA>}X8 Ƚ`ذOַ*>_R]i<`'/a*Q zn7:b Ľ6)tHg`~[5 pq\"1ԔNboT@%\xY"[ZVzQ< |좍EWÚЫA&@"E,x 'c ̃#pDi%,8F9~$X[>}PUM2pJT=sN쮯,Lܿty{d>L|++a"gw}˓evDU{v/VL%xn(h1 kVO_*a4yEQ4ʼ|hI|+Қ Au} A)",< ׏.G~Ugʻgrv !aEQM,RM_1ज:jL̻º%iFW)BDecUaa[V?-bFݒIK*a߂ׁLS%Eբ՘+'dsM' ,cВ8{Q$BdW021Ʊ^O43Qw6p%BI$0Yǽ; A+joB?-{qP@SGVni(B   Ӝʠ|< |RC V֥P]m(qbg֏{Tt~Nzٽ.bW{ Wwjzd'˿i=BdeN,t̲2;*cq :i5MWlo`:K܉ c72 Q@~ToZRP9f=(-W@5"ը:;i_k'ܛ_`SY٬zY Yx,Fw[KEҒjyg`7,їu<]l|rٗW -2ݵIxD0tQ22794jiM*=6:C[ zT BH{{#oEX/lJ#135Nb+Y0(]-yC4{r@NGՆGtDC2}8,r8`VޚV&pdi hgpgԊhJT֤bJ@9h&rB/ ƽ{wbtC+٨NXeV1&RvNS"K=;`Z&DK*Zя\wg QpaRb*(*8d'pZXށ'fȐ7$QG 6?|~X#%p_"ьjLO8d`;paiWb?g"8ZN$(,0Y(%#K~P w(GRvQIgO n@ #1BZ U ף>,t^];}o).\彞>6-7yq9^k(::~L8Uk2xiD N/|>w@FS|}~ڳ[|B9H@z奉3gGlo6{߫78 )bojEԤ)eE%Qi21oِK,iXgXA\Ɉ4<冰XE|\j xl ĬKlWO5>@2q" I(TQE8x>;:%E=[`D K,N{|qH"#ۂ-vͅ3z޼];ޓ>.jkx S&^ľw#Kyӵ17*&e bNm(J>F {wHټk3Gb|1 S:vn}D[H_q<| )JΊYΛ?xk@ۣ#QqP.@ a(B*`M)(9jNPGC&~~=\{zꞛHh x.K0d3HP)glj#slsȒ4!9hAOșN%WiZ.) E/6o(Pe雔D.GO*cOj<>T}!K8I)k~x 8)޸ݗRulO\0'Ipwo,3ɼ0^D:Ɖ"N.t\ ~gRYo} SDQ;D/\8x z[U-A^%%79PȆΙ=ZD'=@£uEwAEle:)Oj͐L\BK^:"gtoɖ¼UzklOL=_AV>s3p׷a}O1Sc#k,z6jnUa;ۅtm죮;D}q=Y<'f;u}:k,D}$*EKZ+ _q ~oWeŢ9+bfMXxscX"}.r~'IfA  [P4PiApf->*\Ds]wHs .Yp5^sQuO39tx42|sIj})|rnZwrVjB껓)cλIHTG6P01>e'n.Vr3Y'(jS:-9$J6EyfGV<"V%;t"u JJ~ d-yk!gM88:S+o=yEƭ%"^vCkԼnfqZC_D&|AnwlԸ PJD\0&_6G@|arJ9( %:" H  {R{6?uo,țzcxfYpԍא˜!{&8ʌjsL{( 5vzK 9Sגqv{s)Nko_9KralFץRA\0PІ4URlbF6n4!ܠG;Y:V坰Zu=m[{zB!`%Zta39Zȭ>.De폨f^YƷL\k|NS@clvp-g@U1!ǟy{b- w& ʹ)$K3Oq'r"7Y*뿯2hl2|F5gY?dɠC̟VqJA&b`wV,I5Y/:owQqMuz5qk89͸c.eKνXTX8Zɼ f'mzm3 jxq .Ef%76\w쓍svŁG؛o)B/k7x: tTյ?CNH2!L $|C %Ā737Ʌ{ܙiU_m[km}uMmZ@@ڂVEުjZoϝO,Hfgs#)%ARrYO{U5BFRiͪ2uy)׸Lj)CW9Q&g:)nM٤Rי /'5/uP,(AE3@tv{Qt'KR+'AXblt_%Fp4$@3ɰ:#3Qd95#=e-$6RGrAUgs;(CYǔw_sWI [/!n#4FB5 F&\S#p_JiU@ ʪVRa T  ֳknTAaxT Bp뉱U1"k8W'D5}^%ŇZK'W }BĮAL S^ӣEu$"_epykE-6΄/ܬ>YT|\&ɐo\=xZ5ɨHk&A [/B05TF]SH0*xV:A3>_?d4q*z$4Td/ۚHI>*W"噷2 ߌۂǺEBB2Ź$ؚ"49 ujR("Zkkn*L1♉c*&>#Q( w"W4UC:5EށJ5AOqu U졈[P},/n7 #FR9!M-kߎ (Ń4 +y .vmR?ߙoo6b٩hvp ;[D:xWصfKaϺ\Gw^)SQ4ՇkWwUA}l R36vBມvk1ƘxUƹ9FBzQHhlz~Az$c/0}r d̸mZ6fqۇj@ѠPiȈ~\@Jo@&yHp\݊U@ +̐AcuI\uRl),2SLvXSW /Z25zD[x"{ 8<(#P42<dDq3؄gߖ.-ѹ!Zښ^hHQŏ.hs#xiּrbDg2ZσIntӡsI,U?T sti,H@$tTr05x`y:&6C}*M2! rv: p4>Ul-;( 5;YaD]Ky0V&|e ] {Eb&^"IXeC7GI(,ǽA`coz Xw* {ҥrs|>q=g֊=i~( (.VpJ;6a"gQ$򎹭v|Y*-gPdWT:3 cS 2{.GS3oz3> d7w.4u/J)F=n_=R4nrNˈaX`Ż]($J0}1KE6a3qF\hCD𰺐"$,ZQ\1j0TD b{!g!q[G-d:;bH1@Zg㩂DEg p9K*^l>c*s*^oQ))RjBӠKv%x#->&uM uUSC˪&`H3!{>'pe4T'{@E,bT3o+;̉^t7b/QcHL| PZ]Ė&eͅ6` Zg9Ɨgф *"֎BQ1YGiddS#hݽcf["x K€ 4J8yN-2RԞ-7E%THV#~L1qj3%vkY.|>gKl0VWs !j ~4L3,3b֊,]Rj^%' 3Hisv+># S`N7Ur6]l 쬎n=skAd` l46jF! KY;*>:j3q)ճts|>vyh߽?v+mg)}xח {BAQ2.rAQv>W*cg=Ɂs9jiŢRXkrHz\/vLnFwpd3)?,R~*~"Uvs}peҙ/ q(G=d> R؂fU k?82M<>:E4Qy]Ս(dЫ"=}:o-,vd4Jd7lcJ֌Veq?+hg81 a| 797`Ф3"~l0ǿUktc@İNqޚ?5.0\v&.,ſk*.lt0j/W.~~aJL_\cI Y PGD篭XURyL]˥I1Ht/.ɟSg.L^_*Ջȱ\hԒ{(X@˥Kyt\ULHŞټظ%~z(}Y,^l1JfH c!"jsb_4-$ 33x'j.T*JMU=yS 6ϐU^)\$`+_rGь\7T֝eǔo"t32% WP߸4 C4Ъ-Ko )UxR)Y\7XzH\y8#ږG\x~'m :hAQkj!'?:jѮA`NG΂ECpxl^.@TUy䐸Ie>f ^Ŋ޳Y-|Wl+u8ҖyaCo ŸGנ^Jl-C%QSkL¦\gF?*ʨ0f#̣9?ȿaCeBa磉PmV6woJmyeSǛ{.> I[wR T6`ޗ*}jy-II4['c^]M 9NuvQnY(a ኖBJIfut ˤ5qF/0Z`DA**w#D^g>X&UD̟-r@"-0DX ǝէ]| dGf4@0bh0};6،j9xl5Je3@%Q.$22$-&}˰md >Uޱ8)s+hc!4VZyftwIO$CT*qY +*{)gh 'LF %@AHvsŏDNl){x`{YE+Ą +Za[ .Oʛ!xSg)uJU;qx Nbvnе ;SZ Юe޼Y]ﺦ=p@dߟ&Q1g?#gTl:,݁ZJ7})-+;vffݎ޹]zh<PSѼLx[?{؜Z> x{ ʶB\ ZQ:ЋQx-fy EEE ɥEE) 9 Eřy J:i@X /Klo= s#lx;u_ wX&˰rndgQ-[&5*Nb1K;vkI2M#0YgFm?2Vxuo '_6pt~@b^jBZfNj^bnjltbFf? ;x"u%$+,+]y=  0xW “ s]S2K&/W|AXSAao>&0SWckH-L-W(άJ w,?ydcN.٬ovyW*4Me'/fTؼJƒ?)+5dbNF^IYR?&x,x-x5~x7) { Ox y ynkxkbNF9c0Bx;s]93-/%5mf?'Oaî4 Ex'4I`yɟEEs]2K2*73+dqcXo;x$0C;rj^Jf(l6x[|C?,$oLx{i֤$_1VԼ.6odx|y3֒Ĥԉo7j5x5kBƶ5,H&x[ömvFf =ͻcE <cC#S%kZ. ~1x[ŶmNFFɻO^T(d_`d`d``dUM 0x[6mNFFɻN^T(dZ`d`d``dU x;eX9RK6f ;xqO י%l=~nEpB2KrRc&OГ\^__!3/ hBIFBy~QN XB Q,VHL/+$ՃMKMRPKV(/./LLNdSxfNjH +TbbZsvͅv*c9&c\_.ɥy% Z%e ⚓6O9 {]x[q7 , ËS~U_bU100644 IBConnectors.hKpK}5B5TtshON~c|-xn糍hM U#eᴘiB3fq~&x hޓE&E/呝З1z!PP[ VxB '100644 GNUmakefile8ʝB,G'ym.V -$<0={A_m!\oB'D100644 IBDocuments.m|z/JugxsDzXݘa95q+Q_)Ļd\w| vO"jT>LxϹsCS*+4\ޞ0#'zKfoF .xN '100644 GNUmakefileDm9P'X;ܱ'jwo|smj8$ڏÓ""\x'100644 GNUmakefile:.Va]M̼Ē<ɊlD'{AKS'bט:yd& |SWx'Zl*dmԊԢ -9Y 5g-x{ϵ IJxMKA9^HWCCvfPDRwuv.;FS:U@@t$tPQ0ߙ_Na'Cfhh;%/^9s<۝躊ptWDB %O2W |GyNeld sՉ r/=!MViXW,eb*,(@P Bq aYK3Z`AFDfqC}T}^̙T *QKdVںDd-*3 }Ec0QeH͎>Re;J65ʯ+F 7A~T}wIN{f5PBi2!K|Uχl|xka! o{YxLe-Ɍ,l%EygXaLVm(s k,/Z4xePMKAe]W,aU(&-DTP19hs-革aZgeQ%xꣿD^rKUPޫ˙,Q։ ˡ0zg1 \ߐQ''atWy9l)z[h(2\%/({iC?jغ"-{˞øj8 $ x[PqBPjJQbyBIFBjJfIjB~RVjrd~-&}ə' $| Bx[Da-ff}}ͷ7'N`]er+TbBjJfI~BniqBfnANjnj^ғrTmTeRR,LɬJ-V(H-,POJM.QHARəi) )ɥ`3&On |6M݌&Mᕝ|(>Y/us9,?l;x{Pa-wy)l+x[(TlC5lX#C!x$a'?gܼ]qQ ^x;!Rd\UbcK2݊ss5SsAXrW2J Wx- 0ژE BQ𲋓>FVҤ$ #>,p;߱l\ڵ6t((x p(̼,62B*C2 8x >-riWTKcƂ;Xe[HzzoU"~ޯ?5)pO;\vᝎ`F @x"VO_K3 5$h#4f?FԊԢ<̼tN-O'ԜĢʂTk.ɝlPzVE&<Wgkl*9*>0Yv7v~4Wle =hx.OA 9  M (@*7ذx[w{!d͝,ʩy)i\d)nNx[WX_K?)+5$($?9?gm6.Լ4. g2xƻ{Z}ɷY5&wYpp)dq; $!xk 3{2@7sGkx;q/?5&[L({~Qc2\kaxsgjYkx;3fYF-V` #xUjAdzPO agBfAel@n x螩$mz^%Wzx 3x yoijIxCQU_VCFgص4+iozfP93c[+.1*s4++c:*P8iN/A#&C\EQy*imFV;l2U[4r;֒H^݊zҙ9XuJp+f$9?_6X{m|⻋!itִ0 2QYN-gZ-3URuAwO?9ä^![\/HC5ߚp/+Rl| p!HLLzྊ´7kJg!} گ5xڗa>l'7籪1n~ȡϹyp< (xKxaW̋Xr74ho Flx71nhk2#dxy!"'/S/-I-q)SU̱RP,vM,K[O](>(\RY K暬/:ْJ<85'M8$$(=Jď<_m9~G*Mx,xP`d=6̔ylyRRdfǢ |xPp!t 3 toView: nil];4Jrect++AD?E`xxq0_d6a[.CGDnH԰B|["i,>Q ".e*.?d]m/&j񱂥's((T*&V*䥦(+$*&f*$(+$*$&)$f()%3Kԋ sRKJR&;h:Av2^yzλ ԷB_3pB-G9c\xqV5̔;46?RfAcXazʓ&\sonb1&>uHW`BY73^,]ZRj薙k+^/ nxk$8YENB93/94%UA=(7(,$U/Cidf5Ғ< ;.2ǂ}Ĥ԰;(/H HKa@pIQf^KQb9$얟WXTTZꗘy2[dYr~>JEzzzJ\  +hm~ȡ aI;x$xLpC" fsGX?0x;&xK`B"\9 ~!I9a֛eW lYx'),  xSLKIMs uquw/ /KL-RJgQS`XPY2츸2JRSP5*X)\\ \\y)@df[W1xUao0_q*5ڲ}!EtbBUU񥱚vVUh;'6@TEݝLQZJ{m/ڪ|Mᦟt H1 t1A`)# 3Jl ^p 'q',XtrODVp(iV9%Re@WKT<DK ."҆4,hB%AW[U MB"%k k֧`Ҵ5HDBa.݇zbPF{@VZWn[j2d%(Fq{ef0z<:XM]r*4πuL^?:cșDΈh͆TD҈c}@%5ب\ꊋa(Y.ďahDT$"C#嶐mMD&eֈE%4g4*-%G3TSϡsDI([bGED>àfDkDqu{JoKFFdx + cˣ;OM.CxV\/=tu$=3[t pNnZ]W0u9:k.(?MwxwoȆCnL3|ծw_]NmCz3| w9sUP 1?K=6W O[\O}>l6w΀wG#?csutCw e/ug_u;qZD1/ vxkx¼!qr1Sox{{g61N~"TͫYM? p6Yx}RkAfmb*FM؇Uқ4jMZ&R1;o/C#W&k-b5T.=:m#;tPڄr0DB(.J6@ݹFΒİC]I|mXc=3>2n^R jq޾(uƚikP; ,[!VaFfNW\68٪$#LHUCz3,=54Yw*aHz #eOT6ߧ:g?_2Ya :ȝ/Xo͏G wV@ .D2 @i&p#%hFj`P]|cj"MR@ӀDDt3ƠڀhZ_{ }0(=j/im8?;/.?~fQxk ~?$(-19թ43'%h#B;6cYff#>j:x,,\ M6$w l%x,Pl >6U6 n'Xx`jC"{~Q[i^rIf~^^,2ʙy9) `逢̲Ē[YfKIj,x{'ExdO-5xc}fF/e$K N2Ax{S&f0NN(Ydr"4 A%x}ӆ֓OۜoslsU&3ɧӵ6oc Q<|UMsRdjl~ xVx{ Y=sS4rǔ̒9GdUL8nަ4șl7YAskٌPf9PZrLPZg`b4g ݧơ`hRraHzU %@f}Kd>s~y.IyV;'o>.Q2M^ټ9E~]Vl0A`oe%Pxi 왹驱֓&/;ym>)Xk.Zf@E^)$ E -F  ke{̝_}ۙKQeXF|"cgS3{D˿r(&fe2h|X?#_7gTSxxqBI{Jz1mL\KtdX+EEͺkYVv;sKO\KxxqBٹ=e(p[L R xPi r6tKt6CK}K[:R֠b ΧEݮt΁rl?HT4M" {A~!`x2eB%-+I鷺Cɍ +x2e7HȲe$ (x2e_.,,3,3'͂| ,x7ȚdGAHkhCu4^CY2r;ړ![ϞVx;:iBlFay==} r/K,(0R+RRR2&˰'WgiNearEx4iSv̼5:x475tEV[ & #x340031QHI,IKI,.N-fݸq7ۢdFh#H2DδNI8gqoUuRKrG]=FUIg-| -xXKsGI$ $z aH$ kc kim $JZasrHG9v/)9G5ю+Rmygwg]f%aTs&ߜ}mďۍ̓42g [ilY%h@Yꙺml[]F 22zq&ݮ;8IQnf[׋Cjh.YR,ד6}nr!YU#J}.zͶJQe y=|TQ=4e#YwŚI_VW0ffb)_'N<M>#$x4]®ƻ([6.?8fa2V H5x|Zq y7{/f5 pQ/,| ,[3łY̋%pVGTbS?⬻h 7&_tUƂ;$ʹ` XݴYDS #A b!EEW#9eJZ.)i^Gr4!i@`UF(nX*ZU$QűQNQ2BI9ƥRR%#jdI)#hjrF1wR=B](z8E}WQ?wx`JU{Z.;˅/Wكq0sNrK1Zm[H\W> xFwJA Z#=rF=fEi Rm4G~ w7+%!ifq!g!PKgliq9Jb$\ D=S۰'8R{νpXB] Q'VwʩY#&ϩ6Y$E'= i' g/d1khn>0"O$ QSY ڒqՑq}qg6BEp/ $VR+KHOř"n~9PT_<:&{Ʌ x6q_e7r._|wWW~~~u~9~N 1j#:ܗfZjG}cpF~RVjrB^f( dx340031QHI,IKI,.N-fT]*Yl?^ygQ\R_W)χ~kv| [x{"sGz&<^mϒ3y&3&Vpq*AqF~Qs)[Y ȧ xkk ĠXs-!xk);AD29 M s 322Nfc`0a*Lc&VF11 $'?䒜aLe]ivm}vQM ,Җ ͇9Q \\ xD&Vћuyj b''pKN`Qd'$ F"b$ FFj@A6XLN@R'?ULHs9RRsRKR 7ؐfdY@V?Ɇ\…%9!%`pL3JKK rj jjؙJ䃕@1g{6n/xk+o+0Uh4j0[: x340031QK.+L/Je\ctM|U=KS!D_hnbvjZfN*Z#Wl_L0&&L{xʵC($e0lȸpyVXz\07/r2^}(·0<3/%h7_9v;gٷ5evje+rM1~- @QW\\_ecQo{ 7V󘚂3R4N6c}/}q4ZuDKQb^IfZZin9`~9ĜԒTr^|bgZME5yf*MTAв6sڽ/^ex7iB{޼ /uB-}~ֆ=9]ːXnRn#FxeeQM5^}VO _$ (xeeP(Ruݰnk,x5DfC#c %H.8Xz񌟷] 8[hدO)Cx9Dc_u>35d,(" X%G۔ȕ|όkGx5D8hGRGƨa]iX!"c甧sG1,\CxL ѕ@v >v~b #@e$goas^rϓ#\ћAN]_%蟂'Zx9DǡT:O c~v{X%%A3c~Yh6:_|[ x4eS V;;l1x'19)E:\ @P_YXRY,ILwLIAx%9eE%ɉ9 s7s0M&i4AAԊʰ4&w @ueMq,*. J-.: Hv90xۯUy1/[xf^J~d.>AbΉٙy龉%E:\ @WR"_P"TY_o3t@b^jB5gpiAj ls@&#X()&xUOQ0ԑ`abŰtEL&@1)1m#N[[~uƃu͝s`ظtswq=N| W0 ]vL, )G%IRu*1"_e^ôX TYxr6ouuѯFڔgsW+-)=#U4&vB7jn3ۑ yw #Xp-*`?/!T28SaiTx*/зǵ~-G:8[M>|Lo ܇wC h@9!36TV Taȣ>3>sǩlx[m|F)x340031QHI,IKI,.N-f8B(^]ahp0OJM.)K/ePw[y콫xx@'M)BxHi1/Wxf^J~ypfU2xEs3ru8(-|~s%& rVxVeOϧ1CPU%3/$31-$( ?/%H -8txTMoEG8 &i>@)1NSM Fi !WNȩJpE@ +[;D3qIc~iT)h7?Wgs-=~L%&l+agzNOa3cFy횐kLuqg9cowy؊a(FT[ۑfka֞q93.o>92twR8+uᡀ⃶p }IIk\`fhTzƞR79dC^&E5NJU{ж,h"AgfR`%CRJ}+qO"˅obƜ+N1ٓ[VD33ԓ 93,NK= _:*Qe5 lEpՃ×\f”X]2c)38Y?1"e<<;ΏMwgOnt >g9;m5a6M j*jw{Cm[!Uۦϱ!g,/@7\遲$aEc*W씗Oq9ȫEcQJ!":QtlʫP?x]]sTy vqi ĤCLRZ׵=.PQ={,Ph޺閮 {1xQn@$ AC/L'Z5V bDQU{R^ǻ"'NHG$N<7`wp23;7||iz1h Ggξ*/jݨ$8wֹ(f&& y%Ez gNŹq~SŞӡr3*:on2-՗nMtTEAbNjII^IbRN*C]F妙>\erˁ2K[,pgxʱc Bs XFFy; ~,xV8; 1֯Jtj!:oZׅp8n7~ Rdi $G ?M> 䋄m5窃QK)Γ=!~H dfv7Ur&xf$õcr'_zLag]K%H_*S!"ChaKT`~>VW$ RY.!\%39n듏GbrqwMbjx jK3m(xVkF^8h2:K{{j"(>WU!NzҘ@YHXwF&7T:ct$v^M%x2aNf % cI)tuV{=!>Ӎu4M:Y컓r&x>ycҩc J9,ƿ&E~]"M NV!X@ĪP`O0٬âgU!"+ijB -W$&gW*@`^uy3 ]ǃy(x:$Ћ'"ꡘ^x8Qe~~|K| TIx1AZ(85p a~U K`DuErj!9C%xG pcl8rz6#x$B֛PM_E` H8Y0TJiϻ]qp=! U@% lXr&HԀ~Hr(Ѩs_޶,O'ù8zep!G Mxc~[!" }CmRwUۙW$Ƒ9lEeWFp??xʱc3fI&Z͔._*?9 ?x340031QHI,IKI,.N-f޻[k:>\m`.3/-Ӭ [;Nd53 TQ~RVjrI^z~Q.Cy1UxawN. Ox{"3_fCl-lxYKR&/U4,JM/JRTT$nNb%W\_0?$g1HXfjdG>%%{~Qn0LTV1$3?ј',i\ZZ ip. x/sOZKJssRKJR'; O+++}3/?X12o~~q9F& g3^Ғ7sM&3c٦f;3w{pʼ&]ʤ Om/c@񘒌Y-d!DD$G5B JM72%iy2)j6CJ>;j&rJv'm>* >>uj.Q7gCA3u:hDJZhZHs,%߮S쮍cr~\ͦA`ZBh *1؊E'L5R; Xs磃[@ fZ> bxbxcбCNE6*Bm!ENʝ=FͩimuuTQwg~_tJ Hߨ]RCCLAwpSZ!$CkCB.]ZڠC@/"XTER1ĸ_]tHK%-i5ntt)l4V&GXxbToDVmR,4ݶ'^ZjBPZq9.`3v)#=nER/Ŷ%{BOzz^3{KcAտ]\`,;N.-jЁ}=pkm.3tX%R]{)dy] 止Yf,ݶXn"19)B}}\w΋S8 p:o6Z;+UZz.0Jf] 'I9MoZ"F/p!ɂ$ DDB n^"rZj/MUE886 NSCS\h.v 4<D*.AD=F\4W 0D- «!_sCrZ_p4ri!R7ɃhPhMla1޶>p}lQ3ha.7g;eZQkݺeՈ􎬒84𕁇ؔh=t^Vx ňuXxc 1rvE-Iyԍ8 Fmuc)uV[!P noVdmp.j>Q&7&X G\%-{D&}DZF={{"=!WT')<5+uyc{ 9ڣ޹G7׽Eǹ9~c9N8f2jv7ejN;. l]p?HVrQs)4`sk{[)6iCv,W9MMC#ccyYky:gyK\Gg!k2l!VVM=1^rH|hHPs'ZZ\HBRDF%ji[/r;V])bq1I }DڛOm78^3. @3g&=G^IexOz5z`{l\d,"A1N-c$Yͮ>聅Ŀx뭲Dl z-ka8`8OsұAӜӜ97U9qYQ /ߝ l# W'F[ɍz1GecY11C9 -l5G8<##Tk!;ս݌y;s31{" WnG$9 p pD[q0w9˽C1K13çCkJD>qN55M'-q8l6Pqg00$!\!DOK<2s|cAypwYYVYϚAPgk"p/&'-G܅~3@e.pT%;VJ m2FLZu@Y g0?o.@5@Y[ڂJ?#f E FOYٸaZn$W(u#qG } !=M5;^9ZC6S1TaT{2mƨ5)248F?-0x׏s#y.rz6C_uDGf1jn^f =Q08OV|oOq|KZAeO߰msq_p ߕVE --ke͝)y[9F[9iĪjռB?C~d+?ddGo+4zs3?O?AAOQx ?Ca ?G @a*)* }T8ϸ5 : ϺHe{a s0YHj\ԝ0?tIDiIBOPF8c- I-Wl8*7oeY|w^QYD%fL\^T,ov~j)7JQS&S_)D:E>ΦeeO( 7v!38%l3C&s9 . JR?IM^dhRl֩tvZ{fbEFa{S$qԶn#p`Бd:`r x6nzT&1XC'1lœ0Us5uѲkD=ERi"6"؎bKR|i.7x C\W}bnn = b/%w,Usif/ARIz!} 쥸 &A̹$K]*F|]&ޛ\YMk˻N=xV9ObЛ zKKvdzd4uxzX^p {&vIp+]Y#\0I/DK巢X(Cs>{!-8[ Rf)5x/F(;W.U[3OM"# &pGmGymݤzz/I~wJؼ!$ !z+mTs'ڃc1`Spؒ%{;}2ޫrm;T=~?}zƇH76%5BK>%rZ.SOb4;+k>ASf61P㓊I3a<%CYÝ e׸_Gz?Îzth(Q(04£xL2uMS|\"ۚ>g>O_X:en|_Z .u|xT&O4< uv2_tI-T;0-LO? 'HOtGN5f99& ~B}C~{-TOL 1< ZZ% faVwzOOˋ9x,xj%y~z#ixaK ){gOV%N{/(ȱ<ɂ_Q0ʂ(/Sp ^.Y%B⬼JY5('ߪY8J.ɯ(:FhT JQyQEß1d3<QF34::O+|c&flc]4:C O)ET7o qx1dF" D3&FgnTcUaQ {>q5&OEYs7n|E1orcdmYyf ܛy02L(Z 3cf V '\(ĸdOvjΘ?I)g6mȟN5x340031QHI,IKI,.N-fhu|?Oxw!̼|(3SΙs~eyey]b\Dz?jΜbJM૜rvd.M xۯ_y(&xVf%X)MvPZZR7OQ%Ms2|K2+Ff& dVe@*jd䤺BEK* R!tהy"Aɡړw)1= x}Uw\[U~% h FBi=,DB* NmX*JVbS{jUֺՖw{R{|s}Z<,Q*$K»t(c}Xi*%زId vS J+H/4"LOK$P|6C`N% {LC1~>pC;mkS=`/|ܼPLМQju20 wZ0P7X}&NCc:nX ¾;7^h[4HO!ARܕ0Sq$I%%9- $Y]vτ)fzfS.sHrG[s'\M\UcxS4ΣxMmy'fyEԢ.F#3>ӫR(Nt@hSR -9b|1pX'p: gey>zX4ƤQ(Pckc4a(U2J6 ٬,?e"tfOgbKvcqکF5mfDB]b7ܬPg؎Obnڭ%TuөKmW֮v]K]eHz:(҉)R@@-Ӥ rsk-J N"ɂoV_ar QNFӱXm4XA3gg']dk5ÄB hdG˖F0A>k'_פ K!6 n5F_pbK𽼥R..[q%]m_-Yl^m _l@ioŠߩ[ !@?{u`;]`,lf  lV]2?||,b幺( rw˧o|FF  [|E`_H |C`;(-𽖝)Yﵨ ?U?y~"d$#dKّxGk'wv'O͒tȑcGRiQwLγKx?%fL3+L~>fzTL5(u,0N'} o.&r>g),kq:33 `*`""paPcJٮ;flaNR3t xm{TTuw/²,˾]ALҎ*:,K`L#L1D]aZ-Тʢ5{ݣwf~3s)P\lkZ¬=^&Z4F2C=x>eDKa[| [n53xePr?d2*1=5aRUeMUZ eŤjg61`'1ո)1+#F01"m Px-$e S8VDH$KB=( $,$GmPN +ɶ |,Ɏ<rfKyEٖY䇣z\\6Wܴ"m-(R^]'M记҈EVѬ3XEXiR|^f.4bVI%J&"BxVB5:g;ވ|3Jf15 ܖ13Fzys40J ֧ڠ%Z6_k/Y*R: ٌܛ[t~<ugRb͘䝖E2 5E/Q.z%S,-8Avp }vWɲL㿊ngMM[4ܛ9mׂ 5Wf &@|Q|CKIk`:ƴu] 5)dױϨbx,9_:2`X;t3Hϧ$٤—=*|K :ΰ|s4,TGp ?;%+(5(,R^/X >D0Ts{M^]$ˠ맔DU |=tP2'@' vk$K_\_AQAH(,4R2.2]d n.孼T F `S&8!Gv?3" qt *]tx㸠?((.8)RR_U> >y^?p~* x!nTC?VLe oŶB&a(1T2L*d1=p,q1;8QHBO<NU-d\C0B@L0M@ e-2:!UYiHv\;1# k(c0:\ s"W0.9 6^PTV[Aqc7݆=~# rkAXK$C4q2! '/ zȂ%߆(㐹 :ׇ6>*ʳ5 jn!#~%dYlTvUsp.3)3Z5ʭ^}p4m0BrŦ;9J<8!Ac36 2BGFsv]ݡdڽ sCtR&oRJ|wHE(oBh%"~a0ώ99Y}4&ARyM}kj}礉7X-vA.`'lNY.l(S4&k{(j^:}\lxJJ2mH>x-swb춝^0MQaI[dULrY/)"UT.ն ZVu7@|{4ӆi3 DMg@6,nR99ۍƍnQk}#FsT"y_[ ,\߲/*qgR4K6y=²gr䄠x340031QHI,IKI,.N-fSd渿?Xu.?)+5X/=(UU6njQ=Lx{OnC[~lR;Zu8@))(%(85'5$5J &^ZT)ZZX)XSM&3.ifxӋR=R)/l+3/k=y.ǴTCd95'?U 3ƅrQ*obIQfT(%4)'q^%Z>hRAx'Yv!yIbzpjNjrIj(%`ʤd'&夦L,Lq/|א OəƧH-g)tA”ByP!ݓ5bE}x;pVaC(h&fS`6S8f0}y 5=x;pVa:+#f df Ñ>q.QSw "*x;p_~erZB56z 0mdUc``P Sr~nn~^|pyfIrZL-L8&0ȃ55i\ƬȴAd 'FɷY_MVyJB'aV,&ZQ▙✚4q}I6HoÞ TQt%GsX'm70(AdvɊ@ޜ@{7r3ۻoPW3K R&Dm` @:H 8 ぴ3N0\(1y7|$ %';~e LW;x340031QHI,IKI,.N-fxhEhtN:I]f^Z>Cޙ) 9m겼.TQ~RVjrI^z~Q.CZ @E33?ʨ๻il;==wO~^w{Yطֵg0 *.5xIlQ}q koyɭ(=aLKm ckޒJЌAHwB7+qÉ RDwk(G-E+G!pHl( gN)eD 4)^ɩ􆑽#Eaޖ6,E(pLֲ&Y<;Җ⹪qK3QZQ;0{9W*ݛ/$3iqݖZmcVXnk6 +tOkw㺕C} + lK\VWfO*+!%ˬQaP]˨Jˇ/w[F梜0:RIy؜@wg 8Ck9 E@@)3h6%zJqm¥Ǵ[#<rzP^J4⼳ y5{im.}PjL2\!5e!CFjP׍JDF S\Y{Ϫ?g0vxeKhAMbc湛ј_KN*b>&&nM`ԦFI>_Q]/^/"7$(x<ԙ]fGm% qt%ឥkN0-驭B.I@w0om~݊ u:7e0Mk`BUJ8&$Ų"lCK`9ޅBWtt{W{xDņ%,"X1Y"U? ފc.Z ?y8 ࠯|U8%ާN ~%) Ik蘒cMGnFZ"lپ[-+U\ZMN))6<i(7H_ȡsp6.qΔgkPUeθ-\ڤ.i8CCfRdpbE"Er\\уpF- S:N"+L,\7Q: F7J[RWmz|?clsV[柅ւY <{z>}TyCrtᯠd}LCޙ) 9m겼.TQ~RVjrI^z~Q.]N'~W~1!p7m/" [xkV97(sbiI~qfUjpyfIr$K!bySˋӋKRPT槤ͫ $' ZY85'(5E%j\.NMk.҂Ԣͮ|L 0OP> uxmYteg&IH2MRҢЛ&(hHVڤւUVHUDܪΈ rO>r|M|SzCsL~ߝ)a5VBՄ5 Jq8=tؠrTpslׅROPOb7|O1rg*WhL:|16_C8+658+WMpUљ,aW^:rL>F R0}btyĈUcS,=cY9 vGR @r=4_bqzۛ{>S + $\Łk5jTuFU2hD㌾$ 1h֔o`-g\xuYP\UY`;fef @Ye jAH`X@h% (!q7qd1ѼX_-5UϽT]>M/exI-3Z= G5/[GC$] WR"iy& a_ӋSx)=}\I'< ;"f]px$6`07NXkݤdfXt;USǠ-+l{L5j)\?պDjIU6iflIԭ8M:^;In NgV >Y*߼}nm!Ġ;O1~mCCjB$Ԅn?[/7'ky ;zخdC nq7P܉i^ l'u4F>bϖ%kCKtph_uw,&J Ȯ>_k)<ɚeOOeG=){Ѧ1v,۠vuR+Yl:Av:gb%}`B>Xڨ)2c.u="Kr ^s-yw5ath)F^4׌EcXi58^;ŋztg }̩2> 0jT^Hiᘁ6a =r)wKyUM?8xq^ei&.IΆގƑx;^=80$'=mhSrh.W|te>ˇjT afgcjqB`B3, 8K |A%AXWF_ 8G0%|Y*[ˍXΫ\y(ca0lAfGl,h.` Ox;KpUOn)~s_D* thVTEVIuu%)evYl:xaF$x340031QHI,IKI,.N-f`hr__ں{!̼|(3SΙs~eyey]b\vqb<"K~.cxuTSU޻MB6&W(Nj)(4ghXbL*J]8/}p:>SǗwg3j3:݅ es݇Vҽ(i#C9aN%s֤q$?@\ѫPMA~k?ji4Q[Zá_X p\)E8B*1TŬ6c!řDԧsb:s\Vg mx4mbzd%X0+˫.B'e&2ȋszcӥL^n.{[UxeTrE9vdY%Ĺc<,J8Ď !LPDȑL (V/%UlQ5`IUl)uR=*ktsn?3f:9a:!!8͑Hx+>QflkuJlԫ rn[-8ˏYq1|}YٮZˍFe2aN2ݔ .[b;M݌4AJOґM{R+-\!+* ALW)Ủ_] *ɱGu@9 ɀ࿡bZ`. z'P0Or$]Ӆ< A|1!(*x=o= '9=wcƏG*0[& ]fnl{lA >JVԫX$RM8ib4:8\yҁ;Fgޜܛ^ 0'0/j}~,>oI>i(́N:_w~ohx>g$%ڻ}/-.*mIKL/1 pȏ,Њ}l+`r`nBFa_G:H H&[ct7njn >Mʤ&(Bb%d{m MĩaI8Rްkc.IOd S=9BYm::(8`SP(}3L{05k!9LrI\-_%9%Ug__u^gL/nnfS'c/<˂ UF{̬\3>TɂH[usٱ24nf'9، MIe $?ZYSeSt;8eq$6hoY|&?'B#>R SdM1uH<.S@.$K)P3b]:Y31V9]ȥxK `' O K<ó~//[&~1\-IdSRPthQ Wډf;,Ъ{F<5hzM2'eV,T&#vRe %>^#lJt[gܤ4zb%;>nةȯsU\k/h t/l뾨q1E@[k2/E :K^Ȥf*>ΥmyI$KVئ+8*ҩj^įPߎ4-WZ`DS I*>E*t-niN]5ܳ| n&p3]m^M^YP`1_;|览ćuл  nmyR:[S|9m>2E6 JtDG)ı8l Z Zh~8YsNQזj''4:cjΧ`6uqX9p Θc{nj Egjx Y(` =2\'p&b!* stA6Ҫ,i ;CG{ P&an"YS!]a{pWU0*!x1 _G4pᨹS la[{-i"1e ax340031QHI,IKI,.N-fXnɯbV֕1m.3/-!JdL딄sf_Y^uY^(?)+5X/=(I{k-u-6 Sx{Ui1`pIjAAjcIIQfRiIjd;^x%Y85'?O,-/J-HM,q*-)T̼ԼĜTԜLnbEfni.xfV2E@Y@Vncc) =;%xxUOQu vb4ERRE 1,(m]+څRAJd=xn Ƙܸp@&$|>ySnEv68 lFcPZ?$ ߔymä's L*<*qKM㲒<T?MƈQ[|U0=j `M&D b fM]\3dZowQ&̚X6꣦j}|ްu?[$`}/`RulFw{aZwpd1 brͨ;5sV 񓩋D0ª(̧w3dz|*Q̭D2YmQ|cY)㰠 _AׅU3\ĀBcw2i']Xc O񙳝q $K#e2ʐ r։L|8j{TNB,ʘe  >W(\aL5 KA.$-hr*/)Oze V],hUU IĒV١/*uMѱePwO5*bEmrSjޣ!fOamcI{>x340031QHI,IKI,.N-fy`;e7En^me.3/-!JdL딄sf_Y^uY^(?)+5X/=(A-z}TSoum /3xۯAJ9y%E:\ @^_✟_39WR"( .U_0y*>;Py͘'/*=yc-B+'-.xuytU3NҴk&MPZʢY "J m%EQ)AqFhf\AEs}/m`9y|d\ch $,ML!OXT/gNSMnN'$ c3[4kV)Mm5]]R NݻZb^G !Rn48%k>.5CVFd"d27'IgFV uzz` ]Ru %_'uITvN۹{wp=࿱1LGR^Qn$ח=&UA?, 2oip+myP4I%@~dՂyP* xypd|桚 Q▄>5^*:*yYTOdv S"z!:OAżv zSǰZ-2!ha.!e>~43Po |DW1_hO0-'S521#YMH{i?'hbA_H "k N$^0VM(7)<2w{{#f:vVO8kR\o1ڷ?6M9+Q3D.p ǮK( )`X+#\ [\E 3,}>aR֯_%x(kW~g3Dn3.^sLDz0W;0Z;gf ].uKյh>E%Xwp)֓jf{pVAaFu6Ysý|܏#ͰA BU<&C+fzsvT/N?yC4TxP)dIfN;l_""1yqIdݾiIn=Zأ$lͷxNM* EG`/at>xuUJR"s/؍5Q8N\OZC߲ {f}B;ڧ gH>'ϣyX4;zdV"4VO`/ uRC*jWЩ4%Kh:plЃ'|0^5K\/~*LݔB;KBiAg4=m^ӓ|JkCuH1^LRBBƒ"Wl:] =7|CU;ձqx #"9C]ͣ&nxmEu.@?EIphiD>vз{o .(מ$pçf&/s@p W=w7xzFv[Fn4'țq(@X&+냜kꠤSZ9P/hrHtqjNXE[<ɉZ\P\KRJR+J2SsR2J2KrR@nJJesR&qMS..VA5Ɇ9rL>~j"n_  θS(-ƈyk:&;MtB)'L:QM xoԗ5 edi@/ButtonEditor"; }044Y @;e!M ;;,i h: 3N[ 9]7> @A/ 3t*a'O~x2it T6⵪Gl>x340031QK.+L/Je\ctM|U=KS!Ds~^Ibf^jQq@bNjII^IfZCϧRQp MNMIeH:?wj?| 2$ۥcY8jpu\`" ]/]kuSǗ.8cUˠnNkCIg?/#51Ty%Ez@al7֋9 ^zgP,/-LXfj9=<X*eّ^MSy.C-oN*mvxrORΕ[n Is~NinL~+p2܇wwv38*MhQ֘~w<_,K,*Fq&X;O˿44%ۖ`)Qz_Ls$lCۏVO>8=wc Er~ yuIΌwC 5%#ŝ})KKoUUZR̳\'W}XPu\ TQ7syvO^ 2Y!x{}lj-UJn,nD۝#gz#f1 ,xb'+%l Y4V]9yjH;ݘǬaJ?`7Ɠ*>'6JOfmQ38j_~=_N4?!Dj9GHb~_=^tbp7/25v?բb!&I[zQdd;$*Mogj2ŕij*Z|2{k~8nuExٔM2l~cl>J65vkckG" d3)ԓ"#E,x9K?"kdQll>64'"pHxvVs5o±<2(h&X ;m/9.ÉR"wUaRf1H 3 YUuN*3[BZm$ aX#({O#ukPְ6` 5Ǹh䓗J,3x{'^WcP!O>Ebԓ;SdJ?7׼7 yS%| <>~E@%ϢdrqțSN,!F6;|ԔaIb&o316>1?L}A!cVIkjf9- !PDG%rbyQi+F Ÿ |rե[V0Wɬ!u3#rפRp1Ǿ41^,kqͅ8||% <N-v2d 8_ ]of\ Fi|H|xW~NV teCZ{}3Uj5[{TihVMZ/gCJXk8 5Vnom;9h8"*89f7KXGx"n.'|7X ؑUkLF?-G}n;:Oy`"? j.3/-Ӭ [;Nd53 TQ~RVjrI^z~Q.dCE'^az&/Jx}V xT޹~$$l}DlGҭ >!YڪP|咣-V+\ZHDmmMmՖ֪hl_0ߗΜ̙̝ˎl6ބw xQQK(Øyy\  5?.N6Dښ:s}皴+ 8f2 UZ MWK3 %´n`5ѭ<b YZ0p띵fǶ9 ֖ <[m~g <*W;I}.OCI R؞֮ڻ7uI&@#.qTy#w$_MY LlL4អK:"\Y˭Y+/⵸Ux֚Tb Qe>r?ْ} %L4F8+(Diٲ~m 6׷|DhleΤJ L-*,ǝ3|^h'.IQC680 ."l!]:t\,*DgٳJVRTR2 b3bbki:L=~ƒB7ɍo]1ޭQhIZj3(+O@ˋ }$&l.ɲ?,I7B"j/rvEy+t2^I }y̏&Kbb]5jՔl/)kptJ,0q l1MV%yFϫ^ n\1:^4n1w$Թe.3Xn>?﫴4 TJGCfU+]nA UkUܪ]p4}U 6;%+Xپ4wc:MZ|~oo㑊wL~dY;G9'E\wX,dwfL}=h t:L{qo`EtJ~_s'$ *m a_:4nN44Aܦ>Z`|/?⫕=|;ZaϽ )M>A{ۃ5^8feJ68?c*T96Uyix8+ĔjZ3#RG,Q[y t06&L())$EPS' OR*x_O92pX\ xJ>=OJ~*忯jaud7/$:d:d?j|F<_cdy_bű]Qߓle<;R|P?y.c.l\ՆTkřtW6gFǷ"joTOxNW / pψo.] q> -Ѹrt^C::gÛӋYu c"[F78JTeQQ)cQQ}BfAHN>b'ϐ4UcԏP1OR 1:4ƔKƓ[ƽxe0q]94m̆}r7'Ck+|4 L`7g>6"xuV{\Se>`c16ƀ1C??Լ"Voa^&"M442oiVew Th7Jv˲󝱟_y=swf_m]IMp'®9>C?QA2AX#N]]7?>X[VYM[OAxEVi`h噅PQ։NP0 âֆLXeM{ 4O#C S/mHD^MiL&w)UF`Џ46DGqߠhd}7t(ZQ!6̉Eu39f Zf8k&"kl7kgFE'N"c mad| SJe*bcjb+\BYY++9 e3tQQ,Q1>j hjHa%/Iϋ2vl>4lv,İ$ e:Ut1w):jY_M@CRYѤeQty$AO ❽M!zoT ؑD9sSSaIi(ڑ@@$+mADWA!!h&؟扡%[E/={oø5="X0bYl '3tt\̀>vop(^X8{\ъhŊ3FZ|dw6<#RǬfXRf~:ʺg$#[~gd1 w,={{l}.,n|6m@S36(MX]R)Pt"X267Ŕ>IrН 8vI)EDjb+-.Fh_6mz/\fj|*+Υɞ%O_ݫ"z*1/8 Ͱ0ݥB[`cM5Bkzj]ծ(c 9#g <65i .j)=iAͨm^NCPaICVg09Tuk^C߃#Q?~iXe{΢6OKai#vh’jm~*l@E+sdp >| D,.!rZQC}_?2X] d]l6jTn )-+̊gX\`ʨY7[X=uuV In㜇9O#28*smA3*b0k=Ͽ Pue;O*Y.k\7Lglc;Ƌ[1a%:>`rO>"LU<5r4.ih5$p˩NDqBP9٬|$q{k0/Sx;`FF&F3'Ul,8Y_ws71 &f,aH@J-cbڰhl]+7%X9N!x340031QHI,IKI,.N-fnrMi}ʫ=uϙ.?)+5X/=(uSmg- f<ߣv"gAxaKpfUu2D93SJ2r7H ,7x}R;kQdw1kqcI̫P0AJ7.;l# X O%Zn9SX baee?Aٰap}w&ew !?1X=ݾI RkHBQ4W"v+jFގ cFpGkBf(;)%F=n('%4"$VyliHhu|Zp[ H{B~P1ھV3љ)<ԟ* L=*$pQ+^yj^< fO^],DTk$OR~EZѰ45F&-8FWPTC!pXʍ"Is:GսN9R <)D d9 (WPT97Qv;Oud2C2LSJ숩/? 1>t]4Lv͐2]ϒ>sUm!-D908k,!l)*dVf23Jq80yB3T:K@AM*;%UDveW0 A' ao\BvD"Y uow$KblG=2r,}e0+. #+ lLńA#&!`J% gӧ_-[͉>=Źr.ԛljSTᴭòmCb)pRafqTTY a]n>]  c,ieKz}Bդ qօ8vJc6a3=&q&eD?uZW.dI[1mov6WlJ;!ll H2;Ybmqva,˟v8*uaTx&dd?Z΅~V9+-Pa0wbq錐!UpYڇ|(iG$+^zW;ݻrRy\brN\tscX*F=M8uo 5tRDCJ@I l8GG[)אcpcWVr\\BN_.;^YPXP>{dN_ЎXFڠ>̾ )I\OBcJSoiGE"xA@g'D!FE#-"8'6(:S| 3RӴS+/詑TKzj!J "l3mbws%ɵ׈Z)Q#EP-1|O#?4ۊy \9Oh5JA~אAdѿE*'&|A0݂D(RM Lw8Bv) [G*gr?<}0_Rjd @x[(d#Ӛ $8000 <ƕl%847;qq2\X’$e=(>Є-q33hƝ̇ ,xw=l"A%5~ "LfcRa8rrC$VEOȵ꬈ {oa5r:imhr_cF}ljU1 }]?IkÖx8|(By-éE,(Zaf6Z7M8m6Gn~ka#,)Na>lc4ļ@ 1s{񒨋/TkJTU;H;ӃI iB0|nBvl>v/yaN͎c,oYX'. (Ǹ60'tYk°* hSD|vu5'I+rʷiM"3.T Ca/;HQS7'V{ƞ]WO ?t'A j#H 8OpJ.$i_[#spsī}c5p"1[3J%yGljww8>о7sGE=GG2D2iӤM܄_ z\1e˙y <3,QߨG/ͻ*yQ3wJ}*:ż$O&]tޢ.-?ͻ]pb%]UR/L&Xlx'xF'dT{xƹsufFeԔ3sJSRr=JRs2S]S2K2&ktz,x340031QHI,IKI,.N-f(5)O:-w}[^0]8!̼|(3SΙs~eyey]b\mX2lIlsv.{ qx+GzCl-l򪳇$&eO>+3O 7(BSJsRFޡpڅ; cvs;;|]ժĭS cࢄ#.&Bf 'EF\'u#k @TM־58fx81G`>hxy͒( Њ2I#pޛt6~^88m>v8C$ E k4$P}KI>_~ 墜~;Y]8&'r"|>/7_o.Wp__VD]Dd,a,sQ4Q8 ֳ-l˃Qc=rSc-pU|7 olpSdn[GAv1jk 'ï~BQqSІaH{rkOW5fL5UB# .&RZ4<]]R@G܊S)uA?2JYlbcx;-f-l&elh0wF#.0r q(ILI L-״VWpuRI-/J,THˬЛ'=f.maNo, >! ,x;qz M|Rus2SҁL_G#CcKɟL~"S_PYXąEf9l % Z3BٓOilf cUIcL)VK-_CfL5Mf:k >x: Y6dqڜ/Z xZ \9&اo^yRIlMHT\Șy I cf~^ACx{ J,lޙ%}YJRSJ3sRR7.3?)+5d#BXimdȢ'XM`lk;YHb ɦzV&tx 6'0rn% }p !O_wCƕY a ,xUKM@lL.tiE(p1a̒(663>sfG$Q}W2T*|F!YrNV#~œ#mX [pfz1$\gz{rã#A#}~誢cP>Btz0eޝJ\L& wEDٯxwsOnp0E`jyUJ-ώ< O`Gv܁`,*~J  *`5+r_`bKU!8@H Hn "z@ (PY>xuT%@/ 4kQZ +B x:bkMs7Y j)J[ <:O!^'xHDTkW)h=7,E^+H4G;LZ]0N&_ m=h \:1f8Z5 z˂"Jfz#N50 5*.?Ʊ56<|:h&3΂M[ah0'om"٪V[|UJ ,]1ԞkM&wOt"πX,"k`a4=Lyz7FZEfXť١܆j4ϝb.(.dY" cԆVt1cXy/Cd 0!;{Ma,C\ C flVR>Rઌ+8:X~]ybJZ7]q\%$HAt" FLV%쀺/OJyLs.R`=;ڔ]q2Rp߯A"]GJGL#%''" f: fwtwRma_&Jf钠#EA토!Guiߨg=l(2x6x6y83o)͘eDڌeCϙDR*ͻԳMcro Slʓj6v[v5km;z~q?|Ts~(ߕ;J*VG6b0^l_._Q?Է6w2*_Rhّ׮Xr\;87Վ? Ekzp=i8e.}-췧 @|)WSk)Cn89Cz.u6_10ܟH# )4T7R2^۵u0=rQ{kJ,\0٦?^g|+^Ibx"%ODL|*&.+^ =B7aW0}'ޏFfrI^q^/f P~p7%dK}ZцYԇOM6,9qW6&{<Ĕn:y1@ÇfC{ ~mmj:C/G(Җ2Jnn[+9Em::貔ⷈkrGv|'kM?_*tJɯr*M̷U"K .Ȇ*^B@[,mir|ĮPqږvdX;Tm'9rݧOfYfSIENN!rYRɖF˽*qӴU83>;3}˫8~Rc53Ξ;߷ e%ko 1W: j0@E/~*oÔA| WSXɫЅ>sZmDy+ 1E^,2Dws?{pjрVje Їe K0:#UL^ 3sI-W\*#x7KT<0ߘd7[nY`D16qB1/m0oZC۝huw)wAwBqJ^-鄖zTqӱ[ poUz)FQ KlVR 2$ 9[붌$[3!̵ apD~ߚjZڴ"^VjLbb?rī2_ړsO.sScIN%ǂ;ݔq 4&⤓<Uzk)ɓi}j,3D1"K3)2J鶤ix,~v_W kJMH=KgPS=N:XogyP\6)gn^Ɔ;.˰{!@g?y<:_`伨F2m5!l֩"{,=ȶuccCVqӶ<^=o nhdx)*SxUy)U̔\ q=&ѫ*bjYqgNcJRQ*exbS\PM3ȿWXf[59~U3=0<^Kgo%؜=Ӏ-Fe%+L_1m1}m )[fr=n4l7x;BF^x340031QHI,IKI,.N-fjKO͆r׭^1I]f^Z>Cޙ) 9m겼.TQ~RVjrI^z~Q.Cb,Eղ3\J4}|:.!xkV371=5,3|5K~QJjobIQfd$&g$g@32SsRĜ̼tV|'*^r.xmyTTUCgDYӓxh5%2((mZa$>ei-GBZeVFe-/ s>~w(^Sfwi v+Lgqd6ϱ_2,Kp~>OY,{#$8Ov[3|,cPLQ`Di;(&X,fA%KD> ɕd{cL_m<=p˰g!3J+d <9=R ~ʗX+J*!%Ui8>þЈ!2,"jlX#~{ό^a1M##FHE_ \,%H-1GR[TUцS6"1m1,`q|-ZOeS1t9znHQVW⡄ ךj}z#Ģ*j? *x#$6V ^ǣ>ҍcvu3Nrֲ[Į5m&]Tgܬg.o#5uW֘`*4 Oݔ:0 VL9gWM6[Yۘ (:Ѣ7|'%R؈U>enQc9=7gUќaEњKszU{+.cҶrNF,(?   9vLj$h.6F“$<5 <-]8%9r;ZA >._9|CPq.#07P,\_ P Oۢj=}u%]47&4l›fI|uM"WM&w!Gw| !!oH8(J(nKpPĦPk^.9 c]Ys] kv]Nin[j՜Iɲ*͞}&Z*iYZD;'p/U5"jWzyp19\pJ/plQJ$ïkXi0^ 7&bި握]u%Q)CYYӧf=YRj5Q3ej p48<$qxDP1A'(DrxNPh/ qxEPuGlNor9 8ů8lEUAr-=Ӧ{FNB+X밇~Q5|GBB3&&|Qn3V Z=~hջݲ=|bfj+ AT-'Q\&u['&x|/xFM OM6x340031QHI,IKI,.N-f8}Gݤ]=!̼|O2l8ZFϤ'PEIY%zE +[rQڮC]z)?_q <0 fxkV߯47)-(7$h5Q}JJHF~iqb^JpjAbQbI~QpyfIr$&g敠 " ONɬJEїXYꖙA JMAQ\_$ZTZRي$3 G%xm{XSuw8c` V^^?2K04`4PIMztjj-+M+GM "e/v.Zv5"3[S2p(Zq$4qR`ֈe`i`(nԗ`K]&`8nMXC1fup >SCF)f1m^lIP0̹HF^GPpgD=V bFr㼘jǖ[@hiԣl‚,Mbiٸʀ$U[dMɽQ!bEY(Kqٝlyq0|)Z2 Ƨd@A\@ft XJYWe VIVxfBp4n2⺜"[()SlG{\P7DboTEC~/-)ل)ⓑVfLBw )-2"X- opSwd8Fdx 2O_!!>쬇$FKקTS'CxΞ){UK1j)44)|5k_넯#WoΝLgpiLkVrP=4|GȠD !T,QB?esjhzk1bVcc~&n Kt^p3+ov;hݴWw(ܺ 'W ܿv ڋ`xmTy\TU~ o 02 3,x5DK,4JDP4!GO-jni EejeVZYYڢtޛir~wsϹ`y;XV$l |,E^ )aI0 %/:geE$z 6tC+Q X~`/K7\@.cUBx#<ЧqSM7O AL:KVCy08!j5T.r2bMaY[ol +Ӵ/nvK c9F>$U׭R,|l⚀` t~ vTwоgw77"nMxti  X6{^ pKx2SWm棆)8.¦wYZA)\ 㜅FJ d8ƽJϦw5KP#t֎uLeH`9xJgU!*2pʡZji <٨Nefs_K ]^ Gq9^5 &KLBs-Or.+1KSF@au;ILdaqa匢j+p]Za+}P{Y<$ƹ '.d0n}@U' x"pXh:eDUx,)AL:sFi%j/h1_*1pFkg$U.w[oÓ$^*^8w^Ϊ^P-yP~$UB P~&ԭ_==.*9{W\b5=gL$rNkWh=BUZzM1?5M2 Su%'7pNH6;Wl>xkm hQٚpr䋼"IE)E%E:\ @_PlwW5xV]SU>$$dCHbh![Z-P Z hkmR? Q;t8;;;gJg:^x|f3Ϟs>sΟ/Մ4 Gs=HBl!8tfN.[+/Y%vNlL*BkA̅([u(.ҐΌ3Ba. DLQ e DeSBx#n3ot_U(Jәbp1ȧ!.֕+TN#&)ħܿi ˌ*@یAҀ,M>ޝτ`!o-߰C+.s5FCE.$NfW\Du֤ q!1[)/o )U:T-)!T0]S7:gD  u_dTS:ZY1^•؎Stv.fEfֆhUƶd&U:g(9JNԍ:I|n+3zmڥZU66DA) L[Klm<+I.dhEW^M[ gIb➪G^d!8 o (bpsNS ΘVkvG3p ]bw`|?nPɻY^w׆h{a 7~cJ,L. IdYkȭz5;a,I U]VS-7]QX2J-RHo ,,cD<6j-$0KOf3&U(|Q-U9f+Ѻ;ˑ=-iWUKA)xeޥ(fެ+ZO˰ i>DCJ1G\b>|íO Z aʧzeQ4gJ T_le㶾͕v?WrH|VxUIsEH3ڷ"ɱyB7vF7gFD$'K C.,5S(8S!w.I`Re{^:PcPˆC^z|Eu>!|p!Y}너tTK񾴭-:CCrFG.[C8U ur%Vw|-*{p@j-ScwN>NgNpq: ~q5܃a'7mv\nݬWz ozz]')Pbשo=)%܃!\Wxg)o{J?xa Eg)\6'c/bxUζhk Fzy6hF悙Q(Ӧⵛ~ |4ǷKytC xp)&i9LMKx+-\Ƈ,J-6`l}Kߋ9 W`d\GvjXк,cEK./ +r: 1lMZ.p43f)8 > ܴh\[4.JY67^ud3ɏ(Kg)'| |ٻz7Ѹ__sm} Y4y> d0x[HoF|FF팧8TSY< rxrq ",mX9'3<21y.?&0xqqi  =63;=q6{$\`IZ6x31\t )fB/*3VYkW㜓X\W\\_ёs&ʵ|4y9նNld wVIq+FHKKR/x1G0݅ x>%?475Vqm?=B ny%al?D9{w}F;j=sS\O-JK)XH0Sm;.dV 'Bȱ(3h ZX/H,^{nĚ4؁d@j_bn*Du~Gή+L}x' IiFjN}GU[[{.jñ;HKR\Em)-~ӞԀDpfz~GSe~dy2_BJf`jXx{ɶmB[Lx340031QHI,IKI,.N-fhJn[J;fJyWnQ\R_pdכ_}x?㘶Tlf=!]8Ix}JAe% ‚OacV"UzkZC e{Ƭ[_g0zUn|@0u5>U4Qǣd0 odC) %BB%(z1)CQ⇸i'`krp ͯEDYh*#D!9I_ro*6TNNA T0 yԩs7^u%&tVX^nPJo>)XiZꃍjuQ1wm҄)fґ1|_ `ֿ찠NRSfaN_麓l6h~#,J( !:lJc('YnпjZ iXs0dނ / }J‡bOHq,՜))`?-*]dʅjmgy=Nq]싳L)HNhBw0]wl2]!@h"נ<覘qR- % XK*^VXq|oaqXJG*6tTMWCb*zYL~!y_I4I>O1 ! @.ա'Рx AKbZ]KP%r*)H%,Ơ :ptzHWHG(TMg9Z|ZsP z,ZhT=%Cߑi1_xkjNy=HE5 DU0߇0>?Oc>9" %ry/ׇg/ ay. Ϲ=]qvЬ;t9C򾳺lvȨ!WzOhYyרwZ=qև_XY,BAyr4(,tfbC )7T3ziI񌥚Camhggs}a|(R7Cͭ'ؚ_3Q ~⚠x340031QHI,IKI,.N-f[/:ߪ' !RKrdv[ad n_J ΄Kv?{l%fIEki Yѣjx21G1De'MI:+C]yJ6? ̻@A>Bba !Y./g$v!A-xtt-NjK2YB+JmJ:ZmUt̹V\qv96hh^G6¬4EiSG{_Gz_ӑ@OނnAJx0.p؇~$+ ;PO:z #z-Az31TVpLv~F$EF~bmX9W$a/B&眇ax6F!x+|ZDY蝰`|.v>% V߭l>_^]t,e48 Y;{w 6NZiS} zfj''qƔ' }^ S/[$F?v{p<#>#ǍG=\_!e8(2- NA=FJ#j2dpwtvl߳`Af _ *#+!mflIOG ruF x~:2Guވ&{*ComTli#=+.zNK])y!Mt &7G&^ϣk7 9/Rn7g?I!yJ. NL1 .ue2NR3賐)Ʉ3|~B[E-iBNG-z>Fqfǁ# eQaM71®Xɤ]1O%ĈEfĪޖ0baF4FwsÈ(HfIVT"ےcHHY)F‚Q.$łMƦ`T aL M/B_*(UJLT9AW JQHЈ5`$&jY|!GM'j$Z qoZEP~\S /dz#iQ&oa^ZBh`!1dwtv l3<4;2Cw~;#6QF+>> %2Fº ]aa4 Wfk0f AX!XEfHR-Ji㌴E01]x2@$lG]sE2Š k 5 cpU kZ)GጪbaUCڞ%J$1F"a>a,Z.0:+%.؜*0p(UI[RJͫ0$kn1N9רZ:-)vnP7c#J vLf>uC;#^չI]2\i)#pc}zgd q j(#[J琚#qCmp&*Ge!܁\\ ׈ؠ:vk1  C&Fvq|D!{!8/xuU |Uj^Miڤ4Zқ؆Ӎ=pctmڦ\'Vle(L# v?` ƽEF;هOWUt@0'g|f3|On%wuώeOɚ{ȧq: u{ ~Tl m}:AJ38nF,ZNF[=¸J k\&\e.: am=g0HN-;ߡ1;Nm~DlXUub |=qMjQ{(\uQ5v^a6Ujgd'ݳϗBQjZ+jeBYTB8^a T\^"#0 B-^)$tq@D!jmtZ^j z;rETU:MUԄ[ͻnV! <5AT ! Cs w312NfgN|Aos #E̘|X4[Rܛ=8=2󹿁e2> |G8Do1a\%3y|Nӆͫ$7<̲5n~a5f1m+UM~x(%[e #XI-lVy`C697m`b`Ԙlf+QsF}y6 +&io`ԙ/1نU#Qw`doMtAp]`Tސ?K?btɆ2`6`42>+PP$Y ^Cn 7_*b!y(1AlɦF@2Hh~["$q0Pp?T9Ó! 6xȠTPj xp v9JbJzyXG|i'.+ib[/v(yy*0LUx-p>Jc'2[,Eh VuyO|Wh7َb tt3F?JoqtՈ`򮀉 pJ x%BAYSrYBH{[̆KdܷlΔq|F KR-HNkFV,YiygY9#jٷmݴ]\.ԑD&|Qʲex~9ɼnC6Wa^[s!'vx;"QlZB&56zaTa1ngon. S$"<ٚo2 1y!A&፬j@e@UbH)K-LNqٸ0aF6 lش'oe1b` v/*af0YQl4$dSMv&FSYT$ xˋSSsr bAL.̢ &'=$8+c*Rh0Dt9 ؗbȚN5ٙ/sٜ@Ao89Vx340031QHI,IKI,.N-f0'Eײ6Yi.3/-Ӭ [;Nd53 TQ~RVjrI^z~Q.ڹ?]~o9a .;I4/,x{t]njAQI@<1YCd"(#%x_`xoEExbMO̫򪝕j\+H4eqlvXf&ԥ0ĝ^&yS5 pf͆wڈ5+uy3Eap\]j=K_ N _<;둸cC΍LգZu&8OS o$1fL%k&Žb7.sX9=VFk~;E9ޗI czԺƤhGk5dVqXSFshb-+>?M̚aPHX/KK츻.˴Sc 4$_n$ɺ`ID|fMVUUbKE0'Qg!rS(jГLtfsj"LN|F*4HBHn $3Jr:56n.*ƶ<ZV*}@HaUZqk8[rq˂]eik&zYyUlܥij>vP9|\1y7s{]gd6 d -\`L*$gM) < 7b,v& bmn|m.-$.5"x&8o32Ĩa1w.ISs4FEM;?<if7Ŕ4 ,fwcs~u8`9w\(oz–j7Y/VSR URp.$T5ڨZSi2|Ey'OF^fO^4iZCL2RǍ%?P S u#}:O pBE<_ ov2WK0+, EraKz"s8m"QHDM0)g px 25z:&XB2 сYH0A3 T7~bӌdUW$̪R9l':fp:0\ڻ:}&%Z})z(:E% \#,L<\Qp}R__/>MjKU7N's$XPtC0VV8lY[Z[@xwoF_܌c6h132n_7y2ᆩ&d<Pwj"Dcjf$50~xxfl4aK;wwrD>%v׿1 ~}mH-Gc e3apThva7)Xt^ ͔*-,quQp\Y6kT^&CXC0*6;f&if.¦Fgα˰-bTqaH` )t/MQ>{V|,+FDƢ>UQr^͚_Adࢱj,otU<2\@ Hr)!~2y 1XC^G#o ț-d?v$A[NWv5zNϰ{=8|?RG9Y5ock@x`'x#}MzC[~lR;Vz&N5HL(T̔ (;$,3KM|W&bx)KvCfi56zbddyFÒgY7-0)uDIq#2YG DoY>x340031QHI,IKI,.N-f -[s.w3 MeQ\R_Pgj{q0ٸh!_4x#KzC[~lR;VdL65/L+I,*ɫ #NxUN@=쵃!-2M R>*Q!TR܂V#["p5}xSO}pb%03;?i 6K·2CB|:Stfz(" ,~6T q&z,ɠ$α~t8,L T`𕔜#X 6F$:fT[*XV}u鄟Rpj>Bb˴|1ixC|*PjTwo#hw=XJV^/E3Fj l3hr~xk2pUf48k?]Z̖tf+Maa&oōhJMoLfM܎D%k?&7$(J7x*LxEC&56z322L$qALti3'%FV5 *`ssS26LaF &@Plr5#作sFGx340031QHI,IKI,.N-f잷~OzdQ\R_t򸦞WvTں-Z<"lax{"3Ez_eQ\R_P%p4*-K'f=w ux+#w^SyesRKJRRl8K2ɯy5&;Ɨepq*Ayf^J>S_TZRJLIA$&R6X_Za!5i P!Syk}7| x}/=(9#,u>{j^jQbF^ĜԒb<+%.N P+.HM./BHJL.-@W><3/%*3ߩ$?*7Eb2XĒ̊9| A_yx*yUrv&vNnG YD&`u,|*x*@r(&mTbRȪ $XEA,̒ 4>C˘**Tnfgdܼe#_pHjE[fjNsjNP",|“?U2 Of/a` HK+2]brdI%0a(8c5dSLl ,6 oi(6)  \7mpn@Hi{ dnFɍ.@6ĭ(>YGHE<6 <%I9%@1J1I3C9 Pbܠ^x340031QHI,IKI,.N-fh$BF`Q#Q).+, ZUGyd-÷xQM1jt2twK|.JZ 8R7酉x x,MJD}p9Q[߿}\9EŨg-C-KNM Ԅ=@r{>JVCRp=aziF#xSĵne'k=û!nKe05PD+E?9$!~BU7J7ࡶu$$- <2;:= $! =϶i`)adM5ؙIPEwCJNn"p;]'e@F?%ţR2aY7I7L-5'?E ~f'"~0Xj׫2{I^cw*w @}D qkď[N~&ZO糜IrVz?z7bx340031QHI,IKI,.N-fh:?Q [9!̼|'k\tbŦM쾖3}e TQ~RVjrI^z~Q.ϡ3k5zZ{cS(Y,Pxq(Dq?&v1J4lxU=PAo/9ͅ\KH L"~Q@EAPC P8 a,,±ƚqʽ 2n[٪N9w6Bp2эRB, B |K@m&8S/:+N=hfi{v8]{J8_X_ H[WEZt [q\5kW׌\6#WTS҇ˮuW.]=X\%#gxp؟P\Q[won*$0I Ku )wH=pZ qn^E=ɘ{](‚m|:gȺk*ΌMg5VHhϷYGOr'ה8쁻)nÌ9əLrNsf8qspp yސzMtN/e[Aʲ <_`* @'JSlWk颩` 0}f<5Oj% /񇺟YU_,chgXx340031QHI,IKI,.N-f(<uyr9ΉUm e3cEk`aRbJ|4CbǪnXl ͮφ`ku3_Ju|A~ZOk_!clMJ–2*t #5>o!TH!dgr?- ?t1OJM.)K/eWY7^ _fSޙz/! Lx'Bv'/WF~QfU~^Ibd]>Gx Esr2SKJ2JKR'Yb1O1=)(%7BSj!ARJ2A9yy%PTgA%߭?]gxmS[lU>gfuvggv齔6!`@cRLV$ۭ4nT[T ”Eh(޹XHф/ILLx>xfl,8sf,ޙww|BsGw*i7G@} |qG._)8jEH'ޖh}81Y@3"O[ vsJ#LܶR4d*U0l+9n~)ΝBĖ!gKhd1ǿq>* h $.(oQbZǥH_R9g P6xkjӧjs cNv5N\yF>TqHitwnbx21[aKp*ywe!"VTZ\ 8J9xrV^|Ɂ%WR`Th[?U.3JugW:BSiFGk&SK Dsy;3ۋg++kk"71\bHY#*75!"1`_r+TQ9yh]kvZ n֙.Rz53uz.ܝkeg#qtПl`߂q|=oRXRЍ;o!Wgi,Nx+X=9<:X8ғxHkq^S|&9X,KXJG/cF wT,ֶpNYY2L2|>}K ?`8C3 ?2t\M}|7SI3v>e[4\Đ."\.Vj3`^o-9ŠxNH_>7_ig|K2|R]N[L{[L[dw?)]c V񇴑2M3x340031Qp/+LKc8d?^ʤ7HgQXX\Z̠ئz<)gJhDbt _L 6˹nD/i x{"Df!D~Gf(%'%&j %:N^+[^I ϩ$?"?[_唤VeLg- {xk,7AT Xar>#tb&wXA&\%* TŔ_ZAxdGnzE`In${8?12L^uf&ͭ܇3&x340031QHI,IKI,.N-f7K,}ZS|;1_=T3OJM.)K/eWշ{h  x{++PͥEEAřUEIde9Y)qqjZsq䤖+*hLW얟7y#l9iEi sDSK\RKsJ3SJ2 L~/\_ 8)LCeC99i%@G:e23PEsS2SsR|N%%]4YLxWIwEn-ٖo!8$ŶbJ kXۓH3Bw8q3F7yx NPխHM^H twUuUUoFͳ*fkߵ gAfr|1cy`o\3mǪ2  ƕVѣ6.TX{fZ:fgSN D<^vvPg1FfT#Z5nlZUkʠ dϲeL@B$X`d}!X`\=dqͪU\gKN/kΦ2(1w $sq9hbLj*0l`M5 7WCTCNKO{n{6)5ᶑwZPBNqHG~1Z6w9\ AWuKԐTw MStw\-;*_0.FtܜUa(HТ>bD+8NY9/[gMj&R4ӿ:g w2X'\B]h4tgSp8aJ׭}oŶJ[=L?Аez"9#9݁䌘`cma4dט¬Ž5' (pHLR˹%*)*fkYQ1)6Jpne84SZ3=j,٩uGy)?¹A҈r}qY {݋bm jj[K xYͥOϥf,E%11wW"XP{uSqR:z5k G NsԜ go\9{GB P'tt&٧]=/핬?⟀sr>#sGaQLӵ)[  Ԕq pi$<<JsD/=E.G^jOa%R{?p<}2SpYzX^ ,aURD7~4(\yRK >"9qf'O0ƽ)Di? V,\jem,]"ѽB1fTJx[juV[YD x2muO?Q6b}˴quK.D`LeI:VBXhŹI&oeYO2Yr=B{Ƃ== 1)nGnI,)cDGw!>;lT!ExDZ._cXbH(d$(v3RRZ8( "IClb pN%r|X}IYz-MY1<VD<"k1\Vpѡ/Zr"s,RN=1[{v1\twPn|~xGjj/Vx8QzdAMU Z7|by>Lk?I# 7jOU.BQ^_)EU9XH+!%VRrOO( `e D|YA遯ۚXk6u`$ ъ[n3#-·kXʉ.D'GɩhZgzKL҈Ԗ9vxuSu%@B.lnZN[Vh@ZAS@b4[УU:/qfwїO>?>Wg|~KVBt3ɞsߓ;؟x{܆}u9rLoDo$l$BE#/#x2s)KOMeydI-8.k5 -!U) "r'O)~HZ䩍<_1̖ʤb./WZWz nTXKVs"D k2œkT216]Hf2H [fM<516d(C ?)'Hlѐ-ФL*gZ$ dBzDz)mݏ[)E;vE1+Uh'E"#2u9'(!Yle-aCۃӼjmmz9؇ $0pnl}贅~l%T(DU[8P(tl+˶ fG.a nN{ m>Zjp#Ej޹R~m/w*⦱ݪxS{HIR+lIOG[vv6 )TRgaq98[(xSGb0aZL*)^3gbdr97Nf}X \ݣEA반G!ͶK9H~/`;z.^{挘ld)]y-ڠ Aa)~Vrt^ܙ8_=~@6@nrn*"FԈx Ԑ'ԨQ}>[M˻lxHC"~} U F^qMClX~^ O@^5z1g6-a U>dN .ot3x 4Y_Ӻ]cs)=i.j3H T+=\\Uȗ,l&xJn)fJt1d<' ʤxF nހ!z}= !l)_d}sQ|B$sMS4ψRpEtv:Xi!x̹}.fF.7 x340031QK.+L/Je\ctM|U=KS!D_hnbvjZfN*b{W̘`E7ϼdb E!%z@C9]^;M'czc|y8\ n[.?Z'CK&n<RrBx340031QHI,IKI,.N-fOMW;_tq[Cb\Og'[9cqy\9! x{"YKJsrR'd/H͛WtrF6m^@"c-xUrT][M%iIiӏ8 nagQXԒ$7OIՍL4cswWg`4v>2m];[q` E2U ã?(πYա5Eф;=;+ekPZ]3`wB+JӭH0`}Y*żY?b.TbR"(Bս {%IXO c,Cyh]y V$}%\QG޻~oFv!F=)*\?'X7@eR}/Mlbwkw'$c\Bۃ֒ ϱYZo?ECnsrTa) {Asp&o))RQg4kl̚!s kYxŸԸb|A;6@[.o@7b|E`I fny΢ .e/M yL2īI?b_T}.j~Hğeu^&ܒrxVkOG+/9j+$bcpbmj!P4)3,=wv&mUxq>}26d!|iQGoc:Љpuu|PE * @I٫E;[^OP:wd9(?p7L4U$<:2SԿ̝ͭ"c)#+-ZbD KItvpRҒIrf9{ <')]TtbsI$Ʉ&k|+Z-|* 2ԅc̜wI)V& ̈́gfJ3ɅJSH*r9-0]uǟct Q|݂02[ KS* A zgD5XP;F )h8/ϣ!]\/dX |'S&1N4_3FjsCeăDcNP }yBx)i@yXV '-U^}Q.G8 "ncp<}3_J$"Y~JSi &؅S*C_Q.[1l{ܲV-Ua#B,}r.szO7)qu,HޤLV+$LTޡ#*9<) +"ut.]fp@}#n%=3&7EN X2U`-t$"_r>lm`Y PUݤuKSx},ѣ%GijDW&m7Fvc1\@D@ ĔY-7Yf4\rʁeƫ(.hɂ'r*'{ 19ej[YGi4,tjuFy~ OxI"pD=Y$v[ ߽X 9/>m~[gJ'i;Lh2+͂b>G[zΆgWx 4CO|_rĽD#YtNmeʣp|bb$|  T0D#6h0dVu7ǻ*c-GDE5^ɟ]tXZ͠ b lHZ.x(S~|%8w^>mqň5nJ{+M\o>⏾Z|I$wyרb<4_ p4g+(k)%f椦(hsr9pqe(p&fiXE: y% E ZZ@2Mj.ԒҢ<`ǂĒ<_V6JkɿR´pXoIKH.+[i7N"Hj"$m>y݉.R?f [*2 D!f3,Ssu⺵-mRDn1ct;Lx9[~+W4s6fbұo19,9tcR 8`Hx8[Om]G&GjϼNoWru~Á=)&ʚdjFxQ[E}1w, o1*\VkZ4pV{=8,8(K-IڲG%_xQ[6`PݨlS( 4oWy k Kj?*TRp`pMJ=wÓ@Et $_xR[XjyWjLl!ޑo1up?3ac<{9Un{FKsD%`xc[=Dva/0%KŴݩo1>=/^i!8<]w100644 GormInfo.plist6)qp.jK0pų)qxR[`13wIYv DKo1^Z\A&'/6ڳQ ; j&g3b"`xR[F0gF nӰo1թ 4 Z8 [դ;)FR6F #XLL?#`x8[>? h DZo~};"B,e3 eW Fx9[vGBut6?yo1]v>e<ꪌll@賴Zx{ߺ9Z=ZGk0kJ#xkw9_2e\@̴}u e!xl槬OYiSV_' x; B02" 1A;44D/yaqP$[]\tlnxۢP}Q3d%wxf9rNfK38 31n x mͮ,J29nx[ömNFFͻ   Lj@x!  GsI?̖h b xkչeFҬ"Xy'aڬ=OJ:3M#?)KAV!/3GS!f,`,+Qy`0 'x340031QpI,.K/M,+,.a2OnեJtl4pIMK,))~{è@gۍ,e*RFe4;ˢ]Cqz8Hx8[Zw,.Á n2>@qPCQǪN_xBLi?&4 x{va #X,ũ9iӅX՘[ xe9bC%xXRRJdx;#kD'ݍW+'/)l*Z;O]S ؚK K2aǢJy@"P2_Lv6)Ri  Sm2s488RC@¶ ;8kRsSK&O^#8y$6ap]\ w?xy T{O$R\Q%eߋf135fAL"-*)K\+s-RYC*\ ѽwy󛣥*bHL*3@@-HӰQ]{XLq8W%(ٜB?l nS3Ld\kF 6l;{+D#0XT:Q,`);otY| s'%[ Џ|RIxoRI ^.1)j"/E : 0/p#c̀ĈX`+&=Y$䍁aQeU j:jtљ@qaGnG_kWpOvyaL""!'9~p+\KCeޛW&~Ф(_wjGDvX&RHfks`$ :mm温޴6r{ugF Wo+GYB682v,],_]nBvPvݯJYNa[x6Ǚ{u%4y83uŽYWcH 걹y{L tff1҄yߩ[ Hi/[= ]2#M^ؓ3Zk*G4f]U{xZ^v iěgCld?tUͫ25)EFopm#Ұhu Oؿ.CGSV0 Gz)ۜ"d%qat'Fq]3K]e-mv5]-@Cx>:8sA EZ!3ȫ[Lyɼ*\,~bZ) DCnlم=MKF1QeL@w;b^>}Ĺ96zf!SVNy4`?[hi^@Y-J:SP!{1Sk @@Cb^;<Ǡ5l;U|Y- DH8bC  9 a5(D~$$J*dT@tZsf!@s]rK:BKVX^Mt+:8&G#~lӟ*)PM^m@ &&ZjNɛ䇣jd1qVC@tbAoKZ8-,p3"  CH?WԤESgEhxϣc2qf|Ý/p7A_xO #kE.l!M}3~$'~ 7E ž q36th2~+AqWTV,=|cYk%HX &x8y^yJpyD|_F%)Qk LO[ZXUDStIE;ObG%kf>u<LO׻сr'Ү Cam_85eL4J)nR/u.Ľ]}Lx$?G][`9p.ek7*+VV$$ {^e{MQ*N"ӓ #oٹr~v ^lJyqq#ZfѨ0?׻S@iR7nA%=f՗n]Z=(ؑ@Y,n}MwZ}0;o 5 *)jaW!@w4Mֿ%Ȟ?[+cmfŧ"ukɑF ms(kM/V q>Varfkq: Yd lr0U4s(/Bb,ܑrIEHS6WLyHlaC'pW^i O @F["|PI(@IAxϒ) "$sVp{k7id濖CEE;^J|r¹w]QB~eY8Nݬr3b \չ5H5⻴.Hh o@WTV;p2uˇru}띢sEqu( N;aJb#ܵ/P0V.϶4''nr^< M$ԋ_gGtخt́ϰ'0o-vx1_ D!@So{)-HQщp&O[gܡc!]@k-풴ƚoӽ#Z) siq}ڴ wq; f!!Au jI14Mct"޴,w<' >FUǶn0¨ D!@ Q6?֘=mKFβi(GHK%);!eQ,J>Jy#{2񔧷{kKbuuXG?b@"5" ɺ%V~pr:x8%%[6f }[:ӴpTCo}MnZ ed) 4GxzYu.-^Ved;oS i&|-x8%%[1Ⲇm,'!"˂H\o.b;!= 1tm"kFx9%%[)/Կތpy aY6oa @UUZ]PnЅg 7&R @]Gx|%%[,{mz$&om~H +ԝ'EoɊXa =Zjd IF.Y{|ihR$;/]=2Y?bU<$xw%%[qI̊W*a*P|H)zocH p8pEo楊Ri'J昄ʳ!.ECZц*$ۜ/ FMf20W쬹+ܝBn xC%%[ 6vj{oE[K+F^;28IkɏzѦUj榓6T8Ej.I=C @&~ ] >_:R['|8;Bų _Ȝڬ  {NcmSKxV%%[WrYY0;OMozBm;]L&C0I;_3/ q&4&TZ"exP%%[XB$Ow ,Io{ 3m\Tn@2[[ r:r{8M%jܚG&E^xu%%[(T9ތe89oEBXp!9YCfky(H Iu Չ˓@ s4Z'3v//#\(d9Z+LP aAx8%%[YX=ZCFh2-!coR,{@);1Gx=%%[@XM+S5oPZ͋;\N=BPl3Kx8%%[K̚nLn*GႱoR~RK篒9C`pFxo%%[Y cp!Q6v8oC~5i D>5sysL@0K8/!(0qTʹnu|Q:1}xS%%[z '3XvzV6noE3΅ϮfklYqS۫<iV4/$axW%%[XV?f̟}[3αoE+(]=QS:Wo!VU598lPc/ & exK%%[w!בo&g%py%V E|2Ь׮(x%MCsL>%pdط#{o9100644 GormDocument.mqjf&!K* .z/# 7ܫ;̱SV&гP aO.Bx9%%[4.>.xhrgzұo*Μϵd2(DŽV)3J100644 GormDocument.ms,7i4qbdTC/ `9JouN-Jp 2J2Vh 'DA *k:'x9%%[)=<F.VՓ/3~40Q`>;M6x:$V_?vC&40000 GormLibm+#uPf ;%lT/{KNt<~P b g1Z\6m7֞Ĉv&$忓Y}~E&dzb?" K_`CTlb:=,z qs@ߏDTx>%%2"E$Kx/4s.b;fUaP  Mx%%%7t4|E4 'ۓ/ 6~3xۨQuBL>**nl?`zNBg@+xh%%>( '[k$`7 100644 GormDocument.m0 bwPԱj/ \m иӐ Zx/,! vx@%%[<壑Y8ll:(ozt\띔މn|xh/. 9fHߒsȗ `2*r~j,\R<&|,4z5pCTdp[wǶk/eNsgxl/ 렣_{.>[) x]jPiJd٤6QIݏtG҅;ʯPREZ\ F3g|G?_ybTߗtw~'TmGX66I@(F 0@e(=CkFT\DʷMgD:ނ#pG[9FEv]|п)8m}RT[2%s2^s88"nc. XKstIdîRzE>v}'* XFr!ȽbUr^B:@6{Y]]]q ۹ +xkCggd 6xfv12bLM|xk*sUUazP bx\ca36 mD/01W <v _.1S0*7 ! n# I#} @!(lxKqF[&f(ĥRS'HEleeMɷRٜ#Mx6XE4~6!3u 7jZl8!մ[?pi?C>gzzFx:Il8:iùuFaꑸ({M%vױKE|\')aHxE {' {x[6i] DSK3 JRR SSR6cS#c-%jط0ntW*=Y\zMӘYKS|+'gEdd+$d&'d)$')$*e($%s23JrS2`J2R R2KR6?θyM? &H:Cx9rub`4m A New@/R]cIf yc_h  @Hx[p}ZK6s)()'e+d*ndgQ=xU?KAE lDE8S$QP;O` $g/^bH@I4BPʯ!~;+@"6{ox?f/L*l2E"#sȸ'c[QtGG3ӅnrWI$S Ky4̅%sY3sWVBSWUTۊ ~sĜMFF作8m'ٶَ- EvL.,/"6GPeA-F)}}\b҂==68قo2Cj^ 2LOxxZ{p~H~ll˒,6C,llˀNլ k pwm0!.5m%47%]izI.Mu5Lo.ڙvtn]Zk>CKOvi]'$p:o-/}ګrGFD4>\y6Οq8A0! vUF(p.T^u;or%Xﰮy,Wڵ>8|IhY_?puLYdTfb;Qk?;v~nԍ¹ ԓ(,A7Ϊ!Tc`q6 mS?+ۈL'ݦv \PR6Ï] JKDT}~klP;|nlJ;\o ŸkZ[5pJ6.65Y7[R=NM.C^/CX?͛v~髁+1c .vUӒ׀F}|XD\mF:Q6:ᬧ ZVо}'~T.\S@Ĩʣ=#`qۼ4OCu[s4CC!ECl,06ڂyl6obrؑkK 1`)H *aK-wB~G ul- W;6Å-[ݎ`2mPM/ T'GG,0wA){ԡB-۬ϫwU3,1 YeI p[P[W!F/TcnN- o)ZdSvxBtsNւ%L6ORCz4"fx Fg JbuT#c^\ G:.Í=BN~"9u@|>4t]ZR7Ǟ_G/D>TP a;\K|,wDM!Y"m]lQ>Dd/EJcNn|0ꀢf>!6E =T -'"V)GbFxmq.iz?`Rxu$>k iX$qɍ$o۟ȽktǺ? aE$Hx E8/"yg#X@ .ۭZ`۰To-(6 "pN gYsR `nd߽î"~w+%?|ҁALNPpI7 >ِh]vOWO^*O9Om郥Px4>|V!V" ޸]ecJcWr,DBśn%fQiaj#:4&5*BS7%pp,#0KQ]au;zO LZ:es?%$n/_ -s,P.#n y9h,OqJ<#74~xN 6mx9+ynr|l|J:*YL${\;O░S?%'JJӿ8h`q,af۵}lZ3F+㑐y%ͤ#?j&14tI qOjdLR@] $!(.WGqXќyMݯS"/&Uqx]"FSB+[Qmgxe3iHU.pÍsP&V.3+B,0fd=%&i!b4&>c?4Dh2! I,(9\pBa•2ʒ\k̀[V&7%@veVY>۬;Ȯ@#կaZh +OcUlᅌ*$HYKNz6/:70ȫ85IbqHׄӌ8jtsEMֿwᔣ)Oo4 {^;k.#Z0C*&EAsSZe -Yg|@uy>N2dd`4spz j#*ۂiqTݞm7},&RVDt<.' 2ny4<o/|!@rN3(rS\0dM4VyRcN **JbgcT1.φ3uDZL{0crpBdq\8Ci 5ꌖo3b=̋K6’ZR3>$dl'? (MIU(ZY)2Jɩi: S$Y9fFǧTeW`p'SC lYAXHb?eYۑ4(W]2ՂO)8I9 =ż#m)Ǣ3QIW(X2W_@E|EI!"aAI$yoy`HosL_ !Ef}tC$>WA9lR bGLM· Fz<(lK(<.KVFٯ+DY4'&d*$*U U g YwX٦O3:K2 yybz:cz(i\T~ %<#Y',G%DHu&yUAVO]ِx:zVUi̹JiJHIEH#?7A~8iR-)&G*<2JRõ.[a(+:%5 -SI)j4#T f؋y :W>Z뚇qPV햭i„K"4PX1TJqIKHLYpLJț )U\&9$HSb,~.7mZ3nN K ja}gtȇw[# v8XG^s׫T1$v$ɬOk#>9KY u lt17#XႣÑE@#4tY㥛H'$ci%VmuFo\]}-Ģ埼Ar3Or"$.aF-sh(h)ˆ0r߮ `qZȩ* b"BEgSM Jׁ#~&נ!_>7ȯ,W_ kI8j%=P8E3C{<)N3I=q܆"D[QT{( (" M'bsoK( Glx1mr* Add the ':' back *V9 o2{x4qll7vczEG:NRR2n4xicncܰa",&,Dx;QaCb947Sc\ǿYN@ Vx;a`~6)}}`Ē NNԜͻ7[pel:xo0`t9$Wx} xTCH2+'! 'y̐L&^ < @$ "L2'ɐɜ0gB@Gm{\c_Զ>Қ޿UZ~Vַ}j{뜳䆣~k})%) >ppf+NOj߬.m@p Ǘ؀oh4UkhS\߉r`?&Kб`G@C44Ձ4r%>.o(H7t 76Myr@o_jIUFIV"QgTAA =&yJ( Gꤊh$ǍNI!YjHmehX h҆pەyZ=#0`n)FwmdDu1Z Yl,g,?4WύޝS/8}>yP R?/D"*sIn:@GD&-?C&ceߒt)$ub `THC @ )f&zaPQy)I`7פ5U$NdZ{^5rxz 谘n`ҳ) V!<2$GxG9I>O,Dyb4S UHAuÁNjtQe-9"9R&cMWËniZ  Fq_/ro$",FEYQV8}ǁ_ɪ&"12,GZXE{_d]OaҚuxqHQţ,UT+ ՘6 ÁM3QhopĘ*К՚TҀMEJ`^CQ9 apfQQB!ܹS0{B2-|bXĉjُ?uJ~)FYRNdds*t ]psmυoKw}xz_{.6)IaD,ښKeP1!O@Dž (u!U u×/,WeWGND>oуuAcڲ7tAάRGKik֋ylμ4&XG'7-ص4ƮeS Ӑwvj(Ra+2Jמ^S*`!fU Q G_{0[ÒOFŀ),r}F J6f 26%R"mTK%a.1x."+KD$ ^ Kw7MZ+Q߽|]9/ ]O{67}A[O O=T,Kj8Hvjp! ҍG*+J -tCjw))#ئb=M16Ut:sݩPAj ߛ[4vC۝ !jD{k2Tp2}'hmGr4YG}12 vT?xavTrw^-Y pfGuˆu҇ے(/ьVsa&Ĥ3ߏq+HNjxnvBD7YlhP1 䰭KjhXGYŶV V+VNQB7s,r>X7T _Z /ᎡtGd6Pp@uG2 pECie͂…XxzAbkFdF.<ڦ/Qi\ƴxA;}r+Nˆ*'Z-,e[YVnf]u+1K:RA!I&d̨K^LkG#rTtDaRD! Yn 4=a>D v@~@9WTW!:RC(KBwz(]t9>?z]MddՄiӦZ؋8f43!.C~;eu S-477"mG94Aa|DaE )ʌ0l"` qa7Hlc5̪\PQa,S߶éJC`T؏醼D1(d@"\* ݬ ƈ #A,nلҊK4ΠmmZ"ӎ8l>p7K#8?j9@s.Hc=aPCM@.AjFgg̜fƸ{D%lIa@[%(D%1ʡWfHPi1330 HLsy6j-# 3/;/I3#1lla *Ew}r &yf@K(D=fĹI >J[ c?Y,bS,qpjp!}9džl+m0(.wۛ} M(O8.g[qiw,Ǜhp8z,n{r.tvBGkÉu&׻bԦiv?:駧C*P8\+{ 7ȹ1CV;ń2e"'ざn; :I}q:Dn 5R~iN2IMh)e`3^Jb:'wЉDж`R MJGe"a؀9?YNJEL@2>$)1S5CC.mBپjԄ&וK=ASmƮ$S,Lj^^QQfTx3)934Pɱ)9f6 '53H\RedTk#涱. 1јdDqV&9c]$WlT[؆G$Ņ%ȄTcqQ,3P=֭]8E:XcvsҨْ0ݣ݁_ Pe_"_܊w&4t9 YȢmw,D=a8m}@o@iLD!7%%c3ڇ|ҹ'әLcbzґ-H(@}w K|Ya>g&7YH܆ٛ ăĮ !^a^vP-X|foxEՒ%lm rV䀢d-$ŧ "XDGY/ɂόXNgA4'|i;Qͭˌ/LuE 4΂fF]?۠T54- vym\U?V ̸[RV?y_Y&ЇhE:+ՏDa桴rΓ0]~u|e>9_?f®Q,]pA[-ֻH2 gEem4PR\ ߞWBZT8A悡qo/MT_,Q)yufŵ EEaUuoRNX}4<kXЦ40EHd l:Iqo2mxdG I^3,c'R W ওubs xi$Kd st]dT\]bEmZ7i1ѳv2a/t[VhsxQ?א^[ዶ#0.s]l0PPō,aIH)}D`jߌ$++Ԣt:&rQrS,R94+-KV$Nh"Buʇb\ڳˢxQ{SbF0qHp{_+"ƜH4J+I%hlAQmrrj;Mm1wIcضulݨ~n3Di7+bd^>%86a_e`ަoRKYpE[;kQǕm^|_C ݴ \]R*_ְTx<^DP ~rOg6EtHTʡ?_rMU,hKunl 6)e%ed#^W|RZ!%QVnѢI:^*y,VndH$Dܪrm-E TwKĞ|ذ_Wj`?Zʱt-V/\61(7零X>gk Rp9Z *2l]@30q9U`>.qu4 sWt[Kl43 52|O ؋ZMpeg$HMewHd嵄GH0PN=1<X?ckrP*l$,π5E :&& MlHp/0QlDeU]vѸ;!A3x_'RO3L1PtYxrONw }nMD%4xRw(ӳwӞ3xιО4?~ڪlL{;#w 5Y7|Yl'_bԬg.ga,%xkh>=q?;@!bxxS92G5̫i,ΓqpB_(xrߝraiܴjՆ6NnoN} ]f޿1.3M a_& zH鏐zmb: .rmazz=EҐ?k[gf=NE 1 E+ @0b}vTJwWbWk'ZnD0/4>W=t}~qy/$(u,d[i/`ͮJk񵸊fjL=V ]΄{sGsȠw<*pa4>VC3*"[[oVȽa^`Qf:G_|/*/˲ /!ne yiXqxl8ax9H= 'Ά'ӭ<^y{2'lN[NꍻɆImzikA ߭Ă}jF*UOYN".AL O͢w<56~?5~T&.\OTLJB𿟮*䪔:ɡv $8qj14z?#q3xb3xϖ뽍h.ٳՊG 䕳 l*=[=ϭ;bkd8`s K0ˋ N9=f{.Lsҗd`ow/,B}6}ȆCu1ӫ)?ya1&BodY'=Y~nZ=<>mFWK)ȼ|m]_ /mo1]B_:,89 nyyr%8^YDta+~%v6~oDc2VҟJF"u$gؾ /RN2H~rZd_?d/W3_]~yt]j۔jG| O;U<k h]Gj`޻ˡ{L}!hNI8q{N*}@"#ۘ6yc*a{GR=!OK}?~#9pCQaUH8x`D66 <2[!A9-?^2)U[#oAr1>^R0b|-WRTc)^=ݕVMe:BnGWckOG4t [$ Ig*j?ZI]LE'Ç^x&iZߛ3рDfWH`?ېzl S\FPԾ@Fs&4U%Q<+rVttñoeݟeţA+oD3 mF)KW.a? 5BГ=Pۢ ֫MvrLZv#lG/)BٴGSbY17"4Dwب&p#-ZIܲ\x}EhjI20w(zGMa  1S/(\0_[0P6]n3̇Q-RF>!@Tt2/\q]^]dMapSXk`Ժi ϛdAL!u9UB!MB&>qQ/F_åe=R:tg9:WTWӰ~ʍ&ߤT,tḕtZ\=^oYQ肪zxB4\AGR9])[51utĜM< e2N)%>g*.HPϚjDXD_PuONu=KX9f|&W8;7?ɆDmkEǗyyljOsFnDs<|uN!{JPQh uzglk硂TPxkۏM( wNfITF_65p DbuneMr%C/Lu.az^}>̞ǂ@fWՌ-.+BZK-_!O[`Y9#7'eB$$ooΑSA,mPqYfgԇG~s9f@nFB}Av ZȁY-i؊S~4 ~Z>15#hA'.DΨ`J?(^ G%^؇.]<{!ޏgX %a? jT~pPƭXzW ĄQj+qcCYZ5i9ZG;#όkt,]V|U[ohxަ7o־m .ܹހ?? +"98z%n+,ʁKbNc8s{OĻk062w`1,wz;O0a^ݓ{/F34I7pcsgK[oHcX NPIӒMmLAONxjQ ^f5ĿܟF]DYw5nCXO|wآL 3b C# KY<2F]xQWoSjLZ{MQ ރeo- [2}_JxGB ~E!'H;a$RUUIbGp"`sJ'J)VCʉbG,*aɰJvXAB5F c9l=L;嶡@t#id(TH1G7MaagXP<.ef-XgJ DnUbCl*P#yUT\./,dk]n*.uwQ15\?`dF-d7qC&VM_"^MƪL& 9X ~ y;3܎uDySN0槸mwٟlN&lyt"C"aǓk#c.nq|kߑE2޳9& }U\X$rvv!Áp~3Fٚp;zNJHiz&6rCe<7bwB/;l~/ ɪJ/6rI$L ħtW1Ϊ2& 3Siődooa8Ccp-YOƋfX0bYߊEPlQF(p.a0^E8a8`]P׆bdJB[:xYhwn OEg/ D({g! UYx ?stuKn/2p W605d:zӽq,0Jۅݛb}MxogD33OƶcA f.E&Y1VbZ: |n#K)!0 [WY]Ky$GcwAMW2Sfq&qr@7mxXɌBc@0 qnEa$,87,l/XXQ,$6>cDjkS9 vi3^τɑ 5aϞS1/qQ1F X,g-cG{ 1r%NB`93Q̹nw1 L&8f̷g+8~ tb),d<;N9}>uX)%FX1KmأWh3 a[n=6y6fR/ws/'Bj#Yhȃo?̤O>C9k"((DLOe98A dB䃬B HKI-Z9ũ yuD2pFC4LHTk"400qNO0ZJb )OP\LH + afL7d@ AB찐H0R6A$ F~q VavFn]f2r2OyY1Vx: tŕt([6>t[Fl#fZR/ac&ټlR!a<^W ʾ >0,#$a`!+psd#kgtWտn?{,Ħg)^'䖱_)y_$1)׭nwNb:SO.buXT%"bju7('%-97 do\Nce=xjN jҍG}gx9Y֖hDRJ<Փ|mrR4QSjȾB)ddmj y֮ndlx+u{daiFvul%zTWhFmXR5Zv2*BJf6'<߿^HfoOGU3zjFC;ї),{qseʦVu OH+ZV6ꭒ7-Fgɲ`>V5A#hJ3wt% j:~PIȝȌˆVwUw+ju?+cJ{ՠ2zNbw$`.{ka]ĢyBA`[_FqԤP uG Lq8N &RNmb||,e9LleH :\3puGStKW.A3b"]G-ăYf 0)T̥Tl'|^py8k||A'`_+nٟKdtз>oGYYۖb)3GW'voF>JXQQӸЂ9&в' ϣbtl ÚH T˪yr.1uՓX V(P3raᇈb>\NOkNCr+ 7QU(w}oTAiWn~9w5we紬LMq nlmptiMK 9&ŋUJPq̮sVfDģ Iˀ ]Rڡ43fe:Nb '!Pu[A#KԿ3zX%Jc_ ^D[K ]7@!xLr o%z&tI`QڢZ3LlͶD&e~D4n53mͤ~eq4ڼ|ge+9\>ʬ"cWnv4lD^눅#<`mt2]Ӹha\}gGEj69yL 3&W"#s4\Hb_{]יt4Z-S97d.}t5j(Fϥf*$h ;󧳴œ[iVB'BSSؑmNk}5[aR5pUjk[RކOI6 hiel9͌:\hG-PpXTðGFG6wPed˜E_W#4V4:' .\y.Y  e y4R0ZH,ϑxaΆ Xߐ{WQ_x"&r޸<7[F[a]?&ҎZ}+=(ab|l@ ㍂[#-ؾNT4r8 ѰkZv;μzmQj}%XƵj7\r3K:|@=E:;6fג).^]kQ|7oL&ܳ1joJ1gn{ qW2>G(i7$tuu\NTy>ְhPfe2ԎДCk<8}7g r~SG')̰6 R5aDvoVy7 +Ӌ0R _(2@[L{ϪVM;Ŋ$x_=$ yUCmӪ``S,eBr)Au(/>E=j M,*60Ս{͕L8kDHX)^3eloewV%ëBnucɵL2I^#dn4aY\`A9CVZ0_VE&>ѸFPWL 7lC/:ܑޜjGp3ϖ5?cȊ\سY8bߊ 객6ZF^ PA|(lL5< LMqnt,6MLZ⍨Dއql40OHLDgusEFHA(nj7|(-?:Lt^Zc1Qj`gt؇Xl]7<`.i(h>KN]"УEI'rs9VKK0褃Kn:$}@\ڞZ=#iG'Ίan |tBrO~R 'ņ\ߋvy҂|LY{/pSAm"/E7^>OP~9{,d)?F,bvv8 : >55o{L![agC:[䝷l=6 Υ?J|b'7&ޟTiQ ISu 9l7?JV,RC~̜4;Z"i8rnm% ?OZxeM+-%YuQ`Fv`kLCA_ = Nct)4|=Eǽl'upp eGygn)9HZbX)# y')KTI3sJWG,mAڟnDz$?"|سA=Onz"  +5]znipƐuKړE)sqiܒ1j8]I+!$n&2/|D*$󾑃E/J"bW =aG.]T;ٛڀ"< g.-z\7zޗNVie}DS^y]g蝒O0G?AS+ݖjV(y-ygzILÇYӅ ףr凩䞛WO%C#sUt۲?jЭK%TTMvT h\ESGvo׏̧)U|j@aK`d,2̈́O@$P^33`@ݗ>b $/Ž>l8h\`-=Ơla9w*?g6s "= Zs,8Ѷ [GDE;&L>."?)gMxیbz: /|@w6WFCa4h}p`&rke)p:[z;M~2G4m$J ^ȗEḵw|"K 4P?#w[Wg z{t ҟCN4ceuOȏd?B5׬E]|UDUVjߊc+5Qq|kF]v4~E6JŦ1;-۰O3W}ѬP&DU.R2rkWvQ6TbO~b:ޡBsQ NZgЄ{&)J%!]#C:EÐWbQKrqr,d 9.bӆVqMWX bRZm_Nd-U|h"tfUX ('K߰.uF^|ң6Tjt}PŸKx¦2XԦ.@9V661׆|ZW%ڭO%:=V$QNhCvb؂dG7Dkע:t1#;ѷċ{ ݪohE&-`7$Gb]!?(:ejw{uF *r`2ޤ*zYo/%vIA (餩09=|=(,q{r_=Bbw pr+ ¶J‹еIږx"sd,'B]nZ{DN݀X.t_YsmB8s6)7NUldz (yPP"t^eޠj\g%I4.EЂոs=3]c'\w7bt2t:#''\t&+/97(M1Fp\efXxo~pⴔT;nƭOgM9<'<ƶ,&/(c>?~CKB_aPԛj;~ #>9ꋿjZM!&.ay;ibU;`kXlc b25qlX#h3fXi?fTdUz!%IvdpxͶz'ۆFM77i[Q[歯7* )(+8zi$jN `^Q`{ c,(TcFbxf^J~9DvhF&K>Œ;t7/06#x$5QQ#/179r+FKN>!0y BӃE@_91/95M)N(&_ZZRZYf([+l eSgx[: 3X&oa9ȹfnBQjNjbqBqAjrfbB~RVjrIP>1U#-3'ؿJy) J:foGg8O0v3L^ͪ,Y98'WN7,TZ%$5wU%b ̵9'̸gy"2ڱNf<84ci;y1FrN~qj5BtI~~NRbBqjKjNjzbIB^fN"ɗ$22SRR4:&'KL) rqu vH+MKLO-Ҵebɯ$&KA̞|qoYψ&}x{iVwI N̆ A>IY%Ś @A7_W+b̜l==='r:pyx {Mo${ERRKR6Q 39x[6mvFfs=ɻN^/ d+xT*((Ysr 'xq /6'rL.* w!xz~ , Y޳nVbe,ȵy{ }}7_WTҜʤT<ҢԜ͕5^n_x;q^ ?6p 5Vsx¾]D/471;5-3'!O^S,E_:3lRب i>x:DxȠrE]+)7rԑX+[‘! HxR~M|2FG2NDZu'鱓Aji_pz*^`x:ʨ3 '}Feym]'cDw)G۳]Wt 9xk S}@s_kP_pc_g_hpk&VAnx5rq)s)+8dLVcZ5;7ɗ'L~#^ZRZl \,ᐚ zQt~xKXaW̋Xr78*ofO Ux{8a*KbIG{X7`[mB *xkb!jrr-6+< &xxqf[m9 K,x βl5 = Wx{xf[O/ OJM.ٜ&źy&K}}<ԔĢTԒbĜĔJxBfBAQ~I~r~Nf?iF Gʔrmdvɉ,)ɥy%\ ~a圜ZwO~ˢ-4YRfr<rqNND|Rg"_ E3n'ў7p&/slП" 2xk <ኈg_jjBq~nBn~QBQjAQjqj^IbIfYBf^Jf2YPZzamxyquٓ[Y$2S˭t4ÀL-MCj^ B  x#]f=dW?e%6a8gdn&, /x.3}r3s̲op*LȢUͥYYZP_ZT4J@18O#,3\DhZe&3򊲃4ZsMQ/J-TU=YST::$WWUH+JM)ʦm`hb U*8'r Obu*Myd&rM17]˅]d_^ɋ8L)a*Z吚¥[ x{}| 3sJSRlrK22&c֜y:N&ڒ,6ߐmc3^2'* *˂/WaKlEZ5`ZX+quKjRiL.8Kw^*תWE&9xa$畤敄ed)*hLccVҜA@ۈ43J85'M&Z)Dnn _xvor _|̛Յژ|5&_9$]_kť?y#&zu+]3y7?ge%9W//$3-39$3?95$HA+/YVa !kIGSRSR@%ALM. :y)9Ȇ[iB%Z)x:g8\꒟\ Y5Tm~R<+DXk%Ι~)%): y` EA!09ByBJ~zBQjIbfBIHbP \㥶1O/+6K.[%y`?ݬ9YL>`q<% 0qҼ% )(LPDs~^IQ~N1CfKSg,'2\-ݍ@$f3\}Nz67Sz'esDKbI"'uݘ#~uf&& ~٩i9 93-Oo~~EVW xiT:_h˦d/}ވ/xWQXS)ƲZ2Wgע@-x2eF'Ӄc[,InHDCeF ,xlU&8gpֿzԀt;g-x2e_^W 4񔻿Οz!ś,x n3UU^WùO.x ]WH0Ssҳ +.x9-&p.&jZs A{Uݗ3bmOgGx8]6l5Y7$D+8;.#˓230{OhKx”0!I  x340031QHI,IKI,.N-fݸq7ۢdFh#uIY%zE ޙJ)W(Ip) !RxZq(EZNTbd轒Q7 1nx d0uM,ɴgs6s<#ôA|u~ @ @ڜV 9ZU P Sr~nn~^|pyfIrd0 j  ԡ,"L.?~4#&?dk9kF BHn(a՗֓ws(1nQĴ|r(DUxo_pxf^J~9&U;Nʫeoed,o){|t4f1@:Hi# g(1ߎQbv~ y_Qb"d%7uqLHɩ$?9k ٓTTs6Jlؐi ŔXZ .!xz2=|-'+moX駑Y枀La }} e(d$Vns(DxRJ@6X\ tX{CA[zPɴ]HvK6"}oy Bƒkxnbh"^}?}./mC<D0B9CbMy< s<"݈-&q(1ߡqc Uw%71yLPFms˄X VNJmΪ1Y$byMbYMFsU'fN4]IYp/̡'Rr/o!Qm<(]& V>Z(smW/ՋJ=bץlcHfr9~h!2 NA|gg˲VuiFx9u^OA7'9Pwh9\ v$wJ]ү70 x uNjyɗ?M>΢έ3SXm'_a?9H^a( #PgBHFfBAQjYj^IBBNjbBb^ \Xǥ]_Z⛚WjYs\EL E/x;'uX|¬ 9/0d+䦖d(dOvV<O@S-xee)r\|+IOg9зV,-x9ǟc5E_ y#!}?!oPVln0cXǪb Gxee0ɶKtZ"]|~D=(/8 1/5G/Aڦ@̆OX0b<.iy1ܛY% 7 6~0Zbهc"Exkι!er<*)&MɳYT"#xʹAer0'Cj^ 2Lgp Yx'[`yQ,L?+q((M̦U\RXm5+B_pPjqfUbRNjxf^J~9HsSJjZjBZNb:P8(55J!1̈U(L,N- QW2y?>e5Ox-e?,ʓYm&'ߜVꐚ ix{ys=d,RL kXT~#xcdO^Լ..e hs dx)H|obqcYsbnRQfJ:``dhl3Yur00Ɍ*lE%EyksTg[M~ˬ;YńssJjZjBZNb:P8(55J!1̈U(LT(N- QW2y=uL~+X; 9 l8x{$O|f5=4'x'>o',Y'f٬Z4Cj^  x340031QHI,IKI,.N-f]fȆo&-dQ\R_0E^ݯmolU$6xuKAgbVcⱒZ`QT<A b<>F5Z]RXyYS|7v(1Q3fQB!B@G{ +gGw~W֡p"#όh)k02 Zlo}k(+dC'X ^}ߔC:#kdxkm.ζ `AR(/ L`Ia(hB8[עK>n,Ϻky6$D*0!.\IУumeMGl!L1Fc`c0`?IRP~uEө ZE}l8*"Cc-Č:"*sQ \njZpx0`_ "GormPrivatePonke@ $@x[8~y$r7)KH4[xT:_h˦d/Y/x!$߳b΅\#| 8(&/xAD' jȈѢyY #D}UȚ~K(kVC慗j!w)I:J-<w\?o^v.ɂU ћ=! }Z)r5. D7&zr&Mn' c"D ,}t;* 5ZxhnVu`>$ouH^ݖJ)"Ә!q6.UJptf |' &4U UUOLzlhJ'|h!9dڨk5֐kr^Em3:ER !ͬ¼>d WĮ@^3o-`uK3ٝQm*fž,klw0oF( e.,[%aY2,fOT#iMxN0G1ς;%Q'QtsMcu4W\ͼR = 6$ZE<":O:?㧸{KZ-H;"AʓedG݆4 )}.:0,mVl>|~ GGʱV9Ģq헡NվɃݼ%w#: VY;XlEgn0j17BzYX"WIxicrmŻ+qL{5gȘ96_G?IrkJNAW/*\!ne/ܛjzxN42$jڈ2!pfaQyòڦ'>$$ܫn R84:,;Cj:6Xd RmMo=>b\VԋY0B+E]x`P \=d֒i53<- GcayfV<덐x߯ǟJfw"B2 .lO E{{xX80idyⱲx#aV)̃Azt>c#x,<"Eu$Y~8mtl{'Z™uYpdd!e}A; ә-Z݌v%RR(֧+}G2*8XJ'K2s;.dODCoD+eX$JN'#c<-9!]tI21+G$$UK;થ%7U" U,mid5m 4٧|&fZ˨uH]9ي䎛|m _JʙhkǼ򵑗[;<[ v&U]v}n&Ipzr|n9V#`~d8ѕ&p#7sqt8;HJ(ƼEB"Gomdډh*GV3Q2QuQAM11Eڎ~ج8ONX;ZKF{kWUd d;VXhn:.!%F2]وSiui8ͻƪ݌L>Is}6mW>qP0e)䧺n)硵z!7{=%w2 M'QZ!anߵL7EBU{'] o^ֻ9Nl祌mL Gh/}Kӡ_@/b6ﴛWqtp*W)yT.,_𪃿 t7$_|ces:eY|5mODY캒ؑJ"> }5G{4ixi:$呯`;#=!R/ooq[h{W-yܤ-loZ[Cp#2ŨP(e0Q ;0XqThiC)={M9 $ye.p" 9Rsnh,HfW =71Dyij>]'9tGcBۤvYQ?J~l֤..". '[~:unxD"OӔ3)ao&*`<| vx:<K8X=~He U&<_')/po`ON3E(Ly>ym"sx >)RmbثwixIr'[eX9V:.:G ӓ5Ίi #WcO5n>WCgdY*TPL;ɟR6r<֪Me=N==8/Γ1 q$D~C7n8ȟ嵻ـbo@F4_@;e<Ź믒qr,#x^gM7x "8.2/O`S"6. &Uf| )#U3yjw{sx_9\UtK+Y'v@]Iyߞ 2o; 9,j<W}Z)y.yz9(꠭֠pGE]PF|1 /$p3( |ij؈^&(@0B0#XŀZ% ESlx340031QHI,IKI,.N-fxhEhtN:.?)+5X/=(alS6ZFMN1`A @BxV[peKڤims-IRTM.BhCH, =^]xg'̦ x v{J#nΤ3cD9(߄~KSF'aKuծoi^8Do/Ϯ6ve'6Įxǵ0;=&D# ;"waPA{Po ^ٽPI4t"U_ӿ -Ɓ^b%A <CԃI=N=|$[o?b]UmRv0։QHgM=XTb 8=Q#w3lJKiTҖp=&7"u4Ȗ"6N^"XBc{)Md4c[E聴0D}i!^\]//"$کN!'| ݐd+FC&񺷦TwF3Zð\]ojp}%aVLL"I3hg0T1ks";P2ps:* :{z&h@9'ƙ@г#}L#>I/ OIdG!,8H` L3 K`H \$0?n 9e>`Cկ!/4=pzl:7>hp klI B)W庢}/pS($^0 \\HJ]WTAN_WRаtD_lb'36Y$_cdx340031QHI,IKI,.N-fHk<=S̞n .o<r.?)+5X/=(AM' [n]{(z"MLxuVkPUݐ@ a Ҋ*/Zh/!4$ӂJUKZ[Yq8/k{R2rη|{hJWoDu4y.K8$w1XorT>hQr"K7Hdnf#X:KE\"aG6/?3|62J#N)=5"k*^4u*2֍[^OD*i۝NA2%#yG]>#y2%̋%`kt)7rIk"k,=b#xl29mx> ;ya T[> zB"AP_!N6fac[.WiLzWd\@ OYX`!4;zK!*⹂\Exuu5u-GJķ%zb"3EzڙSTr[p<ѵ};^,"cN%ґwOΊY7ۂټX⟶ 2=U,;3rfhM6D>Q;u'+!7d7vv[$mol+'O>K"K"k}j72S k=)MAtT7vnlnʴ"om+jO͔j]4E`Ja8gqkq#<<|(9|Exf4W@XEߑc#_:5YM<;3מJ&cѴ4b4t~&|k8Ǟb H`cqR *Se֗26*V |M OQN:Aoxqp8o88E`wTqp3j9z=A`buǾ`: bIHœ"GI|gOj>ſ!gbd]eBK\ q[(`>Ȧ,W~))vBu}Kh\i}OJ"ISx340031QHI,IKI,.N-f`hr__ں{!D]~RVjrI^z~Q.B:bqڨp|!r.x7_o(mT̸`effF.ng~1ng. өf0FHV]d?V@ 'dSȪP Sr~nn~^|pyfIrZr{**TNdgY11~ԊԜԜ,dCY'ؼ5c~-y%6/ar0JL;(9dc~ɿ8S/5y*?,x0g+rF\~ JLyPp !&L`Q l|p|7 E02M.N{홰2#d.Q3= 'lڐb Fb F{p煄Y* A/>u}kP>fYX/GZmc=X $$f++%֐J ІME"%˥}Fp_/WrwN {ZUbxǝ/NFE"rC_c0gj c 3VclT.ZKxIN/.Q>d|x'>D|bnѨU\7 jD^cY~TՂ>&zcҨTDx.~-9erIzmmV](6 }NLeOZpuG} :@瀪CL%8[t̕KXD|Dk%"0{,O`U2IP@+Ya۩epWzi2AnEC m 3tEOͅ'u+:o+œ]?޾tkomV`pGbOi8<ջ6lnaN|=}O̭`Ȣr"\R `N&CbEHGHw//N֪UCo-rRss>\p9eˋjg:RXhVz r ps Fݫl53V8󛦖fK  k8| n:4b3 >ӰyMW3#g}6slhՉVy;?4c,=>BU=) ~Ω- $U8eàx340031QHI,IKI,.N-fXnɯbV֕1mQ\R_ UвJ텟K?M cɪfxuoTƏsc')c9ך&act#2 YmV2Ҧ11.+iH . MǷH%_k$Ŋ8>,딭% x~ Y8C:|$.#1|U^s1zLƦ.ESSV/OPS 8"sC+}qdBMD?Giq06aCJj}QonJQ^n߇lI kfE; f-Ic='06߁":I`Љjj3!SօX}M~Шڠ늵R :3)8/M"8~% CpHvz4'^~D o+z406ՑTm4vZwݏ엞XĿ/^ez̈X+pN޻Պ@nV #$AI̐ hHˍ3P*6n8b6LME&&vbb L)x. )M*TRs! *iڄj+~L3JԲA+L|"A)x340031QHI,IKI,.N-fy`;e7En^meQ\R_˰+.4BJe…_/ Imx}{|f$3qI6!RY0ba6t.[[qGT}DJߵվlkUZO?;#cn>ov{ݻsv?ݞe +"p`)^w ׫2d܍owѐ _:#J)iu*ssO*e``~ג?5jEuŜ}hd0OSYF^XP;420^HsLO@Z ۼS)rч|1QWbMXd O5Π^k۠6 lq\7@xZ7F'"TNׅ1M6P8mLսnĔY F 茹Y &8"0R:wWU&]R/p![P1M.Bwrn-D\EЅe8CzGK4maŸ1:P57\lVVlPX 2-9I߯񋽸@ q҄3oQ.QGK UVЇ)FG-[IU3s܍/,@\o4x96~b!B,2r*# πI $L$Y.gfb\]W1Z27Kgܖta L::i,\ˉu4 56c',Z&T>D$++uzƄz[mFT΁GB3:w4Iz5+j{6#/ RtͶހ/~G!m{FA>Y_hjt|7aϤGO2]N8wF"Q8>뒅.:}gl$"9|5,* ۖ|Zzz YܳH ,rDt,  K^8cn. OREx)$96I>! JLxEhjE8K8%#I<Hcz>?c#bQd&=g^%z?gsWUHng~hl$3s' $0%+R~Mi& 1oH-Y&~dz7\{nh6; `,8fx]4,1ۢͶx.OҔhŸHpgRǸ YJ8W#5M߉\(x/G$/84 5a:3N[ 9=rxjT:_h˦d/x'[өAxy;TEţ!.Ml]!̓~KmNH$9_Γ5e3zxH< _D>Xm|100644 inspectors.mqQ) ǴA\w"!DVx:K$M^갂ֳv/'C6V3=k}"4:Hx:5`9m^: OXa"2Hx:iZBur+᪕ WRcIdql6kv Рx340031QHI,IKI,.N-f4#[w[]J ~I+,~B'e&2}t>Ϛ# by]YeToxOAgm-mVV-*T( ]COHZɓ=h<ęݶ1f_;}yfwvhDi0514\Mu z&+UܐN~B@ Ax0&[R!͂JY^\.NƱYiB JK ߈OA#D<|\5יE ]9E،pRC(.UDAI ؂_ܫ9UUI.čf"Lr OIEaҌ] sI74^4;Y={6;0Fo/&u?æTC[@,O:ulSzAo;TgЁ[qxS3tZ!¨Kv'!te>ih,˅mDͮ-]_;* 㸃 wP,kkf銓tneIlV`$xIzk RVA[ѶA>Pk~+ /t㻦.RyJhB{ie;sKԮnxv>GY~}!i[ae aL~T$cIit|/%U`Ĉbq +_KM>D}e8i˒0 טg @uxǁ@ &"Sɝbtͼ|22S;]sK]‡6ZH fRiP vmotj1>Y&8m0JY9b4K`Zb.gI,S4 v7̛#psD,m_'ltx;lvtͶ|l%x340031QHI,IKI,.N-f + K˭U:#ݺxYw]![#+:Є^w&i #k{Uu(ӴGڔpvd;#͹;;s}S,0)fS:g V{*h#h O餙2F^/2h* ғYZVf:2a3&M}l7!5U4sأ]شlY5Y CBeiRihxGҏjcT^*.ˆ;#!"/$N d^ӭϵYkgrb1#a(v#փ-Jj'\36>1h-7bLJiQZ369M}Xϝ-#S#/2[e}"*5B նm څD̆K N|S/":- X.rOr8 \gJW9 Ay1'`aM^UbBЭfͅ3?^2MVME69k3O҆c0/v }n_'2x`.M` z>Po-wO\ ox+d)!TBb!H۴r I3gR< 1#gm&ŌOB&GF\9i"*}xhu]pJQ>ɟC]֓'_Z '?/[7X/P'򌶫g^ܢc:k<ǃUtO'KeJL) S5ˠ3.2ggW.C&Pk\U?;XYt3u+ e%tӳ92$ XY|A_Uaa ),N7XAJ¼~[I֙8^rGG~j%ObݓN*%9Dzsn~VT_-Ey /N`Z4淲FRiX Y ׬5Egϯ1 Zzo~@rƤ+cu5 `qWBDΙ:^fC^a[5NOmG?&wbH1U yl0| 1~yKcq=P*'HA1W;NίQi7|>M4s}~'(^:ȯ~`E&ycPzՆΜsƆw8AĻH#H G$'$BD)"`|E4Hj {A-S~y8rDjy,`)b?f+i WS%9|LW̓#Qyx($H1- ^k}q CG?AWJOP(SF9?G8wʂ_ף2U/\FVlj xyPcC,-9vCwx340031QHI,IKI,.N-fxe}ّĝJvzc.3/-"Xqiv_U\R_pfl.^?W:-hx'x(FquFen' 1ng0s )`$<91QB $!6c ӷ ʟ2()ٜ 3#dX'/>d'd91Fɦ`/`1>WX(qnn`ܱG#}'& JJ p ]NXz(a(g+(d3P{afŞP?Mb &Xid?91YS\*/0y \9\bJ+]>x340031QHI,IKI,.N-f(5)O:-w}[^0]8!D]~RVjrI^z~Q.ƃ >OUϩq !~x}YpSeǿYڴdڔNRAK-EPY-i 46A\zTDqA8ËO8ƛ3>KB[n|w~sNΗ|YW&Ŏ (.\ßiq޻(Q/XpZ0n* &UN9;9ʧúks3ymxم 3b>aKs8,Kûme ^ ^WyU ፲;Ss6p fi3 t C5 elp.m*f_!\BA\Xx6UQL k*O|௕ny,Y~7BiSq=K ;7l Ke'Vn.qxq0n5pmrh5No`O?w;TkdžwxߤsDeIҔ̍岃C|rW(J@BB8)Tx 6jABl2\O ᙆȚk/n+5 ,uKλY++[qZjQ)KXak,*zMZ9lGYq>-F|Iށ<֤JJ; [\Xn.y*-[eJlƩ CCsBRȾb8+UŐrpN=2ȈȊwZ`2ŬN<{Gؗ{p%Bq1BIqc`#CT21aRdFI7b!6}=^=+^cHU!],-;>%ubLɰl-]Z$Sx7eN]q֛;,ReK=.cL*? R<<)# V-Ex.3%j|Ex.v|ž . F>z(+_َ)PWu/y:%ٯ."5dm# Y3op{(^93F:fҹ8~ /D-~$Q xR ,SXt'p9y&M`QvOSR2K226O`a",?/wr_ppIQf^[Q~sNbqFttbDBJbIsjNNB2H*VzCgsO>6yd%q*^jNnR*-_P_ 4X2Dor''*@>x?ݥRk!N*Փo} !G%-}/L =(*asQxT:_h˦d/jD/xRH*ޙF|% 5dDb}nnK fWfao=opnq"&`x}?9\$M(z߂ '7_pVJ=x99Urz邏bQ vj4Bz,trN~ؓx340031QHI,IKI,.N-fx`ySkksM;'o!D]~RVjrI^z~Q.C3 z3Ӑ\4KxuW |wIwsoBۅK I`#,#hlH dc\M-ڕ-m Ѓji%ՊD^dI~}79{ wf7̡'TAAJ@ #pH/g 5$qAΧVmaܸZX*0˴Ly J,u[Γh=ctDGt˜tB N8h.5ȵ4̡*C`z-et9#t;gj Rt6k'l.4at.tyj\-Υׁl-%MpܺrBs@ZnŢ@[ llkUDN𴽐,˶31Ц~ma}c܍pޓ(v(nEY: C\";lOh\tŪqIDV0Q?6%9/.6_+3e):UecR٨Sr=ή[8xPdM,:(.k#Zu(vެx|q:f8>o` tdf+S[MW wlΪuܢnjMk] n#`zakvYC> 1n{՘|ut 97jQx=WpJoM rަQ`uU︢:*"md~ tVſ(9bE2"%L_\ lc'Xp$s䓰2ixNWy=^XP(7TC!%:*aAO}VW=^peC)%K5!4C␈\@4$S *= 1IDb6ižD7Xt %b̺6=թD2D2a}3LqLbVȚ Lf366ȇ%;%b*F6+1-BTxR}XJ-{_+) n- /Hjϔ .ܵhd02Hߐ#*@tBD!8*F&G%kЫxljCJpTʄnPxrD"G쵕ʀޝVd̓I rhZţ1܀v')̍ȸMKED(] -vq\ ,֗x340031QHI,IKI,.N-fPJ 5ͨj[jR !RKrgjY5tesHv;RQ&xVKSFl#$Yl  xS%Br2UK[9(d+dz*oFwJ:6Nuux짬r/"ц4j;d7z>YIɦsS6Za[N|S#K/ eWR]ǰFb M$S7g+$!CrvN5Wߡ5՝]ۡluAXZu]njցTXbܘyf^FzĥM,@FI!Zum a*imȉcL!^c۱6L":\'Br!TgT,p5$K AV&hI7հ9`X#y]79UYq@(@P4d1z(~5T7u"fNщAF,ZyA`Cg/bJ-3eʢ8&gcf*Jd\瘛P=mF c74L 62Zy~޻.Ҭ']F\u馨"0L♨ۦ/A`Chmkq~ܨ1ce#+?AC܇npCFd^g*BǍ>OqX`X>>D`2n՗MOy9w;Lɼb +Ϥu3"pz0^pyx.gigݒ=G3Kf#(S'R`)^Zɉm}nx%"&QIoRV_) . PcHɒ’u/r={&[ jԪwwZu?(QQ"wr%?eVeo?Q iM*ae_Tl/KtX9F$z/fݠd}qJO?-Ǐ[딵 stsBXd ba>PoQ3_xߍ|_#*E{(TPBJ4 5eL1=OW=`;1 |;Kaf%hpQa6*rx,ӰO6{k',U3aMQ)ҟzx340031QHI,IKI,.N-fjKO͆r׭^1.?)+5X/=(ܷt!tsx}U tU4i6MIӦ-I[O -i(XJ)P) KKHUTT@E'B6Q+ .dɑ静ޝN) =HB~\h<D'PG9oq)/U5++!/"Ar9;d ~ ;_&8 :X0DH,=dK0OB&Qxb:7fS7S ?V$P< r 2G_xQ5惡cx75Kf1-G?4l 0ӹKF[#`w[X(ZN*G.֧')}*kio9A&nFZyY {(>ˌJn=lbKdեA 50=5˻Y];1Z/JͶz~6e\Y ]}ߏrh]OE{*h,VQWRSqO*|FH7< rN?59`9v1.D٥bc]z|ϕ#l f9tKI+4/2vHKErA)'}Fpk{(a S-d "ha|` #KvD` ?Sϭoam:JZ=2]dw-lyMW8kc-!'v:r2Jҩ,ZH 7A-?lUx340031QHI,IKI,.N-f8}Gݤ]=!D]~RVjrI^z~Q.hR3,>x΂ X"xY{wG]I~H-۱;&(ikHJG66ҮV[0u !0}A-P8|zo?3;ZiDnv̽;{R桪j%ohioإ\2"lFϥMRuCd+'E J g5K=o馡Vdaҗ6)3ena&:BQ̓$E,4fTYd=+}X6]/eZlD>:KOnX%BFc6}_L$YbcQ_؛TTnjtg-]Jk֊\#/Ř}@i"WS(ts%uMcҲ\>.r,LnW._,"m1>W j *튥D\~,Ln79'ۖF7 ^܆2SY; }\ER#.~g B B\ q>jϽ6NWV9[[eȉGML{;z|IaD7"1ciXhJ )|TJlqYWwJ +%%SVDw+WM\M($Wl=3DIMH{Վv3:&~_K0%/Z0WIRgk^Nznfe-DN(G點6&c!wpƅ~2>ȐVX]gٲbg~wo}h} >kT>`}EǴyvݍv}6u'賌E>ulM eKҁ6&Ni1M: ꘪvwegf7FM,@3Ѥx4)/axJ9BjYZQ-cyjV`ew܀_4 ^˳^sM볘b B=Z@Ls"?!_b=='L1Q fkG~bY.\l {ݞ5I)NDW`&ߣ̿Fщ^w+i>i (/j[ͺ'_'ߤR^w2or2F|4j :uparhH6Nīˏ]wwbA}| _`'*H5yg}`g Vd{In= ÅNIHZ`㟔$yݭ$eH$=,3|B *<)CtʐzԿRC!C_ = _锡1sc1Cr\ԊjDV-Z̳ܽk'vliC FSh\!t(  Hr7n!XQh`_ʦkU,ja 1a=O@&,CVn un'6Mc/n&t#0BMFiH(3\(:nEnk7""'"'LWj:ցuZ7ЁaͰ* $Z_v~D =OaTF_)ӣ Ee<cUtPO|S9FLz,7*M[`/\E63| ; |˷ڍڣۿGpl7m}Nڧo  )a]όXt$awfO$7!J->;rUO';8=N3luU`LlJ*jVk8zMnq۴u CC(xAQ"3(F T"?JJ+&OKLp ~<̾(Qϙ:K A1w~:/3x O Y-.jD@qGF5>_ꗋL2lz ˕rxѼ} 9_߀ cMD h-8CCR: _nwp,Ƕ^ x340031QHI,IKI,.N-f鋌Q-qkP{'76OJM.)K/evFyȻXl=fb?V LxU[PU>lf,VlH"5VƆlҖzjgKg]:ハ:}A}E|qsvIt49s;g[g~ľ=зc(ޅr''0-7"?} ϰAf&mh=C.)dʻ/JprRܬ(dV>wiCգ= B6QU q/?pvE=ZN5Jcn~*LbMkRpsNJkOj~|l/wgҚ2Ump\xP1lFxܬ{l =}$u'LLN6ft%>6[oHSԋ"NWV%R2G¦返HJǑ^rL޸U-k&6&66 65t~ẘ^,z0Y"G_șJJ9iCAZ4G]/+&y3uX'.ܜ^7sD_d2u̓oOG D:ANN/*&< 3DbQz= v^[|3S8iɰjQ 6 .ZT[ <^5DkeP﬉Aħҩ\ITge[* x%z&MV(x oPM)"`[Zۄ,BuG6 ]i3B$6Ѫw]}~}O ~ryU**{I7Z0=Ae'h\_x{ɶmB~W~I)ͱف\ɡ zNq& '_l#H`+b+Uk)lرtC'YGz TxwoCӛEAT![d\d6?gbdʊB66\( s]abr?2o$LfC')njphYKÓw+(on;&hà U6\dwA 7\xhtՅ7[3n`ٰcC'ԝ@)xocF͛ M#xxnrN,lZ Z+51`B#F W'l@]} '1<]u!KuEmwl(+(~XxmTn6}WLk۴@JYDHJR|}P +ϜˌaiG pSh<y u&%4)sbJ̹d*)LhF63PHH -])q,@:Nzc 2rSLǴ\,+S7Ӳ@W/u?N?BS]gn(nE$gWz|g?x ֜QsUg6Bx1aGs7a>;{bx[Ƽy7#dF7sP'_O?0נ`O?[ xPj@Ic>ɋnyWm$甧ELY,P>xս.܄Q< 5Ӊ޽p5I{Jl^e-y2m@!::p`+LsYhnW]ݳ7ʆn%C{oDK)2௧uhx{<ǿr(DQ'N8%0|m˾ھ,C+ED) tQkt9rD|ޟ551 bsA`Mޕ2ɳG#( rw0n2'ID ܏g-` 봛״;Ō̢lm8m^c' 1<-˟ͅ0p  X0^֚nv/791 KПȄyb2Ak8%xs<hZȂ|A GV߭nU~ "_\ JF\>g B'DDL0m[0;GW5 ~a8lL( (oh+.BES/)CV:#`:^\' jgxkXEk7%tWNeAmA<H0X@A+c|U:WQfs1temWa /_aVE!46*OBTxLF0fMοtM*f9^DCDf6EƄִnf~qǚY- jTؖ5TVl"/PC#g!@2`G<&wԍTM,2 E!̆hJ\̗L4# fX^/oGYBCle3']H/8l_:#ma.'zlλsx f>s2q SABCUG6;C)jn0kRXF޵>` Y\#\X0~-sչ\{3[\X9b2 n\M)JAgvzi!15vh/%axV_4= -lE9AaK~D S9bMbD2ކCOOZ(:)k޺ dQGib.)C!ġ[ӢS,o;ϣKDIf:qAėަ"v)8 0`.g4(H, &Oԉu)g4*9(i(`' H7HZsf0RY1 39Ӱ0籷g ݎ`[)ˉmH)Y&hЂSj;(T]7>L^J9C@n5mZ&?*]'yd,\g%h[G{_Pmo>P(Df/ J qn02 [[;I\9 }*2U9qEA:){C{.++|8>G% p'-Uaɀer'_@fVcIMnDCFv~Y3~JҼB)MtqAb>Vr軕, SF퇛6iiT7CeZZJpWjp@ȉv{S#JAۻvohW 񷎖7?3t7X(؉aD_KOx C6[ FQO.-`h:Єx޶Z.&HClE2=|ΩiYwU"ia|L*5"mcR>yK1>h_zik:3НE,}lsxFc {7/>&o\ tZnFҙ#a>`3FBg?ˑ,6R0& 'M"''5n/2@K[_ &!pRf܃{S%shy7]4_,IxSdpiGaZB90|p;p8hwMV=ˇE!`kE"u8؍BRz4d/2?LzSէ' ob]ֺnGO8.13*͋,͚sӺzhk_hwj0VvE Dq*_"#ނnfkGX8|0dJJL5:p(nY񪕧B\/'͈#E'MuL~ӧeIwu"40܊#YP`n.V̡YULaXlI%vEȶF2~70&^,SWnltfpH,?h?<OJI,ʢYcStn+aR2 GdMW=+}s?dN#UTy')%ov!djdN#u !?yKL}TP_ruH{k)$Zks{(x4&a5xEYomL=X<;Yq `dש9u\8RB ϥ U9^{[PS x!##Y0ь\|L xS0x9##[W8[>B0o 3Њu"a>ɞGx8##[SK)7I4,os8&{ eI“hFx9##[655n[DU9o~kφ Yj$,e Gx!##$S[`?$[  %/x[PyBHȂ7#])UCa+x!##ACUj^G8H 9/ӳ  /xW##[,a YLgq Ro߹~U[O Ir *zK5&waA˅?㸉%u9o2t$ex ##[2Mf] JWoiow;Ǎe&s5lB@L!~$W2quP@ üTo]ͣ8[%ѓm;66Ȕʳv 捣];x4MK h+Is`?wӕؓje0 R秥It.3!C\TxEv60w a  O2zaþZBč"+v9wy Wx=1JCA@^ aHSy?lv7 rBD6D)j7|7v\={˗^9[Lj4n?FFߕ2]+XxXeB?&o`'yo) xBhats [self!> J))]s*dest+YA/D.GRx.b_ppIQf^frNbqq^bnd^!BgXtuJK JJ2S2R2 )Ez ZŵًRKJ7?\d_ 271/1=HA+gR/ر@Y6vs&Ml*+~'LQeR: jds̓MzT #Ztm><9$X62E&3RQ r J^SlYcpFIFj>؛:pN^af% dNs7f oy; nD%x}8sC L Km氒ŷ2d;* 'vnǶ9]e }xkVjTبysε?MN,˹O+d}j|Me_!5/KHfqCOxkT8!!vj&gm89Rbeӊ߳>b,ȩ¸yI}9ف̒K٩\ߖ2NN39g2[9 &PtGA`X 3grqZfww\E` R_$3`-)ͱ8f̌5ϰgprt7S8ThgEgm<l*Yeg%ܸ@G[ydX(HxU`THM؈ v6!oD:>&> sN(j^^yR+a$-r1ljْux[ri & l6j9!iBsN>o}9#"+&'99w$V vIM*MOpP,.-H-rI,.VRPub%bh2HN47jO2 xuQ gr'_R٬˸4yoM%V BTx;2EaCb943BxJ_AMKKElIRk,5݅`}@kq}xՕ\ط \MY0_ .Rx-л (G$9ި < Oܾއq'*:R 'x{r 7/2^?<a^oˣ&4ynOνkMeӜ|k&7|lK R2Sc834@2 y9\ BA/'?]A-4/E!Q!%1/='3/]q뺛nL^}҇Pާl.z.^Kf6xR 7~ؘQ61(51R!$19#5EG!%?OD!)$#*Yǥ$24&7N91Q0?)+5 D(J-)-ʳj"$Z's(m>!]37WTV3N^Ktz#F͝^r2kM\:k&-_6$%榆$&*dVn.s6VFs<f:ur39&9=w/`wd)hDOwaUkrWZ3'/|o&n)F.f- fO#v]L,џKwB3 ,Qx;b-9 Yu-fd.Uɨ1P) kzx-TlCd7Sx$gؕSR2ӸT06l xn>Ka,n<# ox[P{ɏG+@__~IfZfrbIf~sj^IjV^5BM^B46 )i9%^LX6g3N6Y@01U#?)+5Xzm%2ӋBzřUz)% ֛:po9;x{ZkC?L6?eNQx{8s_]E+@+'dr, BqeqIjgnbzjPHCs& =YdLx{٘ɣ__f %xkDËx5|/df73'{Ѡ3HC^?L ߢؕOt@W:GNw߬:gA#\>=59.A/Q+A\Ȋ0N.͌jJ7z<5;^}F ^7ٮrm* '[L$djJ7,`lg6#l#a۔87,)i [* wb>e@ONX (ypkt zzJ\ @XZ_T`19IUp &kҜԢ Cj^ 2LNix;m/le8Nmf?X#!xk˸x+ㆻ̛Y:pY#LxG;U6Z/rgʟ8100644 IBPalette.mZgG&$/tq7}2ISx(E|͚,Zy)\ ~驜Zyw78p)4.Sox+Mv$n ((/H-*,.q+ .)K/vIu/MgF4h`ҼT$+4rS!6Լ..-;\xxrC%,y)\@g9 xKaW̋Xr7\ggן12?D)VV_K SRSSJ3RAT4T`7>bļJ< ?3?XOOos,U&r LVT_Ud'=cT""1\{6K`~:k2x)nC#<3&9Q"qsI9͝#(Hl2x8nf _$R!lgx @rM/Y(B8x;(]93-/%5m7el>ف]r?4^Լ..e p@x{yd^Լ..e j1x.o!ɿ9'ǰeŚ&6yd'7G.}}TԴҜ4ĜĔJPmfFRifNIf^@bNjIIj(be닭 |SJ Jt8(n_E9?(?1H*13/KbI"BX5/3'zr {&ߕSP/'?]A HVAAIM҆Wg\T9Rzb̪@c RJ*}2K܊sK2ҋ2sRr'k%Mֱ\4~CVmNOk}3E沛:p0,cx[w'c",3E5sr2S˭+9AD$(5sI\R-8M`t)%?wSx-}C OYfjBZQbnj#3% kx|i64Fc$oxH Ǔ11/*#} m Ouch Default#"Xx;̵cBƉ\ eY$60}`ꐚ' 8xkmJVQ̜Ԓ \ԼɳYR3RSsr6b8G3~N{.}}Ғ̜̒J===.] 'MnTмT+ ̼t-ʹ̜ԼɌR1Fx!pgɉ}VDb=x{SsC-;gtJ~rinj^uʒ 皒Y_dP ?Ohx[QrhA͏uD+@+'dBuɁB %Dl'; o)ޯRlCx;^pbͬN*Ex{Z[ᱹ~tqjNBq~i^g^qAjrI~sNbq_bnj5W-Cj^  =x-f{, @0WLnCq j$x*k0N^/h'\W`eo~"xe 96x{u1}2qoVúQ~ ox ,mX1ox;%L~C#5%$5?)+5Dz'NeQ[ r-dEq F.L@NX{5/!?yo5[ 7 /KҌDUiQ5O (\Y b?9p.ܕũ9i\\Y% S]x},ӆ̛3W{ GG;)&Q oKMq8n ~rgHlS %BW,zxųgCj^ 2LK\Yk?xkN;6Aq~ue# x31Լb݆s';BC}g3$I[bHH|o JJsY:'XͨQc RZT[X&pb +_|%$!N,2Ul>Rch``fbʠS=?Kv *x2e.ȫa*ByK wXeM3ّ u,x8Wep@K)5\}iVHd NpQOFx2e_sTYr,9ϼ]LMfAF>F@ ,xQhh{8Cv""rI|3N3a-zN/OaA{޻?Fz#- 1C4ݍ6cPIh{r|fABUAi-p&~" BԋQbJ_s@Cti%'<֔-dt/{8 CND&$(Jߞ,fne>":[!H|lv#sl8(+P ߎfxerv毦W) p6G@}`(Qt O˅mdnV!8ߪ4`SVyּ- o1?f'e[lS#{2dLdXIIxuE s&iOvR}}ₜJT<ԼRJ="-<R=b iJN,-NUH/RJ-/*QP661LӈNM,IMQ(.-H-k`kY vLԊXk.ZZ\k 3b؄S `Z;̗!~fd.Wg*I:[>*ҡ-Bgꉤ2Cah#J'?Itr6Jn6gYD.G+TNzx0L\eE-/8f!JpB)*PRBG.ђix3yg2=A#&EfNʰE #/qL]<@zٿl&XS>4.]_x340031QHI,IKI,.N-f]fȆo&-dQ\R_Ls}ISZ7O*R=hYxU[pUKs$ͥI6mMg[ Dn)Z.%)I(7 H}dɷ/3/>mlNw;O6B֬⹹{xq{dwx=:qÇ84{5af% <9"եbY0øpy;G %F& b>džvN|A@ꀇ.\)Ħ$1~Αɦ)dEqC7 J5Γɦ.VR01wKp`yw'߻< [ f競@tXzt`+_y֬Y;a1" Rx4^sE] {W#koX2C/قfqjt< wY~w~{wFcx /Aw3zT<`9K׀/!dZ@60R@KSUb#$YuT exĖlc "vܩ3fDsFRr\ W} 6]z;;ٯ׳|oaΗ-Tw ~rNAw(8qrzȷ[pSTBީ;gqgvwwvRd G)?q_ˆ (.Jؽ,?w]/~^jabA&B E"Z(*V[ PdiJs=Q"m$mkMqCq),S~VECiwcӰ=vɈ0Q#7ϥ˥R!_oi<>2k]*j#R# 82p8WL3p  P5l#=cBg4:cm҇F>!}'0KH ǢM5 ,r[,E>G4;F,i#4$8F{."2*KO _N xx۔*~f%܀̲Ē,6Li ~>Jٙy y)  y EyV@_ppIP[Q~nPjrD%) Դɖ*Qiͥd(dO|@Lqu&Ql'ߒOеB:?ܩہvG\|}*6i(փ6旖}<100644 main.mA'Qˋϊ p#o$"&hx *^_PA7F*x#i (߳[֜~4}0 $s1xkdod$"ds?z'lVdb1g7oƗ\SCs㙕Ax340031QHI,IKI,.N-f>cY[3lV@3b!D]~RVjrI^z~Q.۲I wI֥IAߦ $xXKsEI~H!۱!bBv&$z;X-11DҪu\Ņ@m@'j U\Bq/rTT|uL27,:H2F0*Fi5 ׷c`evpU!5$Y)^77ʩm2K21+c{:MooYf1]ж2 ] ;|QW }:6dATIg& md3Ysl; $x$MBҶS d8YhidGXj k7="j*%(閔tӜY,8t1ff9_/I&(%NxΧQcSCm[a EnqdQ1(1,R=kAmrh,9OqhvT7 |D%adE|zd$ύ໪薑c'TR4@Tx/>_"[}à%a(YHNaO..Lqòjn5 4/] (^)yW xKSD4,4G@J~O-?#k)GAu0/ES߈r8L`rNׁugY1C׷ sJHk\ Ldۿ+P85@OHo]3|C]plȝ;-6+79wjk#sQk7Zy*a.]RI,]w-~ucx>.1y>Ӫa[g[[WjG$!V'p=$/Ty|nTCH1 fI0cl9hT%cX/2; *Q(ZoYWQ <)l:`LJ RaDcg օ!{9,% kL y&F!Q2ASGH?_cq*VJl_,<hȹ#8*y呯H"A#pǏ6{&w(8aM4^sឿluPb%$}jκ>Cx:ΖP/P0'vR)Y0x^[S51!yU!gMU'6Jx#ΖP/Pv"_TMp!V-5`x6cٻ$\x*aW:[Wݴ"Fx:ثկ ճ{ #b&^QF"|-HxvV/#;ah}ZEȓ;mj&> . tb{mYy̍#컩mgD0Fڬhbٳk5Pw 7ָRa3"J<x{}YfBFG^b{g>& )x{>![OdՏOe}c dF/xpiRpXl- yd>-YL ~ /e+E&?6c%D!t{ 100644 main.mr-'ӖJG 0K/H~xH%=y}w+;ܴ ؟8V߽'PLJ7tr-8-s]6G޲@No'v!F惕T8 !?5GYr2JT\UO_h8M&"R,XCfo'gaBB^|!9|b-"'k(vz #ʛWu:F:+ ћSB/S>$1i~@s#3 _u*{dF& CTѬvD9ZL5V`i~4o%mbTG.^bq)|rq~ Wf<M2Mh.GY40k k&Hb'WW2_04O+Y1E xXxz";3XgR*tE^ˠeO~ҙ] i8LM@Bts8: INSir"|#D^嘃6S[fM\AR(6#uLh.gm2TszyP_0VTNU?<^bQ (򪾞hTrpҗ UXTǪ1DN'>ghoǏ41-Y 'u@f 9{Xa >KG'bRIl -b=)+J 4VʲJRoCqF)Ydl*(,V`7!C,08L\8pg`Lg8g9v#Yp2bz,+ PXerjYP72(fU_kX=^s\&KdU̪QdP Wv-fvn=&3i28W9CfRxp]l؄Z:]bFh {g$<\6~ZaaP-~cs$8jP]49N&60ͿE6q3 &uU[ne& u3c=G}E(L ,\Us31 &1 42d*H"&$01YodH\>ޛ; oZfVUFecEUy &\Y$9آ.(SPpI-Cu6-6X EdpTzR9a)\ξb.rkU*!V< L1d<4U@OF7AU6DQfds a54^.犻3bv.|%HO h 5b-(ho[n\71Ug+1f\eWS[ר+nCz;2wKdL2Ī>$~`K)R>\ANł_p ݽ_ZX(:2k4s)q]w{7=T^1S=4{{u'!%JP$ <T_RnG: eGwJhl]Ѹ*0RbBW^~H'(Bvu?lR|@ko3 rP<Uն7;ͺř2?79"L46R3úHxѪ)Ft˓r^B: f 樂 h v *QEgݑu| t̗u:4^q I\fL֩vj|*>߬6|ooO V,tD*O0U$4 Tg (|c>SE]!}tJNV(ˡ{R|2xd4=Y$u , ;9(, Zy oDT]50l02L621/79t挌n*FzQm:y't)"0I/Ub}K<UwpuYpk8_{}]k6Ӓ|y5:{侁klh:T7߂[RS̊KCq< tWӡ]Q^ۛ|L-g6dg(52Sи1@ӠP3 xWH {l mA>^A+9^hfT236|.% 1D~ ""/?pX&%7c<?Q|>y;A?LiWˑtt;iѯpGttģWh7tt]çru^3rgo?x"~h)#~ yL G7/ɌAb#DN7z Tlqx{|!y"f'q&xU+DQ{̓ y1r1E1(XzsܼwzY~lmPcᯰT6K;nssNLLnH6;bmHKkwY̼F2u9v{?|ch!HFϣ0ۓؐ=/Ӕv29;˘r2!aiڇ"S6 .kAa5pR0& 6R(|Fʶ8Ot6qm߆p%.xWR5W]MbF) , PsUEtkNu =sL=WӠˡQzgEXh^6gND5x=&"0*ALU'TableC6.,13 qY;Lx1q~Ig'_1 }.ͧ-t +xǸqCbՌ \"K[E_?_!8(?'',3\KA483=/5E!3D!Sg;gCfvx{yFc*f6ǂ̒ͦ,lL]'׳Md,,~P 2x;XmOͿqLqfQPן\'ͣQR69Pb^ͳx'w(1` 7G 0MΝ#bϥB\\y)\@x2eF#{"_zpK *xկUl|sX* s3I-x>6,7= s5 $<100644 main.m){~uh2A4M Lx2eFn׉g*θ{vE9Ҡx340031QHI,IKI,.N-fx`ySkksM;'o!D]~RVjrI^z~Q.{㏺yn|1#m 0sxTy|Tf2I^IdfY:Y$HKZ|Y% ($,CI-&Z "նZ}V*`K[cf[ TE(RoHy?{{s}[R#?,sr9ƺLހ¨l6ҋg¸'ҌENf]ilAf^֊5968> (llJ82TBqKX .-ZF8Tqre2B3~K\\j>|& Uq6yMVK+A> @u> iGT+gy[048}*L({q[eUƃwKeD47Jۥz0;q~tﮊ Fknpn>P&;psczN6\0N976lj]Iwa+؝Kqe{+6vnJw(6EwI5MWl+_5فC4x`7toI&[gWx\s>ʵ=U=x6*Ǣ]=T/. 9x+Sy+y/nNvpYs}=ُ;$mfgcJfC?LH['t % *gNCt?XRy"5Sz/6y8G\9%tiϸ#g,^^u^x6 "}+λsx>#y]wTZ^&\ySvyK\fO-ID+de 60 ^vֱ]ﺈ-p2{g5 k˃vE E[x3fr_BWUeu /Z(& 5o?Yc,E絹Tm߶#X/lS !6+@!,jee[m(>ܙTwSh4T&|3OA㍈n(SIQ%8:!Q3G{$JrD)NI(&Q [yP(I(in%1ƎSx!YHNPh×I2.\Bӓ;ّ̈́DGe E3[Fń8Q4;!'Ql>WN_|+] n.W>'U t@tbd ϛ||`ip?E)\fֿpEWopV "h@ S;U.[[*P44JJ<Q 8(Dww -J%*sfSbGق #WZ`r\yȺ“w O_xW x\U~w-3̒̒$3Y&MڔB.:yeJ i2$!@h :"U*eyT^EH(( (Ȣ -- yfA//{Ⱥ։^|:*? 95%FΒdFG8p01n.5&Ξάn[<`x3gMgr#c!™ҙUMJ wCe]/Ku8{cDG(R#o c}k}[C;8Ce#̍Cig1:ȱɨU6 |} f6fXdh?Sup{`wwy@m3 Fqvx8uR)%.1uƹ\6nOlSz7S6@Sϐ`e=|5y^)]U Zq3r~=}r%?5=L&{>l![B{TaJa>6oH0ny ^uWw7H^WkS%#|]ՓПe~E(qEGcpkuX_noJH#RsJE$ftSa,Eq"OVI)ʥ{&m}?Alaz KT}=yEMT'E_Fo^RRA_VM_e%,,WYDZIU"}]Jy&y 7ས d܎w9 7uۊ"wA&mjjmz~>K&D@D}j61<@0jޑGBX_@1fuDž e]3>~5Su39O'?yQHQGb1½-!|jV\EڣbhD/3,~Z`sgEhW;ijx9n%+| y"=H }9.2}sni|&gxffS11\t pԃg^{YTU3wH|7xff$,RYNb B +xffS11\t < &e6} ,>QQ9kx6x#@8kQ^?/1xzuiFsue۬W=go|3 ,xzu9H[{gz1k5o]z7 ,xzUrҁC3?Z\F"&Z9^Bvk6)UL2Pxzu_^(-ʫưN& +xϺul]Rn(llUt6x340031QHI,IKI,.N-fhJn[J;fJyWnQ\R_pVnmUhץL>'.ZC+x340031QHI,IKI,.N-fP_ԖQtx%'&wKB'e&2m*w󇼜O2"nb&xWy|\U~w̼Yt$3LlM-t4ަ Ph&N3!) GEXTdP+VDn s{Y?&ݹ;~tݹ``ag E4v jU쒳?;6w'hD+և+>|ɂ |0驁a{3O2*EvSH12*%ZJj8TUWW{eЇV VKsGrSMz(S bQ 5A>GfHzʬn"H[EڌvYO <4'"ӄxXm"0.5@3d>ޜcBڥۥCHvK?A$Yre %]6=`ԕE&?N /?ި1EQ-4"0x#ZÈסoG]4^1fԌ +r8ScBܒׄXnE4oCrg{;p|;Zpjʯb+fT(n{P1@ńao&*[p? 9S/ /m!PO lU AAB(OB9n<} š8uϞzd>'^?2e_DC[6;JHI_4i~i`N?^fc7%j\ Φk n5=Ό9EPȽTߑjw&)(\,gyDG_BrꛌHZ"VCp[9 M5"".P}jcĪ9`UuK`VX#vÈCgo&n[$٠^"3F(2{4q2FWFiFi.zI9q^S˵iYq1Jc\FVJjĞpNšyy<hk<8݀^Fw%3M#Nl:u8uy )`zuzxC`fRDyT204A6Zfl}7?kspr1wg$NܡUOORAu9#N=edં!}'?ce$M !F}_P}S'_93uٽވ<ͣrwI`Z ]T;ᛥOfXUUSB`h6 'nh TDzCQ5z3xpfp~'_|>[oGnUen!. x@o4HqB$V~ |Y{jR_eQ\R_pZ v/ۧ7zIk Rx340031QHI,IKI,.N-f(<uyr9ΉUm !RKrlWO7C\e[x [Ey{Wݶk%yA&k6MU۷l^mQdQj*(XKU@@AT ;>Mϼ&錖PSC=?vU'e("H(5RԆ"/2LTȆlFk=LLO}lv%iE0 ϡJɤb]f)|UbO4#Vph.pJDRz<JU*+Id/YAjRH!աȶ6žj/٬z"xArmmBW/xtWA͇#Ɍ 4 tR*H= EGδJ6_#we 0܆vy[`d!1A0zŇbd3=m u)"Cld|ԃ8RmPQiP3!E`7RTXBl.w'9_\q l2,XPiC?ߠB<ԜgqGCsghit2 c@Ph.dM^5 :E٤HRR>ZL#`cHid2ޕҳ c<}(791ѳ٤b:1_r Rf/7Eu0W&Yؗ\d)G2W+'*,`.pn(ͽLUS<7\YGs<:d̷l,psRi~vyµQ+Q+[a$$\2UXN ,pLg=DW8bJei.cʁsLE. 1؉hMCQj475 xPVmt[BH3 30F 8 U}Q` %$AVыCqQf,OMmCs6pM&92t%I(`ktXƴ3a@p*XaM\̶6hlf\*'"&NF7fh]d}nWͶ`}`ԝmY`-lsDӋe,]5E-[o0UM/ɷ7z"ETEY14|[xh݆q9 3], mp7j}xCb(s=VQŎG+X}6 ( >ʱ3I ݤ>uh*^z٘4.BizGcbWO)Dȳ {!.C_F\WJk'E\n>J\@ʄb3 г^k̊}  ʍCcvXMhqzHNYBG]xw;]|=~[W`{pq;e)(;StQlFI}pl40ϳv79YYda=5YlFJg{SX`7[CB2́ȬEeҘ%^k/NP*FoU[ XYq\ZJmǽy5tx.gl2ׁ߈v Qү5[Å=T<6O$|`lu?]z7i j)-1X,u?vn^a_fE8D?bd<6=ZlRK w! 3yq) våB!qqSHKkmr.~aq^n 0{ f}8W j~19u8t(A&cY8+-~82h+E]G<&18BӇgbǧr&5PB7x32L 1esxYn茛IaS% 3O#$ V(F+}aBeK/1c[~O&`ŷwJa޳vDxظ> {a*QSlcchNO]%wLl\S8m~lZAb oSxY?ٙWUɾ?\/ƺx3i3727ygx3x  47uVf?0N2]I q x%}~&Mـ0?L_=#lc곜v$EY _]?}}B}CBh/'?Xt=\X"й;t`G T@^TB'*e1Hߘvd ,U{!ƖTMBiVX/~T6Ku^%a=Hl2,5(KH%]<^s ? KMr3tr/eCVDxeV xYY%ae26$l8 ƱÆ#8"Jq KFȱ Rg m eH)G8((W@ҷk?y;/֣(lk'~( b74;vLy-wf4,djm2ctx 5JWR#i_&XF1r((]FA]L*64¦hmPY %]lfd3J Z&hဳsزy_98ԫ‚NŠ-64%+T;SUM`+muc_kẀo\-6H`~:U\qf*A!Ljh m6h5Z0v*K=9j5̣s?gnov(ɑڟLJ;a݇p.`<P)%M΅sMNrm3t*/ tw >fi^Kd8+t]siTMAUK Dhe0/#R7Wp#COѫpu}%ԗp8qL9yz0d˪¬rU^eĬ _S+"K%Lv?]tPn4j1chѾfAX+rz%lW4<9yUy8[aBOիh\k?̦O{ᵐ*?M?#ǭ k4>Ɏ@"-V嘉 `obr_'nRmv"BtY֞=7NE? lFFv?Ϡ9 <d"6{^ؿMeTUkȱf^]0O"3\8[륯#7Ӹ,=ef[;m*1~ޏX?4o0 ЏPڕ_ՙI9=)}G~OC m ~$◈#~x׈ ߈vo7^Ʒh<V F/}C\=|>N46 Ɇ!*Qˈ/ʥ9~&]%ɬ,N&?&:2#qbףM*N:ܟ^9h_qAwss CNR?cVې : spLܩ0 {t(2V}wgK_V8}5eE8_vsf\3 6G;E㨘u8H.Itd՛R|>67^n޷<agͽ=g%X->p%W47NGw> ^ɜG|=]`>e:*;7 QE*y(Yq|'V.,[:^yQnh_kQ W'lM">6S؛ت>P\>`Ko_ZA$ }lPoyk~3/a#zaq#2&;DX +Ll3=ϡIjgڙkl.G1 [p}FxۃǚifO v:ti2u>Ś# M̉I?SfmkXbŻ,βx9?gxt#ew"Ea)V٣ 9Iz!;IR>x)`Y`ʷMo򂔸d4 Q~j$(o̠иF @G `f0YI1% 9Ao_fzx 9QHp kvؘw=a,92ߛge[WyY奪5|nNݔ Xl՝fFB3:f+4JIU?ǃwLASn95v|xk螘I˙#u|`f.Xf.DQ=@5U2"uBMFkI[вjh5/yE%!f꿳#o& w+$6᳡Uc4"͛fQl0slE3,C9zJB',ۿs{afYP$0NF86Yp njh:v_&  n6GSN`g녷E:r^/VVeՔCfkl-xiZ?A\WMvGH;cBB0"Jqt Tlp;+H@NJ]! )N ɶqetANA|Hv&J!^[x[gp$v10t+]j6Fxh_#ړqEjQ[#e13v~ѱ[jb2pYu'DG1vwOMN}S uR&iA<3@~a~hcYGp(9R/nd&Xf_ݨX"D'𼻑mAh4-;B3-e),X Qv{VͰ &| H  m_t㥋g71ː SL݅5=c**zsx[ʼyCWpP|kP4F{ BdxQ[_~ shN=Lش<o1 p'ߺĨ5C~8wߧE%><%axc[~͒+쟠jZ1Po1>"JQ`H-Z%JP100644 GormInfo.plistD2z3(5avG4Z\F1)qxQ[ *COxvL5Dd?o1|2b/R)oӃķdxϤ8ne!a&;ڲ%U+x$.F fڞ\ pR2.xe e> qٗSlt.襶nu100644 GormDocument.m`tsi!Ef4p\0g]XKsJ \M.l$xۢ9Y}C9|2l GMxu[ֆ-rgTx2 Qxf9rNfK38 3%.x[ömNFFͻLR, LjYxP _CqO@sG2100644 IBResourceManager.mw[Q[r""2ux+G~f.Ɂ|2ppNh xuLk [fB~Rd/>'Ҝ[?k..4 B^f&P@AL* F[jA:RKJ򠲛g22)(Lʟ19XLTj.$D@Q(H,J+Zof fO1\x{˿x7_f&#3md^<iQ#x[of_i/f3 [n$x;y2 g/l9emxe9rC Cj^ $x$oj.B-թ [ 2 s-$"6x'ˤODij q) $5@end K,xT"?)_MدAthm.xxQ |SJ&ޝ}r;$yvDH}#w~*v`kCsb\z} MxxQ |SJJMˏ_nɯv=v4xT ~fP󔐿qؑhm<>9i74)P!'xԓ8WR>Qw 7M=x9[yt4y):y Y8o[wI0W,aդ HxQ[kh%o<oJ/~.76ѓi7,LYA`JN3߭ O% _xd>N6SǍ l100644 GormInfo.plistr B3 0՟+$oDkpz z 9j"{o+Urxc[5\KgIv o1>qʱݼs)P1]1al100644 GormInfo.plist)]Kh{s_=oJ*4)`qx9[I髯pK.4e o1 LV:bU:m?tzx{|Yps4k{4+#31hV' S%x8)pByif  x{CrҁT/vŚi>&IQOD" E{~av}:^Yѓ9$ x340031QHI,IKI,.N-fqJoUf9b.3/-ٚv앎޹eS U\R_pcE>RgOHSWe.PWxmYw|fzR 約@!!B=B^{`콷]X]@ ꝙ~_?yyw ذVtՕMY_`{q EVoy &t'pѓdeDlF?d U^!$GZ9"49qQB+ĕy(7Ct9iI5wEkJD199ɹ9L /nRXT˿f`an'&vМJQ_7 04lUP[ؒM- tX'>v (ICw5GnQ&TC\ACp,aX)mW(>a2>!͢C:f+aVHZ#sT_唖E2Tvjhlu"~c_p@{|lO@{"vIp3^Ŭrh9uƖNk*WFZSf,dY3sfjklfAv)͆iR1ZЮEuyC)YGm#Gn>&ap:c>/;'+N:,BO\7B&ۮ5Ж$)v`1r'9k,8'KnFVhN]mh/{R^JK;45Uֵ׷t,lrCuɃ$NET%wXg &<gU4k2]п(J*@*6-㖴v4ZDsQr^_[Z0&=?uYKu!!{1q G.E2NSXݸˬf?ok j,8C[i]m{DU}+\kiP]נZ] {ܶzo0IB'Ԙ'I혵 1]i@ѧhl_޴k' ^L1k:~ѷ'754Z_g7*꫘2 X)N Eu-u2WDW[{ ilk/Q2suސqgdL~W Oxy,]nld ]h²~2G,a$!TTG/uR̦S:šC[G0F!GD(g褘V0G*dcpa@%Š6aP* MJ0J"q<l] uPtJY%2 Wd6w(|ֻlTߪ=ub9%2N2*[(NY%Y X_QH(b:*|1ғ(! x {Z%|Fc룔(08WW gNf'ΌƖe N\D -JZ!O'CzuJT2JGtDclU׉AV2OUbkm2tTw(d:F m3>."DhѾWډ-J=n%bc00T9aK7(G5(# JF3ÞҀhegc&B58J1c=^8I^tB+Ns᯲Ѡa)1V e@ sS f%Ap09t.qu7 ,?@9L1fAjn8BR-/1tpIvH^58čG:)m,SW' kf8ҞQqlfq{8A|/Qw:Ϝ++uIbc[F;Jhf a6)?R7tHēP3n B,%S<+L #T e:Jm yk{0"^@JuQ/8Kgȯ] iB+)nTV_6OVkqE[bCh>8a'%Hx )|4?E~0tGNl)?Ҧ3k!c_Rq:ߙ~QBal^5xE=$+*N [*p48G"0; =.]cde#tozʱDOFu8ԙEԯea*d&^l2xNxp{qaeCr ENqy'" x& IᴰKH%y4D.1V^Vi>(cEXKڣ,CE >W rI>Ja8en {j薜Pf榾)x8NpVYVP9+tLA(WܥdAo2 'PW(147eڛ MMƘ&p5΋~"j0KmMf:/ymr XCS#5H{!$0`낙8fu'N%'< Zikp)9`%L4ؤt nj7loSr%Zc Q "ЯP%k ME1G62o䁿'^MwJ9~kmii\N~bOtݓ+#1g|,"C,~A{D|a'.3`㻀|CB+D@F2FEs ^L{ n"0dƒ -MK L8lp =]hČF evNXh4wc25/' O2'|!)_DX|1RKW|)a_F؁&{Q642x5kf+rwg{W㴡J^ #S(y5MJ^]ӆį!~/_[cf1^dRQ{|<}#:CM1оL:ۛZ;i[I9 ܷ1;`НD0qWߗM[}s7f^Z^"L?L/t _|3Jx7y|qeM KZh%ݓ2+7(w?D#a21*(Sc(qj: ~<'`L`= /IL3>E9|0  HNEgɽL3ȡ>']D|A1\;_\M}EׄgZ3%=Vr/MеґH Ml_3G¯L9(4t݂[/Z&'EFp#TՖ%pv1 L+w'1d8"0 UӈPLö7mh/9 37"l;o'bl@ЃVYZpΕGD.inb& ỹ"J^&l^^&<0g|/v\P1?aE+G)Yx ޝW5xL9|Lk!d~Ъ kAVuC{Rrr #e&+P +‘uL+h)x1iB;ӆ}~.ɥy%y%E99E Z)H\[hʊ3RS0%bRKJQJ.-*6yɷodJ\+=o֧ɡFI֙i CsShRP H A&/4iC4:1$ M!<37oVg|9-#9rh=hNx,pjllym,Uz_qGogq s ~q>xW'' "֨39xcqYCtH.nX6(/=? ?L5_;e_"gx%'&EEu/M|щJ,=7b/O3x>&&֧bv! j] '/l#gN+'3lVan)Lx!&&L{=BRJֳ` :;xv{_fs~^Ibf^jhm~uUMRk.k>6.-O~//¥ J-)-+V ulfLPbLfT4CpMc)2lnx4i &L #xi fo'=/39?$13/h,S@PTqiGq~i^JB4Z\RkͥXTX V a^Wȵhc.'9x$||뷆i mv <$e~n|xkm0r Η"(V x[ũ9iW1v%@x;õ{BKz~Q$&^ 3;?xp3LI X,|+ Lɚ n!bx340031QK.+L/Je\ctM|U=KS!DsFb^zO~:LMu ]8p8SX\왗_XWY\wZ\7~(IXCPԴҜbJI;s[zŢ8#\KsSJ28[J_rù._|DwԴ̜Te<Ǚ['ƭ]=0LЍz /9'ѥM2^O@Vp~SJY9$椖"yϳ=lj /ZuuQu<rsjs;,*eNGPYX 4YLLyrwY)Soٌ򓊁fpoS'RܴiO퐔ge;#Js$M>*K ,=#cKNe|^!WP%_+VfϺCo1L_pN{ _ѢM,[ )>=8NݺF&zFMIw/~\zEHE~2L/0J~"e0+߿z6Chj0-2{bM7bTׂq0(~ Md :wV *f?-Zδfh%+!kKH3.93/0"`)CJ(=gr̰+.dQɒrT9Gp*W*ӭ 3 8Qu@0č ] \ƐZ _Tm;r⨴8*ͤJhcpR]v)`IbB_#sa4`6vZL)s'B1cNe=wa4 {[җh7`N1 {9㡪AY–$T{Gl}5٤vnx1j;WM5bmPMX0l9zϵ*! ~g5Ȗ(wIrSB98_PJCLeiۏ|"䛸5h9~K;Κ)[~0q_ : G<01)wT{ *Җ}Œ}75bucv:l'_S7h[k"WmrIB؆Cp޶Z9!$eodmE&(@'P=;Tѯ`EHjuv1L[Je s b F@(TRZ_J{ϤSYV_v9z1|-NvxSc Ad!ՖȦ]T & a uϠJ5Gs}*lGX@QD!vT,Sǘ(MT\>:.S jY&'Sx}_3mt7LVAvueJȴ\ң,/t.Vv&k7`wP<̜ePߥ'%o҂%OL Nȥqxp5Cj ~Pz É̥y+ "'bIA` >5#a 'sד Ӏ]ydG!٢#zn ޲*O`s1n9j#y(,P4 PE-Uٲud7#7.;A!;]Fr"r0\Lnq3S[o?II\)N!L/:G{dxp}›'cҞ|085' ˥Tk=S@D ZsrWAoBx>z㴯0i02ӷxRP/HL*VU ':"\݊ ŧx340031QK.+L/JeȬݛ}IC }ӟm? ϝ!!dSeGoǸ釜<wԴ̜T¥xaJF^|LY~Q^IjE&In7?ݙ}tC8B@B +/.IMyaw&t^Ν=m|tz4TufPQNT/ˢL3v,sytgD鬧-Rˋ!&q8%$U|ĔT[w6ϼ&ƨ{669,xRk@FTz;6.UDB *x$yq&3aek*KBoAڸF4p G)((ڠvZH8M?Es}QrbBb{^F]qRcN{߬xٌd, 1)f~ȱN DC t /lOȡ&S#*T55 ?anTҸد¯FqLpCyCwsrX9(z ͕QW7vy  ݳAT6tL+#'D<1$BM\SNL/syD ٥jv0*A g#M47u*+nIA =3p(hA Pjfc6QqSUy뚆PEB5Dfj#P*zR(>␴-uxc(2HkxY$qw7-`&={lⲪzןW5鹹iLs~xx/s2tkoI :O=0A.!3]9UNw7R;[#.<1z^\sz5,TDxo n_ۗ+G!g/y Lsy eϫG;n<7GA2#|Gh^T>\gg n@]T(|Ps wwoZM̀?n] ^j: ٴEԣ %2 :r s|ybΫbEw&@ܗ0hA}ZNsBu6A\Y:q#ꆪ0< yR1{&v p$Tg GNG# u0x[/YRhT̆ΰ+e. x CC|/WV lB-`3zE&+mP_1#1I [xU]n|.|hcW #^A`'zj3 q~z"~xsi__:&9&Z-7m_{߮OEw|JE~jiCVA:0N/ݵ6sM$1RDbqaJqooąlh/MWXNJLMK9-m/QHFsiŬ[8! (&A3}PĨ(p4+Y):o?tfդ>F ~;/DGPM,ƕu 3aSR7coJrG0g b,:pa>LrQ 5Pa }$xwЉX. +I O8uqPux5 xePODfU^h]SJ:[^9p,Gk@##z)2?T&˩RY6{{WnGm]aE|.G+ ?[}YOCY` *ڶQO*t,0]^m* qrCb,U՞&D&km WHf T^Gm@5Tҿ&#e)QAC됒`鋛25e*kL $ $S9亘u@eja]J n$^t> G5<_PJm63 ,v^ v]J*Ziru^b nQnXROZ 2^)`Uq-;DWCk2:q;9}, UVT|\هY]O* `⬋&6iyӋ_ ۨ(,TeǖI/6"+W26W ^zyXliNPKj"Y C18 U, L<8ޤ[Rs5BeCu^FmK.^# +=WxE%rѴ%vP-՘}3zs~([IН\vQ(w=0LHf ? UK*z~%4zwa[_=AXHoëꚻ{ )u2)-.%D zNye9zkFx0TRn(#vs}8]6ztz8w?g}j_s}tھS|]mS}z'Ջj8uC;H;jpZvrj7|I?y{3͐]|AC9yD_vi*Ԫz s·+1>s =<:cCӶ 8ն{mik&-G֚ vW^|24V'(4 J.3y}F9#𭁝ybePNn|s:y Ԁ~l8v#g~[\xkb+}&AIYf4?lkmuZ8y^<:R|Mǖ5XvJiQe1^/ОzzzvTRrKJo+4cln&y9kN_׻#n»%/ k|, O4~wS1q t 5eC|ZThwnѳxOݯI:gFtl0gre?V窠ӏx@&8{(~n7F݆[leY_vx%㗭aCw9u:%hT BXmEh/؝uVhO3lcݶg 18mem;н:Gm(%ă~'ȕu~_ƭF5~V;ۯs:*Zίc) *^H&16|PBtbk=HC{/ΗNxtiCf}E!f rk."fs l*$81f [)x,Ռ7sfuHKRi\ a(xɿgBƍLMcf}Gf l&x[axs#cx;ipՙ%3d˶˶![3ue4eK yfZRQݲ,@igS&$$HRv $d6(' I*HnQPKmՆː=Be}! DeK}}ח_o{EC wu5;r^`mBBT+ÚǞxZ!o4jh2*ړ8WDeTJ<"ECVEh h[eŐ1.@ZսѾ; {j֔ùpH_G;+ajԧJKmMn[!\WB͆ &Sr\B~f?| ttwD5 C#R63=DUľC |ʼ!.EdH+]9 5}`IɎC <l#{+,)3b sV{JS)f A@|>KZZPҽ!`f?<\˪VZU'dA8[Vo|c |l)r"`g to^'&T }}8 .&@|MFNjy˖X ùjࣲ=X7IƤ4!᝭\ ~,l +Bп ™ŰF[ WVAM`y^ N!*!}GJ`\j 7@^ R]ϗsn?U'᫏oo-χ#L[#&Nb2 ߩ@nHy] S1& r{i ]y;),"e_ѽ$;{W|^_<6/天+t bZcfxCnU灐f/Ŧ)z2Ary ):>cp_4ofnsGkb9(.@Q.>19) 5|d/NmԪUBE#3oY·@^CE -DUx/;>懋G1ҩ#iUBX$Fԡѩ! q8}M؟k\^smP[.v)\8V Mg {uA(/y`6,C>-xfH-O\DHѡLNHh/$τ(t *-GV9wجcwEy9j1/"4LA/&i.fEߎ<`ܲ2fyYXHIJ=PsK N.Հo0AAtM2|\*\o&x3sfu L:H{`/'۶;yɎpteZْ7GvWEfDO56==S:J%`C[ ~8z)|=k:DzkDQz`\Om"nh¸pxw`qȇ-=<8K!ps-Ý2/xvnOW{xVkyjĉFl1".GR||t;uMKh!y3xewTZ 8l-U6 0Euaq/-W"e~ᅫ"hX{qѥ/Lz.:4EJț]F5#ZZl \غ])9\7ڭִd=JP/Zi {Tm-a #9_˯| Eo^ٹpU;#"OP\U7 &dUϜдal8u!i࢙Baƚ^#qXTB$b(atd=Gz=`x$]ԙ(FPԧq氤 `sҮ&''0/D+]s׊ N*4&Y76,]e#!.%v)$UZ22LMD_Hk m^ dI),i)Ce%ww#j {?fLTR&b,# EDiwCI[<, :1iGr <'QzXk" H8E ENJ0!W`S'uc6<{z'[嚭NQ^c;^Ͻ̝8i-#t5xF:*r(O8UO&4#Kǔ$)X_D̓4 LJ";.ZuHv`cd[#l?4v6A IG0ANPsٰca1>NB([$!ʊpA BB!X%ry$ii(lQ^jM [ZX.-ՍI!lifut5djJy?nӘOCt**CtnJFd@2e+ZPv=FX*j=ىvϯaD^ʤɺ9{2L.mG2$"D 22<]TjH#~ΰB,˼ٕ'zFd>: 'vlϓ |xnzdb =s,bcz؜{EabX9rQ~D;#+Gz"ܛ%^Lj%ܡ'Ա*^ eyiJ<=N{505j>Tǧze]~[_/XN=ICN%%]0kԗS; w#d4$;Yx&rζ%)|`ݡqPcDW޼>?JExR||IOvWCmSK9t5F>̚rLg4s4{ $H^#g9If΋fejh8@;'L#%!7MuܝySZGT0X|3zT4 ; !LIѾvvUi4WyV+.)ta(@u3dªr Bs)A\_LНc>3/%<)px@Sc{Ⱦ{'suIhFrNrQnIva%*ɵ!ݿumƪͩn qrE`̎,x [04AJޭ}>_$k%ZkN 3O4)vWKR{cR|luA֭AJEeۑݢPa\c&cLrG7It<"]m{r2)faTM Lr )( R\%HyW3Yk,395\ N[ K#d>߰&64+;"/ iDİ 5O32%ǙR'bsE1G&q^*98>5t_ʦ9@$!ߎwɒ 9B(l=E4635h))z v{i31rBGSӧVF/%Ҽ :WՇBH@lqEVNBaxZagD"'In/IZd09%wq^?G N&Bn _Z97_߁#%h|>^[3InZᝫ !-6wl_(l2t)\ Ʀoڶ}]wvrkwOo_m>r8G1:&9P]nL:aN=rJQ$:{9x9#^wl hYfQ E?Gy& Ja]MM@C#ۧQa)4AKJʨ1&)[ 4$&M$[WJ_ON,xQZaWͿDlu7 u4Eu"GEfTpRzv6w4?}.>9 C͞%f4VF2GӝUNA=sM8E945眖a =C6r>|'vd K)^-rU)!*"- &0;M?c^9RnݓpRL?LqMOa䠻%[JulUx{2i$ JBon*_LQgx7DflۇF x;ǴiMgC'U$Ĵ]`! t&x3Ņ wkA:PS:5Q{v>o0rsnv Ax;t@J"~ ťI%Ey!y)V щ%y`ٜԼX]X>ʛs}'0Onw28'?.̘x]&\Y˥i 'TLv TW.:^ɗ+%6LaT E4x 7og.\_;9Kgf!e.2y&ج  xa,}X5\3RKsSJr+2RrJ|SRKJ2K2JSSA$&fե*$L 6DX!3$H( Ŗ^x,6gs!1rY;C 4x{@w z.}}̼tb4b͹|IL1x[+hs9#/Cj^ 2L}&x=$0dI,6odMuHKRi\" j,x;$Mr*팛ϱl`gTsx :(x}Wƒy;I. \cl ^fYNр3\IZjifdkKUq=z`6IjsG{H/hm=gED'$zϲa\ydM;bwbޫx0̳xq0/ UQ E4ɇ3TRDUUI1)k|1zdI׳q:^$+(O*F{N7p# WySto1L:~7af*& &$h6@8z{pi{Kvxh + oA80"Ϊ[!?{]v<8F=;8=?9GӃ7/wo_oFIh%cGL0äqiG ,m e] , I8_> LD(j#"4bN؈wѫ,kXνxrQKn7?nDoNvqWVw ƳaF|]װƛW{c*ˤU>9Mnf8͒˿NO''8ͫVVߏ.a?$cuSX$}Qnnn6?[ ` x}e-~t_ɠ28z &q\ ~D4c NƓ<#v]п<&p;=SMo~' FHp m V /1 D5s z u/bȪh d"|pK`p^iA¤ŞzI5 b)qr`:6 ,s.v2g T4&l|F_+ȅP>C5Ά$qBcf` OEXrDjYC^ "z А,6+ :\!Wuou(@"yce$K G$#MD:͠PA2cDB|u +w^mN|~OЃN4@{qv)\@zpt7)Qn"YKv>)10ڈd<}vGKz޽nv{WyvE%z6އ1sxT{E\j|G> ߆Sf'AS?v l3͂S'Y8&ǧvzvWrȃ0$zp°>3 Vs[sDTU<2_9<ߓ?iH@'mVw%kGC)&UGhSʨW)hpɄG?ր#ݗ̃B}Gz@ytJ;axHpJ!c;Why@'@i-ȡ:~j4Aoy$ mG[pVOJ3:b JHhxҦeɍj"Sitd^8{nD^b BS([ % +H"6(-zzo\b3^)VUZ̑"7BT8_OuЂ_@JY@gH9U2M7XsbUpPGwB,=?v{pf`CV8'q ^% #d r}aN3^.Yg?1{dv]O{){sCkk7V2}+6%^LhD 4/*u@z ?b;R>J2fDOS%v~grh00FA}udg8On+Fk$C;o6A`g=E;66҃4,H&ggnj:  ?/JGG)ށ`H8BTr}q6P(AViuF@8͈]r[#Rc[p5m^3msn lOcF77ܴ CZzDoqA): '32/˵ǫ/7d;O a[n@ x",agcՀ)"Pn/A5ޫ!4Lf (VJƳ2&Û\0D ^dI*^&xkcd:&xf)%cs\gpsŴ48WHY@^O^B2`Hcx hquT{|lUg~vݯh"J8`q 3rζc(u3x 8[R\ө/,dv5lˌӓYUȨ駣<2\Ф풴nmǤU1aO2& BrTe;H My] dzp6s@܈4*[&[K2 L]$⫘u=\Io<£3fI48mB }Ƹݴ4/ڴ62:ea;3~@9ݲ 0ҟ. qGdey0F E(iS3T=!˃ &+"F8b@ҹOIu(lGdnkd3E"64y ]ʎO%Zm(FMvf,WV)9)L@0٧YnդCSVӜfV Xm Sk}g47#<d<jJ+nó^{9ZLqTxIQvItl6W舗ެ@(L ZeB]dWȪ^Q6>O'\ND~RW %\èOe 5,)='?x(mv+@p;+' nULRUs*$q۩Ks|sPGx qb8жQΡft}f4Jk$(C@٭`!d'!Դ,hi ,pԟz< k{FK sV7!{rZ)n_& %e6ØrF@") g,+C0Cg5XBix7ڞ,{@&eUus[~D9P߾Z?3[&iͶ们a)ʕɾ{b Es'F&'m> S%} fVvk86*Hp [U: 5@hutZCѐ5X;}:%y_V䛦; ƭHyLz|@o 5:iS(^+|30fjಏ"Y*S>%=RчGL5έh˳$͈7VW]u^tdun-MeR\{{oD;N.^aH7Dްl_ayXŮG$8khpeUݛCӊ`];gcЉv-yggY^fɰ'+֛qY5u, K,κjܻt]gU g{:BjU9z Ξm #s?+zy_f=/xgE<%^ h`<ƙ$fWXBҭhp/Q ;̵ q]sgg9Ǹ/xՌ1FjnU \: 7;Nr}Ҽ"<[P d)q'224I !$8uh>p-g7rqؔ a k~ׄ\툼/-o0`v>IuKH[tf8N9=E`1M7kMF liB` fۖGT-M2LOsC}W]$ʶ8|G ĸՕ=EwHbFо[@Ė )bC%mOݧ4Qp}(zsQ3Ɨk\O +9_m?Q}&$tʯ%4/#bnx77AA/Τ'J78"P(mfd;VZq6=3P@ϒˤ`"L #K83SQc&D"3Ȍɫ-.I/E}#o &mlQXpyϹX.ȟe5J -K~xpë=~u4cy}X ς-MM()ӷIFo>ӐA5aVO/ }_`$R(xzjgYx5lv QRdÓY;Nu%c8_z!T:~Fhn_hwvr85f hKgE" e7?A~Y-NjLz:1Z긭z芌1$,=SG0I'o*8&Qt@^&͙sjos_O 5c[xO9kdVbRo2t+e\A`h XjrBkpaC}zݙ|Rhyꂽڗ^7eIws6h"Zz l^SCmXs7&Άj$u~F @b̼Չ\_si i8]MyTHvD\~ǒ.Cr|SR-z=f 5Fg7zio Ќ7LY<>Wn$S1ǓAGY㥣(5/-ɺi( q`fTV88dgԑgJו?YSɟtcЀp2sqyadMc]a(?rTh_6Kڽ'̠ Y ,?C-cOwlJD dim~+DucK2ĝ7#diM~92˛L̑$/ 8)f6:iLew}JIIzD8G|n=+19aHQN YX?}r&Z2(6=xQp2L՝ٴlc_E2{?t{DXOnia%2bf3(D#@6 SMoCHh U/ /e5!{7Մm\Ŋ{sץXEp>׳&z~ُ>;8d4ٲ7#0hmaA=t?6MP5}%Ѧql%ʢ 6t4W TΠe{^9ͻFE{lfGLbI B\:,{36.XZ5wYkut$~m8 ?< & *"r}u0̭uɂwuR0?MOA>IКO4"}iUq5+.>X&O˻ >"U&*o &Mb=ºKб (q뙡MӦE12-kqfoQoy.ԶKFsC-X׵ݩϓd7/͘4ҭ,.S fφw1q4'DG}i ȭ>>(:;#̶ o vтaG /.mXI*AUE۩Nɽ +HH.7}wb'xzoG6s?mB#{5KsiRQ}wj{ɳMk˵d9lFov.L y4XII;q-$%+, 6]̪d2^s)lh7yppgɚI/@N?ʍz3Ľ"J k qvz;C8I@_8kX_ c}t?BV>v&pI69bcah#g#Q?v MR"$a,LjOii0zo ᇿ|4RfN0G=x.9 ?Ջ$s lJxi.N1V1ͼHVyUk[p .OK ̒N0]/ 圡-B_Ě!w{ۅC/[3ra;ǑnWK۫o9 H,y[xm" ?jc GHO;Q^|G_bT5>zaGtZ.A QN67G QÑ!&謭jӲfBpk}ՐD}w[ M:qB|uuڸ@*t,S/6R<>8txWY\l|%Rf҉jU@{YRrfӨ&4ߣdrko8 IyovV_H3 5r",֭Qi-=J8 l b<0Cm_k6TaFsBi&f0tSA2 Y^ vDmu%n1oix]sbޟh!w̖kχ|:˦2&X ߘJl~)S5.]5ꛚ"IgLّS9f5UGK~Zqmz]GBL(sx}JPJ: 8vq:UnJ2=`pFpm6";+c?=%Ա^llYVWI .o< :ln$Ji>1''zy[4x:yʏQ/%I6BFg=_a8ɴ=s=㞃:D@ZI+Q9i~htcA}eO TM&s1vψ{ܰ36 (&_ג'40(֠qɞm4ꭙ'\H҂OZ>MȔ0t:aZ쫱p 0 Ӳ*w)[P3XS)ѩ$`tH ܻ[㶵=#d@F焫 MRIW;4_IK`i [ 1!Ls>s8,_CP\d _>al^*=J i ,ZObB|C/ ;܃yR{+_l7oka&IE_k,,zzwx@9_+."tOLe2 RfNоa􂧉K/mbL,9JdC,MmԵqeC!i.giDmZP@"? 'C:#x@K|Z i>Nd'9"ۢ ?*0QEk 3l_RǶA-Am@8FŔ  qȫV]^vxR7e\ oh[tzOLan((d烣V&9u&[@ZF8(-&ݫr-n >^U7{qo4w `$:Lȡɥn<[{zG;Ԭ4/gt̙J"A]HL<Ĕeg5Q=91RssmhJ1KRg|X3sE \W6"qE B%-8 $9MJPE*qx|+ - t6P)f_j'PAc 7Ni;OWT /k"ffdk>Ch- Z_;Ωt4p\i 'qy)0yr-Z*SW@ƥ:MRHxMؠeuY4'+c1#lIx`uth4w1d<4dF61bZ$+a~,IަD鉿EQ 0%*S"jP:"7Er-izB*OVdɽ 6?wP3 qV.go2H`%NqBlDju*)2iT٢W%FِCT[jSoF?Xgx w{GL(m$$W-}6`o*.شuHkVdĒup%%Q;yXyK:"kzˈQ6i1yz )*^y:L,Ccw d?XY DS:P) K{ Vzhf9<UE0p@ Z3>\b~@^l1||꺌.ٹ^qN~=s\1 `ϕ9p_#_!b"'dt 7@BW wq[9$`ʚzףgTl(Xl((5VjilGn a#jք(.HFLVBSPuGTJvr)+ap w 6BNYlN~(+bJTLG%4j>7T,15mB:g4>Ć!ڰkdJ2T&QM!#XMZƫXFk o}ڏUqx%fŕCRx@faxua!8mg/T9a S.Dhƒam+G@Cf+pg{iy ꁹ{e# RLvk7>)}-gSy ꣬f]0?B {X)R#ӱz[,|W[bc..%D/JK%S'QNf@լJVK2)ZK7E]Q}ۖTRRbڈ8$?G}1?A(AS:?'gkB}KM7 lD 6Ү42kZeXҪ}<e@ePqǪU< d 2_F+hAx=nƱ|76KOTI1;X)ねRt.ڲD-w>œK*2snр| A Lp8uo}g eaa=x],6k5|{ B/(_n< ʓOwэ)n_T'YɵRq2V$· WQ Bfs*s,`Z.3dTI:\& ͰIIPn^ 0`)V;tME\&Q[ 1X9?1 JA]#U[7Pr/T]u}Pa vyhL}+vÖ4O\r0-kf _b85uu,uc( oZAIB]E1/RG|n4nDKo]P65677zEDh}tDAحFh_}Q({H]DLuw&V^>|> ZW$E J4#onR(D?z.]ŊTږA>={ܯ(L8'qQ&zB7`º>> -Յ'K(Swj =IyE[]lHqlj,B vD/Ӆt Zŵ*nM]k[؋5QWSb788jYt] :i"<<ʼ.s'^hau MI/#K?2jic.aDgč6u3r*,P:XHL AJƛX\V'Bg[ɰ~[nQlߍs:n a;jQq2NP |{dT#hXKiӠqxWuN fr+T4;y$kDw?xAiϕ~ySDQBT k3Agc /qv:_zJūARO w2tE`;f$R?MiBdWB@&#}ۃx0 5v^ ƸJɝҚXqORʎ"#,j*!q䜿inԔ_5HXʛvKN͇vP sbK d 1+ĚʇŻ`~Iw(~-+ٙK.,\ uq1;=ʙ9`c ^ ȽvV̗{&l/͆˹גkDE=D:QsPQu 6ɀc`wXΟ 8y&}[CڸIǡ+[&X"Mb"CEĸrk#ſ|QޚjV[f :k9$KzvR}4AQ ݉( ʔbh?"?ԫ9|7JX9r d*aIG,=C* ݰ Tio eJ؜!YLÌ&XStzѯk Ȱ16F,}[`vdKi]@J8'MM"Ӿx7 S (xcB*}q7N'Rv2:g0]WoON_?A|u{a3'.jc9& &ߜ6}+*ָ1 73jg,;CUb=t2._8'#E}aV)ܣ}~Y!$q\WzJZߗʵqFRaK,>ȳ@8zx\G좖v^^_l-e xׯ '`.2J[~ww=WGo/^^n9tx_fĮO+-WYG- >Uɗzȟ-KЫ%:C"`6Q,sI7P9YE;E/#)$hh2(8(r0Bdy/l]x(~ @mP ܑ6e6m O7]4L6a%=C@ ަɓ5mO/"_2䖎EGSR{$&غfC,' ɹJUPOs#ß+ٳ['zqq5aL6:AcȎ,_Ty_pt!tďW_9lI;cYF`Er{T% +\eyߤ.4?E>Ev~R䑑`~gSsiT.@zy,0?U/$HJY@%.e ˧~LdՒg)( I*D:GᇞhyQH{a3م)]g]HUţQFCf 6[ li"-qfx1NjhYZQ5Ǐܱ1n+*Zj Ȱā5 o ^~Wai|l0n W(S5W40tsE\pϊсPUH1 v.dP|ytst+Bu: //B<&7&ѰFKN̦O4L৚.^tqx8m3+ _#jw { :gU!R#HrHu7 G;KMy'|]y'3Vc6_GőQ}ICZko> E+FKAaȢGaڳ/NMN}[Q%L7:yh}hcȑ٦KDޓx4DG>dY1ah KD*/s ?v_r{q$-)?.qzkzڎ&㫼y~uO(΀IMz oցt;[ZP hc˳+a/˜Ȋ~_w؀k2:wIG^ۈKzq$M)/-ahd0s5bf^rɖ{C|Ə .b\U*O۱,Bl9CEʲ MmV%P.l@IZHE|ika4eg/V7Cr^8%L ޿+!b"Uz2(:HցcxW cJ>1X(R/s)^E\PVo1ǯIFĠkO"GS[J%; ^M3hGzF"q^~1}OvKHY@$[RDo4ANV" {RX2;5CN+Jц3`?wOtv_jwJ/:?QTx>7I4OVxcU(i=qqk@end g Nx.ˆƠXdD'kKpn>&Phrnt]ul>3y;N99a3nO.di;gf620a%ܛ1N^H*V39~$qKnpo`!&ƥ$2sr*uS'/:vr+l8kA \\8RRL>>x_HSQ91+J͹YJ=mqzv;ˌ$CPЋDfDYYCHAPd{1;}[ok'N$8"\È1JKe$FÒS)148K,0 Kա8p%FSm#$ <a<*K!cE4Xnw@!_И@AݏpBEb}R0&47v64PgyRoG;s # @d{~| e榚 I[3j ܴmC`mYUsNJDQGc;61x۽nw@C i x[^p$͸>-DHiwuj\6yn;u-Oy!T52qL@x} 7c&7kMmQrhox&wťObr|9r\ ~>JE%9n9Jع8j&&*ؓ OKK`16Hd>*#x}t lY%'*ߘ<,g笛0mޫn2(#伕:JIE\\ `X`lX\ZR&7UWss. 0m.lץdG[x&|<_,`ןQHm^q߅67/3}( <Ғ̼ɯB4G1…2S˧I2NgtVCW,IuJKwM2Sbc893@3PMjLJDB %I1D?%(*4ctIF#xQ5UbJ@U4f0ATebχ}9(* UQ!5/ <tx"ݗ՗MsK­`R&]L^1x:՗srHd[[conQ`f6ם= P!i Hx1J i2el~aQbL~g-3Ink/(Jma ZOg'6^ 7~ Dod[kvNPe30"'/46Px'\\d9_[6;Fj '<ԟrWfۣ,哟?sbr^M"ͶoreRR [TxŲ7󆿺:x7KNn NIM.IM,I͍ ٯv䣟u'`%>doF, @09`B@Cer@}޼W\+}*y%9ya\ EeM<L\{*eݥZ◘59[mO-TA*4|Vf+yL@.322kux[y7 %%EI%nE&[ 2+n.qKI'c|42oV "?Qx umhg͸O[Q~[fNiz#o4M0p7=b EV y%@g^JjWɯ-xRKJK2&䗖䤖lƀiB\ љ% ũ%~ӜKl O7~fa)L| _XRR&y- ԯ6TtrNbqob^bzjBbJ#z+މN^h ovBEArHK|j xyC ON{~j\_OšYZ◘PY\g矔< [-L[NҒ:;^LFrז ` TT:Y*S~q6A xy l YNΪ<}_O~kJfBfIji=ELAIFBbrIf~XE4Xmzj_bnj䔗v(JKKrRK*zSZT V矔\y,ly)\\Bxvu m&?;9e:3{~Q o罭ŗ0xs9 W7bⴙ}U9BL~םfT7٬o@U&S%75%12'w4L^1ٯ%CTvs\ɏ ny搚3"/ qxE222" λ M2#  ! p~ >!F if (N'Ğ_GVέZ  = [NSMenu new]:'$_ӵ$y籶 APK\ ^wRHxuyQ 7N0dTlxJrI0KzғPV`㧦k8(%gdXy*iZOz!Vxxy> 墓L7|dQwdL|^Ę|vsGkͻ6zϽhfS`t Ғ̼԰r䒰ĜT===̒\[U%0[zƝRfaּ̜%Ĭb0b׊ļĤT%3N]!XZRZXS6bi.YVik'>RdԜԲ\_x(ּ׳r&;O&2e4u47xy6 7+>PV(/WU0PPSSmsSKJb' Y)'e&8x楤VLseRPG|kHbRNJWo)fܬ[4٭Z@ȭhBnbf^P_,kre7hJ 6Ya,v% ]WW`[2SRKKSR\0+T+MJ-O //̃+R@֬pUs)( ,4ujѓʸ@f TP $RKJ jh*eruoqZ젤4{60.ENlYũ@K hf\nbT#`kr-o) @_;pq~[ qx[yV !B ~>JJ: yIY%֛C'_]4,R`XYZP cBgd$$Z)uC&j'fx۹}/'l'inb\ tqs[yf^J~zsĹ\}\]5SsRK2+6gl>Elr]0 ǦOId暬E%(R!1'GbdBfBIFfBJ~rinj^BRjZ~QByBzBbybJ0ҟ,1?^ud>NP-g-lTɩ)%EŨD'?S,>IIAa_! g5NNJt)>Ae IY@+݊d b"Vǜ52H|k|S$@  H %n,cߌ0~-ʕEsr2Sˡ%E'WM֬^hr&FNf^¥X\Z<@ar;&Z|YN8wA킛>|Cp<❼n>7o>f{!шix,hh i 0d8h@_fei6_j\;xƬP=9!Hjrk*ɲ򓣳 &Q<3G(.@ @_ Lx[qK 6Ve_Q H)ɋph"ZJ:@2RI,":y8MIOSAA!?)+5J `fvr VX(OySBj?7?<ʹy}1x BJ% 9%yJD6'2:(d䤢IO.`o}IA/D '391)'&ݵY_mr0ѽLJ%%EI%J&;K,sPr˃ \Y ?=Rs -RKJKss6gIqP+._QdPpPRuP@O-(7$(2C 6&0r:( 6oOz%8RDYcD-tx{ 7offURPSSRUux\OA#zAUjm|P (<50GxkQI?v&uLQl MR6+M/ɶ/onB W/^  E<zRDIxFtN|ywTcd33Kӱxʖf3k[S,XʅYvݜULakd7-CΕxi]!fLjI4!|9=!jDی*Q*E&ױ;;jQL|j_2\KIWo"~/g(5HܕG⣣TcMjyYrB% Y S8C g{>*ގl2<<5}^(_=$~2tFmt9%ӓYB:o;Ԋ)ʌk;Ҥ,Z>܉!~}Kc<^Yٲ-f bfqŲp&p8^ %>'5ߖQFu*>DsgbDƹ%*~fwe-wٹAHV hhc[Nqyl xq E,i lm 8R˝ˋSSsRKRSSsrb2}RbA58791O4y>J3]&tjOw/USYV K2@+/17u G&&}ɍIY@KcSKJ2R@&_ 8 A Hx= y)֛'p2mVce.ˌS95ꂓ4t8'ioޢO|(W2M>2ydYk]zY&7$8Y)npcʢ4yG952&r,7E)x, &&͓'|bL(x || ),(->B, ;x;~qu &9,ZJfAy7p4l6E[o&vcEVS 24K2*2s489xlɮ P y9yV \] oqHW2x[qu (AC& O>cru j7GHWܬd:͕^,8$e*E`rHKcrx 'ȺYO(} /xASP__!1U<3/%|39+_BHeAJJ &U\%["֚K& jIN^gsaV~Ԓ̼b%.N&HH(ł&e&(%*(՗9k$^PmwVv %U]ĜTҼ<Փ兤&okI;lSxkAsU#QxμZ93-/%5M?75$55(ރK(]vo#՝ex$ufu̓ENMȥ``k+ 6x{=e!g8SRKRJ2Rs&q$䤖+e+BdB8]'Ԝ3}i.I 'Rx۞r-y8u8&'m6lfǩMD&KvP HI-)I-VOb"JJ| G')K  fy& `JMS;YWU_Upb2"5y+Brb^piRqIfIiI[~3HLS'joaa/)@@i _^jcAANfrbIf~d9!UB~3xpC<扌y9op0n~Ǵo$m  .x;As(dK $E'W+.+8^Di\L1#y(IkD{'HLv," l:yf^)>l5&VL(j9d1$'oVjRCP U.oXl6Pg\7p$xk૭ KEh{T Ҷgl3x{wC\2)cZx;;{C #T'7 NʜYRHa 2x=k)? 6Ogw8s o"x6J@ Object:"zCD]$#U)6Dx0SoBľ'eFԍ7(bE~Q.p~QWA#{2Ysrq*h@LMHKOOJM.RH̃'c ILI L-b"\ن I`ެ&Pl6xס[pA[Vklx}afcPF!_x}sFt1U"vrw+ŎeYJTk.KlNJA(aM|h/c>z[J,y~(۟"-Ҽ)j SbU7Nԓ2uVΚq,Ҥb[]]`ܔ]>I*dE2Owx~U%yQ7Uy;-waI퍰5䵚LER5NlZTub=WrI,͡jF%Emg0RM5-"zS*fE'M+5fk_e0#ƇƴnB W\` tw0Aj0S\n& .Uu6[ηV?supݻ_0(>d *]s YAw?B'NQӣ3u:PoޝzӻoΎv:˰[-c5I>{Y7ɇ xs_> L|VwͲX= o뤮Xk@=2C܌oC|s(gaY4YOemyt'eup2`DegӪϹ_D}==ʰvX'33Kzjty\ŠդarlWj#Li/./~ \'݀0?ٵL]*jq:HS0™n$h"Q|Ve}'Kp? ߧi5&kR &(`oԵ"S}9|A?;po0b?)6l' ARύQb-N] QphR(+Q[6Woyqh|0y/~PP3;-^k#.՞^M}(Ç Z͛&K#C<Y>оgXvOx`{:kF1O2RS#P;KnMR\ om(3he^)*[jrC~ee^/I=8dK.7W^ʋgDۤn2Rh7+~i ?<_-ZR4mk hXoȴEp5 dG˗?ЋN^Ibﻵu9.u ,#re S#mXe㾤@yd~ӖzLv9 +|zC~tO@-:.xi( @uR&s[}\2C{^Wȓ4*FVS ;?%l&awR&6tazUS]~UK$GPC2ρ#f8*.y(oJNX>`p˷Yq^3ԅr7M&e>+XUj}F_}((qܷ= MjP4cb5ׄo[2iQĨ6EhVKʖ{np]vPMd'2#2bxB7 4?76g4~E$UחO*GDH\4N2OT %겜S WyVfy6OwL_je[ 6I7W5hHq/{F$JQyn#7Nѧ ykdz_Y*$ݖi2Wf&GFyTvb,&g3f/;J>iAvlY. Ol1y Q}jclpP= TKNOQV yX97hfEB1NyxmJ̻e,ΔLXfKo;K^3Qc*I˵gjfΓq[J:5B3cbLl!-O $0t{tsH#ڨFL|2? eUܳ4y ;̆\_%p~Z EB}ɪ`Цz ^]q k>LgQU!E`J٣JIxf{|tMmHk<㰹qLIݖ>CcF&1K-gYjkBm6D$^Y踤6h 5k6uk-D>#ؔOfl~T*>uT: 4*k'9rlh6i6m?EμJ:5[fVc#PQ_!;U^cdp> jknJ(ƷV~IP2m${$#NrѳF2˪қB< \m}ʦ$jWN@s(d8GQtmZY t2cĕz2x+BI?u^}Y-EZxǼBث#ʪZ!5ITȦ9kD]/uu0 V1#V6mI,ʊ뱮-nAC@tߩВ5pthqUvu$O8ٴ, S֜[p/XZ ܋|i7N5i G#nĞӓZ5'u`1jE!=+4הofqjĞ:ͻWGgGc1qu=v =G$ID_V1`_OR_>Mekp\rXhɞmSH];X53͹gIC%O,]Л6s:ƜEQ=] iؖ'EG?m8!f>VV!ʒEo[u`:y/~,7_ƑJ:G M'x4MՆA$LL'aFmL=RRQyr"<w,u? N~~X!6 NYFwv̳OGbD+ S>qԛBZٌn%"YVE|=>0.cG-lHYgaץ@b`ϔ}ݐY9<|rfo£B׃(G&XC?$"X7l5>J=BbXc!f]CD?0,X-DA*y"PeIγ\HJ=TQ<(m> #zS1j5(Quu;}SqYl^xD86e,!!Nx]rjB,|60mf1˂|[tHFZ}` $~DZ:̏nǡnaX!*_՝c3eͰ,H)FleZڱ'>}}ev 4uC9~uY49U ~$ADӸk_-l, *|?{ɋӲWxQ8f[lJVDY!Z 3S/Eh2-'߅Za:=9/Schn1޶}4gEH$bz!DۨBةҴs)A@\MC|c{ fY:7+#컰H>1xەXGqvT 2|=Rb[XF03/،hScjJ3Z7ً_S/Nt ]J_ӡ8;'g`ʆ`XS~B8/$%(Y/;oاZ HNx d A@1bîN,_IOB2`,҆c!d{nsnh\FkvΈ #)OwGYzcQMhAm*jF z]Uˆ`hgv$gbɧ7| Lm4Zs-zpB.ڋcva~tdAYԄ t <•g=Q= S EB[C0XcX.}x,%95J$ yX. T#GXNONP;;hYAݚ|i.loh "U|SIcCS7w}!@V'WgȊiR Ma&XEx"*) :Z0|Q#+ iCy꩒s 6 x)#3nsO{7A)Y&sbDGo4lΜVݶo1XodQ,J`20p($fMZ2Vۮ (Z4h2YgzlԡZUbBOim|m\[d/uFf}cerZ]eY&J}7zBڤp=82y(nd2G%O\گpVPtrF :aT! wD$gXg k<OG#smD:[A*C$ۀ [%pnJ́= VbwYt@"'D#=7L mV<7'r0am4#Ͻ&5H+؛nTK°yP!5sO$nz DdF+ӟ9a-Ns6=FTݾE(h zϤyp\!8+#QOUUS 5%>apyY7`,adl1 dmpt5~yZkeCLd:YlCq=YNdtI-#*!::oL婣 l>.HT/ۺI/V"נ3!h{VTqk]Vώԇ f!_L x2+MJshVQ6TV Yi, $#[­)Wor ΓH9"Y￯i/oY+$ȑ@"/B^gljQ_2ѡp-$6s$s mFjXu >5uo.y;⋎r#o Gr Ԕa6rPx Dk\iQjgxB ynmU;+Ϟ55o& K޶H L" tW+|HXĄт*sCͷܕtR%foRipLsnM|Ii'Q- >0"_^ђ;qrү0k$Zjޮ7x!W7?'Ə9+6zbqMu_eӃޞs^ƛY]!W7[r6TSٸ{.me );u5=k􌀭$H'17;1wor+[nV~9^z64_6Vnl$[bbnEB^8}hH*R@hj{Q_%5fⴢr Ȍ8 +V}4g&w'/^MS"Ql *D fBft1R:u*ŵ:OA~W \w-ywY S \Ry5֎[W=;v1\+k/sG@۬ğBclOt,ZU7G/ݡsӋԙK*1]V5@xе*K%8y<rU/bYbt?VГn~\jL=6N7|H gDO*<Ҕu?d523U}1R,7ai{u-kPJ0gwaL\5kκ/%r}Q'dn,t]o1 ˜BuͅǸ$ft/D;YϯDM@6^hb@QfրPpF3ϻv8\>=>4?^D>"{1oKxf%FV2HLeA\wc e'_ШM\oj$5 #3OkjJߣYUTթ!3PWE9[v4 b@W\T˅Y̶(8vS(s;UbͰv$=Qz|6}Ę4 OjCXI*>>]}Dly6rWl[ٵψ-yg#Z՗$7NL8͐hr+t۸?{B̽sMrXW3]a))FR oy߮5N΍n\`|t3g{oV7XRcPd3s濉Y$ a*S gc'QeEk0uW Y[ڙ6l#Haܧ5肾0;i.20b Rv(ʟ-4sPURBYC0gړUe;aH^VRUm$/m Gk}Ucl&6s.'4JQ XI+^m?>yt+‚nJN`EVe L1&dX$angsܠ}Y*OpF]$LʅoR ҵ)sQ.7xjhLA!<۔t{^}N,kbA.x]uLgTWg$'h*iW޳*ODjE *Su^t Zy[.C4=^c*%ۜX`kNvC맏n4TҐoqKoyn*24&JaR>65y~{k7 4hHў(>q?:S@Y^ЩVlD{nRYkB;w -ZM0oevÌM~1Ði@xa)5=u1 r@MUvDtFd F?zLPylюO5{I:3/ao^(`ovt6ڸ3"$x鹍.TD@;(ؼdJ]F]OB͎kኯx):f ]SEȳ~KOϛ_vrkl@ 9eB`Dv@ս;/鰽 g}7#1n *hٯW"Fk„Pzz:<2MQةכ,c`4  hK3Sdڍ&bYjiH%S^™eA&Y֨\ll,0$aUf5MX ’j[ V|)9Ǵ΁`B#H1P-S 6c r7:WKA ԻY#CBFdN IL^2<0$I^0l1 M TTQ):rkzv4r:ē\P@Ҥk%@&Hy ';`O=c,1Et, (̚*:ɮByM0%BsBQ3Ӝ<[CMGc׋5!lM~у|,y3!QI$/:!tFU4HɼVϕl6t,PYᣗ}jwnell,6Bn zwt~pr:WKbͮ%.|&'eYp撲R o]gb#yըi/fF DqZll/ ]+u']~ȗGpsiÿ +P]GiZM@-^ "~ݫMli&לK h*"/;I*5&̯Խy "O׾-"/Mw9;_4<}MƻF"g*xbL:oy"߲eKZy"u%/<.%) ɱKGhLxI4}b?,{l7=ԙuV& F}cPQe{s5(%7ӝn^Nܥ\NHlob4(o&}ROKVbnYwZ{aly5fT$(rR r /+K l cb;w_YM<Vo)CۮNx>+FhQli9Wtpdr|Q>I)mMrUzzAR*4sm=$Be&IOv8B?(%O)A:s8&u(zf8w5X*A2'4X(+-UOȎqXP7*xCirS]'Ŭ|&!}do|lȱ,d~Jz%MYa=ںvvJs>̺+#tVl['kHڡn @[L\kNw...Ot)FCKD7_<6ow.l+yAWڛ- p˚SXX0ŹUFW PⓖEU:04yUe};Ӆ3m2}嘙k<;.yK0 gv򾵗`GwYK>Oa+WU|a̐3(-|JwߥƟϻ$J^$Yb|oV F&K-G&6پ4\2Y<>V~r wNRޓam޷0){KY hzO=9;^!Wl8jK;ZԫOLM'\]{`-Mf}bBTۉC-;~Θѹkom\u ?PVuwts,lP\%y4]}M =^; Ll=G@FAGNy4,KhsMΡ7!w{ݎwdz8bYR"(dvJ*8d-$ձҺc/,Iݤӛ@MD88Tڷ-7CtŷmbI0q{Vtw"zmv W];b} Cn O2?ڗHE9GflD1K$Ie:J-\h.['kIq/4R=LO^`o6WZ]2̓ %ۂבW}zc:IO~ann h*\.:ۍ?$kWZDښò֡&k텽*":;3rܓ|hI P(PLaI`("S\a0|;bsk^cT N)4_7L(@XdFe:ݎq^I҈cn_VCXN9{W=іzknh8G8[3LPoڻ[G1#zmC'@/}IL #:<~ %و4Zv-ˊ{)#qZ{b6O.W_þ`x}G]m-[Rc5w+X3-لEPRn+f{=eȓ]#<\Wq\H1FKH%+pzjI>zDFgO^מPK rA.04< h~dwtǚ+@LPe?:,̝egZIK&]u&+09IRmnUvpѮ)Qvzlo.ODBWۙ(CkEw3xQ؟2]1B|bw۰OnE"7`"I&SJiH]X|`>?i{>.SsA'\v".v=)=`(~9_j<aJVbRn݋e\{DMfu[oG .*q*'c WKUhhi0|ڱ;meE6ֱ>ך7qۧ޳JhH-U/|MT*<(0S^TAc~"{>-yMj3xk>#Ly9?;vߢ, h5>mLcJS6b>P%ńl &d1',Gۀ784V:M;P,IwJI v0A43rƋR o1[Beaw6|uL?m'tADؒ[7YxD[z͗6<hzP  =އ?;*B A޾\n :qD@rή}'}@^5Xz=_[[gksojzLVg&'% 'mЋ*v ;1 }G6ͽp2B#6浰}F#6! IW}]q(6Z t9ȡ S5xZ |TչA;I dI&'+3=!$IBV!f20;Β0ꊖS),^( R^Y, *-VӾ߫վ{$3v|[wsw_c<"mw==v4c`k)ܸ^ߜצ?)-^jx7!#-UN7CdM#wKWF򣲫ɼ Fx`HTN(F-*'W&aU[+:x󣧌]8__WzX!|Khn{SR{c s1iiD\Y{ ͆;  ckI8u{^2ҊNW'8vΘIV*GD۸kUqz X ōEqS`{Nĕ_0ϬxS67{.e-Hu s AdOD٩QujG9|~,>*F+kly DOBMS٧&dr ?Tm0EeK)ۺ0I"{pA )Fa/ &4v'j.z{9^dvfkk/8EzW96ꦌY/twy C- ԝUXKZ;'X>Of&`gDȄx!nsF=aD)x)BcSp9333`o 21p'o2 C='HnY hNM6qdRw֜>dl- <;f|Vy t~^ dfO=΀aX6;d0`>/3["%n+q\8p*rS8qq7qABKMP90isOD鳄<@7b?%m W{x*!țˏ;_1yfu h!O,h7AЀj Bd]>Sa*ON} +<~vmʆGLVhJe.tw8 Ĩ: ^Ik^^᰹H4keJ2 .q6I NtZfo,!@!P_P#QL@Asl5RMdp(|[E].K  pp(̧hMaq*iD`iƂ񒸙µ"X. d(NB4g0 Ae::/O׎"rcI6Z$OхL]a5~U:.q/G >JJQY-Kգ2\֔,'=xLCvND;#uy<(ǁAq^y +j CZ4Jx1L<.~@9nl6**!gr3\]eUÓsd=}rWX9 vWfJ)%< bx3oh!ڪ,ʈ-ƌTd,ʅ/pZb Ce6fiU]]U"))5&jΚ id#@`mVC$;v9d&FBkf5Gf(G hVYEE[ņ(͒-er@/Cf6NexV0D[B^WZVTIfA:6l#!%6wrbNF"/N%H"ȫRQ'*4;;UҐ|sުf(O("b!^10-$yA0o ^݆3Sd=6]n7p֊&zW܋lp`QAԌ c*̲ޤ;dQTԐ;h͘_"qZZtK`oD `+uߟOc  FYr@3l U~1}0/U=/޾Sz_O_>b#&yƅ~kDpX!ȧYа65º9^Nw^R)L`L­6%!Ư]b6{B d$,fS`h e"[\4k]{vxe n Ґِ u,+ i#c9YW7MbVy%_-${^_ :)`aLݚ ZX{W2l+7֍l7JB~h z[q!4 w`zZrw4Oܝ>0¡,LׂijP7|چ\;rèyum x'C8 VpOSf363 3֨*ƽzI:%@ ]/(,.xi7+6t`u+dx}q1$){  {mn n>PY`價|Zܤ9SIch2Z`ߖ(ٔ){"d2U48)mh%~nmۦj` &z& BOSfBDP:!#?ğ g@9fǒ2o_NVeTdO9%s-ⰏKG b$:rLWl ~=9Rk{iHrHF.kTRʶdeHb Gs[ G PۘZ<3\ȎBѶ(#l،mF8#S˅Q2,1t^ m3SGQH  젓s# k_#O>UF0jīGH>⌥fGuƠ!*"U5Ya; xhQ <6%N|Tw%S?bWLj 1.a^9y6 ?ЇOTDqzdznk[;/=J!*jsBKxВDq+ɸT50ed嗶V M?Ѱ-D9{Z)2h(f%ק@A^J2jOˆ2!@m:$+bB|V&礌0oj <$~t!,O} ן9 C:=o;г첹~ Pn K/ 1%ABjg[Ԛ Kߺq2[d~1 $9~Y3`&Õw0eI)ptxd%NՉO&G*Aq_6H|JeA*0@<}@{ds)n˩Dj-/q /kt-Qy6L"in[-y!I|:BXȹUs_JHWJD~Ⱥ^K/eaM`"جѴHb,_nm2*irT:S?ú'2HnDj`B8qD 15rTR 䯥c%v-o* i u6_M)"'3H#/EEPb2,8jTGfգ:r'ahWjVHzu=Vľ\8{lurӽC xq mǣcS*7$a#;B" 7:U t"C*0D:\/}23NfO҇D =i'aD٬ΖGB+3G+^)eW WR+NIxGE#w|~:~pb2L6JG:<:!SHo!Cqn323S|[An"zk_D UW3 vW[d;THիfxBL^3 s(ty,>֐jSb"3!bnɻs8AKB@?]L\&}r#]E43A>*PN>{1;?9q#,(`*]#tz.&D>z6]f۵5 u&qi2.# ,9#R\4bk˵o^6A⻥Dā# 4!ɃHBB'nxyWL0+p  T$v뚑0y⠗'!ǃ|~KM{}$ն1x#p*eޗV|`AA"B I >A;|6NiK>|Vǩp'}@޾Z Z`G!s}E(h5§r6|ZJl9*8x]; 5Õ$hFxF] 3~D}md%A# YP( tRa'<ÿxM0zxD:x͉DȼYY49`-t<gtڧh, ߰O硫z`,D4u,x&__'?[cez4[ ۓ`ˤ1埳aW q!ArD7<=ْxH"rawĔ*{x%n)=DE*9,%WA43G8FHnrbԃpPEu/!V^9ĭ::08 z3cCgd8WxEq;;Eڈ0':XKAF@end 9  Tx' 7of^m¨1y~r~N^;Y^[SGȝg__NXd#1Fͼьo59zdeb 6,;/ C%lxV]lWl;봱vǎwcrzʎFⵛ҆eَwڣ,3k;P$JQ HR P U ^xҊsVa}|}ywf8+9ԊiCStZRULMM B"cEf:+0Q9Wt.NiAk6aTg #aY87leDfueW9QN zmzUZ[<ѳ0!Q0 m3=FP`Zmg$&t`͹dS US}Tdb1X6 Œà쀙rQ3b67hZhB4£D{3Z&=iȅ ^k<P{@hiӯŜeɲks޻(w]e;Na/BUYVt f Er{ 8cU 0sFa,'˓ ئHfG q(_jbk ۦMݤ=`a Ƹ[T j<7k͕`vB1զ Lb!TxAil{@2O 4לP ˑ'K)u=B"?ar|vaISQ|-~d2 3CD\:r"NАলe: 9PTg2tdHyAty35\(բ8\7RpV8tmjFt&(*]ӏ†g Qh}"<ͤ(`hLʹz]ޕ[Cģ_B1X9HU35'jdO6 Ab4:P5>.XڰkۊСj)a2t jΣ4@s".\ūCzSL'(>2tATu0B}gu~*еyMKT`CуtjQ#ZIB`qt{k?c-{J1/jQ(qL}x Jl^+4JcM/h-BɔvZ <|2 NB:y%δRuT+Q8DQqNJٯT'>M: ilVjڝ& 28T0Rӄd ;)2ƦC'+ˉT"P bvcP*򧻾"~v  E.]KkU!(gGp.ãq ӣ?F}L4{?ԃ2NǾ!+'0=#k>z<~N ɵ8Է*Tx/;͏qCwCAُ=Xnu;2U &Xn}AC)(> ㋻/FV$)9:.ahMQLq_|O9#>xYBif'gB)gfhgFtpxd?]ϳ~hYf!M8 twp[Oώ?9:8No7*X:=b;n\+zYBjߝyƇFǷhE:g:;wo>w}ﹰOMV-es}qwyw`{~-)a_=yaw1Ko:}O/}{_k6^sO}x+@{Wg|^٭:x?ao^'3/'?]A3$(/1G(J94'E!/D!=D!-3K+)T(WHM,QҴQ_``& %M>,-R Rp,NLIU(J-άKWOS(HU(,jUE,qNQ(N- MRH+JMK+\-Jv\ d&oP̤[}~KVx۰^ "bE%Ey\kĶtrz H^x;o*DM=Ģ̒ ]Ĝ"CRQbf^qIQ~^r^iKbI'Ȍ>3+e2K2<< RK\2S|S2*~%iɉ%y\ J)VF1?)5(ᜑ`<':jg;iZuRRJHgog1dzw&lnxwEB:L#dTlx˻wC=},L$l(x%;Sz2Du=Ģ̒ ]Ĝ"CRQbf^qIQ~^r^iKbI'ȌS>3q(e(m~\͸ٞ/1U<3/%|W (lx)}KjIY!lx%5Oj9\"I|xze b"݊o%BJ3sRru3s r*'?a<X>x"BlC_o/4tϑ&ds=,3NN4x!5݃5ۚb !8슗9gdzI(/x[!OdOY7DzʱN^U [(k x'Bd.5x' 00 ٓ*f0`Qb擨 )g5x}f QCxZM6vLDH Ytmftmt-+ >A*{Lx Oz>miMk)|6aK%y(£1Ԡh3`5=̏uo >ĥ i ֥VSCpЎ,Zn5CK ˜jq=DŽ|giثLq<8nqV7Ǖxm ,>볶rk}(KUy4ܾ9|p?Ʊ7q$.Q>K1sSuZD%@KNyQ]2tg_)6:=#=a .\:=Dr^y.Of.a4s_1Bn\G8vx ;x6՚o`w1cԥDLs5&1; #';c<wQMm:y3eb3T6_+ܯ^C )3Jpf;jv.t&b|u#-|5i4/S1 lبgHFZnubȘGg:gqcw{,pwcُQ+ts˘Ik@,96;sxcgk֙ƕZgw.u|a^%tr䭯)ujSbyGdžs)cd$ޫ1vaAĆR}je]H'o{}\HsƊ ڡMe;b $tv/ߴN # |G}j{;֙l{KoBZ-nǶX/1`@@O;a_g1,7ǔs3y9}:bBMcn@^J#/}Gz+z%v2SHǵkȵ4nf2X7km ;%5®9IvFz3Qv:wb{7u, ޱ0v5BM9Nݙ{\{;;ϛ\Nc?ǯ=MeN50X[e ;y-I~z[b}y睱bk^1]>( Faq!m$,_A;VyW+爵O J,Y7|f!4 ALrgmx2&9պi?__@RmwY[xO PR8b?7n?8u{]u}~7c2۝ v序#W6K^y?87l-eix;lY}sga x31ԼbU{tN=hmkܞ[%M0<3/%akUm= 9?(?+%'ݸ\5Y}R&13/ѲBmE]g m640031Qp MNMIexoq!oݛߨcrD5xʸqB^ ! rXij+xʸqȦɜojݳ|u݉iDB3 "*xʸqBsfV?:;N~(ƉԳ sx340031QK.+L/Je\ctM|U=KS!D_hnbvjZfN*kVM.w\~3i'\ԼRה̒"\ϫ8vcá33 5^Vi3\5G-| I_0H^C6m.u fm(+sAKu\~UA%B/_2WURQZRW`[ s}*Id=*Maڤ?S'*L{ZCdxN94zuG a-kɑM>>7 Omy74i70RDg`!$%]x.t_7[/dxMܑO?,xqBSф2zQ-Sx[̽kd_ɍY @Gk x[5k)dW{1x}Q=A&ˢ4>Kw wUnYMvmήB8lbil'VV; Apf79rWK$f~ī'˧[,x &aj uEJ%[T?/𫼬@~yضcʐWγS]Z}84uq9-v5 j0&ƁE+J͌=P`QjNbA1<o\uey BIia0Lٹgu=y(KXHj̢\d>!4r J1 ^%IaRIZqr˧&ϷCM)4Z̧izRqRU唉Fkõ8c~$MC̈́4VIWw,ow0BqS->.ښTf ɐ6ab0h0QdaP\s\O yz\r"T\ ]3 ;+[M1r*(MFr jJzTfB&j!&9QCaU Uwrn~ (-ԔL#10ͤ] ~p>{=1 tA.\Auyqk'X <0 pDdȯZlƑbcc;}dEJ8Qx&Uc#LuXR*~ Θ1ΐ F̅ыpġ"Z?ԔZ̐xq)|¥M|z,'E۶"tcn*{~q:ipOfc {Mse@$]|(@V0%~zހm;GAi q:^!E6S" FD>-v ,۠{ʊP [=&nO4jM L,-$RHauãÍ؈*\*kYyO1V,.6t~z\@+Fz$7=*=(Rm k:c p8}/׫+M8VI(/Ƥ9C%FܠlKɃI^ F}?"QnT84"EvGZ/U e^=W )9 +' ;nH$3:%- E%}6' [>h67HͲi- >Xxp$42y&O+ Qp?%,ƃۘJ\ N }[Az:_y2$I36H~x]|MK:5X O<䣇G \ڶoCT[B%ESjTNt6QևcL^~j|-dft+h>0.@ỻ:Y]CVa.wx39zxtfx=toE ? un l| pz0Qrkx;k;X:SxZKs6>ۿ"v&$N58 hw7ENsb'q]2{6RTTݏY-|r~LgB M_'ʛkYɜmĂMyП]ٚCZ{=l- &;%%a~R -\H.]|*96SʺT;ͫ' ;n]vkNʧKKbA ˼]_1AGwD"6CTvMԓ9h5N,g|P㚼2kMR5kJbl@d`ʼnT G\ٸK]L_gp ߳E-#H_a6r]]=>"8l~{^gRj#ת"bdY=R8)Ko>e!~\B8?^$jQ9<# kwD hiD8 uTh"*\JvRerk^C69RCZ ǬㄉH(~mq^mZKU/HǮcOSIYbV"aQ-]Wi7 |EwF߶Ts4o,jha"=:WC'D}fkc\}e/ۭ9% hzhAڅii 5vEAH]q!_ (xD.$:IY4~ v$lpC5iQrdgO4ڛtulpOQbhbK;1oPL18]=۠ҁNC:kkZC VPQD Cٯ 8o>gGGTDh,sxKӲxK aYI POQCU!t90 4VnX%(ԬۂgVn D53>=}M̞,n^|IJ#2[kݫp _ $(MqICPaPI;+kJ.`m % 6Kx hC(R W;qv#N~LTE-9%Acʎp Cվy3Xcq|')2Wr._zAP(d/U$L_ Sƭ4Qa w֩Ɏh bɞO4b 9-Eõ9`x} }= -. >AR\l֦9͢{jiX]BUV BEv#rZ&/( EM9 jq<Ӄ{I\3y~~AzfOp:4k`L%l~\Rz\ǟԝ/kl 'LɋָO2.53&Ӓ:M $ 41R7]85~R$`߅]$͗ƭ,Jn>.E%r>FJK,-8I[A;iRH §ԙ&ؿ7m-~?@3Q0,">DfW) 2E;5ޥh#KDIFc wN #I4ݎ;;F.k6xC8E$j&;oҼ%IMw4[*^'7?e!3pԈ/рߪw:-\oD)hj;AORs氍TdlI1-qpZ !Aפ:܀O{X !V„[w~Y53n)lpꝦ/P& g1'bjmBmxZwH756wڜQ6\pG\cX-jr|+r x3SKr+<'斜G>)(%7(B*#(*?$1'8'( ./,CQ[e"Kd&Դ㢢mUT R&gX)MG/ر h -JL^/>ATbo~ɻ%&o*$T_SVd.P-'?g6DPC#/I)إ߄4'[JOl.+?y ,'3 ݬ;2OP>佪v *xCKrJKJ&>T+N-pB* R݊s858KKrRKl48As2|K2+t "٩n9)Pn~EL9n@;%@{t)* BRRnlƸi}Xj> x{ȱCKr3R˃3R'~4s pq䋁 d[F@bJVJPyԲԢ$49cr?dEfLUXR+JS+2S'۲(Mbіj,Lq,*. J-.KI-*Rz1xq}šb} c-xgxZk\W3`y%RB5HmΐFj ,Jm4Kdv`e!XkVc&1$FƶZ%֪ZgO~{wfvRغrsνw9;;ejO*~J,+*YPG#X2DJ3TDZܤd%@"]ӦKjSqH[G_2:R41XMX5RIS!)[MrnL if_BK &n@ob.$AfI+T|,}TFTECO RޚfU% E{I=5BV4}EjImoV)U!0TWDKN T(ՔnFe`k(X@%'JP1>M!~aRQKD\.rLkgUr$BNӜ9IC߻y IT+u=Sj͎h&=j23TSfj\ 93/:|UM|jgj5z3-?<0%Ra2k]z _=gkنtMs(VFk= @X2;}(;M+ߌ ,] w [!Y*T멾+T+d'-9 WA_s&wLz+s7.3l5d&D &n5xFH>8:Z$SOKMp C9hФ\="*[CN/z8=|dVU붂.s.~Nq/^_Խ*Aek'Es5^BW߇~`CtcbJbě]uPD]NEKϮ/1eOp[MEϖ"j ̥<hcb2bgK*iKg c[lSWʴmeAr( e 9@Su c+p ꋜ)0)wWg]}kNu)cFJE )=wpdkE&E >i25Pe պ㝈62wZcl$KɦĻ=61SfbJ,p\XG佢D>~pJ5qKjpn}`_t 4WzeO9$c쑳qB@ࡕFݏº?THsN&W|'br ONrj%%OzߓSԿ&0Ɩ('?9egD[lnrkgtpR0?:O{\ښ*i"N_-G>H>Ytω-Y ‹)O)7SG__0`oCFw 4|}I.D?A2B'ˆ@V=q\9ς~E BI}}O;_KԩwzBYxC9xIvhO_b0=wAD R.( s{ FaecC_չAҿI/g!?iŬ}VjE!(w;rKVG[&v.WP߆. {㩔M|F:FL?ؐ'.hُQpQYOֲnfR3:copݞ4[YPYNP()/stghn2=9眻oYGйϥCgYYI2SWD!Dջ-JƧXz;cdblxl٠E,|EM&ko?0 q 3g' 1"d["Bشd:bZ<) 1V~zଡz\upFXbhvN5h1yV<6BC*#fDBKPt6T"ԩSH}&QG@7FȰF EG`&˳ S/ԧ""$m՘ȭSb|:Í \ˁpOZ: VP˔(ԙ|;AB啒i>Je4$ 4:i ,+!Y$R_ %u ^W:w\Nsu-J+V)^4zlhl:M썍Ɔ@T5/Qu7J!aͼ=谽pXa)iv MhX2'CG#<}ߡ&SueΊFk7;^JjWNYƔ_Eѡ#Xv''u~-^Gstvxg0aױRN~^dqZFwY:U6^ H)"I(&J,Q#SL\ DH6gKc d9z0*1SK05DD  Mt͎LWj={`ސ11-y#:$%=(JzI:=l3!+k*q<339ɕ6+,ezJI¾faXJPqzZ&(T{'UwfS~v9gVPis4s3~E=_9R+} :uRi:I xn.Uau3 WBOMSeRW)QeSiRLHFŵ;>64\C7}K]A>k$=RmpV @wmx-`mկUN< 3.C 3Jp.hYVWcG߇?j>@2U |2 \Ae*w]O?;!'KڪOq-zOEGx&[xUOG,̇1`'hRؤ ة8ImIKɪYxqͽ9JFJ=K{l/UoUj*}3kz%i{GaxS ~\͘7@ݝ+ɻlj1:B D/J/Un<.k[ڃQ^ܵ$K R!Dgm;L8@H~fz=[ ;(u/Fyـb&4/$Ujf?I3/+jŬQ,FK-&wmN`$HVZO~v_:1uq.9-paA"dTpG nv$K 9ce{6[)&GRq6Kқ!j';E>/ƭF0#!*j܅#1RzqÙpqN ΀#82?6PfQCujR sϞQɄAGG"DCueCGG*aَoX=FžrQ!0cCu ?L^,$Qt̄ 30g羕Nߍ,v%8;>wGPN.W2OؤrIS au.|xZ0]dϪ]=_\֞TE3ZķxC 0)q?WIh󙜐Uu(sKI[IٝtMw|QCh"٧Gkԫ4›vwmum@-k`)kYS4>VR'`6ŋgi5s.oy^-i&d0\ę{E|fDbr. "?G5;!؏}'|W{՗l!ʅG?&o״D-Z~ԹF_Q~dtĩt7q>d s "C }4e =ƾ~&d,-6\鋶(˾kJ+#ϔʻ "O/0">2Ѓ@r`I@Nnnc/A]fdwKZIN 0!xXzY&]~|JRd|6XPHle.l4*=$.9l|ZC|బlCٌ2yмC7XXb>O4QSGlG<6 mA5̈ԃv#{`E^z/KOE4*o!;fU0@ax!VoD nVT**dDQ`$A2Wm(V XqM듳̟oE(y u2QfEZlmk$d^hSDZM/, %8[ffs{-w wmǦ.5ryxmA56)NWZɚ/=+6AKΌGK~>0yQͨ]jH ߈F?| zM!-ƘqfIBn_y:1XxW٪{xR_HSQ綥ki}lvԂ"QNi gۡsl*"c |A= AD0^z z衧(N$ |}q}k[vKbaYS'"Z}q~\q?v)a p&נ7WY7HtvEua(:/oq._>Y9HqNbFƿ!Ƨ*(zܗ'V.%LMP6E+NT% IuJvCeVyFtEJv{ږb1"SnBay@`QM\))4T(l#PM¬+4J-009R5#Fjd8-Kœ풌Mzɞ%񛯖#͊i\ >!rx_gZ0B'0>)2:]"VfUbɶZۛR堌r12\e3|cM37_1A耓~qDƿqscsxW.dIs.ahYnsxU]oPgf Y;cf3%`2]@\ s!+- ^d^x'' l݌$}ONcy6!,QB-DjEc KG#U gֲz40KfiT`""ry%vY-\a/?vf(^]DlB+<1QwI#X:?9mAXbzquF9N=[eSz!o>'bBC6|Dc~3/efM1]MqaRHkI'jU.Pyحb dŧ1"]L3 P.6)'#m; O;(ncT)X} Y^VkӲ>+3(6Ao=an.U RPQAF o!"J&=BQ(`9ԡ9{fc3^hR^"v'Msqp`K,61Nz4WA%4"S?}BjPخir.v{V V HA+]Ask =7*ڪ2RtT:ogCQ:ytrx9dln\ΠANBĖC紿7zbdgd4&׷vM^ hΫDV?Ry`Ǟ˕sbWh隔E_tYvNQ$zmum݇'<\W]p^xBf^qAjrI~Q^.w_%N}|}ҤkPuy@ˣr9U(ռ(g7e3@j!x[μqBFix+E]Kq붂)x[ȸqB)j 3?m}ؤpb< o x[õAe^ɋY;+ xJm; 04qr f Fnؼ KtIBqj[Qbn_obvjPjrNr~^Ij^IpfU^yfJIPFjfzFfRN Ȁ,6c)lW x{ciɳYBRRGUoox;ys ,cY.Zx340031QK.+L/Je\ctM|U=KS!D_hnbvjZfN*+;> 3S_Z\칗vHyp߆*bvx+./>P.1aճakp %exιe) s `L\\Ed8Jx[ʼyEF͘-,&0s:zŇ{LNc1 :x[¼y#dnF7#P'_O?0נ`O?[ɩ 1x[¼y#dnF7CP'_O?0נ`O?[ɩΗ {3x[¼y#dNFP'_O?0נ`O?[ɩ :x340031QK.+L/Je\ctM|U=KS!D+C [(q7&P5y> 5- x}viuy9z9EY Ew[E^rm+#&fe2\Yfg>wj*ޝeuTW_\-m'iQ(~~Zɢc0I-߳r0Ez ˳drni7)_u\6d<(?Ԋ36>=P)&rq) eΠؘU-$lNݑe" Bs~Yҏdg^Z^0J./qz@TS# Lb_,Hx߃v /Ku?bCOrHMLI- H,*N-b;uv̲B (JM+fXNM(g}$713z8] -LKa&x8[ZWڭctoy킼" D4iTM*Gxj['my4&a[|mo1kHNP^y Fg8 rk36PUd'/ wye XNOC}zj2xx|[ 1J#o1>"^Ր<_y100644 GormInfo.plist=~3>6s )x“Tlq`#;^xc[am `MTo1>;KA!o.7 100644 GormInfo.plist0.3+Pi`k+qx6ab*3!" #100644 ChangeLogu=oV53&>40000 DocumentationͯsEW 3gl%qBDil#i%yߩ׆Nx v-ol}9zTS9%E'P5mKբ}7S* 'Jy#-|Փ"tgwx8[_{y-G~BrlHboys_*V٫^^M4SGx[iu Q,ro8^-x8[AGRf㛕Ό9>}oyYh C(l"(Fxv\=gHbƶSo<;/i)f~aie(100644 GNUmakefileu0x]x8&LloqhvbI" 5x8[4ۮ\X5VNoy5(X>Qe >U'Gxc[ (XUǚo1>z'DtI_8g]N)100644 GormInfo.plistmCQs;E64qXmMZ*qxR[6,\ys.n">w,o1{U0&Xg ,>4tTQ^/Z32D8_k"`x|[RcN|3$3Ӣo1>9J_Y)100644 GormInfo.plistNGT>Ht b/xtٱ=P xV[FmՖdЈ-,Lio<;СHw1T&T5ʮc100644 GNUmakefile/ϒW]#N:% +oaNC5i7F_*;medM~3$P$48;J=spn` oZjƓ$G,8xc[CA r(!q' ұo1>>g%hY.ml100644 GormInfo.plist'x/Umcߍө(w rxo[As`RG.o<;WOSȖY/׌)a100644 GNUmakefilema&&' REʰC&szX>}p\vҀ6~lV"rLx!&&qփ U-xr&&xJ棆Zm XFئ]( 5yNj';!m䲈3Cr\HT8 DT|(1X(`hG퓱  n7 x!&& .br!g W0xUmC_VʗF{=[߼f-Zdss~G-xUmCUۣoI֊QZۣVjyu>2-x!&&zb)š&<H4Fh,Y@/xUmCKW؇Q :X:=y,x-xT&&z;C"Pezj Z} hC4 S O\ZF8r{ ^/)=bx;&&CٌI}E0됊72ѝ72OYݬF [wYIxY&&} @.k9}ɳb@p%J#yNZlVcݗx:$BY Y%1gxT&&9=KA)S>a8M7*k78M_Ґnڌ V" &bx:&&9 ]qUWmJǭ[iMk~la|PFyv= 1lHxUmuU}vد;Mqk!U S8HQ1x>&&&KoҥXCf ls'9[lV4(|'4s HA1E8;Lx?&&&ŽMvEba1rDo(R'm?Қ6gcmRVBt~b8n  ($exW{:NdAwSˎpP3UOAbL20]h z(Ѵ6y7vL Ș ,s2%өwLsL"y ff }[[I%Mgۜ(;*| xFO|c=AEɩyEz Kj5S`SӶH{~QnXfj9\‚uR!ג?4eKI9lN_ nczxo%%> }-9&(R ;a? rQ|ͳ~AgsNVyn#V Gm+ꤸS,\mf鳚H3(hx340031QK.+L/Je\ctM|U=KS!D+dT+-jZhIWcTsFb^zO~:)SY` ~eFTKjZbiNI1Tz]֤WIbTadb .ɥy%`s>3&,{,`1PBsS2sRNwý[&UÔݨ`p࿜:Qۢ:̑U2'$/)O߰?oyˑU&e1ieó'*ufERה̒"}WfX-'6+MKLO-:R`+W7tac \+\ ?Z{P[1ܰr)J}=Zjs"*p/d"%Qh{b9EQղLJuQTiHQ?{#\R9>= p\[L(uqVm쏑&eVSz aGd7'e͇?q$0T0w7fi)RsRKJR<Ҟ|6Vc: 6_>lzy̲ĒTgTW/^7i~F9!) ILI%?gOJ#(dMN H@j򓊁J )^)lnڴeavHJ3RzsB"ljKr-}z 9]4nIf+u㢞%\!4(ʴ-,ks\(gjc4󺋫RL_pN{ _ѢM,[ )җ}/ ?`́گgIj;i% ׷YyGӳ,t ˾z/o8Z\pNu~3+;b9y ԌԢbPy|9um#D=-iX, L LxJ [~"r1ڑoʦ0+ă\e cFb+3):<Pf>5/fl7>y$^93tqO|r/cቓEXVGi5sOxzEA//s`3,9/gUDxR [mn`qlM0o8m9)vǮB{xWϟ,ݓg@%axk [UY $^k[ o^  ax2hQWHІos@vEłDsBHHJ09T?z,0yxx [ {J`ENH%/1'oEPiW<;"eILI9_6100644 IBPalette.m  #첲qFs+ zԓdG3fxsgtvZ՞20˭sq +s .xn [eEK}73AݑoIȄF̢ڳ^;h[,{rqX100644 IBPalette.mu%[0ölMdsHPQtRPL@8g@UBx8 [ԙxw]8i&oX7GIYhH^;}GxV [քU` mKy'o " M m]B{,ƺp} -pH+TJ/4h$dx{ [{gRM(io/,F 6H8 ,^I_FO# BcEh[ǨJ}l[ғ2x+eKzkzOg:z;bx}Rj@PRA )6[u vWIrMLg& {W>|o5|}gf{!$9~w|zcg0FY :f֟嘽\K&9!' 'R0K>ajV܊IS 5eXiP\9鹱6e}oN"-xy>NEU p* 9ţ4~=ss{ZH h4JAfm5;΢֭jsh)4L1ޚJ*aJԼb 9uoy QLHX/5j,UFCN]ǨV=۶ H}6j N/`LVB_2z`2VV3X jC5:/RH4j6+`dد(~ɠOmYCgrwWFcG>p?˅쭃}GKL+ą7%6?=//q3x.3f '\E4B^-dє4C-$rS$B1x3[ Z@L_6!D)9zj*9\/XoakBmD:֢%R->qzFLW0QJ4X-F&,E^OxZ2W=FR)tZe<%Q3c?9s¯u..;1S :&?RDeK;[V@Lh2UrS2y 5QuS;w32EG1w]3]t=:|[W+SFhH;zGi۫ELsN*VasO?y_]RxmJ1+_lPB(LLnHv5o BD(E\{s9Ldt{zu5CXVzUQX#Jc.9ޏ2 )kIhl\TpuSh*%B!לyeLk[XTn@LBSI1ygƾ;|a1♣$,PĦ T~4Ǧuh@iM0ˍ5B FP1T:r3 %;\8Kwws uFx;6F.##]C]cJu7it  xkf~4sbHbwu ~=qiR/xY8eY5++QTq; ga;c![Lm100644 readme.texiquҽ-7efu-&gxZ\s8`B.9;H ɢ 9m 7X100644 readme.texi  :; =)3hx{iȧy$ W^tNdF+x{icg%;.?wW[h (x7< FܛŖ zUpZσ+5syxiu9'TEx{ic}eQ;<`tf&& yz% Miy{MUT Qvnd'}z|_;ĸ,mx{i*Hq`?iLlɨ Kx9d7bFl9x;ʻwfk.Fx#WfJ;y;TlV+9L"V#֩r w[b8\xnڨm+jF&qJEh9D̼ /^G'|eF.[GMݙx8Rҗ+=0XժȾ(Fx~"< =: 8Ue=~\Y\msi͆D?`OFu7jRs $L)3D s[m@* t ]taӀLjJх$Rķ}M#:zvb@4:2*A*iD)āNs)PދH"_b_aY:cxJo&^{:BuPdٹI@|E4ͯJ󽙝ߛwB~CܝӥO`t=ǝ*9sdq:&v n#:&1|=L̜—a=upŽlW,`VeoZ(p^:#_(dJi,[g*6#nNΟ0_i6dʩO/fG3x4~=P;SOz|hI[Fik SXù,DžB~~{|W 0Rƺ p+ d9GGuVv R4 $?iCJvea<[Ʉzh<-ZsS]O[0L2)48| ܳp& aKM{S/m\^T8 F˖5hDk ߣ䊣b )Sp}yx=kZ^2)%E E)EnEy%Jg3` lVx"yf.q%vPxBO[view tableView]!; HS>#٦w"Rx$J( lHupJ x[!Gh}6sȱ8Vkx;lpM{> x31Լb'U[RV8ش7okgj̼bCx~oaIY%Fy%E9 3O}'c2y]V|1IK-*f;xCϵ~~9O^x_*ĒDgg*2U~ǮUֿoC3wԴ̜T♏7?Tr?rWY Sx60 kڭ,i+i}N]D6f di 憑GS PxgDnĤ԰rǒ̤Ғbϼɳ%'O+I+)vL|*t8 5%?<$9*TZZQ▙)J-άP_Yf>5gpf#i _y`=x{ⳟSKrJsR܀Ē"ϼɊ2“p'd'$%%3K3t8A$&g敠" ONɬJEїXYꖙe" 8I1X,%$19é$?oϲɍ“U&̫"1YVg*I7& ݚ-Q<9_Rkd5Y:%az& M^5YE!Zixx)PͥEy)e&$%&gg&eVpqT%砈dd䤺MƸ$ZX\l8QIe2c-s1%xY{]|ﶔ-Y 1Xk'8M kim/vrr%Ч~Ff"ZYʻimaN#dE7U Z&/VѮ*;v &ԸAn!JN\ Z\>s\ϱKsuӨo$˯*+Y'^*H{$*!D(f^G1`?*3Z\ɼ(dPFۍϏC6HF$i җ7 VjІX8<Y$<̆F`PHqeu9hs'WOOjdPhN$cT 2zt$R΢isޑفEA ӵQ0ii&JI%"J$hb+I8,rL5-cϻp*0Ǟ /=U`-勪{}Rqg:1zѴ^صFZwR%CğWI/qF$ ERD3"/8޴04g[?b8]` d/D-3j/qe6gZ nb@ @͵XgkC`Oe˱D?\?j{=r觍@_V2b̅WȲiob].e^yѬQAr  5WF67X= ,'xo"4cú6Eb8m~^9_F3R_ ToY%- Fsݨ0VNK\~wyA֬BS,az}_KL|d}\2hn@)RVv؝g(epwM l-.ŭ7Zy-cB|$^E`N4>Q?d8:AJRN:~%OWC=' Q(p>b5'aO;ŏʬ߂jxx`v_-p oBa o2O(ĘgLxG;Nו]\IBĵZbMw[3MXw mXkݺr$U }FT~Q Y׺$) KLOL- r1_Y[-,PCLAVsF#z4M%zc82kN#!a3W?R?"+u2l&L-Ҍ4H3:ȾP8p{4S;x6:5M U/H@rv4?)뤶 TtS=ӪhN)*bDS]౸$[܎] 6sdfO#%=8n5ey;c`6sNֹ!2#wq"Pe][:1{~=Psot~Y/!}E=iGM jU=GQs6*K}{3dn]b⫚u;^}m[̫]lrЖ^kP㪱z 2)Oe 5CN@DcΑ-4O4M5 (39m`"pgs𼞶U/-˗}y_hieu\ w0Οʚ>;j9K lIqveQ04R"<{Cu˭vX(-M}O]:^ٚW9X䮫 r,>RjEbLܚbThNe')yDk[`B.bByU*꩘Ӌ43NK RQ_sMGFO T=Ōhc-4042]4x *y4ϡ$qսcunÂ+C5aoл#DͺV!BE xx)TͥEINe&d&eVpq&%&g8@e2KRsˋSD2SsR<JR+J *,LIj/v:l3NfT5xkWͥEΩ99 %R2rRS3K3t8A J7 ˕ΰ^Ԃlvsv`Jf#vkŲ)/[fɕXܠUz5O?4Ve`ZG2gW}.e| NM>`"mewƥloLb`,{x_;t}>V2xKΆMҶpW+ 2ɬ V"xĵkH!q/wn=vvZLo y.x D4ԦUSăd"~.x; CʍR!S>˿~d*PI5sHIx^ i!@,$[ $ vbIx@6Iú(N?F6100644 main.mqggz"^*Jsf! lx^ T i]C UętvR֓<7d!(\S@RM+P<5',~"6^7npb^*b_.hV?"O^Z~#uީ!M㲓6uvOr9q3L/ E/xsIE5 kE1l}"ra]% Qxk|WͥEn@ڧ Hd(T2t}:I(أAơD C; uWuHC184J!B(QHryԒx"wY(\ *1q׳8, Kt‰E3V6 5vcZ%D+RבxjSnn^p |3i9-B ɔ Ӆc+cw+:dJ7upOouN&6dqoaXm`Yav$LM[B#@/մW7WqT^mk1N_P#{20N؆x8 B^"";<("y%SSd$S1nijxY*^YZ]pb:ZH ԋv,rN:| RpHy|1_y옣"N) $^c3Ǽ{z Ңefd1|{[D%` Hح cvq L,{uך&˩ށM(7R727{=PJK(q>loBloa{ VWG\G1p\_\3K\$0 Vȼ;MʓYA*qÁR9)ꚥ1,wm,aV%I QA+#g}jd/>"҃=U?H8EQ+!>|ϿWX2%P##RH %:rMdK#ՄtNƑ= Ȗ"DL'r ΀Q6cv]u=N>i7J)F/risv %OAf尜)F9RXrh}^oYq{'gn`n oF*{hhL͔gYCpΨnscQ<\h,,$8cPk".Tջ\TC{OF|{zMps1'hu޻<}Ne`s bO5觑2ģ?ĕ8 Ķ^츣Z4UH@%:8Bބ2:gIbLAe%B끚.-^'\?ZbBFEO+mKMN $taTosOrP~eko4Qt]}0|#Ҏ@WTYfksw@~?plӪuYN!mz §^(k ŝ3†az1}k1MNYg 75t}bi2*V'ܝ]c7 /O09<ظW=R`#_(="#_*_0ӧ\amcq128ˮ8+? C5$rÐ%8tǕy$uzIΗ m"NC~oivJ %tڀ Q+r_pd0XOWVVz"pz G`bu;?e8m?fzϣ{5gw8I)*6LJ w$ptyxc=WÏ3;O'ݠ %~C9ÔPHhӔ5'(e=iɋ +u.3P'yU>,6{ .~V8Yd2J7"Z՘LhXF: Q !BHNcqzWK<E,ry0   xWkpW]k%Y/˶$˒G7wNI$qI(mPZ;$jdr:P;▴}yHJ@ (36e:h ?sjZaOv^{Ͼ5>" "O Ƒ<"~d=1g"MdlLebl8e3):`g8G*q^L9<:R:̑?c;ȸ$!`<q671=c+Q@vŸùd&=,R&MxW2U*9ir`(U1D7׹cL@.Τ2Y`jΈ)gs%Tfs۫ƶX:Eׇ/nOXU8̵+{QPM8욞8*RXE>إtf(I"b筰~& (^TWXTׄYTmJ+28~ %;}5 ӨV*Iq^LDйuЛYCoflrh@♐ :pⶢV}ُ"2OX=[c=B J _PPP ս5 D;Jt>qw ["#VgN!OÉ/% 1Ԡ `@F >찢]݄t/öfǨcn~PjWI )/:_[\,kToUQ9;^gXʄׅ}*BOovZھͰWDȼݮTJ@iܩ/tii*+ 7R_1YayNp8s8sHpX@͇~dn4)PJ +wڐY8gԨ8lawMݚnm %bz݈5g)V[G' bMh2<R6{4Ϋ$f0Yf)VwErϓdHsR61G QvziH03;"~*9G'ZYSGVbxpNcʮƏJ}V:SL:Pd.%JFB`?:"OVY2 ZsoT Bg ;4uVn*г~f [>-~8qxܕвl7kWT:6dC>FVw>y'?}>_wQnZs`1w1zz× Ez#EwM0+8T*BC*8ÏUimɒ{qOŊ85Yx?QZHۿ ,ed]=ȷq}sB7촣o}$ *EGpLZ/f8\~x(}*t)kw҄_@T=sC/AkA 5g̻l&s5lװpU$pYu]+=1ir6L^g g7óvj:T'å' C| {g^(\DW;dKA?R츩cbXa)_=tJEQ?:MB?U0@IOs+z<|m\bl\2ϕ/8/ζy+sy5["Q~5O^&'c/q!ƫ` `l]Iv@GxWOwu/AJP%֛`[FO?S:~ɒR@6;KYpA\y"o׍iNm*Pt|\k`ARA‘&:RIAWpZl PM*‘:j?٣N%um":I>b(m~]re'mb裂RzÀaD9}2o9C|rJ&Ÿ{ɑ ]*-[PQOP<Р 5Ynh-}ة@SziQJ+z%huN?urLԵ}8ð"݊j\QkպBjlbwԘHAS^YԸLR 3*Vjr)-5C{6҃,-'zCo=][zn"9KgUf*XVF''d7$NfI7U2랡;3^7 3nΟxdft#tf""e _7!m̘ ?68Zz5קWZ̃70B(KQQ<,ᆢn}UnׅZ>Jv]Btݍ.Eq]LA| \Xz5&8}.vo`,L42RNPE|]/{c$e Ur@%Ƹ5cwg[xA`7s.p'rjKe"v$K$ Gs"%0 2 C~rosoL14O :]+ 9kqq.) ]-Hxo  8[3y6Zo/"=l>eLe t;|"PH>p‡u"M id=^g G(Q|+?](,hJ X~Ԡ+hG?Yޠ=BSbDA99AN54O6*ݜt? ]pRi=WtfzyN9[Ǒhуr߬"S _FLv}Z#,}m2MjI4[͜YYee0->Og5~k~׏N#g;}үCX槍 wݜC4 N㉢ͬ.X!\?"&Kϒ;hKr#¶^.v^Qx7}?Prig&Niq[U KYRCSG(nQ gQOP ?Ea ?C!@A_( gu 3~_סABksu ߊquwLΉU~-= i%v ( ?!O>ӟ"k4Ӷ*I^õ<:}ixJ\=zti);JLJL'J /||gP:L1xXMsF^?`!Ж+(PB[b;$&iȶpD)($t2 ӓ&g:*NO=П?a$31λv>Z?J%}k2kfSJ@(Dܟ̦kVܘiׅ5҂mkS,z#7847 ߪ! ANT._ uPwFTn'l`j-au*뺜}+?G8@ި͸^'snv#*Sq U`5,:b2߄7AfkAk[sZi!7zCMa_|z3VbcaTynmDSB(gNJ 1_2To;e¸:L2҅/Ln_G9E7%c5(@ 9[ٚk궵m`RfqCVܯjmlXTWƀXgᄘ!'5y{2L C I:%'U}aNc4] G*%y!ϔ{RlUy#ʛjeBaaޒP A>8o:W3݇38YRZ#dYu %Q P Sd*$T.;%=95u9I?OQNF2ں\&I!$]TG1ѭo7f))|qOÇJ[/Te0.IwtL9A'EGMBIV3,̲́ن?wy C1GQr-1+c,S2ޫ׻M*̊3]BwHnF}Av FNx Ϝ|(_2^"#8&8 < jMU1P@΢|[pC=dY}J,4X4d T+0ɾL{"wx p+\@oqcw=b$h[v򎗀 +bGm՟$mjrAgJp_uZg-V9W`M@nZw\M{I_rxuToG{^uPDHHߺ ;-: ?\@ i*aj!P%#&#!Jm#RYVjo NU{I]iiq9Q΂6I2}!YgK'ƵlV}7iWbx%T %*#o˿+=B|' P*{C3A#C 0Z>;[D7.;hu|V!K=H"R<g_$ە9 rzӃAd" ":'_2'ԟ2hN5@zN\Y^ҭ% ߼[4vҎƱT_4 jɦ6C~PC+i2P85<*}(s;o4$F[O@d#y zM[y/S}Vo+ǧD(Z Cpd#Ū }dDPr/M+M>u4G\f 8L0`+F <&ZcUi*"YweY])7X ,gixQV—pcpyŘToÌ),@jх M4-\k?>sQKt}$/BIxAOANmJi+n(-PJVPŤ$&zKkHL@b0G=fWbⱟ@yOի3-1L~ғd;*1b-d^]{+WOs gi`-NN+&0l0b vz*LnOxAc 5GߌnBq}m}c 'p)='cyoqP[%ƍ5̪  37*ZM$}BeC%]׍^ٙ3g~sΜ3󆚋*zr1}U]|$"yr4O&5tV ^DOI>OL-|FO'U5V;H o96CTR, ^:)Vjw^K4`ճ|UtjLB$SD!Irv.ZROZԑpGޡ^zL\UtRq.7.HdQ{JIBs"HM`dx!ABiR_CE7HLɤuPSӓcr"${\7g^e؃H{f.ёڈRǖ 3 -r+TnNī?I;#^a+հֽ ڬVɞYfn4 T R(lllHsbdh!rz5vcrgr=vwU767lO Bb[~P3 HK<1i5*A7mc58`MU67~7ZQ Q)Qb#`Y<Zmeyj( $3=Ta3g梞C>8,~tЌG3yN3& 1ȒAi@xȿJ\@]\NQNa1jwsMZ[e!}4zA˧iLɪeQ2tFNf/;ֹ֡0+6 @05*s..gއL fZ߆.0ٱ Sbt;9AL@}mX釓n˸D-x_,..ga+VڤQYF_aH9%eACGAҒ}*FZ_\pn5yP0xTTY OWrv0%'q?p#@u$TbPeҡjg+P]1M6jP\`-5) ,3GxW[k(1ADf ?4Ɋsʏ)A¥%,j= &'Ff|wZ-琏)zzm1^uBN4Dvb"jUM/Xc<5hv4hj fιr'dig*\_ zDgy\PubƮb?}>|NsT8ptOϣN_'nFJ0wzGjonׅr)S/zV/mt8O$Nګ#|yIMq}s>pͦP~SD%ӕ6WIwId=_q1תB}g[.^ ;̸r::],v?qpMx< =-|+r; _52$Ӗļ cau/7 MY `oHx~ȨFMsn e߱`,|WL|Q{M-R©>s)!s8?Fp S3(9#A ~_!QkEu!8A-~L^ө)6gE`!xE9HX4NQYAk695+Vx{NY`X#(s\gtVG&Esveb4nwᯈ 4C 27DzhEWY)xV[PWBBB rQ%!Q,m hD*%Bjbf.ڋizi;کә/}}33>?BCKoO?';m6kEQ;,Vf?<뱖cqMеG=A j8"UP(@EPRptPi],k43T_<6Mq`q~9\9A[qFK[zf HEi0d9^ җ'C_*җI2}> /k^iJE屧PnKS@~n9\V;?(D`@HZ*Q"Z#J^UFWAad8?#t)dAkq[n-@UL孪Hʁ2Xj`ՊZ37+s/uty.TԄF$#ՄI6M΄xyoh|wy;;K(_ !wBkZNmKg3~IUբF:|^֡g R}ֈv3͘+kjYL$-uށ$[ /=ۆjפ5 )M8d'Ď 0LM4ߒJ-@y;]TK';LNCՙ?(X>-릥Qppt"I.]Rr g4FʻFތtn4Jԯ}dl-zl|ڶW09B_ FBedJ\ǯ奶 s'R1wm'WWz3Tω ,*Ԓ5smKpM@pWG^s/fΕ.=WCrnV^}6Jz6bbͰ-+ >e`M֦W@8I r LN(21?l#^>)[8kfC:QVmHp3|D|O% M&&E%!yѼ$'1Хnr^wRCl\Р/nJ({8D .G𕀫$ t[K8#@hfK@~i=^-C˩X_zYU<x}VIPGmЂ! c86oIBlm1h xNr9T*7OrqR9$sHw7IHe~5GTmc& dxՇ22T<)JtnCZgؤuQ7SDE)t E32[тL"K݊ch&flfCW%)ICVh"x3*mΥ3=o+i)#|L=ͺYB}E!)#:Q_CÁjPm 3q12 }*H!#dw.TbMb-˦Xy}]Z>:r)A'%ֈ-mH=*ai#;)|O}h&\b9)6S7Q  `MvP[B";S|d ؋2y(u-/qHlLk&zFCu(彇~Eïn_JIYJVNU2ް3|2b8\5ដDZ^[oFQY} FjRfnzXtN1ú?`FZ3{0Lg 3*rj1Uq㢅lVJy% qs %J|r0̓-B}ʲR*Dyy/Wj8 U]nC-7EVqsȸ]b X2 I@›tM:p23^J]=ufdR,햎oq/e"^:+ ݣ +C=aݮiK÷ȧlmVk~>,H9-gpjRör/0x'Ơ (q`"6OLꚺ^լY/?:t&F?+ybS z#p禙bwk9E이UͫR .1O`S#C\Qpv]H$w ބS4]0z`"/z5T$3S/<C:P,SlŸO1E?ZUzf)meb8,.[7x}MOAgZZ-X^**դ&rPF6.fwċƣ'FcH~ggۅ{d(aZ7mZŮnMnDuSΓI?iQd*p_ B=mNP4&GYZ^>(MLf6<=6s۬GQec)bTTY4Fͮ7yFB1Gޔ4B x}X[XIO`$080zZG߄,`Ź|,=# ]eᘍ{Jr~%~$B? B: 0%S¹kVz?6D%"LKNB?GL Bu)ࢠ EUk%wF6qϰhG|Z$w9 \,z17n3&h8'eŚ ȟ, .Z8)Z9fMmrq~ٹi=uK / "lktSV鷐JۊLy1,dY̨U-֬:F}>Ӎmg^5Z\芞9u!\yFp30}Nf$C<䎹Y73\T1jFU3[.d ÜB6ᆱMXnp݆~Ky@`9CY`N;4J;e8pnnb|1`KE7 KȊYk6_} =x)PͥE%Ee&՗gVg$gpqT%KQĒӋKRsSsr2)ENpi])E%0 @++ P&t6/faE[xk\!ZͥEN%%y uS2rRS3K3t8AJ݀JaʂTĒ̊gv2%x)PͥE9)Ee&甸t8A҉9%yEyyIn9)Hb$uyIEi!@bX~AIf~obIQfT8/ $"TdN P* 8*T좲ĜT3c12gC Ux!]ͥE%E%%EI%'NO,-/J-HM,q*-)iK.JM+ K)MuLI&Vdbga/*^XP hh'7s13M>لQ\,>x[sFr$;$1Ґ#C IiRbH A`K"'״3L::}o0xkO =k˒倒㝣ggw̵MC.Jz%^sb|%Nׄɚ'H\65ՐU ^@3٥{rΠO2Ų!JP4U0d:2>+j|Lu!* 6 Nhz4"iz1#*zˆn+MN^#Hki`JdC 2K $OA@ P&{U1fn]'cֵSt@&쮇X7KgH|vC*X(>!4(b} Z?8[.1H,I]8d뷜0؜Oo/ed-]C@c!Ԝ.eը@PPYdCr˅-Pr kĺrE v}VAVT*c3a1JF#'=<铖 ʺ.r~y.Ō%)'.bQUA *!ih5`M,3tVYk͓MC0 p|"V`/a MOs4S.ײ"2u54t0xx s&]"eA4pTCO CS3a+puus^r8HSHΗs+`aYޒub'rưW渏fxf$̣hPE7<0tq8^hLf5`Ju^] AX(.*=}{9)'a̖l(f,'X1_ZXzEiG)[4S+f5;j:8e':A0tZ}7DBo m'z JGTD4]D<g$w")dz%yn$<ôk_=N? .l VxU#*bQSog#wwΝg&ת ʰZB>>D,"M>3Op 7xxey5ާ{ ԍW*.d0 Vnqw–;ap[6" mGПcɚ/T^\KXv?j;CS0My\07OcqwuO [1Mɜ;|wOh (1P"A<{,AXY[Z̽bpG *PB * TP8Ax FA6@7>sxnL\#^۶li܀ox~iq[66[w4kv}{ZSRIjWpcU-\<9Okr=_tɊBx٠vA-OD_ _ %o6w\.͹9ڔ% G1 ҧH)  b(DZ46|,6ZG+%7G!2`+ϸ6f -vk56AxowX7uaLud@:8)mH'!]ST#^tB m NH?؁_'>)]k2 Ґ^Cm3C{X[OfB>a?kbk 퀍&o~DCpHY1iЎRaFE W Jl~S "qKx67GMQ+H?N'Z4N2`0vxOc..񨻍[FȒ Y,4A>ovxޯH&V$8vb^6rleXΚX9aX-Δ` _~ @jXL:$f٩RhNKy+ l|.rq,..2.H$Bb:,"(X3řXKZa:RkEKE,*quQ zz&>ћ[tm!.9L[ WJr?ܳIDWq> D`/4H@xWMlEViΏpKF7^&M\TN\S'Z5h;ӬwݍH Q@z!P@,?儸TUR (8 $XmJW!R$v7zy[^|BLKX%/gK#DeTI XQH`srڕlT $AKYDUdU=AyRAD2!4OsX`h؈QzH2"f@Z}ϯ0L+yAcDTuh'p |6f] TQ35 ?ww2c+ܻl dzp5ȚIV3+39= <ݖkhUk!aw;+G4~Sѿ{qU )핉z@k{䇕 VeZiL-_aNjn*|E`6;|w:C3,1Ho Ås`q6 ]`TO1KEGwRGMW:@ےlDs60ߑ&v!kE9eXD"92gb/9 w/E=x(-*쳘I⸩L/o.j \[kW(wo U+dxuP=lRQΫRmJch*6ֲ.JEC>^}TAKܩNv&Njb%63{{i#@q٠)Mn5 vXi8*3lPj-Lր82`BbRH:T{.YHVwy̎Us;w_[V o`M\ + = MY]Zܢnmt s-1 FAZm`㢴x+( 1X]Lj0%L yӺdVtKCE U M!kn=]PV UMz/'|jgx=ZR zKK$Ħ%J1mҥ2]]F0TG{?N0}S"namfOU(lx5~rm ¢ͻ;0!H˞!sc ͋}"=ͥ6=ʢw obx[sk., &/f1=/Vx!XͥENEũE y J2|K2+6Fdm xklRܐĤ԰BIE)E%E:\ 5EUy%9E99E%ˋ=R33J܀&A5&dSZTn3;24xZ{G]ɧ-۩i]&)-:!sĒ;XRY[fSi9 tkR m9e@IZr6冧?#hGɖXxoggvygos:۝63S çwL%3TJ 5xZi->j{ԌEڑL [q]2fdIZ;`&RțRe'D57X2t[EE'TKˤmu$֏o۲7 x3.qEmjRe@6m Y5GV-j>g;v"ۍlj4Y$cƍJ dnb:9NXiKʩtF _2Hzr~)O7BFﶻTM%A yb^NxE`UJ]*ccg5K%z =lr4Xv\3OAJ#K" Y#n;738n?Zz<}fv[:욷\pi=popo; %U uz]C":SRB렳^ uut Dk88^|PiEUM$|i^p> b' {k0rK_&eںzŅzxRg7>djL]EăZ¹9p[EZ1؅T%!4GI_-\%D87@9W"HCŖ JHn2Zn'AwU\-LԿocϛf9ccf$TVLǤ;<ɹBzm␚ e} bϻԆH~7Pq:`'AɜNJ /ssHwCLuN[Ҳ[ + %j@fkLI߃'֠;*V\DqW~|q[TIqO=6{YrH4W!pn\@OG $ĺ/'ȝd+.噀,g!7DYDr> {ygɗrO2o*ʾ K$-ዢR)k돦<9YR@zR$R). GDy_{ 2/.D苣R%PTSEwq4; ۻ(9g{ܰ?׏SPVBY? +8a]DN+$>h*WJn4|c_)NJ J>b|T5 #4'`IU-8lC;wu==_qϋ)Ysu?#&թijVm^W%e.ihZƋ WaH>2 0-{X_ -"xۗJeefӭs-i<@8`Z.9-mVWT]tV*:뜳G/__!TgfW ^;LPy['"~Jه:EEzbjQovGg *"ا@b˔XW۴,^S AoLxAo&/A@oh/֪D@wT`6l'N5]QfxG8DiDFxySk)cPyn>&KLZ"Ĝ#[_DȼVA ذ~v8O:b,+ĸ)bxib<F?c?s;3Q\_Dn m/rg-N_E<m~ML߰6Mlԍƿ1yD~S$ʑ1݇N/8:E?5M?5LBEPp_Ep+o]%'U}qғ(v: Bx{{F*FF͓u@x`y1 L 8G!H}i߰SaJ^S1dh$HMؔ1(#䔰>HY0P길"1," QR jr)c܆glfه@ @2B?09l6R09FxU[wUI4&Mt\ڦISJi M`K@E * i;iLA x݈VE@+ Ek?|@sN,pwgvU9Ll[N/$kp싘Dc380XXXɤ!̘Dx8ېKI#k戱HYV+ft:-Sb2Ii$ʫTCx%PjXHU-qYE", Ijz#Cl͸j` )x.:u>U4Ka".Ţԅ)""HT w' ,-ɥ9ȡ.f7=|DvgT"jQM~0ZGg #0RF- pۚH@K.떨ˋ;8\|X,Wp[w& {411I&j4)vM&Ld[ gs"iULfe /(V"BM *jrXb;̢&C$ώN'%0e/Ks2y]gBCg-`GMC]H膓!!4/!NO  $]]'tP"“:ZjE_S%p'#{,Zs'* %2:vqy~pA6hm@1.tmr"p|oI-D-( Sfb>Wv g*:tB &Y]}9,ytX8v؝`lr jDT͙t`]}w]]@p ݓ?5iOdޗH#$ .^8^.c+fLa-C3J$uoqp:.t욯b,bPO r`_Oa^zK8ʈk8/j32836*KrXV!tأ(p .V7dˇs ګD 'u ~nuS076j6 L$?ִ;ԙpoQxKlhIHhAN` A?; $i]ʑf=PW N p򤜒\"&$G,9 kP^K=j'h,܉# ]E j}pp▏S9rAV!TpCWy[U1^| Og, 9!_P%W0j⿦^r%k! \V!2ÊŻ2(NUD]CBuFHƷ8|Gu9r1CPUN,#.x1k?7̢zz@_PYX5!B3$(/1',35%$js$ 3g^qAj2P9'/17uX6 2)(l)V%`Sgzm9t60Hadi( 8lc;mUvؕXN6fך\/Ť?yfGJN}OJ3RS2J2u&lqFɛ&ҮW̒b>ǢJh`ҒĤTBbNN~r,Р̒̒ Ă̒J+Xk. ѨF(V @Hv, r tL  7147)?% 'h-=y%8]QZk=Y lxϸp TnA~Q{~Q_pHbRNjXfj^fs͍|l N8p_O~R~f;>ɋ$AқW(x p*aN2N^e9x>f+x[T!fy)RWsO/(H`Jy["6P\2_^~,5!BwDxېs4E̓okMcg'8V=nl1,x^L̤Ȥ0YY| U'smdfL(1q3Jd ex[u6f]ELe) )99\\ A>y)HBN%%y`҂" E-x]'+L(g|Aw8'JLΞleT:iGe7?]@=l.Wb7HNx1EB#-+ `h $J# hxGw۴xTkXۄ6-Ka0u FӦANR)iRХ}ƶ';z{(ZzꭗO[GOކO3S]66}خznGomlqƆΠrJ|Q (V,a.vhSt!!!X1iz;]:t\;脎gΩD@,E_qFt]<ZnG6V }|Bc!$9rҝ*VM:IP~xꥁlC5ɁN\z~F:<֩UWBZ[n+_-NWaxYOF3'6i3j>MP#uEk-GҒh*D\.^I6.6 nh !PBZm9K`5p"1R"c!>-MI~PI~UOTSb7=ް=0CyST]a#2#QN{zӺ>ؤ8،8?\%Ueo$)[ꆞop?0_=~D;\JKδaFf>dPJ?V#S?rDԳL }Fa&'&_\T& %嗙.I_PD7 wWC,ɯ^]YOo0x340031QK.+L/Je\ctM|U=KS!DKbIb@bNjII^IfZC^[)Z_<:TZwԴ̜T3+aT:q=Xars+< RKsSxEOy-CS6ë1(pۗ>vx _./R݀t"Ev 7MmuNxuUה}u-m(ҿp{n1ʝ7IgnbzjXfj9J>4ь9ʜ+SCu-lp_to'6ܤ"<~ >o[pr?Ob'4=G~vEl*H+$!%=+2#d_9m7'pyYgq[;P| Lb\#K{?{}ù:zaPuy@GrH*#Ku:rx?&6mjZ100644 main.mM =pZ@Zo@f0ANx{u&YvJ[NѺ\pIS0 k3x;={d;xǽ!er6 ^ XT&aY ؿxYG]I+qlqKS i:IQݐDSs6ֱ7j僫.p9PCRBMK[??#?ÛjW++Rw{ofgJIkeML&}LE*HS HM%LB-i(k?H9{ Cԙi%+j1mAқLyud! hO)]S˨0^BTquV44,ΪZ!2j\8Y,"UoCІ=A2OdAt2C$GAAԼ(r>GG:Iw2Ey"ԃgҪZ1&B!Hgp-=b}ȿ{րN;4-y dʾK%. 9QciGO`z Η[1vHkd# {N"q}f6HnE08;fJW)}ᘃp =$+-˹q8{1EU֠ޅ60v`): V"1Y=.za: &n< < >JpU Fi2RJSN[aڞM-H$t>B/t>m:յ9us+WȱOH<˅@{~u,B6( tˏ..ʙMMIBI/@/"{ `Hy 4D4FZmW)=N-cV2f:xtQvTk^ц(_,|f,47˰#z7mhM4` |XMW`ݳda;n M9N8w"c:0GdYSJ &ʈjtØ0t֤(LpHN 3$_ȿA$r=z2x;X} o8VE"|4@&uIhG9^ǂhIôVj[/ԺgWni' e8[:ŬZ() 4Cp{*LY#=v4P:ex/}>Y~__x_Nayw[&gi0{)PE$%@! ΕR$ӑZֲ7Aa'&K9sA;.!~LOK: Ji4K㗧ͳr#b0" $MHq<øo,|F1cC29P.fA r\,2l=3\(hE4;D=(G&]GN41巀MfD7u4 &g{,hѷյ̕?.Wlq~ ,_l:?,0WcLx\/ cEx*cVK|ꇯ+үZ}1aEe9/\j0 kZ/azgz? 8ĸ]Om9j}՟IjѺIkY{wd94MLUY];]O`޾H9"|W|SBAzxCd=S +J{.=~d][Q~9^YEx;pl5gnvw|?*TXag KN*zO2\)T^5f>i^6(\s(lSG( P#3 a7msj:N2 _Go b,t߳#Ѥos(Q9_aq-7NyD i-MGqR#m%adI\}I5tܦB1N S<I7Gfu AS(k? (>b!â) UU=ϐXCu%,r=gSF^7m$bz=) J^A[o4 L8HfrVJJ}fVn2]D%C_D㪆v: uI#1r*R  dOĄJ +jI*!\TLU~@בA&p"TiZrVm=oo{] m0H |5ݓB?a01 d2_`NZJ0yP SAr"k=嬸8K.x&.)ٽHutQSGT p% i)T^A"rS{=C̦Il^ۖi@ncRmc-=~#]gTJ,dsXcp">;QbW/Iz . G5 ui[8(|KA#GQF  68, .}BD#92bS1)hwXKY\:3$A 7hayRwA{a!XDWhP l̊Xھmy[Î%.lKHCq%#̪p_eY]a躕Glƺv A C ,x.Uhp)?o`xk!\ͥEa<\RR|K2+t8AJRS2KrR3K3yn9)P~qrbNf^:D3;. _xZ xW~|_ĀrdM*Ɏ@#=8SYZZENi9J҂p9J!\MUJL[pBrPr||{Oծde/ݑ峚ꍦc^׿E.$DĠԢJRNI" GF'cm%iGvѢ yHi^u#L-$P#0}9xuRIepUf}O]柺5=}&:%_sۓ)D{֘=kMSP#x&Ւpn-&Ԅ#t>֪'Ș66Ri1 QS# G&uR#l3nhdԙdԉ [V hmbLQ;#s&.2q7Az9W֔X1 *gDR_+<,L[_ R+``s`^pZ6l5l3ɗn3D(/@Gy$DT2O_ZG|h!uMNpVCCnbm{F2]Il9iQB/8Zp=SNz tI~ڰ"'yYwkGSf3zSYMlV`EvꑃjBw@7mƈ0M(&FBs$ɍ{IGNlz/nQ壔Ћ-0$J4& :B?H4bL+c05Ea Dn\8xRrAVd I9ei5YL$g%a@o=tOz-&3ճYt\VhRhhc W Ï%d2w MESu:Ggl῿Dmu T]Gγ؜@aMNU)Ѓ.0o)ja)Yp"8b.46  CâsRC]h9\?oc2[eFkBɒ&yQ[ri\B2 š5N%j%{ZVnZ2iq#%N5E6*T-s?Ιg>(/eYr3Q+159.'Ieb%K EpFe1ch"m4&Jbve8qDy J,rL^UBP=vxb|% Kyob3rRӫm)#.шUBǰ0h' ^2Nd_#DA)AX:d%2&Spi m'4|RNhJJ'"n\_\>pWY^euծLB&?ac֐EntD~feD,H Y"?k#sHkJ=roeDLO {_EdKkT.{_^{1!K N4uYJU@h ö4"ij4ucEKJCQa:,͏TM~b\=&j8D63UnB߲06ʸ?A# q1<|0nAjqi'@8Q3o]ߓgpI63ISp4Z]?P8Ip~q*1 QT˝1+-OF3lvmg;\ǿ>%>hnXSwqM: sO 8ǝJ5vqNÿP 0(mdPQ#~󙹳xwGgגbKJqڒJ!) vR9DNKK6ҮXlH6uywˣ-Vp;3]xwGsgg mUҚ~&(S>ʲ'TLH$=W,yӰU,E&݅3Zɦd 궺\%[7 zՎB1\F_8h[%+?p/T8& F4&~LZW5kjۚuXMq^ud] &1)H( :LݶM ="u2+$ tmTxI[Fq8Lj]BRӄ7{(3)3edk%I]βTN-E-ǃn 7 -1Ȣ,Mp(b|VZVt Vȁ6[V=9zITnOP;2|WNc8G=!.c^P&anzā]KǤY )1KtTR&ЧH/h[U-O3!}'i؏t#2@44 1rd;!Y Pi7>Rd˛. #„|jE_T[+_a57/E 7C_]hEꋳB5Í~饏;Bi 0a: 9HI$gK9 [T.EHŭ$?"Ewqn6nA{ 'F16j%3@'DŽBLvqx!9iH ɱz*8o|8|"Obᢹ8wN bsMСK'KYJR\# DBfTA:OI=ƒNA <`I?ʞ9sV'Ӎ ֟3x)h磋5f8}~_OӷYm'5sΡ_o___?:oonom>_ Zkѵ/&.k6[ᚃgYr`&$\n$Α&O%( ~ܧہY V`)#[>3$٢VSmZhF2FO=lIAI.ljtJV7q1\ov #dLf 25s\f#l(oGIor]upysFwF_QWSwOn13ʍF_W9 ʲI_ ͜$Hn!rYϴm,<%vv)D gܓn\>]^x>ﲼ|?cӄ]'whЌoq3i2B_ig&U؎NVF!lnW466NԭMw#^uEU*^BBuTb8MQ(Q ;pPdxE(׸嚗K8?dhE[ox'$jgV~k Z;\F ?cW<*šY_W V`ᗼUZJo[j\_?ƨMݰo(GaD4nÛμ2iA[T*SG[zS`4``m8¦qݶ xk:>9:"䌎6Ĵ4;'w?s߽`vlN >~BGAVk')E^.__ wyqC G `A1Ls_%ymb1xE Ln?88a\)x"n'3H*fYP8&Z !PC[.Id!dr-0juJod^H1X'Y-՚!|abTu4#og}Q$S>N3b$* p)n8 3UMY.AbJ_nX ˁ@o?ExڪC9a -4M VtZm,r+K /uW]j7lwdҷAف(Mj';=6(%ҟ}@@خ}F1kS^'v`h?Tl8}nj!#d I:$?sC*˪b\uQU++r<D1j˗ `ktc6>ͨ:J򍔪ƾy(t$3d}8Gr/)& 3鬰 l]n= qoUtKzʤ1H:O֟[<`ԑ%CL1q:+0XE 䲪 n50?iͩ/WVR4:l OSacB7USHяYZ*evƦțopx(ߖUȿ6OԀXB+PSJXc;o.k@8'aevD/mRMar'\e(LڇǓVi0EkպTO70x0*甆^sZ'.4`lgkfgb#hrpa^ҾQL+9WKy.a;/ӟK2Bt5ĜC *k2}њƒ1gFe;Uh{;0lόqx_LHWJlb hv|N||0R5tO&p^I0FѸM YIbe- 1HЌyCg3ַ,m}-AB׬y)Ga >{Sv8a?UBLL鞞켡V/;x`sVF) 6w׾RxC '/dP"܀̲ĒT %.̼ҔT%f&{y% ֓7:͇beYxeJ@E'VERRt҅RqvQP$I۩NILR[*Žp#.|ʝפps uBUa,2Nk |JKOy431Z藾W2=eM!܍O NA[lmpج׊WVX Axٽ*"H [Pu+~SLD(Y{b.a ,L,K*3]<ɾ16㓣L=a>D[a"(-|8̨FaAUҼ(Ʒ_mxCNi PZɪ K)I!-|~[>^/9=u~Y] 6r~T x4mport]Z3<H3 e@,#cc : 3Cx/6vԢl?%Oй89AxsG3\!gfIj[fjN 2yT6#-"'O(&ᜟ_1y|X&7al  `*yxvq_r,2UߺRtxk;ɺ"V/ ɄiD'(e楇%攦jnp,Ax{q> *5xMt43S4RRsr򓹪\}\]53R5BťE0U\yM8<97wwKK&ϐ,UtsU1B8&Kn> {"+(m1&ÀsM8y~d`ɷxm67zyxqC)2(ĜԒT ;.̼ҔT%==} r/ (,KI+qqqk)L7:ٝ_f_ppfU$畤敀6eڜ..8E\hb q$ |xaf>%==} r/P|" zrdiq^̪̔ĤXk.ԼPBtz6\ `웘\acKdAz%O'Nat ,/?9C7Dl,x[0aC^i#lxgCL!}m2x[¼yC #TF{͢x{~BXQʚLmlׅknZ$͕ۤ26tHE]I/O 񱢪x׼1El_#LۀbT@I#(tt;|H$KЗg!J޻Jkӕs 328 >ou ̬J{D 6VdJ+n"q|@dH<4 ҆Yw[:̕Cɮ}'d@72bY:7$rk4? a}a}hkĢθhwXyuh &}4aJd5ߋ=]6rl}'Y4YqԼL$0gU'E!@r-~GyȨD| Ҫ7쓥AyOSqh3maU0  9p0VVce[=L~FwoVMECnEaPWvBLm(5~JSMﺯN`J( ;L {#:M4·$5H3G) . wn2+7~V:P(gD9V&(YaƻY>dۜRzgy̟OLwI ="nI 7E}Wjg%gta㓑IY#5*B;@~"XQ5ӽ3j>&4{Zr&g!#Ŏ2{rS姸J<bGD -'dk67\_5X'd} _ԁ䳥úR%rPXm^%?_6h\vUѕ@w嵣hwt |eSsς_H'?hm5`_U_[\p {%-#,&vIvIVV5-AҡIS`YÄzILCuv7Q"j%\ *nV8k +-Uebq> p|(b,d>I"b+qdIOzwYņ`bSkU"[&g!%{EG+O+\ fyL%ElkӇԣ3^EۄʐdDcͿGJ"T="֮h#Op-w臩$%-Ps>=ιe&GڲBӊJ~5?=RVK4k*L62alC(Jͅ?*v5$@ i( :nU8=.t Kk&ړG!䈡QU+R! 6W~ Sϗ)kd_˶Os q13=fV^NB &[EZҏ6ݎL.zt!/k{XG6NB*a)%6|1v4lFǼp.rI Md*pOA{/HfL"2a{[^%*_ `H3tClav[΍7xY>eQRzFaq^92g1GUAiH0}"cf-VgLu&b< G2Fﱛ!I6v]wyJkmݨdQ FX l#j5ক6TJ.DeƢ{5d %8hqf:D^n9E0cH.v/,0&_P[8ʸ0" -^Wq B &N/ 2xIuU Nd8޲-]!=U>5@m#-Bb£38oh70U*yn>.^)i{Զk>`100644 GormDocument.m uIH F^x kM Ex[[go^s`cmoNUmakefile+T"gWyved|W_}[ϏMG* ~100644 GormDocument.m_o3[3Odx"F0xkgiqFQFHW6 VMꕓ D23xk[&۔BUkQq%o%Ѓd%7_P =)+wM9bcKu/_U2jͳ7 3szx8[<zjY:oj^_xbE7 ;Fx9[y`S?Poס =ڷFOGx9[TPW!_ u| 1o_^AJ`l6YF7 Gxz[ɕˤG>;#RAOo>:ؒ:fmdM D$w100644 GormDocument.mG ݣ`^Es!c&cg[100644 GormDocument.mT˵R 4.Cɪ}pxe7 w^6L߳ݲ?{GIh}XBpaד>}[v:qKr)4y9f E "遐V M8)x=abH"weRgrZ?7i%bbxS[ݑDI`6m8uo`m=˺y/oI³qx:ɵhg7 h b8%axv[Ȓ*Bk!teD o&8}k|=r7R4 A#{P8_ ʱc{d 1X  ;a0[vG+똪P{? $9xR[OJ#bk*>$o:%gyϢ6Xk 7ADT h? (gxg*F ',CkXx;#6%WxZKs6>7Bv&lN5ҁ(HBMd߻% $8 `}lvdir+Y-|jg3Qt.k=+s DbV "l ) 0 . /i}6LA/AH7B3m]hX4:W)ꦢ#{]yPjG]Ӡ󜔏{IB"R-\1,I4ON4tk"{Y )G8#JKКТTgS<~gkVFWFZj? ۅ(u/|[Dmc<6c;>G>!L>h9h(Pt!l#܋xA5~LMKLH EL}%t#ӂos׆lC1^_g]E_BBY [$ !yB5)&7$QJuTRKR;yZ9,j;[u λ.*㰁쩫Jupg F݀!ftߣđ䀃-*4 O{ m ) O@%<^ƓL]=i*ȌB*TDOnW Bolsg$8+Viq Tq;OηI53ECd,vA3AෛM4b[Uצ…A}S=A"ݚ[z }=RpgX_L@{g$a;rStao 1}f;=urIBzo'WCDMJFH& wStrO#:vNC=|5OTrIJϝAM l%(=%hyl"39+bmECʐ3M\+5hb/6Ỻvn>R)/+J5- )dX;700.Q\+{b eQV_;Sʦa4m*|1ײ2.!@rZhA#fȼHwt _EQhXL)8ܤW p;iI"8)ѳ!%f*~D>$6WOfWM8(x|6P3 iq1'e׹n< qkϘHxX{k0#W n5%4!/-TRQ4<>@^:,{L ER CdTjq08F+pS_۾Q~)7n|m;[YEZP:lv0`lS=B\p7U3&- iuf0Ѓ[gKhy'v*wm:|A"-*(لQ-S4xBqrѵG7rAP_ dK5b_(IAҼa[ QoA)|@0Mt%{A \u\!M/d]`gع٫zZS' lc!*Ո%`O]w%ˈ}p'֡6Syt K)/-o!Gyۄ^uJ))Rh]OnT4GBgkIW>3O)G]{2w׻@WE/C7 y| 5KfHg<4w<6NּfxB}{+xdMɯ߂_'嚜 %YI= ͊2y&/XQ{?xk /_crIf~FY7͸YPWB84x1p$cf>%,%M&]xx5p;|ѓn>̦e@{ xEtDWLr*g6/fDVIM5Gɏ!(KmY&twf~y^f&9 ʩy)i\g'x[9)sC3orJjZf^̌ ll(xy<}Cf]T$e xkt:ӆ_ Qc.NI|\brfc w {i6&}eD\S2Ks₩@ &TbRdTH? @+A0xT66UsVs)hCkmho _o *ooȯuI[ d#MYx[yc53dkf'܂ǘU 佹xko+6)J\Esٱs9a9PbMqǾ\S-qgg=˃Vc4rbX,xw/Y*i R)2 X'~~-l/^dio\pgQ&̂ ͅY.En`pS$1$Z-$HD*(f\IxR1Wa4]#xT3)r3\ LdryGqM|)Xd3ƒ32T4YC#*E$ GS8 E Swl"JL-&Wq#2e(X|\tZŇUxJQEEf`, | #wW'?|pgh$.D_\'Wt_D$" ) &f@^Yp/Aq>>D*%>I'HT+Vibqzv_xd߃:OM]_|OmWv(Xg{yn IH|PND^Ng8bO0Im_Obd|Pi =A;sĻ` @a$,0LnwBD< -@q2M"7{|KHr§LƠ(%{]z3gȵ|(BSpY ]Xbb@iꅖ pZ`/H|<u_03T%G2 g`$w%B< Pq&Dit nѨI4Y   <k5#v<đ=E4| s?"JDH$RPZ2r3e̼݊yftFi sY,cQw|DLw|$ $hI菃c={ g"^pKϓ(& PY&f9Ȱ(""26X U> Gyp>d`;˞`CMȢN-;& noex^PJ ;CfptyfoGɝlp xA 1ǙlV<`vL=p?L +Eza%e1y<;='lՑ>^<@iPDcƛ`A3/mJJ~NԍvK=p%T<2di(d\%wO$Ժ ʗ225̈́:/ dѿ!/346 z,Tf׊-L2X'3)fQB.Ik Q*uun G Q4dUbP!42Q(.e`!ɥ^cSVq4w {xW"J[(7񬎁.RinS ݌zdc,XBb-k ȍmD]B)htXcL Ac5lLn;Khkw RVO6EʃʈY_lrAQFfP懰MUK#8MN$gQqX+s>)31_=c:i|+-D`.S:{*š6xWf q+V0XQu&n_עVG?[{-I>?'mpK4*c/:.2B2vGEnHOOOIG( 1v|'/etL[)AcnEŦ7! ~PnOXr;;;>5,袮d2SxN_@DMx}%nS=+'4E M\ƺAx5WnPK:c}*̭Q[V܅VjT5鱓JTSE>n. Ίԯlmܶ2Dy4QOÌLhI1ߕh.n3'PZQEtl"{=9[`\)kJm%uQLx;S.ҽ(q8zz3uf:Uhk)޳l/db!hV?ת,tW`7n< :2Aph.l 5diw&<@ n*I@)k]׏;tZS7s}MVe;CV;cCmڇocL<% ҹ JHeڅi,qtYG6:&}FfYͺߤ&.ׄŋF8ǞM(8"*`7:;\ql#-O0Jj’Elg[迗Gb-r7lF(jͽ!5|޷_4Ll%xNjnHU(Vi:T:ru,1 oxmU>RZlFy7עFt_XoB[:uk/'o~-CU;lTw=cvI/o\+`iX[>z5~aA!P&kO?I)yMʵ WC!{ARid:Ka6ǠߢoQWDsӎiPT) Pm&9:J[;~g  wߙSLc{V>05-A[+\9ŏ/76~PcE*=^ YD 0sDDm#rw!V#5g ^x kU#.y]|:A̔œ Պ^KDBmV&}dі20Z$OiG3H溶kTF f3y{mYN?o4jS3V_,ԼHӼsW=_MBH}sYLgxYkK;zwZA!p0n nRn[;Zu-[A5z^6@OKmGܢklizп)6FX,+F[ߦç?ޝ r˰RKM^,U__ᚒY_Ptf!n;Y xq}C#rfnA~Q{~Qs~^IQ~kJfI~^BQNxqC'̂R\ʙy9) JEEe%zJ\2OϬ)$Y%'Hx{qC#3knA~Qvf(k/$uY ’d}x;+=QzC%܉yxm'Oq^x}TmL[U-声(E-0Eh-0m5vUd&fYqqѹ2e#F?ƙ׹|T`Iy=ys[͒CW?t'&4/d㤛r#TDr 4P +Z ,fSxWW]A*xn;mICS@-9_Xש7Itr2LM7(ebܺ!V%x=6F Ǟr UL8!zhNC]AgU4]x 8%ruL8#'yٍjuCoT [h:=:\9U/JZtTO{]*!I>7DI w0eLՄ F"N vT8p[sՑlB"iVߦr\i3=RE',a3␇)CcW(4fH!.=@]s%;>鈳tnC *:'DE-f]X=֠RdBqсoht|E#fFt+3r6vND8jadNX-MEL,byyuÑNO91E{t,ug-/ T9LZw 𥾒L5ܱ`ƪƒZMvE;+1/ᔦ=mܩgKH?˜OD:IRͤ؏EZz\Yrz¹{z#VƎ=9'..tj vV0 g ͋O}Cz3SѠt5FT_iR]$o+op /Y ͲR$^H YqLF XO$Q[H/ Eiz08/d^]t{aQEVAӢ`&I1o(*nV-UM󒒽FAF?%|VaƆg;B(ӟ6Xo!1T7#XVcmxCzlyt]j )-c}]2u'ɧYAc#֖F]sRMonLN xk>̼~!jly9J D79:u U򉝌$M b|GK`{e2'J:̵y'П\(9.Հ( d_b N9qvx{t |AՃ\9SJ4&wΐ +KLq,J/M+qHN-(Ӵ⚬>mrLU. gTe34,0mDɒ|fu:pfF&+yx;rf  A>%E%yŚ\ @P;YOVs+&AҒɌܲEe&3$y.$ʉ003/-_ssuI\O~$a9@R'anzAwi)+<&uM>h2Y}yiuW+L#;H6*12'ocbk TJ M0'LP8Z Gpl^)IkDB1'fJ-66AUdNLPhM&d$x&MfM<7d&O )nD&|0˞veLbqZoKg2 `H90!'eiN^XMhs]͎SXR2K&ϝvj'/h_3`d}ɧgʱ0LͲrx?`j lczCM3efd$ g@0@end TmNxj +'rsL|7\gȉn>(.m >x{J E›wW1n~#jũ8`f# y 2xR ,eY~L֔}PɿC&o Y&oPܼddo-~q2RL|fD!q'j@V z~1 ~w78 .w8c8ɱI$2nKo@"xi" K2&OgUpP2䘔7+!˳Oʚ}s2ͳo/-$OxMP]k}7.snMˏ^?h3 k ďrk&cUEQF(~c]w Hsxsy̾Xf_9m8!uT 8Ud*N.wLA֮ }R|1N/*ūz"4½8YpQѾdFbB*"/X ⃴`,(j*%u+xO-;h;q7r2(ooP +Q6N`%C'g1O>xJHFXJvΈuP*TAeFBC|K=kڳ;gO:A7~{3 x|eoAٟTcKPjpԯib cUC tKӗ -E:j0' q0's3rMD[ns^ ;8M)0Ő}QR F1zjX[Hdh VҰx=&3' d'4Aiv&}'O K3*q GG^Lx/&3'8 ,Xreturn(6a1=x;iL _'n^4Y4*dn&7A3n+x[2iL D6yZ1xVuezel p^PX3  AllObjectsn!?$6nl@end Y" dx[iCg^ZJtz}}`ĒTĂĤ̒T `Ԓ̼JĜb.N}}NN ~pea9 F: ũ9i U@c58k6{ze[.5] 7Oސ1)o̾ɇ'e|${dT9'OgRP|ex;|q M̬E%; }J*`{~Qs~^IQ~kJfI~^r&Xz3m ")xk cNBPfzFIBQjqjQYj>rfnA~QcAwf>˰(e(m^Ǣe/xjdX'?V>]/8(3/ݭ(?9'X#:1/?)+5D!ď՜]K |S󋊀Jb~VM f5PcpF|AbQjBAׅ &IyO^0٘Khr+ }y&SA˚k*yyESKsSUHAk|2~ Ȳ '<t[f~POb?إ E*L>ʣ"y 0$ƂP S(HX5y2*0ˋN,N-KMM)v,.IRt U5.QjN~bs~Nin ;0jK-wNZQb ,L> "Cx5dIQ97& NS $:"Q3`j=Gld76HM& c2KйyD-SIs=)qftda`xTOAOh(׳ ikC1B II,!iY]қW/&p҄ăwbD&?™vi{d/:w~vWȴ+Qb1_ۨj#l# :iR 'e -D3`! i6ẹ1bD3IQk( WU]WR~=2 ĺc I4/pjd .({rBB*JyySD4kRze٤blCV`LCrʖkij(8WQxU @00HEeH>>>#7dE kdh;Ӽ>(z kᙣk_"/%b?-"mZ[ |-3N{Ƕ`?b\v(K] 4>f^`/,I idat.1\UiEBWOTLS; >0I`p,tֳʂ#`G~|lrrzNYǠ"T6F4?16 9|!G%Kx֟Wo@#KTD2_#=f9|H=VM ^a>a`?{KM|9/Ltj8 !Gy~t6\FgpN vUMExשAC@:5O#:95'G(3/=,145Vz.~1y.}-̼Ԣ"TԢT-}K & Img2[xЧA5 d4/`XPYٝ,7w n.xS&a?Cj^ $Dx;r.n{NW_>&Ip7- lx9cC 3rfnA~Q}y)\xOxV[ldVz[c&]I6N/4]vz lTi $^ !M!n q/vbeBTUl~w#߭ϔʺaϖgU+CAQ9)rJ7J,[x|Q6MtjjF}eZ+/MI|׌Zc [nA5[?i(}B"sb,@G "VT + 8oJDuաr$\tK؜) 89<xE<|:jCۂ6թ'uMS`Vrb wآ[s"6mvWCî{ŖuUQ_2D<''8 v^lG^8p *bY" кP$JhxgDD._s CXSj~١yqQT7(BݳXg_LU#.w=;F{'W d`bhL % 7Fͫ*8QO|?甆ep^YjczR%9]B=X-sMOb};P:q+AI 5Oƒ(g49G#0%>oE67OVQJzIW !y:PaKXDJ[ 5ss'@Yx/8ӛ3kP5SUi(ќ ycE2b9'h*l1C^̐p%byXJDNdsCI-AK R@ /mv#td/ۅg/nv"UBW 4YՍ/ҫt+_C\qzGt.E w~L6 m+)c}unBtv,f#Mlfw9{[sV FrygnNFfUA˩z_R"=[{|(hS1_vJ67|yg,r(C6kOD{GHHVDˎ;қ KۃWHvCYXT`}7$䒛)O:"K+9ܷ- nL"[RmI%jꗡ-agROYm2ۥgn<8<^^mNcM>ˆExk\αK93 DAi=fFɿ E3xkY73[^rNiJ$q(k iɢenN`a|FSAs2 PZRZgNN_KgkN̔ [k.0LSH)VS0qƃ$V_{k'?d~d~yy)2m-LE!x{Yzof܂Ɍ,PeâamNai5.x{ZjDmT&[kOחly&=NlH&Xs2*: zxg1㬓ZJLgI?)+57;91')19Xs iiť/s898&{N;p8\&;Ad+(LP36KXCX-r%5V+xY8ㆯ쓣8&sl^fx< IYYY=sS7DZ&:*日z:[)hdhsUs)(DgeRKKTĂ A(Ȱ4R(Zp( ^B4H[Zb֧Pg]ܺsooRژ$jln/fxQd>c5X,2r^)e$aCM(iUWŒ Zg8(;@x:)S4rؕ(c'P3BGGc[}8ivVE:<\J/@E _뜺[/؞Ѿ+LkNKsX5j,n"CFR=26zj: uB.x{zQ~C+enA~QcAwf>˰R΄H)e%e(%6gauHKIx)\̳  == NO . @end i,x1cC;3rfnA~Q2JXrQ xx)pC 3knA~Q.f(4YʲPݚK&P\/q?xx1p"E6.. Vzwlk#x[ycC33rfnA~Qdk) %N x{@aC3knA~Qfk>%<` :xVkUg545|alrSݴ٦T M[⦰Rgw\3;:DAD">胐? />?{6Xvss~+~DKl),>i |ge\kaUF]%xX.VqCEfɡmYb-˖Ť\d3dP,\P\cQ0kԸgG&SM껃Bqݫ^2˾B;E #_t_OR_.Z\2t̬,̷5 jt1zZvy4@sX`qARX5owZ0( CM+Q:XܦEe-&uōl1mtfS>OjJo5 +DUu;{ekUW,ҸKZ1]szXw N Qع:bqs;E>!iۤAI]PUh\"͐6@CV"597: khR+ԋì4%OJSY[cH;;]q!caj:CTua'$d4vMYWu>&v1Gx/(xP.lsZ H-SlcXE]{a 'kZa\`Ksv+Roʹ*L=g02n(c)H}b;89>EMTێYCRw%PP(?{>SLMw"{釩3k@W^`H͌$g ^q`m}P$x!]V5e@ZF ɼ l2xk as%(Lx-KpC QX9'+n>ȶ l(x%N`C ̟X$egx{'vv=3xik “Ue/'?]A)/$#3/]$_!%_Iss"S5d6Ɂmڊ'KI{*'f(*(*iN>.7WSmk8`sY@(NڮG7N%ͮw6ߞUZRZشKWx{s{C/3{nA~QdFFr,7c rx5YYkqh#^m3i&bnJoJCpJEx\ZeY`f-#g8g;g.g,!h.a^h a8Pmcmview]; Z.'b^vibn vB&jx L @\y%EyrxK+(@Ee+d$V4Y)%ر\ 09i ٩9@̤T+H&ʹ,p}52|Tt@57S_9yRɲқDc#]osj|ZOÀrjRRs^OxF #include "GormPrivate.h" , ]a3abwNcTUx+h+S K29/9&9!:!>:"/A=9x;zH9E)!E@#]A6J9 tBZ~d~GzM_ABIS v-,M JM.)ֈ:M!(175VGN!:,2ϼ +XZMI@d[CQ 3l!h?9'_|=\Ze px9ϸYjiNn |>]ʚKA/8 '$,3\AƜ`6ya(d{=Y` ++TEq1nSc)ׁ(_$&@m1 c$?}x[vq9 }̬E%0@YT,%܀Լϼ| %..Lf1d Gx[tq 6_S4yd][Y6fl(:kDXK R68y2' Zc|U~rmdF9Ͷvތw*p*@֓'+Wl+;:/ox;gC3rfnA~QWY6K@xۦNwC73knA~Q`F,ϫ:\k׃+oz4Qq "A5xxqBȶXNn-P7By%\x;ti EsM7w>UzEHV' (x;tikVM.w\~3i(*xK?&q( jsGt/]i ;7ZF9$`m&Yxe:ܪ> Y`0EdyE,xNKz Onmx[|ㆽox4gx[q}C13rfnA~QI70x[ _b ɟY<32K3K2SR4,-dUͥ쓟᠄VI(UZRZ]\ZԄf؄XkZ..]M<(\'+!!vA-A3f,g\ &L^^4Y? 3MA#>M/8>713OV!5Xd'²ĜĔJ"U%h`ǂ@xf^J~y,%s4Ot\Y/YQX?d_. &})\l@&sIr-7rYNπY$x/Yl!&@f&}Ɂ36 ga<$x,@dC/C,oysSJl@#}`qlPyg웘Ȓ8x[ 2GdC3knA~Q捬 8?^|io xk.{X&c;-cx{9cC13rfnA~Q=!\\ e)Xę4&ǰH jT&g[s9p;/xwwCanA~QcAwf>˰R΄(ge(qMeVIKOI ,pEV ~` L $&{OdSguHK%4 x)PͥEy)LsNLKM,)ʬI+)A/(C*,Iuqg3t@b^jB5gpiAj i.s&#*Hx;y5d%f1̼ҔT%\̼瘓Y@" Y2'78 TŪy;sɟxU42S4srKK2KJKRRKJm(rHKך<7DJKr-IM+I,S;d6BY6 7ps᪞\a9w6Wtb>I&L~l gX[C&01N08  L,6M)`PJ 0yKA#4 t2ŸA`I '[NgJojЁ0ax0o606?czT Ä 74mI'X6s mf 7H@杕j7yR 4FIMcbSn`vMf%Ps^PsPi b`|^qk ,? \b6˨1ŃZBsx{ezqFqw8&qlnbedxbR&f^l2C#+,lX8BuL&+pkK``f0!dno0{M)`pDngCd9 A`a{b/XNf؂]v]ۅKW6nx(Idtrf^rNiJ>e%e(qaw+)qM,/¦jb,ĩTnc8Sts 3l&ⴞ櫗"`Zs)$HJ!/3<7`mF;ث~9)E`8@t brGg%敄MKVs'N2h@IjAԄC=@aɏKUApy02/nx5Unf{6p߬l✚+ͷyu%/obIQ&D] m6s3oF!naxkx{N 9gox;G}U26f\JCx340031QK.+L/Je\ctM|U=KS!Ds~^Ibf^jQq@bNjII^IfZCϧRQp MNMIe0Qé`MLY~QSQ~yqjg^qAjrI~^rNbqqj1*Sܬ7ٞX#\eŧt Om86ˣu^EH2XgԄ|gm2]]\V ,SwDz?5(/-PXfj9ImM\Ҳ:d<+-827=RnźJVw~EQ3g'{9o|Ϣ%Ź z?OyZ-ґkV٤4% C Afs|L}.-i;8m `sJs0lN$啟fPhҳ+Y-6QLlݼ9g3Ů18*~kw%\|ж`u9yRđ획i&M~A嚒 ғxP\l'l£!Al;ړ;N,t~aZ4L5/y69iֹ.-Ư%}bc$o6x(n erlPQ }P5:œQ R^7x=kưOF>PDE{. "*#$MPĩۓ"^kxȳ%d6^|xq}C3rfnA~QaI?)Vx&AtC%3knA~QGAl) 9).9%֛ xYRRywl:x zOt͏8(A/ux{sC3rfnA~Q̲\y)\ Gݓ{xcj5 ds3)v..Լ. NxgC3rfnA~Q̒<`duHK uxrDeC53knA~QF|\\y)\4 xY{3 gu@SӴg ,$C2A%,̀q1vFB KgߝYQ>_?O?ܫьdHgܹY~wF',}~0Ϝ6速ݻGFEajWQmMa10sVyMeM=c9UdТetY>%S1:!J)+ofqDPCjP+Ҡ4N/,\cj.3fyOzT_zv֚LҮ5d\͛Y>)Z5Gy37͑P1J' @1||X_e;׆FuHb|Z)T@#A:='qX1h0ZNQl =[F&M q&?^v}R竔FAWvڶ- VX5gGi0:2i6-J$̬IG 2t֘ʧ-}DONͧ3z@ cSBi\ ;D^NԷ:g&[f;!maT\gJ\#_q d;"fʖB 4)$B{$[U1?*GՌ97gN +szrfƀ)Y;`QS6wѨNiTgQ92Zҫ2{=2A*y@m@l/tip*,un=V{^ ޏsW*CkvxQC>rG ؇}OgdD"Ul0\/}z%^ ܝ;Rƣ-ˁ%UiQفt?6ݞ8?D q^stoHrbiL<30j=JqVFcJ?W WrꃅvxMuk-`\[̽^nسxF sE`L&Cަz ƱcR*%AE~A\[•<$HQ}H?{ ҧv5X'͝SqzB{syԉN"h9@ s-<-|=κ/u!NtFa 97l?v"H7Hz05LϮaY_6Fv5nzVv=*ی*6dC>}-o2Q8R rxTa>Ρ K./s6Vvvycfn8*0|Ԃ63U ͋73d:_/iXDJ!v`%裋W7.^ tp^Q5I\ rť&(_7rpE3%, % ?|e' @vWa/[u|SޟG(bv0NnPq)RHo|m\tJ4WŒ>l^ϋAr|e9j +>e pPIxIc$|$ ~͵N.bYeO, T>- >3nբtQkMNq9>5S 6z\T2u*<; _ǫ*ߠ0DoQQ'n||h˻ě:OA/A-=0MJ\#j$**ќ?sU.Ր/K6P5?21xk3m6AD8 -$i'0j212Nl`f1Y@2U2%9ɺ:@LN:8yAӴ O000 \@3lN.at*1@4286`"@e!Xκ$fXyq> :'(aVå87l Oܰy>yx{{,n̪TϼɊ2“prgdnᑐp:xmS1o@>۵ -4vH4-4MZfiQPR*4]F p{ bAlX@b``beAI|}߻OG)˃`ezgBD8{n66juiUͧg@*bB+$, ,"W_y +p{=q1W7Ge] ⍃e7{ݴn# PZ Cjs>,qniX>\ON|?[~EMcBU+@>WX;蓾OkԧulP680H{}o(ӥ8O p^DnL:-! ^1{݆5gn:C,~5咐G|yo0i%[%Wrt'sb ۦmRPU&زxxв3A$t>x: >\T%tR5ݶ,G@nXU <ɝv$i2LYҳwؽ'YK44!wDFUj5? ͷ_oxıK93 DAIOO_Oo fYFl,u7 cZx9cc!< ET`=OOnͳ@/t/QccIx%i"f1%==} r/ (,K,IPy.f -x9inf܂!͏=x6 8+rpAxL {x[֣a3>e(m~x!frx``pIG r[Tlcth3&% Jxqf>%==} r/P| fx340031Qp/u.-.uI,.+.HM./KqSCW44OxbO;ۖjL5D L-άJ(b?8!xl&0xR\\bϼ"[j.Nb G\85(oũi_ZZ$T_^Z .-H7li5W-Kp#xyȷ^/Q5_Y'zR.6^F'9&F0EC]:yhM~:)PHYL|{ ՕԃEBj5prJ !.x< M.΋Tv@ :0taVI\;"'ZÅIH)~7}v奋&>(O2rt}AoCjjuJ"74d~ 1.o'U ?Dե!4S3R+*6k4p074ҋB*𽜛qSr)5\V>jF ݏ{ ctp FX(2U5RecҚCxDlն]`xwAz,Fr_ں Gڌ3WaU=v hF_,ۖ_Z0)^L^jl&rWW] 6?7eQ@S$z">6]'zÞÀkH-C`W& |)'+m1Y rz U/h!JmA+X{6 \1C;QaW d=і—74?k.y'x[,vZ'3I(o3Iu2%hͽV$"2DWҶWva7Zrf0T\8Gzu;cmM*&k :՞RC%>ӟ3ZdXbnp[IX_n##,a1J ΰ:U;l)B&4~HiR4̦ ?%nxf/N|-ɆF`Uظm$*-VeZ1 }ST6K^~tI22^Yf _}"IĘdZʁb/6 f=7tI/Q2mNJoS6oM_9[Ů6V+{KcA߱n_[-ΞlXt 6|+d 3JUNݭ6,'|o3fB 5T-:bAtYW45At0Ol(Ш4> : oo(CY+VL#X51 )_t/92AKMRfGo:« b@b 3JH:-v/H'-+s;.pDѺZvoyxMᚾ_LnsDjvT 5kVKc vYr+} (d+= |}K#U/ ' Oz`M;#-% 4K;{|\Av:F5# J{ښwf`3sZ*SmGHaGGZ:+翄ܻ˴!Q&a;ctNLΝ~/亂$G0i"y-bWx,~zem19ξwhQCIꚊv9E4Xblx0?%k(adUvu TUN4+N".4-b"jnHhd! Wn՚"1uO6+ss ԃ!-o" WooyZ79u҇ɹ/+n]ﭹ0peh4@Q[mr*\2xyw)(m|reg ;YWC3fIHrۃF-[#ƥ,t]nӘ C<]Qm,'m2hBuKk.*ĕ\ Qr(09c5xOD^j:g':Nx%;prf#+/9Q b a2_!Ә8l3@n{lvWsD}&(ILp,\qハ.: c6]BO!$|1!NDs]Uxp[jIr fdE)~xXo;Ds@6i  xU5̧B۹qYJIKH!j 6AӨLY7Q.V~k >0xv[]rmyoiKeL MulUeS3H  nm^bY>ؓx!Uf/3Ygw<#h$@xx=[o T2kPd]8*o#?V+f">Lx8[4u+PuʤxwCX5)100644 GormDocument.meѱrQ9DII(+^2JxT8 muh 0T* #v;(x=[ӥ\iw(7 )/dHo7,`9{Y2Z5Cg7gx ALxr[ۈNZ/o;T8чmT Y4m-pE =4hb]svfҳPbȳk a}1~shx 36x8[{'~W^LRI5o22?>q w[zʳm bGxU[_?/dJ"5jvop"̙R{i[N*;sv(x Қ'cx-Ri^+Y3exkZ+xYVtMe5(ĴFo] $b'6 ?c# xGxp[K9td` }'oíonn:1F>7D3Z.Lnך޳&ʌyLHZ7B~xW[ /tsw!}oiUt= {ª4=t?^U Eg5VQ+ ex\[X"Bi"[x[TJӐ쮣&|2oc~`K(؊֜dl峉q#Xhf$N>űT|?Oώ100644 GormDocument.mKcPr۶P5yJwxz![ ̃h]42[y+8?  KEq-! uobyx[t3!N]8oH-bm;+)$TfWT%zD_CƓE0輶Txmg!̳7plϋ&q^~Hߓxivate.h5Z~nam-4Y2B9gA-100644 TODO}{qimCR,.F E]cqx[gR{bul7ovpÞZ[?o*E0TSf :hsJGn>XtfS\vʡ100644 GormDocument.m;gtfK'Eړ P{pHKT7R 2rްp Ƴ eg[sxy[O&‹+!do :G2 .D` 11TO?uWw %2@;i))::5w&u-@2x[՜B7h?2}X E6x(Qj ~on \j soX}1emox\ڲ -x(QjCH;|ݤY&uo:erjB,x[[ݱ 8̡gs\ o"RTV7OȃԳM*bd@^xT E/,:ixW[mMlmr6oi48a8d{oQb)aNЍdC拷xgC&exv[2&MX:鿚U˱oie[!$DeAfZߓL'O\lˊUЎ3Ӆ*^:Q+bx@ Lj`6S[/ PQFʳ#Z>p x[[uR<]G-o=u5,zlb]!y=8jWXmwN+A_&gSBթeij<{ZUc;;:Awzuy_օxVKc3xk[C#[nV~?yo<=ɱLbv=*Ƚ,\|5)= tp(x{WF*  .s zxd[5!NFĢgӱo}k<"$>AKۊ!Md 100644 GormDocument.mO )DDDŬӭ\x̞/+ez- o̳5D x[:u%#KRbrf_0F0x몹7d9us7k]bknx;kUl}/x[>)|C fޙ%>)yzv\ʙy9) 6pY\YuXd&OdVnOYx0WV8label  > Cell .>xv.dmJ2TG#C x{qӆ ,Y7 S|x&PelK|0ms1Jo6xtiñvVԼ.5*RxנA]KA((O85'͚k+-sfhnys\`ԼRXMZj0 ̃굆 K/ǣC-DSQ~yqj`*0Lp5BL/-#d*\&81 YI&9gX%DD'$%n9ɲ8?)+5JA#3E31]\ZZ&k5ٙ`r9$6^06ɏym&+YONⓖA(P q|Ɠ)0rmg'%x[8]~C?Cj^ 2LN2͒2x} x\Wulyl־ilYX%o%eVb-6A̓hf4"]mвq[s>¥=>j)d\xhW>F櫪vҿ'2׫]iQ5N{BT҈}wDan-T6Gº/XJ:ވ4Zz>'jHhzqԃKWՠ:4NX'MuL|z8eӍGTh^P|lOўZgČ> !beYE1}bh~Xt-/)}xbxc?+ޯe5dc%;'S;G\Cj4kpˆET $lP O#Gzt 4VInyi<؜˛ƺٺh{)ck=u%ٍ*3>1*g~U޼l ?KOMyٴWK7*Y6kߖ /lUcFjiEK lp-kvЈ;h |455O lu޶WqP{ h8C|oBlYCΚ֮e65mZ1^3b{;P*{βnDb*z9VP!>l^][ oO7UiwN*1.o!*`7؎5zz%g|*mj>\p{p26tkrU_:C z.$->WCzJM'$_րGhqEw'`& #FT7{bDByB/k"HJv oY:&Tn&ⱈ$5;نDreCҁX:fD"z-O,'d֪J΁z\@_RAV‘e ^jUvonlʚp6|hmep:؝+Wf0>n-w׵zGiZMfoڷ5N0{OvA#wmz!'t > #Fbu)b^9M=DBF d-禝b2!eo/"Xg_[)ڣSQZ2[ MG:C0)ԁֳ Ǭq+!֎Z b J.eK:hF[f.ylk|x4wP?)崫5_cv [>bj ~_%c1s9+h^܉ D o[2{T 辘b;pv/.]!ABz>S{u]=|9St*`E=䃡s}!:#wOpB60`` +IcԈ5Mkwt0$-4x9:Rת-ydcp)bѥaڿO!)eɔ6ՑU2ؓ, PJqS5O\- Di\DdP#[pj%콃~PތP49}yJQ]Ɵ?\~oDoNX+S=f 'v21Q-gʌ,V 밡ZCG:?}9+rsW(׹Գ3wZ*J XhW8Y l2,{ mg:l< 3"۳n>)y ~wQNHAP>ڶ@#y YeKV5[x*H>?{K9&װjFߞWc'ʖzBČC5K]{u=Щ,b6OA1%,5Ń.>I<u!WJYߋř_ۛصMiD"O$ *|6NKm='MYO T8c}=̔P@U5VKR a1r? WcZlψ,kKަQ6S' {o9{@o]E$Wjvױfְma7wePl'z, :wD*44: od4gqӰh,MMjNjIXl8>aSGe5s4ڗ>x`IۗSd d/ z-q?RwnK3^HoKmnNEO<&'~5'|`i"!ȩ7S~`agnY'uPz8zU8E!eMhv @5Hu[ljRkAOyDi(n# ]a3 ފcIDOO(x0?L獲䳋2j•aBЌي7UfbVj8:k>y[ G.$ rq~/eix6'b% 8 ;Gj6N!n֩?ֹ0cDvt &]/6u磜Vx$dm.e?Z]p\Esw-<2= v~'E 2ߑ3g{VvЇrٹWgTx2%VJW(y{[EQ J}(s3nh>C7lR̺R/71Fc'Vom7]aX`x=|S! V=z,qVmi ;tc 㦥y5ڛWT'9Fp1Jk؏(Isd?xhIC SY'b֚|7r:oUFkN[PYT+YjCČȧ*#>Z.B~u'ڜC;1^1>&\^-SD26{={tCVKX +XijxA:{qW+e[OTrs|A3|tx*=a .x^anb[٩f#h.L([u:Yɲ  **zΧK ;URGб 2Nm$( oGyeJB3XO+]ʪ {{=P{;9tĺbR1pٽǪXX>#sAξc1vRV;OYx?Ku6@L^ܖo0c:#fܷ˽?CX仁+l:J*M|xv[ ̸vLJcn!Juض/0Rc=dp~ Rc <0p>?kIر;ZwhhTa"Ot娜S_gҊ JA)J]bCO%-Y4V1Sgy_žnk;l s-4;jĎq3xtpɻk$ϡ˺W)fkvzvX,/oq,4ˤ [j/mI([a"Aڥ͠Ǿ4O,+4Z%Sk]{TYDʄ`red+-bmkbkୄOB𙣬† hUa^]:T^#œcOUχ7VxvX +S;Biqϕy׳wUb!^75[AOZ['k)&IP->2Tӈ#"'^$:GV g!j;Ur߇) ~O;Wu6KrKUҙZg {.h) s@C# ;@櫪Uߒ GJق>T&,ڶ%γ UEQٶWnrd߼-J*]!m,qQ=X^o { $p# ҁi.HC^ xÓeTȾ$tm>0keSj<|恫_r=/$?OW>쇧Y֟۾|nҹ{ح_cm_ZT&_%RNR[7kj׉|Ұ<܉rR\ǾC7R/xZ~u#&{ RC~ِ둁`|!Фf(?eJ,%3 %Vb /lv&3l\] `x{X<ۆPӦzG`6|}e&Hˋݠ Ofzn*)DOFB ߆z 5veVRCx Cٝf5dVZ8S6H#`5bsatFXL!l{߸ql7  n*P =궿}{ոb{v6z76Mzwr:52!rΆY2/b9hVîɦyt;QɒlP^q˅J":r j>8i{9Iś=~U_dq۬T1 L_Y| 2X왟nG{RN>9r/ }ױGzإe<>^C:hMt2v aRG I$QGp dOGӸNF1#\avŇɠ5s$a4bڟ EXH3(ž9oWmDKGSnWA%)w5=FR;b$ qRC #<jnT^\rJݪ7v20L *dgW2Up\Wfl'#pJ8ĭf6-S`0\thWָ%dR[H;6Q8+3hmи\L+EDtzkA2r+i 1dc %,[7S .-}2oyw.ev(C[;$'@\y8 b6JG{8($w2Dk1t@ !\hT;Gxp -| 0 |@論F&E$ۢ`J:FhC }=bsWYJRZ~hoJ` t)+Yb?' ݴq} \-!^$V(Ӏ9@ntC(fmYT sNWP` ٷͭ 9 2J_"ն&ҐpBN?\pG$y p~CnjaRR;WEH)л։e)Sg Z@A=hx#+,` [+^ZO!S/wBR =z)g>fYd4a= )aEʹ trY:n] ]և}nu-jʠxنoޥ=#$)Ewuj bއvuigġt*]{ 0s';0g?ۖHp+l&Po:ݍ-%04%4evźdu &nթd iwDN !xYR )a)5< 3YpCB :HNSl!/a{WF`1iͽU% ]P)wc=G;7&|5pXX}W%YB>p%bYڥ:\ f̓칣ע/KHt ,m7I7e$Aom'<$˻\_4svohs7^YjfT@n01x'zecY-pYO|~Sp]¦m Eͪ_zvR7RTvPwmq۫Wљ Tu]1bUk$PW[=;soTv.~ 삂$%i$f;yGCmy 9Q6Q~LrP6wNM[yOC{8RwҀ|ߙȉ䘕_8?=XKqf, c}P3|'~$1Alx+uM:\L#_gB'+;׫:3FDJDU,<@Y%Z-ޛ,AЊrpvKo,tq[Ap%̈́1]x~xtwɄIS ?pCXDX i9}::$8~송m-i[sKݣ,Tb[F]8_; [D%9DgZϺxR?zU)e?-_DVY|b)Ѡ(BCW!a.e& (uCƑpj49`0AlTS1[QD&&^%.s`Ԉ*tōɽoEd.Ԕ_nv~*|t%/?&?XiEnE4\9?錡Lq { ja0df_)__H*:舶EkNO!<΅F |7uƶB]z<1DgURЄ~= xnn{ŶyPA&C'\oA_Ndcn:xHx $x$H3/sIVKHꨗ!8 3UlլȨ0ٔwɔL^eYR=KWPu,|D泣\Mx?8Sl2.BTRkf qo%ء+|퉆8)1hLC A_(kP *P`o!9ҠRre#̡V|XЎ1@w'JI q9#ML.2jشPqZyʂȾJqBMS4WJT^) Lkfa ,Nm؈+7lW?耖Hǧ76|b8޷}9$#ΘOy񊏽q|BV {!s.` ɉplMM LT_t! DЮcBdnN Muȑ]?ث⒘}78ja="&3-j?DWIE-/]j .F4ŃPf1~EKȻ^-E?-T+gs߹fEjh*o[ Cw۳H4nPJ1m eR•ouQL(I+GHK*پgnB`]s\ ZS~XbϗT W):fxj "hܘ1Ȃu̮ =BwQ M%P%b̤ʩ\Y/h?yEhI$)گMnBG{_P4V}}99}_ʲԾVRc+]{wxI?lWzt ?fK˟Ȟ#T]pqu^e]z@a Cs: m`jr\QgѤQX<FކiHC ȕMyIER1 o @T -itN^{(fH+<5_ o֬QgɶIf.7p54*WwrD^0̋v:/8,_^NY}[pr;%cQ>roR>5rS2v:RLQ#9.] *laPx yb%팳 0*fY%\(B-0O99@ .䔮@$I6#S9<-QGC!!?*(gZ!kh2VƲo&c=eM +U(2U̖sӧ~N郞%7v穒Y3b ԓh0-&aӲ9z,{N&\$*mgϥæ2R䑕3Vw)+,;9eLex[hzgJΗNatu?;* Ը9 zR,IvvVX*JT9Gx ϴ\`61=iud%g6MEyt# χ#BC'a(g:j?-=&E3JW'L=;CD5_Z\zR0b~ǔd^n;"j*tG$@,` }(+$i~lAo~VN}K9Tobz}o>. RлdFg3\uFQ1]Oh8 2w"1&s1 qq 6Q((\0d nl$2hm۩$輻yY]_XsLY1<^X* 2N7,4Chx ̔TzVR(EH€$ˁAoFeJPU[ľjv \:]}x>\n^{ ٣D}Bz/R88lTq@'b?=[<qGИre9(C/aMu~gjpM9a8Ѕ)k/^"Y?(Mϲa8 `d6_u}ڑT[˕B+\XO(_TZ] ]ַ(CɅJ5R`-ϖRO-RT@~ZrU9v `|8{dֽa+{O鶶(ַ|J޾W[ó,QvXo )3UJ>b]Uևs窖* A]dE;q+ V- +BYi=WUJs< [,^Y FDeL&͓j(Qwհ?$*U%*՞)5a&&cG}:/Hz"GDJqTbp0-_pÙg|`0`šxxyBmoƀNaگrxdJi4ݦmpW T" ORM*#Sc#c.e?c%gF5^ 5+h*[Qqw=Dzґ*Uq9)T,Ur8(6S)9:J0\MA<$Q%9"%$lX%U94 (1%: +NNj:4ILaFadSht¶'$Xr$m؎TxɤJh~ԇpR( t LepEXsR ?+@J3%BHt} % 4Y;Rvy* ULbQ/^@ u.j0d4CUA2+}Ddx*/IfFw6#AuVBD^.vT, ω<*oq$vM:D#٦á^jN,مanِ噕[;HTÜ»e$\CIբ5 -qmٝo'MCG#tCJa|XWǃHq4;#?=90T_+Q!:68*Q0b BUaPbƎTSfGƕ$ONF# .H*Tcsh1Lr֥ժ P!ٶn.s]_Y?е%؞9 <oNcJT  1(VxD(*&-CoJ`wE9CwJXڄw.Rcys- 1]};sf7&O@[3| 7sLY1Ph;ab)Gz+ gh#]"R1V6hTƆ{pM$F&P{*ɠʞ,Nl>I?NGÄ sO%&Rn< r-VHn%ջ`L4:a}$ \9eRm:1#ĪO&/)ӅA9骘ؠ>|O؏uq7bSD/}}'RFtd[ uſ٨S*bL"bvl-ab˧G |3iנapWoX,4,ϺٴK,W)nDWɎ/s1rh_};%N%@9%L+B%@fD SIS9u}Jˡko&dj +}n'*]0R"JUV@W=vXQǢlӏᏈm Z&$Z]K@sR46wE GsShxzqIY>Axcɽ'WCYP9ancߋ{X;Q^9:JmDŵ#=-l%,e(jbqTVY_*s[pXS %2 TX Ï5T9߆mse6D\`r4vܷ8+:0+/Y6Șb3.T +-2}l=0UR풉*lQZtPI!܃$..ERKvέMIۓT)#SJա"04%pyw]Vf#Жݴ V [YTc4BrA=gZ;Jϵ7Ŷ:/:`ԄHJ$#dl'³X)|z$#J "0K0xB$pPD.Wyu9  {oϏk13 Zaj='G5tI>k9N8#Q/afxyjurTX1A85.9ׅ.BZi$M$[2_531V"jCARD EnF~3LC˃;NVA EڑZe6&m.tBZS,ֿXDug5C('.slktri̓U}E[9?vAMJ'2QQd(lb Sޔ 6RY఩q5ԇsșPB l+N~7?%}M+`dg@KƴR(-, 6|]%7+}/0tl C55Hf!6?pQ/s(YK"ݒN&ܩPYgh%#+B!ƞemxaŢ5XH:dZ= Ѹ_@j`8ŬwsFdy!{YqcȆ~hQ-j9 vK͎3{^ګ\;jM0Q++‚+>`]1nz%尮rca<. aLSHr<"~u`1ֲzCAr (H[ٸ: :ņ3QA%Y4hܨ 5ttrڣQ>c!#)̷9vjJ@\/QZ®?9&(BA5h6I[?;?%|$%q+Q3}zttTRMR7&Z^'Tܨ7 _Jx{glقL 梧F5ȢkI39TB,ݖ3XM ;4c%A26쟐!b`cإ(n3l h ŢUuveZNkyJ@^IZvTA hwt6 ECtTR‚6J]I0s&^b:8WRԩ=&_va%rFCG4_b](^&UǨQHw.ST EJƨdhQ鐮E l>&>>6Zw!*?lR3V6U ÍTy7f]zMn\ek4rx`D}7R;]td1v9*C,dwlPHkZ4NH WH5WK]'Ɂ%\$ TX1m\I;6P\օr'1c*s8b{~¶FPm -˽Pۇr[XO=&v#WDŽI$ Px0@[nT$3B~bƛ7xD ~J `!6bkW%=-s)1[op#RKMS4xl";60æ UL2LD0Q:Rʇ$2bZ@mSzd4NCI.EfC*B]iTN$Ne< l}P(Y\%8q#f_\g__R̯uz9_Xcrmƍ3{ujDEЀs_f".Q:)! q%լ Ogw|XvANߎ >(̩n %Υ8c&tEcrIl; ܗ +"vpW)v7B| ޽ai+@u{>7Y1M7s.t?j}MOQU3FbaùIi1䲌Gf/쾞ɕZW! & В[H P_~,۵c>ʁm'ߕ衽pВ4_vLEIT$£drȉ4NJl\AΆo釫}8<weAs{dz!겙צ{NK3]4-M7=KP ],#/I К,/^d>[Z) ۈT\^e5BK#t)H 4<>`.QXUKY[(զLqȗ'ƣ=l=K1! }~h|tYBɼI:` !;ĝoė [#0Ѝ?GQnF+-[nZfV!uCU܄z !EMr'Z4>p@ښSNfq:VeLHXU:8nqҜ8!7yu_nj wBmi" r(dݷ/eʟG;RlExw&W~:<~dBH,8̣R KI<5o+-H0L"2B-^ֶf+0uٔ"ۇxO$45ĿYCAHѐAP~Ļ^'%##4Xu͍kV6]LOIƢ&e[WXRr-DMRKcop4g/B=G,$v߇-` S"H+\Ӓ͍z&z 07GgR{ L;@U"'ЅimcRi,*̷(JywY񌛓?zfb  Nn%,i"~z``` x%tDΩR-{ ^JoHdUX9bZK>oa%ί8BCVևgQWjt(Yp! d pmYԖwPS%Gq&Y7/Y} WzNjW$+SҚՒf.z>%79 ^(I?" X1Ǣ;8 OM(сQ`D*mO`Qf[ xRh21SZQ A54 bvg66,B& UI/+x$`rt,SE(f=;x X'G$"}rW@ r7(`RI!M\c -J{}!-eHnzUwoD( ָQ9<{ {{̘K'H⸳d|΅M¸FNiE2. %ZRR`?Py5&?E'P ]O,Gu-CHn3AVW6:L*T6sԝGR-u5 v iEtKcYH*rB)`Ce0W#[\j!0\!0dTd.n欴^&i"&s<\/ `WUCT]%6C \W08Q%bP sM7Veq]SQb~5~1\K"(F^qa 'hNԸz)?ZWl]w+VyȌT/0Q% $ZmXTi*V(sv]c6ʅv*a#niN=6GbJnZC&Fp,J$:݂[ ]15r!/&hSrI $hXlĮ{F̗~yeŶDKrtز9TQc4tٰ$P"#]d^;*n0M6~ usء ܽɣ/r؅R)_,+H\俸 S?ڞ)~`r2Tyűn kŇ]p!X؃W"^$!_2u T|KNK M'WM8|" 5̓JV[~Wfu.Zy 9^cU `PDN`#(,`h+u5OJ; 9:cƃPX2wҥr!1b Ԙ%wMI@dQɨ.p{ӱk垍aOUN03(Ѡy({b 6MX* >0 geU۴,[)HXtT?$Ga.Pp Kdh>Cy ђ~-ly*LװHna=IĺR(8YX m\\LS]: ʹ{7ٔ QO^1'=t,__+ZLGA;1D1$\ [# N@h1Z3 }[k*AecGGG`#!4]6a^ot-z!c1T1jzM;25ɇAL6 p]!LO¯Xc*K<1Mը?a<[ @:V/[[#gwo}};\W/aOd73 !t$"T>]1eEwцYHfm, TP] _C;byYYnJ(- !JZ/h<[3[,%:k,%lB 9p50xC.GUP 8&jQ NBukP^O=T1:U?_% cR@y4VЅ; PT} .޺tL(|T)&SDpZpʾHy$IwIfcx˃( /B"x||=ro/ \Hxཤ~ %`LL/B3?K`LJ迱eCO6-~RQtB_f+ɟJ֓ia;K?/qu4$yF XRKe8L 3TҞy}y)jWv3S1-pLa t|8vP",3,8?U4~8QnyxBMzc`z#gZs[Y}=|4;1z"&FIsxz2e(m/%"g!~^/fmN|Wg&~jU_nԞj&"xc>v"OhA ~rҷ۲ i"p[xpgFx7q4h-|m+NH45w *0wd@S]I~_ZN xʼlӠNy ͷũc`B |$Ku\XJJ/ajLqmo_ѵ4^^s/ZPc[M1 l +OkFGZ -6Hh1v̲ -hT.XbjP%'}U>qVBp_,yԘN<M*0i'+Q\dPYb0ks(XB!̱:N2[[dw(dbG!:LBiWT!v/6Q7v$4P=(gkfg9 5j Pm(^e谖^g[^Ϡ\n3Ϩ^AުEMڧkQ H{TTf2N#/t>&eo֐#ZEvҴG4?2LܫP[VZz<m#9y1o/jপcZr&[4Tcy'MsJںU"k5NxLr^7 5u$'аv 5hfv6.2lvi[*[2[P!wfwSY^$ڢ6ymhJJ8i_Dt|=BK{mkz"Pj.;CFf~%D?Fu1xo'Ow(Dd^j(ʨ}t7Œ' *K3*z_F\md'k NЋI/~Ɓڧ{P k*0>cv \-+ZVZfKőy=k'q~|^E~A;]hݯI[붠hǶHn9к| 8GbCCڳ}hPފԞم*umCwa#^SHZ6yה8?ȧ:m_َwDѣ\~4uj5huث$j%Cmt5oC[۰ۃ\_މR~7^^w\;=o?!E$KCC=~wK$F $]"& a=1,NMHr&q/z g5s֮:;ۮk18d FO:ɜqAB9y'a%LAqK/o T$lMGi'`5>T x^aT9Ϲ7[7I.C],B:ֹq=r_]12'x*bc1 gc\_&T.uFCp$FX0-r+[dȤopS3K\4C-M:NAIa{#WǬBޮsJuoSOxo{/3 P̼@gfbCt^*}Bv8C2NJ$Ϸh6" 09;M<;7s2[MJ79 tD9?v&/4++6ݹMEx{tuE RK6O89IU;l /xt9 flW6;{, ¤&;sL 㟬.gF퇹Y#ur?$.x}QMOQ$ƙBAM26XcEtQy2&ƍE]qAKB½qinL 1՜9s=w0C힁 LJxdCO5"ڡNx X{e`^$ڄ`jx0g uzl6̩;E5f aH__g o$}R^zC<VIcL-ʀoR8#0Ywaav@M $|Net԰$9a,V|I$N뉁X w*)T&{n+OξVб1C8d=|aƳ3:1ƒ?UW7_:OOR& #:吗kjirDq뾪Y%~̀8XpX@\h>HkU9f("kv̈%1HLixIIK}qJP JU҃KUN :"]-NHO \n"O PZ[[QXx[6 ;X7a,\Z\뜓X\Z3ONj>-6? PfzBIFDB2DB&TUMKLO-R r qD3UzIm@hq+⒰ĜT%"J k 2$5 (rrV{3<ڗ, q0L|6U73(4zԉ[,&OfM)Nܐɩ09;2dr7s9420ũ9iȞ:|rfd;ziɓ NV>y8]x6 .r=NlԎ OpP .,IKW(WOJM.)V\`ts\l3mtѐq%/Z3[mE? d,m{Rc&+u- bcw2P xz 2 )% ũ%IY%V % iEީV J@R56yH\Z2“Nf+8XjDcM0yLr|M$b&"P1ˀwlL3aPf;xGů>??7;^kE1self detachObject:{item]E! FysVx{uֆ-=&[2pOubʀ_$$57֚SA!3M(57,5eRvWF'!@nx{sZcLVR\,̓u))$'e&((*Y7 IiCx;Oc} u8tSs6 0 0xۧ1_cC/ 96?qfr*$+ 'x{A})fk̼tNTk.0+,QHFù)IYY0O.PBn=&v\#8YGs]W% .x;-r&k !$x6d|ͻ7[raJ__2S89RKlK22K2 \~%Ey霓E6Mf MN άJ0717ڜ.ͼ9PFks7#8)-)cx{r;dC_j ԙ7Oll^xk{As:MU"px~%`SYj_\Z\뜓X\rfnA~QcAwf>˰Ln`y ZC\Px[*q]|M͏X>1m~ή8ٔvvlA!~?r0OͥmXV뗙Uͥ쓟_W\\_YVi=&d&n^sNm)8n#xӆI]9F Sx3v"f܂+ , %x>vl:x&_FKu> KoFx;²e <4x[ 2_dC3knA~Q%l@@xysFn}V$pmsUx\u]. Lxu>|ͬ,,N1S\__/'?]A71;3/] 1/5g>"5BBt NcQNʜTl+SsNM&Nؼ6qod`ܜ+)89LBv)li ړ{&/M"$cĨ^f7ں~l&99x;~<|%W}3R'kkoWckp kOx#}Tz"7y!xW[wD^۱c@ K.4@Pʥ%Ynڷ>qxG'yg1m+!D>vggwf4Zi{F'3ZW_aڵK ]jf؞nچKR)Դ/Fc}TMBMxz2V͆g:IiediHCl%sM1J!P(G ДwMcnzt]vڞӬZz &8PNI]xcCFM1`ǀi2\ cqAj3{$WncrV%~[I'^f%6K96o]b~ U8>߇a5KF%9iQW&AV3a #LVQG '(J2bY~s;vC yuYh >*04P7Ɠ=UǙ5䐰˜4,' [̆ν,yu))sIeF}ZPH ;O ˰tey1H|8ld8.>ֳa[@T|;so4](,xUaAKW,Z *ٮV'X8'$f4$ooOUr؋ p^@&0˕0B^`kE1R#nWǮӱ*fX୸S:Wb`FdJdd91e]B9y揘"q.s$#(Bsr$9CT2˘پ7V8B%/UT{ S,cs @Eh7FbOY!\e3> 3gw{gNLeȐmXÞ"e^zlDX|D5^þ?$T,8#GA偱70>#%9R¬KfOl*Wn.]p5õxC^H2/F4.`RpCx)9%`/&rps`O^Pmߌ2|Ib4!MR? ,E +zvI :;Az[9]/wN>.q ],cICX}ŠyXo'}^z η$*lϧNY|*_,]\&EhPdntTZai{q``;Dp[-9>fEN:a',X7s w9{4mu8 ‘3טBcRjLRqcGѶ8)?ݥqw:5"gP}D_.@(iD{"Y {wxuT]L#U@ t*l7. -ZŮ23S~|c6M$3OY_|Ĭ']}2fQXI{9ι{Cf{kSJ7P<v& #7-J9RDxU[tӒ, l(DAM[+ӓ:P$raU;׺?=|qF\ |/> ]N{ꍓԀ>00M۠:sꎝUz~|7cEa 8u۰;| j+pHR=&d%{>G6gGp6ՉI(aHyQBŦ-s2U"b%L%DaS(!*PiLQXBkxeSycs+zS=KX#$jD 5?KEM\2FN)EA_bI!J.eN Z1RVq SBDq$v 9~Z]ـOpp]ZQ$Rn(X>`aSXp32}?~2fZ"!؉ p7^ _~l/\0Ԋ&8.볟O;Z,&w$']6s7iH9-f$:l8YMqHըmw [S3_py2!97~Xq%냏':ڭ9cmF ؟e؛oЖYQdA$nc|a!_m(+bDo'Q.eyslKVRh.!eh{m 40000 GormNS-gk4NxLN]ңNAhYSRC#"%+ix={C&l=,ϱL²a}x340031QHI,IKI,.N-fx`ySkksM;'o!D]~RVjrI^z~Q.ô#ٚkjgJ.zz(>xv2mAf5? 10p```vJ2 &1lvadaR @@7X*<ٞQ|s3s3H9t:*n#d+ Glxk]}:EVԤ?,rs}S&Xcn%"Ax[~]uCryIY% ynEP!39J+xf{u͡~ܓc8' r q(NIӴ"[؋isgfc,L)M=l '{yn:Ʋy;/.g|]br۵mξ~]hCoy=q%]Fu'*heki*oˌ,?511~z8gc0@SRa錧eQGX%fx{w 7ƤyD+chcdK9CFYrC\CQrD\C=4R˝ssS57><-g7䬩|s2k1n.͚/3;5 % % ɥ% r R@WQKLO-RP쓟1b[U%AMkhA/K "ǂUgTجHq;ʋωy@ö03ZKAERK41JKAŢWH/>SQ@M$$3xĢԢN̜2s@΁( ~•Q(U<.Y\]E2RJRS= ]] ML-,rPB ӴV@+M-Lnʨ`2 d;^_ :~Tx;7 ;$Lf*T57|A׋uˢNՄn|ڄ:0v#&61>듂N|ጯb7$^IƣLEǍvR*.ձ'xyYtLlaDpWP5'(h_ҼYML+QmVI S;5z`UznU۳V~wnۻqAe \`/ d'B$%9)ei IKb,{&ǒzRIL&rRIAU I*#:B*C('CliO%H[$Z:*`E$uI4zs [$M+[K*-G)&2XRxT%%DϬ)=O;+j";xvV&J=3%+E4h=oJ0ڃ}w0̬ $:,^z#.1k 0%T r}[KztFc%LT;y1f+'[Wl݆ʜTX;7z7P9gf+(v5N[oP~ciZhQ-"PuyqFbN7άA-í; Ylѣ*8t5fkQPchEFy o\Rohn {}'t6276w|uE9 sRtnǣDb

@KLi;R%M.vsgP읅νCn"!Ƽzqf $" N;|.oLm~!oJ)CIE" դAShC 6RO/uf﭅01up?RR%f -Fthwe0/53Fe}P3VK@5bNƈD1ˍ}P9Z "OTPL A?d<lS:& v;+S[4EOD=a{ N'@)𝽝Y{)`W@nxJ^gP e чJ?Fй"0L#*3~Y~G"-p2|/XP)<{ģZt[Aj 3F4Mn]gQ1Bv I>5B#KhɈqa-.bn .DZᏑ0$u(:> ۢ}PwkNx%W47C=z$l|tx1_*xpBZpjK>˩65CB|:f+;f["-| oT^Tqga(HӃo ܲZ)?#@r-pE.7oPDg-]+f Y'@3l̐L2n~"=`pNAcke5+c|fr^ڹybF}[pfA., /ĄR7Ϭ@ub#r;{p(wx.pT`i!E Xa-_E'x0˩/ŖpZr9.8,uprd5ۍ+*pIcz*6x m :C!]C<~yIIW4Yztxd^RF֓Dv34$+Vg\E=Fz,4KDxtaڸlx_L8/|P>XpgOov%ޣ* G 60xl-j,%yM"h%/Pr,R/)OT@VX;HA4%]qIG&%'2Ӗ)X2fLE29tMMI*¸,[ѩJz摊F&6rYU쿣WDէn=*IiW%/pm)mhɪ '%eM^'K^v߼oԐ ?Gߒ)wBa7ڞ$V1Aj00-;Eka> x,~-xkx,O\ .)KWК,%d$3GQIEvF1`&~y@Y'N#iPGMԜ>e~@E-t魱`:- LKhlb57h_ⰹD&;?y@ͥ O~,9oNuA9W3N>=Tg;#K Bf(OxuoQsB<]RRh*&Ɔ88 ̀&u]\6Әb\+vDg.6Fxŷ{3s32fxzu ͕zY tL&k`haQPmdb0N`Ғͅ3oq xa-6O\\Ÿx db.0.`,*e>0rnh•PXX<(p!I `YZR0c:#`;WQE<3MA&bY99]RSA!%?475$ $CV!?'e#cP@Ӛsz(d2E3NOe^'DZLqӗħ?`Tlubr驚ғia>?m+ ѓ\RQި(6ˁL^vQW&ϸ6Y;|_ B\rUp:D0x}U{L[ׇmb @;ƸB# ~]lag$UWSIKUuU;wGUiMZnmHekC?)k&R+{}9Uz=&p o&ObjmNjoх8;%-;ٚB驸W!IcOYIϾL)p0 i qjICcq\nV#a)Bq iqbbN2KOA&qEȋq6jus~Hڳ0g.mXdP?2v^dm6sܲXNpݦ.$CWO\nfv|`yJ 3F^a Vt *w\+Mm@@n'R=}3_/(g䇿g;Ţu(68 8A Ni#k5w9"v(eAFewR< Oɩ F(k%I%ߟXN$CfK lKRcYIKc6f($ct#ё^c9}Z?4Xt릿;PŚ{X|;q`g~ُYczvv\Y\_=lϡ=nKz35.;jI?'V񍕆Mu?sӲ xZb /Wɖ|s)xmUi<ԿH7=.袱ӟZ"FW{o(7J\0mNeoZ~ƴʰHNr#튔VzfLīIӕ,w]ӓQu 0C Lk|^5@3PA6^̆J)P!}dI _–E9 )S촒n ]W_F]`a `EyqashOJxlEt~_V3@J5L%줌*ȠU0FW U7u`0Q Izmx}En!_~^wBRl^Pt t P A[M5\k]F'|hj践xTZn'yZ =xᴻ OE_4C-Uu@.YeDF^l֨n]Wmݼ?̖79; ETa`R =nL;]lT?˛zc6 ӝ6覽< Z$LSu>|0$jmŦjLK淁H= ac-w=p/&\E@J  CitFg`7.H?xp2놉Ueۜ\ϴ^ Jj$x[ry4g$x} EWDlV\=x0H m +!G+P3K3: ;.B@xt% ̖E% 6ޙ%J/ÎK9"_PYX|y}*x<\ SVnL2x}PJ1>xjxK-tފXEd7_HL$UT,>(\-/30_GS<|:$Jٙϯ&՞iU$? K)t-@㪺R!kSZ16R&I^`lhPʈ>۪QFf"2Zs]÷J-}i*[_lھo 8IH@i<;_W {g}ꮭ'0p\5n<[2tVJo55x˹sC33rfnA~QKʌVpxWms7 N2m846x7x:Nj ﮤ$iNj_}v%kpRk.cnjm5_i1Z5t40T]2͡2aV(]þNn4(?TB6*x3||bS걚NO@*23mApֻ2[Bs&H.%GMp +I<j1^XTgd_iD+҃s`,3ChKYq&b81C4c'ԧ66{+ O"fK[rQ8Uۿ[Q*""Q>Fopf,Iq:~iЌpi2O%tNY:J+1ƊOR=1aHp\3ó>o \M*Gɀs&fxƟ[VUGḇ\`ƻyFiTQ_0~SѐF$ż jy2nѽL6ԕfclI>`> 0gӀ6Vg /3jDXn(V6~{pQe:8JP].w(֌>ZST-lfPW57ci (0؊ \uTQ6;B*pJp:S͒]hfҥ ]YWN(盏h&zBEF 1|AX vȔȫtFWjCFwx2--"sas./Y+YO#ͻT`Ha7ː"P::6_}>6m&x3ENv \ B^QX 3*҉k;] \cĻcO<.U{`GYd|7qRil1C|nxg?6{Z-b!yB]Y4P'p=x-īN͸_,[pOQ~#u Hs|9_PIh[>h^04}Z_uB&jC3$s+?A lxʯ wʱ$Vq^0^ ~jIK[e7A a1ͣF񀢨$|p+no&'Ai筰m~3؊X2& >Ơ0]$HvT|]"f>̩\c5H8SB q/ V @;hpA>n MxtFLc}'a [^ ͎śE=N*c}®߭)߫ХO^xzM >xگY> DƱ;DBeq)ge&/gVd6c>nx[tY r1cs5ox_hjzYK=ץ x31ԼbMk]1=۩uS}L 3RˋNwwMd:k5%Fy%E9 ;cW6|Xܤ,ucQy5 5yE N+j~3] 5#- W*ĒD s-SzM&w340031Qp MNMIe)h~zC%3?.GnrVSxxqBu5)?q1|N}x340031QK.+L/Je\ctM|U=KS!D_hnbvjZfN*T'&әw",(/8 1/5G/ə Gvn9M2+cQ˰`*?%fú`̼r9N^|â3/?e˩n'eb_\|TO’k)x={d6vwxk˱a3rfnA~QA\\ e)Yę4&WH jT&g[s9p?XPmYxʻCj^ #.xʻwf܂ǂ}aǥ ټٔi2inx340031QHI,IKI,.N-f]fȆo&-dQ\R_ .YRM|9e#tLu~7x{lvl(FLL1Mfl:y5lWb>6sed1;G9So79^Hq)<.._ 1M^ɒbx20<@tNBFx([x$Pr!FF bb @&ĸN36^GN4QB]9t$%z\k*x?z^f6==} ڼydmaB9' xz ?&RORZ!a4Sti_䓖<3p4璈h100644 inspectors.m7O7fc} tW_"7 xQi h tM5Is_0}*GJ"teDódS -X$B~ZY_"%{`x<i.Woδ WbRi# At}mr>sy2eyB?"Gx;6mBƵfLqߘl~Ȉmk,cOC3̼b\MOzu</y.713BXNʌȶ}H9mQ\R_˰ᮀD-_ٶ9/(ߐ#x]i1/SiII~dy>y%E:\ @Z閙3ydfIN[~Q.T }wTf0xZyxG]ɧ|ŎݦLChuZhMur-Z^ۊ]#85)G ʙB!A!P4 *P G9B?>͌vHL,Wٷ3=ͨ+m[dl$>~ڮkځ}0PAR$R†nq]K(2D{vk1iD{&Mu ucf H4l:)e"vz5SIl$HTI/v_I"Q0i$XCUצ]5 D}ĸ2$BG @ YΒ@hl,?I6wSPHks0T5"unE|<(WjI5#%8: VO;w*2>&T* :L?r=V%ߤ%43Smy A܏WIJvL"?g$WwS,EKzpl.rys\K T֘ya/<̽'Gvf,xN4jet^F !#Pp񹚈$US 17\𝞋6٪CZ8 o v`2g3YĹ8989M|2f7" ,GȮqAfkIlm[D]cycw۬UhE0K*¬5hZ>VkV%JI)گv~YJA+PbU;|ᏚGMr.Фiz>1$h$rT1:E!U|:DTPjivsyH2oA1t>S9ݩh:hWdhV|%ޞo:us;}4MϷ 1݅rJ]>`8D.p̪-&_ 87 j0@x /T(gZLËDN\,|=kLWv nj1C_Z|Ÿ.{^8zB}АYvLs&>לPj wHb ZWqcǘyF-E /F8/ٙ֍q}Ҙp-w ]'&uZO.5vDRqZùἌ prRŔ&5\bDԜJ3D=&+h3q6{ii?QluQd S155jZ[gxDLy`mĈLyзYa)k,e&@W$K̕lY# r& V `*b fJ+b0E{kc&ӽފa6S1K߾MiuY vu o> bmIo@ Fd; 5kYr&wefqc0ҰVBDV»# i c4!|;"| Ę{L鈿 w#8܊^銧p[ݝ~>q>ZSo>ރh?xC E&7/ݼyf {}/֛ZY0+~I2F8hgoƼA/(>*ZxI$Og/%}~ާ.xNNjtV5tgK{8r}-|, 'Ë~.,mmH';XО /-MZPY SyvؠcAb+YAUt'h>_ -LɂIW4<9ac:1ѣ7l <[,+: _@ kDCx"Nh*ǸDʚ |wP9w}۩#ȫyfȫ߾H^=!~)쎸QVi]y=O~Ïpg$1Jx 4{=ވ{ŐZG00'"#ڵX޼uxޑZB0'op]IWjQi:  {N }S, P(\Np ?B!D0Ip Op ?U֐ P$fӖ~&T: O[ s~)09 49w(߈i2c;qWm~NG.?1]gq\Wuz/ZL/\;wYi1W{-NiiJǙwN2(_'>>Pux340031QHI,IKI,.N-f`2z֜?Z$B'e&2|\ʞ4w=}C wal3M!޲Ncz=%ٖ~|Oj)ҏqjV۷\~HO6!LYSQ?Śe([fVkR+6]pm;1m׃9YUv=HGm;#s28G˴;ҤҥjkȆܑ%ey/#t8Y I:[e _=3MMP iyRy!-LKt{b=kERo08fc'CʸI@ARcaor(jrx JI"2go &Oܦ$L|fK d,*3_@E`\Wmzov537cYs0^2Xk Xpq|!osx=^:%xfXfI!T$-"# 3ETf-{V7୉BLcR :VX|s{x/x|3?x340031QHI,IKI,.N-f>cY[3lV@3b!D]~RVjrI^z~Q.ڊy\s[MR"xWsD_؎;K -JIZR4;%J[> VS#ylIo‰pwScZ6E}zs\ְ ^cՁ?s"iM| SHjY-y˴5?xI]R/8'@Y⎭mVQ t,<2q(jRanq">D'|]+yQ|5V}UVضec!*eGwjFQAcR/K\1Y?/H#0CE#8ITJݪ Fů dI]5ˬ)w T23!|bp!'Z ml?*@%I*s^פISiE !2 ϑ׫j xߟHJو4D`WQpڟfHӔ8?ifP@ǑP%>?ia?O ZYtAc`ۧMush#30F/yjaDJ|_Gx^u+9!ִ|ϯۆ ><~fww1u :@[vR^RoR&!ܲϡ}<7n;'7wW$s) Żl. SŁ9klDK*'IgYzSߜ}Rңf~KJ306տBHNcJ{R\=R곻(6kK^ Nn9leBbި;z?)ey0 06Wh,J׵a ]ֶt!JÁ0-[ۖyKY} h8MpIA)%ץ)p7§ԝy^(LZgSm`E'VM-)@՝j`τƥ .Lo@"+l }ݤB=lܫMzq0'[oz (H^?`Qz (ÍT,) ([LP!݅lG!:Cp(^{*p^$ą=a<-d wA , >24a5b[ #9b=7ՆfZfw::'?=iW.@֛\8Xjx ^ a9'+^i+̔(4#},'f^nyD\Z4?[J-#8 )LLMfK2D ~wYi^x-vsW$!dl?RW)vE-@Q*@ɛv݂kXE*'."'XD ɄcmǮvNEw6·bf yi.5],32}ᆐa춶%>?"4l]Q2E[,|/7 NŸ୞+0^x340031QHI,IKI,.N-fج٪7X}7 !RKrO~k];Ӆf9 % Zx[n4hF݌Lo031n<@dr,$,ĸLq;sN'gJ@zr*PUHp0d'&夦lP-T+h`rp)"(у1=v3F4%5x340031QK.+L/Je\ctM|U=KS!Ds~^Ibf^jQq@bNjII^IfZCϧRQp MNMIe`3ĽxWNarˋS2XgԄ|gm2]]\V ,SwDz?5Jϼ"t0?WWr!r0ǣ=­(}ZtϤ&w.ig2wbs\)b]%IUsqܻw")$1)'9?47]Mړd;wnUhy=/tZW}4v`VCq&X;O=>1V޳XϡD~3}%/q(eyj^ &)a E)v7t#}zxxS kMG¢ٽl/SKKN[0U) = xu:yvxR&<r6~(8ZA.ߔ=P 06yrUHJ7X 'r,6ORq1oѩiV1MJIxvmW&kO:ӑjiɜ^Dx;wC ,%X'uQgJx:iC!.xAy4637-ӓ 4K4-1(100644 main.m&aTI)mDS-Qxį2\ᗥj̔F2*x{yBȄϷdnt=(FyC,F +x7-gk4NxLN]ґ'6#bj"$IqAړ"zEx #E ͓"{' x;qC Ys J6h -xªbb Ez@Ԣ BHF'-=~vF>FEԼԢ*vtʦ7 gRvr#B5~K~(w(4u5:?yPBP6m|&g,D9xkama$RvggO3{Мfc i,xka=âbb Ez@̹|^_=O<֞vDK:x#hcf!:3Hxt \r1x[rYrҁTD{Q߮3dJKR6#|g9x;|Irҁ[mmtJ4[t,0wb؅1 9xqB"_'JHj{hvL坉/x340031QHI,IKI,.N-f`e_Ɖ/Wg!.?)+5X/=( 9Ň15_rl ('xBq>nǂĒs8&^@ &5xmypSueK,x ƶdmJ 1$А (%a@4ii 'M4mg:]i'3vl60Kem;Rta}޽W7ztMf]Cm}}:bih;F)<:{^kmF8Bn>k[fb9;s?j!H$hEa7gRSR#%YiJ&V&>MW,t+iVzfۣnlyZb$[f0=4hˤDWK5$onA6XiN>kl=8Wq^;tQ~ޞew!9RZ7Lg}t$r?G-*"yJ-UPގԨFy'εji\7-+6ʻ+ujs4+ EG z񉷼ˆ򂾄~MTxE"hd}6@' h )+4) ڡNlL젫T0 xqL頛LL6( tGe21%pE.hSh?S>S !tNMV@E#LŠOJ@Gc\; :*AN@TPA>z\QAj4+-LS@[b* <4-T3UN0ՀN:ukL3L L+,諠 k L.1}14B6Fh-ѥl ?avppF,h ?X>XӳtW̎ſ[tDac9hfqlK,f5=Ѩo"t>~h"ԊUn)ͯB_g=w&?hQ-npl% ΒX/ 2:L+ ݁UzF&G?:B7uz;Q8B8]ٔh߁w'jу| (vZ~@[}u'mrMіB_`2IK"OT-1.z@ AkzC@^1#ACJ( ֽ.ՖCdeJX?MիX?e+Ke58,msMzzWŪF tDd/wiCpnu<5k߇*wh/Bdz`{KǼIocҷ#e,ebE.M]]{=ߧ]v'Z#OjۭxhAj D[b;،YqVX5r)Fl+h\Z7@ևG5掍i?髴L_6+iNɖrUyzFkTsZw:=zV *BѨWG^%bӭzfU2gk8]|[hFjk)~ W4Uw3"x0˯vFg&?L.;Įu ۰ !fװJ-VO,U;`kK4Nԛ8t6^~Mr~] Fy/GhD)G:>8:<^Tש]VrU|_ 3&n/0$UѠj0!8=)G6Uqg5h" FQ hAx(A8f"t7@P"h"]t{$&/ˊF( h_]cd E6ЗR@fک(4.EakV@q?t| ڧ( _Q6耢A:A 0h hHXJ>qWv>3^ gzE@Ԋb9* ǁ**}F(R$@yA|z6xT+@՝|*A'U P5ՀՂ*+h@: )]7loj;IxjJn6h;O.sg@oHDܹBz_ q5=0 .M RjLa7$CzoQG5KmНRP_k+RFnnə'23mx%0s<.ydAwK4{Q(KOPǩz@tZ3ǥ6EH0H $3:%Sd-([CRtOA> zV4L pA=US Oo~*MMYtH:Э? =,uMvBhQaAYԹ_NFh ͣlЭR@\ @gqBk?E|7hEZ<-_EߋU< tۛԳ{U'TZn}Oj,v_φO7& 'sz8KABZW.-zRq%Y|%twIi1x340031QHI,IKI,.N-fXКzj"$[/3dB'e&2`֛_eth7Gh0xN" Qx+OfCl-ls%O>+T➚Z$nũJ)))ETtԜZ>̼rtR~UP5*X_W\4!E0 1'$&T_^ 4*hK$]ai҂c;1gXT OѬrK *2䠸Kp_WeOFdJ,j8\;MF N90! x/5D`" |1b,,eGXV$큮! 9WMҹ)- pnE;4:[9Tv%-ˑ my9F֭ :睃FBY#A٧>M%$ł$אJm| ғq~c<æ.ح*miwW8H`5TE͒>>Tܟz\VѽNβA74*'W1-KnB UwA+T㾻0 S !0\0\5^uv J㫏,yu~]pJ]hOBO)<\S=snf9} 7t4s%FהM9gTU mB;"C~ ޼wDJ ʈ$HV痙 yH-|$N栢ױtTw"xyU rwEOaq#fS5KݳeQMIa݄hdsP clVLrm-;Ը@s oB5tv! y8bu92F<)%8eh'mC# gsvx]1],܋ă{c9FN[g(UQ/62]{(Tna&hq`Kppyy798sw_&ekԏ67xaABxqrc{w7f>ak#xξ!yf)mHx[¼yC #TF{үxy T,)!dwY2+P]0̙3X-ѪQnɭ"Q Q\Ct|yyc##3ǸeQ ]7nz2ؑ&!Hݖߕ+u=:b$ϖ[RVud$3f&?m[߭CKD#XN0 nQXlP-ߵߤ.T*=n vPCcÍVB-rf80Dg B2:lz7eE_>(wAB!DB_083wܡ-s&IuT(B@4\׼y}\; ?rgf`BD8nWy-iP ԙnã7 ;h|qyyI@N?o<"l~q+X d@FuU+Te(Ƹ>FC^2}Wt08)晆GsIV)}9XaX3R|3i{%6-nOlJ ,>wkQh^| vOp&CVi̗ kE|R+{&b".PLpyYC\4 ^ΨBσXL6XW_<ǹ,s cNk;RQi{nݠ"oM1z"Dg$4-kW *%C=Zsu?(F =u%f\S6- ܏-ScV'޸5LcZ5(`?#>jؠdE\}ާ%qv<j)KٻsMcĝ)4Z'>(='PF107*K.O{eP -fXNg̳090SHco-A(س7\/r^(;BDt i4ېt.e^K&LaE$UyyqpEt8M vы=EQwvpR$~I,"j4xUy[oi~'f?8朙5 .*Du8R5()U6y{!&Hyc-vYZù̾ ۝3GyvqU &Bd3)rqH ~]guӿLaP?&cwlyi޶}1dz%׌,,)$ǯ'm%v^%dF@ϱFC>f:(Jm64Λ۶r{.O+afo2U`7" b!Ǩ7 Hд|6g~I"GU]ӹlH7ҸZ.hD4:;23b:9dwi|E aQႝğjWČ?B[.4w/ZDzS)֢$Դo_1mfLe%8O[ޜ߆mG[drfh*SogLq%!JޥzAKk(q ÎG0Ѓ4q-Q^0r9ѫS/.M zށi4~}Oa7hXmY%+ܭv6Tߧ0_H/rp\X$!0Q 9%6n@h3w (+t-ǓUY %ZžtY[CJ2-u\`/5 1KXzbw_۩BLK}#$3W屜't$dnīWʘnpAPoa !q҄7MmmBuJhO,Wru|&+ ۲JUblBD=8!\_#*oZq/BZEwG%l3-09o =wu)-EWw 1YW,e)?ezzsZ-_kgH#sXk rrsg*νͻ8v͟|gJMrnLzP|W90Yk9"~p_Ƶv ruBA5v.Ecӡ+׳ԓg[(,^d B8LtZGYAZcmAe*k vA11!*I~x@\\{Np ~"lΏkN2c *x_F۩y:$8 }-^P00ƾEx;/{FvB*NT#^4=QaY:?Ct DC3wd U0aﯫrgԕݒ"{b?7L_hnbvjZfN*þfz+C^uѮkޘ Rs,cr= o=i/ڬn|.Ͼ+O[Lf=V?y'1G' vo%HN}ř+l |HZs]S2KA\51Qיi&Y3_jߴʍ=SA5Vo]2 "w~V栛7w+պhO$zPFnc/+;2sʒL][($EVY$']c\i[gS ֱI9y,z" sE}}rmOxN~G˒v)*)0UɿX=EjVp~ݰW7lMLMgT~8q/L3aMn 6/% '3!V+9bW>5OV`/dόqI3ʒd=y- ͣz>L6Gݣ37gr1gM5.{E99a%%EI%Şyɠ`X'<ݕ[zL<- J/&Z;0\ں|3IҼbqǟ=V.ωZtzpN-`jdD/?0ڠf3#{`Żd5ŪkS]]X2yɻ7^(oWׄ͢;׾乼"K:n]{ MC8_~]0!HO,Բ;1c 9B,R'~qv|B]W.~tP0or+ʩܞ Ox\[@IFqa %JՂ$oUG<ӢXַIE@ă66FQ  mpu])~F?AQ yu \Lݓv ԓ /Ʉ nǺXm-o!5N)2x:ge8dV imH^D҈ٽge $Ix;#{FvC3bo.=n+w}y:)/s-x{[DYTJ!Vls潿no j0Pr!̾fQ 5^#8]|GKOWr sWcMy Ghm!2"E>+z#z.Φ,ge=xQ[sС_ NͯVԷWos+bsIk E>Zw0B# #2+ %>=>eКBVpT*(#{vQZ\pPœ|ai$/uu4*K2s(JX +۞n^ZP+#Nzc  ៪id3:JVC\Q A̲byp&t100644 GormSoundEditor.mG0\`cMLo*'y!Y鳗O/Sc .ͅQP ~?bL8>t;mzj9 e*5m pXȢLhs5Fob`3 dܵ/gI* 2xB[GiC> #ooxRvrRmlP,!rOP\7xpD- #{f9@Nlj:ѳٹZ[ptC/%p2Mb\I(뗎ؓdʹѵ&?(b;vimSh6Lx;'[zBEKT-9l3,ƼZdioCF̫]3y?f&& )9.@H/a^/|,jq L_hnbvjZfN*|39ʲl#M9x-~c*+(JMMj__wԘ&4e0lrnyZ#GF|;<*rBgv<ڵORm;ULxLA.{9c_7v>nɅL" %yM[d'c) JQ[u}d ɸKL IS795_ڏ}J"'ҰMy?0Mag\:vlr~XvԼT_~8(pޚ X\D,6Eo3}SeBvcї'+ZM:Od]km&2/ze>y66 ؿ2NLQ{S_ɂ?ˎɾ\+\+'_vy>}?G(3ɉy)y%M\Ivx|[;OuZ-$1)'5,35%rķK/}.:bq&gp_P_˜3LZB5ZD&s2mw tOMevFWMYR^~9I;E@ZR ThaY2E9S]\&G:nK{7(znd[i¯TͿ&ɓ/md+qRS=bN3Me8=Kޜo2'+ jExD[A?W]]˕bo;!U찎M-'pM100644 GNUmakefileB^GŊ4|ݓu0CZlR# }{R;5%h_ 恓 >n DY8_d\cp100644 GormDocument.m#&B rNY]A1AR \9؆100644 GormImageEditor.mI02K?E{F2su5EK8>vOQ 4>ܙ"_d̢kFMK _f#µ|K9''-/ ,s}ȃH\V1o e]1ɓb"–\ ڵĥJx=[[k+3SS|so,A#.&Ly`Cx s =Lxk[|quT=Xm6"6o0%K\wq-Sں9гE$a;5v@HA@IG}}`#`9 /yx`fߢsNmq04Lg340031QpHKOOgueƯKxvT|=3Xv+J4y߭&W\;ו|2׿uo] }Gx; @5 x~[hL[|ԥh˱o@L%razil>:uI](j޼JI100644 GormDocument.mk @pMc2{Zub蓎x 8x+rNu~3+;b9y ^eZ-x9[^!oEVsLQϱo7Х.Kv!9 ox[ r"7 mx[z lly9)eض hg+hin$꒚TY;K&oK6v -.I-PQp/J,LN̉=9 &&ՙ6:&\eg>%$خVwlUg|oh:1D/471;5-3'A#x9;gSYlZx{$wA- xeH!ᛝ۫,ȜM 7I@:tH}=6]#ֽ#!%|j>/+XsX;yRSxSBpK.C<,njuxew"xF kxʻw'\lm4xw6VԼ.!U %x6 ˪D~\Lq e|-v%6nrV"MG apgMlœk$d>-YL ~ /e+E&?^A#墕Ãߊbv> 100644 inspectors.m?*7`chM100644 main.mr-'ӖJG 0KvUYx yXxTm.vM Q/xd=?t[MWP<~:;iO][AQ㆐㓕|_ܓiup˻D\FkM;<0eDʖ_:#2txvmBa͐%kFW<wj= # m.x,v_t-.VԼ.%GoJxcf^!5/ +Qo0xrTe;Cj^ ,x340031QHI,IKI,.N-f(5)O:-w}[^0]8!D]~RVjrI^z~Q.CΏ>uc2L k!+^xekQ4f3I3Z !7- T֘h=~?R]t%b7.\t%sݍgU ̞Up;#ǽGӓ+TBUA8esQ(ä: Ité8q3z_tln+yzCgQz?ggtFl(w۔A4|^{eL~0-_$7 i~:0'G1f*S[VQ>  jX5%i6.Le\e ݡ)p ,=0)q_(KRYKKI#g\_--X].0CFEԈq:wŔiw-aM֏^pKOGK0Th0M3O 4A-CanUѼc'T3M5Oq9q/1K|IYƣVR},Ŋխ lX)uȴ罿GmHTj[9 ݲXxpMIOO_Oo fYFl,mYxy T{ٕVxe%c +7f0gFزVh!kJ,q/f%ْed"[E({d{3|y~s&-B\(T(f=Px1|IS^jsP-(jX[*SzȹaTugϻ t:NOQ4 Q)*d8Wx+gϽ6&c. wq<k}<ԅK|YW?RC ]8<κ|P pEY,GC@MseͣNݼR$$M0hT|l|b  -CoL9Bա귁Y% Qxq4ژWpk4dFvx`<9rF <H잲\l-[i( yxqQװ0d}ċ#z H)b`O{ ʏfnhA_ .OtؙܻDN^vH_ a4 <7C&_z>FW\rWo׀:IjvASAC=`j@zA#gM}uN6lb~ hڨ3v\<чM np^ӎۇ =~Ea|!5Z8!E 2r&DžB9Y*\!@B5R_vjx&l' hi{a2s`|.ʟ @Re^)zlktGJ+Ȇ4#֙KQ5vT0jm|3*Dq<)c|}1Ӛ[ qQ,TPO@sU= 5$M$ N0@/+Psԇ!4)9g<\YUwF8b9 x'.iVg+)q7mGY٠pp2 [alS^YڗfBrXLZLI0Zj]R>߬:NK~[qhMY8,@ +YtP%UYn*cVxn6SpOAJL|H*)):6}K ^ #sfWKQ39e*pR/qvyw;t%K̐d H~cwPtbu'x* _VؚC,o:5JdmΗm0bY.rHaD1rIB `%0UF/: xRr_S_. ?!Zoף+]*fB3[k<vWCwjA]%9}D=+IEʼn:{8gՉWO`l,sx"vԷ$7!DK2\g,"t &heR|1*|EC#x  PHvy.ug!A3 U:*"ts٘Q{U6&CXXyEk6%Tw+-ot#!ӟWVx{{*qi,8]Zb@&‡ޏi9sߗ]en.0Fm)ı07  =f; M7kn31T&ȷx/J S#Bc vxWw 3,D  xEBwqy18df+G qf_>ܸ^2lVA!(lx~!![<>=>N ]ۑop|w(|!Sx:^>EVu=mjm,6S%eq_QF_f{lq,1  OfMp@0E U@jqRAP^*u-XZ}F)d[_}u= O}Y^7&deHdJs:L0n2ќ  IXQ6vv @pT^`F11ً^)jBʙl0%+6@QY100644 GormObjectEditor.m}1:v6uՇE6byuZϳ`kQq *C!kIɳI %C""i" d e Aw5l]ySlt= Ldc4&!z}`/d!Etu NZE :O)x* J%vEN{o3nYy*a K .6͡/0U:zʇcɳ  lHڟWk":? Z,M|鉃HH_)|&@S<43N/xl!![eH j4/w7`^BLD:/ Ϡ$oy/A''.4~ Q+{x=!![|?YXڤ\Hp~Y.oeA뒋U<L }5 { lKxp!![ݹkIq'[QUoEhh _O]ǟGy8aШ`B!] wfu ) '%@8Т^l4 ~xF!![] ܽuOwͺo+9o`6* ŠΨA+< RL[u=5B6.lӤi8GDcsb?L8kqSaHO-NҤ.BQD9=u3^)P, Nx Mw ˺KpGxk!![SYa ?ڦjoEi%%5q27-Vin' !ͅb[9yt;ɳ zjL}Y2q 1O>zxT<-?=SدjEJ2>_nh``fbꓟ `!Qn#b6L̗vDfȞgO\hW/ȽK33 57?%5%5H2Luued Sp\ǹKV.)8}S^A~qIb8F3US*cNDSWr LG~Q.j/SkDה*M&`YC2>$Ov}d7"nUw&HD2ҎWg'3{럻Φ}#2bNf&zPFnc/+;2Elr6^Fbx4yS,x}9ɉ.ɥy%z oiߜ,z*a&wtevU/7 Y+Dw7\#58~}Lқ '&*xE 46&|&d#Ě"}SaUwcWe/0̸VOC/A+7d.;T$OSYNW0wwA3#v.1bv&@OfZFW"{>Ȏ]!3L3_l(fbwh7>6s=3Im O֜k/ܭ" qۻYֳo='OVd?>pOO+w]dɚqK:n]{ MC8_~] [?`nΙgkO)\*{o 9%% ٧˝b!A&puP#\]|]~vd܈o?sgm?X 1.(8(ẖ.- 9狷)7Xp5?=xOy] Eln{棭T"^l+[xm?AYQ%?ED@d9Ӌ zkf {r@L W=*MO~UoǗ'ӟOL_>?OHE s)(š ('8 e9h[%dg*cDr=mn5K HҊ9p{5ad LxZ mN7)jI鳾WhzA%@e?1ux;_TT1PifnI8n>{sIIki+2:~~{M,?cy=LEJr_q=-QDzAL(Iq*H_z*K=nZq`:.|kt0*ri4ͦ>{Q{@%QG"Ԩ5Rn_r!xKfF-AeHÑ* cl G`~"ҩa=hҠSIQ\5m@ܤ4 tSPdqowGϦ_U.$7^ř9@/`^8M!< Ґē '#D>x((PHӍD_69J-BOi@܊K"/$*py("bDF'FBӥ8jܦzf14ؼ>2 ue@ye# rn&Ɠ#w{тzT@fbB>oNR Vf"9H>AfŠȴ8h@b& )tu)RWq k*Bb~NRj]p,b< etۀpToM}0!$jk/^m"y%%,-ѭ+hQdu&ԤĊ5EVV<*Z%2NF;c]O+{&#c 9HQڄH[؎( VpEXf*9>Y"W5$I$B.,?tQhlSa\ 0 Nlۂ=ۇ:|\v'F-ηRR1uBFbk8俱/膐>ӭ#`ABh!*#/7o&^xJq*pƬ9?9H&*œx{\Duag+׼hR1}]3!%UߚP0s]Tv@`ɋx'J2\\PI&7O{~^gϮ]z~++^1~z蒯'W?WkMg jgmIItJT@5JDtj/o類DDkc90{ 7ݦև=ǫl 5~!o>Ruu@Rؼ $wwʰPPi#)J֨!!"|ɴZ/FOo,ӅWW]|pn4_K1~`>Y/ho0!,K0'ؿb~ix?uӟ 9*mʊAMev">y]@W =~ Ξ UY ~Q˶^?il|G@i~~JvHJq*RyL\HrɨMoρ4g:8}m|*!Nӟ}UCo@_Q9U۟d.NJf^!Bs\z!VADz0 zV +!lDrPOr?B`_058mv=ܕ2FT.ji$ |9wASMS`F%i3/ޥK<U&x&ȽlM[:l:sa/9Ky_H%x{ְesV?>ox{\g_0! 2kuxtqB c$E6x-XpBĉꛓ-'p)*eL^l5OtZ~^ob^bzjd\װ81Lfdj e%BYYM,Q6;( &v m3P %❒XSbť @h I*JM̆pjTfX"X&XLNV4cõyBSkbۡa^ջq[+ҹYYyNe!Z6rO>e71kU#H)½'!Ş@;Y pϕ9T*Q0wt0.h`Fl\([KD2 4FmP/Jk"9 ٖ'dbط|*kMTeAPK`.oDJ8?;7kjA;}ϲR)LfFx2(e'(mf{b vE'km_3BHtd6OąXx$g\uO0 h'(hiN Sg%ԒҢNl" ,,@Y]B@ }4kEx|i4Fc%dex[1}BR)3N>*ʥ\ \吚 lBx{Muo'Wlsx.~T|iwY~'Bxa>ڂʙy9) 6%zv1kN`Q< 'fm I*x[!NtOY7Dzf:ziZx_beSw x31Լbzi*2,OY>S̼bڷk%#_},~ Ci}7#b;7.X]% jAj3RjraGfQeXȰI ^^zTo_hnbvjZfN*FNGӛ*q9busviXo x[}kd_Y-nKx_}Dfǂ}aǥS`WZTZ.TY?)+51%%$3?o^y\'#l}x{%wG,.("x3zCdmaB9@\x&z_d.703on` cza(x/rGdd NlJ9']mhx,vOtM.VԼ.%4mxclN!5/ $xmhxrXeCj^ %x8qCcbBHs;llxklƸ:&Wx340031QHI,IKI,.N-fhJn[J;fJyWnQ\R_u5-9fZmЙ-WJ tS(xe{L[u߯kᲾ@2F" 2nllFWOt8u˒d̿ZIdj1JtlnS)#sszo۹KC3Xkc5R.;;;7Y?2nU3i䄞5R#LW,g-o^!/&I} m*]DRh"v{KM.$I^Kj7@(\k/)MLa MnpۇOfbo^Lׂ8[kG;zq/vs:ϞwlOI5o]Ek*h]nYLxt0;>_GAE܅^C/[C_)O\RiMilЗ{uhDߓ=:GA$ϓ]0~׋{M>˃A)g6G}vaG ?=_1#ࢿ֙Ml{2p./h݆$ƱwzB[+&ߐN%p$hO#O~d)=nJۧ06CIdПPjr5 ,| C~?Xy? C>{G`6y~22)ch! ~EGaCV<^"?p'O~!F4z gu=nmmp>_•EJր)PEӭ p4\) W+X,zR,z=ƲXx$pc9vWM~L]*t}x340031QHI,IKI,.N-f`t xX_+6dQ\R_:q":"C}Fl<)x&UvC䩼'9_NP}xZ W3كMȞ.E[&‚fla &lvujk ֪Ji7TJ=zTzQ{of2Ʉ,mo{@ќ:w$UW`E<Pą,g`IHDP&%jKɬptj<>i G׍bRd<̤cݜԇ9ҍQh.Lk[u;QJ*-K-@&;JFGӣ#I& ՂϨ_EHd0 (DbdIl&I| Qj/ߜT'.RKQl&RfpT_:vFut$NpH$[//C $YVFӊl6& #QHȃYJ=S,HJ[M& |b4aFMd<>|YeInéyUMU5/'fr%hPIP&567 am6@&ҬsY1Y'M'T°3`A*B%+ZFs`2ĹYQ[Q̊"Uiav˰Hhz6z6ccjEGbqQIT#Gw#@ C3";bgs\+mJc{qKrL)ʋOv$<1]|Be6s!˝JmT3 YJ^Hr+^Yڻ.fm1?ױ[tV=HJ#1Lb♾EŦ|_*%޽}bƴi 2B00U2Do)]yH+9a̡1]|PI }&OfHTH›,u/T?m:O7ڶfæ Dre}7v􎷺 wr!c#xW2SHW+ A,l4 [ݗbl`!o,8]쟄 bdScXZ7L}-;g *pm)tNNkM)uȥ3q@0›k]lgQOԩpr\ cu:DS.lwS!hq{q۫Mǩpj{O;n 9m՘5Coe9cP+^nz7ٺ=f݌o<ފƋXÌݹ':_7NOmoWC 9Fl Y-<]ymY֏Rjn.um*]$fgЙ_oIT5q_l'W_݀XڏRwLZbدb  9`i~M%+P9"B-G|k筮r(>TTI۸]%~X+z.' -p9 _bK;o| z 3Tn[r!|p862YH*Dǜ DCcx.65(w bI i8> DIdIx^ےa*#$Mۼi:m'kAvk}Ә?>oE8rj,}j036p,>7sz{ ]=/WKY2MZnj94jeNcIeI]$G98Ha?s`+,A83!rgV>42bi2Uk'+g੊9.`tJq38()B驳w OWleNOw> _"n_)6Miz2 8=):J( 8ǻq=Gq1U$ 3YEֺb%ũPN$WNr lL{O܅8pOoq/O?#b#J1|I愧#Ig]JHnZOZ:ɯf)~U,$LT4 +z"O[FzA`59Iڀ'icI9>"5i ߍI̍u""8gDjed4"92"s"RGIb7i6';1`2zx340031QHI,IKI,.N-f8fy.ON=L×ᄒ!D]~RVjrI^z~Q.{ _S249;=!m x-Bz ɶ+xWIwGi۲o"" v `&K"6&06d!!cF34=\rs~c~JN9$ݣ<]TW]UZ6k.djqebqħV`U!C˺fn5LU ~*%qM_zΊ.jklYYtM6 h92УqI[5mQ|46}GfQǗ2R.;d{\cY'939d0b:Y!.D#IT[SHhr@\. Gx/gč (y-F؅D BNn}wdV j?Iiz0IBCi:?%VqpB$X&/qHpv3),iHE!P\jH ~Mo O$ dMC9`n5"0(2XenXv(AְKٍ {fY{|6 µD#&:t [#Y{2)G%%'-k#)yQ@ )^F47h8 Aҁ)x5JI`T2aL+cESo7 ?T5d",L6cp", X74NF } sd@NE 3PYD}GrCtt-򌐍 z.G aIo:< {s @Zf#@^KAa1!? yY2&d\AЏW衃\5%q!*7`QvBce7JM^ :'と8me,Gw$WČArvYgP*nEZ)f)e i))L\5PH~P Dмc6IǦ]r:k 9Ti+''.N]'~I`xc(kDvj*WI}r$< I@k ^8pMq op/|tgYJP KNecs,5Í|8Gs#ܚ^~N࠲8!?Y5QN+,*Yp9"> \hMɠt j6`U=ŋ~.I {wʛz7 f$xpqꗔYNPQEYhbJ( ]5.uQsݹčgvnL&LHL\2{ 3=;|d7o,\#ciUC\q7l09lT3֖U#=8v*}IE;0X!1#KT}JTH?[.NEBpAYB*!'&VҙǡlNoJh'Uqmr^F{ΪZa%HuȖLCV+פD +?EyϘ̤PV;f hTYџ$$|h SPB"8g ډ?ftY$GّnɃԒ|djB3p7J_oɋd*m%^ ]\VF" =%ëB? o!g!Gӊ̰zKhȗpѹC/Jϊ:]JP:TJoQw ^2=+=r_>g4ztz?#dG Q:K=0`_!GZ{9pv~90ۜM$pS?pЇ;\q6F V4U!K7 jHH~TL%+ UQ, L_o&}#DFI[R®Spp}R~&i7oU[y_hYUѠ *v:#Gp5$U RXbqY>X?$x340031QHI,IKI,.N-fwc+^&_ !RKrt}kQסO Kc'Gxk]+/{RQ~yqjoſxWKWF! M4"EB[L%q"[> IW :YwsҮ."???HB iΝwY.i[zsJkUvu߬vunO/x !IXvY-׶Jfj ,YV׶ d%FjҶ }VjfCk=q)46I)}jjH?Qj(fB`hH^6[V[-}K.`jӶzU 76\T"0 5I%A;e6H7 UedzK[zi6'ſK 4 W,#Ӷa@Ilmi_VNȃ!ą%в -@BjCF"%:=1{ oƮn*u ~lE)ܣez {ɶm ِ 1X(GČ W~D`7ʈBt",!n;whIeE _4øc}Hno.Lю6_%oD"!w z_hY'}B,E0^)M/)4b=ܻ.BMFs&ԪS^)er3Yybf㞺W*ֶ>> {-Xètt'*5B^ 3 3ʂŖ׎$ BYj}r/ eEKaY`5z,rןd;;"'QKˤY8#xi flfVbXonM4.8Ԭz,+GTܻOP=%PHF'ۤHa)GP%OesUÚޓ6"8XƋ(]uBs.4B2BOX}2FQ_2 5n8a<ɔ^LjSp9Z 'xF1FQ*vZf!r.Rr08"q8g޺cm-%5n6G1ޢS=%>sǜK|АltgB;@Nc9;g)6pj*s72wHa/[ZtߍϙF2FRcŘIy?#S^dPch>/ϒr ittl:p},+imTӍ9+ "__`dTޫ5^7|C*GE9s\(Ú7yvLP!XhIWN? (D‘^C}: 4r|PgY5n%3s;]ӫK ׂ;uRPh61it[G@jg63߉mftq^yq X ?'1Gn'~):~5;ʗ_Xnta+dZ*ԅ{ rPL)#9lGiw8:-h4 7^Ga3o/GH>; =(LJG0gM }JvGHP;F\j(.]y*Xm,n7ȸ 2"`C1Cd(jdN[ˇRZ:hwGfSͦNgpD&Md d*T**lnU3ZLC?6.%2`9h\jDM%l&-Jbt՛hQf=Ϭ%f{cT qK\,8LZ$1&,&M/J4xnWLo\/t lf[H nL]CL3ͼUXtʘLd.2l/x340031QHI,IKI,.N-f(<uyr9ΉUm !RKrJZ1?a?'d4nOxmkpSE4ymM& l `d8tlI8eg"5bQER5 ZJ[ЊhEAOTz!ěmΞwMziy|bZJOYe^Y <0](0]js"7K=bMk94L%aV8Jǥ.quګSfpem*؝G\pZ)< B}Dq0r-pVgVg^ VDi jbԖf oĔ jyapËҾt|4}2Eo`[:K41$.+ne#tmVwk$K",ѲfvZiJ9إú*?/J^&|Wd sdTg_zg.豛N)򒠣/C7܇l'ݕ,y7Ge1+ t 0ӑ%!(({N7t&} .8"zL+%/&T>oqާg}dA);݊V:CN fp8ކZliZ]/{{g}l ›z\k4="{=277cBf(/ao(8^gGIyDғ :xl7-NE-N,H?CIc0iIv~.I$$NLo"/6=glŚ]Mb=s/`UMuE$czљc]Xyj#og! G"/"#@V"D@FT"A.z 'dy ;2yُɐ!# <v/' T'^GCwc$k ?XŭHFk4m3~6 *ItNeXM$>g xu}1flAlx{!qLbC y%J:xm!![ZWNEiYI(noEB׭sN[G犭v|\%nTe1׏T0 }xR!![nCFbO7Eo~K4}[;d>g чH:3Z{,3)#Iؕ&>`xu!!69q[!Bya7I8юg0100644 ChangeLog"]/h h;`ّopMdݮƶ|1),|T ;6u{鎓]坴qp5"^fU02A xP!![q͢VMZd5]oE?X%SE3 l[B}>/ȘsR{rA100644 GormDocument.mXS#F y d6rXi-2ߣZJBsy֓$eQN>x8!![,|9pvS21o[x\HԘ_&>I Gx9!![Eu##O^mD=4o.K/|g;\z;  Gxn![8<㈔Q0 NJo1X ]xqЏXl!ՓEo |LLM,E h@%}ȡ5KT u[yfcr[X$e-y?x9[#g޾>~w* Q@%o>5|>rLߥ ܳ Hx;-Z~CH:Nk_bRL0vr+D ,x0[xKrl{Py^oHmquH 3EoJ.B(H핓j/LҠc<סF3coќES_Pbtȓ JZTG5_}PNe  Gc~tE4kƊ 6B1So|p?0feȅa]xQ[bNc:PIԪHHo ن/srY?hAk9Sݖ!c x*s*F nFV 5Y[u}nz-r\b\=..-brԢ䒜J<Ĕ|DҒ<"rn@.~.P~XbQf~i1Pu:kPxN?L4osxvk9M]x78eY5++QTq둕F/|k+ȢgGr9'nhxXbBDzk'o`i wx_lEsmT64ޑZZ Wjk9iJ؜d;[؛GQ/G}^MA|0fkAn>]_~ͯ<罶 xֺܨ9t:3ϔZm$i({D\oDwbw7x׶|VlӜ 4 fu;n&E)Ph0vfIdl0.1Y):&7#0>@u#B18L.aƇHAqĥ`P ŕ'yޭ6:- %F/Dt- 6a iʴAtToRa8?90ATދ^IF )˧ 2tUR"E S#6'XE1Py vQ`Ԉ K˯5Dl\R ؞XD WTd),epV a0f#.=.q4 v~ ̈́0T)14c ub&_=HSXX: 2F٤`x4ѻa6nAbfҔ*f&n5pdˍ+k*v:kÖZmbdfr\0],:Z·o8% cT(97xj"5JRT鞸p ꦥϽ-x]kė=/lPտEۙ&"IQ/KqzI|&Hxku"!owR 1>||_z0s'[Vz$; 7QriNJn~L?7^`9N4]>x&}=1}}Yq/䍐֓2K[_EXk2n4`&LĜ>'թs?󘂐oroNoh*]nO:QxWq3nG,!lΊlf*AU 876ilr4հ E^} {J-n0*k2Kbk ӓDtd ΗgSMSbL9Ը:Ysr&0F!S"8_]x"IAȹ49L>;1*3+>wֽѣRx۽< 2,i 5&ϐ,#6YZ6o5Z-Xk.N0\)쟔\_ $RsRS3R"]'N= { mx{6D 7q_o2A›2('(*Dkdx:i;($&d@c 3MV!/3gjɹu\\0ɮu&ߪQ5jImnL x;=iD ʘ&o([&7;Ø/k+˜* UPٸ24&JNeVPP|VzW]V+gMbBu[AFӅ õov?zx:i .5'VKM^_gnw] 1"x=[7ӆF&z N%Ne/S0Ԩwdɕɢ9Oc|AJ ]K999R5Hl:flwԀ08B'qdQ| IT֙",ͦwb:I#T8 MnrVBtNQ}2ljB֮ZD'&d'+8%gdeB쪑I-҄I@75hrA"e܌'[usrAN4Xz s7eDh,s5:?KkATJyBTxMޘ-5y[5D5P='fk𤋮EIjqoj^&؁ RsS8&dprfM2LS L^.1h)O5ړ==ݸj^oEтLAW }'+$HoY`=y][^j90' R,,51Xʂ`kHX 6C;Ɍ! P ִrxdP((O=r8xUoEVCU#A^(ZdNCU!Rbhbo\Z>{g{q %pF8r!$nܐzAy}f/}Wp|Ώql>9s0F W`>(Ax A?FGIBjm+lhYP)lAdġT[4%yFN=tqz>}U(zď0DOȴ9FJfu~L^cm>%נz% ݔM'1","Ӟ(Ewİj[ΥwW˄' XIsG[֮#Wv0JSPPjhó3"䮾][J]L3:%ˏh4H"`m im5bV(=fز> 943ő~4*s!5G\}RO`͓FO}kqTE;4W r<ݑ2Q}e[7Vw/SWGWμkMgphh-Z:Ɂ Zdˠz]Ů}mj؜zP8E&C:>MlONFSLyp"kaGkKk%3%݉D\ = n;%=&& ꠜbp0+94>&3gTg^RwS$}"sK!c p,`3c+$Vmwv6b,%#>saYauo)Z7=>՝VNǰq6^y^!>}i짆Jufxߌ_Ca;+x;ɴi63R=|SJK26 nf4Rp)HԜo&; BpjfnJ\ @0y~[qFbQjbE^W OJM.QHKLIu/A9ũV '50Nx[4ih\L6 1 .x4iCCNC ǜD:ٍTX K7f E[x`Pm6ǰI46xX}Le7|pp׎pc%1a0;pv9UIU)U(ǪQ[UR4ѪJMmVTQIDi(j雙ݽ$w3o޼{AZVȜjGu"[C8OWeK5}!Ylo15Jr$LZ51SȒ[:׈a V`]#XD\]d7H@eD~ \U%QݷQ U`43|WiϢJu)(g$ӴV̫]9ҳ*YB~AEPnl`u I*U)9IYDl| {;PM'Jӧ㉄eƸO"r~1NucjA"r⃩N3 WЃwVU ߍZN,~s%_w'i#;$C%{g r){jg2k^ҁ'.4ˌ}Koл[4  :cL(_VKYN ˡB|7GNuV7{IqMRK8_u/@鱋c#n _fQ>YiV/d[, > =8+}<,/sur|,>~.fb$`"d(1}(iFQem<}fnYvӝueDv;p_oL]:>{O82&C#¡PghOgeR88"b> yA;AO%C-b$qg/"Jj0vc tJ^uF!o EAuM2rB~7:\t|^d^<\fnܤvulu05=?Ir釉Ee|D#XWK.ׁ`s3Mey! >],Һj ^g2_BV4}] c\dI7^5tתcCyu= *왏ּBpCO ۙ~}Pazcq\i}<10ոgsq;_ZS0˚",adYk4WJM@Ma Up<_ngVF*A 4Ot7*$fUBm˳_@>|fv>s#*46@׮*JbeRњVݙJz\"[+-xÎI&qn^92=T]^7ZČSZJj敓Ʌz>_G-; ,,^Y[8S#C9)L C^z@0@"7l d]=ļH쓇7}xx;#~-Z?=,,B{(t@o|~q8͓mZhk;8 4W|bfq1 %Q0L,aS}ꊺc% JTlԀ$~ø2vIO 1 Jy8ZnX30@ovAuĽ/A'Oj̲C[MJ)B64l@9b+G%ȓ pd2~`9e!A-+cŜiGBRQAjj΂ 41X(89)Z9F0G}hՐ MhfRh ¥g.c(N*K*AJ6D+XL`5$YDNgKg$`,ګJiH JSˤ:2 1 g })EuAVlQѐ@?utRMxҫYi|n=K?JZgA Nj|0d7QB3t٢}w‡'5lwjOQi;?N"@-VCѽ7u~vk{G ClVM E),G TS9;za;k%I#y9cQ' Go=mDqa GD8XBR,/#moao-i혅Z5WM5dsĠ8 <^Ѫ[Cu.@L_ۏKkDlyxt7a\;g2s+Af\NIY%IE)! \ E%Ey 1.L~s0fn>*ɥ 4.E '19#?'%HV(:9_ns#7NN} p I,. H,p-K+E..)KwtII-@*]+JR3bc'oc⚬#0N|N/LLN,jP”|J@ns`7++HvGU//Lީ0dO.ͬ|<ũ9i y)y@򋜁(KM]吚pJxp"a_BfBANbrG~NJjB^f5P/'?]ATtSKRKK94q(B+:5aNqa55&t P_C`W-R9qhv* ;#Sa GjҴj'?BWQvAf\RY[BNdzp^Df+_,9#>IHrXo*Q&bxZɽtu <ļ{OqS%J&!԰`R1'(V)_Ud$X&Br6q(wBkH [ a.@r?CpwTxXRר;Jq 'yx7#UG*wVߜF@>#uaP $nB~& is removed...~\}gb< $txk8۬]4u &yp('(not hn?x{t! |AՃ4fox;yiA 3:p:\l4x{SwCfjF'Cx{ L$8zi䥖;$%jnbܨ0/sfO,,Z_6MEOOk=rLi@e6&j(? O~2Ykd_7.vd-T7Ɇ*r)(+UPrqu vi9ŁjDԼRMkKIY%\@QPYL{triqI~.XB!92VsDum 999 \(6e&ŷsel0~q&#m7x{'\.%Z)@rE/`XYZagd'e&X)$9%VNQVmz$ax{S,?4+nWbe'*쒚T䜘i=^q+($秤*d*+$f)(*e+d)&'UM?/c[Xj7]Nѕsz -è=E6#|riqI~sNbqAERK: ٩PV2H_bn*TB>XX P٘dE9lVlQx[!v]tXӬQ x31ԼbIbTONt1 f̼bVb?yvM%Fy%E9 {/?VA; jAj3R&kX1x1iڦx*ĒD8{˄Wk#H_hnbvjZfN*FNGӛ*q9busvRRx60iԔ@~l3_BD6|ߎ51.ěOG!iExxQ |SJ71}^Ak ^yNT.L4xxqBȱ~37[WPc͒]3r*xxQ |SJ8*}ha"Sg$nq@{4xxqȱcbosZ<-H:axDA 5*xxQ |SJ__y$K~/pX4xxqYoܸ 7i.xu~Sĉ. âx340031QK.+L/Je\ctM|U=KS!D_hnbvjZfN*Ce탅б2;0&&߹9JpҶkN/;-Ur}SJKJ2JKR= RKҁr OrBV.X^pmՕC%/¬uM)exo o^jIB)4pӋw-#ŷwb;I,GTgytZ ΥLwG2*z :` z Ablw ]#T5~㵝;vpkzPu 9%%z%ii >Gڧrt@_OdжH1cp6{\bp(V%؋H1uO?,bkx[ǽa,ޠx340031QHI,IKI,.N-fڑϯp>~%.?)+5X/=(aԼFͧfI}I  &x{"3_fC<Ɍ|Hd*xWsD_Ď)$@hIZSG!(J[Jj*--'ͭ'ɡñGNta 82\a߮-'Sڧo}o ת͚}{YX*[[ąP4 wiW:anlnm]|'@IF5֪]tmjt F'̳_bZw2ܺ]a#1ejV StͩW6j3MjW5fSt7SɗFcìA_ ќZI#2MoIuQs%re2jBd|Qq? nσ"2z! ()hAT;LmDqn)VBjB5۲*˃$Xu0nfA|ҭW b/ֆH޼U檴a,, oFD(NLwܣ2m_3"^;3i9.R,~SwU LcOIBwSzXO0=L?Fx#/CНtv˖z~$S0N̑{b2 r\,sU!6"F(!'$wԑ&f&$ݳ%g9)?\'[b8U&%{-\q 5mT3>RC`W7?$ Pת#<x!(ZMVE٬fH-̬q7%[$|̱cWחvfvz0q!gaS8"[O ?Ȫ>O\ 㯲l-6u6di6Ҧ~:6K5_OTiς)& h'IJ/Ъ nT;^poT N0xsu3 wu|rRxvqY W&ioW?eo|n,_ .x;د!G!-'1]VzrwllIY%"FCY<x;,~Xt ͟YY'Kp9r)()gM~!5; qo4x;,zHtdN.\)/xeeQdb|V\s- JkYxka=2f=0Fx340031QHI,IKI,.N-fhJn[J;fJyWnQ\R_p[M,lojwXcr xeiPSWwCI`XDYE ӺZj]*%[h7֙NgP3u_p}︴Na ?K^^#;NG雘I*іzQe+YjXQzY6fjN+FNfu"fC1*ʆzZ`wPYHKˣqJbY 1Rm"m^@l3DgF$҃虢 ͰIt^'iL̟dtښXKj(1Qt"8ҕXB)"Nn{\э\sD%) # Qcï(C 5*S`koM8`kkeVXSzV_uߥYڝh(Pr^\ g%ia Ť;M][/Y~.܏h`zxܮG}`S*HLr? MllhoP^ ~rGoZuZ+P[Қi>VYgV#0Lͦ*wG-cE@XfY mfVV$WDAvheb|3 E =dAYEJȋP*fNa& :JRì`*0x "B1yʀ2nIVtfC) 9  BkO|\u6[Ph'冶o *v^nVo4: e \k*.^.^@誼 C7YCbhJet7zİНmm_Sj<$)w 4B=WpNO F Zh" xj2]kNV_G~y43R0ch9 2ښ6 䇜džvpCe?$o7TMkh:Mh3U|$x4Qǵř|;ڙY8穡Nd6 >O9ڮr[4+Ror֨SFy:]*:Tg cVkQ;5/R}g9i*LsgѢ@ǷNѵhAs"FvsbrL7њ8kи\:-}榫s7rGr3f]ә qMXyk|<7~B=:"%"yw_hW%-KQBkZ%FQ- O[~u?.ݥ. F!x}hE~fG|V>4]O`7*>ES_SJ V* # f˟ #~ F)V#~G".^xv^]<x[ʼy7#dF7P'_O?0נ`O?[i" Ix9##[T֨xoοc}`o ̅o.9& 2ϳ xIxc##[3ɲTD:(IoT>4*3Y=m100644 GormDocument.mϱ/ ջ)-~Oػ t+qx ##$8HBg¶%,.xS##[~vD3}JVB O߱o~w;吆~X̿N"c3o> "&3o*AP # ax[Py_Ie{Rd.yb`*I t,xz##[VxAYm,>y -KFo~O g 3s)$.o+^$< a|ۋ(M 7Mm "XR'U&/{4BZ Wؑci*Y =6 xO##[b1ݢz_f eM;]oEվ&,9~= a#!Ֆ>i{`njvNpB100644 GormDocument.mÎ^H sX#_nr;!-{a K H^~ޕHspu]3}U?x##[f+5sRB%wZv2wog6D'+k,6o=+9j ʝ 5ķ=# zOI0mo]cdK^/ӹlhա9d3{'>J @7 r {[ *ȣ100644 GormViewEditor.m_l>NRH4=s2&}L啓hoM xp##[rt(xL&dK7Vo~Jv~2pq5D!di 7O1U-'Rwnw).M\,&0-=' A.x9##[Y~{i7C $cc2ˆ©on`FSR,05OA`OGxs##[: #2Z o[0Ꮱ=]xmk'J9CȜ7SyRd抓D)p^j@N?3͓w* P3#x=##[Ia~X u; ޹qB7oa&Eɉjңzw* GLx##[b-{/S0ŅLolPTS@ɰ]\<<\/m.L>K\8t {ߓ@o-Rٻ"}D+"ʲ'T9:` ?ki~z)f˃mDWXDt`bAk(j:}mwtK \8“K5̝_8Q1ciesx ###Uu9Hb /x[##[f(Wp} ?9lot"[~6T F͞k3X #o椆?gK5l **Yix}##[ 1s,jOk oAokVWǷn͗Bn>G ÕJwBӨ"3PGgwɜ:F/A%,2G#Miq_n?sBˆn8u?K5s4rLz(4Hߎ[3|knҧ,2\6u  3kꑏAje@ Q, >f؜Z%2,?m4A$_:YhdjГosNPWfwɓ2]a0u =2LoH#$$yzGy&fE'|魓Eo4ht <Pa7CWC%u[7a6WքJCs)m\GGQ @kll @G5e=D|ADm]TSe  B6ytuGy; = +uˤ̈́7?kG=p100644 GormPrivate.hgئ0U^,cu* " pQ-)9Fud-xa[<e1ݟ8rxS""[3Gy,}1xg?\hno^qyP_(=n/s[O1mZL[='@q>fҳJ /$F bx`""[Q%4TF%M*0IIo|x8 ]\`&Vn?-9x\ Z /- !إV2f/m&T WL}~2G "DZx:i&hY=.:eSA!-xH"![-bZޡzro-U4a!϶2ƑIJ`uEwJݓEo*/&<5zǓj/ 땨̈2F?ۇ:[ی㲪˳"I"H$<;ą"-vYWd3 `\ߊBX M_v1 h`2ßZP;w a $MH뷌Α0F&_M v@M':LfTZQ&49ٻ100644 GormViewEditor.mN *#4\}+ZWO}4\n]^Q[{$G fd_8Yz{"m#рJ`)96K4-r˳Fxu!!69jhfH f100644 ChangeLog J "ETgopm_ķAt3Y| aNq{}] .W@':Om?(,<x9!![h~h >D . kбo#śe)Da oD ) Hxu!![#? ÷`o>鱫Ñ<G4oJ2ٽ  F)D%IOߛx,k m|d6\<>NNk T1Cxy!![hOBԝ!0joEcp>O730XM8 %F@it$hkD&6 B۟{g78QφkK+q)7DzKhS?̟6IJv=Nx}!![􍇪-߇.QӌonAb/*h =r"/>ƋgjwHk&100644 GormDocument.mCbyM+x9ų 7 x9!![ -cMX-KWKѱo>;qb-X4 XHx1!![_͙#M'5o|;To`C[EU\ظZSKٕ+qi}spS͆\zݖҫLyٛn f2ST"cK1uY100644 GormDocument.m rW}dQ߹iݩ9_CKDC+>E觉u'kT j ߪgRX r~%#剛?x9!![ *&$H4s "I`Io<23uJKؔ/HxR!![z\<$068&jnF&>?, n29S[#%mL'.GTW@J'}^ !`xo!![>ǷTucӬǁ_oOL\ikvg7I Ja7%pW̓şMk  nT^sm_΂ao̔J 6}x8!![CR?8=IUkoށ9&6wzkycOuǓJ@ 0xMJ1`.UR,Zěn4 ' N-m/s{1MNz`zSs48==x0 ZiHk9r;u t0rH3e.;(')D(ş|6*qEXdHm`oUDh3lwφT7-8HKA2 ؞ج/BmiH Lb+$?5KY+QE dE\Mn7޲i˵n(E:N!K^T:;-GoCxqs&[s~5O|x{i*qU~Һ֘P%:׷ }nxX8iB_'o`Z3yf鳲< 8,xid#.S= ԒD e'6Rb2H,: _xZcC=,ғYY 'zmgmkcx;!?]~ d'6Wx`p[m63m.rs x{uW rE '-Op|žo׳nyd̨PYD% 9% tTҜ|==?&o 4L` ~E%E%Zӏ0:psLgwetq3RJRSjc'0JOre4@hqP20426153T^¨ƣԜQ\R4YB|[MF&ux̴i(f]QVf4&fOKX>K `jxk8+ㆻ̓Yds܃3R2S7K|e|U&:=fy,"c vlꐚ'axRyrTͳ8d6Ty,Qc?x{Gds&Ry)\\\{Blxms !N^ x{zWe;KjRid3vq,gsOߜ3enF2 Kk*x"^|-|wŎNxa-Ml8*6op, o )x4xUoEVVdHU*Q`G H(" fֳlBE\;8'z8U8". @_x3uW,;y{?>owҹyKskEa}m0E `wىoKU! !: §dB8U$brvLkЊ|~ tzp|JDb\#zsGTiYm(̵!fH:5vX7-] v)DL'ο[@ ~\؀8ё nm̧8`a*Z@VvZ#s#Pm@QOy% _->!4:N3͓.ʔ+X:b;eB&Cذ=,3PC=jݭB&:L-0F\JGZw . .xQp7tUJv`,-1 oē'wIOЙl =y&棒&LX'Jqrg7fc ,oG(nVɴYu6OqWSKĹt4+4SsRK2&/e+J-.)okťRPPQLSЈIN7I~zXM.e IY@; RS2KRb@KRsSqi((j5W-#e) ٩eg&Z)h8h*%攦rUCu@ĒR RRS2pQeS8l8&;E'敀4Bޭ(?(E0*&k9j9Lcnn& ox%5M|)W_0(x7ES^6r f[{ٻຖ@5fe x_#yGx5:tH}=6]#ֽ#81̅]jp{K:[x[ʼyC)WpP|kP4F{| A6x9""[AlB#kqWNFoEk`) }BS ܳco x1[L3y?n?}xi 6>U¤5ywGfN>z +xi ' l6/h0ă@-5IrsD 2xc ӆڔ'/lћ+ $xXth5ӆt&xp(&)Xl7LG nxk>t4ӆMEU6fx]1JA$Xd :6i6 ow^#3""@y h!x4NV ?>fq~}>aQxCpM:ʎP " 6F 2"'$Y:h 0f[Ksʒ;മ{yy՚oJ+wꣽl\d+.8ͨ&ʄ. fK۟Zx/^5ۓN75RMv6.:y'lTz2wC+xT)X'-p/u+MKLO-ܼ_!5/eVozxs]vԼ4.1 {xnBj2ɇ6t0o^˥fg#x{!o=; x;tiäBrD'땲o>>Z X`^$N 2x;Ĵi'MOl>Ua xx97l|ͻk7Mb MN άJ0717ڜ.ͼ9P&UXŤxmZ͛'qTl)glx-tJhC X%OlxխAU__/x 46ruo xz|ߎ51.ěOG0xU9j+qЈHMzEditor.m;BAQ/fӓ|wɡ/gtfv媔x)ex3BBR<.\q$PJ}**by-q@l*Ax7Ķ1 Ց_AֹNV.OwCx-34r=;? 0NK {ZQZqD=xq ϵ7~ɩU`rB^̖^ V۝ه cȍIr$y[Z՛|FG 0r!9z~}msye?ch%$ <7'&8IJ6aXa64hjlO^ZQ8}Cׄ0x,P.,K1@\.1a&{fZIwCO.0 \1kݏ]AF6Z6 啙uW⤹Tؔ18MMGlnΦܓooVlVOKώ?MD5H[Bmى`Rh($YoH<(g&"i&X!7jErDZx!][K0\ $ެWc<~}]hಙ9r՛:4 nAiiq4sl?pG]W8:'9j2A֤d@ {}qBQH?|t1|Il֜j$EHmRW^M*>1c+1 -͐ŴZ6m*+)8[SaylftIó%%" pDO&+q!*$i4=':@^2 c ;kV`ĜLe({DH5yu1TynjxbkNȯA7,aoBT5BQzA,[lG 'SD{ A=|K= mK L,[;/_K~zg DH5N4$ȸPe!qs21^ڹx=4R>vH\K?CpCj$c:lgT}_LjZY8 zFfoQ H3 9ފUr 6k_M˗?o*`ܘ˗~J[_i/Xك>qRְKu^՚?HTs{p jCh Xl&iRɥw*!읢BC}0Yv0~碥V!`K"r!Dd6;KU]DDO_/)H=TPcEvWY$H[C>x$v6()H8 bp 湙JX$ol4kwZC%oyBmzU3xMF B]XAӼ\oYG}}p=jO(&X,ڐ/g'?TnuV@ h9w'[sy3e/'5jo6=Q@7A 04)w3.9ftΈέFkD<0g.x y7s.H  P=ΐס#50Bo\. x/Q:ڶN2=@VPw:= ]X9;[=FGE' `,ly]dc.UՖ^0SyAaFS{WaOvy(1GO׆*洑;:U/BjxtfeۃA1?- onCK* 4cms?nn¼˒|Oà ┋;/ QL?DGKYmVWY RIN+@,{G@օMaw0>w^vE8ZٲA!VNwlں(l jM4Y+ޓml/ѕǧHi sd;pjq_%RTeYfu@jdC"eE+r# bL.; {.%PWTzW;5i= ) 6b*9Z{?9ckeʞfTtWw8}Tѕ9|ܤYE=Fv ܉ЍecN錣Dz{|̇) fc@vu؝dAaMx]~iǩV㳖 q熇%UGT-xVC cȡ8yRtcB6RH ghlVYjå;ji6fbql2Eَۚz] Mbcal ɩDrf:I8\wm' :!~[2aiUT+EVus(Wu W~xx$$[ ?SR;-?6o{A';}x\T,PS{#]x!$$, J{%]ጳ/xu$$69dDH rM &100644 ChangeLogZtN $R@op Sڡ?' <݂ -- .>U9NG.o;8?f5P~V~Hjyl`lF|B<ySɉ%=]*L/Hpps UZPV^EBU.qY! ",K,x9$$[qѺ7ƽ$.i8"o+KBL8ۺ3c !.Y! %< Hx\$$[|5{CKoEho67ޯ6OO`.j{n+f{oS'1Lc/Ҳ!(.n=Wy^9 $\Sbp^z%]lVЀj? L3cfe H1xR$$[9SItD#o?:.MW҆Yb  3~q>:)`yf({ax$$[;RzK(@opț1nߺ=h"v|l>0<##K-ׅuYZEeF2b`un'sړ/H/rwL7yDw DYn-NO1_{0p|X100644 GormSoundInspector.mb?gq;-X,~lVWԅ\#Sլt!4edCcxx9$$[7;!EZK¡g oEH{X#baܭij\ RHx8$$[6+0)m0sMnEo+$H?3y"Fx9$$[m}^D*F)CtphoH;/8NmwгGxl$$[z 7h)Z;'NV҅ȱoEQ)f͈?1{}NEkZcwn0׳Y 8]>,3 y36zx[DeBѵ\MsWjs2[|E+xS$$EnɆEk0#CY vCP4 Y̘֚˧Xۓ_)G!R"/&UrPкe$ax8$$[#2 _HY LgoN"5nҎJM}FyqFx9$$[+a˂A oT߼ZРN;l_FҰ/Gx9$$[, k&c!|LMl!{oUDsu7L N_g GxZ$$[ *Ώ' GoBs>UW͓O/Rp] 'WAɿ"AS/k".`YpLH kk.3x m34ɜwD!  LX 3x@$$[y /o2=YoE꽖S9I|oSkj# 7zE:E/Vkr b.RhvY %,:.:U DF0Óy24~U!,1)in100644 TODO;k̈́e|R cEQNx[De=-2"&gNffI .xJ$#[E[.t*[oHȔ,P*JffC0(^ :wEi:< S J%&іǖ(/p.u+?P+µHxEό100644 GormFunctions.m՘G.!Q1rjƮoDJx0E#&100644 GormPrefController.mۖ&30xCN5ͳ &ahF${.)Dx%K6z/ VV{UbeXx8##[` )p(Fo pxd7BzoƓ!njGx9##[חdԷb]sü2o (S;iF\H= 5OGx8##[)i;&P}B~ o'1dDK'd!MLFx!##)߉يitv۳ a+9xM?o@ %+|;)ܳ jwit! > _ٳl7ۣGoWߗ3}b[Bț@,22D+UgbԏJ}Of/vcLMp=VZЗ9\zӦ7SEV}PNmGҙ2PmmuQnDz,q!g痟rZ'3r`;%"c̯e9F8fnI5>cDũMTDLuN;yꦱ9 J]/e'HnH5}DaS[[_k'|-| VʰPؚa&Jh0_;8*5K-O@ E/_(ʩ?ox1{v99F.Rnx[4kB)idE!3&+3!6xi: 6XLV{dyo69w }xpH~ VFͧX7;?`aqHK٬ !xADwx˦Gxyx}_Ji4$ /*QU;*/88$x-/a3!AG4وGR+BQ`l4%SZ_a:4ֆ$Jb!{;H]sNT_MEʬ%jZ /)~"?,`j۱ k]^%+C4$,4\lC)F2Q( &<~u$gh.sɣ&$Xaڱ y$Ǩm3M.[V9Tɛ԰]^, ~1+3}:FF.,  Iv/r6M^AD*PKfZh5υvsSK.ox&dWsW"m* Qu@zizR 5x[/ Yu7Ȭ99BzswU +xO fqM6(OJM.QU̱RP..-H-R(N-X)$AX\}$7KOu<'c[xqO [%=4RKt,w8iZxkN;@ x31ԼbvO}UEg7鸅7fg3$I[bHH|o JJs;ޱ>WI k˟Qc RZT̠m_r ]rw5DKbI"Í'KESٯsY LLBsS2sR4rg>ZP̏WCTxwz!nfvk='l-xxqBճ#Kk5;^M @9?$13/'!kgY5?=2Qe1 PxxQ |SJ֖sJ]̓wLT,1[4xxqBlg̳ܾW>wۡxk+Ua ;coOd,\ġXy5 Dx340031QHI,IKI,.N-f;JQyfZߟ^\3.?)+5X/=(!~ݾ/nB;!ox[iC>/GJfqbRNjJ^yO2 xXsD_)v>v6@ $S@(?H'Ӗ؊ƶ4i -Ɂ@\ 3(Áȉs ݵ֖.mv{ݷI\X7ZJfk1$*W&rIfrL/j&״A JM$6 u9ų)# 6GIwAhRtQ2",&2*l?]^/ az%]blS"4M y &ɳy5]jЪ4`")[VZH["I(9Yi%͉d[RzQ/]s3FA#FU fEUL$Yb(Mڔ # Dy 1-DZvP1!lk%htJ:䔞녫8t(ti{z`d dQ2-$XSȦiSh!#7@ub@Ei:.gvw8S1жj\#NQuhuI[!`F~z8p$$WR$͚cR6;,,Og\zҴz2$Na@X!szn}Bki6(YTS xH-',zLQ5)>0ro@p;XgOCv1.^lNsm0,!ѿxvpEE'ͬZ.TG%MR A%p%=2GM-_v}Ho[xybSzP-y(ukOڷ\'{Ri;ՓZ]\|^HV{Vr)[ee9V:Q *bSi$&[{4WSރ9>%b]Zȁ楝0u|fJes88=4EXd <)..?(XZdh,dF.,Df ˍa:\Sӯ:[K5>ea&X ydh˴ceVX#1a4f5+%M7H7$t`#f5r Qa&w e;[| 7:&=ƯY7C iA~Zk&lc% {!|Vn3!̻ͩb/lwx8qCv"ymLx[ʼyC*#4F{bx1 @Ehmm "Vv^`M&q!YfwAID'1XY^3~(>m5&aXX2bXXE7X4L R,zcݷ3&N cF* ?*3uF =`J6)5XI#NdTj x[tgB'+3٬[bp =0xx!qfͧU7U4yfffl (ex9ipי%   kifi$`@ it6 ng]Ue?_ںZҏJ4.s,y>|q)FbjEA`?1@eZIp.%9E5P5⥙w2kAju 5b2q4L :\G<(L<jUHzEŕV`WcqZYKm\,\dFl0pp:89# T2syNqRA̴8 ;D%JeO'H>Yw%-Y'>ږb\]cčK4_K,Y-tQ5)cTujEp\@9B)w!8f-PY*pZ,ʒ! ʧKRB5儲{ I RnX%+iO9XԘ}7y2fFXԀFxwG&|aMS5iRR|gI}=!׏Τ"X0SlLa#!3#| "M-&e/"jӥoZqkWAASzV p"xNqz> Wk}jFX.߲, Si2nX`S/vqF- Yj|y +jxbJOC4,0BV'3oo4p`i9 H_Q3;H!vq1>D'\]ŝ\AL@'jJ }F|Kÿ}$VQî횄myW=1ݠ rhb"E!V9Be^"q)Aplu #f_-u|v{8KʼPɄ3l;)GN/fȯׅ}4?䄳*JUVgD,.l,7 ޻;#.MhKՔ1p*PnBnnxa}vdX$㾯 a),sݘ]i .VϿ[X՛Ue2!2t3ob(.(iG>#DRX-]̔ `eq_\qqV9)S%S4om 2,o۰O;Jc>-8q-CxHGEFWÎDو]攷)Kk*aGݝE7\SS9=3΁1LbsewgPlVV/ 9ǻTSfHςRv>cUj1lL&93%b> ^N"P5RŶ`T2R2RqEiIS$˳Yha,:%-U)UXzB1ح WPfx'2$#z\h,U(|Dg2\ BQtU9Q3` *bXԦHAkU1w-ئ.dV`>R9| ?]qgft=Z]4#:Y׮d:xGAE 2^aGxZ¯kʛatbcP&ewT)˟ش:KǮjѱ"ccۋ -'pu0Oe<1o>!tls-G N(ԿτJHղ ԓ]-φar|\^ݗ*O85~$h0Obn b%$*WͭP'qVQIjRg8 K97Dn_ZMR4{X`2ksü"YφW.I?QJd*! 3{c'ON?S8 !lo8zxT;cy9%J [Yw߼I 9j^#cIו t_bg_?^_ꧽ6C _~tRi޽]S=ruՕlvq?VGNW.ktJ=C_~`ަ0j%YϹغ]H:b?GL8!5 ;%N҅#u1KY 8g^?&PqUxZ{pyRO@E[$%dDzXMX!!JH#nAtAzvZVڮ֩Ev_E8i;ncOi3=6iQ\>"-m wѧ{3IN}WQ m,S0 dC8oyiD"V6*[[u#>N'5:E-߫I-n tLn;(s#Li8FX1o$Ξھ>I>UrZX#4s?n<"v1!2CQ[GyN敷-"f̓Tp;6a_ESL !a}%YUR 6(򉈂3U?*iNnH_\q= LT3Ldg,>tj9ÊAhw&berJ )A¡ @RRԝL.FG,\ˤ$)! õ"Em!ⲁyY)0vdț85\ʡ$ɾ7bv&#S'FFz{S^02GܠSc1-5!8ޫj`oXٛ쿳.$+W*n[U3=׳I5H\s[쟔5SS4*.v@{d:gW @3I}j>M(Եek@K0SCJg5. Pfbd@.lAxL GSbl:su0[ϲxq) Bʗq{vC.5}Fx -v,& siy]CQHҊ8]dN-Txܴ5enWjhP83+-or5DUb1zmFBxeɗc?X=M"lo}T䓬&W?On468 3V9}ulǙytl=! 6#_뭿=eݼz ƍ[5>;~c}7o4ֱLRQtԭb$W9=[2샙f`7nn`M7ӡkӔ|+u݊-goEC ۖlҡw{W,Vgpx3@3:8E ލI.^$Ֆ'. w r"YS fcթ9`Ԉ2+gT4 ..*nUoR0;@A,i]_Whќ$92 vٍmwt7@mY%uZ;P P@B}wGY2?,sxXkl.ۄGFcO?-qEjwc]}#'|8] h@| 0[ӊhzֶ*E޷xڃOg:ܴ #6>T ZJ~eC]c˃*w og W>˪P׋k7-xrM&قf´"FR0{f_ 53qoqHc2h)x)hݝ-]pgi {Ry /MLi+.h`*v{@3}~|I!4+rb1$jLmo[dfY[WYLfdGi> OA^rb;EC;{7b3t4mtzt3$Ttxwa$r1Â'{[63,9aV e ^K9dYZrI=uFZ s% &ZwGsZw.ΪfZ@0MB7~~W^#jj +RZ4e6I_d:0Uf*>eN#=0dGʔa3z;ӬF5kB,ulBuvZ7jR~Ms}⫾]IXpp:g1Kt/C7iotZ` LC[LMnHkv5T/"OR7A3Cs 4YC[p5xm)&M6XS wuu$B.?wO-6 ~A<[^'d.-ah1IئM@"Cf6̜b)~V3ڂԚ! UeP,2ISFԤhwY,5v1ܹr_޿r#]M3SթGcQ} ۃ6ck /b{ўz?0roZzp7}Ç?_WG+}.oǫ5:=ow }˽p+A-=5 *ɧFsJrPe›_p?eC:UѲ޽eYp-p#[tl񂝢Y92lܰ쬩A ;Y֋z<|( tJjli\%]s_S{uzNו#Gxv"MgnQ2 )_3̜o6Oݷk: $)vyJ.#!ew&Noe'"uk>-N{݃ggK u֯ckb2o#Jjƛ]xBu 𝣫qn=^Txv#~Z\\ _(~f߼T7?c(e`T` 4H݆q혒5[!=˔+zBQ4:]J*2D` %׳)}U&<̟18{G|6@]':s ,80 Dž2w`s psw政<x9~:ٌ4M8P(lz0$1gqU4Y^|*N'׭=kK G MPTU:ń{k_D`s+=~xη)Qb8MxZ.]ajv_m1#*BYA7B&RDuMggDWELoN =79~U>8VxۺiV Z~>J.)y E V J: %9Ś֓ oͯH{6p)h&jNa";y ,E.ɥy% y\\{6{Ye& 5c|)x\C=44 6*$M/2v rqu vRZZ.[.0qϩ*RhMx[X;joEFɁ˔ N.aͿ-71T)=x! ,X'/dybb䒟\WRl) `i;M`ǂ̲TXkr\{s'e58n͊\f9(奖;MSQКk0Y?b_y>0䤖(M<_q,B<̓C⥸ssSc'\4yn>̓ oNbN3Ygr_2ILOo¸B dn.bU&.RmsO)`YHDO.Ԗ|Srsafw7+60MfTdECͼ''l6Q28vf`R 霓&_ݼ6s"#؂Z..%'|N{sR+87/el_y V9}Tz6up\Cx|! &m^)w Vxo}x$pw6vԼ4..<GlDxnTsO,o)paxk^ȸw㆗ym+Mkxi-4Fc2lDx[*]|;fSL|oyx.rQdfqVnl,55xvor _|̛Յ&2m.q+]3y7?ge%:d/2TϼԜ<%b['/Q-;(iZs)()(LP[mC:nc\'͸yGF k>x;,O|$d9cxdkAs*K“/O.#ꐚf gx340031QHI,IKI,.N-fxe}ّĝJvzcQ\R_ #'GFSYH5'x,h&AF56zbVȪ $XEA,̒ ɂX**Tn~(;$dA+"&2n+fd3Q$j@) #f}͌@ŏCE &GM^ q( #b* ~y)@ۙ@a & s|h{qMLa 6SY$ lw @>) !@gTHbdH)ʫT3q)AjfRIn8z E ĸd1.'@+@>* b\27JM.P>[HU7@R[CQzr4<( 4z dY@CUA2/ACNXrHP6 xUT61a'A h @3?k=Ə=A>K,#I1YZ%**/` )"#DšH ]L1=ʚ/FZ]i5C\AYE=N/ [TqB6 1Z85VNXFfوD'8٨ U$g=z jZg 'm[ǵ"5>xMݲ58հr2*&'zfyi *YkTqgkhmM\5Ptv#n ;6M),SXL2颞Zk*M$Eq~98mف%쟵Ӊ92`sirlօ@7M;1 , 4dREG޸46ͣ2|:Jkc4}^7fWhVZ2F˄^o_ha\n-sr1}gpEуGz::>컐;LGν_݋}t<&gϞP-MOHHBC.6'SN|*_ )2z6+" I ].j4M`^Зv($jA?N$XKIOb<~HO5yJ:x냳O.Ӆ 4-I=`r5Ҝ$ڇ&҂,-Y?G M3V! fW R ER&i?Қl)[T|KuE+[w^gNßeLsp0P-r#*;t[W[hūt$)^37ZꐛVf*j:{UI^z^^jgZoW^`F,fVm+2/[ 'N仡[uӇޣ2Q3TrCreۙ*TTr'SPdvjTT2>PO+y09SZ'2Ug!̕7d˰MY#VàbyZuf`}d} -zM}~^N2N1A_0]:40pXdXpn5S70G^g78xz Xm>b%h Sh?S S- SHдmץF>b zG} tXt QzY1MK 2cC_nwHVspN8kB>֓Cm]^)}̡_ʩ'X_wpr:UzB{jwwtӑS7҃Ey YD2ta3pQ}u;n裬gU#*:ϲ.ta3mι98O`q ki%v }uUA }u/K >C|ͩyjI>z ty Nq+ŕQIi~;7ĭNqM/BobX }k6>!0dp.:PuП'Gɽ}m܂ȜRj?6w ԗAgn7CgD/,)q{o%q D*.K!Gs̮FB? 1Gʜf8¾/u( 1?xtIZ9޲6aWalSb9MQl_` K-qU/ϫls MHuMb*]scp=!'fx)_s'>WFcpNTw9Z;]js g_2 l_&ȳ{PVԁ{i\Q"[@D"zR>G _8A7uS[8ikLTmQIWϪC.-jx:y5j3M^}W,85Y ?N,y #G`vC9ϚlKfleKh߾?a`11+- =G ?n$vزO " 3T vs~1:0}!i+j iu,EC_nNb$ӪTN\;+yXXVLg*6sjb:4;jj㋊]Oăt}PwxZՄҕfti~i"V-(hUtlWqx)[z}-M)u/JqaUx%~t6Bdܖ+jiAQ`|5uX+jE!*q!,qP2*֚[63uz*Sb,km6hI0B _HI}evM"sqye)a5'rh^ uJT*iڈŲCƢg9$v(&rUsH鎶qHE]=]W<[8dȻ;). )Ej.AN|]DadP@Muu y .4mꑝKx*.%^FCIJBt%pW 1ǎt$%n8t{;oذR[2-SpcؗþZ#ēi )8LkqgXW8F[9HG]) 0 @4`J 4$%ލ< 7X6c=\;Lψf"rZ{ӮQ]29<{ګ]=qWkHx340031QHI,IKI,.N-f(<uyr9ΉUm !RKr6[u#o|bmx[ʼyC*#4F{נxy Tkǟr)YRٮ[ 0%c393I4TZF)BߔJR$QZ*R)RR=4wy~sFG[[]!1)$ܢƭ?ܑbwe;-|k*}mv%>cN&H2h+\^R}b=wUCTiC3`Ba& ㎬Q%V}vL |wsN_aTO.#5ad_J麺6YbA'a N7w}mHsU}6Y%E8MQ'O}\o6Grb[`BD ־I.uS/48|ŭXQXt j/ |>F. Dap}N&"t*TdeYY߹!3ٛ Mmh [ _A*_ZWW==jSIZK&vμR0'$h,{ܷ,3TNއ/X0 ۧ?kN0"aPR%aS #Geaoí j_{֕ fa 28N(~|vXv$bЩYk6]ȱ7= _8-`pgu[tTż,nN,q!i5  Wٜ\Y~IiO*7 ';wy faY_'/SfkqN{7 .tFHxFweLKcƒfO~ge_ݩ,rM#v<&b_l'3**NOUu6 g~sl^J(%%U>חڸAX ,Cq6V 1|:9IcsL3s fh3r?Jۙ7B}":51RYRyDڿ`.OWQy}J!'Vv+=W}xWd%^ʅ?h,E[,}səĹ,_#͢Rhv~ LBѫErM}n!ܧZ+sf oۅ TłPo|K4lN--6*v*GH%n v{J\߱8u8I;e zEu|ޭNN; fa}!D(DTm^X^%Y"mcRܜTJ:3\|2=rq0՘/_S,1*nI+JWkx%.vi~=ܩVn5K^͠{BT KikZm^{Z{y|ZPuYxyğj=yv= Ƽܰy i@ 6q}.t^jfw&:åk>8#1?Bwm~wX̐\mkyYu0Xrj^vYp`f6&$OQ})zwn$(ԙMEbk\\ ՃoT =m":`bxY(1w6IJȣu&i".s xr݁EI|y̶}^p5Ǐ-bU]ԙdN<2 MSJQyޮEGHC<VmD (iL.gC{+  !a>mwv1!.DKKY([R٤3оحŊ 8lZpswȄQOCFg`V,ӌ㵤C8~ߘtU0yCrɦVϓǷp4",5^94xe b "rHomǸ;6`NbVݣy sp,d6[wk=k4T]_a&_!=Wws100644 GormDocument.msuZlQAk ~P)@qx%##ed/ė\Oqb/ t8j, 2f V4vѶ=^1- zx=##[=D_2*|xۃoE]7{`)qDA1_y^LZ!.egnA"x앬@d"|.=5DoG1;l}8[xvm+q KZLukA c$ Ml3 jSeAb[eVVPxS##[-M4z ]IoEw jf"tě7ʳ爳PU£X_(^ͳ @%bxu##[\vn2ry/oPpM\IoZ =1`DmTkr߭̿N-Z[cbdxG1 )4xx##[LGk$ :uK\oHaŸ~*ip4qDZmފ0}_x.0/ 8M r SoundView.m<lx2 %,gNNes0+nRwTԲϒb+̜Xk}}7_W+B&HByfNP 1[OOobO{VP?\&+xxR v2ũ%A9ũ)y9@Bkpf6pS!x8Z  >&kH]S_g 9ikck}Hx?4 k7o.gAi*dC<OVݼ^R$Y^ՃwNc3rltxo0G惜u| .x9T l+]&L`SoM6.<}vfb 8xkޕ#4;u<*0=j0==Zdd?'|4ϻ= con; !;q?"#ݼ,`] !)G|ے~8 +*_`*V7:n"x{vm͑y8<do~x$po+;rj^Jf(TgExnlC4|2Bx[¶mNF.ԜoM^T(dZ`d`d``dU^k ;x[m1dffs=ͻE ҼTC #%kZ. :xG;gp9Zվ9r100644 IBPalette.mʯt4pTY7}enAx(yRrC-;c6voV+ x/n9k^@9,K` y' x31Լb Gǘ3r̟_S\Za Xaxf^J~y1aE-:?d~)o Qb䜟WRS0§9sONRP~c̼Ԣb1~'n6ݾ:1]Ǒ&U&.% K%Z}3:_ vf&& ~٩i9 93-Oo~~VhRxxqBGqU6;қ3lN]~όab;Ʈ O+xxQ |SJv.|`r|AK'<AxeeQDEɏ눽+y9WC1x2eF7On>60{ mx340031QHI,IKI,.N-fhJn[J;fJyWnQ\R_ˠ}YK9;?b  ]x=z@F56z;HO^--xcr< U7bWЄFލldY,~ Ć}X#gx340031QHI,IKI,.N-fx0hSVit6!D]~RVjrI^z~Q.@xGJJ.s6rx#}[z(f]:o اo^, Ј=rA0*[bڲqL''XY]Nd%`TEØ/4THW,:d}dàRS~o@!i.u`+xX4B)RƗwdz#5NZHN2Yҫ#!;<+s* V.aguxS 5TOYFf:Dڬ;mi~>=EҞyI3#:e5Y:ٺ9Ӏ4hx340031QHI,IKI,.N-f(<uyr9ΉUm !RKr[񄫄2<"}reu-Rcx xUjڤGJQͶ$ilĪ0NeHP*(k9,(XjŃxY/EE@ofvu3FJ&(g v:~B8 Ig$x49Qy9V~$G.VL(Ux!/|RMKj;qd_@)&;#0|rt $1J|nj{H, !kY5Q5|T5jQ$LTR-.$$Ցh2ƞI ߢ2j:dA !0r%|.6Ȥ "HlVi$uѸȅ]u'aZۑamL zSmp!WL&6e7&M4hԌvD#JёZ\µ)'B[-S`*'̓-RjoDޡDڬAudDM_K7 6iÀ*iCĿ+LeVYX,.,)v6uWD'iN"NE;v4[8NF}2hh:DCs٤BrJ7Nw8.^PP1ц,*1_o LhmԾ-/#$Xr^R6eZ7*Ukh42n a@,R_)_"-BVO:PT2cP!;qΧ;bTځ"NHN~.<qAN[XΌny_;%Ri.怈RK]ٚeE,X>`yPZkPtBP wȪ4H[9o7Vpb6HHl-8/ ^i+5iHx;K~"-^`]r# Ez>W[F_UVYЂEz>ۙDcqw mw6p8\td=Bդ4\Pyv()H;OR*JdX;ͤYʘiP[޲Fh \d*3F W&ے{JGZ%'%WS,9K[ԡZV5BZዐCnװ,u5ԛ.x%xؓH168EZk:ᵆWѳlFXڳҾ}7T(#R)ϱHiVeW~CRI%Ju^x:o3]#,/^tXo:ıd:r&-;Fz AFb0ۇۑ9H7uVS=LW%ik33gyƷ\nzÇ>IX춈au,ؗeՃe)ljrrM+c624T~Z "RV[JfŦW4ۉAӢc K{Xn-_Zjn,wW[&ڡ5 q#ooMg¯Ljݦ~ajzٛ)Tmg!!֩DĚ$vZOLҁvx{XtZbMY.#YE+A %SJplXIsh2b7dގ co[ӤLNaʹ]hN]]v+G*I&\L3]3yP>ǷDG}Uh7J.;|{aϤ&>)YG靾khݎwn-m&m=5oxN]}ۭ~.yP8 ;)o3ثN=лءͧqhM  aWxm֊M7VφI~Vs}"[8m;X6NҶȓ Xo94ddb9 JEM ̀_;dRA$B2H->wGy */9~eʴIrJވK{Ez_M|`av}[&iC;@#\^\_Їu.}7裓!ѯ-yҦ^ג_wX`o ;׭X2η&4I7{ds|]od19Jt=K7O#7lKv=j$e*l&,TWQufiIO-%}[BGo&]nQ`LDm#{=K kOi*B&)ib*ӲϦs6/Nl?9IdG7<刬_CdtjLTN$d_~k&:zl0 rzD`xL0%vI'?sY,7qyTph́Rց??] 3v98g/Xω|_.d(-1d8 B[_ ?pp_b1&x*jj8@-{x"<@1daS!ˮSm?ԶƄV ԊPnń6}BvKL5&1:f{w2j se2W}f c,\:AQ܈<)_i -xW##69c,됲VxigHP100644 ChangeLog?葧s. Eopl̽N۲AtUk!XLݨ=} +-l>ي'? ߷FZ "ԑ{FOR㭸RlX[d6R7x9##[ `Gfg҉Bڽo 1Pa>K3m̓@by] @fHx9##[Zb o$ "i]2XyoE"B^~?: $MGx=##[&Gݍro6mYА ѡjŇߓG1 KxR##[pˁ?$v{Eg,f.eao݊)>`kdo ST.<#  ]X&;aa-Ǹ"`xS##[v7`ܵQleV.oHHHp;ldJ뉳#-[( J*Ѡs֬) a,&axc##[p4䴠YmSqroP>aO{W'# yd100644 GormDocument.m b@ճܾPx6P8 I-qxS##[-DJntW#AoEKXAE</=L]2!ti$G (=:A"ѽ 3G1 >Kxl##[LMJRw LoEMDq;Z!m0O`/H- 9R:@! c&g1_zx8##[Isd'm>Hc@YoxÂ̭H &,F+Fx9##[0kz펶4voͭo >wPpynM#>`3_/GxS##[ܠI`oLڸ)NұoEe|Ix *Mbc Rok2.t69% 0P$'axm##[y H_{G=-]PoEt Q{9nr87"]!#2QAa `[w./س! BȼK 0n-r{xp##[nqY!qyoE$tt0sX5z-Y~#_Des'h!1*tsWGމ%fŎbmSBwZ`rxFW/>N~B](:Ơڍ쳉 72q=x{c;}cfR2_G!x[c5fvE.ɥy% y屚K'2RH/NuqM,/*4sd9g6 5 4x  wW~)w7G? 1xxPaB&Gd($ZoՕ5tjxf:a#L\~xR%%[2%)"|o~+_mK=b/*˓`B%"_ GR/"bx9%%[遐 C14S/)ױo蘔-ҡJ5Hxn/Gxm%%[{0zI0c+ +oz~̛S_j9u/h@ [>8߽W䙓/Ex6ٹtLJ־kuar '3{x8%%Գv"-)S5BmbKұFXɱvnwiwY)mFx!%%llWrA[+ -/xV%%[ J9%3E iobv?cnW  :M3*K~'1ē)`dx;%%bQ1PUX ƞkvw; ?@'ó (IxS%%[-@HiMŒ8o~*4No7 +ഢǒInC5G@ BQ'>axu%%[3t6MѾcV=ob7ryVDs Ilȅދơ-U8L %fj *RK<Ų}Yh9LW3_w9̿ГSAx%%vs{Ԃױ:.xy%%[i  a\o+RN(5VYL]  .7ovi5P |x8ט 1s-Yh+S)ۧ/ $[ u={xi%%[, 1=6?st)op`_#$,kH̅7eNk۱@4y˪{3*>/q2 G̠ 7@dho8-"xxk%%[IVя60 C0[[[@opL-'E>tO{ձZ]xFJ㍽>oW<%ݳa^NVy3^*>0(&7 /{xkf~4sb]榿:y*$6qi"Ox.v![r<%J#&_#?LiINjdqS=hnx{ 7Dxh|#NVMk}Źn fn8x;q~ *92)vxxq ,,&?ZgNғTE&q/J-)-St RP7*p8p'UlOx{(`9SC* x31Լb-{:kǪMI0<3/%wKy'³3@93|ĸCxȓӒN% Qc RZT <'֖5Sm{ AT$$26u奝i.yD/471;5-3'A#x9;eUSxxQ |SJؒ3{̩S76G_|[lj"J?,+ N=Kz5yYשNxxqBHBŘTUL}~Ь~*xxQ |SJ\=s+?fi04x&*n.x340031QHI,IKI,.N-fݸq7ۢdFh#uIY%zE ӣU^3foWux;-Nv'ɋd&[pF)$Zo5 xT:_h˦d/2zUux+-(r?O7N8'o{p'2 >sxmRKOQwC[`h4<"@DbQy @GE׊pɝ1nٰt;BL"~ߙ{߹lJy_ɑ(9ZQJ6{C|ՉिX~&D^[V3@7[bhHp4̲X ZRpdfSD~ݟW-p-.VakɬUB5x$o:,RaIi>݂Z,]DS&ƶƱ?2Pf8R jn`aINs"d~b1-H!DnRhދB/ZB7, kqxO WhtϿdVWpTErHV2+Tbo@ ]nnU>@;qZs}9!۵fM^"Y4d.& ,׍cg0.rpHZ:m8k&zqXCL;畒̴4-Rz J'|[ [ךyUSu-`b =@y1TeBsa'X~jm+cz[J8e(9kg`J+g@uK U/V^~ F$ -yXv]0t;OC=KHÂ~DJ iTXIWrQH_p@7 ;NjhD{_hM悛Ieu^x"aE;jL-.>գڳ Ix340031QHI,IKI,.N-f0'Eײ6Yi.3/-ܿjG \prşRKr$UuM^ m,|߯NO-xyn9Z(]]wF! >XS%|2 fjMPF666&@t/M;񛞶 < ZS2$]CmKūN_|"b|S`ܚMA+:k$Щ;8BX_Л@ n+Y)_:'%#it, .=o紤\THl*8@}"]6y픍Ci;T.-y ﺌ"'h$W[Jư"k-a?Y4gL>"T$~^(z +lYQM6g20_ CC;Ǚ^bĭsL3aK@0Ug}wskq}<{;*GF$dQz]5ze&o%a}@O7 COnl~Eh=dg`s 1 =T8Ò@ D5Pj  x5鹿RAܟ©_5N3"T`/l4@&m_ ]q,4[eU@.B/ØƎa* (z1 Ydլ&`ٜ8o74j.\VhegcVKX5ȱx7ßHxW*@xD:ܾ<]=k~tboTTN[Ioaue6P#So峳p Zևw4$&rN~Mb R51 _60zfL~"fz'粛5 f;`'LK\z1e Ur%Jg(hLҸuҪo/LWƜ^UdZ}tvݫN~Uv',sY^ =7-Ig wh/$8fds ܃RLɨ<boЀk$xl~ܧ[Te~YQp/u޲2)8LEM꓄!D1?SUPJRK\Oj9CF"QUpL*WrȋM9!pA>(=6B/S7!a\!p4i-]>c:@Py0׊;f.VDZ{3y8".*"$R܈ŷڏM#Fa\ÊYkp6-)>?_O>pUd¬$tJ3ՠQiqCaRQk ߲qѽWlFoݍ5LJ|'  )fѻ^~C? I VUǷ(o}jkIm=L$J~7đF{_T]c*l3< t{爫gp›;R)pESn&\/4U~0Ylxܵby;wCbY'[ Vr2 A:eaJAEq{F]K7#ƔjD ltM誑GZYs,u";ɔ(sko! u}0FξڕM/4xAMeۣ_yL%(w-83:0rHYnmw K&I C=D6C'c$O t~k-F;߇^xNFfPq|2 Zv$g-~CPB։g#! @o+ w]_ J“H-Yȩ$,TW `!=0,~yUy^V9ߜA;؊u>,"RƓj$s4?S;|j^z(x0(N~Wt,NPʞlnX7bՅpbZq3Gt;\ނT)@L,D~)Q {~~̅ɋَMց y,.>]%yzK˾nm;Q"ghxU-pLlmўYJWw&+4lW #T^2?;+]έR\Fq˥19f}ά=|Fk]bC:Ma+_Y_G'[I"T]dxy8hl1OPvO~WlΨ ӷO!|˸߫0;GFU1|jc F<~\ɂȷ:7oA͊B,VA6?r!җt5mFɰz[&i e(zę@"#zعEv0咎Y#Sݦ[yiX:_U iz6Z|7Ŵ8|} ')X`7r/p*Eg:0<~Ҧ pN.yq_g_ ]0lc®QL7)Z{ U>5hK]F;vk*~wgh J}eyP|b.i8VםW 6l0?!9ëګY^sx7ugHTs?svћPNusi 3_ aQwTԶ4bЗ)&8\"Eײ+nP$ʷ/J~-׀ˑ(v^MzJɏՏSr.w%y~S 1Gw1} w_ v+'B19^[t v2~,cdjoVvA%VmzyIK4+{˼#'vٚޣg Xog&%x([5hJ/0A #vT2LniGju7+ct %ՙKC@X N ȱHH1opEqwȭkf$֏c>M\g ! v#_xx+*[v7Iw*o !mzwzPDOkE)&5тkH{c?0 HKJJ>Ad< 5j33xV**[|,Mg4x?-o}(RFu<-x7SYu/͸c<54|',exz9rӓzVʘ/s{i;긹c/H\Hf̝)Og,36slVɭ&"m]'.4,+S'$Cտ.c \T_[/)|Yx{r'ctx5%$?Otetjϋ\;dG2=ZK=[|.m7''83/=,3\/CL۪g_MN^:q͔ H 2mZמ]R!&G,YZ=NdI-573ZH c>wʧ Ҽ? ,iWoԗ/m͛S$&a.xR))[-RۜVLӯZ$GIgoE ]K֔PeOKLE^(YL҅(#axS))[DSPd2߱oql-LWhXk/o/w['dx=))[4+P2g0D3V1oQz1,lb擛[9Kx8))[ZdpA6[f&%2FLog5 c(K4F(aFxQ))[:lI*g9.4^+go_%.C/O!Sw9/ARB8zr@J$5Vs_3HT#5_xq))[NΥêj%e ױoE?3xU)T2 jF}#5N듛!ˡ$TesȓZ9 `7xq))[pyhDC 5kuo-(N($(_P4xdh=X[DF4*xN[%miMg5F_hݳ . DC7xkfnfDL?+~|zzB@&n4x[6\;ӆCzy2 xi˝Py9 75ed (x;4F?{7/q Y/xhd;B 1\9%% XE) E,xdd6+W gHjqIf^fmۘ6el/f z 2x[exX,]$;x{fxS߅Y6Ljw1KKrvxUMlEKd] Pb iZJ,;N`93&M!G$!! qAHJTā^*$ fkǍ¥RFZ{7u'x0P##Ԡ؄B92Ԇ㶺,({("ۍi$:>OU3 xCa֩sR<5E}:u=rXxܤbBrD}YH}ΰlzs[=Q6;/Ȥ,Iz,QTs\v%H@ץFUmm&}iOŇ6.o>;.#x@" g3uC Yxؙ鸷0| gcZy`嶛lS@Ȉ,!M}+BUg AVm ˛;`V3υh/TDEˋmP.SW6\Ԓ^Hw!*EU –51|Ezϫȑ %t@4(d-B, 6єzaנlJtKIAr5|0!X\./<\x"xHF9gb=(~_g/ s6E\&9ǶEEոo=u* -E*ɇf r%#92XXie`bb?p`!#pu:mY<ξ^{ݩz诜eSp\@EBTUd5Mx`L.J6ZwXd]a`Ƃ_{7#ۤ-,tAWHpQ/ƏCf7_ew}zX oNo7~+W8S (dQMElixk4Cl{I"#x} t\Օy,ʒmY-K_eʥl /6 ȆE௪/Uec*tOf҄%@`rz![x$!4N2d!̽oKIa:e[}zKϗplS{fryLk?c$Һi:H2IMUzJoiNjWպ4gf7ћKB}' ¤Gh~5CK+i2,;jR7&S;=x htHIi4kA7}'Қa/>3c$NJ<[7Қ5&4/˗6ƹ%Ҧ[= E;QSJCJ&çŠٙTZ١ C>bk e7ǎWe7r>aQ63VBeŘa뫈IN놊ǸH/zRǵ"x7T oH= yIWV߽(B>B/*V5UX_A͞16߿lz dyD'GIq}}FzfEC>c+o{zpG4%X gOLd5#ݨfu*H8t-H 葻{H9qsZho}M =)DZ̜ zJ3.(Ca4BچEyt3crOo(6(ze!sUh }Ͻ;=nk?&nۚu\SVuC1̴>'TN=p-t:ƥ~<h2˨XׂFO]Q'7]'?koʑS1iz}/~SaH'IvX?~ SĖ9-|7CM?νMB CD[9ӟ]`3^F<@l+14 ӰNo>?`Pm}pǏT=XV$Z zC2u97WmP7ޠo~$;(6Y>_+s8p̐`Px.1  !775ȃ5j roZ&,Hj:*4yts.?o%eDK+)MbrTmV&!/ Иf7;ZL<,I"WZnA}&⛏nkhc%eVVTAylX2?З{]%rJO&5rR-X >)2e#6{q<uLH=J'a_zc)$=NS kZHjW8$9 klm*եk45CHI v gy ax-N%zk ղw¡ w Nxڈ~5=cNϘK!8vewaCNiP@i!@ NDi8k BC@ӚmTckHyir{{[߳^qxYML)W.cTm\8[E%iBlnp; P-M%.lRYݼHskRrhNJr}P ] {I3Ji&(~ EqExcM̌(i\lި*>tSQgգZeNÄ*p33 ӦW-"01D/~DQ1 T7|#-c3Ct籯jzc٥B~ mg(:?_2(KIn=]ڶ"m iǵon;;W@UH_BkwLuۥ23%)R4~-FgeW kCWgQt@fZ3 @PKl$1j:&rzNj![x@⢎(8p(Ǡ%2) )vfѷ+]™J4tɺq%vv>1WX. ha%QpZW2S)e\KvYz B_`E/43@mrŒreH}g+H*v~*%N*5z:WPw7'45Fq(CP01zΊI*; yK_-ܤ9Nwmtpp)ת &i 4LuPsBKq+طtIE9+Hu}o+PLKԑLXxW.csF FtJ'Fck'Τ, "U \J [qdH҂W~$j@ h'\M7?rثq ۓ^%y'j*lSq-{+%T&UӬli[ҁt`?ڄnhIWb{$(9kHMVR4"h}D*u/V =^ʥMIEvoY9ac.#h!Y8L3HiD # i {rBO {Cue9$nJ[fʳvEa3pZR>'Ds^Me0cY*07{%Q4®墭`2 `: qjxk !W!1\ Qm>!|7Ig$RSƠw\U ldl/Zf`h.\e v&^(HT"2p^ն&[w@im\nS FvE ^U  eA$tqR S.r<>+G<8 |{SA#b%ւm]3-s43z*CvƎ3pDv :67U;˲ɆCxrv" ^$33)4eJQSM9E;ώ{2j^N8֤vb},@:fEؗE:BcT}<&;E+Tŀ1WOaqѐ>Yњ n(ne-XfM -udAG8;P1oJl8gwH -4 ֥ 13jDD 軺=Ӹ HOWW;7^S_h>Wy|Rf'\Y9,p8l2ܦV͵sFkk܂D W(UX=[+Dll?X&pEX]+KN 98}0)vXe _m ;}&?(aZ[7ѿkL_n%vHжS>[*j+޶vYc 4wzմ& cbџ\z*kDjV}%5\Ҍ丂0|o^=Ylh$ě%AoQ &IvP8$j\(ΖH3vOn3U0Hf~2~vT#&pL.86= :ǜҹ9`,mҮ;O0 -}rR bf mzeQ -B}>gu %L}HibGvu@9JPX.a(Xl(^te)m 0)PB@ޛ5-kNQ1#*0{Kir>O'}w!+F o(I^׻>?ڋ'zVn=Cshq_s[Y&,MG-"kVjy3S@*o[E蟦f_H%~%'ݭXwzo^*83BgW @y$bb|ؠ XD*Q _&]t߉ˇ^v]0|ׇ̄u[D\e' X:\uгu82qB?גZ'7pޤqo-CnQ 'sM]1߃ ]-1oئmBX| :zͥ@\Q$9呵޷gH\]/ʹ+ox!+,|c0rXyaQqO莣E &\_jLiB]pw;fQ8mäe҄`MKX{0朮!+I\gi3n)m.cfCLt6g'WVzrT + fejBE<8f2^Og`L3wb 9 dc1uz0-ˮOЎW(Y}a`l<'?4 Z7 q1zYsgIE9<]d,3'μMc]-ZBĘ$WX&(_'D;xk@W1Ku1|Z]2>P9@y J߀WwlC8<$T5kuqw2ZK&G4ȇ (l_AANu$,՞DN-UF-0>1@ 5H5X!s7nV_<]젙S%0onzV2G}"h.1"^ 4,hȐH7P/?/&O'UbRb]jǘ^&{z Ϟ]m(/*n 7".6 B }ZvF=ٽ:cݑ@?܆6MaC SL^f&xE\D8r)) tx"'7`eXI5&F|`K^ZH,BX)& qùns_9RK^:} K(ц*z7o3-ds9WW@ˊA¦;_o4n~.,3rgOCFpWDEoLbqul5=nCrd5 RL>h|ONIff& Vig0{zo w HHfufD'N576ܝ?u 6)/~{3+ p WWaerh?o(q'89س'Veۢo%`/j5;՚-44!(diL 6!oPϥ{yQ\fk۰45!+򔹌%@*. mrq7;29%k욢Y=QLEw BkJ =cAX }+B2tJF㍴`c({njZt -Ρ0hE[88R e]2֗1~=Oi-߯EV*;@{}{Cբ+NEwn%o~;W؀`9=u 5W =~ֈ p?N^G7 m!P ( a;?].nTQ^IW?U,WR'ˏS>OV8aRFO+=KO6pKX-:h" aZ~t*zRW i,$rR܄ ;fSO2"d1?A 98Qq &Wy{"+3!);syq0>:{, ݔ+u{ZM'$6;$Cyd !)*Za,7dRhَ.L3 J{ОZ/Un`%jdՔ@SZj8+Z. 5*ugk%P(sf+Y~IoX#δ y3 F0lyv>NO󍁛SP-1w (qE/lRL?Bs<Ǟ\N7MOe~0f|Caf^F0:zmȥZv. $#T !BK(#\^y׫W_o_P2}!P>F33 ŸO$K\P I=CbgbQzvn<.G77p(?'tÉ|BA@Xޱ9 %J[T8Fd+~ zȶ',L``L`؍k>'WG, ye a0y!Ku_#*ϿGϬ&0Yl080~Tp)&>NFWw[m?Gdr*g&ik }y$~(N !"X0)'+9?]o|h )?}}} o _,%KBfyQh#=.븄U༲ܴ^smD2%D2&:^JMt׫ (huε T(;Pt]HQ\'.__\ULv-= c9XCϦ'ŤPQ4* Jugҁ䚒'&+ErWNtS[B`TwJA[r=!TU7ѥD+bn: ?kyc7Wdha.&Ycki7'_d6Y6;,"[099ՊX>pƳRB<ךJI7JiS <,̍} Xtl$*WKZFZ'YBw֌IIQItf9? qe4. ?4o{Tw!dܕT#/#FyʈLHv%-Ep%cdҶl4tpcfN)R"$R SpKmg)#!g*e#"M/Va;$O{ CUUd_5VX:4z'VM&eef&IH0ok~gjұ5'rq$ :Vd3d5S{#,N H9**c`g"~t)W) ڬ§_El䧍bl|"D֐ /xM؇9MJ8#A[Xܔ* 8颬yvv )#NT}y-Rfݦ e$%Qa2. Wp0sX1_4EAy9~aHĘ1qijZSzzN߳w_'(1,3`(ArLnᦧy[ kտ?%7=+$e";l$iy/Sⱗ,{xdFWabse ryP6mSq+n-,e0)hrTv% FCs,J'ڬ}3Z ~mkI Z#qdu䛝$lTĤNeA,q(d=mnzKhH)|egml,'>ႪBZO5N@C&wđMx/qb@03=rcZ1|ː0*{icnZc JI0 Uك^d\99z}p&cy_33sP KBF&b7DJƕ6Kɸ9 YBVOtRψ,-tA{͹o#ih!;%ĺAgs QV@lzbĭؒtʺД[n c}Ff0hȉ"_TarPs_u~! T{Լࠧ}[n!*1@([:}]kxgN+ܐI v0\-0.sG-X#(>Ae|%B6,?ɺ:Fz;;j1)_ZZOi 1ib'1InrJHUM⨻i#CEmUo>1d+`\HEMa5FV1#F棫^hqo'{v_"}RL?\a59")-垓u.۰ 7qe"i{#eT|TlLb̰g=ZB2Q,x\=_%.%~*vrGx*~0!7cf7fg&}Ce B7`sPg&r"p:{nyP>I~={<$ɴn0mO.hh A۫tINrsz~ԗ-AŁ0gKHS|y`Xb8>d-<d!Dz g4N9#ȕ{ksb K$]k_=]y(ۅwsnw_/fIϟaj%8dKuxTzeO 'Iզ<@饬D ٻ+O(.:OZ+e\پ"o, Ϯs Xq˨o/ڽZ?ٳ2{"|;ŞQćoyvr> %\[޻6.O=:_Kkx#GΚArIx>B*]>|/|E_ >yTIu([Bα!RD$Q}ѥ(+far"g= ّ+H5r.vE]/ʿ.׵M"7ֶ..&ܿG@5e $,oc9 -HφG<-;z!L|W.]lM/Kg* >\Fݹ'{'q,/3nro93D-'W:}:UΩ[;'KWV qzUudd dw~"\[,i8_΁vm d˩ KgaSaC9{YQSNX0p/81x fnXF Hq$ZLc2u? O;?eI-yN2$`tz}GXWJ֝}OZP6xAS&մQQHZ -r N [& fhS l4Ҧ^(YnKoov@>ޅ1/2++sr\_j}n}>]׷ݭON8t /nh~WWe|׮u-3 db`\껒_N)-]̏>nß^k/ۙe\dbJ`d\cݭ9x 78m,|~3S-{K,6t\\ nݏXaDAx0z`a y|Xlr&ɡ rO (Jx;{RhC-,z~IY%\\ ~%Ey Zy("%֓)(8(@fqpeqIjgnb:X=g^xQbAAjdM̼̒̒aV 5AB\ DRy:GB耀"@q*CshY>px0$ALb Ì=ʹt"0=Q\0UR ߓ[Xd&X5&_a Hi2F"x}S=@Bq\s'D3rJUH Ew—sMnBb-E >5;+{{og]ysß u pӉD^ P4QJQ"dlwq&;L^v ؋ XH|i\F MovKq-Fi1r US8.SKwE\([+Agsm Ʃr[cEВP߭\R Us1pŠ֧hEԻUUۺsÀWAyC}&bD-dn?/EY[K=ivTyQY{Awk3OqZ7 IÈ]M+G%Kzo̬cT"68b'-R3,׈h<ى" u!QM#zKy&a,x[ömvFK=#Ԝ͇CE@"nI F FJ\\H 9x[ömNFFͻ R Ljcjx[_ \mpOg3fg~ xƽ{C<%uYoW'ȫJxĵ'3)g!d]V ]{qx ^ˇƹ}()l!6ȑx*adg^R'咟U$5 (3/=֚k꓅x&?Eť9%5 Kx'+ * scxLeY'O@l]O=(Wkóv{8x{8>򛧪0CTu1xRn1V@aIR1RڴM^PDhυt]ګ7QOG$7xWNqIH˒=|g<Ju$HRA@wճ2,y YsP2c(BBx$$Q&$ >']ǜmDe.$!LF^]Ts#|-7T!bDg1k/@ZS{y2vڠ*̑H=2쁭}?jэXS-e7,+?;6,M ѝt \?_pJ$^?Z.y^}WTBPU_Q?ꭗ[E뺪5jZ|LQgB". j^oW ji埶n]9P d=()π $4ָn0eR1ZڦFk ua] <Ԛ]{dR970ZD ?4{izxk_oiIbRNcQQbhd楇goOLIq,))L*-I wl#Z_Z:r+u42S4 rS=sRR3K2K24+hiEtAb42sRC* R% f(Amɂ%A\Y\ s^dF-Bϕ !:_NH&蚒Y_UU˥_뙛:y_{7ש0j:xusCd ͋4'; M#89_w23C`1ɟd/mQdP@x;cfO> Y@,ex{C6>D`j.̼tTkĒ dW楠x%Y+L>R]YY4JAafbl] "q)A&2i9%֧KE2 tH/Փ|ũ%a#X%B1L1@q|a\a"1\ 桧dڞ8} W1نUEIµ41 j吚ť $3ӸBHWxmSMo@ʇ%_PC\Z@H$B ڪ,$Y!DUn|$.oA:6̛7ff$;|zGPԝA;=~=' ۟S7fz'MwovYTGxcgG{ bGza}ĥ AlZD !^@xE^#V*@<_n<^t x($ C2[Ķ+(s=ѳf<=9FC$,nbZt4Pe5^yu@VC.&nb hNn0v&!#`D@`>OSLZp`ID S66Y EQp}W^E DxQh ɤ4Y:,rHqJhs.w7S$xR uD2/fMMhqW $rz@=ײ6?ڦ֮/:Vit["TN]N}(Pa%{0I$|6s b՗.| *&>Em}푮ףxa/Ty(ޫ%OTHM5%Yk x{'|Zx3Ɏ,›x1Mdؼ݂ 'Pxӆ,',clϺ}Y9gnbzf&g5=< љ Ycrn֓Nbݼwi|k xsgZY'6k x_`7&@I x31Լbܣ_j߰ӼM 3RˋU9rXZ˄s˲W>{B.Ds~^IQ~N1=녵=D^~7D1HMbf^jQ1`C{*ߋü'*ĒD&3'=w[93-*C3wԴ̜T♏7?Tr?reW xv*̂JEny%yzJ?2/M0 El*x{%[f3"#kWxLE@=(%?475D/Cir/ rf^rNiJYQx!/y^r3]Q;x8}C,]Y$7g[x340031QHI,IKI,.N-fXym=m6Qn{kGH2o5bhU#(b\%g6Zq{.xxuytSE3yIӤK&钤I۴t"P-DT ]RE@-^(UA"(jQx%]"ϜowK,m(q$BCS4 H6lVde%wL&uRP .J'x)2h 3Ks!]OMIQ-OFό桝5 <"2:vkf+pz4(:IL `W S!242Fƒ:(1:1R!Z /#'B+Qt4VfK̢cD=RF+75$"L$db8ԍ (`|CV/) }5 z4hkvPDT d*bbw@sD\x?r: mT'yA>l-N3(lϞ˻LݢDmyU ݋ n+R%rBQ΅H9\y5̇(wMVrW/w'V_:6n86ή(x }OfDCpT?Wy7 pl1T(G^AsKPx.G(2YZb:bGF(4؁)vvE@aCH\&igg4˂|_iz}>41ڈl7oelQ.k.|}DC@s>0 X(d`O: 3. Jj79<Ԯ 8kSB@/at-4^F2 #+WQ%=3ҳyůUm5`)mŖtx,,hIKvyoohLx.t5j5˹V4{ꏣfzܳX3 p0!=+H46ѷoCYBm`Hrj vU$JX}/@;TvX\ۡ6VT[}i/I]U Q8-|$ 6e t Jg5)^ڂqjXIà}F%CfUwc},alx}Kz7@&(sǪ:.Fa-RIXa#`݆;5|=R ߁a|/ w~2)EMLOEsɚɫ-7gY*En{s~9` WM7f6SᬻSfD (JMs/*yUU3mUvOK-J.=`)S^4奙)9y a}2mc,f6GQ5x&œSϾ]&CvVo6oGUZR UbnE78Ӹ%U}jQj^2LZݜ5/T11ByprQ~N(HKJ2J֠nإ7\C&H!Z◘ yE~7̱q`HJ3Rs@&m3&*Qw9O]W84/%bvES_mQ3?1.*4ex8OWZףNm)f{}yxmKRL9"O¼^ l,7O=.y-3~,&F d 1x2B/OXqcuVFnbvm9aó`.40000 GormImageInspector.gorm- P_5Fvf%F$ⴲiqXץ1~IiөO=O[D)K9}C"wN7$[q:\B)z ^U.Lm0YN[x{mC(=]]|L6l<#XUl x340031QHI,IKI,.N-fw7plb|߆H2_zɕjJ֪}"_@'e&2t%_KX,N8nW}KI90'x[~mB#Gn~YK~y}Hn6b,g Zx340031QHI,IKI,.N-fwr~S;5"KgH%WcE*Y6/VnU\R_˰2mFǖX>}*bU.g x{of6o4Arg ]:Y]]R (ũi@Tl~T(5/9?%թ$?o;6yZ[$/IxmO`m7&t]m Q'cEb3uS[P4>*WGz$O&|}ާm%_'^Sy4Řtd,]Ro7⚰c nr'>op¨UTmO Џ_[S&eӶ:xE6l|ȭ(UmȘ'Y^emamhܟgpM+VמK&U(xyxPcvBK7?+p4_po $u\e讈_- GEwoYA@0M:)2=]v+4Fqwn80tKz{1J2YEno +`'X l:& ]/NՍZ#Y'&6| .Ś 5;aULHyK^'%w&;ir&\&3-rM'W|Zmjp׃PgF=qhI+黲^?( 8p9YU]x+-(1ú'^Wѳw'x&wMn)˄Ɇ癸@vJN6e2kd\Ҍ.u]'pYmd v(Yjhs/W%#fvFFF͜:@'Mv0 w ΓoEE\?>ӥx340031QHI,IKI,.N-f@nʩ@MoV10[I]f^Z>CW/[-RZODr b\`M5w L瘞_jD,@xıc1fn̒7 2SJK2&(/x340031QHI,IKI,.N-f--/r0DRϐKVTVm_(?)+5X/=(g}G֮|0rur1d;x/C 3[~f̢̲:\ @XY\ bvOK-J (JM.VZRZ QbәW\\_.]Z.bly)P0{JKJpKPD!6AM,)ʬ&X MMx340031QHI,IKI,.N-f8'xs W۪OCe\e.3/-!嫗\d'XTQ~RVjrI^z~Q."EVv;x5q*>k. Mx/ -?or|ffnĔԢ•Դ=))%yVJ:\ @T_.ZPW<"'T̩$?h bPyf^J~9S:MY4ĒҢT&2>ߥx340031QHI,IKI,.N-f8sFGݢ3ȷI]f^Z>\]|F^_W?F(?)+5X/=(/s^/b/LIxS盢O0f MxiڰyrdnuĜԒ•Դ,3X';Ɨepq*Ayf^J>S_TZRJLIA$&W6X_Z`P\W hpqjZsqkT!0L/RxU;PQl$ $ L#H3"E AsS[8wp,fFmq3ݝ7 F7?kx)^THv鋧UfĬSb% إdIc]"gxmOQ:a>%!jecLIQ !J)0T*~'޸6nLL\ڭ 6 \4arN;|+~.FE6-.C 7ZUY>s)uݦCENM*R(gy1l[:c{ոQ^㇏ . 5v Qc_Yl7wB\y-TJv_Aaxf3jtb6꺰YVY 7蚵=Lvn&;=i峏^w;{gyl{Բ/h;1}Ǫ["(–dMr[rU-KHIJڒ{BPS*չU_^uhʹ?Y(tTP5Nt&W:>%SһTr3/U4_ў 5}p'7Eo[f;w/gZx340031QHI,IKI,.N-fQvKguߗZzH2W'zc0\7ˡRKr$w&Xٶ;oU]zR-bx/of6ހ4쒼%yVJ/ۂEt8)SӚ3 HV/8<3/%nP5Hq5W-"dx340031QHI,IKI,.N-fP*XQ43ь½/3DRϐKVTVm_(?)+5X/=(A矬IfKߦ:J5-C bx}k~f̪ĜkuXs&['e;e&OaĮCUqr1pB_SRJ2:̼TҼ@Abz3РԊY;>[#xuSSTeeYv޻ @B^|lJ,A-- 5a -]BӺr]{{ML_jiM_C>8ܩr9{/mjaUby%^{ |G+ jwg9ӄ jO51wY*%6/ֿ*o<ږ\ڭB`@FOd%h+R]ka|5 `=vʕ V to׵(`B7[Ѵ1{l+ݔfه*6'vM$ ܋-]&6EYӹ*l"r 6@ON@/)[C` <8$lccX(MmsAd.+Qe,'ڜd؍ۋF>a/2{#E)OZ~)oao)n7i쑪Î>P/~x/O Xlp\WÍB'-?K8ZtUxs;IP0}^PEKʺ+3 7CkZh6G=[ {i ǰݛ۸+傗0Q3q[:aeQpGS_j ils'ax8-Y|=gzBWkf;Y}#I8Zpg:ʾ׵ltB ?T0ˢF$\̶3p 7G#4dppӄÄo&|pỄO&E˔ hD~b,Rp<ϰMP`\*$1 z_% 3zLGS ˄o\gU^ފEWhVQ4GuJȣ-zN[s~C)Gq <@?M( :R) p'xn&~)y/˸lXdׁH>=#Şoc@ v;o`G2ԋxNR^R/I+-ZV7w?-V4a!g-xysM lnx[Ƽy7#di*vXx{9=Gp0wk$Jx4ibf%3sSbDzTܤ̔t QRg 渜ͳ &1oPJ` xkøn6IY%Vu%7rs 5x{m 4'_ުݬ]U6z @dxf9rNKC38 74#x{yGsve)~]'a~sFb^zO~:ە[;>e,ު7=?J| z;y9O\KsSJK2 g+Y&^頓lfT wd UPsDs|GH4v6L_hnbvjZfN*Cʻ5X?xqK:ɮ"\ K+Ocjz\" Ӿ;|ӧW')|5jL"]A<ӭ2gplVɭ&"#o'4v)xFẠϲ0e<5흕fZ[܃wp5(371=%E_kĦOݱov|c<|5%$y6tj9qN^͚Ɏe"gNt\[szoߺMCv m"(V!D )7qmb'qE^4ߗ,sm&\Z_Zm{TܔWj5[9Yl*slG \?{UyW T'e;l`(.U>(ѮwyIi|Y׵ k/K{gQս{N33oҮWFW+dJ5q]2d~R?] X.ѸM{n,f;u_*O~4YQXi30'Hށygjz|^+=ߋm5DEg(KR ߮}ɽ"`c x١9!ZYܹcֽ8u_̖ߋnL?$WKfJ·p_e_fWF+r;S\waYfVm٬2[YC2>U&4fmuvmf&& Ez j=m1:"5x;B yr= \Pxk|C ٜ̖:FrUIlx;9sC$̥ x31ԼbzMҲ7Y3eOJ&`y) O  $Ǘo}Oa#br;jž$J$9|Qc RZT`+?ʢb<0/ %$IAmVnqD/471;5-3'A#x9;MPRx0$քΦkʻmD*x+-(K n4pH\f !7xUnS1@]Db}uUQ7 x v\HH%{fŏ?Og?gfzyn֗bGrN[\QkBS a &oŰ8U1!kZH58sgXг':XɥB{9aգ9&'n{)iQt+:1$1i$v?9m;ru|R╶ɳOd4x}(tP>S>#hL,q'vxkfnf(r.hH_o}l;r :̌ Togx{:la̔ͧ@&)˶xnz$NVC38EGdnxJ 9ʆ0lʶ x;9Km_Xe%9ɿxx[ömNFFͻ K, LjL Ȕ|xøp2,&L?2*n~6mB3xXM&O0QS(ia6yKy7/|MHyr웻0M7Q쯦7Nf) z׫oflUq2 ڒ^d<^M _21n`8yL U6[dgYŪz~GE,7*IUȐExz|yٶ<>e0h#ΑG,.xxqBWV_ڜ+^i2Č\ *xz7ќp4+qّG,x60zM6 |Ԓ2' DV< 6=8Xb?~O'MNDxzVB4 }:SO1G,xxQ |SJ z/2Z)vv-OT4xxqBqօ9}~$j觏"3rWȌx{mȭĴ<,ڝc+e&2yd'~v..Լ. m3x[@k(Cj^ lx340031QHI,IKI,.N-fn^ZFOMH8I]f^Z>'OYz/8Ƨu*gRKrl,5hNw`ѵ7Mkn0lܯyxܮa,y!#+x{wHDW^'zahzpq&D x340031QHI,IKI,.N-fheݼLQ7: 4"Kgh0xrOwg B'e&2((\[`93j *CxxqsiDq?Fމi\ <, !  ) % E@v"C. :!x!C~C#F<&n^ Ox;6Km.ɫ86cLɅcYW100644 GormInfo.plistPfOa/+uVx4S  K E7?u\7i30>"B#x7[XwO p7cL[ uoyd|AhԄ ,@:WFx86?qLi!%CM&JY{enP։QߗK = Fx[[< xz5紘40000 Documentation.K¸w \M9B >t~d^nf100644 GormInfo.plistek(8Q|Єǜۻ,t{ߺ4] "~G2xR[\XKFh~嵪&zo1@{`,PDz|&$NQ4!oLOW P*S4D"Oaxj[1)\#NN ojlF*6|wG*ki77m)AkG\C34> `4q768'A0-xxd>rTal~Ħ m\100644 GormInfo.plistMi0:FA?RA۪bcaI) Tג"E-x۴F ˊ _Vd Lxkfnf(b!wollTpׂ1j:x[2qF?ㄒ|l9NdYs+wixnz$NVC38EGeuxJ 4r]KsSJ47(ټW6LKx'QbC<ɗXUXv?6 e~x[ömNFFͻ  - Lj+ Ȫx:q~ j0wMȨńiBM&O0Q<׎ua6?&n.f|MHy2n&ʓC&Wgܭird5uj')nnR4Jys#봥&'i)o~ bc{M.3|4yM&'7*o>`4DeIF&CK* "ʓ[? #Om¯1x[μyC:# F{&+x۴FxW퓥 Of  x1d &H Nvssg# {x!&&tdERJ3Arxnz$NVC38EH hcx5+:T,d-Q v-A! J x[ömNFFͻLL ̔jexxq,a_9ϚJZD$?m_?e:u@ m²x[μyC:# F{55x9[w!{cʧzWo1_e1%. l@y\k_02Hx۴Fi X/2X߀u100644 GormInfo.plist`ƪ*|~ %c/+H(xnz$NVC38EH#lx{}C)24F! J# 20S0$x{|Yxyf+v+&F ۭXV>  x 89RKJ'?߬XC ^x;z)-˧W0Zo`y :WxC}n}r~^Ibf^{~QBqAjrfZfBfnANjn*P$3?O!?M$#U%?$\̥PP_PSZ RZRPXPZV_2Kh #a@Vh3]N^"4YUDa2d?vl؂RA~,Ϲ|[k=3Bto<7ϛh |?QN `ZXXHQ4JXkZ..Լ.;t`:x340031QK.+L/Je\ctM|U=KS!D+HG+s;UtTsFb^zO~:;߇^I xuO=*g3uFOrHMLI- H,*N-b̑s TTntE((JM+fp`>sSOW_p5-|x}߳߱' x&3\gyy^vU5FجK t)gE.xa߹8BB\}OsM9%%@K.^,ڗ$mklqCˤWeC&fS: WI nmU>!w'x8[wML9 vp+៱olC)DqTLF;8~BeGx9[nWP)Kr9]۱o1O)0o*dRG Gxo[75>_@z'o<;V[ 3+q*&100644 GNUmakefile @4 h@vIS ~ʎca̳4C|m7v\FiaBFIxi[$S-G>Ì o<9)M+蒨`yfSTP賴4MХeg)עa[_51pwo1M&Ud2rK :g"7kGxi[йru+/xo<vV/#N5"OKR;~ )!rܐ|4> oͅiE3owx9[ae93yU@3 2o1s0F YUE')Gx7[SЂl. `rǎ4go<32ֳ|5dolp>_Exi[gV</v\ o<]_ݹCmK&JV*%XGJWR朜0zœg^.k\0/-uG߳/x- wxk[^"{a(':!S0o1>JVv_:Fo|4Df100644 GormInfo.plist }?oh}w۬U*wal*p05xu5k“SԆOx9PP?vl/GF- Be ?n"x9[SaN0y?o1GHrUt0o|.?dHxj\6ث"3Zxα7o1r)pN}8o74W[g[=LϘ2w|&%hyBeK0,xx Hx3U8 x.xP6*LotS]9J90BE/ 7>, 2 > X+<{&G yt!^xi6޾ÝaR)a UJtK,Yk&Yfk}nq֤D*hq;Z@ !b"^3RwxQ[`&)"B{«X7mBoX d/a0i7GR6hӨ[ bp* #_x8[@Ĩpig=Woy\+=5@hҭUCܓFxQ[5NRh?;;c1P-őo_32ѣ9͍/U100644 GormInfo.plist|_J&^1Y ,qx9[xۆ/Ӆ\%iso1eqօgT\$TH7Gx9[޴ AA `íoڰt̶#=^tiv볗4W Gx}[3:q?ylY|o<<#JIG-3${dat#6i gǓi7t]a3ԗzh?Z(,u֯_Be:5xQ[R,`3ܼi͑oW|d W޽N =9Yi72:HlrxJ ,%`xN[z!I%YɈ3sPHʮ#%100644 GormInfo.plistALg-уj2s&*3qxQ[cE *1bYo} ?]Mb$Yi7h=}ܯ<1 ⳴U$ЇCxhYJ9=y{4/WLx[q' L:|IyEey雅u̘yRR"Q<n4xG u7U<3CYxm+*'100644 GNUmakefilek: )d}~/=q.n'^azvߏ[A֝*}]T@n1Ld(Ц3(  9-,4}x;**]>:K<.%賙=}{b> L\oIxQKD/471;5-3'!P?#Zg2S7{b tinmQ:EAN ~eo2̓j@[Ix **„?\:KuiۯAj.xQKD/471;5-3'A/7^\x~սDίGp /x~**b jV0Lmߋ~jagwNx7uZ>\OTObbfk100644 GormDocument.m:U8q;)i"}b1<. xY**cyʊ؈xj2*TMNZEly@3: &_9E?[%9ғq"[R$&hxn**Ǔr#9STA 6/qo gvhf;VLS} ]YbJoid2B=7ʃpv0W|xs**msu]chSaX< ^pp (("Ct4m1>JDCnҽ~os;.,xY"&,x%**!d2[K~o# \W3xQkG!l 'ןLS{qͬ9L -xQkZIS5Xa<=RnA <r{-x=**u$X%joEDíy0.6$(sgQW"cc(:e堎*볼 7 x`**'100644 GNUmakefile:o(Ib'x6A aV O͕}h*ᵤٳ*txۧOku6QrO\Dͯق^-xۧOkrN#07q&ݜ -x!**h/QR@ՙgQ|wb/x;**@dh|W]MT_I!ZBwi1Z dIxs**u!3T8>˓FlB&I&& \;듸hCf;Q U.~Xkbhoq]^߱N @*EHx! c &/ˢjEm9hhaKG;xۧOkrN9"gNMMY\]ݜL.x:**{vb.[WꁎUmF|/8xNz.:Hx;**j/{POND#&q,u&=Flov%cY >Ix:**:O7U\P PyL}C/IL* Hx;**zeu <NZƳٳalw5QGɒ}  IxۧE+D7?%5%5H2l揯5^ZD4))}4)XRZYM ^b3?6T-?1"ME[MMSa.ONT.FUU_g)QxBnXBWxGf`%ZzM@ } =L7G7 `zi100644 GormPrivate.m), 6JO?FTwų 0 WjjxkjpM#"qw,Z99l|kͨx5qd _XSs&[>2f3ZN+ lexۮ8Wq.Wx3$l̫mx_kC\[%CNx{sC1 gHjnANbIjq /xW{l88K]Qcc>'Pz9ߒ] /*@%jOU MxQRUAKKJ4=RO7|Ū>Y:*\Bښ29N2ٴhþ:Oއ=%c+i!Ȟ7 8ueZXJA ?0MB$QtLdt#EUI]˰RJI˅lVԉj!Se `UL)6DuA<3 2Ab%^nM ,bYI& s,dZ "R '5򕒦`u] [Я&xs]]ۍ1k//ֵխejz&·4Wt5֥$Wo^:ntOȚtLG=6vH{DTyPKkz7>,K-[U[g𩊍u1Cp/3ധ3ޱL"d(_%!}*e]l?k޵zmj3]vUBף9mvdt%ʡmcMW54H.{7Q-`b-7;k܍@_UZl59ҕ zjVt~MJ zO#wL_;} ZjЂVzk . ~>Vt yQ^zȋ6[k֖hk>ѽVI*ii MMm;(6GE35e >\hp%Cz%@yևZZN ;0D# y^cSL }/ޚCX`[8^0uHD{f922#_1jpJ 8\'Qb^o8=8H$X6#h,ƗZG/ (sZ_Lj[PcJva>އJ7Db9ƕNrѾrzE,|%lTBkb3j|M,bXƆdn6iFm[?}=VψId@qTF1KKЂόb@7.qP]f^򭂧c9u Mt`L%{Ҿ 0𠖃 ;թlǰ'f7W`uRFhMG\ ʗnrI1Ĭ+!^}Ӛ"$21' ]qN=#HF&a~vFmAf!]ysӍuhJto}ڲłÊnE!1< ːȈ,Nj9g. [mZ,n8SOЏί_}u/7Ye#n1 gu# 54&X]r:/D78pBN{Ys-f7z0I=MD*Q $7x`ۜ x3l,J\Ǹ *K`'tl#jע,r"F$š#[h =L>ab84?PIǟ^ѱ̓4|v~|NcN ^zG?ZzP-i/3Kř&9㥝?H8~s=Νag"t̻7/sK}qR1pTEՖd7ޛ] ňȉq#FHȽ2!kz53rnRȌ8579*ۜsNVq[zpg6VI=@q.;"ʼnŶ*, h%R*$}~6ĥ-ZTMudc,qR$h%T eV IT̜IҺʁqa]94NLدaЦ]b:I"?QGH'o kYnU1PV2N6JV3[ AP GU u ;v/HГ,uSLt1-B兕6FLjY: u"izM~~w+,+_DÇZ;OɕUz tbeJeE29b;NBiWymӜ4z 4ѷvw.uy3pɌag xLP) +$(d*$*$ RM,(KӃ(|[BfQZ~wj{3B7@i&Ɍ%7ߖ`WZPPZXꜟ\W7N+;yx':Kl;D$BR33227gIKLyx{8ng&;y;<|[k.̜T \osIn $۸`P\<dtBq~iQrjl,HeSK@@̼ٔĒ<Ԓ`F+Yh2.MV ÐRI9yy`!ҵ\\y)\\y%Ei޼I2y2l"Y3![SdxSOA"]D$R~ U ېqU4 ۩]mw)6xL= &&Lz޼x M637}Ot,dfqI'ݺ*@KЎ_m#,#[GK<3tfX&OH2L9U%^K%\)=  Y|Lr#6iquZ?wQf[y3YSrw)#%ɿfEWom}@{5[82L`kn}@)-=s:8<4d JtfBqd\вbRc!')ԯY[&Æi,Z91mI"=aV8N&)fkh 3,Dy| 8K" ,7nM S1 ?E߮.{^& QEL ZZBZYb2IY-l~6(ď!XSnruȅ}SxfVvY]/- J)MO X:rð ~?*SAjۉ^Փ7hJsaxt ӊTB8 ORvVgqp!lHF\t|$gnhCga <i Nxdrh)b*#8orL&2GXؼZ 6 l4xep$l|!%_WxۧzBe7jIiQll\@0͘3֚KWAcC~!Ym~ xۢئ #淌}lٹ'OX7Cz?͖\le [Nxuk-f0JL ̔jV l-x;cS͇:&dLx[Ƽy#d^F7F!A:`x!""ݽgúÆX]4Y1x7""[4Rv ao-U4a!϶2ƱExR""[ Pykz \oo~2ۼc 5~Sв |j 6ΔsBn&tɕA(`x9""[@JZ,  w^3to~?ۇ:[ی㲪J ߯XGx8""[`l=L%{K0]믱oj깿)-ⓠ.Fx;tZiF?Z?dܴl84x϶6@^fsBko o2x x# E& h:{xXth5ӆtML&뛸qi<&^ d7xfkdPܢE=C[ox0r_$ i~' ' [d0xxQ |SJW7K,@w,s'*n&1}x7ZYJ}M[ؑ_AֹNV.OFUx[sq ړU&7iKoko)xu##69dsG'/wGȾ#100644 ChangeLog*/'n>=op`_f3,(Ic I4W@Hmsb {zAcxƱ$R9_# ۏ(0=\bټx[ξ}Y}7J8qWf75l 540031QpHKOOg0y]/zk9NNo11ԼĒ6A84As%6)(Talw5QGɒz ߘ׊&cؙmn1Ld(Ц3(= ' )d.B=b  +ǝ>("Ct4m j/QR@ՙgQqvBj^wc!2Bz"ļNx5qd Q6YLi /&{Kd(k#R :\+֖$ńPN(E AÙ_>ت/ Ь<ʕPdߓ]r99 Wᷧm7_ ?n۵FiluJt:9xX PTg9@d92?\0`#C&opI+jF󔷚ȦR1fƊƭT&jRdߛG^̛gfڣS*n93==!$,z褔44L:V8m,OuK>[2պ&<= 7OQqʧDBL4Oxx DecD? je~7%7#'+ LJ#ӉiIE5#Ac6ceg&aømM=kXgUS~}@c #&:=}o#d>ξ37 ch2{⺆ņ~Rp˜!u6i۽ؾlu CYX8hqAcG"b˭ ^o^FkjM֫PbN__C˳05_$FZHse3LuxB%rEܺ|n-'Ո+ijq:HC!wH¿!zi<_ ks{lC`副'” .l6KlmP4:wMd8ϖgзɅ|`p 'ۘRkݾ(kVZh?5;] $WMHAq20jP~Xb\Q@mΦ&m2\Yvg*ħp7O(Zcun#%[d`Aנื_Ȼ!C)q0'UxBmм]P0-dlyocurH|aR"&UGN5b{BZeĻZ%6EÚjSפFQid<}暉IJ S\c8qgGqy a9sv.,ES6t<Q{c(l cz:d^`tK]RC-|yM#-w\)#ٛy3iA MŽ[g_ׅU_VRFu:ߩIJތN秴|m?O}U]|ɹ^.<}KtD;O@Zl[] H A O9!ӨCv{7e`er-Dު~ULz懀?' W<04-atK.ؐddDSo]}Tڀ=Jue+%g=?e _v”5(gjw;n:)U@Ni=D1yC@KZ]T9g[5^ twCFq_ ݯ5|\w1^yaF ξms4fq?ދ 9|h w{y Tw$@Y?%=rdJ"I PP#ŧ'Tw90K\Ↄ!ښufR}0b0Kv1*]:&[iq!_ ˔DN,mHkNqѦ100644 GormInfo.plistK΋~*!"DXӲVպk2qyygIc_:`4"*LⓅ"`qxP[X }Zb X$j; 午o<WOSȖY/׌)a>Kp v3.H%_xR[GDLv$o1+i.$ (3q4hZ٢uq"䵅lx'`xR[?^lCr'ɐϙLo1(@\2l 54 j"KO;y td%`x}[`~L{ S̑o<]~M@t8(?+mr@ai7R"?PvmxRO'GST[C1x`\;ԥM?;O雙mvo w|i7;0cAUy-j堰:4tqk~~ƃgff4;1xxR[D:rm\o7>o1ҢWBad DUY#K5{ܩ<5^ST)&!`xR[@qyQIxWuo19!CmJ%H4<oXw3HqV+Z )C%wx}(4@o-@ۿL) xkfnfpI$kɼ/U~,N,^5\ GCx>}C.DM}igN}x#g x340031QHI,IKI,.N-fxSi[}m ؄sN۱,5DR`Z "X=7&!eJ*PEIY%zE eV* zο^A@)M 0xeKQ猩.taY35-"ʈa76$ԌbT˄,U 2V-ZFvn9wM<[ dJo 'XL`HaXפ{1(_YIWv{=hBο:<ZkRC'+X/пa~M% 0qzO;4j5Lz8J4J^:#}uY=o]? օ3OB>(jƑ# Xxh ;15cʢC]PP*s{o100644 GormSound.mqR33.w ӡZxe%%>#U[Ttt100644 GormDocument.m]tLrqE6K{\*L VOItRpB+7JXg.o tx'%%>6|f*rARkmTn#5]ԻN\e)2ǝ[͋O:ʂG:G^ʽy@x$Z"E8MH!PÓ$h[iTyKU7xT|ZR6&c2JsSg;\B|h4I0QURFvyg&|3Mafx;%%sLyyϠj2i3yn"a0/г@Hhx=/p3̺o;%D"Mq-mgM}$K\vywq`\ʼn7Drp۩+33.[ J.MeXsTH'C q&0W_ ae9U{^LvNc%yIwI)iڻIwpȋ~EoAF-ۅ"g5y"RҐ bx340031QHI,IKI,.N-f8{I'B̭{yI]f^Z>i\|` ߘ@ևD)C'e&2N>k9чui+xϸqsbFq F6nGɮ#%ĸLq;02zLcܪſ8Iqd;MS626N1\ظVa3d?&  B&_)M1:~8csNPN_+>P|;{zp앑l~?sHo8'd)i)PJ~>c2賺w;^k6Ct0n{ ρ}P.M_@Ƶ]T>wC nrb=JUIMNVs}IwYe8Q_\*RWINOwgңx3epR]PY$_ϯKa2lE&E_xYW1/i-~{ُ _jpw8Chp>a]z"4Ij^{D P } .'}?4e1Qɂ?N#r6?3e<?ٌѡJ1Ay [|g`guKԯc5\oh> ;@~+查ǫlVzrUdT]8nrp=a|'M99?Jy%˃U(_[IgCŏ^a h)p'}/6|m V"ƌ2nzH^nS/Yk߆[H&J_!z#W?5cCM4Ԓ7awÒRV{RݣפE}5u39炂SMm_E{XxP{R}ÓÃ#i# \ Zg!p{ #*V*#8X<Шm`$O0bNj*y0Ћq^/6t/#p W893W]R3R!|w}1_—Wf42R,nF|%xq6i҅馕/F8Epis #A QFBL XQGZq0R)h igZR׊B=h!u}:Α| _'jÌ4-$#M6FE KZD KM9RDŽ{T/F7&#B1ob$!6~6j6FsQQ5eC(Tcc鍙 y{D*G戒2r@#<"{hR^AkUJ^5Ig;̑NTzw\ǵr?##]XQ +H*Z)P@ÆxTVޏ/tnG|`c@#px`A@uBG:WUz5Ȝhյ^p<`A2\ #F"RQFԵӹ\@m^_oy UMH28\gqFF=P٨dae\cdxcdLչs(ẗ{ndAH=uObd2ȜnoLhG3-Ȩ0Lwn ;;Z\7zHgp: oj˦2x1 N)9Wl=)ck?AbY x;qS =G)(hd.M55 GQa`gfIjnPpsTBAxqS M|Rus2SҁL_G#CcK͗+xj =ogK-,hx_oiIbRNcQQbPnGrd" ߷^gq&o=yCN 6'\x{j 3M|Rus2SҁL_G#CcK'.Kn>xf9rtNF38 *H`x~[=ަ83aou*RL2w 7KWi7e4% T5A dԇ_8} ,贑; iR˚ߒ1yq`j/v%|J<@;Tx340031QHI,IKI,.N-fX|WQ뮊kAo1bU *6"V2 ^[xxx7][w1mn1 8x340031QHI,IKI,.N-f0g<+O7[:K1DR`Z "X=7&!eJ*PEIY%zE $fqyũb;',tx+-(c sVҴ[~A_[^q: l xwEǻ]`awɢƜz`\,%"gٝf',AEPi9Pk( EDD8<Ϭェq?}ի隚|d.fVp:u>FWkz^qSXjY4.|@kA%Av;Ӑ$m1<`Sz衲\(ttyZ%YΎ B~Y~'>_ak8-X TNH)xN0c!t1&#$N6[ ɚLp>3'| NTN7=ifA fiqsyhkst%o1%K0GR -(l|&DO-rhz=c͚ z.~<0g`j" "`Vm1 sd:6Sǁ㚜nkϦsځ3I1҅T'谹Ooj́B?v6R͇z\y2 cs ?5G`y`6Q엗 և(ȫ*KJ\[eMVDV" VMd嵂%y`쐬?핏VCdM }r`숼UZ2/?,H`0.:Z5q-l.~j,kwl3GT`Cȅ т %C2"0<,g6,Ȍ`#i1 I`$Iv%I}.#InFTIiЁ:Զۑu0 D9Lz1azH0>.Ds$nm7"׏ixw8yu8ѻ'Q݋(cM{A C$G0%G{Od`+IBV껪1H$"/Ɖw` %y`>";(Of{q C1d !";,,Lfq!#r`c$˃88rpb Y`D.њt;PtI@dPq$_$ Ȩ`I9g &Ay`\Gl 6ʑ5ay`>L#q#A)DT8=(bWFo 8,Wvׇ @d~D'"%D'"K FiD'"!-#89HI$1E$G$&C8;<(p.QalkdǍd.H sFHtĘHt 1n%8"H˸`An'#];HwaLwL]ukܬ`t[K gC4)Nn ߧ9+n Re`tg/E7ΎL$4#$[Q5( =F^8 {DU=I5 z$jD.l93$iGgI=ܧ @|(b|=O+b?/ _$շ/!^&/^!#ViqMI\SAKW B/N_#}8^Mq:A07BK.5`k N<$t8.l)[$ojx}ę%;{eU >|gU IT? Hk{DU$jߡDU$j_DUG$j!DU$j7v}Bqh$`Y?#F9Q`|A{1 R_>d/nD$1"*mǭU}C$0*[r{}SnH M ڲ3Q+mϭ$lQIQ[Tڥ[O);u FJ[u+C/P:j VbY¶ @+ح$¶ !f6u׮,@߱"2as}PJ`?ou%5,&s9WYOpvگ%h _`(!hW`E{-\= uzm@Ymo mD9moǴ= lۂKϟן ϴ3ڟkۃ \+~\ڛ;h{h0{!?.YJ/+C{ \wR)O)s4|\9M`~Mo%~~0f-ZXӏ{ ?k ٫CwC~WۇQ hqh9N5'tr(a_˺PGMt,^<d'tMžXCLLdsya0fgX (hn2e*z_Tp~ōDzq<2X:gRÉC Cʋp v]@ :r5yF4u<,>/*eP>UY`e ,߅*F$AɽOAZUNjθ(:Eh ~ҟfBsNݧY%Zf&Q5`>e+LG*Y,=tgUqG>+Jt~CJ}9.tl/@J{ڊi"TmP.St@u1>SǨ:sR}QFGǕ(Na2(l(Qɮ1G:Z 36(YɯФnX_7^Q_*G}0 țRQ<eF73n9.|nEʧzoԩ'݆)/3M@w&zHpDO& d6G:}LNߍ%r4rRgZPp0S9t_prxlX<ސgےy}U>AU'ja*|*|>&_ qDۅKB{Fdm/G8~w sڋ^>M+^>S/}_,VRÈҰ4 /PU3U5Mh9100644 GormOutlineView.mgd.BpK5+d uϋoIA1zd 1? B~8xv%%Խ*T2LIPlkt"as?CXX#zccmt5eJ4 ۱id/B+Mh i6 x&%%`t 3_62L|rF*Sgkhڮ S_PfSH ,z|.-\|uQ೷oo_%M4K,?2˥ t;;fJ46÷`I' t(^~Uaxj}l|Ujó hhxkTmT (CgQS/V^^vFuW.xkTmT.U+ʧNJn)-<.لݗ}1x?%%N?22GJj26iP:ʀ3#Dh.E=#h o1Mx>%%554$+B b!_Fl ZȳeEaxL, X /`e)+ s+xMTŮNˍ˱ñ & 䘏K2VmXgq2Jrv&T\x>]rҁݚItm}㗩Uʘk.xeX{|ŵ6&$$B e{03 &Y<&Rb} Z*"R'xZ-sm-Rў3!|9s̙9ۗ`G^gv:s[YK4 ᒑFCa$+z$Y琅fq_JiBBm(%/"6nP7KX9TPvAAbS3}sB%cPo_eVRdZ}kxcrL?&5K*nINFN=DIl'|Iap$)kNAM%\MΤY1++`9؜iV*I$ykbn9:H GY.ʵ(φ4Gce{#Fm^$`#͇Ak'[N%cyoo?O>ύsh[3fD295С~` kcͰ)%h_p4%O 6h9%;%+'gU[٤/eM Sb{ jbp< S(AI-1WWYmHY*h5Bv;c4vu@AZ>BBy?=;iwu*z'F;IS]J׍%ǣ-Ya{F܈M nZKkyd6ZqanFcÈ`&p[z0+2~2p*"ځ;  #ע$SnwAS#R)|!;^A. <~Fqgǻ֘X3|g5CCn>~O$)؍Z7R4r~3);͹=ֶ5ܫL ~ѿϢ90=8Q> ccz5\Y9TLU Hz dYA(f9ٯ 5;h?0=6| g4'P> lh15 O^ CC^4j~;p mkӡCg0ߚ﬿oZ~W.[ܷxxo#X5l; [KΡ6mC{-d1gmnΜNir0}7=iG0(dWp?z]E:ajHLb~h Fk/pΌp̿)\0mg]ᮑݶ q6/Fg ܞf1TvOBDw ƩSr elKdI'xae%*30 -~9Nd's\^ʛ`,U i]i6XE7Kז ebc\# Ѥ Y&#'Óӂ S^^9E TF(_΀Nn˘'(*S䈬oaQ$XOLIǛ'ɓK~+VD4xVREZ"H(SĀEFO %5Nr`.E pq܊uM = 7jaKBX"X@GS ( Cm+qQ"-MTONR0 1mAxhQa.܂R;mz\ȨFY BZcNWu1C|fjI*Z"N\&8G$$]bL7N/۠wl@Jͅ03 ZEۏ;ZY^OI )|Tz5$`\1C25"W Tg!Y skDI(,ұ농r7TX^Q-fbZ- g@n.c`+=$w ֪#R 65ZnrFX.7W4i5q8Y^'SMk_nCq|Lp6rpcjNX8Mf9ܝ6(Nwy\qp{TwE=z#"ۡE~b$ŻKe KW0BM`/ cHjڶ0R-^yxhk/mS^;'hK@ߥ-AA 0iZ!M \4@G4-H%󨦅%iW \r]}BސahݚXm{TMQa4/?N@m'|rQ[`JlhK/'O RxN;`F8ƈxO/|PSjBti_E((Z{9c?s&U Ԧ`KvKCೇ>*ZiSz?q Nr\ YR^A*D&]{MSr`U ቊ$vc ՒQ" G7ݛ*rDbͿVdv*sxxUsWb%7qg?E8+OP:ꃜ)f+JmJ)sCi nWڰXDba,^ݳ\FEvSVKmIfiJ s@֎NjB,x&0IC;g-g'&ѸUՏ;>BFP36 73 {R&X;!2cčS/Vzʊ2aŪ755w^'ctVl_̝m\ʴ >NGuR.0ړxxj-N52y~a^|D*3h裞v/]ݰcQ96n^tk*1Mk%ضxi| L /B̞Dbg[&9#g֓S("N/!\d᥄K-s 9,pn"\a(92Eq3ሥo!Nc]8 ^N8zV +HhfJY$܂",FV "1dܔs,kHYvAPDA9wEZ? בn,|ayg_ZYe6Ш3?$\kO2&\aS,#•H›hִ&j{$Ž$<26>"Yx ~iZ:>\7?{{xs}w^}Ƿ씕>Sg|}\9ۛ]_[F;Ьx`Ii{ѻ4Ťhl6ѪW(&aE)gPW OF“,|&KM> ƙXC ǯ˲R 0t7qD]C-g P܈SƲdU_Aawr׈V[9~|X]Og0,h s|}mmяǷզGMϭlIhglaײhGDPX$DEmhKf^&fbbf33u`ŝ#/c2УuuGgtugu7t*U!!G[Z:;[uuů|M>U{ckcxjE,iK:qNhF%Z Ev<[0e & VPؒɽ e K"bA`«k #f %-ZVq|֖)lY(\.dua( W P0 # zH~#-ђFAks~ VgR q!n-XGʡֵbUoEx340031QHI,IKI,.N-f8r\z]|\U"Kg0-o?2%ab\qRx=AQf)9x340031QHI,IKI,.N-fR| ;nVm91I]f^Z>i\|` ߘ@ևD)C'e&2jg[g*sмMxjyb:SRFMEI61Q&Gеx+-(jmn.=tžϻCдDxfx`a$m\ &% ,{oiIbRNjpj PP]L/aPb 3x{-_:pUAx{~TɇE7qCPm x31ԼbClg<6Fs̼bɻ/οZm9|'q+I?'C93Jlfʿ',.1IK-*f؟wNst-dqNގ*ĒD]bV7 ۬f 440031Qp MNMIe8ng%)F:<4VLSxxqBH/~ &ծņ?+xxqBHm'mG8x(v`>w x7joS>c'ueɑ].a Ҿ*]wx340031QHI,IKI,.N-fp]ؗp4nXH?v|I]f^Z>i\|` ߘ@ևD)C'e&2 Mr;> -"*xxې*ocFɬ ^gRS9 200n28:" ?x;Fmd+n \/'GpeZOc6?y=x340031QHI,IKI,.N-fx'mgk~ge)k8"Kg0-o?2%ab\/~G&uL{y}s5y"R qx+-(Ei.ZgY:] o I #x8A)5mSg6%Q".&L77,@$_a[7pp7E;68L`p,`por"} /{0yC a  Y72 U4x2S<O.wGx340031QHI,IKI,.N-fXym=m6Qn{kGH2L [gϴ>$LIE(?)+5X/=(f^|IALA+Y*>`xw"vFj-6Qͫ2Og q 2x340031QHI,IKI,.N-f4ߵuGGGﲞl.3/-@.EzoLLC˔TRKrͷLPq]wCOJ+'rx/SfcFMo6>QU<'7zbkx:JIa8|lW늃#z5عM;/o+8sk@2x340031QHI,IKI,.N-f%e,e6 /S8ӂo5DR`Z "X=7&!eJ*PEIY%zE A[k.:y[՗%N*xXKSG]A`'N/qı űy8q+jweAN%-~Vk)?!GW~IzfA *.Ka=ttPs\ږDk}nn ՊVf4t")2Vz% ujkh\jh]T$QQϑYE ('յ&g iOF1m N.1lmݾpŲ!R.%bqzgYkBe#8D(q(HJ"6J+j ŰCG(e nq**Ջml"FzHNjs*xL;!sB+v`7ˬ雖W% t ɰt޶5Tސ˃!(&:LMgsI 7"!$WDZ;=|7Z<]O@W#x^o;݇*G7.ЍahԶ^#޵Mf3'[V `A w}0| c4Mmɺk]#@tIng-6~UujXL*KX&Ŭ O,\]c T24֭.1CmPmRt0& q- iErh[U"K,X0[?Onai0iWJuۧTY}Pb1QU(g+Զlj3-*E1}>XͧXVq2t$XW@ћf > Aeڏy=#)2%wټZ\kѸ"ɰ>(Mkz^EHUO~h?EjE<",s V#@E5~n0L~ n}zp3K|%YQΒ1ƨ`WEJj,R,"b7WH?HY` _"]6Uof i!.n\<łNƿ;> :i÷#{w+Yi7D+2 >]AiRd6|UA\K4(Lm"#te{*;!/-x+-(GVd_ ǫ3x9xFM9U6}Q;,iݥx340031QHI,IKI,.N-f{J56G l.3/-k%_]]eUU\R_O{onWئX yLE0=xR[JkGFɌL`Go1x0`NM]fY465)8mgE( &b.xz}31sn Ax[ξ}F^{~} "Wl@ɾMLh -xP[jnD~\o<x!ɿ?9u}5DBzi>*o\xz68VE6wOmiLͽu=m~+*js'_2}Lyx[>!Z7\{567VdL]PqWx8[GD5o3 Oz ݂`oy *H)3n JkmEx[4QJP9š@1\i: x31Լbzދr~_&`y) ohX]6_uuO?DW%Fy%E9 [gUOk^O!jAj3RZ4bWЧN9U`*ĒD~_fiW;hY:/f&& ~٩i9 GM8\D"R癇RSxT 䪜"@A瓣?hm -xxqBkH}AiƏMn>W01ĒDj9 !HWnzݼuJx60rH+L9)v‘D6#Fݱ$CyF}בGt2Dxz{&}ҝspβG,xxqBH˨mL,O}d vktx;m?jJc7xMJAD#A"@ `/:4D2Q zwڛ{a_CTNx?y@IqusuMmOqCS25$~J=3 N84ף7c5JJ,o .ㅤPܒ"Y#<v)ݧ dݝ}G!G2B?<㽓"F)b0Z+_!oЇC۹F)L(.uԫB blv]x}W{`y7MۤMiڦ-_  Jky(!(dIMS9_1E6msnD99(=Tc8~Mh(?w;{#ptgUmأ J 1j%I2yɑ6uL4O1CZ$s%ވD c+Q*  C0bSl;ٽOvV[+vɅT{LQˊCrT,)E:2=5hB4sSju:|nڞPm$*r*.5їH -͇G \\,h! "N=y#+Pf&ܜp*?l % Xe ƀR Y"RD\d▬IHhV'Lmp[ZT5k\ U" ""'Ps4I̘Ѽ2p:Pnd,]-}6XSf4 ഥ=='aӬm׌D34' XKP lvﰙI XlEr0"6趍#|Z]D-#jsyir]z8dWGevX |T;z#J_j|H/#4{1 dxm tʳ#S@pPlЉM <,2uj~9BtqVKQ[Ceu]8Ux޼,sר4ns}yV`X.F+Ⴓ;Up0+Vëk*]+A9>nJiE~2r# ~3&N`)$I1NdE:)XP񁂪!쯻VJG+,IZ#M7dI٨2p݊ɜϔl'!) [y<07WԹ68ql=&/ߞc)Pg$xm쭍(z|X4:2Q33GoC:w,x3h6i+ 6s <\_pt9vso7(HI>|,tf{aSReFdr:ؓ +-H (p27RΊy ṪWGҀQAcÉ̾odVm?$| 43 =ʗ6M%o-sZH$d]ћy86O92T}#k *z\&0 O5$}R9 [~ff8'a&t+;NzP7d 6zhCa zC Y = ;Cm3bV#c>svCH%zxdx;⽉lӢܓ乜?+s+X_lK/FűBa]% C/sSaBhb`рQXF6@_߰C/hp Jaec5nѐd56('ok|\HwEWuc wrNvU+K7?"?! ?#@Q*;MeM*áNLbC̕'Nz1̣চ-^7anUR~#[ոړogIb񖸠}\ C\; r(<ͅp BeoI"ĂT$?iu=KÕ6{ }\g(ٜD@w**K(!%2JB2t47`$fV2>DߒYnP1r{쮫bGos\G /qWF4 QRG7gzq!Nǡ ;)UY{jg6NhDȡ=[U꩷B{*A^oI&{{{_:}?{N\477Ͱܲ;(ϯ0|fBSͥyS\*TQ湝5$3lf2)Ƞbq^ p!Mya 88YrrVO\¡CANwY-6&-!M[øRP욞R&+䜪#5߰Q8~Z-Mбpq;9;R{$c;%`UlXdqS-``[wG7\/%_13+Bx78% *9return nil; 76___ N+FxkƍsMȷ=?q& x;~J}EFF͗8&3Uϧ  *feGx;q2~EFF͗Y&+M^~|~m6gpo`ͻi9~x jks~S &nf3bhxpruphv%Ex[)qQ|C HAb^yAx|fFʛ3G*09oxU LWw)dVdhTLPAEѢ(0 EDQ@J-"ubMBX*ek}`K4Uj ڛəϹgn6o!xjHVx /F\l\@FWo'"wV 9E%! 9{ӕZ9c>9a,ܱg lʉ Jޚ~L2Vc+jgY-Xnc0 8WDn峚sPX܇#6/Ą6MƖ0nF#6ޅD+a95C(Q9)i!2_Um1#Vc u 9BtvvBApcWoi[QňFVv6q=W ~<&OqZ3'kKw99~8u ^IwE" =y)iF~=*2(Wsv[bbPRZ#6  iu頇2Tm +QY9Jԫd9:ե:m:W @1FX7j[A% D^(V?P[<'5NwH0ni;']3(m]t6P2x;BBY cs2.1I" q hA(,U'^)_wk?q{ͰôGSta a2w<(Ǝ<2V6yl§ śI0vA]9BY Y6w~%+A8C:l)GmrȨ ,?Lf'ҸNRͥR//8X2U#6q#ﮩ髊!b?Ǝ_8&3V4 ފq&F5}>qˉqٿ~*x]{LTWyü` 0U\ ";CiEcPݠ,&2 |v&M*5nOkq٦16kv4|wHн/sι{Z)IRYZW,4j!=7Jh ^/q1$I\BUV:7ԕD~hkk(q-\|xHl^+KF|>4ܾ}@#lPvG7؏57}}}8pg ~.Fh%A^^oߎ)A,z;[0\ (׮]þ}43~0… pAFҦûl6͛1;;SN&_ħM6/w#ϟ֮ NKg4! \j|=d+j(^tvv"ܹsx  JOSvvIp|]148=w:Gܓ(Y#lHয়CUI?D333$4=^W8Al۶ ׯ_:Vvё ܸ#hiiܜ8dBQqf*L;+Pj)؊G1OzkXۜwq455իqxN9N. L6-ή7{ȏwrcԱg}] `G+!jq84 ~3,]c!%ySV9aSOUgh~MuLJ:ZD/J"anVUjؔwcS$ ^WKX%d *!:ZęN(qܹjn߆񋨇Eߛ$EW+|$O:81ߍڪ՜u}7'<|::+haГcX,3k3lӁ_ˏaϫFXg4sgTT 燋]4؇5;$ef*X}`>}]g&^%g2jFJkl.My%F1RY ZPwg=T`..Ӻ;| (O?lKVՉŜ:/I|!n>vǛt|\b},X?lqŞ($| !aY= z$tʐg͓9&Iyrld(vU=OȳRz}˜IQ#,CZUN{`P"/G\q_;~u5 mSO:C#K|c={aLbY4|9cyvx340031QpI,.K/M,+,.aPM=nV#mi,$VFM6pIMK,))uj5>k>۱|7TeXjQ1Ȁ̜T[ I%,,$*9@7ux] e`V gx{| e13O~|n OY}q ~mx[ƼyC0# JĬ>x340031QK.+L/Je\ctM|U=KS!D+C⒴~sJ^Kws2gHO?ww]{?;^N\k SꓟaWc^X̸ab .ɥy%%y |7Mܮ/ys!k \s23r ]|woˏe'f韚 /471;5-3'ͣ=)_S6+\ٽ~92$WV'9~~ތ4BO+Ytᔣ&%{V~}>(W/wV!~Fο̍;NlCVQ\_\ZcƧG*D..aI&dsɹ O?yC%!Qyiz@*a`~7vTpy" Lb0yvDln?^й?)#51%( 8n=KRe78[y5By@QjZ1n_XfbM|Py80`i]{A׍=/{bgnbzj1ì;{'hR3/u*,[& L~fm 9Rs}?u7!V$椖-Y i|wi̼b׸t/9| ;;Pk\]|]<==|3RKRI@q"U>PSB]"g3uK|&YK7fإK-*j?}.po=ۚJr3 Gߙe3d~pgZexi~ge.r0tD gۮ<yL{B4|lTqZP(ԤVB|_Iȓ7eR;K4r?ٜ1xxR~ E:UFڋb11oP] ΂|g^ȳ4"o<<}jw5n*" `x{~!pWɷ>X@s"챒1>ŢnᩨR~`*P100644 GormInfo.plist,) Xsz3s/i;Qb Q"V`0"$~7!x=k6F1FfCɎ,ړ$LM lT$Ĕ̼tb=..-̒҂"ļĜTrZ̊bĢbϙ +ZxrGfkvk=F fbf fnz? +(x_|?9s[0anòu 4xq& yYL|{wOpc x340031QHI,IKI,.N-f]7xoib _5DRϰ'`還&䙕sTQ~RVjrI^z~Q.7J^qL"Z9s+)+x;9s!μrs7}4a BxeYwxEf斄p)B ! " M""@®o]])gUV{G( 6$.vkѵ=y93ܸi:Zٹ`vY=/s VکTN9sVmpljv>W]CVJoEso%UuV1/fotCײ}]sNw# `=lA% K@.^Ӝk TAvWtV~]` jDo -(!u+XiaǰfNW:vSw!a^v*Vɝ7} 1p,Āظ`XH:o kf`2:60\twz'y'RcKeK'mSޖ߬}Q}Azn;yfӞesz&^.@AwZȫz]ycj8q\>Wxzʕwǫ|0y -̼FŅet̼40B0z97iGazE6PyQDKCs1>]PTy{~ YYTuDךJ0!R\Mҏ}c78м285QYI薖k~}lqq_%%]WRW5߸K5y/KvwG44@CGv# , =RK`fuqr7%rmtYo|FydpipW|0u^mQpז>uQK'NF]"t ) بK/st.5B'p̿ +d~G 7BFx9?k9x1w/BgWɗ%=W3]꘨6 ;XT+e_)LT[dXMk&_k9]`9댺,hWUQ7/F,Mb騽[nN&jgucX~q&4X'tzGq.71t#8[DDkr76'I"3nI $QQw:I gwH$fu$t8T Zqı7G'z?JY򀨳!:o:Dlu$!c4@)kPýHvQEF=h !kж2\bs"\y$Q <(JvgzVR9Z*-y xQt@| ,CWRK*"'*;2Ur߶](sδ45̐F{)yCrE[2;ASKۢNQ(Eo{y_$fh\Hz"N#!>kNڃt8[84!+7#7&MK M+oƲ*>(]=RDJ#p!9.s_ F\<97d,uN;[Ff`@qӏN!l g٩8_:SÎG'[Y6 SfZj ~ap[aхKv Y~5ڒܸG(@Iu 4+*`sH{ݾA piPMuU Js(PXu)2Ȅ(2m:,:+t[ݟڍ(4J +  ;UQ=BZ1"L_Ѓ#6zsAi'LzQILHC=JuzQB1cF\Ȩr$_?NvlpӆW,tSMqғG -7 A2Рq.MUk&0/ο:~t]-:7}EMҧK4?7}Ƹ@Y"E.Q3뵨NkM\9\4C>E},)rlVl2ܝM{:|p:߅MƋl2nd\q.vx1p78}Mƿ8|/,x nB_<}md| H6/c xm6t'0L|$WbdfbU̪/K |y^"6?;3^5 LSC9 f ˯PE5‹k|yWe[_HfBkJU-BiS¡ )ա|Hb)=B х20iP ljE [[|W+~ J"ZAxJa!SBU эzOU;6*TFtմ^=r%m|06Mz+z~.6^~?Z;eyZZQXZ1X>=j%jLC)B]gA6jNÂM ْt^%r&]~[2svG;x340031QHI,IKI,.N-fZOX_QK?' e3l X aŽ '/yfU\R_01yk[>[*9}<.$.x340031QHI,IKI,.N-fΩ2Ww˘@% 1͆H2dY-xZrCPnL[n<*OJM.)K/eX8wt!?Y}ЉZ+RxZ |EݼsyIJGҖ򘽦.4ׅ+ Xw$AAPPϪԊe*"ZPPY:;R dz'tjGU;Pb4&+i5%աa#j>I'pT2P`@6BFTy$ DJj@֤:qh Cg+V,j5 rʅ&-–E\#5E"lA`RYDH5NT7Bo CFwrug 5VZP#QQ&{f6DWf~%;JcZAr lgl:ΈMxc  "9L9 ”ȃLK+B8$uhlzAa]RM%xDxʵh ^iM|C; ūZյ! )U*^v؅$'v]EXڙˌV' c-ufKX X8N/5(H6xB1iv6}G|$yio{ޅzUEWW:DzL|*k -QΩjNMռv*O_@u#aDO*:}9;v M% d$XoB^M+j'$-@̼s0IS%ǒυyT||l`IjQo-%kУ~=J8iSlZToǛٜMML7Yr1!~'SN=_[-<M$ 4Qdi״y3 |m6Xpr6g# l(%)m.3Ws,idWT6I( mUDoۤŐe$O9gG(flssy\&9Vq^2QuBjCyѭIo<ۏKkч^'EwN8j}@YcTef"]pug;Lnqq^wRspǁ6(b2'%lnL{7.آ٘ Q(`vL0o/K KJ.lϔd;C6Dogs.0\ FrRP`cp2'Ft0PG3jy0,~xf㏸\ZX X]႐~W.B.ںb7.aۿ1vnWinj3R\ _xwXszWlneNOTFW.T'mW=T>ee|ڝb/ȗ)ggsm#ޅot~ $G؜NZᡊb=e-,+S'WzhrLMLSEL|ݑ3iVjl_[ˣk([=1E+[*[e_̯eD~^VzT.Ӯlׇ' 86;ݔwԓ~Ig?oY&,-/3*m>~䐶l/~Y6ih} >{6m.th02wmRrߴXgWBJ~x_+~Zkk ;ګVˑ˂p'C8GI$X4<)ʂ-J*fTuJ$,X^Po>,TWj5PazZ@QGTT%4P%PіBa!4-fi9^Ow_@vf-rm+x6}B5P9 f: 8 NB Bq!nb.!.b!1WO+ZDXO/MǀaU@- 4|X!# +X&tTR뒹||_FH8򨴕,fVX' +VjqUL$i/:fݬ( ,F YXE{pPr>lxvHmC)'%g=;,xi#FT&1L??ӌ O2?똤 t42S422K6̩0Hh;"@E&Ԋ8192v@OF] B)D[Ejf[6F&nR*y&HoRAZl2{Ҳ@)3Hw r'@c lVeɑpQLdx$&0cF} ߆ \ 'kw3|d $e6 iR`Y Ɠۃ0rrB{e 5V`n\d}Ȧ(ƛs_L7scd 7hM tdeG`NNu 7Ω <(Y$8O:{b0G1LH{~f3YA!,Bf*An/Mb )\P/t3"CeL(k +UȵQo|%a.9A0I(G?۔qHô @MPF8y䎮↪2#@.y̥ez4-H[R%S !Բe#!\9nAD|<H@xCwz<>Z fHmKxaԭyr׊:̔RT+ǒ1vvYNbB#:7-}AR+*J80>d,V ZH;"!t5]כ~W SUbD.F7;}\w^f2b[T7#8:JCeRM=I}=UHL:{, cKLL^LEem[61&3 C`, tNQAE *N#5 wD?&GCiTk\9^tk$wƢëvSW` ư\ Ҽ4'}ۏ#i؏۾5hO4tcrP7<̓Rnl.{_T;jzu xkgΔ7[E]"DOf3ƫS՟`8 <FHmd_ȫqr$8 16a}JYE+ڒuu;cFErTDdc]gSaMÜB޿f oЛK(i9%Eh"D e_9;~G2ж |ubpvCnXQ9CuR``F[uv]AHةᵯυiN=0f#c1IXgdK5x֟\ˊ 14hphzxYo-DŽJDDф"iӮ yg&frͲFr9!!,"3Fmr2_0/x!f՗<-lS[X E]8"~V{/jq.E{on3tWvw>I{z\der~,Z` ϧs2mm*0k0Azϟa}N,u=XWxZ,myVjBT{{4cL ^iWskUJ I.N_x}G{:8ş!H֬ txkW:!ss g|L;lsxk>c!W7!nЉjx;+ ofZq>jlnx[cv oXH(< xt qlE>)yYl۳_ ,xxu U'MjfRΤwRϸAx{cSNF8yy2SRKl6kK;p kcx.6Cl,;sWx8+vfs^Ғ"ҼXk.Nɟ5MԒeQU0޼YS{qf}/F=JxE93drx6(øYO8#Oj0 u,c̼Ԣb謇ܕΊk``A'DKbI"C-۫~^qK/140031Qp MNMIeX۴gO uWt WSxTޓ BQ>hmخq-x0 ef՝CФ^PxD,xxQ |SJ620{3^&wU9Z\A'*nNx p9p*[x340031QHI,IKI,.N-fPذ|YI]f^Z>Ö [ܛpgVniPEIY%zE =fh&F3nYf,lOxNmC,,!Jx340031QHI,IKI,.N-f~a͙/Z%0 Z.7DRϰ'`還&䙕sTQ~RVjrI^z~Q.Ïn}k՗9WP;I-/Gx340031QHI,IKI,.N-fzzDD?1`f.3/-֌'Flam*OJM.)K/exxmFh?j+: hDFVB˒9Hu# _BAn|V&dSN_]]]yj"~tp>UZs wWGl3MXeŻ-č5E*h8*fs? V/Ц5A@PNmtRm_vZbDD*Z)FGPS qsâԤ >#8ԏ,s {*8V',JO]v1d$(Y!= A'O 8'^<[/%%X%gJ&UYAJqW{tue s7LOΞܷE3dT͵!id'UT`2d0Ô~L3|L) QNIV&3d>,Cxk*cX&g>*اFpRl Qj u>\"_S鴴Q[eGW+b|ɰ"fg+㊘ӓ1qnƊ8s~? C`y` Ta|wQ'ނ^ kI[0R:X &ݙwCwxHK2@Ӕ!>?lMz4Ha)if(`bL c/TG)2&v|{EK`bѸECrx¯^@cp&W_@$AEqjbvtzU z]+iP_c-zy[Zޯ\y7TʦVM9;Etg9^@nN;3@IT}NENweݐ7yļ< y8#ky޿yzXc=imRx)yp%6jꉸY2B$#N{!}|ȃ;J _<rKvzRs9('/eyHv 'rsAP+ pcI9]}e\k#%| rJ=URKgNB}Ê+q[rJoStaW w,3юW%A`}_\lE$y%\?rk(vmrg19z4ПrQ C֢^.nˆ`?}rN帊;=P+)B܉.P;i"uVi)=2Qypr }r_.NgEE Z889!+[)OaLU!fD?%22\@"3RY@qa@*_њ HY+#Ոt|ܠ$ǿ1iNN,##ool 7VB;Fq4⎑1=)mP<yFO[F<9^5k=tg. ؓRIћܓR)x\=/Id`JamU~вTdJXw a< Z  g LF6Ul#vՍ-<v.uS9491/( g2/"EZZs(fb9,Y vXfB.,rxw,RW7YI,5{ÏϿ馛HhdD7)o"#Y"ZW1K?\/27HY._3ڗO<^],amGcWaɰp| Uxpn TUYԿ d X>0 FM}TTگ&և13>>FxRd:1Zo4^cǸ|.3؛H(ߘ90f#Sƿ zzpN+iˣǚ)ƳD@?!{tdd|Il7f&HLTxj\H\.b3~cψ ƸDNu2ad|ȣ&F60ҙO`9\ols.#Ws^FaGbˡ4HFr6=8ˌ\-vt*Fc0Fɹjlϧ s#;PQN9ji\c}dd1v5ٝӣ@o1GWtD4H׊kJ~{Fc't3K|\5xq #P'ğމt]4{LN&t)w zқiW 3HY/ H_"!H낾I=K9^Ú^e{hoF>< 0o5b.9IȎέ_2GvoYCl%*/ F}y2zgfmmNT,xq/#1.a.#_ONznglV Xob}+طQ8v}uH})?RRH%Z.F{qF/M;9(~i잗j!s dGZÅ֝؊qcl t)vr h [8кdtr`&f-tC8nw՟q黂P$ᅡX\#I&hDx}0(-1q`|>d 20R#H]/Ґ:zEjCǑjB-H=TRO"u=ROc9gGgcU0iw WH' k,W!sHm65fyy(7݌VgPa F^5]ߡta.K9= d[ GlZ2']˲f>+(skȟn&Я!݁#^G*_Ro A(R!&R+Rۑz vJT'Ro#Պ?ځ?ڈ;H]Կ#B]D?H]M١OMx2`pKA5]Y.Wr<˹ x340031QHI,IKI,.N-f8l3L::e e3ܚĨ1ߘ--"q]PEIY%zE a/(pZ.>c֬-xZ xW{C^$ K-Xi-g«"y5)6+߰nܝ@TlUQt[_S(Q]hܻ3!6|wΝss9tynʠ v*Mʚ@3& l(Tu-KqI'M.\f3&%>:Qr'Ap9oE}zC(wtePR/鶓+1%'J"PiP"W U&]7#lP?9YreDhd]Cnќz)N,Ql SpJ[GO_EO)5ӑ +uR8jIېF#5BG3l W6u_fs栕|P fɵ|v%L8:jk !MgaT%2}`zsWj:rG1H@47R۶A좡;64-$aZtK2.E'xkP NJPGh Ym9Uj(>sp%S."3̢pCϱznyW|JcDk %&^]tQɟ"]. ]nӤRy-eR;KMR ŀ%\\lm[2 Ves)GQJN֚(A7(\ީT"vcN4̲a?/p=\X;3;ñPo 3rpSW[jY/䜒i .\UO~[Z13sՕ\j9=-͙ؔ*|"E&"5YP JLW~.4B*+J+Hr# 2l,`ѠħlAhN%HlG(D{-;!UЬI;`'Iza6g25ݩ%WONS^(bEQQiB۽%\i2KpffYk 5>tqYC_C_A~gygd,rj,;*qH|P ј~ɨ"yh6yk PIFx!|L^ 6_w؛i^V[ۘ8dEwwˆUF=Qb  7&?&'pwֱW7=7|2mL}K[c i4KHdøjh``fbpus{)w6gL 2sSР,ǟkU He&14;K|+zw7 xkeleP(bT{{uXq- oxùs@ɞ,)x!͑@֦KSRw~f'MܑI 1x4i'E/GuurzÓike1lbx{wgw+BxE'100644 GNUmakefilea.r^שx(fJ'D xXnńc^ӫUx"enn˕xx?%nM2#}kGx;ĵkCNPxkerPjV`k!x[c#ɬ,{ x{=`;͗bԸ8&l%ȓZ`c9&3H֞;s2#d]y'G++AfFtZBfqPjziNb[fNj&'g5Oc<#&H%HDOV1jA*xQey%&O g8ي"\:y@¯y٩6Dxp%`}ɏY7gvfS483=/5E!3dscK4xp<`QHFfBrNbqP\)d*'8l2ْU>3$(-1(<3/%<$5 '$UA#( U(LT(N-qJ,N(tYa5WYs9(pq9dHYXl_ RPOBU` lt˜7  m|+ex340031QpI,.K/M,+,.a`]{bݛ(cg\.i9%P+B)El5iaQ3{u%a3G. >fSxxG(!rwQ9[Lfx3k߯a! O$=ISWPְh灳N~ݞqrܤɎ̥"巸:)ǚj%'bVex7~ Kty>]1h<3Uν JPqIH 1Fx8~6*Hm/=^,.yn2DޓrQ9͵Fx{}7&KmZמ>nw7I(gl ,xR~%*=0jg 1ҭm^CYvq3V]2hJA E,yQ(AB'`x9~q}.g*1m "8BO&7֠aGx8~ho3! ffAT9p}4< v1y-AEFx!kez!ƳD/xZ~!I3|cg6q?ey6tࢌ7n>p40000 Plugins8{,ܠN<h>0Aˡ+hxR~]ڧrw̱1=6~٫p[0id847c`JZv>[Meē_"%`x8~J̋6]\.y"qzU ԿDa}y #Fx9~m_D/d&zW12|/_3/dx?p/#Gxj~}~_XgTi<WOѭO1 _IlX戩ȱ-U2_x|v5# >TSMJJB(L3\^/A -xx8~-cd;ty74J-F17]ճ>,AFxk~ OHJru>=ծ걒[r نP2k ;QtVXţ}fp7/ =át<"S3yx9~XgoyKVtz1?mGp,䰕jGx9~%~BŖyy;1[ZuIÁw=Wc:ѳ_Gx XCj_U'kغ&EU.x8~؊ 57Nvٱy>+Cդ@E=FxR~`jf=B91EBtrC/@ӳxV~_#《HjzsA&V`x8~vH3<]钽V<5;<`2R]FxP~ f3^N)/auh<pL2AgE)SK?yз)FX:U")*Y$9^xz~)-[Pùr٧t<m4 HI>VHۙ1`Pq[Yj100644 GormInfo.plistM){Nbk%nH;b 5xQ~R jҝ6y*=&Dl(LϩoTU]S"c'=A LpeX$`xQ~9/aO:p&ogaJWx 1IA듌a꫍cfu`0׬Id3d!'_xQ~cli` 1TծM䱒}4t"6-i]p#M)Y u~yW^bQ'_xP~^8yo"k<#/tafI,p<`{E ptDDsCⷘx""^x|~b6ABWT%c6]dGcdfq7 ob>n}O]ИPaV>^G=C &T,JߠU=podA;NxR~RSپzk,ad01nƶ6+`fYw"Hu4fnQH[p\A@p[$ axS~nj®".Y+<::*BLk>+W4t!6100644 GormInfo.plistU9BX3k7g} STu gi]`G7z^d'K1tLj"/6N&=xMMo18Bl $= AAHpYf V9On?wy5hP3X!=dbx{y'[:V=̄1WQ;u1xɲ+%w. hE^ UP"O"H8֧;p`#c!8GXm -ZC)*gE蠵(}[kmT\=8wk{''EϨP?nPwo+:(eMJJJŏ%gvn$QJKJi߸ysMH7hMOJ76jҗBϚkhtR1NA7ic{R8n&|"j22o}(+][Vn@Ӎuv587Bza}^ K%wqF;YpltWP֣3d}FG'I#=iQIH K$ٰ*e=Ip*cyDѣ g%XZ4HLɗ'" nII7PTKCϐ,I[ax(i+n7gqn͝[6:$#oŭٹlpsxv4޼޼ }S;otvaĤ]H2@|91.$ ?B=vލ{I|d}0)'1$~6䔈o݉H#i?S! ߁9#/eEs}Ez/i #9*Al;P;MD:'R%l4\ g1g. (9EP*ϣ1?/C8[!^H\'"8sy I=x훾z =/@R㼊SW$N$Yא|^73a‹yx#DϠxL@bp.B/`ۘw KRwcůH+$ \?VtAwܦ} u~]={(*(V }MIT;jmyCx2 Hμ-뺝csKJ9eʋO&RL_=X9?zqR!Zs;4`Pg% YS}R$BSak%Qce%,`TUX+ (o* S~UTӇH#GH'85G#]lm ]cZ g1LFѯ)bf1JH-^%=J}%EǨ*1n//L ׵J3#H{P~LBFCEzq8_j %|[I%9Jq)ަD9JT07+|m*+sאuO6.vgTb#^@Qb"A]D!SZ#1˕f1+!ze}%s%a8]Av·r%^ hmZfn%01 S O)#zBku{CQ]; G<+A#3:;᪱6.fX )|yh )L :lazs3!d OG lbsbzW9(|쭤R/Tb<_IE0~Dq'|xx8jWb1~ KղC!%qiJ,gvd$(~[l H)٫Xm(ml<3#qek #Li_ˌUuwT/|XۚzV7(kLPbT +l8%wn\7nh[+|&0?;jޤčFnct9Nf++Ye~V,۸ q*kfp[w)| 0%1;X]w8D| %zq֛$VIbJ%pxc Gc8QM ;z; a޼. ेt7rF^%4rD߯CF*c9@ca '^%pb >b`ja/ Q(R,qƂݮ-zA>Li׶0p(u4z1$`Կm(~VΔ% QP±@3?F)UX?F~\hCQ=Ao'׏+qؖ҅p*p!h[1Vtd̀>pf8pXF2zs:~yAJ /D_a8Di~8P(q0yx /Ƨ!8a~K`,OY'J5MÄ1̟seFbg+ѽK&ƩlKl*DYhz8p+.hP)c!~(y%e8F)я Jmޞjm [ $WD8TӢ^%΃= CEW!<\`?J&0pcTEe8F߸ Shp7 Jb<|bSP >s_Rbw^z i<[/ N1jlk!CSEFFXRD gQ%c9gF GXYk1J̠''3#Nɟ 1:d=iZl`CH0NX;> ۺK&C>$%yc S+zș=IYl<הl6pHcf3ƻIؗL[oO\,ګUFTCMG3p y5E@AF.08yPlcTs"V m/"J.e1JΫmc']1۶+<Ee+?3ȕv*\ޣ Ah VīD+n%sNgLZXߥ wBG ~ ۲ 7/YdiMZLk|܏Oɵ=Sݗ}J.?%+OM_& d~w/!?O-)uJNI/ҧ S7HCS<}h42vЈ,J?8%i \:>uzp~]x%//p,S<&'5y5xU//$@WvN'Dz,lhZf$zG [8zl LH` &j'94oX%f;cxJ//D)WXaN5ߪnFjדlV3#@## Hy͒̌C` //2ыR4^8EH꧳I_D[ۧEٓz%"Mx://[4  TTwC-^c k1wwtc_aHx>//:_ =A($D޹t"*;kYMNg"%E.i?~rֻOg QmݧԵZC+% a8y&6d?MN~j/~fɕ̫EO%=Ēa &Mc%uQz:kWY|b37O*6UO$h#k_Zl;a4E~ro]2aM emM9׹[ vRz]rܿ:.$q9'Wsj8/(Vnkqy4[="K2n?F`e^<Ҍ"9˭RgռDf=,)gJʞwNbS,'wIo.,5s_c/uJ,EB~mzX2\vv;][8D=(7<3/%5%$H/ϝcتŦ[K \oS8]^~N[75To~$ ?x9//R+98u9LN㴉՜) qvGSg8d%Hx?_ e|݉Zkv\9,rX<9${1x!//%>y(~Hr(n9f/x?_CHWO,_+7Hms+ 6-xr//PZg? ]D yAꓐzH'MO5HA)} )"X~@ N| =;} u Z\'ӳ-n xg//$ Ν5B6 S醰lV1!50#z S|`h,Ehnc>(Q;̄6cPzR'ʔt3ix=mYsIeSsaB3lcBR'x?_+H!Yv? UMsS'N\§ I 2xX//5' x'&PդA<쳻o1J ճ8eW" wT" m+hEKz%߈(fx//S|qTt_ZKN2gH6 q! A! |iC|lVn\"LHq:j94L$Q?$=+ /8 $/ȫ"z8[  9=>v~c䩋"!100644 GormPrivate.mh-{a.BR?z/l@60ؓȢLas \b}3֓ { N$3xC..$#Y $2}@lV< v ;$ԛJ { aQx!.. q5@gsH8~;%ҳ ++/x?..L m!%c|5b/N4~M A 0hQ pNlC8  =Mx%.."vUe)Օ7/: \GW3x?..$FMnƅnq 0<{&lVʊj7)7Q06/|9 L JMx>..!ӈ**' ѡ}\0DuTailV̋@Lx%..P5k z)*}vz=\JDx[>K}C!@f^B5Cxqj &_0S,fO!*xy[ Ng'8k&c 8xk+Cj^ 2LRmPx5_s,VԼ."mx{cSNF8yy2SRKl6kK;p5 x[?C7sf^N z6QfO`~%Ey `*<$"`ࠔR[陒WZAQ "n[x?0cfz'.x?qD ܲ| “/Ll <dЏx[qV y6;y)\ Sxkt ӆ粓LVܣX z xxq"v̼Lk. cɁQ6qz@P~sQq Σ@nz =fGn1 ax340031QHI,IKI,.N-f~a͙/Z%0 Z.7DRPZÓ~]eMwb\ބH\g[A{Xn9z/xqsyDq_fF&=kLx}TYtSU}&i3I); Ю[( P[ږ6H44 EP@G -e=(G?\<&4~s3ulٝ%$T{{9G8q N8D CR~=WG4sqv m6rI?uq)?L 8Ia8i!$L3xk`k{D.s|fѹr)O<4,A zvc:_6*UEBX*4n oM66N(9.N] AUah"R[EAhYɣPX[EkWfiU}gjikKFHH,-l׮$Z$CpӬ<𽹆=sr&a6L%S0cƜk8d]%Z)8>?O!ZCd({Bhؼhh2`Q'ԕjuMVvoD%S8,GS,leG:*Wcz*>S-mx݈9]Igf+C*SWOԹq&h\A]'8=༫گFY~<}VdnO ME)h *2vbcn$E\&=jv1j1 )UEbVvsb_&=?̫Ok녻(;ucFy &]CV6eH8Da]$ 0PX+a %,'{++$V4}}50~T*H}DQ#U@k9IR)?j;E1JDGNLPqfE˯!Hxu:QI0|bU]܈9&:D!Mo`ooCW;F(D(#CP4t(ȾiB=UcSPM}P:@OJa)= 4a=ӪTX$`B@Ϩy<#p"p8UP Jz-d9>$spw[h5"vj6K/w˰I(NzR/;A%iQ/ғsiz +#81D{c㈣#^F(⇈'?B<1IO`Gs *]yH?GrH.2+|*#7A'G0<,A<~8#wjeL$pxp:`dKVI̼ҔT%̼܂Ē~lt'xuN@SM %A1!p0&Y[0>CŇ;ލŊ|_-Å珻'0=q%{ZN~hg OFRaS!wnV0[Ȇ Bm!ҵOgҩ fuu7v#mcJ-Ӽ҇~B>VM:ikIl)up3ksZ| SnetpE`[%.xGti5oHJE%<W-K8xdKnj)e$(IϓB BTCDAOB/q_7|ndx}{~fFwŘ-o~x¼y2M.e4nx9~cUř#. -~-i1fg[V[=8)yݺHx8~ڰq7%ѨrTy|L؁ʟA8͚NFxR~ؔ)0, Րb0鴢ֱ1ycʚڗvm2 4Z}W: yG"gA2#`xR~8JB'{X쿶,1oBrV[bzPSgK 3KhNH~XRB%`xt~)l,5}=]p39UT1%7,bw9)c(M8e46=;!!C}+c40000 Plugins)*?/)tA-&x9~ #\Fa;u1tF ]rBW0Hx9~?% >t`NӿBj[VhXP:& :WvUȰGx9~ ')31 qlDT1>p$Gy҉;_vGx9~8&Oo/ =ڧGڱ1QׁLH:ܳ/Gx8~Ie1X#,l2:9ji?6$|&_.Ʒ2=AsAFxR~y71nh5-^q04'14Lm)?;S4l͂V%G`xQ~2%ĝΊDNtI}AZSTRg ލ락;#P~Ye{k59Mw 4%\_xR~V}:z܌OOݱ1(! ~%H3;j54η:K!V=1ʈQ"`x!A"TeFuՊӦ  /xU6vȢᬡ^_cJ4N;t4P)w󗡽LɠWu%Lax~ "}ֺ*{ [ɡLZ-xR~MA4ϋb615%+|v8(_Eࠉ-4 N'蕘t $`x9~T=%z,#j15#ŀ8 vGh*{z100644 GormInfo.plist•SBjWeV&e~yFz)>N9x(wXpV"rbdbxR~& 7Wdj(-x1Ўǔgkik6s.4ҾI` CxmY.ĂjO &sax9~96h4o1Sq`1dDg7ZQæ_qͳ{Gxj~Ɗ0@Z> 7ByD1Ҭ tD&ц$g;Jԅ!L( =RSxս~rBuẁ.xxh~4(vH 'X+ŀ_}C{s 9UBX+'q40000 GormObjCHeaderParser>2P:eBήf CR`(vxt~Չ; y ( ر1+Ь}Vdk3q46A6/,$,L40000 Plugins@pFBNۘ^vA?5kx9~<] &p}Iⱒ1Fw+r\C~. Hxk~Wu˄aɱ(ku){aǡ|BQ]7>T,$QIzF7/j ]Rj$100644 GormInfo.plistT2 |BỠKǚ-m\&@ T}f"A>"xR~Qc|;}o֜bS1-U! {Yf/qϳ4욐NVT``neX(WrxEбJA`D)b$"J0 Iafwn岻%VQ|;bvf<~;z﷒a1J5 'ܓbyVyY%KA3cJəZ!u'iܫAY#/M3t'4cH= Hp@eD@Uy")Hd)L4+BSY^>Xѿm’`6dmC$dh;~gK&jV5!, +jwZ?Xm2xk~9Al:#:Z\\ Z N E)yzP!t̊b"ļĜTbĤ̜̒Jļ%LBLmFx:RQq#F fbf fbǍ؎+x;Rkd.]L@ Ybb  @սOxkfnf(·}ƭ?tk3>}[9iFuE x340031QHI,IKI,.N-fe)駨o:Mb]"KgqaJ0)λ6|mx b\[b/5mQgyhgu30\xqsDq_fF&މ;: x \Eǻ I@!$n02L*ؙ4dAEQEQD7D EQԭԭmJ~o$[ؚ+O,RY#(DhBb( Mhk_\?%phJ[Rvs1mΝ _9dd7>42-|8eL6F./{xoBhZ5Mbvʥ$$&xB,1!5ŷ$;a&!PC7c|HxSBӇʯR6*|(-[mmjdBLoU-پ2 MCQvxSԢ)i5}p|0Q`k,{?tgDg~… ~p0y *CWZny@&fZ:Mꢿ/ԹOlUx-O'!7"k}H> UR观-Gm\؇Pa=T:Vy-#V~r5d;#ɻPGV6 WOKcF9*gT3U]~g{)[9T ǫckIVѽ&TM0I6wbdeCp@pt=ĖBb_\G]F) VG.nbUWak`Uj)KXO4=*fϼf>CEn5KANh*D<:J:!dح>K>R[}VB7 tɄ(})ї!һQk& $Fĕn_Y%bFTBoEXmӏK#De~l4݅jwf5_Gh+Q(-_z(6zFg+f}K 3)plTg!lŸc S)re!#},M|[(KwTQzfwU*eKyt 6BFY[ sa-.u(af[W|%1O0DzG]K姥.K;s%RlQ&;4};-!\%e3u]nj,v<7ͅ.Q}WpYz (ǦWM?zK(B"ΰA䎒ҳ/"KH[nje;eXUj8@^Jumm.'nlGѰ#Tev戹K]9JUDhiZX6Y(W#AO]CO.SEu)YM<ʝ)[r}OGs\We#g.;Us@iQzrs[.پ>O}@y#5lgړ_ڥO p%^-˗gƐ抃V6rp밷a\D庩zYҨ Q&8lÓm.Q6uvFV(bof\'M:|ݍ+k_}%ou\FuBwfÑnjwo5vtqo h|sgVfm}/03te.s}߭G W?ޫ$Cn7ufI' &Cj^m>&Fi˜vwV?ep9aWW(@!ZǣU'bK)Zc\xv\ -t' T9a MC1UۂJBOckZ N`)"ˊTYl,N,C,vlS]u;,o; ;ԟs/Px^y^".b!G˖_G顉Y5oR_)Afw;L^V;Wt;G_!GY(;rXpzjUo[C!@poakE$-B.xMp.-X-–1ʘkv*ôPbLH[ySCUZr%[;hӰo`,הӢxܘ[QbsZL-&1x9D2SD"xI"<4 ^b:Hk1AWFSڶiy*xVd'$|W9;Ad{!؟EQp-"=S$pqdsZ!"LPN fjqS71|D8<}\7kqAx-Z9!19D - "a"s H!Cd0H#L_4` iA 0;SD1,a9N"i "\9E*I9E,_,ЀLLR"Vn ØE qneJrAp_P$Zg#G ∰sZFy;vY־xI yI|h KQNK .K4xXo2^Rws^X%F,6ӗh$/bw|1 s^KӢp(BxĂ;0wh 1O? >-d!L Il)SW0Hc~`7Q@m$0Cx?90CD{%b~ j7WE-G}KNǘ0Z\b_39azCm'DCSl A$0d=!̶`5 s1^Ἐ߳^L%aY΋\sfƋd1=(XxZByK2|xK+ QýBAbت; IbDzıYWE $$+,$Ub6B2p^ f+ߜt)6UKzo00cXc!N-T)8?ޔaNK9SNXNbo9Zg!rI2D)ILͦ%Mdsxii,$NR2:4v h&grvY,$IJ2:4l`%#ixɹ,$MJr9 +ɝHcKr9Ԓy46$s#s#<(n&(hXG!QFXI=pv2؋Gzhw ،G8z(s`Ec! ?`VB/ y I1; /q,$2؞ 9$s`c@*NU}*0:Wج1%hY>Q{xIˆ{ r\.[w pJGr9]\Ÿ nrԞk]r9<K MV) X kV%wJdsD,QtfBp8JdsD=3V%s#a%X +Q˼5\ɜzXÕh%w24sS8S*뽙_uW8ɠ8s©SSȨscH9)AZ)8E dCtp bBLGV)R`)R_-4;IK <s~cg:tsUE8hþp=Fi72˛7 CGGA:kGwN#%fwNY|سw^Dd־v{M^s a/KZ }1쓬} %Ka_[[rk}u0 }G`Fd_ ,$*X7Yc־v|tI'`%.Z'aId v?]}-b|CdOKڟ-9az%7.Xao7ۼ}o`oawYK־b{_l^a[`G[aFdjkX{vornfTZ<٧~viYg,H˯ ΠrzdYGsdk~q Mj^-#7rPTލ=\Nb#]$F呸X}^xn5c[s`6#AJ~'Ϛgeyv{.9F}eGw7h7j!{RG $“[WVm (l+6]&}BQLA4Y=%h>Н \7Տ2T¶Ѡ˛j fB/a iݴ,վnB /a/O@\d꫼upxpM.K|g؉!Vr88Gkp69{b=RJc^`ALAԨY{WW~ȊBNR^}ОdϹٟjQUuKIzuFUgq|/B(R_ilDʿBy)F.ApN YƮ> n{tBl䯸/8{:Zk伾iZE9>Po؏5o>dϺPבrI'rIayi֘4 irXw#iXo?C:\0AnjXPzt%H%r)'!Bc,̨>IIB[@ Bj[qmE5Z- w W:rJCYk FtkV܄IA6[ST=A 2Hg, $?D+}ho9|Rqdz a%_%_yjF>OA):܄,ڷD2hF bR\=_Z+WqFj2nuLIw*iVYu}gIeb*xl1#1>I)V#VB#Vk؟ǧPB/pc+x340031QHI,IKI,.N-fΩ2Ww˘@% 1͆H23^O9HB'e&2ةDοkc˘GC,mx[ `U~3IJmiB/6-I4!!@%[ZB;ٝ4&( Z"hE`<)9v7i9ϤdJD`(4AlnnYZ "$E@G,RCQ-vh?PV\ۿa$5FPko+~4t)Eۿ9 6jxXMiGGɤLh+O%B협Ո> 0%}jT +%`#R|̣ d< B@d0P]Jr!֔8,w5aymUP)EM!mE#6~Mƿ,aMjiXDBI`@/C%YJ%6إV%c3Ƨ$ccJQRؘM,_G_bAss2Ҽ#6632xR:(uRf#׈ύIbQR'ba+<-\B&XS3ȧͮi9Քg+ڢiʸ9Zt'EXUgmTHIJvN`QG-HBҰRy#2pJfLN֊j(H*<AVSx"K*@iffP^sPRðiUt70+艨IA #4q)#%(Tsb(t@EPJ#ʰ2fhID(xe)S*dP*Ɖ^Zߩ,s68jQ'CZtj߽>3~9mPpߩT"ɠ\zzVlwkJ\:xs+ƗӲiE]ޖC+y90]ҮW˖:k.,\޳O_ҕ_g^=g[9+i{~Ԑi%l1"4Rbt1 qċL 2ZF_= 7рG,!? "hGIuVC3R$!e1R B?ᒬE"J"Q:2$\6Y.!jw YŲO kMAZI[A(JPP " WNA^ [&SVą\ dqzwĦቜ3ctfgDUzm#(>PDFd&Q̺I`d߃KL'495w5lgF\Ks ӹd:c.,{ -d[;`~f;fAevi+|% ʷHUnj,mTjO5zՈdglD'|sC#z50=R9cO)4S"zJB,K9fxl^436[TS𶼃ݿpg)Eo]N{ӣ=eL%A-EZR6xNh=| kb,980ϞlC=rHqMvOɭr'VZq YMГRJ[x ^D3走ר8XנJ(uȚrllv볜|FC̆>aBtJ ۵r g= v6A[,v/9bx7](\{$PJM!#6i¶nU 3R$5.Nh6T8lp(δ&2wYyP\tLq*hqͨ8va&z_~.h)fSE{8C50΁ƚ|q/Œ||^3oP; >a9ݚ*EUOZ<6yr)H?jۏΧ^xᆟv.,JMPu+Lwf]gOpeM~]f_,M("XSOAlvyP}ޅLC\ڌY~l?,a|Pb{'_r5EfߗdP7eösyQ8oX;}XKeq&- f vh/[bWx0}h[HnN pfW-?`8fMffyBZzZ_XF=̪7:霦5Y!c~ߴ 'DP's+Zfv6p?l4㈰~+|TL q!<GVۗY=KxX߯?Hky2<*:}r`،:͚u4^X֞:;_#/>.DW YI{^rB_:[*rV;z}c HjDW AKau/8w7{\|ZkX?νQXlǖHtZigi:L~~GsaV6Cdc86`>(,&6tQc(l2#DOOyI )K,>i!I "c nvxôiw+h/J&w/Ћwx;w76/fqgd4lr- BHx <7׿R„KdO*PE;0x!  X°jˁ 0 U˳ S/x;wCHxmn 3j'}{$9ɐj -x! 2j$_0hz0x;zJuC(Gi^qfz^jx\]XXx#4oCf>^&6Լ..=jogxof&9o:x=HBa9xe*EZҏ M-9IDx*!r r{[ڭQŏ(Sy1_ФqbZӢrEXꜲrΫ]MB%y(jEu'ԁcufL:EBwL&x340031QHI,IKI,.N-fp'sᏵ"r:ȟZI]f^Z>Ciپ[OwsUHܶ7ߡRKr ]prϙ.}iQ"<32xk3ّWt+EɁ%,rJ|(' zPKMgE7=&ͩ)xە͔$$gSF<x340031QHI,IKI,.N-fXȣ̟^ܳkm<`.3/-a:ㅈO_[Νt(TQ~RVjrI^z~Q.=W\Xh#Ϭ,xZk|WMcC G-*4WIel>[7lv jkj"V%RzjT[X߭~'9ܝٙ Ap1{>νN:C; =zD速7lhY1C=fi>3'F$S]=뽆BP5R6dDzbzXZRm+T C-P*;D}n} :hEz{,28$|u\@+ T4O9U(#J ei%4P|J ޡ&>Χ4Ŭ7"ءU%<@P»YЬ?MheJ5-TBa말 YEZ9ٖD(-1>BU"vܵ 9 Dq뤎+$L[)*p1)ȴT0S? ɶjo\TJBa2T"攤Ŕ۞#EĢ,Ԫ[{h"ޮ:Z5)1˯@yX̆ x1) `Qڵi(.)!jz<$=R%;iO)!MJzEzE(2AdWj1h@ 015^ԫBEm޽P\0t-ԉ rt.E{R};:۲6=7j{HmfP2ɳ y  ,H!b1PN+TwD h ~]pX-R*1 (BE>09u*hLv!qҋ\ܹ8^i[gYiC Q 7F7ɝI0;ZʂlMFedPd{>u$Gq|( U\C/Imާo -TVh)qΤ%Ֆ^1I!e"Yn͹qt#2Vxr@xDxeX@{AS1THX9kҋ@!2 Ԕޒn0 X%,,t`^O :MuEx۵%Ɩ˨ @R@R7 es ZUjX/6U'7U/7]݂lI!r"2ELx†ty\ՏFcjWZ*;;gVlp1sm]Q[JH8b"G\kX͹kfWJ+!#)b51qW]$.Ȍ+FfVH_$V}"&b?"6zKKzisߞ\[!""yc}2sOCwd(ib%:%iW_w3`lՖDj@qNR(j3f55a wi˕RLp,$l>/y8gؖ[<4Pؙ%!VBvGBR)ZU =QZwC*犏VQ=;5~w?xmcbؕ^sq+wKri!C/_wgv!.y9|-Kq*>Ko;q'PEʵ4Ǹ =ek0[9^.(/: Jzg+ xgr }:-#4N>})YWՄ_GؓMf2 |bmyb3/fŽb{<;_)9o}O I7Q#,y͐pn yU7#)Hӕ\O9K\-;@ٛ^5gYj!:CþEOQ )d1D/ 0L:-`a +ٜ GpL *Ub&EQn<M3$+p}r@qIe`qfD[A-'<{ <\G?ypF+K~f<䜧1=*{Դ%6]J''lAea6*2R=^4V7(P^S9xwגpHeOPk0Rў!C n&^#byJෑ-Z#̌"J.Ao: |63E|N[#Q,$W{g_ ld@m5")0EbٵXĬfCG.APc`LtdW@ܩI[F[=DՊm}Axܽ}iX z`4mnd&Y{6N~ "tTe8(PX vuIw"_Mhl LyL xj5p+B9B_%_ qXcK§RZxVk'#]ӄ/ _Ab" _C(!1N׵J-_kK:#gi6 m Ɓ.8jwȈ)7M75)u:gl^p;Fbo3nB mqw~E¢{$6H#8s~'\!S%x 9؛O8ǣSwBxq ?cO1e7<ϋ+q;1ߥ _ణKNRG R< Ө_ vW5xԈFb[ACuʙLkbm#k[8;> v„H<&LO:H#OH1 h3dW}`^To&'P7XvCvo?+sS)x340031QHI,IKI,.N-f(-K]i¥ e380~oh{6<}TQ~RVjrI^z~Q.ߩ9w~1xhu{ {l 0`xT|a 7,ol=x340031QHI,IKI,.N-f~_uQ-UGuy]h.3/-aگs[K1&Mb\wk9۶3Ǫ~z1tx xUd4iPڴo%rd7ce;MnvfҴ*ZQ< (U-(*j**3;3Mwy9oZ""bLJ@]ɶvFUJ=T҈ēz ^{50E-#=sHoBY-'= 9SVVd,5ZHD {J\3 GJ\F:ÁфiB0IH p\AP[M=U@*h)$oKJĈ@W;4v~ TϏG fQ 3VH-`:$WKzkc,R'PCn"Bgp򉰛Du@3 t$Tm8ۅٵV3Hk\HjhQN"=a4t*QP[ n,j5/Z+Dm25d [auf&k)$Iu dR\_kC~L&St@V[`AI=)2r+%! 2XNA;L%RiMfӥwtI4@SVn=L/JY %m!#al\j0!ÐfSF@ER(U*9$'ɚZ5-U֬6f B稗*ƕCRh(>Ti~eMmȦgjjYOD;`%;'b$F$KI{" ?" ޔN'GaL`hYf0v|d36IICOJ3c::%[7~SJ]&FS7m}qǒ-[gj3^o4D, %6긑 'Nv;ϜK ^~|ku!1z7Ad7\'}5ED[hN @P .ɕ;v9;kJ!څO:<[\HYw8nյul嫣47l7Bˣ.l@98E{+(hN~vɒ|"0OG VB傕Já՜u.oOXOQ##!ki\cnlY4.\[r]ns],7 = ͆©!~xC9tfSD뜒a,x.?Cխ6P{j˅-j n֝@vaͭuyV7Fwv Nپ`sf\vmş#W`Kdtq!u&cY1I,#^SnU2)|;ݪr8񆡮ivܴke@28>Nk͓IH aD\ZRkFj}ޔʡqsY;je' Р`\㮢'?%G7ۣYxi<[:|ySJ9?Dv:4t[NAz6uf6`{d2Tz qS&Y+fO"vz<=^}oOȰ{Oسusţϛ |D7)T$a>;Fq& xYCダ0|Cu)(o%YLt?pQ~\eg\6s7wc5;M8`e~Iz0 3 hpTK_lA׶Ki6H.)} wF$ےz4I=_{ R(Ol7[!*=}Õʛ*goރ0ȫߋ]ʟaz46_m~TQ.g[?QdPD;P P=OɭJ9\I47~"6jzuؿ}Fc()T9k ^ίijTs=*-~ۑ/G2Y^o\Ji-͎FT4Zubc;iB)iL k&YoI -kVrkK}ʍ6,tMݸ.}of$.U^۟=<{{<ƃC UuȄtTD5u["?H [߃XeAi_UA801UMbDexOHT /cʃa ,L`zIUB"b1" F.+qHVLqA}4 3RhYDLGp,cRmm]?I6fXطIL^;oM+k`:I.|h`c`/˱XT ULix\8N g*aZUu }1 Qj!]>7e)dӕ$Rk@ɪt-u+qxu&#t!t9ZnigVN6eZcZcō|S yWvcd؝^nT/* LE~1U&=URd| OW̙_qR_9 յƙαIyRY T k#=GPϕ;<;H(&BTC2=0G1!"J2Ћن-Z1 ZnD-nc(rJkHlkڀ2D6It j 5 5M¤8ZM*L .|$ZC{Z͞Vn$>!rdN6k.rzS P'3 ue+#f'?z:[H7|W\;.QRTGaY uɶ3',ܣ3Җd6R~s!T&Et ߆d!d;*("bX |Q#T*?(?~i =I]ƯƹtϤ0N&춚)q(yei$ X -f+*rYZ8+R'V{\n.^iEǎC3E֩W9A+tHZ2=c$k^##l?m06pTb1'Ȇ d!Zz[k"5H@<*wm45Hym,gОE@oMhZ(b7BE** M*Ѝ:@7FЍ{O>VRM͊bM8ww{jRp[ bEؤL&9IlNV,'P /WQi\h+U_=Y' a-ô/WNjOʷv&MMjGmB= I}BlVv?fݏ-+kpɽo<]mj|z9۸~~A;9 ^%IyMr0*)Vl^̯rIZeGIE&O~ KkߦlRD|>,z)t>< w{ ŕ_hvkvS/yyaDX$y-1 DQlQ ^ ^Tdq\OWj SɅ#BT khAsAXWIڔcAٜ bʶ66q;M͹ ؄hev&]_7:8ٜl!0@Dգ$kfM[5Ӓ(&/D,Mo&**!cm (U}i Fӝ!ti7{9򹭣WU~dJ{DLJ\ UvzNE-X}}L;gݭ^x'ά2 $rDcAϥ6"rSd@=ŢO9k]I Mbvu]ܠ?WsRн{PߨllE?0ۄN6[4B>x-'/G"7F*f||9cyѴ-;lNw |tV,ב*pǨS9A}sPe}6 ldkf=zglY˓`d_\AYKf//Q{нD!btyOZgq A30Ρ7JE}Sn#p'wbA;bQX6L,˄Xy=e¬b6 sxޅ `\ΝeCl%yBW=9m5@fCl-z~]%UR<bDTGیQq\P[ݘn'Ux340031QHI,IKI,.N-fxH1^cЦ7Jl!MC$uyi 3?_&>yކ O_|U\R_`ٕƸ}f61ҶxYwW;}KةSnY8 n!ڄ욭4k4RoM'a}&mŸ'>r{3OE9gr߽-W#&{TlZ~&OU= (BH$Eh 5%$KBU82}N$ ȹYSjDrp q_28qcnLIꊩHԕt:2$Tr.+Sd eTu %nrheGΫ餑Sv@ eA=0xet6C/ p@*‘g4ungLY"$ ͙ TLy XP_r!W2|J͎k *QeOڨct?8[B+?Z k Fǃ6 iKIF\NPNܦj)>aTQШF}ߨWOUVQ-qsSSN[8]N{CC%uv=lElw(ْۜfL+(0 "{([JdRfĆe 9_Fг0kk-\3`r9W5^ܓ{33FBdN3cӣ0lXEP>lB#|g5;wCމwجp8kʺ mRtvMg|s0ӻ+. t-=xI(n̩qkG9O9ufo=]mݛx t9"ݘ|2'9XϔDnBP8XE>ȍ< %lnH@ctp)=]@о?kq/VS8`FnA- "=$S(wOaW<$T}0MGJn^4$~.YIla_3tHzÌ笔ئPf6燗a볚J.~)Q`2uMy["b]Hnmjsj0zyO75{&E&.#g$Z52x)fk@Z5svB$CRG6xAZqxHuQ%I}F7rU  ;YOR,rY˲ÊZ82:PS":ʻJ#FjU Ylp>c >$Z1xpϼ/[IX-Vڲ:+}eU 7jֳjXOX(: _eK{krņh |]Zi(U3o̊ ߰B6X'7Bo!Fo#!^:|kZMlW5w|/G!~@g^u|fdbPeEH>"Ȑt_VUop>VWHQ'(w.v>% %PYu3])ϐZ@D~&Vfj>&~&:7K|/W^I:/,Nt"c%չ8#OGnw̬n{ M* %g<睑@V7'6(g(nm8ll[H-"-x dEj Co U|ߦV܀ Sñu?TNb3nac]ItSB.xp崡=3D!3b~ 8_  x31w ,)i`w>jh``fbPR=Nwxy[Cyj{?b1'(ៃ̘eѯ?\*OP-D/3Ǯ .$zƾ?bb/rss8mC+%x9ZJ$?OYRO\2;XM74s RkƊ [2x;tiHB]:f|d߅_fw.Lnx}SKOSAPiR$w4F1^{lf/N\_D}Gr:zpZB uA2p Z1b@MpH2f\qwu\G&!rIQqS(@^+*zmgݲ$`1gMI6X]aý VB1- NSMk Vw@\5L+dc mbһr#l7Ȓjk&Np5?SMH\ ʚönBذ/=F&!&h:C"! ^-;ۇ/]qRvUp+|:asBi1 [SVp'U"!%@{V=';O;r |8`twb싘/j(x¼y$#d)H&Cɥ:^"x]1 0`l VZU6&%I[ܜO"Ә"8=~x.WpyIz_aG a B.ɦCSZ&蘖\ $-]C6P9VAe|W+CK3㩓x^:ؠkjIZ'|Ii*2ߡeܞZ*'<7,bJG٤xrDY\]\Yu*[I r*xrDraۭ[o3fnzumװ"(xyXA[3gnҺu~[ s ׉Ixkfnf(v"d klx| cngXkwN4AS$5>¥&ys%x5S_%\&rCup߽*a@aU`\`9#t> tFMD#(A^xW.B*!yg/&]0uj@%-n&ק~PSӒu[־E?dkr x31Լb+UY4{Jr\R&`y) bLڽYM>>WʝQb䜟WRS̰AWwU|E4l?D1HMbf^jQ1vl)~|HBi*ĒD]F?z|\y''(&fe2,m}QC:~+LgX*TxxqBȦ1C㫥6 msaČ\ӑ|xþ}C>Hn}5[e$O/fFK&S̿%xk&Z__/%54'?]AIJ!(8HAA<3'G!% '~,)qIuxAS93d2#lfL?@Ex[;qLFFͳ0onfK +IMO-Zu7 x[̸qBږ{ԕ_\m}Qw /m H,x[̸qB]Ne-&I?+ (Dd&1XGJg;#T,nxi;L =0 ή:1ٗQf9 c2xiC6* 5qvZF{Q ux¼y$#d)H&Cɥ:h$[xj[; ?BcwSofgP,d ZsRI=Lqђ `ugp'u.$ Sv.zx8[4;F-=;$Rvoy?C!>䢹s{dJ"Fx9[3{v&L4$ik!o1Q^-O ,ؾ/7}bsGx E+Ŕ1qApcp."9.x8[*d0BRհ_ O]I#oy{Zyujn|CFxP[c5}Sa[++)Fo<I;^MJ+He!Ըc=!t 1100644 GormInfo.plist‰w^Lh7)qxp[L? %Қ&o<:(\ ĦW/㞡*100644 GNUmakefile3dٲE3G&-!4mj<4?^a0xC:~ ' Sv5= x9[ac}VR"'=Vo1U>ByxL+%eHx7[C(]U}$fUF,o<5v0s+tA[| q?ExS[^~ѥ:K:B۸socV)U˜οr`[0h3& ~"0uZ1ctQh'/fi*$DŽ~x]Xst{4#313lϗf\dž 0 x31ԼbfdM<`lV`_^̰ڧJ^k~[^5>,9?(?I&O\:鍯x D1HMbf^jQ1W/W{ub- L\Kۧ4r<}/D/471;5-3'f o5~LN8Ux¼y+'K0F3M.eVپxz{WyD< F fbf fb$ _oӓ)xk뱡S)EiDO5N x!FA̼ͻmIegx{ebC0?sf^~>^<Sx5kI̼%;oџIx;w7=*-ӥ x31ԼbySD3l8/_KS̼b?1u&vv߬&+΁(1r+))f8tWmBɷun" Qc RZTPŵYZ|g^%VM*ĒDEt&q(( { LLBsS2sR6>d٨!SCGXSxxqBl5k4LqJ>wY $x[̸qBѬEnOZ5{goL @!"3:x340031QK.+L/Je\ctM|U=KS!D+ìߗtyg]YnrYK gHO?ww]{?;^N\k SꓟN`x}~b>!\s23r +}gII: ԜɹwtH(~٩i9 |34>&S;iG Ks^9hXޟ|;\z3`P Q??dѱSfYE\\ƀ"Ov\Ylӎ5N (.HMc/XCJ1c# b"B|R 0fѠMMv~h"噗W ݎi+5 >cZΝρ0'3F9tC͵ik}h ,gĔԢĢ".[ n[y)޶2cRӊ_e=BҫL D5E`/8LJaK rmnYc*/1;5!f%ؾSeoontϾg)!. 3[f%>toRʇó&GްX:'\P%yZAM̲MD?3dx{}BeE֪{7d2 u9('$d1hUۙR7f;_1qH4plF&s2y_後g|gfW/N Fܾw@lt/OrHMLI- H,*N-b:sǖEV[gz2{uEi =GCi.tv*f&& ~!>> ;XZ׼^;֬,%䇅c.sp/v\-SW̰e韵*݌с'U}$Nȼ׆ ?xR~679 _|1y/&[_ݓS9 :yVb?RMt-[1ѓA$Yaxs~\|?/{^Nªm&k11ژMy2΃an#Gþ2w55nF =#q*E40000 Pluginsz 6f,_\߉UBGLQA| /x:KTm_FГ89.ȼƑLyR Ae#lIxQ~QɖPwf:>B+cbJ%GWIu]` ` $qpoJstLiHLA$G _x+6΅`j)Y#ᘱ40000 DocumentationqϼrX(M>s? >?^/$v100644 GormInfo.plistm$yct4ܛѓ-JC> ?zSEgH Xtϓ"abx9~-w539m9II$~ }J#h韤 BM$p#HxR~`iι W#.1D7KMJr6w!Iv˗|h K 듇e~M&N`x8~̢]1eTG;RyYP~4 d Fxn~X~0-/R5摒<;9 6e*t@Ʀ100644 GNUmakefile$"U+ aˠaSl“e_o\Gδ|]1KdϣvvW@x9~fp'o5Nf&1KBkS*JrX/ 4=kYHxi~@ԹY<O>'v#[=ಇ5ta;-rv ol(8R&]C!&$+= )w2#X0wx8~Ȃ!;=_f;JpڮOJHCM4WV`H&FxR~RBQ-\xY 15yv1!)ai蠓gϪ{mtv76 LXR'z`xR~f~ W Ej\1&>B(UӬ A.VY(?6`ՊÓA%`xR~A<"ZCqZW1`n 4%j+VY3.X<8"*ozAO%`x~8{R] ? KZ U-x9~L0W@6hyJ1RR yh>xeL(Gx{}7ԷޏZYo͌g8 ,x)~[ݕWWLU-Kcr\cT؅(ƾcѓ oh9u¦9A-7/"+O8&[ÈY8d'Z_e+ } Fh#6] א#?0<|f40000 PluginsL8Dn3{wIy)A2X(}wBp[#BWeadxP~7$ӄiB ,<~@B장izh?)80 V~`G&_x9~úkEZ)1߉@U-؈cS$-CAq:$|-mGxP~|"=~K*U֮Ƒ<o+L&Xm2Ʊ)[F"*! pZ鸓ͥ)^xx~Bt jzZ_¤, <;ga+ E,#-100644 GNUmakefileAM%jE&0^x8~D#J`kYHgC9ZytD>||m9>v1qFxBRhangeLoglM-5MzI@[/M?Q6|5\HPxi[?M#i&g]1! 0po1z`EQ=nhE8`HB/N i\`0߁Ԫ -wx|[\lɼ&͆o1>mdWmrY 4x~100644 GormInfo.plistd_C9*q5lq?-V5D,*5h$ "Ԙ6,x]J1zMPR֛ofgwb&L]=wMv~~5 rr|^0ASXd6-&ܘ-Аš100644 GormInfo.plist99Ʊ ܛZ3su{)_*!78tV?gX"4K=xeQMJ1 )" Uk)u%UAk&y^2-W{^$c7M|_>N/3; };Yf,[-<[b7H$mlZDx4xbGxM \UY&KIn Zj /JA V%k#Fo@J%|;=cxu o FO7YօWopKǷXxJYf-v->F fbf fٮ Zx eObx_ _x}G{:{J,>ZTDi}fkօ /x}G{_$K>)˫%es5X<&'l U1x}G{C0://B<ӯr$Vu6錥"m-x?++Z\q[AM]yɳ2NϳVCʩӚVy  3!;MxW++>kx[9%=4C"f! Q\g]g  ;ϓyJTh[^&Nex!++wx]Χ5hF!)/x}G{Ȏ N5;g绐f=u!-x}G{:`Kᓃ~YK$jR2dlͺP -x%++1S󯲍`[C =3x!++'g9aÐL<1;  /x0++'100644 GNUmakefile6ÏKeD'N>x%++gwje_'B6E)֓C E3x++C"7 GAUW` -xN++uxg-|~8@#kGX*()4-J iDbD;~T*3ED3 b= QevK100644 GormPrivate.m˲+gioNz볬 0 ]P?x0++'100644 GNUmakefile-Vrb('D?x;++ESJ[ԬJ+z02=C;jJUxkWAYY!D!3O$#U$5W!%(5$ROO/485 /81/68(;_@~s 8ęǛmxtI öca +n:xcSNF8#2(_ora(ϛȍl Эxf ꛿1~e|Qu FF96s=cd41'pOȮyb91Mǩ<FF yg-6wgd4sNfT+dDqsd"ʛX'R\Aq'%I7irmP|& ׌'o1Vmi3|`IsKibʛK3MVo~ͺOtz 69ivd6dUO^[fԥ x31ԼbǾ<ԑq&`y) gH^`wN݁5>B93ld{v+F 2-9ӵ!jAj3R~i U&.% W/,Kct5C3wԴ̜TM$, !29mLRRxxq۹ YmΩq=› /MtK xx-CnCy)\G5Bx$IhQ\{.{*45Swƛ39׆ Jx31w.)Y*mv_hnbvjZfN*Ù/geZE.7_0o%wp'qw[: JxõkC?O,O009ALxxq{Ƣ0@rvxD'100644 GNUmakefilew0Z:_rVt ؑ'OΏൔs灋xTxPFP܂Yh޾`h}9~*xۑ2+ejt7 PC*ʸlx¼y+'K0F3M.eV ]x+6o l(ZOJ4<>k8]{lFaU69,40000 DocumentationB4飐qiW\% >aӈ Üʔv100644 GormInfo.plist]퀉%&$DYZ0)(G(vva㿨rˀ,#Ħ+t1"`bdx8~'8\KeG؃Yvy+N:Ab?I +͹QGxR~-ZLW]47걒1!j " p V%O8F##T1A 0#`x8~!uu9)Ӹ-ϮW3iFo?A~Fx9~SK2LFGćv41^&qe *2-xbq=Gx}~O7hbwDR61c@?qb!eUȏLӳܓ S23WmOE +gSKYa lԝ=RznVL( K>2ȓ;x8~W)ekLs!ߏ%8Zy ΂d+lͱGx9~HgM7cps=UY1йїHIn-~W";Gx8~~F%cjg y,͔{er|ecRh Fxc~Ĭ45Q=3iP1>S"s+Jrgwss100644 GormInfo.plist,HY (*qx8~(uz)B;hBy`TR1wh<dxt4v =kFx8~=^t;fIi)t$UGk )(e%rFx9~M~'hzҽH1vC}[Ƭt+ -xrGk eZkO (x{Dcƹs[2en˲u.멏 i%x;X#ƎNB <bxkfnf(Ey^eEè -xq e,`lu Ox6_mC)&>~CJxd~*n\Ĕ̼XءY>JkAxc+{~QO~bJf^f1,qFH MxxQ |SJ"N?$vYm=[R&*n$l6xxqBHhFͳRFBܶO *xxQ |SJ}~o1;R3߷홨BHSx31w ,)i`w>jh``fbpus{)w6gL 2t xCBC5| LbX qLz\f֝72"dLj4 xkeleP(r.U8s=mJi x4i'Hӆ #[o gx4i+s,=:`ϾW} x]NffvfyF fbf f,u FxQ |SJru^yIaM֚*EFӼ5,~bbCxUm;OW /'h_׻{qПՃryp?0/) z;kDYlP (Кox;"[p,FFͳ7ncI $x$IhmF i g=^Yx[AU>3E!HVHZ+h8 A+U2y'R߼V q=x}(4@@?̵˩ &xQ`[fv&F 9Xxբ0x?id E6af\\/QRx[^u5>J4{ /3x?%%~d$/ EL6 Cq~E#vk@oh G`xlnRaf-ͼR NV` r  Sѡx99I"G.neA/KM*Ún5,odN}VUxxqC5o:z6-_Vv.D z[x}(4Ps-W{-#31Z.e !%xpF1eL˘D3o_Ē _l3x±qNZ&o֦hx\i)Ol7'0?HvԞ#x^xf6#F63#R7?`7 y xxqȉ]J""z9^7x7KhDT 4,xTK xTmIhm,x0S43ԑ(D-D՗0mϕ2xlbC Cj^ (Dx[W`JJJ歕,vy6 6xd7__#3mc> `S##x;7o J ^5Uyw#NB7W100644 GormInfo.plist`܂'_ANdM \xd60hiJ ) J\Ѷ綈S_ӈWmt3݂YS]&1`+JCVtt~,Blqaud"HoH?YPcS0E=`]eY"bhH)x Hڟv< FRx9[juDc{P.sYVͱo13w}BPz;x2 2005-08-10=J Ѕ :?x[^u3Cڷ2}5}Pj^xbc Ѽ ]x[ξ}Bf^1(U){| f ÞPxT[XGg"o4䖑ocv^fB 6?[C(Fγ.nt*G"ʆh Ӡ(Õxkl[xc 7W6X $֮\xXiWf53sSbDzTܤ̔t QRG!4q.\FҢbͧXWsLg:)H~&!xe8!Y=(3/-_ '锎|rN[c 5áNx[>!Z$UupvUȌw&k(&fe2KxJoAKc*+/.IMjЫXa'T2MCQ*Dn^_Xus/;T6DMvgY*g|)4SL&cLPSeYxu6w,X=9XDNYvy'7טY ɷDUM4鏕œyR6'+0gݝ[_^W?G9s2Y M` ,xI[ BG~K1 x M0o;sgj,Fqd'倐g0<ȣv2wޤבhqL'hxab% ?Y @І~ ZFR`Rla1WӊIWTs9 X#5EhSÚ.xkl{TXr4f'(䘬ʲwr@6t9C&0''NaTk־gc>Tfx[Eq o gPjq~iQrj@>q.$_~)>T|{~Qnp~i^g^qAjrI~^:PM>idSyQL\'Qj[~^IXfj9NH-KM!뒟\WC,b{:+NvB|f#rxhgB w72~artq swrvqtVжU OEEE\HC=}i140031Qp MNMIey:J'⩧d1&&grX^UQ\^`\•4 @^u;]ܩN-qfW{겊 $ja(b mr_2˻]|2'&Ul~;vd Ƌ"w){P?s['2mWox31܀4bt U]FV]|招δz+Wa=5/(1sgv0N|/̔Ԝ̼Tcj5+;koܙ}eҬWx{ǽwC+ WfZj_hpk@|ckHNnf^zF=ԜT. G_p 0 [w ߀ W`$q? =(7(5+5/%3mF R,jYaEyɩz@B q{ifJjNf^*L&ᑚZT.ZRdeE>~ 9֩J==`NfRQbQ^nbv*("iEEPa'eUpxŵAez'f==Yt4jV%4QY4fd x31ԼboeK D*ZvK\Q>Ds~^IQ~N1e' "~4GU Qc RZT Pqco^x͞*ĒDv(!Y[]~!s_hnbvjZfN*FNGӛ*q9busvjEUhx2eB]-<,үo(2*lv#Ė 'x;u{~Qn@QjZ^ZQbnjy~Q~XjQqf~^siQQj^dFFī(jW:y#%oTx{zu#'04rxee)rtsKm9˃̶ m: `xʱc x[jyX_PdUnHf Ax{}lx[jyX_PdUnz#fو x2eTx[jyX_PdUn,FR xch``fbX\왗_XWY\ j =Y|Ʒ/npIMK,))~{è@gۍ,e71jAU U}tJEq9nnN0Nc1j K-*&(?-3'f׻N,:1{ޅ 74R)Qx9[e3y_hޠjwWmo O7u `H^`fg0㳌T;Tx{? [0m]Vi Oux! ӖO=δmPgboxvm[FGOjb]곊v/a{)WxuBc s򒳚fRFcc} S xϳk,d7ɫY&3*Lfu$YR2f qx9[5 Y ngKo xN|(wa9Otx{/os*c{*#3mOednuc!x9 nݡ(?v`rM~o:ʨĊ7Y Shx3{dY'dQӂ`ڎUfr5VWzl\y)iDIJxSjQ+(>0CTQ1i1CT N޽7{mA'B}MԶ $a2{̙eޓa)&=zV>x@LB-CSͣV+!PWW?$^ 4Ð[)zՒ%q1H(  !+QS^$!X^,;"AƠiHut)y!TYlbfa҂U)RtPSԄDRƌ@19BC(tz{JEq(WI馵&M=Y#.+nJ-%ÁA1')nYn $>7>A8J%L.awg9uݮR! |$cLFg.o~y'YH؏u(`r%l YCp@M,\HE(s5$)-]v4Jcʐe\>)R"0Y rP_cl 1 ^Gsh w;AmCLjeC$v%, ۤ{&u { [קW?7n] 8[xP[xuh: !'ol.yv PV%%:-mr(>#x{of>v>&F f|n3x9 n惧F,*QϛV9Xq䱂o:ʨĊ7Y uvzx{dYVOfƕ ipxvmC*W9T LŦ,8f$# sjx;0]aBƮCxQ[_19, _0JP~o;d6yMRtP/~@12htMGU@ӳT#8x{w/5Lki&fZ q}xۢEq4L@QjZB {~QOf_ٜ xz\s23r ԗn~gfh>i140031Qp MNMIey:J'⩧d70"4`x<[NG.EgVk"F'"oWLe : >hB:x{wwfOvOF f<s.kgxkFɍ;ix;zuH=^#nJvZѿ 3 x[{C+; 7k3g,&;9r#< ' x31Լb y"Ke'M M34+0 K//f3|uCT_lk$qI9?(?,5 sc+/=Qc RZT̐u/C?jV3DKbI"+>r vflh``fbʠSvU_vl0؏ AT$$2q1t~-'Zɟo6UTuشlW'2100644 Gorm.m͸P ёol)QcCDz(Z5L`j]}'ndCO1f)$&a=w  bI_"oRz]6! ~xk2m8^D /gGZx=ks6_jIؓ]gG~M|}gr.&!74=d/$?f+J4Fhn,ݸ]Oe<^߿~GqK)F٤r)ye( 7TἜfV<AAzQI$~ȹuiQFm?~˛,MSLLpϯBC02h~KRnu,c 1 1),KMۓE)gJ<Ƀ[7!j!0HE.P%+EFY.n(< xԑ(R2-7=2yu8eZH@H\lFm!ǝ -}("H/(\d3ltD2M[o8%lCL}$Zy!'dA@ebx0F!.NF#qxz.lx~qxx.ޟ6IDK"44#YqR S[zN2‚X>}$H -%E<iV{X f֜Xl^_R?O]Pbxӹ^qt_ #poq&H.<9ޘvkYZ-{7ϒD:#Ykͷz/qުA!2"c,'Ŧ&])g`XƆ|85.7OF6ᝌF0["Iy$NIVƓ8;MwIv ~#ayWAFBPr}R.R}XEfU!,h^AsY{2Ipf_N`x9힜vAe$ A,M@%yru~F"CWuc(P잞8JR 8Aѿ#NNPg[ ,AйRn?_C?\'FluGqݨpY{"Q:΂T&= ae&39OWQe52>\EACE\koPKjFLz# ¯DdtA;2RŖd\uM,GxY !e M&6*`La]H 46Ukm bT-؄R"D\â0q\"%R0oRd GbUOULp{{A(|A- t4;>Ů d8(kG4`J9.ȅL$2͇Iݛ"&[x!_ 1aZzZ<͑i(_a-_Yc&Y0Ҙa@1rDŽ q4\TB^M(sڷwQ_/FFpi&B'#[9<) X~p>#p,,EW8-( *p".&8s d8С-*(zHubgʷE#-ZPNӃڽdҤ 垎pD( ̆h~{@LFyŁΏ..%<YJs8*$Q Q׼ћNY.+-6%-1@3PuNFMM7,Q}<VpĹoGnćMG4e YyQ!0$sy: 4o5:B eu~p1<:mD?! 3H* 6iۙjMT:L+d )gܘ:Xۆ_z"VPeѓgQw][~9>HW:PhYⴘ)aϷ V;8|? Mh&4PK|pTnh*W0 ~A!%QMieZۨTU{|d5yw\v{mp,(X[ßa GlƆdhFtI<O_ӻ ?yG]i1 H S9* 5AI3/lFޟ !L!tb Wy0T.yส Q, ⢘K~ࢣ-38,E8$bi9UvM~U `qz} ~ZYgKlH&=.wHB<.dzdtrJ9no4wj*(};z+wTPT``Rܸnwfը ʭ: q]P/qY__aG[bMj P2(6R3|a Ӡ[6)k9\66[?+&SZA@X7JAMX.CJa}tFM#~Zx,ӣrRˎ#Rr.~cmMVPW+|T-D(Zax%\#Uzp{64a\A݆:Q\2Zؚ0̨Aq?)RMKˎZ9oF9w"- O ӇmL}q 1ČR}Nv_fAJiAB6zN`Ct,vbY++b`J*GTnXܹA--,q;~N1RȂRV3[b힣jY–5,k2ufVk@|SAH eQG 50eT&U+:53sq[>i2PpcGln7۲ӌ jFḘ%2"l`?apATd3`fY>NN!0qz+h\ [lm RpL_]>(t")Suޯ9&M QQxZ:N:^hQC6fo#@nа&N7>W+hV޸#P5L%c]QP ɼ KW?%gd' LTI> Qa,Eoj8) 7dDTu [q9춘hC ^ 1N\r_#:ZYf>;E.~j]fm;yUwLA&M#?1X_1 YEvhvF /4b@n$?#j-l7M"˂ 7Cdķ;޲,^\Cj)d l45!JcƗ;v ?|l}_KH \M(>DN+~0 x ̜)fi慺='kęrWU^V7/krbm ߕ>{=T41뤝.03i" ز0|qEU>{"r 9ةnmlU޳,д0L7b޴ ;<8  ZBVpW D0 9Qp Uf`z˥$LU)Z418_BbʘhO#lK jӏ)Ȕ~2HCqE Hүuf#s}Ÿ [V|]dDG>QE)S٧qAڛ*frB Y`_ XNm݊^wxz'E$it;SZ<kӊE:7Z(-uBt?1?C~u%lE6Bxd6No bh X/aKHD>XGsSEFuj\g`(SgV$2QOy8ꡪ8?m <R>Ul P9q;Gu1UF71ATC:J9ӍUgcH^ Ywո!2?ƞ &'H`ej$Y&$R t"Lw-AcA>P0&Ax٪GpU+ǍdzV6,Q!2AlWN|ȹEѽ+QzHЁE`KV+\NUX Ze3NNjƔ+§Vi7#E=*+crb1V{:/1Q2n5Β˷#ǫ9]DB0vE{ye!y7UγԂȬ\wXҞmF1;||te* \еUǏY!g1AVI6 D^8ٻRI_q5Lc0S U=e)*]Evgeb|ӛ;5W:CY9klU4r +Q+9-l0i*b?&`L? 9E[#gGTjEaFdj۹n]ğ8Moߟ(oJ}&o0`̺ja})d7/hMYj7EpɄq@kf⽈KHfPme p(̵]}X B#Y\FUv>ʇ ]YM+.H{he5LMQDE2TӁg1Aͪ5aGm[u֓' U>݇!l G+l50vs_b>{ rb.TB)Fs*1O|q*Iw}hЩ5\yܳMnEs,ngO7Bqf=ݰ+5H 9`V i@uѡ)vZIo؏g ƂȑA(3`RL]0YGseԬ[;ZqN/1'9Jʛ E=f0 4$G¥Yۼx8E&Qx6&^¹HA g< <,U _ൾ`d_͒ȏ9TP]ڡ.:9p01B:"0,}"_Aީ3Y{L՝Bj_Z,Sur=Qbݨ?것\݄ ,K{@W3΂_GEsNXǮLg?-f/Ve3`RvLTWkg`cNcjʺDףQZfV' b}8ɫyV|w2q-׵J#4wh eE.{2L%DžZrG)R>XSWqǷu4jo2,ꚕU385'MyxQ.\Ԣ.I W:ĖΤ7chÀe"|uI5 ZݾᆖwΕZ.eHčgfN:Dr^,f|%[-)1G7ϋ.7;tF- LT?`-vA*"\ºQ~5WkJl؍T2Ow?Ukťu fL㐷LJ\lm>vxhޒq(As>o [J:Os)u@(zxp 8K*<_*PZLln=]5фQPm>>n"%PBUv0bR LLpiuFw/"#"tI݊}zyeG{]:瀶/&O'{VvhIh+I5 FFuOlW9&9 Mj:y= oZ-=!dKk>g ~Qb{*_l#HI=8H=dDG rwE[lY#֢`9on/ְ& Nng 58wd;?^\9WgǽY%}S r-Lf ?Wm×Gd}h f5Q@& gkf3AŗX1. HN^f5RRl̺:r.XlJ/Rr^8R Y*Rנ`LK n>[}0V+))2ƮKHZBҸЖPҙZ}'99$NTm6Y$1B<1^U!B} CVq6/~,FU=)N@G^&KMF?Wq$v?b&άǽ:q?(gq1XUЈF~ˌ\ӺD)|zqLPG@gi'vE¢ CQ"G VOsRu*P%%CW˚T.WLN_En(#WYCђ%0{qs4~V<)%, CeOЀ/`#yҌrWsvj 7 ^8 (t.=&Cv\'#5k xjG BSmRpw4Xb/KoKs;Tt;&N{S%Iڋɬs/Qu؝Uğ(ZT ?k]-- \{M^iN!\s>{0Qj"-?J7[2,klq׏ǞD.>vfxLS՟w=GzkuYe(T]*z S R{FwJhU8m=:h-.^5s%1)}IM6%.+PrJXoX\3Ii=-A5%n(H:XAX∞s# E2_nb҈̑_[}[,C<:QS6P2JbwLS+:sL> 1nXK(/{-Qtd~d4Ck {Fl1|u~ 9%HNfcUv쉎w6yj3At[G l>a\d.=[loŗt F@+'zgl"h~ DW)m-oZiJ! h*ĭeblէ$ԫ'HxZTUV X2"dzV[S v%dcۣ{b:*F'{:BݤK!^_+EUK#+OG..O@.i(S/)ÆE jAwyj ZyՂ;<5 QxTO_Е['nVj:~9k&;7myhB3maTlJ6mk:.yxJ'IS NfEwaz!Ul3@2+2 ]:Ufn> /c6?=1]{h{iYgN`͗ʋ@_m x E>/;+/j- E6uˍ:Xm8ˍ 9ɾ8=|.cmxLmKݰŐ=(WkóBkxV]o6EAF;i8(jKA .'2 c ?ydo}~]l)R'sysw ߓg? 9;LR')DeCv8OӄET3ɋ^>!,8]!- HCIҦ7wCU M@kXS/ k!A<邃T{l8<4}t ce3(CpOksPe)5h{^xYF:S< (p\<NsPD_q%edqhvI?T _Ul%AT Q|0M&B:zF HìF5X ǨP|\k\w,S^ X{V") p|CCƧx,o1cAk ٯ&בBh:Jqx&M#"îJ٢~;nks(#>]ikCh.,3&tYN|ǭ !;n@x{"H`9+{~Qf{VUfE|ץ x31Լbw#*''0,&`y) O$_zpخk:a4o_eQb䜟WRSsBbgڳG.D|tD1HMbf^jQ1öc ov}jEךU&.% Rt5J){`Bڔ܁f&& ~٩i9 93-Oo~~JX`.xʱc ȴ u6P;chqٮzkxۑ5}-9V\͏䮉REMx a~Fο(h֭ؓulv'"x;qz M|Rus2SҁL_G#CcK͟ *hm#eO>i]7LU%39X!/^,J`B:]% ]'x< g36OaI#]V)exjdL?|- -:4&6֔|\Tjλ82t cenև#<D2``'S:Hl#2l+_}fѵiDx`AhdMrEEGˈt;^ҫؑ>JyҭgçN$gc& e#re &}uJVM]4뷱ӧ%CG:b DnYLY k 8PkPՙM$L;Zr!B:tEߧHGrV5'u.sE0/t:w Vd["c>ⴂb?qKa cp="7J@7 `dyv_{M`b5;gRWUp &]N>Z/NZÝEt`pQE֏㿫Uwc*r5tFNj.~s̙m.Ր#p P:WSnVn!`{PZqF}d!ǐzyli%T_r, s$xܒ:vcTqd?7]Գq1@Vx%y0q8[1!oz%7օVpS3|OSX+w+ֿy&nv͵;/9, H7˃,&.; =I3]fOW4Zb*˂M)Ι7Hk!DK-Ҟ1$J(TGxzXa:hU+BQ+ kln]&(K86]V5d鮰Ը:߉Ԫ0M'"" : Y~9 Oa'ĭ ^3اĤ]6dE/7aR`g QU>YPdE=ckR($SCUayB ';qT=F C#^TSg[=(- V'iʞت(7~#qiS]:aAS1~r9ٱb Lc|:a؜P׊-^~ä%eʜAy U]{ y_}I|3-oπ#K>3{抝k3w?%w^#) %1Ӄj;׻$2eǟ4YGNz3MN2?9hx}Oo0l0H`cmmu]e.4u;#N7.p@>; sʰ&^j?~_~Ϲ;=0*F,iJ޸x3YRu-w;a\Xr k6l%:uwy|j<c@%]l{wďTmb1m R.]҆Pi|[>Bv%]tET0@ z&|ʘ7eQL5Jٱ:1ߋ*j3/mr^M`V6W21<*7;$Q0zNN-(Juz¼ʸ*; 3 -}n٥ݗ6ufR?DnZ+O("fmL?ؙv*Šd2f9❫X̅a?H.CD:l .<BpR1mQHgn<$]܊MSހ5?֍@4*C"ƎQ^,1>Qj">@hOyA ۾XJ]!$,>ݯ@_nI(pUk _{V_zP ^3KjIL)JoviP_m"+Ab)$zl++0aJPs!qe",~WF?PUiv`U Q`ER>kvD돂;/wbFUyZ'NVyg4X#cE)L2k2Vdxϳkdin܀Դn,LYExt=\Xg0r xO40000 English.lprojf'M_*g̘)100644 GNUmakefile`SkJ{Xja G?S WDaw%0hquAxhxpf{I"{]x9'' iH?fw&[ZSiŹWγ 0˺>_` o|Y(xC|;%QBűO|eZx;;!lxۢ>A}" 8"ax[y^x9Ƃ,rP Eɑ(x{|YfF fb=,- alRxUm+,%&x ,Ƒ,D Cx9[(k>]ZbNƛױo1I.L$Z 7*NG^\2k4x~FxiƥK[2.e޺eS_ xUmӐjeŏ7VQa,K5px9[4K; -Fo1g;G9ԗKG""bFx8)|p.S.#hL,яA=xX&&*@0:9SB=мˌAF4Cmɽx. ͬ"[TxR[n4ށȽ|VԱo1B'zn4 tHBMʚy'~x8)\\.F fb\,e ٣Mx{Crҁl.;"̙;n\dh/?̼BBONj73z2cx340031QHI,IKI,.N-fQc׾J}_K(C$uyi ֜ߐet-+b'>fb\3w[wGm /yhxkfξ)RIQb^qNbIZQ_T\R^ -#\⟔'?fZgxmwxE3Rv7oBHm"#! bNH$X]pPlH {JX)r y|r|o;3Kll ]mWГZ][۲qnRRH+>Hu] 3[^W70̶d;K{JtgCu陞2O'uREɁtFr|Ln[ݽ p?l-4-ohKG(΃i "}iNZ^a[ɷ}\Df~лD*m @.LD J|K_/ɵˀsoʑM[7'{>c6ڲJݗkN5 gCSO0b@8K.La(4 'Nx@|^V$Bt|r{`_ AX(maS[\ gFd1J?X8#XhؼyXq`;xU&ŢZp<5+?N$kݴvEuZ1f֞ʳ!'iP}0{of4t(8Cę*Sz3r qGwO{9b^Ss= [ س3gdֹv=vxꦬ)Mss7`8ȵdu'o/q[ĝ;u-vf;0vF4-^vyi̢U_0+`ݔ} TVqA?9O&7;,{[:)s?Mdۭze6nh]|/εrWǖF̫knon|5d~}gLgkY] 9^Nqzv/7`jSDݧ{vu<^*WA-]cQ߭xL6@Nߴ6zexQ;䦦yӓ0r< Ur ųz|c=zU{f>l?# Ol@ݮ<}A[vXPn{l;W>"z2&{7xG>=: |0ܖQs Bw~FM NxEo'rrWxym(@ćG>7:+;s>E~!Oxj9T10aN>::&6_~=k- C>x"&aԼjE莚NPr.cƘmG0f3}}%Op zl>/ϒlmũd ~vͯ[Л6aָ1|&C`R+bx[w.cf.qd@vɶo2$z%R%RJ?R"aшd. U_J4y]H4 }QSky Pr]F,w)9eJLǍzH$CȐ+dnҗTZb^[i㾖Q#;d̬QqL`KG xaش)xmodyZcxQY6=1ەxpO'̫J<:wӬfh+ 9=K2hS9A/y!IqnwwtY$2!܄[ leƭb>/1n)m G8ly-p;_e5>}E/Z}Jn׹3 jDJu{=ۊCzc&&xۊ⺿M c]a|g=oqϕqWC* ^"_[~vUR]K~^z]rC蜅?cMOY; 8ҀvaX8%bO׬CGG7Ҥf>k/5\QǸf?oic](.aso'1\q\_8.ot 1@Zb6rù'i!)J AX$)Y`F/պ =ZIF`^dnW)e*aew` < ~pl %d{\fr8L" @fݼapzBaeOv%즭0AŋNv'cNbh>J< ;dh=飪a#T@YD"C3 x2DadO2DaR2PȀbYF,}TOeaF*u e%YRO6UL:GZ/jiw&Ui" (Z9d1^2J?0 P'A#p,rb jp)9Eq3N!ם8Fo991mr^8Fb+n.GGh3Q# hj,I%ǑVTQxPJz4Yop@J#T#&lE$'b" v 'r*%3'숦-MGTr:_j4/Zim{x(}:*g.`}&hg Cz&jY{>u׭ú@z.Wl R Ϻu7g=X7.a78Cޏ ?v0?0ZD- Aየ< f^[ڪ|r,"/yiLYl22؉e) L_zZM]qfd`@W\;d]1rջk}U-PoS ]=Qx#I=}*qs} M}})!5>Tc7 :6 Oy= B೎}:@MCM>`8o>sF2,G2\`Pxu5b} 7ZﰁYc4`PAG;Yz7Qc OXz6e.{vj)wd;M?0y2'"WFNFONF_-\rԊn4B˥\4Lyw%w=@RNL0ӕH:LWǽrybo&Zwזde#AS[[ӵ+:E.\A0@W}nM.vGPC~qrA<#t7WMi"Ǐ=.r08aTy20OUu[zݔo)|)2 :]ZL-VG8meWd&xx'&q-:["wS4G ؓapW#+v:PPu/M|щJ,=7b{=BRJֳBh ~bYK1س H@Hjxa;N(Sn)\ D%6O] }x[w^ 7hfpv3Np@fɵ{}'٣'本.̲Oy}bG$'=?yG&Oɰ*B/:)]ꀴaJ-100644 GormInfo.plist`ƪ*|~ %f$'W[x!&&֡`"-fèೞcj$x! %RDaVj6w100644 GormInfo.plistlПp  f3A׮7iO3F?3"o<&S7uV8K"f|xۺAmp>k>+#31v}VwDn 1x;&&Ӎ@0~$B"5/E2njm sm`wAA3lV4QQ=ϊ*՟(zߎ8MwTq jwWR]V6w3{2䀔|s% mW:X&⹐,q8O= ' N LV$x6aܑ9=lː~(bͬ100644 ChangeLog}$9;{y40000 Documentationޭ}d`9ڂ >]zh)~+4100644 GormInfo.plistlПp  f3A׮7iO3F?1D45p$<{eu3"o<&S7uV8K"Po~xۺAr *od-(/H-ʩ|Uls$G ?Rd >o)xUmCH|=~ nI^ I`c9?5 Rx+hM_*VAfWVx}[Ʈ[=dpsdW7볼oci#^/'q2h ۑo;áx& k\!\˓i7oXT邘&Ѓ>-4×4㣂~ٷBD֋~jC">O8xۺAxUYŠ7u2dTqmVe\#7b#EF fbYlؕ=xQ9stRltxn&&n VLkH" &'D m)d.B=b  s4_Xه&c j2N>^q01 txj[[Mi2)Aw4w*so1><#yӤȝQp3 100644 GormInfo.plistPfOa/+uVx4S d|AhԄ ,@:u\7i30>"bIAx[*<І~fiviF fb, IxT&&tdERJ3ArhC4 S G!!Y͵G67Yz B<Px6a?qLi!%CM&100644 ChangeLog臏(l40000 Documentation.K¸w \M9B;Yv>7Yz B>01[ pcdquj[.SH100644 GormInfo.plistek(8Q|Єǜۻ,{enP։QߗK 1!oLOW P*S4Dut{ߺ4] "wz^x[*|ІppF fb<, :!xx&&ľ'έN3S@"clԂYK,vzOneVRx4/N{O6 MFxJ6a?qLi!%CM&100644 ChangeLoga6>}<=cSyy@p40000 Documentation.K¸w \M9B;Yv>7Yz Bo;áx& k\!\˓i7>V[LH%E100644 GormInfo.plistek(8Q|Єǜۻ,4edS||d:100644 NEWS{enP։QߗK 1> `4q768'ut{ߺ4] "BdSx[*d<<@yX EHx;&& )d.B=b  Z)P@6aqMJnԺdx ӆL RpuRKMMQ(W(-NU(HU(.IKI,JQ(J-άJUH+)). WjrpBqX6K rM.P T5d9OZ...ɂJ›omta, x8[ou0w#mSRӛfoy> `4q768'Ȭ@ڂ,x۴F;w ߑg  x8[`k\n2LoyBo +W,gHL7xCpuƵk[2e޺eR6~G PɈxTMp >ư͙L2YChm֝@x dw׈UzbxfexuNAc!DSj` P>z\l#MpfjA$\/2fCo;c||³-ݲ4M99g?#r{mA=81 I)]O gpC0!3gvT5w9yr+*גԑO "j$3f3˵4x)$ uPV23S؉~蘰]4y;GD[؊CY!({[4:-HWTqGgɑ-qܴ:m7?"j%ڧaZ-[E`ՄGN$x'DЀ-@A}Fm=\-]ɐtzNZ6٩1i$].;;ł]H]Hbdxn@%Eq!Rŭ(:% bRHK[(a M:7fiPU%4k6XdހĹR!E.g?oOڊaVY~N?ˤ]lA$#WG0"DLĬx *cEydPD&ǮcGQ4Ճh-*(&.%^I~xѺ'˓e6i]m0گUE CkwGԯM5 mbz˯ɥǫXz5fDZmCSn$LeYqSj1tfrH 8وC Nqp^" #HĶ'cݰ?q\a-ZA8ºx[~:)Gjΐ6BEA)zs%}ESgd#.7y+Æq?W1׼zrO8-=Gsy_nk!{`eM C62˥ u|u4E>ttfPZ+0y4eP9#sý6|n ֆZTI#աu}hսXeɣq_*?.[I 8 6x8[{]=a/]eoy#{@y1n(lxCU::Ffbu, xtŶܚBE '.9fx}C H歛Fɛ,zc29 @x;~q4V.}-ɳXLg6k VL;8'Gyo2kgcbDxR[)_r?SڣO^$3,df5o15 X}'$4qWqj^4<_ɐ\_4!N<,4L_ AxCpFMR'ywHL_g6WFrj9.'ZU~V#&;,Y@`}Yf.NOM%rRJ2RRK2@bE@ @A<0Mv T \ i`Ԕ]O9,&Ɂ:E%Ey y9\ B5ECU%$%B4Hch%*\Rni@9^X&O=y'dS{˙Xj7W1n ux;nn>A WW`WTbMɮ *09{m] x31ԼbOu1:N+{A8̼bڟ/0~|5Il-#bbVsTjOSqn{5 5yE L畤nn▬Z{DKbI"Z)s cd8 gmg440031Qp MNMIe8ng%)F:<4vP ɘNx^}ʓFxH'9 g[5q%m+UjW>Fp#8,<hXHt -y <!=yY>s=-qhm{V R^',ٿ0-Ճ)4Cx340031QHI,IKI,.N-f;7oλM% 5ϼ4DR`Z "X=7&!eJ*PEIY%zE [ ԙ[9nkrUM)ɈxϸqsbF bb @&ĸeLgc=&1Mn_̤g)Z'l.fcdl\k2-732ch2: AF~l 63cd|YD (mvHꛃHf@C|ߒd;+AJO؜9 mE6[[W@qt_:A7 11XEDfLsc1VCӍɍZ›g81J<91r-]8yTg_r\T'Ѳbx}QJQM&FĈb W'כq;a1i a Kk51!f`91:=-3~BB#zNv3j1UT9.RYmm1~-}=5N+.rkucn>EoO{|9> A]JB `U cC 7$Ur=FvO~+p@0ӐFxDf PWH#j"ʼnjӧ%Y=w̾AMA2\#pI~C@vGD6F/1\ܹuhib9Uړ+qxmQJC1,DAѕ *h t vR$&eD p!Zܚ{k݄9s&g^^08?G#ff7vm B`o𡜫9I8BZõm6q4]awr"xĽ*BOsoO1ۂ[c4^Q 5;P֍(<]Po x;!kb^ڌkX?. xkͫť_뜚7Ę\͢ abrJ[sq9d敤%&5LveH,NLIM .,Iΰ ҢU[吚ť 2<}B]\]eIx).1BɄGx}Rn@UDhP'Z妈6 @X$6V*p 58ckfLE ,|+,߁@bŒIssoX*5y] <п0aez*{ L}g@o!ܜ!瓱k [r |@ݩhSY vv>ϳՄj#8Ⱦ?Fv#^+[ኂа-: =Aw[G#GgIRR-_oRNeIV<'bg RF5NOf7gs h`#cMyyw\=?.1ֈS#JͦtĎTXB!Ba$@ +& 5EAb"յȀzw[]w ѩ%p== > 7(_wYi6jSŋ(nGn301_ZICYy,sh8P[P֮6ƇwxҤ.'BĠ#6sL3nw4,`}O Z>Y]jO9W_7+]#h0x)!wU]Vg*_ٺuya@Cʕ-m;lPƙ"P@DЋFC* h4& ICmN_GC`  q* @ڠbH9#јmyGɿz Z!Q>@ b3 !㞢}qs3#atBUJa>R!mdu7bƠv^0/ eݲoءw4XN:u|1FL'clect"got* fP@ nN18Eb |h.l?ɕ~z7"%Sh yVUr&G+>Ǐ_dK]x[$3Kf#f̜̼" K8 ($U!9'x3'$~$x<]yf̜̼" K8 ($U!9'x37^rxKx;ηoWY'bYVu.NɁlYUb6af6 χxEQ]kAeeM j?ri,ۖ"L)) @';LAB7AB|7'l<\{뿊Gǖuc* x[axDc9}pyi8TjцZc!Bysg=nO.P:m= k[ʘH4U"d }U.XO|k4<~)%,Yƹ_'S*>'WevRY]P x8>spq73G{1>͔ã yf8$y]+\i$UqHYFh fJ1c87~.\;#h/'qAf% 8"nem5U0RX&73`Lws`BE> N#zxu1K@ŹX,U qiS!䨧%]"8;(]OdS|/ 0.3T $͈ B)Sm6K&+XG$y:xU!G+{`/8% ŷ@P 6[=|m#tt^:FЃ\RPd"A7Z^92xhUŲ2^5{Z7߫mf[xH 즼[=@ۅ!Q4!KɮxNAǃi 'E.iB,&|(IӋsYggH o`4{G{gJP'ٝ9꼿x,dp, {aaC 9$c\iiz#Vv*a2/fsR㩗H l&3ORXH!g!'=.sgbh2`͑3k ȓ&܋c鏣ed*TlFCM[=.W!.moWv~!G̔ 8 c`n)&BIKyVS,!%f\\]9giM3~X>ҔL̑R$ c85qph6>* _0Z.evnNr^Tۢ]סɅ{ *NQ2K bݩ\Eb%e х9nl/@o5@U 靹ܑI *zxuPJQelԼZx30H$b [q#"zBh6jU67cB;||ܗn_*@ 1-{2!öeFE!#N+5 ӛzs4?LV>+ 8yZ sfYXfQ_`D?6Kɇ`[pᲠc{3jÞw݀3UlZ ç#3ar¬l @M&^(GsV嵺I PE*G%fcOh;#/3=D-ͷUy=h`*ZqPOÐܻX<PnBc_ ɨBx;܆\ Km^%`Y99vrF @gV@XRR&ױMYY_9y9 lex-wTpC7fG^+&#n>xSKJIXPM۩OW˓%j2wM$g"JhbE.ԬG Q=s!Mx*wVnf̜̼" K8 ($U!9'xc"nex١a7|fNBf^qAjrI~PZXXX\:{0Țfx#{Evf̜̼" K8 ($U!9'xc\Sx['֬',+vұo8ʴ`xC{)&}9R'YhMo2 |t2#\żnh`b& fgbhUowx D@]_Ym]0xO<}hrN&Ϲ'Rx[ξ} &׋]eϚJwmL(d3n~Y<jbZxz'k\a?`ʤӴ6G_lkx{{V͚$Cx ~XVcƻp?8A/MxxqBɊBmTeVDҁyb;5 lx[̷us6F^#o[x;ȻwC2K=*1~x$Ev f6zS2MN,)60dof7pKN>mèg%2BJjNjzbIBnjIF~BZ~*)VLW yORx340031QHI,IKI,.N-f5oB Ӗx}5Z1I]f^Z>?{KK70$b\;7znF :;WVћ17xxqsiD>y.QJT`" ;!* 6IЁxxeoY_혶x Lf#A$@@e6!&a{N%,cpV.sEs@a q#H0~}{ի@X&Սc5s1fRi] <ή\IzTf1qU#Z;?G'Zaw|H)_Ԏ3M2LOMXbLq9%wa^[/jQQb_(p {3. wN(r7:,śu˂̙HfZ&f-3ʴf|ӹsQͦ`x>/h$>sXipIWmWrj$aqOngƛcwߌvnl;~Dc ]OlϬ^aOUzɬ^8iH>/p\3DsDr#z0ђ _7P..s%:ө PLQJ1Mqb5[2*ē-6P"KZʸȲ!خwq4%`Ħc]ȿr ߇RB=$PIiBFtG7{BY*T*T*T*0IJUw>R^?Me{Ál# m0G,~SvrWdI>ɜ8@Z77p0N˛{Dow,Ox7s-wi)% Eɩ[dq(@dFrH x;ld#ll'q|c2n!]\+'rIL^xr6TMNbK'KM^-rl,i 7pIMnP/κgR%MVRX^2^Jb3I[, SKJ2RӋKRs2J2y%Ezzz/JN6Cgx[ξ} &ס=u%Yů[?L"xxqBȵ"N;pDV*%C3rz *x1eOK@op&" ĠFőؙ?y%LvRj!E̚eL/+b$vB3!щ+iwȗx*$D] 3 K{ 7@gzK}ϧ=! tUר·аyۓrf~dSw_؁Xe[!Ud2V hGUR!"[_+EgO0w3W$^i)&":^]&G/ͫ՟@S w@K_Qx Q0_zs=xxqBHbͧ-=7<0Zx ٺ⁳`:(Zxzm!C4HG ÄGL5x[ξ} &w8'% H?+.hҺl3 3xzƅ ?Z⩊řGv=x[ξ} &3YrU_9ULôl  xxqB݇^j{( li_db;ҿ gx DR*D@\E@>gxz" V?иxޟGZ wx6%%~d$/ EL6 L7χl֎G/D嫖UmnPwAx杢`J"`ܸfh>J4Z Zc1%o)@ }[aCq~E#vk@oh G[{ʅ xm'--9IfHx[ʥuۚ_V.Io8dx[4Q@9@焲 Ux vt. o> |ӓx60~k8CCD6" V?иxޟGJ;x:D@+ڝ5 ]U)2jX%nU>ob4EC'x w4T*)rɣ.UfKx60m Ǘ_>"QVD6" V?иxޟGH=x6me&2^[M-O"^FߓL< 1x ۭW֊H@E{+Skx60"dIl@rv,,zr SD6" V?иxޟGr x +}K9> 2J)YTx @qԋYbȮWx60lTx_Ť:ckD6" V?иxޟG(Hxj[i%BT(>mvo w|i7>ގBSų<U=ZU174@qԋYbȮWMk3vx[4Qh#pF fb ,J 9 ]x[^unVGG.&߁ZwWu240031Qp/MLOep-沒m1Sk5欕ՔElպ 3gtFK}l%*rN`Fvc?S抨؜dmذT2"؀YZūV#_#9BA2z"7aeJycx Xlxȷ~#GzΓDTWxxQ |SJTd~ǢԀ'WӟH\aGx[ξ} & raJ+m6zwMi5 9xxQ |SJ<6}ߜ҂W'*n>Al)x LHx,۽|xxQ |SJjouעG$ߝ,]}k]=x"^S)㮜d৑#Y,Z?x ׼,ۦS64=^3xxQ |SJsjllVi΃* xx9BZ󚋼ÝL1MQx[ξ} &֐1? (Yv7ni5L rCxxQ |SJvlJb P,{py[%x99BZ󚋼ÝL1MR#٦?hĭ5/1 I"zx[ξ} &%{<-%U'*Rw9=-?L7x}[dU lAA'h2Zo w|i7wqZG7bRY#K5{ܩ<5^S<oXw3HqV+Z 4>\x}(@͌@7ɳ Ax%%>6|f*rAR@>#U[Ttt100644 GormDocument.m]tLrqE6K{\*L Tn#5]ԻN\e)2ǝ[͋O:ʂG:G^ʽy@x$Z"E8MH!PÓ$h[iTyKU7xT|ZR6&c2JsSg;\B|h4I0QURFvyg&|3쀧ax!B'reƪmFLqlYx[ڨaG$k7x[ξ}C3H*KJe55)0:ә  x[;w7d3&A\F A9św32NZgdX`dD+tٳSx9~/2ЋS|?]3q1P>D3F2ҹW\x?_C*F={,_UqymRb[ ixx{}WL}ե&7v [,x{}aF-6ף94 .|Q n KIxQ6S+뛎@:`J4K|a4Dj/!4[rsK+ wϳ/%0x۳HB9 Y)6Q \x{}H?k&j7tw١qUD/81dm\[x('$d1LeMyUNk$}sK,)(bzkC{uV8;9nh``fb`c7)1qcvܳ6lRo徶WG?Ǚz(aSblt7?<.r`ɌL"rf{^%k)u2YM_-ixv| o1=:1Y_WBAKEo>yO1+{%w8+xukA$d3R?Lؤ b"zb$#3;lӀ(=I= xf{|Eq _(6DaK2$߳cc* &H U[x@ k{oKǒ{Έgd9V2߯ S}VuIHJ%&v2AŎmŬA, 1рP]+p\4!%,)4cZ@S&8 xuKPIBS QGH;E\urw%4 B"8 ᡓuuspuOhAWg+.wp_shj(fmtΈZf vch8\` m )iv G9R 8H\q}zృL6'F ЈB EipM;a9 1Áڴ#Qg- J~[Ju=;:ݗXL.`iB27c'a eGY/ؿQv 觲=̔~! aV_[~)H7ĩl+U^Їvd|RJAoy 9|oJKt,]~@,x?_CHO%}uY*2y*VU! T 6x9~O=P[(ѕWܜlPwxYP߽6R(xUPK@&Ij[(DmHS\:ɵNN%^I. K ! 78ڮ\EpvL[Xj׭fݲe,lmK~.u'v~"zO +Xhį[P/) 7İE7L/A/a0G#'f]_붍|jM9yW b2\kаx%0 PHLٕowzmf>$S 9ʎ8mTD\0U?'lJtFSAS&)r\=)%CH:y3t6S25ӲB2^_?xmJ@A,?9\om؅p,ɘ[.NtwCP-B,l}!z 6N307|M^Fk(yuFy͹`a{cOSbG?x)L0@\(RM.0DA? EVDCXpմyG) wp(p#oK ?:{4sYn5 u-~I`S]n?M T^`Ͽ.~~ o"x9~|RIyDSrch 9(&R[k(x{8QT)^#CS]#]###T& 8JMxdRsRSҊs JsrRrSJ3:3JO+bT_T7=3dՂCsS';׎IDps03OcfE1SddU/b*L-,98U$$.-l;R[x9~/=쪠\|-ûpe1wIO^˞WM)X?ݵ;xjjh`l`j`n`i`| ݵdx-mǙ Al f~H3Ox[} ؛/-Q 33x8~"Imx "i8y^deB(tCX[(^fZx-uKj7o[0an}u-gePxxqBo)v|6fsO3Č\ #'xWsG.ىAcSXؒ1ʋ][$k {C&^fz$/.e [U!Pp989ř**t{__`ٹblW(v'pM b^__޻]dS9:hPd!kq_ Xj[vaM!h:./?{ZSɩS_q|U*G8Z5%oy:"Wg Ux9]- aSD_P 8ȷ)C-t@q*oZ!-.|{m HF6zp°KNCa`b mie,`E2D޸5lpðdvYಚ {T4SAV4Ia(=6Y]:ء)M8pZT,oX(͜ռZ.BQZV$Z'@%G V$l]g EAS zAF)?4b 5|;C ‹Y-K}TZ;e^?\<28 ؙowꍝs Os/ڱuGѣ&+{"zWO+ou50LsɊLAcЮ\i7! ꭕid{C_eՉC4v POMѼ]b$@2t>OMgϩO 3Ip 1UbLGecyAUlK+|F; qJ2N׮QƇK^x.`_T M;NRG+6 *f;NSQ8ޞyI}2J;JsJ}i)1'[trǷ6R!nC7_Q;i6\Nqb|qPGzZߤv*sWts䉊PK/oWﭏƬC7ʁ,KGߘW 7 X9LII6!ب1FI;hү,I$x-Sm[ַLo[߲emS </VxTG%ف hm Jx9~דGKGp#g1ͮ`2a:=Upgѳ{> x)u]];wL[߱cH3)hxz//S6x=$ԙQ42s֓gH3i|5vkUa3 m0_PHy,Wxzud-áֿ9 9. xq 垓k={7 xL x=œmfZX}lx=qfsc*5xZ* #313۟-m@ x%//ɠ;v~Jj2Z8xxqBI*v&yXČ\{ x340031QHI,IKI,.N-f8-ӧyl"KgHNtl]+ץj\RKr?l{JsQOg3Tb+ x9~2LI%b{1oBrV[bzPS Gx[*uYX1cLǘ[cz~#¸ oFx%//$عy=uB  lVI5Yx$L@ ,@̺ݟͦ% x8~h|E݈i㎬ޚCEGywq&[5 Ѡʎ9)Kxz_y5{jvF fbf fb \xxqB:+|~ʎڃ8O/41# x340031QHI,IKI,.N-fN5>[f;%Nj ̫g.3/-!99Uw̓_zSp*OJM.)K/eRzm7T/S9OEv4-x;%ud?l@@Ĭy( "x?_~!UegL뽪4.8BgXjxxqBHqڀ_ L5q13r\ex[*dk+#3131vVZ xp//<7!J : &|!"3nm>_6 RNDd~Kv  g3M~LT`- &6M-XNѸR{ECndx;q 嬛1<cx{KOlllll֭lj L(xSխ[W3fn]Һuj6 I x!//'|Gx%[cʮXl x;SsngY'2x!>rW=FIvJٳ @zx?_gaLϫ7r{܋42r›DZ9anxɸ!Uns)x^9~F fbf fb +x8~ҾwzkЂ.ϩfUZQ>؜QT Aisx^r;nnnnn֭lF rx[̸qBѲY!=Vx,s|71$w"w],8yg۝*=6xi;|x`S)m9ɾ2=[ xNr[NNNNN֭l+ +NxZZ`kAF fbf fbSx;;$ yL)J˲F9Ҳ} /xxqBȼ fO<^j.}'{'x8~}.322yP~Ye{k59Mw 4͓qxHLLYu{h!S :xPX/1F fbf fb&#Mx8~Tvk`9$7Hݾ2|:jԜ'46-xw_WWYu{8ۿ| :x{{Wƹs[2en:u\< {x9~rXw808m 3M1l^\ޢoI$6q-x{{W}̌@ 6 ngf; y Pnqx~i- nK6.8E8x:x]t)iF fbf fbf GxCl|(:x9~ȣKP2Tf S"1iix-k,3$0bq wxj,))L@ ,@̺S).Nx!//k/&U={ѹ_[8l3xasz|,'iix:p^|iyF fbf fb \uxasz|8J3RS&7Ȇ 8eC==ɥ x31Լbcirق;+-q+&0<3/%OrIwݲ7Js JJs)xGuoݦdgC$f3ytw*ſQeX`a.ϕKnUp4ӔGf&& ~٩i9 yvl_Wd0xþ}C>μRK'7pq׾3-@x:{FNNYu"o %hx?_C}E) YK4iVHa xkӆr#D4xcSs&(&{(D'7(r6(Vw2Ox:i$ Z3J6_nMbQSJn\x#lv6Լ..$B+x9~^!\ ~?)IW9m;K1; ȟIX0QWp24-g>_xsJY_]_Yu[L*G =xtum Q͑#-RuIxsJijO2da& fb f~mr2ZSxx\r/eF fbf fb&&W>x9~2,vh  JJ"ӈ1lPW6EllGxZ_zSuF fbf fbOٖn׻#x{cSNF8[7~x;w746ah69 Ν*x¼y$#d)H&Cɥ:c#\xG9W=WYu{&\ 0׼7x{cSNF8yy2SRKl6kK;pѭ xxQ |SJnuD5.~bI&_ x:oek5WBG]~.(lLx'D4܈k>~a^XxGrnƶ66666֭ml3b cx8~n4c"lG+yP2: WpY_X̓ʹUq$x:SV1-F fbf fbǴ؎BoxxqBHa}G-d$jXvČ\Ƣ !l/x IhC4杬,#rxU__Yu{۟( d(x:u"ٙ_N\氺SzDqdͦldxۯ]iTs# x31Լbgh]9Q?0+0 K//f\g]nl:oR#b;fV+&qZzkm/c̼Ԣba7冖 }۰`*& :!L\KHWi|y~?dz8D/471;5-3'a9oC?5+_qkZWxj,̮ήL@ ,@̺]%rxoqb+>̼ɯ6[c)x8~H{otj @Ju){aǡ|BQ]`ޭ$%x;RrƧO[2>en}uSx8~p]9r ]oZu){aǡ|BQ]`Ox;RrɉO뚳۳A Yg1E" -x\r2[3gn:u|6` Nx L߻^쓤iK." XΦQx¼y$#d)H&Cɥ:OQx{}aFۅ6eߢEax{cSNF8yy2SRKl6kK;pM [x96?C@|(-wMm/J|6'%=)kݢa7(ExU|fyvynF fbf fblw# Tx8~炙͹]QTTRCyyT4ț)fѓpΑmxP\ MLmLmL@u$?pxz8<׶aYGڿ#7x Q*Y>5x8~ir^ǐ[x U:ٱyn2DޓrQ9FL=x;=Wlƛ7[o2dnzuMO:)x4[udַoZ2ei}˺-/q ax;ZaZ..Լ..RS4xU43 YgK 1x[̸qBQ;-nlj PLbȾ,u.1A x;tiw٫oNT? , xysdCVee̼ҔT%==}$}̼܂Ē=-xUrTfOvOF fbf fbl {xۯ_oCWɻ 5p51*\vT XxƄqujmE9qx8~7vq?T>em9.=y4?yTV9]\xk%_r2/-#dǫj@@Ĭ X٦P Pxz6!̗W1v,MBGx340031QHI,IKI,.N-fx5Q塬ZロWI]f^Z>ô_S6Oc*tc?MPEIY%zE IhIZk~w_.Rx[ xT%d$aG l6 dQI ;NGę Zm֪mֶhmk[oԊŪtCֶܱPV{νyoGyw9sϹYX"vCR@26_<+%A5#1ʃTl}88Z-MIřIp%0릒+8]bJօuӱw^l41\:'(R\D"vIu"K}2NǠzqbP MAjɓ˱ה eT[V.D6 `Db ok{$nބQ96DZjv bC 2te 5b`G8ٴajV.W\0|.6?%rCO҇zR)Erk%)ņ H P"=DLWC!YBDq:C9'J33gU2ܶƻk~|͏i~dz(%]eLJW",: !Z <@xL*X+tM&C7!tؠ+&4€n]S,pvrz2u}rAX4gj&ņRP7&+㫃{#dMh|Ajy6X$ IbF@,H+Q!$ (F_J۠lU`*ȇ $AЧMF}e>0C,s>kI pv^næGiEs%=C|f,.45P!ь[bǧgu^{p 1O&8\#g܉Tg:ǼcCL͏e"Ôj<n Eq'qaq Z[[NcNJ''϶DAẃzsĄJ JExx#&}4N6'^ة.k\$b5HRúim!r,CjkV/;gOt0ՋgcG/ފ(L K9m;Fԋ#"`3hR"Fs^MT8NzTxBDal%qk,xL)13IM(6#:"Idؒ]V*q0#by&yӶ]eyX qk=˹Lqu-,Ifdt$y@i WĬ<Ƭ# 3i5<{.&\*&d=j"1m V5٘խ݌ApRl6.ZrXYj~1&J mɁ\0^kTŪ, éW,s؂^l]kⶅ1U rw.%mLӣ cw;\bfrޙ'wÛ5eg>C!s8 & <($*5̴T/~љ9`0l} B,׃{/ WN*'8ј/O6黃AzvU"-/.5\:H8,L(LׂL2]eQݨFBQR:u.7Pt XK/4uPƆ (~e%4P1q!nnL4cɟ•YsDipp-|9Nd [ϛ̉ _j55XRnl`d$ GvᴗhLf #(ͭ#܏, BAFӟ~irAmK*e"=>j['>nfnlszfN 0i }pnzyKK uf/I.ۗ$m'$ǝ?b;@A graמ8b',<_LzӀ3.g0z~${V>g=LًsEa'lwbjSO ~J{78k3 nH@a5ÍR 3s6/95y# ^rc$4 C5U}ߝxKeQ3Ψ xK&.&ڸk/WU.o-[GC_H3HS@Wbm##c^:/y<n\Bqq}zq.D4[u媜5ݹ*jk+N 0c:"tST^'I6\Wv<{ݙzAc<\ ׮5nŒ\eo.c6N}NX'(/*ˌ2ɒbvf<.Bv9|S'00vi &S2:ߐ Y Qzه΋  b9',Xd'3,C"YXb[e?e?=ΰgGB~~(2gT(& ңOO祇)4Q9^jG0 5q5ڍ - emBKrhzrԪZv6V9"2y"YERiM)t\M*xdDMڹCQs!iB'ji@Ʃ p2=q'-d@HԨt5Gk̍mBN0BNJ^#^#5M~Lj*t3c q UcIR`P3*$WA޷:b2Ze+ M1`1g;/ LE =4jnt8H1 ?PyѾYPhM}Q۰cYȷ퀶sދz.|z' vVaJ =yvݵ;!+AOEʃiH"uzs8HU;2}-tg*4` R)9ƙV…*Le3o W+teB){p}T4ܯе4# Fy?fNx8~\^6uh.]y:.b̺Ndi 8ۓ 5κ xPyd6W6#3131vm.t7*x{#KwoL[f-,xþ}C> "ύ(zq6FE͌Lxv9 'ys7Vyfx[̸qB{ K[XGN L3x;tio8SmT=uU xUo @@Ĭ:p μxk-<}#3131 l] "x!lƘՌl;YS؞#W0ix340031Qpstbx@B{Z8cI2Z}e~٩i9 {]1[-Gei/vTw,L $17 a\2qs϶~1>6 ENK}hs8= r2K2SR2At^dy'Pa~~= bK^}f_>Pzq^ \sjN1S[T#FY\OӸ|&7•Z uQFByy%E SzpOT3EIeXx?߇f}Ge%߳y |J +쯼XjS݃P\WR(w L 6_j߽Ժ\ !b}JR<>%|h?J.=3 VirTXZQaA/++.{ha3Xr[6\?5j޾ݖØ }SAvt18ӣ} )? ƭ>!9>[&YWEۏE}~J*PyմqއVr8g]7.+pIY@)LuݥE1uwL.n*x{C#^L-n@x[$@fC+#Y<&n xkih"CNnxukC+#*]-nIxۧGC;#.F1*n0x[kC;#.y%nEx5kC+# #|nx;.~T|C;#.F[.)bnEx;$|@xC#NFK(inhx{"H`C#扌-/xnax#KzC#扌</\nnx;{wC'#F[V(nmx;/tVhC'#*9nxx9sC/# #nx7oC/# ͬ$n[x&EhC/# (Mn!x{(u_jC+#ƛ-mn:xQRh#n x#wL.nBx;woC#^Ɲ)nSx0xT% "xk$ٜ֞L@ ,@̺=M Ix;Yu:f=z70i͂Wx[̸qBHk~KztY $x8$JkP®t'x$AysLϙ[>gǂ 9Sx[̸qB-{ֵ.,h {.B l x;tiHGݳ۳̺-c%dqI.[ F ?,xmSOh`RdvK֮MZ3cg2yEbcO sBzIћKRDXy~k߯*ڑgw.˳z$:0 UjaDnM,2G-`nV󲅴W6 Q6LV9S)3$ws 6[ Jv^wuA+x~`{,j]td[2uf06pg1stEm6.= g 19^]b\84ڃs0XglW|^dJ'@24eM{|iÈ)m.A.mX.TMqZa0+r"C˨߉Rx"%a16 ܌%MlƔNF>Zdz4O /Sw3Kd%OEe\XǩxV!}|›bw1({!qg8o[2~٘D/K<13tZ. 9jY H,3WޥİjTĵ?RCLX=!`bzxyǴg߳󭇅&imX,g=9M)}Fʺ0i&e+"Ɨ /G5CPx8~ݙ|=7qgn-uyxTGr)'I&|gM@x$DN @Ĭw2 dxxqBH#ۼ?n)QμCČ\ x  [o^P滪! Q5Tkx:UuKBk\x$9D3K; #313۹XDm4j֘F fbf fb7[ W  xxq,Dw& MOSTvO\ Wx[QPPPPP֭lQ dx[̸qBȔll53-WXvlF fx;tiHݣLfϧ5 Fx{p;`EBf v+M-J,/RJ͛/(@8Mx[Q;f/v/Ffbf fb^lZ ?}x8~t%Nf^R(KS4c92Shh9p#=s%:3o /yHaB˃B3#ˑ-ױQٱ,hYbCV^\/G£V9Q/zN5rb*ȍcw&de8nc^S.5(O^lPrQ>/x"SMUD)VP6Y;پP!BD:ChITĬ9SU(l ԡlDT yvj)3:+Lj%v_wˆ4q<>H*J+c:OSV;@2P 3 7#^><<K5(tҁ3 ]aY}'v]Qߚƺ{7AQ^j/}^yKpUhȑ8dǃedCP:AL&I2^&'/) jljrQ#ɖl\QJ(RƔф fv}v\rhf՘ֳE[YPW:VyFf/M;s[;ᮎ`4dzPMυn3hidd3"%6u'`~\egG\ *(P_|B87y٬ 'lL&]EKAt<Dݒ+@}ѿ] FPʮT^Ď`WW˸.Y~=bqNEMq#IP-+&)At [d@t;x*ZU @(c<96”a tws*]R% {7y^5(V˷52Hty~ GA%Q$=ev~1{BV'= |+{V?g~Q\??k_7/JR"Ed#l=+*^[Wy3{DoΝZM^ ?h[@v?}9˛.X' )a,2h-^ʩZ;;0L|{M4SP紇DVw'*/ I_ׯNyIa9MSd^j O錄q/J- ;}/WYrm?]2O,`?|L:h0`~2~ՃI70=ܞھ$d얭U΄?͚+7W#,aIlhij_QRc[ hE*ؘ _X\2,i%in`r4TLb=j`YĺWeU f!֣v CO!X.^`288-R؏rsifkI>, ]oMtW O4YS@=))6C,ͅ]t-_V #4yVdW ݜ&X)i6`6]0 V u$N\u`mQjVMl\g Aiۥb03.Q\݂ #^G< )tj`"m~rΑs:گ-8|<yv|]T0?B[dYF9nl4)|j`cHHPur*JLʗvȉQac \O΋!3QU3<z 6$Nu` ĺU'.ԁG#*ml쩴ܭg v0&2񪅂$֯V 9(kj&\v*]/X W?lp~ mv9U<ڎ~&M7jy` )w>u` 5łq@-^[brb9ƎXc7W x<--N8T`epx1.Tdu  %RR8Η­h]Z5SFj8ǐЉEt, ֡Dȫ V>S+8.Rxޢ )XIPs;N+8+Ǔ‡EqM,vNԒHt%!)@!=,SEdpɥrp+DZ[ <NثN }TO~\k4<c0{ !/aIv|b$fjl TQkizMxjE5. |8/д V BҺ&ED{.ִh_i?>sh?J0]E\z5pX˕…-ZV.lA7=\GЫ v=AQȓ_,tXHrGT# n]o`!ݢysX>iމݮy': ZȅQG\XAJnBLnLx%[k<{ƋɽZP vx1kG8˂=5>LCZW{Xk\#ZjxTƼx1-!UX%O܁ģ`yh'ShڋY]>Ӵ7viq@G=#؋eqjr yBtBv.#(W5kD;x_״S=)@b)+4 ,-:ǾZ5ZޅCn\XCjn?z_t*Y MtW ®̼X<;nBr)|XFko-2)**XP nX5F 9eP[ddTiO/ɓ w诨WפpKN} &]x^,5ƫDT~ԴG&ODT~4]o~!:z~<~ט.2c ͐=}?l/Ae0SpN=Hs3g JOMh axחEO&E)Y9W2n؉se p]8YC5w^y7W+5YҼ N^y/NSkOI7bi ?Npm >Bc8Jk"wq" Ndrmn!0NZt%W6@I{j%Hk<@ 0E NhCj^Gj7T9Kj7`Axx|^,$ O ,ƩZ:o$^4R.[ p*hO$}O%,v$77M+\ol(9`*^.|7BRZ ^+:B$3+l*\:G:YhF+o!=|!£A,H'5tqi,"2/FFr` ./j,%92|G#LY d fRX5ӭ`.3k## ց.W']ţ8Cj4%:WIvXy,9.oov ~WAI|2:OA<^ 4 6Ptl@}A/ٺq>~".&ൈ@j,Ei|1%%|)04{q6Vhˡ ĝ|%`5W!_ MW#M 񵈙sm0hp+5q|#߄8/f5=[O6ē5b,S 6 n?gj7kCܦ)Yn5},ʻca'^/.G}G}Υ_G qA|L[Bv"_B#HCģϒhsy{8E_r)u'XHē2\| #x:/+G8 u0g̹%99dy^\ wߛ! J&Sת%u/ uWb@b7ʞYMhFUcy \&7 5^ǎ&R@[mOKgx_E|YBZD|? Lwr)[,GA~AEb )/dHK*{-"DO%%'/4_J.liM-GX 1?dmdߋL32yK[I ս#nd9&32+IEД ǔ_k~3eJ kh^jlA9 S.z1Cj kTMx 5CSAhxƃ1NlVG# }K-EH$6%kN.Řʐ 2Ycv QXvRˡ\Lr01<Q@TRKyU5H-'Vw׺ -2eh& 4y%#FH?C'Ew/P6p&Ha25eˁ-'fWtt|k)Qno"#sHE ; QDʳh &פ?wyڒqXU{)4[/6 Dlߚ&ckljkG:0q<@)n10IeD<,xiBL8< ˇ tfssL]Xk;lğAp-<P#LsuaCf :cA,~Gq_x9~3o\J.;+uEP1A.|)v3_ՑPLgj#;3fjxRs[3gn=zuq8ύxk걒yf&]x\ܱJgMOη:xrGyfyvy6F fbf fbll_Ň v?xxQ |SJ829^Dec]^n;e4Qq 4x;x^azY97_Mf\#Y吚s xz^楌KA Y/ed Pp 6x6~5^vaxc+ e,=::*BLk qι8xrGbittF fbf fblkU݇ Ex{}Bu[VVϭ+]ԟeX=i(fGx{qBb OA Y 0E(A x9~&xhэfE ֞"pki1RJ a/'SxRlux{Bb g>cl}K3֭•%Zx%.. 1worSO?9 ē e R"Fx9~kK? 5=±1 տ6C{-L@5tx{B1[3>gn}us0eۘ'x!..f yq+%׍(Mҳz q hxU6afiNt`q0gCwJ4WW5~CQXm USGk100644 GormInfo.plist߈Ox GVI1'RLxk<*DiӘZ1NciƺukE* /_xۯ_oCӛw3>LoT4:fVUGB1Px{cSNF8yy2SRKl6kK;p {xi~ 6PĴj5!z<n"0SST/w)IxVٷ~~N.`Ϝ[7_'y> u$d'-S\/ xrG^f3v3~F fbf fbfl YxuKrҁŮGB-R-hлaV?ٍS4ff[vԇ,v,x340031QHI,IKI,.N-fe)駨o:Mb]"Kg(-pI?β ;TQ~RVjrI^z~Q.װS'7詼tW2U/xeMlEXH[J(qj\gf+nlDZ'q&HBT; Z.ZJ) !6= |\8qJāƯ9ovvwf.yK;ja} ?vᶫ.+S}\_S˗z_ǂ]^z6NE9֒^MtZxQEtl O27fi FH;NahLB⫌)Ɲf43 ibj qT~LuZt~83=/2 @gM`i+Mktˌ†i|ьl2ng4+S?2:&L2 GD"2nj23ah:[i r .YQ:NSi>iQ'n5|F˰u .GcpkGa{~ZHC9bS|WÌoN{؁xslS7_|vZ!R*:@GxdէLl{'|=)UtFy Uo>,Jw~S>{ [{蒚69Q >'J;.J*'=e>& ʛ輚ct~s0P~R!:$JG!mtLyP~NC5% 97! $/LzHd&B2~pcob@= –8 DA#XЬЌ"pi׊س<"^^+^"1& .SҺ^&mNk NZJ}L;g$ffI>`MnɉSaq$lDIx&Z2Sَ3U]]]4jtF,Q4$C/1S 9؜W6; ClxWkrM#\it>? ox[..$E k$+qa_1lh+֥ym&l Pv4Վ^NȘݍSLL岳e/7FcݥtȒPB` |,/2xk[g|zbqqb-z LL TJUn)xk40000 Documentation\zw`YI決 _y[cMBHUU{9QLJ b"xۯ_o ȍ9*RY[56;J*9}a,/5fxk˱fv6+xvxdExrGNf[v[AF fbf fbleo 8mxۯ_ozFUjUR?'nj1+jٶ6x;yk X&n~rOEx9~kvz=Q0mnuϱ1g浣PVA>opxrGvfwvw!F fbf fbBlg nCxۯ_oC0H;[6=u¿LJ׬7D0x9~R . EU`%VA1v\o/X9ix{}XV&6v6v6v6v6vmlPaxۯ_oC0٥uRۺwO:*+!gks: Ql Nx9~*yDZ#CwsG1 9Njݠs@( `x{Ub[3gn]Һuz6)x Dx%..G0Išh|w o1 \82U%xG~>>>>֭}l$ ~x9~f+BCдt ӱ1DRN xVq)rٳ "x۳Eb&[3gnu6[ICC"xۯ_oCHɟD .qY]ѵUlGx8~J.2^o5zy h UN,mUߟxrGYD Ye ex$Ih<nyq&r}L+y q7 =xR~,+p[KC" 1nWP YB_ٗhZ4 h UN,mU͑'9xAbzƳg[2en=zuY zyx!..fpҏ3ά(z}&:x8~M ':n jc .1a^ׁVVG3`} x[^b:VVVVV֭l  x8LVԢԢ͙,s6pq+dl^SĻXgxQ~YXCןMilPBґ-hg{HdճS07E / R`8e#;`}XD"xA&6&6& ĺJ  Exq i"gW2NTӽ9Mt*Cj^  x;..fpҏ3ά(z 3,hu\DHx[}Gf^Լ..e X(xQ~Hr0΅,t5s߬?Ȃ4dM=ySߛsKHw7ؒjVC,j lijG'BxrGsDsd{$#3131nIN jx'..'100644 GNUmakefileL:dtE~ %Kp@', 6Ҹ~wmYX7gHG0Išh|w o1 l,薷7Tb&\fypҏ3ά(zNeE]"MtTسL ,_aN3J }KZqx8~Q7TlhCAp/ye/ OLBPXx\)qD3Zg0`iuGa SxxqBޑI^=:T\"jFcjČ\ @ x8~(0-玡SmE5#ݺ1yߐMjר@~Uf'btx&ܦ70 o P{ xR~!Z[;J9z:فҳ4ߐMjר@~Uf'bt͵$LxrG Yf U x;..} In[zYR: cςj4aex̿85x;!es%,fLxR~xUk/u"ܱ1{-;Rbv4ߐMjר@~Uf'bt6'BxrGgD3l;,#3131vY6Akux:..ИT>T+U; D8cf Emlb+L SxR~QDȾ ˶+h1׹{ %4r:~盞c4*mW%fav˓s(@xrGb\yF fbf fblK oTx=.,'100644 GNUmakefilen;laY Cp!'N  W >Wx8~ g$00eU7lmz2Le~A8UMxA,&6n6n6n6n6nmlU[.IxkeleP(U(յc9O[˫l- vx5k@JERз ͠uPLb*,F/g*Dg|0px;7D 1n4ܮ| _xĽa?O{RRQW}xQ~S,b+8'ؑ,]?O E^g'giD>{A+) xAt<+x Ya  xqEcG:.xkeleP(o~VYG" Wx8~G83<) חQ> pe5I`2DPxrG4mJ۔ YoSb C Xrx9~IIʠqљYZ1غ1b;2׀$dUrrx7MT[3Ngn:ut\ *xQg oKm˖=G=eV9,rXEZx;>Ubƹs[2en:u\6-. .݂gxuKrҁÓW{rڶp=nTQg*'1zڟƬҌvN8cx340031QHI,IKI,.N-fe)駨o:Mb]"KghPXJM<֜RKrNmO0/=uY/G֋+dxqsyDq_fF&=jx9~vqҡeqBb*u19ێ؀5#>-on2^|Yx[5E$g[1>cn}u36N @4x;,,f.@[q~rXz! (OlYb,Kw|Ax9~vk;;"+&=6}1 cWgn[9ot1xrGbkT Y_SeS>x!,,75{oR xrGbQD'Oj@@Ĭ?) xw,,ORY\1&[*;PL5A rWx>wtƻ qm1tXy,ø3q"[:75{oR6n=xν S--+"mx`Qaz-icx['-Ѽ}#3131lM޼ N`xQgP~.;WwE~­ M Ax9~-+;91c ͂#ZX1l`?F{ҬM$筳vxkꖸ)Ѹuc ̭+XZWn]v$ xsBgqEt)aR-fn]nGx__?[0`nEىBxc+{~QO~bJf^f1,qFH ɸRx{ukufF7K,L ,j x{W| [/0^`n? "xxQ |SJG[n7xp5!O-HxrG  eyCV?G+x4i+.n\L>4i( l]x;:`<\r&Fx8~Ql =:6g.$x1zR,uظjsեAR2x;CxZ3gٺ7| OxkeleP(bbpς ebw/ x4i+HhzzX0~ yxk.xcwk7ck7Sk7sk7n߿: ,$xUƵk[2en]˲u-/2 *x8~Q}25~B܆c{rry .YiYI !KKs5͟\mx;E'{[1cnDzkO vx:oJ+]>wk&%p9p*[$C xVKlE I6qG{qvi@UQc' v'K]ww'm^xxF *.d@B8 儐8#UٵkTo3zwg,곖mk:sVd6dRaʆXNyv"&HNJ/@L elƠd){J 2V^s-qNE@)~)Yfna˗}!jk$'Q 8T\hBPDm%Gv:6QR4 Rcm(yX']nvQ.zH:"k ,XL2=cIs |\Ur 4i L2磆BzYmd"8 mmF~oc"C{!88 ts ?lfXFiR.hشW Ȝ&5 ?pze;{7[YI/nyE#?ǯ*swT5h!رuXc4$?a}JWliTfAE!8~"l2'WRX;}\jR4lz?:ZLĩ/d;e?V Ÿ:97K>]䣩BgtʝcvSqד3w2 ^춂U0G"P妫5"mcT0`?jc'~Hs ,k7Oi:w~G~|GYSxk-tl$4f!%wyylom.NKqaȇ/H0W˜ۆiIJMvOKz,C~gإix1{BBjT'yyWs,: qx{W|l e~6V sxTЃK韀-hmfx;C|;f v VF fbf fٮ*Kx9~gne[Pr 2Jg۱1 ^Tczb]qpxN[[o1bnŲ7  x9~̷HMխ]3\㥩N㱒1,5.&o4Dop~ws=ϊ^˂~r)LC*E100644 GormInfo.plistA-f)G.*5w hZ\!ی$,Z7CΓY-9z-Ecŝœ"GZ~ϏfxrGb&6;6;6;6;mv"ݱ|xkfnf(";})Wkj{֝~el939QƢ ݨGxqz efpLcgJ,\;'C *٣xc+{~QO~bJf^f1V yq{>"x{ukufF7NR(d_`h`d``dU Ѕx¼y+'K0F3O.eVax{}BH<y|hunč))x@} uǔ@ 6:fio^ >6x{}Bk'?Dx]Leb .ɥy%%y Ks(yzIk {me A/ ͜?xJ},o32R8'eי!L@ ,ۛ8XQzݵ>x H)󚻢} vwڛ\'IFx9~di ʺ<2`D槱lLx݃04@"NRh5:xv_= l @̲= $x:UD/471;5-3'rL -l?/w ͵8$xv_Ffbf fٞZ ݷFx7~`,qG8wXnszב)󚻢} vwڛ\'  xka*`1}.ǂ ,x;vHm!_hpk@k|[HcBk0WjEA~QV% m̲hr)x}G[D/471;5-3'-RVYW|SͻQ}(P(xkWAE/485 ?5>-$1UV!5x,lK8X7g42Wx{GD/471;5-3'Gg4zv)mTwgLMmxkB _hpk@k|[HcBkf}FvVL ?x:UD/471;5-3'q՞L.|aEۙ Ox5sB_hpk@k|[HcBk ,r9X&a  x[˶MD/471;5-3'!'U#鱓_Cxj&Y?ި OvxkB_hpk@k|[HcBk䵬r9?F6 x31ԼbnOy7~Ypk-z̼b5k{kG !JJsT3pyqԽEؾ&13/aю3O̚W4}یU&.% bw_ qzC|:oh``fbʰ|U]YwUs,73 :xe T[x}|!poZrٙ~;x `GeK9_Wx DjhsJѽ5 px31w Sܗdv_0nj_hnbvjZfN*_Q-g,f<8sBD Ĝ\ųN,ͯxJ|u**NF fbf f^:5 &IxkeleP(5_>0jjX9_˶ 1zxHjkɪe#GП d>xy5r O~bJf^$VQ,q"zx9~{V r+؃qo1bdGo^%W]EóN#kxw]xyZ1cY:55 ͱ(xJEF fbf fzM x31w.)Y*mv_hnbvjZfN*Ù/geZE.7_ːP"1_eG+vHe&1p!wc曊:KT}I3ͲZxJyf%v%^F fbf fٮ9 x}G{:;Kv/ce>ֽo֬  anټ/xcSNF8#2Vxukuf6S0J&Оx¼y+'K0F3N.eVͳfxtV|i[?0~`n뢧k {x! (E:: g9L%ʹ>xtV|qLD31L1 9 xv++l|+&'7BcA2QmruInQ<7J4è-ApF\gKQ>^է;ěGP. w^|g@F]feS> 2N>ox{/Bjn }}4[[?M.}ͧ#'u( x; ofwG<9ũ\\ k2o kxk.a;dAEx~\|1[3gnϲu>c  xxqBȬlyo8yČ\ 2x9~U[a꓊r"ךB}.p.Ut9p 3vv5{͸xtVfyvyF fbf f.Z1ux cjRݚ&H`98vw6l>x[ C|*f_ ͹xtVA X eVC lx;MmR{'2%Jjx}G{T}"}?jZY6y_ ;3xkqmtRp/ HI-)I-{y3Gq6w2da\Vͺ7xtV~l3 e 6_0 9x:++8 ^|D+r 1 L ol(zrr*L$ г} _ lAx۸qf &w*L09x-f6.N ,^enwWj[x{}9;2ţmljpG\_ ,x340031QHI,IKI,.N-f8]UiDOxz?jŐ{xugݿfFQxT;s@^ɑD~ƶ Pn/EI%x0FKGJU_𳸇'3H#jo۽f,>ɐ_G.z"YǨ Zc.QQ/d D_~gnBT1vfäl@^`^G Bg|I4ȂاC3q,l. p "PK 2lBmiJ-L:L0mK(Hr  e0O:9u 0V22Gg9x9i@v>{l HJ.nMD<*iBlI+پTb4U-r~ /bUV[GIpA}eL,\+n&Ua$4`ehjT՝+l(dP"}.'?I4 6SQbK!K9iZ)b3 _=K d[; TnACO\yQxFa. y􇛣|tM971ͬ~#!iD VbPV{)vs|J,Y^[/,|evCE7IT=X`xtVɗ?M[xr NF fbf fpD9xJ++'100644 GNUmakefile?JQ5cH'MLkF_duԽҳ!=Hx;Mq>>>} xx,d3q>g /`,y Fe) y)V @Nqj^JjW5BtqiAj\"k LP,I-.K ((TM `P_`\WT=_X.UZe;&dGRiOek0T)P{PSd,+Hv%a'x9~Ejpw} ۏ#c15yv1!)ai蠳8Hx[|.#G[0an=²]J ExT++zJ{!6t2+J@6H m;l7f + pJ+d,U̳.  xK|;w[0anò# YxR~Ze:9Q/e1/^c0"J@?ֳVo +lC&ҺwA}#HxtVf<'x e S7 xr++#֛k0Ğ"("ܓ,/|ږBu=ަ ֓zig2dO⣓mv=;^yAC{ ?m0b`JVI3nx;wC4+cVF"x31wmRr?g}4%-C3wԴ̜T3_˚d 7]Zo1'(>MkiP VR Lb(ZN}W|5镢o;|]5RtxMqŇGHݹ"hbhvE(0scl!ТrZoGMe %~mx{sC) c*|&1x04 tK6IC/SKx4iBg φݳm鼑g{~Q.%9f椤2|L޾gm2fO wx4ieL88ifպ'/dF ]xtVz{rKK򋓋sr2ҹ8ۭ e?kux!++ @4s陣_Eտ =lkx;+om'xkeleP(r\MDƜ$ Nx6n;M{Z]L ! ^Qp)@~(Ui*Ӽ]T2b7QxĹs1LfIBx[Q:eO77h51111fbuLDo#ox!e\`uoz-/y;x!++ \qb&,2 ax;ߚ$,΢^pnަ!yy Ktx9~:6muƅM򯁒-ߓ1RR yh>xeL}{}x;N7s'{0Fp? @̲#URLx!++"9ͳ*9~ ,=lRunvxuuI k6y:OdxtV|*jjAF fbf f^-*~ h2x{}7HqrZ;ˎeY|gSxxqBZRJ%݋ˬR,jb;˧ H x  کWWTB󣴆IlxxqBHB ev+Os xxqBuVYom@rcOOZJx9~3=8=Nͱ10c~e6˳PxJ [3gnϲu>k< olAxOk42N#Px9~(sCjq*aɱͱ1 W$L| 9P xBr٭[g3fnͲu6 scxu{4hef̈Y1.&2̌RƥdLB֒hc[\R^šT^㈕vo9ٳ>|{`gNYYZ0#Ylb#emG:ĞC(<> ֘?9+%w !PofNVKzWг{,B%@vg$5yXO0C i/ml);٣~ ˑk5Kv?om"J˥B`gZ7E>SSu,.‹Jy٧O׿ GT(7HpĬRbFXڛpp2YBӬ־5A]-90O)P׮o+S.ڽA.Bo>gc\>ǙaEESmkF3ML~2jPi`EH|dSAn5.NTfNC&D9@ԬeO_q("&l& U%`սNI1Я&p &Bޅ9nY@+>`ӧZQIVX o5a fk:\4Yf .Ɵ q@ЍLkp}};pȚ b2g=4~j{ ^rxN1jvqP ]h\RTxi:<\'""?/AzQ7^;<1s˃aWmԝ|9c7iCZFM u#AŦJz>.;e{OCʨ= CϜ0Lul׆%k%r.>MsRFZo mg >21~=V4mjE&9՘==4H/?k]6?v]\mc$m.AEq_ŗ}ܔB֋bzOH0n\G K'+]^G&ANjstO"!shA-K r xtVl $ e GgҰ ~x;q &39d7U(LT((+|_dV̼XBqj^JjQ5W-sޥ x31ԼbǾ<ԑq&`y) |yչfNymY Qb䜟WRS0!?c>ϵOO-28n Qc RZT0SNމvꗯmˎ, L\K*\|_lq"ǛJ(&fe2\ul"caig]Z$x7~I@>OjYyTS+v4A2<>IiUU9+ |x{4[,NNNNg: FxKrҁjs&~X~݈*<g{/Ax+-(r{v\տ6(n^ TAIx%OSAiPЄJo ¥Ӗ% 1 %D#@$D]0; }w{;݀? .oV.z,bZ;^ g`V"y6g6es,|_$@=-(9+R ;,h.g!Z` (>H]Uhݪ!gkJ^1Y5ŸِS .jC%i>1t:_,pVog j< r1〸YK2gM2΃JJ Κs4AJg9㜵"49c@O褸i1ɲzuͶ]ɷY/'q6@qTÝ誮oÏyΆn3tWW 5''C*\R:Zy\|\NI+K[,'MʷwȆr\m4M/KYJ#5TJϐp-CSҫܪvX DZ(s)+?'gRz\/+d(eJWah@oq ihªX>4` ݩ٘ z 1C%&P"seWj;E"0|,dQ$PߒP-m g|os[df/@K Qha[lkDzPttAt~oc~"l wA{ vZZx7~`|Өށ~ ;2<S\!H9ӱ z6x9KLjjjjլ ށ}xKrҁC{mʮ|yP納*<hw@xx+-(zJ72.dȘ" 8W AxZw|n,@Mv7}7H  BAHD{] (WT+z-x;J<3gf̙wcO평nkYg]ޤʪ5uKDМX^FHZxu+`HJn^7gu:zqUVϫaRX8&;5;w Yե9I'[)F^lVjsG+\'sEr:;6N2n-$Wnc2P 6ȂDRxv:L*eRIrp% k$˅ȶf)dbyQ.SAQT%*DQlD1[4VEVZO|8 Op-Z\,}[/lY(x/"_e~T4)0,!ƔB( .{B튢(*kUg\:kZit|}>}b c}Vq#U(>nDYZg.jԟc} od?5ZgwRh`Mq3; ؗv e_vmsuDywm8gl0pDN|@?m ~odPo~6d@`dH~5dPdXﴎ2?~c2_~7dXm9y#Js('o*!Hկ(!IG«VNtGTovmS"J$&ޯw*{$z%_ad$ C5%:X": ˃æ* 6vtF@cU ޤD >5YE aۓHn^D76 O~Ȁ] H_)d6V"ٰNR"ِ^X >Rr8u%y}NW"Me_D>O3PD ?i ڣDÀWQԅ0#σCR'ujs)QQd',^/A z}4iFԪ}~HW*vb: 1'6tm Ѱ`XÔ8(C/GeWJ3d&џaTѶTV k*1s);o!OD Ú`D7=\^WG!Ѝ+#!#ߧ+`LCB<\K ї1; d9~U|C)L(V:D]tvL(9/2tS^Bjl-uN)3:hJ\B >& GW[*t%\mp5NXmpH7)|3heģv)ҍ~3?.xX~VG=`84(%Ca# %aG5K:D箙iWMӝ(§;v/~5W #$KCT73 k,O!tw(4q xNp0g0L-ijxi/%VC&%1BO1V~ʗP/2|e Aʗ $e. oWPc6az鯱0FVeEjE7PoO7[yy a/)y\ w)7һly~z tC1!aJ/8tR#Cc=vLO Oj)a~j1W0S2c1J p &ʯ/׿Y1}Iu|_3J|ch/LG>jhmw|`*fVGh2.X^~30moFO qKTO4ԑ6"툝I~Y?^j$ }\6=T+.PK&WNbkx+ى+/ x"3l]9)L!sܓ-JpJve: $ MDp}x nz % 3 /``ʛJ:z8 8p+%]|]HI7QV0ueQhy,YDŽF᧕ *β9t%Lb.~Ҳ=%{Õ A̒'~zR@[aHZ5 zK ØzK  Q& (diztJSMT;eSidCSI͔h,J7mRCSy&v@pٔT-PChSNe*fh*r8T =9("X (1oY;̍y\X OªD>bkcq Cx'*aʬ #X_QDvJNc*kr0۩LSYڇEVNcꖜN|ֿ.ћGf-(gbZ٤dus9n8x*g<8M5c\…#\b{ZoaWJi, ; #kp=.2,= ^L8 H8j'3^)ϦFqKxR‰D`l">PfGhg%D|I+UԘbDv`EO&⋛SFr ]/Egl s/'WX^ID|djj5GVe+ n"<5'p:.5:} p6Ty5Ǝ p.3f-027䭰g9Aupke67W;Gv|YTZ4l c wOw95eJC* gqOH`&k'Po%3xTVbم=wRgr"4l"E8z$70*\<.?Q&^o'uՍK.]C"㜾}Dmߨsh&-UM&J]P_=r.l>޲hTv녫>"ҘS|i;>Nsj̫nQe,{D^ )[3n5ΠMxtV| ,,)F fbf fٞ%Ūq ?Dx{}aF-ruҙ7l?} 댢L ux!,,j VZ$30^.n~ -x[& &lX!W#Cx9~x$}r[-:8(#,1|:5\̀WF h΢=xtV|t{R e=)-݂ 6x!,,j T1ynEήV~ pEΣxtVyxst{4#313lfe> x۸qv 򦓕LXmSY{J Wx8~sÈQ4"Cy[F"*! pZ鸓GlΤ/xtVqxD2@@̲} +) (xk">qxcAkckSksk։'~ ޮ8xk9Vk}5+N"2L 'x+-(RsKvzgx5k#*`vv`vIΨ+sC$}&a\է;ٍi LOx9~5> GX&ĂØRI1@OG(?^} @xk">IW/_L[l~ box!,,_@ƹv2I=5 c>sxuuI 5T7yW8xk"/\^ Y2 lޱJx=fyfA&QRxu$U͑AUΨFxtV|Yx7 @@̲벣d ޲+xQ$'".#GٶF[E+61.d,, +x+-(2fߍyjv鷾ޱ"c q ,xuyt&̄%d&dY2I~Yo@KC.M^FiQIN&`qA\P_"v#Z-j)VAie`1s}{n&_p5/le柦 =z½Aܭ, xmXWEvg-{ >R36ާᩢ+ 7W-Qa 8VX~VX2lGH=,;/H%Fh2S\eݤQ+(^Zu&a'Bnna\#hޣ f:m.o lf|jbl5B by1[6\?oc{Jw0{RwP.ʛKTtr(#pxT=@lΈq6eK"'TyӒy5>yd=eCdjݡcוֲ1-' dZ+ qB/[ T,[ q8-y@Z-6.nfD{`cl?Ǿ@:&§)a(8_n/AU]`8wnc`Ǭ6iۘ,v _(;/a̞g`wY=3<㶲eomz{?UMB:>t=%oyg{ [\iU啵^8E|AE|ODbp.SItFKs5QNI ic>g>cJ8)eUq5+ /䐃㑲rM]]iX7Hqi_<\L 9qoyMRǁ *8 o\tqp*3r}f(S)9d\)pp(Cᒊianܣz`zsNEވ|9XJyP%\,+} \>ڛb~9U8W4Y@Q}X!Dgke]ZdPeљf pQ =Uצ 9uPqv캲B@py)*[VfvUoI&ʡwVW@)3]fˌ4a8yXġ+,e848ibėL\ u5 &7Hj!ʭLZNsc$=H%d>K'9|lP+u-ҫ᳘B 8,ƌܥmZ6 fy&I,#*#Znjq<ăji%.%_Jl',D\.@EZr}h.Q'Qrw8@gC y+54~Y\uPNww&GR _UWEj(Õz>˥ܫq_Ck$qxC77\=-%{1HJ yWK8NpIkjqZqǍ}ܰݍ׀' {nd1 LJx`6EyJ:cX:I%kPyke }>N7Jx& /LDDn&doKYIwH:(%ivo]6qp傲{ 㿼 PixV{pTW}ofGv7Ǟ M(mC@J(fF43qR<8j:~|dTmr Ä#G)Vo9b8\G 'A)ōӰ(En@zll{pd$_ Vn9vZ3#ǃYU+Jq^ @>40 [r,9: W)Xjߥp֒=Ls/G4It}OςIsvWi\J> <5yf e%uE4i9$1ۛ!>P"/d)d%R C0@zHk^-3J(NOB4G:HI(ECK_}D_;+;,"I j NK(苄~ϑZop3y-'$$FcÖ [ܛpgVniPEIY%zE u5ntAg:.x7~ Rn+O/pLYGg\͑< h-e4C@ Yx[->Kek'Q xQddZ${}\w<2tB̂L/x+-(R% ƮU%  cx7~7LQ,]4ˀ:<2@2/Ȍ{2|z 8Fx%)8uc,Y̭Xbm> x+-(R)Z}&Fg2y+ Ewx7~+o0ͅ5Jő<_whwZtPͱ Rxk.޸u5cj̭Yfq dxP~ID^ 5:rޑ<_whwZtP͑#!}v<Ðt佳*xtV|rxsr{2#313lWf> qx;,, O]0qddsHh.V9=Uc)쮧IQ arxtVE__Y2 l˖4x#QjfaVM[j!x{~}BrfFx{(Aek5k dAx{(X6mL@ e6&V} wx;~}BiVΓ_Y$A"Tx[Gl/[1cnDz^P Vx9[4ؤQ\Ld[o1-!w|8& ߳T"bnx;UgƟ?[2dnɲ'ɝQHx,k /*" */RXwxMXL@ e&9gx][f v VF fbf fnz`q Dx9[KDF N5|_unuo1T8z./XE>Xx]l泬gY eYVVm #x!,,ηrc?2VJۀK51x]lsfvF fbf fr3 wYx]lSfgvgNF fbf fɺuj JxxQ |SJ,>ƒ 6].VPID-Qx9[l,~To,mEpdرo1E3d(³x]cf5v5.F fbf fٮzi# -xowv r&Fsd'K,)0[&TP+AHL(QU0B+.,M,JqM fS gd(+D)$gVA@L]L 嗃4CmԍP VKnryFfN(-sllti^&\|RV4j.V͵ mxkjR11\t YAK\5bQEdUӃu.J?J˿YkDx+-("x}+Y>p:_-V xei\TU 3 f`paL@_A,4)*[l_cپ/vG7,,llӬl ?=}9z|#_F߿%8Pm v|sG;kRG#PdaUgGGۢn ;vyGGz+8|8CbWGgR$> ռ\y9Vs 8"F}NChM]P$>3:ޣ[=gKllS?Ӽy.FH|8<dz0[tB 4_ pK9z뗁5_ Ixet! )Pyxfj^ '8ɑ2rvwdžIqzIt=xDzʼn޶^Lu :+Vg}uT+o(i,s9]=<] ^VM=^!qz<Ƿ~#䙶Xs}/91rl[{+EX*g CT pxXs`1t)iG8e6P{gҞD1NħP7hFp"EM`Kf >A,eDܪ9,^P ޒ!|,^:>IܵMАaQUߐe BTN"5ni } )LJ߀7+ m{jn{[Usw Y"an? G%,>V,vE'AqO!}̣ Z~y/ X| ~ff.~oQN߁%E.?7j7,Oo7œ4nH3xmo+x[4S?D:zB?8jo_Yύ_]i:} F\S\˄a66eY3X8M~Qbr73Yĩ#-~:ٝq1Q,C#@ 1E CbLAHC)iPJA*⡩*HaZnjUrC8Xx3ԑ "Kn)<8&Ssfw>i"mrZ>yu(A6CZ2#:v՛o<]3sp ;)ihNӑ6rfg@zB%mx]l퇅 eaaV .x[^g9DYɆ_Bo>\VNfo'|SExP[$r뇌NWo<]3sp ;)ihNӑ zK|ۿ{Y9*⳴&[$x]9"E el Jex!,,72 aS#K `lix{^ujCFg -H6qx{NlY [0.`n]ue Sx[^g9H }F ZtX]/h7>א Ux{^j|9VonySgm*x8[d;`"'3d\o/䏶DW[e@V%l[ӓ bPx]X{@@̲(+2C x340031Qp MNMIe83e̽YK\0zpӥ3Zx<#}ZekkR Ux340031Qp MNMIexxUğ,  |xɹa Bw&aRg'{x>-X3gZ0azu cx[^g9H'+DŽ}.]j:Rj7>Vsyx]QfvIF fbf fٮ#zf lcx;Luf?J&1Rx!,,7/2+e\S#pK{2qx;sTl5k[0an]òu " Ex]XsT{#313lϔb_ xP6>ukߘԵkʀJ9S~A[˖< 6>c^Qo׫mS'“]*:lnx3gC~,iyx{ UC 7nC&ax[w5X7V<ExxqA!]u7^ɏ9  x8[^J~%~lNVoyw6B Bl-cρ\x]l^YF fbf f ˺b xQ |SJޓd)=a0FpsD&N5xþ}Cs@ Gg" 9L  x;kxCd [E IqZ8& σx]l;.] euVrEIFx; '6bl.Hn*x[lbFF,\xtE FKE@9x31Լbdt[tN2/X.{GJ̼bIܱB:UW/՚Ď(#bNζIw Uw11IK-*fV25搒wl|2qI,Idx4]ʴoӓ8%l:"o )d&ѧXR"}ܙOh2=D/471;5-3'aawWl]|rfUamn5x͹sfiL"$lrx[p8v2$  x{{wFFX&Enx hY&%gex{wwQFFۘ7z3Ncwonx{i fW&-y.ljx[%q4lr&x{q&K)_. 7?8Dr ntx*UjC%#*/'ψ x]+en e27֠R2 fx[^gCȯEӲt>P7͹X w δmx{iu y#&on  @真WZQb^X\  )hi'O0}X-bamfo%>LvQ-}..]MOaΌӅ;:E7O^ HlxqBH32*^-!`æ}ygx?,RIMMMMe.k xfζXx{k gM%:6'؛_-  *x8[cTdͳ&ձoy2fu0%Tx4j= ϋAx]sf)v)F fbf f.zA kxQ |SJܶéȵIBqMT ;Exþ} &ȲV^땒kyE\{* kGx;~V}d9 1>x8[u<G)khAoy&=)z;Kxύ+x]VVOF fbf fZ\ jxqBȆY[(62ż5S*SwyČ) DxAh<76T`ؼQ+ ̥x340031QHI,IKI,.N-f=,/n~jbtYL?-H2PK-5?U?'B'e&2,*r̃wn-c -]x[ |7{CBp ^ % 6c6 ae3n&mֶӞZ[[m=PVk/[H73o7$/c~߼{ٶ>C7͑ưnq1'%V U(QT DZbZB$Y@J-lHGe#XR  @zB=JT$w:x4dhX-P__p aރ Px"%,4rq^&y/ӻ.I^_$y[nΡǠ-TRQ xqD82ceGd#LL&iR.U8%A Rq hZ2!iR\%z*Q!6^%8qXf %]fIIEKjТE(Du_؈t<-K0$* k:[6ױ (H&62N?Z8EMɫ"Z)iz.rs:Vdٞ.!6Y͠(ZԢĢo%<"պY`<h(bpBD/5uNMf$b:SⴞqwG?=ww]p,*t,s0䴕%rs,6.UM'۶15! Sr Q# SA'SOLԋ 㡗@/O4^fpF kX%3A%Jȱd6dgQI)3WK2H ƶ4mUiӢeCC21gҹ '0oI3;:Ŗ9wSOwy0 0Y<f35΃f=+Uk֌4ǜ}Cx9Oeo `z8;i3RP wz?v 58[{sE.X _r"RPsGM#\.Y!Zmpa9mVp돱 YmvF+*b[}7|.S^7(>w?.t8@[҄@P7ӱX94V46BdOř0JRHծ-ƚ޿6(NTjZMtQ$l+`V@W+p<1u5 PEllV-;v:޶B^t#lP6\s>Ӏrnz) H@y رHWWT!>cHzzzuye]_оi=:'F"R svb==Qmx PKޣыs*ƍZ^qFU`]Xo=* Ez6۠2Qۍ.pi7L0\;F Y0w(ӥ@Sf f;DߙcQ1FD{FHag!^S/BG[9<B(݅tg4sZjڊ1O"]]V/#>adgM.ОTets {@lͮIMWi~XK80ɲ\gsk+>`ͳe4k(ܱr93T簽Lc ƕt$>g2+"^GaH*v"Ր ު6 S j3DкWk%WB:xc}c>c1(v(Wh'!-TPja㤑= {Wg"C XQ8/5_8^Hcߑ[j0O`iL .)cAw+E_'?)Y.@5yw7b{P89+-1#\.Cu#u,y#mӆF璍L$!# ա |0‡,{@AZfhÃ/"ʾp(繁8Xx;C]#*p'Dmo77wOڟ3؀nexۻi9wxB&r?iSϼg޸{7n!9^S;ka$"]װFka#0cX>5Ka X1̮;tQ%bM̐jK|= e (WfݗzI_ѮVy }9s~:1}ELS6 Ws4;k9k79Ha҃bWx,]m1-o>CA|qzH !]6-gYi &JqJNWHP&db[T2?5<2O%gaЕvTdHgA:', /@)TRH RYSSŢkjtU*Y\d)Զm3j3,C2\v CL0x9[j egT̙V=!CSGVK1"Hp~oK _sn+fެ1]=k,QqJ.I⤬Eu`/"}Hx v ^FB-$.HtA ^GMqs$XũlQ F{x8[?Y'puʱoy-rcn}Ʋkx xQ |SJwƬUBNVNT Fo؍1xþ} &e x׭t @g{v x@t}Y[g1bnŲu|x {xeeP)r6A?㯄EÜ@= yqx9[xSWmlml5o1݀.&il $;l;x{_hZ3gٺ/ #dxHMppF fbf f,! b xHt fiviVF fbf f.ʪxxQ |SJ$ajh>.߷sDLT!1RxۣEmC&دq>qx8[} 8CtV~3b 8oyb{`G :j]! Cx[tCtuNNNN3 CxxQ |SJbJ.jԲ>aNT*@،oxþ}HCc2ߪwt{qB-h  _ϱhx]lefv F fbf fĺ# (xqYEƳg[2en=˲, mx[ƼyC0# Eϲx{y^t9խ[W3fn]Ͳu5]: o`xxqBȃGD'*X3xʉ} x8[*\ Mɋhdo}2u` 7qN{P33`mnxwNtYQ#խ[W3fn]Ͳu54m ;FxwNiFfbf fٞz)c ~Wx!,,٥Zսn EhWxtZt)[3.gn]βu9v* \x8[1,jg 8?z۱oy^D=dᲑ8\ejT,~umx[}JtI٭[g3fnͲu6O IxR[V r3!&oW8Vo1 )PŁ2,g0c4^D=dᲑ8\ejT,?!϶"x{y^1Ʌ,),ũ X߱0131w,c-xK,,>$yrBygDf100644 GormDocument.m@Қ2!:0DCҳ xra 'shj'敄g+hiCũ%0)F*Ŷ_)$zxR[-qk^H9o`o1L%. GasOG9&̳4^D=dᲑ8\ejT,<#C1x{|LtQƓ'[O2dn=ɲ$$9 >&x:,,m?U?ѓ$i @N[q3 dxcFF0Mg1@[-jxs,,夺rɉ))+"Џ+ .xNvpT!9 # vy n4&M?'/rJ>a'Jk(]سhm1lnx#y4X8+Ϻ|x{y^s e\vV XAx[^g6Wb 14<3uZGDmf{L7x7[2HAzқHdo<bΤ*mS5ˁϼx{y^khs)lcbڛ ]x+-(بɫiQngw $5xVipSbK%YvY[m>c0jy6KBX-@b6i IS*s%-$IBkRFRLNjҦ3]wIJBϽM4mqrdO.@֏/|wg<1јs. FRG^pT4Ԓ Yh }}8%Z/9Z*[@ % \` 2٦1@vZORXrDy[nbdc{A+rnֶeƬXOKh%d-QAȡS-cf5~'iOyI%Gb͛TG}rFN.0u`̖K#녳$+0xPOnpMraFZR^a?C>=oxU\4JP-}ፒ iqW$1Fᇡ}6i f$ Zԇ<}EF6@?r9E3p!ꓪ McOo!r& hk$5l _pFf<+ypt){?mG?r(,S8FvM>Cy+,[ xMERۗښU>4-ڏ*\`'pt#7GZ x;pPt>敌+A eJFVx vx9[tf ,go10.bD# ~=|px$ #zd^IxU,,DUЛs0fd100644 GormDocumentWindow.m9HuwA!(*J <`%nsxq &dz+`U;x){s)OV6Լ..8U0x[ξ}BMˁeCҘ&(3Pzpi('$d1u?^ܹr-y6N`_x{y^Vf.v.^F fbf fz? }x8[> [.x$cѷjoyN9$ݖ͘Ux;pPf&6v6v6v6vm"s%?xxqBQ8\oaODbbF.K zx8[:h5j涕. 56ܱoywxϞ-RW.hYx;YahZ0`Yz5 xz󘯕64ڏšG եUx$  ;f '^"H*ex[|?l?Cܱ)}F~vlx7[;d*|o<v(%-Q ؘx獐2D$kxk$dh9sZ0a:5% Xx+-(rXї)L1爮}}x "x[[GtpILD"jgAZPZ /%b4ɦbW|kcBOsfv'Y 3ggΜ9sf)^ʨ^=)<7SԌ N@ Bjŗla'm-P61EUXgV[yj,F?P0-iw,}hh_VX,g5]Yyf*E2hG ^iuRܑ[IhVP%DNs$AJ֥v,Ysr!Fǘ=0|cX4)$Lp \3)]HVW0o&˴ux qm1暯V`'XGV>$['c./B! .B0OFAW#rDk!&k k`=+QU͢_9z3&-#ߘ+h %ZbDE|*ew-{/FPIZDQ;i9qEZ/\(]B|ZGMfѬr^+蕁ދKF#i=g@@H/A;Xsv^YPARwI.ΑH/5 DV[5+땅=2z(Mgə׸׆k-: yAuKwYdQg:DNa[O{nusxS:J!wcˮ C A9㲁aC{Fa3xKvKw++XtΚszhA YudIkH$ҧR,oOgY/c)p \c΋sTQ=R (D%\Yz*`M?q$r1hۦZ&d骁bQwK|7_w7{$ 2/l+͓8C5DCXB< +z=QUDe՟rpUF +xmwl)T@v\J fԷ ^J"F M8H_Aܪ` |W>PJ600XKQ+4A(wy4BWHzש)k|_o },U<$)?ЙriN8 \tP5Jⴤ/(d0fo1HW0,z,vr'y._Ͱ 7C(D-k5llEϨ˧^wQ/;L^zUq zѻ;''qX1SdO3Gt.gC"t`Rw[ Pj# OskAsc8\\t: F\bĕ懨 #C8aj#N: |;< 6MR萳Y"l6 l!4"E yś/XS*cv5 94g͆<f=@>]q~8?yg8\yxlPVI. EKQA%xeN/clA5h5VCuK@O"=Y97.vMg͑uˀR{RPhے,jV"7Oˆ\nӻ}N["ө2i^|E.M=Z{MP k9W1[ vاOSR~i! Kx8[)nÖoycȫHJM*%SLx{AzNNNN OxxqBȽFRb :G>w̝ xv*lmy},]qLRe}N|v\4cȫHJM*%{4ix^ZƷo[2en}˲-0 { x;ysIFWll:jog=`s>6ݹI]f^Z>|3וb\5f$h{Q˕ܶg2 xUwD_ǎc7M &q 0$q^ *E,Gy4?Ћ8F5R[sv<Bti]Jדn\J1|…]%,"Թ[P0 j9q&YϮ#E7{n?K_ir>>R_\xlGCi[웿tvx#x;}^{)HMOlis]Ѧ/vptLafO6>%k.x[wClm 3xo[$ NnzJ 0o<;]Ŵ:1F%100644 GNUmakefile'w8=z :l}ZEWn(XYF4cȫHJM*%$HA]x{y^t* B e!VP Eldx;9s62#hWl$g]x;8Yq͇4X73g? &x8[Ov٪Y*l*ݢga oyLJ5.Rw*iŭ$Vx{y^shŒ@@̲0+g RxxqBa#-/}1[ Q -2xR[)5!KW9o1 (f1љ iU4LJ5.Rw*iŭ$T#EQx{y^tRf[v[QF fbf fn+ʺ&R  x8[wrS쎄{sI@oyZzL)2^ rȾړ@x{y^qhsX{#313lcm W 2uxxqBΓ\Yo"vvdƤLx$ ޮ<;@.d{q^"H<l[x#d9)O nxY[ok/@sSmo11պTlOp^kLғ8r;9Un#eFC֒8FBDIH40000 GormPrefs&.8M9>N|f*cHL>γ-?0` B?q~y/WC)Jz+W׎e.<@ t`љr1T'0OL?>zɿo)km;wjkXq*jbyS߁YflVnČw%C܋K8Yc,?*D$QQ3^۸̒ԃj-͘F$%1c8Ert/,ھnS44K)*Wv~Խ_/޻g0WK:ilxmV H TT1JNmvHa&cz BJ;6[[`(7kU^L[$===t[&uo1=jaHiȚ+S gzA6_CV (@k|]7:F. 'M3s'a~Gac\Kc5K= W*<\Wdb5?P+bF}~L~{.688 +&{K@Dxbz~e4+LLU(v8aF{ L"`* 5+P=XTYuڞI~Rs #ȃƍ,= Gl9dFރ{ؓ'O(ksH#~NsiTTtڶK ,=1}[/tBč#*>#ԖoMi[ڊrޑF}E.%X)H\qyaǣ(f+?x<*α:5M'. Z QGPdUz*΍ࢅa gP^I?k 88/SЦWߌ"PQ‡$Z``N!Țhq^RD ڷӣ +{߀4Ñ0N|7eG{Lck.AdewC\E-D%GϼS Ity:\ 鯐3U1]i!nҙp/|wߖ2Kp,] 3$F*΁򚀓a%/dWةOw?A YzMxj|kl_/^ÿ&%R;3eנ7_NB9 i/C bBDY8p{KfN Ջ_t~ #~7;xzO#c@;w]I+l#apy'@Pq;Nd38y\J0ST$2ô Hj%ʱ[Hh!ECf^!F>x/~c$6H@ 2H"[Qmt! Y!(OProC[Vl焧V'/߃cm E)07>{9]pB|m$57A)hg!4t*NAe,jA93$y~2pHѹ۹6dTOu,o # DJ'*C)]CB_^# 1IT%œx:FFp5ޢf<2TܮZpH)Xdeohzf5@~rPtWvxd7e6龢F` `#g(ps)= Z99vZ!8L l߿ ; 8iZJKא-}=Rѵ";F8 >cc+0 L=*sN\U SkqM0U0wdT_`#y;I f C+w ><{+P-ߟT Ag%h^t=iaW!B`h XGMo3]V9hVi&?k4Ȇ Կrn>+tuM a4 ?>f`Zv"6yt ȸ ħTJ\si렔Q }K S~im5,RT*&''-WN?CwRkj73*?}ɍ|\Ds"$ԍeL-"dz.Yxa #od:R9תY9Qf3kҥQɤXl&]\%#8@Z=X6ӣ-V+&N1S<ͫYK{mVv}I~~9:|k1}+]ZC|:cu!\*x k~􍼻BgK42(ڎ6(335! 2_@wb69@& ~kZy 2d}h DW_4fhъ#YMbMPH˼s01}7vλihXtԖI u̬DeFϔ\yz\~ы˄gW1T۞xTv/urCi'ؼ 5b*/lɩ7]U=ՙ`LM ].֌0"} 6,05OMͼРkTCCc*&AŚ_Z1\^q.]~:a [wGDv<%P` ќl}NJ/x9[s]g\fִ~48o%.( )ٷ 5@.Н@x{y^LfviF fbf f.#z_ x9[2%/T'zHNo3'+;~ӹ9/Rpx;;St[3gn}ϲ==ov "mx7[!ezߛMi">yocݲ4)i!`qu֭Ejx7]4Ɔ q^ \xWe!d%!͓Y|7_Rm xP[u~7MNٴׯ1%ʱo}\|`.ֿ&bG>|6N9gsGܧ0(qv)'x7M߭[3fnͲ7k? xT3"YKMkvݑhm޸2xi[bF75(Krָpqo< 'GL_bz3;KNf<7arT{0<Ҽd5C$uyi g\>Os_WJSRKrLoPaupcy0kxƲ䟌r"j#x;)DxFFsol˦ J 3x[ {Y'/dK|}2|Oe&+6E('e&X)8(9))yVs2SC* R&'NnU_Z[k5rԜ4̒ d$7?a.>yd3%p\ٔ6 (hUHx7['AhEXܮ5=o<HJf r_3mzIlPx:AvhYZg1b:; 1x9sH#K5}fk= XI`ӵ ~x+-(|AܵG=75[fd 6xUi&ng1n/@ SHxm&k6&'? &rlc1cW*cLaF b6r8ᒜLN%%y b'7jn7/Ƹ*Q<'nT!vrca\1 ƍb&{ jz0F wxo[\w$D`_s+ @o<;x4|a>]J100644 GNUmakefiletQs oב@>:=pExgϙ˓^?YEUx]1r@NЩ*x{y^W9F=FY( #kx9sȴS&esԞ2ŹO]Xҵ ݥx340031QHI,IKI,.N-fHؚ|NLosQo e3j;/qj?==])M*OJM.)K/ezgВUaJRr#/3.'LxryBdsƜoMh8'db xWvF^ `lC1MI㐴uˉe'vRTGHDHzGEoGN_>D]!2p`Wof]V˨K/-. DC$^4,U7:!DdIlUYoZ^ES4.C$& aYU L#dbUyeUka PZjƭ!:Pn3E4zS'c='QY5(sa;>xGHtyt;- \CiDd噮>b6@b}CRYmt-[N 2"+G1P6B̼׉k-ĞĨ20F(Aq:@ Jl 7֊U|'Ș,P1F_n1vI[*,JKn,DQ4G؈h,r6$4S^Aq ̭K8q 2P~$H-yoM( BRxKbjU+s%4J_)")oqC”G$ IʫWuivSNҙPǸ:WbsCMgQYSnN Ć349%?9> 3});w;ŗyؠӋd;Ѵ*HGWZŋ)*Eفj^zW3Pm9^b7}$dYhXFgI""sQ&M uwDFwj|A([`-`-^Z xT~o[=7e=l|x۫ҡ!oB9!8(x xT8 ,4{X#[ @*I22#U۪gmeb.ڽu)tUJ޶{[w&yYݷf3GfpF뻍 ajt8[=ۍQ1n-,6enwN#jw[_sF)5ݳۘ /nR#FI?]{h)r1ǍUѷ1AkO5N){rj-&G卮 35"$jK%b,a\\oDF/<?}ogRܐv {.p̀q 7fn臕b;l\4zZlۆHap *&@ÍW`h[_vc1v:9zV|\(Wi|rxrYctBS'py>s'3n>`֍.k"Ĺ^Y㍰ly~-aZ9_?gTh2qZ"':xָ {;k2?['GAڏ)ҶeKY޵Z^\1p6R1mQ6z) 0O˰+11~ =pyOx c#_/]_sJyכ4̹̘[pۅWnYU6n}ɨ'X+eQ%?gְcgOGLDxt}*)L;:puˤm}tY1ɬg<`Nf)shJs2|F$y=ó͹0B84,p^O]d_y~[b?͛pE`d~cqlQɶ7Rl͏#n7mjjдv6ki5^lV{s3-|6fr|Hޚj5S}N'ф&\)?t{مMݱ| }7\4zk*BuBr|ϝ-po0@|aF"gDtzkxR: mǠ0cfM懰?1~m̧pfoMܵqlvǐyM"dNo7%u_I;i܍׆'3&^f6o8g.1ӻ! ;y[oh~]f}qؼ>ʴSa7;Xf,]zKcT 붷#_|,d|3<|T$/"oDpϏ*~i)מ5Op~ {Я4Bzo7_?xVC̖I1`fo0CWs(25۹Ŷ@r~LƶUAǯ-)^,62Bj|\5 ̘a ;3-ׂ߿4`ugs'(u]ByfuV[o|:?8`UnԺ yz7WCމX_[ݻVYWwXMH$>jŷZYua{ugSonbG}=DƑ[,F|u="Qm [Q=ﱾojؓS  V(.g?e>evߺֵHO`UK(?`gP~CK~ڍ8:jH?g g3ppyfKŗ#G[Q,Gj_Fxu׬E#lFF+i-oYq1n;q@}O'6{w~B.?c">|-n9kuUٹex*4lj);kb~l}>돭!u /dg~bd~ Z5im5Ϸ?c!}INn5}kgibnW9;s6jlY^}]ahW?Z`P3a݄ ^68_fdBmǣ_Y)$_#UdZkz9k+9\z4Q7`NbDXa#loS:fkd4 KMe2҉Ѩ;@7x[H"}_v5햽luݞW1;_g/6"w'`V6/ɾlC}<4Po|vvwp<K #4F$؃HYeP`jGr .HG+Ͱ7CbU\ 5t1'>buU'*Yz݀l{{76ކ?gggZhc'dg>\lwbT2l.Bm~G%WӇ/Qe>ڨGkmwc&]-6 w9ˉ6)ݾT̾ _ڶ~YaO''c^=`Uq-|>/_\[c#ۼ^k}Ӵv7^Q]v ~fYh-6V*eܙwX5}};sPH>FGrB/ )?f{?.@pd.ŝ[c1i1 )̠= -Kn7]'曦%6ᤍIk)@|v}6#֮jp^̑G{ ɪe雬|GQ9σ|ls>fJZ4qro·)2n6pKpI; _'OTsx4%K@0sZێ LQSCN reA2`G6Cx&fK*3QnMxPw:~c Xطe'me`E2ވ*rm]PS]ՎqqX$;UaϺh##`4nwZG>.E6(m(\FC;;%kFxfӑMYJ#8>qW}x0{w|ޗ:58Ѩ:0";Kېď!  "q R*顟)&`*`A%l. iQ;\:"u N{c{Ӻǧ˷ӅgH58˼t*fFQw#w3n JJR1tΰ7$|N\`"D@8ʐ%T@LZI=1L"sBTؙIA\;z +Ÿҋ0s>缢92ע5=ǞިJb|( 9 $݁Qn cZ[L#-, `؏. u?>ׅ ۝=6ʹ;fO]T'4@؝$0!^ٍW>aad7_/sا7$qqHCm\m`vr~bXVQ%X,0EP)I{nB4Eq?MF}.B[ 5)e/zהdR.66+x O@.'?8|``?JW$wɔnNiӐ.1ƚ[A\?܅\#c<.II`( fmx89DEIJP ?X61:Z؂ߙ+hGp)/'fS= 846+w4S854Ik1̢Tѽ/#H*W !Z-!\Fþr1!Cn@#3O+5x`8 呏4#{^ط !ip0PF17i.cGN1S^/VSr9=2m#w~#0MG: 6471v1y>jO.Qi:p;SJ趶;-+؁Mnh 6hD(Cxi7 ~$3nR)0l&I_¼1GЦ9 *9%_>/Nz\՝Ӱ;EpQ*3esTHN,ƻ(^[r#aU'B>\%!$L_< qBXXA܌Uqƞ,eknPLoEa1;H4̦9VMpfcgoL-Dz0w{z_.+8ۨ*?gM`߬ 8Vu })i/ H>4̆Z-U/lvjȚzg+ P$z8Bh2:A*&nUQB`>X!YPĹ'~"qai24)4>K8;z659lʑyi=|Msv/R a Is|ZvU(@* &j )r (cpx1}aq|qqw{n&6ȈgovmwR0-$v&BM` H-+ K2YɠqfFH\'@ v:!)V{U֭6JXBM+9Ă 7}h%$ͨD( 8฻.'p#fKY``}tu0U$'KOi{.w[j$-0HC"Rg)S ^;iQP4eaz2Р0"28!{&e."J?gL KU욗NFaڙZL.٦VJ&eݙJMs,tne8C*'[6 Ua0P+;^fU,;i ҩLYbUJ΀'")I/%aM(2#7 l8u O\T_Yca1E6.:yZ}?F6vF JKC@)Q ^9R&BQ:MI.;Լ-hzяB$K 3P,ud4 veͩ$*A#%58 lӋV'[0hbu'f$"p9%)4:~,e',1#,eM7pL۬<7GRԙi;&Q3Yi)%u!pl홴-u_G6Pov#Ƞ%i#DJ pA;a=7gT|0둴aGʐϦuұz;nOcw^gWqLؑriupJ$uDUn"lvefU0"@TqLjf{|){.[hILƢx IUSIX<ƨ)r/"|Ijª-QI!EtED᜹^E]tzry4Trzכ6)=_q̖%nY6v\noJg,ǠJ 1yy$  L!cc@'<>!8HiAm'%ѵ/|YQ.e BSbf̀mvE5 Fًu{ZK!npJ^xBfbah º$=jU1J@c> 9@:L,92쎰Gi\4Kvض$&7xh^ZMh(lQ ejQAٓK1d3DߐVv=VцM3/'"@ 1A |ڶ6WyF;hC,.0ƫT(#'-#_KW)^ފ"<Ⱦ|Z7nv|Qp!eDwI`anZ{Ѯ,e&5ҙmUbƘ ؟F5!Sb$brk~'Jړ9Bs1On?HɟJ.sN_7.(~-uMl)k[5vehi*.93zF) 顓HO Geh3$ 2\ZY0>%"rk< 62BUzzCRoX`9+XSKocگ9Mb^}(I.$3%$pph 8t`&xDLPZl?mv*W³A_6Ʌ}z>Pё^Vg_=< .2#2p_4&au%`!rK $[^&K y[ cBj0]l]- REAQ$@R+W=19 \.\4 8}v8}/[ױ܊?q"Ԛ]ydf >'k+B@;@[<"QVdq/ g5F76=Hx-06 :7`^%:A8_-!>\^sK-k4.ȈKFJ EH,tvz"FITt/̐s3"ה\$=*C7')5 |ٙ/!ky!w$LlVRDuDk<  k "@;nZ0PHw6끥ù^)o LC)u^ &*EY|2ɭHzvv>,DB r7K: >en"/ȝ^ @ą *0԰{r'DuZ}lg${'8fys{Ͳ]DR2^22qa/6J%Ps\p`B+ .x#2 ɌLJk*bO* @e\Z0HF޴mSg& hCGp!DSiai VG) 8tg)6m7S<;nײ}IoW'>Ж;䰿z%ƴN>lްsw& vn:w玞%;Lk=]{w_/l`Zk .!K%+.t/:2$GAnmagGΜoyhD }U;C%1 Sqc\+ @*4aJq}m(,R7 %7L b4@tFx0ɕNJ$;Akz2Er%aUq;;HqAK13": FΨe1*:ooDz,ŸD42H b3a&1 .3_Jڗ.C')EAx,iԓւBjz5[Ecb>t}4`2QSݦ$ݭ+JlQ#2,'W9#a DB(ˍfR"0k:q$|h$g f e;Ǎ',@$!WeM-Z혐BZ0ltx$((y$i{$XFܥ=]oc8^OY:jV;Xu"K:Z@P0;١9b%ehMLkš}J tT(帨PKP<=tZ0eNr2OC҉‚* l0 #;1? /w덗P1F4(d,bm%+H rExk]rDVk>JSXVFYs@ىA@\mYR lS٩B<1*gZV;iʹ1l*v5}Y^|=qB$ c~>" 9|D\egnV^Dc Ѷbl+S:Ď7d<HIa\d캪Km|A^{>lUʞ4fiDaoEAEO4oكojmoV59ǚ;M?x®:ȸ7ˋ#u-.p *_`==@ gK]0z4&9p. TglF<9pBC@A}F ؉uibZ3ؙ&kZH YE2.edz$JHlõpGjG &}ӨA[vksġj~޼ ё WxF-/# #M/k{(wg"_?qWdUP //ly%ovp ,mΦD|)7dLUBnB ̀Ajg ٽx2)H4? VүI+E;c, c,NyXmK ,4]?+&ڵ]#k$ ^eln&]"mWOVqN ]w,i gO(7DA+UJጾ!u[W6V3J4](/iDڴ]-\B`2nI(.la34Z/˸Q.p ʚbwidgf/Z; uBQPvR*n)?$za("XN9lZƼ`oi^W*@7T|I6i lR XYdqs*+˴2WX!{cPd`;MAh7ysȍ%8=SބDOQc ɲxu5}5qvtɌwY3ѱPSJBE)#ƭpأۗ3bN_čQ2OPO@~"64 J4a`.whN&N^El 0 < %`($,Cp3i+2M|4IQۏ!_} yGヤxIԋWsQdƕ%yrvfI3rqUE30O_ sD?~dy`˭!5d$p d;sh4hD^D) lfk=;nM_L%Y ($ ɰ%}2Ae` FK  2+1p*8'Z0Hb"!C߶^@-ߩ_o?Y$^^6(2r!yg&u$#q`PdcV& J5t:gw?[zg!kbħY %:ܜg6E1"/vv:(,y/p C'2D\y]|)%5(Os}05qjcKf{$ N\AraUR R~Jْf<קO < J̸L8}<+}HBx$%M%a%'1D6)f8jhO\b4c6Pmqa|L;~;iKS<·FX@,!#*' ߥꄩRw(.AWsEڪ${qU=όX_8Bi؂#tG-Ilžw`&ajo,$mwoPk:K0ݧ,ԝnmVYFȜ e WIοx N_AƄc Y/_BuT\n(=+ 1~!w[VxR?fOYھƵpemjJ+!;uk<Č1`A($勡6E$E ڵ$fcj"]T7]*!dpEp XG4kLR~zT3/1" d!YrYwvuucdZ[vc|Z[kLro j؇̚UvUQE0"!m׺%UDU4.J v%v1褚) ./v_Zey81@=)`$|۽y>'ܺ%zB>%773u)`L:4믳KSOA!M:"J[M򽝙LM_XI9NuT~S*̖,iޤ!nHty(&h TSJj)~)"".qA0>.j *QW8FdT;frmsPQ{}-+9?*HN=Y5S&^ǜVd;ս[9GMԈ U;UYV,]ZW&٥ ytBU6]dmͤA1!֑_NlIqUDi y1qSAW&sB[ĀΆs]Um͒|=2#)\eRǭhĭI;N_u# w!R"^"%ʓR. $IXp 7/pI?9g gi,šF"惐xg\:~ZLF"7ۚ8_C_VU;]o~Yl2զAM{S)Jp,f/%c _x\G)=0f؉{.K/1tzq- f3VD9* %qJֲ'p'DE=H)4TBC6R "bYȇR/aM&AZ!<,?0Kd b9f< csxo,XP t[͝l-fX\ ֆm.\nԨ3p#y0ST /P ^Q ?Zg5 .`n?Xiq8D^l6eb7r x鉶SŃyxRLOѮ^=KH[LF#$F]Z:}xZ%Q4"o$9ȕ"K1rIONBQd)tђ57鉣@@PfhXкJ7ɗM)C0C'-@J7 D2Nx#@Q4wFv 鐌kx%za: 7ס6oiYE1Y`F~Zaۀ^_NkTl %yt|Z Lԋ5ptA4}G9eM/44ƫ/W_?eC$ `$v韚6X%tL VY(Jw\A\Y־<4|XS-5Wߡ΋ žٮX tP OnRUUdgr|m'Z/?N@ȅ|\'j5} T_Zśo[j9?M"#(.Ҟ0ӽAxܰ }SS)!_5/XmTmYEQAES,`"ˮu߽۪ˍ87U>ܒ§Z1T"E&83~'_4!'GAha߂L{1U+y:q轒IB%g(8f ˃"[$ \֙W\'-HTJ/ui$܍(]jv("hyEe=zXml(6D0GI[p z#KG7 J8_M境tJL9eZ #o~9 T"S|Ӛɨgj@*k95T:X@sD,5\8/ĻI{BNll|#WZAPPUhDI&3ׯq2g5/Tf1ImҎw@r8L~/3z yH=UFehY^2Ph{ {&^^;-*'YSs%P.Mv&[2eZ1 A FmO)G؂llk&pv2Xy@2'15ʟj]PL7ΫJ煅U<|")4@A00Up-ưNEЋyFQ%Jp<D۔ q\wUa0LE ϜpM!/F\n) 0}.yn: Xp 汒v$L1.UU9P_QŜ֯U FFQzE Mf'ȡz\h\%QPO%K.0çK kucuGҩ^}&ؖ |R6-z#M~Bԙ-N=~qY- P3hߛ? ĉW-(JF1<(2h:Q׏P/Q;IC7QkZRս`ɓԁ:dPc8?NTYFza7⑦Ci-y_*y!*רPD$21^sEC=;vT3Y @v\Q (yߪ.+Ni܂) 65݁F޽A g]KG%R7^+yZ$6~Rw;iSnM=oro بrDrQ/Xlǣ֤AN4;ԼPz<J |p%ijkXsIJ~'BGX۽*K8k)=E\/h}47.ƔExi^!,5x#WPF»fa a5:&8 |SSL.:JAڭVVQ=H%EbPNBOT&fY3ؽ*O(ݳȪ.<$dО9(Aы2E"{UWMf=,"SSc6a9¼M*pY 7cU+21+B?CgfG_5Ͽݚ5IUz|nfJ`ѝ&y1nTu}ViVm$jJ7}ɜW-~K@Di޽kCE[h_(=<,0>3lְJ|O\úyT(ZqiT;Bc&QOC ^p#$f{2{ròMvC%;pT^RT1݈`;F3#{<Ϊ8%ZOybD95tv=k0t =eOy}rة!J|e^X+u\ע]vJ@ƒV4OZ5\t;ȥӚMH\&+fq"_d-n+#´> <?WBe靠|Vxc0:enp4g.p]7Qg%cʼnH@1{([%cm"Sv \sQ͎}٨dٳ-Rp)0dOqKR,B VRw^2rɁ==]t۶I?De9ފZX̕>~mIT")))T!KMMM"0sYDr|3 %y9J"Akn%_4㥳2 dH%܌"0 ibd= q׆OijلOk^g81qJr3$8 e&wHԚGPG:3ePS ~Q,t(񋝟m4A|*s!RVb-4XnV#hShQwV}ܫ@-<& tD/>3 @0hent64{`dru[rm‹+u;BbsH6s6{ԋ#оԆq] hȣ4bA_Dє[ūC<X_ ӈO-mA`J/egbݲSaOF0'C /;8==Ʊ귇:Vê.\~E%|X,D흠޸7[3 eIDΚav`4c׹؊'2UNUXenv.=LI.@["??6#dE*UH_ďSq|خ;e8Xo&~l O Z-N؅ˢ-ltULK[oי~Qg)<_Ɏ=j^kAOXS=1~Һ_1cw41\ "nКXqR-KA-qbs3qiX9Tg!7oJĜDuuv%[\؅^QT!»6vF;šc3,"?S ,;Db:6h?5$̌ Nx4-L=xh'/Q/l$<7j¨Ry|O89-6/UmB]bhKٝ7,! aDnt m(!JQuh6c2v1(o4ך:pڮ$01<{(-Fu 㘦7O؋$kkFi50+@LnBNE,(C0mszZa LMV].988`f Ԡ _PH? VM]CsS7 Z<&im+vnoɇQ=KҕnA]Pbqe@rV*k2emy6 Bt!__!ePʓՑ0`_H1mMJՓkgNb^ TtHzxx_qݤELkuHق7ZIR7\2i6ziɩhHuuK ٓ:`RI,*EQx>-ta!֔%G낊ΥU=X*&8*Cˠ=F֬я/H¢ΨP%yD b5vEN\ ?2D7=c1toسF$ߒO g bZN(n 7Y+1rٰCe*{G~o"(H(Ho+lĞscUm;*V7XX_>[ܪJ>(Ǩ ]^)N,Bx4,::cd 6 7|q/ ()4ym6;9-VՕK# $ESE 0̲汶=msB*cX OskViD*W"+ D N0‰oy2u} Χx59NSOln@2'pH1p2ߞy => q`^OY$giD$ՋP "4H±DޓԖ)bJkqe,; f@k Lb8R -؄i[CCC-MmMˤ+)=he%0>8wCtV}=-(' tjk 4 Bs!sN%e3+ٻW^K`k'X&. ;X\c zdEqc#e.yTVS!ⴴSOeE*YX:ce'Y~|Lg<ʲhPCVu!ChQqbft63/, CZ1D\+cBɛ?5 g[=3qUtP0VS%҆^mU«T y`*LآMLW" r^cq//}_bE0`tKR:,]P$W.FRTƉD)3Q|eCwp V,4;GXkū-7 W/Ǥt߲Z\ CW8tH: 9&jґ% &N$>rFq"F"F֜cp3t/Cx56!|M?E 9ܡ&"GU$(ثXjkn>>Kg%na T%t2\?=ti&N +X4gWv Een؞8lU2c Y052Yr:DڀкdGǫpT,g9ξ<8̯fz8䌈8y7AH`DM(L:L8gBfjS벵c󭭄"kd#֮rk&;u]ʮTNxG (J"z^~}}z(&kcFLrr)A)`7IaҵS8+@n0}JJ`Ef`3#FU.T ɻT/w %L |э.)[ܦ3\ .tb4htzv5h:.]l:G$,2䛯6M*PT%`2DTߦȈ8=NԨKR*[TC?tFI(7Вkd(Dt9ZP`+XWU 0$Yk›h6_ogS6$|5#Ɨ=^k8Q E$/jj#W C-x6Hllnt˃gn]7M- :ԟGBN2K4>{+/vtB<֗TԢSi %!+#Naj(Użs\^*XQΜ*؆ sw8YTO8N~~pNHeÂfE{D룡N)J9v>>bfPU1'VybONaQSyEF+y!ƪgaL‚R؛~%yug#>ץ V \@LϜ#Fq"mWruW ؽREs6|nE6Ci~A*dS)tf3:nzVG|a5;]R 5&/3x꜓VoI],DRbevZӨPEn#QTB؟s⯦I b^N4݅{UhJ &ۯ9(A]ݸg?ugXYQ BC 6d_-Qm% KI*`N V7-pqū ϣT,RCi"Fumlր |TP:%Ja! ˲`q}w^I}^<&uCG>F윆Û4`}H䓁Q$f3^.bv%=<F{RW8!@ A J{ ]TbWky{ qx5 ۵Mאͨxiè x'jۡ~v=nYSKq pJ{jjQS"ucu-$Y%cTNkQSr?6Ns[ ΀K1C,Elew!YlHf AJKĻLlkdt9|o' ysFS,'őzɧi]3 n ,_-6B 1;JF(M|˼u,0UjƢ<]HS5wa7󸌃lT'9|jKHd0ıyĵULE 4n!%aovU9MME> HL6tAUy7S%,{@9_Q;ȅ-! ⃳9)FU \,*ZYL!!x| AC:Ean񈥮 E5AW]٧0u~>_Ł ʲBY 6 6vSu`ZqU_3Y+%S$e3X>4qۚq4t|txKv\Bj*V>< $I9'˕+7j/U[ 5,{<,B쏺p؏^%PײkX<Hexb:r_Nm>L eLLWg#uRy[lۣrY3nOʍkh+_F(^Thi5cr+5owѠQ%1?CJNAm /kn;P*p,?Nr}ɜ!lL|,rzRDZqeɮ[nC *G,)-w>N7\?¦V6(5 wcҜvk5i c u 4oeaaĐ\S8fa!i4l!zBS@2~dMa%āJln#uUC4՞A8HB,F%I5(706{ `R5,Qb][SsR|b]h4vge/6cLڍkp7Jꇀ/ϩ3irdU)Bw59;  bPeR blM䍕+ ~6b(b_nsDO~XT\uIQ"qHQ}"BN~y`*:t:"ײc>r}%Ƒ3­RH*M<+.e/W(d\ +aKYt_qs7lWu@7N|̑{I! US)%qhI3f9}Fڹpje%͹<5G'# j3X8qTeBxYM)yIu Ce?fȻ& )539Rَ3q@NX5zY+>.Wlf/ 1Q0+88/H@m&JU#,T[k`(7Wtɳ(~`tټz#!bq oO_qYe($oy}emq"ARRl nX>Ua<V))Pv^@t-t-`@+r通Ii^K" %^yY)3z!YD9 4z3m_Z0֬(sUjo\?xXO~΄"/,w1F/D<ge&?=,hCj6-VK(/ӛYUp?E_0ZgnPVxwQK F6F: K9Ct~IJ1`[^MH OB]X8m\p5 X=3gh՟szd}syYz95s-`Dxmg;{lV, bW# wJuJ+ φ4%Nwړ4\A0Tf@$ W6E|ϝmb[:VXs qcg"&RYFOBy2ld LDATsׇR/w&.ZkEyWcs`AUHۈ}l PEAZ'Z\ 2_{vԠfH[1+y:ߩ}N2b!V4#%3GyHUWXJ쭶oH@9طV盦kʹތ p#j"ӣhsjIˀFUϥ|KG[ǓWn%{sƏF,9LbH%j6tylRy#׍4`mn|-zo|gmtLZ\Wm{ϷbD)Pbٷi|ѥY\|/0 Lꨓ{ubp,g U*+W~'JTv'NlHmA$nI-T{R[wV2l+RPd*,U]i:ԘZT0}k:Wa\7R|Wav9Mwb^ tbSaK㢌?,9sՀ,CsG=n g\,D3c0Nj/␑_bRhJIǔOˇbTԄOm6<>#R.}qū)er ^UOAݚL8`-}8kw-I|,0%ŋ_lz6[J,*<N4ʍQ^f[-bVEekjg3Ӛ2{L}!?gѴ PN&{MvK؅`(;hWk5+v>ڠAr&Nĺ: Uy Byd?sfkSq6/h΋W)bX M̲O,|hOZK`Xh]5wl;H3,&bIK9(Ğ/'P+qdF>F6jM@@wp*VAr-P1rywkɾ pG#+KMgxчn+MgSJCL/BlngxIHs?! MVcC)~R|戶>4A¦2*%|HM~XhUCHU=tj8JEe ZuGϡ$Rk!}_vS q3Avrx ϲ\QP#sihosFtU)kO{pMT@(Kl-||<+jMy`ǪT#4e/_'+bV'R&Ch̡=} 2xi+b8ʚ㤫f-8h RQ*0߼t:DrrEˊu\ "KJKZ(Rq##Ir]N\N`ׇB=zS,]o}"F I@qEh ~#,/a\61},l+6u6kF:!Å]*zX<?GP^ .H;)5I~ӝWGv$[Fˎp%/^Bʔ#ಝf a#jwPA~U>J|ԦI&fȤ ]GWҏbJ@iS +-FDS/h˖ Pu+Z9j =*›z21)KER'- 'CW9+E%#+ΝyYU\UDQ*Sm@39WdɫPV&yUѤ}LhhYϰŢ&mZH6n~jYUĹVKOz+OEڽ>69r1bCx TꘫH|N&qNRoi(hZsxlb:e\Ic QɪE9ZsaBah:`uLF92V~dG2 _EOhڝъKK~lntM,'7`f&B)-N#Xda[bGx- 1lZVbn 1 eA@!6{8upv;6љ9ĭ/8[}ou]ɔxug3y_"-M[M3HB?_*KWjB9q-h#1äѮO,wQUU5*ks8*4)c0%%bK{]5oQPC𞂠4,2i xOj< Y\a*`Tu|JkS3uW8 e.B\s\v2e·K:Tj3EG Xty9/lm 쳍Ėd^VD=\n'%ݸ\APMJCx!kMa CS=BFŪ tOJy):SKyr͗œG~羓. ڞ!MŝغxgM|)&LDNъwML$zX0j*ᛉAo,45t=0LMSXψWTAdc3rg<GD?rzķ;'E U:nO5I+L*N%_v9u Q!zUM. #4 JqX C*fG]*0Ƨ\t&$u/#XW$yxm%\/'bfo}OG&ΐ^іR ,~/6C.փNRmO  D~UE/$z!Ŧi-8@=w Um[2&4TDTȚI1u1=tJu,d1@*#ԼMWge{(瑕bpLɳ.9 >yEM̴EgL"v``qvWn۾_J1ݫ#c -?JLMOkqG]sWfp$c#![Q+U_&qUq'(4m~TNdnL* i>aOf˸Sukh/7{).ģLW:Vry`a.' 9w,0+%krobCX jY_sݿ¢ ̃\0S.E݁O8=asswUnC~l ܅/j$UlDb /Dx=N_N89xE ʥpNٿ>#RɗuґEyi<̋[Knuܹ\''Rg5M[;޻U$nIn iMp{Vo9tAdXWU*xImy/wEui09oUtN%!Rz"%~I&ٵVrkǴdL'JTNjkis-ZL8L,87DxzԇϦ:)8jW+c/C( 1ñ?;;9' D lDnYoGȍd4 KWJe-ݹvե?Ma]p]}<G.>kw}9lqY [n cHqlxx`2FhhNf'g@EuA.|4T|W瘒TZ?߿[+U[{5{C|zwW12 vu3OW-;Vcfm<ӇgkK$}.l=|WshU-ܤk*(Oyf=ȏm:Wʯ@F<0~qM%WoeKZ ޚW=}X)߃>}, GRe aF~^JVYePT^{B"PSMZhoJuU(ϲ_i^_MRYɗW0gx g ju,Z|Qa 6Z3FuӌD'cnۮ:|MΝ=(_v&-׮Ԓa'wz;נt1JE0?SSô^ݏcT=" 'DU-O S pQ5kJ#7aF1h;8+FAӌ尴ӲͻN]Ȏvtň/^M{2чO%U yJ=%S+IELdrŋh6`I[XW4Z$'X|q ímx'^BbR$DP/d2':{'91Zҁ5 ?7Ooܮ*W}+] >ڜEoP~qPEm@ROt!L}<0"dX%k4|F|" {yͬ]UAEvB|g9zieXf xxa“ }@-oro#9ͼ?L%ܷtnMuįO?7Ǜs鷓nkk?¤W"x)CqF L3[gljH 8x340031QpI,.K/M,+,.aY]wY}'5pIMK,))k5'*/D*RFe4ܲMO+aa0'9P}56FEx9[!Z,ޔ 40{5 [<Oo1EuwUCrnC+#⳴Kx)zUA43lgcb==x)Ey.S\&F @̲}. ^5xQkg/z-D+b;x3l g.NIS(.,IL-|Df |x[ξ}BH1wd'KjmrVBmc3q };x"Et_ƒ[1cnDz#ާmex"OY]fٮo2x# 3b,# p&8gNIUx340031QHI,IKI,.N-fH8U#Ŗ'^6DRаtڟ _߱mguz}ݡPEIY%zE ^f[x-{n:3 z7?o1 xqsDq_fFF;T({x6TgQ+\'o;[fnOlh2W`qTLWR ‘'trx$ 뚱cX.9ɐfOѓ !Im[x[TqVԼ.##ux9[Yд4w>31-]!o10rj^0[aF1x":H ,@@̲} [ +x)zHsg{'#313lod A ~'x# 3b-'.&-;¦JNI> x340031QHI,IKI,.N-f?]@;dJAr e34,wlYd^qw(TQ~RVjrI^z~Q.ßw_֨oG|Y SB BN'.$i"xǵ}fZ|fxxue -Rejֲܮehr<>. ,x}R&F˘lٙ u6?,B! =x4HYLۚ}h%be'x={>3l3KOt{z]8^n2',.x)HW#313lb]k0xQkgc7%/Y*=1'Y"Xx7[-6L AH {aI o<y/뮇B͇.7Kx)H \@@̲}m A]x# 3bk|lTL:ǮӳNI*x340031QHI,IKI,.N-fh;Z܅aƦyK$2"Kgg.c6HU U\R_pcP?75Un- 5xmVkpS{dٺdJ$iIˏy[uj%6:Pb;-cd 4!'iҡt&Lf*LgH!͔2iJبs'r1L[&!mrTqN-ְ`EԊ(Wqb_Dzx1 ..Lp^hpP+j+=1AA8lr[d.ug?P&x< 8Ω 'p = -{+ ̏`[C hv\G~d>T%:CuG5_JSXn&%'$s\qQvbEq[ (eRKI[j 7Lkw)slTC \ŮLĪrzmJܦYڔkك]6xW hI2Ox|WY`g8V.d_+{hz&FӬ`tK]hB 5vuCIw^R,]%ݾ/lFj3nF~UBW(?tX Y؛X؛YXHE!]ʽGI?%702mvfyY 5/OY/Ie˺;+Z5Q;1 ,F~7 Ӳ4T0 jt4cU0¼'Xz,48e?i%3us6БFr6[,JZl}St,g9Dg4KDV4tLazP®.)g\Tj™-Ƙ~Y(:EXgu?(Z ptG"Ãi"{vxDѭS'9H1%/'I'2-.O-<IG8MkJI_-9{k)@u\ϲrϱ9ʔT-Yp J/6 [raII %ѾJ^ cYƲ>25+p]+8Npbe8皥FZЩ7wݺ&ssyQkXnL?"#Rޟ:Ogj9 InF^] >o\U<7>\[ r{XG'_}TUzӀާ/q}Sx.7?$R0GgjapGv?@ D%Edu9 vΰ5顙=crjz3LO aoB)?(;KY Fz;=[ ee|NQỤ사vµ ­HS>$AA:x=Z B)CW`2 +Nt>FXV fc+r$ ?ӝSF7q9cqnBb޲4o%$\wҺ=,#Ba!L Β'<*Q@!Dתּ,EHыq2)EƝhp j*PB| .>Cy#?Ԭ9~Vef#%kJs-S)}s)0@䙦$o7)Dw9L7c"՜%r8y Lj|7T54 wrqFb+hV˵4GB\rH-l1Aqw𖧴xs9MPMڤWC)j2R-C5=զ^Y6%>} LYj3,nSٖ Cb94uv+&iJW `ookJc&y8橴"3༲ 2^TLf2+V#} v>!9g?,^!vCU#TMXQ8=ߧ(\*&2x1]<"^lgI*U{1YOyIRg`jFe_3[$:6H^ U9~*73v ;|5ܚo_#:|usNչf„=+|={} Wx_ }X ` )T*%fɩc~;8UMhAzz{ޒu.v={sXQOe]\柉ߟo仫e @-(e{}7%S\OA tpar傥.##U,ˌv eߛ!; k}xڌ^ާJLWk!p?Ty*FHcg&zc@[ݒ~)-2//ypgmhӃMe0ur<{&MV&KJ/~|aCV'8mGcbd'pVQJs4SF.- pN|=Wi<=Ǫc|-u2*< tjǟߨ[oNLїYR_2识{l4:"95`V67N/]M4s 8F|5ISa}mHfTũژ [ڊg~s&9L'9uZyh6G Gmp.:h>aI'Pc.'y3Jt7ԟwg pFN{ha >MF(Yԉ-O]dژk1j۴Hi%9>lR#ξ g,G+|J'8XC1*d huu-'kj/cq ;aLz#1NQ㞣"fNE .\x[, 7=.NPx9[0sy)Kd^no1~E|%.'`  x)zHs_{#313lc6 fxQkKk͞cR2ؼ@ cx):H@#313lw`hL $nВNxy o7?|/> 2L0"1mx)B@UF fbf fY~U˙ ~xcĤ"TC%U 'H>,uwf?FOf? x340031QHI,IKI,.N-f4c񎅍eV^TyaX'C$uyi lݥ7>]q,ݦSRKrf^1T]r#uNPC/NxmV{|4Mې6iiG޴U@ *T,#ZͱL|,(P6sԹd+2|[xxH=9{'o.ؘ,Fܩy%-N.WAh4:?!}@q 0xV5JXd!H3U0L4eJ+&B&ubF"p >h#UAe%Ъ+1Wq jO4tp)FA-@FC$'3fKXK :8tZa%K,&55‹"tGj&ZK)a5fLfum9nN)p2gZPHz%<Y6NYOYOMM3xiQZ=m1YHz ,-6ʂbnl92|@hiff{58sV&LJd`AHAGl/ف뎶Tf7Ҥn f]\0c8+0’4Ԕ2nUXT1O|R?5DH 4ΧY-KuW'nNyuu8"-,wyH{[eؿJvV..s)S}$~OJԧjӴ4kKtjf 5tF=-dN75≄FFP?(^%sߵPoa`Oiwjmi'u_t>Hץ{WtKq:Q"gH%!3ĉϳqf^Q{ *^y0AjkDB G d?y-F782퓰ҽRMvù~a4lg%X4m F+kiMuhzN{c~VB VĚdd)_o z_ _:H.t~=E߃B/wzzdQ[e!O**,P$[qPO=pa;;)" FێeRfi&u4/w̋nikI e}2)AamIeDFxIe/4yf"L*2*avDaGYR cB|_3ar0 {Fp1pPïq4VP&㠾e/ger]W9gy}ISΨNNd\=;%##SP/̎dRiFi52zajӡ5RdȤZg{ : ^߂ŝ1e8nEp'88s|< d>(^bmMuիkdr:CŶEC)y#cR*~q ~x):H=@@̲} 1 xcĤ"ޥuy¥~]hUI=x+-(r^H/D\HaF󡣻~ym xmWipS~i,ْ,ْeI,Ylc66f3R`uc@'vNNG3eLfҦ{Y ҖАP҅=a @sﳅ^|!_#S|A$15x#&68jQ zFST jFI%oPv`vu:\"Eo_)҄P]m١!D̷XrOĹx8MLdDJaF HܒGpNgG& :oCPݺet07|rf303qhvk4O=Wlt{rr#t-z}5)->⃕ů+eJ95*PRS/(֋ÃټRT‘dE32d45aXTq!]J# 1C㰧2$zLx`7+J_$F*7*A М#4Js2p6J>p6MdK~D(jD"< ( 5LwRT~OR@`?׽e$74`B4̣Mj1n͙ZkJ-m}.tVU l%@$Jw|>w|'B+I>R륋Kʭ}Y^(X5F_أt{~5Nm Me6o۶MvJsj(&n-[\_MS,leS0BfëW_Ū)1r_ٗgHl9G94%Wa%<x)'±X\ýc{^H?JDǐNO?=Ho-SG #>H F+s>{#nLLd6kRFze"xO"踎[2cĐ`$HB< 8ҩaU- dH>ӿ&M|(%}(8э(ȤV'`n}kV R~xR[üD xm8! 4oo1Q̑ȣKac '54\+=5@hҭUCܓ'W"xpN)WA e+FV7U xsa vz<%.N P b܂Ē̤T̒ wbL=K=S"Ģ"MԜTfU8+eY% ^y F F%gO^!6}<#8ƙ\1Hx>WV2  < ); id obj = nilGX(  sxR[ Y{^ٜ2 o1蓼NJMHĂ  f4\+=5@hҭUCܓ&x{S fmvmF fbf fٮZQ6x!**4U5;QռVL" -@x8CqFFooO~i0fEj6 kWxR[ jZN*/o1BN1 um*೴4\+=5@hҭUCܓa(cx{SfWvW.F fbf f|x[~mfe̛ %j: !x?piFFg'KoShefSɓs6e|WKrdmxۧڬ-x!** TڑK"А/ 7 "x3hiFFg'M`մVÑ88da. /.NTqR/IQHHKOU(W(,VKr2R M"E9e)zݓr:3rm̧̦'+lfU96dM->>-g9f[ &,x%2yH֟?Z2dUX0 (x \a;7'rLbl]A!?3E[{4#cu!sb l0x[oLky$x{Sd& aF fbf fٞ!j* +x"r܌+@&Y Rx[mfe#FdĒ<< ,: \@"[YWR0ygqrQjj^Pjr yH!I"H$fCn;M x[gCoiIbRNcQQbVyf^J~yHjnANbIjB_0Dkm#dynq"̜ mhL<ٔK~sd͎K=FxkƓLj)*G&Xs)AQjIiQB^fD H+䥖e3RStSS ғ2 *'o"=Q3!Yx;ukC d3&ͫ05Px9[,/GI'o1rﺟq'aEJ炈Gx{Sjeb e21 l[xmx/)Ix{Sd*^^qF fbf f+* ;(xJ }[1cnDzuk nx8[`Xۡ&ogXd7odat#6i gǓi>ٟ6xQ[*rAW})KAoΑodat#6i gǓi73ޯ{W~kҳ5Q(`xBd2/_[0~an² 0 [x*v4 aԼ̼|ĒyG mxQ[ӌpMIv)muVFodat#6i gǓi7M㩴p8S˵O h'07x[L3g[0an=ò k qpx=,#s&w*o-cô9UA xQ[]4,x5s[Xodat#6i gǓi767ViInYJTdEt%1xDd"fUvUFfbf fٮj ~%xQ[m%bOAG7Codat#6i gǓi7GO^IģbQtdzP&{8xDkA e5FzK ?fx!** x+|D=kZ lxwC3UsAWxwtvN] 'MI׳IL^4C/7 $1)'UA+?)+5XV!:9?$13/H*kͥPrO-рiM  Eť9% e\ mi`m yIn9 kjl9@ `RaFk5XdTQjIiQTvg)'F 8x[{CfK|/c,HUMSM+TPZZX,-ͱҁiy y9 jj ɥ%9PQM.Nj VP OpPi/RH,SҜ#?id9RKJ򓲬jRRx3l(xR|&rxQ[9PxhcnOŠ oodat#6i gǓi7~C,QWD]77Hpջe)h!ض )ɥy% Xk.N⒠V>vd) &OTB>ʜh+$S+"J0t8Y ]U9ASR3! /ط$1)'ձ(RA IġnBVq\[Q~.(+@'Us#[Qf%N x{CcJBIFBnbfBnj^BZfQqd>^Y6T1xeeP)ҹ§~{$`n~a*~ gx8[Nw0=$~9"oZd2}= L|?/i>ѽ{x{9CgHֻwZ2ez7 Ux8[xn,'f?%OϬo:'/7(lQJɸ$[i>dzix{9CfVvV&F @̲5 CxQ[hLi@ i4aPo:'/7(lQJɸ$[i7-҆ҨR;3,%x{2Eddu[1cn]Dzu6Nx Sx!** Cqx祾)o}U +Gx[{kCfK[rE%Ey IY\\y)\ 'xQ[yh蜶ҵ5Rso:'/7(lQJɸ$[i7Ѿ9^!RqZ啳%Zdx6YD={[0anòu/ .xQ[xzg=PzFvRo:'/7(lQJɸ$[i7VĹᄛYWY ٝo'.xBdGHs,O{,#313la] G7xQ[֒W[yRrdBo:'/7(lQJɸ$[i7%:(p3olFK% (xBdrH3o;/#313lgef`x!** p&eC,(j(d? =x[gt&_db]r cx)'k ^xQ[Km'+W-5wxm oW|d W޽N =9Yi7v)HM[6q, !xBdzHs_{#313lc 0 ixۧOkrN* ggK50ZGMѦ)}nfn gxBbH  ?#313lwg@xۧOkrN<.o&Kͻ9VxN[CwP6/IIo1z2Ba&1_ :!V鳴:B*PWJ/J5x)]~}L[l7 sx!** f`{7b5n&fk N•`x;t2hQDSKqxN[)Nսq& .o12p"]]_#:B*PWJ/JYg"W|x[= _J|Sl6 [Orqu v(K,J,K-ҴRPWNOV(/MΈsJ2R⥹y%<2!;xN[Y a83 o1~Nx lɶq=/ :B*PWJ/J~#hWxh9,Ҹu'cṊ֝;Yd= Ix!** 7s39QtYp X˜~x;4CfKv MaxN[T2- dOt&qo1MYY=2Z$Vx:B*PWJ/J%2!Yx;,QN;Lw[L] C x!** St` ^2 Ռ泻 D šUx;4`CfKv-,T+h̼r4@Pjr[~s~^Ij^ TPV*T&g#bc89 % 'J?, &S6gI}g|M hH椁\\ZZ6YES[<sx( c̭XS а5x۹q~ ril4Qnœ6x;翡m%yRғ7_a|M9d Ma yxR[8q"n޽h Veo1K?^^}Pt$->i4#`)C("YGUc$tx)p,[,#31vY6-mx)pZ@ײ |x!** Ֆ+vߖM1bﳻ "6/x}ROo0WXLNe+iŎh4ʁB^RCYUUQ\ \"qL|l'-]5q-׃+nDq9b#C4` PL{WnMҳ=hA'n 6[&Kz8ͧ tS554+eͿw^9oMϮgq놲ޣFG\MCR8cL-/5Lxz0ttkL|[-;f3SpdّAh&(-\yzlzghq&ߙVLL,i$U #cOqxגX-#]x9[k?*S:/DPo1 $,B=OۿM5h<+Rk Ex)2pG#31v3(xۧOkrN͈!Gšwynfn *xs}ɟ0o~SA!3er"Ioqoe|CH/3ɿ$'9?//5$H!9'86VsErWrdiD'e)%**ehrqVBRKk1%$3/$3?z=9Bl4xsjye&xSxWfnvn&F ۹X&{x{z놘շw1mwg >xQ[%c&S}r6>|oڻ\]ߖΓdƽi7ymT§,$<1*HxS'f;v;fF fbv,? 'xX**MOA}0+OIѓ&1Xpd]a/)@nXB]sh ۃ#Q+xWklWkCc]߸$6o~E.;iٺx23%%ЦM_cJG!(J h-T*B-yޙu9<9g˚߭>Pb3 P^9^fxؽGVm~Rf9z@٫!~[+0ޅ4d2k񅦟c5h}z_YbivNa*517! *W;,IIύ-&/N=Y*vFK*`AI69>+ yth|X$Z_~4 'u_F숡-k'Zw?2; ? 4)Jh0b|v '4ЍjcePrrn S*/f&%>mylXCqP J's ScW:6~86Žpͫ 'ƇpaFayR4r{hbjŋ)*=ϡcfb#fƍΐ/3={"l,Bu]ِeLT0C>j/'֛~RSz;zd{ x\Sa7΄gWovbqЩ]}c]QNdEEG};k5>CѾhUNHk'S.#hO~ ]O{ѶZ#y./LV =3:K*J}=i}nPop_ buV㓷Pf 8_xm4] Z__4~Ѕ?jUqej|Z:yc33O_Y]50Wo@FVjo\=Z^ pEC&`C*8}el[  |rkҗk=P Ghz! ^ VPo9௖K~k9ד;1ƢDgw7@j ~XzbT jxjS~WX|@d,"> 1rJib_[k[| }~Qe`/ԢyY6jI Vw$)S"Kۯo_^j1\dt !γ 6⥙0@ϗC9~j;E:݆ E 4 oV>SE t`a+_)nB93(i 4ь5ayK(yaI͹#d{,X4Q;WAU0`Hax^+ęÌ0wo0wXnh >/Ĺ$bck%?Tdݚ)l#:Qs[ӫLd#K_@.W9klչU2njN8ksKTz6س{.,{:]" 7)L( kbQ}FDaZ!-b$SrAo}nI!,u0YvڣҠ4)|+p^hiA]4r4%"nqI )MAp#Ē2RVofLr` ̗OM+S9IF5p_|&~gi_3/ed'sZw +e)i z=ٜ@)S< oT7r1'HfWuv>\sbtX;߬/ogwSiq3[`(K*,ze,ZM{!#R-;ZBH e,ۍatiAo)5M6^xQ[w=3 mqߺ<ݎo} ?]Mb$Yi7l{;6 *zFƹDn;$2xhZy=OzF fbyXn~ Gmx4!vC,QWD]77HMbKxQ[+('81?[io#@`l8W;i7C:C=Ciˢ##,\xhy!\^L@̼ > 4"x?**&Tv!j;D/SnXBA Bv)G;ET]  2xu} 8Ә&b\: z3ڛݫ]'pLή朼HfZ_V*Q-3E(y|ҢXk.0ʦd)%y%y% ]%`V d\@Zo˜ HfxmwtC7f~=Ly,'OOZ %3xQ[TBkR{}@a@=0cgoӧG_mj#4v{דi7|7s$gY<)m&~xhP`{AF fbYf~\ ax*';VSNE#{(100644 GNUmakefileʟؙ;䘷zYoRqӽ6H$Yr hXBoάt\zÌƶ ap <0}ps>nX6&,b_42b&'K8=Yň q 8C"<100644 GormPrivate.m)d.B=b [nHxQ[v''&wH,}e4Yޫ6nX6UC%"N`@;sxi ?wfmn MAxQ[Jf#>|axoӧG_mj#4v{דi74Pp "cFz}'xhuKOOy([ x[''n5_X[_3>pP}ñW*s䮳) E8$u$**cH09{7vUSNnX6UC%"N`@yj7&1څ{|L# H\;G x[ξ}BD5cnNwۢ,rQ-)oc3o Hx{QxƫW[2^ezER 'x۴Fepc#31v=FuP*xnz$NVC38EHkެOx{}C)2$F!sJCS#3%kZ./x9[ FbU!o1$JZs3ɢax۴Fɫ7/di_L@̼}! ċ܌ /HxUR[HQrjN6AZδ[5$_.46j]$(R &&=i4E)AC _u};SM/ceڒF5YgKO `U`=UCгBFGwn#ϙps"I(T]BE u!S+BBGޖ0`KSUƼ-orH2+3uOʁ\fjH` xJ!\Cp[FEE0u.WEX,bSHgHh& ="Q'eV+nNXKᷚ:M8hh,sKjh T(i~QKmP.&_ag4 t|ClzJZB7#n9Lo@fV9:Ga8Ax  WJx9[c..<:f3yo1!ƥKAҲLԳxDp֧OZ2o} x۴Fyp>k>+#31v}Vu[Dx۴Fxf6v66F fbll,:o!x1מ2006-04-08 15:0.8@! 6[xUmC|CǛdD)zLyy,x>Ox\}[1c޺e9| ޵Gx{}-f~ǂ"3#3%kZ.d@lEx(R|*͗%Krx>OlHHFfb푌, x>Ogpiӌ O3 2x8[(#& zyW)5mh)ىoy=$;h wONsx>OL||&F X^ ݆(xw!#X3:zɑ'$<x۴Fxt~~.F fb\,OC FxeU TTGHN@\B1("HY#QfdlJf ! 8i#.8䨘$lwfLsT߫[ェuLIV$8x>j) Q4+J{SOFq̅%fm.|t&æey{{Wt&5fgUUU#n&(UVUlQ(g~#(,,ĺv"/z~qlm!WD''^Fzz: hhh@^^>w#trN8]Bdd$RP\\ׯSz*aɇ<5QsB.,(*:^i…:CEX3Hd&vMhw;V`gb5iZGTt u:!77`<Ocr ZKpEyx84^_K1:mpGDJvNNa5;ܱ1Ͽ)S' _Mz7{5b6E{ZVʼnlf Æ"4(> XvLjEҁ썋ǷGhnnFFF69[:p8<:b٘v ^5P0pe *HA'qG'=]Οpl#-H45 nXJȡ,]ޏ{³nMkq_Vj;u[v>°zpWm1L%ʬƏS4dBeJ4I')ko7(7Fqq>wŦ\Ÿٰ5;n. }(½/tP}mxԷ3GuiS26Af"!!SHXSmg-NhД]Wc*%d[w<l$LF9??5,sU'3r &Q Aa]K,8a婺X)Jqː'Ab3eb&O8+"PB?3~/x۴F] f8 lOx{|AyC!x% l(x{>}:&(x[)R|H{{pKQDێ ;36p6 #x۴Fx$fIvI^F fb풼,'r)%x9I [/0^`z{$ gx[ömF0͇#| - ̔jI )x۴FIp_#31v?>' Hx9[/B&_;Э~moA>^%ܽF&]Mx۴Fxops){)?#31R~ )x"vEl<i%|7mkC2 f&& E>yz%ii o4XsbMsCL(n9cJKgި@a3x^39x]{k파3g_ ?ߦm$E3H"9dIї* - .49?3JN}u݇c>9(*FoNɊ:T< hnٗvx0Aa:+j?9›xPzr7l<{&sXL>e Pgi=X&{3nĚT5GZ qA1Lu=H`sfH!1ex0Aam[]7 3M>8 \ u(0q>FU> Mx0AaD@r0>sS*|&gt13 H3d&uV~c8'3L^m8 '?ͱـq0+3PIlfd1'G3+nfD ʮleqdqF ,«Tv^c N9~|;<nx0AaD@r0>sS*L93a.bR'0*LN`ҟ^̂L93Yi @HO˖8͆[ӑ53p&,x'n~gqcxcb;D<"9CɧLTP="rbr=7dy&O7|^gf)0 {B/O U 1o|Y0ltdy֙?ogdB=k:C ,ҢU@w2@4L(DW$ [?y;YoHm xcb;D<t&_ғQ &7970M^8فFQ~ \~މd&_`;0Qe Fe?ogdؼB$Nqb f,/1u0x;cqbD|Jw i %Zpr! ʓ3:LT$,?YAxr?#ܖ'G3{2e6 31VM^ |Ď8"6$7s`Xk:AJz:d~Fɯy\F 6.(’L2e>sxN@N|g}~YE&3B@*]A,ʳY_.}s`FՒILfM NgT#m+xR[P8'2h]$eWb/o1"B$Q|[Q]zA>^%ܽF&]A% Dx۴FSp@ !dx+ \ex{(744sl=esxR["MM]f`oxıo1t ;}QqR5-4!oLOW P*S4D1#Qx{(PGcS6;e x۴Fxfnvn9F fbr,;}jx8[f商%Mٶmoy&T#C0uMa_œvx۴F;sr cI Fx60H>6;۱0abDV< 6=8Xb?~O'dxR[ qw :`o `4q768',"5Dx۴Fxki  OS` 0xUmAEցKLaor0y~THx۴FPR#31v-%-Fx[mNFFͻc  LjRxx!tPZ0o=i dx9[H2 { *+Kձo1t:tx+nZx۴FxS Wf 9 ԖZx{4lC0sfja 0}FXjbaτxX;x9[hci:PN@o13. { VMJܘDBcNx}(tPc#31v7F)j&xP6;6s ~̽6Idyܹf>Rhy}#}O\TUq }Z2Nz|]Im)HX'ŲJlʚF'EI'7bIU,Y;dOjH++!Sa [BSyc"SW7LC/3'j۶]gJo_kL[<1I|_(n@-l}8TPQ9+*Q3*n ( urAa=JalYhW}{?tSQmMUy%iU:,- %#`IbPk(/Xzqn={gmzg#1qԌVq!1_)hnka{P&H|./11~h (CM)lL IR/(7\\dhuiĀ R3NJEz/Kq4^1Gyי nIsD9I4.XqF HwVNJ;$GUMܪ!u|Uݪc׸I5|Q2*_zRծ_0Xϛ|ZtBIp% (,@%ey%1_W:In$oZзH;q ۷˿X(Ǜp]}{M$x5aC6Bɜlܓxo`ڬƟȦ HM>ZQYP L)ɀ nV6aQU/Lw+JMܣ $5xP[\MD",Do<#Q23䑿1-buvVI`bֳ$.pxpFIf5v5Ffbj,^uxۚp1~_n, Fd=Ü6hc ( jxw[,xTкבo<;$xrnCGy100644 GNUmakefile͐G/2+*8ly¾OMBZ8l pb?6LxpFhIj<-4MM2/dbbͼ}!Kb MxUmCڛwZ Z۾9B _Q x8[|)EHwx={ ȍ!FޞU}oh`L x֯a#ٌm\ťE V'l[ x8[GfQ,u:AƱoyu[jY#ѯ MmxpFh>kl _cc= x'2xflag;? 2"-%x}(aP]B@ l G Kx! >ƫyګͳ vxUm=n֦4 l0Cas 7%7N.x[3sF0 r+p)(D%+$LΓ* bx9[1ƭsVRAjL%;xo1^g $ߟx۰[Ns[1cz ~)x۰[vSA bdy6 ~Դjx9w/͝;SnxnztNF38E3ԝ8x[öm.FFͻ K  Ljx9[߁ꕓ%1ԉ{OvRo1'IEQ~y"%[?Zx۵Oh6&666m,,V[]x%&&&g _DlVN 2x9[$W25H'ECP.*ұo1(S{Y.WS3&`ojqw x۵MkP Z70o5 x 7~xUmHz>sIQ:9Efs}8V~N5l4kb\eݠ_矔\WWZ99Cf'l864yof!Fex9[ @yӎEs]x^$o1;Eר?3FZʷ'x{]hͻﱶceb& f~c nԸXx̾}&o߷QQ8 y}x9["K CL<&3o1TeZ{vǕAxAhzƚ5,lA }xUmFeyٻbҹ\a,$Gx9["K CL<&3o1Y~1 D?<쳴7yxUmHG 6=t9,2X7Իx~}ëu"+D0|  kbA42m\L=ѹ)۲Q[%]&x{]}P}@ﳲO] kx[~/ۆ(۷3VTUExxqBH<.T滚1KE$L>w qxR[HXṋ)Vo1=#}PH:42m\L=ѹ)۲Q[)7x}(tiPt4#31vki}\x}(`Ps\{#31\9IO iԱbxkmdzŸ!^x8[K  @1Ow^ЃGoyCO40A O|^x}(tuP|<#31v yЉ}|rxxqBݝ, Հmxq}C;䝌U6MAlxkR> jx;&&>,2-Z1ksk`RmRVBt~b8n  1K 4 .)ȱR. &ړi k[x.WnͼlX6?HԹ"xEJAE1mDm6&> FY؉dg}/fA_o%~`lx{*_?;/}Y&E1Va/'i Q$R%膫2l2t:nAuThxÓZ7sn$ Wl>ikʼ`/JU.ƯRNU)D-u1e L-OHSt,7i ,+R7VEޖćM,IY:k\W{|@>1phx}(4cPW*@ۿ ;>x%%% H5ךG~i#[,x֓`J<vx8[@ >Ht7&ڱo} '_;abW%Ӌdx[4Qh'X(㜘PZZTPY\W\ NMQ*-.QHT(L(ɩTLN-R(OT(WHWȜl/5}o$ Oc#31v?Fv[/7ߕVx! bE󎿀I9 I1yx8[V--,WH1L+p(oyI[!f[JH? Qgx[4QhjPs/[{/#31^6& x31Լb_,_SHr7D1HMbf^jQ1~jwQtC6AT$$2TWEt楥w LLBsS2sR,bqٹrEn3MTXKx[{C?{O03# ax8[$6`cH7 9~_oyK(tﲂ\&Ox[4Qh7o8 `VT ʦx09|Q S{w톍 M main"Aqx7[@Esӄ,׾T:o<WOSȖY/׌)a2|xG@֕+ZW2o]n { /Fx}(t@ Ō@7ܵ x%%%~d$/ EL6 &z{x[4Qhw&6_6_6_m,g/!jxxq1M)k7bRyDo i5xƲeOFG k좎 MɼL dx8[xcm`raX(Ǡoy j"KO;y td PEx[]W[3g޺q hx[]`**FfbU,Vx[ξ}BHYxsJQ_1߂b 3x[4Qgr[ 7(Z} ix9[ T}KHyvV o1aӠãh(|R v!Lx}(4@s^y{^9#31ryKu Wx9[ Ro3I+ܬXo1Aj^F3NƐ <}fVx[^uC\I뛶\udk\ ix}(@Ռ@W3 x9[wQa|q%wBo1n{W;F 6ox{R ƺ:::u,&C  x%%%ʲj־Ex|BVxB`s{[1cze1 \dxY%%L7χl֎G/D嫖UmnPwAx杢`Je*p@x8[ʥuۚ_V.Ioytqk~~ƃgffBx9[O P8oY#K5{ܩ<5^STJn.x[H[3g޺4 U/xR[/p!8@7`v4fԱo1NmrxkTmTݠ%"z|w~6) U=M6\ٞˉ k-xR[zgs!h= o1w:\c+=X\}4<oXw3HqV+Z a&+4x&@ Z/0ob OnYxq fC99nQLx|[Xѫ? R?Y(o_9VJ#B(i7w:\c+=X\}4rQjX_yf욇2ktPQ6ʓ x.*BeH@x}(t@َ@vPC px0hP0d09cQҿđDpʍ+xP-'HxSmVU@ Իív nU|Qqq#ZnU>ob4EC'i#mkx&AjC6/Cj^ $m2x'%Cj^ &yxQ[j~ZxgX$.o  Dž$䮸6ioD+dkM3TY9%bex~]`YkXOvTiyVcx{ob4EC'2#B?xJf'j^If-}.Լ.MT0^xURn@K%U$.IUE RU*yv(p@2#8ravS䲻37wIJ^5jPK#AQw@9e3_?xt cfk6ܫW[MB}Jrmsj礶|F6)|M)Z‡Zu7S!epx4j}7~tѫS'@* a(n ns}ɾNK,B3;6Eh3CW":Qڜ9ݮݪ:r{lowM$M}2*ۆtv؂oT^Ӈc1㵗e2x}JqD%@ax~[v)FMP/Go!\?U|~sZ*ZBxxQ |SJ^~"_6l߄l'*n93x8[g.UzqvXk'oy_L Qo!"cVJ˽Ox[4Qq)R ?Ha9 F "x0"G_i~n«ˆ‘DOiʛ xPFp=Ѽ]E@-o_43QB)#ZnU>ob4EC't&@x{!H~nxYRRKKx8[Cv# u `g# hoy,>ӥYm0T+vk홓ngx[4QhQ?R HeY ;:x0hP0d09cQҿđDpex8[?I%Q3ӥ8,<.oyMg/ϟm)ܹ9Qx[4Qhai KcY OTx0;*(oHwDdFxR[$.Q'hCWѱo1%$ ^lE B4Mg/ϟm)ܹ9Q%4x[rX@ֹsZ2o®s\%x?%%8__類~R `12#zccmt5eJ4M J=xq *͔yrKKrR *7窜t! xR[ɔ&wfvLF fb>,a ̀uxq J*!A>ѓ͔rKKrR *c57穜p!\LxR[<_{cU:No1ҞB񨋼obE]tֳ4Mg/ϟm)ܹ9Q&Yx[4Qfլv,F fbY,r NdxkTmTݐ.rx{_=E՟?D/n:vfnPxR[>F.؆DN{[o1"`v&cFG If4Mg/ϟm)ܹ9Q#7x[4Q.fvlF fb&,y* }5x%%%~|rF*Sgk8;xR[]gFibe7o1bNfvaJ4Mg/ϟm)ܹ9Q&:x{KN ['0N`: } 8xkTmT.)3g0,z8)~~d/v&%bhxtiC-|.IY og£ xR[Wv'#_1Z5o1ˌN5߸{A1*4Mg/ϟm)ܹ9Q${x{K`v歌[A oed) O tx?%%<^irTaoHs2@~8b OJƏ޷J4M  gxq[ :%Y&N>*hǥi  E \`5rybQ^f^BbJBjErjAIf~Xdy9mv._Ήz |:M7cIn'(\R2K Rs7(1OWޜ!FLuAګ8!l |[C2KRs'oV0Ebɾ,\Փ?nv) bcxtiCJ7zX7-xR[0A`ۅo~r,yo1/"V d[OS Sγ4Mg/ϟm)ܹ9QD%Dx[4QhVfvqBxR[%"(ה聯'"Q9Ao1\CdPjߝ)z /!4Mg/ϟm)ܹ9Q%4xU`fƷo[2ee$ #xkTmTݰY$_ǫkD txR[Ȣi1#x*0Z1o1Skx<ҾfsU4_R~l,Ⱦ8)OfxU`F旌/A ddY-V Vx?%%Q೷oo_%M4K,?2˥ t;;fJ4M uxxqBuV)3T30&d̚, x+-(/7keʮ<Ɩc#ĝ8p %x8[/-Ҏ2Q!U(±oyolL5oi@eёqxUc@sS{#h=L,aV-BxRc Y2 Rx ` #cѫ}ҶFۓbxxqBfި-2ur:.;wȝ +x Kp:-!PH==- 9+zo)ΐ2 1o1 iYj89FSƳNHx[ξ}BHoR:|;Pj8S-+x8jTiy)֯`@4%?Fx[ξ}F*ɾ =bOI,Jۼ3#]-x[ξ}BM/0{Iݺ1߂Ś Jx@<}[1c޺%z Ox[ξ} &/?Zr3/k92jUZ,x7[X |K2Bo<<#ܗ/? +)A2x@k@) ۧ0tط7x8[;)ZT4v֫2Ilo2eU1Ko߆FK[سTmx+g@S#h~L,6<zMixkTmT ,CCSkfVI Ֆx;ad)i60l!͢9dfQ[AT1K,ILIҌ i' A=3Xdr(/H :/95'Gar oKhIH@I8On4/JI-JM" X?IJd@rQ~Nҥvf(O tne7s;jB |xLͻY&+b0 N/9df~Sd_ɺ ӣO0qN2\'5\tAW6\=)9y4nn wAYI@̴8o:Px>%%554$+B 7luK$j?uH[$\xz22*ǯ ;ߑGN  x>]rҁCima%uI3xJ3e}K[x[ξ} &E[1n`f_>?|U 2x>%%554$+B LE[2oX.aHr@|x8[d^-Zh%{ھD0בoySyT*|RѸ-i>:Jx['m[1mƜi5 zx6T { J RK8!@!-;JA/8$',5Fi3!C[:h4x[sAi9FA L'x>]rҁ`koajܱcg61t̥x340031QHI,IKI,.N-f0g<+O7[:K1DRS.k ܪЃ*OJM.)K/e8vbLμґ NY91x\ |\Eտsjm }?hg7jm2ޤnnw&mEP,(0EQEQEE[Ŋ(93w[f5s̙3U2 D!ÿP oi,ȬUx_"񤓶,mk\wo,`5;6ExԋH1Xjt̚%2T {xrUQj+ie.4h5X 4XnUAmN29@-^6Rh\x2gx?FeC"XaUt#rf|\p5>1y}}޹R+j LZ;vQk/8CrDFơym޼r0Xm+ oYl \djv!^+e VYuy;nj\Q7n ]kGyn `#79ir>~Ԧd%8j[ʈJ*`h)oo\ڪ]>tO&j|}x2A'{k˳=8zvVeI"L&k횼vݙp3u^wU[ɘBOӴni^^F9X'MfW'VΛk1R)󓵰٧Z6/\"t/b Д^׫EwN2dPp&]p6j'B9f;* dj4As6-ϛC>BA(ꩩ"Ab~9Ž Et7/K6\v)>j]!t)RճrP9!Ɉ7w^r2;JU b9m Mr#tA!9л׀صbb^le-lK$f_&1[3U_%1}5s^7>b>PKvw3(w!o}Ŭ4A'IA#Ő<(Mb<$-b$XI㡙Dmxh!Q[1ZI6F-V ji?HVYDZ&$\"Y>/R"E X*lKN&l9I7(Ol Dm|ڈj .H瓨8ט71rg0P֒pw!-Ll V֓,LS^Um7jDm-& ͤ+ӂ]`ޏu9A!`ۈ`ۋ.xr`;ʍqvCI]D&`rLGTnO sٌ'fk#)b#%n!:(oH|Drl7![ 4!_uqw{ {- nAnL$IX& "6bλDm|,M6%C#Q[q3%Qp"P `?9L1O=w@ q}?b∴k]8-C]4R[#_xH|C:{.Лu@zKeme~ۡrĥPqW ^/JK4 qP#G"?[C{4Z4FP Ľ_x7 ި'oR27"tS&ÊiPfh,~z,90E ?% eeu+Z] _E%jx?_F\Wh|;Z@\W/N5 %A(A<F\='i5ħku3ν:kJ.86Ud](`rS~cN3IȐo"i"}*H~-VoI%(fޓVgi{]uEvbd{NVlG/M!hT գX?2Y1< %sp  2)#řT%03gf>=?/ƌf"Wq5F IMsIAa`zEuFsW]`[_3RGaR*vp5Y-(;ד !_-s `>U YjymYX]dmq+Y[~'wKGpr3a.O+)WTlT%Jp>S_PJ=pTr1'BF=!dW fX®6cdv 6|HàIjr+Igx^h@N@P㉨@St&!!]/ob[33 .9 Q,sKNUI= Ef8af8-]0AIh<:YDzLxЉ DLD{ S6xlJJ` kh#ӧFYlt~MS.xkTmTݠ"b&23M>|dz*<_-wrf/s>R}x['iIfo D5x4D ; 7?*:2yz1 ! %Rx2$2\O.b@end n Ic bx8[|&lqBN_J رoybֽj [Ib5c Ox[kF fڞ¼+tJ xxq,Fn~T>R7mN'xòeF|SϹ+La -xQ[lpHBZA"ros`Ŋn?p@?oy NLdUĿ葽^/bxz {;#3m7`gzgTxxQ |SJv[-i/f|'1D-I޾$x;xTqYv>\`ԼRO_q< -ux8[ִK$֦4g[@vYoy;ZL4(IcK/uD +xz~3s0YХ x31ԼbͮF0ıS0NsFjIA̼b=ɶ_6c:{ݽbzc#b:džG4mSVS}U5 5yE ;XS}>F}]7^2qI,IdX5; "׉_n~/ bֆf&& ~٩i9 GM8\D"R癇>Z&˜x8J@*_H},Ў~{ڑ )In xsqe k7<5V(x[x>\`ԼRd6*'Ê&<lj7IOe">YAmsEtʟ&ilSdžizlNkƄ)nfL qobvjH*֚KAlCI2byxƲeOF??2N86o?ɬd^&Mߣ uxذYÏNU%YGh1 g#x;qz j9 y֓klc 1x9[]Ma(۽o1U< Et /x/įR,+E]xz̿sg{'#3md6zjΉ x$$|]̚o]zkC۬%u2:O2BzXM='L6̝kMJ4ZEHI3Gp9X*s100644 GormObjectInspector.m 2vY._|6 IJ)H)jvk KQH{ ް X y 0T K3rAzzmx{u+kZɖBy\ `PP_`TZR眚TRW>2x8[9ApZgÀ1 2:RQoui?7Z+yx8[$X RC{msoI8]!KIvԳi>4xr9 [70mbr Ehx8[5TdNQT5o}Apv`ߘ2:JS%3K6MFgxQ[@2I eױo192ŀ#xi8Apv`ߘ2:JS%38&(xz4\܌@̴}.7ۧ|o +x!$$9b1A6Y MxP\Jp3.Unɱo1qprZHR)1xn8Apv`ߘ2:JS%3>&2x{{) ['0mc F/x%$$ Uso@Eh}Ɗ^ H !xkx.K,Y97f)\7t (%xQ[kW$T5|(ք\o1ѿۻz]'Nb! a퓴8Apv`ߘ2:JS%3" x{{IfvFf.| iZx$$>tAoטa&lb8JR)TxQ[qw*75#:#o1R?ii^5H.L2fS6Xs8Apv`ߘ2:JS%3\ :x{{}L@̴>3cp 0xY$$2 ;ڇnSv1tTvܳ2<*x[ND\Ii:>^@Ð.^ H "'&ͦMx[~y-;gXTX]1u{M9'1rqqN6\-}t@AJYx~[_[(_6"">Z&$o<]LW'}'k!qYzCTnA43i7>HY=NaIi+Se]8Apv`ߘ2:JS%3MP9 *x{{!VVF fœ| <ѽx>]rҁW)U|\h5S5Uʘg~x340031QHI,IKI,.N-f0g1j;"KgxZ}ɩ~n5GWYnUA'e&2ެ:+=~!;G1 x;9sBdg-,bW@xe$$>.;.҈<100644 GormDocument.m!J/JipLo9΅Vo_[:S,y_ : *`yx;5Kkr>!]MļĒo %ͫEx[~m~-;N`\8}i ,ӫ5Ob5}{Ũ2]QqdF$Og*$NdI*AfBY~RB^f5'HpF eT-L-/H)(@LaTa~Qz[/H$VlbՂeĐלEt>FaT~}ּE`1ʳA5 S&/6}_#t yF x(0"/gUbԚ.>~2BIQb^qNbIj 07Nfk4FSTJK3J"]@9n)aSXMi2L)McL>u.TtqjNDo50jU;Y_y{<ƣ+LxQ[_=;PKe8E~odw(gi7=nƣ6AwHz+ux{qA={[0müeV nζ{x4in %3hdx!$$2£B{vtg/kܳYtxBc֋4objects]2,e 4|' 5gxi[3GZ gpwo<šcc_DgJI3q09l LM+촶vi7B2:{0󯳴=F2`xre @̴'3=~v ι1xôiY7O(y%]E #!x|$$~ fݯ(ڲ?>: 6c8x;uXsj͟7Izͳwx[~b wn^k6$24R3lm jj6=^6Y_i{<ƣo̬vx#2Gd?Cj^ 2LF[Zx )o, G2]C#渓ygFx˵ fxrzfvF fڮ :fxX$$yVSdt~P91ISQLM)H%`J  0L$<^&l̊Ix`!ws%>#Uݥ x31ԼbDsvH\;Ԭ&`y) ;}#~7vNJ(1r+))fsqlx}O6e5NP% Qc RZT̰5ڐrJʇo<Vƌs^(6+4!zR/(qx[Df6L .ֳf! x{?S9&F f~Yu xP[T}qFb2wL%j^yxmޱ fx+-(rq7&5X6J[xq# &'OVTĕ602*L֖$59Ncdeͳ7؇1Px ܐ}8Ej^/q~O NUxEk%bm̓9t'Gpϟ)'^ Mxkeoe-Wo3fu7?3Xt1|1f Dx{T - L'/m<}>#3m4%zx{˿_ @̴}>| S x8[Wٿ?٧ڧ8@Vo"QS5xъspQFi ex{˿_-@̴} '^} \wxQ[2^ L^g谜6o"QS5xъspQFi7c ?"r ˁ%ix{_L\@̴}&z 'Ρx8$$|Zyg+k+X 3H2]Ț 2xnmx[x8-B _ 3ox{3_K<@̴%F GOxkeoe-7_ka!YG Za}vc3ɋ |x9[ĸ~YVrYUUߎo1pKW›a홤nf#x{=_S|@̴) A+x{5_?@̴ qcxjz_Ϳ;XRR& n~" yx9[ H K\ `io1Ad?Eukgdu@x{˿_n݂@̴} V} rΡmx[Re*{f:9df#nxkxc' J ~/.x9[ˬ6UBW#o1#:4z/zƈGG@V$ux{?9_p0#3mfjl|xۢ\c7|2l"q0x{?6_d$#3mwdjx;<\ ؚط{3lQrx[}1k'dKɥ,b9Y7dyknn}x;#vǘ&Oفe{Rx V={{r7]7w˿xv %&we b3x9[/5zzo]uB@o1b;vjbr3w\x{*_3L; #3ma e :x;<\ Wٚط{3lN?x9[=5mS+]hVo1OV+ZK+`i I/1hx{˿_J@̴},J| ZFx;<\ W6{ aךEAAKyQE1 r \x9[|[vΦ[WUvo1~M(VZ=zԡϳx{_s|{<#3mgNZx ΠIx!!e>sIJ:w~͊100644 GormDocument.m'gc-b|`G4~/Z4 [{ٷ \O;Z`;)=M/5[ti+&Ay 6oxۢXc |l'C x;,A1 -7>BLxo;iff wx9[sqf#0m%@LFio1U0\ʗ-kJJ1 !}8xo<,Yiqf~x x9[ӫpHAǓ(GVo1Ї& ɬȋ$xVF fڞ\qNEΧx;p\auvq&}mSDzk:`x8["brh\npR>OTo}wߧE%><-{>xo,-l[i6f^w6̕x[ʽ{CnM;fS~RtZfE,̌@Tx5AkC' cqBIFBJ~rinj^BIBzj D(1==5E!?)+5X!(?,QX\X1(1%$ 2 DX!9?'-3?O!?M!;/<jRhX>[ 64 JHrq fP!rE@}V y9 yXK>4xQ[Iˠrv#Lo6o1l fI&v⁉<,& +xq&_s{{;#3mcgnf;Ϋ$x; 扼~M0efi}Ũ4plL*gxPcZdD\nVxu |;o64x4$$F fڞ\ p|4WxT9iw] xj[(y0xkeoeQDȔ3a7MGv\ ̝MxP _Cuv~aV&>100644 IBResourceManager.mj,5~qf^X B @І~ ZFR`Rl100644 GormInfo.plistd^l˼Vݏ^R,,xŷos5 Jn<;xi Ö dxGͱMͭ--@̴̴ x#++[֋tBE6< (%yo2/xky{-o;`>Sd Ux<++[T.KeL(}Ʈr*oN;҂hl6E\AfxZiVf2S txhztC$VꬲXEQfxm++[: s _*oEZ _A~F*dI100644 GNUmakefile.postambleke9!av+r,(x%osU{{U;#3mjgn. 8x=kC%w,b\\i%E9yVV߲ObJON`f\ 9R xc渮.F f< x31ԼbW9W* Jp-40<3/%aXCLqw\.Nzy9?(?aMPwMYR_NUY&13/N))r:s~*ĒD/ N]8XpoU@C3wԴ̜T♏7?Tr?r?xSV6x2eBPiX{խ]W6=^av# zxq" [75t ^H0-xee)2]h'1aužnJxq" ;%{xnʤ! v*3^@Y/x4aLܭa䜟WR3l `x{}lkj[E^.苍RLݸވr ex4aLܭe윟WZ40 dxM063Ϸu{j!! Bxee)ݩ(s~v{cF8\xۣG{+Cd3㶶]_g>9fI0 ULx x wl99[ aFAxo/@̴K/3g ?dx-}i>f\ ]xR++[C\f1JAX\Ho"ш".uIR^B ٵ'[zT 6:)~Pv%EzWZdǓe!] ެT׺V Ih %-s E!wo1O8bDЈD#wgBC)r-3:(ep3ֵo c= xxm))[1߄zH=0= >JDZoGIϝH٨B A;&GP4ҹLcG/) '9.ݴa_a44J=0iճ_/xswA7[o0m$i jx-y/fQV3Ң 4r" Z߫2mҨg)W1l;R>fkw  @̵SP:qve} v!>vұ=n5S^kx{rnf.v.nF f|+f>ҥx[r1 &,ʛ|zE$[N xk|C ٜ̖:rUH̿"x[öm.ͻR Ljkfx7))[#_Xv1?Vq2op,* 㞎 \*!$@x{r.nF f zҦXx[rn &XfN>"Y ;ox7))[#_Xv1?Vq2opawE6%`$ޛPx׌ߠ {(9Iҧ*x{k> ,3v3;Gx7))[U(Dш@2F"ّopȼ7poI#ZDZ<[x{r\\F fڞ\xjx7))[9;b}$ȟE.M>iaopl(Ii;w V3'chDx{rviaopDK k($)bMiEڱxkfnfDO3?"46Ou5N1ʟ4 nx[6i< ߛ6h7/x7))[UmxnwuCopĄ icNdI| vzhx{r6 xi^fh|ix8))[?P;ǴN3L lo'ºU]n5: tIijQx{rVfIvI>F f.|: g_n'x;4_?{2=xP))[f54.NHy<|)oH!{38nBҽlۥw{Gs?3B:ٳЫ&&mx{rw&3gi~fHw EzxHغU$//$5v;(#Log(@"WARNING: u#; }L% xbhx{rwFf#v#F fn$)i x{rZ淂oi[Aa x4q /ɾ>aF f' {aְUx Y rSöηYgx*$C H 64 K,  ^ !CeFx{r ,,F fڞ%\xmwxk+LOlĨTm !nx=))[+`;OXI) hϷTo e1Spת8<8[ Yx{r2EDi"Qf`} x-ABʄ ; // QBu>R?4^x=))[uKGԴmJo7#VjEַ=Γ[3#-x;wR[3m]<9Z&x{rb&6q6qmORY2Fx{r"NNqF f)zx{@sE"^*.)7^>Cd; x{rll F fڞ-\x:x{rw\fovo)F f-<klx{@s<." ިJՔLhswM\z\ x!!ٙ {,nr_^5>KLx{IiBjNq*TC(Ҝ[?kXU x4))69d)8E#ݐ)100644 ChangeLog Ѓ5 A;~zne/op/_Z]i:g"̱r`k@l\PcËQwqe[L  I3VX)eS'ruj!" n?M'Oz98%Q[%oxS.QXZΈ?xk|C ٜrIzxq))[<+sk` o}Z <c6Z/n/`՞_쎑[VBw$ TAD !t4+xk{co6c6#3mfdY!Fdx[¶mNFFͻ#, LjkOxp))[99O=qz oj MuoEJ$ܒ myD[WMy_[\fF^_*@G32 9MxfM 1yxk{k"oJ̌@̴}%3-ocn3x{iZ +6T:[I[xKSQyD@ ,Nm٦el29q;uݝ?RJ,8To"_L$zeowAos֌ Fy}>|{uoY>=dcG-G^=tl7 [[{gv#N,`HZFIeQZQj Hi"ֲnE24\N$ iV[j*  eX UXQ<ȇIULf-SNfrc32Ǡދ.]~#0 #,;ǥpU[X\ZgO2e9mB.$ ܃vm/2m6՚r;'b撌(4rЃ%5p,+^o%Fd )˦ZJv$]QzgŌ bPωX @'c0i'$:EYj{jj*'Bk,}UND |dGJ RVW:ذ?6쐜?5)Eb36*S*rZX.,.4tX*Fu3^ "泰z*sKUZt`|yfN>YV $Y3> cWer%.<dgji0#p IQp7a8ENqCW c#|:H"Bd3n9A3)v Ea4 0:,0'juL:MZoxkz2ɓ&O;Ix䔭ۛ|Y8 !x*yCłΓلq)日N'$YVD ]1xR))[UZNJBW2\o/ #gCו>a1 b SǞ =PI b(I% xk;9=2^gx|'100644 GNUmakefileUk qwXR1"] GEti"f#Ñ݌48T)ֵ@ޓ}<z$K{M @%?475$$3?AAG먩V&(M~4 wd U0]hwuLSʠVxGzJը3rv+cW;xs+]ճ"V|0 fQ{731~i-nqKO*3D$oM4=:gY_1/"Sa{SBgL!6Fwӝl>ݩSf΂$(?)+55%$K?YbtRҷ"M^ĥp0g楇ee0pi[KX72!\W2s=]K0dR lS<3$ڙm[dC9"oO`x̬^T*u_dFRRJ?>&Yտy[ߓL~nz|ނN.O' wgp]KT_%'6UZqj`)+fO6 =YExkɻ9=3\x[ehfMjG$71 x31Լbܣ_j߰ӼM 3Rˋ }Jro n$MU&.% [µi]|ih``fbʠSƓWt٥x340031QHI,IKI,.N-fxP>Lha >"Kg(?ՈۢVRC|RKrnμAL'dG{n-3.x^9Ah&dQFyf3By)f[%l* N&?tG=%N F̮& (0o.eb'27B@2KlsaS [VēlCцɁfHhx8(([χḟC8.oGw1Qqo{nr&#;xxqHOKyպ2nZkyDȦ ?Zx+-(u"TOnu^vO  Lx}SNQ=30qzJh\EED.*"HV[  5g~&bL1G5gd^kwe`Ի'ݽ/ZAAYɩ#ŻwHeh"^KoЕ*~.ܢ 2(AAd|-%%?+?wTR5nH5ĪeRGl;/zˆAd$,5ХF#Ԥ\?A[R4{Z,hzs{%zJNکA {{[tɜaB2"7sB&t[-9.]6=g4M,rѺS":rf%4V0Zp]nHh Ymv&ly zL^Ebh Omb; ì4 ,GXVh5B NF>%Cc":RipFгF]qk: ur2l `[ @wc c؀ٓ-zH[x̻=O>W>#3mb^dc lRx4yo!_xsp#x! Nذ1\+?Y++!ť x31Լbܣ_j߰ӼM 3RˋLkeb[wZݱf%Fy%E9 $ ;)luVUqc̼Ԣb{iFŲڏӞo2qI,IdvΚUASP(0ͳgh``fbʠS M@Ha7@ mH0/3Lgbٱ'f~ss넉M>_( v>j s-/6,ٸP`]jƿ5ohulWz슓kdR1++.ΒA.u& >SY V*hSxx7^m촀GY=ΘS8jy7_id6vMsg#c ly*_<ļsϩ v=&(X^SUUhIY[\m!#inBȇ;D Ep"7"Z1ð%|)ܾDkK4 :F8nt ]$|G$pD;Нx* ^U{x:s{pJ-,$2Yƒ{tV!^k</pՄ\-AfxtEO(i 0:GL H,qI;6/V]i3z nJaqnߗvNpHLĀy1%MF|gOgKl 1 X Pn<&*Q>OR1/$g=|vql'?J=0kUju{G\le|s: =9yk#:jyMx>oǗ̖#}~ yKǑפ)#7LO 0#C P-\޶ɚ /R 7uUQG*֣DʦJEȞ8ZM1G(5yLղ?R)d3s{ժ]5^*3c9t‚l҄N9* A=Ugi-)SUq /ɛY?#PIwԿ?/boƒ_ԍ3+sO+KE$.[E <;/UBxLʛb<ƟijQ /HsPW7t*\ TAMkvxo_IwzMۯjVҽ?_($^khq}z*Mk*\H"A̤"l//*AΕfӥb17^6A9NEzPyIL  2e.0f* sLdcBˢ&k~"2=D.wAߑ1zYHR** |6T BɘvNV:ZYm.$z].ÏH3$WysQvEDs's'@^[$Β+S扨D!*w4KOr&df}דAZϒ/ u%>AM[xxv2Ah9#$FgD=1KPA* S\xrD5dsDŀ(J< YtsvcYw &(avy䔏mоaj@ ̪@Kbagf281O9Hx/jcD," (T4t+ 44Gx340031QHI,IKI,.N-fTMK>cjjG e3jmQh!GQPEIY%zE ODܜN|Ӟ9‘8ZE+Iрjx[sJfΐԊԜ&fT"Ē PJQbySbrvzQ~idtf 7(휟_4yK#gx{ysJffɛ RR|K2+t8 #(*?$1'8'( ./ΜlƢ/Yꖙ(K-*LR !x340031QHI,IKI,.N-f7_^e>Znn.3/-\V#ƎoZEKM?*OJM.)K/eYɫCS^m^`N/ĥx340031QHI,IKI,.N-f)'Iv^i1;N e3|+"UD+*OJM.)K/epMmt2S͝n-фx[c*fԜ eR2rRS3K3t8$1-(w*ܥx340031QHI,IKI,.N-f0B}ω/)ک5{f7DRϐKVTVm_(?)+5X/=(cNBAN ;Y,x340031QHI,IKI,.N-f`xacWVIņO8I]f^Z>C\F-RU\R_ˠ cg(Y~BJ&=-Px{ysJfɛ 'eWOTbҼ̒ɺ,rX$|K2+JK2KrR!"sYvx340031QHI,IKI,.N-fPU W;oU~HC$uyi r1v|[*ZjrHoTQ~RVjrI^z~Q.~kg:()19;(4/Eun~J*ؼ @AQ~Abzb @QjSsRKPTv/Դ .-H-%^=x340031QHI,IKI,.N-f,gWv>9̵TI]f^Z>C\F-RU\R_`z-.+U9-ъx[ŵsJfҒKKSrR3K3t8$1-(ƫ,HM,)ʬ %x")C6g* %x340031QHI,IKI,.N-fxZ縻cչD _5N4DRϐKVTVm_(?)+5X/=(i:`ʤp0dx{vmLcKقs2SR&d״/-I-)VUTĜ\83/(575Y8;/?-35'Z\.47)?-(U /(M, -ʬ%#*ILG2(_ *DvQYbNi*?ٝYnH^ʞxmsUnn6Po CIKZ֔BU 4&MI ("ľ:̜gpgҳgizsٝ{^qhI[gTuHk=OgՉKY%|2ZeW>tȫ{YC b %JtM^Hִ5(uFyO62hn{gȽ #,3L_3} ^iCJ^3Ȕ:"B^I1| *&ڸv?k4io4i"bMlF!5h-uZ(Ua 8&D$e}sX˾# q8S\ \8nY&e8tkGB ¤&k~='!3B]>1)S\ش𸎳 O+NdEe(rE[Ы1{| _p(*i๐_J *P_EUU?SIf> $ex340031QHI,IKI,.N-f8-4SL"l6v4DRP.~cG˷E&FA'e&2un;xԡGS  ,=x~mLc1 9e&O>ƤXmũJEeE%VJ\\%9% ҒԂҒ<̼ԼĜTԜLnbEfni.xfLE ]%X (̼rkE{HEx340031QHI,IKI,.N-f0oTz!6o]i.3/-\V#ƎoZEKM?*OJM.)K/eU&兺|\TVI..x340031QHI,IKI,.N-f]s>;VqH3ZH2o5bhU#(b\jfxa+wgŬ+L6c0Lpx{ry>dF Ԣɕ272d&eVpq*Anb_i[fjNdg&e6ɼixoQ̃@%ȡJ_*E6I[%L$$mRWn=+W.ܨ;kݻnKLLj˽;>MQ,ssBrm)z"/߹tZK|]VFii+rZ 'BR k$ I}a[Zl7}RZ{f%p o#Yh)cnMyҠp?$' F{ѬFs42&Nb(0+wdsÕ? |ɀ/㛉wSY ~aٝs  wL1DRϐW(߲y-*`U\R_0}탔?/,w^-5xUn0}ˮ/تnPPöC2$:ȗҋ;iqiA3goÈhBeʎhtEb#[mt DŽ.jޡHem8S+.Am 7P W| TKDƘ %h5TEWCIdPAR(i& hڒ^9j=)6StDSZB X͝H><+Nک%#\Ĥ\0΄®lEsySڡ1ƭ\T1 8Cv Ps~ Ky.IԁPR5up^T!3K9?/Uu&?m?/+XKb,6ϪtS rQxZ}!-;4&Xkx 5N$뼫Q[0xN|xfa,%/ؑ%#N L[Ô/>x z_t&;N?QGu&n\8cі38%ǧ,y/Fx340031QHI,IKI,.N-f麗%"ZY>I]f^Z>CW/[-RZODr b\Se˥j&jy/IML0WBxS]o@|6D^Z)Qp"Ҩm+y^9nOQDݳQb؛^Wzq!nmQT\reF^*wd[тԞo'OoZxMfY%qѵ*%A|$[H/?a*8~P>u?_h nRȖXKKW5X-fXerC斻ʬA:}4C\F-RU\R_ΰZEzCOܥlX+Ѯxx[cJfĤ J* R}K2+t8 47)?ͳ$5-35'*_^RTX *ILJA!xdeMX !+BxZ |MboG@Ɣ͋NH7xۄܥx340031QHI,IKI,.N-f84w钦9ˏ6DRP.~cG˷E&FA'e&2{]Ulwӛ-"x340031QHI,IKI,.N-f(m!!uhWo`C$uyi yR-~ߢB֪[PEIY%zE >[wo Va(N/ژGnUSt+0xvu%KbI[~QnbId[&c40;$1)'US "n9)Pļ̒ `JjIbrSiII~d}fex340031QHI,IKI,.N-f`[mUszQeYO'k.3/-\V#ƎoZEKM?*OJM.)K/eXű-])g6F͐,ѳZx[ŵsJfN԰=\RR|K2+t8 5%$1)'5<$9*疙''dC4NRJx340031QHI,IKI,.N-fX!{Fc:g "KggoټzDV݊*OJM.)K/e&R}LGkB {jH2o5bhU#(b\is)  .7+yѷ8x[ŵsJfԊ ӋKRsSsr&;H'&eVpq*A~AIf~Dh*qx{m&+7EWr$R߾UDQ]\E,;.x340031QHI,IKI,.N-fȑ5j_uVzaʺ e3|+"UD+*OJM.)K/eX1#W |4U,͉Xxqc1fV7 u3R33Jt8<3$) L-sS'(ڥx340031QHI,IKI,.N-fNx{C9 f@r!̼|^r?ZjsbPEIY%zE is 100644 GormFunctions.mnrBw_=a*v a]fx9=27eOgψyx[rVix8(([kBkh/"0onK oɰ/ٛ U__ E+?bx9OK@̴%/ c6 ~ixAcB :ϳb?vlg,"^;Bخm8BqI-M*5)*Xp?lf&& Ez ט^fe. @W暒Y_Tls-W/9*Yۿؠ|gd# -'!_&uWr*3?n@WnNg0RrXfV|Vwkxk{Ot4#3m7f6b~xkzݙlIY%fM2jnޔ k,x;)Zh^gm@xVP,ꐚ!l=xz5iym(X)x{v^Լ..e W mGx[.D||nVԼ.")\lx*H:R/23x[?0mlp] *\x;4]!5\U77޼e35 nyx(([׸,P-ENL\{~,oQc2MV'{ ]GƑi 1v],69mՔl>H:ޞTm82 %غOo*/HZ:~3@S`PѪZWlm Av&[ =L1Lxos=Z#UN J/I!@6_,rUfuxgfivifF f.lfcnϒ]xkbNF9c0lxz!id-饛%dD;&wx[¶mNFFͻ#M, Ljgnx9~qCL&/kSxxqH_< sM]as=BHBbNN~BiBIBN~bBIFBfnbzBRB^bnBRiBqbPD<$#32(9#,UOA!$#XӀ=.̼ԢT`O2[s*h8h rZi吚µ!"V0;nex;ϸq"f ng+M"xq(([tKDBg|SToMvܾoZ".96Fd T/nni%PD@BqtZBYcKԘ6p ]2rxk|IMMisD Ax2, S&Og7YzSL- nϛnxkbNF9c0bx=(([sLK SFQ od\-JkduT;jXqv3y xkɻ:OM @̴*m| oxAcB~{"Bxoʾg,"ۗp _ڄXS]Vglne aP}q?zi)ٞ9?(z&2yb(cxs,L_7y+sM,/*>n.|߷n͎l$~fZ2ц!w# /K 0?ׯkB]xcdtepn\]2K<>ދ#UEh+ tfCxk OR#3mVba? /xkz:ݙlIY%fM2ܔ6U3=(784/E!1''?9V!3/$<$# $J$bNV,y߅` e¹ *!e_dTܾ^1iCF3Ͷc#nm 7x[-toCR6oY'N`ћ2+dq x;&h6s؅~evBޛ97O+  x:!~d-饛%d=y7+ԲX!x{wOɿX'OcUy#Cj^ 2L 1x[.Lx c,F9X&glֹ9]s$3Cj^ 5  x*lpWrt8f[-_>C[JxS(([$Тm㷼ಱo<7HlgBq0lAt?#؀=XIύ╙ PU+,x{qgec[1m=ƼHg* s 8x;nfnV)ZK7K^dVPn՝4Y)Zs۰d&Ki(;hX(+($X)$''d4qNd@SR KS!Ŋs2SR"]c7j0nVԩe3%l*x+nf^V=-! nx*\f5鋜 CT-DUg) ͩyEV ũ9i\ ת6, j`~jn p %V 9%>ɉ%y Mש9P5@ԤĢ+$.ҢTe`̔Tl+HX͊1m|2 cx9(([ ]ǵ/* :#y(W{o8  ~ kv Z [8xk"Oʌ@̴}2c x Oux;!zSd+fnI86+/ga_-Px )M/17U!3O!H$&*)'e&lc{)x9(([}?Xr3V| 'o8 Vsn3碳0B ~xk;.xnal\z \ Z\=' L̦&9GXyjeɏE|/Ex&׉*$'k!lbҼyy%E9œ+eM&KKaQqIZdr/BoI;N~+[Vl)*CO&/Q|^!H MNQԞl '(邍ߢ$ yŕ&S 6jdfVSexR(([psvsy^ê7o8 ,~2*]iJr Tэ 6gMͷrv'Sxk{z7uF fMW" "xxq_G$QY:Ӏo;ü.ќ Zx340031QHI,IKI,.N-fN)EToCW:c7DRP.~cG˷E&FA'e&2EyvGPߛjDb-?xvu%[xf^J~d{&CŤ̼tĒ .N H+)ρM>$RY3YYsPxy(([P,ЌwKdԺ4oE3b T$^teceАKʒqKM?h,~2*]iJr c39G&RGK;hEr?x=O6c6#3mfdNRbD*x{i 78RK23*břUz)%`iFh2M5.ln V?9HL٤Jm[#l)*$&71bmX8tM25n)u͖9mV<* Glxk4ha5,DŽ%~qxxqwIOZI~R̢.ةxeeQ$O;75ؑOB/ =xe(([!0:ͥuRVqoA")$rǖGוf100644 GormImageEditor.mV`AIzm}AYAXX3ٴz9 CY}x gqIUJCxk;OsV{#3m/bVh8x9xk'al*Ld_k\xkC&K x9(([lT}'qFɲeNoJ ::o$l!Mг 8<Jhxk{Ov6#3mfvUd xqCZ^u%&p̫%1OG6TG2T!7R!/55E$_ %$U/$@771;U!1/E!%_!Q!9'51O!43'E!?M=(,Y^PZRZ7Az3*+xxR(([|s׀K@X8joJ ::o$l!Mг @Zi;e$ԼrJ+sxkvv_mF fWM BxxqHfħYY'MW- kϟY4kD 'xR(([ Y*(ͧ3oJ ::o$l!Mг $Ա.0rh ( xxQ |SJ,'e:(cWEWNT3 tx2e_Y\en*{Q4X͂| 1kxR(([{6,#d *[s~oJ ::o$l!Mг BaQibC^RLw7r'fxkyOn.#3me.`XsxxQ |SJ&ICYA<[x2e_ŭ>|~޺V1#xNٛb naxy*]ݓ.q5xR(([ 5{yIE)! JEJ֛_sĻ#ɚ0yHPG`ifc^eybgqW\W K'(ť9ysZrq*(M4+JM.+άJ+L)յM3Lc4PhnF܌P]ub`]Eyz ڶ F`mh)*$&31eXyI4#1n1iftn3{ k1o Dҍ"L.6G钟\W5Vo_񲓸;%jUx&**6F f^\+ ybdxpC]QfKbaûx340031QHI,IKI,.N-fXx$dl;=yW\6DRϐKVTVm_(?)+5X/=(aGTDx~m -Oӊ2xHHV&G=]h/ 04JY|Ojp'KKx&&vF f\*zjsx!((xI1,3X8x9(({6/T]GT xI1,1HxR(([(^ a]vRŲsT&o;%'Xx89)1 v!qqdĘy7#a #DxϹs.Znʉ^4zJF ·Ux(2Qd;dvv[ٔ|ĒԲ"Ԕb|TT͍i:x{(([] doEq02ĿEcd#~* vlLߖMQhGpP*Yůi61 vz-q!6̬'_ )>Exs O;w@̴'3F Mcx;i& %ѓ J&kTn>^ҢN -jxgJ.`͢y`x[qw ,Xڕ'/uܜExQ o xƽk3Yd=|0|>\WKxsgC< KPdKcq,j@ HVx'>O|C KPc >,;| Hx[*TrC KP4}c&q*u);& 9ΐhx:SudY !3,ن5y3CW㡌$*h4-QmĹȄ>: rsr3 OSg _R9&7O. FV<Warx;{% +nVZ&3fS"7o$8%YBmk+Db.kdOx!'p#$4'ݗ5cu$sqC4^-B:NĜ>(OKLc4AqF &nubܡ\ax9(([/Ǻ6 |! kVo8 'Ot8Qu| $;{x;u O=@̴}+3s0x+IbC*Cj^ 2LPp xW(([0LoW#Twb%oPÅ+c/2#$²"HO@.F%#~0ͳ lH$7rxp(([!.}”,XoPÅ+c/2#$²j1-i] 6Cx;O&M@̴};3rD ?xw /5' iIs'eiZsqr*(LX -\R SPXTXJM.)VU22SXɉ'L eXsq)(gdNŨ2A. mJ Z9nEIY 3s}S9L)Tb+XM.j.eW3 Mk~+yXB}|&n1t@[ę  KoocHc,"yp7BBsC\#Np Y70&10֜\aV'/u#>A1QXbz s3Jo?h$ V]ͅq:IKlcx0i*\x={ViFۤRR2JRS977r1ead2 x](([nKHsζlz/dao2[h]oI9Ŕ۳0|k7]O \wXIILbWꌦF]J>_  %oƒ/VںOxDܰ3S e[*,l Nfzvs՝OpIC;­%p\paN+s ´vafN˶ )(To7k3#=M ^MM.4#*Rz  ,Ixgaa63)5[GormSound alloc] initWith,9 *^/ imagePath]@5Θ+dx=kFQE9fx9(([ᝠģݑRLq&2o4C0+`禷Y'<]/A?Gx3g4纙7x1 &&d[qq旖䤖OeK+U(HUHI,.VHJKl>~cac]Xcx[4 )ғ34&KKMq@` 2M KxR(([YFUEv5l0o.M;~:U &Y{s4C0+`禷Y'<]/AG#Jex?y*O={anXIx{0}2&|bL ~ũ9%)9: /17Us|EXUMd״RɅuKa70/3Gs2ez)/xR(([gE4,ƟFpo״}reGBވ:JBs4C0+`禷Y'<]/A&Ix?i O-c-#3medfYW1xR(([UԿ cXo7za.iXZ"s4C0+`禷Y'<]/A&uKx?${Ai=FDN|e  3xb(([ i8(:DG נA[ȱoEg)kc AࣟGl=FG+g%S_Xsz[5HǩF(\36oEReKxXLa`Ydci/F vyKw?hMBr]K;b#ó M%46x۹o#ӆLZ k&h((ho6\ 3xk4Ghn!B6[ cMeG1xm(([r(yM]iz㦱oEReKxXLa`Ydci/F vyKw?h63*\ӕBG鳻 45x۵n+Os,_{,#3mchx;#_["cDO&"'ӳSVWp"J0Ko-Q-0T %s^.xk :%xkw\\r1U.n0x̸as.Qmx{ivt1)VԼ.+Y6lx{@axZ)?xi j)9%@2$3?KAA__!%?X!/$#3/]OOostb"+;Wxk³/ww7v7n=JX7xNV|x=(([. YQƍeُYNqC,oPT b]OF'xky2{dvٙU3xBCbJ#onq8Vx340031QHI,IKI,.N-fUwjD`Xlw]݆H2_zɕjJ֪}"_@'e&2d_9o7?++sb"_ -XixuKlE[Ƕu䀡׏&&@Z*.}i:6niz ѧ B-H}h U"q\ YZ?|ڿ%avh,pсr3&xQsr {=^Y:k]Rw}?B#y>?_X׋[':2l3TrL.x!|ޫgIa%Z}氟\o:ܐ} `GnB6/&&‡%<KEn.x]MnϱB䫶E;}ַ}'z$[&Z=v1g +%|rVAN6NmxD.ݢ=6p_ZQ\ /)Ȧ)kH)AQx'WH,O£LaLsw9;_q3q)lOZƓVSQFR?דrbk]ĿԒPةZ]firr*1 *K-ۜs[﹫SjA%U2eۂ_P^pg ϖ„Osj3/iSSQ(5wS8x/;lY69&yR\ )\jJ,)ɐ#a1GaSP͡p8ČAU̧rfG}^Zcni|\(ÿUY'(cz$:.K1u7F2xq|]~kE.]C؜//xkY1Gc9X&xw% ߧO^=CcЋc 8@xk9{ZFfKvK.\L~|Qx{m}lonjF#z0af% x340031QHI,IKI,.N-fX3ōo4!̼|^r?ZjsbPEIY%zE qz^<~=_LzT14ҹ@x9!wb]bMd(:9QeBFgm'0IMa\$933R'eҝlŬ6x{{&66mlLϿERlgx4nfEi)!Zxsd_Eu7]^il4x;7oC=嬳 xk$a(łĒ j.̼tļT[ĂAl/IŬ R ]@6՜-`r!nZN~bBQbIf5@$~8]\ZZYk=?"qxfnb:ȺɿA ssr-xt(([0ʰ>vQiq*N)oA H]hdEsHg0ɏpͫ+YXz" ʖ5|or j#+c' hO9 7T@]x{)SOag `k]xuToL[UOeka,Y=mVo8"04ۥO_BC%h%~7] %QLci1~py{- M{y{O6~r6i&\X$-h^םL+,bi.tkzn)3bm*Dh6 D@a W\pXĽѦ 0NhBAaq0# bjD9^cN;Ѵ5+/b3i6{o![!Գd@]hC.!lA"A$!RcJL&K.4u5 T?)z`B`JV\D NI:lĝAKY/W4kGg#pMO_sKwIm:Zz~jȻ5/=McM$b~-;c$G(iN*JL E8U6K}p9\l 46\ƏixBX+K>F[ӗQT*3hQ)FNM=%ɮd~q=x,s4ʣ$*E.qg%pč\`,#Aɡc-#c1[8n57W2>G C6W:JqxJ0G]`^|r(6mU[͎i'#n46R~"]z2K :YP ;E _.sbWR TNdsbt[g)^UtN&S`fv4TE :5z[S,>S^nTA) ̈́QXx*4H(dB&}^35jtqȒyUl4pHQyLR)~'HKTerJƨ,hNo7eQZ|KJ€%;tvt[st>.8ڤ ,xB2) g>$2vI}X=זw^.)fm'G6%hymk6a,x2e1VBxnZFJƔ;Mx340031QHI,IKI,.N-fhmIV#}KTZ) e3jmQh!GQPEIY%zE } w/,K󣓇<̞, xŹa9uqjRVjr($敆T;%&Nd)s,))L*-IlƢbAyY4K2KrRCR+JrD/YX=dx{}C?Ȍ: i(VΘ)!2xձ͋\ x340031QHI,IKI,.N-f[fZ]5>kl.3/-{uBw.>#e{(?)+5X/=(ᬏ|'m<]&X5p,Kx[sJfΐĤ԰ RR|K2+t8 #(*?$1'8(?''(<$9c.cQ~yGjfzF[~Q.TGqjNjrIf~9eE%|d Q2Tx{m)OR^=:1C?cÄx340031QHI,IKI,.N-fxxt̂[mynZ%"KgH%WcE*Y6/VnU\R_`h1U>l.\D*hx{UfVvVaL^Srx49e21s~aq֛ۨ9?(?cx NpܛX-&13/w]Kʋ?DKbI"üzI{zvɅ540031Qp MNMIe)h~zC%3?.GnV(x7C=4vs$]\Ʈ yd Dm"5Y;?O` x #x340031QHI,IKI,.N-fdjFl3݉9b.3/-\V#ƎoZEKM?*OJM.)K/e(漺~D/RKr};@{kO 73xk|a3sjNl)ʼnI9){ ]+&xmMOAgl6"i+tb- )XEh]Ez(jb&Gʢ?/FTgѼQ G,XDD,Kbb/Slh{[=9\X.X1r3Hf.% p|~=| h0dj2@j\vg'exO"ypG@EºI w$lP%lxlruEe֞9/5|yG>]q(&׫7D{1t/x340031QHI,IKI,.N-f8SyHd̛{|9"!̼|^r?ZjsbPEIY%zE #gF^xߜ;LrLv0ux'Y`F6Ԝ+%.N PJ/JI-JMI,NLIM|M+$319?'h !'3]ZKs(tA”ByP!ݓqhwFۥx340031QHI,IKI,.N-f(âN5zն~5>0DRP.~cG˷E&FA'e&2xzv~}c~OSNY.x340031QHI,IKI,.N-fJSsYxC$uyi r1v|[*ZjrHoTQ~RVjrI^z~Q.̣۪+lunui a-x340031QHI,IKI,.N-f_icw/2ߣ-y[`W0DRP.~cG˷E&FA'e&2$|jt0$EAu %,NKx,Z`f6Ғɇ،KKSrR3K3t8$1-(ƫ,HM,)ʬ %x")C6gz'&jx340031QHI,IKI,.N-fM tDաS}'VȰ"Kg(?ՈۢVRC|RKr6|jW#z{ժz2c,5x340031QHI,IKI,.N-fUK߶Wjk.3/-!嫗\d'XTQ~RVjrI^z~Q._>+/г0. ex[5kJf̔Ԣ#Jru8 13/(575Y8;/?-35'Z\.47)?-(U|x@נǯਿ7bR:7Bzy7xf x}*~y8)ϩ0P7^NU.ENPƣ;`A4iaMGAå NDLGQL0t#`HDq$*JTD65 {ş: OFc/԰&;-h\c랿NEoxs9;y5ıjt,)ytfu~so~#>wm '\3u|"q IG.05gخ]ܓrm7b{sJ̓cEL[yLzB Ng2i`a:˵P;5TiUZл&iDB'%>DZ'\|"&:4&W4CW/[-RZODr b\qoˮ7O& .cJx*VpC3opfUg^qAjrI~“'1rgdnbafuEx.QtcDLF֍ 6a<2yl~ &(nVc```J56pLgdT#e{(?)+5X/=(!;]^qԃӋ|0t x,V`f6ΐĤ԰ɇ RR|K2+t8 #(*?$1'8(?''(<$9*_P(#53=-(*X,$3n,IEy)9E׳?>x340031QHI,IKI,.N-f[vfw''n.3/-\V#ƎoZEKM?*OJM.)K/e:uˍg3Hc .)Exk÷a3{HbRXfjly%%E:\ @WZY[얙H//)*KN,Ie$& KR RDx340031QHI,IKI,.N-fnsH VG\o"Kg(?ՈۢVRC|RKrטO5Y?U.x340031QHI,IKI,.N-f f7N:0DRϐW(߲y-*`U\R_`krnS'XzНG6.yx,8K`f6Ē;٬rKBrRu8"▙IK/MLO .,IΘ<;R7x340031QHI,IKI,.N-fe>85Np#߯M2vY9x6DRP.~cG˷E&FA'e&2lzx[ݎoI̷',6x,F`f6N԰ɇ،r2rSJ|K2+t8 )(%E(5%$1)'5<$9*疙''dC4N^9&x340031QHI,IKI,.N-fȸo-)W*5W"KggoټzDV݊*OJM.)K/e\rr],~E-Tx340031QHI,IKI,.N-f;=ۂ֖|躙#o.3/-\V#ƎoZEKM?*OJM.)K/e].w]l &kR/Bxk+a3GHjEIXfjl٥K9E99:\ @_ZXRY/(σM^E}h 5xOB& Tl*!O1x340031QHI,IKI,.N-f1l"-Y,"KgH%WcE*Y6/VnU\R_`mxz\:w濹-gx340031QHI,IKI,.N-fuQ8uZZŢ`.3/-!嫗\d'XTQ~RVjrI^z~Q.ÞIwO^2^|:o5R/ӆ_x9cJfn\يSsRK&H'MVbQbx340031QHI,IKI,.N-fȏ0L`9{z&ӎۮ"KgH%WcE*Y6/VnU\R_2a2*#<6?l+-Yxwo6Vɏ u3R33Jt8<3$) L-sS'[+!x340031QHI,IKI,.N-f?;7?+;  ޻!̼|^r?ZjsbPEIY%zE  Uc0UD`nH/x/oC 3[~f.~9%a哷re$dE+1nTx*rUdCW/[-RZODr b\ug> n^wrw- 3x'B`I6̪ĜkuXs&'e;e&OncĮCC1=)(%7BSj!ARJ2A9yy%PTgA%gs(a@N& x=OQt$>&t%4$h, ƽ+]iXT Iڢr|j[ V\qkϝI9}mha(:s1-U&[Ee51fl.obZgMb 6-l338kӕ,tF:.D֭ \\>l+ؗaҁ*Imb \ﲫ EveqP=fnNMnwr^*P!J7I15fh[c, bnEOtāۘO& 4@#=1O] :Ļĭ{Q}b8I|H,HpnT8<>%ֈϤ/1m/BU2UGh R͛pnboXpqxnM.{ix]f]4=ySD9LFj'AT'\7=}}EƦgʨӕQx6d F lK(\-hY."vKa#ԑ_4x/0f6ҼʆE)VJ:\ @TXZIDK &_d,L-ͮ_ 92YCx340031QHI,IKI,.N-fݖRט99I]f^Z>CW/[-RZODr b\h _2>֓~j]/HV}xmTKlEVؗwI68H<Hպhc%IA(\h> \R9!ąSQ飯ąJ=P$8qH=0I@XZofN.̬g!.3UܤFƮQo[nmFvȒ:;FDz]ƿYU˽cU{G 4Gt|4Rw#q?Ir>M#hG%C:VX4v)oZ -c[,~K*"pUKdoI!^ZCuim hYq^c}f"Cp;1{K8M0,v,KuH>ߓyH7mrX#.ʸǏֺ]65uqESotCX5_)c3`nfC? -~*! :Rz7^|r Zj\L4=.'.IZ4J(yůY3%XuGG7&;dñaOʚmK{1 316w_A8D NQRh賃b>3lzWUk H̥7MR 0OasW-n׸{"QDꓚG{ x/u_NEmxjɰޓ ]?Gޱ|[^F<2YdE͘Eyp3n"ou~LVuwl?%Yweq]d;ٜ^tߞN 1,Cޠi67,xekAl !M7 5T E=A&lhMkoU7>Of<x\ċ7 ̼`f~'TiO}zMw7ß޶I5E e<4Ͱ|]:~ΛZB#JM2=.qftjn]EXhQJ9xX2Kl c(qh:v.sQs ˸iEu<?#%8W-6\\A \ܵ j a`KJ\',H 7 -BF6aV"qHì}%DVhL"U8֏&DeczS3gs;vbUax%lt2$]5WzCrޒ*Je|Nڸv~aKHxxqB I wMtbNRkM @9?$13/c6ߣ9] ?9X?dsx{qZ <'+IlS`x{9LL1bLu^kvx9''[vМ|a6G:to -6h/ҭBpꁳd p *x{Y _`dZ a .]xm"ߪ_@ɀ~Ƨ<ZCxfzd3ļ"Ԓw-hA, @09CRU 32sR53@ 2K\Rb588'NT .f8G[%59G 85(IH d("}}TK&ljo`dldyI!3.F8d]!IBF;`cRP&ˉO &ⓙr$dd!R>R(2pO+]Z.Լ.ijx4w?L015?b Zxy-w'o٬"3,1'3ű(475du"kxN'100644 GNUmakefile)zNVcܵHgx N֑] GG!򷹑m11uݩC">xsCxͿ6BZxmba,l ZeEMn<[Lw16+fpf|pxy-w'o٬,NA)4/;/j9_2gn/X/6ٔq qx~E}C>sg7gU6?jn}N\xL %9)(^1rMn+'WyE^V|~٩Ay~~%ny):y&o+I,.KM#4a2/??|ťEpiS[Rp=}}5mx(9KrC+hkF^bn5W-Cj^ `xcDOqjNjrI~Q@bQf̨"b3E48k!5/ * x{! 2L_xxZ$oo`ߏ׊0.xuOk@).VI7f۵Nt +RaqBYnlU"A zMK~LҭJC3ϼoy[Tx&%^̀cR G!/sTTmliU*#|o@iS(bhdtD3Z\knAIa>HL(B>-_ <oe.J(IPlY`*զ” Z7CKJsa6<=qLxľYW 2DZgq>sv샞mM7M%pŵ::Jhwv av,գژg J eaW: ߇0-6 eǯq=ϊ)gg/`LUYew[;*EB*x.$qon,ʼ0:d؛Aم((NQLS:jx{i4hf=֋|eEY&oXnx۹e#1$Ix|ysͻYOnRPwHMLI- H,*N-RO(PUo55+c+K2jj!|̼t [KEY͙"+g x{N P`~l p=xxqB/˫]Nygb;& Ux ''VRu#߰+*[xxqBH2[%WvQ>mA眉3/xTMԞ.sٳ9g䝤$YV7 o(Ëbp Up&-'tyBT{#6!y$נx340031QHI,IKI,.N-fPx)Ϛ]Ji=`Y?Cb\@Ϋ+n|?/#$yx340031QHI,IKI,.N-f8SyHd̛{|9"!D]~RVjrI^z~Q.ș_7Ӧ]S!x340031QHI,IKI,.N-fUK߶WjkQ\R_ 15F闼ʋf'e~!x340031QHI,IKI,.N-f4R{udeF̆H2o5bhU#(b\ۅֶ 6y &* ?x,I`f6Ԃ"ǒ̤ҒY󳭔t&dM$( 5ĩ$?OS2RsSJsJS2SsR2yX˰ %l[Y_>c2?<x340031QHI,IKI,.N-f|ZaÙlZa.H2_zɕjJ֪}"_@'e&20x}n2@|wb&2?xkQShQӍ[{s)_.@xWWU$Z-hڹkI?mX19(o7;lVidwfv>~7wݞް:_mTN'/Ŷ/p4 ]5kgճ-~= 9j~g=kڻzᴬ b( 7S2N^:"͚>I,2sbl'JZUsRiZe7l*8fBٌ~Ԗ|SpJ+Z+&4 9}u蜪 Honi2:@R_*u @.Ue:$I\jw%v2 5i>} E&]0’⬜tRcq:RPe.0% Y3gz>QJnv"qg<̎XiUEPEI@PVVlu\ +v '\\b(~J?sκ uY,Ac}ڰ e]\// B ё{lدOr!\"+F۷#S(Gn}J@Bee+Y10'/P[v\Y3my.FR" 0_ -d\Ή  b^Yjt:pZ ΢r5>Bf۪۸Bӡд0_}W 99Q,[㣎o"r *χ"p e#$ y˸8+cϡBOUB~ Ҵujn10\6z޹\P\1HG ;3=${Ff 9Uc)YHxx o9Fލ6 nu3B!nD5śWuΫ`dϫ|FG", KiOZ!5%O x77oZ~ 2ʯd-_WJHZG*yN 9Y2Ƴ$C ߁2Xn10so9ِ4w٤ >JCNZvS/7JQP #֊oG|~./}xbYaݳFoV#ƢwC5.|qgUNw 3ό~y)s$ntstKE_f:WU ,k5^)BusNayfrP..vuܓW Cȗw>jb1=u9Ђ>\v*>TvG*j p&Bm M=K\j j15oxy 2x/5UjcFMn6Q-'hl`k9y%G<. Wx{mBHIڙK{j. 4x340031QHI,IKI,.N-fݼ`ΙXLjӝ<-|W e3|+"UD+*OJM.)K/eEY_on:*/ .xN0S4F=.bF&upJ!.{w %!?=// &B}@^ i*yv9ED2qxzYu4ʜoGS'w*14>Hlجϼ /{x[/ Y6b9ѶyBk >xzYu4H-_ŭN[_sISKx7ӆ,8NvhrM+Qڜ;YK|J͋7[N,i ͬ)%U:RsRJ2R!zzčy,8bx9%%[1yB KkH:IoARt ϳ/" xۿ{t \ObZQi_xiO ϻ37f?]IAkn[&K)AfFf^ZB^f&g52٩֓&OL.QH/NR8M~ŕX\ V0y0+}@Zp>!&y4&3KN%GdY 7 qqu{}'o(8S2L^fD^p ,@rNZQ~ \ ~-PsD^'N*=Qu^]ƓL2i6Cfdex9%%[ 0+Byjioc5EXrVYzb/FB xۿ#Gf>Zxw 7;4s0)(L.yM #x=%%[N:+Ig{foPLr#z3tgM<ln!xۿd\\b!9%=}Z-יx[6k3ӆ/yLplپH x31ԼbI*=ISWLc_j0<3/%-svr7DV~zQb䜟WRS!_+kD.=̹&13/ra2cg L\KL,b{Ahuv6bf&& ~٩i9 93-Oo~~8RMx2eBߌÝ(%t^X\ e=x?! xee)'7p5 *eu 6N` Nxʱc =;ϯQW)K$N$3ҟ /:x{}l=;ϯQW)K$q3N %x2eT=;ϯQW)K$qe# BxkfnfDdϊ[<>aRjc .x h y(4yƓ͎Y:#)x=%%[ŽY' %qobv?cnW 9Dx;r3wsT{j)S x4}*ㆋ?;ZO訴YɎi.Xc@OVxkd``khkd``19qknf^zy_22]bTxzYu[xԿۄMXoffFK -x¾}ȻȺG==|Í1ix}?W3S;v.&ILx;{/fvyLr{O!xziCYdZ&KWx31܂Tǂg\]GZp1> mxzYu'Huyz.m{zȬdX2N21xǸq5" spoM x;7f^v^ELMYx8%%[g/,Np[~xo G̠ 7@dho8Qrx;+W#ۏ(2u]x;'wJSbJ f {YxFЫn3b= ޓyx}x%%_/1. a&ٹ7ñ K6xkf~4sbȽJwu1(=q[x%%f;2Cxkf~4sbƲ;v>_"}s>@~xk8k y E y3qqMvaV(-hŵv"2}x%%k>wgi8C6xkf~4sbHmxbn`qt4e xkxqClGf҂s&:-`|;HeH5Rx%%9%RA^'^5TBxzYu}qmKEjj_X'?yxkf~4sbȌS|鮭9r/Wgbi"n:qih z &x{Wq`CtCqbnA_jknAIeg^qAjrI~QBb^ D@bNjIIj -q3t\&Hq21ONY"@mx!%%} K/7@yc.,X 1x6mNFFͻ S L Lj txW%%69rJ|U8y#3n)qn100644 ChangeLog#mxK(Q?րopjn.۵YD } K/7@yc.,X AFޤ*oӝu~dumc8ɓ7s b;,cN x;{f]v]*L;NXx%%|Bte#Hޱ6xWs6k{6+lV&W=D x31Լbj%"7Nsj̼bg.k8wWI=U;&Qb䜟WRSjcϚߴijEAO&13/!_7_=PvW8'*U&.% J/~[,q1ҒQ9C3wԴ̜T♏7?Tr?rS=xee(R^1Ň7\;lmƭwEx+-(?cۅmoZ%x β#xxqFl9 N98^qw20_l@qGŜs&65YqSH)`.<كBVCDx\>}u &Jm~"$ȸn2/FE.ɋ&o&R)!^x+-(Rףv :fal_p^8J )\xmMkAg&lv#1U+mN ZmD<%cIS(ƬjkvG=(h3x/_‹3Ap(p|;u|;NC: D dbe6EB1o{h&"AyYcCEؖ `ᢾwcژy`r4b#i\!^~okH}>N>G)&DU`}v#wGkByXٵ> /#4pv aoCH4!)WG bM(X]$U+Ivg,٢[W++euYi~},aJ] {ܗT_~͓W᷵x ǧp7Y;c<wMւO`,yl]hHw^g"#Sy|mJj4ͮ$ʂ[]}֖-iGKZJ.֪7Y\Ck3{Gx+-(bM'%S3^Nƾ"V vPxmklU>`첻ݙmh64j|TKMB1+ⲣMIMD`9P, NGaKۭBVD1/{n9ΙpT55c8P7*GASFӤpѧ<$wa7sN63ugg25jWS'fYC$7 쥛J$6MMMsIQӊβF<=u5_* xEe;xE{N+Z_pسrTT[װ*W_qkKl(Ki i[Xc;=|0%oaşC)PJ2X7<xK. + L.n;y?azC>er`H`UZoFv;-ٸK jY;VoTls|/Sg/ Gwѭ7q8K0OTq{ DBgGFdQj|de`\PɭqxXRx$}<-833 z2]|PJ\`uwd:6D.^8zL{~h'Xp ,#a F|l$y^')>'8$AN#u"'1W_hN9|!#Q&0oe4 gèU(|0czU&G@wwf8{3~ 9I?%B4,ihTy_qd9p)d[^-[Iw/J^v>,zdYL^!~%½BxkS滬wYee d 4!xc[b:Lx8%%[Sx\JB%XL <{oR]=2Y?bU2x=fvNLUE NxxqB>SkHh5{Č\s F2x8A\wu<6αU'pwƉ7M`2 )Dp x340031QHI,IKI,.N-f޻[k:>\m`.3/-ܿjG \prşRKrl\ӵVy#)+xYmwG]o"v$M@]7)m XVȱ[hVҚr i @)@iK -]O|?!?;3#9 HG{ggvgӏup IHbgU$HLiEJw,uՋnTU mT"$/G=,SnОY}$^!9C,J!r;eT*d0_ڙFU |aEjn Q-q XvXn4ƲWfviW)nz(IfMSS|A0pg2W2dD]N#nzi7^Z PtGe I 5!ED_%rDt;O.Us+>ˤw$or^FثCO!ĩ$MSb8I&=#rth8=`GoGǃQdhI X\pH}evS(PbAp9bzIB/I|yL9H>SYg*e~E-PDY@*i'}򜮕Kg]^nlx6.>*Z&WPe2 ߐoHFj*lE &Ó(\S%-Zr/<9iTyGq?C8OQ'KpxȞj(hJn5@ r46Lm{{Zҋe0CsP2,Z\z(x D-3>aF< HSMfkk4BFvqmEY#e\8lY۵-Z:&oGG}38M|0Xx%^֭V|,=vC=:%7g# xmD,o-#3~>CT̴Hy h  Qb!7:&SĖ93jp9(Z/AB5| 0zŊ+g‹ )+g8ז Kx<@ 1.zt%xq_T%ns̴mR\ݕ O:c4 k޲" & hpnFGIעN~{W3S+t'%̈ζeTf_uz8 +lh6a|gKZk7dlۯǩbA}BEޘz%y1{IR'LAv$l}>'?D(pWG†sC'l{VM3DQX2zi.G*sK[nu_gniU(lyQxE/ huWp+#s.*|ğmmiB /:Gt{{N r~\0PkTkC6 /7vnFWe~`adb.:]NXXyt>u&ZGLT7#6Kd?i? "9zV;-ܫ[M.#1x{g b A>i9yEgԣH8nV !EE izzz GO?dCQ J Z ww:日*'e&+*d*C%SK@ւ4@brYSZo޲0FKN)`퇘i ԊԢĒ<̜ĒJ)&B(t@K32K>(˨=Q{rBQ 2{oG|yjxxqBlb^˓,ji>w֭xeɽۅ 3 Ӭ6xZ i\XeKbv` 8a SNe@x340031QHI,IKI,.N-fPJ 5ͨj[jR !RKr}zԎQǬ:  |Tx340031QHI,IKI,.N-f8}Gݤ]=!D]~RVjrI^z~Q.7Lϰz;X]2GxWs/{{/;^v&Q|"ux;u' ꓍'7jl7`sox-Q,ؙg?"E~'uKxP%%[.Z^E̩ܼoӀJG" WMXD4 cl=MhuP#Qx{y&6&mLLw?l¡x[?hfd%BxxqB?4wUwwɆ nx{}jf>_; ;hl]r~f%7 .x XSsr4's޼_l=O @_xP%%[wz.r ns)nw* x340031QHI,IKI,.N-fhztG1s%/.;>? j.3/-ܿjG \prşRKrVTZ1%*pʶNf/DK.xuklU>g7.ݝ̰D6R )&T%i"X5bLx+j(Eu}"T{lg9swSt&͚1P =G;̀F2f)bdf@{v}S7d9\O<4c[-h#uu^LU&ۆ$}\;ZN<}gַwUoe7/lS1 Ox>a(R*x0eb1tЏ+l_QrkpetgWS{}cFIUclFDnu6/ VQ#ˆ=8m :cx.vmIxޔvBf6[2Sv5jLo! 2_V(n&=1Mi8#kOwq]5޸Sx!*|Z&J-l+-^+Wv.{{Vx3/h' ഀ |ApBy_lW& 6W|.<־|<_5ӾA^Kx܌m 2ߓܨ`DgDXc5hH/ beLF!sr'hY(2'#:ܠ[8pKd&/$6<@o;dd%[9ze5uYgWWK:_dpI?_d*FCn̋OِMP4Q{J\#7gYBĥ1]{O~xP%%[7#qSCV} yM%o{ 3m\Tn@2[[ )t+ܥa܁$xk)..#]K]/m>~qnK2txxqBȥGJ;W-J}Jx{}jf.?s/=dfc;yKn~f% [xk1TT^L&P mxz0`6V%gGrSx9%%[C=?x d6k4 KJeo&@èKh<f:5xf=v=>z|LًNL;x;\y;>j*di9$+(*ehr)A5ǧ.@9 P5\ ssւͳV0|4x>fvA:LN$%xhʓד V yxk^fNvN!BLEHx60M z?|7HjD60`6V%gGc_xknBb7]mBx~CY.iCx8%%[f" yNioRSExhe.;ax6f?v?Q~L޳O/x60PDE2M_ϙD60`6V%gG Yxee0ܞ{|f5U3G#Ɓa LLrRsrf\r\1Ao*[;:gy1dS946iet.)C1 <3/%hBg?f.Jp_ƅ3kLVf&zvC`;uKcsFx609@'qёD60`6V%gGѫlx7'^PCQVqk@ײ',Ĥϰ#lZx-p]`46Q&"=!ox%%%gxi<{F"ϓI&xkF櫌W_edZ1]|yxxQ |SJDU<1ٖ'Ǖmj'*n,8{nxze {NJ9jOx;%%q ?;'8G"LS!&^ Z}/mӸx-Ӫid {|<1{5|!_x:fivifLIMm]xJ +d7X!R?]xk44i,LOӷUxiR |b 9ũ %yzzzN9C 欄H&:ĜԒ:G2)J`3BRK2rSK2Sr61($F{x{ ,Tb\TԲDqjd!s7;d)ONYhy<ŧOgd߼t柗[[H`55EYr'!5]amۥ Ƿu xg%%[}$Z Eu$V7`!VDoP>QRK*옙100644 GormDocument.mz+e2,܂/ ^.% xkj,X?`a;],x;apWR6M͇Dۘ?a*xֆ-r1zsP}xRv=L'[\"xof[I~IY%  FxbvvL&ZWlUxh~|[l)\2x8%%[E\_GV,TޱoVh 'DA *ZJx".^#] R04`|# L: 7x{ɶmB~W7V*^jYzݍ/EWx+-(ZRcKvQ]\¥G3a xQ%%[~`@oN [P5(HoRsQVQG)aZ%2Vh 'DA *#01x^^&LL)VxxQ |SJ3/yyZ2ǟnrnԟ>?Ёux;-7Gf"ɜ, @0y;P5BtqjNBrN~qj\SX% mxQ%%[' ~OVR;){Zsx1꿣E& Dʽ/Ex7'^PCQVqk@iR;>oU#+$x{$O|f5zf&-K8͘XRRoaYx,ɫy'bimeܞ$ e +bx[m-sx'gDMd~1F32L5_1^ 8CQpsO2>l! x0@b?l%eD]x7'^PCQVqk@"kC2@ ;f'B#>x'Dx Y8RRQ NlxLռye[{Qx8%%[9)pZ7'__=oR|UӠkGBEN Uxkt|'c \xxQ |SJT/%~łv՜<n/x{u% {6[o;M x8%%[y㸏K "m oRr['@ ,r[T`ȃՓܿ: xfnvnLE]L]VxxQ |SJb>]rr&Vͳrh[y"x TIaPx:IM“On@x DjCsrf^rNiJcAwf_p@~AhSiII~^~Ω99 U\y%Eiɩ ~y Ev@QfYbI&v1~-T'볈OƩ>j.ԒҢQ t?06pqxR%%[a_h !΂oa ╬䲄Ġi r['@ ,r[T`ȃՓmf(x$fvA:LM~nxƸ!`sf!,IxXdA_zzaLT MxTDyMPhm'x\WHv}&6Mxwi- |LJO}C9xxqBR];$v<`Č\m xk{7W1c"ۏ0mo\lPx9%%[ ͸nxVxïu1#2QJo DV6oCZ@rpس' m?{xm'W '2mZ`:xR%%[T.qSY{ \o DV6oCZ@rpس' 瀕_w[0GBO'u~xv;W"Eb1n[<rrxxqBH)gJ79irS?Q<1# sQc RZT0`w [6o]b:QyU&.% Ytct Jқ~0(&fe2h|X?#_7g-V/x2eF6+3,JU~ko sxq%%[D@= eGıozQS9YbU5mB/*j9L]`%]Nt  D-?v㗩ۭrq6YXZ2`xugs?K{? ~&zVx[ "6Ϊ|tga }ox¾}'QѪEuq RGڜe &x%aG2RrRK22K2&/f݁Exs&삛W0Nϡ8Y3 !*9x;Gbb6lL7+\'nxZ œ7+d)eMRU6/(پqEҞ+x{i6AwI y)\SEўEx&Nx>dvɉ,67NaxxQ |SJZ&E;i5cs^)r:9-ۜLwꝔa i?&xۨQu/Hߒ,bf.ZW)h͉`fxh~|C NUj웷r_Cvxm: Sm__ĸR[f  x۷m: sJwlQئXAx9%%[W;PF h,soʹ"ᇸa>\܎aP %"xKuTSe:_b+xz%%[, FM`:[oF<ݚ@RǠp n0.h9梫eX6Nw-[̲xaaoa-P[6@ B)Xxk300uaLU'dxi2 L֛=:7DhPfxi>| fKnk͕<~3N䉜y6WSU 'xxqC4 #XY6j˱nn0,g =x/%%[7kloUT`y-re±,ER;F\W"100644 GormPalettesManager.mf줫ux ʜYL  He3V`ʦyƑ @ ކ ʘP \kVG=X\ b_xk};7ҍeLI,.N-hĕZ䷙1rg$gpqNkţ_ X6[[[[0n`rJqxxn!ɿ9'ǰe/yfV.ɩʖg+KpVsqNr|CYR1ʀTqZ.Z*lu6Whc vL.K,TJI,.N-Vg7A*2y^BfX71/1=HV!Z=(WAK/رE6ZP F''VZRjPfLϧ5w67fsO.sFY((O!7$$'9:p|~x[s`2I_{bxi2 L֛={B7*xopBPyfNNhAzQbJcQrFfY |Ķ 3Mx{ xŕWXu˒,d[֌G#',Ǻ-KƲwiʹQ,MpJ]X#hG8؆lB6\vL8^`Y\Vw^zS}ꁂ%97;4Х+6^S^cR{rvUja`ic#.PQ.mQ6TvK5ZY _U+яpi IlaGvɛ29]X9* V\2=2Ҫb#F).q.(PY qKoog-l-9R[e(Z=^zʕnTl]zՊuVVi7Joir>j,Zî5oƷ85_>h˾|PƝ˿|OfiUV:[}4vcR}rV Ay3Ud:GV`˦.]mK[݋!ٟS/б.ߚf}oijkmCIB@\`.J =[-9[n]pEE(ɖR{ Ј2Ʊ~W.m ٝζX#RAO_TCE'."@%CݐM :XƟly6:lsAD'ÇdW?̢GgÀ^Ο%fO?^Np/ :ڟOߘpY0*>}|~8?@}#G T';vS@g<˔UOY|zG. {zQ{z\eq>h谪Ո qHsY6hk&,HP-ljdOq,yr./?MBa7-?۵GL(46:Ɲ*C;oP8wM1sI.}j}E %QnӐU#J@W4:Ju$)QUfvNS>+ޘӤ)}Lf5 JP"H(j}B}ub+kC7 jXM>flk3Hbna[ c=[%lN뭅 aT7hA%lVEPa 9WӪz(a 'f%LvnKvtY1{$dJQ}Kݩ{. 7ҝlm==]46ZR?QLm$EО0ݫ>Eci4RC.)azTGpp نcu7h ŻD^"e8鋖AaMVSvBR EF7֍?E2:G#! s_ݽ[pp29%oBwf}D(:ⳁ xӥJtUҥne0XϦ04X)oO.O(Xݸ $4 @ݻQq tPzٿ¸N"j4pZxWRvhbP'W|+0:>:jhugUlk]oF oe,ܱ7>q Y#RF8ĹTo4PD%W>A7w6¿dC.{̘6es6,c fcoH+y{`(* t񍪎Vy|6۹`VЃl#4Ć܆P"Asi)e[1B "[/@i Ctע><>#6Fhdc8z UPx}>ko-,&7>a#ɲ˅Jϴ0j"# $ۼb*xN`F(n OtXGT&?.whQRd&Pʑ2#NT~OWy܂"9CC_TIf [hl$)b 5`l< 80 gG{dI6OK;uRZ5#8}@T1%RQxBՂS%FzW4h%?!B8cأ.)FHFA C­| ="*Eб ,4XR1eJLRJf=.q-nlCqޒ8r`Rw! -G3IM@,B( ѝ#q . I].&hM* >;V;'qk72]ym>-߮h^q6Y*vuH2.d^#EJOu+VPXn'*3Usq`E+L~*@6yKw+NT6X$bjtFbƌU<~=G2D9[$d.˸Kǭ!Mݴl1{X2쎝l#]66KG}`g/&*D5D ZZvduY^4nVępht=-~|f% e \^2UgSŔ=TT,\nR=|q@y g#D{|=伽1E*MZI=s~>q>2S.00m/v%wgôl|(ܱt P` Ip;'ҡV } 9 Z% Yf^/e,`u//* m.PvxmX`#J@FX41El1Ly$C4. T%=>'MDU< ?'ŔbsG=IeSlwmV45,'ۃȜdXhPOIN'e4G&>BьX6{+FJ":)ٱYsTbO#ٯ_K^)co؎++k S 3ٞ?f)ei%?{R^ƿfZ#YWBkXՔ;_ͱW4SZ5[^Oyl^9QK$g_rKM`s*`;4C餛zH.|Nx~Fyِo#7=H}o_ެHu_8! +?3os:f6Iu&j@X=9 AI$d9kMt/!u`IQlWl6l_7 ;6+k9DܮvʰF/NZxwq$iQwv=k4Go! aP\UటԼeKrR++Q>Rh޹IuFz^WP гSr2vU];vMl{z`->`i; ؉R\So}oQ~xuT E !3YԼ;Un^A&ηwN-„Gު_a~X3Ua7m-p뮷kȷƌ6:S5oi&kY;.,nnύmc[fCJT3*.*<ŇpP4pv3?n%$6%pq3[A=N+H K{7%M\aw֎WE:& 1}JI Qsޭ}%1]@{.F['u%D$d3Y$5W:-}浺ר}A(kp&U 0/s*u&DŝհTϩ^9J_RcW:MQs~9WTHCK;nnjRo.|APܶ+12P1go L{9\V QϊY$FQejqvz̉b[w͎Glr9y$) Ok%sBx(KUaz=⢂uil#9hR|l<)I'A^|dϖ$tlxEaL~O *6C Tc{̒^#:W#zFfqFŹGTFkTJxH5=4"ȾjQQ9bXv-Yx| 8*(oe5%ꁠ͚/]㡉0؈v*u9LHu2rՄ<2;#!3ul%2?˼c9V$ԥdEr'9jUkiV׭[0_KJP}3ԅgM `(bDP :YW@j tdKDc9?\֭SX!Yf>C.\h.Yav z -[Wf/o U Kǯ1+JJ6ӕ$/'W"[_-4uW33Bs*+J+i:TGEˬ[HMdlk- .[_;X^Aݨj 0?-'-V] DE=)ތ,+7? Y6 S Cdc1[[48r7:nie%z 'ͩ+]S7Z2*I+MU >j~RCVmpZb]N2g|;;ؘ"TuteȺyJDv0uYR¡踬8SIX\YG딘Uvr (=Sq2 5#,$Xh{ѽ͈pC/[䙀j9\=(nitYtYm +zfk+>d9#jIu)4O3m|ׂ cT\sy=\"\`r_i(TׄYCe737vb 32 EDϾq4] 3F۳sD lYZ35߸iӶ=H{kn愅g"rb9YOUu8 N]ʀc֜1kz˴ 0Xv`{M<3[zZOط?|Í93"ؠp#z7Ĝ/ݟ[" _uI_CY{oqE;YgXw!GaLWX)W&/c_:g)>a)nsp椮Z>VuP ШPvG~)wFvnB ǽQq cy*2v߲Yjr5zU 59'Bx6m1f;y  F&J\\w,n\xq? /6'=b ?x[8g)&}ɏ\A?*l%urU kAiũE9%% y9\\ щEE ))IY%nE !+d]\P&/W," ,@x340031QHI,IKI,.N-fxe}ّĝJvzcQ\R_pfl.^?W H)x##[ș}ṒVoQMx[N #]s]KC3+#ba3`; vFA&$j  x;|@yB!Uwn=}@hG ,x[!ӂdI^[S8x;|@yKv[E=Jӎ/ص,yjx۲m-ꌖmdJxxs~N#]3]c#c+C3CH/dܾ@2 hx&,1}1P~(%>&(hN&x6m35W-3iQxsRkb҉\vx[7t &+bg]S\qEfsiFF}W57v;6x-M(a4fNZ5I~0 0+q6B_-U^9fH\pG(y<A1ad#qaNgM'a=ZջZە~U^9X};ޡB d6+~(C[4j3naG`x:GW2@tx&#IC'AF#kv!xdeaJ|qbYjs~N~BtqjNBRbrvzQ~iD 8x{K.#]S]#淬oYeelG vx)@d @@!@ GlK1h)mlxo#*X%5x9##[EWEb\K@oz 1  PZJT&r ,,x;hsf[;O-Ě9s3ZV #xc3Wb5K dx{B M,7Oh U=kjxkl`;a =UxcfIvI&LL NRԼLx}TMlGV )TAM@(}1!7NZD MeEqv`' ZN^%" KUp@ОTU[/ ZEh5f曟[>L|#[;-{p@eW{?si)QnAs@H= 01SJ2iْ5u=&&K{$ 65 -i\1FTN_ E% T+lpfhThQtq|\(iWa\U1~uS. ;s*+GC[@ S!m3AO.9Ҹ"֩ iLJ7V#*BŖ5 RgP,DLʃ;m͊`嫁zhmmUifD80&(U v;0,ʕ̂W5}&zQ!h" a-4&b;C0kgFxi ."lʮt^@xiϩ>{eF|]ł+ށ> ]?&f1ٖ#C E2&|OH9JucB+ *rو;uhYz#WGgJCQ&L펌'gd?F^X_ݤ%Z!DžQ pvMMKiF󷛣 gǓvߓ G8 Cb[S쟛ǧF\)k_0w<@ 8JPYW2:$&^#(פQ|GSr^k~qwh6vh|.=e]$CI}7_;/x~BٷNnzŇ_\šõ혼1|.Kx=e,X/ca*[/nwxۺ X6˰5AxopYo~͇Ę6G7xWmL[#)$ 6`c12WBYiL5|lnk%1QҦj&MOYj+MRiKhS٢Nl;{W-<{|[nM7: c4DA+2/ pCo-x7sSĬr ,V` S‘/429GW4znmPm #>4f^poW CQ-5.I /T3vϬ)NRq~n V >%BFL!mEXx,42r:hd,X*EAS7ێ5XV#Q4;?3Ifm<|wLp5 Ы3/= pt?v/U~2dE(R׊P'?2/DYX/Xym|ݹkC؇$!.ݽLIn 7lyLm u:Xe ovvk b6W`e'p;]^ŬQ/8GrwiI|Y7A9_LOZ$uHs ^% /.Rt*e2QThESBvmKSb`z]q{rJLg)-J[*M5dDV38ʔB-pT={4x> _Vx!UBo\u,'xC Dn7=!: =9:L&PYI Kԅ_RyEtj^NGSpBUk"M5}HQ2SxDNSfNΉeb5ɬ,:]ya>d&%)-k(ߛZVOQ䟸{4_+B|S4NMWtog$ݛZV5E/KғOZSqgiwt䡧,GW: -f-FxkĬlR(>bxX;~?{Z\։6ۢ5V$1&7Aa"\`{;4>> :RIWf%\s6ʆB4o6FI]cutMtX?Љr?:z U,š=YoU[J=Zvx`T r8Xlj"c%R.n..;Eabwi 3lR[e3s ]1§N'-jg@*q̌ī^1]rTt+Lڕ%W+lR󎫋p9he,jz*;Auvٽ58T~rPn;`K)4[6mNbk1`HcZB)l ʫsA|W8M_B놿\qx}Ouy !s7|gs(jP7'XL渖^Gg8ye"9f1ʭb0$L8I&oa,$HdQ~}HOQzEL^B/JnvDt-ح֩~צAĦ+v@vxZfuss O6ꈫ ")޺S ߹޶wu B]x!##r+EKE4r8Spx۸i& }&#ũA>%%y֛}wyoFxS##[3M2i@ soE nE]1DZ-{JEkм A# ):5xc%;\wb\ß~xW_lE][ ϣ r^Q)-wm9kAӽevIbcD*F}1&&&}Q}1&&/FQ|2O:AkZ77_ݗJv21Li1LDM1˾^{}_P-1}Z@}.nny vԺSs۾$jFc{S ,6P[&?1'!F,1!hqґLb'N #k`sx9,h'`.]Wc_9d:LB?EzJJ f Z+ % cCDò[ :hQϣo-$02ʛ0 EEh`+(AL  J{(ed*ƅ-_x$Fi<$Q$y4졙|wV-H%=B086 FN=z:nJQS -DI-rj!3Qjkap<eoQeiQB`͙eA|f[s;`yE1V2QG5ՌHMsF'0TvtN6ȳ3*a5h| {.[]6z*ډpocW~fk؎3.yf1X\qDL wA[8_s'$4 9Kd.6 +Qewb=ff#JB0fGGl}$g~MUUξC;ljRaqjW0} {6:ؑ^;&ZL~ib[^'pj f*}_BLȈP;oic/,k_.o;X!;e}qQ1 z14e|NTCt)qxHH_m6Yx}ѣ>vUc/M=>>}9`[ }sN3f3S&G؋6}_ˣƙܞS|en)ǚZO ⷡq;9Lx1M^{n<X QtBKx &'2$Ō#( %MJb   ZJ[r&X1@Bjx56 .so~Q쒄Y#yuPwLQD\: ,~/a-#1l蚨UЬYx{[δ-HYss)8)2:V|Uށ:H]$b(QF=ndUT5L'?U+L$vs>3ǁw Ѵ Rxk1pno!2^Ӆf61;]N֊֛A2fj.6M~>~`O_VGD/QMI! c P --|i=)}<;)&x'$Ȃnn_GeTohxp##[9Щ3$`^V{EmرoCt}ţ^R;~4#GPܝ*NG1?gCS5^.k#) Oj79xcy5V,+qx%]vC` 1nsb+6obŨtK:%L1n p['G212nQ)lj HtPBlڂ@!VQR17L^V5y~BlpؘI>  t m9100644 GormDocument.m(]zJa: t݆ܓ?ND2GaS&:E100644 GormFunctions.m˝M ' @*^JA7Fpq$ۓs&kjd x` .#Y\Tx',RWhx hdQ[̹4ԓ) ?1rr4Y /Co!^SG&۳ 7e xcAVVaLQ!Wx uVc 6 XTmhx[۠Z!5/ !ORxoCl'I/Xx{'YxdOv͛٭5|~xS##[X4d7`Ce-/_ej|n!ܳ dUxcF::iuL3%QFzxKe+g&>.\lƄSfs$"/#  x{um 3go( UIx{$$[PyBH97m_BmoE0YNd)掦óS9f^x0w}lݚH/,*x.Hr;nZ$XvĘYc q1Qw~yNtj $$'u/r+JMB'Mqqrr*(deA -"ך!5/KKs. aBJR'TPN: 5E!9'85zsufQ}} WW`W M.x5JYxcG3j;*v~U&~C-ixiV M94s 2'4ub4,c֜ $xi6GTjۧ15Q1Ex ɪ']jfhg`ή$ x{i*H?s5ɡ}ѓA-, xTfUvUMLN[x{DR B Bz8n~x{R7Gh(v)QKK7nx& K&l=q9;xczGA6&q62dxkAi,b#4oKkV09Rɒ-) & 1IfNVcA:6L{vAxjyJ[Z-(}xyŜ0ua^l&IlT+D.^ä]Qp}3fV-gyM }'%% 匩&5ZZ֡pl01Iwdu6h.&`L?&hs49@Dn/mQqZz 0۠c!+u&A,!,䷡z\i*3'%B=.`0x.&yԕh,ցbKûrOZ- 5gz $#5>;%Qz'{^H#*OU^] ųcj2QY8n8(zR}nq#KyqinGiz];8,k M̳E:z_=JVo@xc旦_2AFxxQ |SJҎQ_د!o z|x g/fi?9)2O-o}x;,BlAO8&q5= x7$$[ 1TEA9 t3Dopț1nߺ=h"v|lɥo%x7{s^3Ʈ;\m!xƱ{6F(WfܰxMfa9ɮ5xk)P1ob,yU sk@x;pi! 6gͻHDxzu4&Z9^Bvk6)ULoQxq {e9=eվJxZ׮, 2004٤4 6 (Alpha)45$6 Apr 145- ;*; */<;p*IK K% ]vxxQ |SJc4+';*Kn?\o#xy9弌_7xr 7/6^<^ xP6l2{&_bb-J-N-,!o A Rx[DeC9ҺSa\7Vsܚۮy& o8xƱ{3vV!Fݏ/^oSxƱ>{sva6onx1{vyqF7/5Yx;i: 77j5G6Q- 5fx!$$i:< S J%&і4 xS$$['zTyN÷wlomi:< S J%&і Lx?n:{I4 aV%@x~D  '/ȲpIbk "mgx;̵sVVԼ.#ox1 {v%IFW/Wo#xƱ"{sR)ƽ/6wxzJXrٕsgLoבG,x9gl8j+qNkJFa~1sj_)Qa"x340031QHI,IKI,.N-fп}B;L׶[?u!D]~RVjrI^z~Q.î[n36z˝&!$x1t zɛU.> so,xq<{sti64x;|Fy;4?=gm. LSЈΟ\h.?Y3g5d/ <`Y <!8"'x%##+#EΚڲ~K5l &K@@xKhQ5i-QaEKRi]4*}HPh'dɽef[6]誠]8;W*ENAPDܸ(wDp sνgcOargYȦʨ?[ߺX= 5 /0I8݊=Oj;ՒwՔ?C00/nQ!bika FP]{OZ뾄aIJIkKF[`>wzu3xMs A4f=H?] {% o"{N tY5$: gP NdO`zF6l_e8suJgK4sJs*P.EWqX)}V@Es`M *6Or0U&*:|!kn镀1]4s,HR]ZɼT@Ƒ[wz09].XZ~?dJ LMYB&Ͽl Flg5c̷2p0TH=9MFGx~{ҶͿ#cnPlAq|;46DRV,ܸqd ~*yq +p=҃|_`\o x[0aw5 o%x[Zulױ1 c -IL7STF0:zL}5m/fd՝~}T%J@I593xȺUrҁE'N6[zu_h*Lh&Kx ##ep6SC $/xxQ |SJxNl"r=:xxQ |SJ2O[wuM) Ӗ~9Qq E9x)wG,'o5٘MYAAa{bE@ 1$3?J/LJ Y6.n>Ԝļ+M.UE7cW"n wxh##[RϾ?L:My"oEh \ &",!ֺG>=@/ 0ᓊ100644 GormDocument.m+-H{u#df;+}ϭyGh ೳ Apox[q!{*vU^ .2x;m< 7D7OaԚ*9NM@43M#1 (5DAV!/3Gs"97kq)(kq)(d)h&%M6,7;PX)Vz:g ԢP $76NnU؍I(0rO-$_Zi 5voZHjt43S4j4Qej Ȇ*D! 奖CR=ELU I\INbokox[lG39 ;}x{  {@end Je#%" == nil) ## else "!# T..IIT.$)#G,5v+x÷.>xxQ |SJϱH+ظ% %z ){&*nDxy=F]fk5&U-<Еm PmPx&m\-klx3{CNxxQ |SJV\ٝ+P8ڷ_~ۚO'*n-ojo6xfmFcY üHx;gh$ɛ8&Pĩ7لS唛i6$9BN~bBIFBbQQbP8:(8,霟SZk5ٗkl.׹&KsGM|QWPx AZdCSKRSS]2 r+"]c78 ox{ ?#Q5Mhx9##[B3 PlTo~Q vH ,Pm:3F  foix}G{vWF#5xƒ|x;va *Ax6 WW`WwM)ȿ$cm.3 x31Լb'ƒNzs,-%?4皀g3,VN5sԚ8,,_A93^[o))UuO1+&c̼Ԣb yy 2s:pLZ綶)%$!N,2Ul>Rch``fbʠSiF$'3rMe;CAlYt ->y6ju>MVf>QQdd)Ɂ&.l!$Px;tZi4Ď]JYW WڐYY=  x[Ԑ!6[i~eeoLxv [v'^FM7Yx;tZiFjv-fS8U1m>M Cxj l(h&jN4lh_ mʓͿLYxXth5ӆt&xp(x%)l7L ox![s7n>?o+x.[\s߮?UoGx6[sbAFu7[xp"![' og3 f /0E"a3 `\ߊBX M_v1 96K4-rJu7 xk{UhsSfF~bB}"xxQ |SJZn; kȽ 3 x7Z:29kM,:SZL_AֹNV.Oodxq*[s&ƞU7mxkذq]͌,amXRRtfhx-_pC QX'˲Yl^v L n x[wi 7N+6ogxqmL31<oxq%Yg13֭<x=!![< _¹'WbҒZ3oCpU|א*]"GmixwEW7+oxwmYLo31.^Asx3h=ɷx&'H oV:7yd" 2xR!![}f0=+}u$U&o~2X|*BPUoof5  [ȆP#}deWJv%No(xwmi03[ Abx!k # ֮([q@*X#2xxQ |SJ>Z1-,I_ہ23x7ٚxN0HF' r]_AֹNV.Obnxv[^g/Fxl!![lq;8~TɽoEcp>O730XM8 %Lh_v2MbĽ}#15 &@MoSJ 4oxwq=A?x;r /&45RpIMV04V0200lg:J{#f/(!šxfζkCfnANjnj^IbIf~_oj^gIjRVjrcJJ&HXKWA,?3E3<1;խ(?%?JA#3E &PlUͥ4'?]A3O!#(UI(]PZ = ?̌ - !5/KK!0M>3scl埜)ſIm #fu@ɽʛ*.cܢbv΋ Nx~멎/2Jl8!i(xxQ |SJ|>Z_SmݷcIO6xvqY &S}WUo@xwmao3.]A9œ}xJU@r̙ iM$щ3XLA-,X˦!UxyC?m G|"ebFocxw>fa\9txV/*! */ - (void) !'CK{>ؾ/&:&m͓Vb B Uocxwmf܌9ox;Ĵi.dG~,bXk. Z'8lľ GjtJxS!![[ V(0\`ϪoE}m`P}ێng'S}2a曐}6`A띳/ c%o+xwm.!Bs1KIñ-.ooDxqc'[;6T_x9!![Z^| <^A-~CoEטz֤TjX;j)-?(xqm6g%rqN>&dÑZp ddsqn.]4\"xk!![qRJ* 04gho`C[EU\ظZ(6S!K_T hij%  `?8 + j/ygxqmF͕"gŶ1^[6x!!!I([Pbx>p˨}-.WLx9!![W^¤8AlmoE^;d=c-Waxqz6t9JS8'׈ d*䦖d(gd&gďN,#\W_ZZRJЙ[de[5RoRxqm,3;, Ax\!!69 7mBj Os100644 ChangeLogHbP5Mi&<䀹opB 2xrVg8'M4Oτdՠ7K_.b񦰯'#vyj$ F,$k 4=okxqm4f&LJb.xUqF2uҜ~ۃxDĻKSH̝.? .xiT#K ԒD e'6R )n~a :JS~xR!![#_Y g.oEv NR X_Ef amn1Ftt\JƓJn#ooJxqJw(1&t;I,xee[Cso91G—sύ} *x9!![Bj-#;Bdr>0߱o~>X*E,j -Ě\ [xqmdͭ4o`Ljf|:x+9 WW`Wr- ģ=mO3ywy 7^6N`GUBlxo!![:JioB xo~>X*E,j -Ě\  rDaSt]"GaX RG8MFu|¿Jh>/KxFQYߓeZg.e]ZfxxQ |SJ ?f\AM?{N2@wx%5U|(f1.yɯ8& F x9!![Q 044 #0*ׅW ɱov ڕ$bJPȿ 6mqxvk?{;,{x[wY +$ *7N+_ &xS!![Q 044 #0*ׅW ɱo4H5n(ox9!![<t[S䑬MPo~6I9ٟWv1/NΖiX yolxvYiV0mnrx{uW q7 xtiT#3 ԒD e'6R '(n~azd;41ox6ylr52nFx~e w7ߓ?/ScxxQ |SJԻ/EPΚě7$D--C x7O(zvP;S6f~[3K⑸H!j>p+8hoJx|}qvF5oex϶kZk95:eox϶7k8vq.5$bxk8۬]4uM&yp('(Zlot x`xxQ |SJ4L^vFcGLY '*n"@lx;دa'wl8%oxvks&Ɛj:a{xk8۬]4u'yp+'(motb ppxTTܰ]1or֭'8 Ԭx̴iKd,a g1eBo7x#k}WBxk8۬]4u 'yp*'(mot" lԭ x̴iKd,a gi0Ov,nWZXZbkPU(H-NU(K)M-VKS8 f$PcrIf~1I)zDal( n,N@ '_(4|!7Rox=k-Bo1x˂e: \oLx϶5kv-!54Mx:!!?X%SE3 l[B}J%7>(Tz=D|nRxznxxk8۬]u4s 25'45ib>{V xyC?HS^݈r4h~3^ɋnoPx϶kfE:YgxP0?zJ 7 ݻwHԗʓe&+p0N c{c; ZA0;?.ӓOՏ$x340031QHI,IKI,.N-fZpqEb[JR=1.?)+5X/=(AƅYKYg8;X/ˬZ`x{"^z <Ɍ|K|I!:xePM/Q}o3Wn%"!V)բPh´X;kįX66Vwq{眜ܛ&nxR DADHPR ҠDpU}ۢʇxJB'~S5]HzkU.4Z bR0KdLȕ|akmVՎkHTR F7puImx;Dl%ɬ,yx&Ko>2q7S-Y o x>k+A(xWn$ϓd`ztx !!@%}ȡ5KT o)x[Mfls9Ffkrx;òeQc,x9[/y;R-ԯJP- 6 Eo>*vb(2Emc +osx϶:kv}44:xq/ eY %k7Ȓc,[hB wN x;-Z~v~1sc&lSx{=ͻdѮ9mhx[¼yC #TF{ Nx]69?z{Ix100644 ChangeLog]=0mԮ#37%op_ z“YQ}Oȏ  /w!>dqU ެ1h,_;euBu=MfL+'Vbr~K$nSI%x~Y NY5k02O]iSx9[rݞR̂P@RUo u^ ?G&KsI!' = ox[u<0>4cx9[}z>]Zf]t(9yo~NXz'I$T8 #bxru) nqDx; _ 2F[;x9[p!LGJ?&oNQR %P¢VVgo>xkseƴ9Jx=a._O~-):(D$$*'e&8x楤VXejZosf'ήu2x9[ئ?qemkCo~R,Wr~ľ냫  *o2x{vq AwaJD;x+vv gE<[PxS[<uoFz܊bYNԓH"ͳ/m3Zf )E8xsu1Y' 0|mqf_L& hIx<Log(@"cc = %@", cc); kQ"'n#"]S1Yxq[q[2aPjlr0_TD^+oEAtl27KҕCyySCME=M\k ^p; Hue!w%fF(x}_RxSü;Yx}a A50nadOh x4irͳ  &Nf7Ra5P*l`J #xvFm_bnBZ~B~RVjrBQjIiQ^jBbB^f`>N&61R1x;+ t7z͖\2$wriqI~sNbqv)Fsxo[*VDYYN}@oOɎv%Up6ǀ5烱S^=-~< 蓁kuw=."P'cl~ r1hx}u~ 'df HK #xW;&y 9y  > d)f 9!% 5r6h BF %g0mjgq\rݓpmsY && c,Ni /VC2if(dict != nil) { s- ( }ӓ(vK:l x; 3op^]%3$3?/RA+9'7@V!:9W!$?*8$Lt-qFUt %ĜԔ"0RKS+g4/f{$gPdT1>95cxS[`L͹_o&ao~vt݂]ߋhS''? 2>>E?j+F,c| $:Gx[^ N ACx :\]o9ЏeJt100644 GormDocument.mˀSTwr)"&_KM5|>rLߥ ܳ kq9Co8x6sk^{%c8ClDx;;]wz7_0&_xkx)kLi9(452<_i4_ 5~xm[QTԲqef?O$4oE95d%sT// kȈYXbBRmb_Lݨ~+U&ó 1o6xs6 'p0D;-BUx+==@'=B=B[S j[8ix[.+ d׹ozT\\f9Gr͓u R0ц*'h// kȈYXbBRm%j-1Q[yVēkX># LU(A100644 GormDocument.m|T*8vcj3ƨ6ĸT5iKs sGk$#W:~ҋ&  ) 5-Ԗ)03OZa ]}o&xv|3k3v~=3|dxxQ |SJ/?/=eO'*n{x9[["h-6\E}_'-o#Oy\Y6Xlrhnw%o>x`ks2=ƄH9 ?cx;-Z~BHϤM2P(L`{~xc~ ? +x;-Z~|)r'X )?Uxu n'p43ngdc jx9[!:&ߚ\xgo~oCp>U]~`Sq Max϶ey _4dd _jx{6a ҊsSlXk.R2Jȃ%SK@rV%\ +#{B;xR[h/Q`\0>M&o*Q_f6h݃fZ)#lQATN 1!$xu2:ߙgbd U{x;-Z~Bb:$mm{#L~6oaxjf2̌B7WGx;-Z~^61rJܓ>op~E_X-x[2żԢu3fӱo\5-x;-Z~^6'!u{" s*_/| -x;-Z~Bs9IrrF !M'ȍ: o.x%ks.\6sx8[Ec+Slb2P T5/oA{s;| pELaFx% >œ:7.b.S ) ,AL3x!JʇJz'4 z/x;-Z~[i{]U.:A}3۰ rkxi69$< V3;100644 ChangeLogpL4'ݗꡚ"JAe˘@op?$ ߍDI!ìؼ&5 100644 GModelDecoder.mzmh~v JʇJz'4>+SٓVGD -[100644 GormDocument.m@[ފz+D, [R[/Bd'+ށlE#v>œ:7.b.S ) F!o/XnO2~5 -' 4uia,_1G"-S!8?B0A{s;| p1!6UH.I v1Q5<x{k:F>F&35&׳ƻeV($)d%$d&edT*gd(d*f*Y(&rq)((h)8)u%+$ IQ(ILR(L-W\\_)oxۼur902N4Gx[6 fiGvҕo\+o5x϶l)kvSeA3Ix;-Z~)\a;[Y̔:OV_ ? ӥ x31Լbў. cO;faV`_^̐\vd˵/=a(-Qb䜟WRS0s&?EK{BD1HMbf^jQ1C=[^5l}>? L\K6'x{ְesV G-eY3L`g֊Q~5v]Km>.l>x[:{<י}*:x9[q1/O%M{""oM" %c zܣpγj Hoxۼy>kX4 Vx{ʶWhs@ɗ6ͼdY 1v :j$%gdiZofX8=‚yk+FE&N,89JK2KR@L.N PHKI-R̉hh5%+S`&0Mo(ɇ|;P#O<x%Kn]efF5w{;3 ,Y\]xkne¶ARU9P45x,&+fВ-q #Kƴ3A~n8ǞO7˶DgP#dk1,Ftɸ޻-qvEO6z4k R,3D:k(Co ˻jF(ꁩ/@ ٯ9Y9X:4j*FPhfZ?fJm;<>z6.L261+Ԩڽt}pbP@Q ),A^A0KB PT;KZ[h\N"qU$~dI5QT8""1,$g>'*:GRQ5iHXʂTro dzn'KccčiQg#4E+A0oL++C۠EQ Ź6. f1Ik[d>\Q>2 sm%@;8\s40B឴_Iۓ6-E3J`: TD9yIH$RȬ TB,| 1ĭdb)8&KBb>l'MAY9!8n&g>=2 Gv;ivXV2U:\eL?1G+"+2#H ˬRYpa(jrԪ*CBRNmF;G.t7ܢp`h)Ϩ?#'tQHq#.'F,3VwĤqȵfa$A>S" D;h. ox{ ϸz :60v5㦮nQX XnAy&E7ߌjƞ {kCN|Xf{;k+}3Q; "1c*_Q&6cu0W$Iθ!9.i`9^2KPsP;/;q?eIc[-0F-7Usی S#ůNJqى" 4M|@+,Ө-zbQ/~bSLC(B:q7,4~ֆϗ/yUÌWiL?TnI Lngd .=@.|F~1&o:֝zC(NOHaʽ-01uV,$G4N^+'HEiVCi:kF|ZMffaniP!Q:,আ[usH"1+dA Aݣ3-bN~ 7_Z2nx3;cGX/㲕z۝o0ّ*4b;w?)HRGsO$kPa^,A'h_ѶT[浖v;ny51/R Y8F3\.P!QKc|HH`^g惋ؿs'J2 :|y(O՗՜WJ-86gOBօpw|ΑމbY"9sm{CI{>֔ qjͨ<ЀrYԼyG%O(jʦ5*HDŽŨZ]i1"zz^}s х-ܸv3٨r%b+Y Ɯy;\>(%SO_p  &hTӗ 㭠%'Y+ ;/|r-a:cdINn0uB2L1WF֥ \/ݰt6gJ\ \9%v+$EOop7X7z~du^ MP>Ӛ./Gv^P)={nУ7?D*iv"?!bg1A|UWA^;D!LNqi;\vٻo+cele")_0چo}4= Z=`F?F֍%0Q3ZlK/4{DbVyo[~Ij%sJYi% 26u/x? 7$Xao#]eoǖҸk_sJϮ惑n“S|[x[f1q$a-33oWMU+Vl-p/ 7|W7FQm|/!,dŏ?_Z8>t,-2]td޵O100644 GormDocument.mC`L:d5 &NmBW!b3R ~fiǒp2nXdQ5-,ݠ؃bNGqKj z* 8)> K[ܙ>LhmUQw4|pGXOFw#ꝳL\ Fm8Qq-w찛U-KMId~,>Zqa42s j|;[O;+}+oւi ^{yiɥ5,Gx!o\h+ Qz~ nzLy'nl.D]pCr>%Iyj<1Wx3v| 3sJSRlrK22&c,ʤY[('[xt[H䞏nod+K\Fթ%Mפm9fאxf Jw.Z|_BZ~^I@b^jBqj_jEIPjqA~^JjBzZYY'3x2? 8 zCM3efd$ g@0@end ,lbx[q<|Jlrj$Ux9[Lg޶B#/*SoMm62/6x9ڈmj owx{4:uY9k Cx7ֆ-K6?+2b~QU0:? 1/5G!-3'5/175vÝkM6.RҼbĔɆ%RӛR73&BebT0WbWg>,Jd;ԊE Cշ߬bA~xR[> tyt<@A2^#o MΎ.-D5`,Ƴ(u2JLw;pQ&mxd&m?<- mx[,;vVԼ.'+xxqB-/UW1o-ѳLωӪ kx[ƻa'i x[8p+ӆMvix8[eè) 66pUo nl LS5듏wIxxqBHSs>ZRH̎.lM01# k0x[{gXWFi+x[8 Ux%Kn/l쟷T{1crmn X)Qx(O0N<`POP )]Gvbvbbx9[a$_kzYPoM^ܸ84YVEMMV2j n2tCx0ur'ضcc4r{} fqx9[u8ỹS DoM^uo$ixKj No]xOks .7:5bx uRr iuI)eNj$x[ryŒߴg SxE[ߕUZK(Rnow˘66!S`lE>i FnkOT%^uo$ixKdB>1wྰkϳ nl LS5듏2Qx)B%Oy1}e2Y#o'xú9q{#+2ךux{yӆ ,~%Ey ZE.))i9~%iɉ%y JJ6N*̀QasB'7-!x340031QHI,IKI,.N-fhJn[J;fJyWnQ\R_0V¶z: "$ X%boJx[  BOOL) Ak;/nFx m6+,zB` x!:z7?f=5) Pxx[-G]TO@:P뤸.?o/e Vw@kֳSˋL[ł%n)%8 Q ?u񍲳j|ı MvQg.+ >|ocx[źw,&5NnעXx{F X6*O5=Rx;>:V // TBDPB%h5N f)kx[ 7 y¹mj lCx[1-|Cf695!Mx?Fֹ`A++Z؊Z~.9ZeXUd7lx;[Rjh=Cx¾}'cicqOH JxC[Jܬ<(2]D joKw;2t7{g=+*?/iN!N@Q H{:p x:r:,&3c-+B|&7n~/ɸ[!NrjNBtbJkͥP_ &M^.R Rnƴ[ǁ)e;DI4@idi%G$P p@!چ+ lJI\ z3CRdWyg5vͬWOɮp*+6D(ؘ~@R$R7 FD:K)LCGW#i`ht:<Wct,rrR H77ARz S8Hj^*Z؝PUFQN&Hbj5IBHI0I A"H8Qv,JxmL1u*SHu0Jƙ^R ͒R͞تNM&QDؐ$e%z6osW#R76Uԙ(SK!HKX@s5 T H#E\4ֵ3wcT;uejyp[O,`z'c{uO>8i!*CdCD}*ye 342g1b>$=IFx@ g9rD:=ƢG1=NE.{/GscU4Ʃ8W\nr2d+!& zSz+}z+ڪ<^t/| }o|}.QŲW%+^O Z gs ·y;J'̈́JL'BYUdZ']+|cy?.,e/?4?b,I,tf>8q ~(\ wLK_%D7I"'w 5X8;p: a,cX; XDZO`w>Jý8%9.<\ -dBJbRp ^zc!"3%Q4/k&зf? >Fx! o##4QWzARϳ _x=[/VbC}#f o Vnl LS5!uoxúK?v.F]7Ox{F X6N6|L`I &x>o FUC-S^l1i31ij looj=x;|-6ަ7x{9Ys9o46{aFi=x;ýyF i­px{(vo#;mxxqBo|euwV?;"s`b;, (x0۱F31k766.2.5" ,ee!7e3/_x;gr?- ?t1OJM.)K/etx?[۱={ҝ%&/ H?x}oWwޘNLK^(2 1JZB-jIr$@b xڦ44SHK s@ < ^'ސZA%S/%!Ef`w$y9bj (q?cr![jt("Vem6/]rY'Np0TlK`s<|IK yu5oY·;LGaZam,_t*#$L!=~796>Na* xF 5Mޒj0&bXQ# joxL31[E4\»x{(eKdN8&[qLQ吚F xz54pGxuw.֨G^~xkfof,k°[N$&y  x˸q)gM(Yr/{S x"/a*Qb9x0c^͵\gx340031QHI,IKI,.N-f05>gr?- ?t1OJM.)K/e(q?ӮOx#ev}[|:!lPx;#{Nf i\i,%hx% f hu3YQkK_ݤ!. mx6036[#l'D654pGxuw.֨Goxe+fYl7[)x9Qcc| b|^c sxi& %#J2Sl<6_eO8mrT3'9 x[qO “M7W kfLx_$ 7]nv8$ "eQ@;uA7cl{L100644 IBPalette.moJ2sswͷ}v&7})oxdz{6VvԼ4.,Alx"~^|_JX'Wlvx%{SzCf{j!+Z x31ԼbV7 -9q+Ep 3{x8FTA*newInspector. M y0enwxi& %#Jv0dfxӆ?5dy6IYoRZfyV<d Lx9[e,tҔ,y>o]iM͚E^6QR Ix9[uDzk 0|woP $`FW@qg,w> {b0x;>?|~ &奖;d&'dM\%' x!8F81_\ͳ DI0x;'sNfU^"—g\ X%Uީ/ySTx;|IrҁF)e﬐>NHlݪa&3x340031QHI,IKI,.N-fquaHŷ?5?3K~nRCb\.{)nǂĒs*q ex;'sNf=6F/7i.udv\.2rx¾}B~?+_oϙdTzpSux;-Fɉ"9 z.z AIE% 6E)ٙ%zE{Lf5d[kOfleu}\} w׀x'x q8$?]xS[z\}+WVo3,.[)gD|4Pc3rӳp )[o|x[e=^̌ 8LxkԲiK*dIi/mH;c ?"0x$[z\}+WVos+bsIk E<8hDkE|!|  100644 Gorm.m3,.[)gDO/Sc .ͅQP ~?b|4Pc3rӓpD- #{f9@Nlj:ѓ*(#{vQZ\pPœIXȢLhs5ٹZ[ptC/%pX3[aC9_9.W  2Mb\I(뗎ؓdʹѵ&?(b;viV$`FW@qg,w>Q A̲byp&t100644 GormSoundEditor.mG06䷽2DftCzi100644 GormDocument.mRYjZY Xx Qo023H.k#ؗ" ?kCh4V.U(@9 %m^T5);v>2# R<1=Ebjeec9mx{1&m/ecx-1KPb-"ִmԔN6,lպ^R"K"Ix/8lBx8||+1Mݾ,NdU]iЊV4Ҁ.-mYޕ@48c;Ga $Bl&(Fa@m˷cU p2-8 ]P%g]5b7au<{0FJ&Df+a?* iNA ōdpb7¸Zkicͦ<a ixpC<扌97wrHY`gx=[[@qDs[N㏞4So%LQY~];|-' rKx{eQIM3>>x{ֆ-9L\o-x)2 Ox[[@qDs[N㏞4So63O5/pQUnB_>6䷽2DftCzi100644 GormDocument.m%LQY~];|-W_ `023H.k#ؗ" ?kCh4V.U(@9 %m^T5);v>2# R<1=Ebjegf x{In͹BsQN?xW[[ ň[tV\oyw))NУMo{mY5KBq%ЬE &{x;x> vVۭBhxwm br6n2wt NIM./Kݜ^f¬_XPP(VVK6Ueq'e64Nl_ 0m)$E-G)x{e6v#c]fsķg<#/ bwx{DiC|BL:HAx=[2&.HtNLÌo@+4rL6bԓx yx[ef\RL%;K2fInox[eFf.\R%29-Rxzk`L?ȹ?/#v30_= %ohx[ezwRI1?>*ox[:lҌN7ox[*f7zx4[ oK7X w?/2o DoHbzSADZn'37o~x[e =r"7|_x8['Rx$w2~1:#}ho] [}?!#Ơ< {o"x{2r1V DUKxxqBގ٦{6z)?/L\K͔E6*o԰שwx9G~JlL5L=tvdʅXQ7۷vgW1""UxR[![ 6pJPJ>k|o3k=dGep{@ÌC  rHGSh p$Lopx[eRf s1'/x;iz BKR ܋ 22s6 3 _?xxQ |SJx_/`6czYRD-8ix;ti wYXͣfϱr`ńܗ ox[e4 ꌦ7$'xۻiz lE%eLV#Rx۶i" iլE%s5 k'2Cx)inf܂!͏'b P'xz5 Ƴ'ͽj76LʑM &'nP>m2p`E1kY`J&w|n+ ?Y89jlڼ{SN0ox[e,9rQCb\?jO_16'KFkdx{xKqvG"Gx5lkJn.b)w8bxpu% +6˶9>iF)ԴԢ̼b"bԼ===.0* +|1Pd3|yJA#3E31?)+5D!lvjujR;%Q(Ũ)&2Qxz ,?\j0fC\*.rU]]ZRZnBr~^Ibf^1ĭV P=my'meWx60SX'Mᝐ\e5\D6),&xSQذVH}Tx=[ށ/ Q aFoK{<= % EWx olx;37ym6g =BS=x=[&qXȝ nKިLdo\ sVh x toUx;3+N\:/n]x۸z 7ge8bx340031QHI,IKI,.N-fxm~t;2_?wB'e&2>{ :uD~џg}$x{WqfM>G5:x%ldvf`z6o,g&vaÿj<9y6pr'i(sw@r@{5'/*$'P*r?jhAj @Ub*J/K `* RT9CS =VO.TPr0bYT\X7y:w=P  i*r7BZ@i0eI+o7$(73/v`{$;`~ Z@M0b 6b!@E'ACK=N, cjpxkyS?.Dxz,ѳ).j6[$Gyxvm,y m~4省)B  xk NE6a^MkxK(]a@x;ٝ&W\. _wx 434s\52jhC4nhx;il ݛv{06vxuq m~yg{0{ ax60T&]H 5ra85D6,ѳ).j6[$Gx49Y<K2m0<*#9.1;_m9-ZޡC8fxqBHux䖈ƶI}؝ x340031QHI,IKI,.N-fXКzj"$[/3dB'e&24 ~=sK>ӵϕUdn!xyEsaFGX.)gx[+Bų˰49Co #xS;ٝB|SJCR+J2S3R˭sRKRK RrKR2RK2S8RsRSҊsrҕ\w;O̱]* kxc;ٯ% x31ԼbMk]1=۩uS}L 3RˋF~}0]?Kpށ(1r+))fl7þy>9 &13/h]/[} }VUU&.% /NܼdUL]ڝ\ LLBsS2sR4rg>ZP̏c[ox=|Ns8j{=x{: M.ћ  6xeN8*Cxmytxxq i\syof [VoxyM|n5x353C،Px;[lu׮-HJ]-LZzQ\in)ysɝp8嚖Q% DshFbE 7.۟Ab H ZĆ:-ms米CJ9F]B̜{ι{^{m;>,yzUUlXMU#g1v}@ fVogqu"Ɛ&}jǦ k u'E!ht4CEMK2,z0O13hg'tɐ \pY 53ݰ֯}i59`,nud$Ue$Y|bLY& V49Q)>ڣ(hhY&$<FJP'"3Β+v4lTpbye*Q|b5XG3YN/ȟd\򻽡t ٨DPӊ&&T$fYO#xc.n yfE7>']}%3CPOFDo<ȱIn 7VfKuNog919p͒lcl@ OD[BKrS^d39\B_>"ˈpuc\59 dY*."I]>nHsKk/_J=yB0 !˖^Zx]S6=SS*_^WKpE\OkwH|iqe%# IVvv1/Yd佊| }*T8D_n:4si(,Vh19aC.*V A,@'E#D+{TdM^LMj^Nt?`prFD%7";Rdbq$3] .)l2w.(T&ɕ!a%+Z)rg"=U$uX1L+͂R!$h+f"HsK/6[m9H\PLeBA*iLh}.28#m1Th^GF4i5@\,4A3 0?eBizH<yO/ pA"@<_fڎ '|Rx5#@]_}ힸ#2G yqesnzۛgh 5%Iq; fQY'75+]Vw[_FP(E Z \U%+=ŵ0*֟%0i!e`ݙYpa/TxPp+\ X i" &E+E3\Crz(cΣj<"&cfeUu\tWEE;A.o=x-=.{ *=;pA˕D$ S|M$AeP! .$lHUp7l@n"_~ɖԨ1I?8&Mk}qS7w8pY&+k"[v*ϟjƚ >,4~rlUd',vM~} ICRrF (}ގqWm`guW o{i>7xW:jMwUݦk[FuG>eOXWXKR,leC8Ȋ%yD %.0ȕ]24*8 k^[PK]i@9!qG{6mJQ=vΚfMVBO D%BK!_I}J*=L)X?جbQX3e^]??aԹ[r+LM=h[ o?yv> w oh֝WwfÚdQHŶ#s[]ʦLL6ltd+dd/zkv{)Ҍ`*HcIe*70_ 6;W v|Cc ;G|rH mΫ5G2h _>SD#.8kV_"7hNl]Ho<ͩe5:<㭬7>@Y_犊4ڹߩISis6FUֿV skU jt7ц|4HX'9qMfULeXQ"Cn|t!4%(փkMK0 !O§?M7"Fxz+|~`9.)9_*\т[c5p,3y5~ի7wi,&xqi+<;֏tA=ī f8lulM/7Xa*iE&kQ=lލ}q__G%0g . $sbkG Ig-kpX[ڈs[ZҬ0x}ıp]7)EkPx6MIޞbLK ۜ'w#?AZ觌_ ʕN.v*2Ps[j 91-eawm(x}| :jD}FHuB"[yWJh^<;_Z oE>E-$[^iDo]Hrw;uas۷Hvulud%iyjzpNbݥ" %XTfމ@_K'7rr}|SD+M;;^ _˿Jptγ>> ;]s-5CtR+)Ʌ/N[qx$,52E\^/qNpq_{VpI_Z]}8|P[!y\M/#P5}1-lEjZK?qg_@Dxlؾ}q.ӕyؐX! ,oYR>I.48-O9:񺅟 ǝ`ЗpwWpc[[u5+"p.YEviMD>[:/朄 $k]>bp|~7$TnYpnpZ7am\쁧ᅁH>,7ͮ@ۿV*{R%c}H ɑϏ0?1z .L ƈD'Y^J vu&݁<2i."^ ~bq#~ώڂd fqB³b~{b }mByb::3&cU{kD/mzZD(s1o6 G{|A|7^8-8 b~>+.4ЅYIj@S51en4cm%tt\`ݴ!;NrX V Q.*Bӕ"&sqK:9%Bx3c ./(%f:[lwu_gql>$]c'f9f D·*Jn:(TE.K}<GjbXٻ|Vc1a{,]4z(8mʭGY-^҃ Dj}d+)=42ԗJXI10Q$Et}0=Xy|RUQsG)zw)i$HBwV*ákKNFpb$612kq]`DNl$x}t}+Ƞ'NlZn5f~y=͓M*hu? Hn7>4᱔'c| vv;̞:X]gD#Q+';_eGt'ƨ"[V^fddGX#{VQ͑~7;#]Zv9vgq^YE)z5kE,)HTFg'ԋ 4նa̠o.U"Z7gƸO[uhV~>vXT d- Ë laCPYh4Ы^R}ēL8=O]/?{Wn絫;W"S_ϫ6koFV*|=oU;:=w7?sƝ)ZQ t7˔@0'791&!7 27Y!؁\G~k}@\Թ9 kS"a,{#0tǹ 冮 q k xuuVɫkDx*f>Wo x[8Aarj^Jf&`~kwx[quaֆ-S CxxQ |SJ|,T-deyX$ڡ[5xe3:Ku>!8y߹sxxq i\sn XȺ)l= fx9[hr7 6\ބW,Joi?uWw %2E kk<%^xr &;pn%k6Un[x[q0놘͉U4ktx4fSx=[\⧝gdp6$=Bo.Eohw ۓxvGkXxIgE?$Qvx<[J SPڣ+MX3Io )ɒg>d.{IΓx?kIllx[D}fnyP)x(5QjHAGCoR[6opqr %pxu6 F&{Ln2Ҙ*)|hQ#Ɖ kkx!Okxy>ͱR!67px=[W%F9f7J#,1X%owڨ" $x79kfxm/f.{# Zx*691A0"Cï100644 ChangeLogCg#69+ǫopw 8@vzhWFտG9x%ndhN:' ?Mc{hMr_/*v" -n6z46 +{>CMc 1MK;"s/tB UÒ~UUS: dT ~\kwx;yNy̷$|x8[uPAig2`o,ҕ?Wd,r-i A0kUx;y?$Zx2df#̛db96+` ~xf[f^?(z@LRU,C100644 GormDocument.mwA_q72#3=?>xB^аˣ1ܰœ Bi8x;yy6VlΓsXO1rm6c]Psx[xGn??Cj^ 2LOxGŵd !.1]; o9 E<[gov reloadData];EncBx8[@a*%Vjo `{C4(8u @Lkx;y f+6[0HxZe0]c馑'Bj~x`:egQ&8cx8[@a*%Vjo (QhCõpso쓆 Gx9[͂5pgc3oDYŲ{ķ ukVx;&n$enxk:ӆ_ 4czxV[ \7ϭXBr:k/oʒ3 59&ghx.ʲ (ْkWh %mx;yΓpLge)\fMg]9U]-uRx6uL NS8O`LrKD,xkoaht)b7 xm:xy: 12.@Zx2&// return [self7];+738syx9[E ⍛MJgEb\o!n3Djˑg0SC om]xj ΛO3M 0'}xktӆ_ Qc.NI|\brfc\ xR[;)qv6űo!n3Djˑg0SC ."ze_W;(m $mLxJ Λ V_,{^xR[1x*0,CWo!n3Djˑg0SC @J*@+Qq" Mݓ $kx;yyr<."rx0gH Ql4fxDJxysFi3nP+H*&V4 +xx|0`/d 6ER3Umxg[zp[(9&Yܓ-o>,mdT100644 GormDocument.mϋjW ۟1$O_ x*x;yyR&al(Yv Wx[xGn:>̔ɛ:pq)4. mx6uL NS8O`\Z9=ւQvz6j:sk3L/g ~_ђurN tC=8^N KM>KQAA)((\4}?P|==FSLk3 M϶`t^kȵ})*&b/-I-i"~Amx=[CT J&;j=O.o(9Ehc(|txk]x;y"*/%=yx6L s6~ `<#)RšKA!3S L ,J-.)!.UZ\PZRZҙQ_`kk8ݐQtz#dݤoe'`gZsMRa޼%RfX&j.~> e84!/p*gd%Z)%\@q*$X)d&cfr 9*M{a*g- BqjNԮYLr70m~,?3Esz$mut0Ng^>%@zq`C@8}RP*P$3/]!1$3?Oi~{zӧ2 Lgm<֔k|SUL_ZZH-EBFxg[jڥk.ڒ6]bt<6˦Da100644 GormDocument.m`q~MXC7nѓx.sx;yy|f.##]CC]#Ɋzʛtr3x[Cvj>^Լ..e RGx{7uAkFOzzfWE Lj(> ~ FL±@~KLKo[%YR/9ƒ{;PS0'"fx[O$?Mؘ)G0u~doo޴ԏ0Jl;ά=qp??OK.u-3]m"$x^8 *g8>?f 6 100644 GormDocument.mE5I&\ N h".x.YFO P?m}iHyw w`?NnX6 Q±?$HZpkx;yZ(Xx-JQGL0 =3eL[&H\Kӽ6skpS F^M=CоF?<jIM`\CA2{.tCCM0l,"  61\hb!_/ `sUa4_om4t(j⣔/njA4e6؆Ba7i_ ˜fc'rRm(şW*] L,su+;J8ܭWA'A_0!0OP- 8ecA^o s=:T|!}_-㑒%M9Jo$+KmulUx[aA͇œ8&Hlx;+=_zC%ܚL!zamx;tiÄM.{&x[:uC7O*Ms2d3UO `rx)g,_\|~EEZ%ś85t x7[>xV9XpXToPOD d,[KK9ap }kvx;yylͫ!l6x"p:ͷ~+G xQ[=A~5Dݝżjq@8Ɩ:(6q\ju؄6aOIvHps>=܆m!UMCdQbB9L ȩ,`1 0KoE#5l&=ڜ'ͣ*D鸯Q^ߪ2 xk`e?{, y%Eiɩ E.ɥy% )9KmU''Hoew4١b&&o']PT⟔XPk͵"Fg+ks*hgh1YNĚKA/8(#pTe UcuHKzK0>GxRAhAej)=IPPLZJ iƊNt%Φ | ɵJ$_0„#1PtR+Uڛģ^C&R4f wJM%1EesWB` L^Q!4Jy^I?$D7J7KlTIjw$긧ۈsE.bM!)lϹZ_ce}uBSY]qu*y#<Zx~#8/߃ cW )&^4,\ ʓ aj J$Ԍ-?WSgv'd;geZpykl(//GdubeK`EUC;$ 1rP|:1vTB\b͖/LSv{f!b[1`KXk",AQ vx§]>Ķ2abR+|uȣ6-\ a [sxYedV-R#lajl itȟW^$\j4-3$'7ou6"#r8'@P3(r``ջeڦuɆlzXZ6 n5NI/g =Z"'(T{nז+LWƞ7H>^OT(8nS(^EqO(0uHs(tyA5 pemjt >Nd_Tyu@1L$$mH䧩MLXS!vRS_E> f!bWTkq5ܨ9XF; $-oq \ E$rח؞*vx.660s)hẇuI[ )Uxy$ ϛ7Tk<"xV[HU.+lXQo U1+}dnj101ذZ9uh;x ^"%k_x;yB2#xw '}#1@fӐG x;yyy 3dAf~rlLlnx{rYeD~Vf#:xip*3 D!=7?%5KWA#3ES! 5$b(NKI-r\\@23 ?kIxyg#}ux[ǴiCg^ZJ-ELmx}l]qHB$#Ƙؘ$@,KJ3Qv>k|NH#}NPW=Ӷ"Znm:X mck٦1MiBJ}޻'ݤd|khsW?Ϫ%X< ԔŢ[t9)ge} /JBJ@++bci⢼"i N*d%CogOL y]}6$%iU[NIbV@Py"g|cA쬮Og)!'f(*;QХa]B6b霮 "4cbpZSsX(Y蒖D ON2wbL >~1Mְ߇UfQ/\."10io uOgȯk^Д9y>*))4[Bzoj&/~Hό>;1եr Y3m fIBƔJqߒvu%fϸ yE ϞaƧ9ͯ2!xHnY;CNP j\1wgENcEy)k9o? j;5Fi!qI6OI|ʾ7} -D ̛/C:C^E*|Ղ&JsaAI EE}?4F0@6JrlnsɅn$rNfsX4C~NV:@?&w<r y.ž6|>9˵ƜWi\w?Zi8/B/{0?zmw`l߈;aMb<.@@@RKya?t_-hA!Kr&cG;6XSU 'ɝ#VF* 8o."Co{_:ȇ52!{|j]Ialə!hLzZ*V7;GINISLyG=1RELفEAg%@ %Obub0id$FuY1A ;1I[-N)Ƭĵy7+YX_A!owj qNU !"c=pY(!kyLuڨ:P۶R.OZ ' XHqщvYr9ө*ìHv$ablŪn,Ne`WJC]"J*,V¥[7kvDxX޴kUFPBlZ'ƍ7E+p('eȴ+\phtUSnx;yzn d3J2Rr JrR87m/x{xkb}ɺa*#dJoۿ2y7 kHx;?e&4|x9[H-b+а(`"<6~Fco C+#GqEy x[ d]ų7 )x;y_eيRsR' 'M~ o;\AƽzKj0xo"mn"xzuCma2^x.JbBȝҿ?,oU]sc~#fY+$x/&3le Y<Kk1x͞L{#dDx딹(/Cj^ 2LR Px.>QlO^J~RVjrBdY%Q߱3/%J ֚k.1T)&J `\ZTW_i Q3TL!2(5-"9J!58DK̰U](u'x[%qJ|ɵ93;BV:xW[gtZ`Kfo>=)+wM9bT˵R 4.Cɪ}pxe70 ?0(kx;'Cv& x;rq= ]՗OI  uZx;y;&.##]C]#Ɋ6y{ K'x}Y G$7KauIM*M,.*&Q[Y6sDG404t2>k[Nj YV4Tc!RX˦fkMUHuCbYt ǐ? &u?~k8x[M\%g]xk|a9+~M.V37w"NfQ1U~r8/,kCx{Cpi#L x31Լbu8Y>/L 3RˋܘwYJК.zќw9?(?!o YB׎3\r5 5yE b9m:ο3ٽW!L\K<7OO96Z'O†f&& ~٩i9 93-Oo~~Q8YXx3ecƁ&E۴H^yֆͻ~2,w6%KvM{6x۔3g \=r~70%X f!@@hr{H~pbYj ?_u5;*SxkqCF_ppIQf^BqfU@Y̜70mޛtJ3sx``pI2;%;>sۛ!< Ux![77ث/Y o6]9n7100644 Gorm.mFj>^c.99^!BCwB_;!f 1E100644 GormClassManager.m.'+H+䄊:KthfIJ?= m3!]he`G쉽n3:Jj!{g iԇ&<\w?7cM~vO @@G4p|zQk+x[4K"9x;~<}~c.Լ4.>Dǂx;kpEzƯ]iK%rkve[޵,ɲl ݑ423,8# H0p#Gm#\~*uUJ~rTR)T%!_wsT4_O^q7 q]i?h /ɺN IzrC,>2yVL (S ƽ;쫃}Uwdj#l'z*ϯɠ ԉJ!KL9))p{Z#!cCLJC9] `FZ ,WFBM8\Ѳt>P[X쭘]QeTrzZԵT5`7 &65f V\OvmE,>< 3BF}ϰ%,vlAaLtC :Z܈ ^jk^߮PCI-Z &X>i#YA"]lj7f|1ǺՃiAbmo]c2.mWplo'U)Bi >K}Vï˰<|~G;kVE-֑{pi&cj;N-Z8.فrZ5Uٶ<ԓ9dфHdݦ;bj?fzr9dީCp}#?_O!/t4@)c\x.[M4 B4@VmKS *l <~-H}謅3«fm)ҝ; -4^鷚w@BP^_;_z琻em r"aHc~Zܸk(]Q z`iM=ݲo[z7- Mo|5;ULAt|=$Bt!"0cn~k=¡} t(k>/V!vw u~w -!w¿n2qn l-7R3MfBS9Tny;n]1!v7Q#a ~qC(&xca^>Ƕ/[ _Vq*8=2GӷxI|VuH3|v5հasqhKLx14~Hs}CÝpuCP/_QMX:@G &na#߃ъcd.2ja Z̡Se$BmuǖOoݗk#!xo4Ly G{+NT߲x+Omr{:(7Mђ^"Kix~Mjީ{;<ؽ-f&s۴[7L܆gwxWgWnvdbG=&9lZx8B5ϛj]B JT#! uXmɁX3(ߪ/BR1u&Šp=БήC04u燇1==NՃ<[/ܺmME1O=$D3ejo+ꀦ=O*mh=|݅Jsq?}{`-@E׭VZI'w x']h 4C6rJ6zxh5e_ wdj@&VROE-* 5NGak'^ߺUwF-^Xŗ1lчඋP{[Ռ ͋;1^P /ʩ{EdyeQƊ >d1󲨴R9MTy?Q%{*k:nfy;IDq~ŒTR'psFeEFߘaÊ)Iw9a62bEso0:(Ҕ$)t\;߯C7ts@su"MټN4iQI/iɦ #]k\{p)F)ȹ̤La"+a!g#Qr8e]ttEtQnbBF{l3q4~itê0QݘVäw.S&wc b/m yǑ!=Q;82tRسD!Г:-a|4ț3dNwB_%OXe_1+b.Q׽~IvVJ*J;RffP;L4+2R4ۘd sTZ$Kʜ] M`?*=I"4(JQa]h%PH2$©d7i**X%Y7 ;=oۭ/GYm%85M8)[yNI3'hl5 yZaZU4kP,S܌hmO%Pw_Ȁ]eUEWt$4B:N.& 7U x(ϴ]ێY`.2J8*.Gx@%D;# "x7ZQ|"$ |ao; %ʬ ~ְ 6<SYbFjQ]ڒ$nX :J NH='PL. > _BvY["f6{Y%X)8Эtvp9=lbй,g^Vg6~vB8wZ$ Hv"֥lZ wO#E 1dyZNǓN(5UaoZEns`#T ~p[ywq'ƲE&<\ gJOYeGKWl\K*Oe͛28e6RbaT*X]GJ.;UZ6"Ϊv-UԉԯY[_YgL ;esv|T8HIXa*㖨$ 9;"=V?B`$=99`Whc[zV4tDhY r]tLf#=Zm᥷ rb밎yyiG?~bg18 R ߄O9\t >->3#)'ԖTRI g,e>CS5+StY< bVĽ* As#͠~'>tUcѴX!';Dڵ+h`^IC:{4)\Hl>:BJAp`DKƤI.BOw7lHZ0&E4 I/'mq'BK wIUf60kp^)f_#k2Bɸi,T-[`৽s_t9CYןb&7%]F~#nFQ7d库݁͜gg3~X'Ԯ] ̰lúa:LW ?cRCG>n-)x:Lq) 1Kiºa^1|-\5 j 8>U㗷7T3pk47|-Re)Auŝi%h: ɧ, hr:"S,~E&sKI_% й~ƹ+v Ka5efI}J!6f{]V\ބ~GT ֋EG9Nr/kX wMkvHiS&T2Ҙ TUQQdZJRoO7;$v;'uFKX_Y$Ŭ4s԰yp@\O s*;~kN~(K5L'+D)4Y{.v>8΋fr9ql|on݊oT bbX[z܇3e[0UcK`~qL"Lh앭RX͏E M? C & F4Y5 Ie0\ d /7c9֙at];u1:@᷈ʅOP!T7p Q/n0E)o(͇iŽX2]2RgxGmK]rw`a|{(O̩Qbi[JOڃip䕨u׫ZM 1S`G'vΞ,$gA:B:36g 8 %IL% *:'@*&KJHɌL#)Y_'wB?i%t .QI9:Q+@kvZca5Dz̿FES XW;̎cNV"%:ȡ5&ŀ< $Z5C!v U]eRyA)qmTTr7ɵ8⥥^Cؕ5O/fs΅KЋq1w-S*A+.ܧ^ ̣KO0Q+ثh RGwW1c~nuZ`~h.mg>ؘ-yye`!Z &j-Ja޴:3{+ d6j"s~zpz 8xwM{ \⛽x~1O0|FЗ GxR[ 5kW^x*=ok'}7 !<gI<2Έ}FJ:딳/%k#x[IB%I2x;$}4f;F}.Լ4.W,xS"es 7Cj^ Ar:x [T?U:NxB8M OU oO8;v/7eg}O3}0?S0k[ +z-{L"^.~28DU՝U`Wq[Y>7<x=vn> iX3파8fAB3@y# aR/ N)l()fBY? ok}x[!ES%xtiCf}E/Ϳ]MOaVx{¸qɌқ/[갃mqTcĸ x MO.n[uX- XxqJ wl7۬#dI x31Լb k[H)gV`_^̐zկk= Ϻ9?(?yIN3|5}ym2c̼Ԣb}/^ީjuge2qI,Idh<>hh?& (&fe2h|X?#_7gVpZx3eМJ8$C`v8]<yֆͻ~2,w6%KvMqL1x{tqA ţSS2KRSSRC|-ѵ]Y4YUϹS8F+. hx8[g_aA7L%tEzoN;  khߋc^: !x;>ɫm8r2+R'UGhsy9X?x?Lͺb7u^5x=[?IW"+Nv&ʂYo %;y  4 " \)k$x;f~_f$R2xq* ,9 E9ɩy%yi֛X RKJRs &3UeRHl9¤ss1aW\x;uu65M+^xJ n˦ ~+TmKR/z5^j2# S„Hʶ]]Q}2h8^R74)(N@̝-S2W3l7p!˱&G+?TV>1iOƠG*vkjfEjQ6XqH fiܾ+2QJ {JJ06 A24ןkBey0$Ń BVyxTOA;h bG˶E)҂xP8`CJPں-(Fx0'8xq5͓c" :.Rxp}3^"r|fL~ خ'ƁqQ80IѠd>=+ZA KyfEc7@_3hnt|rDUgרK_Lȭ~!.[ɡA]6 6+ip b;*]WjD<.^dhfKZ"=ZzWQ`:m,9C!NiaE E:A#{h9WC?3?He e"Ap2߹+##|?p~*[ѬS60I08XUzK-t Sd_hA|v`/j*\Ë:ƓRÕa zX(P(]xwcV jvY5 Q^KHU†O [@!3/N #Fp՝Όͧ Y|( ͩB*BM&(wG6͵C,wѓuw*˰RK)MIUPr/ (,K,IP@4%JKJ\S2Ke7sTNޤ4YժWR CR+J2SsRJl&_2l79Hi*XsMg-3ғld'hM^1Fb9GvԜ4ĔҤr+X6zMlc7^aB{;u&7OJM.R(H,l I\VxSx)Aes(,&)] bMd_䜟ZU5Y]~;+`i^qfz^jBf^Bnbq\36 cOWx{)~A|+m\6O cBxHڤޞsuperSD718B20&u517)8<$(A4>&׽CxB Y'Oʷ9d u0cv\ {)'~x;iU Y, $0rm 83?4&j(lxc3o%&}}-Lٻ<5a)Mxv .M7FTUT1xu= oYl2ڽy%E)U|}3dpЂ䁃̓onH4XE6/{yZK|(0 x31Լb+6m}r.rUt=L 3RˋrUUtMؽYWC93Ozc*Q'Q[&|W!jAj3Rt&_OOk_ҩe L\K2dZ2^#(r_hnbvjZfN*FNGӛ*q9busvPS'Qx{q" XuRc2bVnx1Umwɹ9Y7j`ܜY吚= CxǾ}KkRRHQ zx[ !5 dr -'k8(e*iZOcWl̾c4LrbNNjB|2D/\ÑM>20Y)DZs)LTy+|xm*d;S,Wxk|%TYܓ}&DzKLVߜ+ #Jx;OmU2&fVy 3u wx`,2mRewI+}/ LʓNc S?x;to_O~RbrIfYbI5ry)\0}b 0Ox``I$H>%W[NeJ^Ui ix=[>ƦF܆nax9D2o,@`Ôv)Bkkx;&]g$1nexo'k/Oa o R`7a=k2x;Z~n_$.x4dF' x8[gPәۧ4[ĹP10бo x,T_ O]J|9V: Vk7x;j #xxqBHBBǟrXi7wb;Q gxY"þBjͳmmv_6e 9x8[x Do gӤ-ݘG􋪓 8ejx;* M=/OBMxz7̫rc_[G;xQ$z9.L1g}er>f=3lyx;rHe88'@l\x% fk8Xv0YELZ% " A4x!޼0J{^%&9ٛu-0Qcxu[-9E#a/ZұoYAJT:lD3j/;(-񐪖mOI2o^I7zGw9BL({B`{mWf%0KA=(9?(?5%$H/CK9,|bEX='MbWPHO,i8y#ꓟ:L%YՄyr7{;X &ߖRq?}&?p`/7Ckr~@!/6. P]dO22md'S/+9d=ɦve98j88'JM|ZM3'5?ͭ(17UV`n{ILrc24|q1ӑQMG RZNmrY@O@SUy^Y!`ة& :\!!!Ι_obEFț\Ku'ȘɆƓ7(:Xn`^*L@ӔVB$'gKMV|;⃻Zj}}f]Or%f@dMþp^dxXoLSWO }n * 䏗iU&TdPE#8>h+Q6g\;31~ؗ-nmbK%&Ke}ru_}c~{=ws=߿o͋ɼHx# #dr45k YZZQgUŇyNp-&7PD"kQeО6GFmAPv;a(!1ȍE Ocdk@i3G^g'K1X#oY~D;O1FUЇ&C PA2Z BX DnJm|>vaeX!D3SH`Qœ7 iaTY `KG33,磔1tx|#Wy´ʂuĒmOUfW\n1Xʗq`-fI Ns"’:u{}/FYeEb[nX d5|2apε$ ڵ})a!,cc>f9_@#Ʊ?DM =t8lv-br9s`\6碈w SAa #w7lSMdŹυ6Az`]_!#[ᚡ'P$C%k)P:Ix;mKQj-; |4LWH>?t 0ZX4ܧL6UW&%1U{"ГEǢCOz'Ǒ„gc$c%v{h/4@N) )T`0HAIx m1+wU:!ұ贡|>.sIjhpG/EGm8-Bk`VyR/S8< @Jr\+z,Y vF×"| h_Lbz>pLlpЀd׭h؈kvV`꽞 &4҅5ESTZ t$S29W\)7XɐsxxkܶWΩ=q\ZVvgAI)$O"Bc:@d 001kECr9Id(ײP%P`r 0IR ]y|G5m)]a,vv-30<e|<Ѹa4\CCcoaR]w`EuUnj~۶tحNI|J[)/Yj*_4>kh7.]Ca|qF2MZ^K4%.\{7 .ʒ*W.FhH~Nv6x9: h]+}gL3Ɂ忎t73QLZɸ=NxBh_$7<̧Hu$jZF23PO(q])sSF˿ B<~t {gfI%N]Xgbo/^-/EC|O./fD[^jsxɼ=_ x%|'{Ag='rx`{ĺQHp}J˔h )x9[(7Ѧ}^U8ɳoמ;&U X o3x;yr {Ξ 9`0x!oBHkO4l81zDƓNk/4-{m LLr2\'؝_tx[Y9\"ov~+ {*0S9'1+9$d QؼyI ?RhZzcr*HԽ؃}:s<$rVOg1kȱ#2t#6<""εTܷ{Sl[ncfj{[`xB Y'Oʷ9+7rMxsߑw-xu2+0 K//fbŠhsJۇ5 LC93Ԉ-iq2g_n>Qc RZTQ|EDǢlUK?%$! svh۳LuӼ1f&& ~٩i9 93-Oo~~OWx;tiB=ӣۿ:a3ĸ LxysFMwsF#Uǫ\y xj C?lZⳞ<w-xgHS~5MTn&*G_| t06PᒪΘE=h`w45x{,`qF׌LT8  L,6M&5"&bg,*Ȧm$ĸ'L1n*0v|;YC өa.##=&N 1lex! $n x{C, ) `HL`Qݾ(h߰y+:fF)l5:O|q=7fOAFvbx6MKN 4C1"fs;H\LG2bu$\"ӹnd`0(P hRi3ش7(W`Vi!6=o.[8:x340031QK.+L/Je\ctM|U=KS!Ds~^Ibf^jQq@bNjII^IfZCϧRQp MNMIe83}~S礱KGK,(ש(83 5$H/9'8ain։lO2O_:Px ' 6:g/"$M~Pmz 3YjB6pW CN.\axto*_W{Կ$@a@'5sI>[(Tzf]ӫn[=c񋨊 Q$&no{o" ,pwEȷ;~ PXk&ijy9?473MQHq wsOOw#{+o]qZkߞuĮ18*~kw%\|ж`u9yRđ획i&M~AiXGiikbߒyAm:ҩqlW+2a*QV}BaeQx co؞XX(EMx340031Qp/ L-άJ+.HM./KI,.N-fguotHZlsx{ȷAisC1 x[l"ƍ a5UoFVff̦i/b 0h[j|'f^4 ~R#{c$G 3Ǔ'e챃JM4Hmڢem\iE2lkJA}a QCJ0%el100644 GormOutlineView.m=Rg6׾ڱtB*F!D(O .949`}&Mx;&.##]s]#B7{c 9xyq{͟st ''xq*&)l^  xc b| @쓟᠔_i5ٱVm|38JA`E 0U y% % 9y%)zJ֛l=)!x:J=G@V(ڝ [R騊^Up`S֋  xt9 7DN/9فi4 px[[|RXpLΠ ePӝ*RWtAimTܛ`}~xп7D܂cﯬV ʖ*Sn 5P5^ \jٶu-DMQcbDamZFDhAh]6 *۷!",ɭ{{Jg os"q7dk|h_ ^Cڒx.r}nׇ୷JW922`js*'@zǐ[ uGa.y~U{6m։p+%Le"m+GuݍR)R4jcp},nҵޘ(GcFlXa(Q|>)6MKڥrDY)uMK)G[X\ +9Gs 輸{^ z^,NYc3߽ s>^oG+`%>+go=&!=_0-J-ؾ{+t5` >wwU9_ W'IWD\n8w u6탕Oʆw^tޡˋVHWt͢(nz%]?yq<7 ܗfi{ezHt~sL 41dРՀ(&x<,5(]028 -;Ʃ|;-4*3;: yu/drA ɳV*".X&;\zs\^wWE9O H)cJ'prI9qwy73Ąjm)`g1^PaF12Cdjyxo_KV{CrJpxaE\B)B[OlEfMLavu a-J6G-)}eДQQեQCҳ},0̏E<1Ouy>^MzWb b6ıx0R7}XD20jo?bWL> JtJ9)X@(r<n)r\ \ >z'.]~ V 5GuݶM4F>/mjWR{xz5?_q,`,x/_M_?gNkn h^qGן_*U;h e͋W]8ʹ8W鹺=Do[o*f JŤXހ1j#Ւ,y[oT@zj>,H?/@jŹSp/ʰu0? {arF5B77c<}POz|dN7,8R?K_Og^gOW.ol$2K3sn஻:7.n˼`[1YOc8#5빓)¨{}@;zTլ0%l;qAH(O! H_[xp'GdBe#ybknFf(_6qQ3=賉FN-Mަ(p-Q8ZN`>"Lc=3a=vW2F{ Dǟ R6I &(5`xm&O %@3?\Aa.ko7q8#o$ttzSnW[ /XN=ST$\m6dC2\@Jj:cSq>덑;#v!ti"be+zacweE T576ϩ'r( F&gM/) ӲxyGM`N+VfibKEh5%Sѹ>N{[Fv+;r$-A1|hJRO7J$rcFr9ce QWZu?~@C&(,aQҁG`ܾ2AH]:uц{ 2qTٷ5K'ސsIvde1ꘐ1+2dz Ⱦ/6&>y`GI -}Ds!r 1Fq0BowuxS$xC ]v&!'dzg2Ib2HȨ\Z\"O` L{"(#,Mi6⽒?dQ *T3X)ި,,˨!:I l '9̿?fԳ\U,`Z_vNA\ggo][Ifo8kQ?ϖ9}Ωh%eTSLY0;l`P^ uJ7N!JգQcI8D-@{ {P1sȃr't Y >Xn35uQ1ˌ~C?OdLf6n}0WM̮P9!jxgrr1ҒD(8ߋ_TFTXJ^"U lddc"+ dHG&1R6eP;5Ҳ%ĝ)#Bp>@HR#3E3Z 䮔rOQ/.-4nniݱs={::9z;w9>q3wF2h6ƕNaZS3C"~,Zio1/]bb/k]W@(<#Ԣ׋/`I6ʝzn}yt}.r;4a46f7-9 [6etR*t[{(:(4؄Jή_?.M_JФc2ݓn/lzm¿ɽa eNă95P Y]/|g FA4v^X60/l"/t;cA܍f_.d<[ |(p=\I^r[2j5t1#o=>f&Y 3W ! "$|mm-p|# /\i5a&?=J|x{ OlV76ObK9-_x{1q\ K24K24by\ %$J'AZO'!99HpYR$SR`"+M ,7y #zrܛ7lbV/-I-A<,i9B0Z#( sR^j9Y2$,TjXpl 0x|[elJA,#ol yW8Pfj^o0ݽ(\c`ބPbk2LLp g:odFYѕ\G ڳF'?/x;A65"Zw!hxk{qc䋶b^XdjcxBƍXxr 77qRPLSHL.(&:^.w1 fxC[ܹ0CfV_7$No  $r ^o0 wձQD\4$21mgd J6yW[*ۄ'46 ۳RAۼ*ub!|S0m+/Q=I3jG\Rk^x{isӃ&!k5xk{ŸJ))y y %yV J:PN^bn;MDְ`ѓ_ZZtx+(D)d87P(/R+N-WmPYZ4-/3G/5Ȏt ']j9٩)% `㑄4'7).N-);%T%QcO 5/l7e) r v s*(9K!͙拘%`v(d*9&qUy,':O>3ydE W 6x3):xt[ l#/,d(`бopBEp;~w !k^^Mʟm;hI'~Bx%|-0m`{lFA\8>ogx{Ŵij 2k:ix{ yGh 7٧3Ṇ AxM1N@E,"iFH 4)6qmMEED7Q h)@\u c  ~.xPR%$2A' Nh9ҨTW1X, c:1h3 F2!o9leB M`0\^IR";`RSr!4]ɳOBXy;}`jY,A0mߑpmcj\8k_x{Ŵf6z inMxsyu 6[:xx{ yNpDKX7a-b|}:<r x^q>odaNz̛E1/&8YF^ xu[Z;>8fSfH8oZl x'wKv!RL 1x{ S`DwX6m>Zĸ&tɛyt' 1x:xj0|> a  .X7h-@5X5)<.wix[!2IxA}̛X1 qxZ [c.0`Rq o#>}IU`NwSkɳ9WV\VnQD(3a׵dYboD HJ"OX<ziȻ3H Ďd 3GKkTxk4; vwHxqB Z:s9pqcZnx[λwBv63Yc| 6 Vk:xkt f;A*Bx% }BKH_0Ȳ-N3x8 [CE2*KT2NP󦑱oæIU> D˄A1nğ* ox [9 ﻲ$;am9%o$8 V8h-E2?Q_`ctwcO{ DÇ^IO+=bHF:ӖG0*AQH㓣HI,PVi bbFo.sl|O omn Yk)$Ec"ɿٟF@E d&+1]СP5bkyx;yk͝;K$mgx{vk2q Bxl ZrKY)**krqVsqNft.J-)-S̱\¢/I+)At~RVjr Pw_jjJKfqANbBk fJũ9%IY@XIӚKA!(6_\|g̓wiO+/Tq_^DWf~旊ZXų&oԚI3E\"`k```59THO  xxQ |SJؚOr+SHvGWhOT*MHx9 [,د' EG{F<)oi iyW;jbϾvkx;y+͜!tx`!19RBzYLZxQ [ 5yECP;o"bP1'zoB]E/` *&!{ rA1!*x;y+ɜ2"'W|& 'xurj0P cxxqBkeIz| /,\a죿 kNx;yC r#=x{o7gqL~ȧX z Jũ.y J: %a嚛{ә6b1XxxqBHowiZafY&@`윟WZT:RA[.!wb;; $~x{Gffm^Fe2k.ĤT<dhpfU Xɶ<f: : F&@lF7rL^9ۓ!5/ k-x;y B9 `x#w1$,6 Zxz讷#!]?*}G+xikv0 9*e|h?'I(sw˻o(a+cM4UN2S<X lmyjsa{'"0x[ͳ{CL{YL^Hto~xs}UfZ.Լ.3kx;\tCd].5܊_qL~I\A((O85'͚!5/ ox;ye\%Gg;/7Cxz5.4%J QGfxYk9Oe$n 14;sΓz6.ƄWa100644 main.m6!'!fW'hW%m$Ax[3{-L-{YL^O<ex{eY27>ؼ_Nu }8xۣq\~if̼ҔT%\`" %.8=7q01oeR3-BtBqjKjNjzbIU^fduxlkx;.OnClb$^x9 [KۗP iƕ׼o8 ۮA87hjrxN%kXx;y%\%! kox;y %kx;y9e![x[ٗfIf/tIk=x;yIS#xysF?ޅJn޺tc#?" x>6Oj/RCP100644 main.mN@a=.Q[u X1OC; x8 [4tʏ,:[[;iԑoΟxGc~I&^>,kixq S#@MvxJ$CustomView class])]; ̓u { "W x3C|.^r18kx;yq++g&#"kx;ya %#@nx۹yV !Bs|N0&)x! >bѳ7vxw -ChangeLogFSNP:\yNGop zTWpHvӅeVv 0RW1 iUCSX~]M 1JmDBT&Y"t=jQxq6ƍ gkYx٧1d)aEx} 79*Y,Z///$KXwm )D~aNtY}>C9%mDfǭ纱T#]"/ף& *\ܒ$h>u-o]?Ux;y+#Bb4ill j)xСM TVx[dzgMs#u`W( 1nj@ Fx;e+#Bb4qy*(g+(*ddimhkPx7 7V3 Ȼ{ԯG~qKYW;Rgkx;ufH.x۸y: eWnP֘Txum )S9x&krm~L`?ͦK xxQ |SJ~VEFѽ:r{n4[),xz 73Ll]\t_rʵa/d6Gx;ˆɛC6KNJ-x/4[71ccԟ$-5ytdi˘M~+%8yl"gMrkxk kGYvϪ~ƢՓ}ddJkc wnnʯ1l0RU]<}!v?.@*4 )x|#iC;ܛ7Huwtxqi -['g=yB[5|%Ey ;n)p悥ν&nx!  wΑҲ`hOSFT0x[dzgC3b&zR_߰yt lixݤfKQF"Ex[dzgfVp'$(+[58k:ԭ 5xxq,eKUdiv,eX7wӤ x340031QpI,I HI-)I+LKc(4k3~7Q\|jQʠ8{bO%SŻ3l?/ʁ)/uMwʯ+.HM./KI,.N-f9?mlM۴t(CfBo_wE5| Hifufwa fTW&Le^.Wd(%&F;D8ODB&fU3~pgGaU&6ŀ0x 706 C_K(YkOx;yR~(Ex fn~<ˇXl̉g wxxqBȦ뜯 k:Cso~g0oR>w/x[dzgfV ukx{) '<ܬd{;[Ox! k\F03|8` 1njx;u Ǖ6oWl:))Jx[dzg#e4$Ǔ"TY1x[ _&Kkkr)A5TPׂ2SRRS3R'Mќ"#=9EFur9DaҒ<ʂT\o[%XMɂҲ_ʤGE)x9 7Ѧx< UV̜]D K8ɋ(!-7iB$2³2kgx;y,}{x{yCz's^fr[R?xR 7B T8ԕd_djK8]/4؂tky%,@~ZMwO5gh$k~x;4'V{%GGxe:tFd^l2C#+s8'M"0YV:(_ *-+x .XImWv{<ç8(G l& MS2%8pq~4>8xpt] OoW]+w"&a"_ENW?S4(]lWR}hemF#0ޫ/Ki< kQA] #100644 inspectors.mH*A+A{5-"{t??(8) ok:v12@0:4@8 i D6 !!}H4WxM'5f)B2 ok:v12@0:4@8H D40E 1    =YBxdpF,6_d&w3 1203pg[9X8Xl`JG afb?by`m6~QĶ3bx;={:SjFìVeFV&r1N&b0YO(f~&Smx9 7cɴiDW&IӱK#^(uQY_ ?rkhx[qT\s?Ox;1 2 )%\\ y% el2Sl@t|AI5PG!7(s[2b ?X3*l֕}4ywxRS2 r+AAd|мbͱji7_d[X_ꜟSgW;IOw^(rdقXk.ɲd&OQȠAzsEE]T#2x9 7cy-j;%P_K"f2:zrd>-x[\ EE%\r0MV\m d 3cx{xia e'ϔI)NULS,v+)DVcT&_|m$7)AQjIiQ`EGEm=hk5HU-_Ʌd3= D&RVWH)5Ԅ,//VS0ĭ|KEjz-VA t.^#T'Qub̯9E G>[970MֳPUYk 2@!]Z_>Y0W|| SzbY$62.dg+lm1y&[ɗ{ɫ&[LO\^0uhY枲:{%x[dzgAcbs^[/wgޏYε 6x[qd'"&+r o.ZHNx[dzgC3,Y+3;W>`t= -x9 7ۓc4 @}X KU55ve30\l]Ck8x=q$L֞Z]x[dzgfVvo70Z8ѓ{~qtkixʸqBW}mk])KpEɰN4 Cx <7kz<>"hSxU}LSW{*,P-~XJo(E)Z*}]--CLl,۲-,ۢ-/,1Y%-ْ-Qr>LLl ~{s瞧glm-7zn)&( լR/,5ϲ!mߛijw[{ٛAƠEP*ʉѰU. 3E$QQ$z!|7TG[Z~9 w[3N!IfQp ^WMIbJt֢zUT^+gbh;=pft9~]PY\- |W)}|[c]e$:6Aٱ U02A{i2Q,:NZ;$FyX7:SZRB"MnPpe9+1] bYFfw zCF.uIKKYԎeIHTxKG)N=fTs=nwXiYTg>7<UN  WM9J$̗6޷V >/Wow/T E||_Y v|%(᾿ؔ;d]?/g\I=4|IAzu.pɧ.xE|̃c&~E.!# +*3>Cw^$*M撔6G !jΊJ*vp. `h,]EG/-!$jx[JOQٸ㹰wugB S Z8۽6+_l;$oo x̛0j&)@ZhA`rbaj嗓Wx7 7nH PV8 KH^4~ƮF ,'_8קlqx{!1StC8f5.'&w^x[dzgBHãrYmsNwڍnx~}PIlҒ<.0(J-K-*mL/eD9x8 i@jo:mKh}6h _l@qN<~LgxʸqBHfu{+;4Lh~ ,x jЇ kf| "!th,xMLG/64@^b!M!np1fgz]|GCT顨j/4۪RQCi$JKVɡH @8x潷3~ui/}{zx\X>.> VuH[uL}O C,#('( gI4t*n7t0?H#1yrȾj@Hx=*Lpx5 bx^E'p ILuA?dؘbw:#+kdVy.+s33rplL ) hn g򦍩n-AƯuwk7{@gwepkNC&m/K2pg#gJԥu$4Yq9ZAIQJ#e$^IHB:1~Th<տW8'3<f9%vp.uD"!& |,lXGxw!vJAnt,^*S )$qXM:*asuG ߼{m%1+NBzdnk=15DHАӈ^9<`Fup5z@-;6n%rXƙX2!!yQ;ikFn)TagzV3Wl9ryb osp;SN"2Cͬg ^SʶbLu6o %gKLVMZU7֛ԋZ-Kv솞TC{ <rBuߪfT >5bifχ,&Y`!1Œ2,j=mpeGx6rP[E½48h< y?F=*zR&T55YM r.Vʞ/UCo*9K%Ʋt eW+ eM`APH4{#Xvn7ʊ9vydI9`xSdIF9DL1( o'eԅφm '2*p?8cbt{k6,L/e,mXPrkJ6'_yL]1MX""9(r"*o>$'2wNy,zɸ=L"dR\o|(]%v%!͚f挷?eIC5}+3js'E%(ֱWysgI}V(OaV(FQI7yN/J@m{`tdR >s7"33sv;BCmNMъeӤXDmTz5}#I"[(d&2d]hW>{:^pV.713kŇ86!|,e44j&x;1Kr+&^5O/JI-M,)ʬgNlQ,IuLIٸv:3v x}sDWk;ql'V^P;i)mR!q:)$0B$9ܳ/'N%=#Bg b!j&aerd֛ЋMjQx+pqà O~ƄX8F>K4fdEM?$_5~,=ܗw4+z`#oqQupȓ 2:8Z4U#,6̰NbE~hiTp26(m~l>6|L݉W}KMQK5'L>&>(Z&$5E?gx{cC rxVYtU;4&M!MJ6`iHiSHZ@D@h4H7P2Dq_̈ 7yEy?wd`NL-;s_/ebDk0Sicuhz`1o+v;^ ]P#÷?# &Rh+ҐY\qvbR/NRlt"J.] BBn(7q$SVsDRmv‚r)kJID|zDsRIU.%EM1*hH2ȼ]Gy y=XTi٤lyD"خdT9 @F'K* ,DPSU5 >zUw|Q9CdEX~8wٜtW|8(TYM+DOUGm+ aZ9XDK.`;tcտ0c5x1cZ2N%%y:\ @PZZTxɉ-ohx[!SbX@X'm>DٲY00puSsr;U dx{c·Z2N%%y:\ @PZZTڬ bvxSUw7 $ Z Br+XhSlC[ZJJ%ULZ/m~:g|qFsv1eD݇3s;[JTJ{ :O}ى xTB<1fM[Q0eJZT0nD/_t{vG(0kh݀h2!R.^k,M|, ):Z aL֟?6G]f#8bXUsdjl1yNKukZO>mV݅l6z;'m1~/Ã?[4W NZvd`b Rpl>e?i褌.iz?>֕ 6s#\+rqSn(Wr<#K+WLn~4ieES^ tJ],Dz-B?bmB0tzP%aT1[:p̹naC4ar.Yh K6~pP=_.;Jm trBQH_ߵ'P Tiq??NKc@j"|߭x;1CKr}K2+&^5# (ILwLIٸv:3E?x{qCKr B JKJ&L"XZ$RY09I/%81)'5%<$9cbSeij1Fx*[n&C:X'm>ٲYTmFn׍ ye'nfe``l' Cx{qCKrs2SR&~4OrLI&d&gCŊ BEJ̒E)xmRn@Od;(M쐤#}Ǹ/hiiTBaU//"Da/'taؔ [@XfN@9sf~IߒFwtvvAprH2}Crr:i ]1^ ?`1>{V>L Os^3l֏C|?d @:ԃ{耣E4HBjQn%UmhZd%٘x0&uXWtpm玩g+Mn{ym?a\}fQAsޞ.jU59$IQ.(uPV]YQUt2VOe߀ "LxAyi_nϬ?9i @pZ,םU ՆeN9RL0!Fn8(x T,rEӔRƀ9q*}Qs@Kb6^MW"ad됃emr %*%M6˖H,. k$B 6&V bxڐ?oI_x8 i@jo:mKh}6gly޶ DXBHg߸Gx[dzgCߢgVڳxǯ4eAU" ,x 7b;RDVסK-x!  E @<,(2pS</x =YxG {O œgLxʸqBCjK]Ä O \pt|b/ 6;x340031QK.+L/Je\ctM|U=KS!Ds~^IQ~Nq@bNjII^IfZVz{ e9>˕ě:u-,,.~׾GZNu=$m%EXp?L=N=%TýM`[T2[st/M}O2xM}Ůҫx)$-35'Ӻ whۜg˦Iw#[(°nҫI}h-X/!BB٫゙燳Puy@^+>ıiv 9c/ :.ix8 711?ͦm;` Vr>Kh>j0&M~9!8hIG3gYi>x][ُwyxʸqBȉPW./=v:61 hx;ik7ԡ.u&ڻDx3'# CjK;"s?o9x̽a?,2 Xo1 zxV]LWβ β,,. eQ_ RP-uYvXfg&3Ԧ>KiSڈ5d[&>X4M_|kS}hloڦMz. jm4Ý;swΙ;~P@0KAkV48R6<p!8!EPa J4Jf >5bԌ!S;^2 ޕ0 C+Y/tJ4CUB T۫D´U9IIryjA~R 'L˳0ӄࣧ S[U[孭 4k_Jf 12;a-O!ѳ#>Z <:@HvBc58[nZnU8l`oAZb8{Dk\hυC% 'KdVaG+; %wfPB X;nR(#Fg~K1>9e&AZasml6Xgr-E g= CĢ`!sS9Kj$p!eBp g{H$*H,3<&.ih'JǔNI4aW 7 CFt_Ȅ&@ IAS4A {R^Cw":g L -iclTUc=6"E( :*z8'589ZŶk^hڟJbt!xd H)JblPwF0ӟQG+Ck@*%hq=ھ1 ۅ{iѤNfR679R̷ݹvV v:~rLP\LdRX*7R[zXx+O㓖$3ͱT*3M,oJifHz\f T)+,Np_X_BzX|fQg睂@j5ޚ+(;"rLq}FIYށ*eɍ9 Ôb _vhg[)Pph[ ll›J !@0-F8}܀?bGػJ-s-cCS0ۢ">@?HFS($DP e$zFnO%̈ܩKaZ+KL߃% ~M МBO\eCF7 fAab$^5UcSF( cyh/8>3'T2 D~jP7tyõ^+ ~"}X`ò|~ܮg3R6`JNg&.*(G@~ooKgt{C5KYEM磛-w|V*Y9;!y3* :xu [ 3yãU`'cAwkrbX^mHznaXN,2uosnюǩ^{RzhG0TQ~xn 'XPpеFBy%y%Ω99ٚ \ @P &&4NPA_K!(51'R<$9C!H(1%3_O!<#D8#4'E!D!)^AKr3'/Lā85/%h=1x9 7o,^_8SUKK=*FYU$v˯nԪDx]P@drfYf;gDmx7 7 zP YۑK`,kh<ݍT1Ա}~i.x]7b jx~z47fpx 7̹;Y lM-NKKmx]|s?2p6x9 7Sbuޒz!űK8k|"%o_w0EbGPoHigx]wlkjx;xߋܭ \x[z0ӆvɓ5su 5@`rdnMFV*ٵY9 ;xJ 7Kz!@AjIトVKi) s/)Y< ݛ_sDžimWC@"5_,lPD9H6T^KW;HD5!(פ,DTΥ_cw!gY=#x;y^!<YSnfx;|yÆ5qlpxНFph(# xʸqBgV;gf㊆U3| xþ} fk7kNlՔ?)ZgH ox8 7j~A'q*KCJׁEfM^f/NogOix]w6sYs~:xʸqB.4gqyΉ 1x:9*-WCFetɤJ;M91!Ǭٱ̞ Ka"P{$xWkpWm˲$۲-'yu 4ֲ6-QLĴm{ʒ%lCSHM)(:$ 4 )P1 Lrʊbgfsv|ι瞻cvڎA38Oc=\6HTq#t.Ivb&~;l vG^%F"2˞ Ԧ:ISp6XboTH!&X|x2̤G\"0Ej%9 5Ppݺ1R{k5&(][K'"Bh-쵹eI&h,v$˕cZ3S>d1v F^y{k5ͤ%zu\H*Cfǹ<]Z/=L=T6CNз4D}Tl{ 7n8$Jۮ'?xx'T5i|!>Y1 ѵ:N2[1oKcq5&h&f?gGx[QKO%Hv}'@m=RF~ ;)K`d9 ӽNu AϚ>GY(gʒpI_X!K~K&= _wtgIY!\=^!+USא /veA繠 (J낧O"S%~E6#7L׌-x:z7+F\=V?0__F{*+=3pgЍ?b\Qc®ptOp91=}؅?VTf> gRz. ?s@mKZѦW h<'G 4r%+4k437hlbohcP{cq<s)-,قҗEL![F;:/ސH ! pn93~N?s?wlhs_`nCmW ku5D5_oգ94Oy' Pxf 7;5\MUcKBA*t q100644 GormMatrixEditor.m\ԃ(+?;J6@-|U/]OcnQ:s͎Gwn:>f,˨:^ςog CjVx;-wemfDExk8̴sӆ*/u6W xT 5o&囘zhMOxϵeX;FVmZMetmbc9}@Ʒf.+蛪5;ïzجB"$ QZ ?GJk50njfE)WzmTGv6 ϹD:BKR3>(G2:rxԕW3NETEL@TZJUVG"GĽ|'|b@M܌y#K}tXP-ǎ2smThOjZ2զȘN#5V3O =xQ 7 4n$rm-@eCS7K9MU! Ą>?-KhI,5eԱF,Ff!og+" ix]םg) xk8twӆ*Y&/*J-)-S,Ȥyǵ=LxʸqBd{;@6 [xW|v)i\y+~Mf}0%Hܢ*Ae J%e(""n&nx{qcd^FэѬ,&?{AxkpSE޼Jwi> U?(X }QJ)mhC'նZE+T|T^UƊ8XOg7%r9=TRXIYLI`5A-scd1d;*JZ}yA0-74ɷ%@i5 C|FY ~Iz'X420hAgv+;XDKK1cr M }S@k\䀆'D tb )^C׷֔"e$4anD˕LZmp!ŪeQ8vÅV’t{r#JF_o]1z_A%Gw50(4 .%Ut,^ v;i5g\ 5\ Y%1ؒH(Œ9;\U$5R@@7bi-"հ_oIg\ݲlyMXT{-Y/XTEFMH3T/oF8f͞܅$ippP$mVygӬcsm+IOqk-c'Q-k? 0c˰D.OhN[`= Ŵ*V6[h&SFk,snOѡ(V}nydѩbދqvdb1B#o4ZY@eV0~Uo+v`D@CidI$SxqJ}κz`ԑAz}aT@`ީCB?,r=hƮ>ݍf{Ŵr]*GvQ{ \ǹ$4دg\#h4FefPKxȎô;`>":ODCH 9rSTO!U阁;glHF4x rtcu(_&K<`e8YwƓN`++D|7ymu0,C'Vbi~Gnr6I|OMy-off:x3{ta_3"VoכHΎp7EW}Aߺ/x[{H\gWj=P#pc -x[{.FSu Z#lɎہZxT(&V chM x A.@}]͓UJ߃7 x[{H+;\0T=ѢrI|FXV޿ i=x]w1vsE=8Ax[{.cγoZŮR|dGtŅ $xʸqB6k%R><3|o~xYʵ!eofɱ, XE&7v^gxlpRb' PxP 82=lIObK  HoC_֊`(@>CN3jtX}9LgAg~# _xh 7NRsdqVnh v-Kp?]ʤ6,NױK)$6`ϻiIHh-^z595H1 ŕh@z/f2/c1V$NDjag̋ێcdtDiex]w'j]_Kxδi|fyγ>eh``fbZ^WZ~Af,**JMLM( ߹wvKHӊ?3j2-Px[̺e x..Ҥ<ҤT.J| T|pBpj^BAbIrFj1HMQfrFbQCRQbf^qI~Q^r^ij#kx98d]_ }x;;w&Y.<Ēb..#S$#[uK JKKs򓲀RSSJRSRRS6_a  x;ryCc WHQ~iRN*.pq)((U*+eV(d*U)(($$gTe&g$8$%f%fqq/ Ik x_He}B%P'CxgClpIbIi1-pq)((*&)lĴ( D!-H!$?W!?)+5X!/55X$_!)U!1%%5Edy,]O6gc4 R#mx[¼yC #TF{-x9 7"ѹN8V>%uKt/U\l ]Q?i#jJx;ySfF:\x;ͼyCd% rn^i|թ xR 7WேZ-%M K(gP+WxjaaP܌nT`nF$jjx;ms 2xuoQÏR#zJAc4)Pbo/e)衇44^Ly2ӻ&&u|gӱxesS۝¦y} }<1"W_6>ߨL[&6{jn*-Vq<%e‡GK/d$o**C=,Wd݉efB=֙Z,N iJ\ jP^(cmIU] Y$49N{k3 ^IKut*+v/ ?~֢Vm~> #m`)&^z| ![y~Иl60# <ʟ$^mMy V#E`a%-cϨh1CԔ:SQGH0k* -FgT(gdʥPSmEޠ& 0+X+8KbɌ1Z2Ax[rYK=l.i,x]w:tZ]x8 7kqɓXco_N)KlFwyԭ :n۟ix]w?dx-P 8x[k)~]{Rɣ.WX8WM./GA}Ff DWhիם8cn=^EptlVe熂j%r~+/f/v-[tZ('e0ܩѯ>_V-|4l*s8mnp&'\x}v=SsL\[izx]s3u[ x(rRdf;̛8=x*jx2%!4B:7aNN<%o?x[s&,/'_d7knxq6v~z5`kx&yQr<ɇy!Xnhx[AD?@>2ix]wsW5!UxEAhAhQjGZC2Z41+j5uP كԓ"(zPX<:X;?zbi-fO_JH?k ZL ItF槲2p|R ż߆@(袂G3a(*[f >R'FWë442xo+vsGG<WFe%=RG߇յH*Б=,tf;2L156gwUzXQ $&k5h. z*/(PȤ%yV44CC>p<4s8ۇɊJR.Zz3ٗwMVӏ,(̤lAd+YZlG=p\,z{ѬҷSheO߰tto,˥KY87_}Z4xk3yc>NF=+io||CNgM )xʸqƞ9y]n;ۣ>ѥH DxxpҊ_C{^|4K'xuSMOAn[n)~Qj@( c-*R Q`L_,"0< SB<ૐ}4U<4l?$bG1[;aO\tPnC{D5>;ix/E_7{zsJi!M@تOh$kȶu > 6g#ɃDŤe C)S7*!&xNp%|C[ohEyO77e:L7XiL03P1YfbpNj$ :8 N50'ҩ$ge*y O6dM!zip2s5a}>xZd%yQӪ \ˋ-:r72˚L~JR^泅[ӥbqv]R34ͫN ]d <,1U,:wT ]wԜ+c qxR 74J _*d .KBFƨor\@5dE@>kc#d_butlet");b9action"Acx {x*: Y +7?Iwd#}HkxQ 7'2Wo|=?xKSKjX׉p^#D[ïbd@N|7S[Uf{g gG$i_x]wc Kxϴ{/ӆƛ 1N25gQɛL'WTyd1-fR,x0ʩ$ ~b̤DqQvx49EȼLt g#䜜Eah"5b8l?E)L`Hox;µe ,*."x{pC/h6i ax9 7Y("ܞÞ\~lR,i.x{msK2O2Hx۽i< jB&L^u_y6_۫pNU2S4b [[HfŒy yH xk"Xo w4u"ʾrw~[rmn8 o.xݮadcD/0@lx;odfb%Ix۽L7w͞lvlWTnS88^i&{N~zn5Q6Ԝɿt>&BXI\̓Lbֶ< r;D$fT̼Xxq3CT alKhSӊs!ɴr.@>{i5x{qs a5x;t1B*:c,^| lxukC%I<rxukHׯotl٫8xb#?s`I٫m-_[Kq{~Q^C}Ge!Q7w=օ">ƬFawfzTu.듭-&guǒkSKxNdeۖY =VjƉHɼdK~rinj^ ]UٞiHG~N]W?ڿZt2]0=jqOfmL'ݘ79ZL~+[Is[lv`coiMx{i.<lLx;)EdW\"Yl7xۓڝa634(]xFm^ 4Gh k3./!3-%5Ek Oeͪt7x[˳m*3Cj^ 2LF6 xR]HSaٜ.snݏas" \Yn;3ckͱ(."}/.]]a)eDTuѕwβ=WɵĵE.1G ˄2^aRU.r|6 z' `G?!X{mN !rYӁL|̌4CpV T^3@:cL-ܟlu ۶*b|4XP[S[CqY-Rt,JY}m$67|v.14q77a֍jhMәHӆ+} r,p$70Cx,!4-9H82F +:-A@UPYu Y];we0Kb[ӯ?K+\֩ub^SruE 2e,3\ ėջH|T\p*P"G78:^/7Ņ A z`nEJ]KA΢yYڍ(# .sd1BVWv L;lN/IT7$STQaL@?,&Z{.3Lh' Wt>#6yr*A*722)(L~qjf@lL \zIo*`4ɒa&½7 <.}c;zabDqh3=Ex&-O"a 7 3U( x;t1B*:c,ޖ B x% NH:Mҩ Hߓz;N4x4  <{u>#3p\8^Gc@Zc0{afx;)r]xq8e7;laibmJx[¼yC #TF{ΦNx340031QK.+L/Je\ctM|U=KS!DsFb^zO~:CCg}\VVTgSX\왗_XWY\wZ\7~(IXCPԴҜbJI;s[zŢ8#\KsSJ2wN*KYLٞg"}̂3FN穏OQg6 F F˒C,4o zϭ YE.å}Yp)xb\בT웘Z4KM9.՚y@;m[peX-T+5NTODH $0?=躽ݿ\؜[Me.ÓT'/O9#?Հ%Du$np)/fZ̈O{ERg_sZ[Ya2jッIg^qAjrI~R`^H*e/GO\ī%#[pϮ_-a}$-IY@)@]@ՑNY,eƹ'LP ai﬿70~o>SJYc/ĜԒT$/yg"M_En0꿎GC.ýr?$ayI@3+DS9yÑ,_dB̼rx<; ݩbK# >*~QvkEqYw-I\=3Ҟ5=~͍) z `Wcr駩Bg^96:jU+CM:%n1rT81$$$3/fVvwrr|Y}aEŠbQ2CQɗ W}x,@ZiYx]fx340031QK.+L/JeȬݛ}IC }ӟm? ϝ!!dSeGoǸ釜<wԴ̜T;?Wt_Zcq1\./9D+KԇB+/.IMf[hg댭wkn2 :3('G$HVd2\]bʡ>U- 8/I=)&}Bk,~o$ UYV~Q".226] iJxb\9q \ X3%z!_100644 Gorm.texi< FܛŖ zUp>%'exiڊ>ZS%X1 35Y*kgx;9sT IxSn1}fbԗ눋-E j^6$VwNk9>sθozhZeY7=g?|>rMJP#к^+Y*!\[Ưqo*H k;<++K^Ijjq9ơ% âSs!ޏVIhoIn{G;֖psy|o_P,uP*Ƹm[-Ŋˀw[~uvj +w7ɄT2mۨvA[p`r^m? } `}bhvx'De$\p j $\ՀE?lc=;eXliuȲcoR$)qt.=]KҔxιkFN?'=м̜*љ E9ũ): 99 y) % %\% 9%% Eɩ iE %EP>HsX0д̒'1*Lx몙)?7,83?O@@pz& Rx%1JAE =Upl&F*LT-Nd=g0Ş6}u{~ WZtkx]֨a0iDx]zJMTx'[ӖaEϩuݹ/x^ &?|"g&d={~pxkAsg 䙼f_)|bxR 7ӿ 2)g8KwRI:]QF]ѳh͂qs&` mړgE^'{iBx{r * xʸqBck-~?;@Z kx8qBHW||=/v, ֔Txv@|f>%==} r/Pb9ńqGV+n3 62М?݄&8y#[H~zzNdvu4.}}TԼ̼tTcr9)9ŕSR2Ӹ)*DGLfad"XptYV49v0Xir /nc?bG)Y)DO! @6p8K&f5hy   CK`BHA wZ.ǹkoxx{s!&ö g/نJɵUɾbq4|I xr 1/spH&g9YV Յ8n;x;qr 7|5x{sC(*nf}m,DML4 ؜\ X&xSOAOf ,~0ֶOf kK@B ;ݮfw"H<3/M_腓O^Ql[(`{}iTP6l4m*s7AQuDX bfEsM!ݨL[{{N{ ~1?-+Юt|ş;y NE`,PUK%8Ȇz,(%ʤܚK!ݖ_Ǫo`LՌX(FH# la[D%$+M%3F# w4cL=b8ዟuX/8!?/2s(`և]2j0)Eq,s6)649vЪZUWʪr b21Q(a%aX" m!p"B:힤fUsktM%kI.)9GF!jW*"C/:OR$f !Q- ѵ#4Ff,<Ŧۜ'YXZHS|)L׼0p),>F)+̎_׊θKG7$5c-+:暕G[Wh M$= %:ƍd{>~POࢧ>sυCth ?]`/7^0^q0D_'3#%n$/<(h0tcM8rQ!~W{Mx9 7kI|"hFg܂ԊLb8=(w^F;NdE&985<8>5"$Oa !/x{sl^iAL>(9~Vk WNxka;VE)EnEy%V y9 y%6Zag̟|Nz-/NlV5xm 7][-NVg:GPKp~XcpC$oYu9W A]Rô,lhOt:(e$%Fнף۔N9E`0|xj 7ݱ 4 LY K+yDaq;B>6{:Fs_hPJQjGb8MZ۬qa,52ix{t3=) qxsq LX&glqٲ&*o)(SZX眓dY)DZO>'/?ya5_ciI~De@~~VB4x^j9P[| PXkɍ :9#x&PR73 0Mܬj*/_ZVWb4_lrͭ''zlIddԳ*W x[q'a$7U)N- JIM,NM Hs"]c7sXz0MlVV]n` @x7 7>^dmxE"zKQ%Uh׆{fThx]wdjx(|XxC',7sd1Fxx8 7! $K ߠ1YC,JoE'ix]x.ՅvzuxTW}޵@hiUhMBx8qBŭ[cLӤm& lWx; DxC&"x` 7! $Kp;~XcpC$oYu9100644 GNUmakefileQ%Uh׆{fT0+yDaq;B>6{zFs_hPJQjGb>(ivh< ]MI8MZ۬qa,SCq>kx]֨`J3,uB6 +듑ғ(CInfoPanel.m*$ B9w040000 Palettesߠ1YC,Jo 1c@Zc0{͊xWmS8`$HnJ(sePar"y$9߮K8z $}v-ރSKl_li4u߅Ca`@*fNhD󨵲 sjm E2p3Z1{S,M :gH3s۠Ʃ3fNίYk =5lF,uS`x,pG1sTf:ɒ ffi7z+n|"E_Eĕpk)aŶlcFp97q&hCNv#tFvHw d52SaH) BJp-Or$񗋫17p`TW,=c`)Dx&ӯC2OW_!\^ //F-'Z<˄ycBڧoPZR6(q1[>r¤VS'L@$ki KNho9gg!t6jR UH1v9l+0]|Rp$D"^v1t|G}8@p7VS|nYcí-CpULc9W-Ik.Vp+CFr4piB o~AWWtoఆ.v\pc/OzΕS;5[eJ8kb@8ٗڲt/heV6ϰ)AX}21]d)h4hC[n1,f&,.Ԕ$T G[eH4ap; k{(!w֯X|T]8zEC En.ukG+eݏ@|b?=CO5dλARY ? \.L\J:n:p[TȪH Q>㸻]K~yY%T B(|;rC \5ж^^u?_uf,a Wv \9$^pբ"qr~If5k:p?!tPNr]Թn/T֬'d'CC+]=^+4νc1!9盰iˍGfotkWZ ,NZa}X^?-JPxP 7)G>l%+dK]I#a2-QH0;t-"EWlZ:̲%$iAx]ps' lBx(|IxC',%!Ox& >Ƽi yiy97py ўpN^jy5h]kͭfTjRx! 3pi‡/]& Icx;r ʬ;X&jiX  Ux8 7/13(+ i%ՄlKG|R!G\MԨ%wEiOx]`?xʸQ |SJJƅCu3'*N,HxhtӶU9~FOM xvXa&k}Y~fBJjbNN~2W5Bt__~IfZfrbIf~sj^IjPIZbiN P_TZTZdPk Q_ ..-KWAdd][YLaQ%>y=K qef&c/ 1xc 7wɫN_k؜{95`K[E ˦ Vin:rFFWyvs 5JZoETn-#jC`&$|R!G\MԨ%wE,rJix]Q*8xZ "|))y.Ey!%z8'o K/*߼O"s! Trb=.҇Rlэ\$6cL D9kz0+日:'e&O-y##sbfS5RW7#:y#7&|C\~rw^WrM'vZ}BfqXfqfRNjBk0'ujj Ioai9V ~y A`m~m SR R(Wْ_Z_ (NIrqN'eH cx;/Z`hTiddenDuringTest볒 reTxU[LUg%b)jKjbeJ-9=2ݕ lFS`*D5>54^6g/n s|w;޹PW%UJ-=䂛vS o_'g5м>X4w#P +02Z6wChCv b`f w߭k1p~1⢟?t ?4ܑNlwG};^M{m<3a7|M?6$$au,L&:X Tgw ~4@fIĸIIZ<`܇2))Y SCXɈ<~EdkR2ꋈ%*e%X<;'LR뺸vD7ux㓺lANF5UqSӅ7x.ZebOWЈeQc21oԩbO=g ed2rU[m ՞ʨXw ևju(+@Kw&OC Ƴ$" pSf@g|;̞0/_lsY@}@KK(_$,1HLQ+ y-VeX8e\PkU(ωa@Yl#Vj("*1O2ч)c6NfuFs'?M3; oeP ւUB6?Y$бI4H9@?i<-D-%i¡jЊtJuys G0ژ 1%m6-< +:g#6i{s1W.a}\Tˉ|Nͷ Spȍ; qT 0GeS/$$ʈR[ӆa43De.v'v:bZouvR^^ӎ|z$}6 ON9lp|;ksfm'dÖC*ILμ{ahv2d%Dm*]ؘsotc_ Z]pA{R}UrEXXtѴXJdzJJXgx%\^n.J-+wc1pEKϵ _ ЍK\:F۠{zmwu@u/_;tx]&q>fFNN̲TԼX|}KKrR+922SRR\J2CRKzK̼ԢwX9X&'rNiehmk)lx[&/a2UL5\ 2x{s5F%*g:u,XUN‹ͯsRnPxqA *ET6Hx{sٟ>m] OSOw<2{ iWx]Mws71@x! {ʥLܘ̶0ݳx;qr ʬ;X&jiXY3R7L3t4$fx! ϣ95P[7)x\F?xq *ETnOkXdlq3_+Y0FxQ 7GO* z!gĕJKc=joOs=[n:K8a2_0![C &5ix]G{sQx{ 76b|LNzsrf=2 Ox;uif 8]K9&)NvU.a7U~^ZPPZaq)((h)eg&*$($%g(d*h$U*%h($l[(\2?)+5J<3orkkp%U6e|g<#_/ر(Sk^d>Eu7O.u*xcJH -dT!h UwxʸQ |SJX6w쮼?҅ERZ&*N+#xK9uGIy)Y&q$3鞸"M!^6|rۑ;};3)|W`{k6`"k1x[s,dW{=;x2֟ T>q NSLog(@"DropB92?zAʩ4GVx}ROANaM Ji *-BR@P `k(11hNauݩK !\M<3ѻc5iLL$&^%Ƌc41Qgf[4bμlfWVd&ӞGw6X4 8WZ+(ZZ>*;p"b~-;- }lrclf w`=9WʫUE ^$a;s vxjOx"e}ulR 7(c^z9MyB3yܶ *,4[@RpſK7t nhP>A@R>nP-'Q:{`I5|nZ >v4qSMkYnhX 摆} mܵJZoCYuPT38i0X26$b+lPB.,"cs^Ѐf7hR̼S_"`MRQP4D(DQ?X Qd 8$ɋ>=<,(L^ MiXӬ"eJESL.3B}*TIGZ#BY/8IBK3|,:3dWܰ;"`|,\l_)e#% U5auMqOP#!Fv>tFB)59*26]!X\JSZ,>V(f, ]z)O+oP։K==yI H$4ke drqxk 7jCu-,gd=;KbcN  ]6Fd$ζ\ {ufjhNpGu˝i&8ڟ:ZHܓEz0hix]_k(\x;# }7{.4w/M,VQ IM+/-N -qq%UoW~0˃gnIC&O.Y8c'&BpxʸQ |SJ\|aݼSO7]8<yx;xqBHqWb'$~Pb9| F2x6}+tU`t %T<<̒\%bMi<'/uWd<_)^Xk.N gY98P/8 $5)?(S $'o99R " I!%59'(5 d\_G%D@ZdP 6؄_ʓ}$3}2KSl"]jEA$X)%g%8'ɤ%K2R]A, PwBAHPl% ̔Tl+`a$\ !0 ҮYKn!c:n x Q B-oNfAE8xʸQ |SJ7M<ǽͽD)2_Ax;xqB&?_*鹩/hsJ& 5Hx7{t7x$47V,1count:?&`x & o3L/| ۓE! xʸQ |SJ^lDvU"56Qq 'x;xqBȟ<$n^VXWG~_ Ux{^}|dIi-V. @Tuibd&jڼ]'5371=u.vpx 7  h8)cK-KQoJrl#=}e = w::>W:0 tgtSj%s$A9sK*{AG# IO9 $GT҉}NBz13QYseUq`w2XIl100644 GormObjectEditor.mv͏9dɯ%WZ*E jXS%h&ELF"2Nn{@׸嫓Eziux]w\s"o`xþzZ[4/bx 2e#;L>'"]x)]tSm)Mx{oӆɓE'beSPPQ|WwQR) '>T!6ɶ,E%oMR_V!:?) *L-WH+K-*  XA$2sb:@&L2^8Ҽb$&_"DbgOxq E&i %y y9\@W| RRu/OJM.+R,h$3I(U;Ѳj26ڶ l'kXXte9Y)ƂTO#2Y^$0PQ~1SgXܟk=vm 7Z0Nh0y͎ǰmv)g)+|Px^x۴2 .'0n7U\xXklW]?2cZ^+]v뷓QJǻݝ8M%*4mQQA!!$@菶 *QAM) ;3Gٙ{=3l ̬i; ) D₼@ $$Kx;H_.2+7Kv6vWLbXY`ebDLL Y.`ayBx/,FߝK n=#Z: !rpLa7ـCGv.$"-%>i%p/ Q{ p?:x[(Ԃ sd?U!۝h4W.Cn/Dp4Ō9՝іCSpf7u!k8挨pdnJs*(>y"w0P˔d*QHX ,H慺':#V+_,w_j0&,'^R:W'|akpP=[Wx?S}o)[yHP @X ,/&8%]Ql>wLly M NjB1s3BG v*܎ MG|dkbq&pvz-93p~4@yC_0LrᭆT{K?y /7ǝSS;B,w1)b 5Skns OԚ]$%1*+'B G愸4%~IPUŘ*K ^K"y8!-$bPERvRF%G)$x#(<~&4bqҲ+iS2 "?:tKфE6>:eݻO^ hKIoo B,]bTHk-V ;NF@ÛB_A6~t&Fw(0!f@:>8 <Ϟ0N#Dq_fJWy)'u;$~ K/,FD9Ik}1Ro)ڌ*-1&(n?F_T[#3d٦5/sr$F!zH(GƛB+_=k]aUu9\)9s{,,kۋr@\|alʜwz*bcPᓃ-[.8@O Ը pIjMaFnzhjW9ErX+@QiަܚȈ v3虆.3(CixᒗMzXӌwz۲ڔjԌQ~m0ZܣQiiUOݣxie+ʴ=O^R\6 /->T-{=t&tbfjuRJ|H=RAu]Eu[ 6ObkwaW~ʪgP^тSx{+[_g`o <|P>1CEENUgMѩSh`d ӕ2U֙R-kt5:%mZtWYՍzSRSۜFUEzxbRT(3~pʩz}E-U恭{Ǫl  pj8Em40a҇S bԹpCk<1eek+(:[T;yp/E6LrύUHKN@IN@|]%Fog!b^//4ôY 1*6壸|!@ $Ĉv\=PRȝ(,0Of]W6a%4W{[~o%|k>Cdq&'5z~TOh4TîgX [bx}ʋn)7Pk ~>lgvv[3*3* JKvO!("A8sRq`kc2Z^s:b-`;.5DE)4(^;W<9WQ>sx _K@m4(#c dž;H1zIoJxʸQ |SJ͚-q>+T:NT+mSxe:Д%٠x[MLkyO  x=iWI}ۃXhTj\T5nƑgB==6RqeDdd|G2]Fq-lQtV@Ra6)WA.YLtW7X,?],#AeiDǜ+^ N2a {71Pj"adXXeOBw7`t8gb 7 ՇC`I` 'D&c$ N O@ΚwH D8p )[Lx"Ҭ+`b3k%aWIB |>^.ֿi,#)@^PzVQء^˰_g 6WYŐ>0_l էmX`^}( +D)TT?*;/sZ<2Atbk@ -*My$=ua"K7#&8TVN?6hPR!Iu,yPakBC-"K5$y >|0HL$<31^gE a>X258IHLsxY me!Gd!巌wA?locFjjk  ?lKi@yQ` &Naw-Af>rMx˸}Շ,<תf$^N5=ɪⲡ)+|Y$QŽwNЧ~@ [GL75^LKʴ10{ tjE@R0|7"٣qihGYhC(XnߧQP:ȃ 3KĔ#>I~#jkgGk\a-h%q12Z`im`$sQ,A}(ij"V _ /i]#Wd fg=ȃn :4)(,|>2j$fyi)l|j3|o.T5v(^LmI\?~VIEzԠl(ѹ{I:%Kʶ&0hEGL@l%2lNNn~wREۉ/ L/1k~!#Uťj̍ *ER g I kBAi}[-y$&ɲ\ÖČMO\y2*B@@ [*YtWZfN1h 3),6ʊ"$1h`#=xR,+4+Z \γ;.U }9؀$׾Wao'8`17#XPn`pEۓ5 cjq ~KHPBZP$ћLzځYeQ(xv  f,K;".c/ f R%b9Xr/ʪC:mmF5imԾ YxjMk@dJR 8PJ ٽS|/p X%zGL\!:@,)mg*VllH-%Vֺ&Xڑv[Vj9"o j)f V_so 8%y;{&lJ, C_N4;"+)bWE7ߖEvo$вEV2GS(RNSPa8Jl٭[=~3j ]!&nM& )N1KEYbdX BHIK Ee;I1 H ln"Aq YR rw`ցQ\,:6 F+C8DjAZ8F*O1V g ?gZ!R(:f>jpむb@Imc4f Kۀ"'e#'rⰑTG%r=Mz;%# ڂ݇E#ԸMWx oݢZnzIS:ɚbLYPd@U$|ag{%Jq 2u{}ݻ L"! aIfZcg")!xfDj{OϹfaDyёSt?bujSn_x:Xv1'ɉC]B`u1-.’լhgJY*EQx3J5IдMU(1CKUw)_ k!Etډ{ׅ+F#8<ę/5kBueMAWG<2W7Uѻ;Nv}% {{mZ3 ss(BGO*p/6*n0I۱UCDrL +'u]*0K~ۼ♟Z] Ԃ#+vc@ݸbb3~S,%G=B[x}'>vTxf v<9&٫~}PlΌl xч;wkt~zr;Hc5y缼asqaoD[nʙPN2MD C 6QR9o ˼S!BN6c,Ƌ'FDx'DL;N!WUh]c+\#.k=&]ϖq֍7Vڊxm3}ax3w.c-/pS b!.W i*!X:v8خy~px _wE%俵/ٖ39YQ}=J[xǦ {lt5Jʢ>KYD]Tś2㡐"dGN`S$B) sj[mâ-7kIIxG!'Z8v9 v8z0ta d@k+jI9BuV؛-j^,T3:U.*oM$)V9u+!!etHŠ{okyh=fQ#Z_{Vnƌ[Y{m&sCV;Ug;m?\9o֝hvϺƶcn(PZ.ܘsI:o50} FQO.x]>.%+^zbfbc9=[b7 n >=(Y"\1N*Lct{T۫A㕂fu֯y+qHyߕkCA΁@͏"V')l?DF sQG<]iTX].o%gd](&M0&aL #kXZ*D\ q99w-z;8į#>rё#+G܀M 6;9;qO4L7jq2YZl|^N5P Nk.ڨ}s1ETOƹσ9f,vYbV9Gm~vQM7DaFNӗ *S8l Iu`RtJfN޸19/F{UF5xzt-Ͼ˦ۯ;cWs&i"]31 `AsaY)UpA^T u֝om]Q9,%ZG wʜ݋ e&JzR(wp^F:]80kv>ְ͠&YVKc IxDڏ#ΑMצ)}0N =:HR TcXNܲM΁`8+3(bRfCM8>,dc¶=,Ԑơt5c:}>Z6K]-mz%^!LXdCcL@!L)Rg9 Su1CPf67&֛qN8&Ux2v[%x՛>˚oIexNdq̍=z$(_ 2ZPF,F'&ѡ{l#b*NAo&*^?JO嘲a@,)M8*A16#" a:nRlvV|R'xId$scc'4w]x y~?K eվ)hqx;4i4# 7TBx{s$³*y*h߮r PI-.Kg2aᣢ/`o0{ eץ x31ԼbyKHx6C̼bk/LN V$_-xeP1K@ "B|FAp1(TR .3H.V,p!咺{ki^{vo$onmq2lSN{LSR|9<_庞zsvՏӼ8ɭeY![ @O OfF$AP H zb_kq٨HnKsj8\!tU3EƤ?úpr0\մ-SuvIgE=,ˬ(0RH?4O +h7Vp1_d*5,av]?{kxQ k 7Ja%=XY(Ě^==)7lCf:޳7OEZ4f@6Eq#l}x(CxC>,#g7xe.e~ GO?<Mk.}- P_W i ũ9i#&3YIOޡ7Sw*fm~/o5' VPrqu vEX4<M* x31Լbi>OO:pQA&`y) ;Hpsj.Ds~^IQ~N1C]'Ý4DYf|T<(Qc RZT̰s6Q3^7ɹeh``fb&6߆Bfߺ7;:>Q G|x340031Qp MNMIexؗ{c>~V9wͧunB$椖d1XuVxBCiiYOs3rZ6kn_\01al2uix[shnbf^.oj^iq|kH(  x340031Qp MNMIeO`|S/\,<3/%ܥ(1]$3-Jv_Îo XSEiq@bNjII*DɃN/>1}3廉y<3@&f2(Jx)`Ϣ>?(x;ĵA5$u:Kd9VX ex340031Qp+))HI-)I+LKcJoxo2,Gt~٩i9 Kls"A;r3rhh(n5g&nPy/H?xŹAeEfaVg/e'DzNn` x340031Qp+IK-*HI-)I+LKccr4TtP["~٩i9 K.{3wlG%3@Meve8T_N]wakj]0Pfxڠ:ٌ0u6x{ysH޲ mEرr,DtX;p|E9l'Y~QNixXR340031Qp MNMIenmε^̼+q^UۈU|}q^I,fe='[1xkuWt(&rdV\gz[[Mr7fuo+UNK #SC&+?dy-\ה̒"\sek²iƋoB@bNjIIj1kMMi'$D%}^!QZ\ΰeGE2/^~`62x8 7lpEGNv:KG䗩]hX:s"o1x]wJ}DHFɯO2mުLj ~xʸQ |SJ~7W̟~c۩wΚ83F~x++$ES=x)7Ŗ _) K x{WxCc%l7_5 xR 7 k`7 X@ $KIpK!^XP+̡6UۻX;Iv"%x]FM <5E+1OAThBmOFɯnf 6 +x[q ֬,fxoGxʸqȯOb*f UMRzRgDBw 6x[̸qBLfMxfKJz xdؠ'da`!]MĜdɺWpr*_S~+s2L;Y[ؘ@GDLfwJLK/T`ad325؜+Y吚LH" xQ 70[Ju}0Kdk+$u2B'ՓD?R7\jyb0"S&Si3x]wEe3n,n/x"I2gxʸQ |SJo Mazr,qg%r[LTw,x++$hp|GZjR㕼 zPxɝ1AarɯRRY/ x8 n%u}::Μcc8WHH(-q:_ Ht:'_$7x&VDFVo:ѫ瑐4xZ]o}._؁d}Y(dTlEYϐcE {%K"K̓!͐u.n SaV39}9MI<˗>(]˭VvbuE(|ʰ*,2 kxݺ(QtM3dk%z\&ןdV<T*LV68A;Sf/=^Gkh;.^M/7ӷ˻%xv&#HOΩz ;JyMgA蒍ۢQ u./AI^*2YSi<*4N{hSUP <⍭lJgDf;G>v AMd/2SΑdHa6E{Mh?ezte]G+6Td+MG9Ճ"uH)ap!]X)k|HNDhWifה԰ GNu+E?D79@?y?j8XvBm"tyU՟YNW۝ۻםS1WMBM]A*-_\|1# 0pYsW1h<{l մ,eޕu?eUFcZK2(҈5KY$**&36(-HgTq8)9XI'jU{,vf6=&R17s;=<;lBrjLqSt-e4?c&Ɗu>2kmnkVEwi7.:*#7 ` 3Jix\mYOVثP\W; Y]I4:9. ro4J3` ?sItycLSDiZɄuKo?.gࡼ!XxzBE}UOjR@|AW;hDLڡ|4֪#ȁD.jMI3j vFeQ\ ҁ4ߊ}hԝ~<ϑ2M9q/+Li y0+y|$OOϽ`"  }e+K8=.-#X5B9̨@MۑSTeyPN Zd}ڟՅpF JfE_)lw~=ۃ/@<5aDZV ]lIGjU8]f 0n5`Xhnwي 4uB)H%~Х5_eH-A%7ȡ> &ք7An\yB}nmx5n8)Tp^4PN%y=_)"%0Un^m#01|!BJlu0; OGePVP-nHiCib#P~OkoE;Ǩ|d$(̺` Vt1-T#RغqRK0%v ׃%,S?duLl xq"FY1O0mƎ*j6.YoeBfA_FҩOs})#> bsL.tč1SE3<2C/hbz[w 곧h,J"U_~ř?5m'$Su1ieQHQ7QMk(0 5bRJ۽ 5=%:bmy_c U'>J IUb%" 0hAˌܦKoo#g+"؃`#qhr|KOo(F =RkZ`M`/WQQ0=bε@) {Qh&)h/.x(y`Un6 >ܜ텗>d/vW-! vf8jv;H7LA]`BЏPF'wƯ>x>;7nZ}a) \xR 7Zum6s&K Dl& " lÓ:r IpWݖ?:AX{O"R>_'k=A`)~+|p_H ?100644 GormPrivate.h;W!yG䱸ճ6Ne$xTKkSA&TZT+IJk[I*W Qnsf4)NEJ.F]p%*\/(|n\;y&i^Jg3|3ϓW7﵈(X EB0-/[d<{qŝcb{ˡmΏuux|:>w&& @`38n5pi `4'W;:}"[jϕxb0\Nīlb& :w{wy6 Rc=2?>ïNwϒ"Q$E"rD;Pťrg!Sh?Vk}Q;vu??zE?{}ryft<5іr[JI=N1̙a-jZyrј\tJ[8eĂZ m-K HYl_j0QIi#OJјTuNz5DX ꜍/Pr&ȣt(RQ֟N*eoȥ4eXΰm<I=jYƢ*M1bj V> L cu_nf)6 &a2"+*1 -Xhaܼ˦%ed+^=1#˞WjOt6?`ux<T~x/?Oqg{WgZ8FxM1K0N.:~WT:HᡇrU kr#ICࢫpa*6C_{o3QXc @_Q ߩQu_ u-"JP6z? 5 r*3xDHQ c)&ȕ"@jn?5hCR9pq%/8N6цL 8.$n:^`-Vjc`X63{5߾X\LdjR$Ҧ#Bb nqK)gIk.x.Ld=Y&׳ϟrsjKn~e5=7s{o&|4oRQjb5'm+Q\"19LـwbLOʲ|Ex*f*1i=E.ғFIb(_Z_ZbP6a8k"Bm'+ Pxx{t!qC<*_F`ҼTN$0` SM̃0c/8(3/SkXgnbzjPjq~iQr{~QOf^6XB /(1,hYYᜟWWR料4 $js-W-'PufbNfqb滬ŌwqMnWͷ$#upsag˟dKM.ϛa(C ;EYlpx85alZ';Ax;ysn~?;8<6j}h 9x7&VDFVo:ѫ瑐G&G.2AMx]Mr7䤯|<;?yU@8yN0nDFxRPN,Ku,LRUHxV58;be$j>xtqCgBjfIFjBrbq{~QByfNBAjQnfBbIIjnAI1WIB~A*\yIeAB~BJ~rinj^^F| J/x(VxdO+XZN0WJL?.ק]::xO)47}g L.:)pn@G$~l>_j`}K{ӓE}L|8.mX@F]6'Jauyn"Dz@ix]פ9RIKxKVBy" 5ّxjqرoƩ{%KȽ1G M`U!Gf'e.x4hT.O\̼t̼ "Ԃb4`AQ~rjJiQjBb^BnbrQ~C*1l)l|.ɩIE:  'e/l,Z\Z^TXT9<*v{s+湼LNfhrOIU/K-*L-Q-IM+I,ϛH`d7!ɹ".EM&) *]Z_T;_r2̔wl֒1`̦X~b1xsHV-IK2ӊSKB\#Bt|"y9) eEřyz \y) `\\a ==C %U I99 `T N)H䂚Q3+dexmTk$E&+PA\'LfQv&0`btKMTW5Ui@ԃ}v/؃ ^Uyл 8⎖}ʣ3՘\).FGý=qRS&*g1LO5fS, = &sXÞ2Dl ZW(;I2e &% ET3i`{vJEE/䰍)cd q+sJ8C6$IwfP:_2PH U0f6(aD1Jk0U.;I\bϷN@i ͖A BH7dI"+3|Zz)IbGY 3l\e2)gب5KWzh:kfEv2W);~i \PPۚJ.ҽ].K/v_'WAA֐qL@7)&,J[Elm+HLEXS*2%5Ce--]$>:G0f—6 2#—kbP֘V!=>@*B`&^#K&qM ֢ QU ަË֊*!(q :m4"O^v:eV"Qq'ȩC-T}"]3"e41k+VAh[Fm+iNiRv信4Ěԗ3yo'ENN-Nepj)KWEk ^ %F )`/18Jkcl~/h vVxkiِfb``9U ƞǞ Kx (BijkTQ;xhW=x;ysȳ7k+{r OpF&@\WX0cҋZr98"/ڿ>3D/471;5-3'eV6vk$\ U5bjI*\ϯs.>n)>]>Xd+"E]/w%{d$L>(& =K>໽g:O~xCDnlxwɅ{&_cZ!2?y: ?*}gzcI̮'_Y&4,Zug^qAjrI~Йv[\y*X>9w",uV:c? \6׫&:2x Ox{b{Ϭ2A=$$3/A*tÌ~O <^w7<%]4x# :fۄh=;"Lxi]x]Bvs >k 6x[)=2߶øWɺ_ eH? -͚>zĿHieF#ot`2֍z11|G?5el`D(4؀W ſDqh&z ]:K09&jZlOL9?V?~1_DKAXi*۬ Բ-+&u( ^16Koqt_C\Vxdζ{=+GXԕ6#VKծ溟r{v *9. jaQ+*))aj骥((~åRv1M<ģHhlN}FT9L~}LQ$m6 HT]ãۧ.s8:҉ mnB;}h(#3nnx[´ieɟE&w eki*$$%rUs)(!'ϗ rqu vՀjZsrM~lr[2FfBf^fx7q\ ܛ#'˻mWx[&\rz̬86<"xqc ^|}53tRS23RRS2K4K R jR3K2tB",)Xi1滞k24AƤ(d{VMUUPP@ N^# N-Tf.WZJbH5DGQq:U'oV.NISH/N .M8~/ɒ"u)O)׎0f`JpA< x(q yKu { s>qHXQ挺!r_Cvt%7X/Zߙ 5jJRóff6"Rjۧ G p*mk&UNwLr엥$oEf]>y-sS!DCbɅQ_"~3HnS~N =]H򑭖Zn{> L,d5";? d\>2raU աYn76uoeKl[K!qZJZ0g!/\uODx/|Z^ʣy`Zqc& GSW˟ ZyH"׌umb t<ҧȋKD7#^ǮH-?p^&*J;ìN2m*r OG6_";>jz'\gJ^ Y( 'xeUMoEUN@Gr RCa$²HLbؽ3v3^/BHr HA"'r zN -NwUz͓v|}3kJU\WMsGCBLFFnmi\VFc'eq h\ZhSu&XffM" emӆt^B\t]EY(KgGGG4G㔴K0eMUC/Ӭ!ɪTIVx mrFIS)))iTIHLa#%p>67qInl{ M4%P!T>(\@l3GU+DZW4m8RޡPw:D PSW ZFvj҄Y#=4Xs$&NQr2e2sbbj*{~g;f7m(5ZJB%ė&ulMF2ʖHfYD~[s0*#UΕh@ҢuDeleqK$Y8j(0e&g5\ZP6H.CdKŘUVy7$ Ԃ J Dw*GT^ǀ7 MhBBJ'Es ~^k"jPTj9 _mSD+uh,cS\Rlya ȸtFȑU'iFBW(ʀ熢I *'XP':< K,*V%4݆(u\I d=58S[GgA ( qC*f9sѯ2mt *pY R@FM#OjPh!ITPܪȖə}lDD{hrf cq6ә7 .9UÁJT**~=sPK徳{K~`~Ě&# n?>ߟ?'6KMdc_x{'V»O`1ZoRXj!mnaf ˢW ^4X~tu!dCKGKv~hiY2=w^-_Cf^IjQZbr{~Q.ԠFP37[02B-d/σZ4ylLpxx7)h$&d+*ehrqrV\\aHIqG-bXdAk% GO?I@ɌUL&Lֶ\`=YJ+39?47J0zGr I=򓏙LЕ<^}+nkYʅqDk'ov>mMd`鑢&lnbۜ Gncx[q#go.wxʸqB7f-({|(ZU黎rMx*GomEzRN @ $"x; {3LƦ׳NaKrHK/ 0xn 7ŃrEУ/nHKHhmCLra}jؘ F>y{C0%'﫼L8^,2cddT";2ipx]Sf#J>wxC( ͛u?!Dox_ibXUˋS+9sS"YErRs !%Ze9\'O>ZҶ9̚|]`8֭ ֎"VÔ(,d2Q\l̎)))L>/:C@lr1LV~O(se 2t LҒ<Ԓ̒T+ ɋ&JO.%5G5~Y=CZhLx[zDa%?cf+~NFF..&@xV H:pQh®3̞QB(W5lkw*|A|~-Uࡢ wkz<&lx(!cs#X-x0q\ :732l6r3Xl>r212ؼ(#!\T Mx\ I[cU AF81:D:j\6lE ]>Kh竗&t{?sAKیu_| &ya~YV~3L7*f^()JP;bg26_Efxi+y5=J} Pxklذm-/,N>emSsRKSsr3K2K2ҭ4!L-͒̒T.<<\f^fr~Wʙi  ~~%ny)\ @P &?1jAԒҢ<?kxl.Y搚)8kwx{|yC'䥌n/zx[qv U&W1z Px0q RK6_e-;SORV!:(1= I(3/-( jFA2~>J% 9y iE J: y֓mޭ*ťY읙朓X\l+$bc5XKnbvwj#P[QJj[Q~^BqjNZde &KMM)V(J,zJIZA_K3UAKlif_-0]x5l C6_a-IHq x# 9<ũ9i )9SstY +xq {jU %YCT&dz\E} 65)rQ<u'40000 Testing9 ">k*h\3;xi+yZm>Yy Kx-lW  ragPb stringF!V1hn/DYZsnDyfj/ =Vq۾ x_یGf=guNE{Zkim䎵k+0vş4QeΥU=kgz"꿩9w/, 7%[ϡ?@xۋ?{FpEwLZucx9W˟תus?ByՕoj9'vW׾g.?oJ;HSATAsFw1u6\RU( mfmVGB[Yzf72HȭG4SO|DS/oajv(ٲxYK6Uێa.NVY+,W HJ(Y$(??Hp?H08vI<TGyD2"]oտ~crZS >^žSU~=mG|x}'jyGcmNn M+?tc͆);y?bS5 LgoVYxMinW\Ο-_gc?<ݺsh!wwbs[#cuZ4rS~p˹#l6?^.kX<w#D}ODz'Һ\HbQU7MG;^~huBc~gSJrKg(>:pi¥ L&`r,Ss_ =+ G0lb}okC8X3p>k/c??̅0ygXȗCTlQ4j<[Xm/}SQOD?Y弚?~SsXG8}VS]}T^c%bK?LΦ-߬s.oSF^SK?umҟw)uoK=R~#i_J=|,AKRGʿM2I}c߷~k;3H xR F4-Q)u hu͓*ٯ- vo*&o d8au ɓ$shxϸqgpIQf^:Vd- z.4bҼX[[MB5TP *sI-* HKQpP N-QKMUQpP/\ZTWSP\䄘T  񁐚\ {D%Q``H9%9 IY@kI &Oܩq舜9c&(*N5 ^n2x[t?ㆦ͏$6'xLE%Mk.0(J-)-S[f̩l W xGϫ'/u~sKǛi^WUx[qdcuW/HF9 UxF ,E(ULHJԊI; 7$2wo]toZ{'KC1SQ/lͱ~+Yޜg-1@ݻ>y"*+[8h[,{rqXzYx[46Vl5I 6x{|yB%IfNy%EZ%pk.TҜ̂"25`x}TMlE&lӐ6%i7q뵓6!"nqK$C84޵[PYc% DPObHT!@Qoȁ ז:?Mf{-wW"WɅEo1k.' jؚT5R44=1ΤSlJ^JBf_;Z0xh^}?;-`09OIyx|SJ3DOb(syOçbl>;S-C# .L _hn2fBqbBP%48] l >%8Q>F؊غ}iP:R]ҵju]P)(qwem<|Ll.(d&<} BNp/v\Ek*8h saMPȎ[{ aɟ^`F$j mt.)"{Wr:"3NH+G o8lh:H6LJ8?遷#}%]+ra|^089iV!|k`kex4P ׉S 3偕Cw2]s :1ԠBRpbk 7GXwa͠!q| ATWzN܋Eqt7ƌ;&pDD7=E7AݜpSOSNٕPh솎(ۤBtněBGI>/\&2f֮ZuA/pc+\\/G ـ M4̛;p?ae^|ε.%?>`x;s-v^+.NNɅқLD IY{>*9x\˸o5ㆥ̜Z\ Z!Y'Kl,bdũP\_Wm"QYQ CDV!/3GLABM-)b$i`h` UrNMĈV(N-q+JMhĢP5CE::,ב|U_ [uTXAu*5+./?) ȶROjrHKwU d''(p6ʲ$ i.ӂs'ORdFffbUͥPOAMMY(xZ +99A5T18OEb6H5TkpHFriQQj^s~^ثP$' L(19cL rqu v/-I-)ִ K K2J&(Oڼ$d ܼԢXN$/Y+4) !xky8!>2.J8R˃RK&78ONwaQK\&vUu2chQ*LB5'XUD\WmrnZ''LNP VZ9@\w}EE`t %̼l\U%TMͳ329X-4Lxm 7U Ir t+Knl[]\).vݱW,X{s+aPS&L3!:ͧY2_ix]wWj?X^$lAx&&ms$_F!GxX]l\GMzĮkx:O6qLwxZI։Pkiwo|{]/& WP -Go'$PHHH (B $A83s)s939sf~=>Zހ,%C%4 =p;sW&}VD%xw1NIih>z/H 5J%flP[ _z!̦ &^vHr>أ2Y|-эm&TH@n˩(!_X^_"JFVK3T" e^Kn\5qNYBigTKR1$2Q iO$%fJw_„SJߠZW4O4숉@ dP%j(27ү<=t!Q#9Q>H2n8 .)O VVՙF^6U5V!ځI<ȣtHjj_JQ%\`~q?&;[*6԰q˽k ƌJ4'I8]9=V@Ψ/f7˦BfJԨAMEf*|T5*ΪэRt ʋ6Utcx[v&}#F\ֶ͞@'d=¯`D?t ~9H$-S~rh ɨJƶ%Y S'qrÆ(wmXWV㎎9PF2TGESpzzc'7pnksk+[1X]y™Jï; PcqqbKR:U\f| oF8˰N8|7yb G ||ifs\`.LAl~2שEH0_ڪ";Z 'pЏ8K ?Rh`LD{r?Q*ٴ; idNhc`rQԨJ\a ! 2JƷ܊f%lexfeH8%Xl>ߖ!ȑ@& sLӴDfI``>79caeii]'r~>&SV p1IDfZ4,v/MC@/&N_G4A9Z]MW6nmgr/w3L.h!9?X|M\ך.ly&l7?(s8#1+Sx/kR/- L¶*aq,6LEؐl/n"B5'usy&T'n&T*/7m#f;9]^%b(|E5NҜzբ&С#ʛs|P\(m| ,mrk%/"uNv3 x0>8KvKmΗCT]bxr|6LM@6^lx^55ǻR`~`ߓ)>I!R()J#wƖ5Jprq楳N;`K]_ղWdxOWJ ˞A5!ګtJ1 z ޶ic5uDEB ;!;H+Ăcx8V[ 28;Pg3;FWx 1ybWp]S!<[ 6 R%>_ caDx;y0sVVYd6b}vm n x;eBdדO31 )x_  t2 q=tQp{ ;9< Tqhm(&n l(4QWl@+<܎c:NgE69S)#Eno s⨝MN1擹'"JdxA|rM97oR\´ 3 rx[3yBd9y)\\@23 k>x;Ƹl"a,ʓx7kp}|Mms8Cj^ T Vn\x[t/㆗,mV5x{gC=},ZeYy'MTG Cx340031QK.+L/Je\ctM|U=KS!DsFb^zO~:?$Dݲ-'LQNbqg^Z~QnbIf~^ANfq ÅSұ]Y2L @%?475a¥r+pD^ҵ}gdwԴ̜T-ΊunW\5vW.q2z //%x{H$d ^=y#uƞ_B}²iƋo@́"C FOэá&:2~,Z$忭S޴.TZ\ՒwoJv"ۻeigx]@rn<_x&I`C'HÛ 8x[xqQ̛ot2O2d A-FɿD& l^*4߂sgD=E&oW1yZbu j_$1 x{iM-CDapMJ,DeXG gǗ?`x:`'ëxN/ـ] .Nؘ#[ !1E(vV{YG\s!@?>$&2>dKe֠l,-aYqi.9<g/.{7&ZD%h3.ZoD = #h|)b? zpbUӄ|6AGÔHF%O :O= Ot.$pK r$)})B\Gy87H!TA'iHDZIw~ HshL:m8Xg<(higTp>1"_ZJS2|  4 Oe&=8frD-y(ox)o!J,"jptt; P|AOCHEr:0iO&mGhQ"WS:3&U@U9+?S_Օ qcIWlU6B:$7{bPAID3z&<GA*'ǩ|F"zn.G6|Ap&bPgH ĝ Nݫ4l@ZOx:wN~ΌÌpȓ61V߾gMA' ,5qmAEN,2 OPT%Wz 9S~7AvۭVXU F8M8Y N/L^|E!uju?sU6=`&1?| @,LaU[v^[0l/2r{$M1t> edY x$ JT}TtvUy9mx<>=w 6_]lIak`hǞZs(a6gGѩ&ZC-ٓNtQ2Ti64HQ#tæ@$͒pjR<)1fs\a)wz`x\PPq5Gjp GYT&I VsEJ%yM /_C,"[P[;c(3~8 s( E\,VNM2g2&/XHŗDE:PӦ1 }^ 2%ٚSObR6:2{& ,e۲#JBݍy`+]ULuId[)`eT,3*)vYS X VM( 9ToA!^.$>BZ4Rf+6/ [OAXJxf*O*TL:L$W֭=Kج7HR'0 zZ֦:LВbj'1PL :L(@,9ڄPK"ha9 j0-5)A se*J7!̦!iexQpnE (xvhHL2FMF5 AV{hzU~wpe@1ubCV"Ob(UW,˲c27ZzFU1C6UZ'3(xPX JP,֔EҩjvJ<5 /σ6((SU+l(JF3rJ{ءMX">R9^JV PRژޅVzN[GPC;ڴIKJ=N/.nlj@yk%sa: H~ɛ6 JʧsggUre6KIJ-SN2&'GLZ5i8ɸ]Cf^W3e ^ N'm ;]LIHLj[DE}-u?L~AÄ Q$<85/!A ҳ<\ I tV*8 9,* lZ= :`P r2w}`qXiSGZp m`m<,N$FS9ybcH޾sV&v;g{ լvl a0ȢxК3٢vV@rJs/Ƅj3b) wX{&"|V6\#mQ#{dݎ,KTTOTgbά`<tfHIrq UIQ!)Q6׾N6'C#f^5뙿K^t)y:\۴¥JD gS fэPԤJ(DKXt-;(^dm669d6ֲP_Ý/=t|VsГ'QؚIҧax^{`wz ]&}t4GާU6l058l"i#JZʎe ɓze_3V:`dP\b'=ڢf V:H6(N+Q$te?(nr_sU0E>LV(k.@um@ n|7w*d{AuKXLn i&?P"<ܠ`OP ϐ'{P>.lGuuWnSF\ۦKb qMucWlH;"#yGBe n{V8HMH|0pjCa~1Ub#T]=;_U$WCa`mDUێ.f+;~5Uw^'_L/ĪIU=Yl.gϛ>jgpݜ[U8c2׭–/=|~\uFc|<睤l_&[_n}eÁ5ͶNJ2[A ,a8\*;Px?/ڣAma%ak!=2?uH@}qxUoE*.q#h!jM$UJ"hl.%20C3츦TG*q{ɑK%r@8 qe[jEA\y͗7 耨H5.A;B~W $y3|O|4K2=$+L9p7R0;W%pZiHZQy}~k&;>؅ekG6Jr^S'ղ},IOb5$O?#4z.a'(8OR;f w ~'X\9iɌ ֨ެVռOXѦY}z_3L~҅tYOl]r^>ۗB]u&˙ÐARD>=tg*(s99O\ ~ple6R!jlʝ3;  +UqY/?3gr;M'S~TM(e+NV_tnn^UpNiyrܧ>X?^YNZI+K`)Z|qƖ [(>|0VQ 1DRcDn+iBd*#1CӹzD1~$$8`aLa]x҇uH3oGf/8h YsQ٨2ū`Y X2r˶cj5;S 1mQŧND$ Wơd?NOk"̖Z*x/`Wߞhn¾IJ4vrxUoEmHm$.mn:&q*UDq T(pEVٝ؛gqMU0Wn $$ JW ġ' R{w{{}r|I,K qoXT~Y#%~-zﵑ}3{^zZ-3fiybY̨myaba6[`V~*B]Ym &%ܰW&/75.~ugp(:_x8۔5Wl+ 輋)/JxawoUDAKlY\L4W<\2pxVk&\syĸVipZ)tlw_s[ډ ≠JZTmFظ]1q, V#DP֍ D!Pa◱7z|a͠qs mRS9 ]5[W.mDu]Y:k,a R-f2 99c&"́.H_Y<+}J8M/'Au>ϥWї3e+' H$Il7)>^&&fL91l9xGeoF5!pĩgp&-AR@XdCX3,Kڛ'h6 z=ԭDŨDRN$5*+VP&(*WFZnd iPTsa;rl&b MZV@7"XLאZ/WBؿX<18!:~ۇ-Hjus~6ĀEWH0QHuXyCH5jV$˴Nqd_gEm7P0l:?ML6I.,:v%* 0MFB٠I`2 RУ?*(M4,R p!VS=\sVwjkq[1/[9j+"Yt^̥:I?l<)FÇ]_yڶ Gꮡz`jL<;Nx4uU~I Z.̬m}p{bxQ7J(xYz7k/2IŗzݱKg?wxuWNR{@ suSVoZ|]|ݨ%iax]7]t\REhx}ROANbw#B DBRb`F ivw(ۙuvJi8xWգ&z1&{1x01&ƿƛ'g?e{?NM; `vWFޏxt^ ̔WSiJI*Br,J-3ș$TcF&!xRѪƷ*N Lewhiy6[lX|[_WLrx#',ĴeF蛶qlQthki²́׾;o#&E3ֵBudUGeHoz:n͏j[!Ìˢql3cb U9oS1! y"~>U6DBC~^|!ؘ̣-*=_ <VUn޼8) TC\m#tlKۿN B"EE?U^Ai84"-T{o%ΦzS)@)8l8 >t:wuktw=;ֈ*rGE dap_y 'xn[nB&ʾXīA)cp)2Z#a-*YGM$66lvxUpjK2|PCn0WMbТ^wgmxUKOW/1ƀ1la;l胺U%HM0tf\J+nYVUIVEht"eUFUw zaלӦOV \Z -p#N+Bq[JS"5AT1;Zڕr/Zۍ}„Pv##.eiKhi%0z'4#q'f x,\^裇,;DKSݻ)0j14>5f@hi} 5##PQfP%Tpkl٨R9QU -[}-Y-{ _`,Qx_$\` `(n%t> pc<>K3[mH,jU3RFdk!GJyEC7);-bR {q28lWol7A:yE@Lb[%:˨7y^$u}CtQ/ٞnjwQg)S[j|ҿW1_P IJSzhv:)-n-dٗjB t.DѺ^]mԵR_uJ2U"!`u-:D H7ア!̈́>I73?+qarYry,eYBɷ7l/wqhx_z#sx[] ;x%8RK8l2SKR'U8XPPZ✟T_ZjR ԭP_n B`ryeE%A`"0B^fNj%I.e9yٛ+ ;o2W@3RA“C\8k SsS88!jKPx8EHDO^ܿ ޅ(zϰZAkT/ }Hhhԕ$"/3/}sc&M`sr4Լ"j$i @k@Vk=yg#,Fxtq Ҽ<>yEɩxc'/Q蘒Y\X霟\ZRgPZbkũlBk[77(וLS@䚼 D558Ēpi eʓ;r)A_cAnGB$Cd B\]\yvH4 M83Uvf-x~_4mm^)&]|s5n~ڐ pI㑼~-Dɸa/w @vE1UB@TQEIݟٷsAx340031Q-IM+I,c,˫.KRS3 >xznFfBr~^^jrIp~iQrD1Bf3D63/zr|G& l:=alJx9|9f;=*)ndx{(yTb¼l'2NX2d[gpr\ N>9)Ny.EKollx8 shouldBeginDrag' \!"s"-0TRPv jx[6*mo7',[100644 Gorm.m$#sVxW}@?Jɗ/m`ŎEg2wC "_w|*+/Ub>԰PbxVQEnHE%"|@U LBlFx;dl!OlZ# PpxkA MivmlHD&IƨШT{P(9$ Clj(^=ē/ zzRLЍMJfg3߇'W}5^c09M_o3Bi0Ju؄l%syOFց6+5^djO 1Y]o©2PbA: e4 ՠP ԨnE&،{6 v@w'YI+Ͻi9B[_Ei_0Tái~1_}y&-B Wb~Z(ʼnh_ PVvA:[VhV եo`ng zM?įx4vJ?8 F𓖚7ܨĭUAf~ǣ }NHPq(0q7dJ8~8+_1fWVz̊y+XV LXV+G9J3EбB[UwOynyZ $ \.3hu?ϿKqϑ?+ 6x;qktqjNZy9 y)V vQjr_pTjQ~kͥQPYXW $p& x{t/,9ŜEIY%)%E/xlNԒ|̃d\&WY 8x;$$!>9?//5%$3/$3?JA#3E3_<3/% 34jBA@f5FY>PB1ܬҢTbမٛu4:#!r3~xOB&aw ,RA100644 GormObjectEditor.mn7I:ЗJ@ ; fx-pC k8&pN6T<ǚqr<&TOWU*(/ɷ((&(*$'e9֛Oc|GzkS4LhZM7u7a'[xkgogP,pnjDŝ]S~adOxAJ1Eq'=߈Q<ƕ'(;$t x['D&{..>~hcրIMY9T 1nx;¾eBd=O1-Gx8747U`H>kfKKKy74U]Wݟix]wNxs9N{x[&'eq(d*%g+%*d+*g($T"T('e&q)((hsM e/8 $5)?(S`@eY`ǢJNʂb[$0;֚k@R 6Oeeld3 .)S+/17oZhgOh;9Zg`?_2 xkgog`.2DnCCe$4Nm>M}Y"o/K740031Qp/`L垒qts/n<耬"tGSL8ZzREN70nLHXuDsSEݧ䥮hczt9`6߲3*WJCSQ3:. Odr٬Wg\kW.LKol.x]x&tR`C;,'GKLc\7}dEOJ kVxk[oA{03h_xkAu'k$f.A͙Y}2=sSb (4Fa\,KjiiljԒҢ-s^9P>5&0{Q|-8 FӘz6z4#HBMd7:M]-G/`N%uK%GtXē]jH_昼tϠdAnQ_a 2Nljly6$FH$ھbUW\?j-fЉ Q.,*%`$Z1:2U`5 Q`8@!" CINXIͩ9gTn.ÍMM!ٮlDcBR-8A6f0 bZRI%> ODCIhOd@,@C7ݳdy +.|Gpv >^Om;Sڜsa2͑1_#!]JaX?mM#U?IōjH2ksծx?|X,QTxbJM31m4IZOm_6= Tem5k[100644 GormPrivate.h o!VKQ6&x?={1SS7kKo^-, wox{3g7k3[391xQW1Xx&òxHRUñ|`('_JsGՓQ*6 D$L,le#l|x;)/AmswFbJx{s{m*LS&_`R߬l ZSx;>eBdדO3NìHZ8x:Q ۵,{ӫeN PS+%,3%hf5F>xRAoAM1 D`MKdԬ6 hRaiSCYwd2KŪH8Ƀ??Lēwn9l7{_!gzMBa%Ł3)GBFƿ$þF흑,<JkvX'/-C4f%e+z7eyr\UWvW6.`}l{/#{K& oML غf,cg둷uOk!IJvqNW-+Ռ( ,_cwqgOa! ꚺ;ACՉY! 銡 }-Lt}' rEb.KYDW|&lx.1o`$&uVJM=Pg򲔗7zLmljvfpY) $84P!ٔ["+e\?A;1Jm[㹚0"͹|gfŤ57|^GNďGڧrt@>ixsoj^)WkHkH, 1'$ Ďwrwq B$`} r  rvE UW6V. ļ(x;,CA_K75T/KAA9(3=DAYSr7D{aGĢ̒ ]Ĝ"CRQbf^qI~Q^r^i@ĒT+A_0+g%甦*ظ$d#zv\%ޙ% {GR~; J\\y%Eiɩ`O'椖arUO~!)8pqe] x340031QK.+L/Je\ctM|U=KS!D_hnbvjZfN*Αs&ļ2{& N7HAV2(jșfP-ݮV+*"HI-)I+LKccr4TtP["h>'Wx[us ԊGאxOg?[X@bNjII* ˅H4:8c슢B$3m,N.xW[s6~6qJ_0ÒfNͅi &d2y5FH6l@HK399b ׌bQ уd㉆R˅#8'FzA$S1L _ZY3Bd#%I@I CIWZighZ7L )3"RYJiUsBcIFnd Uux3 IdÙF8 ;BTl`pp}􄂦rnw3ʩ$!fÐp|[5 -:P1R;/H+ )m, "碹bVO q >4ALtrffa@0\ݫ4:7pM1J4b(dIo.OsTi4 zAۇAuuCz'Ux&#&c@5aZy~Uh2kBSS6GH3 $|lD4u`#BW`$F3>%Q sLgLc^6`wW^Z(~agRtX|Έ4wwڥ3|(斊Ι9fbp8hD| '#j?᷎Cǟ ǔFNkkHJs(E@1B,e'ܪY>E/"<ƙކYq0㊍9 h|BL4XolBaH8fO+d5.gbt{idT(u[e/3.Vk,p!CJ{̊hC (b@Wrddbޙ.@QmPbld.O.NIIp IGz&9)E|y1]e5-djd y#CJm;.KճY5yJ5)ӄ}9ԩu )o^bm;);`{@ż^{JP}Ϝ/ qNax>;:e&f.qay{_վY`LR2<΋_I,)sn<=vd:-+n'W>^ONw[su)'\x]_K!$d# fcrZR吚C/ x340031QK.+L/Je\ctM|U=KS!D_hnbvjZfN*C37wU֔鵭i* L-e5psVR>?H*sRKJRJ2ŵޛL(n1]<0R;{xs}Xfj9WkHkH, 1'$ Ďwrwq B$`} r  rvE UW6.<,7x]͎AChV2@! n LL4lx xpܺ+B+;[zuXixR`+0)hQY5SXKrnWK8~orss8veLq0 5^~%ϣM{~u=<"6 k1,BSw4Bm;G|&w'O¤N"9+œ }@4 }+Ηi 7|>i]m`r /`2كF `[n8@7L]>Z.ُW$ys ;Eh8k`0E*L|P@vT02S;~D8,4EKTROJ8ge0@-T6$*w4a,f1ב YMJ7Č׀$z7sbܑ F_ x340031QK.+L/Je\ctM|U=KS!D_hnbvjZfN*COYr FZU7j* K/eg‹De4 i`75.Ez%ii Vkuv<~KŚ(JsRKJR!Ntzi}7|癹ĤRy@Pz8۸j+AY5=P}&w(HN^#(O5G-{-@ix]w_ps} Ex&T`*oj^B gHjE L-y) uY|@jA^AbNjII*L>@Ȃ!fCVFɑ&WM.d_=ـCgr?H{~QnPjq~iQ&sʲ%NT3:kx[*-A} Cldx؝fkB)x340031Qp MNMIexoq!oݛߨc^ kxkxľ!yr s#&xkx>\Sy sOwpkŴwO8BԿ:ѝS+lX-wIxOϲT==2Ns{~QK~rinj^^.ôe΅*M4^y{#6Ã\pMÏo^dP$#2KR2,8ˤT)E[;=cvDȥ;˭Wݚ\$%xI@\ F>W1mbdi5x]sWvf!px[x;` fOfM̼̼ +2N~]͙_뛚W99'K H!%51''?9z_0HL1W5BQjIiQ\zr쒂y%iɉ%y IY%%u'?ݬ#59xrɫwN+ rinbv_jK~rinj^M0f!%7FԼɿB&G(d)*.5]pW\2x|d.~L@bNjII*H\jdc/2^`/5IJT$1ɡ0d:}>ۼ |,p|қK V[lk%ȃg e6&k9b'3:fgs#7&{\3,lx;"Nx6x;q_ u&Klҕfp/ v,(PH}SJcc7tDx81A@_K=(7 1'$8`J,%7[M xx;$sɹm!%y铃YR3&sL`T@83ES!71;/fdV1ԼɽKX8@J<'k @< /*$椖[)h4楤M~ dgqe_PC†'x;jčm86WI3m6(g?)xUKlEC]Mi?;8M#}q뤍KB iKxwlcF8TOqp@@ RP7pBBTz*E*3k;M ݝ:>")-N1AH>u2 ~UYP:5?Nfbʖ,waWGHi$"VkE֭I7?Qsn}͒ҐND YGJ߬ȊVHT)**쯡g5˅T(UxC&BbYr.m9V%aj–Zi|$oFq1+Jxظ"Hǹ}=L @ssiAh2֑?+^[&i&,r|Mm;R*&4\A l. f~,ĎÃ,OLlCNw0W5yAV⫱XԮY;r#~syDNì%ʎ3TR%66TIe|?/ϺjQVI>Q҅_'%VUj1UiplRi_#~-Ywdw#φ 4];ai #Q8f?p͇o^SK3l0R|xKH}9$ዙ&FXk:kJ,{jQ4 Kd#rٌ75[jYs [ ph1si(utWe^ N']|FPn0A D:oK6Cpue9.^]擤, &_@-/xՕٶdb[ph0 @Pc(C[LEv:oZ;[" K9FRdf&YEO^cjUiجFUd"K"U'H;9rkg ^F(7 bt!߂DqHSl F~_=lH!X61kus!B>7f{ʸwl{;'.7~fW9+T,8]7[Z4k2x<j"VPK|t5[w.rԈ_y^iw3ܛل0S-+I@!Rj #}UU"Afb]@ރlkU&~oY'A<*G_-n5R{5wK -x! ջ4tl2֦.8-*x| 7)MeܭƲYSC2 x97>O`p \DKKھae_̧"lUW8uix]o;_,x]G/ 5  shouldBeginDrag = NO;+_"YES]".CD !Ix9x]mi>Mj޸LEю x/ )ٗD8Txo:ɉ<2#ʘjR x1y'' KoeaaRP⚬+hϬ5\PYNRKJSsҬܼ2S9ʀ5䏆b9"&+M0QPLSI+ڂ[ &3KsRR3\l'?dŔt 嚬/$Y@ ȶf/ϲՀmsVSA3x },@A3 5! nx[ȅ`6؄ێƌ<1o,"x{C/+O~QJjQjBkey ~x{}{k bZǤKZwwٖ)/Pɜs7w"W\\_T웘Z07CEލŝh0JzUbFA. SN-"mBU"}uf'~eظO\emx{q;ܪtځdp@QfYbI*ݫ<9r\Q!@Y-q}@&W;+;5b~QzEM7bbfٲxOju88>2st92+SVi,x]W <5E%5YThEkl Rx;dfͳ8'1nab7uTHO.M+ /Iq/NU(LAȆg6*d޼Vl*lRx{mf,!F#QCux>P>| {? u “c+g!)YlFx;"|Oh& dNtZ}vԗL4af#\-ZqElÇƋn%> pKBV FSSJi#8 rcͪ:YV *Z-:LDV~;L'@D}jָe ȩQgnFuKr%}@nUx >1h=5x{07a\7[JIYx|7LTb5k:%`6lKjuR1M&ĕYU]l%fFyAJFx{p)a\7[;3goW{Ȩ[PWZTVP\ǥ/JK,I-ܦ]P_  Xjkyv-jx8qBHHiKtߏ+Զm\f}b ]n:xƽc Cj^ %-Dx340031QK.+L/Je\ctM|U=KS!DsFb^zO~:J eYU{gi]\KsSJK2L?n`=)61vu&PBsS2sR? /*”e02nsͺ_FWXB e!ei%ѳ/w=hcj.Y|7ţ5jQ7cS0A[´m7S۹2k2Ig^qAjrI~Qob^bzj-n< .\&>GQЋx2wiTmrj\m'euduUgs[.LrhπĜԒT$yՙןɗb?yrGhe8PPy8oƶ'|$}h&̲ĒTzΫR8y$>$AEny+q]oeϻusՐƧ#Ad:f_3c޼a/ٜ#,3;/?tɱe=3hK\*z-$y)pi}[0n fz M@˛=Se_mx&ßy執t T&| l׊"⢻ٳ[ @3|;;Z,f²iƋo@M+eS|{xRfF4u}pnjDŝ]S~a!% ֯Nq+<'mu8 07D 3aLfm#㧩iH18T=3%/,i x]7s^y,M Ux0~ɂ&t/uO.M+JO4YVcgv֒Bb@AҢbļԢ,N~ /8<3/%S<3OV! `U\%8J'窞l]mBB-O O`ټ]<҇&'HO~,yL?t/lwI x;"|UhrPjq~iQrjob^bzjVde9)y@>'KinnB~RVjr &̦N> )ɥy%9)9ũ\ e)̜$vEFu\thi*;es,#Cj^ 2LAD5|x8,߲eV E(8(971/1=h\s.hta̼0_gh\W_✓_UͥӲ3 du43Sgu\$A&pr'eM8yyb Z@*Z\KMn|,xUaj.ɷTŢAZsqRP嚬Mm 0pB{~Qnx^j9_uBqjNZdeWO^Q E+\KD0 OLI|Uz[fyaN~O1|%ԏh3ܲS8c&F؀((CnspWTqx47ģ=40J`嚒Yb L\\y)\\);$xuj0 0 $cg]7XHzY<[i5 iJYo'YC,/<EE:]M|BCl[ UVK[<"YƽXQt $7h"Snt?&*j{x=W`j5a쎏krqǓx&g|tU-vGBqT7[KFtꂐ;a!m \Ct 66;˲(vjA|ɋwOuX͇KПX?%1k.x;ƲeCJƳ WxZmsFLmnٱ4M:%l#)d4@+i/W%)+j~KJɴ|Tce2TΒ~x7Nt8c;Uvs*u0 g,LȸZql,OB`xBQ~Oԋq%rȽه}gl"eCq~19doӌO DDtC4՚YC3,qLDb@90 Ɯe<8>5yGz6D.D3ƑtC6 9ȱZGE`;Z`j09E*`Ȳ]̐4ȹ"6l, f7ޛ=lg7N?bQx%&HdXXG 7v٫kf:}{뷝c]jqC&c3_D]{w8Y|? Ĺ%Xfu6'5"{$~e~l?$"&?g ^+* f?xdդ"=WxD~yLY4Gl z^-QKeI7ҧvُQNL#&Xݥ_`YhNag230zU$jbgZG] ZWSP;+\,{+$B:>Q'^KPܝOxT卨TR|0_ Lkt.D^<ܸZ>U<\#64"ܒn r)Gҫ+HV {_^3e{*ُP WU+ޏ  N%&{+~c#tXsRn@JPWb(}vofa+ǫz Aԓ fxn1mH(F@+Ǚ2e)K*rZ098ovw*$KCvqh`!])j\5rj(-94Z-XKG#f~>&R0fILG9gN3z2 19zŠ<4EnUcr nP 0bK"(N屩bHPa`"@Ps$Ϩ؜(Qj 9b/Ps- );y!R^IN5h6U+CSGP}~"=cr<["ur&T 5s^BěN7)E-4O1k)i8L$ Lo֍gRN|EnjYAʕCf"Vl?# Gˀţ eK]dc5$Qn^]xyRLGEBc(,\Fp-JhFr{^@hjс|1RH?Uíx(_TS #};{) AնTe%Y*.GWz!D``#٘n1yWIMeZEvy&$vaIb:T6gJ Hc2;ag~} Cm=kU~j(bW G-XCgd6"E1G*cR2v2i«mN̜=+Uڷ]yr*Xq](NRG(X0!(=:}#am4tĵ(p-\NnޑM]L u5% X TPxOB8)İ U) [ìMDi Lk\܀#%t*X"𫉧e|젟6Շ**Ddynu{G:!v^`&.ʕM# L^DL4_`#05Z  $6?%AVܲ"I^ g**HFTE۷ @J4?a;jq_WPȉ*-z> AU\1=dϬ>i\XoQSc!:Vc! dϟ]M Ie#RH"l lv6Huja뺀ZHPlNw;0bhf S򈖨Cu64S*eҚ/VxOd Klgڶ1s] X~ӽu'sSA/jx*R@_ܮ键od 7oFݣm&&kl.Ge/y01G9:v.JQu^Jrغa'T-l k/,SN 9߯=x@5tOuvٗ:t,/_}k`F=KlA(C>E8^X}Ťq 탇_l!ُن څ.]8>@Kge.<>@K;A;j骫Fv,}WRx[ͱ nt5`"u']L7~'T+i*7.,(@úd.ot]6pْUnFS{[.u>`2%|iZ}wM2,}ILXSkg _"m>*^] rU5,wm5bHեҍ8B%!ypKrR&(T%?(BVx;Uof bN\ה̒"W5ċKK2=sS9*''ʲe Ҽ0lPX\ ((QZ웘T[49m캌œpLՆq ,g媝K85'M!1''?yr@nzB4,97eru4h)zbd?]KD'oԕl=>,[KSc)(L29D;/1.o $3oޛԿ^yUv;mbPltl 9m`VNNʅjxM}_~{M~]"h01D,jl.g:ayA,(gc™6[fۢT1rV\O@_df #MWkٹ#1QuI44T>ՙP+`c EE03`MS' d2 ˛@E[t>g̀(U[G}nν~Âfs >`Ð \Rټp&Fj2mgQˬfg6`[=)ʚQ*>} L`.9O[+FV}AD42smе}]cl;^@2ZAY!r7,Ю{. %f(|l9:SN\ *"Ӯ /7H!gY;2k0kaO58yô- L >B+B֘MJ4t IYo H[=YZ,#e̱wSCgsD1UB7S$@bpX ).2ѥJ:Ur ނ>h|;sJ 6 ÕB%Rz 6sDp"RAX(U*}`;/b\kiFZE26ہ # "ϔP=ni1QOͶ)=}ReՆ 7z4t?D W\Un .rD14%L72=$3NDP^Ut&0JBGNmjLRq@?֨&Fi@Erl3"].Rڻ#Mi /~c^1:|V@C%xH ßz-m b.܆ IQ-DKç:nw v@6=:} 9n{&뿾qe\ۘ}&?]BXii>.4MBuO`Ql(Bq|Q-k] FXL%QKLb d][1\e9U ygQVV AԽL{S:ƸM6YUFZs ^ZEr,\ ZsNqþ^(3EjES􇬦\Mբy5X|[El9̳0-'^K 򇩣Oo+ȟN^ɕv z\}/ {II~z]~8~R~~ ؆Zsm?ñ+cWQ3!bycNs'ͤS ݐ,?.A壓I1R V\ˊ p20x;ƱcZ7m|sͺ+)g|QfݐI׎f}%=3BXfj9Kv+ [su= hfHg3=/#ʪZy۾p:1nfdxX:Q>fxX:Q>fmxX:Q>gx;Ÿq n HxD%100644 ChangeLogf,]+&'72J%;6ғ&P#V100644 Gorm.hO_D,15yt8 fE΄LL=xU]GS&Q+XaJj-2!ѓmjҎp۝}*EM_(OtiYx]7m 3G>l?x[*0I`~͗؂!Gx;g3fCsX$'d6RPt /L(O /,σfbHNgl*C9oox1}tfvԼ4..0l x[~C-\$hnx$rOxc=N=x340031QpHKOOgx6M9{wk+qIODC"wԴ̜TXw'sDc~LY~Q^Cxw 6;GQЋx2x|k{'eu@Tum}`y’"$9%%H.33?/[ƽ:.ѐp|qߌm[OIPLd Ee%@\{t像pEH RKV˞wK_5K料!OG.6u;f y^9 @˛=Se_mx&ßy執t *~QvkEqYw-61\ ߎ=}ү.gU-IĒ<β <,貝].$X+2/-? 1/5hֱWU>²iƋo@lM+e9MO?x;Yw%e,VCCR+J"~$];PݺXL-gx)nerasRAL̼r['e$t\YQ;oEix~D9#1/='?CꯩyoڗO^5Iy&@\WX`5qS8Mk61l..Kh٣g7_?{FzތBMĻ46TN9Hrp| UPG'e&d2$I[97>s_SȢۡ2f0N6fS rutuexz+5䥾_ܞ[9Mwr!s<:^\߹xMKA ϝ_.[."' =dgҝ2BNWC“-pni!SrxI~F֍}]"Y4Tvcfx=CϹD2>1ԓQ`U΅E9A2H]edm0z*;).&qOB.Lx}({lPLhf7;2$N1$XgO?Kr>lcx$Uͯ$cxl3r?pj^iw^~y@~qfIf~hYٕSR2ӸioBx*o׌0-d5^FKxuSKkQfΔ$}5m4MR}II)6ZCI榙Ig־n  p!\ƕBnxgu`};9+CnCvʊt[dJINȳ?WrYP@!EAdՈrd4YCC" ,7wk'>Juz@ƭbԆA{ Ut:o_nGsD*/Q>=} (Czg% ^3 jrvՇPVAH%0gTGZ\RTme,_ &N.PTy=VFTD3) YŊ^J2aq۸tsRĤ3mUu Z`UP50s6JC\f.|cOc&6pq;0M]g!{1- _Z W:Y_?o<5t-*Eujv] }^@Dò@"Lnvdl{(>zq2>wNt:y![$\9=V2<[L4j@@-ϣ#0N1k6ui7í֯W^ y1ぴqI|#<FZx4VHT=YsTPu 殻^5&| |da}oin%x_%100644 ChangeLogsu3Fi8-& OJo%|D~THZW5dyP4 tVe(“h_&g#xtq  xav2G1ʂfe!pcRJ1aR[$D4FYұd O33lG=klՖq=QFw)hS8= ]G8ӽ5VB5'={{)JLmZ&(GR&L%TI );PyS;XWNU K8ZӕJoi:E([/>GMWv-M,IdLfû[\QEg)G#.8S;T("YԅZMo/φsoԥxxfL/_!EU[kGtwuzv}Smr U]CUbWr6n>QdKx[ʾD9#1/='?{xk ɊoPE~٩i9 "h1{}`Y[ǩr0eEz ,יU?:-vfd 2zUxʳk\{k7Ak*R3;vL>#X m P#endif " $xac5FfK~rinj^Ift X\⟔\'sGũ9@<ļԔܮx3N'9όqj]Lb͙\.)]J8,urXY~fE*956噜!oQHxPGk2K0H/ z& /"(~ 273'z9S ExE=iGtHJG  *xi¢ۤ\+99SsRK2JKJ⩹%ah⹥9%9 *zsxRRdf!2YIxSOAJwR(%PbȭmJ(1v!l 4Mȼmz-sQ ם~$. Cͽt[OFe"Ւ~ټg޳2~$-9%%Hvxՙןɗb?yrGhe8PPy8oƶ'|$}h&̲ĒT>K\[(x־ 'y1Z_ZkMUJVXos-RNF|:rV%+BՀ:<Ti4Vږj+f+zLFͯEEw_+gݡ/e75A6Y>fݕXaI(athF@w_ғ;cD:,3`uȅ-ιJ gq431N]g+xkdĶ! g=xkd?̶ 8H2x340031QpHKOOg[OFe"Ւ~ټg޳2~$-9%%Hvxՙןɗb?yrGhe8PPy8oƶ'|$}h&̲ĒT>K\[(x־ 'y1Z_ZkMUJVXos-RNF|:rV%+BՀ:<Ti4Vږj+f+zLFͯEEw_+gݡ/e:5kWx[̶aL>Q4x8[d;`"'3d\oI0]‘g0-~Gx31wC-b ?w(&fe2x^֬%{M.=_dz9EXMHe&aÙ;Q\x{ñ (e3;"v _K1=D>>x[~}eǕ#ߵ|<RXC3ļTtfXd,s??1z]lo,kEt]ݪ6 /fwԴ̜T&wKeL|/'>MWZGeLFKZlbgLH=5T3:0ITĬD i[dec?Z&归E(<\un~0Q;|B8ę%Ey O/Y~ajx=n0 @] Az e(Ko}ʪB9#ZȊs)yyp/I1JzHI8Kd:|R[O[v'oǥg=$}l&B9t[(237UZ7Q"xMj0@N1h  cyd j2Io_oz.[|Њbk 0y8yI$yJIi$э3Y ƨqN:20O)>Z<,g] xT*/Ŀ.K l 5:{= !}.{\N=qHG=ע~&kYsxA0 ~>bɶ@) %B{7A3 ӛ*L L!gF)`TĂ2 aJ64;0uR:+ɧ<n[&Hda9NVKaSF=XՓ<:d#YRfqh3łcsVKmpo22on_` vNi˿ԕ~d;Qx=N0FbvI$Gbo@9Oo30;KlRDT#:I9D"kE<)QKeC9Z6Jf-C {jR"hgr Id5hNɋyR|uw8X,/&mxK 19E_@ɷBp zbD2Qf \WT0jv>E1A5{N-'U^}GTFyiG/o8uWKK\˼™6R0uO}2-}* 5Л줕Rt/2q\ 2w^9S/aSuxA b?`P`/&R Ń?8sLHѰt>Eh#8EI2R4)`R7VFEPF5fnkp{Y7NW B'VYT߂jDm~KxoN\xA 0E9\̴ " `ƅ7@lh00R8j ԚVZ$elLBcQ5Iy)9yyp6 gd+Z5O"{a[]m[)ڣΠVfawzU+QxAj0E:\ fFK6R"@F,rjkUD3Ȳjy0!,#B1<22u1D^o-[aID;۽TUJ};\׭]_} 24ӎ\|yĴU5=xC%z= ]6W<xA E M1q < //Uf9:NqN=!%3Q  FaN^+oM i"!<*MzRvV w{*R?(t4߿.JHmMSVɓDymy + ~PxA 0E=\2M2ILZFƸf T\{t:KNsL1pyr)*ɦ.(( ObLHvӥ *FӲznG%aN53J5zmPxA 0E9\2I3i " 1I&`qȇ}x'7^l୙'G fI QʳA҂M 9 GF;eHw *kι ׎5B'8=/p@:[kG]b&{au{5gVjfWqxAj0@ѽN1H!(t ұ 3)ɰy)} n>p y\p}c-gPAV8H#mY{Ĵ63ٕiM|cSxKj1:E_F^ro{Z="/rhxW՛*K SNDgAS r&h!D%rNʸOe.6$ LEPG_} M~᫮Qp]?\vޞg/GLN5[|, C{QxA 0@}N1P4LAD$k$Fۍ7p**({%+DSmэBd̃XI.RЉ1-%ԨW *SeMom˲8xC5.sk9oZK}/HPxA 0@}N1dIAPi2HooU4:Bad!Lipd-r cgE=|ZɘQKSHLc_V*\̥~Zn+R`?oޅ_{J>:L6ZMҚeRKkO1x90@ާ yg,!@^C8F)r{p[J୳+Ĺ4hGic{M3{jJYRYt(0"E-#SmU__e\@V !$Z_f#m^Ⱇ}%OߜxAn E9YԐ⪪*uQRa!JKsnUD!`<e>:=hg CFUl\h! h⢣LgH~Ol"1ya $hRGT,-EoRJ~U$@]a:[k/Kj+aUg_TYTz;>8k_m xA 0E9\2I6 xI2im#1Zu \<^)-ZT i\3uGƊ;e^ x9VT_k Yo8:k#n#A2 }oa=h* +~q| e:C(6:_b^ kʷ8U|vR'-xu͎@7tOKPDDTE >83MnnΗos8R101BYaIUL^W$z.d`3z`E2j*HP*y!6J^c bl:KU6TEMRMQL mNӗg ~\ZFUT·_c[ZCKk@&eَeEvZ익=׏g%,%$FoOlc{=onS.naڅ1/WQXW"u0p[-B$M#>eO9nW~15׹y]^D~x Qg.vaPsB6o`~+m4(pл[띱Na& 8FwqQnyr~_XHw'c!gm[=v;L10wKдFץVYwJ Jʒ t6Ux;0 @Ji%@ qҏ6(Ӆ77ZRΒ}pa(ԵyJI{>$E|:P>∈.2Ȼι)%1pϯ&h.v#'K֚nKߏkڧ:ây7_:Mrx=o @  RN 'cL)_2ߗNX^B@KRGC @\w` p=HkH` Y6 :)#Yao@ %&mڲVquڳzR2ӿSFy}^sn+uέuߡF\57?s^ GHsvz=?0?w佀ȘxKj0>.j} !d[-rh37ȲGzS5D@(2Dg:]4eMnuIAlqAEC1("=+->tmJN҂얘-&k3M~G/>Fu;]ha)G&v2ڐ0cA<> "LQ OÌT%Υ#% ~[um;~b=ZqO}>N6Zk[1_0&CaPZ'"W-xA = @41Fs PH1^b \ZD83Yug1:3؎3F34IE /Gr:A;QkjZkua٤,;\}5M}Rx;0Eޫ $(؞ H)=nXz:A49Zc]I^9Uц@XgvQ<6q Kh+"dy(֤H+R.mHSrNA$,u[{q}ܠ @`MAx !TA^n11F:c/1dz>X` KI):l\"g&yFb( Vk`Wb=6}mk AՇ<Դ oi͌0xD-[GS[, jJxM 0@}N X&<4BJ7O}*IH  !L%[h<m=E;&j;%NZЫ*o~䅞T`ǹӐ~} -r! Aei+5OoZxM֑xA 0E9\Nt" Oɤ-1.Q.E\ F$D#G'"}JELЃ&0rCVGJc8?87 E]qμܺ4Yiji^j=EKY __lC? ZVxIj1:ſ@&+!o'V ķ6A6^A誐HݚDJJ]sZ)$\?;vdd1$Dbsj){).'>JmyXnn.y1-ffZ e(7}ޕiWXxKj1D:E_ FnYBܢ36X##+ >7^QUPXQ)E]dQB.cYB1ds)GJh1AB"eIVd$ÿ:|wZO;p;} OU\8bffzC_RfJom;W_0qWxn E{t[%H)R%߇-.U9s53Cw18bp  ݁ >׌^:gtcR4Ҫ"a~,:b/kCZ'ۖl/IóN{i_&%5t ?[Zq^na__A6p]\+}rN >& ,ˈ.Vi紝Qm~W~xK 1EyV $uT+m1W\5>D8FJ}ϑZc ߻ T6Y^#EQk7gB g_Z4^k{3> :D}\ nj9HuC;eweݙkȵ['m SOxAj0N1F@).Y a1XQEnet"ۅ> )%.~I'V" 0[ )#82(2%o *kO?+>5Ӷ\:kM׼&3N,fz7prJݟ0.] ^lYxA @=6 Ё&Ƙ DA4v \3i6Aҁ}4Lܢ k2IlcȐ,R%l$3Gp xEx[ym#/>h4_}$hP+*%ve #Jz{s%+NxA 0E9\@" Z0ĸօ7pǫ zny=ȣ6^Ŗ JŔ]׭/V"79A ;zŦ\pɷNԴZ2징oo}r:@ۃHABt+Ms>FsO͑x1B!ОS4?cbabX&"1ۋ7bxޘAfR PqHuDAS[xyκp[xMJ1}NݬR.3HR0ݑAooo.wfm!3лD6 G\aB%>q1Ii5I r@R"+ 6o\\y[\c(kuǯ~_ ryq]OmNݷ9_bºUA%T [j ;/1027_͏Lc#Ғci1}-[+_P80p.uEO.+FuL _z٤OKTG(zxZsؾ̜tºmwb^ۑxK 09Ż%i~ "75}i m#ix3aja ) l*9  u1rI )({VŞ#jIeIЫny\B-{%q}|&*4ڠG8`(vL_b3 (OUSܕx90@ާ BHH`L)c nOn@_[eYI#C瓶9685{1xQ孁6&Vء >")A6 cxi.:4/].Ң:I)še&0 ӡ NxAN0~|0vĖq@qo6(kKpC PSuXYJyujUţl>DSNs %Bl"l VFzbk7k1*'O!Ǥx$8BwͰ;%fK,N{%Tme}/e\ \ғxm1 {MbPg\D _"dtwWfV# yB:zD=t>r%ΑrB@- B3s^ak/.qTnzJ߾QhHmNjPsYOxAJ1E9E]T 30TR= D2i"o$l !Lec =ф6zZ$ (G&ĞӑHlxui ڵ‰\JeǯKvȭ%a#ݖu y>**57Y(;~\V^-o?Y YaVxM 0F9E.`$ x8Hl}xhCC0 Fg'GfHEEOQCC`GDgN3Qѻ.k9e)5Kǹ<'Zt-.D}@5Z/2u_ m WPxMJ0FY݀%i~ "EomrDu ܁sU"P AᬛBV2LpNhV'V ͈#Gt d0#Fh'Rzg[KJK?V ^`+nXRexAj ὧxFB). sy/L !3o H68Џ`k3(77cRŎSt2:J>"5!V"3@4i>R|7k{.|u>_~K9-RoH).]s/3QP?`'K=6N\hRqUgJc_Ւxj0~TPJBPVҮ,-#+о}C073Adi.jXySJƑ<0jذ XRҲb5FB ٪ :lӃZKHe9NfJ|N;48ͥ{T|y7q+SO_ӂz eyiI%(COI5k׵`k:@aH7^zmOm.g/lvlx4iFiaaAqJJIiZYeAR Pfbċ^ &\\y % i ɥ% 9 @̼t=. K!xIj0E:E] 4K TY[ d= -dcF"gj\:,CN)'ͼ(|4dRrJr Dپ|!{xŊlxQj0b/аV%[bYAV}h/f^o"*G0,vt\fvB!qqL2+bVǚ$6YM06h2 u;C:)巩b-PVy茆$hһ;zzSx{-P×Mn+Gy~!l-Ch]pxMj0N1hп5PJB.9( 7:3`RTg)fUs`֒F}I8GR;uxfe& %$ї\yBGF}\gEݨrKzu "h:j[aV'lX3\ʺ-p~aXx[j0u@k J(Z-VۂX*҆r|0 R KAFkR\Ebs@Hm5oX[*zIS(M ;}([48/^_҃߶qZ*ixVJqڣ2G:Oҍ&SJ\{5XixAj0E:\ f,ي(H6XVhomzn>W.&vfv; W+E,ZD#xUT\PSJq]vz\'V[U% pFyX ϔi?&.fWk .jм."S$ /?K>5S83M ZKx10 @ _qb;a=V3E=m8bQQ#,Hb@WDF‘Yz\0E*d0҂A0߸ tx Ȼ @ P2MV`3g(]")d vWs8e2Gbcb Pj9 Z-}$4TN!H9Ҭǻ_Ƞ!xMJ1F}jt\gJRI7LwtfzV rhkBP*Ȃ .L&nةYňFYL- 7$dѣ% Os4SJ6&%Hhu4j #ahTxK2oJR)w~ K^i^BY+*RYB Kk/kf0iOP7=@~{qZP\<sDx 0 @z&I /Rev:}w/_&ABs$2[% ܆=6ѪD)šN^ x{!x 0 PV`|lBAavy:!2%K ==ᾰ[(HHR OsAѢՕ! vsOD/me2l/"OxKj0D>E_ C˲e b@ R6X +dz WUn& +IAT {Lj1">7^5Q\R0C/yI,Òq>9ʺ\gRFY]o =p4_d5JEĻ*J}-HVPöJ$_ִWI/*(h#xMj0 }Nݬf_RE3ْ@~;]us.YD@eCLGcApZ~K}hYo@{T#᪜R]K<_K$ iFXbJJiI-m^x;0 PQ̨s%W) Ҋ{T ͧתeɫ,2 ĨUSR"G!Xr&*AbrEQd{4~{ak/ rl?BHH+A'O&xyg=n{'l8%C"/fԓA72i8E@{vKFŠD)V>jK^GO7jkmw8/xҕ k'`OTnZ<(o"/~1;|g jsQ o(-ѪT<^xKj0D>E_ Oˆ$nY[2>VUE=EHf͚Q3^z6y"SwRXAVVуypz48Vm̈́ vt>efR~Gީ( _ Ŧ4EC "S??\uRk7.y!Q{-=K\ex;0{]`>a4Izr ZBn7A)7",3d%MDݨBi|ҎaCNdP #eǹrb-F/4 >9kYz)%j+ﲦzYƞVߝxAj!E.۲f-Jv qdyDrlpH)ڐYP NNM>=luv7 .L6~u.>6xo vN*RyV(X L8'h-wzcC.iPo ;G/XZxAj0@ѽN1hIf %dQR*'I[AQ} o{SDRta&-Jޢ1r 6z ܤ!zqȩ0'w1%`Q8yKmt Al "umdGxl̽KfZ}Nzm5VxQJ0EKdP\~$/mI$:{8; ޘA8 2J#$51"s҄fƥȪޣ18+trO8VKm_Zt|X*<,-?.6O gB b8hNȆS{*^ %+~?p-TLNj 1m<gxAj0N1%G ]zVPܾ]תrD9-YыtE&"ޘݸ/*#ٙf$QOcq?V*\l|x_{o;A~?0o]{ns Rn׭QZO3~[&x1n0 @]H)@P E1P[&%7{3ŧ\'Lcy@ K6hWmtP" #gC/*1E~ ͵ù^68URcP9J]R 47O޻]ץw{}B&W-vw_%QxAn @= cAJYD7X*8Rn_oz.[D EK r 3%?YH>PT?dɎ-ĖqN9 "8Mqd w.u9}H^T gBh:˿ԗu8v!AHMW]xMj0N1ѯeA)@C{Kƥ`Aƈ; >Rhp@>&Sm/y= O鯿SyQw]zwΐx{E PxAn @= b1 EQ,"80ۇMo3_%{= l1h\b2d/>8zRciBV/@QLckNѫk[㭶_tPJ6c+R--I[ո; >sDPjfPˤ.U\x;j1=Ż@[  韴Ok$9q| \ IFو^I<# ԎWFo; H*ZqVVq1NGF1؉.\*W^KrJQ)w~YwJ!ggB xB8 !-]!va{Vr (/õ0rK7CS^ |wd9xKj1:E_ CK3A0,[j" $6A5"sa+F;NC(^IY' fN]n<)c#M5E?:|u[sT>^ct|/hkゅ7դCE. WPf_;j˲'nVxMJ1@}NQdREP'J=DbT.[|s) dOƓZBF(mD+\䔃"TX}Bxş</?x?߁NvpQwsCp~{U!WyڶEoXxA 0y~u6APdl#1^ǙiUR${Bl)a4P5hzpz01XУNҊ_m.UR?p+ g~] wǧi|BYsC6/3uo#߹岂ZS} VhxAj0@ѽN1FȆ Yz4rduWz,_TyuAڈysdϚyaBNd^ qɸuRtsDkIm&Wb/8k4gӭrJJ6c+ܧX /;pq˳w} fȵ+gr$i/Xsx;j19E_k}Fc  }ԣE |^A ¸oFnh2h'Th\n81NZw!w^Yƚi-N.|u1|y{x͛r=3-{opkuw8TD3/ƶ8bt|xeEzj_jC8ƽޏ.۝ϘN[ś9 4Ep'Vjˡ`[[U__U hlN7w<^ފE:&Do"]Cctœ9;Vf1ؿNƵk{(n?T>d,4Yca>iͼ^ܞN)Ϩ:7/&. Xxuk)l.d*GÆ. |)?6LYS)ti %k';1)m\$rLRQflm>>9dyoM3> x=j0F{b*)6hoXl&]n0G@EIn} Y11DefwdT*:(I*5Ms3MDRNzS6}A34*%ouYz)2oN(*pGV+|e_'8_?>RxAn! Es .БTUeo`3 !޾tt{W0KʅDJ&WZ;1".6Li٦fj6fˠ[ c6Ls BBqnݜv1+ͼA*x36lh^I/KJw5vu/x"^ x51 S PH1q0q ۔bZ^o)TAFrb1A {dWZ m`TYu Rru 5=Q+295הݴ*8Љ^ƞ K_bZ3x90@ާ yXB"%1rLI (+~ *gI);B4UL8dxQ Y}MM.uCd=٦ʺ.OX|eˉ KA:<>M%=<0]m=+(qƑxOKj0s# P"P7fCdE.UAWZEOٲ1H9Ncx"(SĎg':aY^4&ϋ]KK(Ax]>[3mK> !z/6Xk_Y|ڏ%| \`r>&7{ {=io[ῡjJ`!kn;>iŁR{S_PN.x31̂b/2}''%Ue3wd,0FxӷZ(x340031QMӫaPlKfPY~s>)cͷ x31"E'ofM+o9&`E9 qOYo9yžS›}Q%x31"\\R~U>x~w LLBsS2sRnYx7m6%](lobfoj^)ĸonNixWBqHvg0]"PNqbS01hEث Kϼ2<33f_JZ $FJsգe~1pD.E\*^]kxlgҝ'%X g x340031Qp MNMIepp̾pSjU+&\Tmigb yyzE S>ڛ+`>Y\j3ovBt+)I-`jcQWӟ+7방eLeKZ=Te.r z#3l<ۙtFI VQEx340031QHI,IKI,.N-fx+ 멻z"qo!̼|3^9:Hn[ya5PEIY%zE Xo,'=y= A1x340031Q+*IcndABK]m&u˚ ˥x340031QrutuMax6M9{wk+qIODxe{ TpMusQBD9]58by !3ƌ= :ۃLzޥg#RBGg3{=[k'lܸŽhHfAtf1*V//kiK LMff+!^ }LMYkj Iw0Ț PF?o/K$-}+¸;rx u8 貐_c{ O:&NcBl9>_&EWz9RwA4" ib0ym6 lkWNXhDs\ cb^+9u8֧VCm!;Q@˨ۈPQL@ p+cRKtOJ|x9#n1!bcFf9fxwvŒ ns߄ PVF;Gsu/mwrGcġR,ŌlCSe"2VBYDYOlIn^zB]0 ^&R`g9zoqECOO j6`x.9S $ֳgD햨ƄPBurWRt:#-$6ƺC`nDEm 'W\}lKGHLNcKuu-hMS?u ,0{L$@ M*9RMcU $D7[ͅ^G[}WVK|D1|dB4t*T}S%~h/<-!<,2~K=": ؚޱ ۣO(kmSVԹ d5q-6~(v~#ݧ|@nq<^JD@< kPMBGfIo{řu.Z(AH]J'^UT8O*svO1]IKhU.Wݳ_JTF.FgV(I08b pIԏ'/rف[~ mQoY  ;!t  ~w{d0ժ5Nh){~Qw }JRҝCok4d7˯ܾ us A , Τcynlzkڊ3ydK\V|׶ii[{9Q:^m'٧"ω&)C,B'tŦu:ڨjՍO_FB-7!Sax}>.Bm+ILZZ1}tG'uĪ(\|qㄞ-bƲTPx䵧Z?99f\Z)T*9QNUHq/(ځۡ~IAa*lj~E}<") yٕoNI^Gt\ AZFb=䐮:x340031Qp)J,O-+LKcPS@ g9جk,871'f}|egŴCD>U0OOXޣ^Y oWTWPTSN_Ϣ6MS~r!p,))L*-I-+.HM./K2Dvw9x+f_7eYWw tYvUDYQ{@i~y)hN'{,{gr\2(̪T4br rM#I чݏ$~>_ )vF\Ag?_Zr@ `rRT^+KG߽B@S.ÍW_}x(0dIJD QIVkuv<~KŚ(JsRKJRn(͑q%:۰eXքum[זEJ ۱1W9lDLNJ>zS6Ǐnb?xU&T]̼DPPR./)9^,/G}x340031QHI,IKI,.N-f`=Ţp*V#߮8iC$uyi uzeT0^{_s{RKr DWJazdA@ӱ0Cx340031QHI,IKI,.N-f0j}01\ïAf=H2J;~ނy,KCA'e&2,=a%ItOˍx,Vx340031QpI,I HI-)IeH~y+ΫLz>G`@!’̴47*yJ,5ˏnovUpňGF&l< .k2$*9i)?,ZVXad8L}~Q.n@:"ǒ̤Ғbϼ" q&1uW+RLe>U47g02"Z~X ?#TY1^w!s>l9V^j1E윟_W?ysyV!7l3֞poIԴO-2LL M7BO:Pc/Ndk5p60G-\pzy)MN^WAY/n>hǞ̬NPuB1T|eYn|3eu5:CreƼX)x340031Qp MNMIeZՅp. 1&&D!)/&n/Lr.-. J-/-JN`8m`s'XT霿WK.CDxWG X+S16)tԄ !:\RKsJ*V4T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> jSK􃜫y? %?475$$3?!Lծywdu}ZaQ皗YSP 5˶:odnS/471;5-3'!rE~}S-2Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9E/%[rZ*7Qyiz@*a;ccץk/F擙`§qG%Lۆ^SϊE»*=RSRS:]OIgC;Ep 3TfeߒsNv^,TTu_p_f]>7{>BMLO-fL@L--\6b@@bNjI ЈՊۥnEDA˚%A䔦g3l*Z.nr3L+>2Q+z͔g_GY{sW4RAE@{µ^Ma٘{ZN-_@{N wg7ckW^N[,ڕ+hM6SrST P%yZAM̲MD?31=xy _[G'z4ɐ=0 cЦR"hQ҆Pi0"Hl=4{νޫ}K;`9 kX?,P S%WdGq)dr>8Y9 ! CJ9 ) #n{=O uL~]ܟRBpӄXG0@Y&Cjd\Ԯt,zN$Pr{e ]$<h1`.؜~f4r HJT]tb9lE#Ó%л&-+ T"dJH,ZC'~-%1y ᅦW3#4ZcBM%\?c;S x,v·nKQQR.AE!v7{=db*<G k3s*&0=@0ugWth{Y<8C.xhdZJ]+ @PLV}}n}O8'`W)Ahgn;v[@)?Ӳb)|I] 9匝gcJ/sZA!C_Q-hHژxG:{ 5 u:$(?؏{IJٮ̃zKo-vb36F~lz@x#j&=pթ-Mm|BHZ;WS׳a?V;ԸLo+ޤ#&cN9?mznYh~ eMVK E:׈c)yѺVk@-b!ΗLG4 g`/n1Rw/UÂ4K8'\. T›q?/t{!45 b8x1&koIqp.xuE(^E9OzcnB+?ׅN)U/5C@V"h{a9#{Md2?jICph^BĚ6i<E@ޫRQ_C6?gm1l;nʸZwCly2/5ڻ5AEb+8ۂ+r UQ&z'c&̃Z/I>$TVq"2 /UHॳd CJIU% ƻ+M+L%sܠyn# 8aro(x@y=_,qʦ*;yf  skBĠ[ ?R-((h f(= -ss3AQ-_\fDRyf ςx _0i%"p_,f@ONiw+F=:/TVp녟\r1*AT%;6BV:?YlU^4e I>͠l6X/BZyxSylGXfuw.s`!Dgd{}eCJN]-аxc+(67EpfIʂV, UPgYܙw_4nPOKMl]gS" @j!6\}Q0]m %ԩ>o8S&[#yI׮bw~qۤ] oO٧ٷ&QlD4R8O@4M9EZ@@k4'7I[:Cuژ,]4Lpxj7۩F=!^'yapTg{s_R"&[C]@@3%̹l v܄74{x3LDF$n%X{ם):.u?G١ `DZgrB*bjW3 ؝%^89-7i*"GT2-p~::RZe :UmxIs~(S?~tV;>bs*8!@]t_L!NeASQ5C+ pG]M'YCӓCk_=[Fsz o5\vt?K-*Hx~JքTYz#i/"ZۃDMnhs|I`VЙL[]Xf E4rn>,BW8kt 'TG}+sBf 4!` (q0?euC$ù~%w4c&(slgkWV̧J}5? q4}`}V$P \EԘUY=W|rl1XvkfIUI"&Ub 09'-B?h^8Vp`=rz c5] \>Ⱥw oe4=U9ÿ[5Mv8̷S'Mf]χy{T}έGS_à"B`gŢm^ikʋU;L4q_Kcrd2B*"+stp*gуes]{ag@onc5;WP}t;Yevpx†vLf⩊?TkBˍf7J]eE5 ՞sR2{1hh8HlH|f #T-oƘB:o]6sdRʇ"(\~wt`>K˶6Wȵ.hV;жD[=xVQ Oh3M37ʧzRdqW*#T4iuӑIS!͙1/PzLsI.8 q`'>@#SGB`G|CQA[Bo7'*}fYo bl/kk]Np^>s!䍸!5|{m<&0X\?) L$]KYXk.*U_cKT{U5`Gje|͛fl=DӸI eu^˙ABO'{sˋ7ѥ Ap}4+立~S?h`AaW^IQֱUPOWE hUBOҍ'+2"}j:r$^VuBdVҁԚC$vE^G?㽅%܈Z)󷌹-踵¬pǣroȣ/|V;Q#ZMrkH+˿LD^/"~?ݍ /FK8= 0uL e%^==xN00'100644 GNUmakefilejx8cR1>NW%de蛷¼"100644 GormDocument.m57v"p?V..)DY\|Ə~<{᷏t Wci6qz[\A? ~q/>W'iZ6[@k`ԡ¬gSij eډqᵘ9 S+At'wpH;7a "sگ~xK?Qل>&g^5KaI9x|q_sULi8xae'])'@\mHTQ<%m+KDymbu":?;2%@f;1/)+Э4Ӽ{{/";,! "&:{=nuPgcII3 .x340031Qp MNMIeM^pmuC\,gĔԢĢ" g=eF~M*6b?Au''i; І]QxsY@t2_T[uC9mds?Y-6uYx340075UH*I+`(Z?~Qo&% 5/%5/93tY?fX*-I-.ɔuׯyB{_yMSdN:A+ox4Ҥ97$pHݾ x31̂b .eZts}hՙG2SΙUe3wd,0FxӷZ~x340075UH*I+`W#3_[O^3&% 5/%5/93tY?fX*-I-.ɔuׯyB{_yMSdN:۷,\x4wg;TC0HFx31̂bg/V^ler3_O4(/N//f05Yfano:ex340075UH*I+`` <sr7l5CԂԼԼb>s{UDs\!tgvҒLQg~'4ELlO.uJx4%3C'H x31̂b k' . 95[A`P[S촜bS,e/a[>x340075UH*I+``x_5II9B !jRR RRR3SAJUWUW}qН=JKRKj2GkWj^3*>7xcHb%_ 41d-{tfУ Ox31촜b$?ݽyg>Ix340031QH*Iѫa0WReEERAxcȧyo]Nk5Hbf x31촜b9ׄ**g+x340031QH*IѫaWxY!aw&L[dJx4C[^yHݺȗa,족Hx31촜bIN8ᗾpzѸ x340031QH*Iѫah/%īk_q% Ux4!I H֟Ա>VՔ_]H^ڤx31촜b;'),.{[eF'nx340031QH*IѫasUϩyᒯ `xcH|g1 ^]Pf"?x31촜bSlNs[o~)x340031QH*Iѫayn}{7h㆖ Aix4WD,]ty-JH}x31촜bfgfN^ϳw_q-x340031QHI֫ai [oQ!u{) !3K2JtK2uSRsZ9+pVIʢ7.v9#4x31촜b例ꒇE}%hrMx340031QH,(MML.+MI׫arY%q+vܸ6٭xc0G]loVu=’?,x340031QH,(MML.+MI׫arY%q+vܸ6rˋ'p-YpۑW;Un& x340031QHI֫ai [oQ!u{) x340031Qp MNMIep>q#ylnfL(517 liNZVV??S_\ZR{چu:#Dj7n[\mŒ mn7 1>[RncTd1ewn߷&%}cV&otryu^3 ~:.Z D<sK,)(be[}7xo2r~)Zʐx'H\ o9޴S^A~qIbnP+ oQ?WZolR!秕,:vpьԒ=+wS_`xs\ g/VYEqAj^fCrUjŎiswAΠȟ ç|'qgRev$< TPw".NiK_+0'3O9J ߽w!T'e9{&$1ܕ#gv4aK;M/uA((JM+fX%켐Yߞ9?(?aVE`Y&13/CmVߗA]|% QeXȰ8z,:H Mjȉf;7u/M,)kEªh)dh``fbP7Zө?o=ӽ):i7$x340031Qp/M,)I-*HI22*%[,gd[}9q9F92:?h4W݃SyIfZïY[vϹyv}kR7fop MNMIe(qSqiYrԛk|c*+(JMM2oâlFC'U&ħ<v+'yV};!f/Ēt=732}媬.캓Nrd=y,KA׷rINvs/5/(]gE~⪛km7rRK25,6|ϲIۧ·0&bd:/j}rkhp{-Ԛh(IpFWiW8>s>& x1c)ȯ 퓺ܖ>ߧ(E{dO#=xqd_|97-^n49+ԛ tx=JŶB^#P0 B w,BUd3Og Cy&"D8x1c)ȓ3KcɞgD axqӏqZ)QչhΉWd$xHVZnof;&*y>x1c),ɏ(Tun1 eKFɞgl gx.;3> u͇:'v,x<JiHgNcg!o,w, D*cz*ד"+cx1c)ȂjCmo?=peXgdÖ u xqѧD".F4vu #x$J=լwQ%wȍXR0wr>9Znx 5CȎ"r rIˊ mxq 5UWJ1HfݩWk x[iC^F%f^x1c)! ue]8KdO! xqBm ]&?(Lծʌq+R{x[i; =;=.z~ y4ɽJ,Ejx1c)HZ&_E6,|t֊ɞg Oxw"8 Cw9e'xtiiZu".L_SY'[mtՓ7Jux 522}Si{iȁIX xm NUab]Y%ˑ'Mx<J8䷭(Z␆|"w,˲(T@>M7V"r{x1c)HdkcҚb`=k'Y EExqu8wL[9q ΉW #x| $('BH7N% !x 5ƩʘFoIxLxq)[w/yUK+k*x:Jga"۷ϼae^Ztiffy t9#)okwŷ@} x340031Qp/M,)I-*HI22}4{kݚʣnz<\|BsS2sRϜR=eƌ'f5uT^LezEI@?~Nk4sLB7݅/]RȰ{s "oO 7T#]dx|Ck&%g[Wet/RC{ P cY׃f%F[1:ʦU8 o;aM.{K#![&9|k}bITW*h]u;}Pw㽓e;e#xK// >>Lt.Ń,2100644 GormDocument.m\.. [1u ^gÐ x31Լbyuq-s(bt6A0<3/%!c>ýS MH]vuۓC93Q=U~hl:oC$f3x]67}w!L\Kn6ֈ- (Y-nkoC3wԴ̜TMY6j?Pǯ|Q cV 9x340031Qp MNMIexfߥϊsޭz9i Rs-7*gi >AL @=(75Ա(3$3 5$H/(p#g&B7r ov%b/g?g@G'sL] '<[6.;4%d1:~j]RF9S.)vM&Ag=*7X5Wt[-4po;!içy-[P,IrY_fRYПpf2xA\eoEǸ^^sx!Kf`Pe0? _\90S|,wħ΢B#6n&c[\ɳ*pXD#40000 Plugins3%*IŰ~kנ04xxQ |SJ͚}s~=`ucCVczx>} cg1}5.Puss u x31w_sXG^뱴_hnbvjZfN*CJ;my]lV Ĝ\GVx>{P}BXXi$sf}k!ZqĿ"Uv#^u²%!>Ӭx340031Qp MNMIeY$bI&sM 7Xm1PWPT{scx738E>(7"3ɹ$?7(8(9U/ᴁϕ c6Rs&^- }]%_e8^.aMڨZrJ3rJ"y]~8'ڪ2TEE>)E@pb>'g˙qd]'-e;f[}  zx;qBӹ"wάY7u~Ux31\t p!S}7$//S(s`W㜓X\욒Y_Q~Eo;dIԧh= R:\"B^xDRG[ļj܂m}Y:fY=v_1<љyhr])vNz=dAVZ\q_V\=66#'@xx:ow:*4KIminn%OpLj>H4ӁuuB[~^IXfj9D-υHfLӓ4FH)@3|r{g}Z&ibm>T4sqAgAlH:3KR3Sd̙U69lvk4t!)|ud}PKtIf8DեLu~9`0wj)OT2+g"'eբi9h-O/E{vRZRAܭ ̨vI}Qjs~N~Q1DF YB%44 :-BU힚Z50ki޿jhK3SRs2R!ԿT=ZvDh:Ƕ E sN3ݶʮ?l&>2CU0T&gydo<ē#KM}NizfT_d y 񌡳<EUZL0W>għJD8ByprQ~N(KJ2JB7PcP!H%BgI@ڛm8?_4#5' >fL.Tls=8Iq~i^ Kv $\Hc|Բ*} OgV uKn'L7w(|[(x340031QHI,IKI,.N-fx+ 멻z"qo!̼|C:2*uZ~ٽlv펽PEIY%zE >t2r=QCcj0:ix340031Qpstbx@B{Z8cI2Z}e~٩i9 {]1[-Gei/vTw,L $17 a\2qs϶~1>6 ENK}hs8= r2K2SR2At^gF=>Jݟ=2דrbw2$s=oe 8 [`.JR7C]W86CQP_t̥gq'n@ wyy%E g;s*?g!y|OĦ2!As/}[2g~Ӥ?SC*]1 2p'ӊs sn^wkC4&.)ԼNmeGN>(e8{wK{_~ApDXDNY-T,Ag]i;SwIK!mW\g^q8h۾CNM VpaBa.]eoo:Ӻ{RL}S4`)}8f VPX|f^Y;LŢ>?%hFϭp@|݈83np1Ե4MOr 7vƃ֗XyAT2IN%RNTCks A,@ڬ-Ów~U:)_EW RPCso% g2F ve%" м u}(:rm덓A8˕b֩ƛ9>1>0n;\6 Ԫ%ػ?Ue#}['6qg5(7< vo/xE-̃.EH:_2#ׇEo]5d4+I-JKLNu*IgZ g}S}Cmrutue?;~¯_l8jUZT ,$mklqCˤWe>֖mx[̸qBCE>/?r%Fy irx;qBӍx1c)w;>J]]FM{6ց ==gոG=1#bh``fbpq߬e1UI3׭si\pr(cs֊cgx~hW\25-7| &ypjK\P rr66-27fMJ"72=tx340031QK.+L/JeȬݛ}IC }ӟm? ϝ!!dSeGoǸ釜< PpH-I-fvK79 y\^gʐ3'.>7&`s\ԊLV_+S1PEP KsF;pgks/Oh8t̆N/KN,tŲW/,gnN=s7>?O**JMLɅ;WZUS ˞w7&mx~//JLͷыa2`ӣ۳^D}'H+Tٳ=Xya/~)<ݮc)100644 GormPrivate.mh`g; $ #<2LxcD3fݎ="Hj]{L%R_9csτ_(e|7&U Y100644 GormDocument.mYJ~[zN5^g!x[̸qBwhn ٟf³գ Kxc?n=HLłܞrD@BxK// >iy1KV6100644 GormDocument.m5W=nEΒdy@^g"^"Vx y5")NsAC'ex[̸qBS%+B{>>䙱=l kb jx;tiHjeߚ8ZcFP xSQf~^5.PN _qw?l ~T#VŭtI :'^y#TeXjQ1Ȁ̜T_}}}ۯ2zO<6g8 #xK)kC#I2<Qf~^5. x{ +x51}sO77eeF}V}cݬ#8xH=2WaM>$si?o C>/KB)pY3<^`wg)iy_XRRTZZW\\_qN2#}\-e^,!/Ա [ogjhe{Y_iII~v+}޴%75sW:|eʏ;1dBm\(!aêl\6XpYNvOT;`Ovo)hT881?sr nRqݢ U &d2U'&)'92쁔a lCՕ/fE[|^_[\KW3]}U; Ϸw+=xrEj]-me.,g]`kӐt{De:c\m$fs'-ʬۮ}B\2]+vkr/ڜ1|$#$o[򨝣h ;EODie0+^v$bR3'Y!/g➧?>Xs-?V pCt\9>hsb&dMtedMhy]-GFsɊy_/PZ5Y(дh|NaX񙗮. 6Y $4]ҋ=bpDr?[>E t'ph˸mӣlX.騫Bq*e{ ܱ9?.>lIHAOmջ+%n- EgQ~zQj1NLNRh7n]}߄:xGM?8'3%];V:ڰ) .;|PESIjA3ź'\XbqMVd]!%n9)hN\b<7 Fod %R`ϣe"0kTi+?` ?!ܙwwM9X]V foUdhkpVߚ Z# /9<'}.ΖÕH5%пuSh';$S o؛]+福Iݬgb5qa[$<]Ⱥ0dںAsvx¥M\?K-ҵB͛G^xnڜ? Xoi+⑋Vs&]~xR?>:;o[ۇP3ab\nQe[2GR[&|(,Iz^sUީSk!y *Nx;T'Os~>W͜9%]' Rx340031QHI,IKI,.N-f+6"bt VH2]ʨahufٵ;B'e&2)fOvOo݂՞,x340031QpI,.K/M,+,.auZǙ+.d+!DKjZbiNI1TÊGJ/[ o>^y#TeXjQ1Ȁ̜T_}}}ۯ2zO<618`x:W9=:ktsڪRO=#VLFrh`CS=mox%//;1/)+ЭI3IF]x:0pc__ʪLas㜳#VC>/KB)pYQIxR Y$5V#8 zkq<у6Xؘo(-P @+5Q&w)k1$]Lx;TeI^m}8X҅?xxqBH"ކD˯~LkgE61ȫ̬Zн(,~,REx!Iü}ZZ`۬&O]9 W.x;*rTdHy '07x'3~\95&2Ux:94I;(ь#4~"7x*OJk=x!//JcuјqwR5&^gYlxxQ |SJ>5bxp灒lJ6Xm5QXDג?N4Q>f/x|B&6}yںyk<_2·+Q5=?yb.ːd+0\08 0 7}PW*2j~3lqQ#4e8e#-3k͝: xukȝ5?,Qp1'r  @x:N=D}n oxUד.>|-lԥ\yN#!xj00@1Jƣh)j100644 GormCanvasView.m|,1"kHGcuјqwR5&I.xS&lSG88J3+۷.6ݲ0ɿIP#4~"7x*OJk-&cxZ//bAѿ' Q~ q;ؿ L-?5p%m]"2uI=*F-r(Kx:B]mzd3]9-dKs#4RN8e0R'n$wP kjd2x;T3|\ץRQ?>\x cxxQ |SJ{:,soO@ɫ>&*n;(zx:N=D}n oxUד.a>?vmZ޶#0,xJ//'100644 GNUmakefilej #ͧ(Əivw2_.7pǕa'/#c#w_x! :(s%wrP[äʳN1x340031QHI,IKI,.N-fhVW%ӌoo.3/-еNJVkvk.]c/TQ~RVjrI^z~Q.[ o&K>Ϝ ,rx!//Ed28)@ϳ,#x:&lSG88J3+۷.)RN8e0R'n$wP k͢sxuٹ6Q .Rhk޳#46NX3i)=: /40000 PluginscWp $z~dVc!ϓR XUw/gg(E0}x!// +h݂pGX40 @qxxq,ci"ST{,9q: x31w_sXG^뱴_hnbvjZfN*CJ;my]lV Ĝ\]Dvʰe{V=i$)WXG ,i[Z6Bd#œ=o7*3hm-gfVBBx340031Qp MNMIeor柜`M0PWPTo:Y~z/ uՏ >(rJ3rd|j%ȔtJ~hjË RJ3sRRzb_+'y=Xձݲ@뜽Iv=> - Nl~$(x^s'ՒiWOZz!ᎫsTZxR9iW6| EnMܼaMۢ& u Ùs5jS/ձ) g8%\x[̸qBk[}]WS?1Ŕ cx4i'M]{3A+'ܝYh 90x[̸qB;U$/o>W,61 7x4i'H`kE)q3-v(Z @ xcC%HZBݣ;^pݹn^-xSɢ9PHڹwCƳ c;Wz 'mGM*#4րlMxciqS_kqt'*qxkfnf!rkP"ӌs |(]"1GӤ PxH//SqdÜ'*pQb911x601/zgUoC1DV;Mf@+q!u$֞':ExxqBҤ{M,jc.wCÉ xwH-L|_$,x/s,t+!։p]$p(Z( #`7WX3JA44PeѳH2AkD\Y."0UW1,Lx;TCHz{S ׿s}}6iFw.Vk!n4x\bSx)epZQL8^uʨEV100644 GormInfo.plist(5GXO,_-۪ML`bQ]4y!nyF("lxc?_r+>a\ҘYI #x9ޘD5}SS1pc܎hfuig(D,E0lxc!Ȳ+O[\4nfWό_xc&s$Fnvrpͤ*\=x!<4dׯlhTx 1xcHb%_ 41d-{tfУ O+x!Mrb~ɶxTYx4P}`ŕ+tʵ=Hj6xcȦ 9WK=T3ɂ )xcY6Nqn^ux}>|C`ؤo2(100644 GormInfo.plist+hh7i8wM,zT^;jVw)}i/%NUu۝-2/i"b6o xc?w2 asvO^#lO\雕D0 C0xcC%H\{{JD\oXW:i`r/jޤgyxSPN _qw?l ~T#VU&t?č(2iid~l%:dOie#&j $x*\KWv5!Db*ɑpZӞ_o3W? >a͉MhMx8ڐ100644 GormInfo.plistR Ȼ 7<;6bKM{xZtu=2uvPH_h;dػp͓"^xSPN _qw?l ~T#84#X$V+<ނPWo HpX0(%[>1*W jx:8o^$Vvy8#Vͱ 7t73x}IxcC%Hcҭu]b޷Qjɽ̫eux:-{< )](#VLFrh`CS=mHx yxڛ~p;"5,~xcC8HZG1'7kI.2l Kx: N m^x: @$ȳ#VbڮC{6gmxcC8HZG1'7kI.2l DxS'Z7 o`ϓ.# OUf!C#4KYA~=i*E)xBiaKk~&&x9W'm W D{eB:KkTtByj}RRRWe)nx:W9=:ktsڪRO=#Vxڛ~p;"5R xS " )T6z|%Q&㮓#84#X$V+<ނPWo HpX0(%[>1CsPxRX}ZꌍJ/6H3#8xH=2WaM>$si?oOmMXWe 'b%[τkW".x W>CJfGO{ҫk8x:ždI4 -y6;ٌ#4z"#6Y/K5~sk͆W}x:3$, |\AR`#4ցm1J p'(?)fkIxc?ȟoV6Y6k{Vb2( mx!ȐyLeM6#txR9yq:|Pɮ6nM'..f00TosԊUdC)Z:~L=$axc%;_"D f_׌1xcC%Hp3M;gw|Re^x8Ƶ8LfS R8ZygN/Fe#_rxƓk?Fx8ƃߓ TW">Q/yրlMxciqS_k8x+.%W)=̯_RȜt L +xUmo6_qSCA,vH<DKiJ))w,q!>G=<Xi 6  A)U,uB) 2΀$2\jRGX۷O\Q翳)D<,KQ:+M cOV {XU•VA!5vx%r;>5`hN{Gc?Bk {CXWlS]uZN 81;uStjϴMSN~xn]ߍÛ:DچjcENNi;|SK\C!IT>cq& }[H% [D;*-qS\I]n|v~F-/h}{N^fs^;BdJKȶvD*ɤj`xYyk&ޤtZ4EzWj` 7n^1 bֆ~;bA Ǟ/1Cxb )Te]\݉Grs"޻SyMTĈ\F%RgBoeSKgWamuaJ2XKfj gH %/-`5V(iQvrsӗ}NDzuw͕B3ɂQžQک['^y V+xTn0HGQnӄv6i[QH&'W7Ncdc(WExYnKٿo8)L\^/%S_ Q!}ERQ΁\7CxOD ~˵M"i274R#YF|2$WW$#g)#VXI'{^v3"w_>nV 0j}cyڪUimWΰ&vy.LH rVK}L@`T,ۮ:OFHB h,B9a:C PԴ$B^$W`7A0b`b)!7,"lHs6,-ݯKݛ4BCb8N1Ū1$H}Y$3EM(WDT J]!g7gGVU} u0N*TCҹaD2zvlz  {˅Gy/t=me0i׻oΏO/vwl Q[#X*ɚӴgPdafi-ܷ69BjA0]_%O:S,#AY8Jwi!!鬓67.6^8&Nx]Jdԏ:eb)N]kdxXB&ZN?TWC7"N/H_Ijv"#'Uɤzulr#ӺY 5V_}Px}JAI {ORD`c'b!6ι %!+[¹K 6.|of?w>v28f6#KœPPTk6Q;r1`HS <&^߶9[U'K;GV>94ᇶR.)x:Q ;JMa+kj AX=䫷wԼ.X+qPxS=qLB4l}6=H WC_duHk㡶,X=-!$jˋv[y +z!?x1c:"Ĝļb. 0_ZXZ\Y1I8#\$#U( JrtsJ&e>uk]xq}µzyx;mB BAiqW~KOKjxmBOL0x{mC$#OEj^fb(o`asX#xmC$#[JjRfbF^&L ]xT]S0|ׯ7LI&C060 b_l[IvB(z2-K{+Ox6R4B,L{}%c)ܖ:EqH|)_ڂΘ캆%1vr_A@|iԔc YK:C$@*20thRh2ï볫!\؀IcyGi*%J>53 r Ym Tl ,Et!Hȅ10dD@sTza*ֱw}L'ur^E Q3K5A3J`x4M8#?hV;|@8)s~qț_}+tyv-# # ͦdkH-d7ΉKiZLPVw^=T7VxM1N1EB 7TA6-B"&f$r$8W@ػdg~?N.:Nw⦅6B,&JGGKMٰm7I 1 Ȩ#)J$ڎ g6NE]: OLwi]Z/b_ؒpV|9X)bV,7r0;? NõsȤE}SɏSH1,r4f#[K^*i:*Nx̽isGaЇ7HT[iL4mu4 df.\b~}s=Ē(;6]3"|9~͝gٯ|:}z18,u?mNl_O[Ed"]fgQ/~=}xep:mQ>7.qIY<= 5`*ml/.,?:].F";uOg|-.Ld-q>8EnO8cGvuO펲<M|v|49n]rxAgٜjKdϟnkGy,[6쟌r-b:he=XX|d݀xۯxB*$D*BO7RǙ{7~<=zc.2^& O#fM~-Q:?-s>~˳%xs FdI){*G+|iɧ@:dtq@gPs>.g^ll(."7<3^l5|Dy}|wZZ$o-Ɖ8}gSw߿с@W;[[/#o>Ngo$!*V7]]hsCl=Yr2wΉÄ̗yN6dF3/ L7@qg|k8CFӯ[Y :.<|,,1aeЎ>Oa|&0!{O!~`2f?hӯ$ OÉ[?(8KĬA^~QXD6@w>./{v>@h9SڇȌkћ΋lg`滷_ ;\nv}qi6f`Ԩ<r>YnMg.t\O)М1'ZoGHO ^ lƥA74 D_\b:úO?BʺͶN/ӯ)n D) #}侵 ߌK{ $'` !fFqϗ-_,O \;Go9ˏ) Rdgsg;0-$y^'Ϟ͖, '?鞴K& K@E.V͇'wF̋Us=s0_0UxSqS ,Կ8_lz`:0<  CA]cq%d׬y!w##{2D .qFg É`NaLoݳRײ0pĮG+ /&i>x[4_ !8K'K?XfgWI> }GC$HqQ RߞNFR*G{ҥX %kx(G08  @-Άh0Y U=a9\E`>^LMɾH/y8,L<3iz8͎9zɹ0V/pe#;Fw!ot|?O-/M^./jہ˜ܣF9 qr~q4JoGmتX$|GXǸt&9DL/cu1rΐEf߆GqhVbD ѕ|e%(4@ /N/_Q%Ul+$pO -7$cV<!G. Y^*緆x`lq\Mξf}9 !\ 2y >[Ocǽx 9א0rb[dtq?uH):jM?:^OYg ěU gGB qj8ե %Ē-$sT+A0}G v޽(~@;< y"2 `ękz\;,- ;\ m;{;\"&O9\j8X\t\Apӡ ? UOjJ ,cmE;N႕<~ؔ_p6`:}I &MƤ@0|\lj*VXǁ%i NH1G`97 oΩ.. ne_d~Zpx4w^tmqߐ$N,KLi,[ e-l_vuܬ`(M:ص@]R)~>DP0g?~& c~%ma`m2a1"Io3\ҋ2ٿ5+hY8 M;&A!~vٟ M꤃@ 酉"cS5oK)j5KԨw=N'aW\-J|}V &É.{pKC&.DW*Nr bЅ]F:ꌱf_e ΎSY0č `}ٕ],utR!a%ٕiF P 4w/3T #\%@1U$O`: # ((~$-pҙsQ/k۲~BdB =6l#6}lէ@Ud]Y!|=Qޟ?Qέ6*wgu+]3N_.|A~/B GX%E%\$Wy fh%A"5il̩k0#9Ӊ|nqnuI2|Ab[Ƭ,->f^[V`u[5_D搅M Y9yOʺ<|fs6Y`VbGѮg)$W[7c^8s[@W#k@XsN7ҕ)d:Yh"UaBCڎ^6sX[T w!)=+= *XYbo!.;jHŒd)vԪsIƔqf1f$SV2S :b t=I@E$K#41m=A'ztLwEeLגw;();6i+ZmD>~s@br2o j#%s<'fvCo,e1fح!n.j#DP~.L+a@ŀrQJo(,XB$׺CDdsg*_4ȯ_Wgg:fޔ@v$BNhkW|3x-&ǂ+!PˎM @+'#Hr #%'6apԞGuن.?-),nc<}jvdNZ}1K]uAi`ZF1 ?~yw< ɰ( ),C!DSRtp'XHZxeٸMM1#,\+N T6DDSi?MW:|Y\ߓP0|\n'>PC+ Zx7-xIJ{tt\c!t]K&slp{O@(EAcQ=j Q1 p W'gˉm#ue=rӟcd%m:)»UlZeHBY VILh9YA"\]zHBY[! x OID T`Q„˞%9%kJ@+ibE #m|Vw aCf5cYq#虤|N1 q"SxLSOR|IGv1sM1*h["0%q?$᷌]aHR40< W>pDH.Έabϥj HaH\5cJ쳮_`nID('`a"Bⳃ'.Ta /a$=~T8ӲOox,_^_Nw;^%l(-HK'R`SX'-axځGs׀!0-5xBD(6 5c+&0eO\b' h.a~FFHKN%Stͣ:pE^{X>ӂ?t;\`fb$ q"M&7fSŦEj5^w^|hczٸjˠw$9tHBp 8$).@6dE1؊gA`\ UˬAItR!fx|0ahny} <.%x vn-!}zm${rokk@@A*W [t]x_~WnYn|?o?+"6r/ÿU4plmm$NӾ:9V8BU͕9&$>04A$uBRS,vÖ[} 8b,[f^7PSp(B*ȻC,ڱe-1-YyƼ]ץ] ܍ck*:-Gy4u%P;6SciJ^2@>ēHwСb_#GBH@=b~J9B"̳'%up\3OQIӆJ(VS]͙f>QKL G p{ ~M<b"Z5 nJar,Q<92XnPc/s+M "&v?[g 3wpF!B"5$G!9G P` z}Mrl{`GiF[@.hl:"Ł !/x#s%I]≂FbON]#qS}-*t+՗;=rΎeF4R`?җ(y@.; ARt4F c.-HFV er I67?Re1]?S P$ng&/e&#ϔT{|6咬^kjʟ kzwwmst g4+ =!7& 5?i=QQV SÙDd' GAs)YWp[J*,)BsQ; |:%[Ed=])-gf/?4^J3:J>%v׼Ҟl V`9|ƤZm< 5?.D$8e6!DGRPs!wd>+ &$-bLXLX1ZV av̽3h|X̯?Z϶E;hUla!^VUޚx'v}~)1KRd;Yq2ϟ ^:x9ia0삆{ۻuxpߐiZP"0X$cAkt&Cݰ =[Ewꟷ$)_~1NM𵢘YWN2_.">n1n3cF"EπmBgBvݝ -;Z;IJ!?+\.G#g\ak4H/Қ~E|$`t-LDbpr-8шZW OxΏZ"sђ\5P* a5ZPwrY,!*x s@ *08=j{sewr N7K[ :Lc@y+Ե9|g LmwG&/H2k)Ji.T Am'3$]慱E2_1(@oרx&8,?#"EzEL4Lzu tz&(E=`w{q&9$ߦ(a&G[=~`w5օĺ*t3%a_Y{>[Za +Zf x⭏D ~e\" ITf61ޓlcݿ!bw?i^i*&%XN^k-drk>IKOL'A66{M }T*,!; JJ6*[ǛpPRGnW~@* . #zHSTP)pn}%L\xc#$q͡l,jɢT hAWfyg:z H{9ۀgdUL9W6ǥћxg?Zߕa{>'CdN[މK(/m:g\.V?-hѷ3onO`ܪ]pD42SY_i}P𭱄Y8p&;"Ix\Cqsр0>i&Npա *-U!= Xb~5'͍Ļ۹B"i{J@kV jk+_kN:uhJq,X"lASCD%6KmjܠdIow~l>c9~J^G~lw92_B`u`X'mIfNiz/)V wp,+P J-j73k;mpu:V2zӬA뀾w;mꦕgT1X]ZƢ֯VQߠ)S24>bEo%WpIrm&K);8˩1oI\+4HL5`/P(z,g){19s9~Eǫ %cAE1Y9-L\S_*kuk'Qʇ4Fw^(*mA!iKAFSآ@B?3 /IX -mWjZ(IV+Qj}OΛ*ض@ hK,-FmFckoj-vڠJeQK,yvx tsE3=2xf 5M3%l' k Z+h4`&_y+%* Y@yG)e¬U#QH_b˛ ώ ,v?`KVl MYy4ĻBۏu++(ևj*v*nUyM./$U([.(Gʯ}&m!׉w+H3as.Y'd$)7捀 _#QskhXbҊ| e2B#=Y:)ѧ}W{ &Y*dzzJCS1Lns9NY!0}KC|OyIDh^U)Sw.b /e3 b6QΞmh7LƋJ e;/lX*HaX<=l0*BZ#sxCAM+烍 {{^`Sh ZE$"51~Is _"f \o(uKXe95gR;F9+RX쥁"au` w|P#R"Y3en|UԖ Gf _A>4l޿[h1!WtT'!X`@I{/w'VͿzQfH|rpBރO/\J ޣ*ЫF f t>*eJiAaJ\c0L]dz>-\RlQPcH3eWI7)YIsz&D\?=ɖ si1LIRU\#- :d\T̵E[]X(4lIb>E,.*`.VhS-=NhL]dwjr3.<ȱBUxy,|})2/cEB"6[B YhJӉVX(Kea`sY+^ <:u뷣76YȥVi>:7 k0P-#NRtS,.! | iCā&{S_ȏXAm 'ϵ UxEt}w~{4+ Tw?n"m&\eïwgS庚?kVtGVU\gUs u 4zgctN5൬ 0FKEVCb /-W4ҙI4Rb}n3آbT@2e{N%~Fb>0 O!܄~l*!twwJaj 9S DMr|nm|cyoDS R3eË p#k'1# aWm,>" g݋ы /8iɯpc@vavѠ%oޤ xW5W匘~~:&BVaNAz8,Ǘߎ7-:9;ϭ{E:Ks-Il]^|RMx1m-U5z|0a_kʁ*g'Q#w̟Ϥр@T#Df+s: >ؕm 5 @ZU^٪6lxvt-ȟ䮭eguE`aEqKDS?0eHQ-$rA&넁l< +-Z8anZ/"QB)2&~cӂ^[ﱠX U8~ ՘4 ^@a|1\2P_8`{ަ.mhY!_f{* ފJr5FM2;|f[C{js8>n΢2Y|Ц/_*_ 7UaVd۾tf1"9K+r.WY#pQJSFHʈA,uيś6BJ4whG"4=XE9:*SLyΩ8V!t#1a QK<Hr`(H#ʒ*')i>%ʃwIwf74!*$ʮkP>5vb$@Rs,&X}F~ړ lfU@WKY~(׃ Q1Ɔ4{AVBw#W|X`h2O1/ AQp6Pb F5Iqh%?#.qܜlsmz2wzh7u9.ĺ%7Z|v.F[6Q,:vtZ8 *Xrov1 Ȋڻ]N!FֻW%36>ז;5,rI$K7ibZqra fL䯙a5Y9i.U|* oR)͚LUZȱٟ=]ޅ!_Ii9d1D$!K&v m~E.?1g|7GPQp7Su|ZI&)9ܾ3WJ5^;ks: OQѲ "dĴ`e!^n0 f4MAM=Q'E+KmRC=ޗVT BX2,N'B+4 -MN.,#`|gkRΣG`.xG9:sks9͉Ću 3`y:2a*/I A@_aS\r[V]F4ғ} B$v4G3JZb@h`z(InL1gw2a"A4NZbga{q v-HNlIu*,.hskrİuأeyR8w,c*R:KB}0TDT@!<5)ezba_4Wr  Dr{@6WrWC-)&l9[% ?5vT8`jT9H-l/mP@R%l—p/[ <6S@/Ji Ql*K&3 &GںeS&9hqG2W[m_ rE⡘" e]>Q.0~טz_U<6{%c껤 {S ;I2YZDJ4dDT-e ˡFSGHk*%FK3(t#'er|#ݡ%##+$5Pn1K9J}ƌv 7QpK?!yzP=['>MozC)m|u}QsX9X'"*PX*GN#X}*ÞVMuV]jH6)-XTz.FCIQ~,]nd+0\: M"D`엸r.La['VY&Ds!I' B4RO*a>WAx\nFU0GI<4Қ&F%OJ5m% Y1(.&3WcK\l9:+DpNw6[OCMS`f/Hz19iƙ$#SU{+Ng\'JR}T#3.Xƍ(5R2G*x"^TRۆ#A'O9>yZt[SȆ]A^RNG".G vӆ[+G.VjrJ![& \XʣTz0*mP*DXM.zJf?,pLj9[Y?vdI_pd^O H I3ixxK[z%آoCKg9f r?J8 ńB X=snr+&b:I1w-&Y3cv m8z!~I@ԅbi`(t¯Eh;jHEa0Psо}S(ci])֥1(3P-7v #/ dͫ"C;LI(λ>{:SYu)bWtɘa"JE2V.LtJ*ՑN&Qpe-(cLG_do϶&L?qLTkD鑠53`k+˯%5ZM=7FX>G)sVQ-ƠϐMP q)iY^mcyїH+UYk~v9N D!p  4Ϭ<-D*)xe8Eᒈ,UG"eԻ kzFγu,:̊J.+K3J|1ϊGv&(7aMŢF& (Ne5j&QrOU)j qq5fJmRHֱǧI854w7B5^hW`ֱ($72yE w<&Ǵsn5߭!P7+hن&`Mkv7N-BD ) ħilpkĩ}K f'l3i\/BoNP="*=$(m:~ݟQܤm >O+AArj$ށ(fJؽ r}kk5ګYe|bIQGE㛅E4·TFB$oJа!9VSC5 9E}?SXLNGʇ$Q@P|uE] +x)o=ڝ_o''K#tI\`gq#="nE>s'Mw@D QĉL ,YJ`9a_RMK}4Խʭ0+"SiU/@< e6Cb 9[#  I7{3I06#NF' lyʫωw0#K%\Af7n`fx*GB0=B NSl,!=-dz+J3O|C54BKЉM϶+ŽѬQLY/5&ׁRÄ..H6f|7*(JmC!7e:pDJ@m!)ڿ9;ssF<3a+$ ^6 Ӳ(jYT )T.ʭX'lrv&vDletZ"C[D4$/ n#;GT5p$۾ʞi#I' S[&uv8ŻR~i5qZ#rj{OuCݖ6sUCe,G"Yju㋔ _?'gIhϯpJs ƜӪzsC9ZC"" /0Wnq&EV$ŪWNN偼H ?E8FKVL 5=h~k @osOXf̎,dDfS)4QA'.٩ٖ(DdT?Dc 𸿉Ö tWBRFj)}yÏ?N?^OI2.dfw1U@D1tj,]@Nt'GB*tliA.ISZO.IeHŸH'D[mrI#h" h+cFF8 &mZ|-ʆK2 !*ؚ1 a3'+^RA+2vYr :M~Ҏq%ɏ8YFdqkȐk^$Eч@冕 C^֋C4Dܾn8T2'{>;B81e>@&A@ ]~\/#G q}I[ogI 7hM!+M'ڑ-&bU&B&DŽMHڊlD4;z3tTVč͉iD ŽC3>|f}(91¨ƭhI$l5q/'A <q6@yC,"1stz13)M3X5.>-OwiQORO$b/YhC屛(dEdlpi^ ׫xu [2/!x=  #oo>m8JoxJr;_ycxꐯG)2H " 0 [ִDfo݆w!rpl"Ö6܊;ߛ(>sF~{o?~x}t@,6V1ö֧5:=FT=TNNB%SL$H/5NhphXx^mpE{QC Ҹ'NMqj8O;!gDy#_D1v$V6Ӗvbmɏ=PNz~8V=!!1AaM4%gB#ʈL^`['KMwȇ,cpD*pg~T7»jv.Qtn|Bg dh7tfiy-qKDho?)PuPL-%9kBh1miu=xxmc(^sqcLVVWo/iY_/]miI.*na*۶UjZR[*d u0M[`a&A0_М#j4yToĊ%AHnnME3*Frgg9 21GUꆱu㪅<5pRwܠ#DI!%S >-uR7exːUX4F欪/%rH5Tsm`22KuUD2zw'HZhf eܛ45Xś*-Xj0f'9k>@$󎷯ThvC@+GDIL&08DNh̢g,=;e);wJ=zn?`hYdHE%W z!Wu퓬@O"{2G͊ʊ!GXKDD;}RbF82評Ju Wdlʬ؀ERXS=u JhԒ@B%MyU:Ro)TȤzG[cg,ѣ vʮ*KhSKkAVaGD*@$QK&i\/cn~:被OBu,=Vm$ %RLj Շ+z?e\ Zo$$._X_:.U8'I%o SiJ6 jF3ҩ\MaMl: hZS>җMDe U6%ldeo#&XNܐM0^B]Ţ807*Rmİ[Qq@W4^c8Ll\?deQ5d5e2Puȗ0h \w`޺S'6-E1 e6jQXh⪡[q-/Ji͈nJVHUH'Ivm,zI$8CYZd`=KBd*%k{9E},P!nB?FT0P0-*_u_iMZ@l",S0FJ:Qr˞0M ~CscDbmj{,I{JYe0ͪ+r:z_h>&N@;6j[^PHiĸK *zͥ H6ҁ}W !,{{K(Bی!=tYܨ*\p@չhJg;VX=X\!Pܫ:^O'~/n\E ,V ̅ +-@Z-Ңd~yb!ASNFAD.o(?@4$WXoD`W;C zIIG Wv$1`JTs܏ggψ!7a}623;rgKeӥ8a[G&/rT\z;FEkw&/%,Ykv&ע-eܓCp-ݽnݨ{V;^Tx-;{bIe_M .IXC_[Tuf1Fz՚ `PF UYzW&- 7Iu#QR9% ºfO~;wiTe2wMAp!R_2a9t4A{T_ y?a =b$r+L~gM5V^蓓o"}(^G#>Mo,Jmo30p<3b9;š ၊cb +OBb鸐GL1R"5Gۈ;|~ˏ$iR=sd:4U|v0#3@lY'j rͻ\_{^E% gw ㇝^}XX 0!hMt:ߩG*}BeEiŶeP6.dсѓb&S:OVՆm(hX~?@R=ʙL$J*۔-BE5/|ퟝ]nz/&`s&n04UDsug.eՎGjJEhSҽtB3+18bub^ J#TjTo,jSH+}q2 !&D՟кC=Jh/gLK &Dżlܬ0` !m/_햯5-Q{Lwab %qު$ohr|$TnkxŔ؀-{uM,8Ps,*mNDnW>{[UPH(aNt~ء$gS5M]xql`B Oal=ʩH\փ+5b}3^"u-ֽW.0׆Zi@VFS7))|B넯@YeӼcK\D0"ҙ֗f !jdQݝE C_:UGQLb͔w lO̸hp&ci )h)`YXcaAv{sL+L`R .-:srfІյs'3`im_T+DQx|F}0ӝPB0 t60T{fb1!,.%#)!;d9)&%G;rFND{ jͬ ZQ%Rh,-Ck%*.E%U`z`TzL|14~a[_VrcU$)b~*#c8%fӰ!JrG*FSC'rw~pZ%[U v9zYQIN#&YW'{/BUsdS#d(F  ]}2SͤǏj^eWN$-9.[d`ZfK4Ϛ2eMӎoSMAMӢⅎbMq&_k-e+nֱL|oDjkĢư/_ ߖGjYA%BhCvs4^=GJ[󉞈g-[]VXS7zVJ9Ri x6ŷxmI$,`:ǨnY%Y?tDk# K}=X_XM)i|P5fY\ îY/9"k\Ecf& _>VC'M#_1h|cf$ʡ*/QRnh饛Fq7KHJ:(Ws(27OZTJ *=^( a[mƓbY&g]m1qާ5sҶ}lʂ{;O|ACvf:6]`;WEjN8dhRٌ Y9\|:ymVV}ѤT[!M7Vn KJ]U3:Y7qS]gj\λNxç+gM ϏnqY#S4ǒR14nJqśǴ [ϼJ4g[fܩuƮOo9k+휨v]jtKhQ]tmٺ>Ռ&fʫm;C*8aŇal+? [t|2[oWs\ko)Rq]{iEk 8wv^g)fw1ěhXp,{4<}AyT#O} 1]R|,_%"Zj ] S+Q?ʝj9Bߕ YSH1$Ӎ ֶⴔ1ʐJ=ei2.撥85gsAni*?D(DSVHEd\-/%Z_ZpUVLY`;ꡢjLPoV) ,GXDhZD79nJ"(TEջ e ^l 7H֤!Y*Fuݠ*}䢸L7PȺ(VjшI2r }be%L:u.Q-x{r9YT'<0fH"WJ7sCѦPL?L͏VlJ]Qij 7fDiǰq8jx.?c%#n 2us1+cK 5P2bQٓ2ՉV=gDl"eB$DQГަ,vJPz a yn-T92si^`U5CMO=Y؅3Xg¦2!)F-ե޵¦b/7T2c QHl dX>9j; Rr^d4E  % =|_Z%%8zXD\и"3^5I֏;#$eX`:bJ\^ZsLU:A\e婐xc+ _ۼ^H#kK[k &eb|y2GN_ZyhSbVxYhg2ZJ,/Kۻ/ g9[!,HImryxq eI}q=]Qێ0E9yy9={͙AtDۈI9їDT*I8Y9r]Z4SmM&"TVdZs&ru>G[C_@bԧɿsemj,sugrvv8p1Ԥ=]f2AϹa|*F{YH^|x }$BjĆծt|qB4V$Kܦ?ET+6ӽ1vy ICRI*بQGnD0-d!ڿ}p2AA3UoY|L6}ǃV`cgbJLB딱hHt1Wp~+p^׳"#FDQԦM91B]LLLc=:4OG0NUMt.ܬIML"O&l,։Z1d=`_*FPW2D7L#.@%b+ hч6#(&I+(gK28smr;nHѽ!kf*qw گ* Kŕ.γ{{0":8}JYoYDUf8:ݧ? ^/G|{٠1nzTΌ[ڑC].-$^5[w2\9J˴ ӤGPzoծs$Gp:'MƊV+'rR/8O+Dܤk /ݫ~|BYUX L_Br^N'0tޖ_X44ڌS}\J=p&WFp~`uJbkKW6*TpNTbHA@.R'|+D4ԏzrEP.٢B%b?Q?xmʠéK;/_=~ũ+֊}oFCZ˥d:5g^AoBw*m5ީ Xd+πPnKs=&TiSQB֡a5d V`y$r .EHd}U`vGVйSA2NY{ SxŗLw߱sdЋ$e[{]mHtz4f B&E=05ZCШHns8AiQ, :-ED9ǹe\ҰOO ROyc/gedo/U{~BsD׼ρن1Rq߮IJ[MSv.ItP˩3ekbBA )2Eh*127qmUQ%'FofDq'3KkAWMw9͠8=sJ)ЏS-XDn*M]-ݵJZKf`f/H0oYѕ쇆ŃB~}&w2΢Eb,oaT_!Z(I??w1f Ou(w-rJd4<RAa PV"̻-[hov01շy&~=i.n}[VfE?>8W!#lCTQ|*D El]/O[ρyH=Yu1Li! Y#w?qb#gfB#(H )Z:HWr W 6I@Wh5@v u;H'Dg ,`L" ֻ- ԉFGni>7DLQz!zcP7GzRІ@$Kޟ0[C=5_71Cl̖0dVOm6FX߂ X8o/U5q\[Vf4iMr~0jJdY)C38ȱ"ӏScP2uWT3ˬPQ>cm!6:xcOp1l4--@ yfE}?0#KpOH.m41B=t{:I6~=P(q$3nE8\Ϙ~dz &"zn iڥXHJ:ր'WXX8n'j[4O.4$J vXJW5\ S"1" ד,$8U*l3XU}nevܬ a imQu0ule $ "HH\%*4|-[X9|0kRd}::w˰}N<HQxfQEzˋq@mmtC TiR31n\([ #xjVB`Rcޢ!Paź9$GwKXI!mߎ0FF Ӣp+Xu8,Wvk(s7I`dJLZ^= G [zh$+UױCKuKe-~K,ww2xs)TpnUg͵:'O]vBK'kj1$Jlx0΄qrgY_`I*9jQ,lH\\͈1vOd٧^V+}̡u^~U7t !Ms%L҂(FvA*ТY):;%;(5Ů#͓Ir!#\Bط mA%.Hч l,:b(-QdqvNT`ۋXgLtc"6X`qWg|"=b@u1<{xt<_vnb;ep:[bDP=Q/)R!G_9!MOůM+8,B==:x֤ee I(?BrYa>,iH!r}nĥ _|c[(ZG$%CGRI0`'kt6Om,hM&Sp(hs_ Bttu:.qF)3t˂)s ]H|){MRTDòލ:: qL 5!4mdj".TC6%MߋKǺD֡INK5p+fu2;fMiG2ˌ$yyjba)a[gѫcI úo&BLeE޵0 GA$?zS:T8Axo քsԔpCQ0DWpnoJq8Rm=1nKYIݻ7L`a(EHEZQ:sꛞ:l1"+UT!S0.x!ekIk#q/'Ør$HL5^+]xY d>4MUgB»NR)M_O+_H˞IXVJ]|d,fuJ 34jqX$*Q9*ϩdK]bxʂ;x:.iɩ,($Tu|F1 aiQ<(s$vI9dih†zyo"ʇjB;\r8l>~;49(f\y[eBSU{ƒG杓BXpFT(\u;JlEm;ݻ^ > qӷ'?\>xطgTHG:T7*_gW̊f'b8Ȱ ysQ)L{@LCk覬N8ͤH!8)-+օMJlIH֍ډ-4ޗHSUP`&\,gTKYE!=v.Vǥ$gwQY;Zz+EoEPRA%,g,@cZy)Z>My՝-]V*{o\3M=-;:W8`B2_dE&- +B丹12 r:$8ԇ5[>tqF:-ởsu@m*Wڞ e :c8^Nۦ H&E^@T\"Zd"ud. _qeG䯈ƺRj FV&$SJl "D@@u?] m$˶QqgI\6Z<_ 1[ tw14 nϘ8o`JCkL?MtHlF2Lpt6u%2A!lR̝@GCRI49rTlLm;ǓBh7;XX؃5tak8ҧ>K9Oo*f@j&@WM_\k*[Bt'4LiÉ`%w.Տw9 lߑ҂& ů2 ݎ 4Q4GCP JvtME\F.nbU^@iߊUd:A )J"Ts*.]=BNY?R6E-?9/8 ؅emȗ7zvNrudgUH;58Bߊruu|[I`O*srʜ]ɡ|y{71V^(cG51jO1XV[?E qSZbxĐ\IVcͧY_ ^dZlZV݁%3|Eg:7׍YXSyxrwX~y!uR iέ7SHް;]n'iܮ9ߵHG'fQF67:!l@oԗB!p;..)ۣK-!Zb"')uZGԪzH$S:H6-޷62=Hm^UmS}֦z6u r֣{_c2{*hwJEͫe Gb1A&К[wԟMXwnIʷ\{bU1\͞-2 gm =Cٓ7W56;u "21a=e/ (/H9vmwlhcW1t}zCc %oAz bnpګH4e~$n 93mQPhc'TaKrZ*!{a16ξl!>ōbQ!uE.S9Y_.)8Y9,  G+}HTC*9 `5GNd?DHmes).cyq6S-1y^x>n Bxa1hgjfZqf)&XN%^51nߏG,KGþTߘ vDjâᳪqHIॸ &bI%K[bp|8T]U[$oP&2~ _"?}-G܄/8sCp@%d\xॐ46{R_969](}Y(Wz#" R6]x0'e@5mS;v,)7O8{BJDŽ9Pn+^^Wr*[uOSvۡ\e$cJyX؍cAd/~2I$[!h[3,'z5)8S=^hYhBcy7xAB<ʚbt#w#K}C}Ψ1IpA..VpDTG=^%;ɤCYUGw.5e0AaI~)Rqgl阰pUraP/mfOBtXk+nnAO<wi?#Ruf(g`n+;Xv1I$8*d{FҡVhe&–X#5557oy^ELA{ڴ?ڱ?ď_Gw1F^1a i{a^|}g4"ҎQheQ:٬†l,ac"!noqUXLi C ZaPvKHCTBs=#tXnTu}ǩg / QP3Erh #-YoܢP).}uox6(>cM/LTw2giY=DocY1`߱1@ױzWf(#'Uۢ:͋k7PT< ;Zi:3z ug VI'> EoAv@Q Dc1˪R\^L ,$h^Nm:/4sFr 8+-a'A<Цө*ɓ,ax$fuC-,>?9=u*WG&twV}-nttUhsOZܝ1AEBjJ ִHheA)TwP#DJ_BÕX"N0Хhs~A;O&P=&1$ uW,\Ӈ ~y+nKfᩥ9ڎOPU}[8RQH sQo=d܍83s|wDI6ۣUX<_rbvWg;44d[ts?ALdϴQ.1760f ~dJ꟮9*ȉ{ÊpL,&A>{ʮIcB5;0WҚ}_!(8\|Lu9"&䬡(t sG1|Wgc4L)Z/)@sW zS#F-RW\Y ;7ֲ ְ^*ͬ6 #C.J|*_lxdc=HҜUŝS/>]!ђ?8㥘 ^9"UCBKRYzJ |,:D!_ZȈI.(f'!ew_>"}`~浏51įC@5xcz!pW?T_ TOpK<7 {M|ȎSNn)~>ѨGiaYZpe( ]!n34Y?ib$Xf?Ͻ)̹YX$s݂4  x]F5Ɯ)CHxAlrfO}әnƩ@_lI?"qCL\,QqMEy8⪥joLUmgҒs$vyl[o=cwiA5գ#2U.81 v}"D`Ep: ע5bc+t)᳂/UKq8qe&3d4{%t?gW}뜋j8=&?_CD6 Y[D EC!aUhTݏHP Y]G.OxDE&EHxw ́R ]Fps%uZ:M~z, wx8LGtYW٥-]l$EZ/Hsc~)DrR>#HT3K[O1b;Nl/By' h?9xnm~渭4@ B"井,)^C=97%5"҂zJ¥{|C?aֲ]Ap4r D/|U()ɻx_.CvEjcTu~]ZI-МGV0C漺jJX f;!'hQm:hF 0{&V~}ᙝ_*Q%g[fq!@``~`x9Dǁ[(i2xTHϭ+ܱeU{O% ;^6OZA uod)QJZql 5kMg:◍<̼R-ЀE&Œtj:0RW{&>&MDӨ($ojdUZ%{ֱGL}ja\~>/'t,E΄DNBjz0RVPi-jk5A@$(p!VqҋTк)(kƒDESݓdZSEQ>(% 3M񙘋»+A4lzXzOlx|g-Qi)IRqCQ*C$<~]jCKPU+0( )ƈHӁ|~@d6xբ %v쮝\0TwIx}^Ev]dFIp&m^Q0 .\qA}r|hV¼伸tlaӡ'&kzN$8lJ/^4Шv}f Q69O~7AU:xbΟr;[ykX?SK"<у+C,zcTND(A9SC$mͥϸX/M: {V|6OHwЖ?:OK9.[&"\[#Έ-3!,idd۟Y +g@QA[B) )}k1{"8.m3cwŒkwxW JpwMՒ[ˆVZ9m٭r%!URn_X{7V9H 0g[Եů`PNTKS7!mKDZ)v%`#m4+)w~>G٦_ǖU<Ы2r|ԲtD$:ӐPZY\mw/kN1ɉ7Id?Y@P&x&*"ړzz⩻][>Ǔ-e%KhK=N7ۆ [5Lժv rY;J٠-^H{sqsXi@Y1TCy37oQZЦՄ{ 0; E1wOju#2%<9+uAJ5B%! @&ԨR5SRHMWїyoVǓzzWb/y+^2]̺m[֊wqv;]SHu]6?G:uߪ7uU_j/dvU2IE+!*c1%ֿU3 g˘f(XBRo"KvBW+ 4b~uJy5,pI.uxءHkBt YK"^ʩ|qoo !m>ߦ bzIتy| ,cwN4FԡX8{3/m% W讧<59;릗e!YP72iX2g{T%<TEmw%l@`ElΝԦ8xr'@lgkkpkpTM:8odr {gyx^JW#>$Oc>/?ۈ/>IAO^j'"Rb]2Ig[ŶB~/^\yUVBYoK!Nrջ]kFop,so\6|rݶ=R~ H+ͪX<~ffjfm3u48d RkN` L!;Rnlz!E B^m?CITtbUVV)eMN;lŞuZ #j7ևUPEºcDR lӤzNݓl{j/x޵ Ꮊ'_FZwt> bh 3.?ud~ig$C_|uH>Js-Kp#Ep Oo1& v[y\ dZt_tE) rK1&uj `lca%g eFaf]Q)A叇J!M*F q.ۛЖ2#@QpG>Ƈh!YO&r0'ĵOC=Gj}~qT~Fit9w}s +Tν!VV]*_I)*ųWQk}tU\gJ<ҏu1>XD 䁳4ta]Kr 4HktJ4F~uu4JU5_gU5[=UbRa^dK'uDo>+P{rM Ny kZn睗:ZDMjg3 Pd5yCl{Ԝ NJ)-J*wgi3O\ԭ"WXzs2(5Io >:PrZFjm{Gx^2E|xMcp]"ҰHB3^ʷR z :ɡƑG,ڸPAA]JiyjQCz_;c;d1Qjԑt3b)T h+9A4mӦۆ 5Wu-P:MݴG[+a(]1=\o:V{fcgx]kgy@^%]&Z}X/c֕E踊nw0 {9W{5"kp8lZ)ǽ^V|g).snlP k^P߀M oTŎЉœ43 ä;%֓CŹ#<ҵ8/ز>^x>$UQ #1Z };wN̢_iB u(/$Z6tJ`+]L:p}B,'Թ/q[+wq_ձ({ +ni5g_ujh4nF*[tc3!^^y9VRᛋ]c/w-m_suM?k>N&UlgF>lX1warWPW,QK\E#tMYJwȺLq<`ǧwGL%Ve^Pso-;4Na{o_Bz:X >WoSh$W1M'i4'Ȩ|ܬƍYg]LA[ 1 $뵼*9(d~%87\9g[^2-8PT5/j^Bؗ{s:(@g+N6&k|FJȿ%mAsQ$8paH^1NM>6Ex|IoRXj:In .ǹ%2scS>Z8XIPuK[8g]jj:ciBu^*Ӻ\ԇ7\Ov5b@[C]m_:b/Sڍ\4Hז/srh -ST@s ,4&fH5hfyKD[ݽPͦIC /_.!"y 'g oLlJ8pmݫڝԁH p&قf*{^A-/6Ƶ|%pLM]p̢6Lż#rTGkQ1r * ɟ`z#iw US]'qbɚh2+bﱠV,nť),m1:֢5QZyb9@{%qO+3nsiS9Jgօc8DnraJ * *x1VjMC]Ɔ.%"@_JȵsBy 3 )Y@L@_;$L|UOH>.)^uwJP"_T83Y/&^q\Bx \*NQqk>Խ8{HCBrTqS8. +Iv';Wҋ&l5fJЬkgj6'J #,C10:+ ^1Zo[L{㐑ы'U\Uݓ;Łzcc:|͇19BӒkaQW()v3nb=]}s\D)3 8m5f2~kl Ok4bX="dbnmU4T+hHHUFӞt|RG`|0>|Z-&/K)p^[nFLQ1u !yp+k#b"5\@foFKx33`lr|& (ac|3$ZG>uG9`G e}޺zSw]D{Q}Ŏ"y'B[Q0oh*x$"7GEt6VmH0@dBaWGvw;_S􆷸(6]洚jK[; xq6]W Qv\(倍{,G)%@ߢ O/~5XҪb[ޥA *^\hݓ3kϺƗHt$[@vLC^[>RzVD{lJ4iJPw>19%+5N/G,R0O'4h vZ#ny?ns[$ok!O [x3rMB؇T[=-GnWʶZ`L):uߩɍJK$Ia^)UAMOQHR-ۘ}\T+:1H]%%V6Hʗq0:h-_LKjORpR^|@5#Z eԡ)[LVgbxGMǖ(%m&H{ѭKú4^(x4)3k$XS? -ANӦ~&LqV*+ +rr%GD.[E;t %l XƗ' Zьfew1!c};:S?pOTUK/x0Y6=!U/2|ݘ+m*HkPٌB"?j'1[gvؐzI$"RirVon](b])[%Ku3w4v8^{W('Yغյ FŎ xS/!%>3a9Ԟ|t$v. ?SAŒŒk^P7 &-u~lI {]~Z?OG%Ƃ _y|2ott NrtO'srtuR7w:^o*A]~sݔLo= FtO܃:0).8VkO186\[K7_3|ao=#/L h~etˆJБ[4@a˺^T >b}xz5Q8ـBvUAolK$]Gl87ݥIMUOgtdJ8K>[8"3g ']|7vL >t*[舯uy2vlEњ#!EiDh)ߚܽ_<7|X+;[tdf/G*{.ˎ~pV#9=HBMw;GATТ:?1 {+ψ-a>Wg|ח-M҈8:|3O>.eCܒq3^_ %ayua/a2Oh4޶{iV+ZUv(]3DW68MɮRVu`ܴ3^! !n1sjcOLo͇|jn Q+J7\C|<ԣf^9G0$Ս|g,1if&3%au:&mADǔ3#CSuhiz?hG|+CD4a +x*`^tsRTn!#KC4qBtE. /dV$Ӄ+t(zmͭ_E@CoԼ%S_-QקjCR&gDn2G^)˟6ohhVfWyP \: 0M3;*k1Ev9^Sc affi(nI^k,"x[g)4fK5| |3x= ^LsI蕁s,X5k}VQW1rfNc* diS$֥.2Bp8js襲DT.fzh)H5<@IyVgHkO7K$D;FnH58ʄPخdjLe:Q<)-NK$(܀z!w-~ Adw+~ԥ|A`J֏uƞkSw!s4y_L]!a᭤w6Co~a>>frPJ= E!c`#5(=(f;rTrzu`?|.Yue4$b75X1}+cplrپK6t~L> Ԏ KD Kq<ʍ8Hď)S\Վ5"G0E֬ n< <҄R/XynEfxfQɱRtOtPojB)ؗ\O-tu!K+j1P }wx^7t{<lP9a({b`MAx7Ed]W4e(zόKಳMT~4";iOG:ZýCIGq'ESf%%Xyp) YԱfXU DpU =cLb٠lbL%kRy=X{-m(^#4а|qȽX>l xj[\vGUWRм+!U^ikdC<* ^a_ w~4#2_T4< Zhyzr:;>P qL'6&^%0qU<$fjTz1ԆAz&}ӗěYg3o@{/r_i\oYL@#ChItQ)O ԯdj*Zk=(j-)fHթ|&7IZSᥚw37ueO0t Ο'ᲟAf+[='maF݉z(G aIJLDR!D02`0 aً FL4sPdH'+61-(.'WDن+Z|{O#oq@qh 34 ."5e=_|;d?mѺjҍ &6u$P$N蹆)ew$> d'`<.hvgѶ$5w?a}.FWvR9D#+F0yrH_LҨ/4sAt+\]_+ĤmNҺ,ExU׷!lMc8^y#gg;$FQq%p"Sӑ6eDeL A+( 2iF؇V4mpx9<Vo-tRU'A?P#ZSl 4@nP1催*ec6FqÏb{#jqwU=+_3XEl4ny8u.:GX_f ۳]Rޜtgx9L6ku? ԷZ\%}p镘] ?xqOxc"TysohD7(0+˭~I o;012H%aoL`vu=OIe]_R](kRUq9 qgޏxbzYTbS1qUThgRDUb56^X%+F| F*fX\_L]`sA*o*wn4߆a.ap-q4,e9JK0Aoa3+u-bXRM~1d`x; жC_pW @K2  mg~W9;fm_}bX6tAfhhIxess3z4/4KiM@$v<>JOWހB! 9~ 4rJ*X#Yo)iݒk.d:Nϵ;+ym{f %o^,ej\[{F;XM{[ yev"JKC{5W><8P ôvx/#ոKz1"Y'=`]!T? I*e,-u{MΨݷWu$M>U+ͯ54(ZEkz"x7Tyc~V e(Z:awtpoC!nc?,ƏSW֜8O)mK;/LTY`*XQJ*> b9vzf!#^ .rX]N]or"cj]7p2P,Tk1[5Ӷt>p5RrDχz?΅$ r~~Y,T/`;.x L6jþR=XelH&Ոba4 c/fB'R_-ΕobҠ X|Mp%|8hxKƧi\ ܢfkϻkrmKiXh_I{!5c$sO?ߒ Y:^cǛ|ˎH߳Daտ7\^=vPmRg:B5PH]fsmuz߮~{;c"Ë>j$UKǘ~)2Mi<<>б9o& ~ےXz?^ngcS'c^fܓ~BͧǪ%r3A5h>~{SOOE[digmf׎ħ/!Lz=]:.) oXmX70d3*I:4QI1;$}pIYe6>[%nn9%nRϯH)cc*]`,ک͍Ϗt̨D"TvrJK+O2`Y/r׍#\7j~rR݁׎-^ųxg޷Kku(UFl<,\ D=Лѧ1XeͨKõ~89;ّo󞦹 , t[8-%kV2!>+^"N-/,;˭|bo:HGg甸D]PZ#wB@L+:A+|m b#SrD !V b2t~h77E/?z ŧ_ggMO'NB e:ЊKND%`. ( B*)Q(_`@~cG,Fe^txIbߓ_;p{<7PbʣEE${<5K$0GӝQy#Iq{)bW3tзCFhҞ2HK׍ĮIe/օ5-.;F$"y/Al\uxt6!e5ϖ_mtz;RqSIsζվ=qwߊYjΨګLOu.QyRR4-ȁ[󜃏ctoe?CwNӞKoΦ4R l%dHrTE1k[l}"?2?!% KS}3LL0a8:mYa(H+ZT<+5Fhx DX\uݶHDž#zۦ|,bS~q{QS,'- 6zG\N,+*!=ub%4FxUTDmՏ{Y^ܻ9 PDM>8[m;Js=uCAkΉ$W > s+ܓtv];6J,oyly+T(3`TKA U58paPӜ rs[q3*+xDMƧJ:55 E[Mli;z/7 *5];5MKBNS8B3BmKSrR>PT_/gޡ8 I^ď/?HcUϐb1y=Lr؈O*PdT9_KSvh= cu L,MzbiZ$*6I2(@W6Zm`qgVaQP\B Q @Tᷯ laEA*]dN 흧|{DؕzSB*ޔ/@".쬏*|ott:CP9@6{i9|T+VJÀ@|`?3 +{: %jXuk_-cvX M^g"򗗣73/v DVK!)HB+ &12nB!Im #|BoV(G*G[!R3(SD _C*]j[9T9>Q ThgԤ0EHSlP͕qI%-!JdI@r-@ѐ`wj-†aqqmV]AkI ;dd%O'w:s*T}b.s%h Mh)ӏ4_ʪzzˣHJ*O=MV|Vkz8[:ʹ$ E[_֣1onG$Tf6zR\n`:"%gYN,j4(hx@e~vױ$ֺ?ź|< ÷FM&Uԩq!&s4GZv9'<~R5Hij_7'E aIvu2 !/6?CG?IH:Ag-(1AR|D&L"$%i!]r&W* k"o7>j:]nۅva%NTr_tzt%y$~zf[*,ͣ5LfVK54NM*bAo wGW"&>tDog$_tRΊ:wp% -/P1Z)k;BJ<|f0KsnPfwp_~JC}x %)ߏVev$ƪvN^M*27U0dByeK 1ds/" O*{g[`>X8}:4:y?Fy; xo{kyAu$<]FY= vHG {otYǘ-D<&:53`wu*}ٵŒb޵̑<7pި{,_4zy,| Nq0ٸ`$]v>𷠷}l1:0 ȳҾ1'Ҫcp=dҝeu6kJ­S+d,QjSA控6\ $!&uogxttwHm܀ se$#Cyz,٩dK3S/*I0h5덾-rn-y8X9Md/W=D,_ʋE)u? Q=;4ʖFcPZjT$D>͛M6d%a*CmeV\Dv8ԥB_ޠB^1yU漣5(y#N32,=Tqۇ7>v%G[%>H݇j2ryY$"i3藷sYQ^.aT%awJ2cO$ܟ;:}>q8 WM||r>N"8lWdPQ|qޝ#7Ow!emN(o t 6i n{9Z&FX ߥ&*2so3z^&yӭ.[ W̪ʧϲa_5f>.d|c$^1U(Ӆ<'DXrŴӷ+WREaMF/ =|9>ĎqqtcsWΝ5 AJ. *X[6RPdKk;#j KY%xHL9krvq(C͑'z^Q,D] /YABU9̡:j6yO&>X`z ˬ_4c*ע@A_b"U,sRMhX<+ZWk$NpFGɮՅUZb} x]s2,ŏdSrȯEy[OvOb=%G#p7$:fr3q52 I"Y#Zr~<FqԜpJVYt(Y?0q-̕yznk2xx|<\>.G!~/OJ [UxI&C4\UvE"Lw¿t۹œ\=4<'SW/-uAŲB+ͅOBU^* خϚIPq̜jЬ:f~%tR?ܤ):{4K3P'PGb=}on냟~>}{{x=&IIB7Yu2gb>/b? ^@f2_,_6r߄‚rqΧ9LǏ0@-#//( 81sj2M~T徭m/~ci-u~\2x:ÊWWy Mͼkx|8 u 6_vkkm;y_#o]a?~owfPp.T秡x4y4>kD{pF]kXIl?q˞?g}CӧO'o~}s3y'{wR5X5$Yn Ţ( j/&TꎄT\Vx%3?Su33wvFԡ ؂E{ ##Rk?Du2׌w|猌81VZwu1q>7YuA!̊/9rL@ĩX2dh%6G\zWEC̙=mswi~Ig f6 9,74Zn ji>A;I0/PĜDUz&IjMΎܾr7˽(!II}2 D/cD!b`o)@4"@t)ҒhI'mZxQv]{M1M="C!MZr8B.[0l|Y:uIw7u>+Kթok϶HEI<ĒSoZ ,KΠ0Cƿ1J?ߠu Nsv%*%,ϭ[1I2J5=SLe}-xL< m })>l~QӮX)%R&2/lm{mT9$nf[׶`M:T?Du\ʧ#b|L%@t6Fuf+v0CQi3{2_T9s VbXB"20o)cUܶʳ)xj]8IO WЄtڃ_6q{͐-MÇ}oT;VKa-,:/jsVmJ 썜-AHAb*0V/ 4b|j09 JEut`M2RO%PHA;4d~2j0DlXA 6퍦aຠXEk@PjR-"e+%ٜߵv3r=e7]Ϲg$:NAsPF謡jEp 5sϧު?MCLM4ѱD0LB50 !ZZZI >~Lњpe'< V9-6Why%KCB N˓_'lLF5E:jv) vSc hKSTw𙊔`]LIb!SI15^/̻_!_L(!ʍ :g~Q),ej(0礉\7cYJ -guJYb\B h<6'Gc*@2P"eoHI~لl'~/ ']l.KAǬrB31u2{HzIBۆp"%2"v}^5ݽNjg T, zq ::bD0 KgRd Xިmy@f|M^ؠ 4F/x)LƹUQi{xvuٻHn!ݘGUC|8:3ҏˢ80篡ntwhGS1 ^tDLJ->KT6jwyy/!4ujlۣ27m ;z0 9Ff,z'j)"lvβdm 4'WuݲF yuZ"Gі`GkY#9j(k¦\AܷǂG̩7jbf!^ vr]kۗ&ghIS)+er}\nV')DD 4b6?b(c EmHI^h>c '"O-WEi+ǑjjZrg|xGWȳ!}T xl iE6s ?'#-'ZH6B" D| G|ʘȔD{d|V%+8x7kXv`K~lmօ/g /W$eN4nшX*zl;0RaDBU}0Rgɟ|:$ =rVJtGP?nmmkPUHʘuh#sxϿ˔g}&D%yބ(JO~]XC(pML4ĉiNYs0`x!x%*U*זg뮑n-PYm&$my[19 ZTq rV|M2!OPmB9)eahb7/]7=VE3*,g(ͥG(#~{b'8@$W -|3g\5, 7 "n,3yfiX:Ϣy2]{+^=)ݝ,][oڵ~RhSظUܰ|\{xJ(X1utTc7㞢yG1L'Hp\FPVBepht?Gs)2M qr?>x$^lFKfeϜf2Y|'ͦ^*7;Yx8d)JXT/;xUU:-M!ޗbaMdarjp>BH ͧ!*JRP.Kdqٍ6ܵRYpYUC~qfsœFE`Rm'/ΈU" N,:A$J67cAC: 3;٦NrR#ҭq3ʠh$Df4܋*O@М)cxgI?g}!$mY=5X7a!h7p+8i=U|ݑՇ\Υ㾲wE$]2qy%5~0cg.n6Vg-m"TkY?_mz僚$ө[yEM2xZHa`[v !:LOΪ5uԫk _GQ;Ú3z%Ʋ%z]] 8tZm;ګ B[9Y/Zņ҄=UPFmܿg=sﻅޕ#W9LK |+Gy%"~@iIcYy_.nkR7ӗ${,%IUAnpf4').>|MtqW UWRl" |Ö+- +!]K`D,7%PӬ@m֪goNMYٸ7k cueBƈI`cY1Ԟ^hcҒəQvj~/YV@b r^T'_EaDZ<׿C䃻 $sAj&ЈrSBgbn^YIIʹ9v*p +DJnCIAC@-HP(ND3S:n=]mchԤg ɵK[ce-0<+XUO%^K=vyӑ(Itr82$ǑqpO+G]ѓs-O?)]Sh18]RA gc ۵ ~m$EYȝㄝ)o[<^Jݔ3mƗ-cxġ-_l}nZl\ ;mr1htWTA|V ݠKyO639D%PᔒXnr*.؀P2q\!WxRjf?I.`MFcKrW?ՋdJ6&js]]L5 s3Y\a^78lrH@ʭMGdٿYr)1cDo$ցC*܁j 0X4޵0-_PCdi؞z赼U6t/H”̬> `q[,ug& R\QVl>`>M+2pNDHS<1|Cf]w(oa9˗u^x1=@9¥uB(lc삭^,Zy0XoMb;6t[Ft2niJuyp4؊RemΔ9HB2ƜSGZf>Yۇ F)R^{^PC nVxR Sf"6<죹HdFo.eyNU~: hKvevm?7;'ztSQ\T7XH!ˍ\ 3g,ؐr&C>Hg^wf:57#QLL&,(&#f 1kR%InڪĭcuE+9|HO-r+X SSRӫܷU89Rz&S*y͸I.%yNP2;T|"#/EhW.ó]Оe/k M7v[Ly4dYTFhܳ3#GyґDKL%Ó󅍟#6AsvlENzI|mK(9 Y̆bT-{7-{窎$gW(=ƀ6;vlp=h F_GfVֹ Zu9ޏ|UV܋o$9h6?6F܍ArGy 6ɍ޴9%LWص|̅37n]%^ R~9%|uxCd zh^ByniepX?΃;ԭ=&tJ}6`łKmes3!q ӟ"Ba5B Y\P*=l&3r;g QD5z{䦿ӥ%n.rJoЅe*pI/*qm7q]8B擮|j0ݔuNb_Ug-z"VnL4)aJaĺ4JP!8l9zŶMRzi\by0h7٢Кc:7k8EJ [5.⺠~s='e6Q(P70 ػÖ<湬Uwh\u=Ѫ^0_>>a_kE}bNjueeL҃<$Lʙx=!|n<`q":m"=fVtn8Fl_-z?9Ɔ6nc, >?{jV vޏ/AH,!rjHr$.Z-2) ͂_Ty ̍I^ @LN~zP ! ;ӽh^`] *JPl8|)E5#K. m 6:oW\A 0,*R7M 6M )-؇TqPh $Ғfj@&3ķGg'>>Z wy6F}6$ʤ#m vU6)Oc }0O;xD Dt+t6pXi^oBnѵDECkʕ1o`y(hXj$8Lcǖ xJbC4ԏϟW'rV&"VU]PgjA(>zvSEpgOaA9]8(DpWt$)]\G|+h^(\cA9Z{xO! ShkA}Km.Yd.xYPa}?1؟ރ(IAĤܔRI 0RK.In>^|%tKAqzNK̤p]XU،RO:%r$r/)[] yq2K)$s5uʠ88q (#ܽUĵ ֨/G/ ^,T7MlJq`mt6zTh+wg!bP|u _!YK8Ɯcz Kwb5A v= GMsSM R)@&&&t i .M]Nu@m!ĻE̒Jr+o;tGN'.ЎMsΏ,(.C҈J*3"D/J s\ti#**m_48\/*y"PiFy`zA옅4)Tkk%q.Ύj)tbnvؚ'Yyoɮaq45@t Ѳw\$`,A[Vp^:a1Mlda$*@ ˴4]P jo՘[yL`$ g6#Rut]^|i%a^/Kv KbHZgAc _MtMBAGtV@RE {f~MӨ'~ >x 4tx/,KbUc?{ "6ߏ=\,W5Oyl;:wUyuӘ!=|DR k˝O|Evw9XU=۰VܻCr; D49&2oA~xpn@%*Hlf]ֶTY_yC57=WmY[\O lA%j$a ^Q@`$BBFv y;#A12ow_ށ Q8M)DN:?y1 Ӯ:C :-TDIuPLe/`Kgf?u‰dS$[dl`l&X`FI9mxO92)s(wyכDb -V^wO]D7G8u qKSˁ@ } `ܭ%w b>+L5ُR@'+>. ?mHydW\^*̑H0PQ K|xkG]Ӓ(-¥0 T>Vtv<|T'.J LQ,3j!?A+9Aō8 i\`פIa,P `&!}%,)/dI!t:0Ban0S4[ށγs@.B3~@v˪_ކfA@MDP;€JR?KZoe fw/&M#yC4t~+:4%SݴGχE ?\~Ѯ ݃rb-\1K |-B% TbL7eڑ 9,m˕Ѭ)=;N VZ)!nᦟ(JAKr(䪐^tiJfq,@n;_ |K<4q^ ;0C''|BSXH^brFaP 6S+%dE4s]ݰ]-%:"e<|jR#y&&~0V4թW8!{~R-;W LPN垽9vi4.%JgQ4bƥWɣ;mTQYbXtP6 9B)}}ڒfqƝOa@8M~V[ 'v4YvR8Rpyp1kƭ+1a{IXi![O^1A"+^&C`5\Fa勯fp(sap%xv0C)+X  ++NrvA!'o %x.`@zOc5cٸ+ 7jW&7Cm_ń"\t"jY\0>}LaP0;̻f.V9V$OwޜyG 'et S3Q74ZKje '؇1/pcPk.MptY`,eVAzV!9,~V6!K8I\yb\WtH/y33>s %B `B1& ܒ/z/)m^Qx؇j[ w݃Q aZ僲 "I$ZMd;,iwOI䈫w^i 1Ŷhc00w~ m6v"#"mn~ o G z^Q>ӄ58+IΖބ}W/Ȃit,#T.MBj:>(|.4in_cbG>`Mr|2!\$t &9\eRsy^Ğsg4[_R//B, R#scل!"!Њy'BIWps [:X_ W9 fip 08-nK,D~߿ "N^*xb1b\ #bλe\ς[.VZtԡwnL!N XY9M2+Bg6kM^A,uP :BI!wWǧo,1F(0(Q2uLT")'Xf@ yJ FqSվNbLp/ CfΛn7-Xz.GOҡVT.\`4O,/6ex(%6/Ag5ayq+R(-Jšnk-8u0Gm^i 3d*fvD)*tg*cj.xmLK 1u7T>5qKr0@ '_00'}y;%<d ІA~4rI1iQ?4Nq lےNR%56a'&v'2>`pk;g š#lMaQ֦>hVamXMjFV/̍.L2܎qsyj('#RZH 1) aYD)mJ## s@6ڏcW$# u$UM$Uj.7}3 җDӼI1(n"6z Ў&fMff7cT~-wk4ѷ m/(0dBlSX}e3qh=H#u7xP]``~hMο'KLxA~ٛI8A"EAށRkEHMkM'3&Ugӛ Kc~-fzQs# tÝbv]G$2{Ok !hkt:Iuh(}]\:(#><<[=1So$bΩ&k,)5\3P.-W ;8 ` $N "f^ě9Щ=h;n]'tz{+t86VhE #)a[;_YxeNڋJ{ _.pnu@*rL;1vv(w1?(8Du@ƍPM : \MWy*gT%Vݔ_ Q oH N4aa:96%ʉNy}## =rQo5xo{rl o= 9 원56 -p=ޠ7y`$h0 I3Jc8M ybD&`DQA@C^끧CAA}NJY僣BQ %:FO%K1%vfpRX_ dQV[MRlEQG[KSurix[= CȬ{^|%Qp*{~f^NP<}5$ΓPE kG5"sEyO~my)Ih lWit@r˜PpC[rnW\nuSdiF}6XќIrˇ_c`  \%mv}pNq0"IoMI=OA7]RTPd(D=$T-\Ops0le5s!` um m#haxrMhu!!8adYH 1Ïj`5c 8qV:1f8%1:Qu2䋤04rtV赐P K3D!ɥ,-ࡾgVQ>)k;B}xY/#>dJȨ˴,Im:ûٱzB!@-.g߄~ 0T PL!єl&$O9a) g,q|'`M4FiuqZT&Hf\2i){a?SBo)&)k?ؗiy=r٣F]ṷ2+ c{]YItB) !GFLiMNKYaOjkR!3dChUtS~T,ƤS^Ê-YT3T|pv.ff]۶"al0M$X QA/8fZP^uK7֏irS*C8 q'2" 8sƭ8an2^+^>𗇓%6ve7le$&fZ<}<[#5D|[nAUЮކa t{RIÅ-½E=4SQ|Td*ۋ]EF!heb ª[r,f% 6pjIb}}i3 E5f(Ҧfy 'j֡-]1^W*vTp탟͡</@  Zn8$"E(,H=bX|LbT saw`5sOA{IH#@!u zg@̕:ybK^+9:A]t=P0Egc_=|Q4?1|: n4u_1S(5>㗜11 PZ4hdG@f\4s1 ~ jQ ~JA `yS˵4:tutr=px!m&N'/Y!5&P[;^U7ba~+/7zS/:̣>up؆ЛDj4TGd v3\0$o  ؋^_h/=7,}){X_]sE' kyMU+PORK[$#PY% P`ox蛌.7µpVg 5p/+LXaU>e\ tPs_-ue-'md5gt6N%xRW"ӳ7=%ؚ@c/c-HAu뉅2u& `TA) rLjYvfObIQ7Cbp̋ VtoRQ$/ -\LmԠ,E,5&@r0 .ʻݏeD#>GEᲜ.>.L(V(6h% A80 / L! <)ϏCr)YGhMWFHXŠ%/3K&߀^#ga;"U6ے oʲr kR(?HXM'dg{oc(,GbU%1xRpGc4G'J0BD/$s+"[A2C;`t7r">r0!/B6ךvRB5 RtO%HƄxV7SBv;~. aM)D WIc _M`Vi"s!RGد\'!y.fkN< [&} (QڙxV#-?X+M+IV&U1F05nuՠo.L :nQRű1F׃r%C~~ٓiyÇ`a6m8  0ዳҩOZ{;,hzXk?r:.TkJ(mpGg4V3"ֆ'GT[8=%^ 4m8Nt ]H !0@ϭHyK $ސhol"&@EH}ȟn:͙փD`$nt[躽0 ՗_Cq>@Al=G(c,cۊ ؍Sr6tK]g~w?x}&LB=u6%,#I|4P@"2;X /`Kn6ʞtbQ$9{2@Xu<2 ǐe=;;< 32Mp~.h)\;PNV8th.yTؿ3HI_B<0- ! q{|gu. FW pd!PNY$ӗ!ñ)!RM39RzN3l-{*-}8&F<GeUNŎ <[='Xr|fx肕.&F]brv=b6Tf]l.ˎn~2%RHHrߑu~KN߅ćRƞQ0+îzr > S e"7OlY¡.o¥0{I]43Ƣ>FhVoME;RxDe#yLqy;*Q;X[5a!R(\WN P^ h?||BҒ Y)bZ>O[,UڮIxYA+e$zơlfsIcEO:ew| 1wa^d %~,V2n^S6/5jadPK:~5B`Q3ޙtWM8x&Ě3z.-:<QM, ѩ#ݤ=yCv$$#`vOI"e0[,^\j uI6/T M\H3&2l fAi"yT#]o?GM-.AW֯rsyr 5ryaٕT['\$*k baj&1Ԭ J)NGVb).4o-j[OJؐw-)$!BfA wlTAZ9eLl힝7 vZ&rԁҢ)4<~$vTi$d@y%<qgD<+Y%d-KXRa,4LsJbOp h}jUPvBKI`W=#[jˆ6@DW yО}YHQ6i0 \ eKb!c!@>%g)UBfSܸU(hAE_H^O9kFueܲ}.~B1s\Yю&ϩ#a(ț) /תG'n1 rYKֽ4#8?D 3ZÈsM"N Mښ'Df$N`16~r1GfXYJPf2$Ip"6 ÌtT3^gOObv #|МF%"Gs)]I"f-y oC^xALGZD?Swб;B.w F>x- T+Vr6Q{:MPܸݱpfWcgkw ^$=dv^dN/$1Az%ChdBpσpSAAmٝ vh@LvAH()j%zi.+er.$~ q1DkK-eqt )E@m85YTjZ|$b]) Ǟa@x/+w098z%>dʱffI:F+P45hh ٔ o9%B<j(bi Փ6s)gVNy60 p{:Ydg!ҥi-1$f(Ck2o$+ByN2L{6ͩpsR(M;{~v/+عM;~ ߨ G9aσI=7`vgBH R/ޢep0yv&9?ށ-=wJ@XX_p 0K< h7T ^cu7p./-K` {z|@?pWϸB"6!̾–⠜LM\@4cK]4mI`PX7J1nAa4G :|PFmn! f. ^s>|mr@h C^H ~L0 kCN [bU\l1䈌Fej6(>XS$0+IIhb %D) Eq0z3t $M`]Td3$"C<;9.yib仝tmťg[ýb%ݯ ^*X #eWy߆M30L$5'ق^LwzD)~K!=܄{:910Lɮ [+2rDFv[J&MW068'1 sC4K a+F;V]6)Ghn0 n &*ONz[ @r8v \XBd{`A+DCZXDR21Hb.!vN?21 z($~ˈ?Ōs?KKF+AZD*͸xfW#؅P9LJČו];pypR%_1B%En$TѬخlcj* hpY`Sy =BVqH6"@(Q;֞]!f8 v80a<f$CU 9͑Fg,36$uҜX*̀uh//aآ$w tWUfx:ci4@k0䠐No\N 2z4+9޸A<;W 44NWdL:4!.gGxt#2]†n:@vӺ ,EB:l&t5$N Mi;KxF\XdgzXwZ:A1Q,vc҆7NjnEO,'QPɘ;|S;*92#C$ȾS痠uW Uy4("nca{0yPtF58;3):;$?}I> ?|/'%eK5AE w+&fw!qWth(8Vʙ`]ÃWNsq22IՌĩHhj~!vQ]~2EФfuY[#$$^h)mlSsx GB2ݠn.Øgɠ%9Y곥祝j>`sEd˓&9 sڙ_v\ރSSyÎ?PY1xߚHBX^ޤ AHj;); L+k'",XĊ?\rMC>m3 ZP5'3s4><ƴ$TZ oq;; trXp ` 8 Vc'G4YrdOcr\j͉w fdmfv?cHH'ӓ sç,d.uH,_}' [!gxb!1aaMA~ Wf !e y !DKcS 8h: InP H?)БL)FywُLC( <) )ӥ ѣ&k#<]6ar/?r8V>8p4p,Wyz^+EUEDTƶ ><ij[5PghҢ3%[]"#o} 5+5:r@*oT6ۢځ P}VQ  B> dxsGpvvxW0\<тBip@i~"#)"Ys.|T S%l>z-Eea%&8>L(SwOkpl2ñ Wo>z/qpz}';swQN8Eug/XKMp 02’R:n|8W5ÈwZEJU(rFؚ@aòyį{7pՅD2'] Ա<,H kym"i龳}m?YRJi#_Ώ({#(dP_tJ έ/֌pc&?<3V0:itFHy`YI7gCK7H|RePȺ|zdR)߁,t1DK dBbIFxc.C僕[ACAqz @GRA2gݹ 3s@I$L"xʭHׅ.=^h%7u跍w-mXAI5d_ r獑> !trH||h1Ʃr)O6"?4ls)X)pD`tO!}-j+౔hiRb +Dm,ܚ ep;^JLw4!>>9gة!@peJj+ |2ٸHK3 vEYh-Y?&ENҲ[끎ɶv8.)""yXGV9$ːt X(UB>f@R_R-JErZOֈނ6@ $gM^`37ht}KSZ;h  jw܍ Y^vw eݕ;^X',I|lc؂;x0%&^ a5̈'uX#Vp'cg4|kX6D_޹~* َ%Vx_3*}qv{b Sh]Dz}ArtV/C\-g+>p*Uwnߺr0idF$߰!F/>w,@-顖 pFiE-H S?嵑X|Li'6 D>֥2N%\ a[j%ɚJEHZhTqƾF:eq1`J-dc#'dze7FTSTFZrYI=TƟ+l.XHR4.#_PGK}MEG,91@̘lYU,JzmCSV"[4&,`*4y8gʝ!EL\ 'pmw;!jjDp85 B:'O NMEANfaJp B5纠_)~*Z%@gۂluƠl=}HDjvJ[^74\+ ckRy)i( $o=.25sJ!y-]aF }]o|gkG^}F>0J,{)`~q[X]EĜ0:{Q!CKRZd9?| Ofu m>;Q(Qw[w'ؔ1 zlRNJ6WRpB0-_k;߆]S!9A@?}БutTH́RɎ{ ݃ up1F/x5o8ɷ?|M`,q)C}rEsE ؄݂d{+WЀ'~=:P:ժ$ڋpivrOICyx%&bS@ <o\~UANͱYdڜ/8{H%BQ8o Ah8d3]gXYr N ғMIJ'E(\xz 5˵bk[ Q[ [rS|arHٴʄOÏz QjKxt{L5ɴ0̵"e>oz&r|Bo+fVAZ5:x0_B)AY"wi6.0Kw+״>{ Bj*hb0DTx ґ,}p 6Z+9a4Aѳv)tX^'D\X.ߜ2}{`ꜙȥ3LEVQ4K \ae@O>6"}5aJB]I?".5dn:w5[E?>*6]xR''eXH)-T zޞJZF @b8ցM qJ˘?6[ ͭMSbޚ؂ $) ZzY`Ubh+X#` X=rmg,Fqҹq:@="O~}"A.q X,7c`%j Lj(s 8/iO(q i7Q!·TpRqGvжn%:{xtv,^d2TF"&" 3Dq/ymv@PbITPl,,9C,gG|r:@y1\ BX?G`ٌ@ Y2'Jī,( ܤXǐo@MM4Eɾ @/% N*3wP2i:-0߻A "R R\ (8Dʖ Hs!AYv-pGLؔ|[u{c3SԸ0?~ݷw{B0~,bɣLbtfB0N-6op|%bBȲ=zoA (7X"PDgjFV)=ЗhVS8BdGoEGh=AngHӌޤaU'؋&NBwW9SiDPMe{ys>gM5,bXJ:&T~mCmYǺh ؈P2Q"F#y >ky 4'(=IRȦ…,złC~eo $Ş?G_DrviVD=۰re }8 Pabd1Jڴ _0uhN_򒵼{P%,bGtynBY6 FQMFԊ9LX6M:=d5*uw8Xu ][Eg[1Bݖ')s$rnAA93 A?ٿ''ڗ{yVaԍ p殎b7ywCX 6aSXYT'Ș5&D!8Vy-rFZR 51cBIi1,f{=ZkK?`{a?i5b.3zcBl &v"(xi<,/TUޟߢ\ƱC#^,I R6ƫV0T8X" %XW'>W+=lD@?[Iji@Rj{@q*׭];A0aʃy"v(-*A>,e1_n]ެGR=Zw8-R '[RV&Ma(9ݹ^~5(iѰI5` F3JzvhJz+V fkڲY]WZ.-|PxX rICJ[{ͽUvn *L= 48gv{_6 m4JXRTJ #ny_`3본FBB~oHTN@nwNiQ+/ k G r8t@cNE";p&a0Em('"w1L!: {خaF\ܾ %~M4e]qԠ,=QZg>4,G !jES ɴvX{8VvKhY"_K) 0m]6!!>MQ+q!+BaҰLHwJm\c[}kΑU[]T~ޡ;q>cz%3Y703&2 䳴G]'ǕnT-욯LyV ؝Xs郭687י ` >bZ_on/lvk˝6.v-]¶HX j|IR0ni܊hO;ׁq;KnPqs7бb,Y\9}tl7AGR PӧU4$?wnq B0 N% {yBX> B0XRIa{Y}`Qq.U&= lHn@]s_"i^7cF" dbGЁ 3b@:HR.-|@6MN.=rz~=l6 h!J4@4`)W7hnJC~ŶR2sDU<ӻ6+ ǷxH>86(k&]$5pI]D:ny\@MyiZ7Lsz׶WM2;jX^;?ܶ˒~?NűQb}CHTB$.t*1vN֯b/*XvP^ heƀ >_ //G;pV=3 S+8`c~G/)r+O|sًv hz}Ҋ#*^O*cld*v\.%*m[AΈ25S [ wl6OLlW/H[̡:đH, k ,+`XJ L@O; uK5^YtM.NPAJ)S\ 9QlMRq%2TE.9s:鹵); @6k C5> j $3e5x8w]})7!Z%}W|B̙_\ 5V#ob 6cx<4AX=>Fƒh._}n<}21޾[OU RtY<^WR[*)AFw&h#Qe5~FңwFѭ,G!@pbÆ%K{\8usryImEih{!Ǒgtu.wRq }^* HCCF-r(ȹaBYoȿ CFᙯ?ӣ]˨̖<5Jk2"G⹔7_- |f#N1Q4nZ5xazW9lbڗHM_ gf4PD-Yy5n譺/7O[2箴c x.e7!H|ţZWbJ٤u[h0 $kh_Wܭ.[yMT ~7k{֒ڊS00G,0jB$̿`7EE)[Ts+5D=uA*y>#\Ϩ[Dp_n@Qͩɐl}d,g-/_Y:B%'jy*5z|ZdL"MKב7c9gGHY/Nқr48s7!4 +1 ))2JWTJ@?U29_̧#$#Zuw}{W+bd 4ZBH>PֳY 8}OTP)}Tz(& /F338?]UHak;8 AwQyY1T)ؙELo׹Z ;?YUGq8m(!'_Ԉc$[D.LZz^fCXw|UѝΟiuUgPf{WY?C(3Μ%ojOǺ3#;ߞ)|GQWF;ӛ MٗɯV3l5\|*ETG#B5EsdKZs`/8tWV[(G+b`Z7RGW;ZJ5&43q8Z{2ٺӻ9*(;Q5RfNY?8_0tjc9EFMkÐ"W1s:gQCԯ@Td{0_3D,4c8zU_QҚe@ LGBZ^e"D1/))oT?Qs~<0;/|F1$3N=Q.}F~w~_ f* /8=Sc* 'Gљ=̕g978 0?gYxVH$q3t^CQjQE_zY+/p+_]ܺ_ ]t"iëGX Z&W2ODUuF^n]˖UzY2[#^e'"#B*¡=?WM7)~Lx5}3 QjBdH:s{bJkTPm>rUԀ^U%JW<2bkTGٕ e+)*Wf/P4=N7r+[=Um˗+mEV.P1F=FGr'o0aʔ%Ͷ zf'WC"iU%8]nœձ*.>)DsժR f)QM]f0"WĴH%0񕨲v<2O⧾'d#XdUЬqs̲TCz̨o(;㪧ʝE_6W i ^ĎTQafDvE("Jɜ43d)->OE5N9Cё#C:@/c_YVLO$4 җFb?tw{FʀEFg[&bw)-iО9e)׾2Q&GpȠd)K&3_W}eZaxve`35ӛ9nc4Ykp\*3lFS Gje5%Q?;ѾDO5ep(@| {Tۨ2zɶ~W EGA~[+3oQB|G90>:۫w1!{݇ls4g4aNfsQ22)}G|&x'J2#PY**o_ ?H%icfZVC&PFeml2&wLVGX9 ̘U)8NZ*?%xFK0磾1P5$VBUFL=Pb&2;o>Zxz3h>|`GgJ  [p5gĩeò-SR|7Eǣ9:rt(pJG- z: i7zO7fJT*=cU\g$SQ \ B+(zrK4zq!eע"2Y$m/ RpD>WKᣰȀտ)778P=cՙmQJ/|UHԧ2m4 od1 PfH)e + uD,EfMX2F -X KfPHxm J{T̀Eϖ$^#E14 LlRғ?zbsc lnd׉3Q֒Zrfm]PǸប-]T̏>*ſnٖ*4|o#1ezbk#*x(WKm}=^e* tCoo.^[|3\;Xc. +V?ק_/FZ "W.UeC0Q !HoWnsYqHƨrQ~2ąFH0# i̦N1"?#s$**̞SA}~7Cм|氳7ZQAѐ>^Wg|\|Ы,uͿ+x4ZYSՆzQЍWYC>=j^=bFn.LqA墢 2_Й:79&Z68%fn"*c4]'0MW3B2Zȓu3^6hFURf*'lTu-}&r\aY%D|!'(['~KAhڋ63Q-Hk1 "GpF+~z|eSš :VYgiTa(W3(GnѮ6% p$8_U0qO_! Lϵ2G|g+ %N_{{E:KUmq %SʠcXGRlLo[FL,'#8_PVcxěۑcЃ{9/ު0OSGL779/Q1Ea+Qē= 2;8пf-ėPU,=p~dI!QrW\m-WE ޫSN!q~^9/y[." #ަdZ8vnW.h Ō hPZXhf^ۗ>[/i3yf:gjeE% 9RDf eW*E< 03G$ K6A=&7WIxjE [m$ (Z6#֛40T"v`tm$`̠х|s ~Ru5"tTӷk~zzzWm1kmrZx3Qu|]u4?n/ P>~5mTYYosV{!siqUt 41b:pLYZ[t$#ޢ "?=|YD:<fq]i+(.A8Z6*DͿW0YQ>~T@N*>_{DN<2?}vb˨|FsJ lk?Z$) eZMg=X!sUɺ]hx:傺0Wl%a+&rG3+~?s[4os-m #xUu#c٘vV<0g~4 #RUħ^PHϻa"VJԦԙŭ\7";|_$sj)m8PDihr+jƫ% SxDFQ7~׵q;wVNO#F<,Lh~f:{,p*\K5 /qN'xS;R!vfHxuveܪ{ّv{p Q 3 Epd$dM6sUC/_3)B" DEw@@TY$*AVLNfGj^X8qC ^WAA8>{"{ pP˃RT|*#(NYT@ ĝƊF *ied[L͈/~9zBxag)-Qq׊+F`b1 jiǫ2Ǐ_y#qe+BjnãVYJ (vevWVU,9Y~i u}{,H$ǝ a|JI "Ȩ鐢OUdf4ANu^̿RF9)rHLՀGdUwftƥfHSfgQ*49+  K9%zkNLv͠Lk5dw!F!TB,&l^sZVPM@fH )P \,0LĀ4.,nY*dODv+ڛƮulfBф ,E|I6Xa(#y-5E* J+A0 d t^|91ϫ}Ru1MA< {֖y!\h5'f[+Ur PE)t?Sڒ_:L pĔZg Ph6 :1>"(+IȐ&0$״( eun+&LAQYdqd4:+5!HDNLq"cID#ʡWжJ!]d˞Z)Ww$5ZX kX -l`yU6zR- UP(Sdpvbw+Z"t& ;-^g$j,vYдc讇QfTaDR|>浌JK8l<56ḵrzoYDΥZWQ5iфo49AU]@zn*wܪ}1Fϣ7#bdN5аZvWLZ9$'Do[LP鳉< ɣJ)ٺEQx B/i6 ,(j1;c #a9&YVI|oD)'uH1xIH쳥&W` g#`X/6@8[t5'Di\)y6g]NʔA)E eܔ;VN0W+dD܊VI8RrqDT9o27uWDtE)a $A0 20\>X%2'ҫ6$OUZ#Ar<փo:(X+#CfSD̮`^X5}-0nVZt?q."ib_j%6A%T25' H+,ւײFPt)Z6+Fv@ȑj E̼-քFdW f M n<&t !. `o%Cڏ8@&Ktg$ԛ~%+dk͞i(c ULMxĨ1WV>R .= 7ʮͱ e%e5PZ4{XwL Q fVxq MLJ(.Vĝ(nqZ:GOR!#4z>zZJd8yԒkؽSu~ΫRmDi̯(BE5* z,4wbUc)q,%܅-lLn**z1XYÙOlATf.{)*H&Hgapc5u!#2sVTa/b(?Rtj<67O (CRaT$*b:%GEE Ȫ|TU *#3BJ/F7yv4 jeR(Tħ#aHa1P SĈ^'~ly բC1#"}qÇ> !s h6.'ׯ% rB㈅ԙ9Ê2|Yo܊Edj L$.s tSXjh;=9,G$p(b tѡ퓠I6Jpԗ(:݊'OIXjS*h)DBY#&lO]Tb-D8|&˦Fc-ܳMAJ5Vn> RjU#tH,RbZ=-*].B~OWNXJ]6!U`%.e BxDRRsd*ZqIWSL84 M O 2RMSIjѻWz,.xUm\dUNIdSJIcgk*I?.5/9R&Zt/p!դ%<9ؗ$-֘/aM.HT`3j&%~qP *$H%jD5 J-AU(]v,9\uhF)LS؉M&nXn0,TZWѲԆklUE㞰6C(D1$/ؑ(H歠2{g3 U+5&yfQUf"MF*012+D94:o{/wTBF32l3FIfOu$չ(zN(@;І:NzPIJһ콜 B@0ɽڻf,bs_by#y}0.1ƍJ8?nޕJdHc$ 1f_%29TZeESm5PY' 32\w'v$yꩩ { BkKo\9::9jJmK+揄$n\4;xLUNnF.2"˹MMQbҤ#  WTlXYtgAI5!J'2.=L|HZ_k _5ƚI;gg)~!S(: %Vl`0Z;@RbMD)"B xOJFĄw*0 p1 |ZՖVRPqbFq]0J&.^VUMZ4'&BM>zWpTh*=$NAbf3,ۊGKGZ.)C zvKD"PFxҲ)jOq 7tƎ($ԡj sM{n`'vh±aT\4TøYU5^mP GHo7aguqh'-*0+}f^ $Iч60;ND!& L Sr`nÑңf+bZGWH41zI]>ͪ3KڻQ1aj\l83Bw&otV"tTilj9,:JIQc *>@ ΧJK"\3Ϊii5Q0}ß]tm~Y Δ &%*s2rXagz)=IsܼrSOKw.cF͚æ!/,z tq)gG[Q_2V4ਵ*cԐjSM*[Ѫ^uhFhlx1 KCwI{zkt3佁] .'c@YT :h>-DGq _(`5wHŦ\)i4*m1'<5| R" b&v1c1485whf }↚3X٨;T@ U@ZtN$U5MZpCMU6ɩ), >T6ըƶ`yl .(z{ 4PBњ&8 p>ww2V+E*XшDu#L<馰 Nklmjg^S -*)kԨYRώW㈖q@(AIHhb:ylI919M̋õg?7? 飃_}FX"l8e0SDn+ iDĉ4c:!ʉ7xa2J($,ۃ,[E(IajO\wSEaq`#Qc9c6-eOu/HGD onT+ …c6 rdX~t!H#~5jܣ_P 'RTbB)#]L0ge!nQU.Hhd\I􂂸-:<`rJb-i=@#BJ- h1:nBbF'\=6z?VGhf`WPh E;q&)X yaKR]2S[HCwʦ4U#SI -]D P ":s0|.:%fB}a*۬ 29V#!a  \"!ŒFwrezqSB f 'U ct}RFDeKTjn~l$yKr2HI E T%p>N?yR*\r&K)ǐ"W #a}%1U))~)%{)4SbRtZefDd6.EZz+R\Yq6]6Syy4*CZU7+B?=a I{[FG薘 Em17}쎡7JF@3{Bj@J:Q(X\Lfle dJF\^RX q>q9;0A: dW@gؠŋr1REZІ} s2# Fjl "1%BL+-؄9rVbh(nIC<bQEvJƀ ;C3h{ܖbW'6aRX,p.>/ڧNpm 2hF $12N3ܮJ)R,*Pg]lVS Jbi+N_ YW[D1]TKZ:>d0>1Fxn7V N]骣]4tOAoF!#4 zKyiU\c^hI5–j{!y1FMۆ(CZRvdQp)6E;r{a3 .e`:eSؘ~x((#0QؔAMhNcvR!fMںI 67#C!NQ47:QN2$ۊD17e{ ChR]<ok4] Y[!eHa#]Xf/8Rm!rjg0AP-ZZBf_3W0*&@.m ځ3b#5*iq&@[7X hZp +4u%H,Q%iʠ(8692 [9gK a`ŇTԀVkݯShMe=MS2()u,Q@oJ5i5w PMr T*KIzgWiS nD-=POaI!x\Vw(VJϣPbhV)t to}KBNYv kc_078*"2]HRe*Hv<؍iEcAyukã &*zOhTF6gT5U)mvSK,%(bM6(Mg8 3t_6p4#K"f%&)1_тe6bb^*3gvOл– YVևt\9VeBIG$bFWfTJM^GNAarMVV'n #ժ/B%=%;z rUk%ڶ4A&ZVs!{>!YTա qC1=L8k4`M)>t*P*ɄueSHւNUM֙-=rY!RPow̄F>;/OQPH ޏa<1]$M&r4AsH l^p鐦7 qyP Zc|"W繇苨 b2!x OO`6_B?54k)P.!2l/RjqfD{Vq֪y9)bX<*2_8HlާIHUSf&X oPe4lx2f *t̆)'b0[Rj.ŕaSdsF0Hct*.eaE$,ΩU 쒩Vit}Kw[-1!{F">lN&I;G%2wj89"SSGmgE|Sy,qdc0&v3`ڛ85?t{"X1cb*{grXdMxk1c2$[凞Uυ1=6#1YFSL uMo6j6ryGwDXzWekۈo k8jqi택J/Ք4}[iO QX$%IAW4wҦiR3 =q(mqh4 > n j|΃QdY n B2{BU4CR.bRĺ艛(wkg'Bm x#0FśEXk7>r7pI\XI2nWZOqKeP jp -T%jz1`S?eiIb: :5]|tu潎:hHz|U {\r?UBRP44Ct.q@m[BaGA-h,Ⱦ 6ME1]{<{+!IڢYRdFK͌M"kD4I'fiNt&*Sl آi`:IGBܪ=M$R"4ZTa<=j~UAI܀Mg7xmuLL,L5- 9“}tV1Wc2(j!%KUhVń Du@@ 5`T$<!> PW V֊8֖{55)$iѠAPG@|E/Zɫ~7hZIhqk@ m;i\hcY$W y+p%U0@PXDES8LkP)jY#2LeQOL}oɑ eXa#xPDN51ED 3 X5VF#%zdmH1.d`&Zt-j>0!q <9F8dpª'^DC4qglϼc'.0mq;# DsfP`ɰ8Q(L7W`RYNHM)Xuzj;9Q Q-2ᄄk_OLoE]b\eTg4J :/jh1Nj1\]ބ^&lZ.T%(#[O^IWox(}`D ,h5[^3]@"\zD54Dv,H!{߃N+ P{B_d7xhna;:~d`5ѷ?TVO9(Bj/!U 2g=cE î)T{,T e3Q>sMI6Τ^ 1R ^,CYj{ZC w69gzB;cCA;!=%c=1PZT7Q)@,Sh]$QwfQihO3k9@c9EZl7NٓKCs> a4aqlr}q1\xh&LA] ұ 1@DRM=H [dԀ4:Mqa,v4sN(&8"nDpi¾.22GwD^=a|Z ف:TEM3U1I4zOe(zwK"X1^<;!MyĎSnI$=7)Gi&[u薛K\r$[hT7\@Wݴ$CJz7A]Ng!Hl[q/DReb~$7.Uh7re"m_wcOrTcbwoƀhb@v`ұ1]œa`&3e{SLHAҳ0).*ܵU)Uf7(kQ9/$o(i4Q\ ΆGوfp1oWduƭ.@5COr ilba|Bg#0HuIy N+ a[ֺ#ߨfLP7R5!J#&NaL`H*並q0}cnPT$:wpo|nL gHL>ey-Tu2h{VqdP5a@Vj[=&f,m2g3uVX*۩j V9űO[&$TYYn1tyLw{i$E[DDXGL {p5Pl<Lhjцn<ԜeulQ4*K5]Mf/#b<0eH oapE-*jR2'İ紹M\İHEw\lVˋnzhs>^CNϧ7GӳY7.gn]]MDϗ&@WӋf3[+{~e|q||\_v'/Gf|4[_-g_*؜/ϞvzXwɣ_/_}vkmw񺛮;Ӌ cIvRhOTZ$ b&5xΦY)۬SMχ/baX_! l'rnv=xѳ>z~Vѿit~q1p~%rqzdHY̮f+^YJ>ǓGvZF̣d4X3.jzO^LטQ`^/f"판OrrJsy^vΰػ?frF{fX?|V׿ΰ>8^C/A(% tgXNt50;;Ιkaˀ w[wwm&GLܟg|?;uXVg7+LӳbzqaN?'5nJ'6S %r!)tq6yE<]gzw r/+\Yi>\ l;NAI—ݫJLgqu@X7Vj_B%IL=f3y~6 7 FMClxӃkB7u9?ޜ}t +\2tvq\]-Wם}h,gpA xeb:=]r^feKZ^g%O2%`'7Yy䪙cjǙ:57DXgWsj\OS<>i'wNQx{BɜOijv˫W*nXݻ-vG|~7 [^~;{Ty%#bvS+]w\r-I]/ɣWK>DXOmBܫL;>=콟m8ivuGb7TL}w9GqN0y%_dt6__]Lot\p4OQ5^b~7S0Wo s0h'L:9l-g8 ;5^t[cG^ƄzbJ}7>ܬpQpR&Jp[^,GSl wg5F]ㄯﰘ1ˋźOCt/Xδx ]݂$nQ%H>A],gmOj6s}}j/t1}3ɑ>"x[{Me^XYw\Jc |R-$ԉ;e8ۺ N0Ϯ^sr JY0֗N`l=kA}r9dÊm7I7,+Mm>=za o{#VQ7pm(x Wq+\V[U} E_--lZ^}t'[>?-kSO}L_'"s懗}Zzr}7W⮲~[\)MWrg==>'_-mN兀WHb|o ]g雎yһݜ WWXo4}L-ˏ#gC|o>.gOOᦴ;_|/iy-ÛvY~q/'&FĴ{@aB Q\ q ?bdOaLi\fH~}7u'bE'w\G:])?//??_/xsoG?[6ėo.|0mQ6䳠~4p9o 1Ϗ^ 7' {ӥnQ|PX篳ѫ uSlgp8a^jK}haV%/oZpxְ' ~ŞKdlU'=?yçg;V~ jp]]$_}{i3rװt {Kwuu.:/B}vы<1fwqϧvx`^O/5oqƇ,ϳ BfݳOO>,' Wv]?B?ō?q\qA7[όTa!߭r.QG`0 7J s% 7;!Vr}yvwϟ<vgwZ1Ͼ#ўBe&'woC<­h_:廁K>O&?_>5X4gun˝>qg2[ѫH G+nFx/yGD-sfOg%-b5_X,]LJ[T~<[b¯#߬) ~?F$OvtOO^R`md;r6YOW3}U" ,ߐ##1q7[Uj)~dUחWqȻN>EZbߪ(/ův+x‡7ejşpE\RGR\ ?Ƿ)==>^wƤuGw^.|O?~߾/^ƽz~_^3) _CZ=O>ȅƒ{(|ŗRLHxu_r;<u_d;PJ 4&[!sюmn;I_E a[pY%`C㳆>-8V{ g=Gxd\ ,/G;ݏKz;O>J;1`16k 1?2cW x\/I%ڿ bR j_<j \_t. -M6Y e)?QmB]LǢuG'w\?ޭ1_-ˀl.'MN~2Xq*?Oqzʉx?/9x+W)YXeoJqOq q}^~X}{= q3(lq^Φ|Ѵ.( gR%* p;u˜Y!x]N/i{!Z{gEE5yAgz63pJs\,ÿ}fVnnτ3.|ПJi?~;]H~Y+Y{}Grܾ8 3 LqCYsH,=!puJ,.}~(k>/y5wc\\_4 w)5|sW+ʁRy)+_ Ǖ'l{ ?6-˗`i$Aޜx4 ᖁ|ʳW;]>;p >~d!Lc9?OaR\a*\xzLe׈s13N 呡&7>_`qoѼ _]~ ~^|uo _/o;l~ĔΠ_~ b~(-E5>B&Ap{ 5˧@,]yx'p|4ng]ي[??0+2y򯢖XW>_.?=/yſ?]/#M|RK'q`JO^:xjtCyoiE&;gY9x=PٌyO'ͼtϏA#o`lTJ=o˗|.E3ElJ<7~ߤn;vFuKS m~oqi]ƗV{~ʿZ!kԇTeT`Aqk@<ޏ./_7r_#/?ͬ<$N@GZl~?≗aޡbg+~z KpoWx˿IAVw!=^ ĿF >\vɋ"6 sCkCȿ' *\:}z-ZukL9U_˾9cL=ð 8/h# Zx51jA`4*!,S٨6xB,fwΨ;#?h  JO&'p|ǻSuzܟ˭0Ur+W2v<tm Mgi~A*$gX#@.]ƺHrL)PĎ>7V2vD2|W (ᣌ.S]!B)SOoN>1x[8CziN##C]3]ɊFx OP9a.'WQjZjQj^rjtƩ"{LfZ)x%甦*$$$椖N(9 v '/Q5*R$-z\Z PN[~QnbI?&n/xeR?PC/QjZś'$sq5000naS<TX x[8CzdJJ&F @Ĭ+V k6x[8CDi##C]+7/``jNcmOceb& fb fݞʶtx[8C`tsk{+#3131VC x[8CJt/G/#3131v_+ȗ x{5QTť@ 6 n_u |}x;+OPT`#&VR/Lw(=M (5'58UPBπu c'Sx'OzNf=#={[0anҺu!Tx.UzFfbf fb5lU ~x.}EYu{#[!! G (x"M@Dd@$׺28'(+{d&g&)+$(dd&'(䦖dE3S*r 2sRSR IiE @2Z[Z[XZX6K"xkfnf(Rm%elF;f_)er :% x]j0z8b@s09/(+!ݫƅ8=-;3|31|b@~ y p_9Xg=^J.S3t$md+Rz>F+1^"OZ )fhMO7ѳ%lElw',H,ڞF&$r4Jiq \Mgo\zR os]m`vFir}laxtqVԼ. sxUn@ gn$H*iEP1S/ȹ*Ļ7"CLAQ&9QsaEV\qF[)fى5dt]VJb;mOjf z5Ƹė6>D_/^g׆!46WfyIjIps Оdxq2jaa|ݶcz}HvyAA4tBFhY7'eE.mDů~5}yԤ?GMrAMQ`mkzC8 ~E^o}C6ì棌z@yW=!?ao٫ՙiٓG?L:f5; zs؆Ǐv6Q4yE}R3ִ\WtjrR(Ҭ (+i-aO0E}(`R8_(Y,N VY}ҢT#D E0uO0  Px m]t5t WeMd0Tvm]m1 #F@[ Ċ0_)_D.?0!?hpm2|`8=day 2c= h]v:]998H'pi3!\Wf3;JK#Rn,X|2Kj@|9'feg`~f۶lm)#hG0@ M8uۯHƸ7 >lkDhΕI:Ml Kiޣ'2>{Kc nĻkzUiki,W˓Uߣ|"&?0AꊽOp=S=|??y?>Ofs82r+Ӫ3:?T`@aJC$e3JoxOvTWQ|V0u&"&/hҕ]׽9hjDfHlI~QkѳWn ̻wS6*- |fs(#%H- P>[IO)SYX'\+0JeY#+̻_H'=MwwS6mY̖]|(#?J90ݱ/ aWF+&ۦ3E~*nh{$Ƅ=3DyJ>&~Uzp&@`bB#@9 U?U͜Ë>zN?C~{3~O8Cϧ'|񓴀47oCvjc5y|ͼIJB, ƢvƽΊ;>FCP87v$ߺ(UÈkv: ^L;1h[mCYiTiZbN֒91%=Z Q}w  [2ShnpLs>rƕҺimT4lr޿yy8 <ג*r)4 e21i=x~AJ8̳#{)DK>$:$)g]X@p<`("ae Ó-^~驔RuKҌOuc1xGA9p*\iϠ2gzgX+,=/@&|yOΫ %Y)*.m{b>0l4i㫖~a)i're@1erg5-&Zf}<ےD{ bSC6d@oQM#^Q=V:ΟԫŞU}f v#]+\&rϢCB$Py&QV1ԥ3&P=.V%tw肥,bdB%⤏(˜ byi0E V[UqNJ`-rL5pK0jF@$"c$C'J^/T PjDOUfmFˍJ1kҧ垶 ffkrk0+a/ ѲLcTRSܐyQ0jj0ת+q3^_PzҰlef٘< MmO䨴꿳>Ƥe5&S6x7d3hK_b:y`2SN G ^e!]3g)(n$N!#4ɑG?Tѣ%2 m8'^ߖ"[fŽh*%ۺk[MǏ0k$&8)_ h]2l4rpU:1Fy:f]Z?]) | 헱 +ZfCI&X-`E:6h\cW_A7%#O8Y|Bљ Of"wj,07mdrOQY9d(1ޛ5~yi9©S-A7`VR.v˲""SO8j h R V"L1憟u'f:UkַKmH~FkYtP]%I-v I. e:h0,yh) tLwgHC U'x\(eI 8dCc4nHk}NxhV*;Ї>NjCZ5Х zC.D [(a9XF FX^0Ϋ\,n~k4a+Bݍ)r5Jϛ#B%ӑInoo 6i/&PPMhNhC874..X_lbh\| P# i E䔡M 7uš<>۔@)4h{ކP P>o_p/~48ޝGv_k8:Io<'_:ANJ~3TtDhxM9'l1{y[Yr=Jf'Ҽ x:~z{z XNTFBn~+t~d_͋%#+/{ߤ&d2[ "(i\=yWֵ3W<3¿dLXK2r]Rt%ǰ $2$YK4#YTiN(ݛBx &{G$*$4%mwLHG6"G' ")Dvƴ)(9t?麈)H;,E=@4<1|-73y{n2 WN=FtPn_TU KkGoǂ/㖖D)_&*'ƀsaelq(\ , ud©-J?.UcѩjJ)UN]!ҍc;O\bq2N.spJnPfՒ/YZ-9ĹBON*39FyѺţqUi;85 ʢ`= 39KõzxXKG}%%#5=Q=STH*" D8##O!w?]ŏ5Z"ߘvoo6:miu/%jƓW,qH3Nj/PIpZqfL%H K6߻ЂߓeI4ұt2qм1NF8u~0~P`2U|S֐x^qAV;ۿCH/5ycN{s{brFP-Cf[Hc14(xЁhZ% 9Dpk]).I~Z8hH4mr{.J{J"oV "aC,ZoR޳^^=ٍ>cFi> C&Q``&)u oXPF`XFH(zt@-Jx:1U)G7[HXkhf$)lƘtز:5+M)+tb ހՅ.uWh7=N>0>yy1N0$Ky}e ];G$阩O:" *)ڡB|! Sį^4BZ 6܏3fwLZYy9eˑ?GJQLR.:Я1 pr==zjo, ®Nu 5 8׉dxk{s)vVH9O{Ear! ު~X!'}''3Č Y|Vprl(8~)XM/TUܶfo{O+ֶ_sZ㿹vY|P,>4'T'eAr߂4!](?a ؠzkiõui' Z.=ԋB/zVYw$vx3giɟ]yCJ )Zq0:ej cE(72kNkqbHΕOVs:ۜ[]j&L?_e yQ _ʪWWݿ7 ,8AjpImIln74^=#]_P#Ye*z 2+DB[B!M\*fi| VO1W VAgJbl7}|'$n3Ai#Nw~&zOglt%nsr8I;zkkI!-A`[2Rk>nUH%MHabӠVElar I_VO_)8Qі ݖ\->< 0ǻcP i({ioF'҂i"£ \0Kݨզ䭧Úf*(ZIdCoQX!Q]S8yb_0HgZH9Y[sdOxIXRBIxJzW;y4Mv}xn&JgAn9Xzۛq`Č!`:fy |oP%]XiYhtcЙBJjY/UV:hm'gԜ4+o׌"%ذwmqtN)`B8MF&ߤNE%ute֩;j7d4\^gw8 p n]}6`mi'MhtjGaP#k3ydJ& HAH>yR 8GYt($G'KH$u LH)\o^V7oA.&w+'"sne SX{T-IW"Sц{JjVݵ 5lË.TQ~krS -"eN["IEx7D< L X,!M˴'Ue "2 ie!: QV/ZCdNovK傗Il;OJīL`ٟRrج>:~9*ecbb`V/7c3FjC<:Rqwl7)KE6挢m[[//_%򑝍\3!}I1Tv. !reT'"qK⶘'E$-Q#</2jgڈa_(Kߨc I%t{FOy8G;dv xcW_f0DAIVq&cMwC9_-|tFۊ"Luno.P=WjprWHnn!-}HnOd.mevY?dM{߹봛/96fxuKrҁU+Xs%( ]QŚl8xab Ez@!\熼wLfbM[b$-eɥݢiejUYuqxuKrҁݿ_/WLݐ(ξLFkVAܱPxTn0 }Bp_:_Тi ֤+2jDAlEͲS5`:o~)?ŅXGzA:6p%bJ(47ZH!zt5x)KEҭ,]it*0uyBn'* 5Lwp׼Aic|}`$N(Ip]/7ŢJn[ſ73CiedVJ5 "mA8JҎ1{ b1( cqy#`ȡ#Nzs<9I%g'1iӒR ;f>9:kRX7wxMcfʺ^K8w#Iy'S\)4ILukD%}n%ygrox]oZNi鹁Jgu*ӻ,ülH ]xmPJ@&$"Dl{("E0Y#NqbZ .%4mֲ O.~%uG%*=XE!.0 Sm7~"JM`sI%¦|EjOki_aFx;cR&e.N HN+K,K/G Lݼi%#q ^ xs -.I-PH,J,K500H31212c PѐA=(-3'5(571/1= 8RK@|UF&)&CfxpIQf^:PA H VQ'$D!,83?πy#3H\SHeAjЈ\{i(kxqB@Ϻx]|\ѿݓ,[.r7X5CX,=;qs#^В !' ^Lok}wgvwތƅK7// Xb-c!"ŀ_<f457X2L:ʐZcZ'}"&Lpуvq缢5k8 }1 WK);m'Rk kL;rb^̩Q:GQJp<[8X]F]F( Dy1f[}h$ͧ-U,nWJ} U6v1v$;3}c,bgՠР7$X7'QA'F:t+uu^ޞ7p蓛trwBsS-لaƃfLd!OERԧTw[{fajybQAY@G T6+Je -}Xd4]W( XѧRI?cw][Sm*mAG`'K>5DrA}Uη/c>MJU6iz\Z`wd3vzI65+84Зt,ّu00``1KGܘ zQzsR<:*>WWR=_\gsx,MWنmVuꂼj=4EM u.u8Zԅ uʾlGk|?2bu9P޽[O:88X^(q8TTxyC6cΊJ'pPGҐj_i,4W$b4l]ѲJ-EJ^^wmcwP%w?Q#umJ%@[)k5~!N7$b&2ĵӠCi\27m#fԇEFJ'0 Z9*\ WTO*]J Z dX26ͪTݱ8%oPA >7/57QmuS*Uz(=Q_$'8TJ*SayZ9jgAϺ*ٞKLl\9\P:E1V볚Ukg7]-y> 21:]N,.95h1~k\܍Ƌs~x1OlYf .i|s  5̉.l?4ys 5 WtK͉[q>ov/9\gUA5obx k\+ߍҿcsׁdNē[qqv$wlhN+?"2n7꽆`S7mdO]Ӈcܪ7Pu6dݮk*?;Uީc{E%} ݛ$S{MI[9>}`Jyez<r]rDO~|U6=ȬT }*u{Oާx2GY&T4>5|^ OsF:m`=m&9PYI_S{"py%JVT.E 3{A+zz$U@X&f>:H~CdkBrkMPu p^mۄLMv B oF6bρL7oɒ >@[d3fVVC0aH^T: *QČA':cҺŇ.Y ?:W-4>^bHpSSL2|rk}sb+S |G84|'TGT_b| aM2?T ~?ܥeOt d?wkS"Z0Y#LJKjD=^ J7vֺ@l_ۏx(|@w=Pe= >XOjז]𷛢`CPP+'[R+Aut /F\YkmANZgkT1ROJn(}jdn*L.rryOpu\67oN^PGu;eFQ1;+=n,Y 6NҊGVvU훍gUWuTlP_&=C !Vt߰P=$DNœi=30o fnV\ ry`KAKf$,Ht:b0c!] ֶQ-XbE_*O3ϳܓ؞`Q+P`tΩN `;WGyFUBN\=ˋ"&<v %rR^Ql*zRu"شyB:ĸcfcfRj͢v 6P` 9:~斗0Lgdn?~.6]0QVKh1///ᬉ5=[9ƅ띻[HVǂ-wl?ʴlbaTa(Ү" *?]`UVTXY%la;A~2-ށaך?A/#3*X3BBZxeph6K)!9Z2k;w~D8ы`9C#(6;; kA~΁@db; F 2 g`I*2RDl 9:Tl8C;m2Hq p:HcI >e 1Á%4Apt ;ĦTL**D0GS gD< v .c{v8K+*V;$/~!)(=`Hd)Tr-\}g1; $BM=E_!:bNVst& Zz]֐$o~?./QTr|"ꅜ T̛*؅KPfc5'Ğ^LNӁ,f̿`P3f>.#cc r2외- {.v`Z=šJLΰ3[+○j"xNW~>:! E_[/ CNSQbcTZ:*8s=] &֡Sf.WE 7'7, -$lVw`DuK8Z6ʻ D ;O v H'؝Qz=@^ (> NR d{Bvåf>d}yGN? cPÏ(CÅr?gB?ת"n+ؓT @?(C*Vue_+ C1B0p *"ӟ""L}A A˥ʧh9͠`_cIL F+l& d|(wE', h 2..;i'Rp5?$8:rȋ+)B_^`͜"xD艼B"̟x/ ɂ.MAއl|y-u^}|*x"G;r@Oy@|(B|u$Z@rf ˠtF>(2Ba]$|(u'$0 0օAa(V!8) GR;UY(2U{) RRLUC"j-$ZߎJܞ@d| P#/.o) w"ҏKA3?3.Q7a ^O2 ߅Sv%RnZbShi9o > f"lAB g?Mr2"XgHܢ×wo)Aàs! ˣa)x;v'.4 vA\TK@)rC@~2M>m-xG >B0ny$4 xqp > Ac3)raؑ\F>CJz%rD+<)8Qb&VP)KB5w drj'Wƅ/X.\K)T"r܏(:U{5(΄+]?k9@ d*~C3,g`5Q'ag1a"DrP~~S5$AÉ5$\ZXDT0KdNUX3 G4 H@a%$JH^Fb)`k*1"GՅQ>bh~|K]@U?b"pjjj.W>QS#Crc]'+G uS#٠*GIpp6 ~=aw~ VD݈p@Y4( e È.Lh 񊓯%Ғb\^SERH'c: "\޴S".Q%wTNn!s)չ=e,g`1J.C ?TH v D "@*$!)8UbZxC(a2cUy:'AϏ7_Pi/zAE$P1[ͯ)̓a`#y( 1>9Q4ޛ, K} 8$Q17?6DpQ0ެxڐ\^8Ҽ[U^F0= 1V?870`oCO* ˲/Q% + M2O-( ש,E 9_ -@.oK]ߺwYR_Jy_"kwhg]wVy K#~MѣPNj;1HߦmE>EozEoFE)zG%Etxz,҃;#oEQt=Q.>镪!} <=+ H?Hhm"GMx:s<m* ҟ#!wGHQ<W#QW#Г]ѻ(zj+Y @tJa//RdT_QTSX*zosgXk;dV^鞸'd7w[v;7wf@wsKKrMjy60\!s]J1YI`H%mr.F4O_;O2)P3wZ֍,<J&]es}%0-@$SB_9 \.X›-+ Pi9& "@›-mE .@Kz/ B^X6PH_@"@ 5wQ9 q4O[4WS&l[;rPXcʞ5w߳ly146G#KVrNv/1nR#H`9jFG e.}m4QɕֹZ2Ձ<+~"k,Gr.s{ȹRӊi%N]oh׺v"杢bؑ/eG##OD=] O–]ݷ<[<ӐTH'}JGZx^Yز@˳>}.p_EAz<}`'9MϿr&~}_/@~'BR,o/n$ؐ9/PK^-hp 6S6To/~#2llpj0`(Ldٌ osNNlGզK'B?_T'*dM2_K1$i// ]ޫrE|,7|EJVBGl]"H-e3rӎSB vlI_PF~b/lZx@~ZYRr3 J X(6^Unނ: [B)dRuauR:^?݁OOw?݅OOw#\}d}"ђ>Yrmڀ~D&G߂GBM2\?=25#^/B7U7j麼w*߀{^5zl?ZIyǎiG(Q%.p&W!}Q>VV.z76 {Hglr'ɗRC:j%S_yeR [~}.U6bKeo5NVNΖ;)͑o!c .QAfHoG9vqE{wKH?^)jAUoZՃ>(eLժjQjT[~HÚ8н:l 4QrEoVěqgQ|YunS5Ӆa kϽ!%cvJst\Zy[MtFڌ*& g%K;r$j{\kۼ h3eܟ*kʩ,t[}6okFOF雅z"mZ-vЗ|B#k%NOI|z)pEwv<:^y a-)Zaݭhyuǣmd&@pgb բO o˟?*yU4|w"@y=Ǩx}Xy|νLJ$wg# r! k1B $HUj!x꾢VЛjuǢ?[-ע-kV{d2?px]yss.n*8yMqqq$ΰ XV/:i< wv;1.Q-o苬8#D1Vmܶ8y0%FdҐ5ySXy6/vm&#} Q'Iģ4[?OڔhT {BHw[&l1eJJWF.N>5mZSMiHC}3ibW QBІ2 IsrԁGX .)(Vgq&1Jpk)a. rp ]PK.^ȵhK.ΏlqiQޜ.J o1q5Ux\5 V=,7|n0&:߯+&~>^OiWlцh؂JyЗ>b(9 mAhCwo_kw_g+F~!||%xǕa(ᒱ-1 #q 2rʗq*& 8j\{ z|cVU۫+9bCq s-tW\UMJ'vѭ2~\sl }]mpm'FmC,8=]Mp2S~Ц[O!LkF /=(wmYv.x2K=d? 8d}(%KGT\ q%푍]C-f$svCKN~sl'';gvtW^۶sC_̙kl'&7*Iǫr ȟ˔O⒧Ʋ(r% csi̝gFxsc;mmWgG1:eabaH۠˞x/qkz8b'3o#/Ô(L /$kqWqGY!i؇$nw8nb2-9P<|w@Ql-ȋmS`o]\c 0fǠl>߇SU(:pa(QP>5F)Ǹ[QiP,5|avrAsf{Gdhy13X46z\_\"{:2Rt|̦a+5u5#[\vGߏX' ŎKDOc3ކH[_LwFikʼn/2Qf$n rYi  y4wY,L8\2*5$dinF*`W)ad€ʝ?,/uriEx$gP,a`C W@UeL%T8//" dl,}A0ApK4OςT_\(]xnOɄ Z#WöysFedJ7adBS?f8< }n !! 2Gbؿa xFn. jS75!/_-xˁ̀c-bC/_ҋ)xI#wIn~\{d.|^\31&O)Ӷ2rk|*5Xb8l˻08#R 'o<*bayW&#uSי8HoɇJ3|Gof8 ΐ^PHV;<Å&ƥSndi\^ӀZMI/kDk ow1/ad@`E g Cz_gPXa=xk,*D)vHf LӵFIr|$:XBO f :2&`UL1FTHߒ܄Fޖw?TCHn<zk%'BU<9#1JFv3(*b53"=Эj#+ ?Q4y|*dOCxV2Lz s!u^P:xL#BQ){̙:@L]C+f|#+%˿e+8\ _˫1!q`[WA M\j )fXo2@5(Ra ڠG~OR"NJej ]؆f`9Q*Dz5A|H/A11X]ʨUj2&("Fe)2j-h#PP1,f?k=hO0j%~8n}2׃XQ4SwmB2g9#\E$}(ɩڥ>73/*F"Eb\T\:Ex2:Uj_ w5{&H.Mg"9PvLg(ǰhL0L'%0\Z%zbABsa\9HxIdRz8@^eIv08 `) $@L`B Yjs@H ,,BŢg)$ K$Iaf5Z#I~BF+%Io4i(Xe E4pp ދ0ڦ*(?`]q.*a=eN.cK{5+NU3Vi#d]R^dHl~'X^σsUb`;G!|ݲRB~/>x]ėYjE<Rҽ!1?*a I傃-E'&p-I r1@$^F r0DyNvGHm-tF(EI9 Zu c<5cO+q zQ*%XdxZs{F_cyNRϰDU3 w3&G7{ St 6+â'DVۼ7e!ޒCm&^i 0]JBdBK U@tSu,cN,􈮡r/t I1=bDjfnx6"Z!{яUbbv8D(J&sϱ5~...!5p|SC:b;*=$R*JH:rLyeH>. pG-s/J  LU !,;[H vL|꿶Cџ ╉hTvSݝLDARMT/0d~_4<÷df2˜ɢd$oku |48%WdSR.b4%I}9*1M) x;3 q2h}dpl4=u4H*->0{x%ypE=؄N  d+ G $"ҀxVDE- ,A Ԣ$E/,뽞~=_k,SޕcSznnH+UדlS!MnA^+fB>51y݁F $׈ZL(4/2ׄɥƦ\0!Bp UAbV s`x3< +]e?sfzT!fx/n1+aKm,/&FzWV_T,vj# 4fB| E%^WfCL_bW 1ل%:ۭ ._suFה*QבM8?Ħ1~yA7wP#A$4(>GӘl#^ .!,@h׈MB d6/L#&@, iP`Dn3ǿT+{QpP&= ^3p};:pdE1qBRd(#!$zs8muܪi M n4pTMe 0n0@6V- +R~w߄O ~WhZ<#PjSK<} Fu LsΥ7OqB !D{"k6l?43<Gw;EpG9<p}-\th"tc\:'?sx,g;E~&i 0O xF "vJnYgs/;O9|B$CuߣyHG]q@zZpE:=C7oZ=P &T"x}sؕ+/rEwz2U1I[v,=])$dvgU[[ӕrlstt_U[77zY|YU-ʛ7(/}v?fuWͿ,Wu;ˮ!{u>{m/aeBwE]bW 4on_g??E2dzBյYCMhZen_5#6ylY?4fe'eo;믿?o:{ل]>oB52.kmhvEb0MW]Xe]@\m ]h.[_˫iw Y,mUKnn', u ;h~R!Cж{m~͞\toQk]_v,9׍˖yqJEqVd~}phuq]j ^Ƶț|tF-pyE.^'c%+n^~OZ5% jU yq똗-4k A"u%rSa pE7UB]p2Tmi `Q-{ eW yEE#*/g<2Mۂ S-6u rBzc&w:cÛ#ssy C+j0sChF{?Ƅ`mo/2}ZKa#σ+\Md/MYuLx.ʁ1g)'8)#ljXU,osd#u <ɓC{W, u\0Ux'LD|`N:7oc&c .3r,- 8/ c]mn>]Bgupr¾Jp I/JqsG{ru˜MKB0vyCdr`(yXm?/nif8okZhnn(왞șO􅳳._dcoYl[ӜyEɽLTnKQt\76mmsK;^@ lrD0xi HW.}f{m`n|hIp}#۬oƞ(6hYE¹i] @ҶiOY3u7~ [ 0Tn>={W7I'm {"v9&.Z ˾iPفr`4hq60WV>Nt&dl`u;Iv6 pKN<鿢 DK"2psyW Wmp'Oy4BGG8D82RCTeEv BL^eL|=iM4 [u7L){&:읙ķű4+$ +LHub鄐L apT>fr#*4eY?AQKVM.^2Fy/ ɵ kGI]܎Ƿi;XG To8v$@x WfT.͚Tץpz_VX;+ Ǥ}kYTW[N8aS|R~'_yXy bXd+EɲS 3Ŭ ƌq)IP@#bYU&,Ի)a}=׻Se#>"aTЉn PƈB;XÁ/񉧅 BmWe3zaC{z- EQG ϳD lj3BѵnѪD+Ӟ(ݶpThиl5s `ځuQW iZ[fNў=mAfCDX6}ã 4=ta Wa2U)4`䏊b~k=gϛ|s }z/QD{;,9|f*{WDP_[͛*6%xf@6o/5<Er$ρc▎O+>sp6괅@Ož/'+ƕ 1݇x*a>9QF@f>  S-BHλ=Ծ` qsH7UoG9q -x *e#dA3: Ee_Tg dt>+TB͝ <1@o/DxB:C~\@j]g"M|'7s\{Ӫ_Fͽ^jp 4p:L D,Z3foW-1=* ʥ{ڪ;Pt08Ѱ F:*uէھ9&`hW8JN bBhAqMIB><%ļ U41ߡDOh I/`w3rdB<:^ڷʴeuGDkX*`524T^Pe>AR~>{`/vmId@;/^ `^^7D ^(htК|*W_cQ厞jv^f.*S$\-g}F133+&^`3q Ax.&F@sOֽXQ(A<j~@h Z }GK H6=<+-v|r Cwhm|M2`/Ƀ~JHIQg+6,`v䗊/wj@0;,$ۜS; 8Y3-+{ZԕB8z'BY{yM]߻%j[(]hI >HHPoWo6h/PE5W2O -|k'A$,77t_KDd5"hB綜({ g}|#Re< 6qغ=it(|V=]_{֨Vڈ,-l3.=K?̳g?ejleYiF$/MEA_3b5JÃitQhyi4~댂Wby!2i_zYwapD1;R|x]:`nk6yLOIERyeO4\qW|yk-lcC@MI|/O$üM:z$*c0lN@rԤ+2{(!iqr Fаd oPL,_sʲ 5 gd4!f%R%C]FC7dmhQzMY>wgWWbn;P )KQkZ"Y Yb)Bא؎w} !'}R^Ln%jx]2aEE4OD[ zo @gr{xH=t'(lٺChzpW>/Qc+ b֠ H옯:C:~盫lR0BmFoCأhyKBp \%Dc.HtߡwQQ\rNxX ˅2pc(ُ̗ϫ; fO8&ҠHUт=)W@iCsѪyI  Jѯ~VєirQx.onUFpugcU_^E6ǸMEí~|Ne>?eu =3)A)_&IUxmML mE#A^ ?Id : 1C8!'`?| s==j9ً9Az1Ɠ,DtEmm]Q8#Զ|`-:nGx`Jie!H B$]Bd$!# j+甆@f&.o6qÙ=,s'%Fl9cѺ #0KQ8 EN]iP1-Zq~i%> Kh58#=c [ղ& 4Q 3 i` efbX(\l#O?UM,{# 5Tc{ r٪ƕ65 !kYQQ"/ p5K"Z:$uM߇A1VXUwJYY3Cb6PYOM 9$LQՅC݇IԟEuWF7#$8\[.4܊4@fpCٽıX\m\{d6 ikZqAƢ%Ey58KKMh#{6 *ZHDB rE!N<[Zj{Ӣ4_Cewh[ƒ]3q3~I7Tay&qmdlG}S|@&ͽpV G6 @ OMjڏr4]a/3 q ?/0܁'\9cKگIJpٲ4;%1_%X ;&U1(x+@iugЍARZ04Wp=B?AsVC\'X7I,Y(S[e/,vɫVKWa~5t!DTXI(Aφ6maQr#6x$c`8dOLK\vq!;a0}h(0Ial ^yȱ&mJU66EpȬZzBOZfwY]be S< &KcVIB:v-Bġ$9pOl>H:ӄ,Poll*~U~DO[^ kcr@RtYqܝVW'Jqs \Ɖ*!c o8#BN~QQ@;d&%`4`*R0JU#HA@ o1ޱC׈K+URع(vŘ $r]lV*#2&2潱Mb :©L:$Fct:2mM;Uϧ.z&H4JgS} :8C6Yy b1CgF dtb}A(==+tWbݝ.5h$)âi*{**'I 65/SFV#UݣK(!cKym@zp,6zoX |*Ì~YW?̔oה>/`Vy_0RYrE3&65fox:.> ]ȝ;+G`IRx}Ѱ3)/._~3kՒo `lڢECOF @&,>@[wpSSII,fxHrD9L-Ԉ0&ݚ"`յfnC(uJ5˺6#S\5M, !EK"jA2'BDvV<0{N# #/"Lln_s1F} mL;c;u1 (eЬ?,9~DHLߟ[=n w$ ozҌ5tUs63KUÎLBv?+tϑ p)%Z0*>.BΥ%i lIJyj&(Ăl0o]e Q6PD<-U4sGC]!B L1ILA>fEXI%N}݌Sl*b!M c6}j"aL#q8NJ\hlA]?}w7mraZl*,cd)"y'%@p/N6iuƁT 8T Ό6>6!9{cf}Ilcv݀)J>^X@9 MO=ɂ"2KcAzFY>IIm&/@>VLVXkB\KD9-߃<4CKc!^w*ʋTotC &5ԫ~:쟊1|ljw~ۯ+O 6LHivrWG#0,vMXB4(8q$gjM[ w[^Tb4a9ZC(yCЊ! L6FY"CKGٍ,_t7K>_3ĄZr`w?RWӘ|eiњZIsQv5hIa+K~Ƃ `a|Hlim$D\ -bCJyR@%#j DT?Zvkt1y83\vG-pW@ޘ!_T'IqsN\a`*V2ފbH/t8Wa [5C0jjTRA4Tw<Ťy )Hw 1J*ىTXY>)9"Dm Iܫ+ =k f7İn (psu[@)|o5XIf $psϼ^]V+^mVM-%a-i` 6m *1TFh + )-R`o]!tAkhJ݄vN9 4rNY\L=)bqFIk,:FqcT&OCM0nJZ"2bq&>L%'509Y-OX[MALS2I6䶴HI( 7#~'ُ?d O0; ƶJ\iYT 3Ovc+ca*{2[S{ v/HwpM] V#*|-ǀ(7Mdk?'>RUIL}>#(FD,LU HmO#J?ZKRH+ ^r'^ǿ+I>_ /1$ٵ8v]&I sU tַQϨ.kb1|coV -Û&*9yʙ`{ߡF \TaǮ.p IY'+ 5~hpWq3F@p-$OœI_'/pq iS0nvݗ:e#oNFeMyl?Tmg,6VF/ JLl Y^`EJB)DE&":$Y`1su?=FM g!U%U:b%V_fLރ#K|ʸ~*SM%7,!(EH#ȄA?^^qY3Zbw_Ќ8_:qXG&.7'ۦegWZjR&6Rr`x)Ϋ,Je&QҌtoÌY=}0`]t`Q8jMפL\~V݋^_8 c, ?aj+%+r#-ݢ@܊2 r-#rY&٧erڧ^M : 8uyvlkE9.ʩUso>Q~;"&"~绔oACNJ f1H<3=6mu<Yԙm'\]eG>⼭658+/ t# _ ( "{M6ׁ5J5qɟZM d \Tմ8RziV< ELr=@:y\f7=zosꩈ_3az8WjY#d@g1ާu:h ;*c(K@\.)X+meF'Ir½YÅą}};6hW;K<5Gspgft>Z֊i?$aW2'h;/YƼ!3}mULT>Q75Xʨ-hi{}CNX3$ WW2 P8jVq]pZioċYs4< ]# }bS4cPňSXV\)CݡG"%֏Wޡ(ZRUIuFM{iǕv51DAiwxtZ@]jvz~ ۃ/I鱖(鑂 1'` dƍ3.WdWXs+Uz9DHpSz<d%0)b!abs i[d{,ݬh|$n+:q*1DG<2;. Ii\ Buv!1 iVBY,R^vg!(04-x1?8}Ĭ91Nų Hw?F3:S&rigTJ(i)1H$=uH|쇖+Zɯ, (A8_̈́^)6s+,S(1DkiO_ ^ KF-踒bI}!Ga9+H QB[]ɺc@;ei̓eDÉd["ΥE(`O<(FĆqH@13R+7G?-fN\Jt.,UJO4);] V? 7v!v >2U3-2[2ԸU\RǕ߱ӕ/l!gٻpju)|hi@bJhKWP]>T'`[\ 3i ;]$0^#2+*n e4b ?$'еR:ڇKo,bi|9cbr#/ռ(X1Hu'Qă)73E7+ o:`Lb7YHA 5MGH ^HEZ{͏ +XM, ;#fgJΫxi#gu'\JF-u0qV^6t*dkD{~ygˌ *"VX9!`/oa:>zY:'| y!֥Qem88* \bz"Sb( ^,GCJ9 ctB~q=lѤm^Q.M7%23) FʶZ¬ ߨ1AӦX?l\awHMn~|3t]Zd3Р)oD%r_eԢwp[wS*N],]"+ 25F0istؑ:{/E,0lz΂_2bNW}K;\_G~[;㒟T@h݄ d'lfu5n{~p&i6 9CicGVvgm$r65dHhiܗWzk2ƘX*K6J|M x!~.܊ fuZ\mEŰ?5i4ʨt"DŦCIࠃg~e'\\,J"h>B N8Dz |!+ŘKR~6iKmۉjWRaD Zx>+]khGTYbӓԖ93[<xX[o8~^ ڇX`v:EQu|,;.0h5H E%Iv|%ca8wLRe߿oZ^* $q'tHbㅒ<]_u }awaW~gGvTd|smZn}+W\a.ۨ\2-Iat2/ 3H)Y f H {RhII,d!jRłkFDOL1,t뭐c)ƝqCkrʂshaȈW7j!Ha\aKl.XYev+ LG sWwdɤ2]A+e|`_ <E%[m l뫫u4riv?g>yC)y>~fϐJTH.b%Ɋ]\],ij#4[T3]&pO% 9$-:"]ji1P5ϋJ߈E&: Qm lBj[wLuH#IKQ!cӷ((YM+, d@2gyƒV#"t?6t>Pʳ_P.ADiyfJŝii4l[u#6!x?୷ޝ&)EsJة&kRE#t"!ކߛD?`/KQpY'GkC-}=-WHZ ֵ$CY8^w+s'h8 ѰL\֔c?MǞ?v \jjaH(w(/EA@UG _ N,y=vr P-{q&r^݋Sh͊wCxn' TO+/8 gC!pE&sCv9oPd|*vUI4z P]d@b.! $8 A"*m.Ջ@ 8z%L fJRO yjyjȡĦ6emQ5| E설b3Yə|%?©f!֟IjMrS v%8ݹzZoE^ڀ}tӬeĤ'U͹[6nR*]ods+ H Zbmַ2j3͡e͡g+YopNN¾ӈS=Vrڶ'aSG1│ =-"a(LJ闤*_v&$(JvhObc3KrEY w1xnU[2.ww@Y?%NYs0no?{<u+đU[!v)T=ڕLnXp )Jllx{_{ b$x{=UgCdNQ3̔l}ss6gu 4x]SGZ.n $#K!2g4 G84tv̪ǠA}f둕̪yqqlӻ"y߮?9(Č6*sϲ8<[7xޞUyt"F~*yMb]/^\QUlٻ~Y$Wyqg5nTF7IV+11#lAh7N(n?bcK@'qlbyI]2 iLI/MW(sAdc[N'({7GHcյ9ynv"6~ y36)ƓY޻yl[_e)-Ovc/sdUM"^212;`;Y7ϗ?.Iv ?7QR$8)7OmIT,J8Zf4WyQ7xi>rm_G̮O; McidyYǷRxv;GKKK)qvx|Yo PVDdeReUb8⧥ :CiJv)tR̓LLeէэ"\Bnne"H'4VMj@V ƫ\7 %8yQEUR_hT 67KcX a$Qh_P(N䕶z5I qzo,o-NF~oPS5~Y^\CA]BvriG)BC>24^]A-:kQ$eu>RDg #.ImAJq3k*s; TQ beB+g|W>NOSER̜͊ Gy-.`f<+ *\ ˊ,@T 7ѻxUIuTTYU=T7\Mh2[x(/}J0-` \%e%P@gɹy a3u%3< .a$9L)4"d*Ls̳YRp:P͟űNg(y[ꠀ2vMn~c~Hr#OQp`M(|,r g餍wZlL 6@fJu6b `{swvpip!0} "L3@ҋ=Qu<9U˳7ha&nVf$aįy!$Qe^w!Ux\-6粗oawo-luGx*Oz@Zj@hz^Z=T%>9xIT4F$3poT-/J"7A㪪̐6e[q-粝j- O_pv'yU]kK# SBŕ2vBB0`C]f ^GE n  IX+ҩ4s`f#}%d(T+pOa_P`+_7e 7>r#a\ g(<'u^тTGg%7`f@ A"Ruw*nQX4,/>L({е=?VK0BN1t>ycq{_X9`Lϵ&%j~mr 'N7.a5W^S"DQ2{J25g,0"i俇K~z)ܥQOpeeXl :\e BlDhG&&nq[{&F;J/?|m(]ݝ5aH7}W"ZY^Y·1\;LlI&3LdgEr里SeNGw1P1mk44)/oY@  Iaմ8JEh9WYJ#>I_7`(@ Eul$iA :"Mnpܨ$0A %.|.N Vi6P4[6K.?#a8Գ&IsnX=x7'd͒[".f)s\7s3qF4b2ޣhH_c|bR(<( PhnֳO9mgqWNV.̰s)R1i&2E]~#@{݂ IKas鉰ط%$_< @!wEȣpT^S{#J';+`ZRi>6fbYQi9&id@us<s2S`/>-|lXHQ+~5k_UƵ0q,VT3T %vLF^m̻d\NL% "~@Yf^D?\hHg'Nlvk## y=1vU0xHkA /h;}-1nx;$KZ)v6I2ˇ]XF쎴aE\'d"' G'Xka[DH l/[AƓ#Z/a!@[UA:1'6 @L{ߐuZ0$Q$c1bȗ}Gf %Q&f̣G2Ged6_Zu"3;5ɬ~+K׵p3pQl v r"`F^e4P\L[}K,m)ja|"H-  r.} `wr*Ͳ BMjҤSv_%A=s SCȿ7ZE :on 5RʛJBw_4*w rJ2P|6]{Ky cClrB@s,%JZNsIBoիך>Y:8FT!CgNUm '$1v,| AgMI%LTT j%>5;S3Wז;3Mo'r:+ 91r͹*cCĵڱ!3?D0lӠϦ?$) PLrJm*OqϠN=/Iut@|&)*{@Yu/H[pٶ-.hԮ;sW]r1c>a*lF=) 7d_s/k- h`6ZhY#v{zV vt*9luP'jr.c>eB Jof[>bC]LMȀ4h:f0MlһVpޛe uZSޜ +l)f_#%JCAaI}c_x G3}] Foه~`IodnLL/͠]xB. Q¤p[.bkT=?qH8iת۵Qq[.H$s@s{36RPj^^+F*[Q!肱L|jj+V$Y]M_yscIvWrupNe8 bp!(oȔhl8g O+;( E-`Q#-B$h$AF^(qdjQӂ;h>9I֝+u3?V~i oB1>ç)w1Yp8(9tۻ92t1Y4EpPŁMՑHiͱ4ש2Ag"r^dz 5S:)V`8g1f pƚ['=ޢHw? #ً-RF[Wv;LOaIymJ >?>+vKj8_C'l:Ñ[CTzE -=QҤW8&e!"c8 ]ףTak0CE=&ƤBSJ 87a1A[0v;c!2ĮNjLb DІJN LHT:־>!bdkWpr06d{*P$Y㎳haMF7. z] ά]2sE1NFRE V&&5yڸCu7%ſr;x;HAƪm''RXn<1PR9qAzO "(BXP"H>*m};Ixd0U/b%H=9 0-x~ F4`Ιn`В;EF1W6 `ld_ 7C=*04f{9G -]w@!GZq0pT'G-W8}Q}$SU*I\ZiJoKr(䦡tH#oB|Y4 :0z l  8铖?KGPkXj+>9 k #/qCߙy1FĐ{ ӱf P0wXM-Zɡ:9LVh{vڿѤ}bJT_|!~b)1F ˪^E$E鐭2! KIGO7[Q jv ]kR%FgIhf~bG{GLh3p Rz[}Wش8!gYǫWE ȼY<;8{̯lƢ;bjSgW;T駱]y\ph;HhZ f i-k 7q_,v=pW5>b B_'a٢ƝM"n|l'+E/?Q4kobD_ŞB)eTkjгzD:9,y"c3.rĤ+d[YT2/o#qK7_ݎE4~K4l! ^w1~9c:泹ר{Н0|5s(FhAͩZһ`ߥ"} cY{T4L(s'TWHU_&0>RDm s"]?(+T̨_[Pܒ3X1~[gn]+a\|^q L/){d(m9)QR7CU3Mpp߼GAjR,C.fg6 <|8 2&NmNSX\H fc2\Bin Dw8Tֹ2.IohX4XQύ^٩&r( FhN.DIH,ǔ│%oxp=4yp71P#|OA ((~uWP?Ob.^7Ot}m=K.FRᗢgGEAQ?O[j4NKkg:Pu 9 L(7|eFVPAݾ+,g2(.߳%֙1eYVyQإ@g}&3Kb qB`M|/a ڂ"tG*opϨ=(o.*EVGQ?#s*PP_ߓB/(DSuXT_nM7*=J37 4cD:sjxeX=>.ZI罖f?uWmȜa{EgG}plt(*ňR pP]ј["A$w \4Kj/<RA$f K=m .ІCX5~8-\7bcba_~*BB*kגգܘl8}v[i=~H;PU*U3F}f{+L幏}_/D`Zy,x?jњ,esQ Ҫ WXgB[/BOj'<-hSY=.j#ɓf(DxJ_ȣPil>|ON9XÁulN !B]8Cl0R&`@Zq"Yld :c CCci& H/3el҄'C7Y^ jCD?RZϴ5XlP7Ɨ3{v/MICqͩF"8Ld앬kv%6@K#]S ?ZRT65$굌 Ñw0aAB`pR>NlA^^|v [x;C޴_#\oFW,/Z&(+wWn,=uZsLO25E~YC\g~5nW`W[ҦvZ=;Qd,F{=7Z\SXm^Y+ qjg7 ,V[B)М#?Q$w~/%fd)H:,Gbe%̷p/2'hD{P{ !/ Z}hni9w}`1l;A[[SuDK.%A @8{c&`$BI$ČuT~3 ]W38y^*C!|iꙛ;pUS&3 O*iU^x^5;s vϓDsA"4ȂH,v ؆D#Br*A4sDAT_r ,b?XJỲlt8kۻpu1HK*axR۪eLƟo3@FxyԸ}u[eLB'.B%霠F=sKhэ253=ke()\XK ejf Ws#Y100644 GormDocument.mX5g@):QQakn^g}zx;TC bNw3XuXM[x;@D/471;5-3'aB;e[acOoڣ)rnGcDI>yeaz IBV}1gVÌ/uFea8r _ⲩ n\9y&e67^'6PǛe_6]<[ڟJAwϞSHƻ' oP~zA)}=%X 7DZgC]eɃK >[wYdַ#(sm*ݭ$ral{ol^ I@+x;T+r,x~vq,=Kx;//J.AbJ:/<,Gس^ycU=ボ-& x?//_a!?Yߊ g}&wL,fPEfNO^ggOx;TC/HhĢ-u>JhټW  x=kSǖѯuo$clgyllA!TVEM 2Όy{fd'{7K%͜~9}/^~aTy}}O"UϾ-W⨐RiuR,$϶q6V,/gd14Jٓ$γ(xqYDIVVE~=ɷ?_*/LGet#*__'hDl 3|bRyTT"Wwe%мȯᦸR-vW 12Q8I' DOBq2~EIQ(^LQ*Ni2oJ)"3K[!|WH@*q+>-I7pخӽ)4m]]f,:sX E%i*.XrH ?>yw.0[]%74aaEU0kh/ qt|><ə{g읉wg'm!F%%8$-Җ0=`Yt+"1Qx|I-&wE2Y^m;f^',6iK| :*>)y%^eoΗϞ=F{ο%$]R|o}jܞ?&SPE6^J6=Zd:' "I6InwEg8$ezx|s7h7Mf?%SYl"a^%dB2== I}"DX&s%JYx/;/ rM$]d(.{'{'qOPj xfʪ ,/Z>5wYJTU~uj@ J@NEZ9ogeSbД8.S KYd_هPj1' x c4xg@Q d8BB&,߰Ha9B p%P3e-@Ñ}i>0fbB^GOS QH~A9ÓFOŨ˼vy))?0G(*ȴVs a/4v5`µdаhxHٝA dT FLD&Å޳6.(.OT2Wh90K) ˽4e=PZ\J>Ss;Jݕ$n9?CQq-ilv;yNK8# D:0+[Lq j<B_6Uߣ4WL@5e4*0( #4`+rs{|@7Vu׋Me7n3Az]{)"kjSݶ$#} B\0̈́ .>Sj.vD[-]"T):8*pdFEw4+Sr+E})P/=#tBH t#~ "T'e0z-u~L>ሣ橶MNBY7 ֔A=Dy͉R()J#])9*D't{qLJP(N%i)=-L cҐ}BBQ7PE**0B*ȸ#uR%V s=co|izhb?ţ#޻ah 9zLt!b 4ÌJ屺sW3Y-a-Wo,&1[">bB L 2;4,_8zd2nLdeXK%l\G>40=8zROJ_ĜHh݇4)EV(1pO ]fi\D)*/~B6dNX#>y`x>%sp3hCT}/|Fɋy b1A0hհoKz36Y*{XMzFzӎ%5O`O7 z퓣ǮQ݅jyD=Y$&;Ub,ze؛1-yqfM ͂ޜ9L/VPrTn?O`?v]1yL͍ak1ƶQRdT䑵+:OyLh/% yWfʞ(R='Ky_ &M~}[c JI Qepx!QN^98z%R=GTIwa^/ONittIN6@. Zˏ+~C)K ʮ_.. vA) &<,r3И  %3"pHLԅ1ruPϻ ,;EY7<<ڐem8؆LwsO)YH$KD #TЊ'SULf"AKs]&Ͱ 8h |_qBgv}ӚrsT`f] [:;@Z5Ņ֩3T5ݠVA@1Izk΢ȨlRke URoEQ>n8$`qjP] N~oܤLV[[L15೓i#P?[n @},yHm聼\\}#swk{EB"Tӹh~ڽKJ҄(Ot2HK)SxK)x R1%S|QWkdb0L <)0+[ib_.RI<1iU#z_Ju >cDVD|Sr))-/g :!m k0 |<8_iA4~_yZ̟jבX?KRʟGBg.SVBb+hK{TkNeW冣0M[5(r0^`_uK,2͌fwũ1}XzAFV;:Rlad[ְ62wP7S6I'Ȓ.UԦY(V{M8vuc/cl}B U\R)r"hmO@v?-] )Z<; hۛ{B״SiU\3hkk Vգ ,zò1Q]Dd66ZӪM 9]|;v]WHBCjV|Za#MP6ZU2_[ѷ 3 ̱3[b_~Dr *q%^ȶqPDWW$tnWQnJƪ澫ua *&Bmz1f[U}T,ELHSԫ˦vzko Tʾ |ƪ:#;mc }!PXe'j'2sG%/^?y~iIR2%qP lz .SAaߵZ/q>郯Fr:?׼ÁrQuk9&w m]ZFt&޺N羬]Ut;:ZÆ"-^+ م<|5U^^E^lw8d&ϫŸvRmOA ŝ3:=K">}(WVp]BWAew/t .-Ʃ*t/JrFf/Esgv$hb3FF GPkJR^.*]{1W CWZ1֓u0;ojGT`{xcFg:5LfQv%ў3<P,~Vb-&p׸hgZ=VVb1=ZhU8bh_Xaٸk= d{,ZM),"k{V-旫&*XR#Xr42r2@ G>F?܉yL9+<=c)b%w 偂k?!9= rYLnP,yx'ҙGđ:]I9墪- 3ȖXo<b`;8:$.SL;krPet^C2d2z[8we٢ls\F0q\+lGs-kZi7Ve1}we/f ^<սV sﰍ,IIZ+#R u|G? JY7.](yV]O屍(hm#*Y G'3=Vqa@ߛ9 Fp=1u'w`M 8MM5!3eɤ23wUeQenog彅Mɺwְ->zuFسG ӕF3Cebh]FppWg٨ֻlH wV|ng@0p`ր>3;U'UL9k:MZ'̮cs:H}ۖa%̘W&ۄLph(c6hoю}Dl 'Xq+%ay{Wk~.mV#1Aܶ;"}`Ee>(b0NUgV :ȴ$$sGlnNnyy6Oώg[V}7"@2ˎ~ 5ݪ:1ydoWL-Z,hgпo뻵d9 Ji[p * *~ȏZJӡ#| F,{g}.sUᙠ ul)+g>~ʢ\#V9LD;0$̇Ǯw#Y۰¾)5'haAN9 YO5(i 44ghi4SseKZ,3 >` |/G0 V_h̫R{gQ12Tƅo5,C͵=;w0E}}[RA^j04τcU DMsJQ"<,/x Al NWݒT )Ì"\暰za k+3U+z3FSUHyh#3ǍɅ:{;3Z \.TH;===YvAy^eY-'ic$S_zQܱ")_dy2g>"ɽdq׳{g^s6JrvqaoI"%c)N{dys{$K{$:.gaƦa^xiΒ);r55HNRVDh3t`!pN̋$E$ XB8y:p-s)yE좘DCgf.>!<{Y#)K8d߳$y;:!, ,Y_3@ޅQ&bZDۈg? \n-;voF-" 3pzq~#0{tv~v?9Fd0d]v^ޜwb0:alĹgt0{a &g@cwa}AQ_0>X7x{?9?;"?8ɷ]7? g$E}F}6;J<^wٳ</muwZ[f/7C c?*ŏa+~^cg1(=*~}`oVln{׼fUhՑ"Q,Yu" oA<GZQ?it{Ya[Ͼgq탸v $YPf&a]e!i}ڷIt@[d X?luȝ)/ G:q@:xଊHT{$ΎKgFa!ھc(fG(s|Epzu40\ Xٶ^Iq}\7>Ý} )wd`xi+u&F!<%*%#` OarDW o%]l _&7>B/;0Xc $)^=6{E4|uJy^1*>\&zO^TpX{ITX|Gp4H ¦n|ɴm d:`؇ [ (!nN1!gc)ifk`lqbH/HQ S^irũD_ֺKZ=r{9sb1-m )33 ԧ+G:(?H $J=B۾avKE{̡־Tj`Lk Zzi1ϐ}{it\%PQd TtZPL0X0n`"9p=2, A!g)fB;(lp"G2ۓay9>&CU%;(,D|Nb(=G ؜C)d+7ww4:;anciln >}?ѪhT/b:_&ER,z{W,ִ_<i]~HHӋ$W~D/Qch>aweivgJyEEP{ʾݩwjkہzEozCKi]&gc[HuGuPG6Spj?5? yA/M bnia{e;[1IwM O#2K맠r]q+]>*D~8AﰦUqrs`+x#ѡM1,5١$ E6P;^.$MV*C=SY:H*=*k:΀Ԟ ]CJpTH;'i2)oF{1oIFǵ` Lߧ -hkkαӆ< l\P</D\PۅCd_c YnJD'aC-:FDuf홛BOVVNV։nulMJ26Dt\B:o:_)DX J((I,^pLw,Jҍ"h\JQ D9'XZ\Lj,e*jȸb5&VUYPpRgmh7߰\.bnuĬˡT݇jxl[ՌGN?.@BJ4܌,9}#p ^B {"=!?+ 7etW'Kɝ-@C*0t?M_&?YH JiR)(Y{fx?(}5%ꎣr2.n.}5xXݧ[4۹4N P.޲domavDr%&~G&+:jbKgbĖfn`oM++&x0$)ME"9@5jUŕi~䩚zj'axq̃ pLp7D:xLB^MN;¾>(3icZ߫O֑6>P?ne@MYyƠq(IGv ?C%'"\Y!q?J؆C%:wSn5Ǔs >$~}coNtJ}PBj(vu&f\%[+,#Vzf_+Z*=c:$L mؚjW65ׇߚPx}_|.?6;ۂoEVCzxs1T48d"paf|7w^g/IC0 G"FTt}yKa*u9ytV];z\L+6;T6GmsS q15Pnf6+A3)a}~K T&*fj,VjR7gzP<xZ%e5,{#I1j21 vLF9#擢2mb"g9,\cF9G*nh$/=~;kދ{G/x[T}u=1UѤn>!|b[t˿bœ×G''œ^|W^_x~|rp(NP, vXz4 ;v`mT[Vv>d[Lǔy1nf;lٲ mK,~9~3Of`ExR.'l4޽fX_E/N o}Imq|_V%?/'St{&'[P^`2Www E zz}UYt`Kڟ1zV85%cʵΨ  &U !A]S.&3+M5>+89gn1-Z\Ua9G.}U.6 3N%T5]Do+2Z+oE*ɛ{ٟ=jiA[6f#y3.7D}WD*-slRC*CPmx3!"?SP2z|3rN VI?3h '2k^@5Ҽ[|v ua6}Ql|3+q-+ T:g\T)Z > @6in0OH[({ 8Vs*qU<_SqtE`VGi3bONW Dpu{?w$:"q=ztOf!+~#Y'%P[۪Z.mlhIqLz3ޚS-Ys'ґ c*S,"KD-)$ŬDJ ^^SxjmmmL~#]NiqV_Q\j㺜AΌf$tŃ0NjBiV=K?~阦rOt 1 ›@ Z(Uzy{-MgoAr*b *ʌ+VġD.jHv3XMZ7DHԎv@M6VH-_OH&%<'aDiEu5!)"lkDUg㔣Q3x|. ~QK|_^sJPA=|H֋@d80[ t g`ATOcx8ǝ~N'B NNMF=Vn16)ݣ[MR]'ywr$L+Yg&6U@/~͙>)$oߜ L#PׄN9=%2~MX*椋5\/ %*JLDDFB i>&ƆDmLmUL8eۇ< bf4ӿ^q;mN5zX,eJ 3 Y0KRO9SUӝ>9\K] 8c}S692Ƞ״*'h!T" zPq`?HeIǢF/"* ]&|s 3n<zp\> ׷7٬{c< q}$w d mE32[O_4Lߞ% n0-8Ӄ)G}tր t%C'h&.X~ĵÈsG;ve@}fִ`m\8Z,C`=84X %XksI;NT.({oBOš2&Ħm( jymb3L5J&{銧:@J> cr.P)N_cXFO|OrǾBڠĶ>"zﮇ։ulh~]Q9oZَ0ѫi@AT7Q9$fspfe=3t<@~tqNpɆ6 {z>#Z#B08P!9㢼A ml %dJ!,klpNw]}"/A)CKHq;-r^/y~Lgny2k8's_W뭉aR8͏8 vhP9feH @/ M?6WS ȸZg遥PIexi=ʵx {2sRhHhibaAyp%7ue_/{cYDJ=5;UCn%CX!aTx,MIжx&:04L=S>= W艼XwI]_A{#%$ٯu@28!O T ζ`z9N ɚy߭];gBoh kЪ0|8.&%5)(U`9"j]'tsԃ#vC(֊06T\$aΤJӬKV VÝ&74]p>$ͼ=ԍ>wtd G@ؼs!^jL $1,Tp~Bp[൩ čmƗU^A٪w[M{']Hy?Eg|e}@F;h +WXN O헩E:2JV>Ք)8X\ #թRإ.C%Eթ T=`-` aV`ztwNCӓpV]وnaMcpʀ7s5%dW?)"')VG Oo?7G\Q W} jz;[ܽvgd&.8)]K Z|[ilݚB1WH桔('<,؟7) i!Fzm2poU T|g]!>0ᕤLjX`ec:M* dxPH7_bsYd Xƶ>(kBLE}?s,39` Lm@wzQ'fjQBXGa9/. FW[07\Q8Twz {^zfY9o?g;"Gޚt]>xkDiC\Y>ZynxOFy:98` i{7ߑu+Y[@o"֡G s0=Wڬ;8j-&ڡA;; %W/=w`{nX=w\3S\{\^$7/V^KUxd5O Y`61!jGVg#.щlh5͌{HׯMS4,U9ϡRq7'ߔjKE%.< +1bxzT&[6tKY-}@thRrZ[v 02Xsb[;!J$d@cnN?S[]0dw&Ǹ70Yg]Ḧ́Eħsz[ig՛JK];Xi| p/EA[q΁/X-Һ?/ Hs&A*b^h=Ј"!e۬|7CgR!]qMx}\Yߺaccώ!֊jdiyC]deA{uZ#ÂB\:} 6( uM`*+& Ŋ_#X=)]ywAHj%"SHQudQ/ .T:*,eD;' @BOWDѬ&r PptI2^.*((_UhۥW7[$5^ @~ "(ҝ؋aC?2VIͅh"aj!u6, 'QMS6 N\v>Oǝ%>NaNvzCV5NPw(y(o|I[lx4E.uV[ tYmc-::\6\' ogO$9Ք U¤b柿Im*{G8+hDD1¥k|OEþA(?ZArcUXs)7@+ȇN̡ #rY5>~C$ko-J{%=^ LiAh 8/L#J+PN}Ge^Ij; Q|!✣!|R\b<s6MvD?toh8*H|ݿ=*=0O4y%GbomϨ93 $xI5°$vݫ)0:fQ:QewPN ʮip ;|^  N *;˖ "̟0uvo2g4g k)7[Lc 7A0dy!7&cAJ'J fdA=-Tp@VslA_R8"I]/#I#^ > lRO@07olj ,"wJ.SLy}wl/6NL*9t|DE[7{aWB1א!SG ưoaJ>aܰ\ϿCe%OYԛ"¹ (KL$ò(e24Ӡp%jGGq9+Q{_[DL]풗.IJLl:UaoA< Im3,bB ¯dʵ5MxLN3ɖ'/]]r(]r=hoRM蠮 D P즆6m)Ad iy6}eH{'rj!d4%v~ 񣳣6 a:Ȏn0>+H*Mz2Ąfׄķou, G3R~s:\O2יl͔p7?UoRcx՟8_.CW9Jf=˞_l>>MVl'd{M2;X]1dܐdtr/4Rd)x#ռp i'ɑ> ʘ+"&5ȑ4 /}Nn+i_ݧv |(gK3*m̩]ăSH;;W63cw|:ݕ.ͯ, /8,Xi91A9'XFsMIQ2UHL~RS>2;_t[N3 aмfDZ 7to45.??nrMSbυmf m} W_t)sk16=(bK?Ŵ_o{t ddϢE BmBW~0ŝq2&*c~ǚ[ǵ%RDB'B m RW':m"^6{ /2r e1M )Jt]IïTEN* W*5[셏d/ڞ Pg),8zrˀeZ 0٘z0[Jzl'V8漢]6C, 8ULKnr{4zxu WRPh&07e#S voQ3<\ѹAOœ${s+ZP0Cĸz*(ԢBs1un)6"y~'S׽A]ӶҡS4z}Mu/xmU ;8[E;DY\T=gLե &HV*=k[ȐH:H|k8T[cS2oP9_ cm 6M򒍕9NtHEKĐxPX,n=19ᑅ!X!ub/717 S/u*||8r<}qA 92&Vlƺ{4YvCeC_ q#]7[xg[6?MC/x0VWl=_~je0&֯{VNg|KA1Pe3*e$v"0u6c4n IuH=χفG~}"\u*q翍߃qpۏhO#x-[4zT6/3ETD. >Gbza>*b~pġy#k-jE:dIeȯv3G8hN M2ʋqw.60 ^? %y`-` f-vUH*IڐX.j/Z&2h@.gTy;@{!Iif:[)D'P~T o Yq`?`xR f?JOf:Kų˕o]j"A"!J>MS8)'Mኢi }}mq~\Ʊ쓧Fpjvu\smw @PeMt!TtZ5lm&1ʂ㟞bRsV!M/NuRQpv[z-“&~ JJBu\~GY[ KC 5X,Q8|͇1 gzw$ljV"2v?ow~" Cx1z|S&s^X;:yq3y{^цPsܷ9Cyxz|T: 50>-8|佣vьDe?k CVg7Ϛ 8tPcbg>P_H|t[x"@_h NЛK`X5{CFI/+X׸bJfX!4wIwz9.1UmG1O0 M̾ 쒊; +dF Ԗgb N ," ^ Me Q0"P)[Pk:VL ;am>!2?do K tnVIU/crW3§7kI̤ aW5埕h:Q^WHv:0bxbEb;{\MW_sKCǑL3X\l(U$"ug<GҴcq*d sb4Ғ 㘍444y2h1I + .'Cj!j H )hNxahd [pOqo> xC1K|Ps'tO F΄"-0IE'Tg+Vf[vw|k,L_vdO/[ggFT^!$~z'/@eLkKsQ3@{$G *ʏ rTH_\AE)k?9MI萼?g >xk{Ǽ=ITt&Oe+h'&(NxYU\`cR^QV~وE:t(h3@dx[=Xs J&?=fee<am?_ZZ2yɇ@crIf~S΅SrN9)ZsM6*!pX͛yfj{C勣ѓ2ˋ(uXSOg7y|=/U^|0ZYyZftqnte AE:W\R狂 &T?TQNWI#VCc]5UmWP/+ Էђ][4^9aK-Z ЃuRt6 gtHZSdƥOM}vx]j~dg}>XIMGF;]~2TMcϮ{ץl${[g:Cr].WVj?רYRx=aEtzDIr QPkXS[~ rv8S5|(` dD%J>ZFhN$RTϚ ҅gT 5`Lg9_Yo8{(}]19h厚3R ^it0~F'L?5vEؖ En}**kfJtǼb֩^tPHa,0IT S]CoԄ.}eaK5օ `AMs d@y`rqQ ذ\BFOYzP"`\E֡ 3@-"xX5RQmiLBkHOj;;2oQ$,ax%࿗QB WJ_B**8Li ߝ E&dG CJ:Yfq2{^]L[7;bI`&D0k [&t\ȫJ)@Zf CZc9l?Hlݣ*&㼐BG|C@G8Hrau#|9\~kvcbfbԔsQ(qu=d+k"mW68#y>){g2ԓM`.fLb4j 3. hXq9`P ?")6?9-o1j p\+!1:\WUdiQdBS]!wFGqQ P걺4&{ס'M7TN%{wBĭ/Q&;*zdKvƬXn\0u'N簚a^(tk$4}ߪDV[[ڡ4 s n+5~m-);"Y,Ul;qL QVl ""a:;щA{|Q[1ذ%_pPH'%'S`b6tί$$ =V$@f&L$wo}qZ!dywqT U rXe;'vENFP;R4R]m 6lavh ^q:)z:YdFU[ʇu ݋4ny%SŬpucH{4PKm2ŧ6.>dKH| ɴZ {;FG9C1G! f+ij#T&IX+~=׽F=bHA8N5Ќo{Mg>@P|K3-i8]esAg~/v[RsR+m.j8,ʐ/Td8J|VlGʘ g@Gog4wdɣKE Im07<5.ơO`}ST%|2 /RSMsF6 <0jE`M+6l%^p'tGp|mGbo}{hE31ԍPZD*hضj1HKs~w#SP OKgIEKbcV,?x"ڠڢG&@s#MR)<>37sgE0 4-9`w.L1%MRw8[@yW! : |'C66̃5J\[Ԏ M:] t,[oФSp+ZxGb Σ35*tq.n24ypF㭬f!T[.ȧlW3foޥoGغ^-8Woɀ݋ThffPh}Ym|M0%_-a RH{q|t>ki*0/C5Ji>WՍ,MU*&F.v/ ;\¢*zZp* sB^KU`g߂46u. 2Dfj)smB.ѹp-aVQ>on,s5܎p}i7UJ &:xS(@-ɓIE}Ts\]EtW;jG+4=7g{^dzߵw]Wr 5Ad-\Uh#^|lpk(q_ V"e OUgV\čB#v],pO+{Rǭḇ/oTUQfG)щipAUOڀU' ϕ5=E8X/1_):Vy\dc9)xMWdRIefA w>#yD+*6@yTѿ3Qs!9߁gⴊ [F$lrsQSH L媀eZ$J zD';Ϣ5UoYGK{!aG6b$aGb埡|0 3WKARڀo!C޸,X +9( k|dX}%S 'F YMHPTki׊\} +Ob劜FE{-ox R/O:cCOE+QmtN>װaܷb ^4OVn &ז9i:rDeEtEȣPP%O8I Mf~ƫ\O =xgdܲ!-U+ U[j^ #ڌV0&m>K)zѴY@S;M={]C9w K4g>4= [ҫ c+4@m9D*C3{s:}ꍈZ}mCs#R\[3{Wm ůU|pq'ynJ`'iU)2Xw <8em!2.l2sm,_ߤ' j:7kוþJeγKSg|t%zgؿMԞC=צ9~:8k5csAev_ILgTH6xRMOANC(5^6FBLKSI-%rh0:΂^OMn o^8̴nxy]㭥42(P/6 gb>@VXxLfQ~M$ۥgC^dzO\:Vс ۡLkGc_H߱IgGiMm"8 vu'.SBK$&p!x (17՜ d";`t.ǁ`)2s2,`Y_9B#evU0POt"檖\ 4LM>뮭mBG,T FU5uTe z+? Qs讄zz};9"/%[7VCMS8x|qNIlm 41jXg v\I:7WfnKE-ڽ3Q.[-z9YsB͔]_{JG܀:kM2UqH(88;hw\0pٓe@aj/U Zm$>:Q [׻Yu:gD9#$?E}0y268SlL -Jʗ5MW?ѻ}kxʸIXBAK85/%KA483=/5Sar>B&PBVkr^ ? xksG3,#9' *NTTj;"8=}i r_L{zzр>{w-䲻bN(dn,ىVyb;V U$pWO1ԺuGX#\U911I@Up-\'Xu"g|6_]YtA_:1k1[> DT2YfgCG fp=,l+| $JȰچ' @2a#;,gO4R b&Hn k0pzK7eAAh0Z0&qWpZr1 5'& $,iʕڅQ"DIၑ_V1K:;3u6.F,{d_>G(t 9' {ҹ'wU2p5An;I34:Z,St"] Tb! 瑡]C\t\ @Z۸y4ۻyӿPߟA cXKJ;Lj ^xEoߞÅ}N|7oOv ƝfqR4&T4Byq4cp Dk.e6⨰VG 8sVv)m ٺqE4r<g/b>FoQpZ'&j5,~YchVi;K 3)e>,u{t$w|5MW7[PJJXrԋgaNDU8sjSn|xM+&/Y7iр?~ZT^qcP/Uoļv~U[ 3%xN,7Z&P `"0Qii5bqwZʌN ~ex2Wem *nFy{)WBX'ܧ(x)h,aiӶ AmpvV\YVFn=_ O@U4Bqm~7H$O`ȵ, h7nq2=mD 0҈gN,uQoj96IoS$kwb8A>=鬣 4ISCM'I VS/ 3\0B1<3THj0N-u]MɅF \cBPAE5QiFE(EYіߴcznjKQLeKZޮV~% >V=v ]`ӂ_f/{9x֠ص 0=6;4RAqt-ph vQg$S(L\9]5J$V*,CKr ɃDQ,.޲#~g{F3qC![\)|xB/)t0EH3"@ )Td0#pN+68я, xPZ?7OgLp9)LYTئ*y]tU7@j%ܸR?E(!Ҫ|ݏ B6QLja,vNx3"w oK[īV"}5ACHQCj0C=tW'x+" &{jawȲnKڜ<|708M7[tJctz,.q@6QS76KG^gS%*WTr?G8STқҔ u6l?W[u0vfBS64KrUt⒪%TYPˡɭXU#Q+305;W2u,S~諭gt]wOT!„dKߜ,0$8eQȧ&=PNmY;t8'$Ҩߟ5fu^IAPSL90Rm򙐺6-꣤D7W܈̊LƦXV^ Jdeom})A ꝉߟNC"qc0C?f]0ڡGtEMH fhT{%WDT_7n74*QN.|Qx<0`Y#"b#`nR%Od7g:Lmm4es:N-D "ykcنT `^C!lS¾y4Bګ{ȤLq< r[5gǮw+{3tÜYr8^sW׶zNwEE;K4A\t.iٟ)}_#zxjr]AtE 4h}e8R5}jnԴRpSmRBҝ#t(wxZko,A4!Kq~eea+QH0"Xɩ;RP{gAJ5ܝs>Η7>ݬlQ-S+bY'O?th~Yiy}֜M%šQ=K_>߻v2)3lrEfH̼(ūYK:J<;~Wڅ/_0ICo^,4~u,l~^0 Ufrkwsnl֥_Ɋ ž;1iRfL٦$EvKߑA/4Қږ N4la$7WYRsR[T$OLpC ?1J7`c<#<4$3OƯi{grqkMy̬Tvytb>\0O[{c[sY2);O oOhRtv21gfhᵹz}u9y{d:H :։˫F0mercaԺ0U0iX`0S$77-lzdϰ~L/`C`37,<4}U.={fOx[7f4>=ߺ~r[t}=iɬy2v~ӦU?3򲆏J;!+2{,qZ.,B)p. 2^N]i0RuP!Kht uWZ'Ĺ y,Umn-)RPrU.ܒC*RH@zt;+sU Q7lomS%=I6sYHGEJ\Y׶Z{ kEUvhKOQQt*bdA)i*["fDˋCTO7t]\7tpP0mWa\WuCO29ܭsxr,{{}HqLdop@sT6WW[O&iWgoq@|~١|jn@ey.SDVgzx<^W >nD|Ԟ?*jrm  *騶+xw<0V|#3٦d,mU?Eb.hMM3zn(/]5tD(,);*|A vX U]DBCר5?*+o\j/-DeeK4 Y=_ KkC❔}9] $XOR*d4UXڣ(N%Ō( k:DXz]}AUFSƻt9xn48q(5q̬pcOGD%\[XuǷCY,2 hbh($ ]0AϓMRvmGba}.K! #΋H9&et@Q:EK4ڥh&we47VlBA6'xR[zjbC /T00˂b'l<U=}38G9U`:{Beok4h(MkmZ5!v nIL)z2}EKtT^"jUnS&N])DrΩm2&2-f=5^o;SNfRa3LSYJ48D?dJVB 0!3t[4R$)sdQ,@ p4Wh2>CۗZ_%O| CiX!@& fQĖO$IdxB9.%ŭD In-t(j]kz(ٰ10`PV6>'PIT UϨkYCr.qh9 eAh3>(T"d3}`K45PwґRe(|&VڕyH:*1(nR\B4bZ'$!;&2Y20G2/BGJ񅽴؄'3be͚*Ce4c16XY bP de(Y\N.]ûr L[-W+0D} Wc|*yIEigR NԆk <څT= / pǐ#M6~<a|4Y ]S^Ykpvp]* VI HЏ@8s*F_` 8 Pm( ܓ&YjmgN&JÁ4 2;`G_aٹyfY*Zlw'\̙ko8 iAqO,<7?ü(14ZÔ#UIۋ3RHS"yk0CyKXʠTGG :фj#.e 4Jjy Hk@lvB+&J[OKiTq#㡀TC0?3/4(`kY& ]w!=1#j ryap=D::)!oI2my}acyD^a_Iqp;,$&nw@f__/ XdXd\PyAgwrdzշ(#7zYO^NYq0Kڬv&Hi=8( x<5?n'Q21|ף0gudǓ-yJƉAj?mLd&} ,Sl>br?٨+ȵz;(I+MwN5wJ+nƏ~$}2YLC3a6R}[㫝1-ULqưJ2?RՈ%Eݹ}YSrOΘvQXJk xȁn|#yu7:Ѯеs't0"gq%q<񀆷.ᖻ7e 'Ì*SNQ])ژ5{v+:Cxׁk* 4{jD %l\zl@+qsO4S &{ȱ`h/?8V1Ͳ5v*H^RCsFg@49>OB]L\ GZg # Dp~<~>h8ʏCDnu-J3c4,gR{DmI`&V7_[T5afbU&*I'o*so1oC5gxA_^E$#U!-?D!75TKAKKWA,?3ES8 (5Y^Afr&YN 7.l0x1tC74e+lGx"tC. e*.x-tC;BeIUxKxz&l+{~Qsb^YbqXffup`̼rk.TU P \Yp</xsǑ.3Wy6S${7v![+$%\P 1 `V̀~zAʏ{tWWeee廲l6_OgϦ'WdA5Gys2d1Mj/ۓ]\[~3Xfz,fit5g7bz27y3Gl<7|:7磓f0ky{z5nNb0&g쑽 4A3|?/~/͋Y65{1 fwrھ`F?_ڳ}L'`>|KBlh遃m|~0W!3l~?_?!y:ZѸmjقz_ g۝sGUs24v8€W tht8:}~ kgZE;HI;z;y aV\V-M `wlNmw`Agp7c@t4hٜO/[>1xܼ |рݣo=j|}pw/dֺa`xë;/wY4/v6/η/?|iRn=la4?ciu>xbO;7ֺ$h `<Ŏ<јdfE3:m&ţ4 0ZX~50a .@OG|1ɿ>>h}yWŻ]p}z5ttGT_CrΗno^F@bly\;y{Y_i^/ۿZ[mWw/^գF3!y#07c\qw/0[]b9ŴAkKlO~7\^3'e=oBa;fxl}@JуOwph6_S2fˍOx~Il拵'O=06B=da3㲓+MƬbKlʽCT|n}: Lܷ'nN}75w_`VMCgi;ߟ]`6҉ogѻGW[S4l9"(rB2+zT* Gv|c K"z t=J ڦgzX#:۵ͷY jhb8\ۼѣ?,j=Dgl;Bj<=yARqQq?%܂j8wX KPQYLO<٭Z dZk٠a'445KK5LvLbsn;Fus&>FjMUO6eb7yfLzT7!-cvW)lw{ڶwc`d Ɖ >5O52sȴV.PUS*~n}\ l>l.cxiJףӧBV`m N|OO(:-_U -)~oz~pD_abξ:L֘#N.kM?9z!蒋hBmNNLY~tp5^X4߽o>wf[ͭ!AO̩3-m11ZP%ن}A8`E)psCzѯB'߂0>}L h!~g{m.`Rj(\6vެHA_o`u3sgwԽIgY#ǭ1vxqӷ R8N`peD%ÇoaKrNW24ulUmiR,$>ۄ7XV {3Έe?i '!>BP5;Nt /G6?ƾy[;ߤlZo/!"9 1s7=[Q`;|>At6˧لEWSs&hHM/lԄ^BNդqaf u-ooǗ:&}{urzB_=|5R?`wk,OG8>) [C̖w@JIBnkv6C/#>v7w])gԶ@Y+Yac~ٟ*(M/'xDH&I;^ggS MX #a32?J!:&{#<5ܦmӅor0~IX%`>8{2%9h5b3x*')۶ ӽp~WBʹN2js|}ᒥbI` nEc9E> L)hѐ{ o~fO?}~;ٿ_JH?;}y_bʽW*ClmrtpNag52+Z^=?S,Z6ADD;<8'F [U~%}Wd;&*r8xvejF-R K7I1M嗀Ы׃FF 5,>@ p_d=@h g1yaHA`` Ke}amϾ o5yR ڿc{@2avyJ՟mQ:0g;sj6}Sj{~UNT,`ؐD4ɇf/l}:?ЖV|q#}Ӌ,B_Ϸ}F*ehDOE(n{QUi0V`~,^eh}QN袟[ pidFf `1&C}=JQEG`*,!^h} W`"8 R@P&2.eоwUrTA~S a~vW-~D¬,mQ US9psHA1p3XrRj_0ohO?R"R VCu9J4*bhviqV7[ru-~"=[iԱmKy%j.9 N301'1h+թY{9#%VC1%eq *a a3Jpx:~qݒ}[F^;XFcB`Գ hpricӱOB_CA W=nc?ZOM%y8X[p~t|0hyCRvDwB؁*%03q ± w$J*h49p 9@9n,2MYiï`iǗq dQcXۥN ''WO" uŽw|ԍ<1&vc>oo}ܼ=9w2l@o[|]Yt #[?Rf4j#9;)Wңf+&0;S®gpV:! 9A.0tYY0ý%opʧIpfyBi9#"P44%) t#0yc0pMdojc&PIKca9ʠM`b@ױQ3 B~LH`,}oHV,+Y A0!OX9;x~4g]w[_nx8IC1~\C\>1XmE7haMg7bNA} X2ES NgF#$zHy޻"Ho?ݗܓM 0kU[:U-=_C%EٛѲ4 orJf[,~F 6` p^-x8/8\*is-0ax_Bҟ5b>ve`_P Ix-H'5³ׇUlr*A @&u-X†&ܡyd`{1)ʶ6Hݬ s8mkd9ÞŢj k~tꄚgBPN@m;f81 Pbv-zNa+(eueώ0 )S'cC9tyS &򬦷CHA42MY^]WS)@F}cQMP&4h y@f<YzX@NC6/BcaԴ^;c6:dA]K#?Fd(nqDbs6E^[s2tS1fxuq-a E$dumK_zW$cd#|g_dbN 5=(> v) ̜Okh֦M=qC^Nb޶zê0,Lܱ1ɥxP]`m0b<N0T3-Jt@l x -8zD~I1$lc:홁әmaῚ t&xG\L'@ n7oM,UV1[/u ecmiK]ç &_t64V1hP~B}f0IpipDJA H pfh '}Nnܾ<Ï/9?U"#3f ߣӤd4^K+?ò 1Eqr\g3p|2`kIldtUF1wo"_`Iξ5u@ځ'N/,XiEf.o'ÿ+6^R}[3_] xQx>LrdlqRo}X1rr˺Yg HFBZCHٲ NRɭ0 gVsyBnwwMjQ\&;J ќ@@KY^nDGfC\@sA_~tޑoH"AJss:_ߔeT Xc˰v'iseTq^|xpd4paS/6[` =W?wڪR҈2UR9^\՛4Lf\4hw׿l*&RVH$:l[tLɪQĺB0U]ϑ,.x zb[ s!zM笟8?*U2:߀ \_I^ ԙ"8&~a2C3f5J#rPOE~mrt5:f,E:FpTM|be#PlY;e+UG̅n@5LDN4qsŦK$.Lz D`v(x1/8ˬ1 01h_"crP-cz-܉xoߪ_cECjsș"*ƈČ}$|˴ "Fh͉ JFpfAD4`6ujQR*X^**E&9 ?h3L'[:φ?( s' OI\#9~xlZg#Ǒ~$Eo; 'Z(=3ByȪ+ A$J4Ar%䣏34'=RJVtk:4R Mˆl8t"̖Șw^L74O1-s`H P 43aZP`e^e~*ejz8P76aYFVу'h#ᕪzG¶9$8(ey9 W\!xV>0s =ݠ1AL# 0K=. yzHv'8n_!r65T=$rϒ˧@ /T6UHNYJJmZ6#0癜]2Xs>4,0##$/%2_0p wِ<9KU/M %P,#$ y򏖒\ UEi𡍦>M˾qO"j@3k9E 8Z*Le(Qj0|Wє8pM|-& \]PzG_rOzάCR#ƾ6r;L^}Rym^I}ݞx.tL\mXS/@NB! D>p:.8\6nQ4B qMhڇ8xF3 u `4bC;׶|蘤ޡ?CLZg~Y`.% F>o zk0: k!88w CYV u,6Lxw-K #D*d8@jzƵcd?5Zw-Nf{"Ru?F?:^"yeL &>4OclS|7$w.TecGćmLuFhx"88QnQiPWp s6w fCE 2.lA%ƹiH o]qhն6ﲪmqHU E_z7# nmV*ё'>QqRF6}xsK㪳$y8 tpO%SxdvĐh'“(6gg)\Fm[-c':GlJiyo<p4轕:zc} .݀+? pWݠ+?Ym/k;Ҽ$ށB $mVDcs\>7@WxfC1< B \)Nj?rCljS;ɷr@ׅvi%y`RU55~XL>->nظgk6&]'5RqO1R_覼S ;xI3ٿ<ֵgJanGN*F VFII)]`+~ Yt(iPdž%$B:deݍTo~'c\xD"( de|㺦N(Nq^䈝pp |:yfq9U9BzK&9@v3.޼S5E); WUNT̡?o@g7n.!}j;BnZE5[ʰeבh>}Pa3 QPb2U"Wn@+quZ %m 7c~譤yᜤхtf]@+ ĸ]/IU{|Yd{ņg4#E| C;.iTUjޘOYx>kEbi xyȔDQj+8Ҳn~O [t01Ůi~ ʛщnY v#4$nc960lGPjalgv@CAn Iln&ݯzs:x1\˲ 2:BxquuPk_8e^ 'c BJ9HT4e!5KA_`~|ؼsTsOf d:漠VMy8x&T;'w 3+iyEE> .oG~oUބTa%ɲicU+x@:!B.0azzlBڹJZbˮnMs( cx:\Ϝ;c1*]!y HQ=f'\~+/@rZ%@<nUȭq@oqb mbCPH3?[q2rBn`avaMF=PJ&O $S2-$|#qbߐ6̷dᚏw\j fKP`3$vbz'Vr"(ݰn_)#%~4aohN)UwK"9@oBRcA9VBK;cD[C2x7@l8)<KC,+7) J0rm>!( xaRjс)3?zSlaAی y3aBr$yT>U>BL 9:dڎG%g%Y H? f M+o[raIlSmM :5J% IuC \5Ww4?o 3 [צ%lv`ƽOHwRgM݁GMFoy 8*fԳl5bb/[=6^\MNΣWwH.dMtsف:5OLoi:2Ch w{B\Og-9BXgt(L-]ٍij0R7'g&dK?;RxkN@o>Rgr$ Lܔ]B C[P kydOEF\Y1;i~r.w[m_DVm8U(e!Uxñ 0ombgO/A}!kj 4HUtWr34gn]t.>eٹ` ;޹G:]3 .|HL܌[Y"oV W jˈFԪh.&8ޝtߐGJ%F[`s@{Ä咞2XjPV!WOhswA帠Oa.v0h.x\'z[rh.dF Td: CFSldQbcVmbā,Eu $seO_+^7%Y|٥lp* AGquԒoZO.%4}2WKIVA,ҵNHډfũf:Fc\h.gR\ur9KO2q evHgi1&25POĽHRšc.'y'ڼXPBj/^7{G/՝0V#B^$q&p{JG{bv8Jswo.U+27Yh|D t}k`աgv/0M)twKgǨ;fm(3 ~̀MQeݪ<2.a-;_3T$ v^d,|[`hne.B,lb_H6$3G6Ǐ; 5_'^-E f(N\VM)6`A@?ő@r1F`Y8)K5p,4N ?-g6zkpJ%ZVt3 J%&f'Õ*̈́ LÇn#B76Jx.D;DAGbwPuU,_V67Br"q[8>Dl:EDdsQJT;H$X/WU8tr{Ktj>Nx r{eo:4cYB&㠍h>wEbSVقprYZ:Mv(U39y' шN 9f@HVnD933*;Ȳ#jXnwE# Wwn6-ub'3or;PQ02ĭv?LiSw4Z!1>j \!Momd,[~hɤͯpzLS СDIW\Op%Y{z ~7D]?"WT,e2zΠU[3a -mWyD\ C6J-xaIpN{aq:EI+G9W!.VFf;5x=b ڂZiW8J|ZBY)n 6&/%@!MmfJ,X9oZR -br\5)tKƜf +*ms 0:)N-Oo:11j;ń^A$613ݭKTR$zy-b+@*g y _3 KW@*,+Kupܦpj(BM^4K߃RLGN.qI_,q;}PIE} ^nŪM4 Rc"{]2֩>`.qy; ~H?}^ʝl$mzo{jnJR*] Pf?/wÂ]1#2=tpr?LkpbwV b.,RҕGdꌆ m6vŋ<=jtNGdOۑ4 I?𩏯pE-s\ydÑJBBb |ڤn%|7EXf̎v-p?u 6IS ;BzH)ҢǷJww ,/>D"9 jlH[?  }RAjRڷ5#-|2 HuY厛-d=TJ.eۨak Ui>?UGxǤA Ks~$r'!QIX; =h`Nw92킖k}Mq P _ T7}_[cx-2tM'?,TVjL|\zp@Hղ bUG\.a;ЎýݢjGNp2=A@/fmlk^X;չιU[8~c8S 0 KuMrųi{y_Dt0P"IpHVvLF1 dSrQlU =sFgeTtL9*>c' 0#ㅖ˱`dDd͹s%H s`ᮕY#i ̒ʬi[=aobH'zXGl2\ۍ\aR<_$ˤC8@ﻚ1a;׆f@e12N'rSwS\ @ @״ٴNq<7$v+b1J iΈVҨ_M : _/<!)"C9<8tI?H":H}жҋ3Ao /+f˞|eG4M7~cC?9LP! 02- 9.\[s`!:2`)&Dϕ"=o_ޱ>2  R6Ō5bh)Р ץ#ӑj!~UIq )9o3%^WM2QWiqnһ,9.R<1z:Y~<:jƴKnŒ@r ZQ-Gk T@_r=4V.A]OQ4E Sc.LIp"t^A0tOLj.Plt,_#RƦ=ơ ^"}HdZ0. bLvW"0N1]ξ/X$L`m i|6kłjyfkX/fTy{B [opLӥOy t|Ilht3gy#!+}8H1g]g}@-gy{OA ~V@6O)ۉ>IHw ]\BA.)x'/3Liop‰EP"al% ,:oDFp6 F=HA*m%j7!-`;] )}gp&s'o~Ć gQo'T r~2o7KUhXD2RV*szs2e ᫸{8YQ+.]WaM0vHbz}XEdZ\$bG9`EQVwJ;Plon۞_[+6Khi ˖˧,3j^VGFYOȺ״fG]2>lacIM6 /+׾c8KeFN ̦Wg(p g8wn}̛ufSqS6U&? Yk%n:D1Xx.vVqoX|2K5Ѥ|0M١~WW&'P-[]i|M+D@ԯ^7wO}vrtSaH7ɽeɘq`ۂ;;RŦƛ]U; MWzCӣ D@!Ā<^-Xl0m՟dNeZ+It9,`*:*BKFoapi0)fp5ɦ okB_ \ 0<"k)SZD}O} H )G aGP1D02pX|-膿K@}1fRV D lp3S!SW8U-#+,&Fi6`a@ck!%Vñicx CI"ܹQ![99%l 9޸;lҁyXqBͪ߼ٵ~2USCmEx `㈷!(dI;tp!R4GFwP;* $/ukiޏw6p>ؔs2Jcڌ=RM'@{V012btH:,Ga`3B pGb,Uն _=#yp~vMRoh>fqb`⊚Q/;>([ ,3q lڀ1y$\ .10uk"HoTC :>%@62 VA"/Hje]ߌf0S6*H)uѥ&-Zި"IE4.=Afhi~GS_ @PkjXqU&N7e*RiNrъcռШs%*uA~^o.z?r cŨHԳ4ݞYCޤmvwn|X3\x8ߐsy_V,K{K]r XGD5)jM[I:w#f*<ַ®!pC˻ȇdb  0Ռ 8]EіSlIH@YL$]kxeWh{QdE{WjY3z7n` Ȯqb SXR˖vkSWƒ3>"NJɫײuݶnvmo5{M^1Ǯr?+?:qZ I`iWENAH糚ݴR78`ϸ7v1x$:<-;7?ܙw7C"Lje"IuBpi4sUJTOr!ŞuJHW"|ryPKМ ؀%r" _ԠzHlǣ 8K:t! 6NWe\S5+ǴecLk󇦪yS@ xlQ6L=\Դ~FlYDi {ʎP `аӨ~:a=W~@;#D5~tYh޲@OXTB9i)[ɍcm:}CB2tOT Ku-nWA4eo3P`a&l&[U #2 @z #ro2\\QQQx,e"Eci7BlI`g෢YVˏ"0!7QnE^V,XI5yd$A)e(Q%O B; XR n Į%-erg :? u,hzDS^2uHPE0yŶRj+2Uɽ2*xz!зꗱIϕޔd-#i& .xϭn(Mh XSڙECG{w!)#mBǵT36h@q}IWe^`Qx"f16Jb+^8 $xM'a,!w!rNPFtsb\6 wfozj:lp="|I=e?D02S/ɖhw )qvrޓ^AI` \tp_W҄M4BR9q[A"y+ǻኛU kNA|I;,6\I!-/v1[ҍ:)ձ2=!etZjT=װՁ5n&iXAY,Tǎ-w#o! ,c܃ :v2.emS0X^d2PX/+< ]]N K2G"LűE4P|j!`PYUJF)~-Y . qr1劤K=$C';IEEL#`G&ճF^Dށw3_]L.lPMDw șJf3>xQ7 RΦc8w P37.{5܇[112(z2@V[O^|C#B7 4&,(b;?4"RVV2./ `na Ԥ\iKPpF>_ c,Os&OaD5aDɖA&Ζ -,湫r/,[D*rԻrLXވr󿝞 2S-Ax5@̏5Xp_nȐ$gG8>6vþuن蘟HS0_ov? Oav+?O lS$Dm80%mTv#@<2uK y&袒(_, (LbVuF#b@A4GiPA2Z{IݖOw|Ơ)nZa7@~q &X}ݍ}(^t~U'T~Y6Y s^ێuq9s ^CW.WI} Zv]á[/Jdžj|Oi0ZiuMR{` BVnm6k%b'?[?zxtp뫇FQ>wWn9 8KC'%.DRDw|ÍGy8CFlC:-^&88-ݒcuJOgOV\Zf}r% ֢A!حr5c yêOiY3YgydNtcd`I?>}O"0)v,+v+r;]tTϨX ;z`v*[-#2fNA7Ur_GsTkc>; Bs'o|ֹpXvt꣐(iUNԒ##FG ҿ1FI4"u@N!I'?ZL6໗겲SZryD2/@ȂP>e:0}댗'qGP!/ |y7%X ^&I(HjG7>xF7[cwSwb<`יνRƞOJ@@.gk|YFfvq7NEˆ140X'Cf|^Un=@+9S(D:iEAu@߅wAWWIA %:9J&R >L d]#)D 降*3^:hiTcoRՁ"ڳWQ۩v[CV; Vr]&2&eOwD~[ .?a")`cЙ̀XvP3LAO'bE}YE};Nԅ˦]U!*fu⁩lΔ6́g@"fcZe؁C ]ںahv*HB)xփGLp@CT!g%?آ;y<>s9ϹVEYrę׸p# NWM=D3T";k.fɧyƦⲿb{1j=*QQ>3hwד~Xu.x\<8+V2#kR&!D@V D&O"pv]J%C/X5Tial^;DK1M6L!߬\Y MVdQM@mo'x"~6vk[㷤%AjBwM]'AK/X@7z2ן#-܀ܐʋJF;h Y@ٽɳPz B@ ` yAR)*,^+)L8Ż74lf8~k#Z?'~ s z[8oce'b j6_&ROT7QʾuMkğvl@1izl;]~s6 W}Hn;"zc$s.rM6)I&  mPF9kX jDZH^Bŷ XR~K_Ks[R9N@$SٗpTkepw ήp%=Ve kS<ȋO$D A1NE} u* |]addm @ ;N0}S(;6Bp@LPtspQs~\v z`4=MW*VZ*2Uݼ&r&{+0 fg-YTW<ʭ~e=|; BW%-+D}sp\`q1y`K9p/P%un)*?0]#;z]b BS;jt^\?5FEP5j\6a0%IwXPdGD ;-LX.K{u4BGHZJKJ֣oLx4J[I=pؽ GTЫ+u: D'pY䤽\|ɺPZMac[*"\X"T[^6Ҽ}9@y,bZPЏ!qku"ZJ#oo4vH5E yrN>J*/(^SȥX*2-O%*ֵ ec7 odh?y\M$Zeq86hL-˛^3$SP|ZҐ.dQz pjhn!W%J4{ ?HA>:f5ue @&J۠p(4w8B2“Y'h Z4]y /'MIL;' ˘ ܈5pw=hWtؼ)H :8:f#5‚/<9v$]K7lc8xvqH//)0Y@ OD/vHX_m:O-IKn=džuqq8i=m8M<('-v+NL?[blp+1^YFd'^0+*/#$m:5NUOƫ6L6) & /C+pn$XMzW"kQ䦱*7.OpbŰ 6W,`kw=WT@=wnᓺJhB1J>[ =Ow/{N]R i\RtK$ᤢ0q,ƣT!uɚ> Ha݈Q,ovkjb3fdjc s,޿E>Dtf{>r Gsg?Z ~tn: ׳)a^z9U-{xjPн `K˶+f &l8"FЊo#C!C8t )Z9.fWfA>$Q3z"&[ťU&thK Ԫ8H0ׇ#gDKsBPGAzdd{ ėH.~Y#Z9Y6U!xfq"V6+}=9_qt#{ s/QOXaQq vѱ1^sqsΫ; BlV\ {Em=GLu~p))_h폨niC  bf))e!d@E |p^KX6T!B{:ѭwPڵ"&o>QIǰ Ae)8xz<~!wQ3߰4\e,Akw(_)5M}L )݌# T3tpds7Ӌ6ݢgzRt::AQ:~ZeWO$XH]uAۖ:,DK0V?Rcw?6(g4jF %$@I: .MRHwI\*$ɾ!q;I?cPCWEL9jR@=kiYi`O6m`mn5x] ՔW6'J`;y`puUs!6=N>>E%*5 G6 Ǯ,:j*:k;L$,kXeє 3kњv"`jo{j*U_.T3U5.&Y,c:U$2ǯ7ju@ۈׇI&d4f,lvisԗ w57)3n)%n 懶={u)u[<礸aٰ| `3D\m_=}>TH{Ho:)|4G 8΁v8 YUf n' F19e-j;G_@x25 L}+%)Ңl#%Ru+E*nZsòqw*aBt4-t^u1 oKK;bB[`˱7 b%HM'XHr:4FOB-OCNB8yjޮ~գ`fQjr ;=X8Diz)ྉgg ]ɫ#M9&WO C/߿a֩CF  D WOVkۯ'cDC/!AcOKk3r/Tf}e P% E1 3^#^+Mam&*t  "ņ9B5*## ³㪋'-pǚ=V!:+}su ^&Q%gl)䜍xFyr ZMRgd @~DMK0JeW}x΀꣢Xj*h֞;jFjyǢtQǽg._lLkԴ>oCE~ KIU j6A?+]S݆ohS0slnnl XJ^e("ޔE_h 7c|# E;O O -`B{2san% nK&R]v}ygO#_B5N4플FApA–${":%NFka5"PRҷ,e$_jE?f}h~_!F8R v%5ˡBCS9*̗gaJɾz($͵Ywӳxôv̷R<x)؜im7Mɔ~4oZgx;uֆ-V͍S2Ssl2s 3MA#:_!%$3/$3?/VV!-$( ?/%HSY;g-ԀԜT2hłU#TYZX\RnTZ Қj 8$%5-(55/%lQ:P-M{9% :\ΰ9/zzr*u}-^4 vxՌB@ԒҢ<Ԝ4kZ"c'x{ Zm?etgRP2U +x{u Zm?ed7[`IJx{S Zl7?ܖ 6mxCJ<(b<$mb=#.==Fnil forOA  J#aa!xuֆ-1LZb1js)(l׉cdɤ x16 Z\ i ũ9iJMi3IK9v{- I59xuc ʙy9) JEΉyea5k6pxu] ͌;Ubr|y[3N*Y%֚k ]'6LvS+;n;VpU(Af)gd97GoLc̳p/+& nx[sC ͓e J2sr*sSJ2RRS2K&kM|O" Rp Cn|Q!3MAYTK }2Vp0)(l^:b+d\P݄Lɉrc&j“+'K'e&(*'q)h+L֛(6AԜ4Ԓ r+6oGZO~7F#2ҡAVA(r b&%5A\ՓHHhN;~3Ǥ%wj@P.x&TMU+GU0TUUU5xRFE:,<2Qsz;l3NɨO*̨ɩӃ f\}V,\x{| l66Ofk (% 'x{q&v ̼ҔT%\ļ5oR|eݵxZmsl~E%aHKHB:0XtZ`{E\=B!%`g_~^ z{>\pu:Tw*|6k ;wš;?8*(^*SiiV^[D`1^z%;(4UjN. :ҋO0R؍PʍTD3Ge`%Tn3bk_viQLW(VkH2'6I"I];5zzw˘juzuppDREuCEz8MPu6Rt*iG?e@nTk{9重-~xlUnmnzYB'L`"+ F zM 1k!sogNa*\E#J*t}L}o}o~]h 1S.[Qre$R އ!5w>LS\s@XY5<TCdU`7~x3:lCa־E gA9{Oeo<:]Gԡh;wFt}3:]ccQqo֩7W'9܀=T3I N#ėDiLYt:n6$DS;wg^aڣ&(A>vãttZF*v:aDTj5ڕʟ`oeQ>r[:^6x) d;x"33z>R#6,vqkwwEnU^)ֲgvl@pB6Yx2p90Y'kBOr];=zzOo^>zî.,%,z]ZXWFBęr{<6pmNwFW"^lVSI,{yA\v=~=6b@%OY'h@.'T& hZsmp3%tZƟȈOf#yO^`?dտ=QTN9(v)Ѓi#y޿VUy 3X<-jH h16k)nx~Z1D9Cu@77g+ 2dL'(\1jb+,2R 5jzj.|Qj[lWSNuǝޠ6gs q4\pt[Zax̃l14u`sF˅nvZ0 pBժ ޢ9}lf+jn6I3klPO8tkv||zRܭD< ڳSU:KTA?S{tr t.{@]H;ӻb7StGML pj-IjfYl:ǀI=N>TXhQF5vKJi R@ZYojxssġM0'<cQA&6j .N l>(l#A8d3L𤀡s_*Dˉ?qf 1a1"i"z s9+:*M 2cZ-f}35N̈́ǏޞG!ЮJSGVb7bV4ѕUk0 rdXJVdpXt#Vܠ\"RF/ӪF`cZEa΅B--Ž aRv'gU ;,9R{2j1/ 㚳U[PнQ4@_aES4,@Oܷ]\ZuXZ3Uiq%0bEso(Te3=W ng˻y|>'e!ґCC1jpRk 1 [0(pدˀhMV#7ie⍱{k 4(+o %SIP @ p,^/8|ͩ?=8eMVdia:%$ Iud-) r2oʖõ b]Gmq#/is{BހF7 7pF5hg}=37zRc&\?A̽}C5x`tu B[L#U p'pH$Hr ](oN6+/jN˖d Z.(u]kzY\*_ Q>J܎p\(}"PE/7QtYz@}Zw*)%Cqߨв!~;|]aشzhPlayoR c1|$ '~T@4 e H"g;*IkW|U8&Bs dI?>/e_rUBipC(x@dBbϓwdsZܡ^ 'E ܷSJS-$/93$b9٩3rdY/~ #%{J#<%lN^A3: ; *9w^sՂ?HYc㤎-h8R F}FOޖ@:p~W_2[T#V- Uߠ@"VňBA~cL֡fœ@J{ғ Bdc~;[Vܦ?>NݚExZ{/cnd%/-$>$4mh1 <cftʀñ\&$~LI"H陃q=;c/ CDҷ¥H/oKP@G޹'@ۓے|4L!kAa" ,/ YIDJC4q[.KsV?'W sBVX/8c EQI'w,5="1_$Y(X$KFy{tȓbȌ|W,En\*UC:ǜyio/b9hf3Li -P#Єc^#Q 60JnbcB䩭~C©b?0rz#UL>1Q߬L=~Bm$}P{|Y1Y(dxsP) ,!u0^ŗKm==.n*η68S*Ţ̳n,QzżQ ~3.bc|Q;/oJnͶw"4wb$ <ĘH/I+ pt|sGPH{kS *u# nx;ysffCR(m5x;ysƠGY+txVmo6vyi6m. QI"JH9݂ޑk'5"{= \)d^8 ZV`E?H:E,H7 a^oS-2}xsI(հEuvK '͏|L:3,.QяG?B1l!*LwG̠߾w M}, R&O+tu)DwOЗiŽuq 3[X}EaWF#PF gES^h"t g[E>.smD˓[zV)h٪A/>a&X_3"B6VdӽBp8 VGVX9C.x'58dV m~2J ~@Eu`Un άH/t`6E5ؓ'0C/>8Sr:˦Y)nJ0sH[Rg}R|wL_;\RMb&j%h̹,h~ߵ1y ]`9ĭQâK!XT(>w|a?{ RS/琗o!ӝQ'd|>d?\mXxP-쮉~t4P\5|i{Pys6 %:qKй}DgCrQΔvÎDvF>'hG#c !#Mm)@ D>0Q SeNDÞ,Ҕftv]x?J^e4LD B\r|ī>0Мa5؉W ^}q2;;ye[FP_aG$565`Y<\)h7䝭ݬS=3pf٪pk[ҭ1 :;ڻƢ=j +-efQi1Y8JDhuog>yXͰ9A |9SxT0=㯘*R[uZe+E `rl8]Ŀm( 3oO2L)2/\+{01Iꍪl!(>Vll(y ]ps * a6Naq'kZz{#ENr%ߑBBuQV}8zb'ƾ@LF4UCKո0-U`4eW M"T=,l^k@\DFӺӡJshR5ẇ{mj=ˍFuPdV~{jt!]zyqr+7'{o\ Bi4i1Do+xp&NDQiֿ=" Wx Ƒȕ23f4{tE @ø<;]7 G K.qGӌ.~i$22?PbA_L"_%XgJ:|~YEn)nfMG-;{:U7T=ljeW)2g=+WuN\;HኀfZ5TD~a1G0E-DmxTmo0L~ōiZ6ؾؠ];U:mMĭuUv7iHs=GcAea4(Ԩ6C2G4^ϙWܰIt͙bX ƹ[`Vk+&3L h8Bxv̮wZu\bb gZ )ѳۃ>hRv0'aP䏫x.M3[#_&\r]j'qzT#p1Yyj!hl<$ Zw/N埩Vd3:3vl7 0S|o-8M,yLT׵ʘG⪞|8Xr]11Dm[}}P_RK=o^e8j˒ FKbaf~ZrWA>mV(eJYȭl~NM#;^xI8J Дэ7lv'Be<BS l$,}!a GtPCHjE.ͥ撗+A]%?@>6A|M6nF_ol͎S]hYF C/3A\P$tiE2Z |ԍTE;c{tw_ejj:HTZ/c~E_OZtUDʨ_4Y~]j iOOwo*D~xûoz`׼ԢĒ"<[ԼĒ<Xk.`Ԝdi-IUЀF K(V TP &6b|-ϱxkoI̯c^lJs;mPdY(jfӻC77c/oU8%TU D||O쮇\<ܱm,30iv?qN6  p۟Fu $vNjqblЏ7LĺCQ=L5{␋GTA+`Dғ=+V^K~=F,&A|q!V"V*93 c}2ӈےaY+aݍ*gY1/4FlxaI"1:E*C_?D|%$z6_6R!n`8-wژkh)a|gh>*05Xߏ2b%BK8@X7(qo Lz%ĊjCz%z=UmrEh,^[+j,XAgAh׳ )O'pw 6/UWNKz+`9()=h"n$%ܤ$xBC{FXXشb.?Ģ7a˘Y*- +qt$PlG{\(2kr=:z)D5|Os ;!VY;89ZN7-mE˭*Xm۸kf|a*˨4x.ќϋ'^T|F6TUʮW8&+x*?%Imַ/ڍEQw@JNT nyt9#5E/cnV`LcҾ.9QUERebm*rNY]hN{;0}RFWjBnMGʥ%/N:=|чzj\u-ӼXmԿ_t]t_3k*\H3b"N -˭R[%%Z)/0(+q4TUԫ".T 1A17c@BwF 3߹_];+m&F΄jRcRSOFKG2~B޿HmL}۹0LmHXUVԍ&ڜ0&ɍ#DgS\*FO?lR_ku)21ae5}{z>_DkO˰'~!j/+U}Wth4ʥ:QMY;gtN뿈[`G?z&k0mp?gs1bx9zUvel,PO vq*^CD'HAÂ6B[iVg@4~wTsU#z$^Nea8-/Ű\0fhׁGpfHsF41}9ޮܢdON_8g6Ryrw|>v VW _NlBn_U6!B@;v 닠wn_m|aBMg|2b>uIE-s4nqG@ -{L lĶ}e'&VV$w ⇳@K28Λ8ƅ]LZ"Զ׷.N4gׅWS'歑SlC(~ч![ʉH 7W >}0 J:Jי%`KܿIlt͐SS6,lzGμ*;4?R6 [|ʸ7.Lo|x.YbCdo>3M^lxTn7do,4ąҴQ)-D_+kXR[.rݤskc/}zPQ $37nީWA2EͪY-ah6=QOܚF4#>K M;wo{M%p(=a?USlzwq2pЩ6z `B&+7–PHB2SYY*6O9.n+J_<oW^^TYA~@]*r8kg 2 O}`PiJYv?:_G8OKCڥ$T҆hFؚܹWO $ڟf`zãs¬ Dw@Ԍ}j[a,Y> YI\97GE gcqϸ4&nE!~ ;a}cwYZR)r\9Eģ_" G NšQ~v+-ލNQ{@4 TXSR6m's VoCGv-yͲz۲#ldY}HN|Wc{IaIoEDKMvȘ)=G3Dr'˸csO|o.FՒl&FCvmlWɮ^krY$p6d+ِ[2lj)S^yuIj 0kO^:ѳqMY6qǦrf=ىM>WCҎ&f3dc8z|ʜ BSr\,ȥYGz[vKnz]Sv;eNd"}P Q\[c8xY[S~F,)$<U E4hZU\HMjKI3}\s^A9=mQ6O5-}m~zg:ZS`FQYM&O#bN&m plCxȤ* Vi欙nf;.O;IJ]Nwcχs51ǧrRm,d$h'9S֑Qop9=cf֌"b41&GswЎ&ӌoH=j88iI/~MtDBO<}P-x6`ef1̌sJ/Č(NEA hB8I^SQ6>~>vfXړ$'R7LdG:G $bH ΐ.6QKALLpH;'Y% L=D=h8S" J>O/VI"'Xa7ORhF4dX>~Rm.̯ 88#h#7ۦ#9iww˴hK4 cgۍ?i䑦wCv}!9*Twz?pmWf$Y8^fƏԌhEI !Yf%Rpt#ӖkCՒƗ:M:Y> Xw-8ia o?HyAnWZJ|~kwJ $nasEO q) 8W5|Ӗ-X*JyN#6; A֟`F3N&u䳥o`+d :>.2~Dz<}̈GyBd?D ˟T&.Ib33nnJ\HF/mb߫҉ -{n97'!u_S͇FBeb dprx~-Tj56s^\jPAL@Y(ۀ& H.8:`yK'AY^R_nk&cÆ^#TS"]ˇť5;4]j;QCHRq%5(N`r?v5.M6(sυDlj!LBLXNEf7)WXPo[w,?McAuuܱh T4xEaa,( meؼcKtȃF@w80Č_ ckΔc^vCś8QccC!W\{;1ݼ'|$rs9biB>@"A%ff0O:"g~k VSpR 83]Pr Al8}Ma%=DIpXtY[/Ӻ{l+ Y+"=Ryb;RUG"#ItO"3/x^cS)"c@&w͂ njlZH`.L$#Tj> #3a)ۣezkaLo\ui"2T!CxQBkx4^4ǩT AE$vP9ey*|H5hX2 (UFqVcHE-^/P}嶚ͫB(<}3mO%{ >FD{.,Qe('m /ʙ>r=G#@*qe/g|BMPߓϴH+{oY7]mAWjqb}`Q UYc .I.^+ɿPB'?*qR`@Dol˧zȚkaEd  2`2lV~^ -^H;)|&]1JShpE3Uu*Y:k3YhcÊAxe>^D"*^~A)Wm>WL] ȕ-#q9@NfOossA>,rEojT,n=UVǺ$U÷}Xx{hyjC&Kfd6ɧY62nao w*IxRMJ1qӸq>M[ݵRT"*JycddFȜGÍgpi22: /}?| z& -X B$@-Uk?v:eջDP w) S=*G &_H Րu~Œ>v*"Nę:j(RE$0бT^q2CqnH,[pjm7d>ם 7䕐&:dŞN>F@+⃒I_+cn\2`Za`C=9v8,4Q-L4'?g4+xUmO"I:.A5ˁz( AgȦg(mIO.g_UotU=kW77aJDIԥ;Z#bJ)FVjy',EV4=[ݫ. NCOgFc F >loB BGNΒR'eh%QN ''`B$t%Z|Du%ғ(,ShcH* cI"84 ,9:tHPyHUm`r4; #X4# wp6wp JFl~&#LRA2qY,cu@IrMJWp7,6P#0lW"3P'{> X ) Ez'!rw2UfRVs} W~uRo1LQ1g^LY~8]o5.t/zNp\Y\YDS2hTi59%jE*v J'c4ZtԵcӽnO*g#$ږHj0G$BWa mwwpS˓upoyMnBSe2T6DVJ|&+U*qxëV=E>ܤٔu#(:oHU\ oeeئu1 ml0CS6=_;(#꺱iE76C.X [S:W3:̣0p@9f4p"ds~ &ubiA$Bq̾TW'tG*OyAL/qEhO^oB9PvZ $/?xK1=ق⭖|*ôi$/kH+)(V0:u =\`#b'ia?T$פh9&h+/輌H5N-^@\W)zAf1EzM]\s\iT$~Ry(iiZx"%Ǖmr-:)Zt 1YQY؜>mr\!/*TztߏaO |t;ux~)E􉇧[ DCm&ơgS7sAw^e34!yIxXko=\~٬]&MHHUfƀ7U{/s!$V%d?bNIU[^"2/\^*e޼yךsE4k ˄ ˸:ltHp70;&Ҕ{I\^B(R=V.ak.3-{Rp2zEMWB\a:[MrhR5[نB$hi1f.&3a\Cp يCڐ4zAKY <1܈hZ1+!.p_Îk 3lĤ2\]!E_JmФD#105|Mv |ǝ1wܱM*3?q_~BNӟޡpݟz \ЁQg<_t0^`I-N ^† gr0KX\P91#&,UriÅ'  UրG-1'%$jo):yq-:UJ7LFǿtͻoC6j2N Yg,3PKż)"pzĈ6FW}R m.(ך IQzqInx=fL1,5e[-Z:vgroqtVZ&XtPBrB^14Fy⌊UZ<4whܦՊm$+ӝ&*ޒSBCl=S"lA'-wÛ)[ZfQ:A[6n!pכD5*?jxStroS ,_>^NA :&.ep򚗕;\vy ?.N(>%՟XT8.J;T=S=*dO9BFn5.H Cf8$BRrU C:[̡w}̊v ĩ28`7Z U_+LWQ({;3f:V_l@I*N)?` "lLT9Ȓ/hL PL]Rbz4wJN;Ha))t+>-fCb[򫐉z<\HIO"1PwRԶ̬aaWU)OrcvEW?H<~ %{{XyTp1%`ҥ*P,G`ͪvzc,U(p # 7`}'ì?;m[l(@s 3 cz¸Ĝ`>#rM :vﮆѲƽ%/">-5] P#߁߳N5Q,xW'y 􂥈;xEFs \F8;❇<'|ݣn­g3"Rڄ8ֈRt-M3joy' b!EFTȤ{+ C³^Q1mсy8*YV#:(Ok5|r.!ɗm) k1lb[m!/xﳵJ'`ganbڞn9 7B>wQƚe(6!q.M'^1;]NP}G&7wݼo }93d2lJ8);9,x)]cTRīW&xt//J4or(l ނ7bnIT@3; Sat9pU 'ƆV|B0X* {bEqo8eė[<{(fN,Lb)s]Wӑ-YOkрbU/tΖqeWy4K`OoV~Pۚ6QEWG^Uv_A'KP|vxO!(+t]-f~mK /9#GX'qhZr:M*jxⅬJYݶ?3_ 9ؽxUoG+&*ajlgÍ,dUltܞvho v[ۙy3lΜrf2O-d9kW 31Έ],ӏTZii23ťuzEq&탻X:jtn= # tޤ~8cX6DF.zSWX92-pW܈֭X.8Z8yJ,\Q*'LR2I/qSY'7L͍@RvRm]j6Xdd@XD+ӴYYNHG:̥ybXV@}|h2GF[OƂI:٦ 5 G@:e}-K]%2KEZfMЧnJ>I8w*ײR"Sb0"wT{{WAz^hB!ɴ߽Mƣ" ,WtV'S44H'Tf1db-1X5*C[f 3/|Ө *rmkп倫kפG 0{zm_ƙ%ؓ&]iP\!;:9IwQ A>#Ԣ_oM?cA3fsz!u=nQbHE5(+9c&#wc#&l;"UDQHv1 > 6/ox zpUǻS?g$oIx+BxC9deNq1gxUmo6\Cr]%Ei5MRocXN  Z,heYN_-/xsTۅS+gJbUGZypjس”LVl/Ժb[\0 ~+9*[9\B=I@NQisO5_*]*/UpD9W,W*Hꌼ3OU.b {ʹXZ )a:2"ͮ*UB <؞XcY`EWT*d`s땡TttpKp i"!p`X MSXTg] Epܤa:РcHI7~?5QZc_9NBJXp( J٣h ws&)͢!Dc*jסj-FƮ4+lStލoj<\1\ i4/oLgӻ29oP{3 Rf-? (Sن.6X!i?)UtMS kfWa<n` ow9"a*Y %zNKu`4 >~"[P_R"D)hK~g߫aJҷG/. ?”}`)A=0Xq$E4:-$w. $iF}5>a$~Oq> s^ t78ܖupg(RTL-{k=[Ex=,qЋ;E+uvg,7O/%[9J91X+6.)_ >R4we=:#WW_W3 W_Wu 1iaD^X'=⠝7j9?ݽiȧ8_O:>pQ y/Z.'*f83L5xb]3<#Y`lEjvKmiZ2,G~Md$s+tVyHxXmoIl~EOB0t$1/w ^˲Ъ=S@_n@(gZ6t{=U]2\i3]^X/Zz2r:ˡ5 C3_H#\B#?%2O2Be;8} 4LG*ڰpl=cf Ry=#&$\$'<"ow=}onDL ]\`%DdrVd?K~#ESN s݇&4ݧfn7׃v`lb`ߏUc{d0(`RxՄOpYam/$[Pjzѻi3fǨ,н8+:l:wCPD&^usNK˗=z~SxUjZZl0_d!Jmء),TDӷf6ė3Y3Ž^ Ch0\x,e2-͆=rG4;v،!8 ~S9hCNyN DhSgAM~<"i.!$K A<1_|E`ƝMUdл͡֏[OV$Lg3RP&k&9G?ک?/8K;g$xbbJi29AW>`4> =d7 C\t=;睚Kk&`͆!WntHKV9gP4`:A;61_=$r{9Ivً12)2oJ*)k糪 x\ks8l tWr?25_v⎫e9z\)Z,NhRCRՙ{ŋ(֌; >..@nm^:-(.|rU?My|1)Ugnm=Tj(j?t] ngVNr<]BWQ$Z=fLŃd){aLBci*oRO9X E]nL #5fj*ף(|VREh3e6s2F窜hUh:yyիxKs-Ґ8Ƹy?1l*L'*y)s@@iT&SOLjPZ =% 2Q<|svԯ;;w@ UV_iU|9MbϣK4=xupP'?yv gd7(|h{mo$gƭ6W -ѩt.Ů7-`{,Gd3"Pb>ϣ,'5f2>vUW>Ӳ"y67]wA!գl+v85R?:M(lPBi$.~x/N9ō!yR"`R 7:f8,QQ>R'EV;IQ /a>vfّR4m6`tٔ׿R#NҤ1 \[גӀ֛Y&To_;CؙF㇢7k j-rq3ݺH,WL!\93 nkGA1KF0C#c|y}wvwwO;ݿoHHVIc] ߡY.#.]Xu9v7wߔ]>oa^H$PZ#k]GH4Jr戹w87Ć$d͝˶"j_:lƚ=%⚝u+4;9݆nZے9 X!ب?L,%{ѓS6N{ɞ/z]ɡ o7|cNC6Q'둌x(A%!1[ĔwMٰ͇ BV{uf{(k@|vJ+`>Nj^BP]r$ 4À CM~ ҫ{1?^pD/C.Q&?lkp \,VW3qx:Il5$*Śy3[JVPJ<֌Q'P'le|?Z|vo]dsޓ}7:U^DWv|e662/naۉu4a:{2h45`۟jdvmBY,`dfOԏ-JPkꬶZWz]*S ݑs#;?/Afn-; .hy1;[9}V^!eQOZ1-Vm˴ю --7FI\Lbsađ2œA3 Yk̰Q$.:Hz5-qwlCIxm.4[է%(!ܥ/c2xl%?_5_˶w[qayf7|\V;[ ion.W eG1Z4ls'۴hbՍwʹ/jUoךjk;k>؞b%[`$TNXkgwv\6_2yxZ9{~Na[^ q'*,cgrwg#ڲ f}w/\3?W sL-VO9T[Pp-5O~~k6p7g q}wStml=i8FH_@]6Jd$PwP:pgmu^Ϯ2 dNrEG@)S" Fј m،~Mvx6 ]ɒX$oj!̅U]ZY*S*L{W9c8_ؾ_[Fw.|7V4p4= u i'@#YKew+(X~yQݻ=-*2i Z T9DG}3"\Y ,4#( %~,#RcA+jmzN#^¼$ S[[3mؠ? z a@ac$#%wRI7(5S|xRxe#ƒNä7ds.& 1/Ok\> CAn ^QqyJf_|Ҋ(2Ssȶ®η]#1_B-/_hg]AT YYRw -@zܹtW}77)u2I\(캈ˆ d W½e!!a:o_|6@b]t _w|*`5ͮ ϣ$, R.L";Ne8I|Ft$zǢ{28'>F%MvҩYXv*1>HYԦ@(gЋf?Y2pVtH|z= SR=}_&b}!NNKf 0Rv e1ZD {'^bd.y25@"cͼ  ` rd~8 Gq? %6נd~ZF˙,v`Shj?)Z]eaN6nu:_%P54@5gf6%ht!NN] #p3ifI t%ܲ#]c^ #5Ah2)3ȓ+y5>ή??s7a0Z*DoFe3b5^ÍB? )`htcq`Ľ-YqJ<x tnjAhKKp28s 2]xI֪G OHu=+@eE6UWȒ!wt0KW#5 PLn6a{Z_0Ժꢀ=81Nٍ#Z946( +8e],OW3 ݦ /ˬ N72Z_x;粘eiT\dL9s.fI͔wzB)DPz0"ծMumdu;B!4Q.>bG +Z^/c~TSgkxfvG$83Ol)S T_"/w2 k~?{ē0)<&k轥TmՁGe-t%^J.&xv -R+sLjz1P QX,%73bO83 YY}.',8ȂE!$\B R\Qڈ)`W-ZtcL%~;' Cί52-mمuKh(}lXJlp=uj^[,\͖.a-r/Z>̖f/ Z{ Lh=1p*JI ͨn5'C#,(Y n>A<2YoX~yc(u5!G# љ&3>K׉8gS˦ a+ ʂe1, ˾jj(4G]q+V ֢ (A0ՁE4Ak|Ɉ zz{f}(`>VH*(Ewap-V$KV0­;KӲĖgNKKn-⨜/OͶ\ݨٝ今`?K@wGa~ QXO1\CGQlgՄirqe'pM%1 Ck޺rT:RPj\% qoYvm۪m۴cGHq@syXJ*XKG/Z06L$Wm{lY׷ kv,@~|Cji=h$@a!Ewp7PAf *=պB5}5+FV56'!I*#S;f37I [|H) XzTs`/WAӒtjY%r#d2j% SS+am-esw q=tCՎ^Ŝi]NwOkY39Qk@*V*t>Eq#.Mbcqf -D^X&sHBq$ޔmTb[͂lAaC y(Jسy<\]qlF>xXbfrr)*XQV~Rm"<¨т╚\6/84j*; p?r-Mr4s]C]Q.m-ͳe%Og`W$j{>+}iRq'ݕpD^FGZ 0is6^eg9d&07"אMѣiA ]яlHysE`VTU8qjQ.Z9dEM[ vT' HO@}&$4ŢPG{xq1Ak^)٘BV#A(=䓮]`t_RxHVɛīc[ u ֣T-tl 9N|BaZsEW(Tx&!'(MX0n?F +gWk#;;"GC.X74;?l*I<˂'$P!>Vc4 Ig.Χ`^hX ~a?iN΀IuÅLr˄ w"1i5Jl˸+re@|rSh]-Z߀E{8[7m |*#3=;Oa?C!i|,)ʂ3ˎQdz ec Z(4z_a2VԠj@*u6즯OTؘo:U/oF1ˠ:+(̃96oOa$ˎ" o4ⷝ*,ڿ-/l\ڗ_a.mh2\ ' q~p1fz1a Eo0~8Nq&N%UgpQHټ }eXST#YƉH@3xGÅ7RDI1jH6*K8 KA9SC ꑋ7

W>`\֣&@خVMûyz4<.xX-VH.} Ug1`藝0NzzcPq6"GjS姵@dj G0S˘nrtyr[϶ ~_U!(-8ϣ r'/I$3Sǜ\1fv Gp$jiu'apu4FY)p3?9t(UZ8!J5 ! %/nbYγ G2T(&̈\-W'8ᰣ!Bjt:A*E訶y"\\nr0'M/<E-}^qw,+J%p)xQYAMÝddwgJϽuB0H:8Q"S\-}S: ֞ذsIE8ס_c&{ş>g9XUomV6h&fuԴ ձU7k:f-^YK.ј5Z7̈Y6fk % ~7͊}C0"3&!gY[4RٻZh-ݴ4ۀMщtjG\)0R&:!#GFa~ßҝl>Ht.[򹴪J棉*$N?\9`% *_ZKNkZOUUFj/ݓ&/<8y ouʳY $YYnjsp) i'z8Y}k=E0<*LӇD(WZ_%[mXIx] Dp KM|B=r_O^J ͔ᰈ[k#QcF/"SO/6-=<SzjwoL m:{J0]uV:-쥧*j>o}{/, u<۱7ݮZkv8Xð-srv\eJE&)^[/X@fЪԜjWkL[ŭ+U>vH^2"x~K]1J,xG/6u-db6K'zH݂cHcA[R4K㥯~q 6qΆ4_?2H?wKI".~yj><c=}~㔂a Ѕ3[r{þC#nOq(TK[ByEe^a_o-+ ߻336`ř[3p;MǑj@pSX*!܉ ^Vi|n]+xJo ^^C\H 2f2Ôh܊$\8O. ç|#|M챋[|˟3%6Y"2&Xjv?YLJn4{,`8AzЛF]o $ xqlۄua"eZ%3\C5MG׳(CM酦o))GUH٢wtۅN鏆pDn XsQWwVK©a?0V|bI+QFW},uqZub`vͦ oQMfbl~FΊ6 oPvC="]YVnѥ=sf^YGkSƬ5Ă YCƢ 6>  Ѓ?r̤k=x2 , C+{07\`S0E[uZn̥p#m<_׮qW.OTii]6'XIgX* aΆG5arHKb-}ďt 76T732 2W:S<lyq\, TlO]MQqp'TY&Ehk~V5i]RS#]2W^+o<< `Z;V1$/l/m㚧w<ŒDTD*`/?wp $ 6$Msq}.m_4Yǚ5FBy&{vv~0AZ$jYW䣺Ô8Ӵ[,#;쑀műY^KەO8}ЮoxiU<40+EHǁ=KxI&eoneN- rr_VjQUwdZEHUd83#Z΅|v ʬ=(zN ӒM::GQ_RH}0sLh7MA/4 \G{ |xTnI}|E)yD;2!a ,+P3S0t(L؛T9]Sڣްq|湎,ÇڮZz=+"w zyp:n3uJ ڬFX8% KmT6:z3}m/U\3s;Tm|G4Ն ܔN{!r|Ty7)S<:D'H-t.6dƞbٗAnHl+Cm`RZ,&5 *1ƹ[jsǚA Ɏ'W n.ɠL'ߦ5y*TI.14aMC(LWѧ5]A]m)J`Fb^ٸDp~2h$=뎮upHRHn,?6w?U՟mϞ?>ϓ4ekJIjOLRBYL^T^JE6fI<Oi<` |Q2gK!VYVmYhhrh0\,krj>G''_2p8/esD{՝@뢁ZgPrm1 <8ܧpKioW.:M~OzHi`-|0*ρ &`cRC;LJ%YaXmDzk8\!5EBU^[*c? 0`X$| >wvNt!dXl 3Y!4e| ^U=leC| # /; : q-m]qv: h볔xUmo8N= ݗҭQ2CؑEU8m"P=3ح}%-l7˥Jf ~BSOggA_s Ԁ _D pKJ$taVן%J5C]BY^ \!a )|L[P1 scyNakk,#8s֪I<j(,Y`2j) D&\p\g F\E*B04Gp8nm5&M JHYbAWGkHQҌ@HSJ|i q6~82??CWY D4v 7|Af80 g^@2lؙ)ͧw8cW&1▉l3F\{#*tyN6 x;{]ahh)XG*p%[><)*dnk\yA[|rgI{]4] mۃ-Ƕ)DT4 tۻ2"N~ϑZ'n: SZ7_n/ڰuz` -}@@*jUGQs͖AŖˇ-&hOIp򢽕6:"1-R.IEL\Tjv"zӊ8EeCR;~qž} 0*3DS*C_ 7Sh<w7lJġsWWڗ|xUO0LS>FЍI2 @C ixsq9NCFݽ;vqx) {Jg᳙[c>r !T(sst|ȱ*mgmY沄iaC{ʌ M6Ea0 wVP`h5i|~47( dE J la pi=!i_L *R C^BYz.'/HRP:Tb.٫~StO_f<#2-PnJm"Ku58|L1iKN ?s#f4_k_ fyJ(>Ncd`)RC5 NJv65gVmk +-zA"J*]9h$[J% XA+~B~|O2ƅ l&;YC'N!'o.N'QHURFyt2ΗB.u40kQy#RO#dW;TJT& EQNΔr*օ^b%l^FW +SjQW3]J*ٰ,dAe*ʰ6t#/2Zd*H01iaC]Tx^У, 0AyB`މ](H#ؽ HՇʭ'^÷22ZHL섵>ͩ77_eDOtj)xt(D^n`?K6H?]lFד)7w7)Mo') ! ,u6$a,K2SpPXŔGGR=FA: 6Cd:_ZagK R 5f5OKVHDD_ p6cUp{2WgʪcπpPœ7uYʹ? =C V3ȴ9RHgmjOdй[.3-fmѻGbyp~w*4?#QSYVEnUA(!(v|@hUĩ다pYYG+KҪ֥Po$L?Hqm0h b﷕~}[{4v F6h&X7) 8 S"H0p ']xTjW nBL tcٰ%.Ra 'uUu؁i[Ӣ ᯳՜n!G'W쿭/۠GN:꡼3C؝h2r9.ؾ.0x?p3HץlR29 |dsx^SK!Ji1bک}V|q?Gu4脵jc$pTdbE1EÆܔ"dKr}I%yd2c GjZm<ήUAZ޿z0ҿ'7vu+][ډmg- k=NYUh#صR,5s?؄ Mo&d6 o,QO'܌`/6g/xgtX?9>mm;yͲNa7s䴶Pof}MpJ}8|XO;se5n'9O| "fTa*tcଗ@$@~_I\(Uւ!8:I&vq R(#@k\79aHoNaivFD_y+l$=/TGmk!V{aT0t~µіZۘU!]ݍ9n=F92. WEBaa%cxj K, 'N}+·^U@n?-6O4jGsIDbܶ5dr nص&ΰ+܍+B JW&ﻦYgGN.o} A x/WT'&Wp!1DȗK@)+u.v:7}ed 9m ;D .ZQjRЊ0mu&KڡgǸ*04 $x-1PD; Jk)DMtĄ|a5W $^;y?vfޛ)_Y=REmkG0p=U|b!-p0A!3ؚۡp#(/Aw%ql%h~NA^gY(KX$'g 9AEx{uF&Y  $uM߰oQ&ey VgJx ;@ :WxUmo"7~ŔC: DМnK-,PSEfwu㵩K,p\yy晱 p'0 !1n`4cas0s+ck+z_ϡoab,,B:N_GdؽΡ$Q*lL8֝bd85vu SC).u`p)p;\ߓQ%F%.ߪk c;+#rBg2Afby !8C{5Z`\̕6AP^SCm@˴+9-.͖ Ԗp܂Y2Arנީ.ySRbR0G(rL d {?MC36.pC%LeYݚ3]/Ļ~8~8M& B3xx4非qg/|A&k3M,4/Me߄px˄[}mrLj;\qN<" :I[zFQ7py: Vdt"jb-Y3](EթV-ɧS)3#stCk?ҍѦbetMDS#`ii ׹JaF]nmbIXy^x{QM]$ZԎ8FMGeyHJޑEGc3o ]&$vYtXd^Ə]?؟XZ-2wQQrrQjOK8 $ ]GzH :MX*tܚ.eӢD\ʉ?zGL=6Z}qvZ.r_{Q-mJ12 #7Ce% 4xN+]3i7*\A n /5շ(<*jXX|Od6涵ʝ& Tdx@TWڿbq5ߘ]n&1b,5* ޛ(HUzz6b$&%zswAÀ0s{ˢE$JczpG mJ?;akoYYV`Euid#[s5mߴg/@ͺkː }^zy'OyM)zb-6)շ} }#f70{w^sJQ4s]SwKa>lST{O?s/>s/5-EuҚJ2Q1kjUL˘aE|c%L;1S.\ElG_*=Cmk1cO3Zm- J?V,jOef^\"2/B;gֱFTzt_:[m4L+L=?\q}=z.ճK7kߙ̂+3v:fT,m%u9 g;َ:7n|8uH,c lgf Ӎ(`*ld>p8_/N:GWZ{kK|7,6qna1:9g52,}q%vB;~1ji1R1_Ly# _yY$HzDf9'=_}}*JcJ XDa]uKϩ,V1GrwdWobWnu^Uyuv;*;tt5ZbK2添ҏ.>6z|;h3GQ9S blG*{Kz^|+Ly;Zc!cF1&Eװ3ٹNv]u K2U;ŷEs>3GVz$m`GW }͎ji66D2j3-}k~oZx[Oݵ 5I=jkoTx o g3LgWSuO`_^3n|o}e<} Iju}ݼ%][x mr ?k}Q~y$/,sr=/b;Ҫ8px~W [/2/rR&Ͽ8}>6wtQf#݁/Ovkrg\:*8uEv9o$/,Yǘ3^7|ŕ́&1EUy3i J]_1˰>۞Yx B{j+:@p gP?]X>,}^6BcYϑϬ⋙IT-dk=4;7l6w m~ooRwp’tL Sj&Q.ǎE?Y^k}C?+]uToOQ-m˞&Yt6 erB|L>1pd5_+$n}[w|}v} G:~<+ok G_  /=!^~>jv7ˑV}Әvh6Xz\kouJ Dz_8f]} }0~|{ߏan| M%%v5qK{G'~X0>у%0w>Tx^Rº'?򱄰 6fkuS=\gZ{/y1@jY (n0mޟ "y[wى>`1aZTjJ7:cLal&0\p~sc:?_*]ᵯᵯvO_Oc~ilҍIJǂZ910&=wƭ=ccXɋ̯YqtS"Su f]7>,@wcλ{_52*vGFPo2`KtzgL_nvx3| sN\̲|;_XMgFִm)oy_jx?Iǁz9smm1X& GδuxM8/9ηβ@AL8sڅE8<^YBss?Dϙ[̧Lk M*v41i )N\d&'7?̎keϲ2fZwv\?[X;0peoX3]o1?c|&OfUt~U2 znfζӼO^`G~G""fʏaz|Ps$ Rgφ~bf"+19*~^*b?1~R>ۗ˜8 43M _n8cl0=UY|k^U3B9>+Wd-|?o57u7bT#HkEFm~:(|'=13[}OMʛ/}fDiݡ\D7S&]6K;Rj}x\Lcs YS~^"S,,CQko9yS=Tfy49@s 3>7ԕ1lkxK# V؏WoꚽtCLߒGU?wlc̿y:?5JL@<ܤD:zgJC3MzN"aY{مB(u;JyF;߂>7+6awX~4Ο1XV۽v^PcJ%sf|fMƍѣ?kFk0yLBJ]7um|ݟLi߫]yaя(9muϾ ה>'z^rs>1/&N^3fy>_ j΅؋* sgzYn}=3aJǗn7aΞ?K2E{ey>@F,Ͽ4evHv??pɨe9&mO9_դz1'A<cGCT姗vcً֤<Ҕo@pKx3>\`9f m\̈Q/7cP( BP( BP( BP( BP( BP( BP(,3lrl Az'A| eP!)!)[;KCx'CEJSz-B7|7ϖ@Z;Q EqBS9?ECS9?ECod3KV=$ b#E v@c%mdO48ULk;d7o!'',?O o.hAӸbER%1\rY~lOE%VB5&tάClϨ؈*!zQØm!^bWbduP"'9?!䭷T 'ib7D; bWUAv6CJ""+Ciu*E I z{Kd?bgv=dGFUqΨX$!J!;3k Ɲ}, PȄ_9 Q~]u,9qHFŗBR rr ur-ĕt^~vuȥkBYB98b1K(nاT!!y_ϰ-Y G8!jY xfTB''''"1BArbBB$A3:]Z?$WBk g.#εu*ÕMWo Z\\9҉h:~EnC'!X ς.)lI.G&A !yèBQ >bRO?O?OCg}:P{ P|=aZi2cJ9um퀜|r yWlu?8%bW=O@^H!4c+d"U}]pNX%H !mb)d_B3.J?O?O?A-4Qqb/(z<>gψނtݐ눋W!ۮ@Z:!ηuBگހ 9 v=2^ gzHѓ"Ͼy mR.Yְ !.'<7vVȿ s Ke]7-?k؉k~ØX،i'D/#^RI*C'`_ Ce "z^?O?O?O7 ѕG!6:@_ ӭ^$/zδv@ε]/i @=cSyAӫ!:Kz5d *AA٪YӘBFp6d}8k?O?O?OWAE@*@i;ǯ-H߶?~!΅W!}}3 ň~G Bhڍ!lKr " !9j^x>*bU-H| A?O?O?O#➿.A͐ /Mȣ~:yAcJqJp"vCl%it,oeQπ| ''|.6]u1P =Mp^_2!?hw@zcP+hg#tr!dX4C?O??B(<Yq-kd#5_7bgF5&]Ax>B',bY-F[o!G?O?O?Omr N I]tK"p3x g׌jmB ,"?5Dilr]^'''ap:_{ 2ozq*DTq׀0) &KZ-aW퇀{ :9d#x$C>d!''|DW>".QiԎH,?qϪ_aؕ~3kT@AOn#3b]AÁev%ir?O?O?O?O,RltC4џCt .2?f#П(؃mf@Cr?ku bZ Ak1K(ĕB}_sF@j`d&BwW15LZԾ3CY힌POɰ2A?O?O?p 8 qnBr uvuȥkb;įbT@Ŗ@{@ٮ= 1)_qҷ"_1p42 ݓ KC''''~%=QqaVr& q r qșN/-/C|A c* |1̇lMC=۩@7QO'#Af/׀<ˈA O?O?OX )b\ :B2 Gδ"Z:C.wA_8 99q6HOg!{1Ő!]'GhGyB)A;U.q%~29#A>\Z''Wd[#:Alb E;s O^ĉKyٶ+-_F? i>~^1З7h 6A]ջW!z}b{4 W[CXCt$ջ_U\k-!l >"ip6D?斂XYb QR$O?O?OdmO 1 "+A,!V" U8z 6HR~ː *TDDK!|zj@ ]F궐Bᗐ߁pW#MA RjAJAܳjͰ|B1EH>#ێ~_CW"gN&WD'aQ *HD%T@LeǕB$~t1D7Q^ îwX~d!6 b A DsO|ڬAy~"d'9?!EO+r>`Y ChC\!3& 2i |bS"C4F/YM%8 d[j2^%Uci tLxgȣPb`qrI O*?O?OTp?\ QqhzwBY "8 cK1~t щ, S*NbbK 9VA}c|3?7W"'9?ș|] 1!ZfI\DnzӷܑV;UTÝg}3̞k bh'IU<0?ZG3Y**jݪ↷eEEVSM$Y9ُ٢m+MV-IKmliS{S>ZI8XE!>Z̢eUm]OnTݸD,mٝiyq^){*iO_VqxWB 9<;48;퀾p?Mlq1Zb1D1df *y` αٽy5 ¹m6q@l(XMlQimm5E#u6y.Wz,]LcߕC|rapKz̰ ke[2_zZ*q^aɍzWV2pNfZf8os1^2A/`v_=[~z?_<}ɟӫݗ\C<:[ʤZ @iJG4ˊks791^H'ajQba}^rUkC|B(BVk3jWXZ츥,OYw C_dw0_??u+_V +ã Qj6'F⅏͉CA>=RzHm:/wT!R3_knA4jÏҰ-.ʲ̸sO5S0׃t/J & Tbx.#ׁZH_ipA[Nq`<0"~ٽS{0ykB^bOw B/DhH!IMJPԖVEK%\ L{ G͛մʶhãC4¿NMy^Wy|NqdDICM]wCwGMDv|4%WO?áQ084*!}Y2Q2UT{ [̓>xTy09%:R:VcbƳΪ^z6b͏enmlr?L>]Ryl=v7eqHd+y47NxbSfHͲkYe,$EYoߔE ojv 0hpGjt\A[ Z22]}0ql^r89K6`_ #byy3-7^OC$HIl!3mA2xivDeRUtgbW~U!c6 6"zV U/O& 5^S%W)γ[>}xeW~ϯ{W~g{yϟHXofɦ*(%#*S >E ݋Y߶ӃHIi1{O_8 kVv?iMߞ @ a<͠tm]r܎fsYLJ;$̯vn60fA)!3W%a$oULY#Wh d(LUW+ P;D$#C~ѯ￾bQJ|R{Jw#dt 2ڰeK;xR|AxPFhQ$>3>^b$ZE}EP;[ CߖT&YIdz?8sʆ_VQPYiO6dnmҾ6*(t>/Gfɤg՘}Mn79O'.2"֖aGɴIrhaFݚ`/#2*KqYQ+6G+Xdd>4 io C"U닾~R}V|dPu<)bs"bwQuKU*&:ԆJ*j)li")3RLu]}:/ WIKP`'IEini$FZ?DBFe9)" k g3>pf,_)i 16qcU0pI]g`j((RveZ'Yk$@,{/V{PR֗1&kf¾~9|60Z*RzNֻt4eqa<ʰ; [% `j?gZ%krJZ瑋'Q54U~&QPXBA(uB@lUXp:R%[tY md\w߷0HJƤo?򓖤d--ljLK˛3z=@x(ԷkV޷)ph=s1=X!1҅J^fNyab(>NvDF%2y67`>D5 $8M72xof )=vJJaHm{f3wF"w>OD;u2TpqJ_70v p:-s z ORtwRScF វ_#"eC~GMP/$Uas Yțco=8+mZc^GN7k gƒ s9'|JBr !T`hW@J $X6 =/na}*_>\A2P2gV321\'I|G+C|6s/S=2%?} ړ!W &#v4o]eK9%J7KɌ0btf 3뒛xtB@C DBm YMNɹ(=zCšɐTO@KEwh@$anu>"ff;ƕ{Ub}#2MaWdVbKa4VvOnT$q,Z|| ]cl8"r:kp=Zqۿ&pCs0PzRqS"f?Ho̤X)kE@ Oz| iQz8tj[§kzGCZm*tm6\X<_o6AP9;<U3N20eRSuc&'27y'22yz㨂]%OyZ*v?\,U" Z]|%`0k:1JAj!-UsP&NL [74-B%Z2M;`%3)K%̵|ߧuYgbwL/NCg~*XT }TQBo:=!堒~CDjCP4̅Xz^KhTCT %vhl`Xx򼬧fUk 1‡pђBHT2)}*\kT&,CL/gPC)wÅ!Jw d[m+3S\l2Idt}"o tlA@, (:cr9~4?av9DUbJځF(Uf zᡏUsڃ?|'Ri<軩EdLQqm. _{bC!%mAd1pǺ4tJʇY~Kn<'~D3 tNn{:6r2˜9:-΍bCXVCēs)K1A$BXQ~CQwn\{yW¿mK,H%%0O%3+à瘑(>떚1]5i!O.xCCh=9:wraf&4LJG_v:*D&3@@,RX8vO-! 0nj/.Ŭjd_~kO=]k7̷kpfs@9;@9 VhhmU. U+`z"Ie70|G#7nlh yݖKNoM8\MPRWʾcG<6˜T 7us2WfEɣpqw%HLF#w_>A# ǂ=!@Go|ܦ=]Z%Kf)%[qb" "HC`YU;!21jѕY}vԮ'z ɠ1J;3}Fy-4NM崈%ssLS"e"_83@8j$LVA][_nvD}[dV (? 9c4,^_OAkw?d@Qչto%{i_Pf/;ojIJ5O{>A/v]2*9y9Hk.xz^̒ckgl-: Y-7A;zTM!QOU?|/<.R/j,dyrՆ$hGF S@Vo zr2#jY4A:%V׈Ct+ϲ&P;,.Ɣ\dk曞c*R{ uk.vL+kwDClA& {=N6ܵh|$ r\>eaƮm|oVܓɍT@W[Ӎ3;*.ƃA+7an {`=lԓ q:osBq&LCցv1̱=JmIӸy:<xx \đCwZ#iBIF)*,Wg-CֿϢMs~b0j~H?5'lYRO|{ - gA[ՏW^]m[1$cYwk(%!h4u9!vce4 y:(l դ`@S!9YN9x7IH ^q#'3te\^ce;ïm@}#a19u&Y6tWX}]omvն֓{a:nD]fq魳8{߲rq٠S.B[&i2.6d2+yYx1t mTJ5Ջ= 4wW[b6jWqy5( #3aFy-#`tr)ò [Fj wk+5hc/,8o/!(?)"kn $H=V RQH<.8#Ngi@EBEdz.fUU'0by/4~?iy4.wYq &7ރͬ#*Ve{?p(s#j0Ce4%&Ez\1%(vpjI+[ɋY_^Ƶ$]g[hvz7@kK,,qA/z3Pv^!fOxSl41{#1`ԈO\:tE "@h!gY"*SP㘃skmd#6%l*Y/˼> v@)lJgfvhJ Dɳ^P'}zY}OZhkNڎkWӲgEk;+; sO'lQt+49Qێ#ԝEy0bإը9}u~BFsaQZyaBP૥Ҁ@]nEXK*@(N&tf )2gլƾB\IE(C< !*3N 1 ixxQ |SJ7nѸ~\SIo :MT.<6xq,ѓd}wDjMhrVCN49 P0u/M,)I-*fvwrj=emS5(EO\ Mcx 0,. 6ؘE9ۑ'ˇxq:5 P0u/M,)I-*fvwrj=emS5(EO\xq:5 P0u/M,)I-*fvwrj=emS5(EO\+xxqBrP ׹%e<|=kDx 0,. 6ؘE9ۑ'ˇx>} HU;mwg3uZ8g5[<@!K$)\d,LjxCF!t:M \A?CjvAJ=V+1=m 2Sm2pWBOl $İmQq%/c5О1(q Ӆy0`(U&^x,sׁع_>n2zFMQ{D{87R1H|A;(zJqa@ӤpXPz(X^EGutdS^̃$_Hɰ_Rm L`,-&zp `n2h* pi~@!53Ar<ڥC0޲<e!+Lڴ{ib #Nw4mB. Ynɼͅr)79]8-ÎKPj=ݎVF*a6'03Peˏy$c'Á.FVRvϣ(Rg<ŖB2sxi< 4~ĩPMO#Y@h>1 [~S Mڭ)43X_Tv0X˙#H4\! #N>8"u #ă"6H| Ybb/d=_{̺çUIs3yĈ|x3(_4b?o~ǴvA؎mXD8ҍ}<ӳ"uP}g+ XV[N;Ԫ0xid5+a_E>(+?X moGSp}m+.KV ypG™Ƥƅv2*cacrn?^b&5ĆNh1L;o$_;_|٥vUK/c㮷#z_W%WGq7B9ٲ7TD~GT&m6(c+lxXz#mM`>] X2f24 yÆU=ZNڼ.Z #F.\'2i(p%YpSNV??lsNL%08?Zws_ux~܎IYƋ+$x<(7 _!wVdg WW(uXl%<^GJ5;!ܹ \k$Z&eiYOm79|HWT˦9&n-:ѡA.$Ѻ|h/PpEHo6md-H #cY`fcY.Lh>1VWA^QԡH#=TΞ#BP̞+֊T_r-5 ‹Z {q0~BTghY1ZjNp$ 6Qsj,ieaTZ F?m-A! $LXiZ-mt zp|C;~QZ?}~[1l>plƏ5&YCnPwVI"ia RNحxQon)G2~{az<98bI{_hGӬ+ex@1LҞg^:ٔ.# _ BM{#b9/;h"OUac)ţJN @:+"0ؓ D-A=B|%K n/u& |Qx< H%  % 2Fcl7;d 3r,ׁe޶W,ǣc!0w2M3fAf^Et 8IQzfI[߿#kd(AɈq--`&#@i% .ߋ &qS0bM}&dc<*+s:'$?dtG?-In>2-T3 g$hդ1E13DN"ߓW!=I AgA2x꾧fBY f߫PϓԤye[Z5Q9OqE3p;ct=UDB?f:4*-J~!?Mu>H>yHLbZ1{NjPJp7`=RN ʩME,g T6?QUp.EL0k[i@+)tPnx%&מy8<̴9'6d\O`=E7}7mD á/;Ll.GWZXq0'P=L&<4mg l@w/#}328uh`̞kNp$4|t, vĈg:RKͻ?K-c-TMPO,俙n<%LJJBB<glqk^DO܄Ru+.>BIG|ވEkUz8o&Gcxasn&'9i4C?IUh=7̚ȅ <<84 5lAEʘqr+: qUȉ D7 J8ބ_W!-4vEzˈ7ywQՎ6a5|>1i2Qb_"g$H7e2D쓜HʃQ: qɿ&vS=#o:*UKQ*rF+W^^[J9:kJ{7KXwyRD2b4wb~!QE [bat)j,;x]8=|;n(2S>~vuf!F1m}UîLoඟrMma7h2e#]UoAc7kՐVЊb}pxMi(06kh>/fJ5b]DH;GX9,δ;~wTBr+E/9P&UAyF{٠ԚkQuP|! oWa"\ ':ePCU`H1QutNG=ƄaCJ?l;h5 k3!-.O fR2z8p&ȠSb$sjՉ`Xܜ;Ue*e:Nc%ꪻ?s/qur1NpMKhj1 ^oPTN-uD@UH?mvaC7p /nB M.XU /ISHS=hd*&.SN LG"?7}ᢇf.ZR"r^` U/[3UCd!tY6׏}i:ܸf DXLj,9m]]uTuWYK~Փ{R/Qqn%A^ 5BG&d?z> LڊM# DmkxO o2` ڴտs|w j bX k% ^Ѓ n_}cM#Fm)ϠDZQ U[(qk-&hNb-X g 6. t夘Ь qf)'cU9a7#S3ޅ ӌM3.7GxCcʐJ88:U~2]cQ|RB_Phbڑt$o(aԪ$lS\ g0U "\/7뚳eMZH#e;zVԮCnaXzcdGOqEsin "}9y`= 2g*52 mH7x)[6eƆ$1^NXm"u"~}aCjdH -C#[[*<y@gPlI=ԡBp>)MYi)pL~ȥB I8@fiXݐQ-8|'dI7, IR5g[.-ta5ʹ=KȋS QUn I|}$*sA-LtG9(~0U8f+;obH}^-^[" <#(I)^.-}LjD&UnMf HRiMrty(:UoĮ b)BB- apJNsުGSԥT~H5J JH9=@ {fMƚzz`@ȫ-h2}Rcr.4mAW龗fMVKd]CtCe=*]/6E;xVhSqwF T cMF ylP1~y`=jx]AwV "sߞW[]l>$;2L9x )^Yk,W}$>$-4R 65d+"׃wFT-2;7^Q&X8TP'Wz @A0 Y¹R[eAA:6=0u.P^QWc)pYEz囔)dh8 WCva.=XYFM$qZxo9ԩ1T kofFN~נ&W`vcm- "Ճe#6RD, ҊҼR7NO@PCYo(C#+Z9tm&;Nխ_5 j6 )+86WRbatS2ymFOUQS#W壚҆Iv@erӮ1 :]1wsjsu2KSRXdYm'\ZagٜGV!a aЀAxe1` pboL|>J(_- BN _H5rv|hSE*nS@tS*Րt`oZrU{aKSVeCRbEoV eFS,zyy )Uny{ \+k9Ü>S6^|f=2f׹Ԟ ̍7X0јާ CR.Z{R.bQ.uu[bspsx'NǼTFY*]k*,KC/9I\m2bׯr &FĠKX@'Fd4W" CM,_M{5W8PpIG~ϴQ6NM;v:HO=)D.9m(̓ؕN"^h?:i2~ȴdixPԩCÒ~ly0/A?!y d<o; G-Qms^ݑ:*j߆EׁdGdFD'rgz 5)?xw~z' vM̰W^.oy4>;;WCABV|'X^B,b3G-Tl!!| xMu ..W 5Vk>F:[w}` p Jw6&Hn+p7zTCټG{6}?`g#2oq(%,ʚ;pF=:: HmnM M7}jh}M}3Q"*Naum7!xY}s7)ҹxl'M@HɈ]:kVk|IuΙj7|G *aCkFqGT3TML58~ݫGGo((e"~^m$z*U )QW RAp8T6'08:cՁE=U1>ÛG xR2Fr22*( 8h~u 5`‚Oe*M|`ÈBq ç475:K-g)" 7^W8w7;n߇ep :F{WVOXzЎՄx 6F0䞢}Q8>Ff¥X=xa:1ŔOk&=F*"81lm.:3 8z}|| F?CH lՠ1NR3sZ,6yWC;`HS ,IMF ;hylOcȤZUPJ->O ?/=\|NHQӇüZ+m*@Ӓ&-(k5DotX_! # Fb9*%X@}1~zeL }0? @yqR:'_` ?:-;5iHC*uŷ W mDTٳ!`bBG'J纗vgp\F]ҠZŦS>Zx0̺}!'RӦ3&LxbJ=S1gbai޲af/,Ob4;|m]3K;RƾkGBMڎ  gl."pm;met@``rd+$#~$s Ors;'܏${7B/NK v3hZ}!1?! 3A}ޅ戦dX=ʘ90 .bˀM+ m0X4,$$iGm<î3zQK8.(>ԣlN!cƃ^%2 &)kGyfo>2O?˄0S i <6,0$ 6a;O7w}~a۽^rb ׬d ~E:W]v b7=f^s~wۻubLĠC5MfGt_0!ԃˎ;\̠Gbr$?R*fړN2_FM耚RYrnbB5ٛCL`|+3ǥFcvI4ٙDH! YV_/v9{qlH?EѣܳG?_lDwkǭqV;IFO;f]f+w"k#tjrߥNq0gw;cw?õv3hѓ@$zi"%Yc`v=|U<0};- yle~ cĴDخۉt~. cvr&ώ-3ۃm@Q׿TW,2N'.xum]B =Ql:AS6m|ӈ[w̟sQxi @ ]gvD? IO=wdٝvCzGƀ \ni&gvM^ҵt]ܳݓC_*Cv-1<}1kWLph*,{k)&rTӜR:7K}X}D }#-w` '7=1#&NM520z~#@8BaeQ SdO qr'vp{cma$Yd".AQ'.0Q}b P2rմja9OӭsjU΂e .̝ppsQGСlz%owWWpĽi в#A~i0.JSJda\ e[[])[\ tc6!@cನ 0B nHڂ .!މyG{]̽h]>=Jupdbne(c)9Ԃ ҰC31^ |!K10=|4z5v }gX.3-Cb-?aI6 `<زp7ע4W[#HW 9շ/91ezBIө 3xZwu@Q&A['Ө\Fm*eZ!LJ@l(6O;c~hw@^X)F["DekOx2Am ~PP04Gr_/I>'R;KHnfpT؍8$ i$FQ_UnR%!:B< ss 3!ITZ9DK @H+D懥uO(BX ]@YLj>HT*ȯ% URɬK&DI8Ǒ.6r(/M_lUN 4ՊS)*}~n@&RXd ))#(h`򎟨>yJm[Ee||颥HOb(B*j49ʳc20: +>iX> +|a4ں#;?WRd(bɷӰb *)Ӱ"VzB뜸`WBc!g4QjMGY7X Qft/ԳE-i`6@|'\֌ۖ˺DZ;b~qwef KՂ…lMu[}QW s[cmڬfc|qR%|ӵ*PWs;5ٚpi4_ƌhLF.j6ouooiSfĸ?ϞФx_b"fjsC[S~C3H^ͿthH^3pcxX3fCLRmxE6kjXòxZmo+EN\ˊS/ӹ "W+++n.ԛmRKy}fvx :M|;s^VTdt~0mzv'㉡fE㟗t+EE+,M=eсlDmNNR:W#s6: ϻpпiyLRrŭ,M2Un~զ|,1;f4JRE; sCzDo fKD\sHQ4:{=((WqR8Pb(C(2q2g^X*'3QdT>-4Ta>L% E!bb ޱͪ' Cz7^}N3}\_w7O@ 㩺SU2 tEaf!?sxq[:wЂ.{7 ˫kЇM]>|p\ H܄茕 (5 /i)8R )B{ngƢ'D0tBɈ2mh'bjcyJc?̾")0FLFfBp/14vCNg$=gKjSci>)JâPV O J']{603m*81.*|6qe8L@bϳBgS STkEORa"G:qpE-Ciq)K<[;~<[}j89ƻO]vS?wX:Wfgt^;'3ōUjF?Fr(L\F:]y$nѿ4E=ً?@ջ%J%1(ќmEi=z秭~O.u Qxg.-o(WRW\ 4lxc4 FԴԿjap!r~'5E H LyQDL;"!0BLļvHbk,2lWYW^˞:?t/quk|WãkIˋ:J^MϙWNjdϦH EϟS)1wG߹n&#Jxj<"y8Z:ⴏ D0&)4e?,S%O{ nq0s.:]W˴H1(o8EaSDyBYS1k}fo] k ރy`xbΥ[B.<'Xpڤ!\ 3]5!epTjݶl&1)_yH*[mg6ހ7Ӥ]{1.$/,r[҉[q6YfmM,1#g -VwnF,F72`+^k֘q N0k{u8]ljM 1m, ৣasT{PάfAv`aRr8zĘyPۢg% Rm0xX/{ܹy.-mnBvatIx9H,8K#Z ކ?N"U='xd9#A:oD>~4e}x]~bp{`ĈkTێ -7ׂ_e}R~2ͣz]y8([ Z3eɰ%@_zqNP\`}F!%Y=78Ħ6RYq6hD8Z ƾΪ,޵1{sē˿8)c /.Ԯx2;m?!FA4Vo6N)פpxa+K5n]%M!5ilE%]#0?%W7%B`[<țGm5?~ܳ-&lU+fBkWr!>&2HMLW;:nAM5 [g8$$RCzq'mG過# Cd:^F.P |t,R9%iWR"[gjTR %Gm#+e .XSpW5()1}<2w/w.H/~jq2dG) y'`hcqgajs&UE be%Iª"̚J9hLpjP,UI 1|p80`}=mP!^6flNJB#$qlbBvvĴ[[ȌcXG8uI+ klFٜU}\8uD]/$>Gc#F} k.q;:=m w;.׹Jŏ\Ei~5:[X<[iBxTOA>Pb Dլi$%RJ ?dSm;-#ӝδ`?`bLypmaDMrtl6Pc9Pi5Xb_M&1#贘x"_7ri~!^@Un@ײݽʮMr ZI.҈Emr#̈B0۩0- #`ԣٶ G*k:3`nhU-՛b?qr I,<ĻD|*ԕ'wInތUS"-9"x8HG c < <//& (_ ? vdGxt_ań9,bxt_ad![j.N̼"kBNs&?2,#0AXer9J@57fDd&?ڜ& iYxUn@U)MhnM`cTh(mU8THȲ8{ڪ4?lX Aس~?;NJ9Ιs/ߊ٥ q솅Zҧg{|vuiכ/MëZC`!afa)=˴M4Bֹp}b0&r`Gf%ܦ?&uIB&f{#j<*ҭn2AZk?;2j2L˪zl} ò-kZҴWN("qj<Fɬg7MAF;]wVE=&D?3Ezd9m#؅P%;{jYdߍ:e$5ŢٜFCV*bE ={Q\?Ua\t2BL:so`0Dhsp|"#7Ç~ov4wvqtݳT|'Z":}/ޢ/ =Z7~.\Fgz[UcSӋІv8PA@ Rˣyv8z)R⓶O%bTMq~D5Z˗KAd2 !T}JRؾ.U򳵸a,&$2F82Dg_̚da%}f"\+ޙJb<п=Hbxߊ@Q5^t]Uӂ׊셴BuABM'e2]WE썷;Lnk(?9ߗ/[*x.GA ݁-|y)~(_>{Izڵ~EmVn%)9lw 6a\ [t0@`:\[PfU0S1,7H)d`J  @tW*and+ O(Js5;ƑvAP6.O'BP>v-]YsuA (7k/?~]U!辋8v١@ֳ!{#-eEmVE!;r"󅩶-9,ܑ  g[+VZ4xDL&+.bZEXKZ&rz].zb[dF- {hۇQ:4i7pa 4tJJ]#lj`GoG;֠lG A{ұ/hyT9?KwG'^2+; Z.;N\e0N̶,y>:y;9OVޘZZ{0IiƌƼDi=E@ڋ&:1'L3EgVB7s);:Ӻx @c-T^`Q\}ttWHrӁMxuB)x!WCېGs (jrx! s~ۃe0 1>컹xYoIW N" 0=iqQ{^qCqGu=.[tӥ0Fم$K#N6/ 5M:|~x@4֡UtGo]ݕYCR9"KMj|)T V١bzi1,TF$;!һUfdҾ(I<K^2Ym|S*TV 8)-u D)$hdi靌e*"X"әeIG hftuDRa>54ы⌜错iÜqn(ʭ_ @hBE4d4&&~paQʵt2d"6O.cK78L>@ :L'1.KɠuֽˋM4&L@xMVJ^B%LKs|oI" V͜' )fnR1,o?݊=CE#(lqBHtz:36]B\ոZhW_WTM$(nT>X4eڊ K—uһ%-ߢgx,JA׳R%6Q?Y&3s4o~Ϡ GP+@P23:Y#OUd3`ſ7z~y"]TgPA F#Q *A\ԴI?F[ O$"9 \l,E8Pg8 R1#&<"g]ׁEV_D mX8z8S)S~N[&S(rʬfYhˠAѬnp[a|J2r27݉Εts\<61{#uh{=Y?nkzT38ſTU[i֠k& $ԧ}kBstRmE@\(gCu]nqFf(*> !tإ0T1^-/ sɺf - ܷٓ2_adwHJnsF%.~5>[Zj9w9v/" Z!ɣ/BK`g;Tr0%g1ѡR76wE6C\Qxꦃ,u}UNfa)^)=N͆IzC msjaJ~ƑHcF`E2Q- 3Wր-qy,S$Il0|1" &ICIw|X7 l@|o j>R -iT y@_̔؅OB1#97rGTժmx.N#e,'zfǀDGT"SFȩwKDZߵk [)vSzC-PZ&k,6 XS@pwgs]WX$]uSRMP/ϥ t˵.J`iꫢQŌwU^\_.%+˗O&/y XEZDRSW??̅J|[9wVjz0u="[&Gߤb>QָP3moDF->cc'e2nr^jK.Ҝf \kԨ@.&zݗQԜ޾ݨx&d1(3E;ua'4QG|u^I ¢WyM̒XRzi OpTP|Ttz.b)høƵ'vBZxE2E:WwPŒ](k3؊뒕W&srana>7NZ|A߅;-v}t0< wTMF3.Aj!poATdә۟ڎރVHYH~jJ~uDt~ >PiNQ076Vy+wTԕZآV{cLt l[K:.(MG|^>w WH:):cÍXxwpԳaqNz~:u\ v:nXmhUr4am@+/0AM]${/I͹v=st+v̫.O&QZa&*;ܩvC} 9/b?EnŶǖFV /^/b8 s[ ̦;13T[*@&KN$# b7 ;y[Hn_K\'V.p ?v-\d;T2˼$jպNKZaK#[`)@[զSBPr^q|S%K~0k8! XƁ_ xmUG_K(3%$19{#?-8"Y&'pOne e(A+Y"@jd2s rRsSJK2foNfdR 14&7LVP jgs1+TZ)x:n>(^A~ys2 XԜ4TuPՓpJ&f&h(@0М'S R2Pk~ɟyd&|4~ԼԢr&<@0xm>|4~ԼԢpN'xmmť_PYQᬩ`hii9QWA'(5D4''3(E&"K/JXj_`d`q' ƛoR&Kxe>|C [Nj^zI9g2qi4xuQKo@ ڼOCcSjyH<!2h' ڲשr₄P?r+?đIc%gfv~_rD:^1PYWj95Q~VeŸv[%ח״`F TgJaFqd˟''5 .ܢĨ?We^Qn>{S0kqNjjPa=3.SElP@ G0`Cqp,cQ[~^Sb^r Vї+u{#}4V{g}7vUn_NLJnN}}q^ 4<~a5kXWc9&eѬiKENg~Tyey*[QiisILQ'3DK5͔s6ΩTyc],B=j0t8-v,y-& o¬d 0qB kxTAo9VY5DrJ{?DCadѝhyGFYʄ ̷]PYoim3k˲842>( ~}`8H6|=d 9F;kz|<߃CPtFc.*Cg8#Xj@rew0sJy O&pxd =:d"F'q(݈3D+v &' HVd,7BT+-Wp< L(E.K҅NLqܩnlf/ 9q@=6(ߍcf ܀u<͔ k#rlb8RbܷMspʜaǜF fnؿĹۂumQr,v8KIV=chOVd\TR_oZՄSV4N[n֙--"L}∭m#>9vt.V^3$ Q%t'ElORmj~%8y:G@wWoW7zAǧ|Kw6n.9V5Xt1T~8Ruera{Q)5^W%@|J bCUJzUJh og$wvv^xWoEWDJ Ԋ!e:~$6vR%vI8jF쎓ݰ;vHH\ ʥW*$N?o޵wVxoW׏~וֹwUu\^r }X_lV;tR좪{S?=c5"6M`:m&&r1m6ZpfT (' :u2Z7KR> U56^4z 7PB]fcPNkñM:]bU,MG6v>'; 'v8A2I9rD?8r[Ҏhq׭6MwYdue{be; qOvc1k6kM#6 h{V:!6?~ 1*ɤɵkiS宨ç+?RJ7M[X[#Fi$*MҞ'LW-: b7D3CjgI,3K} l Zf\WxjDAI }2eb/##<p,7^'m}h5wZ.+'yHt"P`4imX,Gb}ҳnuG,9A"*511`omJ]4lؾMU 돫[P& #2u{֠TpBx?*R/NkAf6A%gOUiv!)Y%Tb'k%.OqĆ-- 6y{[c4N~TyauefJʕBP(a4dG&ML&V#龲YD6PCTD,l4;2ƷQ)qH-hG0ie9@i2R8OT (.\6EZid %q^,xԤ̼5"2|3_ ^|I[(iu\t `ۿ %yġ>1hgƑ@iG\D#zݔ q˘2qu8wB (|'4G\Y 0u/W5.(.7esgγ,ˢbq/ iqZ yݻ]J\ ze<܆pFJT̆LT%6/tlI{K*I󘬭:W-\"g1-y2Ԉzv~UT6$IvO>ʚSf?s0{#+-3x4x #LƸKppXWL[@3fn6pa<} 5Իu.+¶7:WTFQ3H yRrbrO"V n. RYXgFD;_rv>9w0|:$h1?jDap5,E7,޺Cd;Q\nl><܆O>>saM⟡vSS_9ڐr쟚0I\*f20+nX1õݹh@_&t_x=o@U"Dn )URJT JBbLu8gd_SU aa@'!~JYX|α6$bʓXvtO[FQ?hg;p{`m#$\鯒)}+E *7AUo-BT#v-XzҖ18i0x =._m{~} sox_ٜ e Y]#+9e#aUǷqz.ycܖ B/RN5-*3QrPLÌ.sYd2sY;ȵH?s*eTSLkQIʸsyN~^8 3x;h0M=0ԊrN2k.NN0/د47)-(7$HA+/ "X$JM.Q(wsp0)*DG|{=26p+Gxu!jf~%ĒĀĜԒT ͂, r#ox}P?K@GKm{EHՇEh*Im#jQDr6 Hrvrp\>Ž~qvK쿡߻ߟ~ P7M8'‰9X&ei=r w˥'Put\Cw#GZ{W;vJ"@)$y~-f Ne֚ꢜĨ\ XQƶPPa3SsCɔ8a~.c%6IC(%щ`(U)[nxYTtw*7^tyj* C W.i3ɄՄKORXģ^<$aLA"F?315DoYO$N-~Elx(jT &%Ĥ2KsJs @UoH@TB$ʈC7kj Ju=uxuP=KAE!,$֊@]LH$ rMXssoW6XH~XI~?? 6|56of޼ϛ\hCwh JG3F(HoP|P.Skj AH33 F)\2Hes<ɩN1Ä&T-5XaՏ?{jٗ^sn%TVk6ZJӢff^{ UAB%hrc5_VZ24*٦I/7 ,Ӆ Xd  y¤a@v,6Q5[`8,f3\EvtZUցWx紏¡lĶr̊>s!`ɠ2,ĠɁlxoy d$ 4~E6nQf\(؜n& oC?a+0E0@ a1 !,&CϨf]8͔Yʅ9j lP"-kN_@ :=6YPr4u؋}JgkR|w6EJ>Y)w宲VIbw24%K=E]&ěAJ(V~z *h%~ A3<cӎ8i/kBZ϶Eit >;&DQB/C[TYvІ:X#Q؅v:6G]v] ([ou[[u{t6N|MQݻDJ(߽n}Uv6}pq,|KY7`jMpVw2lή (mS,TORTlxkjPVPPp MNMIUhXZWUX`qȂdqpI,IR/S0200ܸ,obqcYsbnRQfJ:``dhl5y}}kHk;PmpIbr6STHI-)IEQ M5z'/x7OW.Ntz(\C]Z0ԗd */L- բt%&堺,81%ڕ?>~'ť~B ½xM 0F)t ,]ƂHdxwc+҂b w CXBbKd 98RXf˨:ޡ.z]F"h-/hy*'!'3&WS)q$[6:ף{^,,SFo(iDr۩NH{_!{x<Yh x< xy' tB`xeVc' #cp6"Μ A$4u[rnMJߩ&s}$iS`nĉMAmqJh;7ڽ(,};fݳg8ŒéІ ৭{S"˲-НIfT !"vDI:xۗBȈ]%=#pٮ5= X x5ʮ݉}LvJ'.X4+N&h&ڞ%Tfi9+py1'ҝ n L. / MnDʦhUBb>:TբG$_R W.i!hl䧦駦UCq1,̠tj1*R"eq5+F]#OM˹3ǥ=={wܺU5L0z!mɞUed gTi4,>pX#$g0[$z+:oh'hX_8E +*ʂVXS_3ǘ{6D_.N{>/Rr%Dp@F.PgZhAZТbZPUB{}Nˋ)Zz+1dc#qE+ jٕ?օ3jt1X*G,ʞOYHZr_02pS-d?'Tle96PzВE6X.:)6ɵLPv]M亶Үs LfnrLu5oxxLg'Q˓MH3>&-xfPa Zm_l+n(ٵ3|x Bv{ZP/n< ׂJSOnj-8P]nW +x!_Dn3=BB>2fȯgfWIA:Q頗; ݏ9B167 [\o#EbtRnk؋1u˧ rx=cMeycq6֕4| Pt bDLAG7 ^(IL0IxwRډl񞿅'WH7l$K9I"PHvR!9 Xu.5[tQrw"d/ jPt[gV<(eg@.;駭%1zF%tB.^%oczSwr!!3^\(o?TAxImHu\:խ(4̥) =(c~㾉bP=Gtkn]TMy1~;ESD|F@nfB탢4$'89O4>.(iqda"ݹl̝K:Nmw.OFp[vr%a}W6gcziF So#yg[oeۊmE^RjPy^6nj ^.jm#L_vp(OLS;j>»=Em},y}-<fVl& T T;SPR,UOb3o}mS;18{(JuɃřVH F'$7[p1+a9oC&W[v'&˨}LF7MJ{Ѹ{ ]ũ Z(2j0)V^*!̣}ys$mԡ+{9}C͎fs|7)&g<cZ.xl.q@pKтΧC koœ  `3nf uPA4zmu#2x1{L;s; ZP~ho'sP4f ]D b rz&!e,9A(>2hA΢O YQI;M|lYA{;c,8١=C#|6̵xT"+9H@P$WExH$ﰗ ЫTʀ cT1SN?h[[K.xhE[0|'+x^SAY\ 4o`$Nviigt }`;zq<PHvvWm`:{`N<%)<woIGC lulpIfʂZCǟgaцteX!B⒒Eܼn*XD-hBɿP\f+S Vg+!>"Fy/e2EF798U9a_6\0qӦ\,?c m:uf'3dTgԃڿe};z-g-A5ֿ#aw^}>bx}X-ڛW-)iKQ{؜d0%d`|fV'X\DyQ~bEV֌sRPa+(4vXx^w*C,`5l^vY )L\{މK1W_ޚdzmlM{|WhnG`E*G~aزUD?dM.#ѵK$/pZr6?9hB=*$nSBZ:QLL̻Uy'mk=5luP=Tj%wu0z,/2ZE1|T~1LvIw֞O x ?Xw2dO2 1KdX6]+U;tp Luk/͌&ȗLR,N= _>S?Alr:rZec_ L=<]%Dluı,F0Mx /pw(Ι. QL37wjF(gꃎU@/nkuiU5L^VX3xĐa5U˽eEUtHb,9qHHh@WM۸LرMQ&YXeU]r9\{qM DZګԜB=-\jW' jY]XԷ^#h]#w.͙ UmH:uuq N:5{|tC^K/;VQep3g;{s ZXKy8zgnpeȺĀGZ;+Nkc5xXŵ0 Mv ;с5,yۍ4xbPmi=_@M<HMlm(h)O;F(} ǺwMdTsǺpG73|2 >ލgZ?d\Ǻ wsqVD[u=!hnr2XsxqVAM-qakq4cu#[x[xm.p̱AO*6^Imn 0'P2' Q3#i&<.n } 5v\NxTiOfxQ|p7<(=MQI&ϓE.XAS_6wq;3z+4}qw#R B@y 8C> _Le0@Y%m.aceFn6INC%ʱO :N]Ka]5bsսK^q=Dm @ SA@/sO!5C' |DhT@Q':(KW~E OFǺoYlAyU rYxTN[Gsl >I @0HcTEcQح(IUTU+E]Wko+7*=?آUmy73|G$Í22>Sov| 5P騅Gp^kBH^4Rm:O£/@"=oܣ?O mu:X"_~Gi#)8jvk.Nr-K~3vɎl e[bT<\fmFjݲưd#1i0m4FⴓE`GluZ$͸H٣YoĈ(u"9ǙȏYe>\Q_>2LaAl#Ȇnw\&7"䚲+4/YMYD JTNT&2B,@XpP`Lc6v<Pi2dӦÎW&,Φg_0pd: ^UlN#&GWYxpf6,؝Qޣk;ə~f4;_k^z6?k$U$=;V^, hpc f)/Mk8Iif%J}[zr, &=c>\L(`Ii(7}X6e:2DCؑV@?Ӌ\*y ȔKAIV2^8acpl7$hBp O<ےPJVX1Jl:0  T8XM lu³'|["pY ."}>]j24b_6"['y87n1D qVC#s!mxVyP[@ t  @ܗX8Iml7i7;i1q6m';tj7'3iLfbOLsii2miLfZc(>iwcz;R<xƞgFOE&1QfeƙL0*ΖYfv U%g %whq6dEc׎;$ОimsdeQ70e:cWF&/M+s71}Qe18n='NMOikfl͌*'Ii \^fttl SIY0#1|xT1Ӹ@ȅbKBFMamn7g@d&6snEK*Fk-[D"Y{kWIr &\,gŸE-VՑܗ"6 T95P0)Gz^2>E#ɉ3q]2f0 ,_o*g C2R3D l% &M Rol|F: l~ńJ;> n?{Ax9;y%5:\)a+dktGV}Tp.n] nx[7aM>qr H_>~HVSTa'D|3cbW7@З~xWoq3Q1cjL) :|FO̷`Բ!]G4Qp 7G*|4\7j cTԋq3l8x. |/[#sx8Υw?l6 t;wp/Yt>o- 9ʽɄJ8|&\ nnZhIO8}' ͸E)v=OZVbx*U;q1-@/8N ?uI`j,PR_B(-T.Z*3KQLN\_[5|R-Rfu@SE8\o)/9|E0Íd`m`baOBЁ݂_~YvŕqZێ#c\– 'B ~[݈d@{ut f\ .P WVuX Z2َo;vzN S ? qA;4x+ 9|Zml()/8a_%^l42xK'VD][Qn*>Dy'T4iw >hjv51!DG@s1$xyYdIo?l6YZz<JK3D` { dkpqux SP9ѱW;ęO;w&gVގUWM2_נhH8V1 DԤaqyr8EAj(un,½BPwKɷ5BVKE«uYpv!iW:7eih(vw' ]BaqSKXW/]MV nWn#p*'G~ixΕ[bi '{#E-%[JPuƯx>uBDtJt#͕vIG@wCJ$y%JyvTڤ)8XY$Ii¬}<(ߣB_U[\xʡ#yr_ц4;4:J$/Ry/דWQl WQklSu!aLCހC3mrV#B7'Z %T[ U9DŷhYO™t;9i|fr]If(_LAb [t]lϿOmOC=|H)ɭkœGjʏ2|#/D>?0N)̸]ZLNñ|bCE>D {R~KPF7yQs9G빑 oj])~ R#_OY#et 9$s(>!ͭpg$}"EGOqR!=IBz0' -q:]\(d2@_LCn^)~< es>/OeOOJbמ~1[ IԾi/L{\ mUI|m8])MmΤ|%Kpcg{AُA)e_1(쥧bkW[Vv_LXҞoAgT- @=׀F7EՍGS Wkb3+ׂtS+1Yv|gp f#<` :^a0SvH!}Nw#GE?GDzBZ3/oztmoZǼpP . /.,' ^'.D]!}b7 =L@(}2Q4j xV[o6~~Yv9KMűSXN -RWZH*7J򥱇b3r1s?w3f9J/1m!Mw@k#֠ o}{##:u+fts;0Γn.ӦwrgB5 eK; Mbɤ&zyEnC+eB*_0@p=Z' *^$bu}X\Zgth6\k{02N%o@p'rard20.ڱ0vHX $xbGmP0-(r15(,Fh49'S&&J\@iEZyÚqa4fO}^x),\n=7 x F)Ng}8$vb KS&b7?ak-8dE`!_08 b)q)/| BRd vXAj,@~'6F2u֦7:̇y(D\qNY"nJnta&gApM?Tbb<7HsIhE1, gmSa8;+Mׇk %o#`1г=hYR烺P`S.E.R:枟8N2`UQ\TZ}ELVi(}4=xZɜUmYx JUT*F26p TD4㑜Syhqί:f4i'U*(׋ 9|RS_c˶'Rs'XJz0[t/-JfOw+0CBxau9VGT8" ZI{U>W['Ei7ͯp8a*4w[F{ nëvE,q8Q%9]K jkVtAbϵ93Y h1 Ds? ëdEQ$5ށ#S~w2˄GҰV.a%dvHF  ܜiτVBuF |{j09vqr϶!NIVڟEQ^bO$0; mܻ=ke ?cl08#(`jUyl@5|T2ߌ*Q .jU1u6qn敟9\0J_LjnFj5η[BU/]xu#O%ə Ax'[_K=(7,3|"wW~F m.-ZXX_ZWZ?-/%5M'%~FQ .ehf^*S|Ĭ<\@cRSb>V Ny%E\\ ~!%n9)Z)%%\\y)\\@23 Cx'*A=7(b;vKxUj0 SA vlή%fvdll+})Kj T9 T/7н:Mcq O8epU5`,)1=j elHj6pWuY[LMTbѰUҟ]4{%55U9jqq>W|PsmD*ɔ֣{&dc=AN&T2$ɈչK]^~l_x[̸qBʇ_{lihJlf  c]x[̸qB[b?=b[>uƔ$} px[̸qBH>ۚQBY>缬r <x[̸qBai뒶9Uo2^r; Bx[̸qBY/{(?E; kx[̸qBH*r~/gG Ix4i'%>_Y.x ku6[x4i'HTl7)N$ | x\msF,9vI֋WrR|) (E @R}ݪS%{pc8.fqVYUiMjfFei!2VǦƦ_l"L+}ciǦiFQYלe];pQMbϛ"Ńk>QTF37?L}M|w^㨊|# [Ȳq<**]]U<ˠyOhqc\Z_|aQfxU.*LQ2~ ) XG&N0wqQ?`َ*b^|NzL~$ LyM'ijnc("r5ļ?9l^^~~-wJf4^!EUޞ\S_]]ӳIoN/.͡ywxyuvt}~xi]_@xcaoWQ~?%KGf`0N\deGpD T(f*I/L26Y^u}@b KӖNt͟c +#`&jjN/d ΃ƴ?bէ' E\-|hUlV%YH14bW8ω,;@sJC 8fP.@|ywcyi4%SS-FDiot>imnk8 8b h\OvbdG4*ߑMʉO2"^c_aU**D%Tn_Â[^rۃTʳ. ΆI\ >[$~{}Cܘ/MI^»}u k99ovww(J8-ax3RU*t:Ȟ8Xfs?:3dА !C߈kZEu ' AVZ{Z j[uBa!ŋxŇik׽s |Qs8Aq0N$}i / @ߜLNDiYNLbe>ُ : /.;6WF#X3x1<Xtjm z{G枌ETJ۵jn TEO7 *`/mH@CyISZv$6K&pg#V51fM$ٺQ-lRA4 4|e("eFf` 1]Uڧ8ydM#|f %b/_iFSÐAAWE1!l_Binj04NL|>! noIL* h"ܤ 7uE C4%IB`Oax$-N%HO3,Q$po enFd|!4Ӈq=y("*]l}P&,}0H$-+X®h(J0kp.Oz*Jdj`P/]kw}F.>ֺ3%+eЩ|fHb (k& ٔggh )%Ǿ OJ{bB*p▘ C6@"ds;^5SO ^7P)7/h"9 /:Ȳ0Z<llG|O^l\qʷޅ}pknk(wA0c~sT`Y0O'IGeۊ-XZ(v_GA6sz+ vn$ml4,`{R jKvBXǫln`7#&ŌZ"@ 2<,b&8k.J-S V M 8\l##]tUt9^5.np2q\^Kjz$]8* B(Tޡӎ6z15%X3H[|(R|?57(K5G#+TX39ReZw㥔8^jr [!l}vTݩҲAaf!8Ŕԯ׼QT6ӑ]CH9Ï$_Hi#^H6=YUL!D}!O)Kܡ <XYRkXs.(xň@1D*ѹ-Yau5+n0<(IrTZ%/Gu&R +g.2Myl*+zNhȌ|@ʻ5- _lrl:rI˕7fT \& kpP7B!*E״r׃V㜶^ᠦw$:nG[VcWsp,ʍtU MBpA{ -MeCC='g!1>h35†5JI]-JРZk Wfupi(I չK #GlBJS 텠;Z7eu  H>;0ke=&\P^+rYAVǁR2 -֦%#fDz+M29S{ !]}fX%=dR14. p1nJ?nϱ5wwL±Keg]}o^V DξD2,Ҩ }-^֛ $}vm%. )"_1 >օJ\`d[ꄦv51ΰ0$X>Q\6WAIe;J)譟iXdGoʔ#}DٍK)v=Ttg-]sf䈢m)D&42&ÌX!-ŏ6WٳJz[٧zng_* .~Sxwi9?$ђ|aK~@$n4gC:Qf|O cL(\D>n`BwQ5uɯ^Q:z) p=gΖ=Jh1 u Gm7[k('TqJAt:~1&PPu$iB_(dӥE^_!^^vX RjҳF!,PqZE+H(6->Ob"ƿ$'Ƣ9z9 %bH SWЉYi'J5. D6 2 ==JĤmgCaRI!~"p).YqJZMp{Ef8"uDU^b7k LqP"hwy.δFªMOlw;i]oPDlvF(uAN uԛ `0S)d`]yʥ& (oVư6!4Ũ~,dr x¥Enpe`$<ņR8xrom6gY,)+ ,YIk-;QiFS Ur;U6Z+Gt GM:cJ-2 n>[;ԍ.dߘ"\؃3_ph{_4~}\-:B=hE(x˜\/瞻7J#yY b84wo!5_CmvhͬARi욐%ӣ$G* UXq'Ͷh V2. @L. _C'A(I)RSͲK#uHe!9'̞}hf˜%/!<2GaYt4p㭊Gip7q"kv[EI_/33=Qչ<":z}),>2(?h@N ݥ8L۫#qF*/[`vQD&x~/ ,K/HOȂP{wo(3e 5OVu ^ (sJ%BͺƭN*kfԉzd():OUv ztUxo_-5fi@/lIBAmE--ꐇ8 !8K5W$k\ቭ sn>X}lb(eM=KrX;\f}}B,#&w([f͐f3:XO;'F1B(P\=GHNDIveu٤ק+h"+؇n T' ~gp{lu¿ Pn[X1)BNMYhxA N,p`qTdm "<14+7y83cWFeBǮ9CO-JH#yf] U@k>:Bp_soxmd/hCӺ%VS *uL_O#Fa,_##a), x2q r,}YV0nƪʸY0=yn3M^-'Y[ǥZ`Z_ LeDz($$jB)Tsqf(**D'e)Z4b y9\`e`RjK'a0yXBi^bIIbrFj L&IRtBIFjQB"U-QHI/J+A]t"…PpNd/մy՘j'[ JN`dT`HL`|Uɾ@zs,doLnVdӋS\(.l퓟d_X Ģz;P@PɷDBFJO^ ʆd, ɭصrM>##7LFt"&ɻO~-$vpM м;#Xrf7%su*f<<[5}rz&6SK4( @L\n¸x0D7bd0fQͧ ONr{|urv7tg7#xRKAՠOEdEŲyXgGXgbE.Aso(3u7QYf}{yϽh)G(r5mu0?nGׯ`j;X)Piк0F0P0fayHMN$.G.D5fh| T1ֺH@vxG$U*alj:SQ*|RʄW&~*&m%/JiYڹkaWe3^9toB,\3 AEBd?EiUgTp檃{me 2qa[Yضt~SLUy/-Y<[vx[is6 wڵZNMjJnx2ILhR%);y^DJJ]Mb$^}:~GoboeMtOF؟SwR_~6~R]Za4MXhNԏ¶;LQ|:ֳ(~V:Ai>~Qt0!3/v*o~~^h^oT/HY=pܔ'#- U'~h\p҉bM3ԱJZ:~H^P^KD+tN258$#}<գHS*jԞXE JrUaeSٜ(?,L>AFZ-=]mbLԛͷUo# T?jX>xY^>~B[L.{7oχCu1V]uս^v`x~8`&XD$o55T<#vD g'HK:RTQVO%(/*V_yCS#`\t.($JR:]O{R䩳w?ˉV_p;σ7!;?/>*<˟Fu!`ӑpP^,ǂp$:jBK'ӑ NA(X`F""x85уwjLV?Zg=FWv.lYT yxJBFh'G;:8$U akF2B}('qC> nzEqw_>=mdzEs/LR/7pk{=Ned4z/0a{w@bLEZ5} t(Ej2]G^p6A0Ĺ]  MRExq_q^d1"6E@zB?(eG`p m5Ldb:gVrFK*&X`KA^^ n{"Z: /*_;לMK[ ?,8g&Q)fQ+ ߔb$ lCQΠH<*sIb6({@,򲦘,Q*-ƔtHݫ?yԝ'g>rQj6v^!zj(.LP >bp4}T w;%Q%Nmsq"ᓔ|*i/=JO~:ToχGIx$J c6.# 0uʽf85)Ye_Nj_e0+eKZ"#t}xkd RfJT|HS^=jYH3#u0/[_:),HM FςhUb&(DKQɘÏ%CT%^@;}]Ҵ$Te##L3 ŕNtgR':Os&_jc*Hh債h4H΋Ԯ b0YTjvs_hP'=i&ւ35ӍFAa5,] c,r)90 T =:Z6\KJPsrMJPL[o6{`l5<=ȬqKx\ *OBM ld@jRWΖ\2 *[vd!A(YS>B" ^2׈1{;q ?GX⒰Yb1 y>f"Y0:.K1rqJ}Ի `U6ii``Xx\Wo릗29¬5.҇"?I9r數7g$A+,BPl!І #h $y"9q{jHsS~~g0(j_ʠBH&4}֥A13h BC9貖2;1f^zc62֐9X_Vn"%6YOo풉y n@ $Ȭt{6B|`oa3PAcoÚ7 bP@Y)FZw[/F}SB.w2ˤqdgR;E7}6Y:V5n^C^{ጧpTפc3=gW!GQx8)3?pws Jsh؏R)| 8.rn{a Tz}ǻ!ȍ.̑@hkR)0؆p60 m-2{5cv'<ޞ l|(nA@:eNʹ"FxeONI%ƲZ:6/V6dM="mnJ]T`,G\YŢ"7Їx]O6qQ[|Z)`^ezIIѦm(bi ? ^oc9G6d5Mc_͛ͮMDR+;o%lk˶ 8[1_rKP%H )$Z\B"ɷEg&nf# } m'M{Z9Ȣw9cgBF)m%{d7OXf^$\ī>x5NKBr] r(r׶筅N|r 28 |:{J6[|Xچ:4}]yw( q+KMuqCz߱N{IwDKd=LDxG,#;Ye/OP3f,{p/UydV~-6޼$̜br`L,5y &iU].1(" L~U\RZ\739YXis6䷆J`lT5ܬi( T[[T'LvZ/,Ƭ2 s 9s4.22KR RF@BC1nAPppt(A[6=本g#.<#xRAOAN5vm)m:-liAXDh< vw K26h&h'p#F/&1L a{|FWόd"9VOԬ7{XyB\pj횢jEE7$m-2MBܝ5Juk% h,Xn).pzv8JDU-MFy~{ we#Ii"Eym[#mRq1N{U*e`kuՌષ'w~| ߱Y ,^ǁWp5Baˉe&fKX,ZR\<.UVt˥4<h$#톷+~d!<{.=3b3S,6H@^q7SF9f"m ;`U˄"EIY#OnyDjU*6mo:ZuU5n~9渻cy7O mIv3ô D(_6$"eEt:H xY}NB TaML~vv_3ƊJxPd:䝖8YKsSJ6OaN70BgI. Ha Z($Y ynE'l>m~H L iEIY%V )%y%y MT'/Д,`*9ynI X&_+?0b}ɛ3x: *ln4ꢫLPmn kOx}VKlEVGNi8qN&uէ@G딺iSmqf']Dijĉ e$@HT!NT  q@Rޙ7KoEO.OtTְ jIGw%S%09|[> i-kkP Rr8t{JW- [l˷C(J٦f,PXGM47)V]ޜJS)uN3-"Hɀb(O.gg`o~T .\t͓)XY;@^Ʀ,A.JLe${#Yv-rr~>f]"k u'FZN!KDյK꒎Q}VH:K [ l"a9h9<_Ŷ,v0 R Cf62G3 kȰoDu]C6U0gR1䤟SmUr8JL;&4>ʖTe"@vE[Ǧ$ }:t݁j "X7MuvݭMLg |CMV3"g&.۰Xy9]tZ481&$K V3E1Jݕ'XF\sAڻd3e X2ҿJ*>(/> #}PXa2$QkE\U᰺$/17u?5-dЬUp\gC6,ೋʡnZbW9U9ϡ!|"{lɪD-4_=240q%jOq7JW؉ ]Q'PN %yb$]'SAlRfTd5ƹr,Fag"H H6ZFk lf`.0k㉺J=%}o;De<%2j%󂖠Z `bWtn/ЇB.QIc]V^k-iJPh|RxORu$ ifI\7;hSMACM WϲwJ]Sġ.)}幖djnҹ^nOTK};TW1c.3R9'ʁb@,jN~GxQ^,PF{}}̼td[bļ"\g[~RVjrBtBIbQzjdF}''m~49_Zj,W>eܫ&4w 6ޥ,2NxURkps3Vs]uZ'h`9[7uCC~g߯4CT] (`M𠰣74KcyٽK7 %->Pu~JTs7f$k!p/|Z#V5F-U,u> Ȑ&e0;wv fuMµgf7 JW 4/-ᬵ+A`2U&yrièw]A\@+p:9+ p7@,Dz&8ZqŹ5bYɊGߐ$͂fkyG~} 9ULw#_&[X`w䩌 )`27/N)J+[qвksܵiIw7]/u9-s9q)RQp4)'dž$?*Όe$;Q,N}<|H($IEVRVĚ!S¶No;΍٧Ƈ͊ۥSu"{d-ީ&xwC60d[Gxc9|%<& Lю9 yɥ%IY`1[`[Q~npIQf^P ?)+5DIz|vX Ul(">9ɷ'0M6-'T *: tdAv0Pzs R"OU|NAerh63''d1bEOL^#*4 (5j( rdqI!Lhd[(y%''Jٵ\J)OEgx[uC m\'' ocOT<#=2nS x;tiHh^\.="ks-o `Bx;tiH| +|3gwz lx;tir_.ӱk =; 5x8:37&Н԰ x[[o6~0+8K57Die`$"EMDI'6/ x>Νwdnh] ^P9{?no+&x ctcwD(\ѯ#- Q_g#`|A%=ߛZ~NWCa F5]3 ˛ssZbSYNnђcY;V%%z@vng64*ZrIz1"ooD\G.UIJQ*rӔص /(>?!`ngBȷ℮p`Wsƽ D$Ə1GU[4&p [Qȵy|nzJmWUrb`2S JJJv)vTX*z-yC~"zR[% .V:kO.@I 7ⱶ4PUJ5b pXLjCt?O2QQ ъw!ytzM8{)Q1 aL) }Q%_ Y{,`Xsfx^_[׼o<0$O,PQrÑz#-"d[Bld#C$~$i!/TvV]FtrgŐ<ŕ1\Sߗ5jdmw/e-?;w<3LdԔs̴;?%9vcGڐ %JxqoRCj Q]p]mjUT'ugNqA@g} p[]ߺ !(71xѬ14P[V1栛:=T fq1Sk`p%-"r c0xb`ZG'UAjG^uR0>Ժy±FNOsX*y|;=>PEK$6CsqfvO{@g ,ׇq}Z#rW>FuDyzw/fkIz Brm3)ȶTs3ЖM cA/p%4Xqn D/WѼ#'3␹JVlR~\ȊeVUB-.uuzckMUV KIG]!5"Z^Z@S c k#4ZH *K^ukrgY~w#Rr𾆐hF 7iZ -Ҥ/uf ,;>~vY1ǰMcg듦l wyyL7|nc&a"WS4BRgK3 |[l lnguy^^iH{=wӗ?~&)iJ?zvl!iɞȉZq}dµ\mSqhhx2_Nans4siE;u_%}xxZJ׫ws4Iizlim@a7XNĻо09x71xk!DKRKlkj Wxk|Vqs7|.%٩E Փ/Kr)A5 H,p+)ρBU^ZVqUmpyfIrRK@֓L 0 sxJQ"Q,R3 1)!EP*ݦ46&h U֭ ||{ɐϫ'uS\_N'fuֽe(LV2TTc^7\ҚUx]SKO0W̭UU7TTTZ&d[?˯7  l{.OjIΦL'1< ¹D((w4)Ib0ySKD_J;՗0*NdO{+ޢ N7m=c-)|ԷotK _dxСSm?Zxe_K0).LEз=RJ?]M2t:d[teΧܜwI N:he@M?lqKfp7ox;p@t5V O3g3Ӧ&;Xja߃;j/>1ҿYCm8#CPRK5(5f}QDB/k+쑳(2|DAZ%n$:{DYn^üt5狇vlr~TLKO{9K|bY+I7_'kľtmx̼yC1#F{*x̼y(#dqFcP'_O?0נ`O?[%N Kx̼y F7m-'3<,2Ax]ms6_/3Sɢ,:ݩ8xEw$R!=W e[@n8q*UdG?xrLz8zi|rz>) ƃvғ]|}ru/:>~zȯ%NދKMҏ'?Ń\7t>X p/s|(˳/xh~A_.=-v}IY ?]E8f[ K/~MbNC;\wI(c>'qhZzlRU t%(w4f_^?y8W7ٟdc{rHQ^/G9NyǡN&Γ}%d~>/Ty:.3Ct6@2 K-KJlK͔:엚Cr/[~~--K:痚);ȺY;뗺3E4|~~~I[~r_{~9$wZ嗚9;Aԭ_:%l藨Xh3/=fVxۢ<}=1As{n&.PN:M$H2]5g5i>q VZיs yHMw&Nx\=;<4b߁{?B_g|ߗ}wZ{ aXN!"ePπ4+ 6 T+DK7- Y@W O mͼ +jv\bԤ:&y\S% q~VgCw OyYs?Wd?B,U!)k\I\ewϵirk>%fN$s6rϵ!rk>%fN$osj习/!EAbTkP|Z~=.Q1OĄ~AxqMFG4YIvl Sm0/A:BkdcD.>ɧOYLb^_}ؠ?}0(@ &߬Tg7ol+d^2JPYg8 b*v#iE*H&. Mi@mF UyQtHUyIwEUУKf4HHm͡fS9m({@gMfGBHC7U2osm`=6DjdZ@9%ym{$9Erm`2{J us-Zw&%bW~˩ eN~˩ z$Ds!)~HC isu{9Er!W^<_)j9yC@=uyIA/P8=c [%^8o /h9| yJfRm:>4>=؄qhnǍ~Y?0 jn;~O%Ys>\MwwՃcbW j#6. ǍSqs y36@o!؈|&{K5n<'ؓݸמwfe-M졪gͦ{[ɵn솸c!bsWcqcZ45#=|÷a~P|bOoG 3R2ޣIG _ P1 >Jp>_ +F|"x>H|8$> <nԋ Gux>_Q|[ӚD|bP>_1'ķt' ߊq5޾7ߞ5޾7|[N0IG#:]8o(> ✧K Cv+S~尷x" 1υF xH/')SB#\h  Ky͒#_jڠ)T P%{5T/J{[)xt*T'$UOGaMSÉBBߠ)5he p ZCT֦`AOI:B5hS(Z^V@BHA7Rk-*`5t'<$ՠUUhMx Zu"U&>ӥ$M ]޶iC͛{[ =3 UU 8M!zGeUAe pQw4{Q\QjLTk2V(Z O֦*X,*WEˢJ;*SOG@h~:zGSNSXؼa&ę{Q;Y4˸^W1ޣS{ZkqǐV^YGKg@܀?D9 U\\Hzt6ݸ0Y/^{Y1^YOg@?w\܉ ԟ;qs7.LVą:#/Rn?ZϏ}՟##v"Af~Dl6 ;e-hrցk7pa̪*<ÏR%bnٚ[X]]T݃,Q3u4Z5Duf"j:*moyM߆]O+2i(tK%\3 ҧ"GKiAՀG oLY]Lj'$s=! \OHzjqe-.]iFӭcuDӪð{@f2@+-=mV^VY PZJ[[UkL#;q`oz5\ۏwP},g/0y۵h܀_D* W"\~/0.^j+t\~_D ^~5RõޯqapJ1^JOg8=_AGV N:ڏw{kI*ڍ--^hrEŋ7 ߀~ ~[ugm7$ߐ~C ~[ugmY"Y\u-0o.M91⼿B߸?>~_H֑8`+/8,yE+}N绰 2d$M7kS%C’RUY?}TM,듫{g;o>]g-?B7U$՜?\C2݌ެyoʳuEx0(o_$-T}\P3.8iOn$[|7qUJ!ς4*8Mѽx`G{]]CCTmp=?\mFz:zSIӦˮî-t=zj:z:zֻ` eӕѮ:Tp멣'ib|뙒ealp8(8-+S_PcqD!wϖȃ|Y)MNKqʠA:V`|,V1GU 7VPE;U FK?*>*ڬ=aX$` Z)3" EnM" Ğ݂jV$p|.G G3m]bZ]ߋjq{8ir='9Vk,$jY|K4D,b $H"92ŝqYsw;Z=nwAGS :Zk;ZcR>;,g(F؎FFGs"3;#;YR7tw, ԟ1 "/7݊=r#o'պt}ϯw&|z8riuW5P꨿z5!rzl4Kz$-);>4Z*?؇}QcI@p?ȭrVP _T| v|S[!]!w{$uY.߰3oPif` ,r~o7nK>46'F ňu)F`Sb7'n1x3L|L]T]L|k< [ϴeP1MَklӿQR<θKY?NyutǗ/Q(>5m_]|xe?YbZŽlpҏk`kkM ~4C\sz/(r5{؁f;}K?2_ 2ۘ pDmV%`|,V3;ϢJlK^DJfv>s˕Ai'{mdoޝоw&}~VkkϠ%s}}9AGMN}y7^\Ki2%$o#W%~|iBu S=>\=O4|\YB9Q!/:?yӖ"]ooL! %Wz:.+96~'rkඑ(4 Os)uŊޟC 9@Sյ\)Yߊ<{ýǫ1~Jr_.#B ~Vh('xFНO#Ng;̪5yZVȕj &439 OH(5GA,2;ߋQjN=ey.ʕbHn͘|aIec\MΏ]alŐD)EVic߫NqpX"хMxx@~X c(A lvgś|vl]@ z)xZm8G.P>w8R>Bp9={۰޵EљRVjCqI*Q5rD Vퟦ폦Q>H~OI3ww6X~̌b OvJ,-I q FEm¿],`>w/II&rx~MO9wמCm{^ݣ!~CxQS2ZN93k[o{ZGؿckѳ=v|// aO_}2#%xKr~5'kg mq8D!W ]96NS}YMG\F.h\0İ FX3Xa-bU 媡ƙ[ED7u>jIx m ~W2cC)i91%'fNo)kgr^{;Sc;29'TuF@Hogol nd(2s ܸ=vs+lf blj .A!nE6yC<^:޿)F쭾tǜuavk)sǠJph׮-Ztcπ7Ma5qS;ƇNi+:s`/o^W՟ξ 3mj%`0!5kDZ:6HyBU'z: O?pNfEpM;p'~he)Ȉt:~ƭЦIrL4)45EUt>D˖ܕTRr1-T xW&k²JhcpncVgY݇($S*s3sY5>g~~;#o'YXѨ] %MSp(#dm HgC\ C'#Ժ>)3]d5P_#Ā/nA]\7]+Y#SmQǥ8!PRd Scʕ]`Aq0Ƥ&0c0 @2/1q .*Eڻ=.pT)?άAĶ̛$b9KgO&a K c'{ `,d> $ۀG'@,h~Qּ6%Ԑ[6fq#Ŗ3F%W 륣ӊPz\$'^r,{1/F-#su@ռl4nHS)UDm')d-{~ OB\37tau@R >TMQsRQQm<3k &MУH\J[#Ws+BG sp@P>) {[k[|_5Y] ~S[ <'Rc YU#' A>NE9EDžVpOph +:J0 18qCq(>H#ωZA:J-8F .%υC.MCu#~gvh[+EzZg Jx'`%^|B+Fȯ߉;˵vr`nCw~"qNS5zZuf ۚH6Wz$!Gly3=wɊ4ҧf` EP sX%RIA!_P*٠]"YOSQ(Q"Srt<*.;k%(eRz͗& mp"J[^sX`#LueȄC TPF4Iye$茈xNH|~YKSibjOD|MJjHOגgJL!w؂<s8I\m~4sN%6A}Tt.҉ݗPQ3pKd(ȊftnVhEk.4$2}52w? q0szt]Md4xuRn1+^+$N${*j=p:ۍgV% Bk U *Ue{oUK*PsI g]x1c))bT/Ž%vp(R| 0x1c)HjIe ̕&{2I :x 5ֲZ42'In4jx1c)ȥTEY Dk|/ x1c)Cwk.2}]"sdOɓ x1c)H_i"Ouտ;2mJ`՘|F Bx1c)}?"'_ mxi3ٓ, ex1c)eJelϓ/`|b .x 5fE5|0IؚΓIWRxƱc(gd&1|7W<^.껯.AkFi xk.|Vڬ"m 'b7+x/^H['>_ˑ'Rx ޼rRbO3{'T5sxR2ҺSz' .xM-RԾG; b' 'x )100644 DataPalette.hN~C65A,q}oqP*W0 4)*ϵ:juw)kL0SЭ㭔c&8' ዓ'r \5x{kȽ _g2do]V缞N6xY{SH}>o΢ p[b(dJ\4H_Hd8G%0ϙ}phX"/g" }đaXBwyf˗G9K{r$@2W-v[Rx!%KBĂ$Ё7zsC9-;"=g1Pܩ xC> XĈIo껝>B-MzE^xpQr,A6] ͛".D6 š;Mb!;[C]~DyCu2\.]KӛhJۄ.pp$]C@d1qXCuetЀ$B,QbCY'zowsuq2n-~w\As YB|qs Iz7²u=݌g.'8lLn1s(nmy,-{11>aRNd"n}Š-ol,Y#Fߝ!~"l4s^k^px=\ۋw)w7>T[]31o/E>~{6h1B|fD!2Pwp_~ǼmXZ 70ktD"qo:&.oǎ6>VoKtj eqJv*&aoxE!(Yѻ -gã' O<;bs:UZ<[aG@Ľ޾i=mh]9L:$`$Z] y_||r>E.̗{2o~c'R՜T3&n]"&k@nO2:hI]I읠MM݆3tS[F_1r4L{ߜw]4xd}r2kCEH|5Hv})msOĨ⎌7&r)evF˃?Gt3D3<jiQ@} jxdBJU3jB%8<,I`;v[jz3p\sa'&P{ (~()ًIIBZW m[-?&RZX?/7 !m͟Ħ73kxF8+PKѲwėE INs#'&Ճ#3GQĤ1>e^N|RH_ՓR֛&sU! -o`u5/]'-hN/N_U2O!Uf1x;P҉6'd" yCuMf+{|*ݠ@*ܹTRf:카!Wr2el E,ۣcKY^Uy^GVu^K;+Xfff%pp?^m=D֥5 -iDdoQﻄ_yr_9v5sдgS:+}ƖOVWjK$tQRd&ua2)7e]1[nl/y楞]hfU6\uU`S>mY? 7Hw>wQpE=ӑ N6,SF8Nd;_a4ԟ7ʔ2G Hr;Nn`3Z$bc%;'mFk` h3:d[ث@-[ucoB~ø}+WEoOCb5P( tgkv2SQ{d+JEyPm3eB(vϠlW!W*(N]>WK:kxNn-d}kAaϫ˃Iv)*?ڮa>D{eJ2y+OS tol8ڪq}+.ZTr49 #Q- Fb}BjL@Ҹrf+J gtD&yg+} (k9g9eWJ[%ڑj- ʇpCa*Dѽa$kBl8sNMU_ОA - cdoAFz}Z{Zqg}%A+]n"/2*ѩGbHHT*|x\G8O;sy]i 34ԋHs5rP /0~ oϱTĠ)IUk1&һ sq< @*'Ԫ<\f3v5s s QeYa]Lޒ`muq&fJJQK2uO%s#qz,]jN'WKM*F1ƚA( kՕ_*|_@8ޕQHI 3atqH_zƼÉ?(#'obV,gjA|_=8oא (7e,MȢ-+d'ZFec΁Lѹ1Yj|'§zB_ZTsR,гL]Y[KKcfIF,xI_gu&]oS)uǹo"F8!wcɨ%ͭƆ_給FiH:5J>'cJ_f@1)&x"JPWP[F :E}Gud}]o` &"$%;;mz8:zH)$p[j> "ڏ^Z-RΰcKqΈw6 TB#B486y?'O=K&x|x|kR O&STx jUG )H ?x{9w,v>ӯyLL*energy_formatter.tiffN[FEYƶ[)0wxYlPbu 勱*c8x[ϼyHG_rCQ;:g_6Arc#ۥ ^x;ipJbIj|r~nA|Z~QnbIIj2JJ  x8J8䷭(Z␆|"w,˲(T@>MHx8J*~sXАWy}k2ޏw, D*cz*YixTSϽi$P]J^*(0$ TEȠH+  2NAddw>彵潷޹keޕ@`ԺE4A םıTBG帕4.NB{pB[%WeJ} &Ig {.OaVsMh[*}+DF| nL沚^V>qbv\hec͑Sg ̟';srxZQF&mTyGÎԷ51VQuz_i Z|AxTX@$ v-YEuXbyKz2iHǛ7w}iiBr`DMg#pJ(Mj@,eVr6®RD#9H b.¨2xL!"~0e&J".;L$pqW!qLME4#1NfpE"`;%И4 /w$iniH̭-q?_!kQ;۾nK->fw[\)P}ݦw\̹U/"Qeff˶&oʿ9,gSD4iR٩)b!-=sšY(7+ WH H*Wsۜ W| xPv4Y#+з#͋#B'KIp[,̐2NH' @j@ Zs` ppl@2A6@U< C #9o A8H"Cj6BZyBP( $MPTAUP3t @BCFDk%L`8^'+p.ç 9<|eQTEG1QA(Tإ$v!l-2;pj8ScD<\)47{+#+-c-%%#ɑ)9%sQWfTf;|_ogJCNH"l$' edCdyd˞!;$H"hxx+qRNN@U.JN$SJcdy y_yz2^ x}7 J(+ ,ue͊JVJAJ|Jn*=#H$OK:NJ&Ⱥd&MD _#PC/%R@EP&)(G(R.S,T_j zO}U٦Rҫ2:OUZڧ^橖[Q:ZD=D=S5yyN睝@0Xq\ScJSK[3MTUU+IX֘6Y{6OX4e-Fҙo8tźzzzzztD}[  6643r1ZiTntkL7N6>dmؚ$1MLyL{0ffrDs7 j! EEE K=(ݖ.HYP*Ǫ/kkur _ش𕍩 ̀-6vm;{;]ݘ}At =~;G;GYǗNNN9:s+,1dmQ좣$.:.,r'JQ7c$n/ ݧ̵(o|.Ob{%xU{MxzsWӗ[;g֯͟II0% 8@oОG+ < m#ń {^pb航HȢH%kt,U_[ZlﲑhW-B}Eʊ 1 1XLldYV5w0ndc?r9c\;ψ/Hؓ0X8c^%$INJ>)%2/Ï7 HdA[VԞ4Ӵ4JǕ{WNP&3)6oe,(xYJi`UgIֶ^\^^Ӛ1{hcuqZ]?{ɍo,)y)rSKfޛy8m9km>so,(()~kՎ;>UhWxxv`Wn'V PL+/~7f#$7*=x̽mqv=\sDHGyGyk(7(/9=qiEDE*+ *? =Ve_UuJTa5\-;}'jkRk ΀33sYus֓FIҦf_,~9q^|  s/~W ƴ>꽶kn\~ݭ ƍ7o6ߢjhm{ˮn瞋.Wzܽ~^G}=Gߗ pfn ?R|TXqoƿJ$<:=y8~{#O垖jV=~v~ke3ҟ_8eĒWW>6y֩oofߪ=}љYZ> <"hx.MM*?O BaPd6DbQ8Cv=HaX\`HRdIנ 4gSHS-P`L ;cY2a:L5Ta'C Rc\RzhA\} BqX5Kj$ |ӗG7(f30ӣ0}._O [~=k2n[i]_KptwDڸ7̄7-gt;h?>{ⅳlۣ A  ?pT2hD%BD@$S0,@dWH8/4:mFH궐Ir P1 jzKI:|KhJHr,$jԹZM) ҪC7!Oh\q C2dDRF#}#QT+RġNuPԐu9RUGT(%ԓ_H; ܇s H䳐\ %xsMM*J?O BaPd6DbQ8'FcQ+HdR8t~I'JbiT]/KS9 i7DђF9s0ƨpKi=J Q.>+0jNt mJ:]U.R|J][վh\,}NQF'A\I30;$+A{P&_BH; $s H,\ ǫA'x2MM*?O BaPd6DbQ8'FcQ+HdR8t~I'JbiT]/KS9 i d9Fm=N@ M6W' -.QBFi}Ta 4z3j2^L*rK9"8]_Xdm]!Wk\I/ nn9ߌ(m0VOf 0Z걩3pn3C6-rwqa+z~#݀7\mh{xREp8D huxMfTԩt.8hun\!z%]WE_ ^`4c^2eو +d1}5,T#K:z5._e4^wctN+gx>fi+a o=S '_><W?KcJ9ЊBP" %P>Q*,ilHMW&,yqd⅌+~ 0&;|z--@'qϠ+5]ZH];)6F8!9|B .w;=[pkzJzvx^SI8IYtI1 I p3Lu+mn3.`d{;T:3}xϳ-'5/$c?Zkx}{=gKW3\d>s~ {f=7٥6L^~6rm߽ugoE>|nJ3/=e(ihT24(z[ю:_:y_N?W[c쁗ș}^?|9u5??ݯw:؊uxޏ~OZ48R-;GЌC3f?4_5EЌC3f?4hFЌC3f&7Zi\_8ť9EqiQ\_8ť9EqiPh@3f?4hF>9Z+%q/Gq/Gq/G\q\(w#刢q9q\(w#Jw~nӁnӁnӁnӁnӁnӁnӁnr~Vzo,Ao,Ao,AǢ&.ӴY\<cQ'cQ'cQ'cQ'cQ'cQr9uʝ/.\QF6ȩ#.'4V~qr6"DNq9r c%r ;_\m,SG\Nh)%mDhc:rBcN.(i#BK+w p9FIX"XS%ݗcD'c)] LÎHhcF_˻S⏍w"w9.0 ;"}-N!Dr\`vDB?6ZޝB4숄6l;qi m,kyw !rbKDB?r~U'%c-/X{RB?r~U'%c-/X{RB?r~U'%c-/X{RB?r~S1^X>r?OmOSh+aʡDX>r?OmOSh+aw'J=/E|B/7 ٱR?)ol|?6>O '폍BGE蛅&wGowп}Ϩk5r6kS+ԣ ?O=S+ԣ ?ySD^T_35׌_3)CЌC3fϛhFЌC3f C3f?4hf?o RC3f?43Hf?4hF̨ C3f?4hFj}z?4hFЌPC3f?4&7ZC3f?4hF@Һ,xݐ=O0Ew'H F46(r|lHV4FI vv3^stJIAMUJ[l&c5:: G 3^6 )%OEH.LRpuK[|"UQLaRw=q= _8 2CAfN/# mV[dfu㑱 M}ϩGSs5Zw4us<9+$eTVY*Nlǵx[̸qB#+s=o(>!,,kt6T F,x[̸qB_/>yN,k ɀSx[̸qB Mkkv1m8Q} 2x[̸qBȉ}r) _խ8t  x+-(r*%zP%N6ͼ1 x}X[o6~s66i*$j}40%&E9~)K-Ƀc~~xQ[>$_g1 a?%LVh1QL,b),DH4IC|^~p?>LR ثg")DCh.FgN"!?cR<7q$+_orD"!FH2 Lt8y, 1 8/|I;SB&l[w0&b^OT e UK8Hhͽ>;W 'C@8HLI:T@xx=OD'A" $7(İw1 `3 SHv#m\`#n.\A pD%TO;8&ZC1E"Ų">8<<xt7 8'xtru)w݂ o֦}7SyOnjqahUJݼ\Ō&&1Uvk\$z\6uo;ӼHMO %[ģ^=AMDUx's r;p>x>UK|8_?4ݭCÁ vI],h5G{rѢtݸ/yěwGСe;P{(IRyylW\ ^c|M"g%"Obk9qХvE`um\G"ԟA-ܑ&hcDo=_껢 +|AjǤ#;Xw!9SźoeWP+I\PsnSrkWWhI5oP qP~\ lSZwƶe;2%sw\NUVKPys1:==Tn㣏+6P9^5Owe֡JޠZQśTTn^*/%/QY 5\m|H ޔ?RI5)X$oFЗy9* kTB"SEFx;^yvn̼P~gXE9\xTKK1W }TiAiREl!AbLf͗#a NMO5Ѡ!R6ɮrl83Avm]*?O(5 b}6$0Vo\&vmݶrs%70[ !y=#iqݙ#h=xTCM'0A 8r9MG9 qAh4 EBֹ^7fYyGQXՂ4LCL{A&QSO s:_bS͏W7U/+u.3^ w=}r>]Rz}j  }]S}.dw%U_О05a=x}n@O\̑*JiISid;TBhcN%8N̦Hexgf;>Xj(FO*5r]8 q#CXn+ a 'a>.l\vZ׺P +*RN_Sa{y+ >xGh."%0:xjNk#*Z  2i]gqs*;dzX T֧cRdDy*eLIYb ʰq|s 2 x7ɞ؃6r @>mQrBz3T;xkTy[YXKyS/!_뜘WXZQx9s}Z^JjOK< .etf^*\ʙy9) 6ޙ%J/Î!3$(-19z+LrjZ.ԼI@23 >;8xWmo6\[avM} NF;vD\$R ){^;R{h,ptYD-<JK-3 &}n4.pJ0+lAOơv)<58bDqxG|y- S}Nbz0 ߂i *X^[LVSrKIAS)؁*!f4OZLJpLJC. 8XsC \r2x('NĨ>WӉ&$^rR@9 JHY\*H.!CD_mfB:*Фb L8e"dϽчx#|豃J9P"/2hf.QB^}@e7zD+7_G ЅpԻu0>  '8uaB?&bޘZe ؜cc.#)9uv"ړ)He[3ƪn&3t~d1nD7RXb›'''0ap_2"Ga'oz e1,E = vkFTw%BNَҏ||Ύvf'W^jJV q GRu6r|r3%p!Y*8uNy_:1%4Uu7po.*Wo/gS'׵TRCm T|ꡢU r?>q"|jDBڦuLMx b9J~%]]ЪyY#IHoӦhG~j~e1 e̘>&Q=t(K* +`{#mu{.g9$ڥmۆuwv bH寽]k:EinZT^H9*Q>]WqI9zpf?EoEQz0uDJ͹޾"(l偅6+Mx3U#H\GEZivԁXsfGȐ%1=tqJ&f"Izl9m>5W_;60X},ily {mmu pU~O+;ף3g|I)ưƭ}+qS?c=]qS5KIŌp\?-ixk%__Z1_p7D{a;J<Լ|t^2kǥXj`d`rfZ^JjOK<\@yLndp+I-JKLNp_0U tCi^qfz^jB<%9@)'22| _p'ԢSy'oҔUЀZ_ 7`9n]9@Ɏ"֓3x*Ck..Լ..e Pu7Cx+-(Iq iRq"![o6 xRpQ(L()V(J-N-*KMQRK)MIUq,(,чPzv\\y%Eiɩ EΉyea V ~ W5W-Cj^ OL G&{ԼDi!n$q!gorm-1.3.1/.git/objects/f8/0000755000175000017500000000000014333757560014314 5ustar heronherongorm-1.3.1/.git/objects/f8/545abaa9f25ec5ee7298c5890e4942103994550000444000175000017500000000060314327003123021230 0ustar heronheronx+)JMU056e040031Qp/M,)I-*HI22*%[,gd[}9q9F982wt=8#gVpmzIfZïY[vϹyv}kR7foZʠV%Oek S^AQjbnPK|Ӝd+02h>$594$> a=S^q>;W6/ I/6{A$'뙘q+Weueםt#gYbeK27.vzfeP}yE>߷/W\#m ՐX\Zyu^3 ~:.Zh$+vHӴkopy^n9wآgorm-1.3.1/.git/objects/f8/f6ec17878995417bafb74108c083d9c634e0ee0000444000175000017500000000531414327003123021374 0ustar heronheronxXmsWRιJ!aKb%JvӲCvv%{]^RtO>=PWڭ;:*xgV:Q[Lkpp@XJ8yN@$JG FNFJKOEH%ӟ.H݋(*2Ig;IԜ],':^40b&Dӛ ?ss!Z|fOE"K,j^24﹈cz׻1MXOb1}cVdB䋈b(Fiv (1t 5EƔL%%2>p"*ʧ HWT4|)Qqƃ @32 1 S KjwA!T>R̀Td9T'|TaH#I4li v7}`]͚&VOa"Ԙ"4y1cL y}{ <:jLj7DsE{/kN_Ti Mk>]3=UQ[G cU1;Ƌv f|w]j0"QdwKNau)D՞U4!˿ H8Z.AW0Ծ988kygՂvIl]N318NwGǬ-'b)zK Kٚ]aO;To5kwsbwFǏ :iCjZ,F\!γTJX[ ܜ ?fC`a2 -Ple&wt6eK=4ndfX̞Y=xT ‚jlwW1PN~.Z TQhzk}[U: mT{j\'G^.dmȍ8˶9/02OpZ D_Y:'R$b/m!n'#̢ORNbG䂛Ř ֬XM C"2/@-ыNAetV3ۻj@qb'B}Gmzt/b!2 NO]D5d;q58:Jg#lFm::j\>2ib&܁JBk"_\|?ýl2P,2 EO&@5`~\{%6'v[ڣ~ 6DD" mtχFఠ=(!}< z24{IvZ'V % )`d湲\ɆL+XHO'j-U3xTQЄ@[2DKI1D XƱu\h${`~z H+; }̘6N5WYLlm)H  ϯ/^5^g3Of?k , "9d-:chUA2<^:@k[\s/=?aaݜ'7Kx"HDƓZ@Mp:&J \eC,KGUalgf䨍#=Bhm,C;QŸ ~Xi鱀I]Ӵ\ʵAVW!V.E6nx 8EV%Q@y7f;J\m{8?7MMrs䕿h;s57rOJMf7-9*HG1ͭc(uMq}{ nasrsGm]4 j\w 8@fiˆPw V+s B0Þ7HڏJD2bm'loq h/)iKVj 3x֜YҖvq}FFMЅ#Dp3H(rN*(0$\gJ(4fj=.VhsF`{vc㏰-9?, oKs.Vq[z$*IA; qZ1k qFJRV ,054+V3[y_ݵѿ%Sgorm-1.3.1/.git/objects/f8/b34f358cb21a08a24f6c53b9953d8dc532357c0000444000175000017500000000125414333757560021367 0ustar heronheronxTQO@WDjp'Svvn!"9KڒngofXjZB[whЪt)G#[pTnZIGw]\\ FFX&NiCd[vP;I V6$fd TRIS\ڻ;+[E@(*QqW+>NwD^4ɷpC{&U[ r+'*-(|\%WoRabZ֎uBAʷ$C[T.4LV)UB˟T3X68>+l-X p̑p*}3-h6=K{(T$ɘ,r%B]a^붯ƞS4 ,)`2[9G_TQjZy0n=09%l*`&$c LxqtOa NMx|3tB][[1=Q)-NQbgоdVNur0ڰm`8Wc}Jg/̋f#; #MdpCi׃yxMVP<9Dp<>Z hec g$ޢRّ"śZiޅ]翤=?I[fX%?U`1gorm-1.3.1/.git/objects/cc/0000755000175000017500000000000014327003123014342 5ustar heronherongorm-1.3.1/.git/objects/cc/f4b8edbb2b1220d94e03799be83997cc613e910000444000175000017500000000043514327003123021512 0ustar heronheronx+)JMU0`01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)n󸞭)u'b-e ܋2SK<-rg/ , ;] LLBsS2sRRS>Ox&?J[7 zgorm-1.3.1/.git/objects/af/0000755000175000017500000000000014327003123014343 5ustar heronherongorm-1.3.1/.git/objects/af/676a7e9fbef44fa5501ff0ade13977dae83fc90000444000175000017500000000671014327003123022025 0ustar heronheronxZ[S+'vKb1u.a; ^%XP[EQ#%ukAdǽ?nwk^f:&-̎0Mq:W$/wF^4Ka:"E *b < J_o=f 5C 3զ@35U&*:s&1O35)VDz ʋԱOfA0D4T 2 ѮǏA*VTQYʤѩ#V* #:_ "=dS=Tq(0 nrIi`7*IIz9djK[`"(+!Z #ұ25s5BHQD~1^D,Ct?S~\\tzX ⭺Q# ) Ig1;8 i?{A@'gԡE{sA/ςљ-ѲUdUѹ@:3BV0r Mc! ^_i|o#x,Gg;Cbm2p08<˴? TtCE(X0Ϸ ^:ǽg{/enEP4o_Ah1R3Cgcgns]ٙndyoqw_HyD%w߾17kxq~Zrj=juHLzLMd1zEmjC}i|i4Qӣd]9)]i:*!-DH4&Lt8T#ג:I1~.j${#{ȬuY]7=Cn"3' ]f="yQOMk]e%bz^pj&̓#JRJl!7[ lĬM,?f*@שʎi-f c3*X(dD,>גwY 6E{eB^!XW"o)p 4 ^ l 5{v(^I6zEAƿ]OfJP:V(*epp+ƒ t1(mZ8FFJBڂ/Vkb#oWgܔxEU/'YffXN4" KOUVe=n'M{8`2WK5M3G ɊS\цS'V_HCjkڥ f[*4WFA:V{ DwvĖ|K1X)lgFS4K*f"}M=6'&/[Yԥ-Ceʉox巕Ќ.];^4t#TL"):Jez?Nk Ƃ{rv#Vc;0gxԡam 7V?{s֦B@#a#3r!NzdC̑U2 )FZ BRӽxMo(y.u0R Gy=&s{Bv7QY_~b ɇip UFz)f~!Vu$/0XSLVyHմ+1>ICq9>$_YN~ňQЂ>ȸPm<`(zl>+bXYx4dhrf\|iIdb`%}-}reV6vܖ`O!aΕ zAD~#n@M9. >E<7Ke.V 2JpV<>f:EYٵ(i,v"0cx +뙮qWkbX=םT^ӼBοeĜyeА%RאqK/O;8q?r>'+ndKTԈv+5CE{¦_pٕL\F dȊzP|n eا|6} hk Y*1A8I؁+$ %0)\f^ ݁;w%%mWD90!Df F<ŢYv !| (;蕥%p}vf]=g|fd %+GR=f'e`/mRB3Ed1Q_a^ <8acyOU%8Yyb_1.#8Xzɏj ֕ \}#p mnWH@f<(eFu'pZbw)A~V˺ 5c /#l9ґ8S#]IۯEXTZ+Ӹ _."4*ogorm-1.3.1/.git/objects/be/0000755000175000017500000000000014327003123014343 5ustar heronherongorm-1.3.1/.git/objects/be/1172f8d186e53619dc13e65ab5deb8817b6a6b0000444000175000017500000000037314327003123021506 0ustar heronheronx+)JMU025d01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)Dǵ.h35z$ LLBsS2sR ^k{:M߾gy7enTgorm-1.3.1/.git/objects/26/0000755000175000017500000000000014327003123014204 5ustar heronherongorm-1.3.1/.git/objects/26/71bb0de23ad2188bf57fe51da1ae834992b57a0000444000175000017500000000140614327003123021472 0ustar heronheronx}T]oJW>$KTU۪[Z-"Um],;|ܺyagΙ3g-.#I ޑ7\Y8N2]{nƺWBDw8ە6bTR n*OnO>ܝJ 6O53w~ 4w[KjZ70 Nlt%W`5-UVht%#C EtCᅊ *4\¬/(!%[aŖh͵+@Aqk4";hs;7RI^=`_0 rMtKmRBwXr 3=oXrY$l.Eq[.ѴRPô+$L[°/Qw < XG@F#O Vn\Z.d;rGe+FvbM9{Njs5Kr.#7j ;{u87Ւ' N]`1f,nE&!|6'T) 1po8mF+~tbLpniS:bӄT5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvcgorm-1.3.1/.git/objects/fd/0000755000175000017500000000000014327003123014346 5ustar heronherongorm-1.3.1/.git/objects/fd/6117afae4a73043de2f4e09c806dccc046bffa0000444000175000017500000000156414327003123021770 0ustar heronheronx}UmoA++#GjXCj%Y]vXwgvUK/7o337Qfo>uH)r,:k̡KROU#;ZΥţx_5?Llj©7h&@.W h)Bkx<\QKvZsAVNp.KLn ;c7|!1 G>c:?])sH +a3h!h⋅4;.ty*'v*[H 67!-٩ritP JcFg"vsuO'> Vu7erm/"+̌=N1FCJEPkRGU-qiSL*|t5/:GJcRko 7OI{(Cf E [ƃ lA*m<j|kCOe"4_>CC=W%Fe;Sl] ȼ-6ϬYR'R_DZ 5G!TUT5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C͋2mK*[թe Ks^9hXޟ|;\z3`P Q??dѱSfYE\\ßMO2m_-8Iĵ** R2 R+vHCť r%W1YQ?5r8m=(ϼ|` 0TpH߱v5J# Lb0SmwgEe]lIY)EEũE Xݧ3ˡ{"i8Rӊ*V}oɹ';/d**:/8LJAy G.=!x&3y~IAole!WCs fz'vl_떖~.[1 1'h\n'yt)Yfw~̼bMUR%ZM.bt'X& rutue]["~o\1#(8(hO֫),3bZܩ (x/ԩ!. fl zi:s1䜂ʇRR`ɆWqJnJY$713z[1h)Y6IwFgorm-1.3.1/.git/objects/70/0000755000175000017500000000000014327003123014203 5ustar heronherongorm-1.3.1/.git/objects/70/56586e8dbd5d5c1fc5c0f52f00a9552ce93ce50000444000175000017500000000027114327003123021505 0ustar heronheronxAj!=huJ)dQ-c1f.JY=[|[ۧ>5UF.{ՒI$Fd%r:9@ @@$!ÙP}_C>7n }[1ϭ~9> ֒sޢ~Pk]o<~΁1 SMvwC7Q>"Sgorm-1.3.1/.git/objects/70/3a68d697d2dc5cb366f7ade32942723ba02b6f0000444000175000017500000006767414327003123021443 0ustar heronheronxmwǑ5__QL왝l A&&@эn9{|n2gǦxˈ/VtvdzzuN.6[_s|>7N'h2Wf~ٞFrb44ӳfq6{9M鸹_͛p8bhyw>:=ogWl:k. {d/ca@N/FofſϿ???|^wl7tfw0pottz5~2X}Ӭ};`6g/Cbl~f/q9FzpckFJ^f bSl5" .;bjOZE3 r{ga; ,EZ+|N1(贝fd~$jqjZ cmgsotF`6 B>kMc-ҧ+矧9lF|zI  8i;fg;; A@x۾m+s{^<=<{wg̢ywyvp4/wv{sؼMsrXcD>lys:mħ-. fkB>O'̌jFgd߼ ̩?0_țɏc hbDFgx:oO~b#Es49_ ߇_Mv./8ZO`&3 p]ws\~|jCO@=X^jU/^g{X9!,C}D_߅McQP)rژfTWX1mW#;i\&LVjܡ- z\ XM$dC] WMvi] W] S} x斲I~ǡ(ݎNv ;wMw>=-=SPtZ}K6m8:~?~RBMwpv޶!8 `lI0u\#$!bx?nK΢](vvgkrj;lWㅵL?6{7oܺT>LdȒ:hЋM8ޗVQPk!/\6%g*lmgI?-ԏl54߷voa/7O ,99s5_ǜJSǡ9¡1biJc}2\5^+OkNaQ&GK J#M'-v+d]}2تh''7iHA_Ҏu3u?hjK{ހpY"bs᧯Ap b•v"^sfe)b_7AdMnw,"wM;,[fmmi2Q Ix/洵GA${+@14čC3C{=|'|.I^Uk߆XGGj ?1YZ66S ΰG-"SEJ+<&${2[sL~_n[L/ß566|Fy;Muo*7@9??x8&D&|f+nh#~f-a&ܝUbe؋XF RyB+;oS-4 Md+NpArnpdo{؋7Y;[sH(@܍}VN ixqԜǩ}4@S˨[:7hаt5iZ:lDKڛ7SKXl} J~?yҾz|f#&/ݻ5R?u7w]g@V̲„?UP]@O*fyT^Mvc\8X1a}~ӝދ6 ˵ýE{Q؜/0Sq {'I'ЭXqFvOim[AEZb@@ CivҚ0Hja(y 2C{Md8Kܓc ̱evMI>fv9Q BaSh2$f_&t~-s-b-}Ӌ,B_ג}F*chDOE(n[QUi0V`~,Yeh}QN袟k pidb-}S!%@"#tMp+ꅫ 0V`~it (JyY/@e*9*ˠR?v)CdK0k{6 (q;pshA1p3*Ĺa>D׳JX H5XA>]7WQFOْK3mJӥ n[ʓ]EhQnci2 1x#9&h9L^b;d#f}6D,|/{}†Jl har6];vKZ`ojDJz͚5ox>xG[+ _>6el!]k`"؀*77l0Zk|񹙺1TSK!p+ΏNN ;H2܎.?[;0]6f&?.W>A8vnDIC&gS$(Ǎ%~Z)S:m6v}eYv?BAG떾9wlqXHG~9MHNUDh1 5$urJ9DA"ܐK GtV;z@yso=i~#=ܭi>yzt|xDR)xަƟ75obG5"Mdq!'3ƈ;<Ugst}&k73N1SF&$e)XX){#u0ʉu&EX菩:W P4 Ɇe"Z @ I0{0vOw7Osu7pl{iMRG!׌2j{/E}c?o>ğguz0:[` S#ḛ,)!oQgfˇY}C<;9N%`:E Luf"塞x"@>-T Ml)P$'@W[oXs4g{c'=6x4&k{=lx>ewf;vqfJ:{؇*; o6h & ,&7@DRD]d8,8S60GCD_8 N|pp ?X8 ##TF>,birNRsٞM&_2Ɇ :=kOk/ gľeXq]Z@ٍaկJrv2I;`K=oO>-:tw1>o2boT/0{ 6E\ WL *~^E^lMrkɌQVlc!޴ஂf/eh&9 lF`¶zQH5J5T~%eٱe {p:$wttN`+"-- }{+fy%x-!.rAh`*aJ@wt#8k0B Sc/OIG%m2Ul~Eb3m̴/U)Q$ zl{DWaWI+j1Ә ˅sIk/kdqnUSe%NQa p pzaM+2;!ma@Nzo t|uE-0ȕIOIc -fز^kRw(Z(W2{)Y?[z釵B.%8Fnh<\e~l֙fk1H0YߩPHX_m46bH~xl sQU{}NnyG!(ϵp^*]T VOa$OseTMS/>PF]Ivy2|<S/6k` =W?wڪRre[WipzrYW3i8%IFj~a>6eP1REsT$w$-D8|o h(rXS+ ,URm8s%hܭȥ_.JuPދ?}{HxˎE)t}'E@ Vl CI#[$/ZTX$ْް4Sr%է9Ƃ%b!Apѡ^hfB5DBf1{U $4P)YDĄŻ'!%ݣO2G4F qn< y Hv7$n_&r65^=4sbxD|g3] W &IQ@H,݃,%s6- ik8CQǞ~qN\3k4Xr?rH3I%K),#|^KB]g$ONnt fSB A٧-&e5EbmsgVV"Q|h)Ҳo\œy|c7vA6GS % &fv MW<ĪbbA j+T.eOS;|Ȱ -~ lLe%}R_'f(:\ 'qŔ0APsͅWpyWef.*iϷ||Yf _{Ԇ{ۀ_@:6i' fzzCЀŎvp6I-j!g5(B ~ ڑZg?&~Y@.s F> z_jP*tcfqqn8 kg[BS[L#Ա02캯7HEpBѫGt}?fD`n]P 3pW MB3PVh¹>OH-܌fǁp 5GZǾr2eEW3\WZ-b 7.WjyǏ3 %&P4_x=f.EZXtDi?>W(tk8BZ=y҄ΩMPɦsl$M8Sm0c*OWdΎ;4Ų-ʫu<">6Kb-R̛0(ɵ66JIy{R 8ʜW^p] f/+fЕ6-]Y^R oAynݎj+C3s\7+b30>à@R4~ v78%$gyi #]8/}7OLwj{M §;KK>->n8ظgkʼn@&B_B8Ũ}3RI5PRyv`gwp98-Pymʝ~7<̍ujcmӒR( {t(r?ɩG7KubXK",SL&R $ÑZ9kh9>oO apEۡ#pwR0bSc#ӭY$k3P++uƁg R$-nr#qT ~VHD;xE<"f?RXqN")c[;/J!B^ḋ}Pa3 msͣ(:d2DtA+quZMKr-cv譴y ivQW&~+qtͿ&uWY(+c/< `qLۋ)uh8Np "^CcuR&p3,v*gHJŷ2?&An r"lk&L03!:`/IA"myfS.ы=قݟ7lOe0gҰ\sU,A'owuBbة"<ZV/`rFnv K]30 j#rkC 7Mݖ;/rp(# *{(l `K,젺,|JFu*Z 疨줧=]I\]tbAKVdp ;pgD_uҎ4;*MOfGE^q0='hgK̗݉  \gO 'qU"F'cX l[dUsEYAWUs]OC˂]z*wfxBwv@^/[QpN:Q%o`t5쾕͹j$p/R@ ƵcC:tS~5 sloVʁ9/;/ 1\$O*GSt6[e| @Zǜ#*`yZzB-/ѻVޜVcT!^mvYeF|y L(.B_!Gw ,8#QӃֳᾞ]BlK0nu-890s9x̻SN$_+-R|gwv^i7~5f@*0p\RGlGWVC =&,Y.Bњ h5E`6Fau2QH4|EVj)ٲ;N$pg4PyU@lEqi7TWO`j LE\dhX Yc3~zU& RcUdq1?ƫz9fY?^1WrXR [,ÇksK * e*:; BƮ>|*:xY}-у+Q҉8E,OvB/>8 rWR2[&gh~`W lE` F6rA˶$ Fų@/u ڎ̻HbMe O"FF4aKr ?Î27Q ?ͯ,Q߇;W˴ /{K V_6̷5?]̞k0%gIpoϬ\EQ}hg7Uޑ<ȋR2T$:Js}- KTfSMX]dJ C/lsKR8hvb8ND(,|` TGDY0R Q1Z*%3l r&yT>?LLЋء@v x:L~\ըa1è6 hnjN,&М6,1 vU*rMJl;53bWv^r=æ#vGq 8g;p Քu?xJ'en5㼉rwQk%CӀⴍ>cF=Lglke<z x>G-`z01>CuL_k>L Otcр<"(x7Jהpc4 t9SBvX͝7&K??RxNAo>Zwr$lAh6*忄kIFZ>SQUŽD꟟"KMWMp<47b8Uee᝻ f|C)f4ΒH_!4C: $%\i+^ fh6z|+v5ˮ\c ,/ZG !9rA- \j, }Fg%&sP.{ʤkǸ˜[ϸ1Bf,fp])26 %;9eDm?SÑ%xȱ|'s@w6c/qA\p0dh.C }7)q0B(L'T̒}2q3N+mā,Eu($se__+^7%Yņ٥r*d EqmԒoZO.%4}2WLIV},ҵNHډhf:F|)~4399x\uғL+ cFRh+-ZƘF@;w~"IIkv8XH孬kbEj/ _9G/2Bd R޻?FDup'Ȼ36)"pY7M[ 'ּsGuNX+AAF#_G-S@@ZR7B !g&4՟JA\$SKߚ:=C%'vnY*<`z{wMcZU&j-t˄ч`y01e/XBO ┩Im-.nxkK|;S0I tPݛ f7w6[,d 4@Aj T?Hlp2#]vyV?Lx5Yȳz^K*3mZYC`Vlqb}}"Xm2!ldLN?I'cF\ շ}Q`{!0%gT!/][إ&cO B7l~ڻax4F)]_0clˆ.:Wՠq 'ElZ Qb%Kg lh lev+K*e}!E~`HsG6Ǐ; 3_'wa'})`+N&m0NLpl?$uQ$X,eJRD 0- Dl0C!OK_Y C١rي1Њcf<lR@ɣ peJD3a@!A:#!_ot ZόuBnfTqW2>gBRs;wW œhrl.Wgd2ڕe3YĬ;,y.RAYi-:}ixE|w|{򒯤^HýK3lU:Bsj/*Eohus4ծbS-"Bj=Aiy>d:&tF qgi=t#>r wZ%j>y[eXs%QwEbSVŚقpritvMv(Ug49y' PK3 $|+7șNͱco,t$__}9F)粥NbjF~u!oDOdq5C2%hlgň"|x lsITl|kKͲ凖Bj !Q{1Jt]Ԁ| qtx-w+\֞ QO# @ه^3XU6LH 'a~K0po3+^kY>i7T(=o![Nsd?$ΰ)-rtva.̛Kieie3o,.?]ӽd+Le9ͿufFHa|mB-0f5C"d蚂rDS:e5@Ɗy7̒\[ݻKŠqsӤ-s2}$ʚ'HxUA.߱u7V«ȧ8?A V 1,&%]e9^^r%ыh)hR==V9ko6\˓ i]TYdPaYqXnYoX0gT<$jK8D"$8E,K-!ND|>/Yj9 rQ1 cȭ^䌪ueVdKpW _eRO[-t Zk |C !7_ރmo0\uܪ-ĩ]$SoKLl XGD8]ru\bXQ'K$wn|3 "m/2"|;KIfJ$iqG<@`Ǵ)ٌܴ)YqsFgeTtL=*>66ŒLZR4/&Ӷ[(bT:X[V댸%JU$lP`!ଳ`n\Rr 23#ITU+Tx kk<,9C*+S?n)Y&/ػ,$gA'pF$l(af,̒%gK {1DGl:e„#C';v>##Xh()fËYSAǯK_IG U4Z_>j>+!%PJiBRp*/-VzWNqbNApc{e ٥ZS~}JyTbI!VY9}cm; T@_r=o'+"\ ʢPS 6^.~7iz{'T*N} t[|)pDyaO-Mxl_vƳpU3#r 5!BE MΣS~ @O8x ?w&Ã0Yl INlfIyLE9^[MϻYZ9Sv 1.eFUdMDZ! ̓:lDr j7$hIu%gLYiBK.\) kZ9>ʀhvZU 1JUp1sd1uQ1)UQ8D1\- raaoڟ?jjsqw˫pEUXSok0iZDi٤|z*h=6U.A]Qw4"|13ǖ8鼂b6=\Y -9-=ơ ^$>FʼnK$ 2t5p `B}4 ԂMĸ %6݆ dpgv$L@҄6m<#֊뵶}< >g !vBf;`^K7f+wcZB$V#ǜKC_7Aw->-YJj ظvH`>n'P'#ށ`wq 1jyD6p2nRNlAVn zGaoLg#*Z9FdcF 2To3QhhrGrBjZ|gt&s'/ Y?CEDЅr6&fNrJ˔4KUhXD2RV&szs2We ᫸y8|ZqZhQCCõ6(z%hZ 8ϑ]ejuDCHPSu6mp,}58.,[.BP&eeo}To4[Moq%v{:i0/ZKT8ޏAʾ;+Tkd*i \N.q2}7![fC6ls)bg%؉J%0ח+(CY~/kԍ܀*uKbgj=. TBUf&-vcՖc˖w]ia|N+D@ԯjn'MM%E $r%cƂP;;RŦ&]U;a Ozң D Ā<Y-,eܲ0m՟tNeZ+It9,`*:x `a%#׷Cݬr0)2i%&ԧ=-M(x[_ .2p֩OYEN"GԗrȺ&qq 3ڋK$ .Wͯтn d7o5 (umU@4>3კ2 9+"6;N.ԟF95 AOڡK tL۠>ʔ]WOd{7/,Z0ep8!{}‡a0Itu40=j̵$h{ WjEGX7xA~AyMg> X7(H=T!8Ǎ_^mrsWI+9UNY`혿Jح34p7;~K9lm+!iޏw@Lؔs2Jgڌ=RM'l'?xVzt1: ;Ga`3B uE#Rl1j;{$rLG3T3j_$S&Lلi;HBUOm8cOB2bJQd\+DߋUK qiպg@9DLbAHH-[^#_UsM9ާ.N_K.!*a'Z Vօ+Ctݺٵdg5{K^1֧r?+?:qZ I`"NAH糚[gO]]f `-FG1_GfefHYI-д PZ|v<#54SXR7 2+mPUOrŞ8%)@S M8'Ϳ3ADN=@#>hΒ86XN<$cUo:TmcֲEtp1lCS<) <(Rƒ=zsi-v{pJz+% Rg%aӨ~:a=W~@;#D5~tYhr@Oj Kpr8s—:S-OSG$Z+xDC 鐵9` tU Ku-n>h*Mo3P`a&b%4L"ת8=hi1 0)GG7Ga.(({ 2C4J[A0YT,+mOO"0!("/WA^Bpyg$GA)e(Op2@IAhgaQ PJ`-A=5# =[Yo-eE ϧc/ PW Qi^l .鹖9Z=$^; ^4-BebR[P>.ɶ'2w? Tm@AliPG[ ˜B,=շzN;G@CTklɯ&^`Qx"f1Иp%Kʕ,C=ጦ}0lmPztleyM7*HApn>Hg`f?*c3= M2_ƸSǀ[vctK4ytDzG'+WPr3-;=脳4\h4!@S#̶rl\x{fn.h@+x-R2)ȁlqפi2HKKm0Ep:ձ2;!etZjL=3)kn&iXAY,Tǎ-7#o1 ,cAyup2.e>o/ٷ T)K ϯCAHRjLZѯHD2Cq"K\_ZeH`A9TvwQ7#ۑ)SH1#M:t}\T4r qt`Z)_=b?h*9o钢s_w;_]Lb_RS oA3ţ͓x`lEr0JAt>Nյ.9zoN0]ik0HHL+/̮ V35_Ј* ̀[#X.%h+c `na ԄAS>̕1 g$0dyb_2y ۂh}<0,p(~ :6_ŦQ;S s'3I~8,;[Qh4& 'QfIp#lܤTJ:]*AQ жI'?ZM6໕ꊲ3zBUU\DR2/HȂP>c://O0B-@_@nJ@5MҊQԎnd>xOF ʩ Rx,Ns׈~X9=Voݳ5qMfzq3I <&*ƠА`eӞ"}f G{7W|xbTo'I\) \_[bnm/əwP4q)& 8 dr`اnnm1 yGM%T慯ˌÖyj">5P#LX:ؼUvݖGŮqtJDƤ;]{-ƇƄ~şuc v&fC,gR,iBg{,Dz1]apI:ִHp^b_tx"`;Fԕ˦]Ud%&2+3)} 6Ϥia `)tuu>h TOSz.rRELX`nJo<8lJ? t_+V wMQ\T ] 5) "  "'z8̇`;TH.| J%C/X2lLL~Ci<#iρA>7xڙ+:+Ŋ,w@oƮMyk5HMQ|lIFRKtx, B =Wϑ?n@nHGE%"yRw|| ,`kdĄ0cC`!>jm;CF{/fbL*,^+)L$Ż74I7G3v5fϟJ?=mySG7ቈ2KKڀ͗ŹM/w]4񧝤cX7LFon1jm<"|iD7㈰fk$O dg~^69hi( #t6d$4ΑXJP#BR*Ίk5'[R%N@mQy9HdQX 5abN /<Q 8&,5/H&7ut}X-7h&8E>0ڔog b0CѥFUq*APCs]LJZ;qv2JKEƴU^doEf93 Gu靈#/x\EUiK9ў"1k.+v\~ *x<=:><-t.< bɜ[Jk8}:8g_BmNګt aӂ"rD.0c,4M"l`lK& g30z .&Dh Bit})7UQ)kzt&ȄǍRI1]Rv/! vuEN'~{.k6sޜ;%5Ѵ{6ll|+WEu{&W2ִHՖW,o_tN6P cHs{25ͮ )H4SGIy@9k*K%N aby*.QYΚ^1Hh|,q:akikŸ8Ecܒ9ᵍ~q OKR,jT]r#?_PM8*2r$W{p)ȧu5'0vM}kw;{5%6>4JB# -da8ڂV '~SI߫b{dPI@27b?\]6om xnbƐ<* Wuk— &-` XwsNq˻ym;uo mMD/bWUHnœ~!_N/4?Kn6.Zo96\'=ӆcrbwmq0^1Q3wcVTNlV ~c4O~`VFO(-+ +lqJ. >U~&. 9-vvH!'dq-ky-MFıOR\ ʿݤdKh@*#p#FѳO;ƓJi:F2N&Z-^c9_9A!@G2iow<z#p}>{/<zGO'~9慮#Zղȁ̳Ytn-z$AXRēT )c@A@'-]/rn,b"Ul8*^sE#Q3z"&[ťS&thK 8z$ODER39] ! DT#]=} XFK$LsKlȜ,qhوYTɁck38+ȕ8 =ą툨VsicEg>bc 9R#3kbX}wpWI[câwE NkM/U:`*[pO3#M!Mm .N@c^W]b^ra*iҧnD4B8C׮=11|jLZ>M"-Kqs ysx}⇭Uܡ43-t3RE @{0@$ۏ^)޾;Z{~{'Ew F]vM:LGHm [ꬳrv+[JMtD!L0W\DӘ5,ϧkL' J6#%uU&R)@&s ^!1JJa4Ig{:~?iGn5LJ;9>8eFISTM/u;-o,T8X_ht4C.h>tE\[ %`bo55[(ϵlcTKS],'ُg4}_SՓD4Nr<NCGie{RMroϏѢ:;VRKWj IƝE}.=sc33}~?!xY-Yb׋)(_#0X +5 /%y!vZaB3v ˏg:a_y='UT3]'#i3#ŜL^'f8C1WJGi Qa&}c`67;$v^Y#NuU<_#/n,{d[GjY*g#} /%IdmBBƛ)R2 iˡgKQ.F:gaua>_g`uw8E`wP ]Xp~ )ڭ0(L`$<&'ӂ, sކ[._ c8kA_km鿉HI]M(3(+/ە^_ƈY%q`\;(nQ“'1 7l>1f:8<0) l;VjuvJ9vw !Xph4RnM[s\ڮ.Zqh~@pK= s {@.2AEQ# h/+:ӄF Yaj@ W,AD!l+Ryd^{޽iXwH(Iߒ!F+\fO@n`.ᲱD%al;P(q_z|8!Ġd DC#@I"u>=OGQ,@l@DLͻgaBܘ{^Uk|[#+ h'H  vieև g㽻H+MǧeKJfzDe}hvfhb E#TʜҸixS/ u|_ƣemye}$~kN( 5InO01J a*> WbN9ٜ$)FSWjt-ħ4lo,Zy}&|G^ZJb!K2ULc lhXl ?+zhx{}X$ jaBIn/L Fog?Ld@׬S`wR37__c^r?{u) ;(ְJd=$[7ɜI`M qeJt~򂪹-s΀B"GՄY!XD(&1lEKlйw<){&̾sYi lai"BVjL7za;0J :GN:ŋoKKvla[`-X놂lJ$ڦo,$iNYWmay'aCpsslWW~K~Lc$?ūs\VMNДi9Əx+ M0=-VkʓWG_7sWM9@"k_f֩CFA쟢𷿛 SU ܮ\arEU'?-˯mCRY`Dզ)u*-\.1`N9R_Ӏok[7)ǮWy5&g'/@oP~7+I5?[b\WLlR YA? umCRUCS1V=lN}Zkv#Ǽ6 jG#e!GK6-* mim`A>i%0W;hD7nؗ{9~ڼxz#2z7eC2"݈>HtPI8† (N)ZŎ 1C \[2/F2Ո_?#$ܽhtq4 u X]sB> b&n  _<&.$ 4Bi#ӽ%'.]ptmGK.k:6kqrM"VUޛNǯ MZQH%w`!9&6"8vp ɩ1ti d͖?P ;[b}"fPp]7'0CI=q[@K |Wmn [Fu5=(}V=p PT$Mȱ$$Wc0ǃ7>~xѯ1٭b\SۡíPb\# Tbj Z;.nZgooG(6o~p->+y,H~qM!'HwE' Qw6E}Cn&0UąoWv{G =+x7=+7=LkO|+#,O鉥rlJE ?lNAѻuS22Kڒ?Pgorm-1.3.1/.git/objects/57/0000755000175000017500000000000014327003123014210 5ustar heronherongorm-1.3.1/.git/objects/57/776e9a7f1e16568fef1738454da17f8f03ff6a0000444000175000017500000000165014327003123021402 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r :OfT8PKBsS2sR"g^o^4ߗi[:Uܢ N-TW_\ A>g֛Ti%?r4#$ݯ/2hz"ijmK'UAVQ\_\ZcƧG*D..h3(y|STXmKzֽ{XϷ"噗W  ;vqz=N{]_ia>I &|wT´m5X, ?)#51%( 8Ytf9tϾS8By@QjZ1CŪoV?-9dBEEPy805({hs9]|#b941͓M3l4$j~ WD3kek $椖-F-QqrP%9y JK\ SOL^3%ٗQDVobFPjq~iQ2ОpWSX6f+SP>^SC]Vu4b9K-*v=Z ܔ@-U?eTInbf0|VchS;lf#(gorm-1.3.1/.git/objects/38/0000755000175000017500000000000014327003123014207 5ustar heronherongorm-1.3.1/.git/objects/38/ca0dd505526b6554253ffe4e1c1a5e2948651a0000444000175000017500000000165114327003123021253 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> Y B='W Jҝ:u"+\KsSJK2T횿]o|G6]קuy9z9EY k_~;#)r~o{/471;5-3'!rE~}S-2Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9M5\N]bY$Kel$< TPw".NiK_+0'3O9J ߽w!T'e9{&$1tb1kw,w@((JM+fX%켐YFsrU|8#%qT/i<}LJts=Gf.doEaɊPG*ekR>dd MN5mg 6j_~nREQvע g7Lba|""Qfa1۔'"(KRi]اAy3Ve0X@ /`ů\Ɵ9VI jp `;ʟV1q,Q1y@RRGC bd!OE2J,p8nP "V]TC]uD1]WԾ_L+ฯ#'>sF sh$,9aɸ5);]7nsuj8i$RR"jM=uglLduUə( _˻Ÿ!@@.Prt^…cM;C&vǵ~HPJ\쳟*&*HLwR#WLG*UM^'"JS~ i߅l {CG?"]8W_PMIj+WkB^/_N^ xA :w`ii2ǥ$lR(} kNwN:I&;X^ Hxd.` `SNu*k M+ъ®&D5T-$z" X3*7Uట`gI:(=0u \~`[湒*]fr  6u+& ٧; Z뼩kY=WZ~gχ펞4nt\s!O)fuXks6]kxzڸb-ͮp_tFIƷgĝ]j4'x]>ζhIzB"ǭl-7=٨]1RtN &9iԛCaP~]q}.豲S,<^13uMO1G_ -OɌj?nAy4#: Olo ,,&=pUsm;ΙX&Ja!hQCw[?m[7޷ |f7|W٬PǢ8F=tQ"|;a_x^h-oX{uj,+<oXqM O:kL:=C$v)N|H-7[VDPi')-SkHI|wAE)]B$у|j'udQ`8o4@Q`fHُ݃@b^3!8W%. Ccf!d[OС]ϐxtitNT+m:FEිJ#/-(ZT-xoxf7]ʰh9}#u!Y3sSNa>lwdi{ͤ<ߗ\yʱ7ZZk~6kAovMr$1 vќut;&ePZtdrt- JZb71DT=Ǒ]_HJ˲O: S@'"$jUmo+*V<1E]/+&LMBqRSq9Ɩ4) !ru1R[/o`*R(b|u:1ІQ1h'JqR3NX0p@XTL6wB_ߺc%4Zz&LlUD'=fHr4AR{È`b 'ЧQoAwqoWG_6F 8N^^zpLLHbB#G_ -pHɌj?nAy4#: Ol ,,%=ppm;Ιm(W썥{6LOڃtXgȾ":؝ `6TVQ2w@clC 2gv#wKZ5u7JRߔ;|V ugY^6}VN8>xhϊޫW\;\q>ci4??r)2C /*x, UTQh!]c}G-Q,(F \N{|zn}o±~1}H Xq3p0!$Q|!bql'/ ckةb=2a^Q X 5d ~lNW&%GtqM8lyH ZXF3x Y&MR9f~OeFTK8x/B/R%N<5P_o&h_9Jh~`}]ﬠ-{&۰AO}V]|Gz " M*;&?j3؆pL5gorm-1.3.1/.git/objects/2d/b0416b12246882f14aea99812a1513c7435e1e0000444000175000017500000000033214327003123021073 0ustar heronheronx+)JMU024f01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2pl^_oV3&޸cyD/471;5-3'a9oC?5+_q\gorm-1.3.1/.git/objects/9b/0000755000175000017500000000000014327003123014267 5ustar heronherongorm-1.3.1/.git/objects/9b/0085b687e867b65f62e257126b4774d07751070000444000175000017500000000165214327003123020727 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C͋2mK*[թe Ks^9hXޟ|;\z3`P Q??dѱSfYE\\ßMO2m_-8Iĵ** R2 R+vHCť r%eCb^鬛D??L|dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvc^SC]Vu4b9K-*v=Z ܔ@-U?eTInbf0|VchS;lf#Bgorm-1.3.1/.git/objects/9b/9c367050f486b549522eda1d52e61124ddea690000444000175000017500000000165314327003123021270 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> Wܾq/EmaWV%?475$$3?!Lծywdu}ZaQ皗YSPŰ3:<;"7'PKBsS2sR"g^o^4ߗi[:Uܢ N-TW_\ A>g֛Ti%?r4#$ݯ/2hz"ijmK'UAVQ\_\ZcƧG*D..h3(y:lt_%E"T F23/-_H% y'wztſ|2L#ikYhYxBRGjbJjQ@bQqjC+v)r}HqԴbU߬[r qakPs~f}yG1 shcЛ')fp`iHP3\Ã+މ*)g4׺@ HI-)qaZPߙ'[+N$4=3cnƨ4|jQ%A. 5S}yuKd]K f% z5ecFRk;|3ϰo֠ޟzy0C)|XjQ1(+Vњlx%p䦔j)Jr3 Gߙe3d~pg̴gorm-1.3.1/.git/objects/4f/0000755000175000017500000000000014327003123014266 5ustar heronherongorm-1.3.1/.git/objects/4f/c4a3978a8f01d0fba4e57e2c30f0a318fc40d00000444000175000017500000000032414327003123021533 0ustar heronheronxN09?'@'Q AYHgفͽhf-F -h|DIF3rqnrށy)NG{fm4[N9H~kp /e S_)pt@7$.*ƌ!Ew;2&Jmt{Bs}Bo|`kf!gorm-1.3.1/.git/objects/4f/e20ee61e300227da6104bfac161dd66f9f46c70000444000175000017500000000031014327003123021454 0ustar heronheronxMj0 s ]e;(t5We9Is^K[ :@ʙ&g 4Gv!e/A]K%gh$bbH:JY,S]֟;|ЃP\/w/­:Ո^UjuL>8y`m#(W5pvHߞpMF~"]gorm-1.3.1/.git/objects/78/0000755000175000017500000000000014327003123014213 5ustar heronherongorm-1.3.1/.git/objects/78/43704bd4dd358d812d799275b833bae90d7c530000444000175000017500000000165114327003123021223 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C͋2mK*[թe Ks^9hXޟ|;\z3`P Q??dѱSfYE\\ßMO2m_-8Iĵ** R2 R+vHCť r%W1YQ?5r8m=(ϼ|` 0TpH߱v5J# Lb0SmwgEe]lIY)EEũE Xݧ3ˡ{"i8Rӊ*V}oɹ';/d**:/8LJAy G.=!x&3y~IAole!WCs fz'vl_떖~.[1 1'hąiA~gflyx0;̼bMUR%ZM.bt'X& rutue]["~o\1#(8(hĜJ9f'3xў)uj?þ[zv꽎1\ 9aEŠԮXGkuRl*M/j mJ~gl}$igorm-1.3.1/.git/objects/0e/0000755000175000017500000000000014334122371014266 5ustar heronherongorm-1.3.1/.git/objects/0e/9f5ec13be5e56a5de71644273ba37b950185890000444000175000017500000000043414334122371021300 0ustar heronheronxAK1!(E-=H=ق+޳ɸd̪Pnf` L|)-CXl2k4`f bM@;Uiںj AwVyzBF #yv'Hд<\ $EuPC.5~}Z)R^R\vzamTL#:HH4(;h0Ri`XZg<%msʃESܨ\EO. l4&vݝ'M@ƥ)^T3_7G }"G!b\ S}hu~fZE$b Cr]ޘQ=2P) 4L'k?~w.;n|9m3 hcLgZVMuWȆ PNfSO.ʷE չ{h2?/ݒqL)7z0@[/Ø)w \z/9O&oPmX/]^qIRQ[8t9oLAg>vՏ*H3 RFFN|6iA#$9(/:#E9Z,L&zV]vF 8niS-@KFgg!s5hsdGzdiT}JU#[#7%p6i!WhUB`xϮU(r&eS G7[@ S=x D@ ﴩ$a .; mc,$zԲEX*Nu|lCk Ns܁^%gFb+ o7 S56 Ϧ;CMgpx S aHΕ֗5+N~ w lJbBm3~#Sn*L <|pVE,S-MGrFgj?D%aI5I~6:LC#oH(ѧ!9ΕD`}"7Qk9IBPY*WvZ/9ߔ\,zr-sh}Q]%Dynp*+iE ~᣸թSg' |ʾphWw/myĊ=n.Ч剬ЫDXR@'7Q.X( ͆!`"2/\*2lzhB ѵ*fʮ!fǐ mlTh`39pTc M7ӽy3o¥@ UWxFM*4Ft'CϯSb?T*ciy `oSŽz;Acn;RBtl2X4U5G_\㍊~>^l0!M;?;{p:|LڋEl]"w{垛@Cby~Sp͆2_qO=J WZpmR'OL.E܎Tռ=WץwBp@z!0¯Rj:_ Ouf?}" ^Ai6C0fE`gB -m웎ONam h_qo}LY]Cǃ_3h2jkZ,ݟM支7& ʤ=ݠ̿)4o8{~3ö /KC_:7A]z*bJF׵b9ne3s$O8V8-Q._Uj$$B.VSy?:]FR*E~1Ӿ Ǽ]mu "0W7?Wk[ ƭ߸ڎ};n&ъ5KC?KͧQ{'_{ ޔ[(*s"$b5h=]=q]L+m!:o"ͥ[rQv,T _gۂ;1Z^)[զx7PD&]Dӛ{'~̫xDw:'WĻ4S'6ꡗWT]-j=[+'ѳI k/Hhä# |gorm-1.3.1/.git/objects/88/bcb984f0e4021d5cc95389ba3b051b436f5f120000444000175000017500000000037314327003123021337 0ustar heronheronx+)JMU025d01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)?Bvw]ь|NSB LLBsS2sR ^k{:M߾gy7eJngorm-1.3.1/.git/objects/99/0000755000175000017500000000000014327003123014216 5ustar heronherongorm-1.3.1/.git/objects/99/685cd0cad81b5c5917a7b367f5a355b3ee13670000444000175000017500000000037314327003123021357 0ustar heronheronx+)JMU025d01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)&olwk~es)<340031Qp MNMIe(Tv{ӟ7}ޔ [ogorm-1.3.1/.git/objects/de/0000755000175000017500000000000014327003123014345 5ustar heronherongorm-1.3.1/.git/objects/de/33a8dbd40350a97041bffa212b2ee056d4aaf90000444000175000017500000033412514327003123021616 0ustar heronheronx̽isG{" jZqCiIDFPi[I @6\<9$@$dszJ`F/Ǐ}9Mݧ;;/͝/dz]|\fx>)~:.z>|?p<{ǏL/`L7.fb<* dorZ,fEq2fEx2yozaZ;LٟL}M?OlE/d20]& ?迳h0>^lC;{=9Y>ڞ`lQm q0mŧᬸFEo4\ZT..޸౵uדxtt9>\I 2cq2΋s0B[?k|}gV?Kѻ}<'| fhȲO&1^N'hry1?(aMx჋80@pܛ~1 Bù=<<|[͸Ub0?m>YzrGiW#_iI8F)kz?uEzf4ܞ{g 5,Ѡ7^\6gqWp=;+l0ˉ{O_Y~N`pWt{2-fyo^h2>/,>i]t1Fy$ǡjq0>lpfshe_(I(gǛo1Rқ|2꧅h#XX cɸxB0rDZGma:Xݥ5XJ_A3|6IČx#;~''QO8| (ʀ-X/Ը76yqCr8q0,'lza(΄΅3ƫ`jyoo}[cl=l[Ӈt .Go~?~y=񜣓d4[BczXXht!637 n}^cy;9qbP| `)fŨ_`V3r"W-S1t O>32,fCUo>2hGaE3V 8>?v?L6` `笜z&r`<O)[/977r4u#K;NGv>@`/(CWzipooo=+vvyK{Ín/n8<9M?Y"˯ɇ}c@!ޘOL:vg nylϐ^.Gk*~@Zw5 ߥE"A`_Yfj`:0fKt^({1䊉LF/EO'g!} # bi{a8·0)<%允{q,9bp>j>M{WB4pp^M,ɇOQhQ}\GKƥ,d 'TtW@Ywfy5bJ0N9 H=FYR8,#&Uɕ% h 0 "7[+.S옣[p~} #,p+wd4- 'q gK/'XW\Y6@IO=zo AC@^X>]г5[xd6=1.IQ*|U\ASdQYWYG_z[%DWS/(vFycVaX|"0p.`q+#OEZsOq8.';9r`l9N7 Vb>3j2\;JւLrOS&XQFZNCkHW}-d1B\f52?u.R|ԜMW?:\\%o6W.\ ݯN*XW.G2ե ă*%[(' I(V\DaJ{ 7P-wy E Odi8PɸΥԶG0f<=9K^ s74At(fE?T;ƶ&e*)1*!rKN,R<uҘt} _" Fb u/I'8!N.e6 ;bf&S 71Lweih!IFX"X,U TV-l_vɬM:е@]R)~N^0Ž3g:k }#o H ^ W)@ҋ*߽5+h8/˄_I+썑Lu^?3V 7c X5皥qjԻ'ǓaW\-J|}s;X|=8;(燶SMi3/\3J/:U  iӄ.g7B YOΎ&Y0č `=ٕ],utR‚hgֶL{y2p,it0_LQ1s.,"=,xBޛKgEm s !h'l^aYkg]..GP_~Z d]Fە_Qh2?r*-|\vF喯C-s M_[>V*wB GX%E% 2N$i=64NՖBrLm465*9+##V[#${5A ^TG@lMv4ڲ$ᘵUn@7,]Dm-/L@\@o1yN>˺~i*>kpME O<\/ޚ՗] ~xc!Qd+^aq_uBGP׎eikaZ]R_|n82y8T({ 0iPyKhG|5õc;[ܕ%Œ'ON`#SXbz#36wi.8-Lm^7Oo!V!zȚ"AW27R#JCy:c!iomj9abqʯɥ&&Lk\1lrDp̄ .2~:q9ZAXԚŻixUޣ Z1cl *@)Ĵ ~[XG&A=56ql ''/bl4H]fv\<|g'YkmINyEM`&Xfh0/,xDjJfD{$"ե$T}H`yDhtJOu;Q(L(xY#\R+ tZ; q"*v Ydnb:on lLfb*wGK4\^ʗHZbbJD5>G?s+ 9l! v"zrP쳮_`fףވ` d?|EL g{\ as/a$=|P8㪄Oox,_^_Nw;^Ik!l,{$KdX' ,{Kx7v5d`L.Lɖ} t6PSp(R*ɻC,ڱ-1-YyƼ^\\\WvZ&rs!P/=`Fw{Ӏ֭W@%4L)u@%̡@]j9@h$SQϑaV<?̎/sg5xu(?-y7}'zs*YJn(%&#RMOۄZ$vS \1}cU^ ?ߤ$P̀(|ܠT_V@DM_~|xIA@1͆ buمIQI$-**HcX!I 'V !&V av̽Sp|X5VK=>nf@ 9ZU[XAl"ts}[5Dۮo3SC8YNu\'BAQ)CĎIa4Y.67H[ăELI„ $"oe2}{:GCH0`'ANntî3lݩ?o3͕IC8tpFa3Y6׊bJr xH WZ!q>H\ChB`B&tQ No+tnw㣉6TGuqp54 [΋gifU%-viߺM8ճz8bHR]RD@{i^$V &(*iaǷa@om}|2.и`g" PN SSd`s16sRï?67ZG,KS7 Pwɚl&\" ]㙴L>: B[g(baҫKp^Hޠx6iF)Q,o*݋@6C11e6hhO4ݢmeh]hu3usWVf#.0 6#O$> b"1}b68HEzM@Uݓ~u]b*E<{oBL%w73 |YmvW`EaX7K_ձ/e)G[ug0w`?|!!@JW D>8c5 {7`H(VrAcHFhj1)}mѶۥ:J ȅ^#$R6To}*7%^bέf0->6B7:gcQ MbG[ʐ0 >kP`@2,Q]rv]Җ2SY_imP𭱄Y8p&;"Ix\Cho~}`Q'mHOֱ_sMIs#v.*ec#t g*r9>*VזXux ;dfq5r͋ՠK3Hk"a#4fax-#I:FܣȃhM]r rd!Dt5#jxCUwcĪ` '*mr6g9 nP2C$ 7;?\ny6 9nQJ^{ov˄ u)*I[ҦS?iF/Sg沅UŒܴDP J-j73k˹mp>Ms#iBu@o;mꦕg_s.MebQWKwU[o/A3 b=>Y=qkRjcrRΡN;㷤 @$hRZ0^/P(VpB SX7wCrfr^ u?FTH/ *MO qUx@#*f !{bm :wT +`U-wx\hA8q} qDgJI)?KO _^R a-@f4ŬEAڹp(ʘY]ucO6p>-6vW'MG׵ K3*Ym+CK]`B~-q!sbPUKuyv%-bR` ?ekuk'Qgʇ4Fw#<]-(?n W+(|j[T\j{r DI 6~V۬՚$DIZbZ?;c-Up.񦳴{3GiڡjZ(Eދ7/b 3Sd ^El*)gsw㟴}+'5aWӀӂ~y(dYzB91 U54 h{@ "}#_ ^//<;hkx2Pݼl M=n]Z+J*uPZm]nVvktĿ:F*o#mzpdDuy[O G.Ya'd$)7捀 _#QskhXbҊ| e2B#=Y)ѧ}e=f[XqrMD , 299С&t t'nlVΊL>o}rwӥ!D@'r$L Di" /ؔ TKb~21(g]6C4ReʆvgVw~6,J$Cy0>G,m"1VPEb`cBm3OŽ"9-Z,NKM W ߆)qLXXF!ϴ-U!+tph=gF.i.vM^QFg& /8R>M&F\ )71bYtG@1(Ub} bWB#ǐ|=y{g M%ٍ#d!U:ʲĆ;co&+Tg_|4vb)> 2.er`ˬ%}"aE'˟E?GgZCCcU"Ļ@zLD‚e|KU%QS~-~R lلb*vV!Kx9lyձo t,"/7 `%݅}^X g2Xa,X͈`az;=Ychs R}m5ȐLyoXFeeh/L|l|{Ⱦ |'#DFZM-)W >{|Uf IT7"Y^X(#Qȷ76Q']AgxilP3 yNfPʚ U.X LM _bf*eQ+1޽ߵfGkB@ &/oML"Ϲ};O1=X[! lijA,IA Si 6\CYC|ooT!ܭ;,o&mJk ߴRl\^ bl*A<+yʹO,0${fg.<|ʢ6xQB,)pQ`"r@N3/j˲ J02x}&$16~\X&n,#Ŵ.} ÞZEF_`:d/"K:"A6K][G9[ªa8(?1ʙBHcn Rk`yF DUf>x˚- g _53lrBtT'!X`@I{/w'VzQf`Hx{y^.UC UܻW͆3|T˔Ң3׉®*a" \ uгt0b Da,\LaNJ0(&(M$%uonE4MkaH2"ڟtAGrH"S8JzA/LvG+kjc.=YVYaޒL>]Hsk?=*PMstDň;x+Z1R2ȡ#q3B$$e CzRrgl`2 Rs9'- *$> D2 Beew/(gRJ!t3z5R ɄOry^(eor0Q^w;۩_A@R7*,km3i۵YVdQGK`_G Nb}Chuoɸ&k;{&0Wh4qԓ,1Ĩ>E,.*wo.VhS-=NN>vg)]ZycA5(,"L>;=]n Q;`uJ~udJ6z}Ӊr]WŸ5+#k?xdUs u 4zgctF5൬ y?FKEVCb /-W4ҙncv z.J>Ed ΙxlQS 1EZFx {R='vm?_@ZAhnBb6SE; e(ߪ;KTBJ3BLԄ*7̬o1dhJ!Cz%N;71?]G*'1?)QHPMګ6mxH]ֽ Pbq8XJ k34E ێ;GEv$ȿt1J<5j1\| iuLt; X_t=䵣oZfu6'3W{WL:K9ޠzp|RU:CY'hӏź ޲Q^\u2V )Et(̻ڞϟ`#FXj1`* ټ'2m_Ǯm[NMn*}`"vRx{cڰ8xѥjg``A$wm ;+rc+T["r-3@j!QW 2Y' d[Y8_eq= wjIQ7R[]bBolZ=VvwwKp܏斁 h1/=xYUt p}=FSoS ^^a=SwoE[F#j?4~pvab:΋oKt⣷]1ux(O~.H.V:EmFňN,.9>R2BRF b1^X )knƏDAhzBrtUSqAZgGbP zi9xȭ?dZSA1xf'GHUYK ̔X=@r-Pp^0<=PBqc@~*0dXx4<1/ۚ,\~CN?D5c' ̪YlZFD5^ eY-]L7TNHܯL? ''CDSN>#ʒ*)i>9ʃIsf7vdm\T<>X)  *6v)V_P_dzhU8Ղt,*&#)ewQ(Sp˘_FcCR +!VYg,D ~X`h2Y1/ AQpWb F5Iqh%=#.q܌lsƭ{2wz`wu ^r !],uoKoĵ\lfXTuA3$p>hBAvĒ;cG*/.bd~QY>jsmS2k PVD^Ss&M [2NN"Lݘ!_C!~YV6Rŧ6%~ެ$&eE$t\l.$9}@C4LdbfW@ZG|ӧGP?*w30>5]ǧY2II@=JWBLOY{F \xꍖ4FH"dĴ`gU!^n0 f4UAMjarFCyLkRþht ˅ŁlϾjWC-).Lv/#s=7Jk~ͩnSq/2JT9Hx6A( mAX 6KEX;6_p ҎǕDZT,M\g*M, u9M ?ܵ|g*ȨU=sx()HAGUo]c}{_h:X`RiOH$!2Gg)j )-&^JA0,W8ZkNjvWd%F*3(t#'Ur|#ݡ%=#+$5Pn1K9J=ƌv 7QpK?!WyzP=Y%>MozC)m|U}QsVzYzHS,P C#'Jk>JoaO*@S5$6)-X~#>yݛQ@:_;fR- yWn 5WJoQ=%&S։UV ;lfClj S&JصOekͨ( @Zs|diPV FD! >VׅQHtL1(h`pCڄ`=!WM޵i!1R31ʵgϝDq/CTHE)&DZϵLX)B95Gl c6xfKwi |t)]/oN:q&Ɉ(i$;TΊS%F#DIG52ӊU`XX3!u0کrW{/L6,G_<{80}Sl\ۚ:G6djRmMu<Ot9bs 6LL%Z9r1m]JS ~6eC\U姥սQiRi$js*i*3lN [ձWRӆl%8mImCU/}Ohҍ4th5mʎ2< "]kTmE֡j No%@G8{aP_T) *nlCUjWs ֿ0c j&N}DChԉGӒ,_z' VD\^|1y6_NR¨9'gL=Pxw9eyIDVCW,-BFڙg5l:#᫔̫Rt/H ;fV7Jbes3߆!*rYԇ{Xmin D[ y Fz|2).buOvbݜ+8ςdP4^ ;< IU6f0 ȇL(l8J";#!.^g;MZ]B GZF#{BXzx>27f9,mut<1G+TAɔ\V>a0Psо}Sie]w)ץ1(3P-7v #/ d̫"C;LI(λ>z:SYu)pUq,4F4\;>2PiF֪UELr*N./j;{ݔj@7y~[MS R z ef"GE/Xn~+gܷȥ)z{gFp;»j16r Ttۂ,18HX=cg01EqdTִ<byިTJ9p( clB+ p!2j"MQ} ,B'[c9rAfd)"Ȭ>&m]vQ0!i ѣ/7%6b8Ɓ#Bvy|N y*) :BAY*l[x໡ٱn^[;:.Ŕ:[۫D`>{/%]1LHBdcqa~an6w!CerhD I.!&Tj HΖ/ܙ $6W [)Ho@np]0-EܙBew9Vn:) Sav&vDletZ"C[D4$g{#*ŚGb8m_4-[*lP.@"blnT_#q mä8c>CvPUCe,G"Yjuዔ _?'gAh8\ ;dwTj977de+y?D0#,c'xXoU8ŹM8 H Uf py~`qۍVr#jzxKi~k @osOXf̎,dDfS)4QA'.٩ٖ(DdT@⧱cg𸷎Ö tWBWTRFj);?O#wrlև{˛?_{?%ɸUyU)r/,8b ݥZ,K"$IС bZeARpTV}ӡKhwm p-R11 1:@uAt4Е[#}tu->5(l Vlg7cQ_72`>40̜if8m)Y eARD_iɄl55`TL΀hiY@$Yvœ-IŬT+,LX$(qk:D yyx&0PJ6|{Xpj?}\Sj1wN`p?&c^ 4ڬ{7+aRғvT&nf䰆F>YÖCYsC%'ᯃe:!RUƼp,fdj% CeUMҺ/!j%_83Uw) =/,ʆK23!*ؚ1 a3'ݏV1x鳝RA+2vir :I~ʎq%ɏYFdqkȐ5JLs mN r*N!p/!m"}Cn_72ii -Ɏ}"vLНd{u$(HWneHQ}\_Rja>@&ySJD;PEDJ1TDII[MB7~'Vƛ r1,>@8ޜ&L 8=×mڇ3΍jJ!DI)V`D<Ȱw/*o(E$fNo |&wka܇ZE;-*[ ~$\%Qvy tc(XJNfVpP%쩁nc->+ bA.+=6ӆ hG ή"׻7z"ԯb(R Z4wE'2S6,O t_t<~fHV ]ܧVܮDy134^Ox˃RU%g1ڦ1ٵ"Ums&ZL ꆓV'3Y+:&I8z".Tmmeb[vPi5ᔈJЋ-ZIJ%6hRuyLsy akVSWgǔ[QJpBj8ZP)#WOѐx)@9`-> &mu m`hiɌme5_+>gkQDVYl5y+UYvA1HfK>;9)~*v6<W9ޟ8` ̫A^B%ȔgVfesXp[h&qE:Rܝ\rϬXM׶*ȈI@M+,2]Yo32U :V2)CRg$g$RP_Wv&VBÈi4}s?IYsbƩ .M ˡmy/j(Vޢ~k\Z,IQ_̫Ic ģ<f[j1"Xp RIT!G"@%cy~ԑPF^pɰp (Zh-"~wi2\E^_޽!oIШ[ץ0fz¯Ay7.\SqDQ뫭~n]n$+\,xS8эkc=Rd7SRkj#>M4%gB#ʈL^`['KMwȇ,cpD*pk~T»jv.( :7љ ݍZ^KE4)(f:q%TDGt5UKmINZNk|mR⹴Tw[ݎ3YU%n_e[W^}GnKKw|{-ƛUu;=jݘTm[6|-,5R[*d u0M[`a!A4[М#j4yTŊAHnnME3*FrgUI1Յ3}weI'o_͝VGDIL&08Di̢g,=;e);wJ=zn>`hYVdHE%W#z!'YՁ$E|8e!ˊ!GX]#!r(yOjPXP=Ri 4A0Q*MUH k5bHBp1$PPIS^U47x d*dؙ%zSSٕS6]eEmJ`v?HJ3DObZ/g2VoX']tuI\=SǪ [/x aB zbőuY{CC] K]EJ$離$,CTd/ a"J'vs6Et6A\3VL}/l R62PѲon}CIG,VW'n&|#>c¬ܤ2kmBb-Ȩ +C1}N6TYH22PY(AB@*K_ 4 X[VxgթÿsJ D1Je6jQXh⪡[y-/fX7SO)bI]KssFekIo z<~ˇ."5ۡX>z2EUKj2׋p!KY B݄~(қRiU`[TҚ.32^%E8Y`t'=a{5aLc&4ly;,I{JYe0ͪ+r:sZI=Q{,gwm}E!W!RZ91aB)^siֈ"t _0y_UCHK:l➾ҳEq".4/rR%T|(:P[ilJeKVQU>j2ד1%{Ľ*=;abE;߸[5W%PZw[Ϸm: h(Ӆ gfjgHZ/(hy*Ўd|D !3bHtEXiO (:g| Wk9N3D{iy{tW2fN֑ /W"w?ldDڝKt)KZIh ":D m_Ϋ t]@11'!r\ȈsgHC%bFڈ;|~ˏ$iR=sx2^7U|v0%3@lY'j rͻ\_{^F%Jgw 㻭gOv^}~XX 0!hMt:_G*}DeEiŶeP6.dсѓbslw'l,=ua< ,HRjrl"1M.InM) i]]S:+ uqC^XGl8;$mqS64h2HݶLPuBLOCSzL|nl10BMM\Q2N`w%GNzC[Aio0%گʦڔ3:d8J!&Dh%4]He3&j٥u{~b^J6nV V0Åd/ךږ;0 %qު$/h e^2R)GI]uSa않5,sN)J,ugT ,ji[%H "Lf !jdc2V!V*`X3iB6b3.9XtD!Zߛ`ֺOXXEoG0}pUW993hhC9|l 0T۴/*e FRt'ԹP. 챌)Ԡ 3 aq)=PQ Í_Bhpqq] ՚W2ƈr>klh(B"f5!ve*-5K1F!'"ˎUPN)ϬW^4 ipzaâjDbYd•aƚK7)7J P)9 c9Ep28ΛYSK(YH`mǖTݎ˂Q82L֢>~"lL?l⼥ Ǩ"I%'2;ډS\~,o Q;R1:ɖ[wֺ+rXM9` fOw7(ɊUJpSW>x$L+͓w29OICVC$J_cGOXVPga} P +tɟ'䶉圸bt◝m[|֝R㛗߽c<\,J=Μ8ASnZ퍋MH \m}S sz$ϐ}HGQ+=X[F!{*k9D'>Y(:TY(J~oN[}7 fp{~+ -]9Y-,rDj],ݮtӈR>kT7/O;M!4%5M:F7_ TqHtRe[eZR0嶎Rye׺Fn;#6W)|[^eҊ(> M^hu$ze-}N]_ᵯwaIx[k7=hJ} D {wʌOAs#|4`'4!f8^EW(x8ԛb}ķe _%c.y>PIe-lKީ#wݟXpIm2L'"0?ucAm G%M\>"V2 nUuC:O6?: (Uߔ'qu_[qm#UKzص]=3=_YmVHQy,4olF!`}$4>yoAK^\6?K7t(K;o0uP2Jg_efi3Ty P@j]GÞ ی'Gdv _>/uЏ>۬o*w)$:5dkCo s\˯Fn*ﴎ3L&v#)Gei[~dXCdɸ񕥣Tly1cfGKV31z'E` :V2Iu'ڑښ/z'Kg6QW7UU JM*Oф}lư4}+~lƷ`NͲyT3ulJzNxçKgNQ~h.vͶUO.'r-st6%\2\Xܷr7]ߴbos9|-]so:<)M1Ǖ!ޔPGF Ƃcޣ !|K0<麿ջ_f*w1*T<ܮNLDhT[3lWF7gylXq'ЋjD*;{ԯR(~7ZX7+Mcx1yJT6"bГ\}++׃L 7=nT '\7(=QP Ksդ6W,=S rO)szqXX@Kdo{^L4%jTBi\BUj窸'Wbr"Uӎ@&ՂyA=TTt–UE*?2XM)m]M[#S)]@r8. Y>dA TzeqnuE)"6QΖrI2r }rUto{: A(<=,ړUj3IT$S+깡hS?C&VF@u+TA6.pI4NT3o8c8Ue^OӑHF}[_ҥsA\RHUzQ\VEN 3@zٕ::j nk2zr4Nej  K61Wl8Ī&Pg{C˵dT޶),9΋>?pGe, #zgH)ڙ*II>캴hb,O9uDJTVdZ] hա‚MUpsIZp= )I} A+tpi홅B?Pc^h_N_.V'һL]&(91O~q=8 +PGTfޘ=8UF6 E*iۢSh9:QRh?]H낪pO<Nάᑚ?e!J=uX:Q0-ea`4QTUrYD+jך~1)[YxFY/B@+ RPA"1r»۹fXrM1/OYSbSxJ'àQjiXv۹}-5Al֥bn +jBektC"@kGeCUw}" 3#*B6jdƋj̦s *7W\f0O>| }o$BjĆծt|qB4V$Ș?eT+6ӽ1vy ICRI*بQGnD0-!ڿ}p2AAf޲O Z=3{=Sb^E4D:3AⱶSww*IyV(, E)}tJ_Xo8通9aBekcxRQ?y$z|h@ Py]^Og;Eu6 mΉ`bb. `⼠㙬SM>~DJ_DY-n-˶NcCvК@t@$ R1< p 0Ꮈ'U؋S",e zmF(&I+(K283mr;nHѽ!G1h/Ub\'w`D=upJYYDUf8:ӛAחAc#aF>P>*?;3niK>u{n?) ܗZJ}tŒ Յ3[] .v#5_Nslgڦ : d\|zsZbHwpQFa4DU\J֭([su&t'KLmNm`*5&[yx ߬p3} ^:`Me7@X6اL +%E$KS&q4aRt4LWfwd:,oTЉdZ<WY^|E|-T2~loB;G6)~hHRvyű@UDMWGMcf a(Y`"YOQE=:;$6T["kPP@tϭqkP&[1a% alP,79Hh}|?F ~Q,,[vx/$ѐ"A^&+}V+5P!~H9hIq(dfs` _6Ȃ{2$}c #?=! ]0R$ ;,CjF6u"wvN(*oj!F\.-W$"h4{A].fy\ e?4tj,r4Wu(d1|奚4 qEtB1Hjٙ{{=1k_0|C4#nT,6e;tJ!5?iՅ1'0gލвqj J]}g<엣J|"! 9i->lL` ee?^ZD|yygQ)^@tK\~"@3;m O~{jOhAEiq=YrJDH]B /0oGx]{#P޵. ۭ?4jPڇĻ qs\"7a]m؛Y`S,EhU;mx!8nz~}ܮشEj+0 --Oe;<-B>;u :=?MO/\"OW끜Fh ڳgX>-]}ZԺ͢Fz ԥ{|?kԞJ{%z\dN.|~c} _+ RH=Yu1*4Dzkĉ~4M0g=FPRUVu+֑(R\A1l*g-j.B orwN%64X(~D"w9[@?qp3A3ID?͆UBmܜGoIAk/ynI\M1[BÐYAx;&RNa_PRl?KQ['P q&.^k+B&IV- icm!6:xcOp1l4--@ yfE}?0#KpOH.m41B=ts*I6~=P(q$SnE8\Ϙ~dz &"zn5iڕXH*:ր'WXX8n'j[5O.4$-RwX,JW5\"S"1" ė,{$8U*l3XU}nevܬ a qMQu0urSlg$}$tX>זU -snm)F_ؾPb |H C}P>("=86B4)O M7.n-OXOE5+!~10bݞGţx%,@$oGVt#´T :V)\PIANsFnA%%#;$lV@8{̴╝Zi3jޛ6u%i_VfwI$AR.dd "D@ #.}w .mSej{?. s82F @2Q4n>`2F3t_uݔ V6\"Q/x^ᐃk EbZۼTY)il'@0x4<=М>uHGP|P骸T-B^\<ɚrƍq4z{~hw2YD  (_ɐAw#Ml.)!^`^^#u|._Q>P۠3\BWqg19q; 4DJw{dx6i$T1 {oOg#nX^"ɯY/ Dl4$ {J#7xL/?&Զs\nlZUn1i"L ڊW?;Cp9{ FGطzqj4ƛ"+V" dX)4zݴ@Ui qSZbxĐ\IVcͧY_ ^dZlZV݁%3|Mg:7׍YXSyxrwX~y!uR iέ0sHް;]n'iܮ9ߵHG'fQF67:!l@oԗB!p;..(ۣK-!Zb"')uZNUH4ul [zo7ld{&ۼڦxV}= Ml>@XGKL9Ae˕LU@tW ˬ b6L5-&?:0`o)  ѫb=[e@=z|'o5=j7jlv` Edbz$*^$1P\_3`krCbBdF5J u9@@e1WݷhxeuH)sgڢKO U۵tT Bb6_o<}v3=!>ōbP!uE.S9Y_.)8Y9,  G+}HTC*9 `5GNd?DHmes).cyq6S-1yCp^TO*H9))&TM2~ _"?}-GG܄/8NSc_1t dˋӲS9{Ʋb4ccc `}!2 tQJGN/ΫҷEu-+noDa>y4X<9v2߷Fjo? udgFB-"jN|${&{*M<.Jq]{1)sH&y;RL<_b-d L!`^xOCN'O⏛:⑘ v_0㶊kqͧB |DЂ?5L/*F /dWS"nE@/ J[5R)%WJD z,q.E y2v0!Ie>K[vTD@D\:6C]O,)vd}򍄪O]y?e$lNyLb6-=;?<=ۡί!2ssqg.e&{uѴ1,m#TRtEUQAFN{dVc>`1 CWvewL B٧TAɏ(#*n#ݏ9Pt2Ik[xvb5{$P嚲G 1~PX݀'RL; XQO骡2[]iH_| LZYCQb/OS4i\vS^F'܁, m9GJ/b1.[cUJ@woeycaWTYmbSG]Tf-, hy{(7 "&697;1O'^l}9?Eˣ%q 1rDf`6>4Xt:zC K{I+RAq'=4]P$zOB|D <+kwcߎ}Och?kƂB86}"~>+&,yn ioك{(mNd:S|2@G-gU7gi z ,tn|ЀgA/;X`#ŋDro/K;z;z*0gaMu Ҁ* "w~iD{Os !e՟jɚI\>eH8Ngre%ALW]73qF5Eyp(UKޘچϤ%fI؀O=cwiA5գ#2U.81 v}"D`Ep: ע5bc+t)᳂ίUKq8qe&3d4{%t?gW}뜋j8=&.։Dkm^qBªPC"6k]hC6) 'M + /ht @R ;K>tD09^Yiy)p* 7гK)[8H*=\_"c!ShMZ}GC?aֲ]Ap4r D/|U()ɻx_.CvEjcTu~]ZI-МGV0C漺jJX f;!'hQm:hF 0{&V~}ᙝ_*Q%g[fq!@``~bx9Dǁ[(i2xTHϭ+ܱeU{O% ;^6OZA uod)QJZql 5kMg:◍<̼R-ЀE&Œtj:0RWK V~xyi=N&b"iz]\vv7TE^N*=xuS|`_Oˏ -oQ3!ZLT-TZqؚ OaMEipth]V5A䢩I2)`L(sӿoLELNlЕ 6\],t' 6<>ųN$8f!(Z~R!n.:W7FD /F eՉAt+}_?SwBD_Dd9:<ip "3,]JEP4uXCr6($x G|EaB-!Ki5_9ciҧ1jh3!d\>jCKPU+0( )ƈHӁ|~@d6xբ %v쮜\0TwIx}^Ev]dFIp&m^Q0 .\qA}r|hV¼伸tlaӡ'&kzN$8lJ/^4Шv}f Q69O7AU:x bՋΟr;[ykX?SK"<у+C,z#TND(A:SC$mͥϸX/M: {V|6OHwЖ?2ǟsr\.ΦMD\}-ɷF((ei%";]fBVY 8P#|ɷ?&AV8΀RvSbDp\1]۪g|%%|<%݅YTy=0&Hl=(R˽ȔZ5Wޔ7YuE:SЇ0>5Rz-(2w/QE'[XZ|r$J۲[F; Crns‘Ta7ζk'f5oB(vv7jSJ%-dådG7h)AWSv}*퓏M㿉-)xWEee4\sIt !,ҭ_|bicrl܌&gIYBTN12_>oZ+ISvLY"_ u)}.V}̏k{1W/B-ǔVVA?)8P([4+GƪM/]'_} Ud Sv܌*(jdj̗l>h5ȊMxgϔ)CAqX⹪]! uTA,t&e 6gYF/ǸY3,8t(J%Fyd.P Yx=ğ7;P һʗ%9b;R@3 Dp>?#Kx Tbfumk )M(.UkǨѧڰޭ-khD 1BJ7 Q/Fs' c>l5`;AK?cb_,9IvY18/s<2O 3{#R2{~;m;N KtMwRHT0@4b9ju׵zYH_ɬ^8T'aK·7pFZhL$ XobmPN囍{{/Xeim6hh=NVCtl^gwd4mٛqP1pn-O׿R>w@w=섭y޹g_5, ❎OI>H:Pv8{tޣ(I,j+a c/J&gs|%G46s8g;[[[\0jII~ $SV+8#%Tj4yӇ\yFx!=N zR>59IrG8+Lʊe{A*̃z;^  xtZ;4r~{耳g1^8|[Oػ jgFd0c+CyGn\tן"W'aovs;."QշGpcOLM,>b~:B=(>}Z)e).ArO|s )R6Dz:MBNdq]f]uk"د},fIcEdؗOľhaucWkb03T;tDY4=,]Vb(- 3n!X,{,z^g.)`gL.H`k z9u؍<|r[a`8*ڱLX&}3oAlry>Bgx "]fѢScPuTJ.g$  SeS!mۘޣ߾ X+姭zҬ3*awiffF2Z_ZICp*U޻#5~/N/O/8ͦ'!RdQ!$_{XK+Tcb]=sg +9P-3 K`4ŽN *<W!nxT1*fWt4;%F x29!|9W$ C5TLXM.#{SXHrpw inROJPA.}޸Z z=CT癕~ "] ק۴ ]m,a Db-MϤqRJᡅb6iQR+ =M|n:j:כ>GtNznpс lӪ76PkCt>%)hi0Eb*?UbCI]58bƅ o'WJUڴл(BEoީ,*IĬFiPGn$eT?*\1jE_BX4uӪ[m@Wj\bvDs#bdBZyv jzMt֚jQt_2+Bq52fݰa nY͑lWs4S//k D^q,\}R{Z?\sR\6I3x;t٠<*3Pު;9'hg6 I961vK's_Ey+qز>^z>/$UQ #1Z };wN̢_iB u(/$Z6tJ`+]L:p}B,'Թ/q[+wqձ({ +ni5g_ujh4nF*[tc3!^^y9VRᛋ]c/w-m_suſLk>N&UlgF>lX1warVPW, QK\E#tMYJwȺLq<`'wGM%Ve^x7%y߀[dSw(i0JM\zϥ.b鵂$w冴Fa34b$Ñ@܋q͸V_ӫL@gMѷ_ufzjSgfaU3lRV+F_VC0Qdղ%vzv }1MI* VYj!ۿ,OC"dw]X,RܨS3]{r-$z"1b_/@x?Hذ/BK{=w|uҫ)As۫옦t4JSWd+7qc_ެN. [ 1 Z@y~2VZ-/ `k 孚W+&vyaoP%9l^UdwmOIwC$-:^|m2$7T. 01gtr`f?=-47\ @W' 4qM8$^QZfNC>6|]+ i'mƵkNXPdݲJ. צӼ]Mm*b>Df,֐ztŸ׭λ˔v&) ҵ-;رS56c*cFڤ 8 lzc ;4iw$t咡Nr*'Ν,}߽~Z X$?˦ ֽ+9 @`1g-|6qkbڝal\۾\Ԅkе G,J1iCT;"Juf#G BҐ 7vP5uRp'i&/ JQl^\RYXsYk-ZS/W}!_=C6>圣Dpf]8v OC&V7Ġҿ,-sld;4Ny>UllX2]*tUE̞niN bʩ& ^fzzEu)|8'NzC [gTʕF_-}x4%'BY b~>»dRpJ[{F⭗K%KAu!OXaNڶ<ّ^4a1Sf]9S'@?QZ(aబYϘO~}(*h}xjg'Fx[^=z5֐b?)%T%pm>$oyo]cw8EO|d?q rMv(LYX7yw&<шY$bئ"NUѸsR2! "UM{GJhw ,!xfxoE1UF sK&Gkͯ7[S8@pAFd~ ίÓc~ݬ~0x-jztz?Z.Ҳ1ˋTt@π9rG(H)Nxki%;6jN [yBGu~Nۗ`t{/zD ;_GmG%àɣXONB%d%XuZ#ɒ _淠:-/7=D!24Tk]]j|!H ŋ)Trm \ゎ@}%_,l_C`9rO)ZUxp.Ve4. QJt@UB{%ON6X5>_"ё<šWn5#$ٹ2 M{mZHIY=Fv]dI*Ӥyf*CBBn]8ǬKؗ08 R<|΢TlC'bj_r1kL:H^C#h5f(;byTㅰ3Tz=Zh7̯mmXjmSt~"uWH¼R)ןB?`#[Z1AWG3t#*)KKLl! q0zSѲRPŔ-Xjs++1rZߦccc`S6$ӽV%a]L/k 5,)ן{zt }SiS?&@ԸWtiTL9T#omxqlj"F?e rYVzp,rPihRU޻A^1)`ʟ p8{%5LրMOHճ _5G.n$T}6cFȦnI֙6^|A; ¤T۫k'ʶyGW~ɦp]N$ʉwV,cuQ3(NLK){/) al y;w_d/aF- S/lB-~}ak]i|aD%!M)qزU `-X\NTE:;m6 n8]Gw~8B9 {%? |wipxՋY&q͖?/Lj;a ڋ.>w ;sAxԂk:-tW8;\WAVFpC[9ʷఄNJ屫otinN E= Cc,E. nn4F`EGwK:;Y&3Wѩӳ;+Ui w';MJto;-/b_9/Fn;P!ANk8=i?ɦ hvbfV@I^ڥ4hJ8ѬZ9F8pE<"ܳ7]z\ F"O֭:'blzNh@I <ŭÝCyBF ;rAI1i:<]~Nt A;(y=!̉¹:Pw"P s VGSJbpBNM[KX{ƴn6qoy_k="FҜ': fD|JB=߉~ЦS5{yo_ Vb1>^T5?\$FrzZl +vE=66u~6cTV[/%}йח-M҈8:|3O>.eCܒ1Y֮ BOC[pHPXC6|Hg:Js0 'yỳHʭLT)D r!~;,k&YO6's6VŬBG<$;6uGz6~kuR$+ql} UiL=?+CjF'W6Ӟ)!_(]zǯIl4z.@М1HB'`P1bmlcj6LK ja]9 \'sqqYQ369ݣؾ(fba&8 Dmb-Α0}^2ehm+|Ӭ(W-VkQf&dl.p]I$igC:Bbƞ`ޚ+nnjSxG)ͼ9.#\jWyS"R-+xy؁,:XorIjvQ*{97j2q =]ɨ՘ u[/yR[IQt'dRZGVjKK+&ryVr\-߾p:Nmp-߭dwѵ^TFAڀ~{(:?ŠJ&Cv$A{^.?N߽\竿5/e)nӗV̹U؆OH8Jr?"w0zeaf0b—adtxz?Q5rW_Ϻj#DŽxMqUcC _B,}aќ}v/4=4>`F֏uƞkSw!s4y_L]!a᭤w6Co~i>!frPJ=E!c`#5(=(f;rTrru`?|.Yue4$b75X1}'cplrپ:x2?"FzmjDŽtm鄥F^CF| G{OG೔)j~m"k[7tlMPiBxjv]\Rtk>^V[}WWOCdk+& |1MKb}b8bv.!dqosUկuMJZhYTvFW}NOjpvePD?FeMvbqlwKmzewV).4;}U#{dr іy(ߍ=֕43B '>X^(1)FLxNr9|0KJlG JCN.T{%j?U ^P{eP~փهyD|aՐnPHᄌ'{5/ӓљrulxDleȘ䎣Фg:q)u6*AώB7!1S7Ŝ_6|tL-3雾 :+$y7svl|HK2tg|SϺdEK:hL9|J~'SVZcLEQ#m L6CN 3龡gOҚ/ռG%E>vIc/c=x3\p=! g,0;_r9i l0N|(C>HHR,f"5tq'ʜEoy @Fj-nD=itbSI-ނzrEmX=!G,Ǒ sozAHՁqtNlǀ1wQ?$/MOw03:]6B u)RS'(PNh&baXGEdkR<~/)-0OSIΠHLvBV|~xa~mKRH[oM}Bn|E`,CdjisS !zgKȔe8$= ȄњzIz& Pex.C~Hs.~=ODُ?퉯W]|Qc D".uҸ`ԹNhǟy>nӟ~iA^8Q8*щ!+ mMޞn]м}pK람~{ORQ1F!)õ>X$BB#q5n'I  Bh47P2&b}y+lB[ vE J}njzsA 0ڬPy"kq9áWbvEhƕO?A⍉P=̽y]Ԓ*/%/CWȌ"!ze?%2MׂQՕB\R?%%w}IuJW4'\VOaz?gQMr@jWQe=JWP^xc𕃨P <{0 ;_NV^7Q,y`>,S; $^3f>޹?TŪo;8+ӷ FV"]+)1XVPwh^¦8o_T.NRHd+H 8\.)v-'gPu:'_sx$ V mE6]8w^qi7Tk4V֌~pRXB6kQP卥U)w jBUL'!~X)|DCM66(ٚ#Yٶ9IGIJڃa|5.zi!m+Zs!.4pbڹO>00,߅"S%U' <-%;e2_#uxqXّyӥ3Av'LW+O-y%n[ s?N6_Ys*mbpctggFrv*}Sܽ9bZ0]2s)ɔW%z>\9p. I"`]oa x0@9tJtcuO_-V{#T#0ě bHʆo|ն<ۿ8WF!J&DKx`5;7X'78Q℣(-9&kgr)p=FM瞷-Y"ĦՎgc94%[68t70n=~Kdp{ŏoR;-;&2~)f;T~pyoAIOf_ U@#9Lw]}ގ /ު"OlwW#C/cFA<{7@{@~伙0|mKbxkϻ]O6h-VzcqO AC4ՠ}LMeHr?=m咥i];0Hwe踤x4?xjúi<(4QyO x1LzЏ'CH*Ӱ(!Mvs(W)|s3?bLK}mvX"-NJ/kF?^C߹mΎ|;ޘ4͝e05e0em|ےi)QDvXcZ>b \Y w'FpjyٶG`1]nU۰{; @:ʇ>;ĝ jgOm֪G}bZ Z k# qboCc)|c(>>8[m%|=up= 8tʀb)CVw̟gV\p)AToRHB)='WT"(Vg}5rZ?OsTt1?:1DF|V*Duti_)eEn_Yw]7~@ PF+Yg}܀edEm`4& U!_(h Ƭ.ѡDQ/4+oCH WtSy !F\vk,#,%NT;}jK?X>1Q;b<^cToW}OWxlvⲠ^ 7gI:Rƨ#VUϵ{ FWmтk$ Ԫ~UiOuMOo0snW]O#g2/:\<ޤM| /8ڽ'; :h~Qxj"6O]A&m{­V3N8:%N% u6<^ ߸}ǔ/l~։%AMFD6Lpc.ĔL X.|MB6N9aLIC j- KzdwÂs"k) (@CAfx)ej]FB%|-WDv@Iˍ_SXnRCW\9W2.ѼFB!H1drJqW*rK %-i݅3k |& 6#{%w,M0* ОԸLgbFa[|9%VzAⶬ5@QT54BCސn 63ݎxRcesџ3p'kL >I6Ά[KG,rzMH76]Ѭ3)r潺Du ("I>R#_dU5_iEN5rkM:{ݧ)P h ۾ϴ!1mh=I槚sTyl% oSuS{\j`xu*&KR3fhE_%_\튰n}{Y\y|+gyY:j2=׹P~FI|J {GG'ӴX#.[ls>q\V~^hl^29M{.c9Zvh?K}0u#]^SWŬ?3oAKW<\\Ȭ,M]22T&5g> 1.sk9*S hLLŢ%hay Crq;?̫ԉmTQU?p mWXfy!\gzs@cl_c5 doi|(u9z@9#_)3'"έpO}wش?+]ʳDz8T %wt S ΀APw.a6Zm'T4ANs*h/dz{DDމRX 'm2>Qҩhp^@̤.}obK;ؙUFa@8Tکi2^rUrĹ"2n[a\Z Pz9SćEJL;V )F..4REqN%NTA8a&_ޣ0=Vޤ'.&kJ">`b$CeG(|fQ%  /N~0V N&q;ᤞYʷWN]>%M̜0$.RG FNJ0胾<0u86/jjV`hOp&"aeOvD Vbke+k1JDbv.ph-Ia'\䮻BcN TeNz- -8qQ^KYUAObyIT\)XұɊ/H0}u: UU7cޮNf!q#Vg(h' :HEx"F=<AĐID3-ġCnrWZ}UZm8Zmю",$ J.]$įUL+Ye\!-)`(lc__R4}!S37^8˗^A(6S\,(L,n6.#Ibg],<--y[ DoF_̱:n{*1<g{)t{bYaCp_|Ta 8 :Kx,{T{ж㩵 F+II+]$j,'-7 's\Y4IPd(.e~56 bv"e8tiwԋo.$ng8ZzKܴxK^/g,zyopz<ًqO`0Q1Kwb.dgbJwHTD.%8)&ѩF< 6OEk Y Gz[դ"u&'W7WLG)wĻd "JDDDӌ*w {UMݫFGі6AR \hHڌ/ciVײKjvAX⽒S-56g:mO}+HU'ߢy27<[n3tq4E#Ak!=buT);_wgHbݿt}nYۃ2zOC{"]8:pZ^'w)o 9}u5DE&crFի$pu?}~2Yu?ZYv?KǥӷLu|/>b +5 tt$c(K.vv媔;*Զ(C#%ǛƇ11?->bܕsgMBz qu6]wx>Ps$%x}˨-QryFushryMǓɑOi4Xzq2ǍJZH8^LBİetuNUJ) uZgEtpA fmQ)3^$eku|֭X_bpל 0˻dc'T\'Aע-OvOc=%G#p7$:ff,:jkd.yHFٵRxt7 "zōjש9Q4dbQa$Z͙+d3e2rYxXɣW!(A+}{\CAJC_`īݥL i4j:2D4"{48%ws':2zJ)1FixԏG[胊e(W 뺽T]5U0(9ՠYu̖2K~ISt iZgxJUDۉBE;>~q F r8s>CpBb$bp@Gs;9% ٝo 6)^fIgLPXxv0#+6٦hlHTu+ lE<LMΡ$>+6݁T>#Sf:$#ua3.n[񫝈+]~E]tEe2z r!K~ 򹏕y.-[3kokc\ >W>e!P5 ;SHzgftgtbkv_aOy5' :m/ ^^l?l{*a:}~@DC闋-|So~~bh$q' TdթS_b>u (xYɤ7" <7h.~9}c~ 9خ_2? gg󏴾~r4ImζxבVWs-˰ū|+^]偨65 Me+y*@|Ӄ%#">&Nοu,wiFzNW!@CýܒPxJUXDMi4w)c%-{{ /_o{qo^?7q;Q?9U3&:?u׮!iu3^V-EqWsw~5ARw$"T>[/јS.̨)S((&.k(yؐ҈X{'f ?gdպqɪ LeV7T~-ϐc'NJ1)֤H?kCyOBΑG1↸ %sy Uivzy*x͒Rb>oW=_B7#֦wyjn\ c;/G>wCSȄ2Y<K L\ Y= ۘ!G.i9һ*Z diFt:`+aéSrI m EM{*XjRf0$)ϳYFPeҵ(D ~-e}FDpH.EZR6M /jÎk}q!ƺ5sG$t(ĴIKGѥq mp6qӝoA9 PPCgQ.Gиua:0A3G,of)|(Sц.~٨zzFD`?o[͑fԜYK)4u -[ܘ%BQ 6HzqU֞zTjzHv?A#n{E|/Ț@{?5Zx2vqDyUBwk!"B̏P*y91rAg 8dT ޽x?~{4TnF9u*CJ[3,emv ]WASVaLaPbkp$.>"j46Z Q(zlKZWj/H%c9yŘ);k-1Y- m-NG}gtOO1?#۵(} H&Y&޿L54VI]rgj6GҝMEOҒmuڳ-RgQ|?%/ԛF$ 03(6PD>h01DB|#W P;BD?8[#%pLۖAy6RO 'I R4x N{zW 4|8* Fc4oo RRYK6dmզ P/ҏDQ=/{(O$((c@#ƧD\$`_Gz0,Mb@+TUYSKp)( D9Eey7 HYb8I,v5r>V<ƋyK\9 %D[_AGO#*ӥA41QVz,K#Tz5tlzUcP>6Q 9K K=!=mGrhS%H]R1_  [Z P#6a;cRDͅa0(uSNh`B>.Rf S6IWzPNDFĮ덦~x{TQzÕA0\\GGY, 4{i296]zl|~!s[U-܌nPZX^b8ƀ4(O1q839*?m.#{)Zۍ2J}uORBgBqY݀ǟ5ԍ](`*Qch2\eWif|R.π}9O%FNm{t\ƶm֕\BqBo!ǨӌED-Y-Y6`ttt[D2ᆴWk]6ڒ}`S ¡h-k$gTUe|Mؔ ` єX7@p(Q"9FM,d+@Nkm{"l@\8i*eVҷ@XۍD5Ӝ#(F̆G %uV ?0i mg,D(bE58RZMmT YKlRX y6$aM^2Mhf.='bD B0CHDbAO8@<1V3hsà u~^BbMتdT"`Tf=Lt)`Oӓ_=Ϻі B|!0>̉@-+Yx6_^mFJ1HhʺS*=^,3^@BtBJ)* @?Pmbx 40㏣ҡ/$$ϛER tw}o61h+h& \S*S$ qbj *Ool@z#GE:^ ǶJU( "sskC?ty gVi$e a?oy&>@Dg^V cNo,9(UA\_9LHTmNJx~E(t5= 4pv+mWMU7 k$ ?1Js)J?+/^a.z ɕB 0m Mȵ20! DpuY|ΟqިLwx䊶WOpJw'K[wme:d>T!24%o{=뙣x-̐i ?̐gZi8]9s,MH˂öftq[ɜsXTXx֗$Umw-ccZʛQS`Мl˻ѓ⾯7 E!-1GWZV9C2YDJYՁ۬UlI0"2޼ӯ{鳸qioT`ʄ~fc=/&ϥ%3{2_1歀0%8ݕObÈ4`x-ow "I%}T%<73L妄Ά0O IisTV.ӫ/ܮ% yt Yklm4\8ABrYWW %q_ȑ.@5o>0evf_f G!ig#{8/&c2Fw=3>5`n(m2 34ANEw'(qw&\DΙ-_r|rŁL[Q(ftz08VIF9s+  Z"`yW&gG0U Kz8#7Q>$䈱qd`I#::W '_= [tm~Z׻+[bp$)5q+ oU=02kARI; ;Sި yRݕ)g0΍/[̉C%Zx?+{ظv@hc2Ec; )@8yA$-`m>ѓWs.5L%4JJ)%Dj/BTAyF`OWWr#@vVV yw:D&jmf=d>>~vڕUD9>9?(v"HPEL쌊s;D"\_fJ{gYfAJ)Β~cyPдGqW=,dE#zhCٖ= :DzTa*|[tYEsP''z#.6Rni ![}{wY3eQjK9.?1m;>{s-T9OêH)NIOIx:pH DQjb1glJ|w{Nr>ߨ͆Ϡy r9܂oQBʺGY4~0KwoQ+ qL76*ͅ+^p^^$v1niYmdOtvPs#3bKn4.? L ?c8>O "5hs4{qk^Nb̦Ƣ>uN܊im1 Qe.,8-Rm gG]Or>.؀P2q\!WxRjf?I.`MFcKr7?ՋdJ6&j3]]L5  s3Y\a^78lrH@ʭMGdؿYr)1cDo$ցC*܁j 0X4޵0-_PCdi؞z赼U6t/H”̬> `q[,ug& R\QVl>`>M+2pNDH3<1|Cf]w(oa9˗u^x1=@9¥uB(lc삭^,Zy0XoMb;6t[Ft2niJuya<#'V/(/Qs=6ڼ*ś!eˍ9;3|ˋm<Sfͭp5x_J2Nd^3LJW|`ˈ508.N/y ƫmn[dRAFNw4Og{ɮ)c^?:QCcձV9􋚶v x) >98}pV= m-;9[^b.:b'IZe&j*wcmނ~`gri7jj{ v_sLͥjW_N |%ev3s<$y[m'y15֏8u+;I6JYgZ )I)_' }<LJ}apA6k-) lI$،f&͙w:LxCLH os6+I|_F|9iH}V@.X5,6h"JOeuf@|eV?tJ8F].o\$nD6)kC > 283 Gp|m+*Vw>6qId}?X\l܅Xʪ4wޗPJnCt2:FYq?>tJ"e rA$}|w1,kn#H1ѿ]Yohڕx ݴR Xgu[Y|HPXB8s0:'yI܎HQ y^?tkKget'xyJ(&D&iҋJ(@\[?C\`Wee4kh4Z+ b7wؗiՙ}lG a{p zox.͵RTH7N4mNG^m}bDWX^1 '?Z;Mh0Xͱ7~N"VKf.)pyI4 ;f* mG. ¸%y.a6WlGlWcǩ'׵ldך`Q_.o󵘓Z)vYgS r^aO'$?XܭOhsܛRkw[ Q ,lո^4&8 /ՙW-/Y4ЛmރJqO߆fa͌|91 E 1(F(ZS6Z H^89F,*ڀb3:z-o3 n`Fig yPێ%,x''oZr~aMxnc(p 4"b E=ϴO۪Cq1Q#iWq (DON?~u}i'MǶ#K;wϞ'y<|C+=M}bpsk۵ϯ]-~{#wKnHf>?K*VLk>y9` :4UGަꢪ†8sc>@rw<>`F,|-HH#t%N}t/W0XpyAW#_JQ͈립} n1N.|nP. )=+u7MBJ !e8U,ڲxj2<P {<ɄV]m Qrߣ=ɴ2Hn'Brս etJq7Bd=(e0 \<#VWtEl۹[tA*Q9bZrzl2%n 5/Ifj1ر{gy o h񁺈s,Ad/ԙZʴ޹Ã`c<\ӁdX"qP'fN1 %Ff=>IsJ@<2_' W!8 tP޿ SH8p,3p5cE_eۄK2pV٢ @TXa Jj1il 7eT|*ԒriAƬ2_a;uPܠ^l#R3)\'V 6ԓmNIKVBjs}F \M2h'!C;o\=w/'!hq5Q 4o8 MR>bozq[6]c=b Y#/;i]W{1g^cF,}r]:hGH1igϠg>e |#cW8m 3zaSێ]Uu]}{4fH'm7߸!Qtš$r%"mfaΪ%Vv67M [_<+)PIEp-O+pygp!pwE%ĺ}`̫7v M.F:2lzO" P\pO RH ݽlNO4`Vx lSgwq/0.m_; 8U¨|q,<Nkg.̻Qyż0kSU:hoӄ j]-ߪ7ws^ 9jݜn[z7dS+z ṃ-u\@lc-1G4Y^$Zjy f}G'[<$I'*&OK9E\ZC9.3=}z K [٩3ֆ< K2еӠ9e5y.<-Y-#f3UW+t|MϾ&վD[D4p (eFZ2IWԆ+/]B^f:HP iݗwrGNcS QgS5D^G+N кgC N u6{4DDl@3ԟ-Spb 5XҙO0V7@n)#`8? C)QRN8ޓCLJ]fw26Ἐe!7gG-!S' Q!!$N݂gҵTr ,MvdC2K|re4je3S4VJx[r{R-- 2*(O s(mh'laЬ~oasS!Bfs[zɳs1orkevDX#", @cfCyHDŒ9punr'}[{&9gFG: ]I 6;M^ҽRqD0 `M`>_Í`4#\lxNɰ}߅=ѓYfYcy ;mdE_m5Ar:#' M_ȉdQWخD>+2e=< 5ܧmn1 ̐ɠ 5{?ҽWGaXܦ_uJe ٳv+Mx\>pW7l#cKɟH&ϴZHh j_,% ikujAȞTtKUyF7:Sgo]KY`&MqUh(ryg`=(](3A(BwPJ_o߸;G.oYqÓ}yNSxj6wC̈́@ \c#qkJ̦F^<vZ֓WLװIP!X`ׄ:iX.A\ Cn\ ,` hjCB`B` \3@q]v/`  4/лgӘFM/X9x6ͫEPW1WZ"?D:`%hG G8هUI|7'lbQ9&I?# =di Ź{Y0< a5sˡ1Eax<]xm^UH 9mM*a|AjA(el$W#zeXqv%3A i|rGkF`; yywɲPC*=؁@ mC-/yKJW)tĭtA2AV,%ȟw caV<}㎱Kݓa~?gu=9$Wz/DAZr +Cm8 ̝BMH%kț%#Q=c4a 0@%7a!0"҇5Th@F쓔YqĴM7z!0X+p71Nfz΀lOphCt5tXwã!9=k}n&jVcECe ɑʸc6ϋ#,p,Ku5ƈ," bt/lO- MW1Xv(|!'L-=. IqDfW?eW z3;`DbTȜm6amȯHbމPܥ*:a–FpW}B>qYq7:l,N[&K(oƒH ޻Xy|k!X0ˆ¼w׳"]u+DtHm1e,VVDwNL=Yͼ=jӁWТ(m$K]8NbzHƕ)>a K=9 J8H(BE1BQܔ,sXm,05 dþ𐫙 iA2?f& Qt(U!q ˱K 0u/&)mɴüoKY~bX^JJKCqZ o݀#vlb$ -nGٸ'o$J%ZƴK^yCq卩(eO >*o@%  ʼnw|_#9*! c uRGZSsÂm)+󶤓m@wMA)/9t؉ y?ɀ O;5Ι9[kv禵ib@Xwg sca! ;~ 8#b\ xBv FJyCqpXhsQJf>hȣ:xn|\?<=G'fX蕭IE/isj-AU|S6IqZAMcL%};47B@̠D* :t9c}Y/0lEm*B +:T'V_}A+jmL/ZbHdD! p!u5ZGS~ɒs0h_fNodEw;sv2eɭvE wլfgfX8}_^'zp࿂0p']ƥ`eD dӚ."|BBNgR n5tpȟϭϖi@>|L%9z&Ǭs* }J( KdNxy=#yS"*%h%t0tpڎ[wp z6<θZkzHJ'·wyG)WCaY'$^—.'>jc[J4$w]h̏- Q1A0rq#0|ӂuӕwv6)$Up7A8B[/6Ab"j5M:pXhN,c i/=|rS^߫-HH9H\e \^ܰ.>syqz G }"6q LO6 ^TS~z/¦vLN,Γ3\Lm{[>fڜpՁ|5u.x ϩ}six&`zBl w>E7iGwvX Ljd첒X87NSB 9"x?z22GBzPPFjߧS9?R.:bhyuCѾmRL"hh>/DVfd%5AF$[fQl֠u\?GV(2_q*8 ^h)i{7T2+O@ $TтaM\QS_ۤj^ʄFR3EgB..Uig% P:0f"\7Vd$W[.f}Q V4gah2j2-KRnvޫP9d9(P 73 U9S{2}4%v=[ S$CsX 8Y*K _ kmu'jMQDZizիI$ f?mHX*[:̤ch#I!BlTbDp 0;?@6T=?;h]M#m0\08:Ni dğ-rHkΜqi-俽i[igJceg [٭)OV8|$HM=#[P++⃷FhpݞT!8pa poQA/h3 $Tԃ.bWQ9AZ?zXBza=*lkr ?/')dXddm 6Ciǥ1q:pͅk0u^#uh xWcp1eו @ i@5\us( ЬÄּH & +@" 2أ\ءtGn<ܓ}^??P}qB/xPixj @QX~Ab.s75?O-N+MW+i=%gLLBM1Qk\'FZ"߰RP%:Xr-%Bb'105&0l,]lܠm1G^H ` AVHb) ֎!u͠X Ti3h!ƳO&!yf#g#& 8? 1 |I$[:~q~WGGK y_%V$/}Wdk\I1g^jS%S H86TV9$d"&"&#Kp\D¦?uF/:S5)K(a s0qAEc/黢oQ,y1-6J (Z+HB.d15x e;S`AOk\JZU:`&V1Gɋk 7ș$&)6FvDĎc (țܶpEB0h`!D2[># *}Ǩ=XAUr&s|tL1 Q) gdi {G(r98% ɜ+bPFLC4>MkLȋP hǵsP TE$y3往1: 蔐FD'{@osS Ĩ{`_P5%~R"Х`ZzVJG @Mw+-ȎMz$mj2H@Aȅ>On" +U|$CiRy\}{NҷRq0}*;^%5 \3VؾAo`҂0Nx'~^3_5AT^8KRH?/::Coa u$n*.“_/;;]vӘfgKfli2@'`FfZMU? vI"*cGV3X>S#Bmmx18y 1_` y䇩~-Ul۱qL+uT?.ҡyqwd]G)"ߒxFw!沔gT섃%+̊üOy#C[p[p)^Rl͌OO\kЅzG$mA0أ 7wm!IG,KCֱT0Ϡ[S`ю=,3qxeS@ގJvEdVmf=  3Ȩ(a!'WC9Ge$BV V1O\qi-"X`ms+􄂖wHR Ɂ±7dtˀo3ST d Ǥ&'@\eg ԙ@h]h؃)ZvsU] L2r`stE':9˜/#M1 t>`0 )6)O Q$8h|b;^\|4@X[ %iKO`ˌiV4`݅=ܻ63! !)t%0XvM J"ri}L^E 4Hz#[>m/JGIɉmBXݒWW|?\r\f^⩰QDw@PJk( ڸX:y$B .Za#z2$ȉڢ|)YQ%F]56 .eZm*y5 ΄sr&w9wMa믵Ӽ&NJX_%7Ҷ6IQ$T3uyݠ\[lkBsqyZa% y &950lqaI0A F%jvZ"fU3a!vALB .&ĒXvʶ~e"TFy\ǘ=HE !EXCkjpA5Wg \$>Vc")2OK+hՄ+zAVЊqq(\jnѓΥtY³9d]*i_:fMF~?=T9뒎_M2"-lԌw&o&b6 F$ 0yAAԿoS4G(in$at*Ht7i_ސ"5D)Ɉ-SRH( #1BsK"G9h41Oxa3ypW|p=Z[A+^5"?{[-7ɣހVŴzGdD9n^y.9$CotKvu$:t݇wdg _riĒ!7$ `}Knv[E޷0 tkE5bPX4w{*T( :ߦL=maw0lFW-콵VeՃ> B"YP{);H"aA*}?Qz zЕk`#CM|^Xv%VDI.e䚧2b%@1xi%5+rCR<đ&շf <f-9VG$6jK !{Yh&ݦgu3$UfN}[g̓0=!u(6xJ!4- k$ P{ hDOJV YkK|RT "Ztnw;]pR)qtD(XhUψ)Dz7Pa7ѕBr_Rmd C:FC5uĒXرFd1?PdIYA-١p{7nZP9SEd]>ltPFu~Vc s0~ o8pj k=˵*jɬ[30qku/13QV$&`0\)CS 8XE \Ñ8V:L?@Rh矆9 06UƌٓeS"ଘ]4hk \Jv҅HY m:xDS@"#!/8AT]t쎐8ArWEN[՟''o@u&! FS Z" ); qfڲ\o؈,SD.Xp5k}ZeB<(&ϝ,ê&j:^ FŮUF\i /pԞ|yԢ%-7nwloG'0t5dCI#(Wa/"K2=wgXi72,"JҸ0@!⢆,nMG4[dݓ0;Oae]I15( :5 S יYB*ݗj~  wz%{0 i$\l a0[~sbOt mf^Kiw CB\<њG8qKY'BJP'@uM>&ڄVF4-XyJgCg@$ vDLadzΆA f/ +XEZ*C \zYš}(k ޡ_zYmtlZK8u Iʐ9%ʆt Ӟiws*?j*Jd`힟ˊv;ASB7j _m %ARhFd X]٤'¨hc!Lw^ ݽ8xwxpKO}ݳ/=z4'\93sEy+f}vM-U?yX v=(X#{^#3nMH98('>vS)Roygkr[~).M4tL[Prvy۳Fx¡Dه|, B\_[G>hh"]Qfk5h&Mq42jxC6&tL<팥 q(,bn@| Z)GbMx`bzz3sr'g#3>ɄWcAb,.(A/ BtiRV̚K?q Y-Uaj@/S& iŐ%ȖyW&[x ?9"=f6###v8 /̊dRB QJBQ9;k O% $gsxJW ci;+Ü/v/<+jSǏce~lCs4no\K#8I0j_X77 g&N奃a^n']g[qpXGhkw9= ~-A79c|eU޷a L.Ir2Ay#]Qߒ.1qg)7ណsdLx8 skJ+]VIS< IL$(}C`PA(x͒9.BC 9NUgh਍?m' 6GCCœޖ:k25Ni]$V)u9n1|{ QaE ahz2؇ 0s]hrOd } I2A1c-|.8(`>1O5Jz9f3oT%h}H@^M*=X؞)aL3B3]Q 6aE=L+DE{--8 O_}qG! iDI7Rl ghdl/JGy$٭䝧oH܀ +rfū'aDeÜqLB5#q*auȳ]TL4Y]֖p; 4IhWy ZJ[-dL7놪0Y2hI|li:yigĸr܆xC},1- :2[Cr.C0'lB0NƆطM#7<"hֳ$am$A;1\0v;רZusHჵǸ:@0Y=G(Ř*Ry9$Bhg\/) wWIVXb EXX0A~PbF7aHY}CH#)QnX8.Zj$O t$SʻQAa. uP" #)ꁴO @Ctz&3DbMkO<(A540"8Uc7$ hQ6tQ56OƢtVoru/(.maZ'5_NdsZi`wc4 Ihδs. e*‚+;RMVk!+?7Zb:86o"sb"SF j`p\ ԣhe)C)6ڡ>zJ"Z ygwj 68&+PRhzѮDab @`YP oEI6 ;ϵ f=X'CSh1! =.Hv8R:cbZp^}D{ѠzҤꅇy>6r MaNA$Q?E(;*. ce;&C4r@< U89]w@AMFPz1 v!L}VW[BMJ2} ﶨv`'6TcxU:Y?<{\)<ׅ8OPp_H ń z#7A霴K UhTǤxm `-僇|KQ$sAC.C)~ I" S0[Lpl՛w;8<A(vC\>^5b2w@Σ|3:4DQey V;F\"k5U: Al0"|+]p 0x~R>$&;cXlh^b(g ;lu!QIu,O7ȚAt~HZlD_tO)TƤmn,Fa׾cBh8|.4|B$is˶5#\yFp!]A8Eh/r8XeВA Ff'&.5T2Fw`= *p QٹX&KP`%cmPPC TC>ewi2DP#EIE%%4/rkuK%ZI-0%C$Sy 1F4=ˁ4K6P~%m-5Њ8,V*(J %AGv y=Z7`T)$n?#*^ -g$Z dEYI .EIX_x#O%mc]K[92VPR5D7'!\6ycOB8.߆n 3_6Zq\'EJ쓍Ϥ(> \ Vt #ݓ}H_ x,%bFwZ?<= ,Qfr[='f`gG\'׻0:0GHfOoN2vom? u j!>L6.8LC]QG3FK֏ slezc?KH9ao=!j2;B,JvDb)t9b~#ԗ?=:TR֓5 P/s4;q3} -]VZ4}lZ0Q!7,8`Q d]dk~ CKzc"}Zx8aA(OymgV=%>3tbډMu) S ,"VGG%YdTj>g q]R= ?#ؾ'xVV14" 4k;6; C(E0 Du]q4m4kg%}jQJ׷z@I9c#!ĒX)rNeC˫q g$ EAұQwgڤ1Kr%6faa| &'`/zZ%*N݉JZ dEKhG9T06UcA5rmyLW낺qEOz/(M{yr5i#rhi*GTr#ŽyExJ~঺mL%t-;)HS4gV]_܀ϷhWTF?oO@=9td]z(nbA4Fskc^"qngE\D >Q $GM>~??=zrnn FCDA ҝ5ld^ 4G+ ptKĭVnNX* s@z | ]<(a @b5W %K7L0cp_p=$:g&*2riL+SEUM풺E(&WX1 ГOa`aRPWƹH iM @]sj(oVQ@ iއTh)(A9oJ>pK*6BDo9D:&u`Ao"2 v@&'mskS؇& `le5tI8g^{:n VX/@0o}n4Qbܶtneܰ7POxHz)K#w+V!X#@6ӡ -rb!rxBڍATH'!&z˾h)_FX;cc[ փT'"(1{!'BJƔ6"[slF:=47iXI0"P흹bT-AdlY^$YSm+i/ ŧ Uw۟~[VZ/4>A6"!y3,HFZ2MI!aO"ŀ鄶pa +JCi!@Ǻ$~`R A?r^m÷ܺ%!OG8GP;X:8^'%&@1h"L;:b.m\=WI4 }p\H /\$c,Al**Y@+MӨ&k*i1Xy| 䌍 X^Uq!홃z%+Г(rh0 ?68-6v>(àXD>ف;$]Sfׁ: fњi֎uNAcAǔߛ( 82 aO㸐BjgLRQ3)2P8x'j?H-*XN[]43|H>JƅPy6r.Q>E.K<\S૞څȱl:2qd9:TgEv_!j~OF"okAg'hLmw>ZRDSv"&K-Ol6׻f}$XXc%Z3у,RKTՋ1d%7Mq-s!ߡ? koyޒ\0f+zH`ldВG аƲғ8Mř ?r9Ɣ  LSSNlsSwZ'g$QjK5 y&ȻnYTfu"D_lcmN}c;}ur#) !Lw٘&` fܽ>~;_\ַ_Q.96M3_ͮ\Fkiq=:H Oݏ ̳vow}ӭY\#S+VM(/lآ.B";T;/aȩ}3i ZGnd.`/k:nwW-Z90T[ t-IC{^K덙P;j@H$h0Hb'K[Gh7pc@^HܦJ {:Rs PA8tSRJ0\.  (zws a)Dlݒ{GjJ>ƈ’b+fZӡTF٧n*v7V5/-q\c)1:RuIjUh3T n#*ߛ'\JpzLJlB{8Վ9VdH/Xv$2W{7N |]qaj~,31(q\#fz3a-vq<)Bl:H',%L!rj(l wQ aR/XBVHƙW#CXqeKz\ <.IYGZ"ֹD`JJy+f3R4=S5\eZ)FM64ۄ/5Wd H;$61!ӽO. C//;g]T0sAWݬSARoU(& 2̊-@ël#2N&16Yf/g9V$!GPxK^'>ŢmY&S^ * d3 $7!CfΣ84\؝fQU'agbSZYb# QCde {Nxg%`kXN4Frbm7|o`$ PҞ#.NJ!ÂWLUX&QD@ p7Ft_"d.yT{6L2ӗd-obi ˸]f~.;zTc:x?9*p+NOy+6YF k,uIʜ6npP{Pi-LEOA ;-^9:UĽs srK%uKY j7Ԁkh ֶIGaSgNw1DwA 0 Rm(lrWL,nߛby;0?~Ɓ݃sGZ &VyJ7s۪#]ebqp7?N#ИEHILQ ] ,S·8k*঑21/nv_/|MyYE5E.KqV7O"!~Q|{,;HZǦB28V'ZW8i:3=̶~[MH*GSJvtHoo4,S?RWfVZsdCF%߲wN9^ ln38};L? E;?,Q @q%[>t +D|j^(&Uv'g`k~(4uf邏bxVbvW ۪Aj]5D`8.r]tK-7VG$D4vT ["ӷu}܎%T\܍$tKWNqۻMԴi I?@b_ϝ[mChh*lSE^+P-VmE^x6Xr\vɁq#7F $p\ HbزQlzE3􁂪 ط8q0$8t s?`Dh4GK˪;;͡@{ި_ ZCR03 Х;6.X Ɛ_D̜8фqăM @;8?" %ʚIIpe 3nR=[&PS^ڧ S޵mծhvS̎qN8ߏuqlX9!I!4Jez@ Tx?-:v1`gsBϗoq&~Ng@U`k 65E6XƘQj{3}b/g<^9C,Jb.J׶pxɭ@sV3"L͔¨jm/9( sh ~N=0,q. K<y1)Rx(=HݒwWuy f+?zRJly.EBN[k\I hKd" iD_}znmk Nx&d|<l͵Zt>*0H$LY23]WklzMHfI:ulK$7UPrF*mD-l;aFһOY!죉Y>B]&6t,qDMޑgxyoVx_ &XL8Ǟ F&Dϑ~9D9 Eo D!|9Z QLhG;PVV~P\N֊t r!٘ A"ֺnbcRCB X;:dCЅ<je\=>~9ЂX%;P?T)('Q'V !vO/TJ(} <6sf>Cț7wMV ѥ=`1Dfptcu)OLSjU})JJP!#HTYQtk`5Q45$\ذq R6 do\7vrR<`k[Qdtzq#74]˝,yTC{{&`m  rn#D;og%Qxkā?k2*e"ivZ@~x.e)sK(C/ȼSL0$ͧV ^GU%:e8;9RgWC2ƙ? n1$-WY22N#H;!efj]_\m%gly*3cOX>V! Apeq C:k*ʜAr0GU=|Z!.cU"vgj 뜫 (.gs*y$gUe`LVa-O5 VxO7T=*hKV^z./~|̹+X-KMG_񨠆կR6i]ڭ$L62|՛?FPȡW!fn5ZlvES/*n1J&~V#'bU9we^C?g|9M枵dt-~G"L1 Ƒ= ڢ2)MCoQV1\Jw QOvj]pkУJy@dH8/W3*V!3tPeTxes*|2$[Y+K4YKKGN=oq( z@"ib+;_"c1L3 tƫ©1gw WL"(ӀHu͘|έّb$k}֋\8 Nr?vac" "g$OP**jՏ djΚIDD+,d^Ztfe8z]N_WmUg6O GԱ&?{J1ǭL㒜Uo7@#Ʃlj2Q,#™+]P5)Z2J|#q{vAE-wr 곭'+Mvs/㕀#+~;ڿWxW JXǟ2jڡ6ƍlJΟ/gfTHLG:u ?"j6ELe%O>̮`WɈC]p]i+}#*C9MV#G#;{0j`*N=TkJ,򋑭 F(cF _$O/|U3F8i/H]j^VoU vf8*[uN@VExQ98bbHɗ)05" )S9}lW=V_4etbGg|]UYE25AQdJz[$xkԜ9o#7%q ş}OK~ߥgߝsBzd>2NOek?)Qt&nk%se{񙩢}΍4N9"̏Y`E9Ik#fԢZgkїFF֊>W).H]Hh3 ֺp~S!UhWe^ֈ@Wى/pmϕgsFSm8>2*^=rM Gr!>+dΜR<kO\45jU 6?. fQve/ctw}b#J dU6Y60́b#3E VzvUJ[6TLQё[/Lĥ2eIB^*DՐfZFU N[1x0gu z`a2e#A/idj"]LGd!۵MFzLl1<|b+"I""zH,TDnCO3CIZ𘙖P⧥ɺ2Qgx杇:S(VD3}U !SVOk ^şђ9s0of(r 㯕}U#S5 ΪV<^ތ"#;_+{B-\͸3s,qjٰl˔M(!|鄎237kҶQB*^|C却~d|2a#UJlFW3Y72ɔldp{TFJ9ʭ\*^\YHLIۋ?f(,2 `oʍho!TdXuf|f*h  ~mU( 8>?*ꢄLM"!,?}LC*192dsJ/8xsC';5aQ5ymC 鲰z2Av7;*!2~{3`j@}fѳ%׈n.iC$B~52Si*/^jE1~Gc3yGuL@ooY[F11n'EdK!=#< aoi[0f|% 7}G8HvG2f=ޯj:>=}7UR[FϢWٹJ-"2]<[Ki= W-0֘KB#򊇆U?V+pHU5:gUYxw! vTEEG\eVA11*-~d8uF q 3LlFZBFS1eI > 'TkP4/_9lVTi4וl5#2;˟j~! ͼVVT}^/6t#3Ձo֐OOڬWصc S\yt梎nqxo-N 쬙"l#* {̪$N^#R:EdoD{ lEVw?⧒؆I-#$ȏlL%g>+_X2}#&GEYƛ?ˮT^s{F ˚BA2cpToيn틄o{ *"p ;U稛oci">V~$v$F ED ໾Ѽ ϠZ &O?yLɐ|"B"f5^YDZ⁷>1W, (Bz#k`es13+ v"S˩=Xquʓ͂x#(e T(7e-Y|ՐVͭ!@lAN,y1xě`!8 #~,-UUWc%Zv[7JeGt*rO>G^‑bcTYT;2^S~ZErGvmMWEE 3;(##z E*'J4GҢhB}+"$ᘌ/_1xY3̹JShwWKNM]Gk46cVLf{ݙ ZYE>UyjS]Dy*D-_3cwǙ"2 o/*@T#gT7W EYMW%/!Lچm̂9>с#JF _YfNUFyZdUndJL(*t[ixe5\3 ,G6 @\F32WcB'sm=Q!-+_ u#C5=EѨ5Re[Bɔ2(o~-"#iۖ/ȩ$NW?h/vix(Ũ{l-@9SeevM|Kj7~dQXdJ)kC`?/YKDu5TU=K߳3:jRHTw.WCU*6:TS{cH\_WK?bV;]FEյ F1.1V{D.=8z ~wDy޾ΙZYpwzj."xCٕJQ4Ox%0B*I?Hz C-a~I퍪U^+hĿZV|e- V ň&ah%$`t]` 3ht!_ԇbxE*/m"߭^Ua%dlZ\8^ij_ZVHD:r6xΑ C>4Zx+>\b1> 0r𙯩r =p%Y7фj&]z遲jo lT^K̿ , VIOW v3 2O_MUvVۜ^~/(ziw5F;>z5C0u A!N\=D(!35gH7}Ox*/_1ƤY\bogW#8bΨ Q~eVOP/S>! |ǀziE02*r[ڏ su "y&Ȃmd020xDVSYO=7VȜtU|W?0ު|.$q9;*D8 [IJ~Gxx;i~UX6**⥾բ5LF_=ƈT)EenH)ufq+׍kg/:ZJ)>x~:ڲj |Ebums9{]7U!_Qmů315_Ki=g&N /RMK/=bF(ޔETH!^]]~k{Y7jz^vd*0;G\}m%Ȍ-b-I7+[{8,?~E_H -zx01YIDٞ`"ުjќ=#3/`7sϽE  S8Y1El_EDQM{+ +OG9QhUy):hrs75u"͞7[*vj*1M#w&Iyv"nĎ 4 LN%-sj!8p/DnnC_bnA֕Hx LBZF`VM[#D 9|NOSLIiFFH|$69<,0Ťr;w e6iNȴ ؔCU.@g%="3sx3.6CROU2>+R^QhUXX-;Xubkm` Xˬ }84ʀm1ee0gèZzj"6=\EE7UHXRbֈ5f"$)p Tgp}BVa%{"ӟX\4vg3&a-Kʰ D}k)TU)<WVX^@^nİo|UZ ʆ]X]'K 8T^裐m, inl̋EVBI=1Z] (JџҖ ℭМa`E%8JDQ(-ԉF]ID4$ $%jLP##ODq%LQ50Q`Y *QF"ت}ZHŚڌKQeŌ0UqS8e:'=@1(X>g4wkX4a ʈp$ #˦ YE:l$B]pBfҎK"z!PU`A"]fJؾ`t0 . IJRTp\êi`tȫa˕j1EVdЌ%7ĨB"{Ǵ[43Lqt'un%"8#Vcy3"<@w=4#Ԕ95o5eTZaY;d{"zv.ԺI&|#ϱrb(wSV틁0z s.}JE0崫8<4=@f!F`wi-"ƳHd pzMN`TdIDQف[ 1ɲJ{#L->CGU,~/pKBb-5f<ê}!b 3-8$JROɳ9rR J)\(䦌Gu 4􍽲8&_&[&VEN‘J؅eE|#B) xsTG"+ OteE$&i^*9Y?N^!xJtd}APrXՍ`0"bvb4kqStҪ+pI3$Ho VS/Ѱi (59A^aQŀ0]KъY1ET)bmI&4$X|66ghbu15k` qIm{(~~~a}'}M7F ,ΉM3]1U=v"ehn m7`W0ϘV8EL^Ď xkY "LbfAK.PR%+ThIj*[ә:@QT0unOFI덚Dr0 0{۲[!5U&%ɬ+%:F1p>%5B=\nNdHɁ`eU[+ P5"dМ!\ڤX]@FtPN|- 2i_;'1+I\&[PoLCe-KXb\m#Fиpw Gu^H-mu )O!Pv}lg(5P.7P.koҢaݣź`JHvP06‹Sh"He6 - !Qq95>:D% }C9q HtI7C67l)r "Qy$IatX ʺUI.s6/:ȼ6z̫]@aT6(8bQUq;Y'hhnK#ffJ紾jI=˻Ev#’F|j1QO5nZGW&@B9^D>!zmKVVhe,q V;cpj$ٖ\#,8>TVfn;$Z|[(vԼ}4=7 T )f/s;\{IDt#t!@ |@o\W~.Q|WD %Q;I/8-dd,]DV3vWڬoPrVz1γalV(`T+ېBɥ">!׽C)"F:c#e3> YpЌA@}dW@uwQŜ>~M/pG,/LV჆'"xV.|U&3Td"q350R{@F;ټFfd9"FS^ŕoHdDPӠ\DV08q%JRTAK$B)@6gxbצk!BU)44Y6u(0kul RIҕv fR٦[TERgpiT rw*{pvƪPZ'g d@&`0,qa.Tc%*"{&SyЊL2ubz,ġIhJʰP)jh硽k>%(F8.ڡvDTx-N:IIY5Lw3(-mTsR`9Z+/8zQ}}w%1._J8W[`8+,eg6"8[V?lg)y1>Q.:c6%AѨ_:'nx@R5yH&6 x[xWWqҶu5PJ6ANRS'޽eqn'5js$rOB- RbM;[PL*p }ɁE%3Ѣ[ |+x&-רľ%iƜxacov@"Q3.C}xDχBMVg%A* T$aPlp(}BcɩH%]ŨDG4 LMadNDo"0ivJtyTEd)J׺6\c+2,-=GI$b$!ytGAB4oSw8(_vZ 1ik5rZ4#Aob]7 V)9_,p':!P?y{ާ0ay0L2x|T%Esr@X݁6t-d׹vCJbTeWm2ʦytL5Kg61 냡n6wA4nWudT"C{ i`pW0s .a}@H͡К(P=m(,bh{*:QИz#<XDHk$sVOMm] dFZ[zaљIWSj{XZ-~Wm$1v+$BY\crp6rѰY}hjp&lV`XxbҀ(5<fNj~ W=iqeCҲbl^W*447M9=kMlM3726@ Fј}>O(ggƀ)T mQk$*H-{5uUZ4 &lSYӍYJĶLk5Q2]p1rjҢ1_8=4ɠ'mb븂2DV!q`ev7fVDT'8p]:vIHRW׳C_5&J !2ZvƓMQ{S4vD!A%tTOPԘmڣu8C# *j=ZXnBl8Fz ;ЌC;iQY^ 0$!N>tMtq& 1!dRs0Xe$bUZqV}NKiZ*׳%=p -(uS,VXAzOyG ҰUk̲hpd04)V[|.B|ئqGUTjRيV=8Gk52@f=eUQ OP^(ҾKӣ^à jd`?u?IʒRx$ASi wP\\}` n;OW=jdmVDMIXSנF"Dt}xvGF MBFhcKib^4 =[ѤTI(L2@/4mƪ\ta-"r[)M#"Nls )PN@E<lFiwz3:%L} ShLuXPW 9/4W>mM(#׋Rp4o8j0듪75'*c]ԦRsc#[ܴAJ ]( V45*Up}ɓRTȕ/xG4YJ9dA.xf +hLHITO$OѤ(sHTXӚ.3'"wp,[ ?ʊz4ˣQ/=5YZV SMN pWS<2l>BlP.jxfw U6޳Ь((TP҉MBb5cc.K$+P6bRHs٩o:Y 25pB,GChMA3b qmvUҗHBm5e W?汜cy!ȱ4= /?,1RJOFׇKT^8׽UEisɌ|ݑ#r %VzG4` pbPzK[ gp -JȂB\$|} ^%I>7elƛtjp OEw2%HMWE{j *|0Ye68[KB3%NT 4ˎYM5-m6D֒®.#|N)ͨߑ# Kp`8t) /󈰷)Ð絘KFA)5Gq콐¦ 2leDtbר`Ř]>{ 5m-66NQ.oD vb䎲ޠv)E/̈ w%V&av)#^HBÖ!xk]Y)#E rŪ5{htđj S#?T @lYN՚4Q1L _uic ,9]GWI3 O꽡'RxD ͼs-ĭ.`E3]+Ab*MKPFΑQt9<[ k+>h_~Bk -ր搠laGL(d2ħzSJI,CըdvjCH R,h, ]J;5LBfpGX76 j5zN *CjUX~`xKDZWOY?,m|~w{[C&u:ֶkVpVX6]'iT!QB*[-LViLE8N&nL(J #W[-a6Q8{z\WD@P:69 IJFhZb(pxDhrζ@ }l:4xX+_[GYzY4c. 4N,#˨𪰅VGLu4d;{ πEѺs@pjCsp#RfP|4l,|b70CZ0XRxhJ>ɵ(#24N='lm32Rm"m"?r  {k:qSV}*()فhJ6_(n(Ѷw B0A0BE‡ی яU݃ ~ȢJmXu8g:YkLaހ$SylTI&+{bEujlTX(΢8FW ΐxc&<4y}"Bn~ QA"iR6iCzW`CkN4)`c̓50d (h?*<=E_DMc \kxzIr1YH1ewfQaGg[|IW+00#'߳cDV5AOVq_6iFb>MΘFRBJ43z@h}*3%a 1[^Wɥc6H9k< Rs)E ZT%K6:GJStQ, ku(-ڏ'aqN`LM [rzh@#}61as2I8z=.!#hTCŹQ:Zo; /Ӝke# 6I47ĩJ)T;n'S l(^'<&AX*?z.Eqoqj7emk`wxP$;r+'*ĚԻ*_F|3PXQDNKnn|%Tr|рDD#ݢ@L{J’$)IB4y죳掹8ՖDQ (_ ըrG+*&!z2q1"pY䄺@oVnEܫqa4UMI-U'L = j F߽:C-zuJ^A{עO@[Amh@m-xt,H@k&"n"VP4V[+$Fr$*aą_pUM &WCȊ))g8-zb:x{H|8tPM( [΀0%w&w-"_h72zM4) ԣ KlCЭhq!s5 0ԢkU ;$fX%ɑ5jmE$Vul?"a;c{# =qi==ޱ 1!g7 DO]~lj@9=ňw`ɼrB">oJSɉZj '$\2(}gz+0- = hghVbؘ`yP.kE#،1OtRX"&%5a"tt*),G}AUzJzzEY#RN`F;FL&"zY'媧֋'q'gŭ]fAr ݓwt]) N#F"{wE+Mt } #OF50zRFRK~ ID*g9Y,BfvN1(d()l`mJu쵉t&J! `jR묀&2Ty9 }s 1H/aa:EͽqJOfI @:E'7{0",NC-T~5XˉQ.b qZ̞\zW Q`LGd Ώg,cWD4`/XxL"lbG T"@ ug_h*d;7 #`GuEE6wy,p&"#UOEvy 8uP' } ,jI$0.x3- @1.SDI}#^pz袇ΑH[0QmHO ڤ5x2RЂsS:H#Uem]# S[ /(zX7'70( }R:OZLÝmn*;4vK&=oͼLB$RPCʂL+Ul&[cjM8h5-A4犐ֈ-tWZبIUH<S#cL-l'ߺņ}}`HIV Rc>d g$Kq{5$[ķqа~a`m-LfU4QznF% u_4*a (Dl#IS *AGɣ.8$ @ !AE\ '<ЋWŃ;"&jڊ:im?=#JČ5'IKN7B m ׺`IR+j{[ݫ o:OWwBopt" Hcy Dp9B{. &7WQm&$%aPLo\%ӇPu}#LJT^:BGik ve`i 6,@Bk6 )RһsxL ;ș`h1vhMt\9a Nؔ#mB51RB{&*5ƅ h`PК 0) 6y.˱^ "QD1D=կ}O2JJ5Vr$76'p(I+er!H9Y_<ZFGƏN1Niz'̓ v0rK"ea M?J3٪Dܔ\#% E*@zݨ V ? w:F `c؊ }!*S$qY7_,Fؖ+ci#x,~{30@,ڇ6 33P-)ݛfB2ȥ]rǔIqQᮭJ b0D>Op|w]}E%GH#ɈZpt6AFNftZg ܲF6d:DH W 1w'G c@RO,p#%B(D"YmQ$xtc9#E*f.skΧAsDˀ4Ű\u$<$Ƈ 2P*11ei9wŒWNUKB/}ݺ4&IXrcwOK%)""":bg؃COGrdi(Р`,D+W{6ud. fG=̈*TY|\lj6~)CZOx 48 D#,0l 0PWE&9y&Lf?mB &EDt/.bZ^tדGYuwz>]?<κiw9[\wUj]$j}\mN7^6Zݓw;S/_拳廯;~9ή6oj8-fP|y[6׫ź_Nr4_7o_lt7^lNBG ~ҦRG"AT5IԨUs}u62vHfퟺmz>|񥞈s y07o`;scųgϏыg]|Z͎WLO_Y+?-G׫& }$t8F/κfvu5[RJ><*d5b% tq刿lVWכu }bed\z~1;ß.ogtSS;fv5,7:L[O6Zy͟w'*uUIr~x Bq-Q{w>˜o.pꦫYGqά,d_ [ؽߺȾo3q?:d<[EGcb4:Yaꎾ-Ӌחu9_-OqSp=lM.--I_曆ɣ.Zov8s3X|-L~L_OJX-Ogk1(tz J^Pd:{{ x].PKz*IZfg7)ܰf_7Xp4jBg\\sYg\^Yu嶺ݷj½Ck,`9|\7uƾ.?Os\fԏU7/_bB'<|d_.yx6Ngd/;Ϻ%WSk=Τ>,鯹>-\&:NVʟ8x2|M;vuO|OW_^]xmM7RqC*-Wo#~ۅC炣yb_/Q9>)Z@}SȘUaeF;aOOd#l9Agة䨧;n5&,ާG/>~ЫS:.'f0z]h T4Vb8bkޯ_=X=0'||Ō=]^\_.uxhϧK|wT-'qw|(A b9=s.n~mV쳰UӠVI溜wOkܺ7Lk*<<*U̺R}cؘo_?<԰$N!v.vO)Ue pyvKGo]}TzϺeuc\ ZmY VoCO `Y9']nl;O[|cl߃NJ}⽁[nEXr[:ݪrY/jneS<ha]e}~zcR]a> 7s,7t#۵7Onw_~ߺۅ빯o_jF}\ڶ`X]ú,À;Tch-}tGl#ìW>ȾFsȏ _<fڴWy}ѭ+\=؇aqĪ8}lcj^~<_>u9{} 7 nmy||@Οƾ?wOKn̰g7x951z%kذ`X}\LH['x cJ2C뫸s7=yd+=ؿ??&^0*d;ۯ|/ R{u^C *yy=LJŶNN>Y3(\"sN&det?=ɳg><۱ZcVP'm+O3-oH؃\ܯ;wQ~Y|g/^}lzz}ᯑ|}w0>d!D~wW8/2k?}zɧw5_d=^pxk Y/,nl} Y ͥ O>nuɏ?'LQmk.9݁o?Ƿ- G˳{O>~=~.795'}n%G) \ 2ZVG)wǢ9 w[D;ٚ^Eo=_q3{ɳO>$j~5{8[- oqO/ǯzbG=>ܲjF)~fO\367"yG͕|s/zݖ}k7&\ށ5zzϝ)0WjoO`t٪WW[%O# /‡@F}v/<#VE)nO~w(~_qp;>. V+ȇ|.?•zW9mL]6/ I57&=o>r%/w_|/LJ6||rMN϶o?bz@}~G.4C-beߵ@—ƫ+~H1{'#"bV5 vlt!M/V{ ؂/5iِ|L,9>49$e>ē?'%NݞWdyY<*~\3uܡ~PyŎ?fv^S`]B,5WzI/M%onx=U/?OWsl %v@X(oiV(Lo¶Wd=c<::inl_חes9ozpEhxXW+|~ g]SNtws\yAǵ\q'C_lLɲ2涟7/.P- '5VռC23d@Cu> _,0Y5~A!g;Lr6勦MwDQ?ce|.qU_|, YƛwzqWL&/f T}$>v/*z :~8ӳ Uҽb4rMvwK|&qૄTwOBWL˒]RsN>\fz"?5R|-FbwMf_W:`qÀ/C)^{1~Q̫)Y0wH;XZQWKY_W8?a#ߛW1 iOX{c`1mZڸk_moO"\٥_8G ;ߊn,6ʱQ<~>8oΆ4ǘbVoedY:_u$72HMn\;OmsGhe]O<ulG 9qK# Ļ6=an S-ryk O@)#3 a '؅|xWj?c*F E fT/l}|kaO?6bx/oG\Nmb+;_*#Oܞ\.P"6纯  )'G;^d*%z2=yt9MɶrkKM?qَ!p^. ^6A1Ԭ K~ WnX*mNsL8>櫫oKz!x#,Ϧ ?dc $ wD=k ϟ'Cn)ׯ7 `[7Ww]>bʻN>υ(v;+m \V/ ]_٧ɣpǐĺwyɻ, Bx/m2ͯ"_|`?~V~R6ӕUrs}K/29sb|:'f̋~xx p0Ƨ*{ #>87\o~tyaka~lf1 ht? eqO ;[_^S^UNOTX E0jᲵM^IН+~ZBݵ?aPkѪ[^c/d֨Z-^C4`|%Ln7ߨf8^(gorm-1.3.1/.git/objects/81/0000755000175000017500000000000014327003123014205 5ustar heronherongorm-1.3.1/.git/objects/81/074cefc39313489d27635cf93bc76196be79500000444000175000017500000002470314327003123021155 0ustar heronheronx]mSG+\.`!!q+AF3}!V~ϓU]3]/YYY5}[ۣuFY]?ڼZv׷Uqq9q{kWyzprU/A6);7trYVKE2TL.z8 9b\Oj_nNĹ}U~QV˱*OJ?feWY6ɷ9 ?,j7,F묚r^'5n]WE]ݐmOm9ul|P|:p]bx˱ x+7$jѽyܛWE?׹ԗ81O\byU? ʊfB^Zn4s,s,಼ƒ.1&ySF=xup VNzn7'{o_7oo:C!wObTyA~^pC@J: ?fa~+8>)'O*ށ׮̴N>,(l={gtU4\6p3-@Y>̦IZvt8[_=Y+hBΥ,j󖗿,ŤFşbZ磡Gw4gkhESOq5OZ+bbum1Ĝ*i2i܂o} b#q}mPeFwZOaM!ܛ.Oa`QGe68, [o KΥuji}܇a䘬*[XB?Bܾ~UFB”gOܣG>~p[6o~ݧOHWpHl]_omlm4l`͛bG E]֞8xCᗬUk h0[}w[pP(~{>i.?~꒍/mxsyJdK^edZ,{& ʁ_Y mr#!_ {ş9_$=R000WX)A 7=' 7 U;o _{€ Y?aC~ȫ ,H7˲*\BE:[M|ZVP봯$H%ʦE  (2vmAq kJ[ j$Di2=I/rըɚ3nɳw5cqT0G*opxȞ%<J "J&§`(ӥU>/@߸Hqk@T9Ԃ۝ ?76>6MfjnUM9<]^Vp|4ZDy}ܩ0-&^!xwb!poo4<.Mazv~i_ޘ`4뿻w`mԤrMkG|w,kPHiHxkTu;+fc_uF&Uح?5EXLq0MKLV&17S'vQw?]$0ޚߓTÿ \O>? \I>G !D(դ!@hqoC}>RMlCz!+C0 )3F$\'eDMEw-cAsxc>n g ͼ_HC͉5%%k҃6F@ރ!2!|'X ʘ` 4|ej#hVl Jms 7q =1%/mΫRQmǝ1ߥ N=+q6a.|C;$i+%=L6VIPOs$H?C`*4 E8  MyEu1,\Gun u3Ḥ=hO33W+S@QܑțHi\{`h&Ks҅0P(rq%=b2/4uؓOo:<;p!UL|N$0U&b =I$u"l$Җek /^[ L4!+͚PPc0~L/?콅q֧RM^@Tov dUp17>wǨBt]eЭi!Y9q/DGu㩺:+ (uX;ilb!R'۲s}lj%.MHg6`L^>I#AE $q^r'tCچCk I)}M$$|M0(c3M_Իx)AGjN' FZQ@@QDzZUQ4ȽVt&z0TOFK1Xa(L/ gF+s2N %pHz!?:Ζ$w*<^AbN06%sBdEb<8B.,Gt3;ɟ|HOޙjBdXMlE&]"p /*#z~@W;+|F?s8du9w7 8b̉ y.Tբ hH 2t4dזL@a wOQWZ %]rj o  ["zvQr6Up>(TFXZfoG&,rE<Cc".+L~f yq/Rj$Z{ T!fob+:1tsO%@@YD"D7D`Qz6z Y=#ZHW, Hză=QdJ0YeȊtwnf"\P_~xFk'(ǦQb n6aȔioݢ/XȔ{P \R#HPԸ /"#݋?Dj{%0R" [ktEX2oQׂVL:qQsHF{R , ‰%H 86YPދA18[j\a6h*HfP6Hʼn UٳD ! jKw NS\œmS;s?}8|Me >[^8H@Ѐ]1ӿW\Y08{]Mn+^ fQP (ZTmcw!u'JLPt!vo%x#%XsǵnLLX~WhƐygWs@E\/M;QA6 }Bxe S/r"` iXbg"1Z6)h嗊lӱKaa"%w6}wfb|"B>꺹ۏ^ h5}O/ G4AƠBϪFȹv8lr/~6QwY 3_/Zk8/^i"P75*5b +}e˒;,(359m| 8'rFmx&eNk(6jlyRZZZHёjܓ#dӗ.=Dگ+D|2S(p? )ȰbG+v4kϾczmq3Q2-@":{?¦864[ 4bU"aM QPŮE 2={*On8xLy^ ѷ>s_kE9MBBt~8d*ĔJLѷi]D#ivZMI[#uS5mbR\>@dW_}!8bɰ@B&oG[Vm;53E[ۏ=,ޗ6;,cAKC*΁v -6xEgFy8#8(`P^>Ӱ./taO >.iB-!gij 6} z$\)M>jmZ 1\?( m=NF$teG8D'gN 5=q.+YTrayu%oZ>5G! NHX1 SI)C>yY;{W6S3FlkF:az4c :ę8#rфQ*_*Q|q=&96X(Ei[u-zAD{Hʪ 2 bK }~<*.!vw5?Fm[Js$U|t '2]^k} ]^/)BW5dJQun F7Tي*6ٍH囹$CCƢkt[Iamt(v$¨y-so`emnSF[tMfiMVr_ΙqF`Lş02߳Q}RC,65q|W< `00qjX8&X㓠dvVY9^u6+A|!w ^ĭk|5$X<.&zDPGCՓ6W҅3F2";HAA ;9Ma0iePSwYkZhS{X3 5.& ,Y#[ρ<}.  \]_gjM+F*5NLmM{PTusp2q}Rp]HFB6OxJa1xSiZ?3h-?Z8E!t )QYVJi >.F!%3cODM;F@z;Utݠ"{[ކ'<|e5 ȀW-ܪ9ҫ%hBKa\fʁFu3!?C^yopk^Ŧ X&s{){sb*@0ڇ()&c4%QF ? ЅW,Rrr f"K֩ qq d,wKq9l1x9/]ArhzEV@EBH}aĨHVG ,f9 XxGIMjKԈ]󀽊qd z,Ƃ@L \;Fd>%GN08OX@btN :ȱ J*nTBE !*t(T=<{v}#E0ȞK9SAB{D B;I嗦A CAU.(2yU 禎+XJ ^,R$^p,sn3*FR'2Țfb2w8)%`Ȥ"d5䨈q }=\cGrG`R,ĖU5{أA٫M}S %f3D= ]Ԣ0LޟpC%[,c/ڨp|H\n[^70|Y_:oǼtS46 Bϵ(5{g7FB<5e%4yazJN|tv9vKt)]xI*7ZS("=v9gPl& ÕFq5>Q#=ɯ*`iXRzؿZ,MN[鋒D}Z%j?)@BiW`@3h ,m[B'峭CT]}*V H*^enEr{CA(/YK-Ooq?ޥXI^pYz`tjkgH0jF5M D>R{ycRTbUȶA.`Ir)a3lN~ 0a# *YvK:3#a`6E DZD) ll\'cǷ9|ʣè ZiZMe(P aE# v&!@:V9ms8j pR 4| E=xX`65qyߖJ̕\= t"ş5K^7A{dR{ k!rB᧷JPŦ؛o'&{&߭č2n"KA47mɎ?% YOEa/ӎ@8-kp#K_ėk8?zM&=++O"LL6nF[BLzH9t8 fڧ\nnl$yK U7GjLm-72"Qgj0!;+Zys|0}srDu+9$+fډpBϬ;Hv7YY[MCܯȄv$1n!eË $ [(߃jX4[*c| 4;\5j3ua5 KArePq7?[>88.k0qʻ?A@ طB0.Ѓuv[cɊ=ǏTtœ܌۾@M‰Fʹ>яT&BF͕AnRdlzFiMj)9%\{|~hm$I[/5'UX^ha4eїiAk]OpN%l\4*᛭B64Np@ ֺ+LApHgTC Fu^>77d@HpI\靍=oD 4aK$F2 )+|vz$M =9fjAȣ^[ӏw cD9>Y j3Ȍ|F>8GǬ7ARDO'WR\d;myrDX;mE %Efq>jEӛ>nE<[vUNr߶02{dd>WtMH,4-QcR8F89@ a%IpkQa\P} p\0zFV AS8Z(buytu0PHb Ceb&1)ڀ(n5 0tgQ\aB]t/x;o 1ąLD|ŗ>lp>o%oİ򂄖NpYX)G]_b>6%2< ʺ}V*J4yj&929( \~Oc̭<×RNpEМ &i"֊z3۫֎YN60C4\k.9hk4owӭ,-4Kl 08DHo8l]j*TﬡȘ=u wFT@**ſvՊUGj sԤأ3ΞbJ܈DAzޅi'Q#2b+Ja8[8sY5QNTx5I2[|iSt [*i> 1V@X! =|EK#Ե)uk譬 !2jI#CgGJ§8p`$(T:=:A^ WԛQC1ʿPvez`e.bN6ŪNg$\j֒41#LEHזUBvA[ni4b{i8⟎O>l0 (Qp7Gr*c1>^῱ΨKDƍߦ;eit6dN$@E].s3C*9'iH \h m 0Tڃbx lC-J\w ՔӨ=_(w\p^מSEIv.8; b{ᔯuwhu~w1~DHYY$9o@Ɯ#}MH.iZ PO|8a [#gbDU/Hvk])#aDKvuƇwu~W."i7NUs_ ܁Mծ{kU'L#jE!%GMO$'%@~ ϶sO\(G$^g&?},P`c}/s [l+ " ё9'5GUR=`xP>H}(촡ݫ<% h͵B@V /qq?gorm-1.3.1/.git/objects/3b/0000755000175000017500000000000014327003123014261 5ustar heronherongorm-1.3.1/.git/objects/3b/2d0d2e77ebbe3a0e81b38b96132628a713fa930000444000175000017500000000030514327003123021401 0ustar heronheronxMj0u@X "@Sud "*Momz.gsj *3DPR_; 3zGK(#a$OQ⤼qzT81AKeﶔ s^h+CۯstB/03P#rcC/V8/vK#y7A<H\gorm-1.3.1/.git/objects/d1/0000755000175000017500000000000014327003123014261 5ustar heronherongorm-1.3.1/.git/objects/d1/ba455536d50450aee8182c27c782b5e0d9f4b20000444000175000017500000000372514327003123021336 0ustar heronheronxvEg$[%w 8Yqj!0_X[N2NK"ۓdX#q,/<}s bp/[5ӞxdsXRuwݺn랿>q ;;Ә57Oxxi SS100@΀! Q^_jni !LiX0eNnP[Q2/v<o 9%{n}[s^-phEv9c % 9eAӭ?"DŨ<}cՓUa{u)|'{% BNbվ4bk"aR(Y*YO-}c[HnA׸K}up%E& o 1L#h8 [EY~٬=#V$ U;L2 OsÔplRjpOW ZH=H z[}7 +YߨC,t {ApQ?VjQr@VmrElTlTl-Z[ Z;J~rhv#p)}9V< ( dH€y9օ⬅kJ!di3GafXN稵r Tܤ8vB[8ſ r}|O9Cl!&8MTEMl  <8!fnM՝gbGH #^soE U4k}%3j֎Nauͥ2Wyi+:GvW6PN'S,bM#s4wo3^-j/MAMbotzk$+]wxE?.i(z&3m{6Ksi:|MhU^^8n*R}]߼Y;^tR3%]PQ _Ce  PG,4sCū@ /%P/wH"XK@` f<-Ft'U7Zg✒W9V5 MLFouSLL| pnF%0ϋe}4wy '݇PΣvaj2z;  Kdt>fJkb?P[iOYD)67oHa%fNBҦrrG:BY~n *GVW\ -fxBݚӆ&ϊQmu7lWie\/-~/=Xsb,јJYnߙ:Nؽ§ȼ:|W3պ)o3ݺ5om>}7/npE\y:-FsPc*,!~r4~Gu$ZB $ZBͣ9HDh1E!H5Etmr6i?ogorm-1.3.1/.git/objects/d4/0000755000175000017500000000000014327003123014264 5ustar heronherongorm-1.3.1/.git/objects/d4/66fe86fce06eec97a7a117b67ee24f4bd4a38d0000444000175000017500000000327314327003123021744 0ustar heronheronxWmSFW<;N;&4xY:W;W:A<{=IL0&SO{gٽ _a{NM29:t*ktkR 5[C'މD҉t(2z::*2;6IsHBlRv\"MOtj3 VvO}'liV":M$3Ì5E*&R[CoF+(gbl Ml*HŒ=%ѩwZ9e%b"Fif2 D ޫafaΒIhbB K2|D:Z&"lT u*I/I2;VE~$3ne"<0I&ag² )gwg#+/`06S@&@ީ8,Qoi }w/cky},;0+oenJMVP*?[8?cKs_tޱIG-hYGE#Sx"ƑKJ+TΑ_!)KV"ŁTpNPj(C4,bG'\aL'6vPpӸH.%moçq#ԁ+u/Bi9xYzniQe g(s\M;VN=Ux"A@GCW*8jwJ.r|*!,|F`u[q]vVl`91T&Շp ;W#!(Hю%iy9>ב53b1b/S?(qOnk9X)K ܔzcpQ HӆvYՠG" (3pˇ4.%qA-P˻(0\"KϵeB&-ƭ,*^З\R3h.~|)_ ּkT3"ݑ, w'c/tDz~@*,5o)E;68PS {@xYUC,G?_;K_)*;P~ +F"=V `I-{S >HRޭ_"XlA~3gq#/Ђ :Yt٤bm#eLr4ѬßBӅeYLf+wչ+E=<ոlEٵT5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C͋2mK*[թe Ks^9hXޟ|;\z3`P Q??dѱSfYE\\ßMO2m_-8Iĵ** R2 R+vHCť r%W1YQ?5r8m=(ϼ|` 0TpH߱v5J# Lb0SmwgEe]lIY)EEũE Xݧ3ˡ{"i8Rӊ*V}oɹ';/d**:/8LJAy G.=!x&3y~IAole!WCs fz'vl_떖~.[1 1'hʎM jWΪQggorm-1.3.1/.git/objects/b6/0000755000175000017500000000000014327003123014264 5ustar heronherongorm-1.3.1/.git/objects/b6/6673d9cb10af767b672a5e18e5f09f0aad608b0000444000175000017500000000027114327003123021502 0ustar heronheronxKj1D)6OK&!@nіZhdd!EGV6x4,̠X GgĀCA]>K1!d9[glΎXTk):wY[vo\:1yL@{M|HjyydvA=үL ɗTgorm-1.3.1/.git/objects/d2/0000755000175000017500000000000014327003123014262 5ustar heronherongorm-1.3.1/.git/objects/d2/f80edf26a1404f11b6f8dd3f94fdd1eb7724e90000444000175000017500000000700714327003123021651 0ustar heronheronxy GH$b9+$W% iolvvu.DEtGPҁtIJ$+"oW|ADTU%EEuD6B@D@%9Ї*+YP.ahtLBEpЅ+E.O1{Rh@K8OB}&WLwy5R~ۓr}two[Kҥ\D۶2 )xP~p\v譛f!z 7c!]^SC}+Sac.3MEMAOKNxb#ءCsOLH87lzan1rl7)Qy1l,rPTGB$L$!W#` x~aVv㿩 6(\'o.JShDb@&-j~*`"c /G_2^k"Y&n;B =9Ѐ#[8.H}r Q{t'Tq{^~dlpKjiv){p4-ar>>fHqZ0+T(t?C5E]W2NSm% >}):{"uhC;׼YβaJW]P2e(ր$ċa4=Ki~*ڙIj@d<"$l5pemE]{\k&+V{`Gj1RRO69)0AZ >޸!sk ѿq#\fӝ++VaJf:ʈLq\\R6 [M |eֺi57dHK*O 9U}uU7 1 ^憹XnpFJGDY) / h^ܻ[}qW1[k+LgfށfN;:!W H Iw+}ϐ:-!/+Ob,k /fPeBvxB ZC'f-rBoNvsTjFդr gkD2rPf~ ; 8&qTnVg󫜺'` ?-๕!D :–:V)s$YK 1P!I$_&郦4 7r'9%+OUie>CW*š/c82wP&O6$Ni \ \s+(e^-|vngh7yss㯈⁨5͖ڣg!X&! 6Ϩ N^D}>lHL̙MTE-G,0j`gdٟV.$B%XpV̴뾞Lt24)B ʳ~Q)n^Af F%np'r+#ԧ1V]y?/yhd$߂i}EcG8#fJ¶p8h =|e{N  U-~Ϫ> RP?CbO~\?}TΊrW9@ 2I5Q]8kb%r, ZDB`t%Ʈ=n'G%EZfo}`3[ҷFC`afTjޮgi4-n[z㫫Bũ~s آ+bbdiiQ+?؏ Bl6ma hjN9ì8tf~oz^=P ,Fdt12)Fa/|&-P0z;+^LK8ѽuF\eGDh4qqU ,HLsnkK;K]p2*Uqx9hv^]i_FnjNp^u8k̓^iQ5Qe?qFRmP\XQ mJјE8*ñ}K>}"r1z2!hj1>af!7"FƓ e:nMB1(ǘֈN3 *E |nJ.F" ;$PgنzOf $~r=bY:f!Σ{Id[@Ϗϫw;ݼ&{yw86ٰ! Vɵ@l]AcztQ%J3_DLѣ1 _{Pyo|#tjr-n,>aJn!=+gy^޸仼cдOǪZPGG@ UY|r2mIIS]C7B%#<]raN 28r~saY%IbhS[ٕl{JXA[ ?3AeP׉6%v$[=Y;_G7C`e{k32ݗyNךIJ흨i ._Ty%vXo+3٨vG0VnkpIeMZȹ.0P^G$& ?&>xS0zy'~YqP֤ry@0/Ѝ?B:| A h8+H+&s_떔0 GODD7!1pTpI=)|(=+WZ[rکٲX2$5=IXÈ7C^tOkJ"01 Y(Cy:ݘfݚʜUSi8iD {+fX?{߶ʐv]5=e#%\YZ 3mmR$ML Ey]i+HYuBe{[0 0#P!ߓԎ@sg?.ctQ)ރV4IdgB +mAj?e}iX7ʟ8{m7'8̋ ޤÁ']A⒯_u 5ؾ(K4|l(oMoO/&MCW@D:&8RB_<\]Ya$467lȃ'Jm=3|vcT䌎W)YYy*BAtub/^Uj&,[ӻ=M!4]YZV*Cy9ݾۼSd }eS"ѷ>f~ `誆A +";e&7f!e73q\>fyʚ"VjQzq6޹ۅqJvxnX9b4${G.y^gorm-1.3.1/.git/objects/16/0000755000175000017500000000000014334122011014177 5ustar heronherongorm-1.3.1/.git/objects/16/93c210344137ef6075601bf536e97cbfcfea3e0000444000175000017500000000026014334122011021326 0ustar heronheronxAj0{+ +G@jm"+J/A3arz3diB gxq4)F9yfkLDh8d΃OXO0jrKmlE6){y.rFajIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)+~^.LsmY(&fe2*;ͽt}toުngorm-1.3.1/.git/objects/18/0000755000175000017500000000000014327003123014205 5ustar heronherongorm-1.3.1/.git/objects/18/30becc22af4dac7c0029f4c58722749183c8740000444000175000017500000000027714327003123021262 0ustar heronheronx+)JMU026`040031Qp MNMIeY$bI&sM 7XmTWPT{scx738E>(7"3) 4=3O/$%G#x |*cAU^XPZ䓟ZeV-gǑSvP#aK5I^q=IWra{Xk&CEfss=}|YY[֫u&Ygorm-1.3.1/.git/objects/13/0000755000175000017500000000000014327003123014200 5ustar heronherongorm-1.3.1/.git/objects/13/6a24edaac885264a078e88137d6bcbba75b9170000444000175000017500000000037214327003123021421 0ustar heronheronx+)JMU025d01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)kN+gb̺ؑSf&& ~٩i9 Ns=zo߳<ݛungorm-1.3.1/.git/objects/98/0000755000175000017500000000000014333757624014240 5ustar heronherongorm-1.3.1/.git/objects/98/3d3c3483781d5242ee9da2ec5e33ea77d8e1c80000444000175000017500000000165314333757624021470 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> \K0ܸ8F9}S 2B|撟\WXǐfj|;>sK,)(b[/" z_O/RwԴ̜TșכeږNU>hCS0$&5Ƚrа:?v{f<(~~Zɢc0I-߳r0Ez ?'epZpfkUU&e1D,!WV옱鑆J1K!>w J{sZ_%=J 7B23/-_H% y'wztſ|2L#ikYhYxBRGjbJjQ@bQqjC+v)r}HqԴbU߬[r qakPs~f}yG1 shcЛ')fp`iHP3\Ã+މ*)g4׺@ HI-)qaZPߙ'[+N$4=3cnƨ4|jQ%A. 5S}yuKd]K f% z5ecFRk;|3ϰo֠ޟzy0C)|XjQ1(+Vњlx%p䦔j)Jr3 Gߙe3d~pgYrgorm-1.3.1/.git/objects/98/01b201b0ec8ff02455436a0070a87f5861e8ff0000444000175000017500000000165114327003123021174 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r  ]UKNx0s8 m&fe2Dμ޼h/ӶtEZZL $17 Aɷ}Ψ+76 EJ;8hFIjI__/e0<9D.ӆՂ3O\ 5Y/3!ʿ`*bnjO4T\\ ; gPwܳ*1uXU5Lu|s$Qyiz@*a;ccץk/F擙`§qG%Lۆ^SϊE»*=RSRS:]OIgC;Ep 3TfeߒsNv^,TTu_p_f]>7{>BMLO-fL@L--\6b@@bNjI  B*M^l>'USW̰T\@jD˻Ʌ^0DA. 5S}yuKd]K f% z5ecFRk;|3:5şaߌA_y?;m^Ga.SPԢbPjW أ5J:NM) RS6@&fS~k56%3f6>gorm-1.3.1/.git/objects/fc/0000755000175000017500000000000014360755773014373 5ustar heronherongorm-1.3.1/.git/objects/fc/35727a2a8fe862ebf8b3175ff181b7ba01535e0000444000175000017500000000026614360755773021532 0ustar heronheronx1n!S-`Ȓ KnY'p߇&?H9Sk)[ɛD9I@򘈘L]\LZc:<:"ĚH -cy6dU|{mpkz5Ju3e-q\ѓLVÎ.S?@v9 &C/Xgorm-1.3.1/.git/objects/b4/0000755000175000017500000000000014327003123014262 5ustar heronherongorm-1.3.1/.git/objects/b4/59d600476c6e1d33ca7f252470314fe621da2e0000444000175000017500000001061414327003123021243 0ustar heronheronx[rFW+fJvy(JrQH)qT.!@t.˲E{ FA4R/v^EÏu-:w>NxItU㇄fTtc/PQՕ?ax' B4IDicA tsX*jԞXE JrTaelN h & P#.ݛo7{^v Cx?hX>xY^>~bb U Pݛp.VMs{uxq8`&XD$o5>hx Scصm3jNQ8>A X҉*Xb ~Y 01ǥ?M2@EIJGi/^a<r9ޣpMaH{Og:ɫѫ!|;'P\FЉb}.v|wgHbe&P8bB( ?D'کPIx{A=&J:T؜|:;z?vGF~zcz j:?Z;V{?oyY-Un&zrsɎ#UCSfYԇ r7O ˎ"8TKhdOZmO0Ip_Y wzhNpš;H?y;*.P#.j!OK/  75">  8DMR#P)}I:"bɋ`%8oB ,j DNgUK,9 a"&{K:0!Aol2HK\{%u:!k/iЛ!ɘr}MoZld&Y|k%"; 2M +HP@6 $ˣ2vA Dh"/kEԪœ~2mLNKѽgJ90?9RTP^ SBq4}T wDh:g-R&Dݤv]@=[Xޟ@x%*Jc6.# O:o|Do3CE䲯Cy5/O2aʼn%;ifC9؉5B9`rUHS^=j(3#u0/[_dHM FO2lL_,QĞ1K1,\OKdv".3iՕ 91=L0*ak̎P\z&}i4g"RÅ OTA:EC@ `#mL\;ϞQ2Qd&9ZL g`D[ΔN7%-SՄY9Ip]a͛LDp`Ҫ.JAYY ΜpZ5u bmTlnM{!ctw" ]E|]V0}=Y1ʖYCS:Jp 0-[[ [lY=QLG_(Y)7駔Rӌ 5h [;D~uG UNk|Ysը=A-WXgD)F-aNѦ;-W(q k)4 ͑Q#HZ(WD癩o0_!^$<(%} ,T#OA;.??r%  ({odRLu2c)qܴR57XUCMZ`~F\r/*-c[9-@>lIzl^zyF)KF8[ˆ9$c0$U%dc3&dLYMHYe+rYYB.fU ԤI&;m$"]3q_kz>t:|^oxNwa0NwpNh 7dOU0[ulAR@C`V!(ulR]GNsW2Cvy?Hs\XփL+4WK:%RF_!P`sjuRw :H9Y"/Z#\ je] 5.?vclR[-g% e!+ ƒ|U %P(UÅݢBIIMۻ 2U?Ym%9rtG爐 qy;l`CQ8S(*Z E1/vy9R ֘gbZ;$q 4KndLeauujMlj`~$[9' ;AABi*Z^v uX&8{`X)W!#j1cȯEBEZܑo< mڦujsՙ^޲AlTI(ew&OY,?;5,CS^:C*#B@͚OF%k7҃+!,(*t9gL2>'a^WMdžn՛$,OWAkNYD(_V`Qc[Zd]=~GlbYTwk 47Xhu?)yЮe,>ߟ'fhϼ5ƱN⍊Gޡ="gyδPɛer3#8{f~@(\ɟdlʾF=,T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> \K0ܸ8F9}S 2B|撟\WXǐfj|;>sK,)(b[/" z_O/RwԴ̜TșכeږNU>hCS0$&5Ƚrа:?v{f<(~~Zɢc0I-߳r0Ez ?'epZpfkUU&e1D,!WV옱鑆J1K!>w Js~U*׭ޫ+=$< TPw".NiK_+0'3O9J ߽w!T'e9{&$1tb1kw,w@((JM+fX%켐Y^)!. fl zi:s1䜂ʇRR`ɆWqJnJY$713z[1h)Y6IwFq#gorm-1.3.1/.git/objects/eb/0000755000175000017500000000000014327003123014343 5ustar heronherongorm-1.3.1/.git/objects/eb/3afd44cd5d3f603056a143235b5357b09b9f000000444000175000017500000000165114327003123021316 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C@猿=-bytbᛦyJ Ks^9hXޟ|;\z3`P Q??dѱSfYE\\ßMO2m_-8Iĵ** R2 R+vHCť r%W1YQ?5r8m=(ϼ|` 0TpH߱v5J# Lb0SmwgEe]lIY)EEũE Xݧ3ˡ{"i8Rӊ*V}oɹ';/d**:/8LJAy G.=!x&3y~IAole!WCs fz'vl_떖~.[1 1'hę/;R\93vJrJ36U H-hy7p׋`(וwfJг/n+r)ČҢd=s*嘝 yG{ԩ!. fl zi:s1䜂ʇRR`ɆWqJnJY$713z[1h)Y6IwFɰgorm-1.3.1/.git/objects/eb/a086f13967fa783cb7ace4d2f06b2b8a471b260000444000175000017500000000030414327003123021550 0ustar heronheronxAJ1E]uҩa{PI{̤ą7#[/wzSaa?GhWG[ Ai!eA)fBs6fɲgMھ,7)CPi)Vd8ZaeHfm?[\+s :4d~+E6u8T2ߨ][gorm-1.3.1/.git/objects/c8/0000755000175000017500000000000014327003123014267 5ustar heronherongorm-1.3.1/.git/objects/c8/38481ceb16489ef635343825200d2e77d0a39d0000444000175000017500000000037314327003123021132 0ustar heronheronx+)JMU025d01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)zS]klw-+J϶[(&fe2*;ͽt}toGo/gorm-1.3.1/.git/objects/e3/0000755000175000017500000000000014333117061014270 5ustar heronherongorm-1.3.1/.git/objects/e3/331dc088ed49f7cb043c6c1d6e95518f024b4f0000444000175000017500000000035514333117061021430 0ustar heronheronxQJ0E*I[QFCW𒼴d2 {ph* = :V#*2fLkHint]p#~+iTfp4q +񈩮0N_.q8݁4fFfkh*ʅeyV:C硺8Gvo3p#y'Ϝ'rs^/GW ^?\9^/ugorm-1.3.1/.git/objects/e3/b000c10effed28b00c4a70c22732bdbece8cf10000444000175000017500000000165114327003123021734 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvc^n&gorm-1.3.1/.git/objects/4c/0000755000175000017500000000000014327003123014263 5ustar heronherongorm-1.3.1/.git/objects/4c/9614347a38c941e014c092ed27f900a55331e20000444000175000017500000000027614327003123021031 0ustar heronheronx;j1`:^ FHH;֫2B)|SCnMfh 1T[9zTaM)8|:WuUM@0Qhմk=\Bl~Ә1y> x.ʀ&mxiW0.^Z*?S_7䠤~WDYgorm-1.3.1/.git/objects/4c/6c5367b2e9d1d4690be60a49d5ba4311d469da0000444000175000017500000000715314327003123021421 0ustar heronheronxw ߊD.4Kd%#Y:swΝ *D&4( #%d҉<_~B`D͛6)+)4P8<J_{ ia٘՘iaM͆S< m'(Dn4}r>vS|%#2#."ѹRfu܍x3̺,F4Qu$C%wf! ޴c>Uu1ţ<=˹ =Vܰuwo%؝#?@\eyzУL؈I 8c?2.!о$S^!p9_1FM~HS3]( aYv'T Yu~vGCB(z=|dD.X1=@0DLאmH {Nt4'_*Xy(Z/MF9\E$. pgeeͺ^P[Qva ˣAgm=_<]8\%#i5pF3zRf[y-Lk8# M)J|9948+Yt, Y*uVm/usZBz~&/mDGxlj[ ׂ7n__X#ZV;+m!n;'XZc#xy'pܛ0k9nh#B{n?;VO;ZR 23ALE͚BמeFW-䗬AMY(+8mih\2\C%fr"\vQBwyO͉B`˒Rd=)K,n[ ݉a8*~Îec܁ Z΋C!:"/xf>< |M 3ٓ!ϋC c:v/D5~BxFZ n1=6,wu:c[/U1 @ˣψgn 3)?x's *l͐']!Ǯ^~]t_YJF+`Rwb̈́n86WTpv31JH;TˎxQ/ɾ K|)䳱sCMy[-(@=Y vٿl oF L@ᙱ>妷bu%eJ_OŴefi P03! !Yo0.;5Na, ^>YNaoJhJڅx3Z͐}3{ص4^\Q'-=LʦO}_,DĠH7^7ޖ,@G/ QKʔ{ƞA%yOo Xy!dpyQ(\$ /$#nM~˱LS;79_z¡F1fX95lQݥ{b!`njBzŶ3`=a w9Vq7k恄0qrґcc1fhaaӰ *G!4mb jd ڴROp7- Y "-{NrB7BpJ3& !ܲjW~i籕O0ZMf&F^#%^%OY@1 VZ-iR+rK4@@owU{^tx?c5y9Iğ@6W#ޮ66D3_[Lѥ0 q|Blxޭ&J}Ÿ&mjqGUreۇ]I(cS"FbbOI/إYGmkx/ Ro9fnPk)"?bj*-%Ey-ƾ 1~JIS13YNERݭcӲS:e<_,{[]]k13.GUdj/KPxPnLPn;ȞWUn>?&[?*燁OgLxMXS۝7H~[P+*n2B:æY*G rJa&ac=7 gO{3S+yAmqgR;'R:a끣4 IdB@N$ׄ^Ѓz_^("R .^ +T;oHtXDCka d'2>s_uqv/XeF:%R@QFn),SpU*x"vr!}F{NwIvK8iyM@I26%ahH=&`fMfHFL GdIcև6$1N~--n5AM^iT ,zhTWvR~[kk 9ί\ +9.4Ij'gorm-1.3.1/.git/objects/b1/0000755000175000017500000000000014327003123014257 5ustar heronherongorm-1.3.1/.git/objects/b1/9fa15c209300890b5684e439ae0ec68290aaca0000444000175000017500000000037314327003123021325 0ustar heronheronx+)JMU025d01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)s9 MdYݍ+ LLBsS2sR ^k{:M߾gy7ejnjgorm-1.3.1/.git/objects/e1/0000755000175000017500000000000014327003123014262 5ustar heronherongorm-1.3.1/.git/objects/e1/6dda1295ce9d7fd3b26d1da743d0ba591dde490000444000175000017500000000141514327003123021716 0ustar heronheronx}Tmo6 W>@vȆ^a:y8P`@ ۴-L IN?ک%E>Çrs?]mX yUu<\}ATWUɝj*G4]'lE4^ӕ_L-/t;S5H;njmv?uF׆0  tW`A8 a DTp C!AI.aR*pc,!? P% jJqڌtι 1>$\k BE4J>)!G-V Ie_ X|X8!o-YqXi W@5!Va|! -JEab K(.YmYRH1;RWchKt4@EdKe #5@' IssU=Kt; v3x0&MG1_Ê[ l3ڈ67b@ m6emX݅BhZOB%O;nžhh{Za2̲'|AphR⼛ܢ`Sg H("%X;؍7{HtM DU Âuj*͟lN؆' -rާ1P$vv Cww<ԗoYrb:.$Ҟe A!I11981gorm-1.3.1/.git/objects/9d/0000755000175000017500000000000014327003123014271 5ustar heronherongorm-1.3.1/.git/objects/9d/0b4f43abd17391324b2ddc11f2d2631cbb57bf0000444000175000017500000000033114327003123021522 0ustar heronheronx+)JMU024f01Լb>Y3|rK 3Rˋ2v3;p{ЄmWw|=y1Ds~^IQ~N1æG Mo̸~7gj3-fC$f3x]67}w!L\Kn6ֈ- (Y-nkoC3wԴ̜TMY6j?Pǯ|Q ]=gorm-1.3.1/.git/objects/e2/0000755000175000017500000000000014327003123014263 5ustar heronherongorm-1.3.1/.git/objects/e2/4ff20924effc94e244dbf2f128741a5ae1529b0000444000175000017500000000030314327003123021472 0ustar heronheronxKJD1EgĪ$ "8E>`^tlݛIo=p'ZۧK5Hq BZ!Ġ5%4H/搢FY yʌ>*{~‡\NKm%=V^RoY 9mդ3yl@2%9Cj{?}Ƒ ̢$Mp;\Mgorm-1.3.1/.git/objects/e2/1a80a4779c47620ea9e0a5028be697619ad3ef0000444000175000017500000000141514327003123021344 0ustar heronheronx}T]oJk#>$K\U[ZEd-0 ő!v9sfTΦ#5Αc<(+ ]\\LfbU;fornj&4{fDKwK:rBuO-U;= ڀ*`KUIcZUy avj/azxs- + E:C B0/TA%T "æC$͞t,o] kآC83N@A17VZOH$y}ń^sDZj"VjNH )BaPAr\'[ɢ%el)[sм1;aXwC-- 82+%Vh} '+Vøhs4@ݓoiI9T|4 ŖrhGN>R5,ɱ;_K4LN Z?n>|‚w-NFԩyI g [u~k_.P&}1Y,{=j\{-z'z:#87)y32"Y+.ҟ'GAxsF; ([;/ב?^"( ˕ fckonȎ@rw P#zt :P ry .)Mu t O%q+]ms2Qn2x FZp0,Uƥ~J rtU?gorm-1.3.1/.git/objects/b2/0000755000175000017500000000000014327003123014260 5ustar heronherongorm-1.3.1/.git/objects/b2/52e280d735d898d887c8fcf6359fcc7d69389b0000444000175000017500000000265214327003123021423 0ustar heronheronx+)JMU023d01ĜԒT\gJuT8Tkw|C3 o '髾֯_Ųge?p(.LKcd4MlXT2BsS2sR7V`R]G1'`*+(JMM!v-1v% >g)iy_XRRTZZW\\_qN2#}\-e^,!/Ա [ogjhe{Y_iII~v+}޴%75sW:|eʏ;1dBm\(!aêl\6XpYNvOT;`Ovo)hT881?sr nRqݢ U d2U'&)'92쁔a lCՕ/fE[|^_[\KW3]}U; Ϸw+=xrEj]-me.,g]`kӐt{De:c\m$fs'-ʬۮ}B\2]+vkr/ڜ1|$#$o[򨝣h ;EODieZ['_㝨1}="y-yノ:2qmj庠:4MDž]N_oᓈ֛?'6mBJghZOd:Q UnL/A~4}=~i4Xx[sM6yks@M%-VG$/S%k[@ /-p{6=v{ȊE2[*\G#iBS͖+d8d6][y!Pt D`!ֵk*M~ds2SR5c5ﯓ ` Q4`:Skxbɥ[+T*jAZQ▙*/~9`lֱLRX" <_&6KuQsbʝyZ}?ߔ_ (څ~h5kFVAߋhY݀=R;a}lI;q1\TSrx +Qw9~C2ݵ"$͚q&.QZsY]@u? C I!ح4WOa .\neD,]-ԼyZ 酧16y{&nV-hū;-`>ߋ2??l Y( jw&S-l՗{KF_jDoB@%Vϫv;uyMO;$O&* gorm-1.3.1/.git/objects/dc/0000755000175000017500000000000014360747337014366 5ustar heronherongorm-1.3.1/.git/objects/dc/19a7d68e9439d5d21f413dd4a792932e03c7350000444000175000017500000000126714360747337021323 0ustar heronheronxUO0WW 5E !+5irkͱ#ǁV}8 ?jyw<j ݝ7w-gJ>xCS۫c>p5 &T (8FzbaNe8e l!(}(R&'"6XǗ ,rZx"Ei嶢.ל Rܠ̹%5J%ф52ln}1ULG+P1xM[, yC_5hFP$)RjTb. W8T^eYPNJm"ku18xfL1nCv< ?2Cf05_k_ CͲP+|~E'@ub> l̪@{w-zʪ9oy^(bRVWn*..'nuo=6[[߸*]Nn*wt<&E9pޝN.j{_fWg;UVIU^m黟9/Gy9v{Y]I~?,J:?&R0'E(w}UW݋÷$&M몼+r--] ]O'nQYrP o9/y&U38{3=}:w2s=!ˁT>j}7\YlB+W^Pk֍ue\1\X%"oȝnZh'GoOÓ_1oU\] Te-DݧN~*^]f`cMzx(dIV_A9/9Hϋ.s}G9q6*NB6SNz⊡ w9`2!,ﷄi}F@~ofprGeYme=u[_?~ؽrMGA~l}ysdJ[E\t|ڜy?wgeJ}*'eu)ރwb@zy sr &47W?͛*U>a9)E_T[Ζ2 [~rbĉyUy\)aևZ>[}Sɲ_琡A[}_5l08ov'ɶ[;Փ6tǃ6qXgN^cnEqR>ˇt4_Bˎ.?pk@'~EP49MȹEmŸ٨KqAlW|4t?N[\Fl c[H~]#aIkEL=-Z]?-Z&[Aa_s]l? ʾ,SN5l XPZ/{ӥ5),yXa Wm!Pqyɹt{N^-6UAe K'@(cۗ\ݯш]h"9C{Ǐ[nӆ) s{a뭍f,yS (Dh˜~#u(7y@zM1fko~~ =~cv{9Msvw%]_f8G928''\?PXM>?&+8e믳GB,pĿ_H{`a`6S3⃸gozNo@Aw0g$A6 ~I<2WXEyyo^eUFu[1i_I_>J0'( M5ȋ @TQd"ڂ@<]&I5=?(_==_@Xf1vɳwp&c( *j Q`QExǞ%B(OۭQ~mDL[zw4RO.HýNZn H ͼgGcƏ1%!k҃6-LE9Џ2^O `;]kه?uzqz92zb_#/m_3D>K ,Vv~eL`Z4maxYl#d3@$ô8Fe) i 1)'{Qc&4Hc$*j˫/rH~dx>s˜T+%}1G{Z:|헕k&lݷ'G\GEMkGsFSUۀG1k*iuiÞv*{ԡ& Ʉ )bLs"6cMH<&md#d'[ ox1]Dj`g ih܄RT*{c`za-Ԝk>ZnqSE^)\ 1tNC~iogH#ĕ3׿ { w<։ꬴRa<u4)_n~͝z_쫺4!a1ya'TXC5)Ze;xqT?醚  ,4 9RX0jItK jI `Pf32M_Իx)AGjN' NZQ@@QDzZUQ4ȽVt&z0TOFK1XaO(L/ gF+6l2N %қq;Hz!?:Ζ$w*<^AbN06%sBdEb<8B.,Gt3n,ɟ|HOޙjBdXMlE&]"p /Jz~@7;+]F?s)8du9w7 8b̉ y.Tբ hH 2t4dזL@a ;wOQWZ %]rj k ; ["zvQor6Up>(TFXZfoG&bE<Cc".+Ldže yq/Rj$Z= To!foj+:1tsO%@@YD"D7D`Qzܪ6z Y=#ZFW+ Hză=QdH0YeȊtwnf"\P_~xFk'(ǦQb n6aȔio݃/XȔ{P \R#HPԸ /"#݋?Dj{%0" [ktEX2oQׂVL:qQsHFwR+,%H 86Y1ދ@18[j\a6h2GfP6Hʼn UٳD ! jKw NS\œmS;s|8|Me >^[^8H@Ѐ]1ӿW\Y08{]Mn+^ fQP(Zmcw!u'jHPt!vo$x#%XsǵnLLX~Wh-ƐygWs@E\/M;QA6 }Bxe S/r"` iXbg"1Z6)h嗊lӱKaa"%w6}wfb|"B> ۏ^ h5}O/G4AƠBϲEȹv8lr/~6QwY 3_/Zk8/^i"Pw5J5b +}e뎙;,(35%7m| 8'rFmx&eNk(T.jlyRZZHёjܓ#dӗ.=Dگ+D|2S(p? )ȰbG+v4kϾ֮czmq3Q2-@":{?¦864[ 4be"aM QPŮU 2={*nǟ8xLy^ ѷ>s_kE9MBBt~8d*ĔJLѷi]D#ivZMI[#uS5mbR\>@dW_}!8bMJ oZ7أ-LFʝ"{cKn襡=T<ߢQ @IE}0k/iXZ܀'Sn4 !}^[aU >B=HQ e.䔦]6d-Ԅ޶'bL:j2T#|"d3Zir|QAӸB wx͕jj9a˼:V'$e,JgjXϔ 9,ѝʽAbԩ#6ȵFI^ M \J=m 1|dmLghB\/u](]YTEFJ :ۖI =$e|EvЅwu>?BdkƐ;G[JQZ-9* :aLD.E>.a/HN`d +2%AC:u7yOP`tslAhFxI$\!E!cQ5v{oErgP&4J,I"RmA ̖~@h!i B$ $ .ƐL׍xp%d 5̼ZnG`SlR|Z؅L 5D }鑉  Ti/T(h0dLTc[\ɱ$ %2J^)b6*r%N|qrjr)\T,b9. Z7ce9IyAML2:s\5qm, 9&+Ao(.qZ~IH c>m 5-i|x+T%^llzT&LV23lY&S/-6T~(ϱGؔF.458>Gþ{3&Iif7"C.t<~TݩZf&K(~7q\3B.kKļJW񄳕s/*ki&@Ů2l #4XD y$n\=3')(!$g\Enzw<@ ⿔ݛ-1Lz(ǩd n wSs#o\HUS ܾB50eJaӞ>c*QW89U9<Lޤ"½ gima7Q. `),p81{c3(ޯIqǘ\&>!nI< FNt 7Gwp&w'".|$5мɫk#:ҭx6:paԼ9Mf0ϲh)J -:&&U+tI/̀#F\Y>![8+~aa n 5, ujIPHt};+fל|:ZThՁ;P/fg؀5>p ,="!.+Qi|B#qV͠ 0@ʹD,|5s4ЩERۆu-l@p)CK@h`H֤QR%u+DYcƁޒ'ϹFA%M}m9+8R45-ۆo.TqȈ9mɸ;,4 +SÎxi"Z7xȘ> M%x;ۖpRG.Pm4‹ozME>&~ Ԗ@q7׮WHAeD8 ^sI>„p/x^v&kﶦ} * q¨x8.F Pxx#`!'|f"v Nd%ٜ) = z!ۤKK R\!*yrParP%Iq~)OQ/k9b#)]zdM3r1]c@0dRD2Țj|rTD>؋#u#ZY}S)Cb窚}m}Ԡ զ)\A3RC".jQ}&^x\U/H[q-4`ss@NG=[Sjb? eNj8`Sm$F9)#M}_4>g(Rwt1heѧ6|C i ""g(޳m#_N ;RjU5N]T(e9s65QĞMCU(S+n,uJ:g \;刌XcwjgJ[6~K.cɘ˅jFIyF#ZnQM&Y?,9&$\0bA,ЛT..Coa(emr TPv͜_E=m8GId$D^d"K\@iC(t7/rf"\=E^N h5eŨ/gu59LC" /Gٔ(: *" }y$J"xآ 63ݶRb*͸jZc9QyݸK 0jYf̯K!* 0]"Ƿz9M8'YK"lh DzB|,p|j»sBYt5u@dY<ʪ`CJ 6}5v#A|{2URQ@M@cӤt;m>A 3m׿A|?mr B1ivmT \Pf$n-PjEM^K /Էc^G)P@T!ZE\sj~2J 0=V`'>Ou {h;%F:֔<$^X^3{(6ƅJwQ#и}dԂ ͨ.W^_n,)=_-F'-EIZVfrS A?O!4]+f0\-V!Ja>H+[||$g/2G"9! YVyƁ֎ॖѧTR,$/]8[,qJq0:5Pҵ@3Qz5.tC{e=ׂ1x*^ud۠F$G簉Y6a'0Dn ìF r00\hn"[-6 Eʀ˱>QaT[P4-&^uۇ0Ӣ Zr; Yj~HfZ8) τQj`ӢQYOFWR~,08oV}%p% .L@M랄H:JZϚčύ%=2=m[%Ov(bSMַhE/OF7 mdG矒 {uvYn򢰗iG n5%OK5L&jѕ'Fp`&}WE_Bd-?&=$b`: LSWqNErX6%#5؋G&Q3H꿝߬9>99f"Ոܺ3xD8gVjΝ@p`mF}쬬&!lnWdy;La SgłNk Ƅݭ_r5f,-Q_IƋ1TO|s>0z92-e A QLv 5qFYNݟ d@a!x-1ՉdzG*DInFm_tY#\OU]h! 7)D6iǦ[ΜX=>?E46έXp*,/40i˴I䠵.ۧB8'Wh6. ?Yy_U~ !jcHM'b8} Yk&^3R*!:/[ m$wa$FؿJ7dʰugc~Qvwx>;@=&\ Zž3c MQ-;kNA1", j3Ȍ|F>8GǬ7ARDN"xX!x2!w䮉f7?w53ҋRK<} c7757|O Iy(j;$$>-HQmadȐ|(蚐*X4iZǰzqp\sA3 J¸p 2a\&'}@&L1qٵoQr`3*T`vMbRP k(la`È_v4'n:AAb /=# ->}( 5|.JtaY   -h?ZR:L]?}lJexuTh2,OMMr;6drP;ǘ[y޽oM T9BLDR%qf#W?lϵai&a֪ \s6h 9!A5ơ*[oYZhP/`p9v;đpCջTQ.YCՉ1:{rP!$啍HdUT46ÃWٳ({愩IGgѝ=3] NFeXW: &~K!pJ*;ԛq~7kj)IPeҼ7T|ۂ?qŗ_x@97RR0l-cH7xGGUIhBT#,k[ӆv 405 dZ5g$gorm-1.3.1/.git/objects/21/0000755000175000017500000000000014327003123014177 5ustar heronherongorm-1.3.1/.git/objects/21/0f132f647dcef21ad4f98c90c0da9826d3a86c0000444000175000017500000000165114327003123021500 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvcײlB!Ç'YA䔦g3l*Z.nr3L+>2Q+z͔g_GY{sW4RAE@{85%M>hc w^EYzgorm-1.3.1/.git/objects/c9/0000755000175000017500000000000014327003123014270 5ustar heronherongorm-1.3.1/.git/objects/c9/07163e9b292ba5a6d6600799e0534cf66c4a7e0000444000175000017500000000140214327003123021265 0ustar heronheronxUmoA++F`?P5M#L.dwM3FH,;3cmǰnYZSyУ[a^PfryB/~ujgi-  ק/qΛI2Pe uz8_AQ(vZ23Am4_`ruJg`h^rԓQ."=h X<%M7 sIeT&=)ȗKtr}G)|m`Pb(KShm"Uc]B Ivm_>vҸM4&sn5XK]3_b 8X֝ fCIpj3U2]uWa>Q\!_51Az:HxM{z7ivngAȖc%ᱡ7ۂ.u^eJ4*.iI[YsF+vί-9p=@D}9x:dy6 J{ee@ tAMr-A#$%L)ԢQ]z#ޑuj6>_oabu0tjG!ԓpmR6= cH/:\6f*J_N'@'&T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvcמ#CJ@>Uhvvv߮.][\wTSAğqzN m€Mn7|/])LoZvv@Sdشv˱YkZ13veKj^۝D"¬z{L(8Yx`p]/@1u|oW5C8;['Ce*jNmQO,_%$'?A$50B0DrbN`Z~۵3+Q|J> vy1Ł?JX&W8J7bE! s@)11AP) kyhR 6YԻ lmd,.fԻZ|"Y<Ӝ "S3<!.cdLʃKަ2gLl(;/ Z$0 5cne²ឰGgRU@_)^Iz#rM8'S^gD{R.TFfN^3+*zF2"(FxT;RZC%Ø 8eU˙-0U[4RDL7{N6[>O yes[M  XvN\vC:~EW?!<=þZ^LqM%g]S{R_֩ 1"+C:⊒CP!Ś;Z=ӯ~cN$ +1:u:NʛKʲ z"zkQ/.o+p 5HIu珇lyIQEAh:AM|Rc!)yI[ʂE86efı&ʰ: +5\GN?8W5d~HAͽ'gWVs~A2GYMo~% }/;o.J!r"*sՍ֮]fd,pHҎۻUy~#̖һq,֢)\QWsjdD+57QdϗD^q'fM}Rw :F~M*}HdjHfP1*'Wo-}:æ8ycˣVDkѥ|:s|\Ekޤ2hަ+Z7iBZWXVCK c Pظ:t+JI+/i=cG9T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r Ds}V_g};ޛ̭bʠ&fe2Dμ޼h/ӶtEZZL $17 Aɷ}Ψ+76 EJ;8hFIjI__/e0<9D.ӆՂ3O\ 5Y/3!ʿ`*bnjO4T\\ ; gPpYütN]7bdg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvc^SC]Vu4b9K-*v=Z ܔ@-U?eTInbf0|VchS;lf#ֆgorm-1.3.1/.git/objects/08/0000755000175000017500000000000014327003123014204 5ustar heronherongorm-1.3.1/.git/objects/08/9d76b15a6647974996dcf0d45ae80f79d55bc50000444000175000017500000000025114327003123021316 0ustar heronheronx+)JMU043f01w_sXG^뱴_hnbvjZfN*CJ;my]lV Ԝ\GVx>{P}BXXi$sf}k!ZqĿ"0wFi/GەJ&6(R`Agorm-1.3.1/.git/objects/bd/0000755000175000017500000000000014333757624014365 5ustar heronherongorm-1.3.1/.git/objects/bd/6db4aaaf74bee5e058223ab5e34875961382c20000444000175000017500000000703514333757624021522 0ustar heronheronxy GHY+D\$6vvuG)"]W:( %U~Bg_yyyfNLEQY ([,b 8ЂjMHus ?ZQ<`:&O0Љ+ѝ˧q;^8Y{Rc'QfVgaCy@pLOvxt>D/0Qͧ†Dw2g{v o >^(9jvK*6܍ Z{r*Cĸ!Aˠe1gl4T1`Gá!XgҡΩ9#l!0CJ6%@W&=A OҰMY^Żb ާ͐*DDk%+kռ"j+4|/ Cw*/{B/2^K"^&N;B0=߄tJ-K}iVjBTMﻑ=$cp]غE[ g");Gݲӏo_Xyڑ ?qYhW'5Ϫگvqu)x:,s,n %ͫin}Uψ1ꛈsgx݁Z;5>[$~B$, T|hKr "IrL$<N(ȴݖ~J;FDmf.a0@%&W&dڽ0ZPcHC^ǖ8we: &4hFC̯- rysMGt@-@=W-j5;un5UhђՏ~* _8~~A$z?W߈Z;EeRxΎ<};3Tλ6Iq A7B6 {'.=ܯ|9%rx?x_P=&{ M "qs+TYʙ {"-b eި[`;(x@JhMzp<_m2Kn9kv{K3MǚȲn/v;h^Z{1gU/?v[_ZGL.kp؜{-=.&%6)l <%['b򸛧LL̢FK 8yA7zu 1aQ7 % )b]1ubKr‚9*FbD @-s hW$vNG`ZsZ7ר撑gw24e_+x]k[SINecoeBŹI+P:,7?(c2T9UZ*NmF'NIcZf۵^R{@VI-3[.L"y+{䯬Im2Pz0 zap5S7jc?*EspXc zN[,B&;Yl%_xsì,NhVH݇9y0S~C<:oVwG >:~ܣ]YI*!t"7Sǖ("Ի_GPd62&ؓC߾ qq,(Ρ7Ͷ .YÕgm'|vw(61Ĕ.x,,<C&(ixh?F) \y-DT*#ǃl&|xh MJ&T@X q'}}y~雮&fIG11_UW|r"@!OǬm_]g/㗐YzW=p"Qrqza}s) (yv1ߗ"7K]o_@،;Hc1O<eևJ{e^GtJ/يQͻ=>k26enmGY%7Z[{hN%G:Wofxf4#Ԧ;[;/-WHkcs=NV{&6N1?gorm-1.3.1/.git/objects/bd/4741cf21dcea38f83797bede3bfeb7bc9d17d70000444000175000017500000000331314327003123022074 0ustar heronheronxWkoHݯA#_ JjWZBC61&[E(Z fcfX{U{u{jy﷼!ؕ72XW@*a?K8?J{\ tމSק}lYO/{L!,G.M@p(PqMaP:7)qTCY;?a ,G!tEr%|s}_- ubcm:6"]-iVM BI[ew^Wqb v_6-8qG*-[G/ԤFvÍ-l, HLBgL ȬZbl~QaTb*(B)$;Za*鸆htyDl=3VE*%m5DEdhFS*Ѥ".=Gq&84uk_ u"zq׮*n>6K48|ѽ)c#BO<ܰIGȸ'dn ;X5p33m]m}P87#?U++֋5t;0X/O.wӮOEȝq݉+,JsUTrnmT! ctm-7MC[7vSc:R`4J0ltHa#4Ro`\:G[^u$^XnK̉k´f*qÝO2u9ՋC3[E1\zܟ6#ͥI'>ZsQE! /+iq.KZ@|yv-DV7j_jK~PM.Z o[ Q׫`z%~?+ED[+z:^֢kT3"=Y ,Nf5ge2@*-9†?Rvhuh2#|!W?ߐ;%pg Nl;+_eÊqfckL L qʖĽڱo)O`L M>;㳘H`>A2ːQllӰ<<-Ur<$j:gpnYA9?/S,`T`E⮺0H%1fVnњ]˳& &N3u9K˱~,\x& S^A [0zy"Vp[Cmp*(n ؀.,| ywgorm-1.3.1/.git/objects/bd/dc4073b8d087c08f1571d7afca59c68bd6777f0000444000175000017500000000165014327003123021601 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvcr(wz6)Stg(-dJ}Lb5*^s;=_68XYR֦OUq̦Ѭ,ndvcbZ9L_bnFInJf1W$OL4aR45-Gh~-9_Oyl^Y/>nmj{KcAіgp7MQ&)frޛ 3dL඘aJIef^|@_N]{|pr%cE~ *& 6(p|pt=xYã9_{;87gN[ R <@,.uM0X 聳nK!a5f!čɚ)bpiܜ] 0u߸3uYd4CxAlǬ FƋeܾ>Bɣ,źY3?0t$_x)(/Z'XaEq-!3E=R`-8knYiVL76=&7V"6t p]7+*2ʦ ^'}9A#vOntIËpXoQ2 &ɍ!q۔ьɇfjn.@V l! Y(oSUV֏TFѱ\!dܳRZjcp2YdF  N"y`#!Jj'( ~a?Շ`i?RPJA7䕯+D`G$-ì-cGEjYJOSz_bZi@'CQH[ `ZO>Mo7rQ5QW=+%9+HOBDu0OinSԜ )7A[Rw٤L8vԄ!TS@6f\؆ X@2yelgCY J<=_^ܞx続A2^S]r~Aݩ1Lsw<50Xh[π(u:4zp\'z ye.=vRSJo c%-41\ p\Me^UųOo"} ``KC|p6:q(mt#x!`|W+=F2`^;c6j`x~% )Bj-'ծ#v!D욄&UӚx i)Й `6D^sf)|Ms)9`Qg7ޕ.;kz:1/qtmq7BMco~J&s{Լۺ7߽2 [Y*ݺ?{e'v~y']^KB:8͔.%"mv V箨d&IS;L]ժ2a1tK,X=ZdH ׅ r\0,Q+7ŦRs&Mz=nX($&p{jot Pd`UWw#[4&TBOv;}N]/[W":畷(D _窍l IWvRnJÎԑdsWQ~[R-uGWn+ʵ]g32evkmঅW!# {$"+]VaٵH7r'"s9'1=zv4AN`EѺ|4*vBC Ug#0"kGH*fː+{ZXL$cM_U#{7xIҠXюʃ\L9$`~':QlJa1ynT1JslY Hz!A /͛Łp݀W*>t{g"0٧Gg?q='DsDS\ê< )pnrhL+,1B3mO)(3{ I`{^OYm67'EfAKHuq.ˣvYΛ le!KŚ#^C$eL+ޝ=5ڱf\/ (k(/[|լEh}f >ݨ\>РQ@;ϣ;h~wl!cAkaŶ*nOe( aPi "~b%2 h2HɅ: (^͑hf-w|0jͨ9P ~<CE%G2U#KABάGb$G8(Ą. M脣+$y)Oe*kJ} coM[?yJd xt?NY׎Kfɨ S /dHn9obwҎλ%rT[aGR{=h-DmR#@ZCLrZEd"⦂+ 9ԧxr8ٸaɷ>x}>855\ѽL$%*  A%^/ݜ=bcG"@ :̫S 8Ԇ9{q*?ݓ vB%%Ѥ9)Ƒ؏r'A  ޅ件?,P=LO'۽󤁱.ܢ7%)%gWRBm A AsPOP@BiN8TP ƸRyR핗ȗ0@W@\ wlx/CW Oi1f QCtDoCՙh*J2X\ ~HQa[bqգ~G @5c9fجײfUI !hO>6'$9OhwR~g_:Cb/R)ކC `fK"!ry2i9J1וf|3:(*«&hάQ  $3E/%ĉ%P'& Uį>(wiv)дCR"[M6^e'V"X/涕ߐј4בU;梘1D`0D/~x8ו˖^NE=(ywU_$RJk'a}B(q;uf[Xf3 5?"MSۃhqG->C2EQNYpuztHj1[Nq, c zaII]q~%&!c)^ knuaH+K>F~(/H`2Vj9G. 1c\ߖQh2T-?7Q3.KŠS63؂׶Լ _ju-?!xxVM"Rg 7,Q11l_uXD. 'Wz?J̈p& DfC6ݮ1Yjmmj;̢h񉵴aOb-JfWhjn8XތGqLX 0)UX |t>lo_=dxbpgi0HM 朾~m? +m*F/VJ/\>Ԓ2[N$g! "ZG-dRCn4X@ҺՂ&C;k v2m> )A8,p[W)q!˦À4O{:S'5b?UD`wm,D Dy㡃z8[>֓`%`E(uBZW- >a rcK3w{TPPg9vP wCI@VIh ⶪel@KUHhʙ϶{RSVRqo3Gy V_ƏM)!q9>)=4kqx(Hk $pG侮 r`nM\C:4G-p^ ^rh0qL-F/mi'vScDlG Q̠+g55 4l@GaeԔz--g>yc "n ]X@.\[#r'`e:#W]ո fKNoKJ]Y5R8Ҩߖ#'dcQ/ˀ-ԃd[7|rOL'ُΑ;я'7!u-#&F-ΐ&]:18čHjBar$LYnTu'uK{#4°)% R',oRCnkOm.)ܔ0wnqbY$AU\­D)&WlqVP k5D=Y‹yʤǨK]b1w+\h?18Chis ƴ;Yɥ%.d=CqYp R2I솙#3ZzE*H ~U)Tr-: jGNN)!@  R/`KdzEGI5"{g"w"?E^~؜kO!8,QZirGq_gL5=R]?[zN srI$%LXѥfrcFX}z*"R2HNYѻrn |L#`O]fCz .$;iqapM@q&j.ׄ(*T$Q ]D@V:IӑjDkJϜ=DN9wHwϊٻY5I {4EhM4N@z ȣD=U AG\H˜ p 9XGDj;*>ᏮA2w!7sw&O{>MAB._ʁkZ*HtV_i/rܑV2<'!5lRF kx\Hyv򦔄Jɒ%}&g?r9 M|BYs>+LHR…jXh|ӛnj,7p%ga4 咒PZJ_mR֮Xd3_h SW@D=!mʧAH8(,*`&U'l{$z 0MXJb!:lQ(ITs]^Uҟ죈-L6, ,9V U䝧3H,T9Z8 X+ܫ}4Ͼa\D*ibf4hI h`fsw|/| !Xˇ{gkAN<d=VC|YZV(VѴ c /aL0];(-h^Bc5|ۯ(8mњvD+t䆅oSjdTWðXFo) V"$,jA y+Erp9KSr&!oE}e)?pUڐ L o#Xk1:y kv:rqwGܸ.-Y_!zmVW}ᎲDi. bguuM%@F\ՇkTPJИ 1t2'wJ_`Eou_9U9'Z!,EWEYU@&oZ碞QN͊'9Ԥ{1(ҧ;Z֎܄Y;+뷂Xq!&zd$rtvԐv.UNg Nu*Zhj~G/In3\R+l]pd~Yx2( iuձK/XT-Q$9Zظ{3i-e츠w }dX˾ܖ[kU(0ޑ$47qkBҥQuԮSCuBc;)tg.>J샥W [6:7[hjvKY&(1# f4:!Ō/aqYBwcWV|b "֐STk!5njS2E6*EswPH/^%XH&/.'o;v$ص{w1Y2Yyڬ-{5qy\?\# D6ry(v%o{Yzx'Y',4&{`.1L;|-.P]a8+D{jLsXDQL2JъNKUlrw-P"W#qt >WY8QRs ha*&%<}\+nDSZeuѿx.ԤI\ S'$` b욯C>KEmDvsfz +]jIR/ɵZx@4$>O9 w]kl_pHW`3nX_N("iM""u ޼rE< nrI_0khIhrh'B3zyQ_pd7r u_vҋ<`x=Vw  +zQa9#jazzxN.jR91 ˨;#%je78!Xk6u;"\z\& \m(? !:׻4 PCqh/ o p,y ]*ALXhf'mWtVa(0V-A!â!_o)qٷ9(Kw-"9/dG61~5#)Z$S N>\ +\EOIԊ(t\Zj_בֿ?ޢ |t+]!T= Lz.egorm-1.3.1/.git/objects/e5/0000755000175000017500000000000014327003123014266 5ustar heronherongorm-1.3.1/.git/objects/e5/79856be0c8147b2f3407b3f7277ea8494e84060000444000175000017500000000165014327003123021151 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvcT5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ?L_s۾ -魏A-u MNMIeyyѼ_mTs6: S^A~qIbnP+ oQ?WZolR!秕,:vpьԒ=+wS_`xs\ g/VYEqAj^fCrUjŎiswAΠ#&9VG6;#噗W  ;vqz=N{]_ia>I &|wT´m5X, ?)#51%( 8Ytf9tϾS8By@QjZ1CŪoV?-9dBEEPy805({hs9]|#b941͓M3l4$j~ WD3kek $椖-F-QqrP%9y JK\ SOL^3%ٗQDVobFPjq~iQ2ОpWSX6f+SP>^SC]Vu4b9K-*v=Z ܔ@-U?eTInbf0|VchS;lf# ugorm-1.3.1/.git/objects/b5/0000755000175000017500000000000014360755773014311 5ustar heronherongorm-1.3.1/.git/objects/b5/230cc1dc3db8c5d2c648679aca85f379a5b0fa0000444000175000017500000000053414360755773021662 0ustar heronheronx+)JMU00g040031QK.+L/JeȬݛ}IC }ӟm? ϝ!!dSeGoǸ釜< PpH-I-fvK79 y\^gʐ3'.>7&`s\ԊLV_+S1PEP KsF;pgks/Oh8t̆N/KN[t[oS++_Y\TTafдoTHNT:]lq\T]^jy1DQd r{n;Mu[tĔ\seY.h>忠y+egorm-1.3.1/.git/objects/b5/576d17615b1f21cb416c9207e232f12d7fe20f0000444000175000017500000000165114327003123021244 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvcjIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)!'|[8>0D/471;5-3'PoSO{{S6f$lgorm-1.3.1/.git/objects/6d/0000755000175000017500000000000014360755773014314 5ustar heronherongorm-1.3.1/.git/objects/6d/fb0c0b250122dad6178dcd6e22aff58a1e1d7e0000444000175000017500000000165114327003123021675 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvcqHgorm-1.3.1/.git/objects/6d/f14ddd47a87262998871cc496c2c62fa989eb20000444000175000017500000000677614360755773021445 0ustar heronheronxy _ǯ"D?[YK}OlC1&Ό1c-R$DeU!Zl)QڕDʖ(3B{=P)8Z `ڵ*b- f/n7oi)=#%6N0xEHbtS;5 jiIO䊧( {Gx9Ii6%_#K%>̈B뿻[j\FT~[BU}[5 `<='r=#3d On vt>8vǀ3LlT؄Iaz77ǼVCp@B%턡UǦ[0Dtg՛a93p4F*A=h<8$T69qJ!>zem6qvQN.Tؘtx(+~[l KD$2B'Zʚu[I ZYet^z[Pkny׎LۇoF{zK%%=8+I1Ny{X{%}ٯ0 `1u‡Ѝ5n !)'GyyX3.T<{cyp HssLJ]E4V<Λq.EUϊ؆7vrΛ4۵^yM5u3C&<F_6}6O֥»_ K8"A-6@.O! sQNG烱blPU2*x,B~ #g{]5&P_fHb{o_E;JUϠ]IZ.dy_ <fO;Ćm<۴FFiE[Ňc궯i]!ª8$9}A7qxmp04n5,?ۖe-?TT23&AšF5j {]|gY1OY5?f sӱ&Fm TMvBJvN>V3# oе ,rbYzt3r3D"ňVyBj52=#k؜0ѫ~w20W6yF~~ĞK^Կ/q8xr*nX=Мr&MheY`R>^$-TSw>.j2x"3vvnR߁)`4/@y$?>WSB??5V)hK蠕ߜ^78k]=pzHg0!Rq"0;IegTP|{RO&p13uYÿ-*wUXȽ\ߴJn؂o{A[G8#g|#ձ8j ?pE{ f TP,> D |_Ƭ`'G^<mT a4djm8==.V-_}Ꟊy)%m +.v. -]{~2={W0Xz7g!4]&=d}k7MaqSʚBHVXחX[Ε&I)C]Y6oVV]u ~t@ 8fng MlAkv{K"ff!5hdWohsD4*1 dsɤǍl]V#MZ"`wU2?iݳuJBa CQ8DFs]KHS3nrHh!@m}ivg)㫶]N;" \4LIL۩Hwk$sNs^+jG㿼* ̯rARtu+ӸsM1Խ=UUL~g 7M/9F(*ˉN{a̦w8&:ҏ_/Q-Gm@yGrVgF@$D%aIɕ)َ:_&7! ΓD`|^Ctfc/ ;ΏJDP{zOf _B%T-sf!ʭ'Z}gG>jpUUGY3h?W+ylMhk*4EĬ=*qɍ,%{?ŽWPo8"HsrX b/2|,HN 糼w~`G]%xY=-x6Iq F7 ߫|9%|xù`M{;F*4Fte$lMQE UYYfFZ 8 5QeP׉>H%6TgP7'Jn5kaK{S{LϚeI_;'Α}حoCziQ[ĥ0&?[. hmf~MjyCV򮇥"_Ki )E.U7_l# W3]euWkc~4ky0udb) u(\\aev;3 Mb`_vN=YQആJwG 49awȺ^YLvf)fKމ9OX\ѦMsbX+NnI!>|߿u,GHTxvˆDN?R\R^]Ac:DCEpsQWGtimqL3s自Pzwɠl̮ynQWӲx.SUA ~nZ'0pb̕2sQ(\r!Cp54*2r^7}}sy]h"WSKOn#_}X/k{x4PpEw3}wٷgY@͌߸z}ۻnʕ3#MrWͥ~ƭG _S/!w$b?h#=H4ӁuuB[~^IXfj9t+[ϟ 7؛͘'iP둚SfڷZ3&MĒۜ}2 h:Ο+23fV) ؐt%g%g#"3mr.e[UF .ͅӅ nlZV%}O>,`#FAuSvYÛPyk⽗գYqK-[^#jX~%% 1'$+{[MY>͙QUsX 4bH,m9%[^BC"TyEσS5\V`J4奙)9yտT=ZvDh:Ƕ E sN3ݶʮ?l&>B :\N7Ll%j|@NizfT_d y 񌡳<G S)|[~/I|t:N؋So LN.eǒ̤Ғb{M:859d@j_b.4z*0<ӡSHJ3Rs@m3&*Qw9O]W84/%;R.1>XYjYl~`>U'3:˥~n7jo՛;Lngorm-1.3.1/.git/objects/c7/0000755000175000017500000000000014327003123014266 5ustar heronherongorm-1.3.1/.git/objects/c7/05438905ac5202f9d8901bd0c460eda318546e0000444000175000017500000000165114327003123021172 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C͋2mK*[թe Ks^9hXޟ|;\z3`P Q??dѱSfYE\\ßMO2m_-8Iĵ** R2 R+vHCť r%W1YQ?5r8m=(ϼ|` 0TpH߱v5J# Lb0SmwgEe]lIY)EEũE Xݧ3ˡ{"i8Rӊ*V}oɹ';/d**:/8LJAy G.=!x&3y~IAole!WCs fz'vl_떖~.[1 1'hąiA~gflyx0;̼bMUR%ZM.bt'X& rutue]["~o\1#(8(hO֫),3bZܩ (x/ԩ!. fl zi:s1䜂ʇRR`ɆWqJnJY$713z[1h)Y6IwFXgorm-1.3.1/.git/objects/ca/0000755000175000017500000000000014360755546014364 5ustar heronherongorm-1.3.1/.git/objects/ca/58e9480c5da5652159c45ad576b947ac5618ff0000444000175000017500000000031314327003123021357 0ustar heronheronxJ!E{+.Gg".=:QAo{8RWf I[Q O3r -fT9wPr2VFZ/+d孷lW}/^*o~k3YVWM.z^\VmW7b{od*anUWWiWEU\/E1.iQMe{oU1OI̧EWUѕfWݲو/Y)JE9L-8.NM )-N/ۛYhq`zbVD4M,).fULnWfҵ$eM^"]ڍzVίs^9omYM LySޙ)2 @jL`Rf )E[_J.12K(0)JԬ.\OWt&x ųvd'9FN9(BJ5Pqٱs^v6gUNxccl57QqA_~ַ3޻MR?޵UHY#F'慑X?x[xzt q^lD;A|N˓/\Cn8l|j1)͡M;^bt]_^xpXz)^].-gUL/\c%`/7ݝ!٩jbfe9*9:G9J8@r46FkMWtGǨ:g@' !jWe=v<]5(j# `Z,7)q>)'}kOYFky|gU_sL@xt1z7W. 𦙿.>-.#[A`)0E7,;!j\u]9e[4s2xJQ,הSGļu//_=)B_|D UT`_ذҬ,U=_V9FKnٮb%>[a6צ.U])~1ϖ cufzVCv+&tН/+ճ#B ;Y^OYh4A谕vgOw-?=W,^+F YwtXNf<78n)"7,ٺf + itH2LÙaS:P+ ( "d2r^O1c5m{l뽽uO~1؆PVI2@4EXA8ۇH^MZ.. ʍ~oۘ%pڳ~' [‘vlj5F418C |@$v 6E粉e;zy:3|>ce,p/~49D<2E6r[cG0[..(.vҴ tOf40rښX|g)b=Sl${OH+FɝBj@Gߒa'hjl0# -C "Wϟb^>_zjϞ?y/{/xY=ˤZFbB(Ba piPz!p VU6f5.)be 6DP>2[v%uXKt1P"3"o% lMsa]?|w\ -㓯 S-1/\_>6gn:,P"XKhko<"HV:ksS^ 4j÷ CLh0SAz oJ*r=>WU|,Ǐ:Ai<žŬ+a•FBG& R͙RKh{( 垃R3te)'1{_&y"n!R0*Ye e_3v $,wR=(_1kG+je}lKohUh}u/b_\7eqLj盳iO7f)`Sjm=_*1ϩ!!(7o@+<|bbHpGztZ[ZR2=.z3AFawtCyO.~_=E0䉕fD>D[+ѝ 6+a X 1UdGBӬE42`A/aHQrrɫNz{c}}F}МDxN_>U2|>}R?~{K/W9ЏA}K<ȳgϞ's7ikJ/J y*9sDA`wt'd3N !=3u[ %py5.;b%:n6l&1v*J8F복_6qlofNl!3{՛X! SiWf5C%pD#?__[(^d|R|Jx{#{T2:N4lQJLt 9$),"]('d E ~(Q{՚(w4(eq92Kے?=8+=&X@Bu`Ia*<$۴@66i_״>/Hf;)){E/1E^g)+dD/ "*|d%S/R`mc XL㼉f dڢ+RX!Q?M;&qO`&+:/NVz 5i͆D7}ͥ%-MQR}<`>D5WjJ{xof nʞK(,m|ӕzlImѫgg"hv\Y'uÎ1;vۨ'9Qg9}&vRNJ%͎B{r. 7-4b5g& E6V^#o{qWҴƺR}!<J¯{:tz{ʒ%c%AibH:W-&(Z:2 V%R $@TRUD@u67{"ºrd|spɘ=7p̓n]Bo N#박{鑂.aieL, aվJ=w> ءҺm̟J[o(w*˱Ћ <_ ~{.YB' hbN)NLEp9&L,;͸c_V3$6gf߄T{ zf,葏l!ag}[ iЎHY/0⁘$ LMoJ1rFւhgԱ̛NA1Ѭj9HV dX1bIKMe4%}R$xbyqSI_CIYJ gOS[7Hx $'d)q jj[B5<q_>n5p`(N7JڰM[1`P1좨M$9{X5&qJfץKa8|YYhlr"2UѸ45& oƔGG'1iɜ7Z)JY'"'-)]ztn]! b.ݖ+ o)]2^p%x9< +)MZ}=qYJEÂ侲Ӟ%;JV;@9I'+Қ j@wu-j:cZ!7TL?bM<>aMhH*f{$%~ѻ:E< VDqr +#"F ®ȬKA4VuHnH.G)2^-/H{W2E/r_NgM?z+(czBΕe<7L\fR9IjO> 3ӂ`ԶA/ۇU(6X7iD s~y!f@ g yw}%iᗪLZh2!Z]}⼥@+lu`]mxCZ0wŻ-|5z؇ܰdrת$F8üVyPδPJƈ6=jo К23y W!^,;Wˤ7skձHWO>g,!5z+a#bⱩt[0iVQB#7 ^d-AMeO`Y}.H_u`_sP:ћS8aɻA%Q*DBŁCeY e)$"y ,)0Ĩ`w~]*֨rM*?s>Y@&8hރXHv d [=ꓵ}*<-&ITz@gCr7tlQDj΢0f(M;}mHg*ɉ7)֪jdFYPeP&:}Qpf jJU.k~Dӭ^7zKQl. ߚG!,XSuL1.Y@I|Y*#kϋg>:i]*%<3 ~F?+!qaēs9¥XQc R7+VZRwĂR2aK`Zvaט-Qmjsi#k[jRe{#0 Mp~1.xCC(h=4sv*mdME8'z \nB%{i}8F!{Jgn3̸L&R=JGܟK~?ȓo fL1Po%9 z~&(QCs3EDfl"ڄz7S4:ne\^Ɖ^  %u啐݁S=4 r9Ipb'x?=]"RA88\ 'n4rLjl_?k$~PǂMfLGo|"@!܁NG;>d,4U|~ 9 UN+SJj"!4_5-bok5h_\:}!% F1 |!0Mb1ј`9`sLS"e"_U t5rK;Fvc]Ā)}w ͤPm`O"pL0]C=Bc}FCw?d {:EIũkG1a]C#~YKmSw %ԝt$LG%Bp20n{S. ) L* AQS nh k't./I P2%8j p/- 8';C 'C@ -$ߤs Q{递y=jO Q`!c~ۉ%)<9Ei8($pl58M21y4 F锫Hu U =)]yVgM*gݕ`WّSI"`gJ0bwk%΄X[rvVVо@h9&X>O9HSJ`P1va kj9 կM3vJ 1V(gAė\ H\M8H7!^p֓ zYrVc3DEwpÉ hRj:lEPSoߊ<TKБmPK sߙ/7uHv$1"\bŰ(w/ fzr2# CDDse풽Bx^>?5s8M*,*;]8nԝAKzrї{!"}QJ%ŐGoI!F&Tζǻ#$z^-Ai9 }[Y'ln)rB}ip(^{X؊(@#ksj'; AM ыb[nۂlb5 (4`ő4 "J;߂YpOn~±Ě0 yuiB$ lOa)㳩$XHeRzD?!wl<ۺ}Тۃ04}!u4eZ讛ب'ǣ+N獿U"B~@(0 !v1̱=N쒜 md_#U^"V?quox$-jt0Ji8NWa9j9y&m"lA>¨}7ל+esPz X*މYh|RoIXwkVDMsZ~|艖u9ǡF!Z&I6MjdFznE_ḃ6J5̞01 ٓ]IxQ^T#>Er` AKqYD9#_e{no)&Z [_}Fl;J4j|JWvKҔ$8EEmV } pr"ĄE Ww` &)/ aYD37T@`T5Gɬ_yhh2Yl7T+ \K0ܸ8F9}S 2B|撟\WXǰUG/Hus \s23r ־tvF]GbSf߼j_hnbvjZfN*C͋2mK*[թe Ks^9hXޟ|;\z3`P Q??dѱSfYE\\ßMO2m_-8Iĵ** R2 R+vHCť r%܏wW%(<㙣kƼMHFyk}S,^w|d=|2L#ikYhYxBRGjbJjQ@bQqjC+v)r}HqԴbU߬[r qakPs~f}yG1 shcЛ')fp`iHP3\ÃN<]}4v7_LՅZR4´I33O<lgorm-1.3.1/.git/objects/54/0000755000175000017500000000000014327003123014205 5ustar heronherongorm-1.3.1/.git/objects/54/c84cbf3967644251e010337db8495b0af24f3e0000444000175000017500000000064314327003123021201 0ustar heronheronx+)JMU00a040031Qp/M,)I-*HI22*%[,gd[}9q9F982:?h4W݃SyIfZïY[vϹyv}kR7fop MNMIex{Kh깹7.w+R'2$*9i)?,ZVXad8T}ReIjr~i^I|z`|wl^lշ_jmII,IO-@31y<+Wrˮ;D+G֓ ϲt}*dnp]p/Ql1˸RR+5|o_4+Fv3!'5/$]ra#ʷ,ۙ4K}:.| sYnjbqiQjn*fKi' wYB)&DPntiv{.?Ugorm-1.3.1/.git/objects/0c/0000755000175000017500000000000014327003123014257 5ustar heronherongorm-1.3.1/.git/objects/0c/aef79519559d33e9adefa28fe4ac7d78391daf0000444000175000017500000000027014327003123021744 0ustar heronheronxjC!} _ AGB(}ю7[M/>NnnCC/h$d FbQ(/cO<6.В#"gP &H>kZ.k?ht̿V꫶@@>ou缷_-9c>o'%RGgorm-1.3.1/.git/objects/93/0000755000175000017500000000000014327003123014210 5ustar heronherongorm-1.3.1/.git/objects/93/2c6a848ed0486087412e9874d0781066d1ac840000444000175000017500000000027714327003123021005 0ustar heronheronxMj1 } ]=PJBBci&:.,J=ǫ"2 հXk]7'Ji拆\'pvc̴0P=Ւ=丱}!{F7j txٵ:|]>Wp"_,,6b91C݇jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)Wq>ﮙ6sQ ٝf&& ~٩i9 Ns=zo߳<ݛ~lgorm-1.3.1/.git/objects/ae/0000755000175000017500000000000014327003123014342 5ustar heronherongorm-1.3.1/.git/objects/ae/f10af3810a0dae025b25684e7e2308b03267fa0000444000175000017500000000027614327003123021367 0ustar heronheronx1N1 P`e'Q q O̮ P_so2'~C]L[uorro/@=/ vybHdb{+Lco7w}4]p?W[1gorm-1.3.1/.git/objects/42/0000755000175000017500000000000014334121766014216 5ustar heronherongorm-1.3.1/.git/objects/42/6cac03a5affe7043a08753facad41f32b438650000444000175000017500000000701414327003123021455 0ustar heronheronxy ]ƏH)-굥edߒېd1fMՋP҂IJ,I"[vEoFs} evY[76TGYGք1)N4^!4yT>s%#gUy""zvQd)W SeѶI_m% Ѓ})2:c)"]*.=6 ."B&kh֧Hh]Yo*oym@DyH \#ĔuW]G^FgG'K o Ns"Yfn;'3ׂ:8%[8ɿJ;x%zCֳp2D񆁷 GOz"G\“֎B&^+%[k 8 !Éq+Cڶ|TCz0Ӽig4kUs> o ͏=Bۯ XV& ϵ6V[[/?lXsS`)^mtK3r 8F[DJZ ^{Qqd'e8*G &bb.&1]RB5[U&^>uPGd(c}M;j3K_oz7ahOYp]BW#ԫYrr"4F gtMҟ<~\0Jn|zA'8-f}Bճ۪=+LiO}֒-gT$gR;eh)WIrig,ozi?y~ mޘ#;/T45w.- C#lV%E.?elZHeJ'I }HCCԪ@a}!$p[Z%DizM-L7ҐYp{RPX9g$g穖FR)xZW2.tmFZ~s[p4iaL{yQUR-˦ [96ж3CyZqxۅ307kUVYӗiM0R~mioF]qV6u2C}hCÓOq_9ވt A+ZB҈ P]ܝY"ܔ|8 wӰo"2 %yzTdW5|lOjk>Y3t@(]$')gq84}/3 vw%)RoW{_oî͂q  b%9mУ U h,EDM p;QiLn_UJH}Ҟ౥ڒS;o9 `wag3=qAa 4P1k{F zjN sr=m>h_ù(5U8s;xǸOhm{%%0o(aa]݇~!:-gH%8AӪ]a6*0*4BZ`05SAN?'&tfBY]9E}]&yus.@m˚~8 7MSXހ7Ohk>`՞gI {kNԳcav5^8d+?^BjVڛ9̑<C"Ad-*Ar{zgorm-1.3.1/.git/objects/42/eac1ff2771c3ad358b373dd45ae9cf93302fef0000444000175000017500000000026714327003123021643 0ustar heronheronxKj1)1 [>3FFV|h\ W[̔$DSH},n>]zQ[#ͺ O9Ƶuv\:!ZyS1MOӻ43VYwGK&cf6‚9,Bj*+%fL:fff !W$M-s5]&] :3?x}fxVյ|h ´Xpz8>x#0h4>}'1}8[D,u0t<3ccURO0mfᵂ#\Hb~|qJ+f֓vIO)5EVo݈.} 8#hi1ĘK&/8N}iNd+zt;g=V␒mn? wގpdw&Z3nimoSlzr%a|Tl7͖apb6gqY#!@b?{1efDEvhwV}oU2tvq_eRvѹ`$]ޥRIr{mX*lven޻NNkWUXԦktknka 1Ԣȏt Sf*ı? IiD:Y)RH.42 VdVPB^.1%&;W:K?Ժƣ Α.w*Y5h3:W'yiÿ?H{.!S5S:ш3C//[:Btj|o$)|v$:YV t-f 2Q^L@iI0du|0:-Z` %Eҏa0H uVϻU&0yU܂ZFR]gsIQ G2ERQU8@.76XyH%9'LV/OXN2{6]'*M 󔢒shiTPN f#|_ mz|,:Y>|vOTZ&ۑ] >š0?OإS{f8V! $AP#6*f#{9wl_Y^Um(1 $:3+Xθa"Qтn[[$ְI=d(7kIx٧;lQM &RmZPHUVIv>q/6FPHڵlidO3wf#wpz%Fza4{\ꭤ5=EcLi|b+brN y@~G53__4]ҵͦzu,<ymY]ʥz!VX^ȺpA`{om1$4Di}hʟT0DAZx3 Fmюz0Qf%JT&T_UHP-麒E"zE%S? g2][~r@nl|Ǎ)1G7S6# Ay^uC{qմ|=[/wPRa`'`,M,ZwS@oUFnM]n1ۋAmAGjAU '1$U%J- |W476^ ?.), ]Q1fML#5ey`]RPM9&mQgj%×a1`]&0]w]fS=>}ڼ ;qP)0_D߬Խ9Y6{ >dY@`UY-gIUg h>̠_*u'n2:9[)=B-pƱ㼾k&n*$GnwS#C5qV˲i`FY<C>x}\ݙa~VCt;[ĬTj|̐%R~_y|8UV(f2FMz름\ONGVtEcTWnW< f ! σPy]h:m`ā|zW bUqGC7$!2),YT5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvc,ڕ+hM6SrST P%yZAM̲MD?3Lήgorm-1.3.1/.git/objects/68/07b21c9793dd28887baaee2753ab9632b56cc90000444000175000017500000000017314333757624021404 0ustar heronheronx+)JMU044g040031QHI,IKI,.N-fPpcpIWŌ.3/-AmbN7ָ|^{a TQ~RVjrI^z~Q.çw/~)Ӕ|Xm1gorm-1.3.1/.git/objects/dd/0000755000175000017500000000000014327003123014344 5ustar heronherongorm-1.3.1/.git/objects/dd/159b5a059060f9a51a82577a20aa32c7c027680000444000175000017500000000165014327003123021163 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r  ]UKNx0s8 m&fe2Dμ޼h/ӶtEZZL $17 Aɷ}Ψ+76 EJ;8hFIjI__/e0<9D.ӆՂ3O\ 5Y/3!ʿ`*bnjO4T\\ ; gP_)ǞNNZĊ)#MK+R Cwމd8k.]40$>;*a6|zV,ZņP។쑚ZXTZŬ}J:g)Rl<(5b7+hpBf"hl IG^r~^qfqIj^rfj1R,9J&ǃnF.$ホH:$y3T\RAYeL\?]~eu_7t@OF>f_jRWk*+-9%%HN OjʪϬiΌkǺ\9Cbuo#,!rvOK-J¬o]x沪S*v)/LIKE*>Բ#B9Mضw/ĔTsnyp,Wv9e3r,p"썇x2[d )M̃*ܢ!o9!1tS#|[~/I|t:N؋So 'cIIQfRiIj1Z\qf?KUA2 /1P=Kbl{)vB$9im3&*Qw9O]W84/%;R.1>XYjYl~`>U'3:˥~n7jo՛;V7gorm-1.3.1/.git/objects/a1/0000755000175000017500000000000014327003123014256 5ustar heronherongorm-1.3.1/.git/objects/a1/de05b3a565ede69ebd3976907100f0b9c9be3a0000444000175000017500000000037214327003123021556 0ustar heronheronx+)JMU025d01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)|LPd]!d}^C3wԴ̜TBeڞN=y~ӷYMmgorm-1.3.1/.git/objects/a1/84d826fb47aa1101b0a07a92c5b3eb8c9237f10000444000175000017500000000031214327003123021363 0ustar heronheronxMJ1F]u$tbP̀TzN lx;E= Gɛl7dIvkkuDkiB+vxKPL.t NYehQ%D"$kmpn;\ O_jy(BI4{ܜ֚Uܭ$Ra݃upŋ4^DEMixzʼnˣ,1/ }fZDi^V[p5v;WiTFЙs<5E })Ϣʾk&A?Y5ʸy?PVvEE͋hu3 [zaO̝[8MaLurftvGZxT k*[,K/8Ѽ-\Y4yiM\Lw<cTqk0qyU0nECɠz7b&&E[AhBMefjͺuvӠq8 F`4t[*K!+TDyuI2x;N>A s>ލ f2y.I+*qu]/w!ڀ\^uag]R!$~LmN$0N6 !]8C['ia0RyP!KhxuWZ'Ĺ8,R`\m,)RPr?.̒CJB{nI@zt;ћ4Xoĩ 3o<ڤ'Z${h]EYr$%WU-qFIhFë~ag[N#l //og P=E * ۸6/pP?iVgf۶¸=jd3[2ZMifPč z^@6SW[qnp@Y~٢}%jdki46<Gޞ"<;VGISZM_l^|M!_%<Vv7Z?͍HL.K*[VOQX r]:'[zʝ4IjNZo} ygĹlaWPy WJk~x%5tÿ u?Pwyl<ɰ*,W*(, i>s|q'*Ϙi*&LsVPHV(q>XU]DBcV5??CRG"$xlZC_mnRɰ$(B>:ƶ k@r F.Ի+o2-$+c`~FG\X&1$IiG;kP Ӆ?@*eAh"eHKS%KȊzxTbXȈR6T;JUO0*Ph|jܺ4!5S6/T-RCR 7tKPQG}z7>`ݜR,[[XCbgDM!մl sUܦ|P.TA@ <⼀- g(;=""8YduQYy.EKE>0)|L/Ùeќ"S4($Ղ QJcfvl"OdXrjZD?4Skp;<; 2*` w Oʫ[^ b ^L-尨aP+=Kl+)pxBS@]53{{*PZh TVkq#e\XC om+@DEd ^e5ඓNU`wC`ЖqJZ(+РhBخPrdY]=-,ZH>lx&M':$4|gVi2uJ!{pN}l1!(0&{i70|v_uΙȐ\v650J1T'Pd}DSU#` tυFXg & &E-k ysEE @s3NhUs;q A[}!·!S"!QmE҄Jp-ا88494G1Gg>hd>CWZ|r`'c>G 4^ ?"O9]3z8D4?8/hgv A.jpk4Q@iqZ3|Z'JlwG|9QMU&@QmWbUZ)?Gޣ'i.5ۀ `5+sG℉_/'*1=z0fu! }P2Dz*o kSx"#|[zJQ *x#'0.CБF،Fp괤V޷Kv Z$4u a9IMZQ6Y62,P/Ɯ?!{BSWo(XG : A9>q*Bk:EBQ ;dqmLb[M @ T$K$ b]uT`N˜5-E({r wIcĀ O)O{)^j.$C:O۳h |7Zݝ_Yq;.)'* V>"B\?\ ; =/؜KƟ}IYGrK-[^#jX~%% 1'$i{[MY>͙QUsX 4bHm9%[^BC"TyEσS5\V`J4奙)9yտT=ZvDh:Ƕ E sN3ݶʮ?l&>2CU0_uOfb,49yP:~[4 w373:9oWt:k.hr !@d:;Yh_~o?l $ߍM4}Q탃? m߶cf=g/|O=3f<={vxh^}wjæ9J9/\c=lys:m'-. fkB>O'̌jFdxм ̩?ۃ_&?}<ty2//mѽ{hr2sϿ.l_^qxdUnev:8i\ Gv}sHb:BTͫ-<^Pkg=o0?wV<0_9DëY{zTvh2vF;p>~&3 p]ws\~|'jCϠ,=X^jU/g{X9!,C}zD_߁2M>vy,ǣNSңx~\j\-v2N^Ӱ{5oF3ow|ոRo5O_lg>k=j 6WgP,Г͌$A 5Afwi v {fs*uRMkOݜIv0kFo|!1z_m~8kPƃIl4x3n׏e/~X{|룷[S4l9"(rB2+z- Gv|c K"z yD^}>YCYT`c2u_Lkđ@'qFC ˞MGk('!:ERM=,a'S_B'{h1!SJ-MsG* @"kB;I|.h{T 5> :KM~>磿1E?+qu=݊e@ώ`qVIBGSD\b M,ajt *Ɵs E6v\Hj ׉}zZPLAi"-Oߢ ٫vg{IE 6iUyvP4)q$s\ wN0v$,wؐ kwl§nlzuS9|%u4&1̡W $pL/ԡ<B^(%nnHW:U[?O_~Zlc4`.dq.YJ_WxMaQ&{;K J#O'-v+d2تh''7iHA_ӎӭ3uhj[Lϩ{YG1vx q7 R8N}KwZc/9Q_YʰsP-ekm[!l`UQmmS,>ۄ7XV {36~ҨA*_hEy-ivl7!(^ Nn~}s{Q&kgz{^yي= \>&/>.c95FCh*u+'4: v&O [MhI{Spx<5?6З7훫ӳ||AcHݽo``P<T08o 1[*Y$ Mbۙ^ 8Zvi~f] [1 TAiv=BRvp5نL:;x5/4IbI3ǧ9uD5Aѩſ5;/6l.|NZ1!oġ;;h!-!|ԁ7^G#s$D1/Z?9G(?h(ڶ=% $K|͇}o׿ON~oŗZMvr!69^$ꈳw^=?S,Z`ovb`rN-lUE_yy!|"| 7S셏_-T 0lJ7^c4* 7A`ǐG`? K-4 W$:1"&w; "w"{\eCh Oǣ @a-יrQp`mń϶{/ڌV0h/wE=SS`sLIĩ#|3!3{$@b IF=5meijM r0 IkIp"iR?%k" 󴽸8FV|n+}8Enlzp^Bҿ"E&$%VGh[aZd=Q@h-gqCr{P/`PXzƷ- o{h8G}c?Π)CJ#5: 3M*MJ>{Ed8Kc ̱evMI>fV9Q BaCh2I̾(# mm]7"|#G2K"'UX7YB*4GH0?2]о(H\F\ŵ!bL߅z$,:]Eu%܉0V`~t (J٘y^wUrTA~DLhviqɴgqnRW0=Gm,dfUIsyò}2c{VR VlPe͕jT0ŬnRL[DvRxiceۖ8oh_[!v餌!H Ĉ!vAnN]l4 &@/B2h`>^"nP]x=>aC%6mJQt|%-B0md5"]MIvrfi?7A8vnDIC&S$(Ǎ%c~Z0S:mv}ev?^A{У9wlQXHG~MHNUD'zLb@M >%pt>\ylQ 7C!Վ%P#~x_Fhw|O9A gf;)$`MQLQ),N`8{~ǖC >ddMf;f ބ4 b" + uoF9Τa 1Ugb"9Ƴ pSd}XK2foziκ8n`x8cK}1~\}\>3XmE7hbMg7bNA} dJy6"~yKE ߈j>hm5X>b1̑8d?t*I,h{dD7){WO{^Vkf*K#\=躄Q({37҃*ii!dÞf3T,^R/ZO/XEB63R~ sڠTÞŢj 5:uzVaSe!y('Zjb3DD]hj1wBE)lűn?v!u~l4GS;ϔ }<p A[irךj*vЀd8d4 ʄX ^R тYC#;K Hi` @ش0jZLNxm?@ MzqG ƮhΦ#02)nqDbs6E^ d=`+#q[FE44H50|lH!(Gb}9gB^cĜjz* #Q},\98R[|^Cs|̷6mmf T P'1JX ZͶaZrlLr*^͕ J݆ 3A\ C5+uԁ_IbM$ i,36b@i2*bZI c:홁3maL fܙN~A}o*;Vu7YGcK~ziX ō^>MT Ml)P$'@W[7oXs4g{#'=6x4&k{=lxewf;vqfJ:{؇*; o6h & ,&7@DRD]d8,8S60GCD_8 |pp|?X8)##TF>,birNRsٞM&_2Ɇ g:=kO]^Έ}:'^㺴P[_d,4vsޞH}>Zu0b`}Pfr"V^`)l9@`< va.h؆*j%(8Cji']8_N/mjzݥAaYmyy9n}2`kJ\jNc2,%F,Z\#s 2-+t̏{p`?;) ¼(5u8%N-D8耍|"U2>IbdftUE1ǎK4&MzF32Ib87],†Yd>afhi+d!8&̈́p>EHJB`4886L @!x5GՁ^*}x ֫mkv(;_&.cW;ꏪb6vP[=K !v&N*Ub%SHa7Ә(gՙ=uk;"*"} $@Dxfv5 7vt;k%Ӈ%@;EOL WJ&o=m'&7/@*'l?c:xݾKalޡd_,! @glyr-4r+ Gv\u(-fs}n6#ہT %EhN|^ %Bls/Fע#O١ z.j︠/i :7$:9Vץk"!2Ib #v*iʨ7 1Fʁ^Y(*ŝG̅A-LDN^7qs^%t.Lz @`v(x1i/8ŋl1 01h_"crP-cz-݉xoߪ_!9Cw GcDMbƾ̋MW e\#D%܇ t"}0 ZArZzlE,[ /**U&9 ?gNt ?( s' OIR#9~xbZg##HZ) H#ߒwHŃj-8C VV% hPr3䣏hi8OzNߥ^B>tHE+4iFd=)f7Lx?׺BF)e`WMW D~f,T #d LKU@`LB\M/ưflx0v*a[.yM]NHܾTC]ljީ{h<R˧@ /L6UJN(YJJmZ633%}hYaG#FI*o]^JeaZ:!y$r^0J`X07&FH >-%1)D1WCMC}}*DԀf{sdp%㪳4y8 tpO<^Y:;GH'“(6gg)R\Fm[-1`vQ̓kD~66J7=.ϡ voeǫ^X/p_˄u;ܗ}|;~V~,/ Pi"?-x7#q́n;U8;hڝ_s0oSֺrl07#k'Fڋ-ҍ?'%wQ,5ƾn}0Iģd%Ȃ:6,% &vIYH曈P XwAs`v8pS0'}"X0Qtkxگ Ԋ,As _A ֍d$rϼhcr2ƕG$ҬGJf\7A>wۉq|`΋s. >Yg6! 3Ù#{> R09I{]7[M+EU Us3ԙ㍌>:%d\X-pG)-Lke+SV6ɺ=:^\-ܧ lAmy3ŰXLUȕkJb]obӒ\{7VڼpNrӅtf]@+ Ըm_, ؋ 8XG<ybʤS )N$X ~i-)pLPIA@ybgu{G'eᚱ  djv@L*iTYB`0x8Dd'=qJڌ Z7S؁<;E U70q- LYdL$nvX4 =pvԝw|F?2ΞO dsD -lKy?lOưٮFlUxԫ8ևbT'bG#쨁#/^q-ͷ02+A5_U捹, 9VT(. 7,G,;@E bV.(#-7{Tº@' >lQ*7薕o?B"Svgϱd8HCݪ=O_@Pɓ"Lr=_%zs:x1ܰ˲2:BxqumPk]^8e^ 'c[rziKCj foZ峭fgc= 疶&f1m+ #5z9qUo^Hˋd.|U/fu~'~۵>{a@V _]%ɲǪW&08mdCa"]0azz<ӳ Y+k -N9 02u.9w:*/cT;vU"EpsGWZ_zP JDx/&7Tq񋕾'PhϓKVPtRqb}"[0]6L$"#5VlY&O+b* Af'DE5B&G.C2Dfng1Eb*( *2̸|QU3Y?^1WrXR ũK4tkm *=*,:ۗ ;n eC>6|FK'ɻ:M m, (]IYxhlRa]M3M1BAldy@<RH‘3=aD}֙i˃.-ߟI"%S_(0Ywʄyg}H>bCPHS?[q2rBn`gMF=0J|Ur%I=vj$|#|iפ郄 '-pG_;.5W@+#lǙo\1=3+9en؇n_)#%?C~Uv7b4Ԫ Ļ%b@oBRcAi9TVK;cD[C2x;@l8<ՔHC,+7 J0rM>!( xaRj߱)3?zSlaAmFhLI+/סbstwPKPK>,>?T@BWߴV٦b%&~ڮJ% BI uC \5Ww45ngŻvg MFhY l;0i'wRV3Κ/w5QB8Y09 (#p.T̨l5buMcLgAM/W՝1 Y$@#\GvxǓ)[N` ]3^}z:Fƴ%jg53DlrgG*oM g_L1"27|Ԃiް>SQWVŽDڟKvV!*S.&$ޭlGJ%c"5> %;9eDm?S86ox%{Hvfeg9.S ƽA*Dߤּ\# ]ߣ*2pR CF S0K! vZo qu $seO_+^7%Y|٥lp* EGqmԒoZO.%4}2WKIVA,ҵNHډfũf:F|)A~439E9x\uғL+cFRyY`n{Eu_h\jY$)a1r um^p(!Y5H_/=#NC+q!/$w##~t=jp'л36)oYߛ&R5Vn?a/=b)6rJP1びQKTGDz>8$>ԁ 7J IX+Lr?AiR AsKwSKߚ:=CE.y/UOh3osL*դ[9c0pQLr7&K詮B1e#oo#` &Ia4j{sZ׆pX>Hji N&xd.*Ї & VzFo#)9ZEwM *qʺt8-֏m5o|.M]$te"r-TOEyd[Xr}npRy@wDtoa]K>%LS Y1jYtwa~ԏi> #R[B%lekj}D!΋,%5ۭ,Ep&!\?0|%!Z̆Q 8&Sm ⛃82 ?ő@r1F`Y8)bD0-D-l(C!OKîYC c̠y;^GZgf€VC4uB"4QkU!gyF^P(=tcsuYǤ/I|)y /PǑf8E5 ])0BCR;)9N͌j@ޠ>NJtU~CHjfVb(D{gsT#+.}eYĬ5<N@ñ4GF񜾔sxq"Ǐ@h;ڏxyQURM kޥtG*ύJ@Y!95r?U9jnq1X)I!5iX<}p+" o5.q8\I(VY,Ḙ$/`&ӌ.bSYwUz'O;z|k/z)z׿@2S.N4`O!`,VCa`' }t+n 0k&Ƃ&Og@Gu9[nlA}$Vf QR?mw-6DP_kʆL9J= ;&,@9wGR/" OA@s2ˑnn2&]wNXř~}@uc p EfIw3\Lk$W˅~T\- ]epTE .\8ۨ- u0{w*(W#]E.4rJVpN?\> 0EB_[^;[C[JM;-ߩ[S=݇UV9"c?*\]}rP>!7_ރm0\uܪ- ?K8S 0 KlK3x g3 " 3!=R$` DF!Hϻ$+ vLblMbWAxVMEԣ =0n38yml,h^M1& #-^+AUP'7e VMK`T|TfE/S8+D_7eyXQ6.5nDZR<@!' ^&rw~(FFxw5cꏵ`w.f@e12N'zSwS\ Np H AklZ'=wZDt95?ao"W/Kn&^\ O~Ue9@ x]:Bb6'ƬgDW$l{+=OfX~=7 rGIۤ O lX*tZ3⾑4*W}7C΂pKy/OFG@ˁȐk($]ҏ:RE)Re_) tʪ@ز'LF)Y&/t]^y3 I8#Z63LFfɒг%彿 #62aB\yX ғu>##Xh()fËYS͡AǯK_IG U4Z_>n>+!%PJiBRp*--VzWN qbNApc{m ٥ZS~}JyTbI!VY9}cÂꣵ|N*RV[x94OϿn.IeQ{)CVQHsv/@is=ǗT*N}ċ tS|)pDyYO-Mxt_ޛvƳpU3#r5!BE MΣS~ @O8x ?'0Yl INlfIyLE9^[ ϻYZ9Sv 1.eFeMDZI[IP 2a: 9;x3C5!OY e%I^&𣈍h*u|<,8{F7?։⹝&뛙.akj٭D~%nBô; _Ų}bbCJ: U.EA֐aIk!8isy Yj/mE@i\dWga[ \sV-oTMɪޯP"pQùڏa$a;ҽXטEBnA6k\-fCT-7I17I:+@W-Mp"J5^ aUP.,(Yqq0LCI+Z'Yo1CՒPZ*1N-v *ۯ&S\!w G^$Y}n5UM"rEL&4EŞGv)vp_xڷ?X%.{L%1?(Is]A5FR0hq< el1UA1*N\"Ixk[_ nQj &5쌅'$D(9dt%l ;[%d*kI0X+v3[c|F3{z=]2ǔ>_z̟@WΗDXֈ6O7X,%Db+xN9?R9̙8uY0˙qwSЂ6쬀kSvuR=z06k . l5U4ٍ r‰]EP"al% ,:oDFp6 F=HA*m% P0pHNWDmB˒L.d?GbȾ pQ&vIW)V~8I#k_EL$ nxa2<'pU\F,WSᰊ&u;~=D>\ iGQU.Y^EQPVJ;Pl3g 'ZZ²)%!vh5/+}z}diڈ|.{߳ NyZʦ~R= /+߱\Q2_#SO ̦Wg(p g8݄n}̛uٸ2lU#dJc'*i`^_R Qf;Yk%n:T1XbU;VqoXSr2k5Ѥ|ؚCίݯC]N Cc/oX!J~Uusԗ=HoZ7-w_n*!,&w,3?06Hݑx(65: cpo F$!=2mi]>R]!- V=\I7TD09jb]5}gBSc{d&`ݠO#E,&Ryqȱ]% 9ec7>*9c~Иyln.AL9c8- 2p}\TG RZKAzüӾ2.:Ln~F _F!>^Iu[.[(x' ~!M(>'=͘/59A܄{vgeIQ@Cбs 6s..wD-Rբ"ިJ#t}K me"Ea__]_fS6*H)uѥ&[jLQ5ЉU΋%i\Nz 5Ãz%:ӌY)慧$ۿHA AֶeDZL+nʀ3LҺ:+$>yMaQJ ?KTꊂ+\\7`@"W-Ƣ;dQgiF=ɀ7t!rn|X3\x$ߐsy_aQ'X=8]sKv9f-_D3fZ?4UHc(%<`<ҏh,\ {ʎP `Ө~:a=W~@;#D5~tYhݲ@Oj Kpr8s—:SOSG$t0d)9` tT Ku-n>h*Mo3P`a&b%4L"78=^K x(L)L9-?Ƚ p= sAFqDD잃BciBlI`g෢YVOO"0!QnE^V,XI5y$A)e(ﻣJvy dÉ]cKZ:rl~[v3wY݉ d:*3>`X?S?z]&moyOI39dpn ^Twۀ(Ҵ@1Y44zoɻo)N)w$ 6P-`%2_M1%W,K-֡AE cV1Jj+Y8 $zM'`a,!wrNPFtsb\6tfo#zj:6(% wpJZa.qlȏ&oyhG,=  @EO':, u5*MH))#׶$➙wr 91E(, ^T(w r૵MÂ`4Mi~  sF VMӌ Odr 2:-T[@z۩ Ǣ|:V81AaK,#ձ0F  (f lrXrAP^t KY21ۋA-U@Хz+zk)P_Dsk߁y` nXP]dM,Vd17o2iŔ+nL,HӤ]$51B~CVWφ>JzA{ #t|u1}IMe{j"2\e@P8X72Vr6$!oqy9 vKwv>OIiE֓Z*< _09kqDƅѤ"hRpj @MJ>̕1 g$90dyb_2y ,rWa6״D'[ؔtX"*Rnb,뽔ϳ'WmEWJeFTj g~BwD$9{܍C^[ci7K6|DD>B }kp(/<22q+?O lS$Dm80%1*ᏑH f%(~ql!s,@mK6O2I:J%Z{*Pg}$\d@큟 ֻ EwvڻC $#|_j͏ 'qB70x$d}#,  be2_ڛt{bFQ}]I(Uѥs4|F]., {A-AZDx؉wL'72R1`??/_,,Iq$p5نvZuMApp?[û%'`3&V\Z}r! ֢A!Vaէl,3d<.{+F-u xq'Xi4)F ͣwW߅|$-6o!@ :MrZ!DٛY灉!-}}SGS)+-42Z1] "] ͡ %0)$oKVi9qM%M4fFE9'O9cܰ[3hwד~Xu.x޹6EypQq6w˂XnפLC2.D7(L4 E0P!)X3Js^d9j*Ө9xw=!hs̤ Mhw9h)߸u#e{9()h@XxM%c d L,O%*Y`}+Ʈ#_) h;y\I$Zeq8{nј6$/oNxm#_Ӓw G-Uc\O$TSFw=忊<.Uy\A iw Lſ]SZw]pdD+_  HCy#$G<5.N@ÉVr$TsXWh}׃6zE[t>1:/èc62,%z_/I%e cB\nfj!Nd[mK'<K#aU:G4R|<0'aW.3ۍ˃;#~6X][`WVL?[b0%,"Ɠ_/H/INMoS,p%*-RW\Xa$%XMzW 1D+֢McU09 n\^p`1xb +xP+*ʍ;Qw|i㓺JhJ1J>[Ow /{N]R Y\ZtK$ᤢ2q,ƣT!ui7i}.;܈Q,v񤒪kZb3ɴV ǬX-ztfPuQ*L;/i(q> ~n' !4x_ͦ8ykV9ri%,zP`={ s,)KJ*ru_1{ {m9VZ7x @L*6qBE`_sE#Gv)`/0].E"smt9f#gCR%~'Dl Wzt::'FB^#Z ̥ GO˛w=;r'<缺J2ϸ?'6aNŎ^^$yo掎S~A^28ݯn6CVa[qlA>Ǎ44e(L‚"h:y]w Ny ن8QH~OG8f3Cќ ^PG1i6A ,o[u3NVqwδ8 H9C F`H6?~;hS}w3LOV@'( ]gA+)d+tj 4YgI-$2N5a辍ByEa13j/Y$!/?ҟOЙjOtmGK4!!M QSҁM3:B.bʡRiXHu4~Mӈ?l}pռue+\71_WS^A/2*]N~tUOϑ҆`d:lpgwipd*|&\Yt`U\tvH(Yw'ְܔ2;#NynEKvO{4*-Ia5~poU>7~{5릩ҷZOeyQҔu:rKNK@-+0]!Ѓ E>Z#~pQ+Cy 7؟zMvP\?vO*Cc S Zw\4Ύҕǣ3$ɸw;{TS1(=>3 )uKڒ/5r`R\c~m]@b׫f.43hF6UsR5J5uҙ3kXubS/,|o|%5_n7js+|Cbe5TWţ9iƢM%9xrA>'Rd N&&*$dI* _o.%Rzb}V'uVg~WYO*PzŐ؅EW *,KF3;Nx~o?0|<-0m(}ŕ"Xڜxg9hK77i4I"k}qFsyee0x;71›3K\:Kx1Np.AsS\X;{߽1@a8 NFS٤i|?@}bPz@ u+AP-8Fb4'g8hebR[=_ ̀Y Md j_젨f4A s| riB#J05 + ipo" N <2=޴X ;$oNn' a70yipX0G(/=>bPd DC#@I"u>=OGQ,@l@DLͻgaBܘ{^Uk|[#+ ho'H  vieև g;HkMǧeKJfzDe}hvfhb E#TʜҸix311F|_ƣemye}$~kN( 5InO01J avmZ+A)#)Nv6'IgQe{UZ~*]x " [Vig_+ !WVXuL+0SXkb"[!%2([Ez3!?`#^o^'BnZAҴ :ُ8S$/P5)3nޮ Ƕ~SwPx.Iq adAg%fX}W/ azHo9)|4G Us[@a;.D dCڱۉ|ȡQLNcGيїؠsx25 SL}+#)Ңl#%t+E*nZsòqwaBt4-t^u1 `hփ;b¶[`˱77 b%HM'XHr:4FO~-OCN†8yjٮ~ՃH~qZ59ASt\s"{d?޾p /7x~pX]U:1cjq2Ykf7dT. rp@pezhvr#(z=i_~m-ǧ#6>H;TnBuQ3vŒȩ<|}XۺI9v&ʫ19>Ex6)T^Nq҈+ZL|bej] ^H$Cnz€qvM")Pgs[Zt|+9)``ϱAG )tcJN܃s: <ę- oyh@`At?j5[GK6LmuZnW29,&#@8WL©6.| q[ݰQ[77qsb:4΢w08S~OvSeupW$/Xg<%GĞ Piy4`U-r]@tli_z"ͰHa@:@xmZ*w_>Bdx6mhȱ쫧y80w+5^Ab7КQY vC#% /{Fc`OP"(4y$KwgZ֤Ғav׺vk-^W'`:JB"1~顪 ,Sebhy'GұؔPKeb37rAge7nv"59qn [N z.$\8i(6Qk%WAo2v2HVALu-l?Jk@),Su `%ҭ\MHWg],_O%Bъ1ޫ /JCzkD% `lNO%Vzּ|vC2z7eC2"݈>HtPI8† (N)ZŎ 1mC \[2/F2Ո~Hwi@V$f89}@qM2> g $x2M\I"2Qi?Fӧ{K O ]Ǝ\$7tl;ⶕ冞E Y \7 q ZQH%w`!9&77"8vp ɩ1ti dͦ?P ;[b}"fPp]70CI=q[@K |Wmn [Fu5=(}V=p PT$Mȱ$$Wc0Gs?7`ŘNHOnɈU)PPbN(OnDɑ*15my ];.FgoF(6~p#>N+y,H~qM!'HwE' Qw6E}Cn&0UąoWv{ =+x7=+7=LkO|+#,O驥rnJE ?lNAѻdF?6Cge S gorm-1.3.1/.git/objects/67/8452c2f9b8204964efb17a0fc187433cde4b2e0000444000175000017500000000037214327003123021347 0ustar heronheronx+)JMU025d01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)cO=X5MAE{]h_hnbvjZfN*CkmO<,Ol^olXgorm-1.3.1/.git/objects/67/4e0552f873e1598f938ec7889ce266e94a8d4b0000444000175000017500000000037214327003123021261 0ustar heronheronx+)JMU025d01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)_u3S4^۫b×pC3wԴ̜TBeڞN=y~ӷYMn^gorm-1.3.1/.git/objects/ad/0000755000175000017500000000000014327003123014341 5ustar heronherongorm-1.3.1/.git/objects/ad/e945f6cc2cfedd1ce216cb641e4e9bd9dee4480000444000175000017500000000167014327003123022154 0ustar heronheronx+)JMU0414d01\t Uen.qsCһg&31b1ARST2jw{n4ٲ 5bה̒"y~<_fYOL}3 5å.+"dAapO$uI[1!imyYgOWd~~^<4Kv9d;'Uz 2WŎ i+-.M_W'_9v}.ɥy%xx:ow:*4KIminn%OpLj>H4ӁuuB[~^IXfj9t+[ϟ 7؛͘'iP둚SfڷZ3&MĒۜ}2 h:Ο+23fV) ؐt%g%g#"3mr.e[UF .ͅӅ nlZV%}O>,`i9h-O/E{vRZRAܭ ̨vI}Qjs~N~Q1$V\w6np-w/IijԼԢDh})̚Fo.Z0b̔Ԝ̼TZT⃞^J-;"4cۄm{jHMLI9n[]eןS6*zMr /:x'3GjIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)AׯsorB{y LLBsS2sR ^k{:M߾gy7enrgorm-1.3.1/.git/objects/d5/0000755000175000017500000000000014327003123014265 5ustar heronherongorm-1.3.1/.git/objects/d5/ba8836cdefcb6669e689162644873c4a0775690000444000175000017500000000165114327003123021245 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r :OfT8PKBsS2sR"g^o^4ߗi[:Uܢ N-TW_\ A>g֛Ti%?r4#$ݯ/2hz"ijmK'UAVQ\_\ZcƧG*D..h3(y\l=S[3]$< TPw".NiK_+0'3O9J ߽w!T'e9{&$1tb1kw,w@((JM+fX%켐Yz٨%*|9N$4=3aSUrw wa*] \]|]xk=8Ȫߛ-2@J-/-Jj ƌ{"wjg< uj?þ[zv꽎1\ 9aEŠԮXGkuRl*M/j mJ~gl}$Dͯgorm-1.3.1/.git/objects/d5/91bea804b6509ed81d915f12aa1884890f51980000444000175000017500000000146414327003123021221 0ustar heronheronxT]oH(i_jE1$a}G Ohxc͌AtzlEi_BU]S7N:Ecmv:)amTؒ͠XgDRʒӰ8I ;E#]Kt7x6DuuUI]I#˵Ɔ ;*y|~8\vw>Q8CL݆zК"T-qӥuTD(1A}jOT8 (`(,Tk9"hw::pW^쬇0PU%>  hsJ9֙I\XVgSp]z/28\E%%sA †^dj>X|^ y8]̣[SSJJ%K^# wd|Sa4+9ZLϯsE4ZN9f5~ji*7r6o*g\tySrB*۴![RbO< $geqJۺi uڭ>?i*ۓhXЮ`𾧏_ +JfJ$kĕϽ0yzmK 8lW $3^h:,:>q,bp*% ²KN=.*x3f=Gy 55o5/[2 xO wo!a}`/7u?պCqNkCUʗO{]vB7E?ApipKX|e gorm-1.3.1/.git/objects/ba/0000755000175000017500000000000014327003123014337 5ustar heronherongorm-1.3.1/.git/objects/ba/7edb0c45cd7b0c0c74fada0c58a9da2da69f7a0000444000175000017500000000064314327003123022200 0ustar heronheronx+)JMU00a040031Qp/M,)I-*HI22k])+t;/͂h5NjM4Q$8vHӴkopy^n9~$gorm-1.3.1/.git/objects/ba/ec5075855fae3edf5a3001451db2bf0529487a0000444000175000017500000007004314327003123021464 0ustar heronheronxmwǑ5__QL홝l A&&@эn9{|n2gǦxˈ7Ge;Y4b |-w?0NM/"Oֿoq fC9Z\|rp6$Ɔfc1^b68w_+x> Vj0[{_|3_WblpvDeazݜ &ͬ0-d4?<ۙh`.Zavΰ诮ߌA9/Fgd6'vؼQ?$Ue!];~>h39XY3"mk>]9hI9iv|{t{p/ֺ"ˌ0WPl0Y|峣?'/OY4O77/vW:<~iRkp,vȇ-xӋ=ڗ{5f}Q~j_>=hx5kW.MΨ|+dƞ_bˏ9X]bȴAkKl~;\]3'e=oBa{Ppxl}{< 4<_ZȞՔB{|rxb|`ri0 ތbtI4{/v^sp;݃o& oʤ~fz3K*?0’^oôxOgvVbXm6ؘ_,ė?q$pnl!e`ڍ&#Hzˍ=Zw ;"}t/ӳh-4y9%LŅRY#RE 5 $y}z|q jtc_ f&?E_?E"ğDΊf~~E2OKG*_  $I~Y".'WLްe]wυIbϹQsLhk}p}fޣm @E:Uh r)o߃Je+zĶw & >6 wdZl) a*r҂o[R67 ss$s!u&hz>_'i@E[RlcC7ɳW?Oώ2lҾiS5fH! GG1t;_rAIəY8>\2؄OݼVszGsgP0#KL p[LLcC/4Iv|PZECysQJ<ޒ䯞u쫰w~&P?m&pՀp*KL b h*]r\{>[:EG=FZl_4(5ح?'Tb8ܤG" zv AV[_zLݛ};:Ø l]7?}"c  H9 u55++K{yj%l-tcѾoa2k NzOJHt4|)7? "[X'n o}89i pIҭZ#l_6BHMp8:zHVH6` ֲMtI0v'$G_?n),^PZ!5Q&QOuӑܚDd 5wubzy3B7λ|5dn[~mPG{Q4!26[!XUt@T,66 .^lM}gIJ4j#ZQEKjih&[t:ss#mmR/ |lE.f]MyG!M4Gz ;AW&Mpx<5?϶З7/o7ZhB[#oɂAttӳ"5xDoz d$4!6_moz o32h#XwsۥqFk t9Xn,+L;/Sb[I5d>v3iǛl $%jcP:lfհWFSM;xv4bM~8ķw]Ss x̑G QbƵOEV!#edzpJ2`,G59>cpҰW0 nYcyE LVТ!hO|dћ7?~-~%۝>Dߊ/KIʃ:ClmstpIg5 + z~X3,| 91Zت +ً1UC< ^/D vWo |j;6a4 !Xo!-)ƲizU'o3O!oO*"j_[iIt=bDL!8EDW3bGǗ&[<ÅG^<=~h3Z\;_LM3%i= ̰ K |R]tjE+g$ܶT7Ϋ'4)80n')B-l%/XAf`h1s[1)r` Ѓa|.6Π'},1FF ->@ᾔz$[`|ck!=ޗ;0(,- o{hG}c?Π)CJ#5: 3M*MJ>{Cd8KӲc ̱evMI>eN9Q BaKh2$f_&t~-s#b-}Ӌ,B_7}F*ghDOE(n;QUi0V`~,Yeh}QN袟 pidb-}Sw!o$@"cG`*,!Nh} W`"8 Ұ@P&2.ep^wUrTA~S20?E;W+ɖr?n#a,.mQ USv/^mLcfUIsyò}2&g;jb}(.7nT)ffgu%Zgڒ'K+ܶyDڧ& L'e Ab$F rsjM02ks$ w>FZulzDBuY^4 6¶'+mûFw어B5Ոl7%ɝ5k=4} kKL= W<-|l: BEUn0=oa$"־s3u cgCV"& v^e]~v`J =>7l?L~\.|p":g%MΧ8&1HPKLSVt481R'~t㓳kx'@JG{B:aG;njF sVo1V7>n^p];v|'7-}sG!,:ґ֏` s(3\ԫtq3_cjH):)csDθ!v"7GD{[|ωR83M!0njDj(E┅CNgwlyC0pMdofcPMHKa9 &RR ZF `SLSuF.&ءHh<  0E4@)́@(*aaN펞l&na+6(8Gد3%^wec?@_tc~h$|v#? [/f.atѷ.?@GʘasY,RC;`QC7Ϡ!ڳ~Fs @yy v:s,+*JtR'80 e`_0 Ix-H'5³LjUl!]Ҡ roUoz*[ aC@qq{d`{1 R7Nr VlX;{i:D!UDSI]<(4FfGjmo?Zvu2岝 4A4^^Ɛaah*/){ݗ[,"_!ME9m\Lm@*VabQ5_:f򩲐<P-z1xӎ""N.4C5Ԙ{!yRXV7@:u?6lH=`~#<o A[iry5Tb#ɾ5php C&#A@P볆,GAw'3$ig~aiaԴ^;?@ Mzq{ ƮhΤ#02)nqDbs6E^. dY+c'n[FE44H50|lH!(.r΄Ɩ99-\ }1FDX*rpإom*8LAġNc&z9m3t5ê,Lؘ?*^͕ J݆ 3A\ C5kuԁ_IbM$ i,36b@i2*bZI c:홁3maL fܙNaA}o*;Vu7YGcK~ziX ō^>mT Ml)P$'@W[7Xs4g{'=6x4&k{=lxewf;vqfJ:{؇*; o6h & ,&7@DRD]d8,8S60GCD_8 N|pp ?X8)##TF>,birNRsٞM&_2Ɇ :=kOk/ gľeXq]Z@٭a/Jrv2I;`KػhϾ>-:tw1>o3boT/0{6e\ WL *~^E^lMrkɌQVlc!޴ஂfWeh65 lF`¶zQH5J5T~ %eٱe p:$wttN`;"-- }{+fy%x-!.rAh`*aJ@wt#8k0B Sc/OIG%m2Ul~Eb3m̴/U)Q$ zl{DWa_I+j1Ә ˅sIk/kdqnUSe%NQa gr pzaM+2;!]a@Nzo t|}E0ȕI[OIc -fزhR(Z(W2{)Y?[zǵB.%8Fnh<\e׻~l֙'f{1H0YߩPHX_46bH~xl sQU{}NnyG!(ϵp^.]T VOa$OseTMS/>PF]Ivy2|:S/6` =W?wڪRre[WipzqYW3i8%IFj~a>.eP1REsT$w$-D8~o h(rXS+ ,URm8s%hܭȥ_.JuPދ?}{(;c lϯ2GYʭoWߵ0(%7JNqE dyb=1CLs+"xY(s~2=V/B?0V&߂Zב\KRt-d}bsX%{pc;lm\*Ŕ[2JMY0ˎ򢴕CBуm1Fʏ^Yb]e+}VҘ kM3wn& K$o-S~c?{!s13P6,lcr&?S/%G0U\A+aA3Srh׋z^4K5dlT0#p>0?161c$YcJL{*֜$fA+hCFUK~e %E ]ON'; blpG+)OI&92`9$%-킍;Ԥ i[G?, \\&7#ЫPnmdƑڬ Qz>X* (d* 岱:(;Q`OM8 dc5Nd&yrˆluT!" і􆽳+(Ѩ>Ŵ̱6- qrP x@3/2 &_vZ i<хJښ^&oHLX{S=z$-q@k7V%[O @úCn,g+lR \"M_7]x~a4f dO\I6!Ll5ͥ ]‹u}xTiMR'ua :x-O1ʪMdd*}"f MDrq vrmqe"s WlҊ]4m5/0)7Z6q@n)x0c;<Ф|7P3sԙmgr:3CB#+VL#Źq,),Xr6 };77ǶFObF(2"Itu DWaܸ+)@Lzд_Ł7߄O_p*S'‡OHPBmdT.ssc Jb)fN' NđXЮv.ڨsoܿr3- [!::U z/+"\Ǹ j5rHAU훑@h+_ؙdJl@Y/Uyp)L60yiڍjc -ҍ?g%uS, (r?KujXV7,3L&9Rۑ $7ñZ9h9>N-rpVI٣A,Zt 1UcӭY$k3P+hug R|(-.#qTepxDSUw94#riV#.因{>찙X.D O,=@978=^J6B{VEY W*sG&TŤ7ԙ㍌>:%d\}X-pG)-Lkava?Q'Z?d]~i/]LtZiC5CQ uTe\>,>[Vz Z d稐n剡Y2z+m^8'B]s.蕠_Jj6]HU{Bf{ug,꞉Q{9e>6mriDGX \G)h-9Nq< 79vᖅk&L0s!I&3IA"}rV)VlϿL'Ӄ0gҰ*J^^Ϋ İcxYP7,P,⎲)AGW755m ȢcM~dce;D+ 3JzC2g"9f$dY?Au1$G5'F2T 疨줧=]I\]tbAKkp ;pg_uҎ4; MOfE^P{ 'hgK̗݉  \gO#O dsD1leLNKy?lưk#ȪHGIʑԫ(OևzT'bJ*QW 4Nd-ͷ02+\8Wb)<9VT(.P(Ev+_yH}uxMx*rEI.#S& D-D_CHČr3=g(ʷd?d &f|jWb i(7op=#Mݳ`~aI1mhs^o.& R<3ջgI^y9^"l:'(]=? _Lʌx)P8]pʇ[/< P(n?wJ ;4P1V &f Ұ5?r``86jYcr,)GQ/1 ,D+r3mOɖq";.PTV~ Lu@܅eH@M78ӑXYX(?[E/j/df3;9z%)ұQ-ΣA8y6 )aYA1Tgc>Q~ƕ(,Em+ݦyM ܕg/-`|Spzf#WV?Lh55y: B1D6#gfng3Ӗ]/;GD$,}w 鷿[I'P`j;#6 wB< Z2 cčhz=Uy/!W)e+So 7~_%'=vj%|#|ikN* 'rÍ3 ~p9 .͘~Ud(J7ý|/[]MT*;y1SjUyݒDGioE7z`${ +}UiaHMboYV , POǸ<ՔH/o,؁7 J0rM~!( xbx!̥Ծc/9?zTla91hgL|\taăyACS;/h;Ԗf5* }X~( RB/!{edo TEii6\;8C _ڈ~LLj<\:GzI&Ε4Ā}-cL#djrke5;,$Nֵ¡  s ;<^*e,q!! $w#RuIZ Uhs02ab>nLL S8dkR[ˀy^GLh.q"YW)_m* 5j!Hlp2#]2<삆0dc xy,6Gδi!g:8Y}0 b^wͯ`߱r{x%pg#lr:ȵP} ?Ýn^XuC`J,9>:2l"ԷKMǮ Bl~ڻax4F)]l\2clˆבq ElZ Qb%Kg lh lev+K*e}!E~`HsG6Ǐ;3_'wa'})`+N&m(NLQ $uQ$X,eJRD0-El.E!OK_Y C١rي1Њcf<lR@ɣ peJD3a@!A:#!_ot(ZOuBnfTiW2>g BRs :C(ڤ;[PY齌vepek1ndj%υS*p (+ Q?//zܱ#oNc/^TS14Z `wiǒG*ύJ@e%95r?gU9jnq1X)I!5҉X< f^KAv#W9TsPeL 9wZ;sC} d'J5.wf@Z8["yD\^˂-Rw=.@y wbt0 #p0NX$qMls+s`ޒXJ+N3N/c I`AtI,,K\a2(i30rVG +o+ji1&A,%@7Q{ W'A,{-0Vt ac g#aŸ傹iRؖ{A(kF yZGWoV~xZ oD3l&X.pǰpt CX–.CrE;;^$fE6G+  y}%h%da1r1;"؅Y @/kbTB;BzJ)rGomE"E/PL Sh{$>@EHDWi$I-)įaZd > <:R}笻rKf #YϷ2S荒ihY&ju؀ZHUfOAUQ1)dA6gʹ+|yɹ}[d 1~{la{Yn O "l5*MD6(_o@NL;^tVY?Xк戌epIwtIrQ}|11^vs՝sgvWP-1Na ˷*`bvrYrciF.A=Lq<7$v+b1J iΈFҨ_M : _/<!-"C9<8tE?HU&:H}ҋ3Ao /+a˞23ꖒaorCe1%y>r?3"eC 0dad, =.\Y[p`!:2`)&Dϕ&=_^1TYdB-@FC!M1cM|^ Z쟒o Jp8~]J:JȬ:?BqYq )9o3^WM2#ЦWyqȔnһ,v &8D%m\FX-^5v)֔_bUXRUVsX *h# (㫔^βbE^iӷ 4XEm .Ε۽\nl JOUjB&Rረ"Z\T/Dɽ7-#gf,F**ajB*$A(9GBq4Na̝v̒󔙊r ӷ[wr 22b\˺I፪ʚ ! ̓n Z*X 9dJPt ]:ธ̪( !JFTRQOuBvh0TPMeO~55y主U8"ɪctkPl<my]4-"[Mi=/g2z3jSXR oqHcG\.Js1c {l P+(溊nC%j` x@ c=cTB @7#(&Gx|o%_ǿfoZdqԔa͡Xkq3p0͡ ?HD8Z)yK'g˿ L` zMwruS "H^/aN|!|h,}APW)QN өڣ\AլV}p| MuSWwt8uR >Yس8Hs} >w2n_甕 ƻ_h9CcyP'19f"c8- 2p\TG RZKAzüӾ2.:Ln~F _F!>]Iu[.[(x' ~!M(>'͘/59A܄{vgeIQ@Cбs 6s.XX;"cjQ6.<{@ ~qKZo:C5 (J!5:hnH%lH:.Z4IJXX=&Y&(s9?k8`z Աmh|D Q%F$;TXO$DX ^__]G3)RNĎ-Zި*IEi4^'5Ãz%:ӌY)F9ۿHA AֶeDZL+nʀ3LҺ:+$>yMaQ3?KTꊂ+\\7d@"W-Ƣ;dQgiF=ɀ7t!rn|X3\x$ߐsy_aQ'X="VJɫӲuݴnvmÙw͞{Wcj`;Q O$KUvcgBfV..3oD##3ٲsíe x3,RhXQ^(-ry>;xT),) țL }ؕR(ܪ'b9bO )~{&r`SRD7/_ ͙ I X"'r E tpqTygRSht[-U嘵l~s4im~T5Op B -J`\.jZK?zprY+;B zNІ 2^.#(}`.Qrͅ0]u$a*F#;iZBR*\\ΜΔyӔ1V y2(!ks 0VZ5^}UZg1,L{KhDoTq{8 a S@{ #ro2\\QQQx,e"Eci?p!$a0YYa?.U,]Gy Z`Շh. pH%8 9J)dS{Y'o"֏kx'е.zoN1]i k0HHL+/̮ Vs5_Ј* ̀;#X.%h+c `na ԄAC>̕1 g$90dybf6 wfsMx`Xvþ:lˇNtOd{kH)/7x=!#sco?a:EBxٮSQ,#SW`g.*mBZpbDfGmfܐ_Ԙ=+V)yol"LvAhA%s[Vt<3xܧ.oҁ RMk=R<*t~U'T~Y ׈0",&r2\.6xȯTS"  {4G({E@q8ۥ< ip#NAci:%x]^,DFV_qbdN+ ݜi"!BY0Qte_ "/ټr$(]h"P@R)v SN;#"azq Hݪ-?pW߽#yW%{7=ɈfW`\+(Q/tޤ32/F@r֟yIR՘j]:NGOӨKޥRa_]CY߷ c\VNM{(xb )8a#)! z+q~"$kžSxLra=速-Ñs8@"0y>Vaէl,3d<.{+F-u xq/Xi4)F ͣwW߅|$-o!@ :MrZ!DٛY灉!-}}SGS)+-42Z1] "] ͡ %0)$oKVi9qMv%Mq rOrj"a"y.laN\tLϨX;z`v*,;#2fNA7Ur_rTneh1)aߤun?ۭ(4if$$Qo8p6nR}*H.(Sah줈ߓt~IQuE9wreX")NF|dd d(3Hmul}낗'qGP/|y7%D ^&i(HjG72x%[S<Y?TsI{$Pݳ5q]$w' 3+Dq6+_?]FؓQb?góP:|k>wN(H.X2F{to#NμҠ۠ȤO85wi c>p7pm;j(6/|]f ܇T3oaEgSd>*ve\.ZuȘ>I޵ j|n[lLpWI7&XbgbF<Ģ|*&tgr,;(nM-EgW/-jZ#nI]il5\Li̱-z_<0 aٙ7`C9Lj+vvBXW< NPA;z)rNA,'U;YdO覄V~σϦ|sMgQ\?q.B)4\ +[T"{\]PO&ͪenb^ [xD}2G\ F \OſbչyEp. b):\2o[Y&nPh<Ћa>ۡBRv/oW*.zagUeC>=N1M{$1߬\Y mVdQM@mo&x"~6vk[㷤%AjJwC]'AK_.%U㱀 &Do^e~?GZS!<wK)Pz B@ ` }AR2}| z0mmEtab1?a?=S?7Gf _* >&qPGl>?*I"wqNI؇"Z,-|UPj04z2RkZ\#` rIC`78ߊcͭ9Fm@0 U|HvlX?$sQ2l6lRO&G  mPaFW9kZ jDZH^JYqM0RwtKaVrrW_ -=*/GT(ܤ,@՚lF.ܝ3y mgׇL8 ݲ5L̩Ń'v"  'ޢY„Fs{0N^k^p2{@Ԅhzg`TErl8`]&w(9ZӨ9?.S=j|n=ߛIIk'"îXԒYiȘVu`p˙(,՗8gQu_A(t}/ۡ+h*m^1'S[D3f%rÎˏAg'G^΅{8_,sKP` \qaWXKMBiW{N`!lZPcTU\e+f St%] FvI |)l Bt^e҄"YA(/**ooYQ* 4׿K%>So/e想j1?rΛSt$&vOo媈bJƚv귑틕c~ \;}xsR&߸u#e{9()h@XxM%c d L,O%*Y`}+ op4ܝ^<$l~b2͸}Qs=hL[7'/NAiICJ\E#Ԗ1xU.c' cλ_EFN\* Hen(z7G_{RI5-WHFdZc s,>}:g3:(C&݃/i(q> ~n' !4x_ͦ8ykV9ri%,z[ bc 9R#3 kbX}wpI[câE NkM/U:`*[pO3#M!Mm/ .N@c^W]b^ra*iҧnD4B8G׮=11|jLZ>M"-Kqs ysx}GUܡ43-t3RE"@{0@$ۏ0lS}w3LOV@'( ]gA+)d+tj 4YgI-$2Nϧ5a辍BiEa13j/Y$!/?ҟNЙjOtmGK4!!M QSҁM3:F.bʡRiXHu2vM{ӈ?nNv{rxtӼuek\71_S^A/2*]~tUOϑ҆`d:lxoipd*~'\Yt`U\tvH(Y'ְܔ2;'NNynEKvO{w4*-Iak p}FPU4M5Ϗh}*#3ԩ^wZ&X"4'\/:mpp_oxM= i\(}Z`oH5KH+^ik.^_X7C]d# T2Gd$ɶ oJ?&Kɀԧ--F`}ɫ|Y@u A1$vaUh R`0̎? :#@D+O <3izJlOB@~1X\KO1 |o&"-&IdvM69/h ϣL4z|Q֧:30'{#1eK9!wP:ܮˣ')Nb0 .xo,[h{}_G-Pc:txny|a#R< v '?;ŅsXk9? DChz/<%*mVͷ7!葑 x(J!P ]_ Ya##ADTߝ+WH͛{n,@|4f]64e/~F@_1%V t0 (ԀXN3$89CV.XȼN{b60<0Pȿ%C׸:ͺ]ecJvP6pBAFD u}${X3$X v;,؀B^H'Ä1jFVt1:+N #"ˬ#{d "9Zך]a|kʣ5+E6!;U\rfkp]Ld'DDueH!X]Ln+.7؈ׇI&d4f,bv=9KԻq͚;-5xs 5߷W\Ҩ$sIV? ˇ >+1C~=|i DCVn{dz)Qg[Iq?-Hf+)q[1("dU&t^knX_<@<7c(?呓rΫ f2l!zp],[ؖ>X} l9V榡4[ɢ IZ.SV1|Yد%i|hI{/\-Օz"OU4'/T})AgݡwKj fFNW4Mʱ7U^)*k= E,yM"=uRϖF,X1bS-TCVjP&gBB arЫ|PTso>A`O:S:ڦ{]1M1ftmnN`JG;T4 =8=3n`CR𖞇vZ= [N6YCumoäV7v*3h2s$:` [Ne+sz7/qHW+*"龸<)="NJˣj ̥cd+ևL#Z|޷u׺4Q#,z:<#0"`e]k<dqW=0M'hr,i19 xWz90 %jdֿfłuHt 2p!S&*3JNZ suԚF`UiP@ nG:R {`/S|] Ϩ~Pxh TA#Gce!K6-* mi`C>m%kaw n%`M+p{yOߔ#aʜvpv#~?G A;'.Т:%XFk;j$v .8,JroYVHJQFQ#޽ǣ+[MM[}l70uK$Xn`=&.$ 4Bi#ӽ%'.]p|cK.:6kqrC"VU۬ޛNo--ZQH%w `!9&"8vp ɩ1ti dͶ?~_ ;[b}"fPp]70CI=q[@K |Wmn [Fu5=ꯕmO3T6Ix,F(r,(8XN^bLv''7d*j(n(1p''7?6aauێJ1})?͉3Y9AeG}Rs0{ωǮZ%_ög8E%SVV[y5,իN"n,9/ұG}V)i4|kP猲kjg] fg!pZpoz-5[ c u!3[%:;>۔!IA" a&WVWnTSIGu[虍tXCO,Q+@fZTQ԰vӇ53uUVұ@_QvNdJeRle?xaNHCHgĈMck`1Z0{SḆ]k}+%Q+[NhmOk Os=wP  [ƒBA]1 nY;; ˎDgsy gEVS QMڢdKOb@FsO)KEyhh\\C%V EݶS|Rt7j͊B`Rd=%Zl~k> ݆a:,1NC)e£M|:9̉C):gD3Rg7p BтΈY\_z9q$c,Fok$-Rj]gVV%M!fgz:%b'Ms CU v+ǣkQ@Ptli<"ʛ2egÉ+\@62q*RظBaNWlP6떡]sJ}[y5P. KYQ:iJ#CJ Pw wח] Ô@(<+'Ƶ]$'H˙)۾?  ߔ|&|8@!1َp&qLgGkފO= iۑ>"8a%r3c?zg賋WzEf!eTHⱿ BvmD;&\˳RA`,C$du@WD[`?FB²RW&!w-#<}y*=WwXrҬhXYjmv(- Z0#SiCr}]$_)rY}3vn[\!lo)Phm8Ӣ,jv>&Y4cS/wYF#g<Sؒ0KNA>gkX4i!š,+e0(^{{œ)3`[fINetʟ}]p>( cV?Yq{ɧ3V5f!ЂTԧ4Fhͼ!) BDLRCr^uZоJO)7»-LЬŃ¿Gy18Vi5mlNxIjw|a6< 7 ].OU͐y\PK/Yر'VZҫj_s.dpn?'>!@+AȦjěv&5h֋)fv2+G)~2q:o98zHpZ=l_lV! \|-oyoB65ap36J |{tgۉ+pK2Um 3i?w恧K@@C)wCGntk̀?D*PluĜ+TP_*s/eG6V1J"\)ӱPLЛ{x\Զ9`ݣyCj>ot~i;ޭv>%|ޫǏ˦6bn:2KJzQI7*Mh\71?{mZeC(^Ӓ鉩#qU'Ộh͓>y#EN_}HެȂ" #Z^ᡟC;>$ ((; O+&ۈMKYXl/I/d#Q (5TzZ_ !,Ori.j)}z;>IX7uO0fל@tc=,l鋏ZZ@wdtc2wk^:Zk Q9‚iV Ӧ.zvޮd[+ Ju?3mAp}gR;yz-IIC6 IbgB@Q<Ϝaݨz(R!n>L+4u\ⴀ7~;p@/9{uK49>HG2>t=N&c*88CEfyHo҅^Q%~>Ux gض@^? {].Pc%mm<'fnIn6p 8X= VyΞ&YjqVi(yה%5^o "HrXȏ+lhZzՏ3p³̽ͥBnaҌ?/RG[%Ҙ)CѦ(Sbޘ굩huŻ'UBpLms/XY6s1/nٺ[Ljcn][j&^$p}fl'2mHԶؑogorm-1.3.1/.git/objects/09/0000755000175000017500000000000014327003123014205 5ustar heronherongorm-1.3.1/.git/objects/09/284f189ce0aa75089b6017000449c1f88769180000444000175000017500000000021314327003123020710 0ustar heronheronx+)JMU041d040031QpI,.K/M,+,.a-dtϺ]lSfAu%CU:y!~7BU (OIiMWqܷ,c9Jgorm-1.3.1/.git/objects/09/4c07edb2ab5f7bd05cae9e8c1eae778800644f0000444000175000017500000000026414327003123021642 0ustar heronheronx1n!Ԝb.kRr)JD}h,)W|zj/Ţ,Y8Gk^U4J懻^Mާ&Zbх%]qnn7h *(RD |;|KZ;1?1sʛ?bRVgorm-1.3.1/.git/objects/09/c3b5e5561c79354fca3736582d3a9cd6fd0ff20000444000175000017500000000030614327003123021430 0ustar heronheronxJ1=W8$<@D\e{wg6ILD{x:kΩ7G i5 좉+Y 5)ͬf# )s5ƅٯZkg) Oktc͏-dNpNJ =KlxI߰oSY!8ז/Gײo{m _ogorm-1.3.1/.git/objects/45/0000755000175000017500000000000014327003123014205 5ustar heronherongorm-1.3.1/.git/objects/45/86612bce479f7fb32e2b4d0b266a5a95b3aeda0000444000175000017500000000033314327003123021551 0ustar heronheronx]J0F}*fE i:FrS/(n ΄Rш%IgX3<O,W e!0 ~.J0qnWp%p7 Ol%gorm-1.3.1/.git/objects/45/0f50b1885c6a035af99e83850842b715c4b3430000444000175000017500000000700414327003123021041 0ustar heronheronxw ߊk3du$I:瓎ܝsgG Qv*+ $ "+[ȖUd>f~_!HH~v emB{,`t@+=ۍ,%V|sa߹4 a`;/nB:IyaUպs*S< $Qd#`Kn8앖;EEa|=zJHVGt6Es_2݅ǸLerLN33P8~0 (~N,(cUOZß:ܜ \HϦs\,l-m˂?_)=aaײyyCJG6dbtj=p9,b-Ofխ tbX1pWQhWIJٴ w 2XCL.W_*ǩY/nO6iw KUx#UD"tzFƴ۹E\5;TC(Nf_5wrN3ٙ"Yo;'5׌vsw.|eAvM2&94_]w^쏈V3p2DO8lO,CRT :qC_cL5Q>Ԗ:KR 'Eq`OE 7ھdl]*cs|Ͷd~3/mi/Fo բ7r {UjTJ'!A" C 0_ڝ3}lH|$ EmpB_>*ޮ!3IqrF`zu_A3Q50.Jܪ/[a@Jz%`O;T\c(?NAac3vjֺkJ :7NEP'*]Qٱi])|ϜgU_ux+p1v#L$5GպoZ8`q, ~ v=镘ɒu*o[CzX͸h'\4(|i\U|g *a0Cmu/+g !5V́?bͼ( .+D*lҴ~6 5kf!=!8t>Y^=,8 >NC|#.ׁ$dfs>YY%fg*sNZv &=Q뱈RL :&&=us~>@ HadStAkZޟNA0v6h3W${R)xZW4.t}|o,ai@SPeT؀|( fe P D+bɨ5"*` 簵4v]s K<  ]a"-kX-$ٿh#rkNuhS?Rۢg}>n3Aru|֣]=Rpy՗K|+$& Hi:ʙ;|13,)D,O3>7:$$ؖ,]*A.D*K_DqͻIoJc]xi%l_j]K4_CM@- s=F6$+g,.u}5ýYޜ=0?#a&t~WG?/]DhWwэE\aJ*虢In;*-)O2Al߹yĎ[FǎBLcڃGؙGM + D?T'ܻgDiR]'F@ѫ5\F b8 bS]v?{<F*gNۮ޼l{KO?yed@z݌|VT=->rI WQh&>7 Cg~v19mPbRWNP{;%H\`5[d|X5\γa&2,>p*םٴ3sajW9:]SE;Oaa[?4lJEa!VTbt|K\E)+w#w1՚}w7ɨi'-V^g $=k8PwgMߘ(!c?bz*٭ g7y)H_oKˀ}`TuJ<&1{$ gzmlLޣ[J_%#'iK{CWThqvYԊ3’AEbd~UF[v K wrgYE)zI8nՏ:įO@X`s}'`Bxn:|8~' sA);,ۂ0w׊/Y6`Oޜ~ *ld4֮+BaLR#$]"éhj "%=tfĝ2A̦ȁr&cNHPkPens1ko *J( eI8m,L._os LZ7Bx=o\M{'.zN/Me\"5X7sƁ0(}[/{2KE7o_O$[N-۝.+*54Pָ;O)wcaH<?;<5ڴL2&6cE ۟ oo~ZqpgQ% NuoQT`L5qNjs;렀wTMI``Nb3mhegorm-1.3.1/.git/objects/45/4024b8b182203fbb707da99a79cf1579e21cef0000444000175000017500000000037214327003123021342 0ustar heronheronx+)JMU025d01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)NXw7^NMm3hC3wԴ̜TMY6j?Pǯ|Qf%jgorm-1.3.1/.git/objects/b3/0000755000175000017500000000000014327003123014261 5ustar heronherongorm-1.3.1/.git/objects/b3/6ec0e29a9f0a6bda49ca4a449eb8f388bcca320000444000175000017500000000030014327003123021763 0ustar heronheronx1n!E]s@,`(RHns0Qۛ&7pǭ<4,ILjGtĉaC(vs!E]& 2fR67!%E?:|t[kWxo*O~Ǚ[y]XPËvZIgg>/T#pi8b^Zgorm-1.3.1/.git/objects/c5/0000755000175000017500000000000014327003123014264 5ustar heronherongorm-1.3.1/.git/objects/c5/d3c98ea318ad5c3fd11c490775a22c3924e2be0000444000175000017500000000037314327003123021473 0ustar heronheronx+)JMU025d01ԼblxL}>jIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)  u8uqˍ_(&fe2*;ͽt}toogorm-1.3.1/.git/objects/3f/0000755000175000017500000000000014327003123014265 5ustar heronherongorm-1.3.1/.git/objects/3f/75252a9c40ac1a16c14315ae06bf3778a454120000444000175000017500000000165114327003123021152 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvçkdh"#@矽axzX̦Տy;<+y9-o/KNf6`3"fy?jNfGpj`2|uGgL4hgi0bM;igXWǠv2oy;l^ЪiIr z7,^6fHM4e_'&n47Xs4~ۃ?7+4m2#T7L?{xp[|x1ӣaӼ9mGovI4]x .<јdfU3:k&h`NWY7BL~G #x6:C~x:_L'; /v8wj6>̿>8hsyw{6ij4Q?>T|#Jnvo^FoAb^;y{Y_iԾ[~wpϮ&w ^ڳգG3y3g#{v=mWz 2AZR#zy?Ū aj[Ѕ}X$.l:;cy>u/ǃ-vjw] ?Yv:n6vqt>}76X)vxMs2BV?x՝}=B՛{(hfFw L3? 4l#b *uRMmOݜiv0kFo|!6~1z_m~x.Ohznˆzu;ҽMʟ-6Fo7}7ᷔghxs EP&eW6kW3`"eA6>ǀD z1l:#CGjsgKMh]B|3=G 흭/>̾~}q-Qzgr%`"D6HgtŲq:cK(;Z|-F>ypF iqxTQHdMhC aWQL,NA>Ihxj_K%6 7vYmuaXsnm#ں dx}5#5U7ymL6Vs7-1FDNi*5@?']OTB@تS0$&.|{qy0}[q"?Lq#`5=}u#\5e=ڥQx#\v{v#L%}@NZ~p@`oc{[B>p~Nt;}y.n7w4= E[RlӿMӗ?=OO2lҾiS5fH! Gt;cr$BI;[SpaC~6/ew ػyMFa'GԙҘFS0^\-h1񾴊RZ y碔x)_=Waoc0>{|P h~gm.} P~1lW0}L`i䙫:TrWΎKU뻐ƹhg-*]5]7t8H7 {<5?ڝп\jPk:i[1%l?VE?q>IŗvG" zv nHVbzS};:Ø l?dit WM_?|{IΉ =~85ےQ7ٖ hE7l D'?'$}2 T7pc>b$yVb!$O'8={(a$lbll{]a W!ZD.#AV-xyMIS9fd$њB}gMejݷ^>?kllPv4A jo-k~xCE">ˏ`UEyJ Gbܖn*`1Z2FψwF,I ireԭ?4h ?-l^m6an%MÛq%x%ɟ}B●o t|w L _ !f; zS@%$ 1%\l xaGK.ό3Z[Xv+fYa?`~ٟ*(.'ݼOH&;I;`/gS&I,iT#a32OjW&G? C<5ܦmӅor0~i8&`>8G2%O8hdd⡗ 3X+%E۱ p~Wܝd?ǮK%{M`F~H<(9-n?gg >C}Z{B&_w~ʰ|o+!!KV|YTh'WbmK8KMQXq3ŢH&h'f ΉV_@^^7莩z! 3|=^e;߶HI6zs@oI1MhЫ>y=|y{lvPQ{rM0eN#b"qG/r' U6?;4x<:6٢'xQVJ.혰>?| E ޢgj l)I8ua=`x_bV[,Z8#H޸涭"t^?1 Iw;i? []JBb [bʖm-@ HS7>ۤ:r0ļtx*0(z=L z'Jmpp,h1$ b0qg|2!Ҁgߏs7 2T_ڱ=Rcq0Cm\nޤwLY!=);ZkMԱczo! 6, c!싂>ЖV|q-}Ӌ,B_7}TQCka? nE}WA(3y1 zzd~_9` "JG?#whrGrvR%zǥGHO>mcjH):*csDN!v,"{7GD{[|ωR83M!?7njDq(ECNgwly:0pMdofcPMHKa9 &RR ZF `LSuF.&ءHh<  0E4@)́@(*aaNo$na-6*8Cد3%^sec?;@_tc-~`$|v#? [/f.atѷ.?@GʘasY,gX3hz߁Q3,fܾ!P^pCÊJ0 "G&H:z3POwExJtpv '9nb֪tZZz>K57ãe+_i^e R[ [ͶX00vk8kn2<E+R MvZ< +]HY=\S'ٮ , O8iY嚘~80Yx-r;Bd[n_2 MOd !l(:n]nll/7];AfUIn[b s`/75 _(ʒ(`J4KHM9MG+ծ\s#=rA6l6M%erqQ+i3# << -H :y[,_ Hl^>QrV1CDĉхF`s7?/oGV*PƞaiRNdžMs<Lot|8B8#hk2 2P 溚J],4`$7 .c2Acx(dj`}֐09x$t,?/,6m=ӫSaG[1aI`0_Hص 1?yu`F6e8-t#HlΦK9 lyD^]\4uhf<F[<6E_Ι21Ia/Hh~KWԖ9МMeG)#=8ԉaD/'VCqf ]Ͱ S-96&ďbeCnCpZ .:l$L{4`KHZp1 f4J~I1AvK@B~z̶ʰ_m t&xG\L'@ 7oUUV1[%_Z?4@,bi`ۋ]/m |*`Mȿx&l(dy`QUPE,Z9=汎^sH8h}y_r,~U*#oP4R@GI)l&Ixͯ~UdpsPk5Ok/ gľeX.-Tlm~\yLؒ9Obo|#,Oo%#\E1 Lt PVn{d?ymF(!srjlt8I~dMۯH}"Ӕ%J %dTmJ L*iEc?Q2Rsapv.i%7bY[UiY g7u8~,F؃)q{DPE鬩g//vh I\Dl-I#0,Z;6aWb`'O<$KM>[ 佸i ~ӷO~@5{C^&4,M8űcv3MB]fcZgz!qS6U ºR[VB#2V~} iMқwfܫepn ѭY7 ~}"VB"qL }|,hqp$6m^OzCjTH\W unkfMA/ Ř3Վ)](0ViR@imDFGrɶ+Rp4}h4&Yup{NHj=wEg_( P!x>p pzaM+2;!ma@Nzo t|uE-0ȕIƵXdbHmglYw)M;4+=謟-[=õB.%8Fnh<\e~Xc6יfk1H0YߩPHX_m46bt- <2:@炫 Bݠ~C Sk~~U)Rb,I$ 2b˨"^|xpd4x^Lm7@)z$U&ʶ岮fpJ26Kr}m|w˦b"l(GLI HZ{q\o h,)rXS+ ,URm8s%hܭȥ_.JuPދ?}{HxˎE)t}'EggG2,WkHiȌ#o0QA."|hUB5ΰ(P`OȔ *7_/[1U'TlBhaDRagKNzþ҄w^LuȕnjhTbZX 8}@SEZ{<)  /;U-PlBLfM/dlx0v\Լzx݋*%P?w\%(_$l,F#tRx' ڴ, G{J&9ms>4Ϭ0cȭ#$./\y- w<99M/M %0,S`#$e򶖒U̝YYiG񡍦>K˾qO"jkߜ-O20`654\2ag.Ph'=MzE#ƾ6r;L`2y_I}ݜ/tߦjeқ1|㑶;Sn~ŋ0] A; 8hy$𪽆KԠ &&hG"֝~L}Y@.s F> z_jP*; k18†YVu,6Lx-M#D*\$B@jz;wy_ط[:u4Œ'/G~AP$)s|'&(pϓ$A`2h*9ιH%m+4a*8k2cLuFіhrN(lv8)Psu+' _Vz9Kq`!;u"tR ;~)0'qm6sYնh\,Rzł$*,Ɨ^HB[ }R9UQ*46}=WY|* fLILq?@>XEy9;NGć@0fILEysf Y׃g lJx "5s vU[i+6 s3 Q +E`|#cXB)NrV.0}߅{4dxm״oK |䱄fባ?[.N O4rH)F훑L;U8h_s(oSt3anG-V/H7nkd"Ew0g`ƿߣC9t=ON=],\ab2igG*p7D GjYk}8sE_hՑQ)Ѥ=EyNwצ*sfJC܎hzFF_|qq2.߇h5Pܲ)Q Z?d]~i/]LW u6Ƞ6<bXC*CJa5h%Nkش$b-z6/t! o9jPį|%5nפ= be{Eg,qa{1e.m5iDkh@DnEQ IwX&$ȍ D@1@6JV⤔t zmYAQVЕzgв`8{JĝY(5|{ً7uw1\f7+Լ17uӃ5|Ҋ %S:y14(exFQj`Ww@=R_ e9:f >lRl6 ?lQ(,73:-3!_Odc!Y'z }Ɂ7E ~vJKrh\5cqAmtj) EE1ڡT p)CN[97+@QҜ.Vug{ϋ {:-2>] c΋dW0AGzBsZzWS]TH+oN^1jpO/p}wh;Ӏ2#a^J&erU˯#L`i`L (Ap_.dKT%:͜XԹ<|)'Uv|xɳe;sXpG3AlJll j`NnvYZ [#P ƍ++OhࡆўU,蚥 h5E`6Fau2QH4|EVj)ٲ;N$pg4PyU@lEqi7TWO`j LE\dhX Yc3~zU& RcUdq1?ƫz9f_V1~f'b_6@>2 {eY'@AT '*4+kUXCuv .]}TFu!ZhW~q^Y@6K3Z_|q@室,y=LPKם>%j5X|s;lH8#7Do泯u(GV_/jcRKXAh jFdk'{*5JHSs0 N!AaN+mā4$c,k&$04}|\N8핀Zmp[ |ڥ/"_Bʀ)ުWEii6\;8C _ڈ>%Տr&5 >5Α^zsea,c|è@*M~1u_h\oY$)i1r um^PHX 9'|㥚PRL2A{7"h3yw&E2K7tKAĚWp2 V9c%(#qk%xc"=zh^XQ@X`UV_>,ԃӤZW)dz }[Sg藼#.-׮ ?uNiHi N&xd.Ϫ & VyVoc)9ZEwM 9+qJt9-6Nl5o]kM=$?d׈k~/cpU8Ēs:%K} |z_)aZh}fǨ;fGc݅?f(HsU yRĖ]~ 8/VtX6nQ& R:w zdsX0|Rzhj0Fq'toNٶo$8 CYEe\ p,uHM <-Jf6z58 ee+@+:AvJ%&f'Õ*̈́ LÇi#wpfV\IOH`(HαˊbzZHND2N g;{ߔh3R'hwms#ʩ`co8|3Dk  NNp)Q͇|;z{e3Yt^sӇ1XqFA"b)bMlA84 w:;c?yhr%i"Nу?i7T(=o![Nsd?$ΰ)-rtva.̛,QϤerW (w]L%04֙ 9# Aؘ|!Cܒqk R=M Y+:0KJqn}pw. +-M¶d{A(kF yZGWoV~xZ "D3l&X6pǰp뛖t"(!ĝUDUʢ#ꌆ =Pm⊗@yzrƹNG])m;4IpWޗ~K9ewHhgW$LHp%`!ﶱ>m2p՛",FN3fG0!eBjTC`GHW W75Lr[lc3#wκX-k2[lzBO]D7Q@7|~RȎI! `EA=;P-Z > dG?a1CN/Gf]n[˸*dvb{7ahu`wn[cx-2tŴYg_PM&Z.l=x`KZ^*Z.RmoذvYpjh+ܫ_ut&viIQ*gP%"io S$ﰅO|u#%<1$ը4iشʿ{839:x}Xe`e@#2%%ɽLJ9Cr=V x۩UwέBE2;-0l.ިqt@C؅-Wga%6uMrv73 " 3!3T$` DF!HϻC$+ vLblMbAxVMEԣ =0nkc#d%-Er,l2m "H/FsJlE M;Bն6Fd%3Ycs{oA\1$,#Ŋrqq#r"W=IRi{#12?@D{S{s1T6K,㍱tv?ЛJbew &AV J^f:u hD_W,xr@+|=A|4lΞRªnX.Ǩ;ErT☋ScKpBt^A1Utj.Plt,_}RƖXP/%?E 0KHjͦ`b\XxBJSLFn2 UNRkpg i|6kłZyfk>hfO/g !vBf;`^K7f+wc嵄HpwG*93Aw->-YJj ظvH`>n'P'#ށ`wq 1jyD6p^SeJ|+!_XI*Rֻ1Qy0~bhFoGkRNmԃ)PDq MhY E̝2gH xA.3n@:*e*/S҈.ZWa28)dϴ{&'pONQ01 bth:vTÂf΅HXZ /<ȁf/3AR֛Px>zqb⊚.;>([ ,3q lր y$\ .e10uk"HoTC :>%@62 VA"$2cף” RJ]tI'bǖZ-SoT tp4pItAfhi~GS_ @PkjXqU&N7e&RiNrъռሟ%*uE~^o.z?r cŨHԳ4ѽYdmv97J.RHoȹ<񯰿V,K[K]r XGD5)jMa:#f*2nj!p\C21k̈́_Mj $]ETіS0f$4 [,dE.5 iLN(Pu4@^JV zF,;Cd0T+Բ9]8?ڔ}䂏Y Q ;yZ.\ͮ {83XB>uX։dHb}.K\e`?v B:캕꽁 {ˌ5֒h:xud&[vn~X[v7C"Lje"Iu’pi]k+­z/s-)IWh"]riPK{9!ɱKDNA3 4]&,Ycu.C>8]sKv9f-_D3VZ?4UHc(%<`<ҏh,\ {ʎP& ;C{ރxS?;K\s'LWef--`2ܳ]V4p|<)uHPE0yŶRjk#![oCrNC"T_&&e24C|Ju (!Mh DSڙECGB|HrHqmՂ P\_!#d~]]""J`OT 8f3vI@r'ѴopVM}JN:;@Ÿ5.m@GTtl QKpJZa.qlȏ&ohq\S#d JNr@sVࢧp`&hjݒVΑkq̻X9  W_"u\`ER;9՝-Â`4Mi~  sF VMӌ Odr 2:-T[ϔFV5u۩ Ǣ|:V81AaK,#ձ0F zd?Q|69~~؂ (/NQY֥,ؘ * z \Mw=r [JܕI x#Hfr(N_Ds鐋[U ,(R2Jvd!Xr;\74bI7&viROwF!!L+gCxM%m ]Rc. w㫋IKj*?R-(zxyrHAF_)H9Gɷ{?G ^:c 7)IiE֓Z*< _09kqD…m|6AsLm3L!hʇ"ƗV5d}>#,OK&Oap[a6״D'ؔtX"*Rnb,뽔ϳ'WmEWJeFTj ‹g~BwD$9܍C^[c i7K6}DD>B }kp(/<22q+?O lS$D80%1*ᏑH 22uK y&҆(/ N`{ffA}1 y:M#bx .v1,dgTЌ^2eE]#1(}?2+&/n"ՄCeˣBnM~Z%yKw0Kx#۱2n gnp q*j9^ؙ=gJ5-jBL.A^KsĎ'_.aú]ʣ 7oN`:_٥RJt(mDag)&@}nF+bj"ȣ&Z[kbEf#!Q&iy`bdV`ٱݪBn6I82Kb\%Ha&اRR 9uN=yjJ߭UWq+P%QdG*0HF@VG.xypjqʗwSB­mVvt#śO=4^ߚ_SN%xH!8 νFR'@|\em2<7 $w' BCIN{8i/r#Iܨ_3OR5Hһ_'q]TF: џ5_34hb)& 8 dr`اnٶI_lea}H<5f&,Ml^D{*j;nKvbθsIh%e"cRI򮽖HPÏwK1!_gݘhcČxE T1MlπXvP;7 .0I}?y?ܚ [q_D5jZ#Ҥ4X6 wR&+4YؖYQg/IφLk!x&5ؿT|L l;pHK{Aiw(x ҋg=xĔt9' *t,`[tSB)$qPGl>?*I"ϷqNI؇'"Z,-'b j6_&ROT7UʾuMkğva`Y^ 0izl8f߬1jm<"|iDqDX5c|BzN'F|RIIb?/Z4hQBr:]2NHIj%i!e{)gk5'[R%N@mQy9HdQX 5abN /<Q 8&,5/H&7ut}X-7h&8E>0ڔog b0CѥFUq*APCs]LJZ;qv2JKEƴU^doEf93 Gu靈#/x\EUiK9ў"1\"W1T-iH \~ yRu=oeDAB5ul6?x7;PɃ\%= IלTk5ue 7@&Jؠp( 48B2ȓYh Z4͗W&$ҝXenB+:lČ!yxaGUFe/I2/@~M*)[l0Rw3T.)w%&hۚ>_Ů 97@穅9C^~wi~7.Zo96\'=ӆcrbwmq0^1(;1+~*'P`p+1^KXEd'^0+&/# _&.ުXJd{UB[6) & /*pnIsKn-积bVEƪ`sܸ<bŰ 6W,`kw=WT@=wn'uJhJ1J>[-O˷=ENخ)Ԃ,e-A]pRQ8QI:A> Hen(zw{xRI5-WHFdZc s,?}:g3:(C&O}4tⅧ?q@uH0hWOl/ /[D+,2'}F72j6"|8$Ur`~"Nryg9#yn$tqae;"\p4xqc#qsΫ; 3BlV\{Em;GaQ%FiS8˭|a?9HSHSv$,-,B耨q4@mCt[oa63ͩkELza4HRhx\?Cģfai\e,akw_)-M}L )݌# T74omot޲ߞI¢El;hQ]=EcN2SXmAcKuRN"Sne|QcVuk$( sE?Qh" y|T{ do=]RW ir ejo2'Ϙ1rSvOCD|38o?F|tVs|ã+_!&$}Qlt' |x6 'g;G{{HDS$S=:̢d`#SDB"~7̐qr<,[NŻ412{Y\I5U=H$;,O$wɃ4$Am&_vjz_'1Є)-;._gJpC ;$ɸw;T3b.Qz y}fS>/떴%+`_,]z1kkxR!ں$1ĮW+\hf2q{a\'l>jj3{yĜw;-|fdװ gH^8Yw7fJ/w!J|=lܤo ,V{n{!kĩGs܍E}3t yK6r] "K,X}OVA$@LMUHxT14]J>m9li5]3N^55 : T! ί$EUX gvޤ`"ZyZaNPb$+E豴9)sZ[oo")biDfd3>94zBVÕ i|7?sۊkbwoZ,Jpd WY7sKl,Q sv#FܗN1(YB<7PHan~Q=|&p=nQ(Sn"p"7^Wc qڟ.Fgv Bq]cDdca>x,A$G4JEْa{=n"x:QFn3dBՀ24nGE+^jዅ3;f]_1`hY[^Y_0IߚłrbAcR6+b8uBĆe=Y'J頔Ñ?';3Ũy@V-?YtmڢGk׊lBw핫ի$V$S T1vf%VC(]O_o&7u@l $Q T 2Hv3~Wg1Z~;g%ݸ;v-5x k~lKg.ηLsPO^P5qPBd0K6?w4f|} :SQ8eτٷ2~.+-ZᑞV:8R:=,MbPDȪBMP57,/wG]F@GI9@Uwxq6yvi=.-lK~sPP-V^dQt⍅$-)Jc44>4$lnnw]ixuת r7`581#OuS|A ƳGꚮՑ&yU'|'_]3Կ!t  D WOQkM*^nWj.09*ѓ׶݂q|F^!,0jSϺC.T0c'xzȃi7чco⫼Tz 7XosBEx{ן-XnbT+Z6 } ՠNNᅄA:䶡W) gg}~+u6uLM[‘c^b|s596so9%ܜvLi@{pzNg;$<8-=\7 Gm0>`H}iކInRK Uf2ddI8uƅ6!n69 tV4nn_LY:"a_Vpgʯn~㊤+CSSbs;*-En2T2X2ky^/]I= H`h`g5g_MB+PQ^ O'cMm9}$n+hVl}Z5j2_bnZCBch$_QArؽp )\DF$ρDyI Y˚TZ6,Z-w@ r/̋Au+vb0 %M!}qY?PӉ214߼ X?QlJ¥219NK֠2vcyEf]7;Ԝ8Kg7jP-rQ =z?‰S|. 5OҠ|u'7Bh; Qt @f0^Q%gC:FymV{3. EȧhŘ׊v—]% \= iez5H"Ēn6biUxҗ4qY=7LQe}nb[ӠfG!45*ƭg>ԺE$Jg_a[^V~G)k6HJ1ڔf([_h 7| cEGB9Zrб9PnXVΗz #4zo:70s71O"rkmD"=BHXxf2d.㐏=*?mH0$/ҥ{7[CU6NkDo*S]XL8|AvaNB/bw u'Qm/I?8O/]Mo5o)Zx0-@EPoh7b"ǒL_ l7E+dB}r#NFO/nB}r#JL3Pi3#gqv+77"E?V~{;By+q^;`A 7l 9F[, 8I~$YM.*t;4b'.|۫='$͵YYIaZ;G[ayJO,c))9!wEﮛ YJ/$Hgorm-1.3.1/.git/objects/ed/0000755000175000017500000000000014327003123014345 5ustar heronherongorm-1.3.1/.git/objects/ed/811f2b294e23eddb95915ef63bdafd2e51c8d80000444000175000017500000000165114327003123021732 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C͋2mK*[թe Ks^9hXޟ|;\z3`P Q??dѱSfYE\\ßMO2m_-8Iĵ** R2 R+vHCť r%W1YQ?5r8m=(ϼ|` 0TpH߱v5J# Lb0SmwgEe]lIY)EEũE Xݧ3ˡ{"i8Rӊ*V}oɹ';/d**:/8LJAy G.=!x&3y~IAole!WCs fz'vl_떖~.[1 1'hjR\veMvJrJ36U H-hy7p׋`(וwfJг/n+r)ČҢd=Zl̈Wj-r/|P3웱5+gh#Ős *ZT JJ{&^ \))eZ~<`oƠѦwf&Gۣgorm-1.3.1/.git/objects/f4/0000755000175000017500000000000014327003123014266 5ustar heronherongorm-1.3.1/.git/objects/f4/5425a7ad996960c09c82414fff60436e31c9b30000444000175000017500000000026114327003123021212 0ustar heronheronx1n1 9/rbBbԝA"t훥7`ѧۀct3zٙ9QQ&D De =c'r%ڒ/3/ʊCAqmw>$/Si_g>Unz)!-AFtނ30(U\Ugorm-1.3.1/.git/objects/0f/0000755000175000017500000000000014327003123014262 5ustar heronherongorm-1.3.1/.git/objects/0f/b976b3545cea322cae98fdcb9140fcb7f091e90000444000175000017500000000701114327003123021643 0ustar heronheronxw V"Z"*+:$wѠATDKI@ZH %lENc|oAD7(m6(n$ \"0-~T7b㶈Ld)TKhB$CU kNd*!{ms$TYg!N\C[OwwB"k3jIMhUBqvV\ vH. W,zY`h0R45D{ⴋ4Fx46ż*Ȇإx>Bl%{K7r |E 1|m\Hz\J5)nO;:8c]]e~c?*wmÙCY;ڄ<6oD~buY`.T4_ )Tso|n^4٬qLJ{<$$;Vr9偢h~'>׿A!KoDZ39%ZdvtӜ_7GǹPI8"3'־U =;w>4 Co ¾_O{7<Ѩ? Rfo<ɚwfz'gZg[XANjثQ v3b;tW o HNzS%o'X 0Z7ߒ(k͜G.MnY]CwvaAӁI5X-e9o&{_i,_i˜7&8;jv∞r@=wuaO jh8)d'ޑ Iz!` iuG?C (iXSII#dW㢐YOz/KV2͸1;M^e%+ŻG)ydN u4>Kɒm1naޮ4JWX'Lr:]+8 "́z7{'!\7]ziN  w8vW}1^Y%Ibp[[UJ J֙D[ ? 3EqPώ6%M;/s:_DbŷC` sӝMך ϲ螳(]^m|h]\rmf#\F^?ꇱr[c+HH(mpČwQɟMĵĘᧄ§3m Bb5OIגޯ ҎHZV,:ApIzr6iI; -H8"wXsrSBܼ,zCoU˵ u S;KLiLGX̦vfygI2FDհf-:FkWg]#ف^x<_T:DWsXtc2vkb%}^[I\{b >:hlڢB*ZoqK@BSL@pe_Iͦ5pFnjI0E21sq*bat?3 o1a033Ng`'/FkO#>c{Z.: Rd3} R 38ҧ挥;x0S~vC-k_6w}<:MҭYEA"c@~{n"} кW-ASuDCu`}AGg\l["BݰgD<{Q28ڋf!8LU^IJLXr(C'GF^%auKdKU0%Ҕ'qkůJUP{CfW̏Qӓr+":e%\x0f!e3q>f깮yȖ"VzajA槶s) (~|+_[rlb\L$Sc\B-[zӋ?BFUg{MmxtILG+Y2F6iEFϏhxYwgN%Gƪ\|IJ9 &L鋭|ֽ7Vu۽bhIK=}AD7 aÇ;|gorm-1.3.1/.git/objects/0f/a913bc3f057e1e207fd67e391d18a894e759340000444000175000017500000000707214327003123021301 0ustar heronheronxy _ǯ"KJ&GXDBlCyf-TʤUH+B"[vI-k{^ Wٸeظa3ݏcA5n5bqc)xhș+E\(>8^4YJc'mD}HR86<ǭP5ۓvD(pwKK]C ^h.֛iy!N݁ U~`ܝ(xz_s}*VB8GStQb$^/;lۥsu @6/{ʠ=,66"=wįx-xڹy=Rn;6L~'vŲ\J/z]U$MH0ELvPzrvJH}iNy͊WTޤ2.]"juHV3C4 v3ӭcq@@LkS~NRܜ&=HB,u^v]|I^[JG+IFu:?|CO-?J׵Y I:77.W)`;1pɱd/Px 쫰EIr vW|7FrNs~ٴ> 0,Ƴb}MNiU%_.|Oe@ o3! !jƌb7bLM!LMSJKCԗkߋ>M; IC;Q^B9Oh3xgLozNm{MWo|B DQn3_~E 50{(a8$W.e땱=?rs8 yFIs ]}UoM&FZT`,[X  (޸_?%ѵC oQi8 Fogg_RG׉t(̨ 煦>Vܣci5<}Jvm, ZPFw0T)D 4:10(mE$Ԇ#*ZaD* Z< lq'aZs;fs@)'%^M^|QxL,{z=>TUAsɧsElwZ '7{m( o;.96Oth?'>)@*D5ola5l"be.YRW>(+|ړo9sf \3bqPtV! \x_&- ,k|\%jp9ۅL(fh;mlp+loRJcw.+\CϮ ;z<0`U(" (6K;"/橲+,_gnyЉ-*{ w'GbBLl*8ՓG\=9\9`]"xxv;R?(rϙ0Z6-(]pVGeG*bnZ {]n6AWhQo~( xG-ֻ/0Pѓc#F*Ng/b5Oi9:}qQ|G)t3eQ7( . .hnڎw0u]>V깯}0Mj) P8- 7"J5Da#Nӥߌϕ\1=<s :;6߂#KϪj6 (a!fBa0 6%R|[A87I4*HYCJ>%PG.w㹹9ʨtZw}V9aVI$dY982T}5 ޸L?Du.siVϫZ=^< O g^=^R qI>LC@kRQy|~ ߣ؍é̆{tx~l״~r4EHԡ[qu UO8\|0̿T>1OLUY$VؗsGr| Aw̚ YuM~_t}0@z&! ' 9^޻@kG2Y/RhCDcmf]RKtMEBp͂|K뽽ۏ8e } _m__ S>l|7haD+zT{$jHd- *tIn,9.%m==z^!D=kZWxF";=pɡz K%pKN kIz ڽvOUtLPx{FBF56hY)=5 ϾECtR2u~efX87f5jx]zk^9O94>d pF M*h 4R?^e 3AM$Z(kfcHNz?O2u[sQfU"|tK˄y(jg;-CٵN]OX'|Q!B3[0|#UR $bP!GLo]ֺʸ@6FCAFgx*ˬNjf=CW?M<¿\seP&OW2Igoܖ,"6 Aٺg+%{ݢrSں<=Ft]-NDh8==7)`9@OZ4?WQ铇ƞק*)l9<`.ݰ$pov*s8ק5 ÈDC$,78IeWXߟ$ %EI/,qlѨ Riih$lWfW{-XOaܶ8Pv3b'|[=ȓW_tKOBaP7WBxq B$O|3J<9*B;yRA0[r؃C>Xkh`U]*5/rk7 E7&-{Ա(W4wqgܷ.T[Ά!8c!07Y.=d[\_ɾ~vV$bPIj q5Yp2GM66uۄhjd Z[RvmZ65 'ZQ=b77@4K]}pplꆘa{_ZyEDO(]U/Md&޺#YЌl#"4J;{%~nI)ИAۚ{g)k:N"0 #N2##mTo>lsNw#ejLJ~~Y:>i2Az\pC[ӵ{ 7]Mu<7vwU]PoQ"s1n_v(-Չp,ʬÃN%xh̢,w(*&dߞϼ\9_m .(9q@2'&'f9fYJ)8׈VN3$Mi\1&"& e^a5Ls!'SPO߫J{$Tͳ;!Ƨ#ZAʜgG7L9xE[9w3~8Z NUlck#zLa5J3_DLѥ1 蔟c[0ςztjJ-C莻PAj^.A˦z5)cw6.mY}@##lOAG}ݶ$fG3AdTWuC>ɽ+מt~F y8|s)A3Y%Ib{?O=̲UKЖG0 Wٮl=w"'OXĩ=` 񒛧!p oJ]{&kM^6).o.4yV.(v } gothDZ#Z%W=`OtB*rlJ\R#Be!9ѻk,a{F: RDsL V̢O!mɰ+Nn "5_~0 HZ)cv:Gew@9VL_;r|rnacGCH {`sIo"&ٶF aʎjIYU@g3dgwJ +ڮ|{b#bMAޘqğofZ̆1IK-*fPlnou iBT$$2l["PZ[րySĒ)6Os 9S@s|f&& ~٩i9 Ns=zo߳<ݛmgorm-1.3.1/.git/objects/86/0000755000175000017500000000000014327003123014212 5ustar heronherongorm-1.3.1/.git/objects/86/f4c7f905cbcecbe87906c8ed5abcf7cf772e7f0000444000175000017500000000030114327003123022110 0ustar heronheronxAn1 Ю4HUU$aTBPH}OKoɜSё 0 ) 7iz@P5=GH'()":c |smpjzQRLXMc)^w=aؖ]QtD~$Âa!gwI_K[3\_LNQϬ/{zs||{K}+%f7,NYrE[%RLw3s6և?Rk6wxrgxdZe(R{X7^fJKߕ̌> s'WV-Q":DddeRD!IuBv5E$3i/V ]Df$I)MؕS -I#FPx@Ʋ3msKfHR%3:̔TXBZ@'WZT:>`k@ }])*oNq[y' Uj .VdW? .DAxx]QD_w}]ї/(FVLgL@g*P:"AisSZ;'R9A ^vj6,>N0+tJjFqtogr,z{MfnA}m=s;n9998:l:j|Ci Rb$E+{-\xr$|D^<\Y2ߺ`溴(bݞh EWF_L 4=M&VrtwSYשwuGC>VVïzʣbod G?sQ*nU.EqE~$i^S{j*ԉqއb)[!uVEGO[?Z3w˗;RB9olO $n{ʔ0Kp c3>{]3o`8*sƗf>C܌V9 b!g=VT>-)4r ' ́tZL5Z|X;̪0mN@/rT@*-gOh5> faI)t& !2Ioɉm)5Q2w6vs]* &,Ԋְs0%I9G`a y>=gE*ar;124Jl"-PabӔGb_o>c7vZ0XuCj;2c H+ 6Z݄6ڀh>]Կ+$_PeT[2]:Ƽeۀ0e1#=#v\=nURuG3 7qGMaQ}y×G!#Fޗ*֨yHR

`fT5xCu6BcYE#H!KMcFR}Uo1zRj,0 S0(~MƟ4$TS+ qd1'&[# >) 5A|xPR īA}2u&¯]Z:zۡk‚ ͼ k{K*/GQpda:"L)Q|%TJWy=J-VBA2G%+ܵ}]lmҖ@l $JDÜIG[cOOVNkڕ&A>WMf~BA_;Ԕ I^&'&sXu>.Vqj#~Wz_pd}?">gorm-1.3.1/.git/objects/d3/0000755000175000017500000000000014327003123014263 5ustar heronherongorm-1.3.1/.git/objects/d3/abb50f69999ce189bd2c51bc622bff3c250fcd0000444000175000017500000000165114327003123021722 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C>s"s/Tb{^Lez%I@ r4O.sF^ii(JV)G3LRK"L}~Q^.ω'r6ܯ濤~Zdzy QU;fl|zRLR݁9+Ǝ,樟[9dg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvcT5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r ־tvF]GbSf߼j_hnbvjZfN*C͋2mK*[թe Ks^9hXޟ|;\z3`P Q??dѱSfYE\\ßMO2m_-8Iĵ** R2 R+vHCť r%K?-t_D23/-_H% y'wztſ|2L#ikYhYxBRGjbJjQ@bQqjC+v)r}HqԴbU߬[r qakPs~f}yG1 shcЛ')fp`iHP3\Ã+މ*)g4׺@ HI-)Zqԭ?;hY]{$̼bMUR%ZM.bt'X& rutue]["~o\1#(8(hO֫),3bZܩ (x/ԩ!. fl zi:s1䜂ʇRR`ɆWqJnJY$713z[1h)Y6IwFh`gorm-1.3.1/.git/objects/39/0000755000175000017500000000000014360755606014231 5ustar heronherongorm-1.3.1/.git/objects/39/c3e69efd717161df2ae2e50ca8d395f6a0a6f30000444000175000017500000000010014360755606021574 0ustar heronheronxKOR07ep(N-Qp q s S0363BswvV03  ,gorm-1.3.1/.git/objects/aa/0000755000175000017500000000000014327003123014336 5ustar heronherongorm-1.3.1/.git/objects/aa/29a56da6a6de4ac195a1aea8b78959ee85ad700000444000175000017500000000715214327003123021730 0ustar heronheronxw ߊDJ.4Kd%%YeJ\qsÎhw"MBiP"%d2<_~J`UU76e1qx 81X޳LBߗ{ȼָ|T۞ Mm('buhթ&p$CU$0gf! ^5xjʿ:Q~yV?'7 [sY`P˘5-Moa{_ ($ 3)m)i7D|<_vs<.=\776T~'bخFfU@Vdޟ@ХJe^7RC<%uL-P ~@%5S{3 /ɥ? VƝ*oWV2E8"՜YW *}5*wq"wApbuzGW 6N2q™)8&˭K*1"IYq}7)]R}ʼ1&d lc#U}Z"f{F3QDh;ǭzt3r(gĭg@ -v!-JOM+GXis3\vҫH>WR:FYS}f* wÙ7|EƬf<;;X)`1`O@E8?Wa/|2`Nޠgؠ1C瞳;egx0&P1d ώ 7qn-Ψ*-TrGbߎ&-3M7ş _.nz@ ivdߩ uSiidh[>){g!p++٫m}'SX(>: 9Y1S[A[k"yв34UR[jGu|mD,~$q~>-YN>~mTB-OcBnix*3|<8I5Q]x~3yrf"!`tqGIq};i~kw }I Ff}f!\BSg,`kCNlKo]1 s3岃MM%?73pcws&o+nM K$!N=.F Cn$ a٘_llcTckҢzݬ4|fBF4Ҋ)UqYϚ dɧj\WU#>`*2;iݽ{d"fPXk$v$.-КCe즲D{g)zNF;xb ,ۨJu}lMNsN,νpעҰAN9dkƅ8:]*9.̿XuOoT]T{Ҭ:pVp$ޡ̗XU 2Ee7Gc2jBy,qh}  @0D42:) 0ۡ"UjCbI1 ޱ0"f/E.8eZkfs;OPb,ȿ hj=ij9;g!p_]MXٞڇtՅ/Nx0>|[GU,j?nfc5y9q$^G6V!ެ62D_[Lѧ _{pEޯ#4rJ-=7q>|k,( $zSjRn\^􇠮eu0\!{js<}Cw='T֕&q](3iblx#lOrJw W.)1nFgȄ?ِDP oo<+ZƩ||y*/Q Y oQݫl?D8ۦbĥ;|EƱF 0v-U"oObAc^vǵBR@Ҿzk'tPNoi~0ydb BREeXuCBÙbsge`[Ե'O=-zV s$'xYFϱ2ꎲ=bQlvf)rM|5^/=.~[}M#i3VR:SB[Zy2Dpxzn#Qh╘k9fbRuv2CTiF˓uxѧ7#sJfj\K.RC1L@U]LǬBn ;XgG";w!Qzqfq6޹({vK?J%4]oŚ "H_h7+)c+ \N-o\vݛ+`ܳͦBvAv4rAr#w;.!+SƆѣMZNش!g5뒊{ǿTBht_6?4=hk9޽&a>0ˢF_ mfgh ~}ifWGϧ!W߼ނ.E ʽv }jl/]MNA4gGeߎ&ig# f2cG\q.0LJ,{ڮ1 dڃ F\Uo ./ۙ2 ޷n H](t<>>r/ǃ-dvjw]tu?Iv:n6vqt>}76B{x|p|lZ=b3S*ƻ?&ӌbFr0lm6A__NiIb9mf//Fo7km`wo`ry0 ^ۍbtI7{'v^3ѽo& oʤ~~Dovq5%rDhcގ{ Q]aIPaZ\<ȏϦ3t;+16wؘ_,ė?q$pz!e`ڍ&뫌#Hz;[z'!ERM={,a'S_BI[h*Ƀ3JmFsG* @"kB"Hz.h 5> :KM~>磿1E?+qu]e@`U IBSD\b /),ajt *ƟsnZd3Q߄ X9^ܞv=Qq aN`_Ⱥim 2ǍDK6ԍpՔkߍpu؍09iAɀ7-gn){9{i繐ܽsL|'|J"g N oIئ6GO_~??=<;O*ǻ+dؤ}W gmBHkƑ$ S5Br!&#v:,څhgw&f,ælp5^X4o`>wf[ͭ!AO,3-m11aZ$ف}iA8E)pkSzֱ&a| BVAm\`wKbpټyaҚÑ3Wu̩.0%x)!4w!UsZUk&oqoxJk;ki1Ԡ4"tbbJ/ԾN'S|r>DW*0=]7[67 8 wu "1|]7?} "c H9 u55+ =~85ےQ7ٖ ߱hE7l D'?'$}2T?7pOc>b$yVb!$O':={(a$lbéll{]a W!ZD .#V-xrMIS9fd$B}gMdjݷ^>?kllPv4A jo*k~xCE">ˏ`UEyJ Gbܖn*`1Z2FψwF,I ireԭ?4h ?,l^m6an%M8VG#pҰW0/ nYcyE LVТ!wg^kO|d247h>|~~? iv|_R-ԦrE;o[]/\uYjorŠH)E -7ADD;1w0ypNJH)/ @DM~I%֛zH/}KlxGk^̠?0c{EʥӖlh+sDA;]uG;= |؁@?2Op`mDŽOwnx/ڌV0h/E=SS`sLIĩ#|33{$@b IF=5meijM v0 Ik9EP ۥd(D ,E? I{q;plV `0ༀ9EX}M3I.cIAB :׃9ܗ:YOPc+~ Y 7F^x؃}1 R0ni@_ٷx: U*Avlt\&P~74)6yV,qOʎ0ji7u&aD5xMiD1 Ș~'17#mm]7"|#G m=$~,:]Eu%܊0hMyc*#@݆btFHK#`7K1|F*<"~"nEWp5*̏" neRi"Q67A.PJ2ԏ݀9bJhx:R-$ڞM#Jajj\<ګmi0 J9)5q_0oX?"R VlPe͕jT0ŬnRL[Dvticeۖ$oh_{!v餌!H Ĉ!vAnN]l4 &@/BV`>^"nP]x=>aC%6mJQt|%-B0md5"%MIvrfi?7L]˜C*%G'' W$unt-RBύ.3+ |HY`F)I  ?-Ӕ)6j;M2,tLkԉ! I!^P7N/œg7Dn9N-quKߜ;6t#?Xy͜ &Wz.у?-=ezLb@M >%pt>\CylQ)7C!ՎP#~?xpOFhw|O%A gf;)$`M(Q EHS"YpI1"-3O@™9|]ɚ͌w i",GD  V@ DHqrbIcD;sg@`Y279eR%20̩㝽Ӝu [ i ~㷝O~ә45{C^&8,M8cv3|MB]fc+Zgz!qS6AU ºR[VB#2V} iMқwfܫepn ѭSG ~}"VB#qTI}!},hqp,6mbOzCjTH\W unkfMA/ Řuc.Jgq b6EQE"]ld[pui 8Q>X :Sȇ߽ mBD@E$>PF]Ivz2|<S/6` =W?wڪRre[WipzrYW3i8&IFj~a>6eP1REsT$w$-E8v S}|Q~yD,)eU*kkt6\xZ4|֍/I(ş>d=x# l/2GY]+eB/ pC0fWՓ>Xo~PZ% 1y+1[~9@Xv+T hptK1RNzدXS ^amRc)Hy,;^y5OzKb/ gDe 61 1KHX1i/Jl1C0I3/3 _(!Q"},Qf)WdڎԺ@<3aI3M0Wje229D6νiWFYLӠ ccrw[^`ZT`/<+@.j:V=60K(Y`Ay!]'yJ42#GwmK8`#z ")>+8ald*y)ɶxp^V#a!}>0QA.|hU 0娰 (P`OQȃ'_z/51R'TJBhaDڗ]~gKNzÎQxuȕnjhTbZX P(>`CYj<`PV4e~c ]e" ~bݓL%ݣO2G|U+p cd QH̲.x-+ѭT~Ӆg&b"ݠ1cM#'ڃ8l%#ϡkDin-TyG2 rJ/ZΦ˽s^L5'vE3T]  *.#n x<㏒;yTmЦ7 7$)|LxSB_3 UXr?20K),#8^KB]{$ 4făw,_K߲7J(sS8< ϑI!fX"&LH&C!(>sC)3"w Du ppƒws=ْ>k~<fXFu1UЩtidD\tÔ"s>M, 4uє7+Ƨmo7'A_9֩)S5j]d!̇q$+<}R8؎CffR؋u6}xT?JrSk.Gu;[x-+]FSO- : _2MM2qa 5v2qg+X\KYsm*__92Rn0p4sA&"mLJ=>L|"M w{1իXdH3ל.=|݁gUjC;S]QE&9ܿr3 ;' -J&i=×^acXnjAXGl6?_ゔPi,qm6sYնh\,Rzł N*,Ɨ^IB[Uv }tټ&wNUeog - s.檳4ytO:^" :;.uGH#ߨ7gg)R?, H ǀ1OuЏN)Qʀ|T}ҀaV@U} g.+2a\> Y׃g lJx "5v']бVmeH4v(g[k [7< a8&J N/+=\Z$gyN b; # 8iNJLw.#Vm O?<'S}Z|=<tnvB?i"?ɓ)oߌu;l T=W򅝠\NG EE;&;{;F7-[5NKJXƻwYOWy~rj+jYP'%lu:*3()+5[T "yX@u{ 4oU:e9ivБ?mj ְ :pCf3X|Y)hWW 8*ˁk<mTpqmlnHb&*;',2U렧9~E9 1]z3̕ @@zH&9 z=. 09U)R8ܡ(}耦'\̡od5/-w ´8[r90jaCGaӯ#%˕ Ђ]֞A)PV}X|v ZSh-6-ɵhK8Co $7]8`  (zWMKRw՞lԎ=3 DD9l/mP8M x HU4{d2ʆ!C71S&1 r#(OcY nYfl3=?!]*H)26ON֊=J9C-wÖ) ~Sv~A:dJx^$qvЧJ;.0˒@yv K ᚽp !ƄlzlA0Hy#FyH{TD1gKA6z%Tc@rXi|t(ߑapn:NzZܕ4صA'V+-'yv9n`[:@1jVʜHF % ih!*%Az p;12Ac)~b\lnI)5ڈ-*ҡΥ+9)e.TO;s/2kG\GjYrK- (b Bw^kF_ORwgUfėW0KɄW*tr k}A`}BdK^qˮ}n9918 rWR[&D&?*^&N1A\Y0-'ˣp'EϞ %O[tilM(_uT߄ Ov$F%l*}AyyVdwzb5_C)eSo 7~_%'=vj%|#|iל. AONj_;n5g@+#ləs\1=gQn{n_)+%?%~Uw;bDԪ Ļ%b@oBRcAi9#&P7V!vmڥ8v8pFD(Wϰ3&cP &RXNɯ"eO Owl`ye5[X+IR";sa#3&$gKLf:9HEЫ*::odڎG( Y H?'*df MoZraIlS1HNmWZ$!פQˢH2֝.+;p\a 8>t?$\pA^[ вp#8vA=I[8"ddZς1BŌzV#.V7dyfgxg|p59=|#ʼnb 4}dgxx2 8A 1|>Ew4wp>IKP3\ uߜD<N.?A-W No/u.GX檔V>ڂZ_#'{*5JHsik"а:߈VayCñECwYKv_I&cHZ䢄+ R` SI$_AМmJue炭Z ϣpȐ.5 XL>39w(mspe_ʀc\e·A!30"fa3Ya6h MOH/#r7ڠ wē[ }tcQ9Ƨ0"(\[F;5|nq{Hvf59.S %!t}OM9u=J" '0d0mynV$+h\)Iݍ̯뒬Y)~43974pXs'8K}&vHEI߯ kc!SK\B/$%yRF`!ᦡ-%$~9焟CvyTDX yKXL& eG'Ȼ36)"pYZÿ7Mk3'ּsG3NX+AA F(c#_G-S@@"xR7+1$QctG?0}Y=I1$?"ĠbBbz }[Sg藃.C^qӪL/Z 䛨ӊYMZzC+81 $w`b^*Z$dv8`Fs7̺n2Ѐ @Ci N&xd.Ϯ}M:ހWI9ZEwM 9+}I gļdc߱€x%pg#mr:ȵP} ?gÝn^XuC`J,9>58w>NVɆ^IOH`6Oe°αˊ&bzHD6Now*g ݹNMGTU1jS:.q&Rh QO"UC'ѿWԔM?>up2my=/MŇØ@֯P8s#ڠ=ؔUC \y|JQM$@|Ɇ"z?i!  ʛ(_rqF"CXD"mJ<I!%7'1P nl4Wp1N艬N\muLo;ZCYMH1W^< &ili7푈1^L-2@(= U*OM0Ɇء g#J鵨inڭ:AwJ[xӆQw~E͎hͅySR`)8 9xB-sG `//qɠ,nY0PƬ`Ð"d#y`S:e5@y<\[7)K Jab2d=!H<#.p`xσq+\@co<ѯ*Ub0Þ50:&J%]e9:I^b%ыˠ)hR2==V9k֯6"˓(i][#dPaYX\o TȳɋfPF܄24:3dd e%٘]G%+Vm"RP;/5Jfp̠QN#֊ XwiKev>ny"v%'[Di Z x"a=,e:?V%7r: No bN #@ͅUj:!N|(T}6Td%|\JIz8\+\;Mwmy;XEj&]dp$xP-Y6[I8_Mf#g#] A!F5[*t!#N"7V_.Re§\hBC(,./" L nyM&~ Ӥ"XdБ;g]mn5-d=L.eakO Uٛi>?UGdǤA (He-ڥ{uNYdx'4/-?XPWuqބ PZ fey+fk^+]}.$gn7 &\-CRqU4TvQ-Z5hAyP5W8(D 1,MҎ/rwIDUw@W\> b0Ͻ"}d&" VSJ pzN4;tV?Xк!q?*\]{|X>!7_ރmo0xu.7%& 6lasFu,P".\nH #/y,ͨ%h7I  ؝%YyN%NGA^! ptĹMھܐIZ()O:#IR7 g0X8d5+^Jy|5B<ZDsxFq2~ԑKM[t* Oam 5>g@^V]–=9eg-匛~Ű_VD?HeRΈ %l Ym d/s ѓAN01z|Wh W(qpyPUxs1@^,44B3Ĉд)ؠץ̬DS/5А _4M B%?Q2*݂i{Mpgihϒ6 .S~̢O#*8u>a$T;$12,$$DLb{{r,<R4g"ikI2U` $(N&i i(&?hj(G50L;9 xÀɖ-N`ҭ+g0xMF!v&Ã0m]l@ q=xJ'aqBa#9N9$f0mo"V^x7{.+lL%* TioThx8R:e )SU3MgM+tl#T^u)Y\L~f  aYR@Pd1%2.FVzrt(u#zԯ[`%VXXR^@I&yв}xַ(6JK|X vYu+7Ҧ\'kR/, ~I[[hCH%}lGnsc+ W$gCPrٛV-oUҪLlK"(pȹڏQP'RHхgTDWmC~|r j7@!}I*ru%2cSRFJ Qqt57M)~VvNF(GE$@ :>Y9d2J ֻuQ1)XQ8D8ttZM|!CKgއ*˷R)n7>H>qhhn56ߣ1"+3✢6S˃T U,r?m(aKE0|n='۹KRC]leF01h'el1R1\"xk[T nϼ킄$ܧ _lTx"B &˸@ 췄H0N ψbz7J5`kl͸C%Lg q̙v*4fopӥOyz|Ilht35Nn9:H1G:>byA ~#fV9jCxsTˋKرQ5y ھk iW\3)=N/)M:r4 t6BCN5T)'6F oTD>%ߙ *ę Em/"B.\Ggn0q0;uyS+is|-HGEf޿ԭ/LG˨%ϴ~?_.F`^uq EAڤV|H*sdaGAZDy) rƞ_[+Lhi tI=$ ծO[泞"yi#:N+e||˪PS6;cr+Cn0Y(T3?1 O ̦WoPr 7qmO'O)VA@nv+d'J`Nf.S^fh;Y.'n|sV=lZGgc*scѤؚCί?a[^w@QiH wʔ]WOd{7 C;B0 y޵s_t;pW>~B]`94E9mY{њaMd&`ݠ#,&R7~yyȱ}o2n_y mo|Tr1<\ax*m3 14qg' 2`hvy9F8Ց>7;K)s*T!f'e-aK qa]t|1p>8)dϔ'{B&'XT]+Q{9zt1: ;Ga`3B bpGp,U-&_>'yh?_gذ3jyX){V TxbI9㥑;xf GR|ɆG$A4*ƢvGjBiA"/Hje ǮG3)RN}Ď-Z(*Ig}E KI y^4h4XJq26h ]V`-/̊c8V#V:= ܔ}KՑ;rHuGN|T¢#E%\͵SyV% c,CIXh5LMئ is"ŋXvįFNZ,1ǮK]ͧS#^bʫ֤ 0e3@@u} g29b05f/Mm $]ETі4@^J=q!Wpr!D` BBZڮZ{m~䂏Y Q ;yZ.\n {83XB~Z-3w5*ɐ\p ̽[p%)?|VV.]f D##3ٲsyڲsR`R 4m(/¢O $1E^Em,@)YS}drg 6?([K?w3wYmeZ: A>`X??R-(zxyrH! F_)H9G׺{?G z:a7)I|g ɷ)L35Ј* ̀[#X7&&}+T $ڂm)P^\i jYH$Uށ&9"hi ' WN W)g[Xs71^Y yw[<ەRq(&j;=eZ.bjBw$9܍C^[c i7K6}DD>B }kp(/<&92󧄎 |SD80%1*ᏑH f%cP qc7Bq&D}ݍ}*^rk:W +^*.oYm;4ݎugӈ2܏}6xT"  {4G(ٻpe:8qXKyҔ |sӱ4<.U/tSDin#zFN12HnNw4ZS!XD5Zy=)xc: ;+YLJB6ј>ķ=FF#42SehVJwWH_MM Di9GWgc >n QA%gD+!3D;Pg}TON;\K^_xֻ EwvڻC $#|_jO 'qOeˤfi'p[!<ldp0,JdИ]@ ͣW߅|$- &9-FBMҬhMqytTTJ " Vl@qJH((ol)I&y]Jۇ?o闎sl4㧉634U8 ʩ݊܎=ސ3*?n$ SM@ױ9,RM?S: l17q2㛴|cUF9IlpVfIKIq#lܤTJ:]*AQ жI'?[MWn쌻^PUՇ2W,̍K'#>RA22"I-w/*ԄD/[oMZ1э?E-|'I 5Z:k?,UnR+ 7ٚ\6j=I <&*L!$=E͊H0m WN3(;މ$uE9F@ h:  э%GrAȤO85i c>p;ζ ff?VOC*g+oa^Emm}kg!’tJDƤ;]{-Ƈ\ccB Ϻ1bcٞ8_vP(yti༰,E[c;b-MJeӮp_.`2ܿMem⁙lΔrρgR[HEǴKāC ]b]ѱZ4H;CS!^<#D8!sXNɒ lM Z~σϦa>9צ(K8NrSQ( *i.fɧyfb{j-;Xu@2G\NG \-ٿcչyJOvZ,pM MeƓaC*$ek|~ܡ,Y70}@{^ŝppAs qP 4fevJo#jjm|3;qm_{S%-y RSw%ztQTR !]5 H`BFUse<ρ_xQɔMz);{>r0vkdĄ0cCnhv5O=^J31!@k4i'h+ O <1ç_4ߟװx;7f!hƎ`mO%\<Ω#W*|UPr874zRk .F]ey1xä!۷=~6Ǩ aOazՌ I"9޿&.I&j&%lrhѠ6Q FltHh8#&FT "_Br×XnIu LJNn>K8G ʁZ(Å{&ow GQc5[9ՃxDND"$3aB]J⽁drM+ڠ );Ah<5a)ޠo&pѦ~<[(X} .v4zΏnwUA2[:fRډk+dVZ*2Uݚ'\b-{+0 fu-YTWP<ʭ{7}yv(Jw8,lJ[W̉t|4/W{k`ǠrӣÃ, ý@/̹T\\nf8J]I%& K!#Jp(lZPcTe ~l&ŒaJ"`3mb?f_ G0M @^rīˤ =:DP]_MUTڴ 2qThL) r/]]QӉ<er1?tΛStM4힀 UyŞɕ5.)Ao#+ "*v^ L>~fׅ?RR䣤]C9k*K%N aby*.QYΚ^1vJXG%u&'*ӌ?'1psƴ%yysk 4.YԼ>Ru=oenvơWץӍRXIA>9׶k[7nLh+APi(oqd')8/hp6_NV#JwNb1k 6zFykSv3TwGUF e/I2/@~M*)[l0RնCʝ|yI:ڶOx"|'#aU:G4R|[<0'bȗo.3AK-qzp|z,PNZ-0+1}g9R L'!NL#x[߃렚;U\tv4ȋ2CfgwJ!̴|WJV/༘5r}D/%y!vZaB3v ˏW:a_y='UT3#i3#ŜL^'f8old ݘ+ÿ棿ލ(|1P[m/R-NuU<_#n,{d[GjY*g#} %IdmBBƛO3R2 iˡgKQ.F:g`ua>_g`u]dQ<@!Cb!_%Hvo &  8Ip(1hiAg9IoC].0X\K1 ﯵ&"-&IdvMvFy_GGhO1f:8<0 l;l-B>6Lp.A3S\X;{߽1@a8 NFS٢i|;@}bPz@6=bTK4Ne7 `^LDjs`= 0벡,EQ# h/+:ӄF Yaj@ W,AD1 <2=޴X ;$oNn' a70yipX0G(/=>Rd DC#@I"񧯎r(&i$jaDԼzFn+ &ȍWUؼ& L;@:3I`.1"0aLxwW UzԢlIɰ=_!6tcaM& P ( ylxS/ u b/HㅧS$o e}cbAFW1)f1:FI!bCfBp%VtPH IҙbT 7Ȫ5.Ұ ^[hM;RM`rzĪC/d\*\c,D@*@~ֺ+כ `Ez|=Ir„ ݌_ՙ@ξǙ"mgpRaƊ);nś__}^r?{u) (<ȆOL̆C_bj{t/yO>U"!INkg-%TTmqp7<&̒ in' F19e+j'G_bνw(pN3aJ>)/6TIJӭPg;KQ57,/wG]FOѴ`H}iކInRK Uf ddI8uƅ6!n69 tV4nn_L5#i`p 98H/_@245xJ(F=K-.:=e.#[>d5ˊz"ͰHOa@: , Vẉ{ iY} 3 dxlm l_=39A[ Zo4F<D׬Xۮ.#*@ `B1L(r-($m%Kwge-bӲ& K{{okVPP bP]āLBISH_\$F֏ =@7NLUHrbSB.qZe K_pR/i+v6b+~N1v<5' 8ڡ;x9!ԐiTAB^pԻY suԚF`UiP@ nG:R {`/S|] Ϩr]3P!xh TA#]% \= iMQ[Am `lӪX/!i_@8>{n˞>ŶN A͎CUk@U[ξ9|.;ԺEМQg0fSlmmb )uaP%QS;,$`s+:Rx́l;-* mim`A>i%0W; hn%sII^d|4/sy'GdoC2"Y\#|؝q hQiS,u WW5bz;R%ҷ,e$_j%ZʨV#Q!GK[M 3}l70uK$Xn`=&.$KG*̀gHvto .]ptc;Ycܱ/7,hUGhXg5pt:~= ǵo`n:7cEڈZEz(х [ 1!dĽ]!{U~ې`HN_K!;olމނUp6+쪿Ü8_N 0p^jXV;jz~_}m3TI#uIddD v^bLv+'7d*j(v(1p+'7ȿ6BCXYsjo Is-@zVnzVozΟхVFXKXoJE ?mNAѻdF?6Cge ^gorm-1.3.1/.git/objects/11/eaa139c646d20ff17e18db42fcbbe13491738b0000444000175000017500000000165214334122426021473 0ustar heronheronx+)JMU040`040031QK.+L/Je\ctM|U=KS(gd&1X9[i3?&>T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> \K0ܸ8F9}S 2B|撟\WXǐfj|;>sK,)(b6,},Pm:+o҅Z9zyLҩmhuj2$WV'9~~ތ4BO+Ytᔣ&%{V~}>(W/DLW l_R?q d<(?Ԋ36>=P)&rq)@AwϺJSU{Uydg^Z^0J*N$X;ud&1)GQ ӶԳ"`Ѳ.6 ,gĔԢĢ"W,fSҙ=Nb?Ei YY\C2 Aנ<kvc9;gorm-1.3.1/.git/objects/11/4bae94bb9ca96c0d6079db8ab54fa3bdd252360000444000175000017500000000017214334122426021632 0ustar heronheronx+)JMU044g040031QHI,IKI,.N-fwӬb.֋2v"KgP=㥘Ӎ5.F+1^XU\R_l$Z̄EOsX*M /,gorm-1.3.1/.git/objects/84/0000755000175000017500000000000014327003123014210 5ustar heronherongorm-1.3.1/.git/objects/84/da56d765fcd73ef650532c796f400195488be10000444000175000017500000000033414327003123021223 0ustar heronheronxKN!aǬ6`ˣMEE7:@Gݽ8p?8\I)vP?JAZiff1b*1xIpkvbk(#HXEV;#ë{o(GWlK>˞0'W3U.W5T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r  ]UKNx0s8 m&fe2Dμ޼h/ӶtEZZL $17 Aɷ}Ψ+76 EJ;8hFIjI__/e0<9D.ӆՂ3O\ 5Y/3!ʿ`*bnjO4T\\ ; gPaeBP */3ِK+R Cwމd8k.]40$>;*a6|zV,ZņP។쑚ZXTZŬ}J:g)Rl<(5b7+hpBf"T5Gɬ_yhh2Yl7T+|eJq`$^$TkP0Þ8ܘ18׭f7 sgXn~ۊgCɵ0%y> ./Hr NX6I)I'$d15<#>lO+!\s23r :OfT8PKBsS2sR"g^o^4ߗi[:Uܢ N-TW_\ A>g֛Ti%?r4#$ݯ/2hz"ijmK'UAVQ\_\ZcƧG*D..h3(yozyJ&3.ϫdB23/-_H% y'wztſ|2L#ikYhYxBRGjbJjQ@bQqjC+v)r}HqԴbU߬[r qakPs~f}yG1 shcЛ')fp`iHP3\Ã+މ*)g4׺@ HI-)1[H%׫ZǝJrJ36U H-hy7p׋`(וwfJг/n+r)ČҢd=Zl̈Wj-r/|P3웱5+gh#Ős *ZT JJ{&^ \))eZ~<`oƠѦwf&G\ۮgorm-1.3.1/.git/objects/9a/bd939dcd24295c7ec3ac3a7a8092facb37b3590000444000175000017500000000707614327003123021655 0ustar heronheronxy _ǯH)""*lCaƌ=RTDVŖJJ$]v c=sv/Jwݽ[@Ba8 ;ZZd47 dMv>&NĠ /Iq\%fbri@4>ڎX(vJ0hL[m!aAXSGv瑄;T(PM 񦙽,kPp…/h6Y׺Y~4@B[_,9_֍/vKE굘r·޻qn+&Mk6Sx] =1?pPZe0ږG~\vk<(= ٖwf.G9cFfх* AnC"pb4RѮcccsiS$ID7z}jrKf-+s(/~OnIBNRL*Os;k3SZP >% ѳ䬲G :\z~ێH 6#]+_ ?Gi$uUmkX .~Qe݃?{ Y`0N=IHuV{~)Zsw7q] ή&I=)_k~SM匔}gft.o"!{ٖ-B"~euM{3Xchu6]#ӇG֨PfV{8 &  h2hZLv Y>z"!Pirvi4YgAqʜB)7~^ZX~,}yrE5 hxG1TbxQ:vsVXbq<]tҜ|)yzܴ}\Vp7\(yWthDiyp 4 9GKOzF"t_OrJ0M)䨩ߒZqmW )s,];" CO(=gTb!X[^UZşI?_Zfc%EQ93K\994P$"Ԅ:43y|'9!p;3Żskҋ;A&0d㴘)OhiRu+e^%XΨ>8 D㰓~轙!Os{yտTCOoɤw*y1:K5SXS% CrM;w|\^ϓK;7% _tUl&yc> ?􉥧asaqfb4L,EFؚ9<\?Yf?S2@b]m8{1w 33뙚Z;G ޅ 1x]ni [VӽCnF "7"HswU' 8K&h]}phXՉTrO&0*ϰJ ۿ !T) laH$ ,S~(aIr@@yWYA{a[j=vzm x'-Y)rwX{'4 X^v4cCɍRm'Ev?pqZy ̏e[Y1NzHDLzMQ5_/DY L@ I H75"D@p4lwFQ~L*'û9Ɠ@&~&L|lf6جHٜ!! To^yȿ FL,CU(+ޜ>a~.~I}We3l[-@ ^dcgF }rV*j虢Nn2-)ORl?&xl6Ԏ[&G:.,[L-( ?y֤޾곡O.UCf{q8u lWgq$c5U ѹg7ew%+ׯ,)bGO{oaHBxGZ@1Yu/_IHI&oI #~"q:b3Ĭ:~MBXl"0<#G2Wp4e\~) :?n=}ŽׇŬ<T)sH8U?"'0UnQq)rp<zP[\@BQ8Ÿ^1 .甤re |bŀc85*J)L; gfs۵CtMza,aSnOs Npẖk'8UoʡR0QjH"}:$OH雌pxN LL?kB0DLFUx͢!`_aH}QWWgVy-0;OޑM9^xUP{,cfQ{@Wn§fQSQsi17ˍPklG%˶) "ܟw{S7"WK@PRY~Sp(CQ MџR.=np⺴auG0zn۞82f2Vm^sR =M[R׷lWAV isjWvE7H?YASdy6R S)2ԱaԡeԔ1yY+Zo/2ldD{Js̪C?K*!p{{27dSg61Nk v8zh\H7:Co-?Ƌ4Lnågorm-1.3.1/.git/objects/9a/a825a758e2f2d09db1c1763d2d0665d6a326100000444000175000017500000000022514360756007021260 0ustar heronheronx5A =@ R8cģhrŃǙdexͱA:HOG!`ٔcpZcYk)&Zo亖'33p[6* ܽBYҹ8aPV)!<3m (DX4gorm-1.3.1/.git/description0000644000175000017500000000011114327003123014563 0ustar heronheronUnnamed repository; edit this file 'description' to name the repository. gorm-1.3.1/.git/info/0000755000175000017500000000000014327003123013257 5ustar heronherongorm-1.3.1/.git/info/exclude0000644000175000017500000000036014327003123014632 0ustar heronheron# git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ gorm-1.3.1/.git/COMMIT_EDITMSG0000644000175000017500000000003114360755773014433 0ustar heronheronUpdate files for release gorm-1.3.1/.git/HEAD0000644000175000017500000000002714334122437012757 0ustar heronheronref: refs/heads/master gorm-1.3.1/.git/logs/0000755000175000017500000000000014327003123013270 5ustar heronherongorm-1.3.1/.git/logs/HEAD0000644000175000017500000002547714360755773013761 0ustar heronheron0000000000000000000000000000000000000000 0053970157c7e694137682ce8ee97e6587c42368 Gregory John Casamento 1631570434 -0400 clone: from github.com:gnustep/apps-gorm 0053970157c7e694137682ce8ee97e6587c42368 3b2d0d2e77ebbe3a0e81b38b96132628a713fa93 Gregory John Casamento 1634686083 -0400 commit: Fix crash in GormNSSplitViewInspector. 3b2d0d2e77ebbe3a0e81b38b96132628a713fa93 09c3b5e5561c79354fca3736582d3a9cd6fd0ff2 Gregory John Casamento 1634956935 -0400 commit: Fix spacing in GormNSSplitViewInspector. 09c3b5e5561c79354fca3736582d3a9cd6fd0ff2 a184d826fb47aa1101b0a07a92c5b3eb8c9237f1 Gregory John Casamento 1635025254 -0400 commit: Minor updates to GormNSSplitViewInspector code a184d826fb47aa1101b0a07a92c5b3eb8c9237f1 84da56d765fcd73ef650532c796f400195488be1 Gregory John Casamento 1639026008 -0500 commit: Fix instance where document is not updated for custom class/first responder change. 84da56d765fcd73ef650532c796f400195488be1 214583b518c1aade20e2c8c81a93f77ffcde8b3f Gregory John Casamento 1639026968 -0500 commit: Add calls to ok: to update document status 214583b518c1aade20e2c8c81a93f77ffcde8b3f ca58e9480c5da5652159c45ad576b947ac5618ff Gregory John Casamento 1639031479 -0500 commit: Fix the rest of the issues mentioned in savannah bug#25310 ca58e9480c5da5652159c45ad576b947ac5618ff 0b86d0ec26902f9c64601fb9bc6eee54d7da6bcc Gregory John Casamento 1639032670 -0500 checkout: moving from master to add_classes_and_palettes 0b86d0ec26902f9c64601fb9bc6eee54d7da6bcc ca58e9480c5da5652159c45ad576b947ac5618ff Gregory John Casamento 1639032684 -0500 rebase (start): checkout master ca58e9480c5da5652159c45ad576b947ac5618ff a87f3e8d1b5647e768745fc62cc024887888f9ff Gregory John Casamento 1639033003 -0500 rebase (continue): Add classes to plist a87f3e8d1b5647e768745fc62cc024887888f9ff b056615e5ca5a7c5fb1ff7273fe84c789ab99ce2 Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): Add template for new palette b056615e5ca5a7c5fb1ff7273fe84c789ab99ce2 4c9614347a38c941e014c092ed27f900a55331e2 Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): New palette for formatters 4c9614347a38c941e014c092ed27f900a55331e2 8da03004382268a0957ed7ead1419da1987123c7 Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): Update image 8da03004382268a0957ed7ead1419da1987123c7 79b7586985283cb33ac706ec1c2e5e4d556af10e Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): improved icon 79b7586985283cb33ac706ec1c2e5e4d556af10e 21c2fd9fdd2d01ae21a12674f398b29eb4de4ca9 Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): Add bytecount formatter image. 21c2fd9fdd2d01ae21a12674f398b29eb4de4ca9 4fe20ee61e300227da6104bfac161dd66f9f46c7 Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): Place formatters properly in Palette 4fe20ee61e300227da6104bfac161dd66f9f46c7 aef10af3810a0dae025b25684e7e2308b03267fa Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): Add date components formatter aef10af3810a0dae025b25684e7e2308b03267fa ee078d93e44ed5c7c6a0dd4bea02bdadaf5c038e Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): Fix to find images correctly ee078d93e44ed5c7c6a0dd4bea02bdadaf5c038e eba086f13967fa783cb7ace4d2f06b2b8a471b26 Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): Update image for date comp formatter eba086f13967fa783cb7ace4d2f06b2b8a471b26 0caef79519559d33e9adefa28fe4ac7d78391daf Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): Date interval 0caef79519559d33e9adefa28fe4ac7d78391daf 094c07edb2ab5f7bd05cae9e8c1eae778800644f Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): Add image 094c07edb2ab5f7bd05cae9e8c1eae778800644f a1d613495ab53fa4fcd0bf9a9a36f2c41f668f2c Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): Rename tiff a1d613495ab53fa4fcd0bf9a9a36f2c41f668f2c 198d7182547a9dd838dd2ac87bf146f874fdac89 Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): Add energy formatter icon 198d7182547a9dd838dd2ac87bf146f874fdac89 932c6a848ed0486087412e9874d0781066d1ac84 Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): Add measurement formatter 932c6a848ed0486087412e9874d0781066d1ac84 7056586e8dbd5d5c1fc5c0f52f00a9552ce93ce5 Gregory John Casamento 1639033011 -0500 rebase (continue) (pick): measurement image 7056586e8dbd5d5c1fc5c0f52f00a9552ce93ce5 f45425a7ad996960c09c82414fff60436e31c9b3 Gregory John Casamento 1639033148 -0500 commit: Update from master f45425a7ad996960c09c82414fff60436e31c9b3 31c1a34ed5849421392c391a423931110ea3f9c5 Gregory John Casamento 1639033262 -0500 rebase (continue): Add length icon 31c1a34ed5849421392c391a423931110ea3f9c5 86f4c7f905cbcecbe87906c8ed5abcf7cf772e7f Gregory John Casamento 1639033263 -0500 rebase (continue) (pick): Add stack/grid view palette 86f4c7f905cbcecbe87906c8ed5abcf7cf772e7f 86f4c7f905cbcecbe87906c8ed5abcf7cf772e7f Gregory John Casamento 1639033263 -0500 rebase (continue) (finish): returning to refs/heads/add_classes_and_palettes 86f4c7f905cbcecbe87906c8ed5abcf7cf772e7f 41b577c2e7053977fd926bbad233072cd9ed60c2 Gregory John Casamento 1639038558 -0500 checkout: moving from add_classes_and_palettes to gorm-canvas-changes 41b577c2e7053977fd926bbad233072cd9ed60c2 ca58e9480c5da5652159c45ad576b947ac5618ff Gregory John Casamento 1639038605 -0500 rebase (start): checkout master ca58e9480c5da5652159c45ad576b947ac5618ff 44bd698d7c075c673b354189c56d0fa978db0418 Gregory John Casamento 1639038605 -0500 rebase (pick): Add a canvas mode to gorm. 44bd698d7c075c673b354189c56d0fa978db0418 42eac1ff2771c3ad358b373dd45ae9cf93302fef Gregory John Casamento 1639038605 -0500 rebase (pick): Add canvas view 42eac1ff2771c3ad358b373dd45ae9cf93302fef b66673d9cb10af767b672a5e18e5f09f0aad608b Gregory John Casamento 1639038605 -0500 rebase (pick): Add canvas view b66673d9cb10af767b672a5e18e5f09f0aad608b e24ff20924effc94e244dbf2f128741a5ae1529b Gregory John Casamento 1639038605 -0500 rebase (pick): add copyright notice to canvas view. e24ff20924effc94e244dbf2f128741a5ae1529b 4586612bce479f7fb32e2b4d0b266a5a95b3aeda Gregory John Casamento 1639038605 -0500 rebase (pick): Add canvasWindow and canvasView to the build and to the GormDocument.gorm file. 4586612bce479f7fb32e2b4d0b266a5a95b3aeda ec8981a8f5f54e78998db262e7e79987821bd01d Gregory John Casamento 1639038605 -0500 rebase (pick): Add GormNSWindowView class ec8981a8f5f54e78998db262e7e79987821bd01d ec8981a8f5f54e78998db262e7e79987821bd01d Gregory John Casamento 1639038605 -0500 rebase (finish): returning to refs/heads/gorm-canvas-changes ec8981a8f5f54e78998db262e7e79987821bd01d ec8981a8f5f54e78998db262e7e79987821bd01d Gregory John Casamento 1639276636 -0500 reset: moving to HEAD ec8981a8f5f54e78998db262e7e79987821bd01d ca58e9480c5da5652159c45ad576b947ac5618ff Gregory John Casamento 1639276642 -0500 checkout: moving from gorm-canvas-changes to master ca58e9480c5da5652159c45ad576b947ac5618ff b36ec0e29a9f0a6bda49ca4a449eb8f388bcca32 Gregory John Casamento 1648317450 -0400 commit: Silence warning and create editor for cell b36ec0e29a9f0a6bda49ca4a449eb8f388bcca32 2ce25e123d360230c9c4f4a8b9a279723db64756 Gregory John Casamento 1648597340 -0400 commit: Change code to use new version of custom classes 2ce25e123d360230c9c4f4a8b9a279723db64756 2ce25e123d360230c9c4f4a8b9a279723db64756 Gregory John Casamento 1666045230 -0400 reset: moving to HEAD 2ce25e123d360230c9c4f4a8b9a279723db64756 e3331dc088ed49f7cb043c6c1d6e95518f024b4f Gregory John Casamento 1668062769 -0500 commit: Add new method to GormDocument called openEditorForObject:withParentObject: also handle NSCells properly e3331dc088ed49f7cb043c6c1d6e95518f024b4f e3331dc088ed49f7cb043c6c1d6e95518f024b4f Gregory John Casamento 1668064659 -0500 checkout: moving from master to object_outline_view e3331dc088ed49f7cb043c6c1d6e95518f024b4f ecd126aa18a3004d2d439a7e2e12c503c10d2cc9 Gregory John Casamento 1668276116 -0500 commit: Add new gorm file and controller ecd126aa18a3004d2d439a7e2e12c503c10d2cc9 e3331dc088ed49f7cb043c6c1d6e95518f024b4f Gregory John Casamento 1668326364 -0500 checkout: moving from object_outline_view to master e3331dc088ed49f7cb043c6c1d6e95518f024b4f ecd126aa18a3004d2d439a7e2e12c503c10d2cc9 Gregory John Casamento 1668326384 -0500 checkout: moving from master to object_outline_view ecd126aa18a3004d2d439a7e2e12c503c10d2cc9 1693c210344137ef6075601bf536e97cbfcfea3e Gregory John Casamento 1668326409 -0500 commit: Reverse changes 1693c210344137ef6075601bf536e97cbfcfea3e e3331dc088ed49f7cb043c6c1d6e95518f024b4f Gregory John Casamento 1668326420 -0500 checkout: moving from object_outline_view to master e3331dc088ed49f7cb043c6c1d6e95518f024b4f e3331dc088ed49f7cb043c6c1d6e95518f024b4f Gregory John Casamento 1668326482 -0500 reset: moving to HEAD e3331dc088ed49f7cb043c6c1d6e95518f024b4f e3331dc088ed49f7cb043c6c1d6e95518f024b4f Gregory John Casamento 1668326519 -0500 reset: moving to HEAD e3331dc088ed49f7cb043c6c1d6e95518f024b4f 1693c210344137ef6075601bf536e97cbfcfea3e Gregory John Casamento 1668326564 -0500 checkout: moving from master to object_outline_view 1693c210344137ef6075601bf536e97cbfcfea3e 24528a96f439638e6c7842c6caf69cce8ef86497 Gregory John Casamento 1668326678 -0500 commit: Add GormObjectEditor model 24528a96f439638e6c7842c6caf69cce8ef86497 e3331dc088ed49f7cb043c6c1d6e95518f024b4f Gregory John Casamento 1668326687 -0500 checkout: moving from object_outline_view to master e3331dc088ed49f7cb043c6c1d6e95518f024b4f fc35727a2a8fe862ebf8b3175ff181b7ba01535e Gregory John Casamento 1673780219 -0500 commit: Update files for release gorm-1.3.1/.git/logs/refs/0000755000175000017500000000000014327003123014227 5ustar heronherongorm-1.3.1/.git/logs/refs/heads/0000755000175000017500000000000014333122623015317 5ustar heronherongorm-1.3.1/.git/logs/refs/heads/object_outline_view0000644000175000017500000000132214334122426021301 0ustar heronheron0000000000000000000000000000000000000000 e3331dc088ed49f7cb043c6c1d6e95518f024b4f Gregory John Casamento 1668064659 -0500 branch: Created from HEAD e3331dc088ed49f7cb043c6c1d6e95518f024b4f ecd126aa18a3004d2d439a7e2e12c503c10d2cc9 Gregory John Casamento 1668276116 -0500 commit: Add new gorm file and controller ecd126aa18a3004d2d439a7e2e12c503c10d2cc9 1693c210344137ef6075601bf536e97cbfcfea3e Gregory John Casamento 1668326409 -0500 commit: Reverse changes 1693c210344137ef6075601bf536e97cbfcfea3e 24528a96f439638e6c7842c6caf69cce8ef86497 Gregory John Casamento 1668326678 -0500 commit: Add GormObjectEditor model gorm-1.3.1/.git/logs/refs/heads/gorm-canvas-changes0000644000175000017500000000070514327003123021063 0ustar heronheron0000000000000000000000000000000000000000 41b577c2e7053977fd926bbad233072cd9ed60c2 Gregory John Casamento 1639038558 -0500 branch: Created from refs/remotes/origin/gorm-canvas-changes 41b577c2e7053977fd926bbad233072cd9ed60c2 ec8981a8f5f54e78998db262e7e79987821bd01d Gregory John Casamento 1639038605 -0500 rebase (finish): refs/heads/gorm-canvas-changes onto ca58e9480c5da5652159c45ad576b947ac5618ff gorm-1.3.1/.git/logs/refs/heads/master0000644000175000017500000000436514360755773016567 0ustar heronheron0000000000000000000000000000000000000000 0053970157c7e694137682ce8ee97e6587c42368 Gregory John Casamento 1631570434 -0400 clone: from github.com:gnustep/apps-gorm 0053970157c7e694137682ce8ee97e6587c42368 3b2d0d2e77ebbe3a0e81b38b96132628a713fa93 Gregory John Casamento 1634686083 -0400 commit: Fix crash in GormNSSplitViewInspector. 3b2d0d2e77ebbe3a0e81b38b96132628a713fa93 09c3b5e5561c79354fca3736582d3a9cd6fd0ff2 Gregory John Casamento 1634956935 -0400 commit: Fix spacing in GormNSSplitViewInspector. 09c3b5e5561c79354fca3736582d3a9cd6fd0ff2 a184d826fb47aa1101b0a07a92c5b3eb8c9237f1 Gregory John Casamento 1635025254 -0400 commit: Minor updates to GormNSSplitViewInspector code a184d826fb47aa1101b0a07a92c5b3eb8c9237f1 84da56d765fcd73ef650532c796f400195488be1 Gregory John Casamento 1639026008 -0500 commit: Fix instance where document is not updated for custom class/first responder change. 84da56d765fcd73ef650532c796f400195488be1 214583b518c1aade20e2c8c81a93f77ffcde8b3f Gregory John Casamento 1639026968 -0500 commit: Add calls to ok: to update document status 214583b518c1aade20e2c8c81a93f77ffcde8b3f ca58e9480c5da5652159c45ad576b947ac5618ff Gregory John Casamento 1639031479 -0500 commit: Fix the rest of the issues mentioned in savannah bug#25310 ca58e9480c5da5652159c45ad576b947ac5618ff b36ec0e29a9f0a6bda49ca4a449eb8f388bcca32 Gregory John Casamento 1648317450 -0400 commit: Silence warning and create editor for cell b36ec0e29a9f0a6bda49ca4a449eb8f388bcca32 2ce25e123d360230c9c4f4a8b9a279723db64756 Gregory John Casamento 1648597340 -0400 commit: Change code to use new version of custom classes 2ce25e123d360230c9c4f4a8b9a279723db64756 e3331dc088ed49f7cb043c6c1d6e95518f024b4f Gregory John Casamento 1668062769 -0500 commit: Add new method to GormDocument called openEditorForObject:withParentObject: also handle NSCells properly e3331dc088ed49f7cb043c6c1d6e95518f024b4f fc35727a2a8fe862ebf8b3175ff181b7ba01535e Gregory John Casamento 1673780219 -0500 commit: Update files for release gorm-1.3.1/.git/logs/refs/heads/add_classes_and_palettes0000644000175000017500000000073214327003123022230 0ustar heronheron0000000000000000000000000000000000000000 0b86d0ec26902f9c64601fb9bc6eee54d7da6bcc Gregory John Casamento 1639032670 -0500 branch: Created from refs/remotes/origin/add_classes_and_palettes 0b86d0ec26902f9c64601fb9bc6eee54d7da6bcc 86f4c7f905cbcecbe87906c8ed5abcf7cf772e7f Gregory John Casamento 1639033263 -0500 rebase (continue) (finish): refs/heads/add_classes_and_palettes onto ca58e9480c5da5652159c45ad576b947ac5618ff gorm-1.3.1/.git/logs/refs/stash0000644000175000017500000000032414327003123015273 0ustar heronheron0000000000000000000000000000000000000000 7ae6d41248143c94e7d470edbbc5aae35b6c2514 Gregory John Casamento 1639276636 -0500 WIP on gorm-canvas-changes: ec8981a Add GormNSWindowView class gorm-1.3.1/.git/logs/refs/remotes/0000755000175000017500000000000014327003123015705 5ustar heronherongorm-1.3.1/.git/logs/refs/remotes/origin/0000755000175000017500000000000014333757663017222 5ustar heronherongorm-1.3.1/.git/logs/refs/remotes/origin/object_outline_view0000644000175000017500000000075414334122431023166 0ustar heronheron0000000000000000000000000000000000000000 ecd126aa18a3004d2d439a7e2e12c503c10d2cc9 Gregory John Casamento 1668276147 -0500 update by push ecd126aa18a3004d2d439a7e2e12c503c10d2cc9 1693c210344137ef6075601bf536e97cbfcfea3e Gregory John Casamento 1668326414 -0500 update by push 1693c210344137ef6075601bf536e97cbfcfea3e 24528a96f439638e6c7842c6caf69cce8ef86497 Gregory John Casamento 1668326681 -0500 update by push gorm-1.3.1/.git/logs/refs/remotes/origin/gorm-canvas-changes0000644000175000017500000000024414327003123022742 0ustar heronheron41b577c2e7053977fd926bbad233072cd9ed60c2 ec8981a8f5f54e78998db262e7e79987821bd01d Gregory John Casamento 1639038614 -0500 update by push gorm-1.3.1/.git/logs/refs/remotes/origin/master0000644000175000017500000000315014360755776020442 0ustar heronheron0053970157c7e694137682ce8ee97e6587c42368 3b2d0d2e77ebbe3a0e81b38b96132628a713fa93 Gregory John Casamento 1634686088 -0400 update by push 3b2d0d2e77ebbe3a0e81b38b96132628a713fa93 09c3b5e5561c79354fca3736582d3a9cd6fd0ff2 Gregory John Casamento 1634956944 -0400 update by push 09c3b5e5561c79354fca3736582d3a9cd6fd0ff2 a184d826fb47aa1101b0a07a92c5b3eb8c9237f1 Gregory John Casamento 1635025259 -0400 update by push a184d826fb47aa1101b0a07a92c5b3eb8c9237f1 84da56d765fcd73ef650532c796f400195488be1 Gregory John Casamento 1639026009 -0500 update by push 84da56d765fcd73ef650532c796f400195488be1 214583b518c1aade20e2c8c81a93f77ffcde8b3f Gregory John Casamento 1639026974 -0500 update by push 214583b518c1aade20e2c8c81a93f77ffcde8b3f ca58e9480c5da5652159c45ad576b947ac5618ff Gregory John Casamento 1639031480 -0500 update by push ca58e9480c5da5652159c45ad576b947ac5618ff b36ec0e29a9f0a6bda49ca4a449eb8f388bcca32 Gregory John Casamento 1648317455 -0400 update by push b36ec0e29a9f0a6bda49ca4a449eb8f388bcca32 2ce25e123d360230c9c4f4a8b9a279723db64756 Gregory John Casamento 1648597350 -0400 update by push 2ce25e123d360230c9c4f4a8b9a279723db64756 e3331dc088ed49f7cb043c6c1d6e95518f024b4f Gregory John Casamento 1668062770 -0500 update by push e3331dc088ed49f7cb043c6c1d6e95518f024b4f fc35727a2a8fe862ebf8b3175ff181b7ba01535e Gregory John Casamento 1673780222 -0500 update by push gorm-1.3.1/.git/logs/refs/remotes/origin/add_classes_and_palettes0000644000175000017500000000024414327003123024107 0ustar heronheron0b86d0ec26902f9c64601fb9bc6eee54d7da6bcc 86f4c7f905cbcecbe87906c8ed5abcf7cf772e7f Gregory John Casamento 1639033469 -0500 update by push gorm-1.3.1/.git/logs/refs/remotes/origin/HEAD0000644000175000017500000000027414327003123017623 0ustar heronheron0000000000000000000000000000000000000000 0053970157c7e694137682ce8ee97e6587c42368 Gregory John Casamento 1631570434 -0400 clone: from github.com:gnustep/apps-gorm gorm-1.3.1/.git/refs/0000755000175000017500000000000014327003123013263 5ustar heronherongorm-1.3.1/.git/refs/heads/0000755000175000017500000000000014360755773014375 5ustar heronherongorm-1.3.1/.git/refs/heads/object_outline_view0000644000175000017500000000005114334122426020333 0ustar heronheron24528a96f439638e6c7842c6caf69cce8ef86497 gorm-1.3.1/.git/refs/heads/gorm-canvas-changes0000644000175000017500000000005114327003123020111 0ustar heronheronec8981a8f5f54e78998db262e7e79987821bd01d gorm-1.3.1/.git/refs/heads/master0000644000175000017500000000005114360755773015607 0ustar heronheronfc35727a2a8fe862ebf8b3175ff181b7ba01535e gorm-1.3.1/.git/refs/heads/add_classes_and_palettes0000644000175000017500000000005114327003123021256 0ustar heronheron86f4c7f905cbcecbe87906c8ed5abcf7cf772e7f gorm-1.3.1/.git/refs/stash0000644000175000017500000000005114327003123014324 0ustar heronheron7ae6d41248143c94e7d470edbbc5aae35b6c2514 gorm-1.3.1/.git/refs/tags/0000755000175000017500000000000014360756007014236 5ustar heronherongorm-1.3.1/.git/refs/tags/gorm-1_3_10000644000175000017500000000005114360756007015721 0ustar heronheron9aa825a758e2f2d09db1c1763d2d0665d6a32610 gorm-1.3.1/.git/refs/remotes/0000755000175000017500000000000014327003123014741 5ustar heronherongorm-1.3.1/.git/refs/remotes/origin/0000755000175000017500000000000014360755776016261 5ustar heronherongorm-1.3.1/.git/refs/remotes/origin/object_outline_view0000644000175000017500000000005114334122431022210 0ustar heronheron24528a96f439638e6c7842c6caf69cce8ef86497 gorm-1.3.1/.git/refs/remotes/origin/gorm-canvas-changes0000644000175000017500000000005114327003123021772 0ustar heronheronec8981a8f5f54e78998db262e7e79987821bd01d gorm-1.3.1/.git/refs/remotes/origin/master0000644000175000017500000000005114360755776017473 0ustar heronheronfc35727a2a8fe862ebf8b3175ff181b7ba01535e gorm-1.3.1/.git/refs/remotes/origin/add_classes_and_palettes0000644000175000017500000000005114327003123023137 0ustar heronheron86f4c7f905cbcecbe87906c8ed5abcf7cf772e7f gorm-1.3.1/.git/refs/remotes/origin/HEAD0000644000175000017500000000004014327003123016646 0ustar heronheronref: refs/remotes/origin/master gorm-1.3.1/.git/FETCH_HEAD0000644000175000017500000000013214357004213013661 0ustar heronherone3331dc088ed49f7cb043c6c1d6e95518f024b4f branch 'master' of github.com:gnustep/apps-gorm gorm-1.3.1/COPYING0000644000175000017500000010451414327003122012522 0ustar heronheron GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . gorm-1.3.1/NEWS0000644000175000017500000006417014360755460012211 0ustar heronheron1 Noteworthy changes in version '1.3.1' ======================================= * Fix issue with cells appearing in top level editor * Make nibs read only since saving is unstable * Add XIB reading so that they can be loaded by Gorm * Add storyboard file to list of supported files so that an icon is displayed, does not support reading yet. * Fix testing model mode * Bug fixes in GormClassManager, GormDocument, etc. 2 Noteworthy changes in version '1.2.28' ======================================== * Improved NSScrollView handling. * Added NSMatrix to Group menu to make it easier to create NSMatrix objects * Improved inspector for NSMatrix. Added ability to add rows/columns * Fixed NSMatrix selection problems when grouped in an NSScrollView * Fixes and other improvements to inspectors. Corrected issue where Gorm's menu stays present during testing mode. 3 Noteworthy changes in version '1.2.26' ======================================== * Refactoring of palettes by Sergii Stoian to correct usability issues in Gorm. * Refactoring of handling and rearrangment of controls in inspectors for usuability. * Stability fixes to make Gorm easier to use. * Autosizing of views corrected in many inspectors * Improvements in error handling. 4 Noteworthy changes in version '1.2.24' ======================================== * Fix for issue where Gorm was referencing private variables. This caused a crash when built with clang. 5 Noteworthy changes in version '1.2.23' ======================================== * Fix for issue where NSPanel was being saved as an NSWindow in some cases. 6 Noteworthy changes in version '1.2.22' ======================================== * Fix for bug#45040: Fix allows Gorm custom class functionality to work normally on OpenBSD/NetBSD/FreeBSD. * Fixes for Solaris * Memory leak fixes. * Objective-C parser improvements. 7 Noteworthy changes in version '1.2.20' ======================================== * Bug fixes #28643, #32827 * Corrected issues with updating document when there is a change. * Add cells as objects to the document so they can be properly edited. * Changes to prevent recursive frame change notifications. 8 Noteworthy changes in version '1.2.18' ======================================== * Code cleanup, removal of warnings when building with clang. * Removal of use of call to objc_poseAs(..) which was preventing building with newer runtimes. * Stability improvements. 9 Noteworthy changes in version '1.2.16' ======================================== * XIB reading. * Bug fixes for standalone views. * Stability changes. 10 Noteworthy changes in version '1.2.12' ========================================= Requires: gnustep-base-1.20.0, gnustep-gui-0.18.0. Reason: Parts of the runtime which Gorm used were refactored and it was necessary to make corresponding changes in Gorm to use it. * Correction for bugs #27295, 28643, 29085. * Added a DO server which allows modification of internal data structures using a simple interface. * Tooltips now show the object name and the object type for informational purposes. * Opens default document when using NSWindows95InterfaceStyle. 11 Noteworthy changes in version '1.2.10' ========================================= * Correction for bug #25401 * Correction for some nib loading issues. * Limited support for standalone views. * Fixes for various bugs. 12 Noteworthy changes in version '1.2.8' ======================================== Requires: gnustep-gui-0.16.0. It will not compile without this version of the library. Reason: Nib and Gorm loading were moved to a more sensible file structure. Additionally, Nib loading was refactored. * Correction for bug#25001. * Correction for bug#25111. * Fixes for nib encoding to use the proper template class instances. * Changes to use new headers. 13 Noteworthy changes in version '1.2.6' ======================================== * Corrections to allow Gorm to build and run properly on the Darwin operating system. * Corrected sizing of Controls Palette. * Added preliminary support for IBPlugin API. * Added preferences panel to add plugins dynamically. * Moved load/save logic for gorm, gmodel, and nib to plugins. This change should allow plugins for virtually any format to be read/written by Gorm. * Correction for bug#24146, bug#23889. 14 Noteworthy changes in version '1.2.4' ======================================== Requires: gnustep-gui-0.13.2. Reason: Due to changes in popupbutton controller logic. * Corrected bug#'s 19640, 21845, 19792, 15637, 17892, 18171. * Added error panel to show the detected inconsistencies in a file. * Added preference setting to turn on or off the gorm file repair logic. * Added capability to repair logic to fix window level issue. * Added ruler switch to scroll view inspector. 15 Noteworthy changes in version '1.2.2' ======================================== Requires: gnustep-gui-0.13.0. * Moved to GPLv3 * Added text field to NSTableColumn inspector to allow editing of table column title. * Corrected issue with selection. * Added button modifiers for special keys to button inspectors. * Corrected issue with loading of older gorm files. * Fix to allow Gorm's menus to be Mac-style, but not the one being edited. * Other miscellaneous bug corrections. 16 Noteworthy changes in version '1.2.1' ======================================== * Minor corrections to previous release. 17 Noteworthy changes in version '1.2.0' ======================================== * Corrections to some editors to not change selection if connection is in progress. * Force menu style to NSNextStepInterfaceStyle for editing purposes. * Correction for memory issue when closing document. * Minor bug fixes. 18 Noteworthy changes in version '1.1.0' ======================================== * Changed Gorm architecture to use NSDocument classes. * Abstracted model loading mechanism. This was done by implementing a set of "Loader" and "Builder" classes which handle filling in the data structures in Gorm and exporting them to external formats. * Implemented GormNibWrapperLoader and GormNibWrapperBuilder for reading and writing Cocoa NIB files. * Implemented GormGormWrapperLoader and GormGormWrapperBuilder for reading and writing GNUstep Gorm files * Implemented GormGModelWrapperLoader for reading GNUstep gmodel files. * Updated icon * A number of bugs have been addressed in this release. 19 Noteworthy changes in version '1.0.8' ======================================== This is a bugfix release. * Correction for bug#16587. * Correction for handling non-string identifiers in tableviews. 20 Noteworthy changes in version '1.0.6' ======================================== This is a bugfix release. * Entirely new icon set, for palettes, gorm, gmodel, nib and the application. * Replaced some of the images for the inspectors. * Corrected the following bugs since the last release: #16049, #16050, #15988, #16049, #15989, #15987, #15817, #15780, #15642, #15556. * Changed formatting in some of the inspectors so that they are easier to navigate. 21 Noteworthy changes in version '1.0.4' ======================================== This is a bugfix release. * Corrected some bug#15236 with window style mask settings. * Corrected bug#15236, which caused window fields in the inspector not to update when the field was being edited and a new window is selected. * Corrected bug #15178. * Corrected problem with standalone views 22 Noteworthy changes in version '1.0.2' ======================================== This is a bugfix release. * Fixed some bugs with table column selection. * Corrected a minor problem in the custom class inspector. 23 Noteworthy changes in version '1.0.0' ======================================== PLEASE NOTE: This version of Gorm requires base 1.11.1 and gui 0.10.1 to be installed (gnustep-startup-0.13.0). * All inspectors are now modeled in .gorm files. * Added autosizing to form attributes inspector. * Utilize and maintain parent/child data structure more pervasively * Reorganized code in palettes for cleaner implementation. * Removed code to check for user bundles, since bugs in Camaelon which prompted those changes were fixed long ago. * Added documentation to GormCore 24 Noteworthy changes in version '0.11.0' ========================================= * Improved implementation of canSubstituteForClass: the default implementation of this method tests the classes to see if initWithCoder: or encodeWithCoder: is implemented on a subclass to determine automatically if that class has the same encoding signature as the original class, if it does, it can be substituted. * Improved handling of classes which use cell classes in the custom class inspector. The inspector now autmatically replaces the cell class with the appropriate one when the user selects a given subclass. * Browser based class editor in document panel. This interface is more like the one on OSX. The user now has a choice in preferences to determine which view they would like to use. * Translation tools. The Document->Translate menu allows the user to export string and import strings in the strings format, so that someone can easily translate just the strings in the file and doesn't need to directly edit anything in Gorm. The strings file can then be loaded back into Gorm and all of the relevant strings are updated. * Alignment tools. In the new Layout menu there are options to align views, center views, bring views to front or push them to the back of the view layers. * Implementation of IBViewResourceDraggingDelegate. This allows updating of the pull down in the inspectors panel dynamically. It requires the developer of a palette to implement some code to enable this, as on OSX. * Lots of bugfixes and usability changes are also included in this release. 25 Noteworthy changes in version '0.9.10' ========================================= * Gorm now has a full implementation of canSubstituteForClass: which is used to determine if a class can be substituted in the custom class inspector. This allows classes added in palettes to say whether or not they can be used as a subsitute for a kit class. * Better separation of Gorm into libraries. As well as the ability to compile on windows with a simple: "make install" * Implementation of IBResourceManager class. This class is used by palettes to register drag types to be considered by the top level editors in the document window: object, sound, image, class. * Gorm now is able to switch views in the document window when you drag a file into it. If it's an image it will switch to the image view, if it's a sound, the sound view, an object the object view etc or if it's a class (a .h file) it will switch to the classes view. * Drag and drop parsing of header files (if you hadn't gathered from the previous item). * Better support for standalone views. while the user cannot instantiate from the classes view (there were too many problems with this approach). They can now drag any view from the palette into the objects view and have it work. * A myriad of bug fixes. 26 Noteworthy changes in version '0.9.2' ======================================== NOTE: This is mainly a bugfix release. * Some improvements to the procedure for removing connections. * Corrected various issues with header parsing. * Now closes windows which were opened during interface testing such as font panels, info panels, etc. * Minor corrections to background color for a number of inspectors. * Improvements to gmodel importation. * Better detection of when the user is utilizing a user bundle. Gorm will now warn the user with a panel. * Various improvements in documentation 27 Noteworthy changes in version '0.9.0' ======================================== * Images/Sounds can now be dragged into a matrix cell. * Fully implemented date and number formatter inspectors (these classes still need work in GUI). * Added warning panel if the user attempts to edit a .gorm file created with a newer version of Gorm * Modified data.classes format so that only those actions specifically added to FirstResponder are listed. * Greatly improved gmodel importation. (experimental) * It's now possible to add methods to classes which are not custom. This allows the user to add actions which may have been added to those classes by categories. * Completely new header parser implemented. * Improved cut/paste. It's now possible to use cut/paste from almost anywhere. The class editor now fully supports it. * Improved implementation of some of the InterfaceBuilder framework classes. * Object editor will now remove all instances of a class that has been deleted from the class editor. * The class inspector and the classes view will now apply stricter rules to names of actions and outlets to ensure that they are properly entered. * All inspectors work perfectly with customized colors. * Fixed a number of bugs. 28 Noteworthy changes in version '0.8.0' ======================================== PLEASE NOTE: It is important for this release that you upgrade to Gorm 0.8.0 when using Gorm with the new GNUstep libraries (base-1.10.0 and gui-0.9.4). This version of Gorm contains some features which are reliant on changes made in those versions of the libraries. It is stated in Gorm's documentation (the Gorm.texi file) that this is required, but I felt it important enough to also mention it here so that it is known beyond a reasonable doubt. * New gorm file version. * Full custom palette support * Palette preferences panel to allow the user to configure palettes to load * Experimental: Standalone views. This feature is to allow the use of a view without the need of a containing window. This allows developers to treat these views as they would any other top level object in the .gorm file. This is experimental functionality. * Improved NSTableColumn inspector. The new inspector allows the user to change the data cell used for a given column. This allows the user to select from a list of cell subclasses and set the appropriate custom or non-custom one they want to appear in that column of the table. * Improved layout of some of the inspectors. * Removed old class parser. The parser was somewhat buggy and was actually causing some issues. A new parser will be available in the next version of Gorm. For now users will need to use the class inspector or the outline view to enter classes into Gorm. * Experimental: "File" section. This is essentially a per-file preference which allows the user to control which version of GNUstep a given file will be compatible with. It also lists the potential compatibility issues with the selected version. * Improved controls palette. New items for some of the standard font replace the old "Title" widget which was a System-14 font. The new widgets use a selection of the standard System font to allow the user to easily build a gui using these and reducing the amount of time the user needs to spend fiddling with the font panel. 29 Noteworthy changes in version '0.7.7' ======================================== * Important bugfixes in editor classes. * Rearranged some of the editor classes to be in the palettes which contain the classes they are responsible for editing (GormButtonEditor & GormTabViewEditor). * Image and Sound editors will now display system default images or sounds if they are available. * Document window now uses an NSToolbar (experimental). * Improved the layout of some of the inspectors. * Corrected some minor issues in the inspectors * Added code to allow NSTableView and NSOutlineView to show some data during testing * Gorm will now show an alert panel when a model fails to load or test properly. 30 Noteworthy changes in version '0.7.6' ======================================== This release is mainly a bugfix release for 0.7.5. * Improved .gmodel support * Corrections to previous repair feature. * Important bugfixes for Menu editing. * Important bugfixes for class inspector. 31 Noteworthy changes in version '0.7.5' ======================================== * The 'reparent' feature in the class inspector. This allows the user to change the class hierarchy from within Gorm. * Some important bugfixes * a property 'GormRepairFileOnLoad' (untested) which should repaire old .gorm files... It is HIGHLY recommended that Gorm not be run with this on constantly and that you back up any files which you want to repair before opening them with this option turned on. * A shelf inspector in prefs that lets you expand the size of the names in the object view.. * Support for NSFontManager * A way to restore a complete NSMenu if it's deleted (a new palette entry for NSMenu, not just an item) 32 Noteworthy changes in version '0.6.0' ======================================== * Several major bugs corrected. * Clarified some of the inspectors * Menu items are now properly enabled/disabled when appropriate * More descriptive title displayed when a class is being edited. 33 Noteworthy changes in version '0.5.0' ======================================== * Enabled defer in NSWindow inspector. * Added code to the connection inspector to prevent erroneous connections. * Added support for upgrading of old .gorm files using the older template mechanism * Grouping with an NSSplitView now operates using the relative positions of the views in the window. * Custom Class inspector now shows all subclasses, not just direct custom subclasses. * Bug fixes, eliminated memory leak, code cleanup, etc. 34 Noteworthy changes in version '0.4.0' ======================================== * New Menu and Menu Item inspectors. * User can now specify the Services and Windows menus in the menu inspector. * User can specify a non-custom subclass as well as a custom one to replace the class when the .gorm is unarchived. This can be used to turn a NSTextField into NSSecureTextField and etc. * New set name panel. * New switch control on the font panel to allow the user to specify if a font is encoded with its default size or not. * Added NSStepper and NSStepperCell to the class list to allow creation of custom subclasses. * Windows and Services menus now function correctly. 35 Noteworthy changes in version '0.3.1' ======================================== * New custom class system. * Images now persist correctly when added to a button or view. * Fixed DND * Various bugfixes 36 Noteworthy changes in version '0.3.0' ======================================== * Preferences added. * User can now enable and disable guidlines for easier editing. * Refactored code into GormLib which is a clone of the InterfaceBuilder framework. This facilitates creating palettes and inspectors outside of Gorm. * Added class inspector for easier editing of classes. This gives the user the option to use either the outline view or the inspector to edit new classes. * Added inspectors for the following: NSScrollView, NSProgressIndicator, NSColorWell, GormImageInspector (for images added to .gorm files). * Improved look of NSTabView inspector. * Removed all warnings from the code. * various bug fixes. 37 Noteworthy changes in version '0.2.5'. ========================================= Many fixes and improvements to make the app work better. * Better parsing of headers * Interface code redone as gorm files. * Re-add multiple selection via mouse drag. 38 Noteworthy changes in version '0.2.0' snapshot. ================================================== Gobs of improvements, mostly due to the hard work of Gregory John Casamento and Pierre-Yves Rivaille. Thanks guys! * Custom class support/translations implemented. * Added NSScrollView, NSPopupButton, NSOutlineView, NSTableView editing. * Improved test mode support. * Improved drag n' drop support on many items. * Intelligent placement hints. * Read gmodel files. * More inspectors. * Sound and Image support. * gorm files were changed to directory wrappers for more flexibility. 39 Noteworthy changes in version '0.1.0' ======================================== * load/parses class files for entry into class list. * Pallete/inspectors for date and number formatters * Pallete/Inspectors for browsers and tableViews * NSStepper, NSForm, NSPopupButton pallete item and inspector * Most inspectors greatly improved and fleshed out. * Custom views added. * Ability to edit cells in a matrix. * Ability to change the font of some objects. 40 Noteworthy changes in version '0.0.3' ======================================== * Create stub .m and .h files from new classes * Works better with ProjectCenter. * Handle Ctrl-Drag and Alt-Drag of objects - automatic conversion to matrices and/or increase decrease rows and cols. * Edit NSForms titles in place. * Edit NSBoxes and add subviews. * Support for custom objects. 41 Noteworthy changes in version '0.0.2' ======================================== * Add popup and pulldown menu controls * Menu support * More inspectors * Some support for connections * Much more fleshed out - too numerous to mention. 42 Noteworthy changes in version '0.0.1' ======================================== * 8th December 1999 * Save/Load 'nib' documents (binary archived data) This works so far as it can be tested - but that's just archives containing windows or panels so far. * Load palettes Loading of palettes works. You can load palettes from the 'Tools' menu. Gorm automatically loads all the palettes from its Resources directory. * Basic framework So far, the app provides a basic framework that needs fleshing out. * It has a palettes manager object that allows you to select a palette and drag items from the palette into your document. * It has a special per-document editor object, which keeps track of a matrix of icons representing the top-level objects in the document. * It has an inspector manager class, which updates the inspector panel when the selected object is changed by an editor. * It has special inspectors for handling an empty selection or a multiple selection. * Palettes Four palettes (three of which are empty at present) are built and installed in the apps Resources directory. The Window palette is more fully fleshed out than the other palettes. It permits windows and panels to be created in Gorm. If provides the start of a window attributes inspector. * 18 December 1999 * You can drag views from a palette into a window or panel. * You can select views in a window by clicking on them, shift-clicking (for multiple selection), or click-drag on the window background to select views in a box. * You can delete/cut/copy/paste views betwen windows. * You can move views in a window by clicking on them and dragging. * You can resize views by clicking on their knobs and dragging. * You can control-drag to mark source and destination views for a connection. * Next task - inspectors. The connection inspector needs to be implemented to complete the process of establishing connections. The size inspector needs to be implemented to set autosizing parameters for a view. Once these are done, the object editor needs to be made to support connections so that we can connect between objects other than views, then we need to write a menu editor. * 22 December 1999 * Connections inspector is now working - but it needs some effort to tidy it up. * Class info (outlets and actions) is specified in 'ClassInformation.plist' and needs to be present so that the app knows what outlets/actions an object has (and therefore what connections can be made). * The view size inspector is working - allowing you to set the size of the subviews within a window. * The attributes inspector for 'FilesOwner' is working, so you can define the class of the files owner (it defaults to NSApplication). * There is a crude panel for setting the name of the selected object. * I've created a couple of new images and got rid of the two NeXT images that were lurking in there. * There is a Testing directory, with a GormTest application that lets you load a nib for testing - it assumes that the nib will set its FilesOwners delegate to point to a window, and makes that window the key window ... * 23 December 1999 Last work before christmas ... Various bits of tidying up plus - Added an evil hack of a generic attributes inspector ... This looks through all the methods of the selected object to find those taking a single argument and beginning with 'set'. It makes all these setting methods (whose argument is a simple scalar type or an object) available for you to invoke from the inspector panel. This makes it possible to set pretty much any attribute of any object, but you do need to have the GNUstep header files to hand, so you can tell what numeric values to enter to achieve a desired result. gorm-1.3.1/English.lproj/0000755000175000017500000000000014334122437014211 5ustar heronherongorm-1.3.1/English.lproj/GormObjectInspector.gorm/0000755000175000017500000000000014327003122021065 5ustar heronherongorm-1.3.1/English.lproj/GormObjectInspector.gorm/objects.gorm0000644000175000017500000001104614327003122023406 0ustar heronheronGNUstep archive000f4240:00000023:00000058:00000004:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBrowser1 NSControl% @$ @I @o @t  @o @tJ0 &0 1 NSScrollView%  @o @s  @o @sJ0 &0 1 NSClipView% @5 @ @l @r  @l @rJ0 1NSMatrix%  @l @Y  @l @YJ 0 &%01 NSActionCell1NSCell0&01NSFont%&&&&&&JJ&&&&&&&I% @l @Y 01NSColor0&% NSNamedColorSpace0&% System0& %  controlColor0& % NSBrowserCell01 NSBrowserCell0&&&&&&&JJ&&&&&&&%%0 &2doClick:2doDoubleClick:0 & 00&% controlBackgroundColor01 NSScroller% @ @ @2 @r  @2 @rJ0 &%0&&&&&&JJ&&&&&&&J 2 _doScroll:v24@0:8@16 I A A A A %0&&&&&&JJ&&&&&&&0 &% NSMatrix0!&%/% @Y0"% @ ? @o @2  @o @2J0# &%0$&&&&&&JJ&&&&&&&J2 scrollViaScroller:v24@0:8@16   @o @s0% &0&1NSBrowserColumn %!%%0'1 NSTextField% @$  @o @5  @o @5J"0( &%0)1NSTextFieldCell&&&&&&JJ &&&&&&&I0*0+&%System0,&%textBackgroundColor0-+0.& % textColor0/1NSButton% @$ @: @o @3  @o @3J"00 &%011 NSButtonCell02&%No Type&&&&&&JJ&&&&&&&I&&& &&0304&% windowBackgroundColor05&%Window06&%Inspector Window6 ? @@ @Ç @|I&   @ @p07 &08 &091NSMutableDictionary1 NSDictionary&0:&%Button/0;& % TextField'0<&% NSOwner0=&%GormObjectInspector0>& % InspectorWin0?& % GormNSBrowser0@ &  0A1 NSNibConnector>0B&% NSOwner0C ?0D ;0E :0F1!NSNibOutletConnectorB:0G&%label0H!B;0I&%value0J!B?0K&%browser0L1"NSNibControlConnector;B0M1#NSMutableString&%ok:0N!?B0O#&%delegate0P!B>0Q#&%window0R"?B0S&%update:0T!>;0U&%initialFirstResponder0V&gorm-1.3.1/English.lproj/GormObjectInspector.gorm/data.info0000644000175000017500000000027014327003122022652 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormObjectInspector.gorm/data.classes0000644000175000017500000000044414327003122023357 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "update:" ); Super = NSObject; }; GormObjectInspector = { Actions = ( "update:" ); Outlets = ( browser, label, value ); Super = IBInspector; }; }gorm-1.3.1/English.lproj/GormDocument.gorm/0000755000175000017500000000000014327003122017546 5ustar heronherongorm-1.3.1/English.lproj/GormDocument.gorm/objects.gorm0000644000175000017500000003315614327003122022075 0ustar heronheronGNUstep archive0000300c:0000002b:00000165:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSWindow1NSWindow1 NSResponder% ? @" @x0 @p&% @ @01 NSView% ? @" @x0 @p  @x0 @p&01 NSMutableArray1 NSArray&01 NSScrollView% @0 @$ @v @o`  @v @o`&0 &0 1 NSClipView% @5 @8 @u @l   @u @l &0 &0 1 NSTableView1 NSControl%  @u @d   @u @d &0 &%0 1NSCell0&01NSFont%&&&&&&&&&&&&&&0 &01 NSTableColumn0&%item BP A GP01NSTableHeaderCell1NSTextFieldCell1 NSActionCell0&%Item#0% &&&&&&&& &&&&&&%01NSColor0&%NSNamedColorSpace0&%System0&%controlShadowColor00&%windowFrameTextColor00&%nine&&&&&&&& &&&&&&%00&%System0 &%textBackgroundColor0!0"& % textColor0#0$& % description C A GP0%0&& % Description&&&&&&&& &&&&&&%0'&&&&&&&& &&&&&&%!0(0)& % gridColor0*0+&%controlBackgroundColor0,1NSTableHeaderView%  @u @6  @u @6&0- &0.1GSTableCornerView% @ @ @3 @6  @3 @6&0/ &%% A @ @*001 NSScroller% @ @8 @2 @l   @2 @l &01 &%02&&&&&&&&&&&&&&&03% @5 @ @u @6  @u @6&04 &,0506& % controlColor. % A A A A 030708&%windowBackgroundColor09&%Window0:&%Show Incompatibilities: ? @> @È @È%0;1NSImage0<&%NSApplicationIcon&   @ @0=0>&%GormDocumentWindow% ? @" @u @h&% @Y @p0? % ? @" @u @h  @u @h&0@ &0A1NSBox%  @u @h  @u @h&0B &0C % @ @ @u @g@  @u @g@&0D &0E0F&%Box&&&&&&&&&&&&&& @ @%%70G&%Window0H&%UNTITLEDH @ @@ @È @È%&  @ @0I1 GSNibItem0J&%GormFilePrefsManager  &0K% ? @" @u @h`&% @@ @`0L % ? @" @u @h`  @u @h`&0M &0N%  @u` @g  @u` @g&0O &0P % @ @ @t @f@  @t @f@&0Q &  0R1 NSTextField% @$ @^ @e @2  @e @2& 0S &%0T0U&%Gorm Build Identifier0V% A@&&&&&&&& &&&&&&%!0W% @f @^ @` @2  @` @2& 0X &%0Y0Z&&&&&&&&& &&&&&&%7!0[% @$ @] @s @  @s @& 0\ &0] % @ @ @r   @r &0^ &0_0`&%Box&&&&&&&&&&&&&& @ @%%0a% @$ @V @e @2  @e @2& 0b &%0c0d&%GNUstep Target VersionV&&&&&&&& &&&&&&%!0e1 NSPopUpButton1 NSButton% @f @V @` @4  @` @4& 0f &%0g1!NSPopUpButtonCell1"NSMenuItemCell1# NSButtonCell0h&&&&&&&&&0i1$NSMenu0j&0k &0l1% NSMenuItem0m&%GNUstep gui-0.10.30n&&&%%0o%0p&%GNUstep gui-0.9.50q&&&%%0r%0s&%GNUstep gui-0.9.30t&&&%%0u%0v&%Latest Versiont&&%0w0x& % common_Nibble%&&&&&&%0y&0z&&&& &&uiu%%%%%0{ % @R  @g @9  @g @9&"0| &%0}#0~&% Show Incompatibilities&&&&&&&&&&&&&&%0&0&&&& &&0% @$ @O @e @2  @e @2&,0 &%00& % Archive TypeV&&&&&&&& &&&&&&%!0% @f @O @` @4  @` @4&)0 &%0!0&&&&&&&&&0$0&0 &0%0& % Typed Stream0&&&%w%0%0& % Keyed Archive&&%%0%0&%Both0&&&%%&&&&&&%0&0&&&& &&%%%%%0% @$ @> @\ @2  @\ @2&$0 &%00& % Document TypeV&&&&&&&& &&&&&&%!0% @f @> @a` @2  @a` @2&!0 &%00&%System0% A@&&&&&&&& &&&&&&%!00&&&&&&&&&&&&&&& @ @%%70&%Window0&%Window0&%Window ? @> @È @È%;&   @ @0 &0 &01&NSMutableDictionary1' NSDictionary&30& % MenuItem1u0& % ClipView(0) 0& % MenuItem20& % MenuItem(12)0%0&%Remove0&&&%%0&%Box1N0& % MenuItem30&%Box2[0& % MenuItem40& % MenuItem5o0&%ViewP0&%MenuItemr0& % MenuItem(0)l0& % MenuItem(5)0%0& % Instantiate0&&&%%0& % TextField1W0& % Panel WindowK0& % TextField2a0&%GormNSPopUpButton10& % TextField30&%Button{0& % TextFieldR0&%View(0)?0±&%TableHeaderView(0),0ñ& % MenuItem(2)0ı%0ű& % Load Class0Ʊ&&&%%0DZ& % MenuItem(7)0ȱ%0ɱ& % Operations0ʱ&&&%0˱0̱&%common_3DArrowDown%0ͱ& % TableColumn1#0α& % TableColumn20ϱ0б&%column1 BP A GP0ѱ0ұ&% &&&&&&&& &&&&&&%0ӱ0Ա&%trois&&&&&&&& &&&&&&%!0ձ& % TableColumn30ֱ0ױ&%column2 BT A GP0ر0ٱ&% &&&&&&&& &&&&&&%0ڱ0۱&%three&&&&&&&& &&&&&&%!0ܱ& % MenuItem(11)0ݱ%0ޱ&%Create Class Files0߱&&&%%0& % TextField(3)0&%TableCornerView(0).0&%GormNSPopUpButtone0& % ScrollView0&%View(2)]0& % MenuItem(4)0%0& % Operations0&&&%ː%0& % MenuItem(9)0%0& % Instantiate0&&&%%0& % TableColumn0&%GormNSTableView JI0& % ClipView(1)30& % MenuItem(1)0%0&%Subclass&&%%0& % MenuItem(6)0%0&%Remove0&&&%%0&%Incompatibilities Window0&%Box(0)A0& % Window(0)=0& % Scroller(0)00& % MenuItem(10)0%0& % Load Class&&%%0& % TextField(2)0&%View(1)CP&%NSOwnerP& % GormDocumentP& % MenuItem(3)P%P&%Create Class Files&&%%P& % MenuItem(8)P%P&%Subclass&&%%P &DDP 1(NSNibConnectorP (P (P (P (ⰳP(P(P(P1)NSNibOutletConnectorJP&%gormAppVersionP)JP& % targetVersionP)JP&%showIncompatibilitiesP1*NSNibControlConnectorJP&%showIncompatibilities:P(P(P(P(P)JP& % archiveTypeP*JP &%selectArchiveType:P!*JP"&%selectTargetVersion:P#(P$(㐐P%(P&(퐐P'(͐P((ΐP)(ՐP*)JP+&%iwindowP,)JP-&%itableP.)JP/& % dataSourceP0)JP1&%delegateP2(P3)P4&%NSOwnerP51+NSMutableString&%filePrefsWindowP6)4P7+& % filePrefsViewP8)4JP9+&%filePrefsManagerP:(P;(P<(ÐP=(P>*4P?&%createSubclass:P@*4PA& % loadClass:PB*4PC&%createClassFiles:PD(吐PE(PF*4PG&%instantiateClass:PH(PI*4PJ&%remove:PK(PL(ళPM)JPN&%fileTypePO(ǐPP(PQ(鐐PR(PS(ܐPT(PU(4PV(PW(PX(PY)4PZ+&%_windowP[)4P\+& % selectionBoxP](P^(P_*P`& % _doScroll:Pa(Pb(°Pc(Pd(䰰Pe&&>gorm-1.3.1/English.lproj/GormDocument.gorm/data.info0000644000175000017500000000027014327003122021333 0ustar heronheronGNUstep archive0000300c:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormDocument.gorm/data.classes0000644000175000017500000000177414327003122022047 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "createClassFiles:", "createSubclass:", "instantiateClass:", "loadClass:", "remove:", "selectArchiveType:" ); Super = NSObject; }; GSNibContainer = { Actions = ( ); Outlets = ( ); Super = NSObject; }; GormDocument = { Actions = ( "createSubclass:", "loadClass:", "createClassFiles:", "instantiateClass:", "remove:" ); Outlets = ( selectionBox, filePrefsView, filePrefsManager, filePrefsWindow ); Super = NSDocument; }; GormDocumentWindow = { Actions = ( ); Outlets = ( ); Super = NSWindow; }; GormFilePrefsManager = { Actions = ( "showIncompatibilities:", "selectTargetVersion:", "selectArchiveType:" ); Outlets = ( showIncompatibilities, targetVersion, gormAppVersion, archiveType, iwindow, itable, fileType ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormShelfPref.gorm/0000755000175000017500000000000014327003122017646 5ustar heronherongorm-1.3.1/English.lproj/GormShelfPref.gorm/objects.gorm0000644000175000017500000001024714327003122022171 0ustar heronheronGNUstep archive00002af9:0000001e:00000078:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&%NSOwner0& % GormShelfPref0&%GSCustomClassMap0&0& % ImageView01 NSImageView1 NSControl1NSView1 NSResponder% B A B@ B@  B@ B@&0 1 NSMutableArray1 NSArray&%0 1 NSImageCell1 NSCell0 1NSFont% A@&&&&&&&&%%% ? ?0 &%Box0 1NSBox% B B CE B  CE B&0 &0% @ @ CA B  CA B&0 &01 NSTextField% B @ B@ A  B@ A&0 &%01NSTextFieldCell1 NSActionCell0& &&&&&&&&0%01NSColor0&%NSNamedColorSpace0&%System0&%textBackgroundColor00& % textColor0% B @ A A  A A&0 &0%  A A  A A&0 &00 &%Box &&&&&&&&0%0!0"&%System0#&%windowBackgroundColor0$0%&%System0&& % textColor %%0'% Bh @ A A  A A&0( &0)%  A A  A A&0* &0+0,&%Box &&&&&&&&0%0-0.&%System0/&%windowBackgroundColor0001&%System02& % textColor %%0304& % Title Width &&&&&&&&0%!0506&%System07& % textColor %%08&%Button091NSButton% B B C A  C A&0: &%0;1 NSButtonCell0<&%Use Default Settings &&&&&&&&%0=&0>&&&&0?& % TextField0@&% Box10A% A  C C  C C&0B &0C%  C C  C C&0D & 90E0F&%Box &&&&&&&&0%!0G0H&%System0I& % textColor %%0J&% Box20K&%MenuItem0L1 NSMenuItem0M&%Item 10N&&&%0O1NSImage0P& % common_Nibble%0Q& % GormNSWindow0R1NSWindow% ? A C C&% D D<@0S% ? A C C  C C&0T &A!0U&%Window0V&%Window0W&%Window C C F@ F@%0X0Y&%NSApplicationIcon0Z&% Box3'0[ &0\1NSNibConnectorQ0]&%NSOwner0^@0_K0` 0a0b?0c80dJ0eZ0f1NSNibOutletConnector]Q0g&%win0h]@0i&%prefbox0j] 0k&%iconbox0l]0m&%imView0n]Z0o& % leftResBox0p]J0q& % rightResBox0r]?0s& % nameField0t]80u&%setButt0v1NSNibControlConnector8]0w&%setDefaultWidth:0x1 GSMutableSet1 NSMutableSet1NSSet&Rgorm-1.3.1/English.lproj/GormShelfPref.gorm/data.info0000644000175000017500000000027014327003122021433 0ustar heronheronGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormShelfPref.gorm/data.classes0000644000175000017500000000401514327003122022136 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; ArrResizer = { Actions = ( "initForController:" ); Outlets = ( ); Super = NSView; }; FirstResponder = { Actions = ( "alignCenter:", "alignLeft:", "arrangeInFront:", "capitalizeWord:", "changeFont:", "close:", "copy:", "copyRuler:", "delete:", "deleteForward:", "deleteToBeginningOfParagraph:", "deleteToEndOfParagraph:", "deleteWordBackward:", "deminiaturize:", "fax:", "hideOtherApplications:", "loosenKerning:", "lowercaseWord:", "miniaturize:", "moveBackward:", "moveDown:", "moveForward:", "moveLeft:", "moveToBeginningOfDocument:", "moveToBeginningOfParagraph:", "moveToEndOfLine:", "moveUp:", "moveWordBackward:", "moveWordForward:", "newDocument:", "openDocument:", "orderFront:", "orderFrontDataLinkPanel:", "orderFrontFontPanel:", "orderFrontStandardAboutPanel:", "orderOut:", "pageUp:", "pasteAsPlainText:", "pasteFont:", "performClose:", "performZoom:", "raiseBaseline:", "runPageLayout:", "saveAllDocuments:", "saveDocumentAs:", "scrollLineDown:", "scrollPageDown:", "scrollViaScroller:", "selectLine:", "selectParagraph:", "selectToMark:", "selectWord:", "showGuessPanel:", "showWindow:", "subscript:", "swapWithMark:", "takeFloatValueFrom:", "takeObjectValueFrom:", "terminate:", "toggle:", "toggleRuler:", "toggleTraditionalCharacterShape:", "transposeWords:", "turnOffLigatures:", "unhide:", "unscript:", "useAllLigatures:", "useStandardLigatures:", "zoom:" ); Super = NSObject; }; GormShelfPref = { Actions = ( "setDefaultWidth:" ); Outlets = ( win, prefbox, iconbox, imView, leftResBox, rightResBox, nameField, setButt ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormNSSplitViewInspector.gorm/0000755000175000017500000000000014327003122022046 5ustar heronherongorm-1.3.1/English.lproj/GormNSSplitViewInspector.gorm/objects.gorm0000644000175000017500000001267114327003122024374 0ustar heronheronGNUstep archive000f4240:00000022:0000006f:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @p @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @R @`@ @_@ @T  @_@ @TJ%0 &0 % @ @ @[ @L  @[ @LJ0 &0 1NSMatrix1 NSControl% @2 @ @T @H  @T @HJ0 &I0 1 NSActionCell1NSCell0&01NSFont% A@JJJJJJJJJJJJJJJI% @T @8 01NSColor0&% NSNamedColorSpace0&% System0&% controlBackgroundColor0& % NSButtonCell01 NSButtonCell0&%Radio01NSImage01NSMutableString&%GSRadio0%JJJJJJJJJJJJJJJI00&%GSRadioSelectedJJJ JJ%%0 &00& % Horizontal0% A@JJJJJJJJJJJJJJJIJJJ JJ0 0!&%VerticalJJJJJJJJJJJJJJJIJJJ JJ2 ok:v24@0:8@16 0"1NSTextFieldCell0#& % OrientationJJJJJJJJ JJJJJJJI0$0%&% windowBackgroundColor0&0'&%System0(& % textColor @ @%%0) % @R @k@ @_@ @I  @_@ @IJ 0* % @ @ @[ @8  @[ @8J)0+ &0,1 NSPopUpButton1NSButton% ? @[ @6  @[ @6J0- &I0.1NSPopUpButtonCell1NSMenuItemCellJJJJJJJJ0/1NSMenu00 &011 NSMenuItem02&%ThickJJI0304& %  common_NibbleI0506&%ThinJJII0708&%SplitterJJIIJJJJJJJIJJJ > =JJ1/1IIIII09 &*0:0;&%Divider;JJJJJJJJJJJJJJJ @ @%%$0<&%Window0=&%SplitView InspectorPanel= @3 @Ç @{I0>0?&% NSApplicationIcon&   @@ @`0@ &0A &0B1NSMutableDictionary1 NSDictionary& 0C&%PopUpButtonCell(0).0D&%Box0E&%View(0)*0F&%PopUpButton(0),0G& % MenuItem(2)70H& % MenuItem(0)10I& % MenuItem(1)50J&% NSOwner0K&%GormNSSplitViewInspector0L&%Matrix 0M&%Box(0))0N&%SplitViewInspector0O &0P1 NSNibConnectorN0Q&% NSOwner0R D0S L0T1!NSNibOutletConnectorQL0U& % orientation0V!QN0W&%window0X1"NSNibControlConnectorLQ0Y&%ok:0Z!NL0[&%initialFirstResponder0\ M0] EM0^ FE0_ H0`"HC0a&%_popUpItemAction:0b I0c"IC0d&%_popUpItemAction:0e G0f"GC0g&%_popUpItemAction:0h CF0i"FQ0j&%ok:0k!QF0l&%divider0m&gorm-1.3.1/English.lproj/GormNSSplitViewInspector.gorm/data.info0000644000175000017500000000027014327003122023633 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormNSSplitViewInspector.gorm/data.classes0000644000175000017500000000044114327003122024335 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:" ); Super = NSObject; }; GormNSSplitViewInspector = { Actions = ( ); Outlets = ( orientation, divider ); Super = IBInspector; }; }gorm-1.3.1/English.lproj/GormClassPanel.gorm/0000755000175000017500000000000014327003122020015 5ustar heronherongorm-1.3.1/English.lproj/GormClassPanel.gorm/objects.gorm0000644000175000017500000001221614327003122022336 0ustar heronheronGNUstep archive000f4240:00000024:00000062:00000004:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ? @" @n @qJ I @~ @`01 NSView% ? @" @n @q  @n @qJ01 NSMutableArray1 NSArray&01 NSBrowser1 NSControl% @$ @O @l @j   @l @j J0 &0 1 NSScroller% @ ? @k @2  @k @2J0 &%0 1NSCell0 &0 1NSFont%&&&&&&JJ&&&&&&&J2 scrollViaScroller:v24@0:8@1601 NSScrollView% @7 @l @d`  @l @d`J0 &01 NSClipView% @5 @ @i@ @c  @i@ @cJ01NSMatrix%  @i@ @Y  @i@ @YJ0 &%01 NSActionCell0& &&&&&&JJ&&&&&&&I% @i@ @Y 01NSColor0&% NSNamedColorSpace0&% System0& %  controlColor0& % NSBrowserCell01 NSBrowserCell &&&&&&JJ&&&&&&&%%0 &2doClick:2doDoubleClick:0 &00&% controlBackgroundColor0% @ @ @2 @c  @2 @cJ0 &%0! &&&&&&JJ&&&&&&&J2 _doScroll:v24@0:8@16I A A A A %0" &&&&&&JJ&&&&&&&0#&% NSMatrix0$&%/% @Y  @ ? @k @2 @l @d`0% &0&1NSBrowserColumn%$%%0'1NSButton% @f` @  @L @8  @L @8J0( &%0)1 NSButtonCell0*&%OK &&&&&&JJ&&&&&&&I &&& &&0+1NSForm% @ @B @l @4  @l @4J0, &%0-1 NSFormCell &&&&&&JJ&&&&&&&I 0.0/&%Field: &&&&&&JJ&&&&&&&% @l @4 @00& % NSFormCell%%01 &02 &&&&&&JJ&&&&&&&I B0304& % Class Name: &&&&&&JJ&&&&&&&20506&% windowBackgroundColor07&%Window08&%Select A Class8 @m @k@ @Ç @xI091NSImage0:&% NSApplicationIcon&   @ @p0; &0< &0=1NSMutableDictionary1 NSDictionary&0>&%Button'0?& % SelectPanel0@&% NSOwner0A&%GormClassPanelController0B&%Form+0C& % GormNSBrowser0D &0E1!NSNibConnector?0F&% NSOwner0G!C0H!>0I1"NSNibOutletConnectorFC0J& % classBrowser0K"F?0L&%panel0M"F>0N&%okButton0O1#NSNibControlConnector>F0P& % okButton:0Q"CF0R1$NSMutableString&%delegate0S!B0T#CF0U&%browserAction:0V"FB0W& % classNameForm0X"B>0Y$& % nextKeyView0Z"CBY0[">CY0\"?C0]$&%initialFirstResponder0^&gorm-1.3.1/English.lproj/GormClassPanel.gorm/data.info0000644000175000017500000000027014327003122021602 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormClassPanel.gorm/data.classes0000644000175000017500000000056414327003122022312 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "okButton:", "browserAction:" ); Super = NSObject; }; GormClassPanelController = { Actions = ( "okButton:", "browserAction:" ); Outlets = ( okButton, classBrowser, panel, classNameForm ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormPrefGeneral.gorm/0000755000175000017500000000000014327003122020162 5ustar heronherongorm-1.3.1/English.lproj/GormPrefGeneral.gorm/objects.gorm0000644000175000017500000001056614327003122022511 0ustar heronheronGNUstep archive000f4240:0000001e:00000064:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ? @" @u @o@J I @l @01 NSView% ? @" @u @o@  @u @o@J01 NSMutableArray1 NSArray&01NSBox% @P @b @k @T  @k @TJ0 &0 % @ @ @i` @L  @i` @LJ0 &0 1NSButton1 NSControl% @C @6 @a @1  @a @1J0 &%0 1 NSButtonCell1 NSActionCell1NSCell0&%Create backup file01NSImage01NSMutableString&%GSSwitch01NSFont% A@&&&&&&JJ&&&&&&I0&0&00&%GSSwitchSelected&&& &&01NSTextFieldCell0& % Save Option&&&&&&JJ&&&&&&I01NSColor0&% NSNamedColorSpace0&% System0&% windowBackgroundColor00&%System0& % textColor @ @%%0% @P @I @k @V@  @k @V@J0 &0! % @ @ @i` @P  @i` @PJ0" &0#1NSMatrix% @I @* @Y @D  @Y @DJ0$ &%0%0&&0'%&&&&&&JJ&&&&&&I% @Y @4 0(0)&% controlBackgroundColor(0*& % NSButtonCell0+0,&%Radio0-0.&%GSRadio'&&&&&&JJ&&&&&&I0/&00&0102&%GSRadioSelected&&& &&%%03 &0405& % Outline View-'&&&&&&JJ&&&&&&I06&07&1&&& &&0809& % Browser View-'&&&&&&JJ&&&&&&I0:&0;&1&&& &&40<0=&%Default Classes Interface'=&&&&&&JJ&&&&&& @ @%%0>&%Window0?&%General? " @Ç @xI0@0A&% NSApplicationIcon&   @ @0B &0C &0D1NSMutableDictionary1 NSDictionary&0E&%Button2 0F&%Box20G&% NSOwner0H&%GormGeneralPref0I& % GormNSPanel0J&%Matrix#0K&%Box10L &  0M1NSNibConnectorI0N&% NSOwner0OK0PE0Q1NSNibOutletConnectorNI0R&%window0S1NSNibControlConnectorEN0T& % backupAction:0UNE0V& % backupButton0WF0XJ0YJN0Z&%classesAction:0[NJ0\&%interfaceMatrix0]EJ0^& % nextKeyView0_JE^0`IE0a&%initialFirstResponder0b&gorm-1.3.1/English.lproj/GormPrefGeneral.gorm/data.info0000644000175000017500000000027014327003122021747 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormPrefGeneral.gorm/data.classes0000644000175000017500000000113114327003122022446 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "archiveAction:", "classesAction:", "consistencyAction:", "orderFrontFontPanel:" ); Super = NSObject; }; GormGeneralPref = { Actions = ( "palettesAction:", "inspectorAction:", "backupAction:", "archiveAction:", "classesAction:", "consistencyAction:" ); Outlets = ( window, palettesButton, inspectorButton, backupButton, archiveMatrix, interfaceMatrix, checkConsistency ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormPreferences.gorm/0000755000175000017500000000000014327003122020231 5ustar heronherongorm-1.3.1/English.lproj/GormPreferences.gorm/objects.gorm0000644000175000017500000003440614327003122022557 0ustar heronheronGNUstep archive000f4240:0000002c:0000011e:00000006:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ? @" @u @rJI @p @01 NSView% ? @" @u @r  @u @rJ01 NSMutableArray1 NSArray&01NSBox% @n @u @H  @u @HJ0 &0 % @ @ @u@ @C  @u@ @CJ0 &0 1 NSPopUpButton1NSButton1 NSControl% @\ @, @] @4  @] @4J0 &%0 1NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell1 NSActionCell1NSCell0&%Button01NSFont% A@&&&&&&JJ01NSMenu0&0 &01 NSMenuItem0&%General0&JJI01NSImage @& @ 01NSColor0&% NSCalibratedWhiteColorSpace 0 &01NSBitmapImageRep1 NSImageRep0&% NSDeviceRGBColorSpace @& @ II I01NSData&II*t8 O Иd "Q8&)Fb@8*@bѩ$%R\K/Idk S|M&E!FR(yTi9JT*:v  lRI00&%HeadersJJII00 &%Shelf0!&JJII0"0#&%Palettes0$&JJII0%0&& % Guidelines0'&JJII0(0)&%Plugins0*&JJII&&&&&&I0+&0,&&&& &&%%%%%0-% $  @u @  @u @J0. &0/ % @ @ @u   @u J00 &0102&%Box03%&&&&&&JJ&&&&&& @ @%%041NSTextFieldCell05&%Box&&&&&&JJ &&&&&&I0607&% NSNamedColorSpace08&% System09&% windowBackgroundColor0:70;&%System0<& % textColor @ @%%0=% ? @u @m  @u @mJ0> &0? % @ @ @u@ @l`  @u@ @l`J0@ &0A0B&%Box&&&&&&JJ &&&&&&I6: @ @%%60C&%Window0D& % PreferencesD @ @Ç @|I0E0F&% NSApplicationIcon&   @ @0G &0H &0I1 NSMutableDictionary1! NSDictionary&0J&%Box20K% @G @R @o @S  @o @SJ0L &0M % @ @ @m @I  @m @IJ0N &0O% @$ @8 @k` @0  @k` @0J0P &%0Q0R&%Create Backup file when saving0S0T1"NSMutableString&%GSSwitch&&&&&&JJ&&&&&&I0U&0V&0W0X"&%GSSwitchSelected&&& &&0Y0Z& % Save Options&&&&&&JJ &&&&&&I6: @ @%%0[&%Button80\% @W @ @L @8  @L @8J0] &%0^0_&%Add&&&&&&JJ&&&&&&I0`&0a&&&& &&0b&%Button10c% @9 @B @L @0  @L @0J0d &%0e0f&%SwitchS&&&&&&JJ&&&&&&I0g&0h&W&&& &&0i& % MenuItem5"0j&%Box4=0k&%Button30l% @G @. @L @8  @L @8J0m &%0n0o&%Add&&&&&&JJ&&&&&&I2 addHeader:v24@0:8@160p&0q&&&& &&0r&%Button50s% @F @ @]@ @0  @]@ @0J0t &%0u0v&%Show InspectorS&&&&&&JJ&&&&&&I0w&0x&W&&& &&0y&% NSOwner0z&%GormPrefController0{& % MenuItem20|&%MenuItem0}&%Box10~% @Q @c @h` @S@  @h` @S@J0 &0 % @ @ @f @J  @f @JJ0 &0% @F @9 @]@ @0  @]@ @0J0 &%00& % Show PalettesS&&&&&&JJ&&&&&&I0&0&W&&& &&s00&%Startup Options&&&&&&JJ &&&&&&I6: @ @%%0&%Button70% @$ @i @a @0  @a @0J0 &%00&%Preload HeadersS&&&&&&JJ&&&&&&I0&0&W&&& &&0& % MenuItem400&%Item0&JJI00"&%GSMenuSelected00"& % GSMenuMixedI0& % MenuItem(0)(0&%Box30% @$ @$ @t @p   @t @p J0 &0 % @ @ @s @m   @s @m J0 &01# NSBrowser% @D @A @n @c  @n @cJ0 &01$ NSScroller% @ ? @m @2  @m @2J0 &%00&&&&&&&JJ&&&&&&J2 scrollViaScroller:v24@0:8@1601% NSScrollView% @7 @n @\@  @n @\@J0 &01& NSClipView% @5 @ @k @[@  @k @[@J01'NSMatrix%  @k @Y  @k @YJ0 &%00&&&&&&&JJ&&&&&&I% @k @Y 0780&% controlBackgroundColor0& % NSBrowserCell01( NSBrowserCell&&&&&&JJ&&&&&&%%0 &2 doClick:v24@0:8@162 doDoubleClick:v24@0:8@160 &0$% @ @ @2 @[@  @2 @[@J0 &%0&&&&&&JJ&&&&&&J2 _doScroll:v24@0:8@16I A A A A %0(&&&&&&JJ&&&&&&0&% NSMatrix0&%/% @Y @ ? @m @2 @n @\@0 &01)NSBrowserColumn%%%\0% @d` @ @L @8  @L @8J0 &%00&%Remove&&&&&&JJ&&&&&&I0&0&&&& &&00&%Preload Headers&&&&&&JJ &&&&&&I6: @ @%%0±&%Button90ñ&%GormNSBrowser10ı&%Button20ű& % MenuItem6%0Ʊ&%Box5-0DZ&%Button0ȱ% @$ @j @^ @1  @^ @1J0ɱ &%0ʱ0˱&%Preload HeadersS&&&&&&JJ&&&&&&I2 setGeneralPreferences:v12@0:4@80̱&0ͱ&W&&& &&0α&%Button40ϱ% @` @. @L @8  @L @8J0б &%0ѱ0ұ&%Remove&&&&&&JJ&&&&&&I0ӱ&0Ա&&&& &&0ձ& % MenuItem10ֱ& % GormNSBrowser0ױ#% @F @m @b  @m @bJ-0ر &0ٱ$% @ ? @l @2  @l @2J0ڱ &%0۱0ܱ&&&&&&&JJ&&&&&&Jײ0ݱ%% @7 @m @Z@  @m @Z@J0ޱ &0߱&% @5 @ @j @Y@  @j @Y@J0'%  @j @Y  @j @YJ0 &%00&&&&&&&JJ&&&&&&I% @j @Y 0& % NSBrowserCell0(ܐ&&&&&&JJ&&&&&&%%0 &ײ0 &బ0$% @ @ @2 @Y@  @2 @Y@J0 &%0ܐ&&&&&&JJ&&&&&&JݲI A A A A %0(ܐ&&&&&&JJ&&&&&&尶0&%/% @Y @ ? @l @2 @m @Z@0 &0)ݰ%%%0&%Box0&%Button6O0&%Panel0&%GormNSPopUpButton 0 &01*NSNibConnectorǐ0*֐0*k0*ΐ0*b0*}0*Đ0*r0*J0*0*0*P*ÐP*[P*P*P*jP*P*|P*ՐP*{P *ƐP *iP *ŐP 1+NSNibOutletConnectorP "&%initialFirstResponderP1,NSNibControlConnectorP&% NSOwnerP"& % popupAction:P+jP"&%prefBoxP+P"&%popupP+P&%panelP*P &gorm-1.3.1/English.lproj/GormPreferences.gorm/data.info0000644000175000017500000000027014327003122022016 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormPreferences.gorm/data.classes0000644000175000017500000000032414327003122022520 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormPrefController = { Actions = ( "popupAction:" ); Outlets = ( popup, prefBox, panel ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormFontView.gorm/0000755000175000017500000000000014327003122017531 5ustar heronherongorm-1.3.1/English.lproj/GormFontView.gorm/objects.gorm0000644000175000017500000001264514327003122022060 0ustar heronheronGNUstep archive00002f44:00000026:00000097:00000000:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSWindow1 NSWindow1 NSResponder% ? @" @r @d`&% @o @01 NSView% ? @" @r @d`  @r @d`&01 NSMutableArray1 NSArray&01NSBox% @$ @O @q @S  @q @S&0 &0 % @ @ @p @Q@  @p @Q@&0 &0 1 NSPopUpButton1NSButton1 NSControl% @H @5 @f @4  @f @4&0 &%0 1NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell1 NSActionCell1NSCell0&%Button01NSFont% A@&&&&&&&&01NSMenu0&0 &  01 NSMenuItem0&%As Selected Above0&&&%01NSImage @& @ 01NSColor0&%NSCalibratedWhiteColorSpace 0 &01NSBitmapImageRep1 NSImageRep0&%NSDeviceRGBColorSpace @& @ %% %01NSData&II*t8 O Иd "Q8&)Fb@8*@bѩ$%R\K/Idk S|M&E!FR(yTi9JT*:v  lR%00&%Bold System Font0&&&%%0 0!& % System Font&&%%0"0#&%User Fixed Font0$&&&%%0%0&& % User Font&&%%0'0(&%Title Bar Font0)&&&%%0*0+& % Menu Font0,&&&%%0-0.& % Message Font0/&&&%%0001& % Palette Font02&&&%%0304&%Tool Tips Font05&&&%%0607&%Control Content Font08&&&%%090:&%Role Label Font0;&&&%%&&&&&&%0<&0=&&&& &&%%%%%0>1 NSTextField% @H @I @f @2  @f @2&0? &%0@1 NSTextFieldCell0A&%Use Family and Typeface0B% A@&&&&&&&& &&&&&&%0C0D&%NSNamedColorSpace0E&%System0F&%textBackgroundColor0GDE0H& % textColor0I% @H  @f @0  @f @0&0J &%0K0L&%Encode default size0M0N1!NSMutableString&%common_SwitchOff&&&&&&&&&&&&&&%0O&0P&0Q0R!&%common_SwitchOn&&& &&0S 0T&%Box0U% A@&&&&&&&& &&&&&&%0VD0W&%System0X&%windowBackgroundColorG @ @%%V0Y&%Window0Z& % FontViewPanelZ ? @> @È @È%0[0\&%NSApplicationIcon&   @ @0] &0^ &0_1"NSMutableDictionary1# NSDictionary&0`&%NSOwner0a&%GormFontViewController0b& % MenuItem1 0c& % TextField>0d& % MenuItem2%0e& % MenuItem3"0f&%ButtonI0g& % MenuItem4'0h& % MenuItem5*0i& % MenuItem6-0j& % MenuItem700k& % MenuItem1090l& % MenuItem830m&%MenuItem0n& % MenuItem110o& % MenuItem960p&%View(0) 0q&%Box0r&%GormNSPopUpButton 0s& % FontViewPanel0t &0u1$NSNibConnectors0v&%NSOwner0w$q0x$rp0y$m0z$b0{$d0|$e0}$g0~$h0$i0$j0$l0$o0$k0$n01%NSNibOutletConnectorvq0&%view0%vr0& % fontSelector01&NSNibControlConnectorrv0& % selectFont:0$cp0$fp0%vf0& % encodeButton0%rf0!& % nextKeyView0%fr0%sr0!&%initialFirstResponder0$pq0"&gorm-1.3.1/English.lproj/GormFontView.gorm/data.info0000644000175000017500000000027014327003122021316 0ustar heronheronGNUstep archive00002f44:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormFontView.gorm/data.classes0000644000175000017500000000052414327003122022022 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:", "selectFont:" ); Super = NSObject; }; GormFontViewController = { Actions = ( "selectFont:" ); Outlets = ( view, fontSelector, encodeButton ); Super = NSObject; }; }gorm-1.3.1/English.lproj/Gorm.rtfd/0000755000175000017500000000000014327003122016042 5ustar heronherongorm-1.3.1/English.lproj/Gorm.rtfd/TXT.rtf0000644000175000017500000013524414327003122017247 0ustar heronheron{\rtf1\ansi\ansicpg1252\cocoartf102{\fonttbl\f0\fnil DejaVu Sans;} \pard\ql\f0\fs48\b * Gorm: The GNUstep Graphical Object Relationship Modeler\fs24\b0 \par \par \par This file documents the features and implementation of the Gorm\par application.\par \par Copyright (C) 1999,2000,2009,2010 Free Software Foundation, Inc.\par \par Permission is granted to make and distribute verbatim copies of\par this manual provided the copyright notice and this permission notice\par are preserved on all copies.\par \par Permission is granted to process this file through @TeX\{\} and print the\par results, provided the printed document carries copying permission\par notice identical to this one except for the removal of this paragraph\par (this paragraph not being relevant to the printed manual).\par \par Permission is granted to copy and distribute modified versions of this\par manual under the conditions for verbatim copying, provided also that the\par section entitled \lquote \lquote GNU Library General Public License\rquote \rquote is included exactly as\par in the original, and provided that the entire resulting derived work is\par distributed under the terms of a permission notice identical to this one.\par \par Permission is granted to copy and distribute translations of this manual\par into another language, under the above conditions for modified versions,\par except that the section entitled \lquote \lquote GNU Library General Public License\rquote \rquote and\par this permission notice may be included in translations approved by the\par Free Software Foundation instead of in the original English.\par \par \par \fs48\b Guide to the\par Gorm application\par \par \fs24\b0 \par Gregory John Casamento \par Richard Frith-Macdonald \par \par Copyright @copyright\{\} 1999,2000 Free Software Foundation, Inc.\par \par \par Permission is granted to make and distribute verbatim copies of\par this manual provided the copyright notice and this permission notice\par are preserved on all copies.\par \par Permission is granted to copy and distribute modified versions of this\par manual under the conditions for verbatim copying, provided also that the\par section entitled \lquote \lquote GNU Library General Public License\rquote \rquote is included exactly as\par in the original, and provided that the entire resulting derived work is\par distributed under the terms of a permission notice identical to this one.\par \par Permission is granted to copy and distribute translations of this manual\par into another language, under the above conditions for modified versions,\par except that the section entitled \lquote \lquote GNU Library General Public License\rquote \rquote may be\par included in a translation approved by the author instead of in the original\par English.\par \par @strong\{Note: You will be performing a valuable service if you report any bugs you encounter.\}\par @strong\{The full gorm manual is available at http://wiki.gnustep.org/index.php/Gorm_Manual.\}\par titlepage\par \par @contents\par \par Top, Copying, , \par \par @menu\par * Copying::\tab GNU Public License says how you can copy\par and share Gorm.\par * Contributors:: People who have contributed to Gorm.\par * Installation:: How to build and install Gorm.\par * News::\tab The latest changes to Gorm.\par \par * Overview:: Gorm in brief.\par * Usage::\tab How Gorm is used.\par * Implementation:: Implementation notes.\par \par * Concept Index::\par menu\par \par Copying, Contributors, Top, Top\par @unnumbered Copying\par \par See the file \{COPYING\}.\par \par Contributors, Installation, Copying, Top\par @unnumbered Contributors to Gorm\par \par Gregory John Casamento Is the\par current maintaner of Gorm. Has implemented lots of new\par features and rewritten large portions of the existing code.\par \par Richard Frith-Macdonald wrote\par the original version of Gorm as part of the GNUstep project.\par \par Pierre-Yves Rivaille Is also a \par major contributor to the Gorm application.\par itemize\par \par Installation, News, Contributors, Top\par Installing Gorm\par \par @include install.texi\par \par News, Overview, Installation, Top\par News\par \par @include news.texi\par \par To Do\par \par ize @bullet\par \par Debug and stabilize existing code.\par \par itemize\par \par Overview, Usage, News, Top\par Overview\par \par Gorm is an application for creating the user interface (and possibly entire\par applications) for a GNUstep application. Initially a close clone of the old\par NeXTstep 3.3 Interface Builder application, I expect that Gorm will mutate\par beyond the capabilities of that app.\par \par GNUstep is an object-oriented programming framework and a collection of tools\par developed for or using the GNUstep libraries.\par \par You can find out more about GNUstep at\par @url\{http://www.gnustep.org\}@*\par \par The basic idea behind Gorm is simple - it provides a graphical user interface\par with which to connect together objects from the GNUstep libraries (as well as\par custom-written objects) and set their attributes in an easy to use manner.\par \par The collection of objects is then saved as a document which can either be\par re-loaded into Gorm for further editing, or can be loaded into a running\par GNUstep application in order to provide that application with a user\par interface or some subsystem.\par \par What You Must Know To Understand This Manual\par \par This manual assumes a working knowledge of Objective-C and C. These are \par necessary prerequisites to understanding some of the technical details and \par examples given here.\par \par Major features\par features\par \par ize @bullet\par Drag-and-drop creation of GUI elements from palettes.\par Run-time loading of additional palettes that may be written using an API\par very similar to that of Apple/NeXTs interface Builder palette API.\par Direct on-screen manipulation of GUI elements\par Manipulation and examination of objects via inspectors.\par Drag-and-drop creation of connections between objects.\par Interactive test mode for interfaces/object-networks under development.\par Saving data in a format loadable by GNUstep applications.\par itemize\par \par About this Manual\par \par This manual is ment to cover basic operation of the Gorm application. It is not\par meant to be a complete tutorial on GNUstep programming. \par \par Usage, Implementation, Overview, Top\par Usage\par \par Here is a description of the menu structure and what each menu does -\par \par ize @bullet\par Info @*\par The \{Info\} menu item produces a submenu ...\par ize @bullet\par Info Panel @*\par A panel giving very limited information about Gorm\par Preferences @*\par A panel allowing you to set preferences about how Gorm operates\par Help (not implemented) @*\par A panel providing general help on using Gorm\par itemize\par \par Document @*\par The \{Document\} menu item produces a submenu ...\par ize @bullet\par Open @*\par This produces an open panel that lets you open a Gorm document.\par You use this if you want to use Gorm to edit an exisiting document.\par New Application @*\par This creates a new application document within Gorm, you may then use the\par Palettes panel to drag new objects into the document.\par New Module @*\par Contains a submenu, which also contains:\par \par ize @bullet\par New Empty @* \par produces an empty document with only NSFirst and NSOwner.\par New Inspector @* \par produces a document with NSOwner, NSFirst and a window which is the correct size for an Inspector.\par New Palette @* \par produces a document which is like the one by \{New Inspector\}, but it\rquote s window is the right size for a Palette. \par itemize\par \par Save @*\par This saves the current document\par Save As @*\par This saves the current document to a new file and changes the document name\par to match the new name on disk.\par Save All @*\par This saves all documents currently being edited by Gorm.\par Revert To Saved @*\par This removes all changes made to the document sunce the last save, or since\par the document was opened.\par Test Interface @*\par This provides interactive testing of the active document. To end testing, you\par need to select the \{quit\} menu item.\par Translate @*\par Contains a submenu, which also contains:\par \par ize @bullet\par Load Strings @* \par Load a string file. This file contains the strings to translate. \par Export Strings @*\par Export a strings file. TODO\par itemize\par \par \par Miniaturize @*\par This miniaturises the active document (or whatever panel is currently key).\par Close @*\par This closes the currenly active document.\par Debug @*\par Prints some useful internal information.\par Load Sound @*\par Loads a sound into the .gorm file.\par Image @*\par Loads an image into the .gorm file.\par itemize\par \par Edit @*\par In addition to the usual Cut, Copy, Paste, Delete Select All, this menu also contains:\par \par Set Name @*\par This allows the user to set a name for a given object in the Objects view in the main document window.\par \par ize @bullet\par Group @*\par Which produces a submenu\par ize @bullet\par In Splitview @*\par Groups views into an NSSplitView. Gorm does this based on the relative positions of the views being grouped. It determines the orientation and the order of th views and then groups them either vertically or horizontally in the order they appear on the screen.\par In Box @*\par Simply groups all of the views into one NSBox.\par In ScrollView @*\par Simply groups all of the views into one NSScrollView.\par Ungroup @*\par Ungroups the contained views.\par itemize\par \par Disable Guideline @*\par This item toggles between Enable Guideline and Disable Guideline. This allows the user to turn on or off the guides which appear when placing views in a window or view in Gorm.\par \par Font Panel\par The Font Panel allow you to modify fonts of your views.\par \par itemize\par \par Classes @*\par Contains menus for working with classes.\par ize @bullet\par Create Subclass @*\par Creates a subclass of the currently selected class in the current document classes view.\par Load Class @*\par Loads a class from a .h file into the current document.\par Create Class Files @*\par Generates a .h and .m file from the currently selected class in the current document classes view.\par Instantiate @*\par Creates an instance of the selected class in the current document classes view.\par Add Outlet/Action @*\par Adds an outlet or an action depending on what is selected in the document classes view. If the outlet icon is selected, it will add an outlet, if it the action icon is selected it will add an action.\par Remove @*\par Removes the currently selected outlet, action or class.\par itemize\par \par Tools @*\par Contains the inspector and the palette menus\par ize @bullet\par Inspector @*\par Shows the inspector\par Palette @*\par Shows the palette\par Load Palette @*\par Opens a file panel and allows the user to load a palette into Gorm.\par itemize\par \par Layout @*\par Contains a menu for working with alignement and layout of you views\par ize @bullet\par Alignement\par Wich produces a submenu \par ize @bullet\par Center Vertically @*\par Center Vertically two or more views. TODO :explain what is the reference view\par Center Horizontally @*\par Center Horizontally two or more views. TODO :explain what is the reference view\par Left Edges @*\par TODO\par Right Edges @*\par TODO\par Top Edges @*\par TODO\par Bottom Edges @* \par TODO\par itemize\par \par Bring to Front @*\par Bring to front the selected view\par Send to Back @*\par Send to back the selected view\par \par itemize\par \par Windows @*\par Shows currently open windows.\par \par Services @*\par Shows currently available services.\par \par Hide @*\par Hides the application.\par \par Quit @*\par Quits the application.\par \par itemize\par \par Implementation, Concept Index, Usage, Top\par Implementation\par \par @menu\par * Preferences::\par menu\par \par Notes on implementation\par \par The IB documentation on how object selection is managed and how editors and\par inspectors are used is unclear ... so I\rquote ve gone my own way.\par \par 1. When a document is loaded, the document object creates an editor attached\par to each top-level object in the user interface (NSMenu and NSWindow objects).\par \par These editors must be aware of their edited objects being clicked upon, and\par clicking on one of these should cause the corresponding editor to become the\par active editor.\par \par The active editor is responsible for handling selection of the edited object\par (and any objects below it in the object hierarchy). Upon change of selection,\par the editor is responsible for sending an IBSelectionChangedNotification with\par the selection owner (normally the editor itsself) as the notification owner.\par \par The main application watches for these notifications in order to keep track\par of who has the selection.\par \par Connections\par \par The connection API is the same as that for IB, but with the extension that the\par document object must implement [-windowAndRect:forObject:] to return the\par window in which the object is being displayed, and the rectangle enclosing\par the object (in window base coordinates).\par \par This information is needed by Gorm so that it can mark the connection.\par \par The editors mananging the drag-and-drop operation for a connection must call\par \{[NSApp -displayConnectionBetween:and:]\} to tell Gorm to update its display. This method sets the values currently returned by \{[NSApp -connectSource]\} and \{[NSApp -connectDestination]\}.\par \par Preferences, , Implementation, Implementation\par Preferences\par preferences\par defaults\par \par The preferences panel contains a number of useful customizable options which can be used to modify the behavior of Gorm.\par \par Some of these defaults can be safely modified from the command line by the user.\par ize @bullet\par \par PreloadHeaders @*\par The user can define a set of headers to load when Gorm starts creation of a new .gorm file. \par This is useful when the user is building a framework or a set of interfaces for a large \par application.\par \par ShowInspectors @*\par Controls whether the inspector shows when Gorm is started.\par \par ShowPalettes @*\par Controls whether the palettes window shows when Gorm is started.\par \par BackupFile @*\par Determines if the old .gorm is moved to .gorm~ when the modified version is saved.\par AllowUserBundles @*\par If the user sets this to YES, they will still get a warning, but Gorm won\rquote t quit. \par itemize\par \par Basic Concepts\par \par This chapter will explain some of the basic things you need to understand before starting work on a new application.\par \par Getting Started\par \par First you need to understand a few basic concepts. Gorm\rquote s main window includes a few standard entries which must be explained before we can proceed.\par \par They are:\par \par NSOwner\par NSFirst\par NSFont\par \par ize @bullet\par \par NSOwner\par \par NSFirst\par \par NSFont\par \par itemize\par \par What is NSOwner?\par \par NSOwner is the class which \lquote \lquote owns\rquote \rquote the interface. This is, by default, NSApplication, but it can be any class you like. You can change it by selecting NSOwner in the document window and going to the \lquote \lquote Custom Class\rquote \rquote inspector in the inspectors window. From there, you should see all of the classes which the NSOwner can assume. We\rquote ll discuss more about this later when we go over how to create a new application\par \par What is NSFirst?\par \par NSFirst is your interface to the responder chain. NSFirst is representative of the current \lquote \lquote first responder\rquote \rquote in the application. When you want a message, such as a changeFont: message, to go to the current first responder from, say, a menu, you connect the menu item to the NSFirst object in the document window. By doing this, it means that whichever object has first responder status at that time in the application will become the reciever of the \lquote \lquote changeFont:\rquote \rquote message. \par \par Responders\par NSResponder\par \par A responder is any subclass of NSResponder. This includes NSWindow, NSView and all of the NSControl subclasses.\par \par The Responder Chain\par Responder Chain\par \par The responder chain is a sequence of objects which are called to determine where a message sent to the first responder will go. A message invoked on the first responder will be invoked on the first object in the responder chain which responds to that message.\par \par The object which this message will be called on is determined in the method [NSApplication targetForAction:]. The call sequence is as follows, it will only proceed to the next step in each case if the current step fails to respond to the message which was invoked:\par \par The firstResponder of the keyWindow, if one exists. \par Iterates through all responders by pulling each in the linked list of responders for the key window. \par It then tries the keyWindow.\par Then the keyWindow\rquote s delegate\par if the application is document based it tries the document controller object for the key window.\par then it tries the mainWindow\rquote s list of responders (as above)\par the mainWindow\rquote s delegate\par if the app is document based, it tries the document controller for the main window\par and finally, it tries the NSApplication delegate.\par \par itemize\par \par If all of the options in this list are exhausted, it then gives up and returns nil for the object which is to respond.\par \par What is NSFont?\par \par NSFont represents the NSFontManager object for the application. This object is a shared singleton. This means that, for any given app, there should be only one instance of the object. This object is generally added to the document window when another objec, such as a Font menu item, is added to the interface, which, in turn, requires that this object be added to the document.\par \par The awakeFromNib method\par \par This method is called on any custom object which is unarchived from a nib/gorm file. This method is called on all objects after the entire archive has been loaded into memory and all connections have been made. Given all of this, you should not make any assumptions at all about which objects have been called and which have not. You should not release any objects in this method.\par \par Creating an Application\par \par If you have ProjectCenter, you need to open it and create an \lquote \lquote Application\rquote \rquote project. Create it with the name \lquote \lquote FirstApp\rquote \rquote . From there you can open the MainMenu.gorm by clicking on interfaces and selecting MainMenu.gorm. If Gorm.app is properly installed, you Gorm should start up.\par \par If you don\rquote t have ProjectCenter, you can create the Gorm file by hand. First you need to start Gorm. You can either do this by doing \{gopen -a Gorm.app\} from a command line prompt, or you can invoke it from the Dock or from the workspace\rquote s file viewer.\par \par You then need to select the \{Document\} menu, and then \{New Application\}. This should produce a new document window, with a menu and an empty window. This should be the same as with the ProjectCenter gorm file since this is the basic starting point for an application.\par \par For the sections below... only do one or the other, not both. \par \par Creating A Class In Gorm\par Creating Classes\par \par There are two ways to do this next operation. I will take you through each step by step. First click on the classes icon in the toolbar on the top of the Gorm document window. You should see the view below change to an outline view containing a list of class names. Once this happens we\rquote re ready to create a class.\par Select the class you wish to subclass in the outline view. For our example we will use the simplest: NSObject. Select it by clicking on the class name once. Then go to the Classes menu in the main menu and select Create Subclass (you can also type Alt-Shift-c, which will do this as well. The new class will be created in the list with the name \lquote \lquote NewClass\rquote \rquote .\par \par Using The Outline View\par Classes Outline View\par \par From here double click on the subclass name to make it editable. Type the name of the class and hit enter. For our example, please use the class name MyController. When you hit enter an alert panel will appear and warn you about breaking connections, simply select OK and continue.\par \par This method of inputting the classes was inspired by IB in OPENSTEP 4.2/Mach which had functionality very similar to this. For users of that the transition to Gorm will be seamless.\par \par Adding Outlets In The Outline View\par \par Too add an outlet, select the round icon with the two horizontal lines in it (it sort of looks like a wall outlet. This should become depressed. Here you need to go to the Gorm Menu, under Classes select \lquote \lquote Add Outlet/Action\rquote \rquote . Each time you press this menu item another outlet will be added with a name similar to newOutlet, as you add more the number at the end will increase. For now add only one outlet.\par \par To rename the outlet simply double click it and change it\rquote s name like you did the class above to \lquote \lquote value\rquote \rquote for the sake of our example.\par \par Adding Actions In the Outline View\par \par The procedure to add on action is precisely the same as adding an outlet, except you must click on the button which looks like a target (a circle with a + inside). Add an action and name it \lquote \lquote buttonPressed:\rquote \rquote for the sake of our example.\par \par Using The Class Edit Inspector\par Class Edit Inspector\par \par This way is much more inline with the \lquote \lquote OPENSTEP/GNUstep\rquote \rquote philosophy. For each object there is an inspector, even for Class objects.\par \par Once you have created the class as described in the previous section \lquote \lquote Creating a Class In Gorm\rquote \rquote , you must skip to this section to use the inspector. In the Gorm main menu select Tools and then select \lquote \lquote Inspectors\rquote \rquote . This will make certain that the inspectors window is being displayed. Once the inspectors window is up move the pulldown on the top to \lquote \lquote Attributes\rquote \rquote and select the class you created which should, at this point, have the name \lquote \lquote NewClass\rquote \rquote . You\rquote ll notice that the \lquote \lquote Class\rquote \rquote field at the top which shows the name\rquote s background color has turned white, instead of grey. This indicates that this class name is editable. Erase \lquote \lquote NewClass\rquote \rquote from the text field and type \lquote \lquote MyController\rquote \rquote .\par \par Adding Outlets In The Inspector\par \par Adding outlets is very intuitive in the inspector. Simply select the \lquote \lquote Outlets\rquote \rquote tab in the tab view and click \lquote \lquote Add\rquote \rquote to add more outlets, and \lquote \lquote Remove\rquote \rquote to remove them. For the sake of our example, add one outlet and name it \lquote \lquote value\rquote \rquote .\par \par Adding Actions In the Inspector\par \par Very much like above only with the \lquote \lquote Actions\rquote \rquote tab, add an action called button pressed.\par \par Instantiating The Class\par Instantiating\par \par In the Classes outline view select the new class you\rquote ve created, now called MyController and then go to the Gorm menu and select Classes, and then Instantiate. The document window should shift from the classes view to the objects view. Amoung the set of objects should be a new object called MyController.\par \par Adding Controls from the Palette\par \par Go to the Gorm menu and select Tools, then Palettes. This will bring the palette window to the front. The second palette from the left is the \lquote \lquote ControlsPalette\rquote \rquote . Select that one and find the button object (it should have the word \lquote \lquote Button\rquote \rquote in it). Drag that to the window and drop it anywhere you like.\par \par Repeat this operation with the text field. It\rquote s the control with \lquote \lquote Text\rquote \rquote in it. We are now ready to start making connections between different objects in the document.\par \par Making Connections\par Connections\par \par The type of application we are creating is known as a \lquote \lquote NSApplication delegate\rquote \rquote this means that the MyController object will be set as the delegate of NSApplication.\par \par To make this connection click on NSOwner and hold down the Control button, keep it pressed as you drag from the NSOwner object to the MyController object. The inspectors window should change to the Connections inspector and should show two outlets \lquote \lquote delegate\rquote \rquote and \lquote \lquote menu\rquote \rquote . Select the \lquote \lquote delegate\rquote \rquote , at this point you should see a green S and a purple T on the NSOwner and MyController objects respectively, and press the \lquote \lquote Connect\rquote \rquote button in the inspector. In the \lquote \lquote Connections\rquote \rquote section of the inspector you should see an entry which looks similar to \lquote \lquote delegate (MyController)\rquote \rquote this indicates that the connection has been made.\par \par Now we need to make connections from the controller to the textfield and from the controller to the button. Select the MyController object and Control-Drag (as before) from the object to the text field, this will make an outlet connection. You should see the connections inspector again, this time select the \lquote \lquote value\rquote \rquote outlet and hit Connect. \par \par Next, control-drag from the button to the controller, this will make an action connection. The connections inspector should again appear. This time you need to select the \lquote \lquote target\rquote \rquote outlet, to get the list of actions. The list should have only one entry, which is \lquote \lquote buttonPressed:\rquote \rquote since this is the one we added earlier. Press Connect. You should see an entry like \lquote \lquote buttonPressed: (MyController\rquote \rquote in the Connections section of the inspector.\par \par It is also possible to make this connection to NSFirst, but to keep things simple, make it directly to the object. If you make the connection to buttonPressed: on NSFirst the functionality of the application will be unchanged, but the invocation will take the path described above in the section which describes \lquote \lquote The Responder Chain\rquote \rquote .\par \par Saving the gorm file\par Saving\par \par At this point you must save the .gorm file. Go to the Gorm menu and click Documents and then select \lquote \lquote Save\rquote \rquote . If the document was opened from a pre-existing .gorm, it will save to that same file name. If it is an UNTITLED .gorm file a file dialog will appear and you will need to select the directory where you want to store the .gorm file and type the name of the .gorm file. \par \par Generating .h and .m files from the class.\par \par This is different than saving, some people have gotten this confused with the idea of Gorm generating the code for the gui. Gorm does nothing of the sort (grin). \par \par Go to the Classes section in the Document window and select the MyController class yet again. Now go to the Gorm menu and select Classes and the select \lquote \lquote Create Class Files\rquote \rquote . This will bring up a file panel and it allow you to select the directory in which to put the files. It will first create the MyController.m file and then the MyController.h file. Simply select the directory in which your app will reside and hit okay for both. You can change the names, but the default ones, which are based on the class name, should be sufficient. When you look at the .m for this class, you should see the \{buttonPressed:\} method with the commecnt \{/* insert your code here */\} in it. Delete this comment and add \{[value setStringValue: @@\lquote \lquote Hello\rquote \rquote ];\}. The class should look like this after you\rquote re done:\par \par \par \par /* All Rights reserved */\par \par \par \par #include \par \par #include "MyController.h"\par \par @@implementation MyController\par \par \par - (void) buttonPressed: (id)sender\par \par @\{\par \par [value setStringValue: @@\rquote \rquote Hello\rquote \rquote ];\par \par @\}\par \par @\par \par \par \par You recall, we connected the textfield to the \lquote \lquote value\rquote \rquote variable. The call above causes the method setStringValue to be invoked on the textfield you added to the window. \par \par Also, note that the name of the method is \lquote \lquote buttonPressed:\rquote \rquote . This is the action which is bound to the button. When it is pressed the text in the textfield should change to \lquote \lquote Hello\rquote \rquote .\par \par You now need to build the application either by copying in a GNUmakefile and making the appropriate changes or by using ProjectCenter\rquote s build capability, depending on if you use it or not.\par \par This app is available as \lquote \lquote SimpleApp\rquote \rquote in the Examples directory under the Documentation directory distributed with Gorm. Hopefully this has helped to demonstrate, albeit on a small scale, the capabilities of Gorm. In later chapters we will cover more advanced application architectures and topics.\par \par Another Simple Application\par \par This chapter will describe an application, very much like the previous one, but using a slightly different structure. This application builds on the previous application and uses WinController as the NSOwner of the app instead of making it the delegate of NSApplication.\par \par Adding Menu Items\par \par Select the first palette in the palette window, this should be the MenusPalette. The palette will have a bunch of pre-made menu items on it that you can add. We want to keep this simple, so grab the one called \lquote \lquote Item\rquote \rquote and drag it over to the menu in main menu nib (the menu on the screen, not the one in the objects view). As you have this object over the menu, the copy/paste mouse cursor should appear (it looks something like one box over another box at a 45 degree angle). Where you drop the menu determines it\rquote s position in the menu. You can always drag it to a new position after you\rquote ve placed it by simply selecting and dragging up or down. Once you\rquote ve placed the menu item, double click on the title and change it to \lquote \lquote Open\rquote \rquote \par \par You can also change the name in the NSMenuItem attributes inspector. Now you must add openWindow: to MyController and make the connection from the \lquote \lquote Open\rquote \rquote menu item to NSFirst. In the connections inspector, find the \lquote \lquote openWindow:\rquote \rquote action. You could simply make the connection directly, but this is an exaple to show you that this connection will work as well. Whichever object has First Responder status will be tested to see if it responds to this method.\par \par The implementation for openWindow: in MyController should simply be:\par \par - (void) openWindow: (id) sender\par \par @\{\par \par winController = [[WinController alloc] init];\par \par @\}\par \par Also add the winController attribute and an include to allow WinController to be referenced in the MyController.m file.\par \par Making a Controller-based .gorm file\par \par Create a new .gorm file as described in the previous section using the \lquote \lquote New Module\rquote \rquote menu item. Under \lquote \lquote New Module\rquote \rquote select \lquote \lquote New Empty\rquote \rquote . This should produce a .gorm file with only NSOwner and NSFirst. From the WindowsPalette (which should be the second palette in the palette window) drag a window to the location where you want it to appear on the screen. In the window add a button called \lquote \lquote Close\rquote \rquote .\par \par Go through the same steps you went through previously to create MyController, except for adding the outlets/actions, but this time with the name WinController. Add an outlet called window and an action called \lquote \lquote closeWindow:\rquote \rquote . \par \par Setting the NSOwner\par Now, instead of instantiating the class go back to the objects view and select the NSOwner object. After that select the \lquote \lquote Custom Class\rquote \rquote inspector. Look for the entry for WinController and select it. You now must connect the \lquote \lquote window\rquote \rquote outlet to the Window you added previously.\par \par Connecting to a Window\par Switch back to the objects view, then Control-Drag not to the window on the screen, but to the window\rquote s representation in the objects view. In the connection inspector select the window outlet and click Ok.\par \par Save the .gorm as using the name Controller.gorm in the project directory. \par \par Generate the Controller.h and Controller.h files as described in the previous section.\par \par Add the init method to WinController\par \par Add an implementation of the action \lquote \lquote closeWindow:\rquote \rquote to WinController and also an init which loads the gorm/nib file and declares itself as the owner. Here\rquote s how:\par \par /* All Rights reserved */\par \par #include \par \par #include "WinController.h"\par \par @@implementation WinController\par \par - (id) init\par \par @\{\par \par if((self = [super init]) != nil)\par \par @\{\par \par if([NSBundle loadNibNamed: @@"Controller" owner: self] == NO)\par \par @\{\par \par NSLog(@@"Problem loading interface");\par \par return nil;\par \par @\}\par \par [window makeKeyAndOrderFront: self];\par \par @\}\par \par return self;\par \par @\}\par \par - (void) closeWindow: (id) sender\par @\{\par \par [window close];\par \par @\}\par \par - (void) dealloc\par @\{\par [super dealloc];\par RELEASE(window);\par @\}\par \par @ \par \par The Controller gorm will be loaded and the connections will be made to the current instance, i.e. window will point to the window object instantianted in the .gorm file and all actions declared in the .gorm file which are attached to the object NSOwner will be resolved on self.\par \par Running the App\par \par Type the command \{open Controller.app\} on the command line in the project directory. Once the application has started it should look very much like the first application. Select the \lquote \lquote Open\rquote \rquote button from the Menu and you should see the second window pop up, now choose close, this will call the method \lquote \lquote closeWindow:\rquote \rquote which should cause the window to disappear.\par \par \par Advanced Topics\par \par This section will cover some topics which won\rquote t be of general interest to most users. The details in this section pertain to the internal workings of Gorm.\par \par Gorm file format\par \par The current Gorm file format is basically just a set of objects, encoded one after another in a continuous stream with some markers indicating when a new class starts or which class is encoded. \par \par The Name Table\par \par Name Table\par Each object in the .gorm file has a name assigned to it by the application. This allows Gorm to refer to the objects by a name once they are loaded rather than an address. Each name is associated with it\rquote s object in a dictionary which preserves the overall structure of the GUI which has been created. \par \par The Custom Class Table\par \par This is only used when the user has associated a custom class with an existing instance in the gorm file. If the user has, for instance, added an NSWindow to the gorm, he/she can use the custom class inspector to select a subclass of NSWindow to change to. \par \par Connections Array\par \par This array is used to form the connections after the .gorm file is loaded. The method \{[... establishConnection]\} is never called on either NSNibControlConnector or NSNibOutletConnector objects while in Gorm. This prevents the connections from having any effect while they are being edited in Gorm itself. Once they are loaded, the establishConnection method is called and the connections are made.\par \par Custom Class Encoding\par Custom Class Encoding\par \par Custom objects are an interesting challenge in Gorm. By definition, custom classes are not known to Gorm, unless they are in a palette (covered elsewhere). For classes which are not in a palette instances of these classes in Gorm are encoding in one of three ways:\par \par * A Proxy - This is a standin object which takes the place of the custom object. This is usually used when the superclass of the object is a non-graphical object, such as a controller. The init message is called on this object when it\rquote s unarchived.\par * A Custom View - This is a standin view object similar to the one descrribed above, but it is a subclass of NSView. When this is used the initWithFrame: message is called on the view instance which is created (based on what view subclass the user selects)\par * A Template - Probably the most interesting of the three. This is a standin class which uses an existing instance created in Gorm to build a custom subclass from. For instance when a window subclass is created, call it MyWindow, a template class called GSWindowTemplate is used to hold the NSWindow created in Gorm as well as the name of the subclass to be created when the class is unarchived outside of Gorm as well as some additional information. When the classes are unarchived in the running app, the designated initializer for that class will be invoked, except in the case of NSControl subclasses. See the Apple documentation for more information.\par itemize\par \par All custom instances have awakeFromNib invoked on them when they are unarchived from the .gorm file. This allows the user to do whatever additional setup that needs to be done, such as setting attribute. Classes which are \lquote \lquote known\rquote \rquote are, of course, directly encoded into the .gorm file.\par \par Restrictions On Your Custom Subclasses\par \par The restrictions here are the same as those in Apple\rquote s InterfaceBuilder. In general, you cannot have additional information which is expected to be decoded in an initWithCoder: method from a custom class which uses one of the methods in the previous section. This is because, by definition, Gorm doesn\rquote t know anything about these classes and allowing you to use them in Gorm in this way is a convenience to make it simpler for the developer. Gorm therefore, must use one of the proxies to encode the class since it cannot encode the class directly.\par \par How can you get your classes into Gorm, you say? I\rquote m pleased that you asked me that question. The best way to make your class known to Gorm so that you don\rquote t need to worry about the above restriction is to add a palette which contains your class. In this way, because you\rquote re literally linking the class into Gorm, you\rquote re making the class and it\rquote s structure known to Gorm so that it can encode the class directly. With the new palette loaded you can load and save classes containing real instances, not proxies, of your class encoded directly in the .gorm file. How to create a palette is discussed at length in the following section.\par \par Palettes\par Palettes\par Inspectors\par Editors\par \par Graphical Objects In A Palette\par You are, by now, familiar with the built in palettes which are provided with Gorm. Palettes are a powerful feature which allows the developer to add his/her own objects to Gorm. It is possible for a developer to write custom inspectors, editors and palettes for use with Gorm. A good example of a custom palette is palettetest in the dev-apps/test in the GNUstep distribution. Assuming you don\rquote t have that, however, I will explain precisely what you need to do in order to create a simple palette. The entire process is very short and suprisingly simple. First open Gorm and selection Gorm->Document->New Module->New Palette. This will create a palette sized window. Once that\rquote s done go to the classes view in the main document window and find \lquote \lquote IBPalette\rquote \rquote in the class list. Create a subclass of that, the name can be whatever you want. For the purposes of our example we\rquote ll call it MyPalette. Drag a custom view to the window and choose the class you would like to add to the palette from one of your custom classes.\par \par Once you\rquote ve done this, generate the code for the classes (discussed in previous chapters). In the code, you\rquote ll add a method called \lquote \lquote -(void) finishInstantiate\rquote \rquote leave it empty for now. In the makefile for the palette make sure that the library or framework the view comes from is linked with the palette. Now build the palette.\par \par After the palette is built you\rquote re ready to load it into Gorm. Go to the preferences panel and go to \lquote \lquote Palettes\rquote \rquote . This should bring up a table view. Click on add. You should see a open dialog open. Select the palette bundle with this. If the palette is successfully loaded, you should see the name appear in the list. One thing to note here. Once a palette is loaded, it can\rquote t be unloaded until you close and restart Gorm. This is because by loading the palette bundle, the code in the bundle is being linked into Gorm. This can\rquote t be undone, once it\rquote s done.\par \par Now, you should see the palette in the set of palettes in the palette window. Simply scroll over to it and select it\rquote s icon. When you do this, you should see the view that you set up using the custom view displayed as an actual instance. Note that we used one of the techniques listed above, it is possible to use any of the three for any object you add to your palette. You can now drag the view from the palette to a new window. \par \par Non Graphical Objects In A Palette\par You may recall the creation of a method called \lquote \lquote -(void) finishInstantiate\rquote \rquote in the previous section. This section will make full use of that method. Re-open the palette you created before, but this time add an image view to the window. Then add to the image view, the icon you want to represent the non-graphical object. Here you\rquote ll need to add an ivar to the MyPalette class in both Gorm and in your source code called, imageView. Once you\rquote ve done this make the connection between the image view and it\rquote s ivar.\par \par Assuming that the class is called \lquote \lquote NonUIObject\rquote \rquote , in finish instantiate, you\rquote ll need to add the following line of code:\par \par id obj = [NonUIObject new];\par \par [self associateObject: obj\par \tab type: IBObjectPboardType\par \tab with: imageView];\par \par This code has the effect of associating the non-ui object with the ui object you just added to represent it. When you drag and drop the element which prepresents the object to something, it will copy the object, not the ui element, to the destination.\par \par Congratulations, you now know how Palettes work. \par \par Frequently Asked Questions\par FAQ\par \par Should I modify the data.classes of file in the .gorm package?\par \par My advice is never to do this, ever. Some have said that \lquote \lquote they\rquote re plain text and I should be able to change them\rquote \rquote . My response to this rather loosely pronounced and weak rationale is that if they are modified I cannot and will not guarantee that Gorm will be able to read them or will function correctly if it does.\par Why does my application crash when I add additional attributes for encoding in encodeWithCoder: or initWithCoder: in my custom class?\par \par If you\rquote ve selected the custom class by clicking on an existing object and then selecting a subclass in the Custom Class Inspector in Gorm\rquote s inspector panel, then when the .gorm file is saved, Gorm must use what is called a template to take the place of the class so that when the .gorm is unarchived in the running application, the template can become the custom subclass you specified. Gorm has no way of knowing about the additional attributes of your subclass, so when it\rquote s archived the template depends on the encodeWithCoder: of the existing class. Also, when AppKit loads the .gorm file, the initWithCoder: on the subclass is called to allow the user to do any actions, except for additional encoding, which need to be done at that time. This is particularly true when non-keyed coding is used, since, with keyed coding, it\rquote s possible to skip keys that are not present. The application may not crash if keyed coding is used, but Gorm would still not know about the additional attributes and would not be able to persist them anyway.\par \par Please see information in previous chapters regarding palettes, if you would like to be able to add your classes to Gorm so that they don\rquote t need to be replaced by templates, or proxy objects.\par \par Why does Gorm give me a warning when I have bundles specified in GSAppKitUserBundles?\par \par Some bundles may use poseAs: to affect change in the existing behavior of some GNUstep classes. The poseAs: method causes an issue which may cause Gorm to incorrectly encode the class name for the object which was replaced. This makes the resulting .gorm file unusable when another user who is not using the same bundle attempts to load it.\par \par How can I avoid loading GSAppKitUserBundles in Gorm?\par \par You need to write to Gorm\rquote s defaults like this:\par \par defaults write Gorm GSAppKitUserBundles \rquote ()\rquote \par \par Doing this overrides the settings in NSGlobalDomain for Gorm and forces Gorm not to load any user bundles at all. To eliminate this simply do:\par \par defaults delete Gorm GSAppKitUserBundles\par \par How can I change the font for a widget?\par \par This is a simple two step process. Select the window the widget is in and then select the widget itself, then bring up the font panel by hitting Command-t (or by choosing the menu item). By doing this you\rquote re making the window the main window and by selecting the widget, you\rquote re telling the editor for that object to accept changes. Then you can select the font in the panel and hit \lquote \lquote Set\rquote \rquote . For some objects, the font panel isn\rquote t effective because those objects can\rquote t have a font directly set.\par }gorm-1.3.1/English.lproj/GormPrefGuideline.gorm/0000755000175000017500000000000014327003122020512 5ustar heronherongorm-1.3.1/English.lproj/GormPrefGuideline.gorm/objects.gorm0000644000175000017500000001222514327003122023033 0ustar heronheronGNUstep archive000f4240:00000023:00000070:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ? @" @u @o@J I @v @01 NSView% ? @" @u @o@  @u @o@J01 NSMutableArray1 NSArray&01NSBox% @Q@ @? @i @g`  @i @g`J0 &0 % @ @ @g@ @d@  @g@ @d@J0 &0 1 NSTextField1 NSControl% @( @U @\ @5  @\ @5J0 &%0 1NSTextFieldCell1 NSActionCell1NSCell0&%Container Edge:01NSFont% A@&&&&&&JJ &&&&&&I01NSColor0&% NSNamedColorSpace0&%System0&%textBackgroundColor00& % textColor01NSSlider% @I @H @U @0  @U @0J0 &%01 NSSliderCell0&%100%01NSNumber1NSValued @$&&&&&&JJ&&&&&&I ? A %00&&&&&&&JJ &&&&&&I00&% System0 &% controlTextColor0!0"&0#1NSImage0$&%common_SliderHoriz&&&&&&JJ&&&&&&I%0%% @_ @U @? @5  @? @5J0& &%0'0(&%Text&&&&&&JJ &&&&&&I0)0*&% windowBackgroundColor0+1NSButton% @P @$ @L @8  @L @8J0, &%0-1 NSButtonCell0.&%Reset&&&&&&JJ&&&&&&I0/&00&&&& &&01% @( @Q@ @\ @2  @\ @2J02 &%0304&%Between Views:&&&&&&JJ &&&&&&I05% @_ @Q@ @? @5  @? @5J06 &%0708&%Text&&&&&&JJ &&&&&&I)091 NSColorWell% @P @] @J @>  @J @>J0: &%0;0<&&&&&&&JJ&&&&&&0=0>&% NSCalibratedWhiteColorSpace ?0?0@& % Guide Spacing&&&&&&JJ&&&&&& @ @%%)0A&%Window0B&%PanelB  @Ç @xI0C0D&% NSApplicationIcon&   @ @0E &0F &0G1NSMutableDictionary1 NSDictionary& 0H&%Box0I&%Slider0J& % TextField350K& % ColorWell(0)90L& % TextField 0M& % TextField210N&%Button+0O&% NSOwner0P&%GormGuidelinePref0Q& % GormNSPanel0R& % TextField1%0S&%Cell(0);0T &0U1 NSNibConnectorQ0V&% NSOwner0W H0X L0Y1!NSNibOutletConnectorVQ0Z&%window0[ I0\ R0]1"NSNibControlConnectorIV0^1#NSMutableString&%ok:0_!VI0`#& % spacingSlider0a!VR0b#&%currentSpacing0c N0d"NV0e&%reset:0f M0g JV0h!VJ0i& % halfSpacing0j K0k SK0l!VK0m& % colorWell0n"KV0o&%ok:0p&gorm-1.3.1/English.lproj/GormPrefGuideline.gorm/data.info0000644000175000017500000000027014327003122022277 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormPrefGuideline.gorm/data.classes0000644000175000017500000000055114327003122023003 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "reset:" ); Super = NSObject; }; GormGuidelinePref = { Actions = ( "ok:", "reset:" ); Outlets = ( spacingSlider, window, "_view", currentSpacing, halfSpacing, colorWell ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormPrefColors.gorm/0000755000175000017500000000000014327003122020046 5ustar heronherongorm-1.3.1/English.lproj/GormPrefColors.gorm/objects.gorm0000644000175000017500000000377314327003122022377 0ustar heronheronGNUstep archive00002af9:0000001b:00000030:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0&%GormColorsPref0&%GSCustomClassMap0&0&%Box01NSBox1NSView1 NSResponder% B C C B  C B&0 1 NSMutableArray1 NSArray&0 % @ @ B BD  B BD&0 &0 1 NSColorWell1 NSControl% B A BT A  BT A&0 &%01 NSCell0&01NSFont%&&&&&&&&01NSColor0&%NSCalibratedRGBColorSpace ? ? ? ?0 0& % Guides Color&&&&&&&& @ @%%0& % GormNSPanel01GSWindowTemplate1GSClassSwapper0&%NSPanel1NSPanel1NSWindow% ? A C Cz& % Cn DD0% ? A C Cz  C Cz&0 &00&%NSNamedColorSpace0&%System0&%windowBackgroundColor0&%Window0&%PrefsColor Panel ? A F@ F@%0 1NSImage0!&%NSApplicationIcon&   D D0"& % ColorWell 0# &0$1NSNibConnector0%&%NSOwner0&0'"0(1NSNibControlConnector"%0)&% ok:0*1NSNibOutletConnector%"0+&%color0,%0-&%window0."0/1NSMutableString&% initialFirstResponder001 GSMutableSet1 NSMutableSet1NSSet&gorm-1.3.1/English.lproj/GormPrefColors.gorm/data.info0000644000175000017500000000027014327003122021633 0ustar heronheronGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormPrefColors.gorm/data.classes0000644000175000017500000000030614327003122022335 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormColorsPref = { Actions = ( "ok:" ); Outlets = ( color, window, _view ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormCustomClassInspector.gorm/0000755000175000017500000000000014327003122022117 5ustar heronherongorm-1.3.1/English.lproj/GormCustomClassInspector.gorm/objects.gorm0000644000175000017500000000705114327003122024441 0ustar heronheronGNUstep archive000f4240:0000001e:00000041:00000004:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBrowser1 NSControl% @4 @( @m @v  @m @vJ-0 &0 1 NSScrollView%  @m @up  @m @upJ0 &0 1 NSClipView% @5 @ @j @u0  @j @u0J0 1NSMatrix%  @j @Y  @j @YJ 0 &%01 NSActionCell1NSCell0&01NSFont%&&&&&&JJ&&&&&&&I% @j @Y 01NSColor0&% NSNamedColorSpace0&% System0& %  controlColor0& % NSBrowserCell01 NSBrowserCell0&0% A@&&&&&&JJ&&&&&&&%%0 &2doClick:2doDoubleClick:0 & 00&% controlBackgroundColor01 NSScroller% @ @ @2 @u0  @2 @u0J0 &%0&&&&&&JJ&&&&&&&J 2 _doScroll:v24@0:8@16 I A A A A %0 &&&&&&JJ&&&&&&&0!&% NSMatrix0"&%/% @Y0#%  @2   @2 J0$ &%0%&&&&&&JJ&&&&&&&J2 scrollViaScroller:v24@0:8@16   @m @up0& &0'1NSBrowserColumn %"%%0(&%Window0)&%Inspector Window) @U @Ç @|I0*1NSImage0+&% NSApplicationIcon&   @ @0, &0- &0.1NSMutableDictionary1 NSDictionary&0/&% NSOwner00&%GormCustomClassInspector01& % Inspector02& % GormNSBrowser03 &041NSNibConnector105&% NSOwner0621071NSNibOutletConnector5208&%browser09510:&%window0;250<&%delegate0=120>1NSMutableString&%initialFirstResponder0?&gorm-1.3.1/English.lproj/GormCustomClassInspector.gorm/data.info0000644000175000017500000000027014327003122023704 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormCustomClassInspector.gorm/data.classes0000644000175000017500000000030014327003122024400 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormCustomClassInspector = { Actions = ( "select:" ); Outlets = ( browser ); Super = IBInspector; }; }gorm-1.3.1/English.lproj/GormPrefPalettes.gorm/0000755000175000017500000000000014327003122020366 5ustar heronherongorm-1.3.1/English.lproj/GormPrefPalettes.gorm/objects.gorm0000644000175000017500000001154314327003122022711 0ustar heronheronGNUstep archive00002af9:00000026:00000080:00000001:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&%NSOwner0&% GormPalettesPref0&%GSCustomClassMap0&0&% PaletteDataSource01 GSNibItem  &0 &% Button10 1NSButton1 NSControl1 NSView1 NSResponder% B A B` A  B` A&0 1 NSMutableArray1 NSArray&%0 1 NSButtonCell1 NSActionCell1NSCell0 &%Add01NSFont% A@&&&&&&&&%0&0&&&&0& %  TableColumn101 NSTableColumn0&%column2 C A GP01NSTableHeaderCell1NSTextFieldCell0&%Palettes0% &&&&&&&&0%01NSColor0&%NSNamedColorSpace0&%System0&%controlShadowColor00&%System0&%windowFrameTextColor00&%seven0 %&&&&&&&&0%0!0"&%textBackgroundColor0#0$& % textColor0%& % GormNSPanel0&1GSWindowTemplate1GSClassSwapper0'&%NSPanel1NSPanel1NSWindow% ? A C Cz& % C DK@0( % ? A C Cz  C Cz&0) & 0*% C4 A B` A  B` A&0+ &%0, 0-&%Remove&&&&&&&&%0.&0/&&&&001 NSScrollView% A B  C C)  C C)&01 &021 NSClipView% A A C B  C B&03 &041 NSTableView%  C C!  C C!&05 &%0607& &&&&&&&&08 &090:& % gridColor0;0<&% System0=&%controlBackgroundColor0>1NSTableHeaderView%  C A  C A&0? &0@1GSTableCornerView% @ @ A A  A A&0A &%% A @ @@;0B1 NSScroller% @ A A C  A C&0C &%0D7 &&&&&&&&&02 _doScroll:v12@0:4@80E% A @ C A  C A&0F &>0G0H& % controlColor0I% A C C A  C A&0J &%0K0L& &&&&&&&&&0@2% A A A A IBE0M0N&%System0O&%windowBackgroundColor0P&%Window0Q&%HeadersQ ? A F@ F@%0R1NSImage0S&%NSApplicationIcon&   D D0T& % ScrollView00U&% Button2*0V& % TableColumn0W0X&%column1 BP A GP0Y0Z&% &&&&&&&&0%0[0\&%System0]& % controlColor0^0_&%sept _&&&&&&&&0%!#0`&%GormNSTableView40a &0b1 NSNibConnector 0c U0d T0e `0f V0g 0h 0i&%NSOwner0j1!NSNibOutletConnector`0k1"NSMutableString& %  dataSource0l!`i0m"&% delegate0n!i`0o"&% table0p!i 0q"& %  addButton0r!iU0s"& %  removeButton0t!i%0u"&% window0v1#NSNibControlConnector i0w"& %  addAction:0x#Ui0y"& %  removeAction:0z!` 0{"& %  nextKeyView0|! U{0}!U`{0~!% 0"&% initialFirstResponder01$ GSMutableSet1% NSMutableSet1&NSSet&&gorm-1.3.1/English.lproj/GormPrefPalettes.gorm/data.info0000644000175000017500000000027014327003122022153 0ustar heronheronGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormPrefPalettes.gorm/data.classes0000644000175000017500000000074514327003122022664 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:", "removeAction:", "addAction:" ); Super = NSObject; }; GormPalettesPref = { Actions = ( "removeAction:", "addAction:" ); Outlets = ( _view, window, removeButton, addButton, table ); Super = NSObject; }; PaletteDataSource = { Actions = ( ); Outlets = ( ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormSoundInspector.gorm/0000755000175000017500000000000014327003122020747 5ustar heronherongorm-1.3.1/English.lproj/GormSoundInspector.gorm/objects.gorm0000644000175000017500000012356514327003122023302 0ustar heronheronGNUstep archive000f4240:00000021:00000084:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @$ @W @o @r  @o @rJ0 &0 % @ @ @m @pp  @m @ppJ0 &0 1 GSCustomView1 GSNibItem0 & % GormSoundView  @m @p`&0 1NSTextFieldCell1 NSActionCell1NSCell0&%Sound Attributes01NSFont% A@&&&&&&JJ &&&&&&&I01NSColor0&% NSNamedColorSpace0&% System0&% windowBackgroundColor00&%System0& % textColor @ @%%0 % @$ @ @o @T@  @o @T@J%0 &0 %  @o @T@  @o @T@J0 &01NSButton1 NSControl% @ @O @S@  @O @S@J 0 &%01 NSButtonCell0&%Stop01NSImage @H @H0 0!&% NSCalibratedWhiteColorSpace 0" &0#1NSBitmapImageRep1 NSImageRep0$&% NSDeviceRGBColorSpace @H @HII0I00%1NSData&$$II*$eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00$$R&&&&&&JJ&&&&&&&I0&&&&&& &&0'% @O @ @O @S@  @O @S@J 0( &%0)0*&%Play0+ @H @H 0, &0-$ @H @HII0I00.&$$II*$ddhuuy))*>~~eedTTfeeetteeeeggyeeeeeBBK##$+eeeeee***''(1eeeeeee__geeeeeeeeff}ww|eeeeeeeeerreeeeeeeeeeWW|ffs""#8eeeeeeeeeeeddwttteeeeeeeeeeeeWWreeeeeeeeeeeeeIIuIIQeeeeeeeeeeeU< 8 eeeeeeeeeeeNQ eeeeeeeeeRL99XGGO%eeeeeeeeUJ;;\TT`--.A eeeeeeeUU..OJJV003U eeeeeeeN..Y@@L'eeeeeUF??cYY`//1I eeeeU LLLecck;;=NeeeNOBBP||wwy**+4eeNS??S~~!!!)eUGSSh,,-8e L``q Gddt__fUUYccc{ccc{ 00$$R&&&&&&JJ&&&&&&&I&&&&& &&0/% @_ @ @O @S@  @O @S@J 00 &%0102&%Pause03 @H @H 04 &05$ @H @HII0I006&$$II*$eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00$$R&&&&&&JJ&&&&&&&I&&&&& &&07% @g @ @O @S@  @O @S@J 08 &%090:&%Record0; @H @H 0< &0=$ @H @HII0I00>&$$II*$0/yFWaeaWF/y0"XMeeeeeeeeeeeM"X0JeeeeeeeeeeeeeeeJ0&`eeeeeeeeeeeeeeeeeee&`,qeeeeeeeeeeeeeeeeeeeee,q&`eeeeeeeeeeeeeeeeeeeeeee&`0eeeeeeeeeeeeeeeeeeeeeeeee0JeeeeeeeeeeeeeeeeeeeeeeeeeJ"Xeeeeeeeeeeeeeeeeeeeeeeeeeee"XMeeeeeeeeeeeeeeeeeeeeeeeeeeeM0eeeeeeeeeeeeeeeeeeeeeeeeeeeee0/yeeeeeeeeeeeeeeeeeeeeeeeeeeeee/yFeeeeeeeeeeeeeeeeeeeeeeeeeeeeeFWeeeeeeeeeeeeeeeeeeeeeeeeeeeeeWaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaWeeeeeeeeeeeeeeeeeeeeeeeeeeeeeWFeeeeeeeeeeeeeeeeeeeeeeeeeeeeeF/yeeeeeeeeeeeeeeeeeeeeeeeeeeeee/y0eeeeeeeeeeeeeeeeeeeeeeeeeeeee0MeeeeeeeeeeeeeeeeeeeeeeeeeeeM"Xeeeeeeeeeeeeeeeeeeeeeeeeeee"XJeeeeeeeeeeeeeeeeeeeeeeeeeJ0eeeeeeeeeeeeeeeeeeeeeeeee0&`eeeeeeeeeeeeeeeeeeeeeee&`,qeeeeeeeeeeeeeeeeeeeee,q&`eeeeeeeeeeeeeeeeeee&`0JeeeeeeeeeeeeeeeJ0"XMeeeeeeeeeeeM"X0/yFWaeaWF/y0 00$$R&&&&&&JJ&&&&&&&I&&&&& &&0?0@&%Title0A% A @&&&&&&JJ&&&&&&& %%0B&%Window0C&%Inspector WindowC @ @Ç @|I0D0E&% NSApplicationIcon&   @ @p0F &0G &0H1NSMutableDictionary1 NSDictionary&0I&%Box0J& % ButtonCell(2)10K&%Box(0)0L& % ButtonCell(0)0M&%Button1'0N&%Button370O& % ButtonCell(3)90P&% NSOwner0Q&%GormSoundInspector0R& % InspectorWin0S&%GormCustomView 0T& % ButtonCell(1))0U&%View(0)0V&%Button0W&%Button2/0X &0Y1NSNibConnectorRP0ZVK0[MK0\WK0]NK0^I0_1NSNibOutletConnectorPR0`&%window0a1 NSNibControlConnectorVP0b&%stop:0c MP0d&%play:0e WP0f&%pause:0g NP0h&%record:0iS0jPS0k& % soundView0lVM0m1!NSMutableString& % nextKeyView0nMWm0oWNm0pNVm0qK0rUK0sLV0t L0u&% NSFirst0v&%stop:0wTM0xJW0yON0zRM0{&%initialFirstResponder0|&gorm-1.3.1/English.lproj/GormSoundInspector.gorm/data.info0000644000175000017500000000027014327003122022534 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormSoundInspector.gorm/play.tiff0000644000175000017500000002245214327003122022573 0ustar heronheronII*$ddhuuy))*>~~eedTTfeeetteeeeggyeeeeeBBK##$+eeeeee***''(1eeeeeee__geeeeeeeeff}ww|eeeeeeeeerreeeeeeeeeeWW|ffs""#8eeeeeeeeeeeddwttteeeeeeeeeeeeWWreeeeeeeeeeeeeIIuIIQeeeeeeeeeeeU< 8 eeeeeeeeeeeNQ eeeeeeeeeRL99XGGO%eeeeeeeeUJ;;\TT`--.A eeeeeeeUU..OJJV003U eeeeeeeN..Y@@L'eeeeeUF??cYY`//1I eeeeU LLLecck;;=NeeeNOBBP||wwy**+4eeNS??S~~!!!)eUGSSh,,-8e L``q Gddt__fUUYccc{ccc{00$ $%@$%"%(R/home/heron/play.tiffCreated with The GIMPHHgorm-1.3.1/English.lproj/GormSoundInspector.gorm/pause.tiff0000644000175000017500000002245414327003122022745 0ustar heronheronII*$eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00$ $%@$%$%(R/home/heron/pause.tiffCreated with The GIMPHHgorm-1.3.1/English.lproj/GormSoundInspector.gorm/stop.tiff0000644000175000017500000002245214327003122022613 0ustar heronheronII*$eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00$ $%@$%"%(R/home/heron/stop.tiffCreated with The GIMPHHgorm-1.3.1/English.lproj/GormSoundInspector.gorm/ff.tiff0000644000175000017500000002245014327003122022217 0ustar heronheronII*$ccc{ccc{ddhuuy))*>ddhuuy))*>~~~~eeedTTfedTTfeeetteeetteeeeggyeeeeggyeeeeeBBKeeeeeBBK##$+eeeeee***eeeeee***''(1eeeeeeeeeeeeee__geeeeeeeeeeeeeeeff}ww|eeeeeeeeeeeeeeeerreeeeeeeeeeeeeeeeeWW|ffs""#8eeeeeeeeeeeeeeeeeeddwttteeeeeeeeeeeeeeeeeeeWWreeeeeeeeeeeeeeeeeeeeIIuIIQeeeeeeeeeeeeeeeeeeU< 8 eeeeeeeeeeeeeeeeeeNQ eeeeeeeeeeeeeeeeRL99XGGO%eeeeeeeeeeeeeeeUJ;;\TT`--.A eeeeeeeeeeeeeeUU..OJJV003U eeeeeeeeeeeeeeN..Y@@L'eeeeeUFeeeeeUF??cYY`//1I eeeeU LLLeeeeeU LLLecck;;=NeeeNOBBP||eeeNOBBP||wwy**+4eeNS??S~~eeNS??S~~!!!)eUGSSh,,-8eUGSSh,,-8e L``qe L``q Gddt Gddt__f__fUUYUUY00$ $%@$% %(R/home/heron/ff.tiffCreated with The GIMPHHgorm-1.3.1/English.lproj/GormSoundInspector.gorm/data.classes0000644000175000017500000000046714327003122023246 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormSoundInspector = { Actions = ( "record:", "pause:", "play:", "stop:" ); Outlets = ( soundView ); Super = IBInspector; }; GormSoundView = { Actions = ( ); Outlets = ( ); Super = NSView; }; }gorm-1.3.1/English.lproj/GormSoundInspector.gorm/rec.tiff0000644000175000017500000002245214327003122022377 0ustar heronheronII*$0/yFWaeaWF/y0"XMeeeeeeeeeeeM"X0JeeeeeeeeeeeeeeeJ0&`eeeeeeeeeeeeeeeeeee&`,qeeeeeeeeeeeeeeeeeeeee,q&`eeeeeeeeeeeeeeeeeeeeeee&`0eeeeeeeeeeeeeeeeeeeeeeeee0JeeeeeeeeeeeeeeeeeeeeeeeeeJ"Xeeeeeeeeeeeeeeeeeeeeeeeeeee"XMeeeeeeeeeeeeeeeeeeeeeeeeeeeM0eeeeeeeeeeeeeeeeeeeeeeeeeeeee0/yeeeeeeeeeeeeeeeeeeeeeeeeeeeee/yFeeeeeeeeeeeeeeeeeeeeeeeeeeeeeFWeeeeeeeeeeeeeeeeeeeeeeeeeeeeeWaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaWeeeeeeeeeeeeeeeeeeeeeeeeeeeeeWFeeeeeeeeeeeeeeeeeeeeeeeeeeeeeF/yeeeeeeeeeeeeeeeeeeeeeeeeeeeee/y0eeeeeeeeeeeeeeeeeeeeeeeeeeeee0MeeeeeeeeeeeeeeeeeeeeeeeeeeeM"Xeeeeeeeeeeeeeeeeeeeeeeeeeee"XJeeeeeeeeeeeeeeeeeeeeeeeeeJ0eeeeeeeeeeeeeeeeeeeeeeeee0&`eeeeeeeeeeeeeeeeeeeeeee&`,qeeeeeeeeeeeeeeeeeeeee,q&`eeeeeeeeeeeeeeeeeee&`0JeeeeeeeeeeeeeeeJ0"XMeeeeeeeeeeeM"X0/yFWaeaWF/y000$ $%@$%"%(R/home/heron/rec.tiffCreated with The GIMPHHgorm-1.3.1/English.lproj/GormSoundInspector.gorm/rw.tiff0000644000175000017500000002245014327003122022254 0ustar heronheronII*$UUYUUYړ__fړ__fΓddt GΓddt Gꍍ``q Leꍍ``q Le,,-8֘SShGUe,,-8֘SShGUe!!!)~~??SSNee~~??SSNee**+4wwy||BBPONeee||BBPONeee;;=NcckLLe LUeeeeLLe LUeeee //1IYY`??cFUeeeeeFUeeeee'@@L..YNeeeeeeeeeeeeee 003UJJV..OUUeeeeeeeeeeeeee --.ATT`;;\JUeeeeeeeeeeeeeee%GGO99XLReeeeeeeeeeeeeeee QNeeeeeeeeeeeeeeeeee 8<UeeeeeeeeeeeeeeeeeeIIQIIueeeeeeeeeeeeeeeeeeeeWWreeeeeeeeeeeeeeeeeeetttddweeeeeeeeeeeeeeeeee""#8ffsWW|eeeeeeeeeeeeeeeeerreeeeeeeeeeeeeeeeww|ff}eeeeeeeeeeeeeee__geeeeeeeeeeeeee''(1***eeeeee***eeeeee##$+BBKeeeeeBBKeeeeeŮggyeeeeŮggyeeeetteeetteeeTTfdeTTfde޴e޴e~~~~))*>uuyddh))*>uuyddhccc{ccc{00$ $%@$% %(R/home/heron/rw.tiffCreated with The GIMPHHgorm-1.3.1/English.lproj/Gorm.gorm/0000755000175000017500000000000014327003122016047 5ustar heronherongorm-1.3.1/English.lproj/Gorm.gorm/objects.gorm0000644000175000017500000010040014327003122020361 0ustar heronheronGNUstep archive000f4240:00000011:00000436:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01 GSNibItem01NSString&%GormDocumentController  &01NSMenu0&%GORM01NSMutableArray1 NSArray&  01 NSMenuItem0 &%Info0 &JJI0 1 NSImage0 1 NSMutableString&%GSMenuSelected0 0 & % GSMenuMixed2 submenuAction:v24@0:8@16I0 0&0 0& % Info Panel... JJI I0 0&%Preferences... JJI I0 0&%Help...0&%?JJI I0 0&%Document JJI I00&0 0&%Open...0&%oJJI I0 0 & % Open Recent JJI I0!0"& % Open Recent0#&0$ 0%& % Clear List JJI I0& 0'&%New Application0(&%nJJI I0) 0*& % New Module JJI I0+*0,&0- 0.& % New Empty0/&%NJJI I00 01& % New Inspector JJI I02 03& % New Palette JJI I04 05&%Save06&%sJJI I07 08& % Save As...09&%SJJI I0: 0;& % Save To... JJI I0< 0=&%Save All JJI I0> 0?&%Revert to Saved0@&%uJJI I0A 0B&%Test Interface0C&%rJJI I0D 0E& % Translate JJI I0FE0G&0H 0I& % Load Strings JJI I0J 0K&%Export Strings JJI I0L 0M& % Miniaturize0N&%mJJI I0O 0P&%Close JJI I0Q 0R&%Debug JJI I0S 0T& % Load Sound... JJI I0U 0V& % Load Image... JJI I0W 0X&%Edit JJI I0YX0Z&0[ 0\&%Cut0]&%xJJI I0^ 0_&%Copy0`&%cJJI I0a 0b&%Paste0c&%vJJI I0d 0e&%Delete0f&%JJI I0g 0h& % Select All0i&%aJJI I0j 0k& % Set Name... JJI I0l 0m&%Classes JJI I0nm0o&0p 0q&%Create Subclass...0r&%CJJI I0s 0t& % Load Class...0u&%LJJI I0v 0w&%Create Class Files0x&%BJJI I0y 0z& % Instantiate0{&%IJJI I0| 0}&%Add Outlet/Action0~&%AJJI I0 0&%Remove0&%XJJI I0 0&%Format JJI I00&%Format0&0 0&%Font JJI I00&  0 0& % Font Panel0&%tJJI0 0 I0 0&%Italic0&%iJJI0 0 I0 0&%Bold0&%bJJI0 0 I0 0&%Heavier JJI0 0 I0 0&%Lighter JJI0 0 I0 0&%Larger0&%+JJI0 0 I0 0&%Smaller0&%-JJI0 0 I0 0& % Underline JJI I0 0& % Superscript JJI I0 0& % Subscript JJI I0 0&%Unscript JJI I0 0& % Copy Font0&%3JJI I0 0& % Paste Font0&%4JJI I0 0&%Text JJI I00&0 0& % Align Left JJI I0 0&%Center JJI I0± 0ñ& % Align Right JJI I0ı 0ű& % Show Ruler JJI I0Ʊ 0DZ& % Copy Ruler0ȱ&%1JJI I0ɱ 0ʱ& % Paste Ruler0˱&%2JJI I0̱ 0ͱ&%Bring to Front JJI I0α 0ϱ& % Send to Back JJI I0б 0ѱ&%Group JJI I0ұ0ӱ&0Ա 0ձ& % In Splitview JJI I0ֱ 0ױ&%In Box JJI I0ر 0ٱ& % In Scrollview JJI I0ڱ 0۱&%In View JJI I0ܱ 0ݱ& % In Matrix JJI I0ޱ 0߱&%Ungroup JJI I0 0& % Alignment JJI I00& % Alignment0&0 0&%Turn GuideLine Off JJI I0 0&%Center Vertically JJI I0 0&%Center Horizontally JJI I0 0& % Left Edges JJI I0 0& % Right Edges JJI I0 0& % Top Edges JJI I0 0& % Bottom Edges JJI I0 0&%Page Layout...0&%PJJI I0 0&%Tools JJI I00&0 0& % Colors... JJI I0 0& % Inspector... JJI I0 0&%Palettes JJI IPP&%PalettesP&P P&%Open... JJI IP P&%New JJI IP P&%Save JJI IP P & % Save As... JJI IP P &%Revert to Saved JJI IP P& % Palettes... JJI IP P& % Close Palette JJI IP P&%Windows JJI IPP&P P&%Arrange In Front JJI IP P&%Miniaturize WindowP&%mJJI IP P& % Close WindowP&%wJJI IP P&%Print...P&%pJJI IP P!&%Services JJI IP"!P#&P$ P%&%HideP&&%hJJI IP' P(&%QuitP)&%qJJI IP*P+& % NSFontManager  &P,&P-&P.1 NSMutableDictionary1 NSDictionary&P/& % MenuItem81QP0& % MenuItem(21)P1 P2& % Page LayoutP3&%PJJI IP4& % MenuItem183&P5& % MenuItem(87)P6& % GormNSMenu1P7& % MenuItem(49)P8&% NSOwnerP9&%GormP:& % GormNSMenu33P;& % MenuItem(31)P<& % MenuItem99pP=& % MenuItem266gP>& % MenuItem75AP?& % MenuItem177P@& % MenuItem242PA& % MenuItem51PB PC& % Font PanelPD&%tJJI IPE& % MenuItem153PF PG&%Ungroup JJI IPH& % MenuItem(84)PI& % GormNSMenu27+PJ& % MenuItem(46)PK& % MenuItem236'PL& % MenuItem690PM& % MenuItem301:PN& % MenuItem147gPO& % MenuItem212FPP& % MenuItem45jPQ& % MenuItem123PR& % MenuItem21QPS& % MenuItem190P& % MenuItem(52)P& % GormNSMenu41YP& % MenuItem2P& % MenuItem207jP& % MenuItem298:P& % MenuItem16-P& % MenuItem118P& % MenuItem274BP& % MenuItem250PƱ& % MenuItem(28)PDZ& % MenuItem60Pȱ& % MenuItem162Pɱ& % MenuItem(10)Pʱ P˱&%Print...P̱&%pJJI IPͱ& % MenuItem(76)Pα& % GormNSMenu4nPϱ& % GormNSMenu36"Pб& % MenuItem(2):Pѱ& % GormNSMenu12Pұ& % MenuItem269Pӱ& % MenuItem(38)PԱ& % MenuItem245-Pձ& % MenuItem78JPֱ& % MenuItem156lPױ& % MenuItem221Pر& % MenuItem54HPٱ& % MenuItem132>Pڱ& % MenuItem(25)$P۱& % MenuItem30pPܱ& % MenuItem(73)Pݱ& % MenuItem239Pޱ& % MenuItem(35)P߱& % MenuItem215lP& % MenuItem48P& % MenuItem282\P& % MenuItem24WP& % MenuItem126-P& % MenuItem(22)OP& % MenuItem193DP& % MenuItem102yP& % MenuItem(88)P& % MenuItem(70)P& % GormNSMenu43nP& % MenuItem4P& % MenuItem209P& % MenuItem(32)P& % MenuItem182P& % MenuItem276sP& % MenuItem1872P& % MenuItem252AP& % MenuItem85[P& % MenuItem163P& % MenuItem61P& % MenuItem(85)P& % GormNSMenu5P& % GormNSMenu37P& % GormNSMenu13P& % MenuItem(47)P& % MenuItem2460P& % MenuItem79LP& % MenuItem157pP& % MenuItem55DP& % MenuItem133AP& % MenuItem31P& % MenuItem(82)P& % MenuItem(44)P& % NSWindowsMenuP& % MenuItem216sP& % MenuItem49P& % MenuItem25[P& % MenuItem1270P& % MenuItem283P& % MenuItem92P& % MenuItem194HP & % MenuItem103|P & % MenuItem(97)P & % MenuItem170P &%Menu(5)P & % MenuItem(59)P& % MenuItem(41)P& % GormNSMenu44P& % GormNSMenu20P& % MenuItem5P& % MenuItem19AP& % MenuItem277vP& % MenuItem1884P& % MenuItem253DP& % MenuItem86^P& % MenuItem164P& % MenuItem62P& % MenuItem(94)P& % MenuItem140SP&%Menu(2)P& % GormNSMenu6P& % MenuItem(56)P& % GormNSMenu38P& % GormNSMenu14P & % MenuItem2472P!& % MenuItem223P"& % MenuItem56JP#& % MenuItem158sP$& % MenuItem290P%& % MenuItem32P&& % MenuItem134DP'& % MenuItem110P(& % MenuItem(91) P)& % MenuItem(53)P*& % MenuItem217vP+& % MenuItem26^P,& % MenuItem1282P-& % MenuItem284P.& % MenuItem195JP/& % MenuItem104P0& % MenuItem260UP1& % MenuItem93P2& % MenuItem171P3& % MenuItem(68)P4& % MenuItem(50)P5& % GormNSMenu45P6& % GormNSMenu21P7& % MenuItem6P8& % MenuItem278yP9& % MenuItem1897P:& % MenuItem254HP;& % MenuItem87aP<& % MenuItem165P=& % MenuItem230P>& % MenuItem63P?& % MenuItem141UP@& % MenuItem(17)PA&%NSFont*PB& % GormNSMenu7"PC& % MenuItem(65)PD& % GormNSMenu39+PE& % MenuItem(9)$PF& % GormNSMenu15+PG& % MenuItem2484PH& % MenuItem224PI& % MenuItem57-PJ& % MenuItem159vPK& % MenuItem200UPL& % MenuItem33PM& % MenuItem135HPN& % MenuItem291PO& % MenuItem111PP& % MenuItem(14)PQ& % MenuItem(62)PR&%NSMenuPS& % MenuItem(6)PT& % MenuItem218yPU&%MenuItem$PV& % MenuItem27aPW& % MenuItem1294PX& % MenuItem285PY& % MenuItem196LPZ& % MenuItem105P[& % MenuItem261WP\& % MenuItem94P]& % MenuItem172P^& % MenuItem(29)P_& % MenuItem702P`& % MenuItem(11)1Pa& % MenuItem(77)Pb& % MenuItem(3)Pc& % GormNSMenu46Pd& % GormNSMenu22Pe& % MenuItem7Pf& % MenuItem279|Pg& % MenuItem(39)Ph& % MenuItem255JPi& % MenuItem88dPj& % MenuItem231Pk& % MenuItem64Pl& % MenuItem166Pm& % MenuItem142WPn& % MenuItem(26)Po& % MenuItem40sPp& % GormNSMenuPq& % GormNSMenu8Pr& % MenuItem(74)Ps& % GormNSMenu16FPt& % MenuItem(0):Pu& % MenuItem(36)Pv& % MenuItem2497Pw& % MenuItem225Px& % MenuItem580Py& % MenuItem201WPz& % MenuItem34P{& % MenuItem136JP|& % MenuItem292P}& % MenuItem(23)P~& % MenuItem107P& % MenuItem112P& % MenuItem(89)P& % MenuItem(71)P& % MenuItem219|P& % MenuItem(33)P& % MenuItem28gP& % MenuItem286P& % MenuItem197OP& % MenuItem106$P& % MenuItem262[P& % MenuItem95FP& % MenuItem(20)$P& % MenuItem714P& % MenuItem173P& % MenuItem(86)P& % GormNSMenu47P& % MenuItem8&P& % MenuItem(48)P& % GormNSMenu23P& % MenuItem(30)P& % MenuItem89gP& % MenuItem256LP& % MenuItem167P& % MenuItem65P& % MenuItem232P& % MenuItem143[P& % MenuItem41vP& % MenuItem(83)P& % GormNSMenu9FP& % GormNSMenu17YP& % MenuItem(45)P& % MenuItem226P& % MenuItem592P& % MenuItem35P& % MenuItem137LP& % MenuItem293P& % MenuItem202[P& % MenuItem11dP& % MenuItem113P& % MenuItem180P& % MenuItem(80)P&%Menu(6)P& % MenuItem(42)P& % GormNSMenu30P& % MenuItem287P& % MenuItem29lP& % MenuItem107'P& % MenuItem263^P& % MenuItem198QP& % MenuItem174P& % MenuItem727P& % MenuItem(95)P&%Menu(3)P& % MenuItem(57)P& % GormNSMenu48"P& % MenuItem94P& % GormNSMenu24"P& % MenuItem257OP& % MenuItem233P& % MenuItem66&P& % MenuItem168P& % MenuItem42yP& % MenuItem144^P& % MenuItem(92)P& % MenuItem120P&%Menu(0)!P& % MenuItem(54)P±& % MenuItem227Pñ& % MenuItem36Pı& % MenuItem203^Pű& % MenuItem138OPƱ& % MenuItem294PDZ& % MenuItem270Pȱ& % MenuItem114Pɱ& % MenuItem12P& % MenuItem271P& % MenuItem115P& % MenuItem182P& % MenuItem80OP& % MenuItem(12)OP& % MenuItem(78)P& % MenuItem(60)P& % MenuItem(4)P& % GormNSMenu32P& % MenuItem289P& % MenuItem109P& % MenuItem98lP& % MenuItem265dP& % MenuItem176'P& % MenuItem74>P& % MenuItem241P& % MenuItem(27)P& % MenuItem152P& % MenuItem50FP& % MenuItem(75)P& % MenuItem(1):P& % GormNSMenu26P& % MenuItem(37)P& % MenuItem259SP& % MenuItem300:P& % MenuItem68-P& % MenuItem235 P& % MenuItem146dP& % MenuItem44P& % MenuItem(24)P& % MenuItem20LP & % MenuItem122P & % MenuItem(72)P & % MenuItem(34)P & % MenuItem229P & % MenuItem205dP& % MenuItem296'P&%NSRecentDocumentsMenu!P& % MenuItem14OP& % MenuItem116P&P1NSNibConnectorR8PRPRPRPǐPؐPؐPؐP RP PPPP P!P"P#P$P%FېP&P'P(P)P*KP+yRP,yP-P.P/P0P1RP2P3P4ZRP5ZP6%P7LRP8LP9zP:P;P<RP=P>oP?P@PAPBPC PDPE1NSNibControlConnectorPF&% NSFirstPG&%performMiniaturize:PHFPI& % performClose:PJzFPK&%arrangeInFront:PLFPM&%hide:PNFPO& % terminate:PPFPQ&%cut:PRFPS&%copy:PTFPU&%paste:PV8PW&%preferencesPanel:PX1NSNibOutletConnector8RPY&%gormMenuPZP[&%submenuAction:P\FP]xFP^FP_FP`&%orderFrontStandardInfoPanel:Pa&Pb&Pc&%submenuAction:Pd&Pe{PfMPgRPh&%submenuAction:Pi RPj&%submenuAction:PkFPl&%testInterface:PmFPn& % miniaturize:PoFPp&%close:PqFPr&%debug:PsFPt& % loadSound:PuKFPv& % loadImage:PwyRPx&%submenuAction:Py FPz&%delete:P{FP|&%setName:P}A8P~RP&%submenuAction:PZRP&%submenuAction:PRPRP&%submenuAction:P6АP6P6Pl6Pl6P&%submenuAction:PdlPdPdPdP dPdPdP%FP& % inspector:PRP&%submenuAction:P8P &%createSubclass:Po8P & % loadClass:P8P &%createClassFiles:P8P &%instantiateClass:P8P &%addAttributeToClass:P8P &%remove:PPFP & % openDocument:PFP & % newDocument:PFPxFPFPFP & % saveDocument:PFP &%saveDocumentAs:PFP &%saveAllDocuments:PFP &%saveDocumentTo:PFP &%revertDocumentToSaved:P8PFP &%arrangeSelectedObjects:PFPFP &%alignSelectedObjects:PFPFPFP FPFPMFP & % translate:P{FP± &%exportStrings:PñSPıSPűPƱSPDZ&%submenuAction:PȱFPɱ &%clearRecentDocuments:PʱFP˱& % selectAll:P̱n6PͱnPαPϱPбPѱPұ;PӱPԱPձ Pֱ FPױ& % underline:PرPٱFPڱ& % superscript:P۱uPܱuFPݱ& % subscript:PޱP߱FP& % unscript:PPFP& % copyFont:PPFP& % pasteFont:Pn6P&%submenuAction:Pj6PjPPFP& % alignLeft:PPFP& % alignCenter:PVPVFP& % alignRight:PPFP& % toggleRuler:PPFP& % copyRuler:PJPJFP& % pasteRuler:Pj6P&%submenuAction:P6PgPgPgP7gP4gPgP6P&%submenuAction:P 6P bRP dP P  P P&%submenuAction:P Pw PPFP&%orderFrontColorPanel:Pw8P& % palettes:P8P&%orderFrontFontPanel:P8P&%groupSelectionInSplitView:P8P&%groupSelectionInBox:P78P&%groupSelectionInScrollView:P48P&%groupSelectionInView:P 8P!&%ungroup:P"8P#& % guideline:P$ 8P%&%runPageLayout:P&bFP'&%print:P( P) P*( P+ P, P-8P.& % loadPalette:P/8P0&%guideLineMenuItemP1 gP2 8P3&%groupSelectionInMatrix:P4FP5& % showHelp:P6 &gorm-1.3.1/English.lproj/Gorm.gorm/data.info0000644000175000017500000000027014327003122017634 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/Gorm.gorm/data.classes0000644000175000017500000000240114327003122020334 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "alignSelectedObjects:", "arrangeSelectedObjects:", "exportStrings:", "groupSelectionInView:", "groupSelectionInMatrix:", "orderFrontFontPanel:", "translate:" ); Super = NSObject; }; Gorm = { Actions = ( "editClass:", "createSubclass:", "testInterface:", "setName:", "selectAllItems:", "paste:", "palettes:", "loadSound:", "loadPalette:", "inspector:", "infoPanel:", "endTesting:", "delete:", "cut:", "copy:", "close:", "miniaturize:", "debug:", "loadImage:", "orderFrontFontPanel:", "ungroup:", "groupSelectionInScrollView:", "groupSelectionInBox:", "groupSelectionInSplitView:", "remove:", "addAttributeToClass:", "instantiateClass:", "createClassFiles:", "loadClass:", "preferencesPanel:", "guideline:", "print:", "groupSelectionInView:", "groupSelectionInMatrix:" ); Outlets = ( gormMenu, guideLineMenuItem ); Super = NSApplication; }; GormDocumentController = { Actions = ( ); Outlets = ( ); Super = NSDocumentController; }; }gorm-1.3.1/English.lproj/GormSetName.gorm/0000755000175000017500000000000014327003122017324 5ustar heronherongorm-1.3.1/English.lproj/GormSetName.gorm/objects.gorm0000644000175000017500000001104214327003122021641 0ustar heronheronGNUstep archive000f4240:00000020:00000065:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ? @" @u` @cJI @ @01 NSView% ? @" @u` @c  @u` @cJ01 NSMutableArray1 NSArray&01 NSTextField1 NSControl% @Q @\ @n@ @7  @n@ @7J0 &%0 1NSTextFieldCell1 NSActionCell1NSCell0 &%Set Object Name0 1NSFont% A &&&&&&JJ &&&&&&&I0 1NSColor0 &% NSNamedColorSpace0&%System0&%textBackgroundColor0 0& % textColor0% @$ @I @H @2  @H @2J0 &%00&%Name:0%&&&&&&JJ &&&&&&&I 0% @O @I @p @5  @p @5J0 &%00&0%&&&&&&JJ &&&&&&&I01NSButton% @p @$ @R @8  @R @8J0 &%01 NSButtonCell0&%Set0 1NSImage0!& %  common_ret&&&&&&JJ&&&&&&&I0"&% 0#0$& % common_retH&&& &&2 performClick:v24@0:8@16 0%1 NSImageView% @$ @Y @H @H  @H @HJ0& &%0'1 NSImageCell0(0)& % Gorm.tiff&&&&&&JJ&&&&&&&%%% @H @H0*% @f @$ @R @8  @R @8J0+ &%0,0-&%Cancel&&&&&&JJ&&&&&&&I&&& &&0.1NSBox% @W@ @u` @  @u` @J0/ &00 % @ @ @t   @t J01 &0203&%Box&&&&&&JJ &&&&&&&I04 05&% System06&% windowBackgroundColor @ @%%407&%Window @u` @_ @Ç @|I0809&% NSApplicationIcon&   @ @p0: &0; &0<1NSMutableDictionary1 NSDictionary& 0=&%Box.0>& % TextField20?& % TextField0@&%Button0A&%Button1*0B&% NSOwner0C&%GormSetNameController0D& % TextField10E&%Panel0F& % ImageView%0G &0H1NSNibConnectorE0I&% NSOwner0J?0KD0L>0M@0NF0OA0P1NSNibControlConnector>@0Q& % performClick:0R1NSNibOutletConnectorIA0S& % cancelButton0TI@0U&%okButton0VI>0W& % textField0XIE0Y&%window0Z@I0[&%okHit:0\AI0]& % cancelHit:0^=0_>@0`1 NSMutableString& % nextKeyView0a@A`0bA>`0cE>0d &%initialFirstResponder0e&gorm-1.3.1/English.lproj/GormSetName.gorm/Gorm.tiff0000644000175000017500000001004614327003122021103 0ustar heronheronII*` P8$ BaPd6Dar~*ȢPRMq)$M'JeQHx:"c7-E*PhT:~)Ȉm8Oဃ蕺vF bHʝ7:^^\nQ*2fB[EFTV+W<& VK5>R[x|V_ݩHrM~`mm&MFLb~աi[8nx_* iB/CN>mpz]8xA_DCGm cyDA:K#K&@#_@dN%|  C) tñ*E G$d=lblpb |} xH#̔siXB,+YDO 0)s56FmN=\>)vQ -R~ JRE4?4nɫQLUMQU5iV5}]XulYׇ7_=6)+Yoej #z2HOO=]VRi[Uɞq]]WY{08)Aa p<nnI:_ѯ0?Ri`[֦QYV7=uF}qgcNzm0Gk C (۳7nye% o§tsY3V$JI$2yk^w~}_.)Ou;՟4M:<Xfn@Zácxy:y(!b$&>NeqNkV]E t4QwRGX\ x""z=;Q ?rC8?a Ȕ${ a M[$!1"H ޘI3eO* (Crct?' C>ֺS:A?q8_x fXp!4DC8!NM\"DQ l tpTD2$TML;<[`i/Qr.9CbL"cPR6D $ :aA'paP!ʲ9 GB& aac GA$(0N0t$Z-0fT`yGCqY2Ž)["^;Jj®/H* xa9m9'0ds7X2hx;P pĮ28o$A#C0^Ib%\kL*:;?߸  X-Dwc²C?1uecUY(V*+HHh Pvx = vJE4 X Ca&#eF|*#[ hn%cF #T ˦𩆛qZi}3cˋ)@L)48-_, 慚 Bk tધ rr`qV wX?xA21X&8#k !H'C%,,37YMjnJ390H='2ge~N2Ex,ڋSjO=hք?Xi|) IO R>/7 a 9uNsG͋c-F?ΛưD'#5-"B ;-D{ɹ3%ూ5rl}~_ ř)?PCsq;T0-gqOoMqN}ZY:cMiړSV%BAJ˜P䜖9,4SK<;gߘN(I -_3&pPxaGyzάK-Z@i+[h^\,u׈k#DxF /)B\$1FnʏYj5׃,hYkofQ hj oy3p@ڸXI L^ fʞ.J N~^R)A,lnM.>Vc p |! Ј4@$I ج8o砐 zha@H P \ Nάd. t!^!` D ™r2 .p` қk agaRņJ  a ~f*߭>aB2=62v!3$+:QN.!zl }/oZ C~pbtzt`R~`(@`2lR@ܸޡ ҳ!n +Th= =3hFQ7JX%snd F@Dr`0` XI S)2/Zm-r<<)qZ각1y5sT`+(?`@! @`AAH~ `B) f" "`F`oRly  [;I L6F4fÍ @G˄1hsH[>08ζ! `OIt(.,N^ !E a `&$ MrKh@4>&& 1 |/sG`jPӨyc 3=u(p(SI @NId$ @,: A ,A @aks Q ! & u\JPhvQ :sݴtU)4 QH TUI_B?IJ"$^~AN–31 UK  f 0`.)Fl5%D pX i6`"!wFn\,:&"u$ĊPpA_H 5G_T!< 'b.bbXm Edn 5n *fgQjgU [3u_ 5U8֧IkIU_ָ!D L-c``ne,|` !`e@pU5)5. *S>3YIU=_5TR{JpK!`NA\ |gցQ*P9)0:҅31r98_x nGm!жqp?x1@mm7B"00X(R ' 'gorm-1.3.1/English.lproj/GormSetName.gorm/data.info0000644000175000017500000000027014327003122021111 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormSetName.gorm/data.classes0000644000175000017500000000057514327003122021623 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:", "okHit:", "cancelHit:" ); Super = NSObject; }; GormSetNameController = { Actions = ( "okHit:", "cancelHit:" ); Outlets = ( cancelButton, okButton, window, textField ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormViewSizeInspector.gorm/0000755000175000017500000000000014327003122021424 5ustar heronherongorm-1.3.1/English.lproj/GormViewSizeInspector.gorm/objects.gorm0000644000175000017500000002152314327003122023746 0ustar heronheronGNUstep archive000f4240:0000001f:000000ca:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x`JI @ @01 NSView% ? @" @q @x`  @q @x`J01 NSMutableArray1 NSArray&01 NSBox% @$ @$ @o @w0  @o @w0J-0 &0 %  @o @w0  @o @w0J0 &0 % @2 @n @j @_  @j @_J0 &0 % @ @ @j@ @Z@  @j@ @Z@J0 &01NSForm1NSMatrix1 NSControl% @7 @" @d @W@  @d @W@J0 &%01 NSFormCell1 NSActionCell1NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&I 00&%Field:&&&&&&JJ&&&&&&&% @d @5 @01NSColor0&% NSNamedColorSpace0&% System0&% controlBackgroundColor00&% NSCalibratedRGBColorSpace ?* ?* ?* ?* ?0& % NSFormCell%%0 &0&&&&&&JJ&&&&&&&I B00 &%X:&&&&&&JJ&&&&&&&0!&&&&&&JJ&&&&&&&I B0"0#&%Y:&&&&&&JJ&&&&&&&0$&&&&&&JJ&&&&&&&I B0%0&&%Width:&&&&&&JJ&&&&&&&0'&&&&&&JJ&&&&&&&I B0(0)&%Height:&&&&&&JJ&&&&&&&2 ok:v24@0:8@16'0*1NSTextFieldCell0+&%Frame+&&&&&&JJ&&&&&&&I0,0-&% windowBackgroundColor0. ? %%0/ % @2 @$ @j @l  @j @lJ00 &01 % @ @ @i @i`  @i @i`J02 &031NSButton% @I @I @Y @Y@  @Y @Y@J04 &%051 NSButtonCell&&&&&&JJ&&&&&&&I&&& &&06% @V  @4 @I  @4 @IJ%07 &%08091NSImage0:& % GormEVLine&&&&&&JJ&&&&&&&I0;0<& % GormEVCoil&&& &&0=% @V @c  @4 @I  @4 @IJ 0> &%0?9&&&&&&JJ&&&&&&&I;&&& &&0@% @b @W  @I @4  @I @4J)0A &%0B0C&%Button0D0E& % GormEHLine&&&&&&JJ&&&&&&&I0F0G& % GormEHCoil&&& &&0H% @W  @I @4  @I @4J,0I &%0JD&&&&&&JJ&&&&&&&IF&&& &&0K% @I @W@ @X@ @4  @X@ @4J*0L &%0M0N0O& % GormMHLine&&&&&&JJ&&&&&&&I0P0Q& % GormMHCoil&&& &&0R% @V @J @3 @X@  @3 @X@J0S &%0T0U0V& % GormMVLine&&&&&&JJ&&&&&&&I0W0X& % GormMVCoil&&& &&0Y0Z& % Autosizing&&&&&&JJ&&&&&&&I,0[ ? @ @%%0\0]&%Title0^% A &&&&&&JJ&&&&&&& %%,0_&%Window0`&%Inspector Window` @C @Ç @|I&   @ @p0a &0b &0c1NSMutableDictionary1 NSDictionary&0d& % FormCell(4)0e&%Button160f& % ButtonCell(5)M0g&%View(0) 0h&%Button3@0i& % FormCell(1)!0j& % ButtonCell(2)?0k&%Button5K0l&% NSOwner0m&%GormViewSizeInpector0n& % ButtonCell(6)T0o&%Box1/0p&%View(1) 0q& % FormCell(2)$0r&%Form0s& % ButtonCell(3)B0t&%Button2=0u& % ButtonCell(0)50v&%View(2)10w& % FormCell(3)'0x&%Button30y& % InspectorWin0z&%Button4H0{& % ButtonCell(4)J0|&%Box(0)0}&%Box 0~&%Button6R0& % FormCell(0)0& % ButtonCell(1)80 &1101NSNibConnectory0&% NSOwner0}|0rp0o|0xv0ev0tv0hv0zv0kv0~v01NSNibOutletConnectorz0&%left0h0&%right0t0&%top0e0&%bottom0r0&%sizeForm0~0&%height0k0&%width01NSNibControlConnectorr0&%ok:0y0&%window0yr01NSMutableString&%initialFirstResponder0|0g|0p}0r0ir0qr0wr0dr0vo0ux0e00&% NSFirst0& % setAutosize:0jt0j0& % setAutosize:0sh0s0& % setAutosize:0{z0{0& % setAutosize:0fk0f0& % setAutosize:0n~0n0& % setAutosize:0k0& % setAutosize:0~0±& % setAutosize:0ñt0ız0űh0Ʊe0DZ& % setAutosize:0ȱ&gorm-1.3.1/English.lproj/GormViewSizeInspector.gorm/data.info0000644000175000017500000000027014327003122023211 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormViewSizeInspector.gorm/data.classes0000644000175000017500000000041114327003122023710 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormViewSizeInpector = { Actions = ( "setAutosize:" ); Outlets = ( bottom, height, left, right, sizeForm, top, width ); Super = IBInspector; }; }gorm-1.3.1/English.lproj/GormInconsistenciesPanel.gorm/0000755000175000017500000000000014327003122022110 5ustar heronherongorm-1.3.1/English.lproj/GormInconsistenciesPanel.gorm/objects.gorm0000644000175000017500000000502114327003122024425 0ustar heronheronGNUstep archive00002ced:0000001f:0000003e:00000001:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSPanel1 NSPanel1 NSWindow1 NSResponder% ? A C C&% D DD01 NSView% ? A C C  C C&01 NSMutableArray1NSArray&01 NSScrollView% A A  C C[  C C[&0 &0 1 NSClipView% A @ C CW A A  C CW&0 &0 1 NSTextView1NSText% A A  C C[  C C[&0 &0 1NSColor0&%NSNamedColorSpace0&%System0&%textBackgroundColor C C[ K K00& % textColor C K 01 NSScroller1 NSControl% @ @ A CW  A CW&0 &%01NSCell0&01NSFont%&&&&&&&&&&&&&&&2 _doScroll:v12@0:4@8 % A A A A 01 NSTextField% A Cj C A  C A&0 &%01NSTextFieldCell1 NSActionCell0&0% A@&&&&&&&&&&&&&&%00&%System0&%textBackgroundColor0 0!& % textColor0"0#&%System0$&%windowBackgroundColor0%&%Window0&&%Inconsistencies Found& @@ B F@ F@%&  D D0' &0( &0)1NSMutableDictionary1 NSDictionary&0*& % TextField(0)0+&%NSOwner0,&%GormGormWrapperLoader0-& % ScrollView(0)0.&%Panel(0)0/& % TextView(0) 00&%View(0)01 &021NSNibConnector.03&%NSOwner040.05-006/-07*0081NSNibOutletConnector3/091NSMutableString& % textField0:3*0;&%message0<3.0=&%panel0>&gorm-1.3.1/English.lproj/GormInconsistenciesPanel.gorm/data.info0000644000175000017500000000027014327003122023675 0ustar heronheronGNUstep archive00002ced:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormInconsistenciesPanel.gorm/data.classes0000644000175000017500000000044614327003122024404 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormGormWrapperLoader = { Actions = ( ); Outlets = ( message, textField, panel ); Super = GormWrapperLoader; }; GormWrapperLoader = { Actions = ( ); Outlets = ( ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormPrefPlugins.gorm/0000755000175000017500000000000014327003122020226 5ustar heronherongorm-1.3.1/English.lproj/GormPrefPlugins.gorm/objects.gorm0000644000175000017500000001176614327003122022560 0ustar heronheronGNUstep archive00002db4:00000026:00000080:00000001:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01 GSNibItem01NSString&%PluginDataSource  &01GSWindowTemplate1 GSClassSwapper0&%NSPanel1 NSPanel1 NSWindow1 NSResponder% ? A C Cz& % D @ DD01 NSView% ? A C Cz  C Cz&01NSMutableArray1NSArray&0 1NSButton1 NSControl% B A B` A  B` A&0 &%0 1 NSButtonCell1 NSActionCell1NSCell0 &%Add0 1NSFont% A@&&&&&&&&&&&&&&%0&0&&&& &&0% C4 A B` A  B` A&0&%00&%Remove &&&&&&&&&&&&&&%0&0&&&& &&01 NSScrollView% A B  C C)  C C)&0&01 NSClipView% A A C B  C B&0&01 NSTableView%  C C!  C C!&0&%00&0%&&&&&&&&&&&&&&0&0 1 NSTableColumn0!&%column2 C A GP0"1NSTableHeaderCell1NSTextFieldCell0#&%Plugins0$% #&&&&&&&& &&&&&&%0%1NSColor0&&%NSNamedColorSpace0'&%System0(&%controlShadowColor0)&'0*&%windowFrameTextColor0+0,&%seven,&&&&&&&& &&&&&&%0-&0.&%System0/&%textBackgroundColor00&.01& % textColor02&.03& % gridColor04&05&%System06&%controlBackgroundColor071NSTableHeaderView%  C A  C A&08&091GSTableCornerView% @ @ A A  A A&0:&%% A @ @@40;1 NSScroller% @ A A C  A C&0<&%0=&&&&&&&&&&&&&&&2 _doScroll:v24@0:8@160>% A @ C A  C A&0?&70@&.0A& % controlColor0B% A C C A  C A&0C&%0D0E&&&&&&&&&&&&&&&&9% A A A A B;>0F&0G&%System0H&%windowBackgroundColor0I&%Window0J&%PluginsJ ? A F@ F@%0K1 NSImage0L&%NSApplicationIcon&   D D0M&0N&0O1!NSMutableDictionary1" NSDictionary& 0P&%PluginDataSource(0)0Q&%NSOwner0R&%GormPluginsPref0S&%Button1 0T& % GormNSPanel0U&%Button20V& % ScrollView0W& % TableColumn1 0X& % TableColumn0Y0Z&%column1 BP A GP0[0\&% $&&&&&&&& &&&&&&%0]&0^&%System0_& % controlColor0`&.0a&%windowFrameTextColor0b0c&%septc&&&&&&&& &&&&&&%-00d&%GormNSTableView0e&0f1#NSNibConnectorS0g#U0h#V0i#d0j#X0k#W0l1$NSNibOutletConnectordS0m1%NSMutableString& % nextKeyView0n$SUm0o$Udm0p$TS0q%&%initialFirstResponder0r$dP0s%& % dataSource0t1&NSNibControlConnectorSQ0u%& % addAction:0v&UQ0w%& % removeAction:0x$QT0y%&%window0z$QS0{%& % addButton0|$QU0}%& % removeButton0~$Qd0%&%table0!&gorm-1.3.1/English.lproj/GormPrefPlugins.gorm/data.info0000644000175000017500000000027014327003122022013 0ustar heronheronGNUstep archive00002db4:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormPrefPlugins.gorm/data.classes0000644000175000017500000000074314327003122022522 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:", "removeAction:", "addAction:" ); Super = NSObject; }; GormPluginsPref = { Actions = ( "removeAction:", "addAction:" ); Outlets = ( _view, window, removeButton, addButton, table ); Super = NSObject; }; PluginDataSource = { Actions = ( ); Outlets = ( ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormPalettePanel.gorm/0000755000175000017500000000000014327003122020346 5ustar heronherongorm-1.3.1/English.lproj/GormPalettePanel.gorm/objects.gorm0000644000175000017500000000557414327003122022700 0ustar heronheronGNUstep archive000f4240:0000001c:00000041:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ? @" @p @pJ I @ @01 NSView% ? @" @p @p  @p @pJ01 NSMutableArray1 NSArray&01 NSScrollView% @h  @q @R  @q @RJ 0 &0 1 NSClipView% ? ? @p @J  @p @JJ0 1 GSCustomView1 GSNibItem0 &%GormPaletteMatrix  @J @J&0 & 0 1NSColor0&% NSCalibratedWhiteColorSpace >~ ?01 NSScroller1 NSControl% ? @K @p @2  @p @2J0 &%01NSCell0&01NSFont%&&&&&&JJ&&&&&&&J I A A A A 00&%GormPaletteView  @q @h@&%00&% NSNamedColorSpace0&% System0&% windowBackgroundColor0&%Window0&%Palettes @p @n @Ç @xI01NSImage0&% NSApplicationIcon&  @ @p0 &0 &0 1NSMutableDictionary1 NSDictionary& 0!&%View(0)0"& % ClipView(0) 0#&%Panel(0)0$& % ScrollView(0)0%& % CustomView(0)0&& % CustomView(1) 0'& % Scroller(0)0(& % Scroller(1)0)% @ @ @2 @P  @2 @PJ0* &%0+&&&&&&JJ&&&&&&&J0,&% NSOwner0-&%GormPalettesManager0. &  0/1NSNibConnector#,00!#01%!021NSNibOutletConnector,#03&%panel04,%05&%dragView06&!07$!08"$09'$0:1NSNibControlConnector'$0;& % _doScroll:0<($0=($0>& % _doScroll:0?,&0@& % selectionView0A&gorm-1.3.1/English.lproj/GormPalettePanel.gorm/data.info0000644000175000017500000000027014327003122022133 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormPalettePanel.gorm/data.classes0000644000175000017500000000070614327003122022641 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormPaletteMatrix = { Actions = ( ); Outlets = ( ); Super = NSMatrix; }; GormPalettePanel = { Actions = ( ); Outlets = ( ); Super = NSPanel; }; GormPaletteView = { Actions = ( ); Outlets = ( ); Super = NSView; }; GormPalettesManager = { Actions = ( ); Outlets = ( panel, dragView, selectionView ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormConnectionInspector.gorm/0000755000175000017500000000000014327003122021756 5ustar heronherongorm-1.3.1/English.lproj/GormConnectionInspector.gorm/objects.gorm0000644000175000017500000001451514327003122024303 0ustar heronheronGNUstep archive000f4240:00000021:00000070:00000004:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSSplitView% @ @B @pp @v  @pp @vJ0 &0 1 NSBrowser1 NSControl%  @pp @n`  @pp @n`J0 &0 1 NSScrollView%  @` @k  @` @kJ0 &0 1 NSClipView% @5 @ @Z @k  @Z @kJ01NSMatrix%  @Z @Y  @Z @YJ 0 &%01 NSActionCell1NSCell0&01NSFont%&&&&&&JJ&&&&&&&I% @Z @Y 01NSColor0&% NSNamedColorSpace0&% System0& %  controlColor0& % NSBrowserCell01 NSBrowserCell0&&&&&&&JJ&&&&&&&%%0 & 2doClick:2doDoubleClick:0 &00&% controlBackgroundColor01 NSScroller% @ @ @2 @k  @2 @kJ0 &%0 &&&&&&JJ&&&&&&&J 2 _doScroll:v24@0:8@16 I A A A A 0!% @`  @`@ @k  @`@ @kJ0" &0#% @5 @ @Z @k  @Z @kJ0$ &0%% @ @ @2 @k  @2 @kJ0& &%0'&&&&&&JJ&&&&&&&J!#I A A A A %%0(&&&&&&JJ&&&&&&&0)&% NSMatrix0*&%/% @Y0+% @ ? @o @2  @o @2J0, &%0-&&&&&&JJ&&&&&&&J 2 scrollViaScroller:v24@0:8@16   @` @k0. &0/1NSBrowserColumn %*00!%%%01% @o  @pp @Y  @pp @YJ02 &03%  @pp @S  @pp @SJ04 &05% @5 @ @n @R  @n @RJ06%  @n @Y  @n @YJ507 &%08&&&&&&JJ&&&&&&&I% @n @Y 09& % NSBrowserCell0:&&&&&&JJ&&&&&&&%%0; &10< &60=% @ @ @2 @R  @2 @RJ0> &%0?&&&&&&JJ&&&&&&&J35I A A A A =%0@&&&&&&JJ&&&&&&&:)0A&%/% @Y0B% @ ? @o @2  @o @2J0C &%0D&&&&&&JJ&&&&&&&J1   @pp @S0E &0F36%A%%0G1NSImage0H&%common_Dimple.tiff0I0J&% controlShadowColor%A0K0L&% windowBackgroundColor0M&%Window0N&%Connections InspectorN ? @\@ @Ç @|I&   @ @0O &0P &0Q1NSMutableDictionary1 NSDictionary&0R&%GormNSBrowser110S& % SplitView0T&% NSOwner0U&%GormConnectionInspector0V& % InspectorWin0W& % GormNSBrowser 0X &  0Y1NSNibConnectorV0Z&% NSOwner0[WS0\RS0]S0^1NSNibOutletConnectorZR0_& % oldBrowser0`ZW0a& % newBrowser0b1 NSNibControlConnectorWZ0c&%_internalCall:0d RZc0eZV0f1!NSMutableString&%window0gRZ0h!&%delegate0iWZh0jVW0k&%initialFirstResponder0l&gorm-1.3.1/English.lproj/GormConnectionInspector.gorm/data.info0000644000175000017500000000027014327003122023543 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormConnectionInspector.gorm/data.classes0000644000175000017500000000046214327003122024250 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "_internalCall:" ); Super = NSObject; }; GormConnectionInspector = { Actions = ( "_internalCall:" ); Outlets = ( newBrowser, oldBrowser ); Super = IBInspector; }; }gorm-1.3.1/English.lproj/GormDummyInspector.gorm/0000755000175000017500000000000014327003122020752 5ustar heronherongorm-1.3.1/English.lproj/GormDummyInspector.gorm/objects.gorm0000644000175000017500000000340514327003122023273 0ustar heronheronGNUstep archive000f4240:00000019:00000024:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01NSButton1 NSControl%  @q @x@  @q @x@J0 &%0 1 NSButtonCell1 NSActionCell1NSCell0 &%Not Applicable0 1NSFont% A&&&&&&JJ&&&&&&&I0 & &&& &&0 1NSColor0&% NSNamedColorSpace0&% System0&% windowBackgroundColor0&%Window0&%Inspector Window ? @" @Ç @|I&   @ @p0 &0 &01NSMutableDictionary1 NSDictionary&0&%Button0&% NSOwner0&%GormDummyInspector0& % InspectorWin0&%View0 &01NSNibConnector0&% NSOwner000 1NSNibOutletConnector0!1NSMutableString&%window0"0#&%button0$&gorm-1.3.1/English.lproj/GormDummyInspector.gorm/data.info0000644000175000017500000000027014327003122022537 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormDummyInspector.gorm/data.classes0000644000175000017500000000025214327003122023241 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormDummyInspector = { Actions = ( ); Outlets = ( button ); Super = IBInspector; }; }gorm-1.3.1/English.lproj/GormClassEditor.gorm/0000755000175000017500000000000014327003122020204 5ustar heronherongorm-1.3.1/English.lproj/GormClassEditor.gorm/objects.gorm0000644000175000017500000001100314327003122022516 0ustar heronheronGNUstep archive00002c88:00000026:00000086:00000000:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSWindow1 NSWindow1 NSResponder% ? A C CY&% C D:01 NSView% ? A C CY  C CY&01 NSMutableArray1 NSArray&01NSBox%  C CX  C CX&0 &0 %  C CX  C CX&0 &0 1 NSTextField1 NSControl% B@ C< C A  C A&0 &%0 1NSTextFieldCell1 NSActionCell1NSCell0&01NSFont%&&&&&&&&0%01NSColor0&%NSNamedColorSpace0&%System0&%textBackgroundColor00& % textColor01 NSPopUpButton1NSButton% CF C; C A  C A& 0 &%01NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell0&&&&&&&&&01NSMenu0&0 &01 NSMenuItem0& % Operations&&%01NSImage0 &%common_3DArrowDown%0!0"&%Subclass&&%%0#0$& % Instantiate&&%%0%0&& % Load Class0'&&&%%0(0)&%Create Class Files0*&&&%%0+0,&%Remove0-&&&%%%0.&.&&&%%%%%0/%  C C8  C C8&00 &01 %  C C8  C C8&02 &0304&%Box&&&&&&&& %%051 NSImageView% A C= A A  A A& 06 &%071 NSImageCell0809&%GSSearch&&&&&&&&%%% Ap Ap0:% C= A A  A A& 0; &%0<0=&=&&&&&&&&%0>&0?&&&&0@0A&%Box&&&&&&&& %%0B0C&%System0D&%windowBackgroundColor0E&%WindowE0F&%Window @@ B F@ F@%&  D D0G &0H &0I1 NSMutableDictionary1! NSDictionary&0J& % MenuItem(3)%0K& % ImageView(0)50L& % MenuItem(5)+0M&%NSOwner0N&%GormClassEditor0O&%View(1) 0P&%Box(0)0Q& % TextField(1) 0R&%PopUpButton(0)0S& % MenuItem(0)0T& % MenuItem(2)#0U& % MenuItem(4)(0V&%View(0)0W& % Button(0):0X&%View(2)10Y& % Window(0)0Z&%Box(1)/0[& % MenuItem(1)!0\ &0]1"NSNibConnectorVY0^"PV0_"OP0`"QO0a"RO0b"S0c"[0d"T0e"J0f"U0g"L0h"ZO0i"XZ0j1#NSNibOutletConnector0k&%NSOwnerP0l&%mainView0m#kZ0n& % classesView0o#Qk0p1$NSMutableString&%delegate0q1%NSNibControlConnector[k0r&%createSubclass:0s%Tk0t&%instantiateClass:0u%Jk0v& % loadClass:0w%Uk0x&%createClassFiles:0y%Lk0z& % removeClass:0{"KO0|"WO0}%Wk0~& % toggleView:0#kW0& % viewToggle01&NSIBHelpConnectorW0&%NSToolTipHelpKey0&%Switch clases view0&R0&(%(Perform operations on the selected class0 &gorm-1.3.1/English.lproj/GormClassEditor.gorm/data.info0000644000175000017500000000027014327003122021771 0ustar heronheronGNUstep archive00002c88:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormClassEditor.gorm/data.classes0000644000175000017500000000102714327003122022474 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "createClassFiles:", "createSubclass:", "instantiateClass:", "loadClass:", "toggleView:", "removeClass:" ); Super = NSObject; }; GormClassEditor = { Actions = ( "instantiateClass:", "createSubclass:", "loadClass:", "createClassFiles:", "removeClass:", "toggleView:" ); Outlets = ( classesView, mainView, viewToggle ); Super = NSView; }; }gorm-1.3.1/English.lproj/GormPrefHeaders.gorm/0000755000175000017500000000000014327003122020160 5ustar heronherongorm-1.3.1/English.lproj/GormPrefHeaders.gorm/objects.gorm0000644000175000017500000001246714327003122022511 0ustar heronheronGNUstep archive00002af9:00000026:00000094:00000001:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&% Button201NSButton1 NSControl1NSView1 NSResponder% C6 A@ B` A  B` A&01 NSMutableArray1 NSArray&%01 NSButtonCell1 NSActionCell1NSCell0&%Remove01NSFont% A@&&&&&&&&%0 &0 &&&&0 &%NSOwner0 &%GormHeadersPref0 & % ScrollView01 NSScrollView% A B0 C C  C C&0 &01 NSClipView% A A C B  C B&0 &01 NSTableView%  C C!  C C!&0 &%00&0%&&&&&&&&0 &01 NSTableColumn0&%column2 C A GP01NSTableHeaderCell1NSTextFieldCell0&%Headers0% &&&&&&&&0%01NSColor0&%NSNamedColorSpace0&%System0 &%controlShadowColor0!0"&%System0#&%windowFrameTextColor0$0%&%six%&&&&&&&&0%0&"0'&%textBackgroundColor0("0)& % textColor0*"0+& % gridColor0,0-&%System0.&%controlBackgroundColor0/1NSTableHeaderView%  C A  C A&00 &011GSTableCornerView% @ @ A A  A A&02 &%% A @ @@03"04&%controlBackgroundColor051 NSScroller% @ A A B  A B&06 &%07&&&&&&&&&2 _doScroll:v12@0:4@808% A @ C A  C A&09 &/0:"0;& % controlColor0<% A C C A  C A&0= &%0>0?&&&&&&&&&&1% A A A A <580@&%GSCustomClassMap0A&0B&%Button0C% A CP C A  C A&0D &%0E 0F&%Preload Headers0G1NSImage0H1NSMutableString&% common_SwitchOff&&&&&&&&%0I&0J&0K0L&% common_SwitchOn&&&0M&%HeaderDataSource0N1 GSNibItemM  &0O& % TableColumn0P0Q&%column1 BP A GP0R0S&% &&&&&&&&0%0T0U&%System0V& % controlColor!0W0X&%septX&&&&&&&&0%&(0Y& % GormNSPanel0Z1GSWindowTemplate1GSClassSwapper0[&%NSPanel1NSPanel1 NSWindow% ? A C Ct& % C D@0\% ? A C Ct  C Ct&0] &C0^% B A@ B` A  B` A&0_ &%0` 0a&%Add&&&&&&&&%0b&0c&&&&0d0e&%System0f&%windowBackgroundColor0g&%Window0h&%Headersh ? A F@ F@%0i0j&%NSApplicationIcon&   D D0k&%GormNSTableView0l& %  TableColumn10m&% Button1^0n &0o1!NSNibConnectorY0p&%NSOwner0q!B0r!m0s!0t1"NSNibOutletConnectorpm0u& % addButton0v"p0w& % removeButton0x"pB0y& % preloadButton0z1#NSNibControlConnectorBp0{&% preloadAction:0|#mp0}& %  addAction:0~#p0& %  removeAction:0"pY0&%window0! 0!k0!O0!l0!Mp0"kM0& % dataSource0"kp0&%delegate0"pk0&%table0"Bk0& %  nextKeyView0"km0"m0"B0"YB0&% initialFirstResponder01$ GSMutableSet1% NSMutableSet1&NSSet&NZgorm-1.3.1/English.lproj/GormPrefHeaders.gorm/data.info0000644000175000017500000000027014327003122021745 0ustar heronheronGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormPrefHeaders.gorm/data.classes0000644000175000017500000000073114327003122022451 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:" ); Super = NSObject; }; GormHeadersPref = { Actions = ( "addAction:", "removeAction:", "preloadAction:" ); Outlets = ( preloadButton, addButton, removeButton, window, table ); Super = NSObject; }; HeaderDataSource = { Actions = ( ); Outlets = ( ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormClassInspector.gorm/0000755000175000017500000000000014327003122020724 5ustar heronherongorm-1.3.1/English.lproj/GormClassInspector.gorm/objects.gorm0000644000175000017500000006461114327003122023253 0ustar heronheronGNUstep archive000f4240:0000002a:00000176:00000002:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSTabView%  @q0 @k  @q0 @kJ0 &0 % ? @2 @q @h  @q @hJ 0 1NSButton1 NSControl% @f @ @U@ @8  @U@ @8J! 0 % @& @ @U@ @8  @U@ @8J$ 0 &%0 1 NSButtonCell1 NSActionCell1NSCell0&%Add01NSFont% A@&&&&&&JJ&&&&&&&I0&&&& &&0 &%00&%Remove&&&&&&JJ&&&&&&&I&&& &&0 & 01 NSScrollView% @& @C @o` @b  @o` @bJ0 &01 NSClipView% @5 @8 @l @^  @l @^J01 NSTableView%  @l @e`  @l @e`J0 &%00%&&&&&&JJ&&&&&&&0 &01 NSTableColumn0&%column1 Cd A GP01NSTableHeaderCell1NSTextFieldCell0 & % Outlet Names0!% &&&&&&JJ &&&&&&&I0"1NSColor0#&% NSNamedColorSpace0$&% System0%&% controlShadowColor0&#$0'&% windowFrameTextColor0(&&&&&&JJ &&&&&&&I0)#0*&%System0+&%textBackgroundColor0,#*0-& % textColor0.#$0/& %  gridColor00#$01&% controlBackgroundColor021NSTableHeaderView%  @l @6  @l @6J203% @5 @ @l @6  @l @6J204 &2005 &061GSTableCornerView% @ @ @3 @6  @3 @6J07 &%% A @ @08 &09 &00:1 NSScroller% @ @7 @2 @^  @2 @^J0; &%0<&&&&&&JJ&&&&&&&J2 _doScroll:36I A A A A :0=1 NSRulerView%    J0> &30? &0@1 NSTabViewItem0A&%Outlets0B&%Outlets % 0C0D&%Actions0E&%Actions0F % ? @2 @q @h  @q @hJF0G% @f @ @U@ @8  @U@ @8J!F0H% @& @ @U@ @8  @U@ @8J$G0I &%0J0K&%Add0L% A@&&&&&&JJ&&&&&&&I&&& &&0M &%0N0O&%RemoveL&&&&&&JJ&&&&&&&I&&& &&0P &GH0Q% @& @C @o` @b  @o` @bJ0R &0S% @5 @8 @l @^  @l @^J0T%  @l @e`  @l @e`JTS0U &%0V&&&&&&JJ&&&&&&&0W &0X0Y&%column1 Cd A GP0Z0[& % Action Names![&&&&&&JJ &&&&&&&I"&0\&&&&&&JJ &&&&&&&I),.00]%  @l @6  @l @6J]0^% @5 @ @l @6  @l @6J]0_ &]00` &0a% @ @ @3 @6  @3 @6J0b &%% A @ @0c &0d &T00e% @ @7 @2 @^  @2 @^J0f &%0g&&&&&&JJ&&&&&&&JQ^aSI A A A A e0h%    J0i &^%F%J0j1 NSTextField% @$ @v @Q@ @2  @Q@ @2J 0k &%0l0m& % Class Name:m&&&&&&JJ &&&&&&&I),0n % @T@ @v @f @5  @f @5J 0o &%0pL&&&&&&JJ &&&&&&&I),0q% @& @p@ @o @W  @o @WJ 0r &0s% @5 @8 @l @Q@  @l @Q@J0t%  @l @e`  @l @e`Jts0u &%0v&&&&&&JJ&&&&&&&0w &0x0y&%column1 Ce A GP0z0{& % Parent Class!&&&&&&JJ &&&&&&&I"&0|0}&%quatre}&&&&&&JJ &&&&&&&I),.00~%  @l @6  @l @6J~0% @5 @ @l @6  @l @6J~0 &~0#$0& %  controlColor0 &0% @ @ @3 @6  @3 @6J0 &%% A @ @0 &0 &t00% @ @7 @2 @Q  @2 @QJ0 &%0&&&&&&JJ&&&&&&&Jq2 _doScroll:v24@0:8@16sI A A A A 0% @i @m @L @8  @L @8J 0 &%00&%Select&&&&&&JJ&&&&&&&I&&& &&0 % @& @m@ @Y@ @5  @Y@ @5J0 &%0&&&&&&JJ &&&&&&&I),0% @]@ @m @L @8  @L @8J0 &%00&%Search&&&&&&JJ&&&&&&&I&&& &&0#$0&% windowBackgroundColor0&%Window0&%Inspector Window @B @Ç @|I01!NSImage 00&% NSCalibratedWhiteColorSpace 0 &01"NSBitmapImageRep1# NSImageRep0&% NSDeviceRGBColorSpace @H @HII0I001$NSData&$$II*$[=T8J2R-!k[=U:K3xB-H'R-!k[=S7J2xB-H'/ ?[=S7I2xB-H'/ ?[=S7H0xB-H'/ ?[=R7I2xB-H'/ ?[=S7I0xB-H'/ ?[=R7I2xB-H'/ ?[=R7H0xB-H'/ ?[>X/!j:)H'/ ?D49  ?hft{y<;D ?hft}<;D ?<;D ?43:""""43:zzzzͱ""""EEEEEEEEEEEE43:555222t43:0?55hhhiiiyyyVVV777?43:~=0rdxxxUUU444?/17?43:5?0\Mzz{]]]QQQmmm_bn:9@5?0I>e]xxwvtsqpo}66<5?2A3QFA4H:|zzywutrqpbao++05?2@2@2A3B3C4E6}}|zxxwutrqpn}VT_=,, 5@2@3A3A3JdbqihvFEOQ-)Y)!W)`/$k3'q6*n4)l3'i2'f0&c/$`-$Y*!)5C4C4D4E6F7H7Ʀkkk)))LJRkjxihvhgu::B\/&[-$Y-$c/&l3'o4)l3'j2'g2&d0$a/$^-#X*!)5@2D4E6F7H7I8{{{[[[322QPZ^]jjhwhguQP[K33\-&W)_/$j3'm3'm4)j3'h2&d0&b/$_-#],#X*!)P'~>>ddd>>?87?4$$E)&_-#`0'_0&]/&^/&`/&`/&c0&j2'n3'k3'h2&d0$a/$^-#\,!Z,!X*!U)T))ttttttzzz;;;rqyjhwPPZ43:C@?w9,c2)b2)^,#_0&d2'g2'h2'k3)l3)l3)l3'l3'i2'f0&c/$_-#],#Z,!X*!W)T)S))rrr```FFF000mmm\[a<;CA)'^3,I::76v8,_-$b2'g2'l4)r7*s7*s7*w8,t7,q6*n4)k3'g2&d0$`-$],#[,!X*!W)U)S'S')YYY777XWcKJS|||SSS\2,KDD4I:I;A?>~>0b2)f2'p6*x:-y:-{;-x:-v9,s7*o4)l3'i2&f0&c/$_-#\,#Y*!W)T)S'R'S')TR^|z@?Gↄ\Zg<;CJJJm4)D4E6J;UIPEvI@q:/l4)m4)x:,};/{:-y:-w9,t7*q6*m4)j3'h2&c0&a/$]-#[,!X*!V)T)R'R'R')0/5?_^kCBJ43:?QQQ ^-#I:O>SBP?H7?2p6*s7*0|;/y:-p6*f0&d0&c/&`/$_-$]-#\,#T)!T)!T)!T)!T)!T)!T)!)))) ?h3'z;/T)!T)!T)!`/$`/$))))) ? 00$$R&   @ @p0 &0 &01%NSMutableDictionary1& NSDictionary&.0&% NSOwner0&%GormClassInspector0&%Button50&%TableColumn(1)00&%column2 BT A GP00&% !&&&&&&JJ &&&&&&&I"&0&&&&&&JJ &&&&&&&I),0& % TableColumn6x0&%Button40&%Button 0& % TableColumn500&%column2 CO A GP00& % Action NamesL&&&&&&JJ &&&&&&&I"&0&&&&&&JJ &&&&&&&I),0&%GormNSTableView0%  @c @d   @c @d J0 &%0L&&&&&&JJ&&&&&&&0 &00&%column2 C A GP00&% L&&&&&&JJ &&&&&&&I"&00&%nineL&&&&&&JJ &&&&&&&I),.00%  @c @6  @c @6J0± &0ñ%  @3 @6  @3 @6J0ı &%% A @ @0ű &0Ʊ&%Button3H0DZ&%TextFieldCell(0)l0ȱ& % TableColumn40ɱ0ʱ&%column1 BP A GP0˱0̱&% L&&&&&&JJ &&&&&&&I&0ͱ0α&%neufL&&&&&&JJ &&&&&&&I),0ϱ& % ButtonCell(1) 0б&%Button2G0ѱ&%TabViewItem(1)C0ұ& % TableColumn30ӱ0Ա&%column2 CO A GP0ձ0ֱ& % Outlet NamesL&&&&&&JJ &&&&&&&I"&0ױ&&&&&&JJ &&&&&&&I),0ر&%Cell(2)v0ٱ&%Button1 0ڱ&%TableColumn(0)0۱& % ButtonCell(5)0ܱ& % TableColumn20ݱ0ޱ&%column1 BP A GP0߱0&% L&&&&&&JJ &&&&&&&I&0ΐL&&&&&&JJ &&&&&&&I),0& % ScrollView2q0& % TableColumn10&%TabView0& % TableView(1)T0& % ButtonCell(0)0&%TabViewItem(0)@0&%View(2)F0&%Cell(1)V0& % TextField20& % ButtonCell(4)0& % TextField1n0& % ScrollView(1)Q0& % TableView(0)0& % TableColumn00&%column1 BP A GP00&% L&&&&&&JJ &&&&&&&I&00&%neufL&&&&&&JJ &&&&&&&I),0&%View(1) 0& % InspectorWin0&%TextFieldCell(2)0&%Cell(0)0&%GormNSTableView3t0& % ButtonCell(3)J0& % ScrollView(0)0&%TableColumn(2)X0&%TextFieldCell(1)p0& % TextFieldjP& % ButtonCell(2)NP& % TableColumn7PP&%column2 C5 A GPPP&% !&&&&&&JJ &&&&&&&I&PP&%two&&&&&&JJ &&&&&&&I),P &NNP 1'NSNibConnectorP '䐐P 'P 'P '㐐P'P'쐐P1(NSNibOutletConnectorP&%windowP(P&%tabViewP(P& % classFieldP'ܐP'ҐP'ȐP'P'P'ٰP'аP'ưP'␐P'P 'P!'P"'P#1)NSNibControlConnectorP$& % selectClass:P%(P&& % selectClassP''ꐐP('P))P*&%searchForClass:P+(P,&%searchP-(P.& % searchTextP/(P0& % parentClassP1)찤P2&%changeClassName:P3(P41*NSMutableString& % addActionP5(P6*& % removeActionP7(P8*& % addOutletP9(P:*& % removeOutletP;)ưP<*& % addAction:P=)аP>*& % removeAction:P?(P@*& % nextKeyViewPA(@PB(갦@PC(@PD(ٰ@PE(@PF(PG*&%initialFirstResponderPH'PI'PJ'PK'ڰPL'PM(PN& % outletTablePO'PP'PQ'PR'PS)PT& % selectOutlet:PU(PV& % nextKeyViewPW(PX& % actionTablePY)尤PZ& % selectAction:P[(P\& % nextKeyViewP]'P^'P_'氯P`)Pa&% NSFirstPb& % removeAction:Pc'ϰِPd)aPe& % addAction:Pf'ѰPg'ѐPh'АPi'ƐPj'ǰPk'Pl'ذPm'밮Pn'Po'۰Pp)ٰPq& % addOutlet:Pr)Ps& % removeOutlet:Pt%&gorm-1.3.1/English.lproj/GormClassInspector.gorm/data.info0000644000175000017500000000027014327003122022511 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormClassInspector.gorm/data.classes0000644000175000017500000000150714327003122023217 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "addOutlet:", "clickOnClass:", "selectOutlet:", "orderFrontFontPanel:", "removeOutlet:", "searchForClass:", "selectAction:", "selectClass:" ); Super = NSObject; }; GormClassInspector = { Actions = ( "select:", "removeAction:", "addAction:", "removeOutlet:", "addOutlet:", "selectClass:", "searchForClass:", "clickOnClass:", "changeClassName:", "selectOutlet:", "selectAction:" ); Outlets = ( classField, tabView, removeOutlet, addAction, actionTable, outletTable, removeAction, addOutlet, selectClass, parentClass, search, searchText ); Super = IBInspector; }; }gorm-1.3.1/English.lproj/GormImageInspector.gorm/0000755000175000017500000000000014327003122020701 5ustar heronherongorm-1.3.1/English.lproj/GormImageInspector.gorm/objects.gorm0000644000175000017500000001070314327003122023221 0ustar heronheronGNUstep archive000f4240:0000001b:0000005d:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @$ @$ @o @Z  @o @ZJ"0 &0 % @ @ @m @T  @m @TJ0 &0 1 NSTextField1 NSControl% @$ @K @G @3  @G @3J0 &%0 1NSTextFieldCell1 NSActionCell1NSCell0&%Width:01NSFont% A@&&&&&&JJ &&&&&&&I01NSColor0&% NSNamedColorSpace0&%System0&%textBackgroundColor00& % textColor0% @$ @@ @G @3  @G @3J0 &%00&%Height:&&&&&&JJ &&&&&&&I0% @$ @ @G @3  @G @3J0 &%00&%Name:&&&&&&JJ &&&&&&&I0% @O @K @L @3  @L @3J0 &%0 0!&!&&&&&&JJ &&&&&&&I0"0#&% System0$&% controlBackgroundColor0%% @O @@ @L @3  @L @3J0& &%0'!0(%!&&&&&&JJ &&&&&&&I"0)% @O @ @d @3  @d @3J0* &%0+!(!&&&&&&JJ &&&&&&&I"0,0-& % Attributes&&&&&&JJ &&&&&&&I0.#0/&% windowBackgroundColor @ @%%001 NSImageView% @$ @^@ @o @p  @o @pJ01 &%021 NSImageCell031NSImage(&&&&&&JJ&&&&&&&%%% @I @I.04&%Window05&%Inspector Window5 @S@ @Ç @|I0607&% NSApplicationIcon&   @ @p08 &09 &0:1NSMutableDictionary1 NSDictionary& 0;&%Box0<& % TextField30=& % TextField 0>& % TextField5)0?& % TextField20@&% NSOwner0A&%GormImageInspector0B& % ImageCell(0)20C& % ImageView(0)00D& % TextField10E& % InspectorWin0F& % TextField4%0G &0H1NSNibConnectorE0I&% NSOwner0J=0KD0L?0M<0NFI0O>I0P;0Q1NSNibOutletConnectorIE0R&%window0SI<0T&%width0UI>0V&%name0WIF0X&%height0YC0ZBC0[IC0\& % imageView0]&gorm-1.3.1/English.lproj/GormImageInspector.gorm/data.info0000644000175000017500000000027014327003122022466 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormImageInspector.gorm/data.classes0000644000175000017500000000045714327003122023177 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:" ); Super = NSObject; }; GormImageInspector = { Actions = ( ); Outlets = ( height, width, imageView, name ); Super = IBInspector; }; }gorm-1.3.1/English.lproj/GormScrollViewAttributesInspector.gorm/0000755000175000017500000000000014327003122024017 5ustar heronherongorm-1.3.1/English.lproj/GormScrollViewAttributesInspector.gorm/objects.gorm0000644000175000017500000005070014327003122026340 0ustar heronheronGNUstep archive000f4240:00000023:000000f9:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @(01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 % @ @n @^ @R  @^ @RJ0 &0 % @ @ @[@ @G  @[@ @GJ0 &01 NSColorWell1 NSControl% @= @$ @J @>  @J @>J0 &%01NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&01NSColor0&% NSCalibratedWhiteColorSpace ?* ?01NSTextFieldCell1 NSActionCell0&%Background Color0% A@&&&&&&JJ&&&&&&&I00&% NSNamedColorSpace0&% System0&% windowBackgroundColor00&%System0& % textColor @ @%%0 % @ @e @^ @Q  @^ @QJ 0! &0" % @ @ @[@ @F  @[@ @FJ0# &0$1NSButton% @& @8 @S @0  @S @0J0% &%0&1 NSButtonCell0'&%Vertical0(1NSImage0)1NSMutableString&%GSSwitch&&&&&&JJ&&&&&&&I0*0+&%GSSwitchSelected&&& &&0,% @& @ @S @0  @S @0J0- &%0.0/& % Horizontal(/&&&&&&JJ&&&&&&&I*&&& &&0001& % Scrollbars&&&&&&JJ&&&&&&&I @ @%%02 % @a @n @^ @R  @^ @RJ 03 &04 % @ @ @[@ @G  @[@ @GJ05 &061NSMatrix% @ @( @Y @:  @Y @:J07 &%08&&&&&&JJ&&&&&&&I% @9 @: 090:&% controlBackgroundColor90;& % NSButtonCell0<0=&%Button&&&&&&JJ&&&&&&&I&&& &&%%0> &0?0@&%Button0A0B& % noBorder_nib&&&&&&JJ&&&&&&&I&&& &&0C0D&%Button0E0F&%line_nib&&&&&&JJ&&&&&&&I&&& &&0G0H&%Button0I0J& % bezel_nib&&&&&&JJ&&&&&&&I&&& &&0K0L0M& % ridge_nib&&&&&&JJ&&&&&&&I&&& &&C0N0O&%Borders&&&&&&JJ&&&&&&&I @ @%%0P % @ @R@ @o @W  @o @WJ"0Q &0R % @ @ @m @Q  @m @QJ0S &0T1NSForm% @G @B @b @5  @b @5J0U &%0V1 NSFormCell&&&&&&JJ&&&&&&&I 0W0X&%Field:&&&&&&JJ&&&&&&&% @b @5 @990Y& % NSFormCell%%0Z &0[&&&&&&JJ&&&&&&&I B0\0]& % Line Amount:&&&&&&JJ&&&&&&&[0^% @E @$ @c` @5  @c` @5J0_ &%0`&&&&&&JJ&&&&&&&I 0a0b&%Field:&&&&&&JJ&&&&&&&% @c` @5 @990c& % NSFormCell%%0d &0e&&&&&&JJ&&&&&&&I B0f0g& % Page Context:&&&&&&JJ&&&&&&&e0h0i& % Parameters&&&&&&JJ&&&&&&&I @ @%%0j % @a @e @^ @Q  @^ @QJ0k &0l % @ @ @[@ @F  @[@ @FJ0m &0n% @( @7 @S@ @0  @S@ @0J0o &%0p0q&%Vertical(0r%q&&&&&&JJ&&&&&&&I*&&& &&0s% @( @ @S@ @0  @S@ @0J0t &%0u0v& % Horizontal(rv&&&&&&JJ&&&&&&&I*&&& &&0w0x&%Rulersrx&&&&&&JJ&&&&&&& @ @%%0y0z&%Title0{% A &&&&&&JJ&&&&&&& %%0|&%Window0}&%Inspector Window} @ @Ç @|I0~ 0 0 &01NSBitmapImageRep1 NSImageRep0&% NSDeviceRGBColorSpace @H @HII0I001NSData&$$II*$ (/LBaq/EQ~ -5RC`paua "!!!,  ,3QEcsgww3KX /;h2I\B`yQw 0)槧777G -5QGdudyeU{ahX )` 4adg777I !/7THevm~qnkphir^&9H !%}~~򣣣 "/7SJhyi~|s|yknaTzef5Ma  4{GMKfx`qxwvuutrq{ro|]U|rLq '  <"1>j0FYBayNrTy_wwy{yvuutsrqrihffRytT} E#BGiRxX]bnw|rxrrqoqjhiltuZoY$.h!G_|~y}gd|spos|ls|ke~`cb)LP 2GScig|bc~m`gko_Z]h?dx ,6px|~zp["08 !%Lpf|b`wouujfkkeiT!LCl}{xm[ .6 (((*\s-BS+7` 9:Ukpdvutt{bahc@Zi 444222 2 *>Mhbvttsrqq~reerykX>^q$2< 3333334(3b^kmusqqpomljiggelzxiU3M\zK V! 333111:U~whqqpommkjhhsvcLs%8C G >!  Ote]tponmlkij~sb?_q&-x0 9! k FfRzIkbqomlktlX2KY U  6!w P V:0EQ}nl||lPw%7@ B 1hf3iycA`q!'p)  Nrzr]3JW W &8BqQv$5><% 00$$R&   @ @p0 &0 &01NSMutableDictionary1 NSDictionary&$0&% NSOwner0&!%!GormScrollViewAttributesInspector0& % ActionCell(0)80& % ButtonCell(6)p0&%Button$0& % FormCell(1)V0& % ButtonCell(1).0&%View(3)R0& % ColorWell0&%Button1,0& % ButtonCell(5)K0&%Box 0&%Form1^0& % FormCell(0)[0& % Button(1)s0& % ButtonCell(0)&0&%View(2)40& % ButtonCell(4)G0&%Box(1)0&%Box3P0&%Matrix160&%Box220& % Button(0)n0&%Cell(0)0& % InspectorWin0& % FormCell(3)`0&%Box1 0&%View(1)"0&%FormT0&%Box(0)j0& % ButtonCell(3)C0&%View(5) 0& % ButtonCell(7)u0& % FormCell(2)e0&%View(0) 0& % ButtonCell(2)?0&%View(4)l0 &3301!NSNibConnector0&% NSOwner0!0!0!0!0!0!01"NSNibOutletConnector0&%color0!0!0"0&%verticalScroll0"0&%horizontalScroll0"0& % borderMatrix0!0!0"0±& % lineAmount0ñ"0ı& % pageContext01#NSNibControlConnector0Ʊ&%colorSelected:0DZ#0ȱ&%verticalSelected:0ɱ#0ʱ&%horizontalSelected:0˱#0̱&%borderSelected:0ͱ"0α&%window0ϱ"0б&%initialFirstResponder0ѱ!0ұ!0ӱ!0Ա!0ձ!0ֱ!0ױ!0ر!0ٱ#0ڱ&%verticalRuler:0۱#0ܱ&%horizontalRuler:0ݱ"0ޱ&%horizontalRuler0߱"0& % verticalRuler0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0&gorm-1.3.1/English.lproj/GormScrollViewAttributesInspector.gorm/data.info0000644000175000017500000000027014327003122025604 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormScrollViewAttributesInspector.gorm/data.classes0000644000175000017500000000131314327003122026305 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "borderSelected:", "colorSelected:", "horizontalRuler:", "horizontalSelected:", "verticalRuler:", "orderFrontFontPanel:", "verticalSelected:" ); Super = NSObject; }; GormScrollViewAttributesInspector = { Actions = ( "borderSelected:", "horizontalSelected:", "verticalSelected:", "colorSelected:", "horizontalRuler:", "verticalRuler:" ); Outlets = ( borderMatrix, horizontalScroll, verticalScroll, color, lineAmount, pageContext, horizontalRuler, verticalRuler ); Super = IBInspector; }; }gorm-1.3.1/English.lproj/GormInspectorPanel.gorm/0000755000175000017500000000000014327003122020716 5ustar heronherongorm-1.3.1/English.lproj/GormInspectorPanel.gorm/objects.gorm0000644000175000017500000001074714327003122023246 0ustar heronheronGNUstep archive00002b5c:00000021:00000083:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0&% GormInspectorsManager0& %  GormNSPanel01GSWindowTemplate1GSClassSwapper0&%NSPanel1NSPanel1 NSWindow1 NSResponder% ? A C CՀ& % Dp D\01 NSView% ? A C CՀ  C CՀ&0 1 NSMutableArray1 NSArray&0 1NSBox%  C C  C C&0 &0 %  C C  C C&0 &01NSCell0&01NSFont%&&&&&&&& %%0% Cŀ C @  C @& 0 &0 % @ @ C   C &0 &00&&&&&&&&& %%0% Cƀ C A  C A& 0 &0 %  C A  C A&0 &01 NSPopUpButton1NSButton1 NSControl% B @@ C A  C A&0 &%01NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell1 NSActionCell0&&&&&&&&&01NSMenu0 &0! &0"1 NSMenuItem0#& %  Attributes0$&% 1&&%0%1NSImage0&& % common_Nibble%0'0(& %  Connections0)&% 2&&%%0*0+&% Size0,&% 3&&%%0-0.&% Help0/&% 4&&%%0001& %  Custom Class02&% 5&&%%%03&04&&&&""%%%%%0506&&&&&&&&& %%071NSColor08&%NSNamedColorSpace09&% System0:&% windowBackgroundColor0;&% Window0<&% Panel< C C F@ F@%&   D D0=& %  MenuItem10>0?& %  Connections0@&% 2&&%%0A& %  MenuItem20B0C&% Size0D&% 3&&%%0E& %  MenuItem30F0G&% Help0H&% 4&&%%0I& %  MenuItem40J0K& %  Custom Class0L&% 5&&%%0M& %  MenuItem5"0N& %  MenuItem6'0O& %  MenuItem7*0P& %  MenuItem8-0Q&% MenuItem0R0S& %  Attributes0T&% 1&&%%%0U& %  MenuItem900V&% GSCustomClassMap0W&0X&% Box 0Y&% View1 0Z&% View20[&% View30\&% GormNSPopUpButton0]&% Box10^&% View0_&% Box20` &0a1NSNibConnector0b&%NSOwner0c^0dX^0eYX0f]^0gZ]0hQ0i=0jA0kE0lI0m_^0n[_0o\[0pM0qN0rO0sP0tU0u1NSNibOutletConnectorbX0v& %  inspectorView0wb_0x& %  selectionView0yb\0z&% popup0{b0|&% panel0}1NSNibControlConnectorMb0~&% setCurrentInspector:0Nb~0Ob~0Pb~0Ub~01 GSMutableSet1 NSMutableSet1!NSSet&gorm-1.3.1/English.lproj/GormInspectorPanel.gorm/data.info0000644000175000017500000000032214327003122022501 0ustar heronheronGNUstep archive00002b5c:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&% Latest Version0& %  Typed Streamgorm-1.3.1/English.lproj/GormInspectorPanel.gorm/data.classes0000644000175000017500000000073614327003122023214 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "setCurrentInspector:" ); Super = NSObject; }; GormInspectorsManager = { Actions = ( "setCurrentInspector:" ); Outlets = ( panel, popup, selectionView, inspectorView ); Super = IBInspectorManager; }; IBInspectorManager = { Actions = ( ); Outlets = ( currentMode, selectedObject ); Super = NSObject; }; }gorm-1.3.1/English.lproj/GormHelpInspector.gorm/0000755000175000017500000000000014327003122020547 5ustar heronherongorm-1.3.1/English.lproj/GormHelpInspector.gorm/objects.gorm0000644000175000017500000000403614327003122023071 0ustar heronheronGNUstep archive00002c88:0000001b:00000038:00000000:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSPanel1 NSPanel1 NSWindow1 NSResponder% ? A C C&% Ce D01 NSView% ? A C C  C C&01 NSMutableArray1NSArray&01 NSTextField1 NSControl% B C C> A  C> A& 0 &%0 1NSTextFieldCell1 NSActionCell1NSCell0 &0 1NSFont% &&&&&&&&0%0 1NSColor0 &%NSNamedColorSpace0&%System0&%textBackgroundColor0 0& % textColor0% @ C B A  B A&0 &%00& % Tool Tips:0% A@&&&&&&&&0%0 0&%System0&%textBackgroundColor0 0& % textColor0 0&%System0&%windowBackgroundColor0&%Window0 &%Inspector Window  @@ B F@ F@%&   D D0! &0" &0#1NSMutableDictionary1 NSDictionary&0$& % TextField(0)0%&%NSOwner0&&%GormHelpInspector0'& % InspectorWin0(& % TextField(1)0)&%View(0)0* &0+1NSNibConnector'0,&%NSOwner0-)'0.$)0/()001NSNibControlConnector$,011NSMutableString&%ok:021NSNibOutletConnector$,03&%delegate04,'05&%window06,$07&%toolTip08&gorm-1.3.1/English.lproj/GormHelpInspector.gorm/data.info0000644000175000017500000000027014327003122022334 0ustar heronheronGNUstep archive00002c88:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/English.lproj/GormHelpInspector.gorm/data.classes0000644000175000017500000000025214327003122023036 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormHelpInspector = { Actions = ( ); Outlets = ( toolTip ); Super = IBInspector; }; }gorm-1.3.1/GormInfo.plist0000644000175000017500000000371414360746717014311 0ustar heronheron{ NSIcon = "Gorm.tiff"; NSMainNibFile = "Gorm.gorm"; NSRole = "Editor"; NSTypes = ( { NSName = "GSGormFileType"; NSHumanReadableName = "GNUstep Gorm"; NSRole = Editor; NSDocumentClass = GormDocument; NSUnixExtensions = ( "gorm" ); NSIcon = "GormFile.tiff"; }, { NSName = "GSStoryboardFileType"; NSHumanReadableName = "Cocoa Storyboard"; NSRole = Viewer; NSDocumentClass = GormDocument; NSUnixExtensions = ( "storyboard" ); NSIcon = "GormFile.tiff"; }, { NSName = "GSNibFileType"; NSHumanReadableName = "Cocoa Nib"; NSRole = Viewer; NSDocumentClass = GormDocument; NSUnixExtensions = ( "nib" ); NSIcon = "GormNib.tiff"; }, { NSName = "GSGModelFileType"; NSHumanReadableName = "GNUstep GModel"; NSRole = Viewer; NSDocumentClass = GormDocument; NSUnixExtensions = ( "gmodel" ); NSIcon = "FileIcon_gmodel.tiff"; }, { NSName = "GSXibFileType"; NSHumanReadableName = "Cocoa Xib"; NSRole = Viewer; NSDocumentClass = GormDocument; NSUnixExtensions = ( "xib" ); NSIcon = "GormNib.tiff"; }, { NSUnixExtensions = ( "palette" ); NSIcon = "GormPalette.tiff"; } ); ApplicationDescription = "[GNUstep | Graphical] Object Relationship Modeller"; ApplicationIcon = "Gorm.tiff"; ApplicationName = "Gorm"; ApplicationRelease = "Gorm 1.3.1 (Release)"; Authors = ("Gregory John Casamento ", "Adam Fedor ", "Richard Frith-Macdonald ", "Wolfgang Lux ", "Pierre-Yves Rivaille ", "Sergii Stoian "); Copyright = "Copyright (C) 1999-2022 FSF"; CopyrightDescription = "Released under the GNU General Public License 3.0"; NSBuildVersion = "1.3.1 Jan 15 2022"; GSDesktopInstallationDomain=SYSTEM; } gorm-1.3.1/INSTALL0000644000175000017500000000114414360755475012541 0ustar heronheron1 Required software ------------------- You need to have the GNUstep core libraries installed in order to compile and use Gorm. The core packages are, at a minimum: * gnustep-make * gnustep-base * gnustep-gui * gnustep-back See for further information. 2 Build and Install ------------------- Steps to build: * make && make install Please note that GormLib must be installed for Gorm.app to run. 3 Trouble --------- Give us feedback! Tell us what you like; tell us what you think could be better. Send bug reports and patches to . gorm-1.3.1/.cvsignore0000644000175000017500000000006014327003123013457 0ustar heronheron*.app *.debug *.profile *.palette *obj .gdbinit gorm-1.3.1/.gitignore0000644000175000017500000000010014327003122013441 0ustar heronheron*.app *.debug *.profile *.palette *.plugin obj InterfaceBuilder gorm-1.3.1/GNUmakefile.postamble0000644000175000017500000000242714327003124015530 0ustar heronheron# # GNUmakefile.postamble # # Copyright (C) 2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # # This file is part of GNUstep # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; see the file COPYING.LIB. # If not, write to the Free Software Foundation, # 51 Franklin Street, Fifth Floor, Boston, MA 02111 # USA. # # Define this variable if not defined for backwards-compatibility as # it is only available in gnustep-make >= 2.0.5 ifeq ($(LN_S_RECURSIVE),) LN_S_RECURSIVE = $(LN_S) endif before-all:: $(RM_LN_S) InterfaceBuilder; \ $(LN_S_RECURSIVE) GormLib InterfaceBuilder after-all:: after-clean:: after-distclean:: after-clean:: $(RM_LN_S) InterfaceBuilder gorm-1.3.1/GormObjCHeaderParser/0000755000175000017500000000000014360746517015435 5ustar heronherongorm-1.3.1/GormObjCHeaderParser/OCMethod.m0000644000175000017500000001400114327003122017226 0ustar heronheron/* OCHeaderParser.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include @implementation OCMethod - (id) initWithString: (NSString *)string { if((self = [super init]) != nil) { ASSIGN(methodString, string); } return self; } - (void) dealloc { RELEASE(methodString); RELEASE(name); [super dealloc]; } - (NSString *) name { return name; } - (void) setName: (NSString *)aName { ASSIGN(name,aName); } - (BOOL) isAction { return isAction; } - (void) setIsAction: (BOOL)flag { isAction = flag; } - (BOOL) isClassMethod { return isClassMethod; } - (void) setIsClassMethod: (BOOL) flag { isClassMethod = flag; } - (void) _strip { NSScanner *stripScanner = [NSScanner scannerWithString: methodString]; NSString *resultString = @""; // [NSString stringWithString: @""]; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; while(![stripScanner isAtEnd]) { NSString *string = nil; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &string]; resultString = [resultString stringByAppendingString: string]; if(![stripScanner isAtEnd]) { resultString = [resultString stringByAppendingString: @" "]; } } ASSIGN(methodString, resultString); } /** * Parse the method. */ - (void) parse { NSRange notFound = NSMakeRange(NSNotFound,0); NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; NSScanner *scanner = nil; NSString *tempSelector = nil; NSString *selectorPart = nil; NSString *returnPart = nil; NSString *argPart = nil; NSRange range; [self _strip]; scanner = [NSScanner scannerWithString: methodString]; // stringByTrimmingCharactersInSet: wsnl]]; isClassMethod = ([methodString compare: @"+" options: NSLiteralSearch range: NSMakeRange(0,1)] == NSOrderedSame); if(isClassMethod) { [scanner scanString: @"+" intoString: NULL]; [scanner scanCharactersFromSet: wsnl intoString: NULL]; } else { [scanner scanString: @"-" intoString: NULL]; [scanner scanCharactersFromSet: wsnl intoString: NULL]; } if(NSEqualRanges((range = [methodString rangeOfString: @":"]),notFound) == NO && isClassMethod == NO) { [scanner scanUpToAndIncludingString: @":" intoString: &tempSelector]; argPart = [methodString substringFromIndex: (range.location + 1)]; // the rest of the line... if(NSEqualRanges([tempSelector rangeOfString: @"("],notFound) == NO) { NSScanner *selScanner = [NSScanner scannerWithString: tempSelector]; [selScanner scanUpToAndIncludingString: @"(" intoString: NULL]; [selScanner scanUpToString: @")" intoString: &returnPart]; [selScanner scanString: @")" intoString: NULL]; [selScanner scanUpToAndIncludingString: @":" intoString: &selectorPart]; if([returnPart isEqual: @"IBAction"] || [returnPart isEqual: @"id"] || [returnPart isEqual: @"void"]) { BOOL noMoreArgs = NSEqualRanges([argPart rangeOfString: @":"],notFound); if(NSEqualRanges([argPart rangeOfString: @"("],notFound) == NO && noMoreArgs) { NSString *argType = nil; NSScanner *argScanner = [NSScanner scannerWithString: argPart]; [argScanner scanUpToAndIncludingString: @"(" intoString: NULL]; [argScanner scanUpToString: @")" intoString: &argType]; [argScanner scanString: @")" intoString: NULL]; if([argType isEqual: @"id"]) { isAction = YES; } } else if(noMoreArgs) { isAction = YES; } else { selectorPart = [selectorPart stringByAppendingString: argPart]; } } ASSIGN(name, [selectorPart stringByTrimmingCharactersInSet: wsnl]); } else // No return type specified. The default is id, so we must treat it as a potential action... { BOOL noMoreArgs = NSEqualRanges([argPart rangeOfString: @":"],notFound); NSScanner *selScanner = [NSScanner scannerWithString: tempSelector]; [selScanner scanUpToAndIncludingString: @":" intoString: &selectorPart]; if(NSEqualRanges([argPart rangeOfString: @"("],notFound) == NO && noMoreArgs) { NSString *argType = nil; NSScanner *argScanner = [NSScanner scannerWithString: argPart]; [argScanner scanUpToAndIncludingString: @"(" intoString: NULL]; [argScanner scanUpToString: @")" intoString: &argType]; [argScanner scanString: @")" intoString: NULL]; if([argType isEqual: @"id"]) { isAction = YES; } } else if(noMoreArgs) { isAction = YES; } else { selectorPart = [selectorPart stringByAppendingString: argPart]; } ASSIGN(name, [selectorPart stringByTrimmingCharactersInSet: wsnl]); } } else { [scanner scanUpToCharactersFromSet: wsnl intoString: &tempSelector]; if(NSEqualRanges([tempSelector rangeOfString: @"("],notFound) == NO) { NSScanner *selScanner = [NSScanner scannerWithString: tempSelector]; [selScanner scanUpToAndIncludingString: @")" intoString: NULL]; [selScanner scanUpToCharactersFromSet: wsnl intoString: &selectorPart]; ASSIGN(name, [selectorPart stringByTrimmingCharactersInSet: wsnl]); } } } @end gorm-1.3.1/GormObjCHeaderParser/ParserFunctions.m0000644000175000017500000000353314327003122020721 0ustar heronheron/* ParserFunctions.m * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: Jan 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include "ParserFunctions.h" BOOL lookAhead(NSString *stringToScan, NSString *stringToFind) { NSRange range; return (NSEqualRanges((range = [stringToScan rangeOfString: stringToFind]), NSMakeRange(NSNotFound,0)) == NO); } BOOL lookAheadForToken(NSString *stringToScan, NSString *stringToFind) { NSScanner *scanner = [NSScanner scannerWithString: stringToScan]; NSString *resultString = @""; // [NSString stringWithString: @""]; [scanner setCharactersToBeSkipped: nil]; [scanner scanString: stringToFind intoString: &resultString]; if([resultString isEqualToString: stringToFind]) { NSString *postTokenString = @""; // [NSString stringWithString: @""]; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; [scanner scanCharactersFromSet: wsnl intoString: &postTokenString]; if([postTokenString length] == 0) { return NO; } return YES; } return NO; } gorm-1.3.1/GormObjCHeaderParser/OCIVarDecl.h0000644000175000017500000000227414327003122017443 0ustar heronheron/* OCHeaderParser.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #ifndef INCLUDED_OCIVarDecl_h #define INCLUDED_OCIVarDecl_h @class NSMutableArray, NSString; @interface OCIVarDecl : NSObject { NSString *ivarString; NSMutableArray *ivars; } - (id) initWithString: (NSString *)string; - (NSArray *) ivars; - (void) parse; @end #endif gorm-1.3.1/GormObjCHeaderParser/OCClass.h0000644000175000017500000000332414327003122017054 0ustar heronheron/* OCHeaderParser.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #ifndef INCLUDED_OCClass_h #define INCLUDED_OCClass_h @class NSMutableArray, NSString; @interface OCClass : NSObject { NSMutableArray *ivars; NSMutableArray *methods; NSMutableArray *protocols; NSString *className; NSString *superClassName; NSString *classString; BOOL isCategory; } - (id) initWithString: (NSString *)string; - (NSArray *) methods; - (void) addMethod: (NSString *)name isAction: (BOOL) flag; - (NSArray *) ivars; - (void) addIVar: (NSString *)name isOutlet: (BOOL) flag; - (NSString *) className; - (void) setClassName: (NSString *)name; - (NSString *) superClassName; - (void) setSuperClassName: (NSString *)name; - (BOOL) isCategory; - (void) setIsCategory: (BOOL)flag; - (void) parse; @end #endif gorm-1.3.1/GormObjCHeaderParser/ParserFunctions.h0000644000175000017500000000217714327003122020717 0ustar heronheron/* ParserFunctions.h * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: Jan 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef INCLUDED_ParserFunctions_h #define INCLUDED_ParserFunctions_h #include BOOL lookAhead(NSString *stringToScan, NSString *stringToFind); BOOL lookAheadForToken(NSString *stringToScan, NSString *stringToFind); #endif gorm-1.3.1/GormObjCHeaderParser/OCMethod.h0000644000175000017500000000264714327003122017236 0ustar heronheron/* OCMethod.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #ifndef INCLUDED_OCMethod_h #define INCLUDED_OCMethod_h @class NSMutableArray, NSString; @interface OCMethod : NSObject { NSString *name; NSString *methodString; BOOL isAction; BOOL isClassMethod; } - (id) initWithString: (NSString *)string; - (NSString *)name; - (void) setName: (NSString *)aName; - (BOOL) isAction; - (void) setIsAction: (BOOL)flag; - (BOOL) isClassMethod; - (void) setIsClassMethod: (BOOL) flag; - (void) parse; @end #endif gorm-1.3.1/GormObjCHeaderParser/Tests/0000755000175000017500000000000014327003122016514 5ustar heronherongorm-1.3.1/GormObjCHeaderParser/Tests/GormObjCHeaderParser/0000755000175000017500000000000014327003122022444 5ustar heronherongorm-1.3.1/GormObjCHeaderParser/Tests/GormObjCHeaderParser/README.md0000644000175000017500000000000014327003122023711 0ustar heronherongorm-1.3.1/GormObjCHeaderParser/Tests/GNUmakefile0000644000175000017500000000416614327003122020575 0ustar heronheron# # Tests Makefile for Gorm ObjC Parser Library. # # Copyright (C) 2011 Free Software Foundation, Inc. # # Written by: Richard Frith-Macdonald # # This file is part of the GNUstep GUI Library. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public # License along with this library; if not, write to the Free # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, # Boston, MA 02111 USA # ifeq ($(GNUSTEP_MAKEFILES),) GNUSTEP_MAKEFILES := $(shell gnustep-config --variable=GNUSTEP_MAKEFILES 2>/dev/null) ifeq ($(GNUSTEP_MAKEFILES),) $(warning ) $(warning Unable to obtain GNUSTEP_MAKEFILES setting from gnustep-config!) $(warning Perhaps gnustep-make is not properly installed,) $(warning so gnustep-config is not in your PATH.) $(warning ) $(warning Your PATH is currently $(PATH)) $(warning ) endif endif ifeq ($(GNUSTEP_MAKEFILES),) $(error You need to set GNUSTEP_MAKEFILES before running this!) endif include $(GNUSTEP_MAKEFILES)/common.make TOP_DIR := $(shell dirname $(CURDIR)) all:: @(echo If you want to run the gnustep-gui testsuite, please type \'make check\') check:: (\ ADDITIONAL_INCLUDE_DIRS="-I$(TOP_DIR)/." ADDITIONAL_LIB_DIRS="-L$(TOP_DIR)/$(GNUSTEP_OBJ_DIR)";\ LD_LIBRARY_PATH="$(TOP_DIR)/$(GNUSTEP_OBJ_DIR):${LD_LIBRARY_PATH}";\ export ADDITIONAL_INCLUDE_DIRS;\ export ADDITIONAL_LIB_DIRS;\ export LD_LIBRARY_PATH;\ export PATH;\ if [ "$(DEBUG)" = "" ]; then \ gnustep-tests GormObjCHeaderParser;\ else \ gnustep-tests --debug GormObjCHeaderParser;\ fi; \ ) clean:: -gnustep-tests --clean include $(GNUSTEP_MAKEFILES)/rules.make gorm-1.3.1/GormObjCHeaderParser/OCIVarDecl.m0000644000175000017500000001103314327003122017441 0ustar heronheron/* OCIVarDecl.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include #include @implementation OCIVarDecl - (id) initWithString: (NSString *)string { if((self = [super init]) != nil) { ASSIGN(ivarString, string); ivars = [[NSMutableArray alloc] init]; } else { RELEASE(self); } return self; } - (NSArray *)ivars { return ivars; } - (void) dealloc { RELEASE(ivarString); RELEASE(ivars); [super dealloc]; } - (void) _strip { NSString *replacementString = [ivarString stringByReplacingOccurrencesOfString:@"*" withString:@" "]; NSScanner *stripScanner = [NSScanner scannerWithString: replacementString]; NSString *resultString = nil; NSString *tempString = @""; NSString *tempString2 = @""; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; NSString *typeName = @""; NSString *varName = @""; while(![stripScanner isAtEnd]) { NSString *string = nil; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &string]; tempString = [tempString stringByAppendingString: string]; if(![stripScanner isAtEnd]) { tempString = [tempString stringByAppendingString: @" "]; } } if(lookAhead(tempString, @"*")) { stripScanner = [NSScanner scannerWithString: tempString]; while(![stripScanner isAtEnd]) { NSString *string = nil, *string2 = nil; [stripScanner scanUpToString: @"*" intoString: &string]; [stripScanner scanString: @"*" intoString: NULL]; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &string2]; tempString2 = [tempString2 stringByAppendingString: string]; tempString2 = [tempString2 stringByAppendingString: string2]; } } else { tempString2 = tempString; } // strip protocol qualifiers if(lookAhead(tempString2,@"<")) { stripScanner = [NSScanner scannerWithString: tempString2]; [stripScanner scanUpToString: @"<" intoString: &typeName]; [stripScanner scanUpToAndIncludingString: @">" intoString: NULL]; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &varName]; resultString = [[typeName stringByAppendingString: @" "] stringByAppendingString: varName]; } else { resultString = tempString2; } ASSIGN(ivarString, resultString); } - (void) parse { NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; [self _strip]; if(lookAhead(ivarString,@",")) { OCIVar *ivar = nil; NSScanner *scanner = [NSScanner scannerWithString: ivarString]; NSString *tempIvar = nil; BOOL isOutlet = NO; // scan the first one in... [scanner scanUpToString: @"," intoString: &tempIvar]; [scanner scanString: @"," intoString: NULL]; ivar = AUTORELEASE([[OCIVar alloc] initWithString: tempIvar]); [ivar parse]; [ivars addObject: ivar]; isOutlet = [ivar isOutlet]; while(![scanner isAtEnd]) { NSString *name = nil; OCIVar *newIvar = nil; [scanner scanCharactersFromSet: wsnl intoString: NULL]; [scanner scanUpToString: @"," intoString: &name]; [scanner scanString: @"," intoString: NULL]; [scanner scanCharactersFromSet: wsnl intoString: NULL]; newIvar = AUTORELEASE([[OCIVar alloc] initWithString: nil]); [newIvar setName: name]; [newIvar setIsOutlet: isOutlet]; [ivars addObject: newIvar]; } } else // for everything else... { OCIVar *ivar = AUTORELEASE([[OCIVar alloc] initWithString: ivarString]); [ivar parse]; [ivars addObject: ivar]; } } @end gorm-1.3.1/GormObjCHeaderParser/NSScanner+OCHeaderParser.h0000644000175000017500000000254114327003122022202 0ustar heronheron/* NSScanner+OCHeaderParser.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #ifndef INCLUDED_NSScanner_OCHeaderParser_h #define INCLUDED_NSScanner_OCHeaderParser_h @class NSString, NSCharacterSet; @interface NSScanner (OCHeaderParser) - (void) scanUpToAndIncludingString: (NSString *)string intoString: (NSString **)buffer; - (void) scanUpToAndIncludingCharactersFromSet: (NSCharacterSet *)set intoString: (NSString **)buffer; @end #endif gorm-1.3.1/GormObjCHeaderParser/GNUmakefile0000644000175000017500000000221414327003122017463 0ustar heronheron# # GNUmakefile # Written by Gregory John Casamento # PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make # # Subprojects # # # Library # LIBRARY_VAR=GMOBJCHEADERPARSER LIBRARY_NAME=libGormObjCHeaderParser libGormObjCHeaderParser_HEADER_FILES_DIR=. libGormObjCHeaderParser_HEADER_FILES_INSTALL_DIR=/GormObjCHeaderParser ADDITIONAL_INCLUDE_DIRS = -I.. srcdir = . include ./Version # # Additional libraries # libGormObjCHeaderParser_LIBRARIES_DEPEND_UPON += -lgnustep-gui -l$(FOUNDATION_LIBRARY_NAME) # # Header files # libGormObjCHeaderParser_HEADER_FILES= \ GormObjCHeaderParser.h \ NSScanner+OCHeaderParser.h \ OCClass.h \ OCHeaderParser.h \ OCIVar.h \ OCIVarDecl.h \ OCMethod.h \ ParserFunctions.h # # Class files # libGormObjCHeaderParser_OBJC_FILES= \ NSScanner+OCHeaderParser.m \ OCClass.m \ OCHeaderParser.m \ OCIVar.m \ OCIVarDecl.m \ OCMethod.m \ ParserFunctions.m # # C files # libGormObjCHeaderParser_C_FILES= HEADERS_INSTALL = $(libGormObjCHeaderParser_HEADER_FILES) -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/library.make -include GNUmakefile.postamble gorm-1.3.1/GormObjCHeaderParser/OCClass.m0000644000175000017500000001505314327003122017063 0ustar heronheron/* OCClass.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include #include #include #include @implementation OCClass - (id) initWithString: (NSString *)string { if((self = [super init]) != nil) { methods = [[NSMutableArray alloc] init]; ivars = [[NSMutableArray alloc] init]; ASSIGN(classString, string); } return self; } - (void) dealloc { RELEASE(methods); RELEASE(ivars); RELEASE(classString); RELEASE(className); RELEASE(superClassName); [super dealloc]; } - (NSArray *) methods { return methods; } - (void) addMethod: (NSString *)name isAction: (BOOL) flag { OCMethod *method = AUTORELEASE([[OCMethod alloc] init]); [method setName: name]; [method setIsAction: flag]; [methods addObject: method]; } - (NSArray *) ivars { return ivars; } - (void) addIVar: (NSString *)name isOutlet: (BOOL) flag { OCIVar *ivar = AUTORELEASE([[OCIVar alloc] init]); [ivar setName: name]; [ivar setIsOutlet: flag]; [ivars addObject: ivar]; } - (NSString *) className { return className; } - (void) setClassName: (NSString *)name { ASSIGN(className, name); } - (NSString *) superClassName { return superClassName; } - (void) setSuperClassName: (NSString *)name { ASSIGN(superClassName,name); } - (BOOL) isCategory { return isCategory; } - (void) setIsCategory: (BOOL)flag { isCategory = flag; } - (void) _strip { NSScanner *stripScanner = [NSScanner scannerWithString: classString]; NSString *resultString = @""; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; while(![stripScanner isAtEnd]) { NSString *string = nil; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &string]; resultString = [resultString stringByAppendingString: string]; if(![stripScanner isAtEnd]) { resultString = [resultString stringByAppendingString: @" "]; } } ASSIGN(classString, resultString); } - (void) parse { NSScanner *scanner = nil; NSScanner *iscan = nil; NSString *interfaceLine = nil; NSString *methodsString = nil; NSString *ivarsString = nil; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; NSCharacterSet *pmcs = [NSCharacterSet characterSetWithCharactersInString: @"+-"]; // get the interface line... look ahead... [self _strip]; scanner = [NSScanner scannerWithString: classString]; if(lookAhead(classString, @"{")) { [scanner scanUpToString: @"@interface" intoString: NULL]; [scanner scanUpToString: @"{" intoString: &interfaceLine]; iscan = [NSScanner scannerWithString: interfaceLine]; // reset scanner... } else // if there is no "{", then there are no ivars... { [scanner scanUpToString: @"@interface" intoString: NULL]; [scanner scanUpToCharactersFromSet: pmcs intoString: &interfaceLine]; iscan = [NSScanner scannerWithString: interfaceLine]; // reset scanner... } // look ahead... if(lookAhead(interfaceLine, @":")) { NSString *cn = nil, *scn = nil; [iscan scanUpToAndIncludingString: @"@interface" intoString: NULL]; [iscan scanUpToString: @":" intoString: &cn]; className = [cn stringByTrimmingCharactersInSet: wsnl]; RETAIN(className); [iscan scanString: @":" intoString: NULL]; [iscan scanUpToCharactersFromSet: wsnl intoString: &scn]; superClassName = [scn stringByTrimmingCharactersInSet: wsnl]; RETAIN(superClassName); } else // category... { NSString *cn = nil; [iscan scanUpToAndIncludingString: @"@interface" intoString: NULL]; [iscan scanUpToCharactersFromSet: wsnl intoString: &cn]; className = [cn stringByTrimmingCharactersInSet: wsnl]; RETAIN(className); // check to see if it's a category on an existing interface... if(lookAhead(interfaceLine,@"(")) { isCategory = YES; } } if(isCategory == NO) { NSScanner *ivarScan = nil; // put the ivars into a a string... [scanner scanUpToAndIncludingString: @"{" intoString: NULL]; [scanner scanUpToString: @"}" intoString: &ivarsString]; [scanner scanString: @"}" intoString: NULL]; if(ivarsString != nil) { // scan each ivar... ivarScan = [NSScanner scannerWithString: ivarsString]; while(![ivarScan isAtEnd]) { NSString *ivarLine = nil; OCIVarDecl *ivarDecl = nil; [ivarScan scanUpToString: @";" intoString: &ivarLine]; [ivarScan scanString: @";" intoString: NULL]; ivarDecl = AUTORELEASE([[OCIVarDecl alloc] initWithString: ivarLine]); [ivarDecl parse]; [ivars addObjectsFromArray: [ivarDecl ivars]]; } } } // put the methods into a string... if(ivarsString != nil) { [scanner scanUpToString: @"@end" intoString: &methodsString]; } else // { scanner = [NSScanner scannerWithString: classString]; [scanner scanUpToAndIncludingString: interfaceLine intoString: NULL]; [scanner scanUpToString: @"@end" intoString: &methodsString]; } // scan each method... if(methodsString != nil) { NSScanner *methodScan = [NSScanner scannerWithString: methodsString]; while(![methodScan isAtEnd]) { NSString *methodLine = nil; OCMethod *method = nil; [methodScan scanUpToString: @";" intoString: &methodLine]; [methodScan scanString: @";" intoString: NULL]; method = AUTORELEASE([[OCMethod alloc] initWithString: methodLine]); [method parse]; [methods addObject: method]; } } } @end gorm-1.3.1/GormObjCHeaderParser/OCHeaderParser.m0000644000175000017500000001252214327003122020361 0ustar heronheron/* OCHeaderParser.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include @implementation OCHeaderParser +(void) initialize { if(self == [OCHeaderParser class]) { // } } - (id) initWithContentsOfFile: (NSString *)file { if((self = [super init]) != nil) { fileData = [NSString stringWithContentsOfFile: file]; classes = [[NSMutableArray alloc] init]; RETAIN(fileData); } return self; } - (void) dealloc { RELEASE(classes); RELEASE(fileData); [super dealloc]; } - (NSMutableArray *)classes { return classes; } - (void) _stripComments { NSScanner *scanner = [NSScanner scannerWithString: fileData]; NSString *resultString = @""; NSString *finalString = @""; // strip all of the one line comments out... [scanner setCharactersToBeSkipped: nil]; while(![scanner isAtEnd]) { NSString *tempString = nil; [scanner scanUpToString: @"//" intoString: &tempString]; [scanner scanUpToString: @"\n" intoString: NULL]; resultString = [resultString stringByAppendingString: tempString]; } // strip all of the multiline comments out... scanner = [NSScanner scannerWithString: resultString]; [scanner setCharactersToBeSkipped: nil]; while(![scanner isAtEnd]) { NSString *tempString = nil; [scanner scanUpToString: @"/*" intoString: &tempString]; [scanner scanUpToAndIncludingString: @"*/" intoString: NULL]; finalString = [finalString stringByAppendingString: tempString]; } // make this our new fileData... ASSIGN(fileData, finalString); } - (void) _stripPreProcessor { NSScanner *scanner = [NSScanner scannerWithString: fileData]; NSString *resultString = @""; // [NSString stringWithString: @""]; // strip all of the one line comments out... [scanner setCharactersToBeSkipped: nil]; while(![scanner isAtEnd]) { NSString *tempString = @""; [scanner scanUpToString: @"#" intoString: &tempString]; [scanner scanUpToAndIncludingString: @"\n" intoString: NULL]; resultString = [resultString stringByAppendingString: tempString]; } // make this our new fileData... ASSIGN(fileData,resultString); } - (void) _stripRedundantStatements { NSScanner *scanner = [NSScanner scannerWithString: fileData]; NSString *resultString = @""; // [NSString stringWithString: @""]; // strip all of the one line comments out... [scanner setCharactersToBeSkipped: nil]; while(![scanner isAtEnd]) { NSString *tempString = nil, *aString = nil; // [scanner scanUpToString: @";" intoString: &tempString]; // [scanner scanString: @";" intoString: &tempString2]; [scanner scanUpToAndIncludingString: @";" intoString: &tempString]; // Scan any redundant ";" characters into aString... once it // returns nil we know we're done. do { aString = nil; [scanner scanString: @";" intoString: &aString]; } while([aString isEqualToString:@";"]); [scanner scanUpToAndIncludingString: @"\n" intoString: NULL]; resultString = [resultString stringByAppendingString: tempString]; } // make this our new fileData... ASSIGN(fileData,resultString); } - (void) _preProcessFile { [self _stripComments]; [self _stripPreProcessor]; [self _stripRedundantStatements]; } - (BOOL) _processClasses { NSScanner *scanner = [NSScanner scannerWithString: fileData]; BOOL result = YES; NS_DURING { // get all of the classes... while(![scanner isAtEnd]) { NSString *classString = nil; OCClass *cls = nil; [scanner scanUpToString: @"@interface" intoString: NULL]; [scanner scanUpToAndIncludingString: @"@end" intoString: &classString]; if(classString != nil && [classString length] != 0) { cls = AUTORELEASE([[OCClass alloc] initWithString: classString]); [cls parse]; [classes addObject: cls]; } } // if we got zero classes, return NO. if([classes count] == 0) { result = NO; } } NS_HANDLER { NSLog(@"%@",localException); result = NO; } NS_ENDHANDLER return result; } - (BOOL) parse { BOOL result = NO; [self _preProcessFile]; NS_DURING { // parse the header here... result = [self _processClasses]; } NS_HANDLER { // exception while processing... NSLog(@"%@",localException); result = NO; } NS_ENDHANDLER return result; } @end gorm-1.3.1/GormObjCHeaderParser/OCIVar.h0000644000175000017500000000247614327003122016657 0ustar heronheron/* OCHeaderParser.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #ifndef INCLUDED_OCIVar_h #define INCLUDED_OCIVar_h @class NSMutableArray, NSString; @interface OCIVar : NSObject { NSString *name; BOOL isOutlet; NSString *ivarString; } - (id) initWithString: (NSString *)string; - (NSString *)name; - (void) setName: (NSString *)aName; - (BOOL) isOutlet; - (void) setIsOutlet: (BOOL)flag; - (void) parse; @end #endif gorm-1.3.1/GormObjCHeaderParser/OCHeaderParser.h0000644000175000017500000000232614327003122020355 0ustar heronheron/* OCHeaderParser.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #ifndef INCLUDED_OCHeaderParser_h #define INCLUDED_OCHeaderParser_h @class NSMutableArray, NSString; @interface OCHeaderParser : NSObject { NSMutableArray *classes; NSString *fileData; } - (id) initWithContentsOfFile: (NSString *)file; - (NSMutableArray *)classes; - (BOOL) parse; @end #endif gorm-1.3.1/GormObjCHeaderParser/Version0000644000175000017500000000064614327003122016770 0ustar heronheron # This file is included in various Makefile's to get version information. # Compatible with Bourne shell syntax, so it can included there too. # The gcc version required to compile the library. GNUSTEP_GCC=3.1.0 # GNUstep version required GNUSTEP_CORE_VERSION=0.11.0 # The version number of this release. MAJOR_VERSION=1 MINOR_VERSION=1 SUBMINOR_VERSION=0 VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION} gorm-1.3.1/GormObjCHeaderParser/GormObjCHeaderParser.h0000644000175000017500000000312214327003122021511 0ustar heronheron/* GormObjCHeaderParser.h * * Copyright (C) 2019 Free Software Foundation, Inc. * * Author: Lars Sonchocky-Helldorf * Date: 01.11.19 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #import #ifndef GNUSTEP //! Project version number for GormObjCHeaderParser. FOUNDATION_EXPORT double GormObjCHeaderParserVersionNumber; //! Project version string for GormObjCHeaderParser. FOUNDATION_EXPORT const unsigned char GormObjCHeaderParserVersionString[]; #endif #ifndef INCLUDED_GORMOBJCHEADERPARSER_H #define INCLUDED_GORMOBJCHEADERPARSER_H #include #include #include #include #include #include #include #endif gorm-1.3.1/GormObjCHeaderParser/NSScanner+OCHeaderParser.m0000644000175000017500000000337714327003122022217 0ustar heronheron/* NSScanner+OCHeaderParser.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include @implementation NSScanner (OCHeaderParser) - (void) scanUpToAndIncludingString: (NSString *)string intoString: (NSString **)buffer { NSString *buffer2 = nil; [self scanUpToString: string intoString: buffer]; [self scanString: string intoString: &buffer2]; if(buffer != NULL) { if(*buffer != NULL) { *buffer = [*buffer stringByAppendingString: buffer2]; } } } - (void) scanUpToAndIncludingCharactersFromSet: (NSCharacterSet *)set intoString: (NSString **)buffer { NSString *buffer2 = nil; [self scanUpToCharactersFromSet: set intoString: buffer]; [self scanCharactersFromSet: set intoString: &buffer2]; if(buffer != NULL) { if(*buffer != NULL) { *buffer = [*buffer stringByAppendingString: buffer2]; } } } @end gorm-1.3.1/GormObjCHeaderParser/OCIVar.m0000644000175000017500000000770514327003122016664 0ustar heronheron/* OCHeaderParser.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include @implementation OCIVar - (id) initWithString: (NSString *)string { if((self = [super init]) != nil) { ASSIGN(ivarString, [string copy]); } return self; } - (void) dealloc { RELEASE(ivarString); RELEASE(name); [super dealloc]; } - (NSString *) name { return name; } - (void) setName: (NSString *)aName { ASSIGN(name,aName); } - (BOOL) isOutlet { return isOutlet; } - (void) setIsOutlet: (BOOL)flag { isOutlet = flag; } - (void) _strip { NSString *replacementString = [ivarString stringByReplacingOccurrencesOfString:@"*" withString:@" "]; NSScanner *stripScanner = [NSScanner scannerWithString: replacementString]; NSString *resultString = @""; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; // [stripScanner setCharactersToBeSkipped: [NSCharacterSet characterSetWithCharactersInString: @"*"]]; // string whitespace while(![stripScanner isAtEnd]) { NSString *string = nil; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &string]; resultString = [resultString stringByAppendingString: string]; if(![stripScanner isAtEnd]) { resultString = [resultString stringByAppendingString: @" "]; } } ASSIGN(ivarString, resultString); } - (void) parse { NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; NSScanner *scanner = nil; NSString *tempName = nil; [self _strip]; scanner = [NSScanner scannerWithString: ivarString]; [scanner setCharactersToBeSkipped: [NSCharacterSet characterSetWithCharactersInString: @"*"]]; if(lookAhead(ivarString,@"IBOutlet")) { [scanner scanUpToAndIncludingString: @"IBOutlet" intoString: NULL]; // return type [scanner scanCharactersFromSet: wsnl intoString: NULL]; [scanner scanUpToCharactersFromSet: wsnl intoString: NULL]; // typespec... [scanner scanCharactersFromSet: wsnl intoString: NULL]; [scanner scanUpToCharactersFromSet: wsnl intoString: &tempName]; // variable name... [self setIsOutlet: YES]; } else if(lookAheadForToken(ivarString, @"id")) { [scanner scanUpToCharactersFromSet: wsnl intoString: NULL]; // id [scanner scanCharactersFromSet: wsnl intoString: NULL]; [scanner scanUpToCharactersFromSet: wsnl intoString: &tempName]; // id [self setIsOutlet: YES]; } else // for everything else... { [scanner scanUpToCharactersFromSet: wsnl intoString: NULL]; [scanner scanCharactersFromSet: wsnl intoString: NULL]; [scanner scanUpToCharactersFromSet: wsnl intoString: &tempName]; } // fix name... scanner = [NSScanner scannerWithString: tempName]; [scanner setCharactersToBeSkipped: [NSCharacterSet characterSetWithCharactersInString: @"*"]]; // [scanner scanUpToCharactersFromSet: wsnl intoString: &name]; name = [tempName stringByTrimmingCharactersInSet: wsnl]; RETAIN(name); } @end gorm-1.3.1/Images/0000755000175000017500000000000014327003122012667 5ustar heronherongorm-1.3.1/Images/GormEHCoil.tiff0000644000175000017500000001002014327003122015462 0ustar heronheronII*PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPggPPPPPPggPPPggPPPPPPPPPPPPPPPPPPPPPPPPy""yy""yy""yPPPPPP   PPPPPPU}}UU}}UU}}UPPP8PPP8PPP8888PPPPPPPPP88PPP8888}}UPPPU}}UU}}U PPP  y""yPPPy""yy""y g""""gPPPPPPPPPPPPPPPPPPgggg2 E@(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormEHCoil.tiffHHgorm-1.3.1/Images/Gorm.tiff0000644000175000017500000002241014327003122014444 0ustar heronheronII*$ (/LBaq/EQ~ -5RC`paua "!!!,  ,3QEcsgww3KX /;h2I\B`yQw 0)槧777G -5QGdudyeU{ahX )` 4adg777I !/7THevm~qnkphir^&9H !%}~~򣣣 "/7SJhyi~|s|yknaTzef5Ma  4{GMKfx`qxwvuutrq{ro|]U|rLq '  <"1>j0FYBayNrTy_wwy{yvuutsrqrihffRytT} E#BGiRxX]bnw|rxrrqoqjhiltuZoY$.h!G_|~y}gd|spos|ls|ke~`cb)LP 2GScig|bc~m`gko_Z]h?dx ,6px|~zp["08 !%Lpf|b`wouujfkkeiT!LCl}{xm[ .6 (((*\s-BS+7` 9:Ukpdvutt{bahc@Zi 444222 2 *>Mhbvttsrqq~reerykX>^q$2< 3333334(3b^kmusqqpomljiggelzxiU3M\zK V! 333111:U~whqqpommkjhhsvcLs%8C G >!  Ote]tponmlkij~sb?_q&-x0 9! k FfRzIkbqomlktlX2KY U  6!w P V:0EQ}nl||lPw%7@ B 1hf3iycA`q!'p)  Nrzr]3JW W &8BqQv$5><%00$ $@$$%(R/home/heron/Gorm.tiffHHgorm-1.3.1/Images/iconTopLeft_nib.tiff0000644000175000017500000000435614327003122016627 0ustar heronheronII*  DDD`v I~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconTopLeft_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/naturalalign_nib.tiff0000644000175000017500000000436014327003122017055 0ustar heronheronII*    v K~@(R/home/heron/Development/gnustep/dev-apps/gorm/Images/naturalalign_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormFontManager.tiff0000644000175000017500000002253614327003122016577 0ustar heronheronII*$ $)%*&*'*'*(*(*)*)***********************)*)*(*(*'*'*%) nI/uKƃT؎\cfgijkkdbbcccbbaadhhgfe`a> ]1 0 dI1a@)d@ahjklzOnI.\=&]=&]=']=']=']=&\=&\<&]='lG-X8qIِ]ge`gA2 ƂThjkk_?)  #\='ƃTe`gC  $4 =}PgijkO4"M>>>>>>>>>@_Y;%֍[`gC |PfhijN4!< ,_=ߔ_gB {PfghiM3!5  iE-tՍZfB zOefghL3 5M3!V|OۘeB yNdefgL2 5-7]<}S5 xMcdefK1 5  ? vLbbdeJ1 5 mvLaabdI1 5)tKߔ``abI1 5  rJܒ^ޓ_``H0 5 U8$d\='o qHِ]ے^ݒ^ޓ_G/5"(lEc?#m; oH֎[؏\ِ]ڑ^E.58%C~QeB$(nGӌZԍ[֎[׏\C-5 lG.ƃUeA#1lEЊYҋZӌZԍZ^>(0 5#['/(/(/(/'/'/'/+4:&GfD,}sI͈WdA"1jD͈XΉXЊYъYmGa?b@a>b?b@b?a>`>_>c?pHϼ|PɆV͈Xc@"1iDʆV̇W͈W͈XyNrIrIrIrIsJrIrIrHrHuKÁS͈ẆWʆVa?" 1gCDŽUȅUɅVʆWnI/D-D,D,D,D,D,D,D,C,J1`?(];|PDŽU`>! 1fAĂTƃTƄUDŽU^?(-..///...2!C,mG-pHÁS_=  1e@RSÂTĂT=( rJ0ٹzO^<  1c@ʿ~QRR€R<(Y.........3>)irJ\;  1b?ʼ}P}Q~Q~Q;'5#1gBՉ[: 1`>ʹ{O{O|P}P:'5 T8$y^?( 1_=ʷyNzOzO{O:&5  q-^<ʴxMxNxNyN9&5:x\;ʲvLvLwLwM8%5 "[;ʰtKuKuKuL7%5Z:ʭsJsJtKtK7$5Y9ʫqIrIrJsJ6$5X9ʩpHpHpHqH5#5W8ʧnGoGoGoH4"5V7ʥmFnGnGnG5#5 X8УlFlFmFmFM3! 7  (#9.KV8$c@kEkEkElEX8Q6":&q'@ . &   D-piE-yO4ƆX9ܖb@hBiChCiDiDiDc?[:T6sL1mH.T7# 3D-{nI/tM1uM2uM1uM2uM2wN3wN3wO3xO3xO3xO3wN2wO2xO2`>( Z  U               00$ J$8%@$N%V%(R/home/heron/Development/gnustep/dev-apps/Gorm/Images/GormFontManager.tiffCreated with The GIMPHHgorm-1.3.1/Images/iconRight_nib.tiff0000644000175000017500000000435414327003122016325 0ustar heronheronII*       HHH` v G~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconRight_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/tabtop_nib.tiff0000644000175000017500000000426414327003122015670 0ustar heronheronII* xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxDDD`xxxxxxxxxxxxxxxxxxv ~@(Rtabtop_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormSound.tiff0000644000175000017500000002230214327003122015455 0ustar heronheronII*$SX%3"SX%%SX%SX%SX3"""%SX%SX""SXSX%%%SX""%33%SX"SXSX%%%SX3"%3"%SXSX%SXSX%%%SX%%""%SXSX%%%%SX%%SXSX%%SXSX%%SX%%%SX%%%SX%SX%%%%SX%%%%SX%%%%%SX%%%SX%%%""""%%%%%%%SX%%SX%SX%SX%%SX%%%%%%%%%%%%%%SXSXSXSXSX%%SX%%SX%%%SX%%SX%%SX%SX%SXSXSXSXSXSXSXSXSXSX%%%%%%SXSX%%SX%%SX%SX%%%%%%%SX%%SXSX%%%%%%%SX%%%SX%%%%%SXSX%%%SXSX%%SXSX% 00$$$$(R ' 'gorm-1.3.1/Images/iconCenter_nib.tiff0000644000175000017500000000435414327003122016470 0ustar heronheronII*  DDD`v H~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconCenter_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormMHCoil.tiff0000644000175000017500000001607414327003122015511 0ustar heronheronII* PPPggggggPPPggggggPPPy""yy""yy""yPPPy""yy""yy""y   PPP   U}}UU}}UU}}UPPPU}}UU}}UU}}U888888PPP888888PPPPPP888888888888}}UU}}UU}}UPPPU}}UU}}UU}}U   PPP   y""yy""yy""yPPPy""yy""yy""yPPP PPPPPPPPPPPPPPPPPPPPPPPPPPP  PPPPPPg""""gPPPg""""gPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPggPPPggPPPPPPggggPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP[ E@,4(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormMHCoil.tiffHHgorm-1.3.1/Images/GormTesting.tiff0000644000175000017500000002247014327003122016010 0ustar heronheronII*$Lr]Lf_~-KZcRjluj-CK"-<, MyaQjqxwU}NshRxU{Y%:J0)G3DUdQmpyeU{ahX:Ul`??,DS4IUtdTnt~qnkphir^Df+=O3AI򣣣÷ DUfhSqu~|s|yknaTzefLo **U,?N4%3<{T[_ѯ"3Ns*c_qv텱}tutsqutjU}]lQw $$H1AZ0HXTVbkjowxwvuutrq{ro|]U|rS{ 4A'8^qHnLP 2GScig|bc~m`gko_Z]hO~ Fdzpx|~zp["08 !%Lpf|b`wouujfkkeiV9]nL5ObCl}{xm[ .6 (((*V!/: 333111/ 87 ~hsvdW>_q 'G*?U 1ER>&4@ ޿ po FFcb %$scPy5P_x 0.EE 1CU9%5A !#(kT```lllJo!09U ??/BU6(9Fw *.4*FU wv \[\[ 87'''8U .CS1,=Lh(1%2{^;ZKJoJnImHk6jQ"B3(O=>|^=z]{^FMJfw`pxwvuutrq{ro|]U|rLp '  <"1>j0FYB`xNqSx_w_wwy{yvuutsrqrihffRytS} E#BGiRxX]bnwsxxrrqoqjhiltuZoY$.h!G_|~y}s}~spos|ls|ke~`cb)cx ,6px}}ollllllllllllrwuuiiT!LCl{}mlllllllllllllrt{{yr]b7Xi #X}}{lllllllllllllllruhgVUhS 9Dc|x}|xsqlkklllljkl_]jru`XXWVT`_/L]8Rgjvqolkkklkkk```]]sfZXWV\hcS?g{,AR]|qomlkkkkkkk````[o\XXeiaULy!4A5 ,7hYz{mlkkkkikk`````hhtik\SKtKkZy)3zBV}yzlkkjif\k```hhttkkQFmEgVxjt-DV Ryq~xxmlkkkkkk```hhttkk_wF^p^zmrk`U|8Rg Hinqvwvvmlkkkkk}ekhhttkk_w_w_w_wU}Kp=\r,BS+7` 99Ukpdvutt{bahctkk_w_w_w)>Mhbvttsrqq~reerykkk(3b^kmusqqpomljiggelzxiT2L\zK:U~whqqpommkjhhsvcKr$8B G Nse]tponmlkij~sa>^p&-x0 & FeRzHjbqomlktlX2JY U  $P V:0EQ}nl||kOv%7@ B3hyb@_q!'p) Mrzr\2IV W &8BqQu$4><%MsMsMsMsMs^^^^^gggggg_____MsMsMsMsMs^^^^^gggggg_____MsMsMsMsMs^^^^^gggggg_____MsMsMsMsMs^^^^^gggggg_____MsMsMsMsMs^^^^^gggggg_____-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<NzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:JNzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:JNzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:JNzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:JNzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:J3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDfDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKpDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKpDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKpDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKpDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKp++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     ++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     ++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     ++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     ++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     $$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\IlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqIlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqIlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqIlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqIlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQwY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQwY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQwY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQwY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQw"3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'.ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\E]qE]qE]qE]qE]qE]q{{{{{ĝԝԝԝԝyyyyyy{{{{{|||||||||||}}}}}ΗΗΗΗΗrrrrrooooommmmmmlllllkkkkkkkkkkkծծծծՃjjjjjjĊĊĊĊĄ}}}}}qqqqq``````_____]]]]]rrrrrrcccccR|R|R|R|R|\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\sbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkC[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####C[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####C[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####C[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####C[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####oooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:ZnZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~ZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~ZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~ZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~ZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~Gd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^oGd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^oGd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^oGd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^oGd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^o5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIv$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIv$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIv$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIv$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIvNrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5MrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcMrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcMrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcMrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcMrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGl):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKn):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKn):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKn):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKn):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKnSzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-SzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-SzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-SzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-SzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-OvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkIhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     IhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     IhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     IhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     IhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     >\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@UFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`s                              gorm-1.3.1/Images/number_formatter.tiff0000644000175000017500000001337414327003122017124 0ustar heronheronII*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxÇxxxxxxÇxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxҥxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxåxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxҥxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxҴxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxÇxxxxxxxxxxxxxxxxxxxxxÇxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx𥥥xxxxxxxxxxxxᇇxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxҴxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx𴴴xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx҇xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxҴᇇxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++ J@(/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/number_formatter.tiffCreated with The GIMPHHgorm-1.3.1/Images/RightArr.tiff0000644000175000017500000000242014327003122015261 0ustar heronheronII*ssssss[G[ss s/ sss6sGsssssSU  RR/home/enrico/Grivei/sviluppo/FileManager/GWorkspace/GWorkspace/Icons/RightArr.tifgorm-1.3.1/Images/iconOnly_nib.tiff0000644000175000017500000000435214327003122016167 0ustar heronheronII*    GGG` v F~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconOnly_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/leftalign_nib.tiff0000644000175000017500000000435414327003122016344 0ustar heronheronII*   ahv H~@(R/home/heron/Development/gnustep/dev-apps/gorm/Images/leftalign_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormEVLine.tiff0000644000175000017500000001002014327003122015501 0ustar heronheronII*PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP2 E@(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormEVLine.tiffHHgorm-1.3.1/Images/Sunday_seurat.tiff0000644000175000017500000005113614327003122016375 0ustar heronheronII*Q̺ȿ؟ohzoitypzpov}s`iwTlwYihJplRzuybVUw;KW3erDOOiW]9ioIwmufyfevIRb>]jVZhQer^S`Ln{g]oE}L`U}`g{X`zgaeDptO@J(BTDQ\LRfMX_@jeEchHVrnAVY.HM7ҵĿЫċrjlgz{tlyifks|esRo}ZcqPjTUp;^pVwiRUPTb?^n?tEyJr{P|\SZ1pJQ?t^~^DT/ZhQN\Chv]ZhQ^lS[l@UXRwZcwRlzs`uvVjoGCM+EWGHSCQdNIP1mhJglLi~zMuxMTYCԸ۵ҙkqprppknqrrvnvdt`pZh}V`zMkz]y˜ZUuRNcBbxI|QlvxSnZ{^deWhoG{XZsperGlsmKvtKX]e@PcM_hUDV@GK2cX[>nXR2xOT>}˯¾omnfǁp[jrrn{vЬ¤xc{WxfygtuO_pX|_kd}_uhhxQtO{Uq~So|QvLj`_1p|NvXZiLHTHN[JCQ7SbCw\dlyDeY{ShtBurIgwuN[a?PbJ]ePFUBEG/cWX9yYR6Y^H镠ʹ׵yqqnuǂitjglssz|h}qpdvfvbljfC_zGdyPz\rop^eCw~UrzSp~[WhDl{P{Qfb|^^mNXdX[hV]kQkz[t[Va^]bo{Kwh~{Zh`eGkzc~qHUDbdLjghFpYR5|SXB򦴝ͫzuykwwvt{ir|s}lukal^{g}_`Xv@b}TxknxUuobn|`lpMjpLhuWZmMoWmsCt~XpNk{W]jXSaHQ`A[jIbsI{N^^V_]j?d_5JJ0KG.PL1:<$S`Lt\hZddLeiiCOI)qIN8ٰ{|y{vvjxw}~}vxlpgXYuMZrPfrZut_ukPoiEfd>iqJr_hoNlsRgvWcyUy[KnWhbrMjxaP^DP_BXgJXgFoMa]GN">K-=J0UQ6glVddLWR>ED2CP?RVGQ[Phkkl@fa;[`J}mz~oȘɖ{xj‡ssrxzw®¡qt{h_iG|X~UaXwNqPR]=|ignOevTg~Re?ȿ||S{b}oZgVFSAKXFYfUVcRVeHp\cO@G54?78E;BA-sySTRFUaUJL?C/`QTC@E/GL5?HCT]JppL~VM&}TbAupؾ˼˵ҳʞxѾҵfmCol7Ż{tye~scwjn`bfWfl^BN:@O8;E:ltia]BgnvΩKTCtwXlkVƴ൯̨֠эΆّԌߏ̊k²wѡhє~V\ssQS}^u]iñjǚԐoycxq^خ͠“ǐ֜ʎҾ֜cW`ET\EFM;Y^JDL7CPK9CK4ɚŖm{rhrWwtĺtϾ­״Y|\ΪХכ͒ΫΔёƔyprnn˃ۀ}ëӝѿƭ›ߋqߌ̂qיȿre~qsK\ti؊W|nrct=H7AR@GVA@J2{q~cnPюq|͹|ӭսʠԜΎ°áͿlzlיӍpnS[{‘қеñՀu}NcPsՁ҇{p2׃pmgg`fw~lx|tITDDS@CR;M[A֮y{euwpwox\TʛɴȨy㳲drΒصͪijcmJacЇvĀֿ֙͝вϻrfӀ[pyRpYJz[UԀv܉ޛi}q=A3aeTT\E?L2GL.Z]B[`Lzwys|wo{mpqsfɪs]˱֧_i͒ƒ͟»ְͽ\jlْ~u~osڪ؛ϵƩwďy\Іڂoy]gFVwde~{\tEF8jjnWS_IRZE`hQXaLNX@t_pWgk{Vul\eF^aXw{Zحz֨wwÛokϓ{ݳؾƽŴq^Ăg{hn]{բÖн¬t|퓭y~ڇƻ`ajTMXs~lt\y9?%f~jT_Y\h\bm]OZLakbITDz~OkyyÄ|[uS{͠ϣ~xԑ՛ȐЏʆ}zуݓԢonRwsh{hU׉օڐkvНwoʾhοlq~gz֗ޟ֊jtn}dvq]ztbt~I|v\lXGzAjztU^MT[STVUabZcjXZfXXdXO[MM[DUaKfo^U^A^}SxNi{K]rIud[wtn{҉vݍՇzˍؚccApkW|uoi`[~ZzנXWCiiE}s~ԇ{ˁՋܚ}U^inNwz]h}pwgs}rnxsSwyz|dtaon[bPRXNjlipsjgo`UcT]i_amaS^MXcRQ\NKVFgqX[hL\iMTkAdyZ`tYXywpvsΆאӇɂLjvq[geP{xe|{ijiUru`x|nvӞ|_eIZgMn|Xbs=іsyIan9bn@n~QSd8csOWfIZkIH]4e|NczLr]oRyXcew]gzb}exa|g~å{hrmw\gqXnx]skRWCgi\^aZ\c\Ze_O^YWg]Zj_XfU[fUMUFV_NR`I^mPezQ_tMWaHhpY`vwtv|҅~ڊߏؕzxinl_kka_^Yyvo{{qhjgDH/ђ٬jk]ZeaUaSXgJpl{TcqM]jNjv`kzYk{WgvYxmgw\wekTaxJkVnWh~OpWxas\t]qZ{doYn]WjJobo`YmHcwRZnIg{Vr`u_m|[S]E]fSu{oeofcnfcsi\lbWg\VdSZeTFN?ludWeNapSi~U\qHjtYhpXg}kՄ~̀x}̍ĒmqXY_E\aKim_~ywk]]Qab\ouidoOpzWf]]QYf]VdSRbEl}[l~Vp]m}`l{diw]M[A4A-?L:hw`p_e|PjSmX_xN[tJkXjWhSeOlVZtDjXdX^zT^zTnbeVbQgTmZp]q]jY_oRO]Fp{kkvh`l``mcfvl[k`YgV[fUW_PXaPM[DapSwce|RfsUs}bd||qvz{΁zӄ̑ϜyYRY7MW4Wa?ejTz}rghVa_Hmk\_cU_iPny[mSVEXfUScI^oKuayanZfzWj}aK[A?M6:G69E7ztsdf}Qf}OWnB\uM`zSiYiWfRnYlUePt`_{R]yQa}Ta~R[xJ]zLeRmYhThUgWTgGFVdtW~mopdUlO2I/-<'CP@O:;I24A0evR`sFdwIrSrWs{~qd}Vsen]lq_b}Pydzb~hdiU^`SuxqhohgrlSb]brh[k`WeTT_NDL=U^MJXAapSs_v]_uG{cmlgfj}gVbT|o{tikl~DZ\fMªs}bsdAN4`nWp}kvmj}_M`DCV:8K/_oRJZ=^nQYiLZiHoy~|qt{szPhH~mp{[w}ctZ[KSUG=@5gnf\g_Zj`bpaZfX^j`OZR=I?O\HKY?VdJrfg}VTf@aoKqt8T;AVE}ipqiuv[wʱTaGkf|siw]vfta~kFS5q~dq}g[mSL`DEY=FZ>QdH`pUznv{{{wqvxc{xe{zfOP@EG9BHAN<S`F|ndtP[iF츿ŊxtfkUk|htar]ydOtxkrf{p_h|Ym`[nPcw[bvZ_sWskwn~}bgShkZusohuYva}gdpJyknSkoVyswf^fYeof^ieXdbZaZ[bZRZOX`UW_TT\QFO>LUB`jOkZhxTiwTοǠu~uqʵƹ}bpOYoKc{Y_wSVnJOgCoc_wSXpLmcndme`tXqiZmQpem{aznbpVs^nk~hnqrnx_KPMU=NVAfn_oypkvpXc_X_X`e^]cUbiYY_SPVLV]MgoZu~_eyTTd@XfC}wa~tssw}uy|zfwg[p]_vbdwcoziw}fpU{jo{gyfbuUlcSkGVnL`xXShIUjKYnO_tSWlKZoPXlPWkORfJTgKWgLn|bsgTbHbwN_tIq[r]iVPf?_uNg}WbsSNZBU\J`hQS\A]hHP_>^nJg|SgyOitROZ:]gLMW>IU?MXGS_QUaUQ\NS^N\hTXdNKWCGRAbnXlv[coKAW0]mISa>g̦Ο̙ѦxlXeQYgVUdQ`mYgyc]s\]u]f~fmjvqbo]nzdv~ferVhx[yl`mQhuYetWXmNd}]DY8QfGbvZN`FOaGTgKTgIXkKNcDOcGQeIMaEXkO`pUesYhv\]kQe|R[rFWnB[uH[tJ]vN`yQ^wPYoK\lQ^jToyabmOZeEm|[r`TiBs_u`ftSraq~`WdJJV@LXD[fU]iUWdPVdMDR9Q_HHV?^mPhvU]lCPf?gwSP^;OËȉi}JSfFRdJXhNTcBRaDO_DPdHSjM\uXa{`e}cau\dw[kz[k|Zc{YUmMfv[`nT^lSTfNI`DVfIXhNKZEETAN]JTcNK[AZjMK_CWkOThL`tXM`DXhMZhNVdJ_mSNb=bvQh|WdzTl^UjIdyX^sT]rSlbJaDHZ@SbATb?UdGhx[^qQh~WizVfvRQa=ZjFN^:jxUn|[iwV[lJgzZZmOM`DYlNk\cxO\nD_rDOe>Rb>Sa>Uԝ|dw?Ri?McNI[M]kZQ`CIVbrXThLI_9\pK]nJ[mGUe@YiBfuLy]ixM[pEb{QayUZqTVnJ[uH[vC]uC[sAJc;csO\jG}cq}WapGl|UarNViKJ]?cvXOc@`tQObB\lRYgNbpVWhFfxRcxQXnHA[6SmHNg@J[9N\BWcOLXDLX@eqMi}ci]P]L]nLarPLYEbm\Q]GQ_ESbEdsVl|afv\_oUjl_r|jwwu\qqWoAW3UnNUnQSgNK]CP`EFV9UfFO`>XjDOeAeyVVfLQ`I\mI`uLTmF]xMH^7Pf?YoILb>`vPYoHNe;bwNNc:L]9XhDdtP}z~g|jejSqyaZdKS]DisZVcIdqU[eMOUG`dV`bT_dM[dGVcEo}cSaJYeMY_EQP;LHbiJTX=Z[KZXL]`EjpL]hH_mIly[[eLXbIS]D`jQZdKYcJfpW]gN_bEgfHrqS`HQ GQ(R>R@FRNRVR(/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/Sunday_seurat.tiffCreated with The GIMPHH HHgorm-1.3.1/Images/GormFirstResponder.tiff0000644000175000017500000002230214327003122017336 0ustar heronheronII*$??? yyy +++ ? +++ %%%666 ?```EEE888jjj ?```?'''''' XXXXXX888 O\\\zzz,,,AAAjjj888III/333@@@n?555AAA _ccc/// //// #@@@...q jjj===999 _===www???FFFoooKKKJJJ jjj[[[=== O|||555PPPPPPiii###~}}}Ե *PPP///~?jjj---===OOO}}}MMMMMM nzzzxxxԭ *0|||jjj? _NNNMMMzzz㭭 *8555jjj/```MMMmmmΈ *eeeCCCjjjfffpppGGGqqqޕnnn *```?555555~MMMEEECCC 4FjjjVVVޫ_ .o:jy`ߩklJ$"2zCuqqrDm  w2p@d2_OCׯUiimggew|kDh@;SQKJIHGFPmjoLGW74)$""! !&+ib-*C=;5432104=En[EK]vcm0:'$##""!  (/543110/..JoooqxGBbwiFe32$$$##"!! #,Gwjl~q2-4>|^ooooNAZzbnquPqB62%$$#"M3.wq]]]]gM4+,kooo`AFe` NIW-=)$# ~YabX[^f) :$t!m]}]]]]e0+*lawoomX@B~tebfBc  9' 2=*iWPwPwPwPwPwPwY|L4-~^Qi]]]][K*)k=koozG@FcbpKmQ C>K6%$##qPwPwPwPwPwPwPwPwPwQx~Ud^f]]]][*)h0ej|Q@>)'^  **$$#]WPwPwPwPwPwPwPwPwPwPwVu$ulWgi]]]]O))i(dUH@?Z-V =%$$`PwPwPwPwPwPwPwPwPwPwPwMsI{Q@X]]]Vt?)(o(iE@?b2]b* =$$#aPwPwPwPwPwPwPwPwPwPwPwPw{T~K%J]]Z}X+(&}j,d:xc/^20 E7  :$##KWPwPwPwPwPwPwPwPwPwPwPwPw_hr"}I#IXzWrU1('e!_   9##"'[PwPwPwPwPwPwPwPwPwPwPwPwwT!zIEH<+)(|%s.,9##"ZPwPwPwPwPwPwPwPwPwPwPwKpFxRM2*)(~%uJE;0$"! ig{PwPwPwPwPwPwPwPwPwPwPwFsa7}ulaZ/)(p$h52\L$ WQo)"!!XxPwPwPwPwPwPwPwPwPwGkC~|XQa[g%`VQ40N9. 2!! 8SsOuPwPwPwPwPwPwEfuL{(~|vC>    u#m$ *i]xFhHlPwKpCdKgaA(|z`Y)& .!!0?gEmG<3~{sjE@  ?;_+(}~sKE G  ;7_)z$~vmNI+(K6 .+O%u"}kbLF  ]Q;- A<{ rwm ~td]OI. +  gUMI9  00$$$$(R ' 'gorm-1.3.1/Images/iconLeft_nib.tiff0000644000175000017500000000435214327003122016140 0ustar heronheronII*      HHH`  v F~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconLeft_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormPalette.tiff0000644000175000017500000002247014327003122015771 0ustar heronheronII*$Lr]Lf_~-KZcRjluj-CK"-<MyaQjqxwU}NshRxU{Y%:J0)3DUdQmpyeU{ahX:Ul`??,DSUtdTnt~qnkphir^Df+=O3AIDUfhSqu~|s|yknaTzefLo **U,?N%3<T[_"3Ns*c_qv텱}tutsqutjU}]lQw $$H1AZ0HXVbkjowxwvuutrq{ro|]U|rS{ 4A'8^qHnFMJfw`pxwvuutrq{ro|]U|rLp '  <"1>j0FYB`xNqSx_w_wwy{yvuutsrqrihffRytS} E#BGiRxX]bnwsxxrrqoqjhiltuZoY$.h!G_|~y}s}~spos|ls|ke~`cb)cx ,6px}}ollllllllllllrwuuiiT!LCl{}mlllllllllllllrt{{yr]b7Xi #X}}{lllllllllllllllruhgVUhS 9Dc|x}|xsqlkklllljkl_]jru`XXWVT`_/L]8Rgjvqolkkklkkk```]]sfZXWV\hcS?g{,AR]|qomlkkkkkkk````[o\XXeiaULy!4A5 ,7hYz{mlkkkkikk`````hhtik\SKtKkZy)3zBV}yzlkkjif\k```hhttkkQFmEgVxjt-DV Ryq~xxmlkkkkkk```hhttkk_wF^p^zmrk`U|8Rg Hinqvwvvmlkkkkk}ekhhttkk_w_w_w_wU}Kp=\r,BS+7` 99Ukpdvutt{bahctkk_w_w_w)>Mhbvttsrqq~reerykkk(3b^kmusqqpomljiggelzxiT2L\zK:U~whqqpommkjhhsvcKr$8B G Nse]tponmlkij~sa>^p&-x0 & FeRzHjbqomlktlX2JY U  $P V:0EQ}nl||kOv%7@ B3hyb@_q!'p) Mrzr\2IV W &8BqQu$4><%MsMsMsMsMs^^^^^gggggg_____MsMsMsMsMs^^^^^gggggg_____MsMsMsMsMs^^^^^gggggg_____MsMsMsMsMs^^^^^gggggg_____MsMsMsMsMs^^^^^gggggg_____-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<NzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:JNzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:JNzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:JNzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:JNzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:J3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDfDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKpDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKpDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKpDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKpDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKp++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     ++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     ++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     ++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     ++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     $$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\IlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqIlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqIlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqIlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqIlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQwY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQwY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQwY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQwY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQw"3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'.ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\E]qE]qE]qE]qE]qE]q{{{{{ĝԝԝԝԝyyyyyy{{{{{|||||||||||}}}}}ΗΗΗΗΗrrrrrooooommmmmmlllllkkkkkkkkkkkծծծծՃjjjjjjĊĊĊĊĄ}}}}}qqqqq``````_____]]]]]rrrrrrcccccR|R|R|R|R|\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\sbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkC[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####C[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####C[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####C[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####C[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####oooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:ZnZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~ZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~ZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~ZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~ZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~Gd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^oGd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^oGd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^oGd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^oGd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^o5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIv$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIv$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIv$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIv$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIvNrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5MrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcMrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcMrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcMrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcMrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGl):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKn):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKn):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKn):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKn):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKnSzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-SzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-SzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-SzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-SzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-OvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkIhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     IhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     IhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     IhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     IhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     >\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@UFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`s                              gorm-1.3.1/Images/LeftArr.tiff0000644000175000017500000000242014327003122015076 0ustar heronheronII*USsssssGs6sss /s ss[G[ssssss  RR/home/enrico/Grivei/sviluppo/FileManager/GWorkspace/GWorkspace/Icons/LeftArr.tiffgorm-1.3.1/Images/titleOnly_nib.tiff0000644000175000017500000000435214327003122016360 0ustar heronheronII*    HHH`   v F~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconOnly_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/browserView.tiff0000644000175000017500000000513214327003122016060 0ustar heronheronII*   F 4 @ J R (R/home/heron/Development/gnustep/dev-apps/gorm/Images/browserView.tiffCreated with The GIMPHHgorm-1.3.1/Images/ridge_nib.tiff0000644000175000017500000000435014327003122015465 0ustar heronheronII*   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEEE`xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxv C~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/ridge_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/justifyalign_nib.tiff0000644000175000017500000000436014327003122017104 0ustar heronheronII*   ahha   v K~@(R/home/heron/Development/gnustep/dev-apps/gorm/Images/justifyalign_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/centeralign_nib.tiff0000644000175000017500000000435614327003122016674 0ustar heronheronII*haah   v J~@(R/home/heron/Development/gnustep/dev-apps/gorm/Images/centeralign_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/noBorder_nib.tiff0000644000175000017500000000435214327003122016147 0ustar heronheronII*   FFF`   v F~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/noBorder_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/rightalign_nib.tiff0000644000175000017500000000435614327003122016531 0ustar heronheronII*ha   v I~@(R/home/heron/Development/gnustep/dev-apps/gorm/Images/rightalign_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormAction.tiff0000644000175000017500000000171214327003122015604 0ustar heronheronII*$0006{{{$0006λTTT $ZZZYYY'''0{{{999+++0)))00ggg-GGGDDDHiii㙙___!!!RRRPVVVmmmSSS&&&777 GPPP;;;:::777***555>>> $-0000 0    @(Rgorm_Action.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormEHLine.tiff0000644000175000017500000001002014327003122015463 0ustar heronheronII*PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP2 E@(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormEHLine.tiffHHgorm-1.3.1/Images/GormLinkImage.tiff0000644000175000017500000000060014327003122016222 0ustar heronheronII* O Иd" bQ8=p?j1GجMdR fI'Id9T>aP%4P&ӉԾ}0Rf:$'iu86=y*CB_Fl1~I=<;:5*{^Yn3DA=5110//.--2562{'s`YnAB>3+'#"#""""! "$*/22s$lb[nCD;-&$$####"""!!! !#(-.l!d6G&}T6%%$$#!_Hiyd•YPwPwPwPwPwPwPwV[dÕtHz ne=V.f`+ (nc\nF/$${q=Y6$#ldgoإPwPwPwPwPwPwPwPwPwPwPwPwPw\g$~ x&}T.ldZUD=%%%$zpTGfIozZPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwR{YsAwTC|aZ( $nc\nE-%%%$$$&}'}yPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwT}I jcSM6A%%%%$$#.!nZPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwU~G{qWQN GnH2%%%$$$$#zXn֤PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwOvtc&~\V=9b[nD-%%$$$$!kcwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwFh1!b[KF6@'%$$$$#a{{cPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwImy[.ofNHG7%$$$$$#zeYPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwLq[io5|LG73G5$$$$$$"vmsPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw;rW7zJE61F4$$$$## UOqݩPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw8mS<)yHC4 0E2$$$$##mx`PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwBb}R,xPJ3 0E/$$$###mw^PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwA~`~P,wD?1 .D/$$####dFld”PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw8mSH,uB=0 -C.$####" `Yi͜PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw.YDB+t@;. +C0####""!vmfǘPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw+T@> }s>9B2####""!{\mqYPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw=v[K>~|r<817###"""!fCl[PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw2aJD6~~}ne:6; 6f _;'#"""!! {^~RzPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwEgTJ^=%}}z\T95?.""""!!!xpWPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw&J8F/~}||rB=HC/4"""!!!!jBoPxPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw/\GF8~}|{lc62: 5a[9&"!!!! "Z|tMsPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw:pVMAV>!~}|{xUN51-)?<."!!! %h\vIlMrPwPwPwPwPwPwPwPwPwPwPwPwPwEg/[E}C~>,~}|{zvl<8GA^X7%!! &~BVklGjPwPwPwPwPwPwPwPwPwPwPw:qWRF[F?)}|{zxPJ3 /-)?:,!! #,nUx;rW>z]BcAaPwPwPw=w[)~|{zzpMG1 .-)?)|3% #)+48)}F<4., ~}|{tQK2 /f^+ (?5.! xo8~}|yg^8 4& # * '?3+ rj3}|yja<8SM0" ( %?1*!nf1~}wjb?;TN-)xEB>$& $?/+"ja/~~sTN=8UO-)TPUC3% #?-*!e],|{pSM;7* 'c_YUNB4$j!c)$aY*uc[FA:6h_phc\TMC6$" ?c\&z#~]V(zukc[LGB>KE-)c_\WRPPM;  C\Vw$ov"ov~VO'~|yod]RMGCA=MG-)VUQNLIDCD4)-)H95RLjcjckdc\d]KFo g]VZSWQNHHCPJ> 9-)i=<<;;<>5*%"2/1./,- *, )* ') &' %& $? :#########" 00$$$$(R ' 'gorm-1.3.1/Images/iconCenterLeft_nib.tiff0000644000175000017500000000436014327003122017300 0ustar heronheronII* DDD`v L~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconCenterLeft_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/iconTopRight_nib.tiff0000644000175000017500000000430214327003122017001 0ustar heronheronII* DDD`v ~@(RImages/iconTopRight_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/button_nib.tiff0000644000175000017500000000435014327003122015706 0ustar heronheronII*   {y{EEE`{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{v D~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/button_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormEVCoil.tiff0000644000175000017500000001002014327003122015500 0ustar heronheronII*PPPPPPPPPPPPPPPPPPPPPPPPUPPPyyPPP}88}PPPg PPP gPPP""PPPPPP""PPP g}88}yyPPPg PPPUUPPP"PPPPPPPPPPPPPPPPPPPPPPPP"PPPg UUPPPyyPPP}88}PPP gPPPPPP""PPP"" g}88}yyPPPg UUPPP"PPP"UUPPPgyyPPP}88}PPP gPPPPPP""PPP""g g}88}yyPPPUUPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP2 E@(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormEVCoil.tiffHHgorm-1.3.1/Images/outlineView.tiff0000644000175000017500000000513214327003122016054 0ustar heronheronII*   F 4 @ J R (R/home/heron/Development/gnustep/dev-apps/gorm/Images/outlineView.tiffCreated with The GIMPHHgorm-1.3.1/Images/iconBottomLeft_nib.tiff0000644000175000017500000000436014327003122017324 0ustar heronheronII* DDD`v L~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconBottomLeft_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormCopyImage.tiff0000644000175000017500000000064014327003122016243 0ustar heronheronII*#Ǯ 0xT" B-Fc0R:br =#cRrK/d)46NeI}5g40=iTe6OjP<)K+UJr)P$ungͪ)i[kn\7>\ox+W boPM-jcUDyZG1`UAJ/Y4^Uifej(R ' 'gorm-1.3.1/Images/GormImage.tiff0000644000175000017500000002230214327003122015407 0ustar heronheronII*$WUUUUUUUUUWUUUUUUUUUrrrUUUUUUUUUUUU999UUU51,<833/')&)0;hr|aUUUUUUUUUUUUrrrUUU999UUUrrrUUU999rrr7<`9?`5;W-4M.(C)$'5YwaUUUUUUUUUUUU999UUUUUUUUUUUUUUU;Cd=DdV*0Q.0P.+A".16jaUUUUUUUUUUUU999999UUUUUUUUU999UUUUUU14@I?C<5542//'3$"5+8PkaUUUUUUUUUMB9SH<[Q@[Q>bZA[SCRL?OK;JF7GF;DE;DC7FI=VPBgaM`eHlwaaUUUUUUUUUUUUUUU +'85$C>*NI5ID1SN;RP;YXEZYJIJ=}~zjX]RaUUUUUUUUUUUUUUUEA&gKJ?aUUUUUUUUUUUUUUU999rrrrrrUUU999rrrUUUrrrrrrUUU+##$=6)aUUUUUUUUUUUUrrrUUUUUUUUU       -+GI+qwLFI*  #&!aUUUUUU999UUUrrrUUU999UUU999uzWyzcĵzzxQOMKE@ArGwxOVD"HF/YV4a`pyCGM>DI@=OBFQRV^TQ]IK[OXYNQ_.)2O]EufOʲpq@B8a77E?AP47G6;K:=PADUBEU\_nDMVJN]DEQ347CE4{bSʵsia11E>?T68NDH`?BU;>O>AQPSbJS\KO^NO[569RU>kY9/4%aUUUUUUXZ\MQTOTYFNS7:M8;LEHXLO^GPYLP_MNY88;VYDrfH>?%aUUUUUUGHQJLVCGS@FR8;N8;LADT?BQDMVGKZMNY::==>03'  aUUUUUUUUUUUUUUU999UUUrrr999UUUUUUUUUUUUAFW@DR?BN?AM>?P-2=?GSZbu_lxOV_egjJFF)! .aUUUUUUUUUUUU999rrrUUUUUUUUUUUUUUUUUUbl|HP_9=K79F:;K5$0ZH \!aUUUUUUUUUUUU999rrrUUUUUUUUUUUUUUU999999rrrz36@02>*(-/12MZiWl[rlSrq\@C4;6*!9-g*b*]%aUUUUUUUUUX!aUUUUUUUUU+++5aqqqqqq+++- aUUUqqq222OOOqqqqqqqqqqqqOOO+++UUUUUU0aUUUqqqqqqqqqOOOOOOqqqqqqqqqqqq+++- aUUUUUUUUUqqqOOOqqqqqqOOO222OOOqqqqqqOOOOOO+++aqqqOOO+++aUUUTUUUmmm|||TUUUUUUUUUTTTTTTTTTTTTTTTTTTTjWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 00$$$$(R ' 'gorm-1.3.1/Images/GormClass.tiff0000644000175000017500000002230214327003122015432 0ustar heronheronII*$\Un1BA@?>=<;:5*{^Yn3DA=5110//.--2562{'s`YnAB>3+'#"#""""! "$*/22s$lb[nCD;-&$$####"""!!! !#(-.l!d6G&}T6%%$$#!_Hiyd•YPwPwPwPwPwPwPwV[dÕtHz ne=V.f`+ (nc\nF/$${q=Y6$#ldgoإPwPwPwPwPwPwPwPwPwPwPwPwPw\g$~ x&}T.ldZUD=%%%$zpTGfIozZPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwR{YsAwTC|aZ( $nc\nE-%%%$$$&}'}yPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwT}I jcSM6A%%%%$$#.!nZPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwU~G{qWQN GnH2%%%$$$$#zXn֤PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwOvtc&~\V=9b[nD-%%$$$$!kcwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwFh1!b[KF6@'%$$$$#a{{cPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwImy[.ofNHG7%$$$$$#zeYPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwLq[io5|LG73G5$$$$$$"vmsPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw;rW7zJE61F4$$$$## UOqݩPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw8mS<)yHC4 0E2$$$$##mx`PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwBb}R,xPJ3 0E/$$$###mw^PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwA~`~P,wD?1 .D/$$####dFld”PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw8mSH,uB=0 -C.$####" `Yi͜PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw.YDB+t@;. +C0####""!vmfǘPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw+T@> }s>9B2####""!{\mqYPwPwPwPwPwPwPwPwPwPwPwPwPw=v[K>~|r<817###"""!fCl[PwPwPwPwPwPwPwPwPwPwPwPwPw2aJD6~~}ne:6; 6f _;'#"""!! {^~RzPwPwPwPwPwPwPwPwPwEgTJ^=%}}z\T95?.""""!!!xpWPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw&J8F/~}||rB=HC/4"""!!!!jBoPxPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw/\GF8~}|{lc62: 5a[9&"!!!! "Z|tMsPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw:pVMAV>!~}|{xUN51-)?<."!!! %h\vIlMrPwPwPwPwPwPwPwPwPwPwPwPwPwEg/[E}C~>,~}|{zvl<8GA^X7%!! &~BVklGjPwPwPwPwPwPwPwPwPwPwPw:qWRF[F?)}|{zxPJ3 /-)?:,!! #,nUx;rW>z]BcAaPwPwPw=w[)~|{zzpMG1 .-)?)|3% #)+48)}F<4., ~}|{tQK2 /f^+ (?5.! xo8~}|yg^8 4& # * '?3+ rj3}|yja<8SM0" ( %?1*!nf1~}wjb?;TN-)xEB>$& $?/+"ja/~~sTN=8UO-)TPUC3% #?-*!e],|{pSM;7* 'c_YUNB4$j!c)$aY*uc[FA:6h_phc\TMC6$" ?c\&z#~]V(zukc[LGB>KE-)c_\WRPPM;  C\Vw$ov"ov~VO'~|yod]RMGCA=MG-)VUQNLIDCD4)-)H95RLjcjckdc\d]KFo g]VZSWQNHHCPJ> 9-)i=<<;;<>5*%"2/1./,- *, )* ') &' %& $? :#########" 00$$$$(R ' 'gorm-1.3.1/Images/iconBelow_nib.tiff0000644000175000017500000000435414327003122016320 0ustar heronheronII*      HHH`  v G~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconbelow_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormFilesOwner.tiff0000644000175000017500000002230214327003122016442 0ustar heronheronII*$җٗԔБʍʼnzeeeƖܛ2-)('&',yvh`[`" 'ܛ5.'$#""! !#&'ep[n/0&$##""!! %ayYvQKPӝ7*$$###""!  "qSnIEH;)%$$##"" #z^H\+"5%$$$"&?vdjhinrv_+4SaG_͗3=*$$#'Rga_XZ^^pf)'6-{bB_:6:309ݜ/%!-3'^fVPwPwPwPwPwPwPwQxU}ey}A0"vJ8I  E@M+%$#&FlWPwPwPwPwPwPwPwPwPwPwQyxm,~V7R(%U ($$#(]QyPwPwPwPwPwPwPwPwPwPwPw[z<X4UB.@ 'ő-%$$&DfS|PwPwPwPwPwPwPwPwPwPwPwPwPuV'jbC,A:($$$8p{U}PwPwPwPwPwPwPwPwPwPwPwPwPwOvVwo<sjE)BNݓ&$##@iU~PwPwPwPwPwPwPwPwPwPwPwPwPwPwBbF#tkD'ASّ&$##EaR{PwPwPwPwPwPwPwPwPwPwPwPwPwPwEf|Q*sj@"=SՍ%###B`S{PwPwPwPwPwPwPwPwPwPwPwPwPwPwBbM*pg:7Sщ%#"":Qv%!! 3`twPuPwPwPwPwPwPwPwPwPwPwA~aC#}{xn.+5 0 & #3q(! +pW|OpNtPwPwPwPwPwPwJj][lA&~}{~t_W $ iԪi# 1k[xLjGiKoPwLrEf@|_c[qA/}|{uk.+ " 0dܣc!"+6xD|QH\qHw=:/}{t+ (! B>a`'##4# ~|yg_  cQbY#}*}uja+ (i5q%q:,bkUNx'}yo1.& #' * $ / 9 ;$ (./,)s k  8&I1D.D.7VOwG{u$wm,*% !2 - 3 9 IV 0.64#"!"f!#yI1D.D.D.C.@3{JcoCjp22Cf:M]4OV.NP*JE%@H#B?:<7908*d8UOLKPZ]i#o%o&b!1 qD?M(EX}PwPwPwWSS7N4N4N4N4M4L3L2J2J1E4@8=<:=7;473804/4-/-,,(*z)v'r&q&r&q&r&q&p&o&b!1 8HCT'gPwPwPwPwS72!2!2!2!2!2!1!1!0 0 /.-,*{)v'r&o%j#d"a ]YVTQNMKJIHH0 UGAT&yiPwPwPwPwS7e"e"e"e"e"d"c"b!a!`!^ \ZYVSPNLIFDA?= ; : 8 7 6 5 5 4 4 "  p: 6I#+^{UynP+)&&#bl!/d"b!b!a!` ^\ZXUROMKR%a.*'&#[<:6 5 4 4 3 3 "  @ 'оE~eS'2=3!!"gb b!a!`!_ ][ZXUROLM}%V/#5:-!"P05 5 4 3 3 3 "  i; 3 /K!#.*Nh]~aX-uR/*'&z$T]YWTQNLf5+*`d]}eX {kC$4 3 3 2 2 !  e8 5 0U ./vyPwPwPwZzD"-)&$"!y T^#VTQMKw!K)E]PwPwPwZz%yR<4 3 2 2 2 ! sI:ZSw,:aPwPwPwPv~X3*,HT;%#s PUSPMKy N'gPwPwPwPwPv7zWC3 3 2 2 2 ! W?E@T)2cPwPwPwRvT*9`PwPwPwudzaBROLJuJ%SPwPwPwPwRv.}rQ>3 2 2 2 2 !  e;1@;Q)$}_QuOvPuhn|@(\PwPwPwPwfu~'|YE6 4 2 0 Z=#+ez~PuNuSvhn|qg> 0" ! ! ! ! X8#( %5 ".odbtylh~6,&xnPwPwPwPwbz|/xD ?5ji~er|q_6|SLU&"3ul %%BPwPwPwPwjl~!|q@ ;3 /K!"aY"JExtkrhKD{r#xXQsLqY|u<yh_,(OJxnulh_A <xF }u&0%tj9 4"mc{aY)&  DMHTMOHH A%"qN 00$$$$(R ' 'gorm-1.3.1/Images/GormMenu.tiff0000644000175000017500000002253414327003122015300 0ustar heronheronII*$)))8VWVLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLEGEcdcLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMNMded >>> qqqBBB???777:9:QPQ777>>>ooo???wwwIII555---GFG%%%222GGG sss|||UUUlll>>>ihiMLMrsrnon"""### #$#FFF ^_^yyyeeeutuusujij{y{eee{y{eeeVWVmmmhhhvtv}|}eeeyxytqtbabjijonoxvxZXZgeg|z|a`aeee`a`^^^xxxeeeonohghzyzeee{y{tsteeeUVUklk|{|]^]xxxeee}|}tsteeezxz{z{eee~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~TUT~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~jjjjjj~wuwxvx~}~eeecacigiqpqzxzZYZmlmwuwjhjUSUusuvuveee~~~abaTTTZ Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z XXX{y{dcdvuv~wuw}{}XXXrpr~|{|}tstXXX}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}FFF_^_XXXonosqs^]^kikhfh}wvwXXXUUUOOOXXXxwxxvx}|}XXXjijzyzutuvuvXXXbabZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZKKK010ded00$ G$6%@$L%T%(R/home/heron/Development/gnustep/dev-apps/Gorm/Images/GormMenuDrag.tiffCreated with The GIMPHHgorm-1.3.1/Images/photoframe_nib.tiff0000644000175000017500000000435414327003122016543 0ustar heronheronII*   {y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{EEE`{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{v H~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/photoframe_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormOutlet.tiff0000644000175000017500000000171214327003122015643 0ustar heronheronII*$0006{{{$0006λTTT $ZZZYYY'''0{{{999+++0)))00ggg-GGGDDDHiii㙙___!!!RRRPVVVmmmSSS&&&777 GPPP;;;:::777***555>>> $-0000 0    @(Rgorm_Outlet.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormMVLine.tiff0000644000175000017500000001611414327003122015523 0ustar heronheronII* PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP[ E,@4<D(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormMVLine.tiffHHgorm-1.3.1/Images/shortbutton_nib.tiff0000644000175000017500000000435614327003122016774 0ustar heronheronII*  DDD`"bab{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{{y{v J~@(R/home/heron/Development/gnustep/dev-apps/Gorm/Images/shortbutton_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormNib.tiff0000644000175000017500000062305214327003122015106 0ustar heronheronII*00  >*$PX(1 `2lJRS/home/heron/Development/gnustep/apps-gorm/Images/GormNib.tiffHHGIMP 2.10.82020:07:12 01:34:26 *&S$ (/LB`q/EQ~ -5RC`pau` " ,3QEcsfww3KX /;h2I\B`xPv 0) -5QGdtdyeU{ahX )` !/7THevl~qnkphir^&9H"/7SJhxi}|s|yknaTzef4Ma  *%4=_Lk{n텱}tutsqutjU}]lDc}>FMJfw`pxwvuutrq{ro|]U|rLp '  <"1>j0FYB`xNqSx_w_wwy{yvuutsrqrihffRytS} E#BGiRxX]bnwsxxrrqoqjhiltuZoY$.h!G_|~y}s}~spos|ls|ke~`cb)cx ,6px}}ollllllllllllrwuuiiT!LCl{}mlllllllllllllrt{{yr]b7Xi #X}}{lllllllllllllllruhgVUhS 9Dc|x}|xsqlkklllljkl_]jru`XXWVT`_/L]8Rgjvqolkkklkkk```]]sfZXWV\hcS?g{,AR]|qomlkkkkkkk````[o\XXeiaULy!4A5 ,7hYz{mlkkkkikk`````hhtik\SKtKkZy)3zBV}yzlkkjif\k```hhttkkQFmEgVxjt-DV Ryq~xxmlkkkkkk```hhttkk_wF^p^zmrk`U|8Rg Hinqvwvvmlkkkkk}ekhhttkk_w_w_w_wU}Kp=\r,BS+7` 99Ukpdvutt{bahctkk_w_w_w)>Mhbvttsrqq~reerykkk(3b^kmusqqpomljiggelzxiT2L\zK:U~whqqpommkjhhsvcKr$8B G Nse]tponmlkij~sa>^p&-x0 & FeRzHjbqomlktlX2JY U  $P V:0EQ}nl||kOv%7@ B3hyb@_q!'p) Mrzr\2IV W &8BqQu$4><%MsMsMsMsMs^^^^^gggggg_____MsMsMsMsMs^^^^^gggggg_____MsMsMsMsMs^^^^^gggggg_____MsMsMsMsMs^^^^^gggggg_____MsMsMsMsMs^^^^^gggggg_____-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<-KZ-KZ-KZ-KZ-KZdddddkkkkkkllllluuuuuÀÀÀÀÀjjjjj-DK-DK-DK-DK-DK-<-<-<-<-<-<NzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:JNzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:JNzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:JNzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:JNzNzNzNzNzbbbbbkkkkkkqqqqqxxxxxLjLjLjLjLjǐʐʐʐʐʉƉƉƉƉƒʒʒʒʒʒwwwwwV~V~V~V~V~NsNsNsNsNsNsRxRxRxRxRxU|U|U|U|U|YYYYYY%:J%:J%:J%:J%:J3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um3DU3DU3DU3DU3DUeeeeennnnnnpppppyyyyyŽˎˎˎˎˎ˓̓̓̓̓̉ljljljljdžƆƆƆƆƆƍɍɍɍɍɌȌȌȌȌȀ€€€€€‰ʼnʼnʼnʼneeeeeU{U{U{U{U{U{aaaaahhhhhXXXXXX:Um:Um:Um:Um:Um@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDf@@@@@@@@@@@@UuUuUuUuUudddddoooooottttt~~~~~Ŏˎˎˎˎˎ˗ϗϗϗϗϦզզզզՉȉȉȉȉȉȍɍɍɍɍɔ̔̔̔̔̄ńńńńńqqqqqnnnnnkkkkkk‚‚‚‚ppppphhhhhhiiiiirrrrr^^^^^^DfDfDfDfDfDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKpDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKpDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKpDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKpDUfDUfDUfDUfDUfhhhhhrrrrrruuuuu~~~~~Ŕϔϔϔϔϔϛћћћћюˎˎˎˎ||||||sssss|||||šϚϚϚϚϚϋȋȋȋȋȉljljljljǃăăăăăāÁÁÁÁyyyyykkkkkknnnnn‚‚‚‚aaaaaaTzTzTzTzTzeeeeeffffffKpKpKpKpKp++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     ++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     ++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     ++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     ++U++U++U++U++U"3"3"3"3"3"3OsOsOsOsOscccccqqqqqqvvvvvʅʅʅʅʓϓϓϓϓϓϛққққҔϔϔϔϔ}}}}}}tttttuuuuuttttttsssssqqqqq͖͖͖͖͖ͅŅŅŅŅłĂĂĂĂČȌȌȌȌȌȇŇŇŇŇŃÃÃÃÃuuuuuuttttt…………jjjjjjU}U}U}U}U}]]]]]llllllQwQwQwQwQw     $$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A$$I$$I$$I$$I$$IVbkVbkVbkVbkVbkiiiiioooooowwwwwǀǀǀǀǖЖЖЖЖЖОԞԞԞԞԒΒΒΒΒ΀ƀƀƀƀƀxxxxxwwwwwvvvvvvuuuuuuuuuuttttttrrrrrqqqqqāāāāāĔ̔̔̔̔̒˒˒˒˒ˌnjnjnjnjnjDžąąąąċƋƋƋƋ{{{{{{rrrrrooooo||||||]]]]]U|U|U|U|U|rrrrrrS{S{S{S{S{!4A!4A!4A!4A!4A9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\9^q9^q9^q9^q9^qHoHoHoHoHoHoRvRvRvRvRvRxRxRxRxRxU|U|U|U|U|U|U|U|U|U|U|TyTyTyTyTy_w_w_w_w_w_w_w_w_w_w_w͙͡͡͡͡љљљљљѝӝӝӝӝӖЖЖЖЖЀǀǀǀǀǀwwwwwyyyyy{{{{{{yyyyyvvvvvuuuuuuuuuuutttttssssssrrrrrqqqqqrrrrrr̕̕̕̕̕˕˕˕˕ˈňňňňňŌnjnjnjnjiiiiiihhhhhffffffffffRyRyRyRyRyttttttUUUUU0J\0J\0J\0J\0J\IlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqIlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqIlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqIlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqIlIlIlIlIlIlU~U~U~U~U~XXXXXZZZZZZ]]]]]bbbbbnnnnnnwwwww͡͡͡͡͡͡͡͡͡͡sssssxxxxxxǃǃǃǃNJˊˊˊˊ˫ګګګګګ۳۳۳۳۳ۑ̑̑̑̑xxxxxrrrrrrrrrrrqqqqqooooooNJNJNJNJǎȎȎȎȎȍȍȍȍȍȍqqqqqjjjjjhhhhhhiiiiilllllttttttuuuuuZZZZZooooooYYYYY;Xq;Xq;Xq;Xq;XqAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhAawAawAawAawAawAaw_____|||||~~~~~~yyyyyƒȃȃȃȃȚҚҚҚҚҚҝӝӝӝӝӔϔϔϔϔ}}}}}}sssss}}}}}~~~~~~蚼ϚϚϚϚϚssssspppppoooooosssssȏȏȏȏ||||||lllllsssss||||||kkkkkeeeeee~~~~~`````ccccccbbbbbGhGhGhGhGhaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmaaaaappppppxxxxxȄȄȄȄȔϔϔϔϔϔϟԟԟԟԟԕЕЕЕЕ~~~~~~zzzzz{{{{{{{{{{{yyyyyœœœœզզզզձٱٱٱٱٱٻ޻޻޻޻|||||nnnnnnmmmmmƋƋƋƋƂ‚‚‚‚‚‚|||||yyyyyyzzzzzmmmmmccccccnnnnnooooo\\\\\\jjjjjLmLmLmLmLmY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQwY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQwY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQwY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQwY|Y|Y|Y|Y|xxxxxx¢բբբբՑΑΑΑΑ΁ǁǁǁǁǁyyyyyzzzzz{{{{{{{{{{{|||||||||||Ź߹߹߹߹گگگگڄƄƄƄƄƄssssspppppooooooˑˑˑˑ~~~~~~lllllzzzzzÄÄÄÄÄÀĉĉĉĉĉăwwwwwccccccaaaaazzzzz^^^^^^iiiiiQwQwQwQwQw"3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'."3"3"3"3"3rrrrrrҚҚҚҚ|||||zzzzzzzzzzz{{{{{{{{{{{||||||||||ŰܰܰܰܰܰݶݶݶݶssssssrrrrrooooooooooolllllŇŇŇŇxxxxxkkkkkĉĉĉĉĉĎƎƎƎƎƀzzzzzz{{{{{wwwwwggggggaaaaammmmmiiiiii_____U{U{U{U{U{'.'.'.'.'.'.ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\ffffff̍̍̍̍̊ˊˊˊˊzzzzzz{{{{{{{{{{|||||||||||œϓϓϓϓ{{{{{{rrrrrpppppnnnnnnlllllkkkkkʒʒʒʒʒʰְְְְkkkkkyyyyy}}}}}yyyyyy|||||vvvvvffffff``````````uuuuuuZZZZZRyRyRyRyRy2G\2G\2G\2G\2G\2G\E]qE]qE]qE]qE]qE]q{{{{{ĝԝԝԝԝyyyyyy{{{{{|||||||||||}}}}}ΗΗΗΗΗrrrrrooooommmmmmlllllkkkkkkkkkkkծծծծՃjjjjjjĊĊĊĊĄ}}}}}qqqqq``````_____]]]]]rrrrrrcccccR|R|R|R|R|\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\s333333333333oooooӜӜӜӜ}}}}}}{{{{{|||||}}}}}}ŏΏΏΏΏpppppooooommmmmmkkkkkkkkkkkkkkkk}}}}}ӫӫӫӫhhhhhh~~~~~~mmmmmcccccaaaaaakkkkkwwwwwqqqqqquuuuuXXXXX>\s>\s>\s>\s>\s>\sbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkbbbbbˈˈˈˈˑΑΑΑΑΑ|||||}}}}}}}}}}}}}}}}nnnnnmmmmmmkkkkkkkkkkkkkkkkkkkkkհհհհlllllllllllvvvvvvkkkkkyyyyywwwwwwrrrrrsssssssssssttttt_____EkEkEkEkEkEkC[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####C[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####C[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####C[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####C[jC[jC[jC[jC[jzzzzzԝԝԝԝԝ|||||}}}}}}}}}}}kkkkklllllllllllkkkkkkkkkkkkkkkkkkkkkĔĔĔĔlllllllllll~~~~~~vvvvvrrrrrrrrrrryyyyyvvvvveeeeeejjjjjlllllO~O~O~O~O~O~#####oooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:Znoooooӛӛӛӛӛ}}}}}}}}}}}ffffffllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrrrrrrrrrrr‡‡‡‡mmmmmmiiiiioooooYYYYYY:Zn:Zn:Zn:Zn:ZnZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~ZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~ZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~ZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~ZZZZZˈˈˈˈˈ˓ϓϓϓϓ}}}}}}}}}}}ʜʜʜʜkkkkkllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȐȐȐȐȇ‡‡‡‡†zzzzzmmmmmeeeeeeggggg]]]]]hhhhhhO~O~O~O~O~Gd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^oGd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^oGd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^oGd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^oGd{Gd{Gd{Gd{Gd{xxxxxx¡աաաա}}}}}}}}}}}ΦΦΦΦΓƓƓƓƓƓooooolllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrȏȏȏȏȄ‡‡‡‡‡wwwwwuuuuuuuuuuuɑɑɑɑiiiiiiiiiiiVVVVV9^o9^o9^o9^o9^o5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 5Pc5Pc5Pc5Pc5Pcllllllїїїї{{{{{}}}}}}ΣΣΣΣΈňňňňmmmmmmllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllrrrrrrttttt{{{{{{{{{{{yyyyyǍǍǍǍǍNJŊŊŊŊrrrrr]]]]]]bbbbbM{M{M{M{M{ 3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^3I_3I_3I_3I_3I_]]]]]]ɆɆɆɆɖіііі}}}}}}{{{{{llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll͡͡͡͡͡llllllllllllllllrrrrruuuuuɑɑɑɑɑɍƍƍƍƍƆ††††hhhhhhgggggVVVVVUUUUUUhhhhhUUUUU1L^1L^1L^1L^1L^1L^$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIv$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIv$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIv$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIv$7I$7I$7I$7I$7IPtPtPtPtPtPtxxxxxԠԠԠԠ}}}}}}ũةةةة|||||xxxxxxsssssqqqqqllllllkkkkkkkkkklllllllllllllllllllllljjjjjkkkkk͡͡͡͡͡lllll_____]]]]]]jjjjjrrrrruuuuuu`````XXXXXXXXXXXWWWWWVVVVVTTTTTT`````_____IvIvIvIvIvIvNrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5NrNrNrNrNrNrjjjjjҙҙҙҙ҃ȃȃȃȃȃȄȄȄȄȄ폵ʏʏʏʏvvvvvvqqqqqooooollllllkkkkkkkkkkkkkkkklllllkkkkkkkkkkkkkkkk͡͡͡͡````````````````]]]]]]]]]]]sssssffffffZZZZZXXXXXWWWWWWVVVVV\\\\\hhhhhhcccccTTTTTL|L|L|L|L|L|,5,5,5,5,5MrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcMrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcMrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcMrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcMrMrMrMrMrMr]]]]]ǁǁǁǁǚҚҚҚҚҚ|||||ijݳݳݳݳׯׯׯׯqqqqqqooooommmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡``````````````````````[[[[[ooooo\\\\\\XXXXXXXXXXeeeeeeiiiiiaaaaaUUUUUULyLyLyLyLy2Oc2Oc2Oc2Oc2OcJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkJlJlJlJlJlJlYYYYYzzzzzԞԞԞԞԞ{{{{{Àƀƀƀƀ㒵ɒɒɒɒɒmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkiiiiikkkkkkkkkkk͡͡͡͡```````````````````````````hhhhhhhhhhttttttiiiiikkkkk\\\\\\SSSSSKtKtKtKtKtKkKkKkKkKkKkZyZyZyZyZy8Vk8Vk8Vk8Vk8VkBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGlBaxBaxBaxBaxBaxBaxXXXXXyyyyy͑͑͑͑͑ͅȅȅȅȅzzzzzˍˍˍˍˍ㙹˙˙˙˙˙lllllkkkkkkkkkkkjjjjjiiiiiffffff\\\\\kkkkk͡͡͡͡͡͡͡͡͡͡````````````````hhhhhhhhhhhttttttttttkkkkkkkkkkkQQQQQFmFmFmFmFmFmEgEgEgEgEgVxVxVxVxVxjjjjjjtttttGlGlGlGlGl):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKn):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKn):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKn):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKn):J):J):J):J):J):JWWWWWqqqqq~~~~~~ŕϕϕϕϕxxxxxxxxxxxʌʌʌʌٳٳٳٳٳيNJNJNJNJmmmmmllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk͡͡͡͡````````````````hhhhhhhhhhhtttttttttttkkkkkkkkkk_w_w_w_w_w_wXvXvXvXvXv^z^z^z^z^zmmmmmmrrrrrkkkkk``````V~V~V~V~V~KnKnKnKnKnSzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-SzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-SzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-SzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-SzSzSzSzSznnnnnqqqqqqћћћћvvvvvwwwwwwvvvvvŃŃŃŃžӤӤӤӤvvvvvvmmmmmlllllkkkkkkkkkkkkkkkkkkkkkkkkkkk}}}}}ϧϧϧϧϧϝʝʝʝʝeeeeekkkkkkhhhhhhhhhhtttttttttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wWWWWWQyQyQyQyQyQyJoJoJoJoJo@az@az@az@az@az8Pf8Pf8Pf8Pf8Pf8Pf%8H%8H%8H%8H%8H$-$-$-$-$-OvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wOvOvOvOvOvpppppddddddʋʋʋʋʃƃƃƃƃvvvvvvuuuuuttttttttttt̓̓̓̓̿߿߿߿߿ززززؚ͚͚͚͚͏ǏǏǏǏǏnjƌƌƌƌƐǐǐǐǐǟ͟͟͟͟͟ͱԱԱԱԱԩЩЩЩЩ{{{{{{bbbbbaaaaahhhhhhccccctttttkkkkkkkkkkk_w_w_w_w_w_w_w_w_w_w_w_w_w_w_w_wJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkJpJpJpJpJphhhhhbbbbbbvvvvvΖΖΖΖtttttttttttsssssrrrrrrqqqqqqqqqq~~~~~~ɒɒɒɒɤѤѤѤѤѪӪӪӪӪӪӧѧѧѧѧќ̜̜̜̜̈ÈÈÈÈÈrrrrreeeeeeeeeeerrrrryyyyykkkkkkkkkkkkkkkkIhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     IhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     IhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     IhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     IhIhIhIhIh^^^^^kkkkkkmmmmm͓͓͓͓uuuuuusssssqqqqqqqqqqqpppppooooommmmmmllllljjjjjiiiiiiggggggggggeeeeeelllllzzzzzxxxxxxiiiiiYYYYYCg|Cg|Cg|Cg|Cg|Cg|0;0;0;0;0;     >\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK>\w>\w>\w>\w>\wVVVVVwwwwwwhhhhhDŽDŽDŽDŽǁāāāāāqqqqqqqqqqppppppooooommmmmmmmmmmkkkkkjjjjjhhhhhhhhhhhsssssvvvvvdddddWWWWWW=_p=_p=_p=_p=_p ( ( ( ( ( @` @` @` @` @` @`-KK-KK-KK-KK-KK8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW8Xh8Xh8Xh8Xh8XhU}U}U}U}U}eeeeee]]]]]tttttˏˏˏˏˏpppppooooonnnnnnmmmmmlllllkkkkkkiiiiijjjjj~~~~~~sssssccccccOxOxOxOxOx5Q`5Q`5Q`5Q`5Q`      /CW/CW/CW/CW/CW+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU+@+@+@+@+@U{U{U{U{U{U~U~U~U~U~U~NtNtNtNtNtfffffʐʐʐʐʐqqqqqooooommmmmmlllllkkkkkttttttllllll_____KnKnKnKnKn!09!09!09!09!09!092@U2@U2@U2@U2@U2@U+GU+GU+GU+GU+GU+GU3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@U3Mc3Mc3Mc3Mc3Mc$2A$2A$2A$2A$2A$2ATyTyTyTyTy}}}}}}‚ÂÂÂÂnnnnnllllll|||||ʼnʼnʼnʼn||||||lllll[[[[[BaqBaqBaqBaqBaqBaq'.'.'.'.'.++U++U++U++U++U++U3@Y3@Y3@Y3@Y3@Y+@U+@U+@U+@U+@UFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YFdsFdsFdsFdsFdsnnnnnnɐɐɐɐɄÄÄÄÄÊŊŊŊŊŊyyyyyfffffU~U~U~U~U~U~2KY2KY2KY2KY2KY3333333333UUUUUUUUUUUUUUU&@Y&@Y&@Y&@Y&@Y&@YddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CddddddzzzzzrrrrrddddddLoLoLoLoLo&;C&;C&;C&;C&;CV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`sV~V~V~V~V~V~`````C`sC`sC`sC`sC`s                              gorm-1.3.1/Images/bezel_nib.tiff0000644000175000017500000000435014327003122015474 0ustar heronheronII*   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEEE`xxxxxxxxxxxxxxxxxxv C~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/bezel_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormObject.tiff0000644000175000017500000002230214327003122015573 0ustar heronheronII*$\Un1BA@?>=<;:5*{^Yn3DA=5110//.--2562{'s`YnAB>3+'#"#""""! "$*/22s$lb[nCD;-&$$####"""!!! !#(-.l!d6G&}T6%%$$#!_Hiyd•YPwPwPwPwPwPwPwV[dÕtHz ne=V.f`+ (nc\nF/$${q=Y6$#ldgoإPwPwPwPwPwPwPwPwPwPwPwPwPw\g$~ x&}T.ldZUD=%%%$zpTGfIozZPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwR{YsAwTC|aZ( $nc\nE-%%%$$$&}'}yPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwT}I jcSM6A%%%%$$#.!nZPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwU~G{qWQN GnH2%%%$$$$#zXn֤PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwOvtc&~\V=9b[nD-%%$$$$!kcwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwFh1!b[KF6@'%$$$$#a{{cPwPwPwPwPwPwPwPwPwPwPwPwPwImy[.ofNHG7%$$$$$#zeYPwPwPwPwPwPwPwPwPwPwLq[io5|LG73G5$$$$$$"vmsPwPwPwPwPwPwPwPwPwPwPwPwPwPw;rW7zJE61F4$$$$## UOqݩPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw8mS<)yHC4 0E2$$$$##mx`PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwBb}R,xPJ3 0E/$$$###mw^PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwA~`~P,wD?1 .D/$$####dFld”PwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw8mSH,uB=0 -C.$####" `Yi͜PwPwPwPwPwPwPwPwPwPwPwPwPwPw.YDB+t@;. +C0####""!vmPwPwPwPwPwPwPwPwPwPwPwPwPw+T@> }s>9B2####""!{PwPwPwPwPwPwPwPwPwPwPwPw=v[K>~|r<817###"""!fClPwPwPwPwPwPwPw2aJD6~~}ne:6; 6f _;'#"""!! {^~RzPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwEgTJ^=%}}z\T95?.""""!!!xpWPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw&J8F/~}||rB=HC/4"""!!!!jBoPxPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw/\GF8~}|{lc62: 5a[9&"!!!! "Z|tMsPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPw:pVMAV>!~}|{xUN51-)?<."!!! %h\vIlMrPwPwPwPwPwPwPwPwPwPwPwPwPwEg/[E}C~>,~}|{zvl<8GA^X7%!! &~BVklGjPwPwPwPwPwPwPwPwPwPwPw:qWRF[F?)}|{zxPJ3 /-)?:,!! #,nUx;rW>z]BcAaPwPwPw=w[)~|{zzpMG1 .-)?)|3% #)+48)}F<4., ~}|{tQK2 /f^+ (?5.! xo8~}|yg^8 4& # * '?3+ rj3}|yja<8SM0" ( %?1*!nf1~}wjb?;TN-)xEB>$& $?/+"ja/~~sTN=8UO-)TPUC3% #?-*!e],|{pSM;7* 'c_YUNB4$j!c)$aY*uc[FA:6h_phc\TMC6$" ?c\&z#~]V(zukc[LGB>KE-)c_\WRPPM;  C\Vw$ov"ov~VO'~|yod]RMGCA=MG-)VUQNLIDCD4)-)H95RLjcjckdc\d]KFo g]VZSWQNHHCPJ> 9-)i=<<;;<>5*%"2/1./,- *, )* ') &' %& $? :#########" 00$$$$(R ' 'gorm-1.3.1/Images/GormTargetTag.tiff0000755000175000017500000000230214327003122016250 0ustar heronheronII*&$m?hysb6] RP"!EA[   m<#""! ,B  <##"! (A&$R##tj   f]* m?hP""! &;7y""! m(fs!! d"^b6]E {q/+Aul L,wTM  B(waY  8*&{qulTM ;7m(fd"^/+ (R ' 'gorm-1.3.1/Images/iconCenterRight_nib.tiff0000644000175000017500000000436214327003122017465 0ustar heronheronII* DDD`v M~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconCenterRight_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/iconTop_nib.tiff0000644000175000017500000000435214327003122016010 0ustar heronheronII*  DDD`v E~@(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconTop_nib.tiffCreated with The GIMPHHgorm-1.3.1/Images/date_formatter.tiff0000644000175000017500000001337214327003122016547 0ustar heronheronII*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsssususjususjussussusu{suu{suu{sussusususususuu{susususssubesuJLJsussususJLJJLJsusuJLJJLJJLJsusJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJuJLJJLJJLJJLJsJLJJLJJLJJLJuJLJJLJJLJJLJJLJJLJJLJJLJusJLJJLJJLJJLJsuJLJJLJJLJJLJsu{sJLJJLJJLJJLJusuJLJJLJJLJJLJsusJLJJLJJLJJLJusJLJJLJJLJJLJsu{JLJJLJJLJJLJus)()JLJJLJJLJJLJsu)()JLJJLJJLJJLJ)())()JLJJLJJLJJLJsuu{su)())())())())())())())())())())())())())())())())())())())())())())())())())())())())())())())())()JLJJLJJLJJLJjussuJLJJLJJLJJLJsususuJLJJLJJLJJLJsusususuJLJJLJJLJJLJsuu{susususJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJJLJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++ H@(/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/date_formatter.tiffCreated with The GIMPHHgorm-1.3.1/Images/GormMHLine.tiff0000644000175000017500000001607414327003122015512 0ustar heronheronII* PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP[ E@,4(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormMHLine.tiffHHgorm-1.3.1/Gorm.spec.in0000644000175000017500000000070714327003122013653 0ustar heronheronSummary: The GNUstep graphical interface builder Release: 1 Copyright: GPL Group: Development/Tools Source: ftp://ftp.gnustep.org/pub/gnustep/dev-apps/%{gs_name}-%{gs_version}.tar.gz Requires: gnustep-gui %description Gorm is an acronym for GNUstep/Graphical Object Relationship Modeler. It is a clone of the NeXTstep `Interface Builder' application for GNUstep. With Gorm, a developer can build an interface very quickly and easily with no code. gorm-1.3.1/Resources/0000755000175000017500000000000014327003123013435 5ustar heronherongorm-1.3.1/Resources/ClassInformation.plist0000644000175000017500000003217714327003123017777 0ustar heronheron{ FirstResponder = { Actions = ( "activateContextHelpMode:", "alignCenter:", "alignJustified:", "alignLeft:", "alignRight:", "arrangeInFront:", "cancel:", "capitalizeWord:", "centerSelectionInVisibleArea:", "changeColor:", "changeFont:", "checkSpelling:", "clearRecentDocuments:", "close:", "complete:", "copy:", "copyFont:", "copyRuler:", "cut:", "delete:", "deleteBackward:", "deleteForward:", "deleteToBeginningOfLine:", "deleteToBeginningOfParagraph:", "deleteToEndOfLine:", "deleteToEndOfParagraph:", "deleteToMark:", "deleteWordBackward:", "deleteWordForward:", "deminiaturize:", "deselectAll:", "fax:", "hide:", "hideOtherApplications:", "indent:", "loosenKerning:", "lowerBaseline:", "lowercaseWord:", "makeKeyAndOrderFront:", "miniaturize:", "miniaturizeAll:", "moveBackward:", "moveBackwardAndModifySelection:", "moveDown:", "moveDownAndModifySelection:", "moveForward:", "moveForwardAndModifySelection:", "moveLeft:", "moveRight:", "moveToBeginningOfDocument:", "moveToBeginningOfLine:", "moveToBeginningOfParagraph:", "moveToEndOfDocument:", "moveToEndOfLine:", "moveToEndOfParagraph:", "moveUp:", "moveUpAndModifySelection:", "moveWordBackward:", "moveWordBackwardAndModifySelection:", "moveWordForward:", "moveWordForwardAndModifySelection:", "newDocument:", "ok:", "open:", "openDocument:", "orderBack:", "orderFront:", "orderFrontColorPanel:", "orderFrontDataLinkPanel:", "orderFrontHelpPanel:", "orderFrontStandardAboutPanel:", "orderFrontStandardInfoPanel:", "orderOut:", "pageDown:", "pageUp:", "paste:", "pasteAsPlainText:", "pasteAsRichText:", "pasteFont:", "pasteRuler:", "performClose:", "performFindPanelAction:", "performMiniaturize:", "performZoom:", "print:", "printDocument:", "raiseBaseline:", "redo:", "revertDocumentToSaved:", "runPageLayout:", "runToolbarCustomizationPalette:", "saveAllDocuments:", "saveDocument:", "saveDocumentAs:", "saveDocumentTo:", "scrollLineDown:", "scrollLineUp:", "scrollPageDown:", "scrollPageUp:", "scrollViaScroller:", "selectAll:", "selectLine:", "selectNextKeyView:", "selectParagraph:", "selectPreviousKeyView:", "selectText:", "selectToMark:", "selectWord:", "showContextHelp:", "showGuessPanel:", "showHelp:", "showWindow:", "stop:", "subscript:", "superscript:", "swapWithMark:", "takeDoubleValueFrom:", "takeFloatValueFrom:", "takeIntValueFrom:", "takeObjectValueFrom:", "takeStringValueFrom:", "terminate:", "tightenKerning:", "toggle:", "toggleContinuousSpellChecking:", "toggleRuler:", "toggleToolbarShown:", "toggleTraditionalCharacterShape:", "transpose:", "transposeWords:", "turnOffKerning:", "turnOffLigatures:", "underline:", "undo:", "unhide:", "unhideAllApplications:", "unscript:", "uppercaseWord:", "useAllLigatures:", "useStandardKerning:", "useStandardLigatures:", "yank:", "zoom:" ); Super = NSObject; }; IBInspector = { Actions = ("ok:", "revert:", "touch:"); Outlets = (window); Super = NSObject; }; IBPalette = {Actions = (); Outlets = (originalWindow); Super = NSObject; }; NSActionCell = {Super = NSCell; }; NSApplication = { Actions = ( "arrangeInFront:", "hide:", "hideOtherApplications:", "miniaturizeAll:", "orderFrontColorPanel:", "orderFrontDataLinkPanel:", "orderFrontHelpPanel:", "orderFrontStandardAboutPanel:", "orderFrontStandardInfoPanel:", "runPageLayout:", "stop:", "terminate:", "unhide:", "unhideAllApplications:" ); Outlets = (delegate); Super = NSResponder; }; NSArray = {Super = NSObject; }; NSBox = {Super = NSView; }; NSBrowser = { Actions = ("doClick:", "doDoubleClick:", "selectAll:"); Outlets = (delegate); Super = NSControl; }; NSBrowserCell = {Super = NSCell; }; NSButton = {Actions = ("performClick:"); Super = NSControl; }; NSButtonCell = {Actions = ("performClick:"); Super = NSActionCell; }; NSCStringText = {Actions = ("clear:", "selectText:"); Super = NSText; }; NSCell = { Actions = ( "takeDoubleValueFrom:", "takeFloatValueFrom:", "takeIntValueFrom:", "takeStringValueFrom:" ); Super = NSObject; }; NSColorWell = {Actions = ("takeColorFrom:"); Super = NSControl; }; NSComboBox = {Outlets = (dataSource); Super = NSTextField; }; NSControl = { Actions = ( "takeDoubleValueFrom:", "takeFloatValueFrom:", "takeIntValueFrom:", "takeObjectValueFrom:", "takeStringValueFrom:" ); Outlets = (target); Super = NSView; }; NSCursor = {Super = NSObject; }; NSDateFormatter = {Super = NSFormatter; }; NSDictionary = {Super = NSObject; }; NSDocument = { Actions = ( "printDocument:", "revertDocumentToSaved:", "runPageLayout:", "saveDocument:", "saveDocumentAs:", "saveDocumentTo:" ); Outlets = ("_window"); Super = NSObject; }; NSDocumentController = { Actions = ("clearRecentDocuments:", "newDocument:", "openDocument:", "saveAllDocuments:"); Super = NSObject; }; NSDrawer = { Actions = ("close:", "open:", "toggle:"); Outlets = (delegate, contentView, parentWindow); Super = NSResponder; }; NSFontManager = { Actions = ( "addFontTrait:", "modifyFont:", "modifyFontViaPanel:", "orderFrontFontPanel:", "removeFontTrait:" ); Outlets = (menu); Super = NSObject; }; NSForm = {Super = NSMatrix; }; NSFormCell = {Super = NSActionCell; }; NSFormatter = {Super = NSObject; }; NSHelpManager = {Actions = ("activateContextHelpMode:", "showHelp:"); Super = NSObject; }; NSImage = {Super = NSObject; }; NSImageCell = {Super = NSCell; }; NSImageView = {Super = NSControl; }; NSMatrix = { Actions = ("selectAll:", "selectText:"); Outlets = (delegate); Super = NSControl; }; NSMenu = {Actions = ("submenuAction:"); Super = NSObject; }; NSMenuItem = {Outlets = (target); Super = NSObject; }; NSMenuItemCell = {Super = NSButtonCell; }; NSMutableArray = {Super = NSArray; }; NSMutableDictionary = {Super = NSDictionary; }; NSNumberFormatter = {Super = NSFormatter; }; NSObject = {}; NSOpenGLView = {Super = NSView; }; NSOutlineView = {Super = NSTableView; }; NSPanel = {Super = NSWindow; }; NSPopUpButton = {Super = NSButton; }; NSPopUpButtonCell = {Super = NSMenuItemCell; }; NSProgressIndicator = {Actions = ("animate:", "startAnimation:", "stopAnimation:"); Super = NSView; }; NSResponder = {Outlets = (menu); Super = NSObject; }; NSRulerView = {Super = NSView; }; NSScrollView = {Super = NSView; }; NSScroller = {Super = NSControl; }; NSSearchField = {Super = NSTextField; }; NSSearchFieldCell = {Super = NSTextFieldCell; }; NSSecureTextField = {Super = NSTextField; }; NSSecureTextFieldCell = {Super = NSTextFieldCell; }; NSSlider = {Super = NSControl; }; NSSliderCell = {Super = NSActionCell; }; NSSplitView = { Outlets = (delegate); Super = NSView; }; NSStepper = {Super = NSControl; }; NSStepperCell = {Super = NSActionCell; }; NSTabView = { Actions = ( "selectFirstTabViewItem:", "selectLastTabViewItem:", "selectNextTabViewItem:", "selectPreviousTabViewItem:", "takeSelectedTabViewItemFromSender:" ); Outlets = (delegate); Super = NSView; }; NSTableColumn = {Super = NSObject; }; NSTableHeaderCell = {Super = NSTextFieldCell; }; NSTableHeaderView = {Super = NSView; }; NSTableView = { Actions = ("deselectAll:", "selectAll:"); Outlets = (dataSource, delegate); Super = NSControl; }; NSText = { Actions = ( "alignCenter:", "alignLeft:", "alignRight:", "changeFont:", "changeSpelling:", "checkSpelling:", "copy:", "copyFont:", "copyRuler:", "cut:", "delete:", "ignoreSpelling:", "paste:", "pasteFont:", "pasteRuler:", "selectAll:", "showGuessPanel:", "subscript:", "superscript:", "toggleRuler:", "underline:", "unscript:" ); Outlets = (delegate); Super = NSView; }; NSTextField = {Actions = ("selectText:"); Outlets = (delegate); Super = NSControl; }; NSTextFieldCell = {Super = NSActionCell; }; NSTextView = { Actions = ( "alignJustified:", "changeColor:", "deleteBackwards:", "insertBacktab:", "insertNewLine:", "insertParagraphSeparator:", "insertTab:", "loosenKerning:", "lowerBaseline:", "moveBackward:", "moveDown:", "moveForward:", "moveLeft:", "moveRight:", "moveUp:", "pasteAsPlainText:", "pasteAsRichText:", "raiseBaseline:", "tightenKerning:", "toggleContinuousSpellChecking:", "toggleTraditionalCharacterShape:", "turnOffKerning:", "turnOffLigatures:", "useAllLigatures:", "useDefaultBaseline:", "useDefaultKerning:", "useDefaultLigatures:", "useStandardBaseline:", "useStandardKerning:", "useStandardLigatures:" ); Super = NSText; }; NSView = {Actions = ("fax:", "print:"); Outlets = (nextKeyView); Super = NSResponder; }; NSWindow = { Actions = ( "deminiaturize:", "fax:", "makeKeyAndOrderFront:", "miniaturize:", "orderBack:", "orderFront:", "orderOut:", "performClose:", "performMiniaturize:", "performZoom:", "print:", "runToolbarCustomizationPalette:", "selectNextKeyView:", "selectPreviousKeyView:", "toggleToolbarShown:", "zoom:" ); Outlets = (delegate, initialFirstResponder, windowController); Super = NSResponder; }; NSWindowController = { Actions = ("showWindow:"); Outlets = (document, window); Super = NSResponder; }; NSController = { Actions = (); Outlets = (); Super = NSObject; }; NSObjectController = { Actions = (); Outlets = (content); Super = NSController; }; NSArrayController = { Actions = ("selectNext:","selectPrevious:","insert:"); Outlets = (arrangedObjects); Super = NSObjectController; }; NSDictionaryController = { Actions = (); Outlets = (); Super = NSArrayController; }; Object = {}; } gorm-1.3.1/Resources/Defaults.plist0000644000175000017500000000132314327003123016260 0ustar heronheron{ AllowUserBundles = YES; ArchiveType = Typed; BuiltinPalettes = ( 0Menus.palette, 1Windows.palette, 2Controls.palette, 3Containers.palette, 4Data.palette ); BuiltinPlugins = ( Gorm.plugin, Nib.plugin, GModel.plugin ); CellSizeWidth = 72; ClassViewType = Browser; GuideColor = { alpha = 1; blue = 0; green = 0; red = 1; }; GuideSpacing = 10; HeaderList = ( ); PreloadHeaders = NO; ShowInspectors = YES; ShowPalettes = YES; UserPalettes = ( ); "NSWindow Frame Inspector" = "663 15 274 452 0 0 960 768 "; "NSWindow Frame Palettes" = "663 470 274 298 0 0 960 768 "; "NSWindow Frame Preferences" = "336 200 352 368 0 0 960 768 "; }gorm-1.3.1/Resources/VersionProfiles.plist0000644000175000017500000000417014327003123017645 0ustar heronheron{ "GNUstep gui-0.9.3" = { GSNibContainer = { comment = "Will not properly store any non-UI objects which have been dragged into the objects view."; version = 0; }; NSTextFieldCell = { comment = "Will store the old default settings in the action mask field."; version = 1; }; GSWindowTemplate = { comment = "Will not store autoposition mask information."; version = 0; }; NSButtonCell = { comment = "NSEvent masks are not compatible with Mac OS X."; version = 0; }; }; "GNUstep gui-0.9.5" = { GSNibContainer = { comment = "Not compatible with GNUstep gui-0.9.3 or earlier."; version = 1; }; NSTextFieldCell = { comment = "Change the default behavior defined in the action mask, this will not be useable under older versions."; version = 2; }; GSWindowTemplate = { comment = "Will not store autoposition mask information."; version = 0; }; NSButtonCell = { comment = "NSEvent masks are not compatible with Mac OS X."; version = 1; }; }; "GNUstep gui-0.10.3" = { GSNibContainer = { comment = "Not compatible with GNUstep gui-0.9.5 or earlier."; version = 1; }; NSTextFieldCell = { comment = "Change the default behavior defined in the action mask, this will not be useable under older versions."; version = 2; }; GSWindowTemplate = { comment = "New attribute to store auto-position mask. Not compatible with 0.9.5 or earlier."; version = 1; }; NSButtonCell = { comment = "NSEvent masks are not compatible with Mac OS X."; version = 2; }; }; "Latest Version" = { GSNibContainer = { comment = "Not compatible with GNUstep gui-0.10.3 or earlier."; version = 2; }; NSTextFieldCell = { comment = "Change the default behavior defined in the action mask, this will not be useable under older versions."; version = 2; }; GSWindowTemplate = { comment = "New attribute to store auto-position mask. Not compatible with 0.9.5 or earlier."; version = 1; }; NSButtonCell = { comment = "Not compatible with GNUstep gui-0.10.3 or earlier."; version = 3; }; }; }gorm-1.3.1/README0000644000175000017500000000202314360755514012357 0ustar heronheron1 Introduction ============== Read the NEWS file for the latest user visible changes. Read the INSTALL file for installation instructions. Gorm is an acronym for Graphic Object Relationship modeler (or perhaps GNUstep Object Relationship Modeler). Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) 'Interface Builder' application for GNUstep. Gorm is part of the GNUstep project, and is copyrighted by the Free Software Foundation. Gorm is released under the GPL - see the file 'COPYING' for details. Documentation for Gorm is located in the Documentation directory. It's also available on the wiki at http://wiki.gnustep.org/index.php/Gorm_Manual. 2 Status ======== Gorm is usable and stable. Please report bugs to bug-gnustep@gnu.org Known problems (things to do) - 1. Support for IB 3.0 functionality. 2. More palettes. 3 Acknowledgements ================== 1. Icons - Mostly by Andrew Lindsay. Gorm application icon by Jesse Ross. 2. Code - GormViewKnobs.m adapted from code by Gerrit van Dyk. gorm-1.3.1/Gorm.m0000644000175000017500000010317514327003124012555 0ustar heronheron/* Gorm.m * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 * USA. */ #include #include #include @interface Gorm : NSApplication { GormPrefController *preferencesController; GormClassManager *classManager; GormInspectorsManager *inspectorsManager; GormPalettesManager *palettesManager; GormPluginManager *pluginManager; id selectionOwner; BOOL isConnecting; BOOL isTesting; id testContainer; id gormMenu; NSMenu *mainMenu; // saves the main menu... NSMenu *servicesMenu; // saves the services menu... NSMenu *classMenu; // so we can set it for the class view NSMenuItem *guideLineMenuItem; NSDictionary *menuLocations; NSImage *linkImage; NSImage *sourceImage; NSImage *targetImage; NSImage *gormImage; NSImage *testingImage; id connectSource; id connectDestination; NSMutableArray *testingWindows; NSSet *topObjects; } // handle notifications the object recieves. - (void) handleNotification: (NSNotification*)aNotification; @end // Handle server protocol methods... @interface Gorm (GormServer) @end @implementation Gorm - (id) activeDocument { return [[NSDocumentController sharedDocumentController] currentDocument]; } /* NSApplication override to make Inspector's shortcuts available globally */ - (void) sendEvent: (NSEvent *)theEvent { if ([theEvent type] == NSKeyDown) { NSPanel *inspector = [[self inspectorsManager] panel]; if ([inspector performKeyEquivalent: theEvent] != NO) { [inspector orderFront: self]; return; } } [super sendEvent: theEvent]; } /* NSApp */ - (id) init { self = [super init]; if (self != nil) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSNotificationCenter *ndc = [NSDistributedNotificationCenter defaultCenter]; NSBundle *bundle = [NSBundle mainBundle]; NSString *path; NSConnection *conn = [NSConnection defaultConnection]; path = [bundle pathForImageResource: @"GormLinkImage"]; linkImage = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormSourceTag"]; sourceImage = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormTargetTag"]; targetImage = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"Gorm"]; gormImage = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormTesting"]; testingImage = [[NSImage alloc] initWithContentsOfFile: path]; // regular notifications... [nc addObserver: self selector: @selector(handleNotification:) name: IBSelectionChangedNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillCloseDocumentNotification object: nil]; // distibuted notifications... [ndc addObserver: self selector: @selector(handleNotification:) name: @"GormAddClassNotification" object: nil]; [ndc addObserver: self selector: @selector(handleNotification:) name: @"GormDeleteClassNotification" object: nil]; [ndc addObserver: self selector: @selector(handleNotification:) name: @"GormParseClassNotification" object: nil]; /* * establish registration domain defaults from file. */ path = [bundle pathForResource: @"Defaults" ofType: @"plist"]; if (path != nil) { NSDictionary *dict; dict = [NSDictionary dictionaryWithContentsOfFile: path]; if (dict != nil) { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults registerDefaults: dict]; } } /* * load the interface... */ if(![NSBundle loadNibNamed: @"Gorm" owner: self]) { NSLog(@"Failed to load interface"); exit(-1); } /* * Make sure the palettes/plugins managers exist, so that the * editors and inspectors provided in the standard palettes * are available. */ [self palettesManager]; [self pluginManager]; /* * set the delegate. */ [self setDelegate: self]; /* * Start the server */ [conn setRootObject: self]; if([conn registerName: @"GormServer"] == NO) { NSLog(@"Could not register GormServer"); } } return self; } - (void) dealloc { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc removeObserver: self]; RELEASE(inspectorsManager); RELEASE(palettesManager); RELEASE(classManager); [super dealloc]; } - (void) stop: (id)sender { if(isTesting == NO) { [super stop: sender]; } else { [self endTesting: sender]; } } - (BOOL)applicationShouldOpenUntitledFile: (NSApplication *)sender { if (NSInterfaceStyleForKey(@"NSMenuInterfaceStyle", nil) == NSWindows95InterfaceStyle) { return YES; } return NO; } - (void) applicationOpenUntitledFile: (id)sender { GormDocumentController *dc = [NSDocumentController sharedDocumentController]; // open a new document and build an application type document by default... [dc newDocument: sender]; } - (void) applicationDidFinishLaunching: (NSApplication*)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if ( [defaults boolForKey: @"ShowInspectors"] ) { [[[self inspectorsManager] panel] makeKeyAndOrderFront: self]; } if ( [defaults boolForKey: @"ShowPalettes"] ) { [[[self palettesManager] panel] makeKeyAndOrderFront: self]; } } - (void) applicationWillTerminate: (NSApplication*)sender { [[NSUserDefaults standardUserDefaults] setBool: [[[self inspectorsManager] panel] isVisible] forKey: @"ShowInspectors"]; [[NSUserDefaults standardUserDefaults] setBool: [[[self palettesManager] panel] isVisible] forKey: @"ShowPalettes"]; } - (BOOL) applicationShouldTerminateAfterLastWindowClosed: (id)sender { if (NSInterfaceStyleForKey(@"NSMenuInterfaceStyle", nil) == NSWindows95InterfaceStyle) { NSDocumentController *docController; docController = [NSDocumentController sharedDocumentController]; if ([[docController documents] count] > 0) { return NO; } else { return YES; } } else { return NO; } } - (GormClassManager*) classManager { id document = [self activeDocument]; if (document != nil) return [document classManager]; /* kept in the case one want access to the classManager without document */ else if (classManager == nil) { classManager = [[GormClassManager alloc] init]; } return classManager; } - (id) connectDestination { return connectDestination; } - (id) connectSource { return connectSource; } - (void) displayConnectionBetween: (id)source and: (id)destination { NSWindow *window; NSRect rect; if (source != connectSource) { if (connectSource != nil) { window = [(GormDocument *)[self activeDocument] windowAndRect: &rect forObject: connectSource]; if (window != nil) { NSView *view = [[window contentView] superview]; rect.origin.x --; rect.size.width ++; rect.size.height ++; [window disableFlushWindow]; [view displayRect: rect]; [window enableFlushWindow]; [window flushWindow]; } } connectSource = source; } if (destination != connectDestination) { if (connectDestination != nil) { window = [(GormDocument *)[self activeDocument] windowAndRect: &rect forObject: connectDestination]; if (window != nil) { NSView *view = [[window contentView] superview]; /* * Erase image from old location. */ rect.origin.x --; rect.size.width ++; rect.size.height ++; [view lockFocus]; [view displayRect: rect]; [view unlockFocus]; [window flushWindow]; } } connectDestination = destination; } if (connectSource != nil) { window = [(GormDocument *)[self activeDocument] windowAndRect: &rect forObject: connectSource]; if (window != nil) { NSView *view = [[window contentView] superview]; NSRect imageRect = rect; imageRect.origin.x++; //rect.size.width--; //rect.size.height--; [view lockFocus]; [[NSColor greenColor] set]; NSFrameRectWithWidth(rect, 1); [sourceImage compositeToPoint: imageRect.origin operation: NSCompositeSourceOver]; [view unlockFocus]; [window flushWindow]; } } if (connectDestination != nil && connectDestination == connectSource) { window = [(GormDocument *)[self activeDocument] windowAndRect: &rect forObject: connectDestination]; if (window != nil) { NSView *view = [[window contentView] superview]; NSRect imageRect = rect; imageRect.origin.x += 3; imageRect.origin.y += 2; // rect.size.width -= 5; // rect.size.height -= 5; [view lockFocus]; [[NSColor purpleColor] set]; NSFrameRectWithWidth(rect, 1); imageRect.origin.x += [targetImage size].width; [targetImage compositeToPoint: imageRect.origin operation: NSCompositeSourceOver]; [view unlockFocus]; [window flushWindow]; } } else if (connectDestination != nil) { window = [(GormDocument *)[self activeDocument] windowAndRect: &rect forObject: connectDestination]; if (window != nil) { NSView *view = [[window contentView] superview]; NSRect imageRect = rect; imageRect.origin.x++; // rect.size.width--; // rect.size.height--; [view lockFocus]; [[NSColor purpleColor] set]; NSFrameRectWithWidth(rect, 1); [targetImage compositeToPoint: imageRect.origin operation: NSCompositeSourceOver]; [view unlockFocus]; [window flushWindow]; } } } /** Info Menu Actions */ - (void) preferencesPanel: (id) sender { if(! preferencesController) { preferencesController = [[GormPrefController alloc] init]; } [[preferencesController panel] makeKeyAndOrderFront:nil]; } /** Document Menu Actions */ - (void) close: (id)sender { GormDocument *document = (GormDocument *)[self activeDocument]; if([document canCloseDocument]) { [document close]; } } - (void) debug: (id) sender { [[self activeDocument] performSelector: @selector(printAllEditors)]; } - (void) loadSound: (id) sender { [(GormDocument *)[self activeDocument] openSound: sender]; } - (void) loadImage: (id) sender { [(GormDocument *)[self activeDocument] openImage: sender]; } - (void) arrangeInFront: (id)sender { if([self isTestingInterface] == NO) { [super arrangeInFront: sender]; } } - (void) testInterface: (id)sender { if (isTesting == YES) { return; } else { // top level objects NS_DURING { NSUserDefaults *defaults; NSNotificationCenter *notifCenter = [NSNotificationCenter defaultCenter]; GormDocument *activeDoc = (GormDocument*)[self activeDocument]; NSData *data; NSArchiver *archiver; NSEnumerator *en; NSDictionary *substituteClasses = [palettesManager substituteClasses]; NSString *subClassName; id obj; id savedDelegate = [NSApp delegate]; // which windows were open when testing started... testingWindows = [[NSMutableArray alloc] init]; en = [[self windows] objectEnumerator]; while((obj = [en nextObject]) != nil) { if([obj isVisible]) { [testingWindows addObject: obj]; } } // set here, so that beginArchiving and endArchiving do not use templates. isTesting = YES; [self setApplicationIconImage: testingImage]; archiver = [[NSArchiver alloc] init]; [activeDoc deactivateEditors]; [archiver encodeClassName: @"GormCustomView" intoClassName: @"GormTestCustomView"]; // substitute classes from palettes. en = [substituteClasses keyEnumerator]; while((subClassName = [en nextObject]) != nil) { NSString *realClassName = [substituteClasses objectForKey: subClassName]; if([realClassName isEqualToString: @"NSTableView"] || [realClassName isEqualToString: @"NSOutlineView"] || [realClassName isEqualToString: @"NSBrowser"]) { continue; } [archiver encodeClassName: subClassName intoClassName: realClassName]; } // do not allow custom classes during testing. [GSClassSwapper setIsInInterfaceBuilder: YES]; [archiver encodeRootObject: activeDoc]; data = RETAIN([archiver archiverData]); // Released below... [activeDoc reactivateEditors]; RELEASE(archiver); [GSClassSwapper setIsInInterfaceBuilder: NO]; // signal the start of testing... [notifCenter postNotificationName: IBWillBeginTestingInterfaceNotification object: self]; if ([selectionOwner conformsToProtocol: @protocol(IBEditors)] == YES) { [selectionOwner makeSelectionVisible: NO]; } defaults = [NSUserDefaults standardUserDefaults]; menuLocations = [[defaults objectForKey: @"NSMenuLocations"] copy]; [defaults removeObjectForKey: @"NSMenuLocations"]; servicesMenu = [self servicesMenu]; testContainer = [NSUnarchiver unarchiveObjectWithData: data]; if (testContainer != nil) { NSMutableDictionary *nameTable = [testContainer nameTable]; NSMenu *aMenu = [nameTable objectForKey: @"NSMenu"]; [self setMainMenu: aMenu]; // initialize the context. RETAIN(testContainer); topObjects = [testContainer topLevelObjects]; [nameTable removeObjectForKey: @"NSServicesMenu"]; [nameTable removeObjectForKey: @"NSWindowsMenu"]; [testContainer awakeWithContext: nil]; [NSApp setDelegate: savedDelegate]; // makes sure the delegate isn't reset. /* * If the model didn't have a main menu, create one, * otherwise, ensure that 'quit' ends testing mode. */ if (aMenu == nil) { NSMenu *testMenu; testMenu = [[NSMenu alloc] initWithTitle: _(@"Test Menu (Gorm)")]; [testMenu addItemWithTitle: _(@"Quit Test") action: @selector(deferredEndTesting:) keyEquivalent: @"q"]; [self setMainMenu: testMenu]; // released, when the menu is reset in endTesting. } else { NSMenu *testMenu = [self mainMenu]; NSString *newTitle = [[testMenu title] stringByAppendingString: @" (Gorm)"]; NSArray *items = findAll(testMenu); NSEnumerator *en = [items objectEnumerator]; id item; BOOL found = NO; while((item = [en nextObject]) != nil) { if([item isKindOfClass: [NSMenuItem class]]) { SEL action = [item action]; if(sel_isEqual(action, @selector(terminate:))) { found = YES; [item setTitle: _(@"Quit Test")]; [item setTarget: self]; [item setAction: @selector(deferredEndTesting:)]; } } } // releast the items... RELEASE(items); // set the menu up so that it's easy to tell we're testing and how to quit. [testMenu setTitle: newTitle]; if(found == NO) { [testMenu addItemWithTitle: _(@"Quit Test") action: @selector(deferredEndTesting:) keyEquivalent: @"q"]; } } // so we don't get the warning... [self setServicesMenu: nil]; [[self mainMenu] display]; en = [[self windows] objectEnumerator]; while((obj = [en nextObject]) != nil) { if([obj isVisible]) { [obj makeKeyAndOrderFront: self]; } } // we're now in testing mode. [notifCenter postNotificationName: IBDidBeginTestingInterfaceNotification object: self]; [NSApp unhide: self]; } RELEASE(data); } NS_HANDLER { // reset the application after the error. NSLog(@"Problem while testing interface: %@", [localException reason]); NSRunAlertPanel(_(@"Problem While Testing Interface"), [NSString stringWithFormat: @"Make sure connections are to appropriate objects.\n" @"Exception: %@", [localException reason]], _(@"OK"), nil, nil); [self endTesting: self]; } NS_ENDHANDLER; } } /** Edit Menu Actions */ - (void) copy: (id)sender { if ([[selectionOwner selection] count] == 0 || [selectionOwner respondsToSelector: @selector(copySelection)] == NO) return; if([self isConnecting]) { [self stopConnecting]; } [(id)selectionOwner copySelection]; } - (void) cut: (id)sender { if ([[selectionOwner selection] count] == 0 || [selectionOwner respondsToSelector: @selector(copySelection)] == NO || [selectionOwner respondsToSelector: @selector(deleteSelection)] == NO) return; if([self isConnecting]) { [self stopConnecting]; } [(id)selectionOwner copySelection]; [(id)selectionOwner deleteSelection]; } - (void) paste: (id)sender { if ([selectionOwner respondsToSelector: @selector(pasteInSelection)] == NO) return; if([self isConnecting]) { [self stopConnecting]; } [(id)selectionOwner pasteInSelection]; } - (void) delete: (id)sender { if ([[selectionOwner selection] count] == 0 || [selectionOwner respondsToSelector: @selector(deleteSelection)] == NO) return; if([self isConnecting]) { [self stopConnecting]; } [(id)selectionOwner deleteSelection]; } - (void) selectAll: (id)sender { if ([[selectionOwner selection] count] == 0 || [selectionOwner respondsToSelector: @selector(deleteSelection)] == NO) return; if([self isConnecting]) { [self stopConnecting]; } [(id)selectionOwner deleteSelection]; } /* - (void) selectAllItems: (id)sender { return; } */ - (void) setName: (id)sender { GormSetNameController *panel; int returnPanel; NSTextField *textField; NSArray *selectionArray = [selectionOwner selection]; id obj = [selectionArray objectAtIndex: 0]; NSString *name; if([(GormDocument *)[self activeDocument] isTopLevelObject: obj]) { panel = [[GormSetNameController alloc] init]; returnPanel = [panel runAsModal]; textField = [panel textField]; if (returnPanel == NSAlertDefaultReturn) { name = [[textField stringValue] stringByTrimmingSpaces]; if (name != nil && [name isEqual: @""] == NO) { [[self activeDocument] setName: name forObject: obj]; } } RELEASE(panel); } } - (void) guideline: (id) sender { [[NSNotificationCenter defaultCenter] postNotificationName: GormToggleGuidelineNotification object:nil]; if ( [guideLineMenuItem tag] == 0 ) { [guideLineMenuItem setTitle:_(@"Turn GuideLine On")]; [guideLineMenuItem setTag:1]; } else if ( [guideLineMenuItem tag] == 1) { [guideLineMenuItem setTitle:_(@"Turn GuideLine Off")]; [guideLineMenuItem setTag:0]; } } - (void) orderFrontFontPanel: (id) sender { NSFontPanel *fontPanel = [NSFontPanel sharedFontPanel]; GormFontViewController *gfvc = [GormFontViewController sharedGormFontViewController]; [fontPanel setAccessoryView: [gfvc view]]; [[NSFontManager sharedFontManager] orderFrontFontPanel: self]; } /** Grouping */ - (void) groupSelectionInSplitView: (id)sender { if ([[selectionOwner selection] count] < 2 || [selectionOwner respondsToSelector: @selector(groupSelectionInSplitView)] == NO) return; [(GormGenericEditor *)selectionOwner groupSelectionInSplitView]; } - (void) groupSelectionInBox: (id)sender { if ([selectionOwner respondsToSelector: @selector(groupSelectionInBox)] == NO) return; [(GormGenericEditor *)selectionOwner groupSelectionInBox]; } - (void) groupSelectionInView: (id)sender { if ([selectionOwner respondsToSelector: @selector(groupSelectionInView)] == NO) return; [(GormGenericEditor *)selectionOwner groupSelectionInView]; } - (void) groupSelectionInScrollView: (id)sender { if ([selectionOwner respondsToSelector: @selector(groupSelectionInScrollView)] == NO) return; [(GormGenericEditor *)selectionOwner groupSelectionInScrollView]; } - (void) groupSelectionInMatrix: (id)sender { if ([selectionOwner respondsToSelector: @selector(groupSelectionInMatrix)] == NO) return; [(GormGenericEditor *)selectionOwner groupSelectionInMatrix]; } - (void) ungroup: (id)sender { // NSLog(@"ungroup: selectionOwner %@", selectionOwner); if ([selectionOwner respondsToSelector: @selector(ungroup)] == NO) return; [(GormGenericEditor *)selectionOwner ungroup]; } /** Classes actions */ - (void) createSubclass: (id)sender { [(GormDocument *)[self activeDocument] createSubclass: sender]; } - (void) loadClass: (id)sender { // Call the current document and create the class // descibed by the header [(GormDocument *)[self activeDocument] loadClass: sender]; } - (void) createClassFiles: (id)sender { [(GormDocument *)[self activeDocument] createClassFiles: sender]; } - (void) instantiateClass: (id)sender { [(GormDocument *)[self activeDocument] instantiateClass: sender]; } - (void) addAttributeToClass: (id)sender { [(GormDocument *)[self activeDocument] addAttributeToClass: sender]; } - (void) remove: (id)sender { [(GormDocument *)[self activeDocument] remove: sender]; } /** Palettes Actions... */ - (void) inspector: (id) sender { [[[self inspectorsManager] panel] makeKeyAndOrderFront: self]; } - (void) palettes: (id) sender { [[[self palettesManager] panel] makeKeyAndOrderFront: self]; } - (void) loadPalette: (id) sender { [[self palettesManager] openPalette: sender]; } /** Testing methods... */ - (void) deferredEndTesting: (id) sender { [[NSRunLoop currentRunLoop] performSelector: @selector(endTesting:) target: self argument: nil order: 5000 modes: [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSModalPanelRunLoopMode, NSEventTrackingRunLoopMode, nil]]; } - (id) endTesting: (id)sender { if (isTesting == NO) { return nil; } else { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSUserDefaults *defaults; NSEnumerator *e; id val; [nc postNotificationName: IBWillEndTestingInterfaceNotification object: self]; /* * Make sure windows will go away when the container is destroyed. */ e = [topObjects objectEnumerator]; while ((val = [e nextObject]) != nil) { if ([val isKindOfClass: [NSWindow class]] == YES) { [val close]; } } /* * Make sure any peripheral windows: font panels, etc. which are brought * up by the interface being tested are also closed. */ e = [[self windows] objectEnumerator]; while ((val = [e nextObject]) != nil) { if ([testingWindows containsObject: val] == NO && [val isKindOfClass: [NSWindow class]] && [val isVisible]) { [val orderOut: self]; } } // prevent saving of this, if the menuLocations have not previously been set. if(menuLocations != nil) { defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject: menuLocations forKey: @"NSMenuLocations"]; DESTROY(menuLocations); } [self setMainMenu: mainMenu]; [self setApplicationIconImage: gormImage]; NS_DURING { [self setServicesMenu: servicesMenu]; } NS_HANDLER { NSDebugLog(@"Exception while setting services menu"); } NS_ENDHANDLER [mainMenu display]; // bring it to the front... isTesting = NO; if ([selectionOwner conformsToProtocol: @protocol(IBEditors)] == YES) { [selectionOwner makeSelectionVisible: YES]; } [nc postNotificationName: IBDidEndTestingInterfaceNotification object: self]; DESTROY(testingWindows); // deallocate RELEASE(testContainer); return self; } } - (void) handleNotification: (NSNotification*)notification { NSString *name = [notification name]; id obj = [notification object]; if ([name isEqual: IBSelectionChangedNotification]) { /* * If we are connecting - stop it - a change in selection must mean * that the connection process has ended. */ if ([self isConnecting] == YES) { [self stopConnecting]; } [selectionOwner makeSelectionVisible: NO]; selectionOwner = obj; [[self inspectorsManager] updateSelection]; } else if ([name isEqual: IBWillCloseDocumentNotification]) { selectionOwner = nil; } else if ([name isEqual: @"GormAddClassNotification"]) { id obj = [notification object]; [self addClass: obj]; } else if ([name isEqual: @"GormDeleteClassNotification"]) { id obj = [notification object]; [self deleteClass: obj]; } else if ([name isEqual: @"GormParseClassNotification"]) { NSString *pathToClass = (NSString *)[notification object]; GormClassManager *cm = [(GormDocument *)[self activeDocument] classManager]; [cm parseHeader: pathToClass]; } } - (void) awakeFromNib { // set the menu... mainMenu = (NSMenu *)gormMenu; } - (GormInspectorsManager*) inspectorsManager { if (inspectorsManager == nil) { inspectorsManager = (GormInspectorsManager *)[GormInspectorsManager sharedInspectorManager]; } return inspectorsManager; } - (BOOL) isConnecting { return isConnecting; } - (BOOL) isTestingInterface { return isTesting; } - (NSImage*) linkImage { return linkImage; } - (id) miniaturize: (id)sender { NSWindow *window = [(GormDocument *)[self activeDocument] window]; [window miniaturize: self]; return nil; } - (GormPalettesManager*) palettesManager { if (palettesManager == nil) { palettesManager = [[GormPalettesManager alloc] init]; } return palettesManager; } - (GormPluginManager*) pluginManager { if (pluginManager == nil) { pluginManager = [[GormPluginManager alloc] init]; } return pluginManager; } - (id) selectionOwner { return (id)selectionOwner; } - (id) selectedObject { return [[selectionOwner selection] lastObject]; } - (id) documentForObject: (id)object { NSEnumerator *en = [[[NSDocumentController sharedDocumentController] documents] objectEnumerator]; id doc = nil; id result = nil; while((doc = [en nextObject]) != nil) { if([doc containsObject: object]) { result = doc; break; } } return result; } - (void) startConnecting { if (isConnecting == YES) { return; } if (connectSource == nil) { return; } if (connectDestination && [[self activeDocument] containsObject: connectDestination] == NO) { NSLog(@"Oops - connectDestination not in active document"); return; } if ([[self activeDocument] containsObject: connectSource] == NO) { NSLog(@"Oops - connectSource not in active document"); return; } isConnecting = YES; [[self inspectorsManager] updateSelection]; } - (void) stopConnecting { [self displayConnectionBetween: nil and: nil]; isConnecting = NO; connectSource = nil; connectDestination = nil; } - (BOOL) validateMenuItem: (NSMenuItem*)item { GormDocument *active = (GormDocument*)[self activeDocument]; SEL action = [item action]; GormClassManager *cm = nil; NSArray *s = nil; // if we have an active document... if(active != nil) { cm = [active classManager]; s = [selectionOwner selection]; } if (sel_isEqual(action, @selector(close:)) || sel_isEqual(action, @selector(miniaturize:))) { if (active == nil) return NO; } else if (sel_isEqual(action, @selector(testInterface:))) { if (active == nil) return NO; } else if (sel_isEqual(action, @selector(copy:))) { if ([s count] == 0) return NO; else { id o = [s objectAtIndex: 0]; NSString *n = [active nameForObject: o]; if ([n isEqual: @"NSOwner"] || [n isEqual: @"NSFirst"]) { return NO; } } return [selectionOwner respondsToSelector: @selector(copySelection)]; } else if (sel_isEqual(action, @selector(cut:))) { if ([s count] == 0) return NO; else { id o = [s objectAtIndex: 0]; NSString *n = [active nameForObject: o]; if ([n isEqual: @"NSOwner"] || [n isEqual: @"NSFirst"]) { return NO; } } return ([selectionOwner respondsToSelector: @selector(copySelection)] && [selectionOwner respondsToSelector: @selector(deleteSelection)]); } else if (sel_isEqual(action, @selector(delete:))) { if ([s count] == 0) return NO; else { id o = [s objectAtIndex: 0]; NSString *n = [active nameForObject: o]; if ([n isEqual: @"NSOwner"] || [n isEqual: @"NSFirst"]) { return NO; } } return [selectionOwner respondsToSelector: @selector(deleteSelection)]; } else if (sel_isEqual(action, @selector(paste:))) { if ([s count] == 0) return NO; else { id o = [s objectAtIndex: 0]; NSString *n = [active nameForObject: o]; if ([n isEqual: @"NSOwner"] || [n isEqual: @"NSFirst"]) { return NO; } } return [selectionOwner respondsToSelector: @selector(pasteInSelection)]; } else if (sel_isEqual(action, @selector(setName:))) { NSString *n; id o; if ([s count] == 0) { return NO; } if ([s count] > 1) { return NO; } o = [s objectAtIndex: 0]; n = [active nameForObject: o]; if ([n isEqual: @"NSOwner"] || [n isEqual: @"NSFirst"] || [n isEqual: @"NSFont"] || [n isEqual: @"NSMenu"]) { return NO; } else if(![active isTopLevelObject: o]) { return NO; } } else if(sel_isEqual(action, @selector(createSubclass:)) || sel_isEqual(action, @selector(loadClass:)) || sel_isEqual(action, @selector(createClassFiles:)) || sel_isEqual(action, @selector(instantiateClass:)) || sel_isEqual(action, @selector(addAttributeToClass:)) || sel_isEqual(action, @selector(remove:))) { if(active == nil) { return NO; } if(![active isEditingClasses]) { return NO; } if(sel_isEqual(action, @selector(createSubclass:))) { NSArray *s = [selectionOwner selection]; id o = nil; NSString *name = nil; if([s count] == 0 || [s count] > 1) return NO; o = [s objectAtIndex: 0]; name = [o className]; if([active classIsSelected] == NO) { return NO; } if([name isEqual: @"FirstResponder"]) return NO; } if(sel_isEqual(action, @selector(createClassFiles:)) || sel_isEqual(action, @selector(remove:))) { id o = nil; NSString *name = nil; if ([s count] == 0) { return NO; } if ([s count] > 1) { return NO; } o = [s objectAtIndex: 0]; name = [o className]; if(![cm isCustomClass: name]) { return NO; } } if(sel_isEqual(action, @selector(instantiateClass:))) { id o = nil; NSString *name = nil; if ([s count] == 0) { return NO; } if ([s count] > 1) { return NO; } if([active classIsSelected] == NO) { return NO; } o = [s objectAtIndex: 0]; name = [o className]; if(name != nil) { id cm = [self classManager]; return [cm canInstantiateClassNamed: name]; } } } else if(sel_isEqual(action, @selector(loadSound:)) || sel_isEqual(action, @selector(loadImage:)) || sel_isEqual(action, @selector(debug:))) { if(active == nil) { return NO; } } return YES; } - (NSMenu*) classMenu { return classMenu; } - (void) print: (id) sender { [[self keyWindow] print: sender]; } - (void) selectAllItems: (id)sender { } @end @implementation Gorm (GormServer) // Methods to support external apps adding and deleting // classes from the current document... - (void) addClass: (NSDictionary *) dict { GormDocument *doc = (GormDocument *)[self activeDocument]; GormClassManager *cm = [doc classManager]; NSArray *outlets = [dict objectForKey: @"outlets"]; NSArray *actions = [dict objectForKey: @"actions"]; NSString *className = [dict objectForKey: @"className"]; NSString *superClassName = [dict objectForKey: @"superClassName"]; // If the class is known, delete it before proceeding. if([cm isKnownClass: className]) { [cm removeClassNamed: className]; } // Add the class to the class manager. [cm addClassNamed: className withSuperClassNamed: superClassName withActions: actions withOutlets: outlets]; } - (void) deleteClass: (NSString *) className { GormDocument *doc = (GormDocument *)[self activeDocument]; GormClassManager *cm = [doc classManager]; [cm removeClassNamed: className]; } @end gorm-1.3.1/TODO0000644000175000017500000000253714327003122012161 0ustar heronheronTO DO: This is a DO list based on feature requests that are being made by users of Gorm. Currently a number of requests are on the table which seem intersting: * Create an xml output format for Gorm files so that they can be used on both MOSX and on GNUstep. This will be done w/ an extension library. (Working on this) * Add a way for the user to edit the spacing used by the guidelines. Also make it so that we can save the settings and retrieve them from external files so that users can distribute thier own preferred spacing for different frameworks. (Done, added a way to do this. Sets a preference with the value.) * Add an autosave feature to Gorm which will save the document at regular intervals. * We should able to edit Window name directly * Add Feature to allow to create its own Palettes (Template) * Add Feature for creating more inteligent [mh] file (for ex. delegate/dataSource method if needs ...) Usability features: 1) Add outlet/action editing feature to advance the cursor to the next outlet/action automatically after the user finishes editing the current one. 2) image sharing between project and gorm/nib files so that images from the proj ect can be loaded into Gorm's interfaces. 3) Add code to keep scrollview setHasVerticalScroller/HasHorizontalScroller in sync with Horiz/Vert resizable in textView object.gorm-1.3.1/.github/0000755000175000017500000000000014327003122013022 5ustar heronherongorm-1.3.1/.github/scripts/0000755000175000017500000000000014327003122014511 5ustar heronherongorm-1.3.1/.github/scripts/build.sh0000755000175000017500000000120514327003122016145 0ustar heronheron#! /usr/bin/env sh set -ex echo "Building..." # build dependencies... ./.github/scripts/dependencies.sh export LIBRARY_PATH=$HOME/staging/lib:$HOME/staging/lib64:$LIBRARY_PATH; export LD_LIBRARY_PATH=$HOME/staging/lib:$HOME/staging/lib64:$LD_LIBRARY_PATH; if [ $LIBRARY_COMBO = 'ng-gnu-gnu' ]; then export CPATH=$HOME/staging/include; else export CPATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/include; fi; export PATH=$HOME/staging/bin:$PATH; export GNUSTEP_MAKEFILES=$HOME/staging/share/GNUstep/Makefiles; . $HOME/staging/share/GNUstep/Makefiles/GNUstep.sh; # Build gorm make && make install && make check || (cat Tests/tests.log && false); gorm-1.3.1/.github/scripts/test.sh0000755000175000017500000000023714327003122016031 0ustar heronheron#! /usr/bin/env sh set -ex echo "Testing..." . $HOME/staging/share/GNUstep/Makefiles/GNUstep.sh; # Test gorm make check || (cat Tests/tests.log && false); gorm-1.3.1/.github/scripts/dependencies.sh0000755000175000017500000001011614327003122017475 0ustar heronheron#! /usr/bin/env sh set -ex DEP_SRC=$HOME/dependency_source/ DEP_ROOT=$HOME/staging install_prerequisites() { sudo apt-get -qq update sudo apt-get install -y cmake pkg-config libgnutls28-dev libgmp-dev libffi-dev libicu-dev \ libxml2-dev libxslt1-dev libssl-dev libavahi-client-dev zlib1g-dev if [ $LIBRARY_COMBO = 'gnu-gnu-gnu' ]; then if [ $CC = 'gcc' ]; then sudo apt-get install -y gobjc; fi; sudo apt-get install -y libobjc-8-dev libblocksruntime-dev; else curl -s -o - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -; sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main" && sudo apt-get update -qq; sudo apt-get install -y clang-9 libkqueue-dev libpthread-workqueue-dev; sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-9 10 \ --slave /usr/bin/clang++ clang++ /usr/bin/clang++-9; export PATH=$(echo "$PATH" | sed -e 's/:\/usr\/local\/clang-7.0.0\/bin//'); if [ "$RUNTIME_VERSION" = "gnustep-2.0" ]; then sudo update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.gold" 10; fi; fi; if [ $LIBRARY_COMBO = 'ng-gnu-gnu' ]; then curl -LO https://cmake.org/files/v3.15/cmake-3.15.5-Linux-x86_64.tar.gz; tar xf cmake-3.15.5-Linux-x86_64.tar.gz; mv cmake-3.15.5-Linux-x86_64 $HOME/cmake; export PATH=$HOME/cmake/:$HOME/cmake/bin:$PATH fi; } install_gnustep_make() { cd $DEP_SRC git clone https://github.com/gnustep/tools-make.git cd tools-make if [ -n "$RUNTIME_VERSION" ] then WITH_RUNTIME_ABI="--with-runtime-abi=${RUNTIME_VERSION}" else WITH_RUNTIME_ABI="" fi ./configure --prefix=$DEP_ROOT --with-library-combo=$LIBRARY_COMBO $WITH_RUNTIME_ABI make install echo Objective-C build flags: `$HOME/staging/bin/gnustep-config --objc-flags` } install_ng_runtime() { cd $DEP_SRC git clone https://github.com/gnustep/libobjc2.git cd libobjc2 git submodule init git submodule sync git submodule update cd .. mkdir libobjc2/build cd libobjc2/build export CC="clang" export CXX="clang++" export CXXFLAGS="-std=c++11" cmake -DTESTS=off -DCMAKE_BUILD_TYPE=RelWithDebInfo -DGNUSTEP_INSTALL_TYPE=NONE -DCMAKE_INSTALL_PREFIX:PATH=$DEP_ROOT ../ make install } install_libdispatch() { cd $DEP_SRC # will reference upstream after https://github.com/apple/swift-corelibs-libdispatch/pull/534 is merged git clone -b system-blocksruntime https://github.com/ngrewe/swift-corelibs-libdispatch.git mkdir swift-corelibs-libdispatch/build cd swift-corelibs-libdispatch/build export CC="clang" export CXX="clang++" export LIBRARY_PATH=$DEP_ROOT/lib; export LD_LIBRARY_PATH=$DEP_ROOT/lib:$LD_LIBRARY_PATH; export CPATH=$DEP_ROOT/include; cmake -DBUILD_TESTING=off -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX:PATH=$HOME/staging -DINSTALL_PRIVATE_HEADERS=1 -DBlocksRuntime_INCLUDE_DIR=$DEP_ROOT/include -DBlocksRuntime_LIBRARIES=$DEP_ROOT/lib/libobjc.so ../ make install } install_gnustep_base() { export GNUSTEP_MAKEFILES=$HOME/staging/share/GNUstep/Makefiles . $HOME/staging/share/GNUstep/Makefiles/GNUstep.sh cd $DEP_SRC git clone https://github.com/gnustep/libs-base.git cd libs-base ./configure make make install } install_gnustep_gui() { export GNUSTEP_MAKEFILES=$HOME/staging/share/GNUstep/Makefiles . $HOME/staging/share/GNUstep/Makefiles/GNUstep.sh cd $DEP_SRC git clone https://github.com/gnustep/libs-gui.git cd libs-gui ./configure make make install } install_gnustep_back() { export GNUSTEP_MAKEFILES=$HOME/staging/share/GNUstep/Makefiles . $HOME/staging/share/GNUstep/Makefiles/GNUstep.sh cd $DEP_SRC git clone https://github.com/gnustep/libs-back.git cd libs-back ./configure make make install } mkdir -p $DEP_SRC if [ "$LIBRARY_COMBO" = 'ng-gnu-gnu' ] then install_ng_runtime install_libdispatch fi install_prerequisites install_gnustep_make install_gnustep_base install_gnustep_gui install_gnustep_back gorm-1.3.1/.github/workflows/0000755000175000017500000000000014327003122015057 5ustar heronherongorm-1.3.1/.github/workflows/main.yml0000644000175000017500000000157414327003122016535 0ustar heronheron# This is a basic workflow to help you get started with Actions name: CI # Controls when the workflow will run on: push # A workflow run is made up of one or more jobs that can run # sequentially or in parallel jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest env: LIBRARY_COMBO: gnu-gnu-gnu CC: gcc # Steps represent a sequence of tasks that will be executed as # part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, # so your job can access it - uses: actions/checkout@v2 # Runs a single command using the runners shell - name: Build source run: ./.github/scripts/build.sh # Runs a single command using the runners shell - name: Run tests run: ./.github/scripts/test.sh gorm-1.3.1/GormPrefs/0000755000175000017500000000000014360746517013411 5ustar heronherongorm-1.3.1/GormPrefs/GormHeadersPref.h0000644000175000017500000000110414327003123016551 0ustar heronheron#ifndef INCLUDED_GormHeadersPref_h #define INCLUDED_GormHeadersPref_h #include #include @interface GormHeadersPref : NSObject { id preloadButton; id table; id addButton; id removeButton; id window; id _view; NSMutableArray *headers; } /** * View to show in prefs panel. */ - (NSView *) view; /** * Add a header. */ - (void) addAction: (id)sender; /** * Remove a header. */ - (void) removeAction: (id)sender; /** * Called when the "preload" switch is set. */ - (void) preloadAction: (id)sender; @end #endif gorm-1.3.1/GormPrefs/GormGeneralPref.m0000644000175000017500000000633514327003123016573 0ustar heronheron/* GormGeneralPref.m * * Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003, 2004, 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormGeneralPref.h" static NSString *BACKUPFILE=@"BackupFile"; static NSString *INTTYPE=@"ClassViewType"; static NSString *REPAIRFILE=@"GormRepairFileOnLoad"; @implementation GormGeneralPref - (id) init { _view = nil; self = [super init]; if ( ! [NSBundle loadNibNamed:@"GormPrefGeneral" owner:self] ) { NSLog(@"Can not load bundle GormPrefGeneral"); return nil; } _view = [[window contentView] retain]; //Defaults { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *intType = [defaults stringForKey: INTTYPE]; [backupButton setState: [defaults integerForKey: BACKUPFILE]]; // [checkConsistency setState: ([defaults boolForKey: REPAIRFILE]?NSOnState:NSOffState)]; // set the interface matrix... if([intType isEqual: @"Outline"]) { [interfaceMatrix setState: NSOnState atRow: 0 column: 0]; [interfaceMatrix setState: NSOffState atRow: 1 column: 0]; } else if([intType isEqual: @"Browser"]) { [interfaceMatrix setState: NSOffState atRow: 0 column: 0]; [interfaceMatrix setState: NSOnState atRow: 1 column: 0]; } } return self; } - (void) dealloc { TEST_RELEASE(_view); [super dealloc]; } - (NSView *) view { return _view; } - (void) backupAction: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setInteger:[backupButton state] forKey:BACKUPFILE]; } - (void) classesAction: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; if([[interfaceMatrix cellAtRow: 0 column: 0] state] == NSOnState) { [defaults setObject: @"Outline" forKey: INTTYPE]; } else if([[interfaceMatrix cellAtRow: 1 column: 0] state] == NSOnState) { [defaults setObject: @"Browser" forKey: INTTYPE]; } // let the world know it's changed. // [nc postNotificationName: GormSwitchViewPreferencesNotification // object: nil]; } - (void) consistencyAction: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setBool: (([checkConsistency state] == NSOnState)?YES:NO) forKey: REPAIRFILE]; } @end gorm-1.3.1/GormPrefs/GormPluginsPref.h0000644000175000017500000000074514327003123016631 0ustar heronheron#ifndef INCLUDED_GormPluginsPref_h #define INCLUDED_GormPluginsPref_h #include #include @interface GormPluginsPref : NSObject { id table; id addButton; id removeButton; id window; id _view; } /** * View to be shown in the preferences panel. */ - (NSView *) view; /** * Add a palette to the list. */ - (void) addAction: (id)sender; /** * Remove a palette from the list. */ - (void) removeAction: (id)sender; @end #endif gorm-1.3.1/GormPrefs/GormPluginsPref.m0000644000175000017500000000574714327003123016645 0ustar heronheron#/* GormPluginsPref.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormPluginsPref.h" @class NSTableView; // data source... @interface PluginDataSource : NSObject @end @implementation PluginDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *list = [defaults objectForKey: @"UserPlugins"]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *list = [defaults objectForKey: @"UserPlugins"]; id value = nil; if([list count] > 0) { value = [[list objectAtIndex: rowIndex] lastPathComponent]; } return value; } @end @implementation GormPluginsPref - (id) init { _view = nil; self = [super init]; if ( ! [NSBundle loadNibNamed:@"GormPrefPlugins" owner:self] ) { NSLog(@"Can not load bundle GormPrefPlugins"); return nil; } _view = [[(NSWindow *)window contentView] retain]; return self; } - (void) dealloc { TEST_RELEASE(_view); [super dealloc]; } -(NSView *) view { return _view; } - (void) addAction: (id)sender { [[(id)NSApp pluginManager] openPlugin: self]; [table reloadData]; } - (void) removeAction: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSMutableArray *list = [defaults objectForKey: @"UserPlugins"]; int row = [table selectedRow]; if(row >= 0) { NSString *stringValue = [list objectAtIndex: row]; if(stringValue != nil) { [list removeObject: stringValue]; [defaults setObject: list forKey: @"UserPlugins"]; [table reloadData]; } } } - (BOOL) tableView: (NSTableView *)tableView shouldEditTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { BOOL result = NO; return result; } - (BOOL) tableView: (NSTableView *)tv shouldSelectRow: (NSInteger)rowIndex { BOOL result = YES; return result; } @end gorm-1.3.1/GormPrefs/GormPrefController.m0000644000175000017500000000366014327003123017337 0ustar heronheron#include #include "GormPrefController.h" #include "GormGeneralPref.h" #include "GormHeadersPref.h" #include "GormShelfPref.h" #include "GormPalettesPref.h" #include "GormPluginsPref.h" #include "GormGuidelinePref.h" @implementation GormPrefController - (id) init { self = [super init]; if (self != nil) { if(![NSBundle loadNibNamed: @"GormPreferences" owner: self]) { return nil; } } return self; } - (void) awakeFromNib { _generalView = [[GormGeneralPref alloc] init]; _headersView = [[GormHeadersPref alloc] init]; _shelfView = [[GormShelfPref alloc] init]; _palettesView = [[GormPalettesPref alloc] init]; _pluginsView = [[GormPluginsPref alloc] init]; _guidelineView = [[GormGuidelinePref alloc] init]; [prefBox setContentView:[_generalView view]]; [[self panel] setFrameUsingName: @"Preferences"]; [[self panel] setFrameAutosaveName: @"Preferences"]; [[self panel] center]; } - (void) popupAction: (id)sender { int tag = -1; if ( sender != popup ) return; tag = [[sender selectedItem] tag]; switch(tag) { case 0: [prefBox setContentView: [_generalView view]]; break; case 1: [prefBox setContentView: [_headersView view]]; break; case 2: [prefBox setContentView: [_shelfView view]]; break; case 4: [prefBox setContentView: [_palettesView view]]; break; case 5: [prefBox setContentView: [_guidelineView view]]; break; case 6: [prefBox setContentView: [_pluginsView view]]; break; default: NSLog(@"Error Default (GormPrefController.m) : - (void) popupAction: (id)sender, no match for tag %d",tag); break; } } - (void) dealloc { RELEASE(_generalView); RELEASE(_headersView); RELEASE(_shelfView); RELEASE(_colorsView); RELEASE(_palettesView); RELEASE(_pluginsView); RELEASE(panel); [super dealloc]; } - (id) panel { return panel; } @end gorm-1.3.1/GormPrefs/GormGuidelinePref.h0000644000175000017500000000265414327003123017116 0ustar heronheron/* GormGuidelinePref.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2003, 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormGuidelinePref_h #define INCLUDED_GormGuidelinePref_h #include #include @class NSWindow; @interface GormGuidelinePref : NSObject { NSWindow *window; id _view; id spacingSlider; id currentSpacing; id halfSpacing; id colorWell; } /** * View to show in prefs panel. */ - (NSView *) view; /** * Called when the guidline preferences are changed. */ - (void)ok: (id)sender; /** * Reset to defaults. */ - (void)reset: (id)sender; @end #endif gorm-1.3.1/GormPrefs/GormPalettesPref.h0000644000175000017500000000075014327003123016765 0ustar heronheron#ifndef INCLUDED_GormPalettesPref_h #define INCLUDED_GormPalettesPref_h #include #include @interface GormPalettesPref : NSObject { id table; id addButton; id removeButton; id window; id _view; } /** * View to be shown in the preferences panel. */ - (NSView *) view; /** * Add a palette to the list. */ - (void) addAction: (id)sender; /** * Remove a palette from the list. */ - (void) removeAction: (id)sender; @end #endif gorm-1.3.1/GormPrefs/GormGeneralPref.h0000644000175000017500000000103714327003123016560 0ustar heronheron#ifndef INCLUDED_GormGeneralPref_h #define INCLUDED_GormGeneralPref_h #include #include @interface GormGeneralPref : NSObject { id window; id backupButton; id interfaceMatrix; id checkConsistency; id _view; } /** * View to be shown. */ - (NSView *) view; /** * Should create a backup file. */ - (void) backupAction: (id)sender; /** * Show the classes view as a browser or an outline. */ - (void) classesAction: (id)sender; - (void) consistencyAction: (id)sender; @end #endif gorm-1.3.1/GormPrefs/GNUmakefile0000644000175000017500000000253314327003123015444 0ustar heronheron# # GNUmakefile # Written by Gregory John Casamento # PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make # # Subprojects # # # Framework # PACKAGE_NAME=GormPrefs LIBRARY_VAR=GORMPREFS LIBRARY_NAME=GormPrefs GormPrefs_HEADER_FILES_DIR=. GormPrefs_HEADER_FILES_INSTALL_DIR=/GormPrefs ADDITIONAL_INCLUDE_DIRS = -I.. srcdir = . include ../Version # # Additional libraries # GormPrefs_LIBRARIES_DEPEND_UPON += -lgnustep-gui -l$(FOUNDATION_LIBRARY_NAME) # # Header files # GormPrefs_HEADER_FILES= \ GormPrefs.h \ GormGeneralPref.h \ GormGuidelinePref.h \ GormHeadersPref.h \ GormPalettesPref.h \ GormPluginsPref.h \ GormPrefController.h \ GormShelfPref.h # # Class files # GormPrefs_OBJC_FILES= \ GormGeneralPref.m \ GormGuidelinePref.m \ GormHeadersPref.m \ GormPalettesPref.m \ GormPluginsPref.m \ GormPrefController.m \ GormShelfPref.m # # Resources # #GormPrefs_LOCALIZED_RESOURCE_FILES= \ #GormPrefColors.gorm \ #GormPreferences.gorm \ #GormPrefGeneral.gorm \ #GormPrefGuideline.gorm \ #GormPrefHeaders.gorm \ #GormPrefPalettes.gorm \ #GormShelfPref.gorm # # Languages # #GormPrefs_LANGUAGES= \ #English # # C files # GormPrefs_C_FILES= HEADERS_INSTALL = $(GormPrefs_HEADER_FILES) -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/library.make -include GNUmakefile.postamble gorm-1.3.1/GormPrefs/GormPrefs.h0000644000175000017500000000272014327003123015445 0ustar heronheron/* GormPrefs.h * * Copyright (C) 2019 Free Software Foundation, Inc. * * Author: Lars Sonchocky-Helldorf * Date: 01.11.19 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #import #ifndef GNUSTEP //! Project version number for GormPrefs. FOUNDATION_EXPORT double GormPrefsVersionNumber; //! Project version string for GormPrefs. FOUNDATION_EXPORT const unsigned char GormPrefsVersionString[]; #endif #ifndef INCLUDED_GORMPREFS_H #define INCLUDED_GORMPREFS_H #include #include #include #include #include #include #include #endif gorm-1.3.1/GormPrefs/GormGuidelinePref.m0000644000175000017500000000330014327003123017110 0ustar heronheron #include #include #include #include "GormGuidelinePref.h" @implementation GormGuidelinePref - (id) init { if((self = [super init]) != nil) { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; int spacing = [defaults integerForKey: @"GuideSpacing"]; NSColor *aColor = colorFromDict([defaults objectForKey: @"GuideColor"]); // default the color to something, if nothing is returned. if(aColor == nil) { aColor = [NSColor redColor]; } if ( [NSBundle loadNibNamed:@"GormPrefGuideline" owner:self] == NO ) { NSLog(@"Can not load bundle GormPrefGuideline"); return nil; } [colorWell setColor: aColor]; [spacingSlider setIntValue: spacing]; [currentSpacing setIntValue: spacing]; [halfSpacing setIntValue: spacing/2]; _view = [[window contentView] retain]; } return self; } - (void) dealloc { TEST_RELEASE(_view); [super dealloc]; } -(NSView *) view { return _view; } - (void) ok: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if(sender == spacingSlider) { int spacing = [spacingSlider intValue]; [currentSpacing setIntValue: spacing]; [halfSpacing setIntValue: spacing/2]; [defaults setInteger: spacing forKey: @"GuideSpacing"]; } else if(sender == colorWell) { NSColor *color = [colorWell color]; [defaults setObject: colorToDict(color) forKey: @"GuideColor"]; } } - (void) reset: (id)sender { [spacingSlider setIntValue: 10]; [colorWell setColor: [NSColor redColor]]; [self ok: spacingSlider]; [self ok: colorWell]; } @end gorm-1.3.1/GormPrefs/GormHeadersPref.m0000644000175000017500000000554614327003123016574 0ustar heronheron #include #include #include "GormHeadersPref.h" // data source... @interface HeaderDataSource : NSObject @end @implementation HeaderDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *list = [defaults objectForKey: @"HeaderList"]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *list = [defaults objectForKey: @"HeaderList"]; id value = nil; // NSFontAttributeName if([list count] > 0) { value = [[list objectAtIndex: rowIndex] lastPathComponent]; } return value; } @end @implementation GormHeadersPref - (id) init { _view = nil; self = [super init]; if ( ! [NSBundle loadNibNamed:@"GormPrefHeaders" owner:self] ) { NSLog(@"Can not load bundle GormPrefHeaders"); return nil; } _view = [[window contentView] retain]; return self; } - (void) dealloc { TEST_RELEASE(_view); [super dealloc]; } -(NSView *) view { return _view; } - (void) addAction: (id)sender { NSArray *fileTypes = [NSArray arrayWithObjects: @"h", @"H", nil]; NSOpenPanel *openPanel = [NSOpenPanel openPanel]; int result; [openPanel setAllowsMultipleSelection: YES]; [openPanel setCanChooseFiles: YES]; [openPanel setCanChooseDirectories: NO]; result = [openPanel runModalForDirectory: nil file: nil types: fileTypes]; if (result == NSOKButton) { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSMutableArray *list = [defaults objectForKey: @"HeaderList"]; [list addObjectsFromArray: [openPanel filenames]]; [defaults setObject: list forKey: @"HeaderList"]; [table reloadData]; } } - (void) removeAction: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSMutableArray *list = [defaults objectForKey: @"HeaderList"]; int row = [table selectedRow]; if(row >= 0) { NSString *stringValue = [list objectAtIndex: row]; if(stringValue != nil) { [list removeObject: stringValue]; [table reloadData]; } } } - (void) preloadAction: (id)sender { if (sender != preloadButton) { return; } else { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setBool: ([preloadButton state] == NSOnState?YES:NO) forKey:@"PreloadHeaders"]; } } - (BOOL) tableView: (NSTableView *)tableView shouldEditTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { BOOL result = NO; return result; } - (BOOL) tableView: (NSTableView *)tv shouldSelectRow: (NSInteger)rowIndex { BOOL result = YES; return result; } @end gorm-1.3.1/GormPrefs/GormPalettesPref.m0000644000175000017500000000576514327003123017005 0ustar heronheron#/* GormPalettesPref.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormPalettesPref.h" @class NSTableView; // data source... @interface PaletteDataSource : NSObject @end @implementation PaletteDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *list = [defaults objectForKey: @"UserPalettes"]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *list = [defaults objectForKey: @"UserPalettes"]; id value = nil; if([list count] > 0) { value = [[list objectAtIndex: rowIndex] lastPathComponent]; } return value; } @end @implementation GormPalettesPref - (id) init { _view = nil; self = [super init]; if ( ! [NSBundle loadNibNamed:@"GormPrefPalettes" owner:self] ) { NSLog(@"Can not load bundle GormPrefPalettes"); return nil; } _view = [[(NSWindow *)window contentView] retain]; return self; } - (void) dealloc { TEST_RELEASE(_view); [super dealloc]; } -(NSView *) view { return _view; } - (void) addAction: (id)sender { [[(id)NSApp palettesManager] openPalette: self]; [table reloadData]; } - (void) removeAction: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSMutableArray *list = [defaults objectForKey: @"UserPalettes"]; int row = [table selectedRow]; if(row >= 0) { NSString *stringValue = [list objectAtIndex: row]; if(stringValue != nil) { [list removeObject: stringValue]; [defaults setObject: list forKey: @"UserPalettes"]; [table reloadData]; } } } - (BOOL) tableView: (NSTableView *)tableView shouldEditTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { BOOL result = NO; return result; } - (BOOL) tableView: (NSTableView *)tv shouldSelectRow: (NSInteger)rowIndex { BOOL result = YES; return result; } @end gorm-1.3.1/GormPrefs/GormShelfPref.h0000644000175000017500000000457014327003123016251 0ustar heronheron/* GormShelfPref.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: February 2004 * * Author: Enrico Sersale * Date: August 2001 * * This class is heavily based on work done by Enrico Sersale * on ShelfPref.h for GWorkspace. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef GORMSHELFPREF_H #define GORMSHELFPREF_H #include #include typedef enum { leftarrow, rightarrow } ArrowPosition; @class NSEvent; @class NSNotification; @interface ArrResizer : NSView { NSImage *arrow; ArrowPosition position; id controller; } - (id)initForController:(id)acontroller withPosition:(ArrowPosition)pos; - (ArrowPosition)position; @end @interface GormShelfPref : NSObject { IBOutlet id win; IBOutlet id prefbox; IBOutlet id iconbox; IBOutlet id imView; IBOutlet id leftResBox; IBOutlet id rightResBox; IBOutlet id nameField; IBOutlet id setButt; ArrResizer *leftResizer; ArrResizer *rightResizer; NSString *fname; int cellsWidth; } /** * Sets the frame for the resize arrows. */ - (void)tile; /** * Called when the selection is changed. */ - (void)selectionChanged:(NSNotification *)n; /** * Invoked when the resizer widgets are moved. */ - (void)startMouseEvent:(NSEvent *)event onResizer:(ArrResizer *)resizer; /** * Programmatically set a width. */ - (void)setNewWidth:(int)w; /** * Set the resizer back to the default width. */ - (IBAction)setDefaultWidth:(id)sender; /** * The view to display in the prefs panel. */ - (NSView *)view; /** * Return the current width. */ - (int) shelfCellsWidth; @end #endif gorm-1.3.1/GormPrefs/GormPrefController.h0000644000175000017500000000274414327003123017334 0ustar heronheron/* GormShelfPref.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: February 2004 * * This class is heavily based on work done by Enrico Sersale * on ShelfPref.m for GWorkspace. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormPrefController_h #define INCLUDED_GormPrefController_h #include #include @interface GormPrefController : NSObject { id panel; id popup; id prefBox; id _generalView; id _headersView; id _shelfView; id _colorsView; id _palettesView; id _pluginsView; id _guidelineView; } /** * Called when the popup is used to select a pref panel. */ - (void) popupAction: (id)sender; /** * Return the preferences panel. */ - (id) panel; @end #endif gorm-1.3.1/GormPrefs/GNUmakefile.preamble0000644000175000017500000000217614327003123017235 0ustar heronheron# GNUmakefile: main makefile for GNUstep Object Relationship Modeller # # Copyright (C) 2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # Date: 2003 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA # # ADDITIONAL_OBJCFLAGS += -Wall -Werror ADDITIONAL_GUI_LIBS += \ -lGormCore \ -lGorm ADDITIONAL_LIB_DIRS += \ -L../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../GormCore/$(GNUSTEP_OBJ_DIR) gorm-1.3.1/GormPrefs/GormShelfPref.m0000644000175000017500000001645314327003123016261 0ustar heronheron/* GormShelfPref.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: February 2004 * * Author: Enrico Sersale * Date: August 2001 * * This class is heavily based on work done by Enrico Sersale * on ShelfPref.m for GWorkspace. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #include "GormShelfPref.h" #define BOX_W 197 #define NAME_OR_Y 5 #define NAME_W 16 #define NAME_MARGIN 6 #ifndef max #define max(a,b) ((a) > (b) ? (a):(b)) #endif #ifndef min #define min(a,b) ((a) < (b) ? (a):(b)) #endif static NSString *nibName = @"GormShelfPref"; @implementation ArrResizer - (void)dealloc { RELEASE (arrow); [super dealloc]; } - (id)initForController:(id)acontroller withPosition:(ArrowPosition)pos { self = [super init]; [self setFrame: NSMakeRect(0, 0, 16, 16)]; position = pos; controller = acontroller; if (position == leftarrow) { ASSIGN (arrow, [NSImage imageNamed: @"LeftArr.tiff"]); } else { ASSIGN (arrow, [NSImage imageNamed: @"RightArr.tiff"]); } return self; } - (ArrowPosition)position { return position; } - (void)mouseDown:(NSEvent *)e { [controller startMouseEvent: e onResizer: self]; } - (void)drawRect:(NSRect)rect { [super drawRect: rect]; [arrow compositeToPoint: NSZeroPoint operation: NSCompositeSourceOver]; } @end @implementation GormShelfPref - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; TEST_RELEASE (prefbox); RELEASE (leftResizer); RELEASE (rightResizer); RELEASE (fname); [super dealloc]; } - (id)init { self = [super init]; if ((self = [super init]) != nil) { if ([NSBundle loadNibNamed: nibName owner: self] == NO) { NSLog(@"failed to load %@!", nibName); } else { int orx; RETAIN (prefbox); RELEASE (win); [imView setImageScaling: NSScaleProportionally]; // set up the info... [imView setImage: [NSImage imageNamed: @"GormObject.tiff"]]; ASSIGN(fname, @"GormSampleObjectName"); cellsWidth = [self shelfCellsWidth]; orx = (int)((BOX_W - cellsWidth) / 2); leftResizer = [[ArrResizer alloc] initForController: self withPosition: leftarrow]; [leftResizer setFrame: NSMakeRect(0, 0, NAME_W, NAME_W)]; [(NSBox *)leftResBox setContentView: leftResizer]; [leftResBox setFrame: NSMakeRect(orx - NAME_W, NAME_OR_Y, NAME_W, NAME_W)]; rightResizer = [[ArrResizer alloc] initForController: self withPosition: rightarrow]; [rightResizer setFrame: NSMakeRect(0, 0, NAME_W, NAME_W)]; [(NSBox *)rightResBox setContentView: rightResizer]; [rightResBox setFrame: NSMakeRect(orx + cellsWidth, NAME_OR_Y, NAME_W, NAME_W)]; [nameField setFrame: NSMakeRect(orx, NAME_OR_Y, cellsWidth, NAME_W)]; [nameField setStringValue: cutFileLabelText(fname, nameField, cellsWidth -NAME_MARGIN)]; /* Internationalization */ [setButt setTitle: _(@"Default")]; [iconbox setTitle: _(@"Title Width")]; } } return self; } - (NSView *)view { return ((NSView *)prefbox); } - (void)selectionChanged:(NSNotification *)n { /* NSArray *selPaths = [gw selectedPaths]; int count = [selPaths count]; NSString *fpath = [selPaths objectAtIndex: 0]; NSString *defApp; NSString *type; ASSIGN (fname, [fpath lastPathComponent]); [imView setImage: @"GormObject.tiff"]; cellsWidth = [self shelfCellsWidth]; [self tile]; */ } - (int) shelfCellsWidth { // return the current cell width; return [[NSUserDefaults standardUserDefaults] integerForKey: @"CellSizeWidth"]; } - (void)tile { int orx = (int)((BOX_W - cellsWidth) / 2); [nameField setFrame: NSMakeRect(orx, NAME_OR_Y, cellsWidth, NAME_W)]; [nameField setStringValue: cutFileLabelText(fname, nameField, cellsWidth -NAME_MARGIN)]; [leftResBox setFrame: NSMakeRect(orx - NAME_W, NAME_OR_Y, NAME_W, NAME_W)]; [rightResBox setFrame: NSMakeRect(orx + cellsWidth, NAME_OR_Y, NAME_W, NAME_W)]; [iconbox setNeedsDisplay: YES]; } - (void)startMouseEvent:(NSEvent *)event onResizer:(ArrResizer *)resizer { NSApplication *app = [NSApplication sharedApplication]; NSDate *farAway = [NSDate distantFuture]; ArrowPosition pos = [resizer position]; int orx = (int)[prefbox convertPoint: [event locationInWindow] fromView: nil].x; NSView *resbox1 = (pos == leftarrow) ? leftResBox : rightResBox; NSView *resbox2 = (pos == leftarrow) ? rightResBox : leftResBox; unsigned int eventMask = NSLeftMouseUpMask | NSLeftMouseDraggedMask; NSEvent *e; [prefbox lockFocus]; [[NSRunLoop currentRunLoop] limitDateForMode: NSEventTrackingRunLoopMode]; e = [app nextEventMatchingMask: eventMask untilDate: farAway inMode: NSEventTrackingRunLoopMode dequeue: YES]; while ([e type] != NSLeftMouseUp) { int x = (int)[prefbox convertPoint: [e locationInWindow] fromView: nil].x; int diff = x - orx; int orx1 = (int)[resbox1 frame].origin.x; int orx2 = (int)[resbox2 frame].origin.x; if ((max(orx1 + diff, orx2 - diff) - min(orx1 + diff, orx2 - diff)) < 160 && (max(orx1 + diff, orx2 - diff) - min(orx1 + diff, orx2 - diff)) > 70) { int fieldwdt = max(orx1 + diff, orx2 - diff) - min(orx1 + diff, orx2 - diff) - NAME_W; int nameforx = (int)((BOX_W - fieldwdt) / 2); [resbox1 setFrameOrigin: NSMakePoint(orx1 + diff, NAME_OR_Y)]; [resbox2 setFrameOrigin: NSMakePoint(orx2 - diff, NAME_OR_Y)]; [nameField setFrame: NSMakeRect(nameforx, NAME_OR_Y, fieldwdt, NAME_W)]; [nameField setStringValue: cutFileLabelText(fname, nameField, fieldwdt -NAME_MARGIN)]; [iconbox setNeedsDisplay: YES]; orx = x; } e = [app nextEventMatchingMask: eventMask untilDate: farAway inMode: NSEventTrackingRunLoopMode dequeue: YES]; } [prefbox unlockFocus]; [self setNewWidth: (int)[nameField frame].size.width]; [setButt setEnabled: YES]; } - (void) _postNotification { NSDebugLog(@"Notify the app that the size has changed...."); [[NSNotificationCenter defaultCenter] postNotificationName: GormResizeCellNotification object: self]; } - (void)setNewWidth:(int)w { // set the new default... [[NSUserDefaults standardUserDefaults] setInteger: w forKey: @"CellSizeWidth"]; [self _postNotification]; } - (void)setDefaultWidth:(id)sender { // set some default width... cellsWidth = 72; [[NSUserDefaults standardUserDefaults] setInteger: cellsWidth forKey: @"CellSizeWidth"]; [self tile]; [setButt setEnabled: NO]; [self _postNotification]; } @end gorm-1.3.1/Plugins/0000755000175000017500000000000014327003122013103 5ustar heronherongorm-1.3.1/Plugins/GModel/0000755000175000017500000000000014360746517014275 5ustar heronherongorm-1.3.1/Plugins/GModel/GNUmakefile0000644000175000017500000000245114327003122016326 0ustar heronheron# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make BUNDLE_NAME = GModel BUNDLE_EXTENSION = .plugin GModel_PRINCIPAL_CLASS = GormGModelPlugin GModel_OBJC_FILES = GormGModelPlugin.m \ GormGModelWrapperLoader.m GModel_RESOURCE_FILES = GModel_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/bundle.make -include GNUmakefile.postamble gorm-1.3.1/Plugins/GModel/GormGModelWrapperLoader.h0000644000175000017500000000204114327003122021104 0ustar heronheron/* GormNibWrapperLoader * * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_GMODELWRAPPERLOADER #define GORM_GMODELWRAPPERLOADER #include @class NSMutableArray, NSString; @interface GormGModelWrapperLoader : GormWrapperLoader @end #endif gorm-1.3.1/Plugins/GModel/GormGModelPlugin.m0000644000175000017500000000230414327003122017602 0ustar heronheron/* GormGModelPlugin.m * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include #include #include "GormGModelWrapperLoader.h" @interface GormGModelPlugin : GormPlugin @end @implementation GormGModelPlugin - (void) didLoad { [self registerDocumentTypeName: [GormGModelWrapperLoader fileType] humanReadableName: @"GNUstep GModel" forExtensions: [NSArray arrayWithObjects: @"gmodel",nil]]; } @end gorm-1.3.1/Plugins/GModel/GNUmakefile.preamble0000644000175000017500000000130514327003122020111 0ustar heronheron# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) GModel_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.3.1/Plugins/GModel/GormGModelWrapperLoader.m0000644000175000017500000004523514327003122021125 0ustar heronheron/* GModelDecoder * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Adam Fedor * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include "GormGModelWrapperLoader.h" static Class gmodel_class(NSString *className); static id gormNibOwner; static id gormRealObject; static BOOL gormFileOwnerDecoded; @interface NSWindow (GormPrivate) - (void) gmSetStyleMask: (unsigned int)mask; @end @implementation NSWindow (GormPrivate) // private method to change the Window style mask on the fly - (void) gmSetStyleMask: (unsigned int)mask { _styleMask = mask; [GSServerForWindow(self) stylewindow: mask : [self windowNumber]]; } @end @interface NSWindow (GormNSWindowPrivate) - (unsigned int) _styleMask; @end @interface GModelApplication : NSObject { id mainMenu; id windowMenu; id delegate; NSArray *windows; } + (id)createObjectForModelUnarchiver:(GMUnarchiver*)unarchiver; - (id)initWithModelUnarchiver:(GMUnarchiver*)unarchiver; - mainMenu; - windowMenu; - delegate; - (NSArray *) windows; @end @implementation GModelApplication - (id)initWithModelUnarchiver:(GMUnarchiver*)unarchiver { NSEnumerator *enumerator; NSWindow *win; mainMenu = [unarchiver decodeObjectWithName:@"mainMenu"]; windows = [unarchiver decodeObjectWithName:@"windows"]; enumerator = [windows objectEnumerator]; while ((win = [enumerator nextObject]) != nil) { /* Fix up window frames */ if ([win styleMask] == NSBorderlessWindowMask) { NSLog(@"Fixing borderless window %@", win); [win gmSetStyleMask: NSTitledWindowMask]; } /* Fix up the background color */ [win setBackgroundColor: [NSColor windowBackgroundColor]]; } delegate = [unarchiver decodeObjectWithName:@"delegate"]; return self; } - (NSArray *) windows { return windows; } - mainMenu { return mainMenu; } - windowMenu { return windowMenu; } - delegate { return delegate; } + (id)createObjectForModelUnarchiver:(GMUnarchiver*)unarchiver { return AUTORELEASE([[GModelApplication alloc] init]); } @end @interface GModelMenuTemplate : NSObject { NSString *menuClassName; id realObject; } + (id)createObjectForModelUnarchiver:(GMUnarchiver*)unarchiver; - (id)initWithModelUnarchiver:(GMUnarchiver*)unarchiver; @end @implementation GModelMenuTemplate - (id)initWithModelUnarchiver:(GMUnarchiver*)unarchiver { menuClassName = [unarchiver decodeObjectWithName:@"menuClassName"]; realObject = [unarchiver decodeObjectWithName: @"realObject"]; // RELEASE(self); return realObject; } + (id)createObjectForModelUnarchiver:(GMUnarchiver*)unarchiver { return AUTORELEASE([[GModelMenuTemplate alloc] init]); } @end @implementation GormObjectProxy (GModel) + (id)createObjectForModelUnarchiver:(GMUnarchiver*)unarchiver { return AUTORELEASE([[self alloc] init]); } - (id)initWithModelUnarchiver: (GMUnarchiver*)unarchiver { id extension; id realObject; theClass = RETAIN([unarchiver decodeStringWithName: @"className"]); extension = [unarchiver decodeObjectWithName: @"extension"]; realObject = [unarchiver decodeObjectWithName: @"realObject"]; //real = [unarchiver representationForName: @"realObject" isLabeled: &label]; if (!gormFileOwnerDecoded || [realObject isKindOfClass: [GModelApplication class]]) { gormFileOwnerDecoded = YES; gormNibOwner = self; gormRealObject = realObject; } return self; } @end @implementation GormCustomView (GModel) + (id)createObjectForModelUnarchiver:(GMUnarchiver*)unarchiver { return AUTORELEASE([[self alloc] initWithFrame: NSMakeRect(0,0,10,10)]); } - (id)initWithModelUnarchiver:(GMUnarchiver*)unarchiver { NSString *cn; id realObject; id extension; cn = [unarchiver decodeStringWithName: @"className"]; extension = [unarchiver decodeObjectWithName: @"extension"]; realObject = [unarchiver decodeObjectWithName: @"realObject"]; [self setFrame: [unarchiver decodeRectWithName: @"frame"]]; [self setClassName: cn]; if (!gormFileOwnerDecoded) { gormFileOwnerDecoded = YES; gormNibOwner = self; gormRealObject = realObject; } return self; } @end @interface GormDocument (GModelLoaderAdditions) - (void) defineClass: (id)className inFile: (NSString *)path; - (id) connectionObjectForObject: object; - (NSDictionary *) processModel: (NSMutableDictionary *)model inPath: (NSString *)path; @end @implementation GormDocument (GModelLoaderAdditions) /* Try to define a possibly custom class that's in the gmodel file. This is not information that is contained in the file itself. For instance, we don't even know what the superclass is, and at best, we could search the connections to see what outlets and actions are used. */ - (void) defineClass: (id)className inFile: (NSString *)path { int result; NSString *header; NSFileManager *mgr; NSRange notFound = NSMakeRange(NSNotFound, 0); if ([classManager isKnownClass: className]) return; /* Can we parse a header in this directory? */ mgr = [NSFileManager defaultManager]; path = [path stringByDeletingLastPathComponent]; header = [path stringByAppendingPathComponent: className]; header = [header stringByAppendingPathExtension: @"h"]; if ([mgr fileExistsAtPath: header]) { result = NSRunAlertPanel(_(@"GModel Loading"), _(@"Parse %@ to define unknown class %@?"), _(@"Yes"), _(@"No"), _(@"Choose File"), header, className, nil); } else { result = NSRunAlertPanel(_(@"GModel Loading"), _(@"Unknown class %@. Parse header file to define?"), _(@"Yes"), _(@"No, Choose Superclass"), nil, className, nil); if (result == NSAlertDefaultReturn) result = NSAlertOtherReturn; } if (result == NSAlertOtherReturn) { NSOpenPanel *opanel = [NSOpenPanel openPanel]; NSArray *fileTypes = [NSArray arrayWithObjects: @"h", @"H", nil]; result = [opanel runModalForDirectory: path file: nil types: fileTypes]; if (result == NSOKButton) { header = [opanel filename]; result = NSAlertDefaultReturn; } } // make a guess and warn the user if (result != NSAlertDefaultReturn) { NSString *superClass = promptForClassName([NSString stringWithFormat: @"Superclass: %@",className], [classManager allClassNames]); BOOL added = NO; // cheesy attempt to determine superclass.. if(superClass == nil) { if([className isEqual: @"GormCustomView"]) { superClass = @"NSView"; } else if(NSEqualRanges(notFound,[className rangeOfString: @"Window"]) == NO) { superClass = @"NSWindow"; } else if(NSEqualRanges(notFound,[className rangeOfString: @"Panel"]) == NO) { superClass = @"NSPanel"; } else { superClass = @"NSObject"; } } added = [classManager addClassNamed: className withSuperClassNamed: superClass withActions: [NSMutableArray array] withOutlets: [NSMutableArray array]]; // inform the user... if(added) { NSLog(@"Added class %@ with superclass of %@.", className, superClass); } else { NSLog(@"Failed to add class %@ with superclass of %@.", className, superClass); } } else { NS_DURING { if(![classManager parseHeader: header]) { NSString *file = [header lastPathComponent]; NSString *message = [NSString stringWithFormat: _(@"Unable to parse class in %@"),file]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } } NS_HANDLER { NSString *message = [localException reason]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } NS_ENDHANDLER; } } /* Replace the proxy with the real object if necessary and make sure there is a name for the connection object */ - (id) connectionObjectForObject: object { if (object == nil) return nil; if (object == gormNibOwner) object = filesOwner; else [self setName: nil forObject: object]; return object; } - (NSDictionary *) processModel: (NSMutableDictionary *)model inPath: (NSString *)path { NSMutableDictionary *customMap = nil; NSEnumerator *en = [model keyEnumerator]; NSMutableArray *deleted = [NSMutableArray array]; id key; NSLog(@"Processing model..."); while((key = [en nextObject]) != nil) { NSDictionary *obj = [model objectForKey: key]; if(obj != nil) { if([obj isKindOfClass: [NSDictionary class]]) { NSString *objIsa = [(NSMutableDictionary *)obj objectForKey: @"isa"]; Class cls = NSClassFromString(objIsa); if(cls == nil) { // Remove this class. It's not defined on GNUstep and it's generally // useless. if([objIsa isEqual: @"NSNextStepFrame"]) { NSString *subviewsKey = [obj objectForKey: @"subviews"]; NSDictionary *subviews = [model objectForKey: subviewsKey]; NSArray *elements = [subviews objectForKey: @"elements"]; NSEnumerator *subViewEnum = [elements objectEnumerator]; NSString *svkey = nil; while((svkey = [subViewEnum nextObject]) != nil) { [deleted addObject: svkey]; } [deleted addObject: key]; [deleted addObject: subviewsKey]; continue; } if([objIsa isEqual: @"NSImageCacheView"]) { // this is eliminated in the NSNextStepFrame section above. continue; } if([classManager isKnownClass: objIsa] == NO && [objIsa isEqual: @"IMControlConnector"] == NO && [objIsa isEqual: @"IMOutletConnector"] == NO && [objIsa isEqual: @"IMCustomObject"] == NO && [objIsa isEqual: @"IMCustomView"] == NO) { NSString *superClass; NSLog(@"%@ is not a known class",objIsa); [self defineClass: objIsa inFile: path]; superClass = [classManager superClassNameForClassNamed: objIsa]; [(NSMutableDictionary *)obj setObject: superClass forKey: @"isa"]; } } } } } // remove objects marked for deletion the model. en = [deleted objectEnumerator]; while((key = [en nextObject]) != nil) { [model removeObjectForKey: key]; } return customMap; } @end @implementation GormGModelWrapperLoader + (NSString *) fileType { return @"GSGModelFileType"; } /* importing of legacy gmodel files.*/ - (BOOL) loadFileWrapper: (NSFileWrapper *)wrapper withDocument: (GormDocument *) doc { id obj, con; id unarchiver; id decoded; NSEnumerator *enumerator; NSArray *gmobjects; NSArray *gmconnections; Class u = gmodel_class(@"GMUnarchiver"); NSString *delegateClass = nil; NSData *data = [wrapper regularFileContents]; NSString *dictString = AUTORELEASE([[NSString alloc] initWithData: data encoding: NSASCIIStringEncoding]); NSMutableDictionary *model = [NSMutableDictionary dictionaryWithDictionary: [dictString propertyList]]; NSString *path = [[wrapper filename] stringByDeletingLastPathComponent]; gormNibOwner = nil; gormRealObject = nil; gormFileOwnerDecoded = NO; /* GModel classes */ [u decodeClassName: @"NSApplication" asClassName: @"GModelApplication"]; [u decodeClassName: @"IMCustomView" asClassName: @"GormCustomView"]; [u decodeClassName: @"IMCustomObject" asClassName: @"GormObjectProxy"]; /* Gorm classes */ [u decodeClassName: @"NSMenu" asClassName: @"GormNSMenu"]; [u decodeClassName: @"NSWindow" asClassName: @"GormNSWindow"]; [u decodeClassName: @"NSPanel" asClassName: @"GormNSPanel"]; [u decodeClassName: @"NSBrowser" asClassName: @"GormNSBrowser"]; [u decodeClassName: @"NSTableView" asClassName: @"GormNSTableView"]; [u decodeClassName: @"NSOutlineView" asClassName: @"GormNSOutlineView"]; [u decodeClassName: @"NSPopUpButton" asClassName: @"GormNSPopUpButton"]; [u decodeClassName: @"NSPopUpButtonCell" asClassName: @"GormNSPopUpButtonCell"]; [u decodeClassName: @"NSOutlineView" asClassName: @"GormNSOutlineView"]; [u decodeClassName: @"NSMenuTemplate" asClassName: @"GModelMenuTemplate"]; [u decodeClassName: @"NSCStringText" asClassName: @"NSText"]; // process the model to take care of any custom classes... [doc processModel: model inPath: path]; // initialize with the property list... unarchiver = [[u alloc] initForReadingWithPropertyList: [[model description] propertyList]]; if (!unarchiver) { return NO; } NS_DURING { decoded = [unarchiver decodeObjectWithName:@"RootObject"]; } NS_HANDLER { NSRunAlertPanel(_(@"GModel Loading"), [localException reason], @"Ok", nil, nil); return NO; } NS_ENDHANDLER gmobjects = [decoded performSelector: @selector(objects)]; gmconnections = [decoded performSelector: @selector(connections)]; if (gormNibOwner) { [doc defineClass: [gormNibOwner className] inFile: path]; [[document filesOwner] setClassName: [gormNibOwner className]]; } /* * Now we merge the objects from the gmodel into our own data * structures. */ enumerator = [gmobjects objectEnumerator]; while ((obj = [enumerator nextObject])) { if (obj != gormNibOwner) { [doc attachObject: obj toParent: nil]; } if([obj isKindOfClass: [GormObjectProxy class]]) { if([[obj className] isEqual: @"NSFontManager"]) { // if it's the font manager, take care of it... [doc setName: @"NSFont" forObject: obj]; [doc attachObject: obj toParent: nil]; } else { NSLog(@"processing... %@",[obj className]); [doc defineClass: [obj className] inFile: path]; } } } // build connections... enumerator = [gmconnections objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { NSNibConnector *newcon; id source, dest; source = [doc connectionObjectForObject: [con source]]; dest = [doc connectionObjectForObject: [con destination]]; NSDebugLog(@"connector = %@",con); if ([[con className] isEqual: @"IMOutletConnector"]) // We don't link the gmodel library at compile time... { newcon = AUTORELEASE([[NSNibOutletConnector alloc] init]); if(![[doc classManager] isOutlet: [con label] ofClass: [source className]]) { [[doc classManager] addOutlet: [con label] forClassNamed: [source className]]; } if([[source className] isEqual: @"NSApplication"]) { delegateClass = [dest className]; } } else { NSString *className = (dest == nil)?(NSString *)@"FirstResponder":(NSString *)[dest className]; newcon = AUTORELEASE([[NSNibControlConnector alloc] init]); if(![[doc classManager] isAction: [con label] ofClass: className]) { [[doc classManager] addAction: [con label] forClassNamed: className]; } } NSDebugLog(@"conn = %@ source = %@ dest = %@ label = %@, src name = %@ dest name = %@", newcon, source, dest, [con label], [source className], [dest className]); [newcon setSource: source]; [newcon setDestination: (dest != nil)?dest:[doc firstResponder]]; [newcon setLabel: [con label]]; [[doc connections] addObject: newcon]; } // make sure that all of the actions on the application's delegate object are also added to FirstResponder. enumerator = [[doc connections] objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { if([con isKindOfClass: [NSNibControlConnector class]]) { id dest = [con destination]; if([[dest className] isEqual: delegateClass]) { if(![[doc classManager] isAction: [con label] ofClass: @"FirstResponder"]) { [[doc classManager] addAction: [con label] forClassNamed: @"FirstResponder"]; } } } } if ([gormRealObject isKindOfClass: [GModelApplication class]]) { if([gormRealObject respondsToSelector: @selector(windows)]) { enumerator = [[gormRealObject windows] objectEnumerator]; while ((obj = [enumerator nextObject])) { if([obj isKindOfClass: [NSWindow class]]) { if([obj _styleMask] == 0) { // Skip borderless window. Borderless windows are // sometimes used as temporary objects in nib files, // they will show up unless eliminated. continue; } } [doc attachObject: obj toParent: nil]; } if([gormRealObject respondsToSelector: @selector(mainMenu)]) { if ([(GModelApplication *)gormRealObject mainMenu]) { [doc attachObject: [(GModelApplication *)gormRealObject mainMenu] toParent: nil]; } } } } else if(gormRealObject != nil) { // Here we need to addClass:... (outlets, actions). */ [doc defineClass: [gormRealObject className] inFile: path]; } else { NSLog(@"Don't understand real object %@", gormRealObject); } [doc rebuildObjToNameMapping]; // clear the changes, since we just loaded the document. [document updateChangeCount: NSChangeCleared]; return YES; } @end static Class gmodel_class(NSString *className) { static Class gmclass = Nil; if (gmclass == Nil) { NSBundle *theBundle; NSEnumerator *benum; NSString *path; /* Find the bundle */ benum = [NSStandardLibraryPaths() objectEnumerator]; while ((path = [benum nextObject])) { path = [path stringByAppendingPathComponent: @"Bundles"]; path = [path stringByAppendingPathComponent: @"libgmodel.bundle"]; if ([[NSFileManager defaultManager] fileExistsAtPath: path]) break; path = nil; } NSCAssert(path != nil, @"Unable to load gmodel bundle"); NSDebugLog(@"Loading gmodel from %@", path); theBundle = [NSBundle bundleWithPath: path]; NSCAssert(theBundle != nil, @"Can't init gmodel bundle"); gmclass = [theBundle classNamed: className]; NSCAssert(gmclass, @"Can't load gmodel bundle"); } return gmclass; } gorm-1.3.1/Plugins/Nib/0000755000175000017500000000000014360746517013636 5ustar heronherongorm-1.3.1/Plugins/Nib/GormNibWrapperBuilder.m0000644000175000017500000002730214327003122020202 0ustar heronheron/* GormWrapperBuilder * * This class is a subclass of the NSDocumentController * * Copyright (C) 2006-2013 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include // allow access to a private category... @interface NSIBObjectData (BuilderAdditions) - (id) initWithDocument: (GormDocument *)document; @end; @implementation NSIBObjectData (BuilderAdditions) - (id) initWithDocument: (GormDocument *)document { if((self = [self init]) != nil) { NSArray *cons = [document connections]; NSDictionary *customClasses = [[document classManager] customClassMap]; NSArray *keys = [customClasses allKeys]; NSEnumerator *en = [cons objectEnumerator]; id o = nil; id owner = [document objectForName: @"NSOwner"]; unsigned int oid = 1; // Create the container for the .nib file... ASSIGN(_root, owner); NSMapInsert(_names, owner, @"File's Owner"); NSMapInsert(_oids, owner, [[NSNumber alloc] initWithUnsignedInt: oid++]); ASSIGN(_framework, @"IBCocoaFramework"); [_topLevelObjects addObjectsFromArray: [[document topLevelObjects] allObjects]]; [_visibleWindows addObjectsFromArray: [[document visibleWindows] allObjects]]; // fill in objects and connections.... while((o = [en nextObject]) != nil) { NSNumber *currOid = [NSNumber numberWithUnsignedInt: oid++]; // NSString *currOid = [NSString stringWithFormat: @"%d", oid++]; if ([o isMemberOfClass: [NSNibConnector class]]) { id src = [o source]; id dst = [o destination]; NSString *name = nil; // if (src != nil) { name = [document nameForObject: src]; } else { continue; } if ([name isEqual: @"NSOwner"]) { name = @"File's Owner"; } if ([name isEqual: @"NSMenu"]) { name = @"MainMenu"; } else if ([name isEqual: @"NSFirst"]) { // skip it... continue; } if (dst == nil) { NSLog(@"==> WARNING: value for object %@ is %@ in objects map.", src, dst); } else { NSMapInsert(_objects, src, dst); } if (name == nil) { NSLog(@"==> WARNING: value for object %@ is %@ in names map.", src, name); } else { NSMapInsert(_names, src, name); } if (currOid == nil) { NSLog(@"==> WARNING: value for object %@ is %@ in oids map.", src, currOid); } else { NSMapInsert(_oids, src, currOid); } } else { [_connections addObject: o]; NSMapInsert(_oids, o, currOid); } } // set the next oid... _nextOid = oid; // custom classes... en = [keys objectEnumerator]; while((o = [en nextObject]) != nil) { id obj = [document objectForName: o]; NSString *className = [customClasses objectForKey: o]; NSMapInsert(_classes, obj, className); } } return self; } @end @interface GSNibTemplateFactory : NSObject + (id) templateForObject: (id)object withClassName: (NSString *)customClass withSuperClassName: (NSString *)superClass withDocument: (GormDocument *)document; @end @implementation GSNibTemplateFactory + (id) templateForObject: (id)object withClassName: (NSString *)customClass withSuperClassName: (NSString *)superClass withDocument: (GormDocument *)document { id template = nil; if([object isKindOfClass: [NSWindow class]]) { BOOL isDeferred = [document objectIsDeferred: object]; BOOL isVisible = [document objectIsVisibleAtLaunch: object]; BOOL wantsToBeColor = YES; int autoPositionMask = 0; template = [[NSWindowTemplate alloc] initWithWindow: object className: customClass isDeferred: isDeferred isOneShot: [object isOneShot] isVisible: isVisible wantsToBeColor: wantsToBeColor autoPositionMask: autoPositionMask]; } else if([object isKindOfClass: [NSText class]]) { template = [[NSTextTemplate alloc] initWithObject: object className: customClass]; } else if([object isKindOfClass: [NSTextView class]]) { template = [[NSTextViewTemplate alloc] initWithObject: object className: customClass]; } else if([object isKindOfClass: [NSView class]]) { template = [[NSViewTemplate alloc] initWithObject: object className: customClass]; } else { template = [[NSClassSwapper alloc] initWithObject: object withClassName: customClass originalClassName: superClass]; } return template; } @end @interface GormNibWrapperBuilder : GormWrapperBuilder { NSMapTable *_objectMap; NSIBObjectData *_container; } @end @implementation GormNibWrapperBuilder + (NSString *) fileType { return @"GSNibFileType"; } - (id) init { if((self = [super init]) != nil) { _objectMap = NSCreateMapTableWithZone(NSObjectMapKeyCallBacks, NSObjectMapValueCallBacks, 128, [self zone]); } return self; } - (void) dealloc { RELEASE(_container); NSFreeMapTable(_objectMap); [super dealloc]; } /** * Private method which iterates through the list of custom classes and instructs * the archiver to replace the actual object with template during the archiving * process. */ - (void) _replaceObjectsWithTemplates: (NSKeyedArchiver *)archiver { NSEnumerator *en = [[document nameTable] keyEnumerator]; GormClassManager *classManager = [document classManager]; // GormFilePrefsManager *filePrefsManager = [document filePrefsManager]; id key = nil; // loop through all custom objects and windows while((key = [en nextObject]) != nil) { id customClass = [classManager customClassForName: key]; id object = [document objectForName: key]; id template = nil; if(customClass != nil) { NSString *superClass = [classManager nonCustomSuperClassOf: customClass]; template = [GSNibTemplateFactory templateForObject: object withClassName: customClass withSuperClassName: superClass withDocument: document]; } else if([object isKindOfClass: [NSWindow class]]) { template = [GSNibTemplateFactory templateForObject: object withClassName: [object className] withSuperClassName: [object className] withDocument: document]; } // if the template has been created, replace the object with it. if(template != nil) { /* NOT YET IMPLEMENTED * // if the object can accept autoposition information if([object respondsToSelector: @selector(autoPositionMask)]) { int mask = [object autoPositionMask]; if([template respondsToSelector: @selector(setAutoPositionMask:)]) { [template setAutoPositionMask: mask]; } } */ // replace the object with the template. NSMapInsert(_objectMap, object, template); } } } - (id) archiver: (NSKeyedArchiver *)archiver willEncodeObject: (id) object { id replacementObject = NSMapGet(_objectMap,object); id o = object; if([o isKindOfClass: [GormFirstResponder class]]) { o = nil; } else if(replacementObject != nil) { o = replacementObject; } return o; } - (NSArray *) openItems { NSMapTable *oids = [_container oids]; NSMutableArray *openItems = [NSMutableArray array]; NSEnumerator *en = [[_container visibleWindows] objectEnumerator]; id menu = [document objectForName: @"NSMenu"]; id obj = nil; // Get the open items, so that IB displays the same windows that Gorm had open when it // saved.... while((obj = [en nextObject]) != nil) { if([obj isVisible]) { NSNumber *windowOid = NSMapGet(oids, obj); [openItems addObject: windowOid]; } } // add the menu... if(menu != nil) { NSNumber *menuOid = NSMapGet(oids,menu); [openItems addObject: menuOid]; } return openItems; } - (NSMutableDictionary *)buildFileWrapperDictionaryWithDocument: (GormDocument *)doc { NSKeyedArchiver *archiver = nil; NSMutableData *archiverData = nil; NSString *nibPath = @"keyedobjects.nib"; NSString *classesPath = @"classes.nib"; NSString *infoPath = @"info.nib"; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; NSDictionary *substituteClasses = [palettesManager substituteClasses]; NSEnumerator *en = [substituteClasses keyEnumerator]; NSString *subClassName = nil; NSFileWrapper *fileWrapper = nil; NSMutableDictionary *fileWrappers = [super buildFileWrapperDictionaryWithDocument: doc]; if(fileWrappers) { GormClassManager *classManager = [document classManager]; GormFilePrefsManager *filePrefsManager = [document filePrefsManager]; // instantiate the container. _container = [[NSIBObjectData alloc] initWithDocument: document]; /* * Set up archiving... */ archiverData = [NSMutableData dataWithCapacity: 10240]; archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData: archiverData]; [archiver setDelegate: self]; /* * Special gorm classes to their archive equivalents. */ [archiver setClassName: @"NSCustomObject" forClass: [GormObjectProxy class]]; [archiver setClassName: @"NSCustomView" forClass: [GormCustomView class]]; [archiver setClassName: @"NSCustomObject" forClass: [GormFilesOwner class]]; while((subClassName = [en nextObject]) != nil) { NSString *realClassName = [substituteClasses objectForKey: subClassName]; Class subClass = NSClassFromString(subClassName); [archiver setClassName: realClassName forClass: subClass]; } /* * Initialize templates */ [self _replaceObjectsWithTemplates: archiver]; [archiver setOutputFormat: NSPropertyListXMLFormat_v1_0]; // force XML output for now.... [archiver encodeObject: _container forKey: @"IB.objectdata"]; [archiver finishEncoding]; RELEASE(archiver); // We're done with the archiver here.. /* * Add the gorm, info and classes files to the package. */ fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: archiverData]; [fileWrappers setObject: fileWrapper forKey: nibPath]; RELEASE(fileWrapper); fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: [classManager nibData]]; [fileWrappers setObject: fileWrapper forKey: classesPath]; RELEASE(fileWrapper); fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: [filePrefsManager nibDataWithOpenItems: [self openItems]]]; [fileWrappers setObject: fileWrapper forKey: infoPath]; RELEASE(fileWrapper); } return fileWrappers; } @end gorm-1.3.1/Plugins/Nib/GormNibCustomResource.h0000644000175000017500000000177714327003122020240 0ustar heronheron/* GormNibCustomResource * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_NIBCUSTOMRESOURCE #define GORM_NIBCUSTOMRESOURCE #include @interface GormNibNibCustomResource : NSCustomResource @end #endif gorm-1.3.1/Plugins/Nib/GormNibCustomResource.m0000644000175000017500000000204614327003122020233 0ustar heronheron/* GormNibCustomResource * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include "GormNibCustomResource.h" @implementation GormNibNibCustomResource : NSCustomResource - (id) initWithCoder: (NSCoder *)coder { return self; } - (void) encodeWithCoder: (NSCoder *)coder { } @end gorm-1.3.1/Plugins/Nib/GormNibWrapperLoader.h0000644000175000017500000000223114327003122020007 0ustar heronheron/* GormNibWrapperLoader * * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_NIBWRAPPERLOADER #define GORM_NIBWRAPPERLOADER #include #include #include "GormNibCustomResource.h" @interface GormNibWrapperLoader : GormWrapperLoader { NSIBObjectData *container; id nibFilesOwner; } - (BOOL) isTopLevelObject: (id)obj; @end #endif gorm-1.3.1/Plugins/Nib/GormNibWrapperLoader.m0000644000175000017500000002446214327003122020026 0ustar heronheron/* GormNibWrapperLoader * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNibWrapperLoader.h" @class GormNSWindow; @implementation GormNibWrapperLoader + (NSString *) fileType { return @"GSNibFileType"; } - (NSDictionary *)defaultClassesDict { NSString *defaultClassesString = @"{ IBClasses = ({CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }); IBVersion = 1; }"; return [defaultClassesString propertyList]; } - (BOOL) isTopLevelObject: (id)obj { NSMapTable *objects = [container objects]; id val = NSMapGet(objects,obj); BOOL result = NO; if(val == nibFilesOwner || val == nil) { result = YES; } return result; } - (BOOL) loadFileWrapper: (NSFileWrapper *)wrapper withDocument: (GormDocument *) doc { BOOL result = NO; NS_DURING { NSData *data = nil; NSData *classes = nil; NSKeyedUnarchiver *u = nil; NSString *key = nil; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; NSDictionary *substituteClasses = [palettesManager substituteClasses]; NSString *subClassName = nil; NSDictionary *fileWrappers = nil; if ([super loadFileWrapper: wrapper withDocument: doc]) { GormClassManager *classManager = [document classManager]; id docFilesOwner; NSMapTable *objects; NSArray *objs; NSEnumerator *en; id o; NSMapTable *classesTable; NSArray *classKeys; // turn off custom classes... [NSClassSwapper setIsInInterfaceBuilder: YES]; if([wrapper isDirectory]) { key = nil; fileWrappers = [wrapper fileWrappers]; en = [fileWrappers keyEnumerator]; while((key = [en nextObject]) != nil) { NSFileWrapper *fw = [fileWrappers objectForKey: key]; if([fw isRegularFile]) { NSData *fileData = [fw regularFileContents]; if([key isEqual: @"keyedobjects.nib"]) { data = fileData; } else if([key isEqual: @"classes.nib"]) { classes = fileData; // load the custom classes... if (![classManager loadNibFormatCustomClassesWithData: classes]) { NSRunAlertPanel(_(@"Problem Loading"), _(@"Could not open the associated classes file.\n" @"You won't be able to edit connections on custom classes"), _(@"OK"), nil, nil); } } } } } else { data = [wrapper regularFileContents]; classes = nil; // (NSData *)0xdeadbeef; } // check the data... if (data == nil)// || classes == nil) { result = NO; } else { /* * Create an unarchiver, and use it to unarchive the gorm file while * handling class replacement so that standard objects understood * by the gui library are converted to their Gorm internal equivalents. */ u = [[NSKeyedUnarchiver alloc] initForReadingWithData: data]; [u setDelegate: self]; /* * Special internal classes */ [u setClass: [GormObjectProxy class] forClassName: @"NSCustomObject"]; [u setClass: [GormCustomView class] forClassName: @"NSCustomView"]; [u setClass: [GormWindowTemplate class] forClassName: @"NSWindowTemplate"]; [u setClass: [GormNSWindow class] forClassName: @"NSWindow"]; /* * Substitute any classes specified by the palettes... */ en = [substituteClasses keyEnumerator]; while((subClassName = [en nextObject]) != nil) { NSString *realClassName = [substituteClasses objectForKey: subClassName]; Class substituteClass = NSClassFromString(subClassName); [u setClass: substituteClass forClassName: realClassName]; } // // decode // container = [u decodeObjectForKey: @"IB.objectdata"]; if (container == nil || [container isKindOfClass: [NSIBObjectData class]] == NO) { result = NO; } else { nibFilesOwner = [container objectForName: @"File's Owner"]; docFilesOwner = [document filesOwner]; objects = [container names]; objs = NSAllMapTableKeys(objects); en = [objs objectEnumerator]; o = nil; // // set the current class on the File's owner... // if([nibFilesOwner isKindOfClass: [GormObjectProxy class]]) { [docFilesOwner setClassName: [nibFilesOwner className]]; } // // add objects... // while((o = [en nextObject]) != nil) { id obj = o; NSString *customClassName = nil; NSString *objName = nil; // skip the file's owner, it is handled above... if(o == nibFilesOwner) continue; // // if it's a window template, then replace it with an actual window. // if([o isKindOfClass: [NSWindowTemplate class]]) { NSString *className = [o className]; BOOL isDeferred = [o isDeferred]; BOOL isVisible = [[container visibleWindows] containsObject: o]; // make the object deferred/visible... obj = [o nibInstantiate]; [document setObject: obj isDeferred: isDeferred]; [document setObject: obj isVisibleAtLaunch: isVisible]; // record the custom class... if([classManager isCustomClass: className]) { customClassName = className; } } if([self isTopLevelObject: obj]) { [document attachObject: obj toParent: nil]; } if(customClassName != nil) { objName = [document nameForObject: obj]; [classManager setCustomClass: customClassName forName: objName]; } } // // Add custom classes... // classesTable = [container classes]; classKeys = NSAllMapTableKeys(classesTable); en = [classKeys objectEnumerator]; while((o = [en nextObject]) != nil) { NSString *name = [document nameForObject: o]; NSString *customClass = NSMapGet(classesTable, o); if(name != nil && customClass != nil) { [classManager setCustomClass: customClass forName: name]; } else { NSLog(@"Name %@ or class %@ for object %@ is nil.", name, customClass, o); } } // // add connections... // en = [[container connections] objectEnumerator]; o = nil; while((o = [en nextObject]) != nil) { id dest = [o destination]; id src = [o source]; // NSLog(@"Connector: %@",o); if([o isKindOfClass: [NSNibControlConnector class]]) { NSString *tag = [o label]; NSRange colonRange = [tag rangeOfString: @":"]; NSUInteger location = colonRange.location; if(location == NSNotFound) { NSString *newTag = [NSString stringWithFormat: @"%@:",tag]; [o setLabel: (id)newTag]; } } if(dest == nibFilesOwner) { [o setDestination: [document filesOwner]]; } else if(dest == nil) { [o setDestination: [document firstResponder]]; } if(src == nibFilesOwner) { [o setSource: [document filesOwner]]; } else if(src == nil) { [o setSource: [document firstResponder]]; } // check src/dest for window template... if([src isKindOfClass: [NSWindowTemplate class]]) { id win = [src realObject]; [o setSource: win]; } if([dest isKindOfClass: [NSWindowTemplate class]]) { id win = [dest realObject]; [o setDestination: win]; } // skip any help connectors... if([o isKindOfClass: [NSIBHelpConnector class]]) { continue; } [document addConnector: o]; } // turn on custom classes. [NSClassSwapper setIsInInterfaceBuilder: NO]; // clear the changes, since we just loaded the document. [document updateChangeCount: NSChangeCleared]; result = YES; } } [NSClassSwapper setIsInInterfaceBuilder: NO]; } } NS_HANDLER { NSRunAlertPanel(_(@"Problem Loading"), [NSString stringWithFormat: @"Failed to load file. Exception: %@",[localException reason]], _(@"OK"), nil, nil); result = NO; } NS_ENDHANDLER; // return the result. return result; } - (void) unarchiver: (NSKeyedUnarchiver *)unarchiver willReplaceObject: (id)obj withObject: (id)newObj { // Nothing for now... } - (id) unarchiver: (NSKeyedUnarchiver *)unarchiver didDecodeObject: (id)obj { if([obj isKindOfClass: [NSWindowTemplate class]]) { GormClassManager *classManager = [document classManager]; Class clz ; NSString *className = [obj className]; if([classManager isCustomClass: className]) { className = [classManager nonCustomSuperClassOf: className]; } clz = [unarchiver classForClassName: className]; [obj setBaseWindowClass: clz]; } else if([obj respondsToSelector: @selector(setTarget:)] && [obj respondsToSelector: @selector(setAction:)] && [obj isKindOfClass: [NSCell class]] == NO) { // blank the target/action for all objects. [obj setTarget: nil]; [obj setAction: NULL]; } return obj; } @end gorm-1.3.1/Plugins/Nib/GNUmakefile0000644000175000017500000000245414327003122015672 0ustar heronheron# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make BUNDLE_NAME = Nib BUNDLE_EXTENSION = .plugin Nib_PRINCIPAL_CLASS = GormNibPlugin Nib_OBJC_FILES = GormNibPlugin.m \ GormNibWrapperBuilder.m \ GormNibWrapperLoader.m Nib_RESOURCE_FILES = Nib_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/bundle.make -include GNUmakefile.postamble gorm-1.3.1/Plugins/Nib/GormNibPlugin.m0000644000175000017500000000225514327003122016511 0ustar heronheron/* GormNibModule.m * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include #include #include "GormNibWrapperLoader.h" @interface GormNibPlugin : GormPlugin @end @implementation GormNibPlugin - (void) didLoad { [self registerDocumentTypeName: [GormNibWrapperLoader fileType] humanReadableName: @"Cocoa Nib" forExtensions: [NSArray arrayWithObjects: @"nib",nil]]; } @end gorm-1.3.1/Plugins/Nib/GNUmakefile.preamble0000644000175000017500000000130214327003122017447 0ustar heronheron# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) Nib_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.3.1/Plugins/GNUmakefile0000644000175000017500000000227414327003122015162 0ustar heronheron# GNUmakefile: main makefile for Gorm palettes # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Gregory John Casamento # Date: 2007 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. # PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make # # Each palette is a subproject # SUBPROJECTS = \ Gorm \ Nib \ GModel \ Xib -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/aggregate.make -include GNUmakefile.postamble gorm-1.3.1/Plugins/Gorm/0000755000175000017500000000000014360746517014032 5ustar heronherongorm-1.3.1/Plugins/Gorm/GormGormWrapperBuilder.m0000644000175000017500000002300614327003122020567 0ustar heronheron/* GormWrapperBuilder * * This class is a subclass of the NSDocumentController * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include @interface GormDocument (BuilderAdditions) - (void) prepareConnections; - (void) resetConnections; @end @implementation GormDocument (BuilderAdditions) /** * Start the process of archiving. */ - (void) prepareConnections { NSEnumerator *enumerator; id con; id obj; /* * Map all connector sources and destinations to their name strings. * Deactivate editors so they won't be archived. */ enumerator = [connections objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { NSString *name; obj = [con source]; name = [self nameForObject: obj]; [con setSource: name]; obj = [con destination]; name = [self nameForObject: obj]; [con setDestination: name]; } /* * Remove objects and connections that shouldn't be archived. */ NSMapRemove(objToName, (void*)[nameTable objectForKey: @"NSOwner"]); [nameTable removeObjectForKey: @"NSOwner"]; NSMapRemove(objToName, (void*)[nameTable objectForKey: @"NSFirst"]); [nameTable removeObjectForKey: @"NSFirst"]; /* Add information about the NSOwner to the archive */ NSMapInsert(objToName, (void*)[filesOwner className], (void*)@"NSOwner"); [nameTable setObject: [filesOwner className] forKey: @"NSOwner"]; /* * Set the appropriate profile so that we save the right versions of * the classes for older GNUstep releases. */ [filePrefsManager setClassVersions]; } /** * Stop the archiving process. */ - (void) resetConnections { NSEnumerator *enumerator; id con; id obj; /* * Restore class versions. */ [filePrefsManager restoreClassVersions]; /* * Restore removed objects. */ [nameTable setObject: filesOwner forKey: @"NSOwner"]; NSMapInsert(objToName, (void*)filesOwner, (void*)@"NSOwner"); [nameTable setObject: firstResponder forKey: @"NSFirst"]; NSMapInsert(objToName, (void*)firstResponder, (void*)@"NSFirst"); /* * Map all connector source and destination names to their objects. */ enumerator = [connections objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { NSString *name; name = (NSString*)[con source]; obj = [self objectForName: name]; [con setSource: obj]; name = (NSString*)[con destination]; obj = [self objectForName: name]; [con setDestination: obj]; } } @end @interface GSNibContainer (BuilderAdditions) - (id) initWithDocument: (GormDocument *)document; @end; @implementation GSNibContainer (BuilderAdditions) - (id) initWithDocument: (GormDocument *)document { if((self = [self init]) != nil) { NSDictionary *custom = [[document classManager] customClassMap]; // Create the container for the .gorm file... [topLevelObjects addObjectsFromArray: [[document topLevelObjects] allObjects]]; [nameTable addEntriesFromDictionary: [document nameTable]]; [connections addObjectsFromArray: [document connections]]; [visibleWindows addObjectsFromArray: [[document visibleWindows] allObjects]]; [deferredWindows addObjectsFromArray: [[document deferredWindows] allObjects]]; [customClasses addEntriesFromDictionary: custom]; } return self; } @end @interface GormGormWrapperBuilder : GormWrapperBuilder @end @implementation GormGormWrapperBuilder + (NSString *) fileType { return @"GSGormFileType"; } /** * Private method which iterates through the list of custom classes and instructs * the archiver to replace the actual object with template during the archiving * process. */ - (void) _replaceObjectsWithTemplates: (NSArchiver *)archiver { NSEnumerator *en = [[document nameTable] keyEnumerator]; GormClassManager *classManager = [document classManager]; GormFilePrefsManager *filePrefsManager = [document filePrefsManager]; id key = nil; // loop through all custom objects and windows while((key = [en nextObject]) != nil) { id customClass = [classManager customClassForName: key]; id object = [document objectForName: key]; id template = nil; if(customClass != nil) { NSString *superClass = [classManager nonCustomSuperClassOf: customClass]; template = [GSTemplateFactory templateForObject: object withClassName: customClass withSuperClassName: superClass]; } else if([object isKindOfClass: [NSWindow class]] && [filePrefsManager versionOfClass: @"GSWindowTemplate"] > 0) { template = [GSTemplateFactory templateForObject: object withClassName: [object className] withSuperClassName: [object className]]; } // if the template has been created, replace the object with it. if(template != nil) { // if the object is deferrable, then set the flag appropriately. if([template respondsToSelector: @selector(setDeferFlag:)]) { [template setDeferFlag: [document objectIsDeferred: object]]; } // if the object can accept autoposition information if([object respondsToSelector: @selector(autoPositionMask)]) { int mask = [object autoPositionMask]; if([template respondsToSelector: @selector(setAutoPositionMask:)]) { [template setAutoPositionMask: mask]; } } // replace the object with the template. [archiver replaceObject: object withObject: template]; } } } - (NSMutableDictionary *)buildFileWrapperDictionaryWithDocument: (GormDocument *)doc { NSArchiver *archiver = nil; NSMutableData *archiverData = nil; NSString *gormPath = @"objects.gorm"; NSString *classesPath = @"data.classes"; NSString *infoPath = @"data.info"; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; NSDictionary *substituteClasses = [palettesManager substituteClasses]; NSEnumerator *en = [substituteClasses keyEnumerator]; NSString *subClassName = nil; NSFileWrapper *fileWrapper = nil; NSMutableDictionary *fileWrappers = [super buildFileWrapperDictionaryWithDocument: doc]; if(fileWrappers) { GormClassManager *classManager = [document classManager]; GormFilePrefsManager *filePrefsManager = [document filePrefsManager]; GSNibContainer *container = nil; // // If we are a nib, currently, and it's not being saved using the Latest, then // flag an error. NOTE: The next time the gorm container version is // changed, it will be necessary to add to the list here... // if([[document fileType] isEqual: @"GSNibFileType"] && [[document filePrefsManager] isLatest] == NO) { NSRunAlertPanel(_(@"Incorrect gui version"), _(@"Nibs cannot be converted to gui-0.10.3 and older"), _(@"OK"), nil, nil, nil); return nil; } [document prepareConnections]; container = [[GSNibContainer alloc] initWithDocument: document]; /* * Set up archiving... */ archiverData = [NSMutableData dataWithCapacity: 0]; archiver = [[NSArchiver alloc] initForWritingWithMutableData: archiverData]; /* * Special gorm classes to their archive equivalents. */ [archiver encodeClassName: @"GormObjectProxy" intoClassName: @"GSNibItem"]; [archiver encodeClassName: @"GormCustomView" intoClassName: @"GSCustomView"]; while((subClassName = [en nextObject]) != nil) { NSString *realClassName = [substituteClasses objectForKey: subClassName]; [archiver encodeClassName: subClassName intoClassName: realClassName]; } /* * Initialize templates */ [self _replaceObjectsWithTemplates: archiver]; [archiver encodeRootObject: container]; RELEASE(archiver); // We're done with the archiver here.. /* * Add the gorm, info and classes files to the package. */ fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: archiverData]; [fileWrappers setObject: fileWrapper forKey: gormPath]; RELEASE(fileWrapper); fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: [classManager data]]; [fileWrappers setObject: fileWrapper forKey: classesPath]; RELEASE(fileWrapper); fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: [filePrefsManager data]]; [fileWrappers setObject: fileWrapper forKey: infoPath]; RELEASE(fileWrapper); // release the container... RELEASE(container); [document resetConnections]; } return fileWrappers; } @end gorm-1.3.1/Plugins/Gorm/GormGormPlugin.m0000644000175000017500000000226614327003122017103 0ustar heronheron/* GormGormPlugin.m * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include #include #include "GormGormWrapperLoader.h" @interface GormGormPlugin : GormPlugin @end @implementation GormGormPlugin - (void) didLoad { [self registerDocumentTypeName: [GormGormWrapperLoader fileType] humanReadableName: @"GNUstep Gorm" forExtensions: [NSArray arrayWithObjects: @"gorm",nil]]; } @end gorm-1.3.1/Plugins/Gorm/GormGormWrapperLoader.h0000644000175000017500000000214714327003122020405 0ustar heronheron/* GormNibWrapperLoader * * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_GORMWRAPPERLOADER #define GORM_GORMWRAPPERLOADER #include @class NSMutableArray, NSString; @interface GormGormWrapperLoader : GormWrapperLoader { NSMutableArray *_repairLog; id message; id textField; id panel; } @end #endif gorm-1.3.1/Plugins/Gorm/GNUmakefile0000644000175000017500000000246414327003122016067 0ustar heronheron# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make BUNDLE_NAME = Gorm BUNDLE_EXTENSION = .plugin Gorm_PRINCIPAL_CLASS = GormGormPlugin Gorm_OBJC_FILES = GormGormPlugin.m \ GormGormWrapperBuilder.m \ GormGormWrapperLoader.m Gorm_RESOURCE_FILES = Gorm_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/bundle.make -include GNUmakefile.postamble gorm-1.3.1/Plugins/Gorm/GNUmakefile.preamble0000644000175000017500000000130314327003122017644 0ustar heronheron# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) Gorm_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.3.1/Plugins/Gorm/GormGormWrapperLoader.m0000644000175000017500000004756214327003122020424 0ustar heronheron/* GormDocumentController.m * * This class is a subclass of the NSDocumentController * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include @interface GormGormWrapperLoader : GormWrapperLoader { NSMutableArray *_repairLog; id message; id textField; id panel; } @end @interface NSWindow (Level) - (int) windowLevel; @end; @implementation NSWindow (Level) - (int) windowLevel { return _windowLevel; } @end; @implementation GormGormWrapperLoader + (NSString *) fileType { return @"GSGormFileType"; } - (id) init { if ((self = [super init]) != nil) { _repairLog = [[NSMutableArray alloc] init]; } return self; } - (void) dealloc { RELEASE(_repairLog); [super dealloc]; } - (void) _openMessagePanel: (NSString *) msg { NSEnumerator *en = [_repairLog objectEnumerator]; id m = nil; if ([NSBundle loadNibNamed: @"GormInconsistenciesPanel" owner: self] == NO) { NSLog(@"Failed to open message panel..."); } else { [message setStringValue: msg]; while((m = [en nextObject]) != nil) { [textField insertText: m]; } [panel orderFront: self]; } [_repairLog removeAllObjects]; } /** * The sole purpose of this method is to clean up .gorm files from older * versions of Gorm which might have some dangling references. This method * may be added to as time goes on to make sure that it's possible * to repair old .gorm files. */ - (void) _repairFile { NSEnumerator *en = [[[document nameTable] allKeys] objectEnumerator]; NSString *key = nil; int errorCount = 0; NSString *errorMsg = nil; NSArray *connections = [document allConnectors]; id con = nil; NSRunAlertPanel(_(@"Warning"), _(@"You are running with 'GormRepairFileOnLoad' set to YES."), nil, nil, nil); /** * Iterate over all objects in nameTable. */ [document deactivateEditors]; while((key = [en nextObject]) != nil) { id obj = [[document nameTable] objectForKey: key]; /* * Take care of any dangling menus... */ if ([obj isKindOfClass: [NSMenu class]] && ![key isEqual: @"NSMenu"]) { id sm = [obj supermenu]; if (sm == nil) { NSArray *menus = findAll(obj); [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Found and removed a dangling menu %@, %@.\n", obj, key]]; [document detachObjects: menus]; [document detachObject: obj]; // Since the menu is a top level object, it is not retained by // anything else. When it was unarchived it was autoreleased, and // the detach also does a release. Unfortunately, this causes a // crash, so this extra retain is only here to stave off the // release, so the autorelease can release the menu when it should. RETAIN(obj); // extra retain to stave off autorelease... errorCount++; } } /* * If there is a view which is not associated with a name, give it one... */ if ([obj isKindOfClass: [NSWindow class]]) { NSWindow *w = (NSWindow *)obj; NSArray *allViews = allSubviews([obj contentView]); NSEnumerator *ven = [allViews objectEnumerator]; id v = nil; if ([w windowLevel] != NSNormalWindowLevel) { [w setLevel: NSNormalWindowLevel]; [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Found window %@ with an invalid level, correcting.\n", obj]]; errorCount++; } while((v = [ven nextObject]) != nil) { NSString *name = nil; id target = nil; SEL action = NULL; BOOL isAction = NO; // skip these... if ([v isKindOfClass: [NSMatrix class]]) { [_repairLog addObject: @"INFO: Skipping NSMatrix view.\n"]; continue; } else if ([v isKindOfClass: [NSScroller class]] && [[v superview] isKindOfClass: [NSTextView class]]) { [_repairLog addObject: @"INFO: Skipping NSScroller in an NSTextView.\n"]; continue; } else if ([v isKindOfClass: [NSScroller class]] && [[v superview] isKindOfClass: [NSBrowser class]]) { [_repairLog addObject: @"INFO: Skipping NSScroller in an NSTextView.\n"]; continue; } else if ([v isKindOfClass: [NSClipView class]] && [[v superview] isKindOfClass: [NSTextView class]]) { [_repairLog addObject: @"INFO: Skipping NSClipView in an NSTextView.\n"]; continue; } else if ([v isKindOfClass: [NSClipView class]] && [[v superview] isKindOfClass: [NSBrowser class]]) { [_repairLog addObject: @"INFO: Skipping NSClipView in an NSTextView.\n"]; continue; } if ((name = [document nameForObject: v]) == nil) { [document attachObject: v toParent: [v superview]]; name = [document nameForObject: v]; [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Found view %@ without an associated name, adding to the nametable as %@\n", v, name]]; if ([v respondsToSelector: @selector(stringValue)]) { [_repairLog addObject: [NSString stringWithFormat: @"INFO: View string value is %@\n",[v stringValue]]]; } errorCount++; } // Delete old target action settings if they are directly encoded. if ([v respondsToSelector: @selector(setTarget:)]) { target = [v target]; [v setTarget: nil]; // remove hard set targets or actions. [_repairLog addObject: [NSString stringWithFormat: @"ERROR: Removing hard set target %@ on object %@.\n", target, name]]; errorCount++; } // delete action... if ([v respondsToSelector: @selector(setAction:)]) { action = [v action]; [v setAction: NULL]; // remove hard set targets or actions. [_repairLog addObject: [NSString stringWithFormat: @"ERROR: Removing hard set action %@ on object %@.\n", NSStringFromSelector(action), name]]; errorCount++; } NSString *actionName = NSStringFromSelector(action); isAction = [actionName containsString: @":"]; // create control connector... if (action != NULL && target != nil && isAction) { NSNibControlConnector *con = [[NSNibControlConnector alloc] init]; [con setDestination: name]; [con setLabel: actionName]; [document addConnector: con]; [document touch]; [_repairLog addObject: [NSString stringWithFormat: @"FIX: Creating outlet connection for %@ on %@.\n", NSStringFromSelector(action), name]]; errorCount++; } // create outlet connector... if (action != NULL && target != nil && !isAction) { NSString *actionName = NSStringFromSelector(action); NSNibOutletConnector *con = [[NSNibOutletConnector alloc] init]; [con setDestination: name]; [con setLabel: actionName]; [document addConnector: con]; [document touch]; [_repairLog addObject: [NSString stringWithFormat: @"FIX: Creating control connection for %@ on %@.\n", NSStringFromSelector(action), name]]; errorCount++; } [_repairLog addObject: [NSString stringWithFormat: @"INFO: Checking view %@ with name %@\n", v, name]]; } } } [document reactivateEditors]; /** * Iterate over all connections... remove connections with nil sources. */ en = [connections objectEnumerator]; while((con = [en nextObject]) != nil) { id src = [con source]; id dst = [con destination]; if ([con isKindOfClass: [NSNibConnector class]]) { if (src == nil) { [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Removing bad connector with nil source: %@\n",con]]; [document removeConnector: con]; errorCount++; } else if ([src isKindOfClass: [NSString class]]) { id obj = [document objectForName: src]; if (obj == nil) { [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Removing bad connector with source that is not in the nametable: %@\n", con]]; [document removeConnector: con]; errorCount++; } } else if ([dst isKindOfClass: [NSString class]]) { id obj = [document objectForName: dst]; if (obj == nil) { [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Removing bad connector with destination that is not in the nametable: %@\n", con]]; [document removeConnector: con]; errorCount++; } } } } // report the number of errors... if (errorCount > 0) { errorMsg = [NSString stringWithFormat: @"%d inconsistencies were found, please save the file.",errorCount]; [self _openMessagePanel: errorMsg]; [document touch]; } } /** * Private method. Determines if the document contains an instance of a given * class or one of it's subclasses. */ - (BOOL) _containsKindOfClass: (Class)cls { NSEnumerator *en = [[document nameTable] objectEnumerator]; id obj = nil; while((obj = [en nextObject]) != nil) { if ([obj isKindOfClass: cls]) { return YES; } } return NO; } - (BOOL) loadFileWrapper: (NSFileWrapper *)wrapper withDocument: (GormDocument *) doc { BOOL result = NO; NS_DURING { NSData *data = nil; NSData *classes = nil; NSUnarchiver *u = nil; NSEnumerator *enumerator = nil; id con = nil; NSString *ownerClass, *key = nil; BOOL repairFile = [[NSUserDefaults standardUserDefaults] boolForKey: @"GormRepairFileOnLoad"]; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; NSDictionary *substituteClasses = [palettesManager substituteClasses]; NSEnumerator *en = [substituteClasses keyEnumerator]; NSString *subClassName = nil; NSUInteger version = NSNotFound; NSDictionary *fileWrappers = nil; GSNibContainer *container; NSArray *visible; NSArray *deferred; GormFilesOwner *filesOwner; GormFirstResponder *firstResponder; NSArray *objs; NSMutableArray *connections; NSDictionary *nt; id visObj; id defObj; if ([super loadFileWrapper: wrapper withDocument: doc]) { GormClassManager *classManager = [document classManager]; key = nil; if ([wrapper isDirectory]) { fileWrappers = [wrapper fileWrappers]; enumerator = [fileWrappers keyEnumerator]; while((key = [enumerator nextObject]) != nil) { NSFileWrapper *fw = [fileWrappers objectForKey: key]; if ([fw isRegularFile]) { NSData *fileData = [fw regularFileContents]; if ([key isEqual: @"objects.gorm"]) { data = fileData; } else if ([key isEqual: @"data.info"]) { [document setInfoData: fileData]; } else if ([key isEqual: @"data.classes"]) { classes = fileData; // load the custom classes... if (![classManager loadCustomClassesWithData: classes]) { NSRunAlertPanel(_(@"Problem Loading"), _(@"Could not open the associated classes file.\n" @"You won't be able to edit connections on custom classes"), _(@"OK"), nil, nil); } } } } } else if ([wrapper isRegularFile]) // if it's a file... here we need to handle legacy files. { NSString *classesFileName = [[[document documentPath] stringByDeletingPathExtension] stringByAppendingPathExtension: @"classes"]; // dump the contents to the data section... data = [wrapper regularFileContents]; classes = [NSData dataWithContentsOfFile: classesFileName]; // load the custom classes... if (![classManager loadCustomClassesWithData: classes]) { NSRunAlertPanel(_(@"Problem Loading"), _(@"Could not open the associated classes file.\n" @"You won't be able to edit connections on custom classes"), _(@"OK"), nil, nil); } } // check the data... if (data == nil || classes == nil) { result = NO; } else { /* * Create an unarchiver, and use it to unarchive the gorm file while * handling class replacement so that standard objects understood * by the gui library are converted to their Gorm internal equivalents. */ u = [[NSUnarchiver alloc] initForReadingWithData: data]; /* * Special internal classes */ [u decodeClassName: @"GSNibItem" asClassName: @"GormObjectProxy"]; [u decodeClassName: @"GSCustomView" asClassName: @"GormCustomView"]; /* * Substitute any classes specified by the palettes... */ while((subClassName = [en nextObject]) != nil) { NSString *realClassName = [substituteClasses objectForKey: subClassName]; [u decodeClassName: realClassName asClassName: subClassName]; } // turn off custom classes. [GSClassSwapper setIsInInterfaceBuilder: YES]; container = [u decodeObject]; if (container == nil || [container isKindOfClass: [GSNibContainer class]] == NO) { result = NO; } else { // turn on custom classes. [GSClassSwapper setIsInInterfaceBuilder: NO]; // // Retrieve the custom class data and refresh the classes view... // [classManager setCustomClassMap: [NSMutableDictionary dictionaryWithDictionary: [container customClasses]]]; // // Get all of the visible objects... // visible = [container visibleWindows]; visObj = nil; enumerator = [visible objectEnumerator]; while((visObj = [enumerator nextObject]) != nil) { [document setObject: visObj isVisibleAtLaunch: YES]; } // // Get all of the deferred objects... // deferred = [container deferredWindows]; defObj = nil; enumerator = [deferred objectEnumerator]; while((defObj = [enumerator nextObject]) != nil) { [document setObject: defObj isDeferred: YES]; } // // In the newly loaded nib container, we change all the connectors // to hold the objects rather than their names (using our own dummy // object as the 'NSOwner'. // filesOwner = [document filesOwner]; firstResponder = [document firstResponder]; ownerClass = [[container nameTable] objectForKey: @"NSOwner"]; if (ownerClass) { [filesOwner setClassName: ownerClass]; } [[container nameTable] setObject: filesOwner forKey: @"NSOwner"]; [[container nameTable] setObject: firstResponder forKey: @"NSFirst"]; // // Add entries... // [[document nameTable] addEntriesFromDictionary: [container nameTable]]; // // Add top level items... // objs = [[container topLevelObjects] allObjects]; [[document topLevelObjects] addObjectsFromArray: objs]; // // Add connections // connections = [document connections]; [connections addObjectsFromArray: [container connections]]; /* Iterate over the contents of nameTable and create the connections */ nt = [document nameTable]; enumerator = [connections objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { NSString *name; id obj; name = (NSString*)[con source]; obj = [nt objectForKey: name]; [con setSource: obj]; name = (NSString*)[con destination]; obj = [nt objectForKey: name]; [con setDestination: obj]; } /* * If the GSNibContainer version is 0, we need to add the top level objects * to the list so that they can be properly processed. */ version = [u versionForClassName: NSStringFromClass([GSNibContainer class])]; if (version == 0) { id obj; NSEnumerator *en = [nt objectEnumerator]; // get all of the GSNibItem subclasses which could be top level objects while((obj = [en nextObject]) != nil) { if ([obj isKindOfClass: [GSNibItem class]] && [obj isKindOfClass: [GSCustomView class]] == NO) { [[container topLevelObjects] addObject: obj]; } } [document setOlderArchive: YES]; } else if (version == 1) { // nothing else, just mark it as older... [document setOlderArchive: YES]; } /* * If the GSWindowTemplate version is 0, we need to let Gorm know that this is * an older archive. Also, if the window template is not in the archive we know * it was made by an older version of Gorm. */ version = [u versionForClassName: NSStringFromClass([GSWindowTemplate class])]; if (version == NSNotFound && [self _containsKindOfClass: [NSWindow class]]) { [document setOlderArchive: YES]; } /* * Rebuild the mapping from object to name for the nameTable... */ [document rebuildObjToNameMapping]; /* * Repair the .gorm file, if needed. */ if (repairFile) { [self _repairFile]; } NSDebugLog(@"nameTable = %@",[container nameTable]); // awaken all elements after the load is completed. enumerator = [nt keyEnumerator]; while ((key = [enumerator nextObject]) != nil) { id o = [nt objectForKey: key]; if ([o respondsToSelector: @selector(awakeFromDocument:)]) { [o awakeFromDocument: document]; } } // document opened... [document setDocumentOpen: YES]; // release the unarchiver.. RELEASE(u); // done... result = YES; } } } } NS_HANDLER { NSRunAlertPanel(_(@"Problem Loading"), [NSString stringWithFormat: @"Failed to load file. Exception: %@",[localException reason]], _(@"OK"), nil, nil); result = NO; } NS_ENDHANDLER; // if we made it here, then it was a success.... return result; } @end gorm-1.3.1/Plugins/Xib/0000755000175000017500000000000014360746517013650 5ustar heronherongorm-1.3.1/Plugins/Xib/GormXibWrapperLoader.m0000644000175000017500000003571014327003122020050 0ustar heronheron/* GormXibWrapperLoader * * Copyright (C) 2010, 2021 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2010, 2021 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include "GormXibWrapperLoader.h" /* * Forward declarations for classes */ @class GormNSWindow; /* * This allows us to retrieve the customClasses from the XIB unarchiver. */ @interface NSKeyedUnarchiver (Private) - (NSDictionary *) customClasses; - (NSDictionary *) decoded; @end /* * Xib loader... */ @implementation GormXibWrapperLoader + (NSString *) fileType { return @"GSXibFileType"; } - (id) _replaceProxyInstanceWithRealObject: (id)obj { if ([obj isKindOfClass: [GormObjectProxy class]]) { if ([[obj className] isEqualToString: @"NSApplication"]) { return [document filesOwner]; } if ([[obj className] isEqualToString: @"FirstResponder"]) { return [document firstResponder]; } } else if (obj == nil) { return [document firstResponder]; } return obj; } - (BOOL) loadFileWrapper: (NSFileWrapper *)wrapper withDocument: (GormDocument *) doc { BOOL result = NO; NS_DURING { GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; NSDictionary *substituteClasses = [palettesManager substituteClasses]; NSString *subClassName = nil; GormClassManager *classManager = [doc classManager]; if ([super loadFileWrapper: wrapper withDocument: doc] && [wrapper isDirectory] == NO) { NSData *data = [wrapper regularFileContents]; id docFilesOwner; // turn off custom classes... [NSClassSwapper setIsInInterfaceBuilder: YES]; // check the data... if (data == nil) { result = NO; } else { NSEnumerator *en; NSKeyedUnarchiver *u; // using superclass for its interface. // // Create an unarchiver, and use it to unarchive the xib file while // handling class replacement so that standard objects understood // by the gui library are converted to their Gorm internal equivalents. // u = [GSXibKeyedUnarchiver unarchiverForReadingWithData: data]; [u setDelegate: self]; // // Special internal classes // [u setClass: [GormObjectProxy class] forClassName: @"NSCustomObject"]; [u setClass: [GormObjectProxy class] forClassName: @"NSCustomObject5"]; [u setClass: [GormCustomView class] forClassName: @"NSCustomView"]; [u setClass: [GormWindowTemplate class] forClassName: @"NSWindowTemplate"]; [u setClass: [GormNSWindow class] forClassName: @"NSWindow"]; [u setClass: [IBUserDefinedRuntimeAttribute class] forClassName: @"IBUserDefinedRuntimeAttribute5"]; // // Substitute any classes specified by the palettes... // en = [substituteClasses keyEnumerator]; while ((subClassName = [en nextObject]) != nil) { NSString *realClassName = [substituteClasses objectForKey: subClassName]; Class substituteClass = NSClassFromString(subClassName); [u setClass: substituteClass forClassName: realClassName]; } // // decode // container = [u decodeObjectForKey: @"IBDocument.Objects"]; if (container == nil || [container isKindOfClass: [IBObjectContainer class]] == NO) { result = NO; } else { IBConnectionRecord *cr = nil; NSArray *rootObjects = nil; id xibFirstResponder = nil; rootObjects = [u decodeObjectForKey: @"IBDocument.RootObjects"]; nibFilesOwner = [rootObjects objectAtIndex: 0]; xibFirstResponder = [rootObjects objectAtIndex: 1]; docFilesOwner = [doc filesOwner]; // // set the current class on the File's owner... // if ([nibFilesOwner isKindOfClass: [GormObjectProxy class]]) { [docFilesOwner setClassName: [nibFilesOwner className]]; } // // add root objects... // en = [rootObjects objectEnumerator]; id obj = nil; while ((obj = [en nextObject]) != nil) { NSString *customClassName = nil; NSString *objName = nil; // skip the file's owner, it is handled above... if ((obj == nibFilesOwner) || (obj == xibFirstResponder)) { continue; } // // If it's NSApplication (most likely the File's Owner) // skip it... // if ([obj isKindOfClass: [GormObjectProxy class]]) { if ([[obj className] isEqualToString: @"NSApplication"]) { continue; } customClassName = [obj className]; } // // if it's a window template, then replace it with an // actual window. // id o = nil; if ([obj isKindOfClass: [GormWindowTemplate class]]) { NSString *className = [obj className]; BOOL isDeferred = [obj isDeferred]; BOOL isVisible = YES; // make the object deferred/visible... o = [obj nibInstantiate]; [doc setObject: o isDeferred: isDeferred]; [doc setObject: o isVisibleAtLaunch: isVisible]; // Add to the document... [doc attachObject: o toParent: nil]; // record the custom class... if ([classManager isCustomClass: className]) { customClassName = className; } } if ([rootObjects containsObject: obj] && obj != nil && [obj isKindOfClass: [GormWindowTemplate class]] == NO) { NSLog(@"obj = %@",obj); [doc attachObject: obj toParent: nil]; } if (customClassName != nil) { objName = [doc nameForObject: obj]; if (objName != nil) { [classManager setCustomClass: customClassName forName: objName]; } } } /* * Add custom classes... */ NSDictionary *customClasses = [u customClasses]; NSEnumerator *en = [customClasses keyEnumerator]; NSString *customClassName = nil; NSDictionary *decoded = [u decoded]; NSDebugLog(@"customClasses = %@", customClasses); while ((customClassName = [en nextObject]) != nil) { NSDictionary *customClassDict = [customClasses objectForKey: customClassName];; NSString *theId = [customClassDict objectForKey: @"id"]; NSString *parentClassName = [customClassDict objectForKey: @"parentClassName"]; id realObject = [decoded objectForKey: theId]; NSString *theName = nil; realObject = [self _replaceProxyInstanceWithRealObject: realObject]; NSDebugLog(@"realObject = %@", realObject); if ([doc containsObject: realObject]) { theName = [doc nameForObject: realObject]; NSDebugLog(@"Found name = %@ for realObject = %@", theName, realObject); } else { NSDebugLog(@"realObject = %@ has no name in document", realObject); continue; } if ([parentClassName isEqualToString: @"NSCustomObject5"]) { parentClassName = @"NSObject"; } NSDebugLog(@"Adding customClassName = %@ with parent className = %@", customClassName, parentClassName); [classManager addClassNamed: customClassName withSuperClassNamed: parentClassName withActions: nil withOutlets: nil isCustom: YES]; NSDebugLog(@"Assigning %@ as customClass = %@", theName, customClassName); [classManager setCustomClass: customClassName forName: theName]; } /* * add connections... */ en = [container connectionRecordEnumerator]; while ((cr = [en nextObject]) != nil) { IBConnection *conn = [cr connection]; if ([conn respondsToSelector: @selector(nibConnector)]) { NSNibConnector *o = [conn nibConnector]; if (o != nil) { id dest = [o destination]; id src = [o source]; // Replace files owner with the document files owner for loading... dest = [self _replaceProxyInstanceWithRealObject: dest]; src = [self _replaceProxyInstanceWithRealObject: src]; // Reset them... [o setDestination: dest]; [o setSource: src]; NSDebugLog(@"connector = %@", o); if([o isKindOfClass: [NSNibControlConnector class]]) { NSString *tag = [o label]; NSRange colonRange = [tag rangeOfString: @":"]; NSUInteger location = colonRange.location; if(location == NSNotFound) { NSString *newTag = [NSString stringWithFormat: @"%@:",tag]; [o setLabel: (id)newTag]; } [classManager addAction: [o label] forObject: src]; // For control connectors these roles are reversed... [o setSource: dest]; [o setDestination: src]; } else if ([o isKindOfClass: [NSNibOutletConnector class]]) { [classManager addOutlet: [o label] forObject: src]; } // check src/dest for window template... if ([src isKindOfClass: [NSWindowTemplate class]]) { id win = [src realObject]; [o setSource: win]; } if ([dest isKindOfClass: [NSWindowTemplate class]]) { id win = [dest realObject]; [o setDestination: win]; } // skip any help connectors... if ([o isKindOfClass: [NSIBHelpConnector class]]) { continue; } [doc addConnector: o]; } } } // turn on custom classes. [NSClassSwapper setIsInInterfaceBuilder: NO]; // clear the changes, since we just loaded the document. [doc updateChangeCount: NSChangeCleared]; result = YES; } } [NSClassSwapper setIsInInterfaceBuilder: NO]; } } NS_HANDLER { NSRunAlertPanel(_(@"Problem Loading"), [NSString stringWithFormat: @"Failed to load file. Exception: %@",[localException reason]], _(@"OK"), nil, nil); result = NO; } NS_ENDHANDLER; // return the result. return result; } - (void) unarchiver: (NSKeyedUnarchiver *)unarchiver willReplaceObject: (id)obj withObject: (id)newObj { // Nothing for now... } - (id) unarchiver: (NSKeyedUnarchiver *)unarchiver didDecodeObject: (id)obj { if ([obj isKindOfClass: [NSWindowTemplate class]]) { GormClassManager *classManager = [document classManager]; Class clz ; NSString *className = [obj className]; if([classManager isCustomClass: className]) { className = [classManager nonCustomSuperClassOf: className]; } clz = [unarchiver classForClassName: className]; // [obj setBaseWindowClass: clz]; } else if ([obj respondsToSelector: @selector(setTarget:)] && [obj respondsToSelector: @selector(setAction:)] && [obj isKindOfClass: [NSCell class]] == NO) { // blank the target/action for all objects. [obj setTarget: nil]; [obj setAction: NULL]; } return obj; } @end gorm-1.3.1/Plugins/Xib/GNUmakefile0000644000175000017500000000242214327003122015677 0ustar heronheron# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make BUNDLE_NAME = Xib BUNDLE_EXTENSION = .plugin Xib_PRINCIPAL_CLASS = GormXibPlugin Xib_OBJC_FILES = GormXibPlugin.m \ GormXibWrapperLoader.m Xib_RESOURCE_FILES = Xib_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/bundle.make -include GNUmakefile.postamble gorm-1.3.1/Plugins/Xib/GormXibWrapperLoader.h0000644000175000017500000000212414327003122020034 0ustar heronheron/* GormNibWrapperLoader * * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_NIBWRAPPERLOADER #define GORM_NIBWRAPPERLOADER #include #include @interface GormXibWrapperLoader : GormWrapperLoader { IBObjectContainer *container; id nibFilesOwner; } @end #endif gorm-1.3.1/Plugins/Xib/GNUmakefile.preamble0000644000175000017500000000130214327003122017461 0ustar heronheron# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) Nib_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.3.1/Plugins/Xib/GormXibPlugin.m0000644000175000017500000000225514327003122016535 0ustar heronheron/* GormXibModule.m * * Copyright (C) 2010 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2010 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include #include #include "GormXibWrapperLoader.h" @interface GormXibPlugin : GormPlugin @end @implementation GormXibPlugin - (void) didLoad { [self registerDocumentTypeName: [GormXibWrapperLoader fileType] humanReadableName: @"Cocoa Xib" forExtensions: [NSArray arrayWithObjects: @"xib",nil]]; } @end gorm-1.3.1/ChangeLog0000644000175000017500000155047614333116770013271 0ustar heronheron2022-11-10 Gregory John Casamento * GormCore/GormDocument.h: Add declaration for new method and improve documentation. * GormCore/GormDocument.m: Add new method openEditorForObject: withParentObject: add logic to exclude NSCell sublcasses from appearing in the toplevel editor. NSCells are a special class since they are not views, so they don't need the editor to highlight them in the way a subview does. 2022-03-29 Gregory John Casamento * Plugins/Xib/GormXibWrapperLoader.m: Use new version of custom class dictionary. 2022-03-26 Gregory John Casamento * GormCore/GormClassEditor.m: Add coercion to (id) to silence warning. * GormCore/GormDocument.m: Add editor when editing a class with a cell. This will allow Gorm to bring up an inspector. 2021-10-19 Gregory John Casamento * GormCore/GormNSSplitViewInspector.m: Correct crash happening in GormNSSplitViewInspector. 2021-07-22 Gregory John Casamento * GormCore/GormDocument.m: -[GormDocument awakeWithContext:] establish connection properly and catch the case where an object might be connected to terminate and redirect it to the deferredEndTesting: method. 2021-05-15 Gregory John Casamento * English.lproj/Gorm.rtfd/TXT.rtf: Add help file * GNUmakefile: Copy help file. * GormCore/GormClassEditor.m * GormCore/GormClassManager.m * GormCore/GormConnectionInspector.m: Code cleanup. * GormCore/GormDocument.h: Declaration of setFontMenu:/fontMenu * GormCore/GormDocument.m: Add setFontMenu:/fontMenu methods. Add outlet connector so that font menu us connected to the font manager when the model is loaded. * GormInfo.plist: Update version * Palettes/0Menus/MenusPalette.m: Use auto variable to hold the NSFontManager singleton. 2021-05-09 Gregory John Casamento * GormCore/GormClassManager.m: Code cleanup * GormCore/GormDocument.m: Code cleanup * GormCore/GormPrivate.m: Code cleanup * GormCore/GormWrapperLoader.m: Code cleanup. * GormLib/IBDocuments.h: Add some GS specific methods to the protocol. * Gorm.m: Remove unneeded ivar. * Plugins/Nib/GormNibWrapperLoader.m: Code cleanup. * Plugins/Xib/GormXibWrapperLoader.m: Add code to handle connections. * Resources/ClassInformation.plist: Add missing classes to this plist. 2021-05-09 Gregory John Casamento * ANNOUNCE * Documentation/news.texi * GormCore/GormFilePrefsManager.m * GormInfo.plist * NEWS * Version: Release 1.2.28 2021-04-22 Gregory John Casamento * GormCore/GormScrollViewEditor.m * GormCore/GormViewWithContentViewEditor.m * Palettes/2Controls/GormMatrixAttributesInspector.m: Fixes for issue #11 in Gorm. NSMatrix should now be selectable after the first click. Previously it was selecting the button after the first selection. 2021-03-27 Gregory John Casamento * English.lproj/Gorm.gorm/data.classes: Add action on class. * GormCore/GormGenericEditor.h: Add declaration * GormCore/GormViewWithContentViewEditor.h: * GormCore/GormViewWithContentViewEditor.m: Add implementation of groupSelectionInMatrix method. * Gorm.m: Add groupSelectionInMatrix: IBAction. 2020-04-17 14:45-EDT Gregory John Casamento * ANNOUNCE * Documentation/news.texi * GormInfo.plist * NEWS * Version: 1.2.26 2020-04-14 Riccardo Mottola * Palettes/2Controls/GormProgressIndicatorAttributesInspector.m Cast to NSProgressIndicator so correct isVertical method is choosen by compiler. Add check before casting. 2020-03-29 Fred Kiefer * GormCore/GormDocument.m: Remove NSNibConnector duplicating code in gui. Use [-attachObjects:toParent:] and [-detachObjects:] more often. 2020-01-10 Sergii Stoian * Palettes/2Controls/ControlsPalette.gorm, * Palettes/2Controls/GormNSFormInspector.gorm: update stepper size. * Palettes/2Controls/GormMatrixAttributesInspector.h, * Palettes/2Controls/GormMatrixAttributesInspector.m (_displayObject:resize): move object refresh code here. Use it where it's appropriate. * Palettes/2Controls/GormNSMatrixInspector.gorm: separate dimensions form into 2 for rows and columns; add steppers again. * Palettes/2Controls/GormButtonEditor.m (gormTitleRectForFrame:inView:): initialize `titleRect` to supress compiler warning. * Palettes/2Controls/GormMatrixAttributesInspector.m: ehnanced redrawing of object after dimension changes. * Palettes/2Controls/GormNSBoxInspector.gorm: ticks to offset sliders were added; "Stop on ticks only" set. 2020-01-09 Sergii Stoian * Palettes/2Controls/GormMatrixAttributesInspector.m: use ok: on editing finish of textfields objects. * Palettes/2Controls/GormMatrixAttributesInspector.m:(ok:): update window content view on object's dimensions changes. * Palettes/2Controls/GormButtonAttributesInspector.m (ok:): removed unused code. * Palettes/2Controls/GormNSButtonInspector.gorm/objects.gorm: added missed "Disclosure Round" bezel type to popup button. * Palettes/2Controls/GormButtonAttributesInspector.m (buttonTypeForObject:): use NSMomentaryPushInButton for "Momentary Push" type. (rever:): use tag to select button type. 2020-01-08 Sergii Stoian * Palettes/2Controls/GormButtonAttributesInspector.m: fixed "Momentary Light" button type value. * Palettes/2Controls/GormMatrixAttributesInspector.m (ok:): preserve tag and title of cells on "Match Prototype" button click. * Palettes/3Containers/GormTableViewAttributesInspector.m: apply changes only after editing has end. 2020-01-06 Sergii Stoian * Gorm.m: Inspector's shortcuts now work across the application. 2020-01-05 Sergii Stoian * Palettes/3Containers/GormNSTableViewInspector.gorm: tiny fix of inspector position. * Palettes/4Data/GormNSDateFormatterInspector.gorm, * Palettes/4Data/GormNSNumberFormatterInspector.gorm: fixed size and positions of UI elements. * Palettes/2Controls/ControlsPalette.m (willInspectObject:): create "Prototype" mode only if selected object's prototype exists. * Palettes/2Controls/GormMatrixAttributesInspector.m (ok:): fixed "Match Prototype" action - make cells as copy of prototype, select first cell. * GormCore/GormInspectorsManager.m (setCurrentInspector:): get width from Inspector's minSize when new minSize is about to be set. * Palettes/2Controls/GormMatrixAttributesInspector.m (revert:): update object in prototype matrix. * Palettes/2Controls/GormMatrixAttributesInspector.m (ok:): implemented "Match Prototype" button action - recreates object's cells. * Palettes/2Controls/GormButtonAttributesInspector.m (ok:), * Palettes/2Controls/GormButtonAttributesInspector.m (revert:): adopt methods to be usable for objects with prototype. This inspector can be called in "Prototype" mode. * Palettes/2Controls/ControlsPalette.m: implement adding "Prototype" mode to Inspector's popup button for objects with prototype available (mainly NSMatrix). * Palettes/2Controls/GormNSMatrixInspector.gorm: reestablish connection to action for "Match Prototype" button. * Palettes/2Controls/GormNSButtonInspector.gorm: set enabled and not selected state "Bordered" button. 2020-01-04 Sergii Stoian * English.lproj/GormConnectionInspector.gorm: fixed window size to prevent inspector panel resizing while switching from the other standard-sized inspectors. * Palettes/4Data/GormNSComboBoxInspector.gorm: fixed sizes and positions of elements. * GormCore/GormInspectorsManager.m (setCurrentInspector:): increase height of inspector panel frame if inspector taller then previous; set minimum size accordingly. * Palettes/2Controls/GormNSMatrixInspector.gorm: made inspector content taller to look better and as a test case for change in GorInspectorManager. 2019-12-27 Sergii Stoian * GormCore/GormConnectionInspector.m (ok:): return on problem with making connection, don't mark document as edited; update "Outlets" browser after makeing changes to connections - updates "connected" image on selected outlet. * Palettes/2Controls/GormNSBoxInspector.gorm, * Palettes/2Controls/GormNSButtonInspector.gorm, * Palettes/2Controls/GormNSCellInspector.gorm, * Palettes/2Controls/GormNSColorWellInspector.gorm, * Palettes/2Controls/GormNSMatrixInspector.gorm, * Palettes/2Controls/GormNSPopUpButtonInspector.gorm, * Palettes/2Controls/GormNSProgressIndicatorInspector.gorm, * Palettes/2Controls/GormNSSliderInspector.gorm, * Palettes/2Controls/GormNSStepperInspector.gorm, * Palettes/2Controls/GormNSTextFieldInspector.gorm: sizing and positions fixes. 2019-12-27 Sergii Stoian * Palettes/2Controls/GormNSFormInspector.gorm: sizes and positions cleanup and fix. * Palettes/3Containers/GormNSBrowserInspector.gorm: fixed initial first responder. * Palettes/1Windows/GormNSWindowSizeInspector.gorm: fixed initial first responder. * Palettes/1Windows/GormDrawerAttributesInspector.gorm: fixed autosizing. * English.lproj/GormObjectInspector.gorm: fixed initial first responder setting. * English.lproj/GormScrollViewAttributesInspector.gorm: fixed default background color. * English.lproj/GormConnectionInspector.gorm: fixed initial first responder setting. * English.lproj/GormClassInspector.gorm, * English.lproj/GormClassPanel.gorm, * English.lproj/GormScrollViewAttributesInspector.gorm, * English.lproj/GormSetName.gorm, * English.lproj/GormSoundInspector.gorm, * Palettes/4Data/GormNSImageViewInspector.gorm, * Palettes/4Data/GormNSTextViewInspector.gorm: sizing and positioning fixes. * Palettes/3Containers/GormNSTableColumnInspector.gorm: fixed textfields height. * GormCore/GormConnectionInspector.m: use custom cell class for "Outlets" browser to draw dimple image on connected outlets. * Palettes/3Containers/GormNSTableColumnSizeInspector.gorm: adjust sizing and position of elements. * Palettes/3Containers/GormTableColumnSizeInspector.m: apply changes only after editing has end. * Palettes/3Containers/inspectors.m: added missed method to return table column sizer class. 2019-12-26 Sergii Stoian * Palettes/3Containers/GormNSTableViewInspector.gorm: fxed sizing and positioning; rearrange inspector elements. * Palettes/3Containers/GormNSTableColumnInspector.gorm: fxed sizing and positioning; rearrange inspector elements. * Palettes/3Containers/GormNSBrowserInspector.gorm/objects.gorm: fixed vertical offset of option butttons. * Palettes/3Containers/GormBrowserAttributesInspector.m (ok:): reduce number of digits of fraction part to 2. * Palettes/3Containers/GormNSBrowserInspector.gorm: fixed sizing and postioning; remove delegate from textfields - attribute is set only after user finished editing (pressed Return or Tab key). * Palettes/1Windows: Window Attributes Inspecor: - Fixed size, postion and autosizing of elements. - "Autosave Name" form was moved into "Window Size Inspector". - "Minwindow Icon Name": removed clear button, form converted into texfield. Window Size Inspector: - "Size" form was splitted into 2 forms to place them horizontally. - "Size" group was renamed into "Frame". - "Autosave Name" form was added and converted into textfield. - Fixed size, postion and autosizing of elements. NOTE: "Autosave Name" field is not saved into model file - is not encoded? * Palettes/2Controls/GotmNSBoxInspector.gorm: minor fixes. * Palettes/2Controls/GormButtonInspector.gorm: recreate broken "Type" popup button. * Palettes/2Controls/GormButtonAttributesInspector.m (ok:): set "Key:" textfield value to after selecting popup button items. 2019-12-23 Sergii Stoian * Palettes/2Controls/GormNSBoxInspector.gorm: adjust size and positions of elements. * Menu Item Inspector: changed size and positions of UI elements; redesigned key equivalent selection - user can specify either character in text field or special(function) key from popup button; added check for length of key equivalent - only 1 character length allowed. * Palettes/2Controls: return code for NSPopUpButton adding programmatically into palette. 2019-12-23 Sergii Stoian * Palettes/2Controls/ControlsPalette.gorm: adjust some controls position slightly. * Palettes/0Menus/GormMenuAttributesInspector.gorm: fixed positioning and autosizing. * English.lproj/GormConnectionInspector.gorm: adjust splitview height after last change. * GormCore/GormInspectorsManager.m (setCurrentInspector:): do not resize inspector panel on inspector change. * Fixed guideline on/off menu item handling after rearrangement. * GormCore/GormPalettesManager.m (resizeWithOldSuperviewSize:): new method. Fixes correct placement of palette view on panel resize. (init): disable auroresizing of dragView. * GormCore/GormPalettesManager.m (loadPalette): commented out code that leads to issues with scrolling (although, code supposed to fix issues with scrolling :(). * GormCore/GormPalettesManager.m (init): autohide scroller of selection ScrollView. * Palettes/3Containers/ContainersPalette.m: fixed typo. * Palette Panel: set window title from original window title of selected palette; window titles were added/fixed for palettes. * GormCore/GormPalettesManager.m (init): made dragView is not autoresizable to omit problems with palettes visibility. * Palettes/4Data/DataPalette.m (finishInstantiate): ScrollView was made not resizable; move controls in right column slightly to the right. * Palettes/2Controls/ControlsPalette.m (finishInstantiate) do not add popup button - it's already in model file of palette. * Controls Palette: minor fixes to controls position and size. * Menus Palette: adjust position of menu image centered in dragged view. * GormPalettesManager: palettes selection icons now display selection with white color of selected icon background; removed arrows from scroller; icons are replaced to make selection color visible. 2019-12-21 Sergii Stoian * Rearrangement of main menu items: - "Layout" renamed into "Format"; - "Font" submenu was added into "Format"; - "Group" and "Page Layout" were moved into "Format"; - shortcuts 'p' and 'i' were removed from "Palletes..." and "Inspector..." because it's standard shortcuts for "Italic" and "Print" menu actions; * ViewSizeInspector: fixed size, position and autosizing properties. * CustomClassInspector: fixed size, position and autosizing properties. * ConnectionInspector: removed horizontal scroller from "Outlets" browser; adjusted split view frame. * DummyInspector: change text to "Not Applicable" and font size to 18. * CustomClassInspector: autosizing fixes. * ImageInspector: use MSImageView from palette instead of CustomView; autosizing fixes. * ControlsPalette: rearrange controls. * PalettePanel: fixed size and autosize attributes (model file is not used yet). * ObjectInspector: fixed size, position, autosize * NSSplitViewInspector: fixed size, position, autosize; refuse first responder on matrix cells. 2019-07-26 Fred Kiefer * Add .gitignore. * GormCode/GormViewWithContentViewEditor.m: Correct return type of compare function. * Palettes/2Controls/GormFormAttributesInspector.m, * Palettes/2Controls/GormMatrixAttributesInspector.m: Add missing include. * GormCore/GormInspectorsManager.m: Disable menu update during bulk change. 2019-02-07 02:15-EDT Gregory John Casamento * ANNOUNCE * Documentation/news.texi * GormInfo.plist * NEWS * Version: 1.2.24 2019-01-25 Fred Kiefer * GormCore/GormDocument.m: Fix wrong string type in David Chisnall fix for the new libobjc. 2015-11-05 20:40-EST Gregory John Casamento * GormCore/GormWindowTemplate.m: in baseWindowClass return GormNSPanel if _windowClass is NSPanel. This should probably use GormPalettesManager substituteClasses at some point, but for now this is a workable solution. 2015-05-20 06:19-EDT Gregory John Casamento * ANNOUNCE * NEWS * Version: 1.2.22 2015-05-20 06:16-EDT Gregory John Casamento * ChangeLog * Documentation/news.texi * English.lproj/GormPrefGeneral.gorm * GormCore/GormFilePrefsManager.m * GormInfo.plist * GormPrefs/GormGeneralPref.m * Plugins/Gorm/GormGormWrapperLoader.m: Remove calls to repairFile: as some of the logic in it is outdated and could cause issues with perfectly good gorm files. Disabling pending further development. * Version 2015-05-11 Gregory John Casamento * Palettes/3Containers/GormTabViewAttributesInspector.m * Palettes/3Containers/GormBrowserAttributesInspector.m * GormCore/GormFilePrefsManager.m Use cast to larger type for string formatting to allow compilation on Solaris. 2015-03-02 00:04-EST Gregory John Casamento * GormObjCHeaderParser/NSScanner+OCHeaderParser.m * GormObjCHeaderParser/OCHeaderParser.m: Fix for crash seen after last commit. 2015-03-02 00:04-EST Gregory John Casamento * GormObjCHeaderParser/OCHeaderParser.m: Add _stripRedundantStatements method which eliminates excess empty statements from the code which could confuse the parser. 2015-02-22 21:21-EST Gregory John Casamento * English.lproj/GormPreferences.gorm: Removed from pulldown menu * English.lproj/GormPrefGuideline.gorm: Added colorwell and connections. * GormPrefs/GNUmakefile: Removed classes. * GormPrefs/GormColorsPref.h * GormPrefs/GormColorsPref.m: Removed. * GormPrefs/GormGuidelinePref.h * GormPrefs/GormGuidelinePref.m: Added color well... * GormPrefs/GormPrefController.m: Removed view from case statement 2014-10-28 03:08-EDT Gregory John Casamento * English.lproj/Gorm.gorm: Change connection to point to new selectAll: * GormCore/GormWrapperLoader.m: Fix for bug #42782 * Gorm.m: Add select all method. 2014-08-31 Fred Kiefer * GormCore/GormDocument.m: Rewrite fix for bug #39072 to stop leaking memory. 2014-07-21 Fred Kiefer * GormCore/GormImage.m: Fix the init issue for the second method as well. Small cleanup. 2014-05-31 10:58-EDT Gregory John Casamento * GormCore/GormDocumentController.h: add declaration of openDocumentForContentsOfURL: * GormCore/GormDocumentController.m: add implementation of openDocumentForContentsOfURL: * GormCore/GormDocument.m: Add implementation of revertContentsOfURL:.. Fix bug#28644 2014-05-30 Sebastian Reitenbach * Palettes/2Controls/GormColorWellAttributesInspector.h fix typo in header guard * Palettes/2Controls/GormFormAttributesInspector.m fix some format string warnings 2014-05-28 Riccardo Mottola * GormCore/GormClassInspector.m * GormCore/GormClassManager.m * GormCore/GormFilePrefsManager.m * GormCore/GormInspectorsManager.m Explicitely cast NSIntegers to avoid warning and problems. 2014-05-27 03:26-EDT Gregory John Casamento * GormCore/GormInspectorsManager.m * Palettes/2Controls/GormMatrixAttributesInspector.h * Palettes/2Controls/GormMatrixAttributesInspector.m * Palettes/2Controls/GormNSMatrixInspector.gorm: Fix for bug #28646. 2014-05-27 03:15-EDT Gregory John Casamento * GormCore/GormDocument.m: Fix bug #39072: add retain to prevent segmentation fault when renaming object in document view. 2014-05-26 19:25-EDT Gregory John Casamento * GormObjCHeaderParser/OCIVarDecl.m * GormObjCHeaderParser/OCIVar.m: Fix for bug#30837. 2014-05-26 18:32-EDT Gregory John Casamento * Palettes/2Controls/GormFormAttributesInspector.h * Palettes/2Controls/GormFormAttributesInspector.m * Palettes/2Controls/GormNSFormInspector.gorm: Accept patch on bug#38477 by Sergei Golovin. Allows user to modify the number of items in an NSForm using the inspector. 2014-01-19 Fred Kiefer * Palettes/2Controls/GormButtonAttributesInspector.h: Use NSButton instead of the non-existign NSSwitch. * GormCore/GormViewKnobs.m: Replace DPS calls. Only realloc rect lists if needed. * Plugins/Gorm/GormGormWrapperBuilder.m, * Palettes/2Controls/GormPopUpButtonAttributesInspector.m, * Palettes/2Controls/GormButtonEditor.m: Remove compiler warnings. 2014-01-19 Fred Kiefer * GormCore/GormResourceManager.m, * GormCore/GormResource.m, * GormCore/GormOutlineView.m, * GormCore/GormObjectEditor.m, * GormCore/GormClassManager.m: Remove compiler warnings. 2014-01-19 Fred Kiefer * GormInfo.plist: Don't claim to be able to write XIB files. 2013-12-31 Fred Kiefer * GormCore/GormResourceManager.m (-resourcePasteboardTypes): Add IBMenuPboardType to work around menus not being draggable. 2013-11-04 10:03-EST Gregory John Casamento * GormCore/GormBoxEditor.m * GormCore/GormClassEditor.m * GormCore/GormClassInspector.m * GormCore/GormClassManager.m * GormCore/GormControlEditor.m * GormCore/GormCustomView.m * GormCore/GormDocument.m * GormCore/GormDocumentWindow.m * GormCore/GormFilePrefsManager.h * GormCore/GormFilePrefsManager.m * GormCore/GormFunctions.h * GormCore/GormFunctions.m * GormCore/GormInspectorsManager.m * GormCore/GormInternalViewEditor.m * GormCore/GormMatrixEditor.h * GormCore/GormMatrixEditor.m * GormCore/GormNSPanel.h * GormCore/GormNSPanel.m * GormCore/GormNSWindow.h * GormCore/GormNSWindow.m * GormCore/GormObjectEditor.m * GormCore/GormObjectInspector.m * GormCore/GormOutlineView.m * GormCore/GormPrivate.h * GormCore/GormPrivate.m * GormCore/GormResourceEditor.m * GormCore/GormResourceManager.m * GormCore/GormSoundView.m * GormCore/GormSplitViewEditor.m * GormCore/GormStandaloneViewEditor.m * GormCore/GormViewEditor.m * GormCore/GormViewKnobs.m * GormCore/GormViewWithContentViewEditor.m * GormCore/GormViewWithSubviewsEditor.m: int -> NSInteger transition. 2013-10-26 Fred Kiefer * Plugins/Nib/GormNibWrapperBuilder.m (-initWithDocument:): Don't store nil values in maps. 2013-10-26 Riccardo Mottola * Plugins/Nib/GormNibWrapperBuilder.m Write warnings of respectively the proper nil object. 2013-10-19 Sebastian Reitenbach * GormCore/GormClassEditor.m * GormCore/GormFilePrefsManager.m * Palettes/3Containers/GormBrowserAttributesInspector.m * Palettes/3Containers/GormTabViewAttributesInspector.m fix format strings 2013-10-14 Eric Wasylishen * Palettes/2Controls/GormNSMatrixInspector.gorm: * Palettes/2Controls/GormNSSliderInspector.gorm: * Palettes/2Controls/GormNSBoxInspector.gorm: * Palettes/2Controls/GormNSTextFieldInspector.gorm: * Palettes/2Controls/GormNSPopUpButtonInspector.gorm: * Palettes/2Controls/GormNSButtonInspector.gorm: * Palettes/2Controls/ControlsPalette.gorm: * Palettes/2Controls/GormNSFormInspector.gorm: * Palettes/2Controls/GormNSCellInspector.gorm: * Palettes/0Menus/GormMenuAttributesInspector.gorm: * Palettes/3Containers/GormNSTableColumnSizeInspector.gorm: * Palettes/3Containers/GormTabViewInspector.gorm: * Palettes/3Containers/GormNSTableViewInspector.gorm: * Palettes/3Containers/GormNSBrowserInspector.gorm: * Palettes/1Windows/GormNSWindowSizeInspector.gorm: * Palettes/1Windows/GormNSWindowInspector.gorm: * Palettes/4Data/GormNSComboBoxInspector.gorm: * Palettes/4Data/GormNSImageViewInspector.gorm: * Palettes/4Data/GormNSTextViewInspector.gorm: Turn off "Draws Background" on NSMatrix and NSForms; there's no need to draw backgrounds and it may look bad with themes. 2013-07-03 Niels Grewe * InterfaceBuilder/InterfaceBuilder.h: Fix incorrect header inclusion guard. 2013-06-05 Riccardo Mottola * GormCore/GormSetNameController.h * GormCore/GormSetNameController.m Make runModal return NSInteger 2013-05-26: Sebastian Reitenbach * Palettes/3Containers/GormNSOutlineView.m * GormCore/GormMatrixEditor.m * GormCore/GormClassEditor.m some int -> NSInteger and float -> CGFloat transitions spotted by libobjc2 runtime in debug mode 2013-04-14 13:19-EDT Gregory John Casamento * ANNOUNCE * Documentation/news.texi * GormInfo.plist * NEWS * Version: 1.2.20 2013-03-06 01:44-EST Gregory John Casamento * GormCore/GormViewEditor.m: -handleNotification: touch document when text editing is completed. Fixes for bug #28643. 2013-03-06 00:05-EST Gregory John Casamento * GormCore/GormDocument.m: Touch document when aligning views in -alignSelectedObjects:. * Palettes/4Data/DataPalette.m: -depositViewResourceFromPasteboard:.. touch document when adding formatter. * Palettes/4Data/GormDateFormatterAttributesInspector.m * Palettes/4Data/GormNumberFormatterAttributesInspector.m: -ok: touch document when changing formatter. Fixes for bug #28643. 2013-03-05 20:23-EST Gregory John Casamento * GormCore/GormInternalViewEditor.m: touch document when font is changed in changeFont: 2013-02-25 15:07-EST Gregory John Casamento * GormCore/GormWindowEditor.m: Second try to fix the previous issue. 2013-02-25 04:14-EST Gregory John Casamento * GormCore/GormWindowEditor.m: Check the _firstResponder on the window to see if it is the same as the _initialFirstResponder. If it is, set it to nil as well in -unsetInitialFirstResponder:. 2013-02-23 Sebastian Reitenbach * GormCore/GormObjectEditor.h * GormCore/GormObjectEditor.m * GormCore/GormPalettesManager.m * GormCore/GormSplitViewEditor.m * GormCore/GormViewEditor.m * GormCore/GormViewWithSubviewsEditor.m * GormCore/GormWindowEditor.m * Palettes/0Menus/GormMenuEditor.m * Palettes/3Containers/GormTableViewEditor.m * Palettes/4Data/GormTextViewEditor.m * adapt to -gui changes for DnD 2013-02-16 20:10-EST Gregory John Casamento * GormCore/GormViewEditor.m: -editedObjectFrameDidChange: alter code so that allViews under the editor are collected and set to not post notifications. This change prevents a notification/setFrame cycle which was occurring when certain controls were added as subviews to NSTabView or NSBox. 2013-01-26 20:42-EST Gregory John Casamento * GormCore/GormDocument.m: Corrected issue with adding cells to object tree so that the can be properly addressed in connections. Change to -attachObject:toParent:. 2013-01-13 17:45-EST Gregory John Casamento * GormCore/GormViewSizeInspector.m: Correct bug#30886: Gorm should change the document to edited when changing resize attributes. 2013-01-13 16:57-EST Gregory John Casamento * Palettes/2Controls/GormColorWellAttributesInspector.m: NSColorWell inspector was showing inverted settings after the last change. Corrected this in -ok: and -revert: bug#32827 2012-12-12 12:33-EST Gregory John Casamento * GormCore/GormViewEditor.m: Prevent recursive frame/bounds notifications when resizing a view. * Plugins/Nib/GormNibWrapperLoader.m: Preliminary changes to support reading nibs as files instead of packages. 2012-07-25 22:29-EDT Gregory John Casamento * GormCore/GormDocument.m: Apply patch suggested by Sebastian. This appears to correct an issue seen by Sergey causing an out of memory error. 2012-07-12: Sebastian Reitenbach * GormLib/IBObjectAdditions.m * revert change from 2012-04-20, to fix Connection Inspector on at least a couple of *BSD 2012-06-19 00:44-EDT Gregory John Casamento * ANNOUNCE * Documentation/news.texi * GormCore/GormDocument.m * GormCore/GormFilePrefsManager.m * GormCore/GormObjectEditor.m * GormCore/GormViewEditor.m * GormCore/GormViewWindow.m * GormInfo.plist * NEWS * Version: 1.2.18 2012-05-01 23:25-EDT Gregory John Casamento * GormCore/GormDocument.m * GormCore/GormFilePrefsManager.m * GormCore/GormStandaloneViewEditor.m * GormCore/GormViewWithContentViewEditor.m * GormCore/GormWindowTemplate.m * Palettes/0Menus/GormMenuEditor.m * Palettes/0Menus/MenusPalette.m: Eliminate as many of the remaining warnings in the code as possible. 2012-04-20 18:53-EDT Gregory John Casamento * GormCore/GormResourceEditor.m: Correct compiler warnings. 2012-04-20 12:16-EDT Gregory John Casamento * Palettes/2Controls/GormNSPopUpButton.h * Palettes/2Controls/GormNSPopUpButton.m: Added new files for Gorm subclass of NSPopUpButton. 2012-04-20 12:03-EDT Gregory John Casamento * GormCore/GormCustomView.m * GormCore/GormFilesOwner.m * GormCore/GormFunctions.m * GormObjCHeaderParser/OCHeaderParser.m * Palettes/2Controls/ControlsPalette.m * Palettes/2Controls/GNUmakefile * Palettes/2Controls/GormPopUpButtonEditor.m * Palettes/3Containers/GormNSBrowser.m * Palettes/4Data/GormImageViewAttributesInspector.m: Correct compiler warnings found by clang. 2012-04-20 10:34-EDT Gregory John Casamento * GormLib/IBObjectAdditions.m * GormObjCHeaderParser/OCClass.m * GormObjCHeaderParser/OCHeaderParser.m * GormObjCHeaderParser/OCIVarDecl.m * GormObjCHeaderParser/OCIVar.m * GormObjCHeaderParser/OCMethod.m * GormObjCHeaderParser/ParserFunctions.m: Fix compiler warnings when building with clang. 2012-04-20 02:11-EDT Gregory John Casamento * GormCore/GormClassInspector.m * GormCore/GormClassManager.m * GormCore/GormDocument.m * GormCore/GormGenericEditor.m * GormCore/GormObjectInspector.m * GormCore/GormOutlineView.m * GormCore/GormPrivate.h * GormCore/GormPrivate.m * Palettes/0Menus/GormMenuEditor.m * Palettes/1Windows/GormDrawerAttributesInspector.m * Palettes/3Containers/GormTableColumnAttributesInspector.m * Palettes/3Containers/GormTableViewEditor.m * Palettes/4Data/DataPalette.m * Palettes/4Data/GormNumberFormatterAttributesInspector.m: Change int/unsigned int to NSInteger and NSUInteger to address 64-bit issues. Patch by Sebastian Reitenbach * Plugins/Gorm/GormGormWrapperLoader.m * Plugins/Nib/GormNibWrapperBuilder.m * Plugins/Nib/GormNibWrapperLoader.m * Plugins/Xib/GormXibWrapperLoader.m: Clean up warnings found by clang. 2012-04-05 14:38-EDT Gregory John Casamento * GormCore/GormMatrixEditor.m: Change modifier to Ctrl+Shift since these two keys are never remapped and Alt does not always exist on european and some US keyboards. This change should address bug#36096. 2012-03-17 German A. Arias * Gorm.m: Added method -applicationShouldTerminateAfterLastWindowClosed: to avoid terminate Gorm when the user close the last window but have documents minimized at taskbar. 2012-02-19 18:58-EST Gregory John Casamento * Version * GormInfo.plist * GormCore/GormFilePrefsManager.m: Update version information. 2012-02-15 17:59-EST Gregory John Casamento * GormCore/GormPrivate.m: Remove poseAs: override. Fix for compilation with ObjC2.0 compilers. * Palettes/3Containers/GormNSTableColumnInspector.gorm: Correction for tableView column identifiers. Delegate wasn't connected. 2012-02-06 02:02-EST Gregory John Casamento * Version: 1.2.16 * GormInfo.plist * Documentation/news.texi: Update version and documentation. 2012-02-06 02:02-EST Gregory John Casamento * GormCore/GormClassInspector.m * GormCore/GormCustomClassInspector.h * GormCore/GormFilesOwner.m * GormCore/GormOutlineView.m 2012-01-15 Eric Wasylishen * English.lproj/GormClassInspector.gorm: Re-save with the last change, so the outlet/action table data cells are editable. 2012-01-15 Eric Wasylishen * Palettes/3Containers/GormTableColumnAttributesInspector.m: Set editable state of the data cell to match editable state of the column. (NSTableView now refuses to edit non-editable data cells in editable columns.) 2012-01-15 Eric Wasylishen * Palettes/3Containers/GormTabViewAttributesInspector.m: Add retain/release so tab view item isn't deallocated while being moved from one position to another. 2011-11-28 Gregory John Casamento * Palettes/0Menus/GormMenuAttributesInspector.m * Palettes/0Menus/GormMenuInspectors.m: Correction for bug #33457, title change should now cause document to be modified. 2011-10-29 Gregory John Casamento * Plugins/Xib/GormXibWrapperLoader.m * Plugins/Nib/GormNibWrapperLoader.m: Include GormWindowTemplate from GormCore instead of locally. * Plugins/Nib/GormWindowTemplate.h * Plugins/Nib/GormWindowTemplate.m: Move to GormCore. * Plugins/Nib/GNUmakefile: Remove GormWindowTemplate from here. * GormCore/GNUmakefile: Add GormWindowTemplate.[hm] here. 2011-11-04 Eric Wasylishen * GormCore/GormFunctions.m: change float to CGFloat to match change in gui of -[NSColor getRed:green:blue:alpha:] method 2011-11-03 Fred Kiefer * Plugins/Xib/GormXibWrapperLoader.h, * Plugins/Xib/GormXibWrapperLoader.m: Get XIB files to be loaded. 2011-10-29 Gregory John Casamento * Palettes/3Containers/GormTableColumnAttributesInspector.h: Add sortMatrix and sortOrder to class for inspector. * Palettes/3Containers/GormTableColumnAttributesInspector.m: Add logic to ok:/revert: to handle sort descriptors. * Palettes/3Containers/GormTableColumnAttributesInspector.gorm: Add fields and popupbutton for sortKey, sortSelector and sortOrder removed previous changes and moved them over to these classes since they didn't belong in the NSTableView inspector. 2011-10-26 Gregory John Casamento * Palettes/3Containers/GormTableViewAttributesInspector.h: Add sortMatrix and sortOrder to class for inspector. * Palettes/3Containers/GormTableViewAttributesInspector.m: Add logic to ok:/revert: to handle sort descriptors. * Palettes/3Containers/GormNSTableViewInspector.gorm: Add form and popupbutton for sortMatrix and sortOrder 2011-10-25 Fred Kiefer * Palettes/0Menu/GormMenuEditor.m: Protect against the menu parent being a popup button cell. * Plugins/Xib/GormXibWrapperLoader.m: Move additional methods into gui and correct handling of file owner. 2011-09-15 Fred Kiefer * GormCore/GormPrivate.h ([NSDateFormatter +initialize], [NSNumberFormatter +initialize]): Remove these dangerours methods. * Palettes/4Data/DataPalette.m: Move +initialize method into DataPalette and retain the static objects. * Palettes/4Data/GormNumberFormatterAttributesInspector.m: Clean up compiler warnings. 2011-09-15 Fred Kiefer * Palettes/0Menu/GormMenuEditor.m: Change becomeMainWindow call to makeMainWindow. Patch by Matt Rice 2011-05-17 20:43-EDT Gregory John Casamento * GormCore/GormStandaloneViewEditor.h: * GormCore/GormStandaloneViewEditor.m: Improve support for standalone views. Correct issue with ungrouping. Correct issues with editing subviews in a standalone view. * GormCore/GormViewSizeInspector.m: Remove code which made standalone views uneditable in the size inspector. 2011-05-17 17:32-EDT Gregory John Casamento * GormLib/COPYING.LIB: Update license text for files. * GormLib/IBApplicationAdditions.h * GormLib/IBApplicationAdditions.m * GormLib/IBCellAdditions.h * GormLib/IBCellProtocol.h * GormLib/IBConnectors.h * GormLib/IBConnectors.m * GormLib/IBDefines.h * GormLib/IBDocuments.h * GormLib/IBDocuments.m * GormLib/IBEditors.h * GormLib/IBEditors.m * GormLib/IBInspector.h * GormLib/IBInspector.m * GormLib/IBInspectorManager.h * GormLib/IBInspectorManager.m * GormLib/IBInspectorMode.h * GormLib/IBInspectorMode.m * GormLib/IBObjectAdditions.h * GormLib/IBObjectAdditions.m * GormLib/IBObjectProtocol.h * GormLib/IBPalette.h * GormLib/IBPalette.m * GormLib/IBPlugin.h * GormLib/IBPlugin.m * GormLib/IBProjectFiles.h * GormLib/IBProjects.h * GormLib/IBResourceManager.h * GormLib/IBResourceManager.m * GormLib/IBSystem.h * GormLib/IBViewAdditions.h * GormLib/IBViewProtocol.h * GormLib/IBViewResourceDragging.h * GormLib/InterfaceBuilder.h 2011-05-17 17:32-EDT Gregory John Casamento * Plugins/Xib/GormXibWrapperLoader.m: Various fixes for XIB loading. * English.lproj/GormDocument.gorm: Fix button title. 2011-04-28 14:44-EDT Gregory John Casamento * Plugins/Xib/GormXibWrapperLoader.m: Correct compilation errors and warnings in Xib loading code. Correct loading code so that Xib file partially loads. 2011-04-26 20:24-EDT Gregory John Casamento * Palettes/2Controls/GormTextFieldAttributesInspector.m: Fix issue with refreshing display of enter/end editing when selecting fields. 2011-04-01 03:04-EDT Gregory John Casamento * Palettes/2Controls/GormNSTextFieldInspector.gorm: Add matrix for enter/end editing. * Palettes/2Controls/GormTextFieldAttributesInspector.h: Added ivar to point to new matrix * Palettes/2Controls/GormTextFieldAttributesInspector.m: Implement changes to handle "Send Action On Enter/End editing" per task #10799. Added code to ok: method to handle new matrix. 2011-04-01 03:04-EDT Gregory John Casamento * GormInfo.plist: Bump version. * Version: Bump version for SVN version. 2011-01-04 Wolfgang Lux * GormCore/GormMatrixEditor.m (-connectTargetAtPoint:, -draggingEntered:, -performDragOperation:): Make connections to the whole matrix possible again for matrixes with small intercell spacing. 2011-01-04 Wolfgang Lux * GormCore/GormDocument.m (-windowAndRect:forObject:): * GormCore/GormMatrixEditor.m (-draggingEntered:, -performDragOperation:): Allow making connections to individual cells of a matrix. * GormCore/GormMatrixEditor.m (-validateFrame:...): Attach added cells and detach removed cells when changing the number of rows or columns in a matrix. 2010-12-05 19:10-EST Gregory John Casamento * Palettes/4Data/GormImageViewAttributesInspector.m: Archive by name. 2010-12-05 18:12-EST Gregory John Casamento * Palettes/4Data/GormImageViewAttributesInspector.m: Remove check for name so that images which currently do not reference a known image can be saved by name. * Palettes/4Data/GormNSImageViewInspector.gorm: Add connection to ok: from the text field. 2010-11-01 Riccardo Mottola * Plugins/Xib/GormXibWrapperLoader.m Removed c99-ism 2010-09-39 Niels Grewe * Gorm.m: Replace calls to sel_eq() with sel_isEqual() for compatibility with the Objective-C 2 runtime API. Whitespace cleanup. Small tweak for Objective-C 2 runtime API compatibility. 2010-09-17 Wolfgang Lux * Palettes/4Data/GormTextViewAttributesInspector.h: * Palettes/4Data/GormTextViewAttributesInspector.m (-ok:, -revert:): * Palettes/4Data/GormNSTextViewInspector.gorm: Add switches to the text view inspector to control use of an undo manager and the find panel, respectively. 2010-09-17 Wolfgang Lux * Palettes/2Controls/GormButtonEditor.m (-mouseDown): Fix bug where a button's title was lost when starting editing by double clicking into the button. 2010-09-17 Wolfgang Lux * English.lproj/Gorm.gorm: Actually bring the "Recent Documents" menu to life. 2010-09-15 Eric Wasylishen * GormCore/GormClassManager.m: * GormCore/GormObjectInspector.m: Tweaks to use ObjectiveC2 runtime API functions. Now Gorm works on libobjc2. 2010-08-04 13:20-EDT Gregory John Casamento * English.lproj/Gorm.gorm: Add "Recent Documents" to menu. * GormCore/GormClassManager.m: Post notifications when files are created. * GormInfo.plist: Update my email address and list of authors to include Wolfgang and Adam. 2010-08-02 Wolfgang Lux * Palettes/0Menus/MenusPalette.m (-finishInstantiate): Initialize the find menu items with tags and actions suitable for using the standard NSTextView find panel. * Resources/ClassInformation.plist: Add -centerSelectionInVisibleArea: and -performFindPanelAction: to the list of first responder actions. 2010-07-10 01:22-EDT Gregory John Casamento * GormInfo.plist: Simplified copyright portion. Give a range of years instead of each year individually. * Gorm.m: Implement simple mechanism for recieving notifications to parse a given class file. 2010-06-24 Wolfgang Lux * Palettes/2Controls/GormPopUpButtonEditor.m (-attachPopUpWithFrame:inView:): Copy change from -gui which swaps the meaning of NSMinYEdge and NSMaxYEdge. 2010-06-24 Wolfgang Lux * Palettes/2Controls/GormPopUpButtonAttributesInspector.h * Palettes/2Controls/GormPopUpButtonAttributesInspector.m * Palettes/2Controls/GormNSPopUpButtonInspector.gorm: Add a form to allow editing the title of a pull down menu and a pop up button to allow setting its preferred attachment edge. 2010-06-19 Riccardo Mottola * GormLib/IBEditors.h Make IBEditors implement NSobject protocol to avoid warnings. 2010-06-02 17:45-EDT Gregory John Casamento * English.lproj/GormFontView.gorm: Fix problem with popup showing as Button. * GormCore/GormDocument.m: Add the NSMenu as a top level item only if it has filesOwner as it's parent. * GormCore/GormPalettesManager.m: remove the restriction for having just one instance of NSMenu in the document at the top level. 2010-05-30 03:07-EDT Gregory John Casamento * GormCore/GormDocument.m: In [GormDocument loadFileWrapperRepresentation:ofType:] call updateChangeCount: to clear changes so that the document doesn't show as modified on load. 2010-05-30 03:02-EDT Gregory John Casamento * GNUmakefile: Added Xib.plugin to resources. * GormInfo.plist: Added xib to the list of files Gorm can load * Gorm.m: Change to recieve notifications to add/delete classes. * Plugins/GNUmakefile: Added Xib plugin to subprojects list. * Plugins/Xib/GNUmakefile * Plugins/Xib/GNUmakefile.preamble * Plugins/Xib/GormXibCustomResource.h * Plugins/Xib/GormXibCustomResource.m * Plugins/Xib/GormXibPlugin.m * Plugins/Xib/GormXibWrapperLoader.h * Plugins/Xib/GormXibWrapperLoader.m: Initial code for XIB plugin. 2010-05-28 Wolfgang Lux * Palettes/0Menus/GormNSMenu.h: * Palettes/0Menus/GormNSMenu.m: * Palettes/0Menus/GormMenuAttributesInspector.m: Don't validate menu items in design menus. 2010-05-28 Wolfgang Lux * GormCore/GormDocument.h: * GormCore/GormDocument.m: * Palettes/0Menus/GormMenuAttributesInspector.m: * Palettes/0Menus/GormMenuAttributesInspector.gorm: Add support for a recent documents menu in gorm documents. * Palettes/0Menus/MenusPalette.m: Add a recent documents menu to the palette's file menu. Add undo and redo commands to the palette's edit menu. 2010-05-22 02:23-EDT Gregory John Casamento * English.lproj/GormPreferences.gorm: Correct issue with pop up showing up as "Button." 2010-05-20 04:04-EDT Gregory John Casamento * GormCore/GormFilePrefsManager.m: Update version * GormInfo.plist: Update version * Palettes/2Controls/GormPopUpButtonEditor.m: Override method to prevent changes to appearance during editing. * Version: Change to 1.2.13 for SVN version of Gorm. 2010-05-18 21:55-EDT Gregory John Casamento * Version: 1.2.12 2010-05-18 21:50-EDT Gregory John Casamento * ChangeLog * GormCore/GormNSWindow.m * GormCore/GormNSPanel.m: Update to use new designated initializer. 2010-05-18 20:50-EDT Gregory John Casamento * ANNOUNCE * Documentation/announce.texi * Documentation/news.texi * Documentation/readme.texi * NEWS * README: Updating for release. 2010-05-18 20:38-EDT Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist: Update version number. 2010-05-18 20:31-EDT Gregory John Casamento * English.lproj/Gorm.gorm: Remove delegate connection, since it's manually set in the Gorm NSApplication subclass to self. * GormCore/GormDocumentController.[hm]: Added new method buildDocumentType: * GormCore/GormDocument.m: Added call to touch in setName: so that the document would be set as modified when the user alters the name of an object in the document. * GormCore/GormDocumentWindow.m: Remove methods preventing document window from assuming main/key status. * GormCore/GormPalettesManager.m: Remove methods allowing palette window to assume main/key status * Gorm.m: Added delegate methods to handle opening a document, if in a mode which requires a default document to be created. 2010-05-18 19:42-EDT Gregory John Casamento * Documentation/Gorm.texi * Documentation/news.texi * Documentation/readme.texi * GormCore/GormDocument.m: Correction for bug #28643. * Version 2010-05-05 20:55-EDT Gregory John Casamento * GormCore/GormClassManager.m: Correct bug#29795: Unable to change superclass of NSOwner... This bug was due to the owner class name being released and a subsequent set failing on NSOwner in the parseHeader: method. 2010-05-05 12:38-EDT Gregory John Casamento * GormCore/GormClassInspector.m: [GormClassInspector selectClass:] Refresh connections so that when the class is reparented only those connections which aren't present anymore get broken. 2010-05-04 19:25-EDT Gregory John Casamento * GormCore/GormClassInspector.m: Allow a class' name to be changed in the GormClassInspector without it disconnecting all connections for that class. 2010-05-02 01:11-EDT Gregory John Casamento Applied patch submitted by qmathe. * GormCore/GormClassManager.m: Remove include for GSCategories.h 2010-03-07 Richard Frith-Macdonald * Documentation/gorm.texi: Fixed opening file to say 'gopen -a Gorm.app' for bug #29085 2010-03-05 Richard Frith-Macdonald * GormCore/GormFunctions.m: update for latest base library. 2010-02-24 17:55-EST Gregory John Casamento * Palettes/2Controls/ControlsPalette.tiff * Palettes/4Data/DataPalette.tiff: Remove background and replace with alpha. 2010-02-12 20:01-EST Gregory John Casamento * GormCore/GormFunctions.m: Correct the function which enumerates over the list of methods in a class when adding from a palette. 2010-02-08 07:13-EST Gregory John Casamento * Gorm.m: Separate out the server methods into a category. 2010-02-08 06:46-EST Gregory John Casamento * GormCore/GormServer.h: Added deleteClass: method * Gorm.m: Added implementation for deleteClass: 2010-02-07 05:43-EST Gregory John Casamento * GormCore/GNUmakefile: Added GormServer.h to the headers. * GormCore/GormCustomClassInspector.m: Change tooltip when a new custom class is selected from the list. * GormCore/GormPalettesManager.m: Set autoresizing on drag view. * GormCore/GormServer.h: Protocol for GormServer. * GormCore/GormViewEditor.m: Add the class name to the tooltip. * Gorm.m: Vend the object so that other apps can talk to Gorm via DO. 2010-01-20 Wolfgang Lux * Palettes/2Controls/ControlsPalette.gorm: Replace the two orphaned radio buttons by a NSMatrix. 2010-01-17 Wolfgang Lux * Palettes/2Controls/GormButtonAttributesInspector.m(-ok:, -revert:): Fix the NSButton inspector to use \r as key equivalent for the Return key. * GormCore/GormViewWithContentViewEditor.m (-ungroup): * GormCore/GormSplitViewEditor.m (-ungroup, -destroyAndListSubviews): Remove the former container view from its parent after an ungroup operation. 2010-01-14 06:46-EST Gregory John Casamento * GormCore/GormDocumentWindow.m: Make window unable to become main. This is so that the document window will not receive the menu on Windows. * GormCore/GormPalettesManager.m: Make the panel able to become main so that it can recieve the menu on Windows. 2010-01-06 01:06-EST Gregory John Casamento * GormCore/GNUmakefile: Add files here. * GormCore/GormNSPanel.[hm] * GormCore/GormNSWindow.[hm]: Move GormNSPanel.[hm] and GormWindow.[hm] here. * Palettes/1Windows/GNUmakefile: Remove files from being compiled * Palettes/1Windows/GormNSPanel.h * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.h * Palettes/1Windows/GormNSWindow.m: Remove these from here * Palettes/1Windows/GormWindowAttributesInspector.m * Palettes/1Windows/WindowsPalette.m: Change to include GormNSPanel/GormNSWindow from the correct area. 2009-12-30 23:40-EST Gregory John Casamento * Plugins/Nib/GormNibWrapperLoader.m: Remove reference to GSClassSwapper and replace it with NSClassSwapper. * Plugins/Nib/GormWindowTemplate.m: Override the baseWindowClass method to return GormNSWindow as appropriate. 2009-12-27 01:17-EST Gregory John Casamento * Gorm.m * Plugins/Nib/GNUmakefile: Add new class to makefile. * Plugins/Nib/GormNibWrapperLoader.m: Modified to use GormWindowTemplate. * Plugins/Nib/GormWindowTemplate.[hm]: Replace flags used only at runtime when the template is loaded. This is so, for example, the released when closed flag will not cause issues when editing the window. 2009-12-01 Riccardo Mottola * Gorm.m: do not open untitled document on application start 2009-12-01 German Arias * GormCore/GormDocument.m: Changes to prevent menus placed off screen on screens with low resolutions 2009-11-11 09:27-WIT Hans Baier * English.lproj/Gorm.gorm: remove duplicate keyboard shortcut #p (now pops up palette only) 2009-10-13 23:52-EDT Gregory John Casamento * GormCore/GormFunctions.m: Temporary change to fix compilation problem. * GormCore/GormViewEditor.m: Added code to show id of the object as a tooltip. 2009-09-22 16:59-EDT Gregory John Casamento * GormCore/GormViewWithSubviewsEditor.m: Call super instead of parent. Corrects issue with connecting to NSBox and NSProgressIndicator. Patch by Wolfgang Lux 2009-09-06 23:55-EDT Gregory John Casamento * English.lproj/Gorm.gorm * GormCore/GormGenericEditor.h * GormCore/GormViewWithContentViewEditor.h * GormCore/GormViewWithContentViewEditor.m * Gorm.m: Beginning of implementation of groupSelectionInView: 2009-08-22 18:04-EDT Gregory John Casamento * GormCore/GormOutlineView.m: Remove .tiff from the end of the images. This is interfering with theming in gorm since it's not pulling the right images in this case. * Plugins/Nib/GormNibCustomResource.[hm]: Handle custom resources in gorm, currently just images/sounds. * Plugins/Nib/GormNibWrapperLoader.h: Include nib resource header 2009-08-10 10:02-EDT Gregory John Casamento * GormCore/GormDefines.h: Move defines for certain things here so that they are centralized. 2009-08-08 03:09-EDT Gregory John Casamento * GormCore/GNUmakefile: Added reference to new classes. * GormCore/GormBoxEditor.m: Cleanup. * GormCore/GormClassManager.m: Correction for when loading from a nib and there are no custom classes in the nib file. * GormCore/GormDocumentWindow.m: Added awakeFromNib to accept mouse moved events. * GormCore/GormInternalViewEditor.m: Cleanup. * GormCore/GormStandaloneViewEditor.[hm]: Addition of new class. * GormCore/GormViewWithContentViewEditor.[hm]: Removal of handleMouseOnKnob:ofView:withEvent:, handleMouseOnView:withEvent: methods * GormCore/GormViewWithSubviewsEditor.[hm]: Addition of handleMouseOnKnob:ofView:withEvent:, handleMouseOnView:withEvent: methods * Palettes/0Menus/GormNSMenu.m: Cleanup. 2009-07-25 18:47-EDT Gregory John Casamento * GormCore/GNUmakefile * GormCore/GormBoxEditor.m * GormCore/GormDocumentWindow.m * GormCore/GormInternalViewEditor.m * GormCore/GormObjectEditor.m * GormCore/GormStandaloneViewEditor.[hm]: New classes to handle standalone views. * GormCore/GormViewWithContentViewEditor.[hm]: * GormCore/GormViewWithContentViewEditor.m * GormCore/GormViewWithSubviewsEditor.h * GormCore/GormViewWithSubviewsEditor.m 2009-06-23 22:19-EDT Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist * Version: Update to 1.2.11. 2009-06-01 21:21-EDT Gregory John Casamento * Version: 1.2.10 2009-03-24 18:02-EDT Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: -(void)deleteSelection, remove arbitrary limitation which prevents removing all items in a menu. 2009-03-19 23:39-EDT Gregory John Casamento * GormCore/GormWrapperLoader.m: Allow handling of wrappers which are not directories. * Plugins/Gorm/GormGormWrapperLoader.m: Change logic to accommodate previous generation of .gorm files which were not packages. Also correct the code so that a return is not made within the NS_DURING block. * Plugins/Nib/GormNibWrapperLoader.m: Do not load if the wrapper is not a directory. 2009-03-17 01:05-EDT Gregory John Casamento * Plugins/Nib/GormNibWrapperLoader.m: Correct the code so that return is not called from within an NS_DURING block. 2009-03-16 20:18-EDT Gregory John Casamento * Plugins/Nib/GormNibWrapperLoader.m: Correct compilation error. 2009-03-03 18:17-EST Gregory John Casamento * GormCore/GormClassInspector.m: Change the cell to scrollable to allow long action/outlet names. 2009-02-11 09:22-EST Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: Revert some changes from previous modification. Corrects issue with submenus showing up when they shouldn't. 2009-02-11 01:31-EST Gregory John Casamento * GormCore/GormDocument.m: Remove call to deprecated method. * GormCore/GormInternalViewEditor.m: Minor cleanup * GormObjCHeaderParser/OCMethod.m: Minor cleanup * Palettes/2Controls/GormNSTextFieldInspector.gorm: Correct issue with misspelled outlet name. 2009-02-02 17:13-EST Gregory John Casamento * Palettes/2Controls/GormButtonAttributesInspector.[hm]: Added code to handle button style. * Palettes/2Controls/GormNSButtonInspector.gorm: Added button style popup to the inspector. 2009-02-01 09:20-EST Gregory John Casamento * GormCore/GormBoxEditor.m * GormCore/GormInternalViewEditor.m * GormCore/GormViewWithSubviewsEditor.m: Changes to support standalone views. 2009-01-31 18:45-EST Gregory John Casamento * GormCore/GormCustomView.m: Allow addition of plain NSView to a gorm file. 2009-01-25 09:47-EST Gregory John Casamento * GormCore/GormViewWindow.m: Change the color used for standalone views. 2009-01-25 07:54-EST Gregory John Casamento * Palettes/0Menus/GormNSMenu.m: Fix memory leak. 2009-01-25 07:00-EST Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist: Change version to 1.2.9 (SVN) unstable. 2009-01-25 06:50-EST Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: Display the in certain situations. * Palettes/0Menus/GormNSMenu.m: Remove call to setMenu: in _createWindow since it's not needed and was causing display issues. * Palettes/0Menus/GormNSMenuView.m: Use new method in NSMenuView to reduce code duplication. Corrections for bug #25401. 2009-01-06 20:48-EST Gregory John Casamento * Resources/ClassInformation.plist: Added printDocument: method to FirstResponder 2009-01-06 Fred Kiefer * GormCore/GormClassManager.m (-nibData): Make sure an action name of ":" gets ignored. 2008-12-26 13:53-EST Gregory John Casamento * Version: 1.2.8 2008-12-26 13:53-EST Gregory John Casamento * ANNOUNCE * Documentation/news.texi * GormCore/GormFilePrefsManager.m * GormInfo.plist * NEWS: Update with new version information. 2008-12-19 Nicola Pero * All GNUmakefiles: removed GNUSTEP_CORE_SOFTWARE=YES and added PACKAGE_NAME=gorm. * GNUmakefile: Export PACKAGE_NAME to reduce chances of a problem if a GNUmakefile in a subdirectory is missing it. * GormObjCHeaderParser/GNUmakefile: Do not set PACKAGE_NAME to GormObjCHeaderParser. 2008-12-18 Nicola Pero * All GNUmakefiles: added GNUSTEP_CORE_SOFTWARE=YES at the beginning. * GNUmakefile: Export GNUSTEP_CORE_SOFTWARE to reduce chances of a problem if a GNUmakefile in a subdirectory is missing it. 2008-12-18 00:52-EST Gregory John Casamento * Plugins/Nib/GormNibWrapperBuilder.m: -[GormNibWrapperBuilder archiver: willEncodeObject:] add back code to replace GormFirstResponder with nil. Changes to use proper templates when encoding nib files. 2008-12-18 00:20-EST Gregory John Casamento * GormCore/GormInspectorsManager.m: Fix for bug#25111. * Plugins/Nib/GormNibWrapperBuilder.m: Remove code which adds nil to the map if the object is a GormFirstResponder 2008-12-06 11:04-EST Bernard Cafarelli Gregory John Casamento * GormCore/GNUmakefile.preamble: Corrects bug #25001. 2008-12-02 02:58-EST Gregory John Casamento * GormCore/GormCustomView.m * GormCore/GormDocument.m * GormCore/GormFilePrefsManager.m * GormCore/GormHelpInspector.m * GormCore/GormPrivate.h * GormCore/GormPrivate.m * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m * Palettes/1Windows/GormWindowSizeInspector.m * Palettes/1Windows/WindowsPalette.m * Plugins/Gorm/GormGormWrapperBuilder.m * Plugins/Nib/GormNibWrapperBuilder.m * Plugins/Nib/GormNibWrapperLoader.h: Use new header files for nib/gorm loading. 2008-11-27 11:43-EST Gregory John Casamento * GNUmakefile: Remove default install to SYSTEM, per bug #24673. * Plugins/Gorm/GormGormWrapperLoader.m: Minor grammatical correction. 2008-11-13 23:36-EST Gregory John Casamento * GormCore/GormDocument.m: Change to apply labels in the document to cells in a matrix. * GormCore/GormFilePrefsManager.m: Update version to 1.2.7 * GormInfo.plist: Same * Version: Same 2008-10-25 18:40-EDT Gregory John Casamento * Version: 1.2.6 2008-10-22 22:30-EDT Wolfgang Lux Patch committed by: Gregory John Casamento * GormLib/IBObjectAdditions.m: Remove duplicate method implementations from here to fix issues on Darwin. 2008-10-19 21:50-EDT Wolfgang Lux Patch committed by: Gregory John Casamento * GormCore/GormGenericEditor.h * GormCore/GormGenericEditor.m * GormCore/GormImageEditor.m * GormCore/GormObjectEditor.m * GormCore/GormSoundEditor.m: Observe notification IBWillCloseDocument and remove the reference to the document when that is recieved to avoid a crash. * Resources/ClassInformation.plist: Add outlet for delegate to NSSplitView. 2008-10-06 19:22-EDT Gregory John Casamento * Palettes/2Controls/ControlsPalette.m: Correct sizing issue with Controls Palette. 2008-09-27 23:11-EDT Gregory John Casamento * GormPrefs/GormPluginsPref.m: Include GormPluginManager.h to eliminate compiler warning. 2008-09-27 23:02-EDT Gregory John Casamento * English.lproj/GormPreferences.gorm * English.lproj/GormPrefPlugins.gorm * GNUmakefile * GormCore/GormPluginManager.m * GormPrefs/GNUmakefile * GormPrefs/GormPalettesPref.h * GormPrefs/GormPluginsPref.h * GormPrefs/GormPluginsPref.m * GormPrefs/GormPrefController.h * GormPrefs/GormPrefController.m: Changes to allow addition of plugins by users. 2008-09-27 21:10-EDT Gregory John Casamento * GormCore/GormPalettesManager.h * GormCore/GormPalettesManager.m: Reverted the previous change to the palettes manager. 2008-09-06 16:12-EDT Gregory John Casamento * GormCore/GNUmakefile: Added GNUSTEP_INSTALLATION_DOMAIN * GormCore/GormCustomView.m: Reverted previous change. Need to write a GormCustomViewEditor instead to handle this case. * GormLib/GNUmakefile: Added GNUSTEP_INSTALLATION_DOMAIN 2008-09-04 08:00-EDT Gregory John Casamento * Gorm.m: Remove unhide: implementation. Correction for bug#24146. 2008-08-24 13:20-EDT Gregory John Casamento * GormCore/GormCustomView.m: Code to return the best possible superclass. * GormCore/GormDocument.m: More info in the description method * GormCore/GormViewWindow.m: Fixing handling of standalone views. 2008-07-20 09:32-EDT Gregory John Casamento * GormObjCHeaderParser/OCIVar.m * GormObjCHeaderParser/ParserFunctions.h * GormObjCHeaderParser/ParserFunctions.m: Correction for bug #23889. 2008-06-24 19:18-EDT Gregory John Casamento * GormCore/GormWrapperBuilder.h * GormCore/GormWrapperBuilder.m * GormCore/GormWrapperLoader.h * GormCore/GormWrapperLoader.m * Plugins/GModel/GormGModelPlugin.m * Plugins/GModel/GormGModelWrapperLoader.h * Plugins/GModel/GormGModelWrapperLoader.m * Plugins/Gorm/GormGormPlugin.m * Plugins/Gorm/GormGormWrapperBuilder.m * Plugins/Gorm/GormGormWrapperLoader.m * Plugins/Nib/GormNibPlugin.m * Plugins/Nib/GormNibWrapperBuilder.m * Plugins/Nib/GormNibWrapperLoader.m: Change method name from "type" to "fileType" to avoid issues with gcc < 3.0 2008-06-24 18:09-EDT Gregory John Casamento * GormCore/GormWrapperLoader.h * Plugins/Gorm/GormGormWrapperLoader.h * Plugins/Nib/GormNibPlugin.m: Call type from here. * Plugins/Nib/GormNibWrapperLoader.h: Move type method to super-class declaration. 2008-05-25 09:09-EDT Gregory John Casamento * GormCore/GormObjectEditor.m: Correction for segfault. * Plugins/Nib/GormNibPlugin.m: Correction for compilation error on gcc < 3.1 systems. 2008-05-20 fabien * GormCore/GormObjectEditor.m: add draggingExited: to implement autoscrolling during IBAction connections. 2008-05-18 19:16-EDT Gregory John Casamento * GormCore/GormDocument.m: Correct segfault. Remove unecessary call to removeFromSuperview for the selection box from GormDocument window. 2008-05-18 fabien * Palettes/3Containers/GormTabViewAttributesInspector.h: Add itemPrevious and itemNext outlets * Palettes/3Containers/GormTabViewInspector.gorm: Add itemPrevious and itemNext outlets * Palettes/3Containers/GormTabViewInspector.gorm: Implement NSTabView items ordering in ok: 2008-05-16 20:47-EDT Gregory John Casamento * GormCore/GormPluginManager.h * GormCore/GormPluginManager.m: Added manager class. 2008-05-16 20:46-EDT Gregory John Casamento * GormCore/GormPlugin.h * GormCore/GormPlugin.m: plugin class for gorm plugins. 2008-05-16 20:41-EDT Gregory John Casamento * GNUmakefile: Added plugins as resources. * GormCore/GNUmakefile: Remove classes from file * GormCore/GormGModelWrapperLoader.m * GormCore/GormGormWrapperBuilder.m * GormCore/GormGormWrapperLoader.m * GormCore/GormNibWrapperBuilder.m * GormCore/GormNibWrapperLoader.m: Removed the loaders from GormCore. * GormCore/GormProtocol.h: Added a new method. * GormLib/IBPlugin.m: Added implementations to some of the methods. * Gorm.m: Added a "pluginManager" method. * Palettes/1Windows/GNUmakefile.preamble * Palettes/2Controls/GNUmakefile.preamble * Palettes/3Containers/GNUmakefile.preamble * Palettes/4Data/GNUmakefile.preamble: Corrected issue with all of the palette makefiles pointing to the wrong name. * Plugins/GModel/GNUmakefile * Plugins/GModel/GNUmakefile.preamble * Plugins/GModel/GormGModelPlugin.m * Plugins/GModel/GormGModelWrapperLoader.h * Plugins/GModel/GormGModelWrapperLoader.m * Plugins/Gorm/GNUmakefile * Plugins/Gorm/GNUmakefile.preamble * Plugins/Gorm/GormGormPlugin.m * Plugins/Gorm/GormGormWrapperBuilder.m * Plugins/Gorm/GormGormWrapperLoader.h * Plugins/Gorm/GormGormWrapperLoader.m * Plugins/Nib/GNUmakefile * Plugins/Nib/GNUmakefile.preamble * Plugins/Nib/GormNibPlugin.m * Plugins/Nib/GormNibWrapperBuilder.m * Plugins/Nib/GormNibWrapperLoader.h * Plugins/Nib/GormNibWrapperLoader.m: Added new plugins for each supported file type. * Resources/Defaults.plist: Added the "BuiltinPlugins" default. 2008-05-06 20:04-EDT Gregory John Casamento * English.lproj/Gorm.gorm: Added shortcut to Page Layout menu. 2008-05-05 20:26-EDT Gregory John Casamento * English.lproj/Gorm.gorm: Add Page Layout menu. 2008-05-05 20:08-EDT Gregory John Casamento * English.lproj/Gorm.gorm: Added Print menu. * Gorm.m: Added print: method to print the current keyWindow. 2008-05-04 18:09-EDT Gregory John Casamento * GormCore/GormPalettesManager.m: Cleanup 2008-05-04 18:00-EDT Gregory John Casamento * GormCore/GormPalettesManager.m: Correction for issue with palette clipping the top of the controls. 2008-05-03 13:40-EDT Gregory John Casamento * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Cleanup and fix for release when closed on panel. * Palettes/2Controls/ControlsPalette.gorm: Minor adjustment 2008-04-28 19:06-EDT Gregory John Casamento * English.lproj/GormPalettePanel.gorm 2008-04-28 17:31-EDT Gregory John Casamento * GormCore/GormDocument.m: Reinstate large toolbar on document. 2008-04-27 19:32-EDT Gregory John Casamento * English.lproj/GormPalettePanel.gorm: Moved palette window to gorm file. * GNUmakefile: Added new gorm here. * GormCore/GormDocument.m: Made toolbar items smaller * GormCore/GormPalettesManager.[hm]: Added toolbar implementation to this class to allow the user to switch palettes using the toolbar. 2008-04-25 17:41-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Corrected possition. * GormCore/GormInspectorsManager.m: Show the name of the object which is being edited in the inspector title. * Palettes/1Windows/GormNSWindowInspector.gorm: Added support for setting the frame save name. * Palettes/1Windows/GormWindowAttributesInspector.h: Added ivar * Palettes/1Windows/GormWindowAttributesInspector.m: Modified ok: and revert: 2008-04-24 18:57-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Correct position of window. 2008-04-24 18:06-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Correct resize attributes of GormDocument. 2008-04-24 01:28-EDT Gregory John Casamento * English.lproj/GormScrollViewAttributesInspector.gorm: Correct resizing issues with inspector. 2008-04-24 01:21-EDT Gregory John Casamento * GormCore/GormDocument.m: change to log to debug instead. * GormCore/GormImageEditor.m: properly dealloc the image code. 2008-04-24 00:54-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Correct issue with window. * GormCore/GormDocument.m * GormCore/GormImageEditor.m * GormCore/GormObjectEditor.m * GormCore/GormSoundEditor.m: Fix memory leak. 2008-04-23 20:03-EDT Gregory John Casamento * Palettes/1Windows/GormNSWindowInspector.gorm: Connected the button for "released when closed" button. * Palettes/1Windows/GormNSWindow.m: Correction for issue where isReleasedWhenClosed isn't set properly. 2008-04-20 11:47-EDT Gregory John Casamento * GormInfo.plist: Minor correction to the plist. 2008-04-14 17:37-EDT Gregory John Casamento * GormCore/GormImageEditor.m * GormCore/GormOutlineView.m * GormCore/GormResourceManager.m * GormCore/GormSoundInspector.m * GormCore/GormSplitViewEditor.m * GormLib/IBInspectorManager.m * Palettes/2Controls/GormBoxAttributesInspector.m * Palettes/4Data/GormDateFormatterAttributesInspector.m * Palettes/4Data/GormImageViewAttributesInspector.m * Palettes/4Data/GormNumberFormatterAttributesInspector.m: General clean up and compilation fixes to allow Gorm to compile without warnings. 2008-04-07 18:59-EDT Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist * Version: Moved to version 1.2.5. 2008-04-06 22:09-EDT Gregory John Casamento * Version: 1.2.4 2008-04-06 22:09-EDT Gregory John Casamento * ANNOUNCE * ChangeLog * Documentation/news.texi * GormCore/GormFilePrefsManager.m * GormInfo.plist * NEWS * Version: Updating for release. 2008-03-05 20:45-EST Gregory John Casamento * GormCore/GormWrapperLoader.m: Correct c99'ism. 2008-02-18 20:31-EST Gregory John Casamento * Palettes/2Controls/GormPopUpButtonEditor.m: Change to use helper method to set up "preferred edge" correctly. 2008-02-17 12:49-EST Gregory John Casamento * GormCore/GormViewEditor.m * GormCore/GormViewWindow.m: Minor correction to view resizing for windowless views to show contents properly. Still working on editor issues. 2008-02-17 01:07-EST Gregory John Casamento * GormCore/GormInternalViewEditor.m * GormCore/GormScrollViewEditor.m * GormCore/GormSplitViewEditor.m * GormCore/GormViewEditor.m * GormCore/GormViewWithContentViewEditor.m: Corrections for bug#18171. Fixes issues with grouping and ungrouping. 2008-02-16 20:54-EST Gregory John Casamento * Palettes/2Controls/GormSliderAttributesInspector.m: Cleaned up code to use NSOnState and NSOffState properly, since we can't depend on them always reflecting YES and NO respectively. * Palettes/3Containers/GormTableViewAttributesInspector.m: Corrected call in ok: to use enclosingScrollView instead of simply getting the superview of the table. This corrects bug#22333. 2008-02-09 Adam Fedor * GormCore/GormGenericEditor.m ([GormGenericEditor -refreshCells]): Avoid segfault on solaris machines. 2008-02-09 12:15-EST Gregory John Casamento * GormCore/GormClassEditor.m * GormCore/GormGenericEditor.m * GormCore/GormObjectEditor.m: Change background color of object view. 2008-01-10 Nicola Pero * GNUmakefile.postamble (LN_S_RECURSIVE): For backwards-compatibility with older versions of gnustep-make, define to be the same as LN_S if not defined yet. (before-all): Use RM_LN_S to delete the symlink, and use LN_S_RECURSIVE to create it. (after-clean): Use RM_LN_S to delete the symlink. * GormPrefs/GormPrefController.m ([-init]): Avoid compiler warning. 2008-01-07 20:04-EST Gregory John Casamento * Palettes/0Menus/GormMenuItemAttributesInspector.h * Palettes/0Menus/GormMenuItemAttributesInspector.m: Moved strings for non-printable characters to class variables. 2008-01-07 18:50-EST Gregory John Casamento * GormCore/GormGenericEditor.m: Removed patch for bug#17539. Was causing issues on load. * GormCore/GormNibWrapperLoader.m: Removed extra NSLog(...); 2008-01-07 18:37-EST Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Minor issues corrected with c99 changes. 2008-01-07 17:40-EST Gregory John Casamento * Palettes/1Windows/GormDrawerAttributesInspector.gorm: Fixed issue with dropdown. * Palettes/2Controls/GormButtonEditor.m: Fixed minor resize issue. 2008-01-05 Riccardo Mottola * GormCore/GormWrapperBuilder.m: removed some c99-isms 2008-01-04 Riccardo Mottola * GormCore/GormGormWrapperLoader.m: removed some c99-isms * GormCore/GormNibWrapperLoader.m: removed some c99-isms 2008-01-04 18:38-EST Gregory John Casamento * GormCore/GormViewWindow.m: Try to get the editor for the standalone view and activate it. 2008-01-04 13:22-EST Gregory John Casamento * English.lproj/Gorm.gorm: Changed delete to require command, it was causing issues with editing text fields. * English.lproj/GormScrollViewAttributesInspector.gorm * GormCore/GormScrollViewAttributesInspector.h * GormCore/GormScrollViewAttributesInspector.m: Added ruler switches to inspector. 2008-01-04 12:05-EST Gregory John Casamento * GormCore/GormDocument.m * GormLib/IBDocuments.h: Addition of private methods for bug#17892. 2008-01-03 20:39-EST Gregory John Casamento * GormCore/GormGenericEditor.m: Reformed and applied patch provided by Sergey Golovin. Corrects bug#17539. 2008-01-03 20:17-EST Gregory John Casamento * English.lproj/Gorm.gorm: Added menu shortcut for delete/backspace to correct bug#15637. 2008-01-03 20:02-EST Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Corrections for bug#19792. Nib loader connector logic modified to correct this issue. 2008-01-03 19:40-EST Gregory John Casamento * GormCore/GormViewKnobs.m: drkgrey changed to fgcolor. 2008-01-03 17:22-EST Gregory John Casamento * GormCore/GormViewKnobs.m: Draw initial knobs as red to differentiate them from the black ones which indicates that the inside of a non-simple view is selected. Corrects bug#21479. 2008-01-03 14:50-EST Gregory John Casamento * GormCore/GormGormWrapperLoader.m: Correct invalid window level in _repairFile: method. 2008-01-01 23:07-EST Gregory John Casamento * GormCore/GormGormWrapperLoader.m: Touch the document to mark it as modified in the _repairFile method only if corrections have been made. 2008-01-01 22:57-EST Gregory John Casamento * GormCore/GormGormWrapperLoader.m: Cleanup array after display of errors/warnings. 2008-01-01 15:26-EST Gregory John Casamento * Plugins/GModel/GNUmakefile * Plugins/Gorm/GNUmakefile * Plugins/Nib/GNUmakefile: Add dummy makefiles. 2008-01-01 15:21-EST Gregory John Casamento * Plugins/GNUmakefile: Add makefile in plugins dir. 2008-01-01 14:03-EST Gregory John Casamento * GormCore/GormGormWrapperLoader.m: More corrections to the _repairFile method. * GormInfo.plist: Changed to reflect SVN status 2007-12-31 21:22-EST Gregory John Casamento * English.lproj/GormInconsistenciesPanel.gorm: Error panel to show detected inconsistencies. * English.lproj/GormPrefGeneral.gorm: Added option to turn on repair method. * GNUmakefile: Added reference to new gorm file. * GormCore/GormGormWrapperLoader.m: Added code to bring up the new panel and show the errors. * GormPrefs/GormGeneralPref.[mh]: Added new method and ivar to handle switch for consistency checking. 2007-12-19 19:03-EST Gregory John Casamento * GormCore/GormGormWrapperLoader.m * GormCore/GormNibWrapperBuilder.m: Correction for bug#21845. 2007-12-04 20:52-EST Gregory John Casamento * English.lproj/GormViewSizeInspector.gorm: Correction for bug#19640. 2007-11-30 15:58-EST Gregory John Casamento * GNUmakefile * GormLib/GNUmakefile * GormLib/IBPlugin.h * GormLib/IBPlugin.m * GormLib/InterfaceBuilder.h * Plugins/GNUmakefile: First cut at changes to add Plugin support to Gorm. 2007-11-11 15:40-EST Gregory John Casamento * Version: 1.2.2 2007-11-11 15:38-EST Gregory John Casamento * ANNOUNCE * Documentation/Gorm.texi * GNUmakefile * GormCore/GormFilePrefsManager.m * GormInfo.plist * NEWS * Palettes/GNUmakefile * README * Resources/Defaults.plist * Version: Preparing for release. 2007-11-11 00:18-EST Gregory John Casamento * Palettes/0Menus/GormMenuItemAttributesInspector.m: call itemChanged: so that changes are seen immediately in the menu. 2007-11-10 21:46-EST Gregory John Casamento * Documentation/news.texi * Documentation/readme.texi: Update of documentation. * Palettes/0Menus/GormMenuItemAttributesInspector.gorm * Palettes/0Menus/GormMenuItemAttributesInspector.h * Palettes/0Menus/GormMenuItemAttributesInspector.m * Palettes/2Controls/GormButtonAttributesInspector.m: Add key equivalent drop down for special keys for menu items. 2007-11-05 18:43-EST Gregory John Casamento * GormCore/GormBoxEditor.h * GormCore/GormBoxEditor.m * GormCore/GormClassEditor.h * GormCore/GormClassEditor.m * GormCore/GormClassInspector.h * GormCore/GormClassInspector.m * GormCore/GormClassManager.h * GormCore/GormClassManager.m * GormCore/GormClassPanelController.h * GormCore/GormClassPanelController.m * GormCore/GormConnectionInspector.h * GormCore/GormConnectionInspector.m * GormCore/GormControlEditor.h * GormCore/GormControlEditor.m * GormCore/GormCustomClassInspector.h * GormCore/GormCustomClassInspector.m * GormCore/GormCustomView.h * GormCore/GormCustomView.m * GormCore/GormDocumentController.h * GormCore/GormDocumentController.m * GormCore/GormDocument.h * GormCore/GormDocument.m * GormCore/GormDocumentWindow.h * GormCore/GormDocumentWindow.m * GormCore/GormFilePrefsManager.m * GormCore/GormFilesOwner.h * GormCore/GormFilesOwner.m * GormCore/GormFunctions.h * GormCore/GormFunctions.m * GormCore/GormGenericEditor.h * GormCore/GormGenericEditor.m * GormCore/GormGModelWrapperLoader.m * GormCore/GormGormWrapperBuilder.m * GormCore/GormGormWrapperLoader.m * GormCore/GormImageEditor.h * GormCore/GormImageEditor.m * GormCore/GormImage.h * GormCore/GormImage.m * GormCore/GormInspectorsManager.h * GormCore/GormInspectorsManager.m * GormCore/GormInternalViewEditor.h * GormCore/GormInternalViewEditor.m * GormCore/GormMatrixEditor.h * GormCore/GormMatrixEditor.m * GormCore/GormNibWrapperBuilder.m * GormCore/GormNibWrapperLoader.m * GormCore/GormObjectEditor.h * GormCore/GormObjectEditor.m * GormCore/GormObjectInspector.h * GormCore/GormObjectInspector.m * GormCore/GormOpenGLView.h * GormCore/GormOpenGLView.m * GormCore/GormOutlineView.h * GormCore/GormOutlineView.m * GormCore/GormPalettesManager.h * GormCore/GormPalettesManager.m * GormCore/GormPlacementInfo.h * GormCore/GormPrivate.h * GormCore/GormPrivate.m * GormCore/GormProtocol.h * GormCore/GormResourceEditor.h * GormCore/GormResourceEditor.m * GormCore/GormResource.h * GormCore/GormResource.m * GormCore/GormResourceManager.h * GormCore/GormResourceManager.m * GormCore/GormScrollViewAttributesInspector.h * GormCore/GormScrollViewAttributesInspector.m * GormCore/GormScrollViewEditor.m * GormCore/GormSoundEditor.h * GormCore/GormSoundEditor.m * GormCore/GormSound.h * GormCore/GormSoundInspector.h * GormCore/GormSoundInspector.m * GormCore/GormSound.m * GormCore/GormSoundView.h * GormCore/GormSoundView.m * GormCore/GormSplitViewEditor.h * GormCore/GormSplitViewEditor.m * GormCore/GormViewEditor.h * GormCore/GormViewEditor.m * GormCore/GormViewKnobs.h * GormCore/GormViewKnobs.m * GormCore/GormViewSizeInspector.h * GormCore/GormViewSizeInspector.m * GormCore/GormViewWindow.h * GormCore/GormViewWindow.m * GormCore/GormViewWithContentViewEditor.h * GormCore/GormViewWithContentViewEditor.m * GormCore/GormViewWithSubviewsEditor.h * GormCore/GormViewWithSubviewsEditor.m * GormCore/GormWindowEditor.h * GormCore/GormWindowEditor.m * GormCore/GormWrapperBuilder.h * GormCore/GormWrapperBuilder.m * GormCore/GormWrapperLoader.h * GormCore/GormWrapperLoader.m * GormCore/NSCell+GormAdditions.h * GormCore/NSCell+GormAdditions.m * GormCore/NSColorWell+GormExtensions.h * GormCore/NSColorWell+GormExtensions.m * GormCore/NSFontManager+GormExtensions.h * GormCore/NSFontManager+GormExtensions.m * GormCore/NSView+GormExtensions.h * GormCore/NSView+GormExtensions.m * GormLib/IBApplicationAdditions.h * GormLib/IBApplicationAdditions.m * GormLib/IBCellAdditions.h * GormLib/IBCellProtocol.h * GormLib/IBConnectors.h * GormLib/IBConnectors.m * GormLib/IBDefines.h * GormLib/IBDocuments.h * GormLib/IBDocuments.m * GormLib/IBEditors.h * GormLib/IBEditors.m * GormLib/IBInspector.h * GormLib/IBInspector.m * GormLib/IBInspectorManager.h * GormLib/IBInspectorManager.m * GormLib/IBInspectorMode.h * GormLib/IBInspectorMode.m * GormLib/IBObjectAdditions.h * GormLib/IBObjectAdditions.m * GormLib/IBObjectProtocol.h * GormLib/IBPalette.h * GormLib/IBPalette.m * GormLib/IBProjectFiles.h * GormLib/IBProjects.h * GormLib/IBResourceManager.h * GormLib/IBResourceManager.m * GormLib/IBSystem.h * GormLib/IBViewAdditions.h * GormLib/IBViewProtocol.h * GormLib/IBViewResourceDragging.h * GormLib/InterfaceBuilder.h * Gorm.m * GormObjCHeaderParser/NSScanner+OCHeaderParser.h * GormObjCHeaderParser/NSScanner+OCHeaderParser.m * GormObjCHeaderParser/OCClass.h * GormObjCHeaderParser/OCClass.m * GormObjCHeaderParser/OCHeaderParser.h * GormObjCHeaderParser/OCHeaderParser.m * GormObjCHeaderParser/OCIVarDecl.h * GormObjCHeaderParser/OCIVarDecl.m * GormObjCHeaderParser/OCIVar.h * GormObjCHeaderParser/OCIVar.m * GormObjCHeaderParser/OCMethod.h * GormObjCHeaderParser/OCMethod.m * GormObjCHeaderParser/ParserFunctions.h * GormObjCHeaderParser/ParserFunctions.m * GormPrefs/GormColorsPref.h * GormPrefs/GormGeneralPref.m * GormPrefs/GormGuidelinePref.h * GormPrefs/GormPalettesPref.m * GormPrefs/GormPrefController.h * GormPrefs/GormShelfPref.h * GormPrefs/GormShelfPref.m * main.m * Palettes/0Menus/GormMenuAttributesInspector.h * Palettes/0Menus/GormMenuAttributesInspector.m * Palettes/0Menus/GormMenuEditor.m * Palettes/0Menus/GormMenuInspectors.m * Palettes/0Menus/GormMenuItemAttributesInspector.h * Palettes/0Menus/GormMenuItemAttributesInspector.m * Palettes/0Menus/GormNSMenu.h * Palettes/0Menus/GormNSMenu.m * Palettes/0Menus/GormNSMenuView.h * Palettes/0Menus/GormNSMenuView.m * Palettes/0Menus/inspectors.m * Palettes/0Menus/MenusPalette.m * Palettes/1Windows/GormDrawerAttributesInspector.h * Palettes/1Windows/GormDrawerAttributesInspector.m * Palettes/1Windows/GormNSPanel.h * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.h * Palettes/1Windows/GormNSWindow.m * Palettes/1Windows/GormWindowAttributesInspector.h * Palettes/1Windows/GormWindowAttributesInspector.m * Palettes/1Windows/GormWindowSizeInspector.h * Palettes/1Windows/GormWindowSizeInspector.m * Palettes/1Windows/inspectors.m * Palettes/1Windows/WindowsPalette.h * Palettes/1Windows/WindowsPalette.m * Palettes/2Controls/ControlsPalette.m * Palettes/2Controls/GormBoxAttributesInspector.h * Palettes/2Controls/GormBoxAttributesInspector.m * Palettes/2Controls/GormButtonAttributesInspector.h * Palettes/2Controls/GormButtonAttributesInspector.m * Palettes/2Controls/GormButtonEditor.h * Palettes/2Controls/GormButtonEditor.m * Palettes/2Controls/GormCellAttributesInspector.h * Palettes/2Controls/GormCellAttributesInspector.m * Palettes/2Controls/GormColorWellAttributesInspector.h * Palettes/2Controls/GormColorWellAttributesInspector.m * Palettes/2Controls/GormFormAttributesInspector.h * Palettes/2Controls/GormFormAttributesInspector.m * Palettes/2Controls/GormMatrixAttributesInspector.h * Palettes/2Controls/GormMatrixAttributesInspector.m * Palettes/2Controls/GormPopUpButtonAttributesInspector.h * Palettes/2Controls/GormPopUpButtonAttributesInspector.m * Palettes/2Controls/GormProgressIndicatorAttributesInspector.h * Palettes/2Controls/GormProgressIndicatorAttributesInspector.m * Palettes/2Controls/GormSliderAttributesInspector.h * Palettes/2Controls/GormSliderAttributesInspector.m * Palettes/2Controls/GormStepperAttributesInspector.h * Palettes/2Controls/GormStepperAttributesInspector.m * Palettes/2Controls/GormTextFieldAttributesInspector.h * Palettes/2Controls/GormTextFieldAttributesInspector.m * Palettes/2Controls/inspectors.m * Palettes/3Containers/ContainersPalette.m * Palettes/3Containers/GormBrowserAttributesInspector.h * Palettes/3Containers/GormBrowserAttributesInspector.m * Palettes/3Containers/GormNSBrowser.h * Palettes/3Containers/GormNSBrowser.m * Palettes/3Containers/GormNSOutlineView.h * Palettes/3Containers/GormNSOutlineView.m * Palettes/3Containers/GormNSTableView.h * Palettes/3Containers/GormNSTableView.m * Palettes/3Containers/GormTableColumnAttributesInspector.h * Palettes/3Containers/GormTableColumnAttributesInspector.m * Palettes/3Containers/GormTableColumnSizeInspector.h * Palettes/3Containers/GormTableColumnSizeInspector.m * Palettes/3Containers/GormTableViewAttributesInspector.h * Palettes/3Containers/GormTableViewAttributesInspector.m * Palettes/3Containers/GormTableViewEditor.h * Palettes/3Containers/GormTableViewEditor.m * Palettes/3Containers/GormTableViewSizeInspector.h * Palettes/3Containers/GormTableViewSizeInspector.m * Palettes/3Containers/GormTabViewAttributesInspector.h * Palettes/3Containers/GormTabViewAttributesInspector.m * Palettes/3Containers/GormTabViewEditor.h * Palettes/3Containers/GormTabViewEditor.m * Palettes/3Containers/inspectors.m * Palettes/4Data/DataPalette.m * Palettes/4Data/GormDateFormatterAttributesInspector.h * Palettes/4Data/GormDateFormatterAttributesInspector.m * Palettes/4Data/GormImageViewAttributesInspector.h * Palettes/4Data/GormImageViewAttributesInspector.m * Palettes/4Data/GormNSComboBoxAttributesInspector.h * Palettes/4Data/GormNSComboBoxAttributesInspector.m * Palettes/4Data/GormNumberFormatterAttributesInspector.h * Palettes/4Data/GormNumberFormatterAttributesInspector.m * Palettes/4Data/GormTextViewAttributesInspector.h * Palettes/4Data/GormTextViewAttributesInspector.m * Palettes/4Data/GormTextViewEditor.h * Palettes/4Data/GormTextViewEditor.m * Palettes/4Data/GormTextViewSizeInspector.h * Palettes/4Data/GormTextViewSizeInspector.m * Palettes/4Data/inspectors.m * Palettes/5Controllers/ControllersPalette.m: Change header to reflect license change to GPLv3. 2007-11-05 18:20-EST Gregory John Casamento * GormCore/GormViewEditor.m: Removed commented out code. * Palettes/3Containers/GormNSTableColumnInspector.gorm * Palettes/3Containers/GormTableColumnAttributesInspector.h * Palettes/3Containers/GormTableColumnAttributesInspector.m * Palettes/3Containers/GormTableViewEditor.m: Added new column title field to the inspector so that the title can be edited there instead of directly. 2007-11-05 01:56-EST Gregory John Casamento * GormCore/GormViewEditor.m: Change code to use drawRect: instead of drawInNeededIgnoringOpacity: to correct bug#21478. 2007-09-07 19:57-EDT Gregory John Casamento * Palettes/0Menus/GormNSMenu.m: Correct exception on start when opening a gorm from the command line. 2007-09-05 00:41-EDT Gregory John Casamento * Palettes/2Controls/GormButtonAttributesInspector.h: Added ivars for new buttons. * Palettes/2Controls/GormButtonAttributesInspector.m: Addeed code in ok: and revert: to handle modifier settings * Palettes/2Controls/GormNSButtonInspector.gorm: Added key equivalent modifier buttons. 2007-09-03 23:12-EDT Gregory John Casamento * Palettes/2Controls/GormButtonAttributesInspector.m: added code to ok: and revert: to handle arrow keys for key equivalents. * Palettes/2Controls/GormNSButtonInspector.gorm: Added to dropdown list to include options for arrow keys. 2007-09-01 16:24-EDT Gregory John Casamento * Palettes/0Menus/GormNSMenu.m: Correction for compilation issue found by Riccardo. Code was improperly using protected _superMenu variable directly. 2007-08-24 22:36-EDT Gregory John Casamento * Resources/VersionProfiles.plist: Added version information for NSButtonCell. 2007-08-24 00:50-EDT Gregory John Casamento * GormCore/GormPrivate.m: Changed initWithCoder: to handle older .gorm (version 0) files correctly. 2007-08-19 21:22-EDT Gregory John Casamento * ChangeLog * GNUmakefile * Palettes/5Controllers/ControllersPalette.m * Palettes/5Controllers/ControllersPalette.tiff * Palettes/5Controllers/GNUmakefile * Palettes/5Controllers/GNUmakefile.preamble * Palettes/5Controllers/palette.table * Palettes/GNUmakefile * Resources/Defaults.plist: Initial changes for controllers palette. 2007-08-19 21:21-EDT Gregory John Casamento * GNUmakefile * Palettes/GNUmakefile * Resources/Defaults.plist 2007-07-27 13:30-EDT Gregory John Casamento * Gorm.m: Remove commented code. * Palettes/0Menus/GormNSMenu.m: Added private category to prevent compilation warning. 2007-07-26 10:25-EDT Gregory John Casamento * Palettes/0Menus/GormNSMenuView.m: Remove commented out code. 2007-07-26 10:06-EDT Gregory John Casamento * Gorm.m: Remove default setting * Palettes/0Menus/GNUmakefile: Add GormNSMenuView.m * Palettes/0Menus/GormNSMenu.m: Override methods to prevent changing style to Mac style for menu being edited. * Palettes/0Menus/GormNSMenuView.[mh]: New class overrides methods to prevent switching style to Mac style for menu being edited. * Palettes/0Menus/palette.table: Added substitution rule for NSMenuView. 2007-06-27 19:25-EDT Gregory John Casamento * GormCore/GormViewEditor.m: Correct bug#20274. Changed call displayIfNeededInRectIgnoringOpacity: to displayRectIgnoringOpacity: 2007-04-29 17:08-EDT Gregory John Casamento * English.lproj/GormViewSizeInspector.gorm: Correct bug#19640 * GormInfo.plist: update 2007-03-17 Gregory John Casamento * Version: 1.2.0 2007-03-08 Fred Kiefer * Palettes/3Containers/GormTabViewAttributesInspector.m (-ok:): Handle changed NSTabViewType enumerator values correctly. 2007-02-21 Matt Rice * GormLib/IBResourceManager.m (+registerResourceManagerClass:): Post an IBResourceManagerRegistryDidChangeNotification. 2007-02-04 Matt Rice * GormCore/GormDocument.m (_real_close): New function. (handleNotification:): Move document closing code to _real_close. (close:): Call _real_close. 2006-12-27 23:01-EST Gregory John Casamento * Gorm.m: [Gorm init] added code to force menu interface style to NSNextStepInterfaceStyle. 2006-10-04 Matt Rice * Palettes/3Menus/GormTableViewEditor.m: Start a connection when control-mousing the selected table column. 2006-12-03 19:54-EST Gregory John Casamento * GormCore/GormDocument.h: Change declaration for window member from NSWindow to GormDocumentWindow. * GormCore/GormDocument.m: Move cast from call to setDocument: to call to _docWindow private method. 2006-12-03 19:34-EST Gregory John Casamento * GormCore/GormDocument.m: Cast window for call of setDocument: method in awakeFromNib. * GormCore/GormDocumentWindow.h: Add setDocument: method. 2006-12-02 Matt Rice * Palettes/0Menus/GormMenuEditor.m (-mouseDown:): Call startConnecting. * GormCore/GormViewEditor.m (-startConnectingObject:withEvent:): Ditto. * GormCore/GormObjectEditor.m (-mouseDown:): Ditto. * GormCore/GormDocument.m (changeToViewWithTag:): Don't change the selection if connecting. * GormCore/GormResourceManager.m: Revert previous commit. * Gorm.m (-startConnecting:): Remove checks for a nil connectDestination. 2006-11-27 Matt Rice * GormCore/GormResourceManager.m: Temporarily comment out some code. 2006-11-23 22:23-EST Gregory John Casamento * English.lproj/GormDocument.gorm: Move initial position of Gorm document window back to the lower left of the screen. 2006-11-23 11:03-EST Gregory John Casamento * Version: 1.1.0 (also updated version requirements.) 2006-11-18 Matt Rice * GormCore/GormDocumentWindow.[h,m]: Add copyright headers. 2006-11-18 Matt Rice * GormCore/GNUmakefile: Add GormDocumentWindow.[h,m]. * GormCore/GormResourceManager.m: Add code to handle image/sound/header files. * GormCore/GormDocument.[h,m]: Add -viewWithTag: method. * GormCore/GormClassEditor.m: Remove dragging destination code for resources. * GormCore/GormResourceEditor.m: Ditto. * GormCore/GormObjectEditor.m: Ditto. (addObject:): Change the editor to the GormObjectEditor. * GormCore/GormDocument.m: Register the window for dragged types. Implement -viewWithTag:. * GormCore/GormDocumentWindow.[h,m]: New subclass of NSWindow which handles drag and drop to GormResourceManager. * GormCore/GormDocument.gorm: Set the main document window to a GormDocumentWindow class. 2006-11-15 Nicola Pero * Documentation/Examples/Controller/GNUmakefile: Do not set GNUSTEP_INSTALLATION_DIR. * Documentation/Examples/SimpleApp/GNUmakefile: Same change. 2006-11-11 00:04-EST Gregory John Casamento * Palettes/2Controls/GormNSSliderInspector.gorm: Added switch and textfield to hold the number of tickmarks. * Palettes/2Controls/GormSliderAttributesInspector.[hm]: Added method and ivar to handle tick marks. 2006-10-29 19:21-EST Gregory John Casamento * Palettes/3Containers/GormTableViewEditor.m: Add scrollToPoint: method to call the super_view. Corrects bug #18143. 2006-10-28 09:41-EDT Gregory John Casamento * English.lproj/GormClassEditor.gorm: Add tool tips for button and for pulldown. 2006-10-27 Matt Rice * Palettes/3Containers/GormTableViewEditor.m: Change documentRect to documentVisibleRect. 2006-10-23 01:23-EDT Gregory John Casamento * English.lproj/GormHelpInspector.gorm: Change resize properties. * GormCore/GormHelpInspector.m: in revert: blank text field when no connections are retrieved. 2006-10-23 01:14-EDT Gregory John Casamento * English.lproj/GormHelpInspector.gorm: Help inspector .gorm file. * GNUmakefile: Add .gorm file. * GormCore/GNUmakefile: Add new class. * GormCore/GormConnectionInspector.m: Call [super ok:] from ok: method. * GormCore/GormHelpInspector.[hm]: Implemented the beginnings of the help inspector. * GormCore/GormObjectEditor.m: Add helpInspectorClassName implementation to NSView category. 2006-10-21 23:51-EDT Gregory John Casamento * Palettes/3Containers/GormNSTableViewInspector.gorm: Added connection from tag form to tagForm instance variable. * Palettes/3Containers/GormTableViewAttributesInspector.m: Cleaned up includes. 2006-10-21 16:06-EDT Gregory John Casamento * GormCore/GormConnectionInspector.m: Added awakeFromNib method to call setDoubleAction: on the newBrowser (connection) object so that double click will now cause a connection to be made. * GormCore/GormGenericEditor.m: Initialize local variables in refreshCells method. 2006-10-21 11:45-EDT Matt Rice * Palettes/3Containers/GormTableViewEditor.m: Implement documentRect. Since the editor is the table's superview, it will take its size from the editor. Corrects bug#18073 Patch committed by Gregory John Casamento 2006-10-20 20:08-EDT Gregory John Casamento * GormCore/GNUmakefile * GormLib/GNUmakefile * GormLib/Version * GormObjCHeaderParser/GNUmakefile * GormObjCHeaderParser/Version * GormPrefs/GNUmakefile: Modify GNUmakefiles to use Version to properly name .so libraries. 2006-10-19 23:11-EDT Gregory John Casamento * GormCore/GormClassManager.m: Retain File's Owner setting, if class is being updated. Correction for bug #18035 2006-10-19 22:56-EDT Gregory John Casamento * GormCore/GormClassManager.[hm]: Added actionExists:onClassNamed: and outletExists:onClassNamed: methods to query the existence of a given action/outlet on a given class. * GormCore/GormDocument.[hm]: Added refreshConnectionsForClassNamed: method. * Images/GormFile.tiff: Added "gorm" in the center to make it obvious which type this is for. * Images/GormNib.tiff: Added "nib" in the center to make it obvious which type this is for. Correction for bug #18035 2006-10-18 14:03-EDT Gregory John Casamento * Images/FileIcon_gmodel.tiff * Images/GormNib.tiff * Images/GormPalette.tiff: Redid icons. 2006-10-15 19:32-EDT Gregory John Casamento * Images/GormFile.tiff: New Gorm file icon, based on new Gorm icon. * Images/GormTesting.tiff: New testing icon. * Images/Gorm.tiff: Switch to icon by Jesse Ross. 2006-10-10 22:46-EDT Gregory John Casamento * GNUmakefile: Install into SYSTEM domain by default. 2006-10-10 21:28-EDT Gregory John Casamento * GormLib/IBInspector.m: Remove uneeded call to [window setDocumentEdited:] in touch: method. * Palettes/2Controls/GormButtonAttributesInspector.m: In ok: call [super ok:]. 2006-10-10 20:56-EDT Gregory John Casamento * English.lproj/GormClassEditor.gorm: Make button momentary push and remove the image. * English.lproj/GormPrefGeneral.gorm: Change box title. * GormCore/GormClassEditor.[hm]: Change switchView to switchViewToDefault, add method toggleView:, add code to change image as appropriate. * GormPrefs/GormGeneralPref.m: Remove notification in classesAction: so that the default changes don't effect all class editors. 2006-10-10 00:37-EDT Gregory John Casamento * English.lproj/GormClassEditor.gorm: Aligned the toggle with the classesView. 2006-10-09 23:54-EDT Gregory John Casamento * English.lproj/GormClassEditor.gorm: Added button and search image. * GNUmakefile: Added new tiff files to images. * GormCore/GormClassEditor.m: Added toggleView: method. * Images/browserView.tiff: Browser image. * Images/outlineView.tiff: Outline image. 2006-10-09 Nicola Pero If you further modify any makefile using ProjectCenter, manually edit it before committing removing any line that sets GNUSTEP_INSTALLATION_DIR. * GNUmakefile: Do not try to set GNUSTEP_INSTALLATION_DIR. * Documentation/GNUmakefile: Same change. * GormCore/GNUmakefile: Same change. * GormObjCHeaderParser/GNUmakefile: Same change. * GormPrefs/GNUmakefile: Samce change. 2006-10-08 20:32-EDT Gregory John Casamento * Resources/ClassInformation.plist: Add NSSearchField and NSSearchFieldCell. 2006-10-06 Richard Frith-Macdonald * GormCore/GormPalettesManager.m: rewrite code to set up drag image so we avoid glitches on the pallette view (we no longer use the pallette window directly as the cached image window) and ensure that the image dragged is all copied correctly to avoid the glitches when dragging BSBox and NSScrollView items. 2006-10-06 00:16-EDT Gregory John Casamento * GormCore/GormClassEditor.m: Minor cleanup in handleNotification: method. 2006-10-05 13:16-EDT Gregory John Casamento * English.lproj/GormClassEditor.gorm: Added new gorm file to hold classes view contents as well as search and operations drop down. * English.lproj/GormDocument.gorm: Removed search and drop down * GNUmakefile: Added new gorm file. * GormCore/GormClassEditor.h: new outlets classesView and mainView, added declarations for methods createSubclass:, createClassFiles:, instantiateClass:, removeClass: * GormCore/GormClassEditor.m: Changes to methods to use the above. * GormCore/GormDocument.h: Removed duplicate declarations. * GormCore/GormDocument.m: Remove code for methods and replace with simple calls to the editor. * Palettes/2Controls/GormBoxAttributesInspector.m: ok: and revert: changed to convert to integer. 2006-10-04 22:35-EDT Gregory John Casamento * GormCore/GormCustomView.m: Minor cleanup in initWithFrame: * GormCore/GormGormWrapperLoader.m: Added logic to _repairFile to correct issue with views that don't have a name in the nametable. * GormCore/GormViewWithContentViewEditor.m: Properly add the subview back into the document in ungroup method. 2006-10-04 00:12-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Make connection to fileType in GormFilePrefsManager. * GormCore/GormDocumentController.m: Move the window when "New Application" is selected. * GormCore/GormDocument.m: Add call in awakeFromNib to setFileTypeName:. * GormCore/GormFilePrefsManager.h: add setFileTypeName: and fileTypeName. * GormCore/GormFilePrefsManager.m: add setFileTypeName: and fileTypeName. * Palettes/4Data/GormTextViewEditor.m: Remove commented out windowAndRect:forObject: 2006-10-01 23:07-EDT Gregory John Casamento * GormCore/GormClassEditor.m: Correct issue with class selection in deleteSelection method. 2006-10-01 22:50-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Remove some extra classes. 2006-10-01 22:23-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Added section in file section to show fileType. * GormCore/GormFilePrefsManager.m: Changed version number from 1,1,0 to 1,1,2. * GormCore/GormInspectorsManager.m: Removed kludge from setCurrentInspector:. * GormCore/GormScrollViewEditor.m: Remove code which returns the table view editor in editorClassName. In mouseDown: remove check in mouseDown: for NSScroller and subclasses. * GormCore/GormViewEditor.h: Declare frameDidChange: * Palettes/3Containers/GormTableViewEditor.m: Remove redundant implementation of performDragOperation:. Call draggingUpdated instead. * Palettes/4Data/DataPalette.m: Change minimum size. * Palettes/4Data/GormTextViewEditor.m: Add handleNotification: and add initWithObject:inDocument:. 2006-09-30 23:09-EDT Gregory John Casamento * GormCore/GormGModelWrapperLoader.m: Cleanup NSLog() calls. 2006-09-30 12:00-EDT Gregory John Casamento * GormCore/GormClassManager.h: Added declaration findByClassName: * GormCore/GormClassManager.m: Added findClassByName: method to find classes with partial text matches. * GormCore/GormDocument.m: Modified controlTextDidChange: to call findClassByName:. * GormCore/GormGModelWrapperLoader.m: Change className to cm in initWithModelUnarchiver: to avoid warning. 2006-09-29 22:56-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Added "Remove" to Operations menu. 2006-09-29 21:59-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Added "Operations" item to prevent accidental subclassing. Aligned with side of view and changed resizing properties. 2006-09-28 22:27-EDT Gregory John Casamento * GormCore/GormClassManager.m: Allow addClassNamed:... to accept arguments superClass, actions, and outlets as nil. * GormObjCHeaderParser/OCClass.m: Correctly recognize a category in [OCClass parse]; Corrects bug#17804. 2006-09-28 20:38-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Added search field and drop down for loading reading and subclassing. * GormCore/GormClassManager.m: Removed sorting from allSuperclassesOf: * GormCore/GormDocument.m: Added delegate method for search field. Implemments suggestions in bug#17802 (Change request). 2006-09-28 00:43-EDT Gregory John Casamento * Resources/Defaults.plist: Make the browser classes view the default. 2006-09-28 00:36-EDT Gregory John Casamento * GormCore/GormClassEditor.m: Correct problem which caused class inspector to loose focus. * GormInfo.plist: Update version to reflect SVN. * GormPrefs/GormGuidelinePref.m: Eliminate warning. 2006-09-27 22:28-EDT Gregory John Casamento * GormCore/GormClassManager.m: Sort classnames in subClassesOf:, allSuperclassesOf:, allSubclassesOf:, allCustomSubClassesOf:. 2006-09-13 23:19-EDT Gregory John Casamento * Palettes/1Windows/GNUmakefile: Added new classes and interface. * Palettes/1Windows/GormDrawerAttributesInspector.gorm: Inspector interface. * Palettes/1Windows/GormDrawerAttributesInspector.[hm]: Inspector. * Palettes/1Windows/inspectors.m: Added implementation for inspectorClassName. 2006-09-12 23:10-EDT Gregory John Casamento * GormCore/GormWindowEditor.m: Remove IBApplicationAdditions category. * Palettes/1Windows/DrawerSmall.tiff: icon for NSDrawer in objects view. * Palettes/1Windows/Drawer.tiff: Icon for drawer on palette * Palettes/1Windows/GNUmakefile: Added new files. * Palettes/1Windows/inspectors.m: Add IBApplicationAdditions category for NSWindow (from GormWindowEditor above) and add category for NSDrawer. * Palettes/1Windows/WindowsPalette.h: Moved interface for WindowsPalette here. * Palettes/1Windows/WindowsPalette.m: Removed interface and added #include * Resources/ClassInformation.plist: Added ivars which were missing for NSDrawer. 2006-08-27 01:37-EDT Gregory John Casamento * GormCore/GormBoxEditor.m: Check to see if the subview responds to destroyAndListSubviews. * GormCore/GormViewWithContentViewEditor.m: [GormViewWithContentViewEditor ungroup] added local variable "v" to hold the view. * Gorm.m: Remove NSLog from ungroup method. Partial correction for bug#17538. 2006-08-20 12:23-EDT Gregory John Casamento * GormCore/GormDocument.m: Modify outdated "upgrade" warning in fileWrapperRepresentationOfType:. * GormCore/GormGormWrapperLoader.m: Set .gorms of version 1 as old in buildFileWrapperDictionaryWithDocument:. 2006-08-19 19:18-EDT Gregory John Casamento * Palettes/2Controls/GormFormAttributesInspector.m: Minor cleanup in ok: * Palettes/2Controls/GormNSFormInspector.gorm: Added missing connections. 2006-08-16 00:54-EDT Gregory John Casamento * GormCore/GormDocument.m: Simplify message in fileRepresentationOfType:. * GormCore/GormNibWrapperBuilder.m: Correct test for menu which was causing the app to crash in openItems method. 2006-08-15 17:50-EDT Gregory John Casamento * GormCore/GormWrapperLoader.m: Correct problem introduced in previous commit in [GormWrapperLoader loadFileWrapper: withDocument:]; 2006-08-15 02:16-EDT Gregory John Casamento * GormCore/GormFilePrefsManager.h: Add declaration for nibDataWithOpenObjects: * GormCore/GormFilePrefsManager.m: Rename nibData to nibDataWithOpenObjects: * GormCore/GormNibWrapperBuilder.m: Create the IBOpenObjects list in buildWrapper... * GormCore/GormResource.m: Properly assign the data to the ivar in initWithData:... * GormCore/GormWrapperBuilder.m: Correct image loading and saving issue. * GormCore/GormWrapperLoader.m: Correct image problem. 2006-08-14 21:48-EDT Gregory John Casamento * GormCore/GormNibWrapperBuilder.m: Properly encode oids as integers in -[NSIBObjectData initWithDocument:] since bug#17426 is corrected. 2006-08-14 01:04-EDT Gregory John Casamento * GormCore/GormNibWrapperBuilder.m: Temporary workaround in -[NSIBObjectData initWithDocument:] until 17426 is resolved. 2006-08-13 21:48-EDT Gregory John Casamento * GormCore/GormNibWrapperBuilder.m: Correct issue which was causing IB to complain about the File's Owner not having an oid in [NSIBObjectData initWithDocument:]. * GormCore/GormWrapperBuilder.m: Correct issue discovered by Benhur Stein that was causing images not to be saved in the wrapper correctly in buildFileWrapperDictionaryWithDocument: * Gorm.m: Remove uneeded application:openFile: method which was commented out. 2006-08-11 11:13-EDT Gregory John Casamento * GormCore/GormDocumentController.m: Default backing store changed in newDocument: to NSBackingStoreBuffered instead of NSBackingStoreRetained. 2006-08-11 01:53-EDT Gregory John Casamento * GormCore/GormCustomView.m: Corrected encoding issues with custom view in encodeWithCoder: it now properly encodes itself as an NSCustomView. 2006-08-09 02:29-EDT Gregory John Casamento * GormCore/GormCustomView.m: encodeWithCoder: changes to encode the customview. * GormCore/GormNibWrapperBuilder.m: Add oids for connectors and also add one for the owner. 2006-08-06 00:37-EDT Gregory John Casamento * GormCore/GormFilesOwner.m: Remove implementation of initWithCoder: * GormCore/GormNibWrapperBuilder.m: In -[NSIBObjectData initWithDocument:] add code to set NSFramework key. 2006-08-05 08:46-EDT Gregory John Casamento * GormCore/GormClassManager.m: Fixes to encode classes.nib file properly. * GormCore/GormFilePrefsManager.m: Added code to encode a dummy info.nib for nib saving. * GormCore/GormFilesOwner.m: Code to encode this as a NSCustomObject in encodeWithCoder: * GormCore/GormNibWrapperBuilder.m: in -[NSIBObjectData initWithDocument:] added code to pull the names and generate OIDS for the .nib properly. 2006-08-01 00:12-EDT Gregory John Casamento * GormCore/GNUmakefile: Add GormNibWrapperBuilder.m * GormCore/GormClassManager.m: Correct nibData method to properly output information in classes.nib format. * GormCore/GormDocument.m: Slight improvement to windowAndRect: forObject:. * GormCore/GormFilePrefsManager.[hm]: Add nibData method. * GormInfo.plist: Change GSNibFileType entry to "Editor" * GormNibWrapperBuilder.m: Class to write nibs. 2006-07-18 23:04 Gregory John Casamento * GormCore/GormFunctions.m: Remove the width and height adjustment from the function minimalContainerFrame(). * GormCore/GormPrivate.m: Add the encoding logic for saving NSCustomObject. * GormCore/GormViewWindow.m: Add the width and height here, instead of in the function. 2006-07-16 23:13 Gregory John Casamento * GormCore/GormFunctions.h: * GormCore/GormFunctions.m: * GormCore/GormViewWindow.m: Improved placement of standalone views when being loaded by .gorm files. 2006-07-15 18:34 Gregory John Casamento * Images/Gorm.tiff: Slightly improved icon. Based on suggestions from people on #gnustep. More improvements to come. 2006-07-12 00:31 Gregory John Casamento * Gorm.m: in testInterface, make the item with terminate: the "Quit Test" item, if none is found add one. 2006-07-10 01:32 Gregory John Casamento * GormCore/GormGormWrapperLoader.m: in loadFileWrapper:withDocument: removed the check for the info file. Some earlier versions of the .gorm wrapper don't have this file. 2006-07-09 23:27 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Replace the destination or source of any connection which connects to an NSWindowTemplate object. 2006-07-09 17:59 Gregory John Casamento * GormCore/GormViewEditor.m: Correction for issue which was causing size inspector not to update when a view was moved or changed. Removed code in editoedObjectFrameDidChange: and frameDidChange: to correct the problem. 2006-07-09 13:04 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Correct test for customClass or name in loadFileWrapper:withDocument:. 2006-07-09 11:18 Gregory John Casamento * GormCore/GormCustomView.m: initWithCoder: move call to get customView className after the if, so that it's properly set. * GormCore/GormNibWrapperLoader.m: Remove commented out code. 2006-07-09 10:46 Gregory John Casamento * English.lproj/GormDocument.gorm: New version profile added to pull down. * GormCore/GormDocument.m: Encode topLevelObjects first in encodeWithCoder: and decode first in initWithCoder:. * GormCore/GormGormWrapperBuilder.m: Changes for version 2 of GSNibContainer. * GormCore/GormGormWrapperLoader.m: Changes for version 2 of GSNibContainer. * GormCore/GormNibWrapperLoader.m: No longer explicitly get the main menu. The main menu is the only menu that is a top level object, so let it determine itself. * GormCore/GormWrapperBuilder.m: Changes to prevent sending back a file wrapper if the dictionary returned is nil in buildWrapperWithDocument:. * Resources/VersionProfiles.plist: New version profile. 2006-07-05 20:17 Gregory John Casamento * Gorm.m: In testInterface, assign top level objects from the testContainer to topObjects, a temporary var, so that they can be properly cleaned up. 2006-07-05 19:56 Gregory John Casamento * Gorm.m: Correct bug introduced at some point in testInterface which causes the test mode not to display a menu when the application has no menu. It is supposed to show a small test menu so that test mode can be exited. 2006-07-05 00:02 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Added check to prevent error if customclass or name comes back nil. 2006-07-03 17:18 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Remove category for NSView which provided setSuperview as it is no longer needed. 2006-07-02 00:53 Gregory John Casamento * GormCore/GormCustomView.[hm]: If CustomView includes some subviews in a nib file make the custom view into the best possible superclass of the custom class indicated. Also store the className in a variable instead of depending on "stringValue". 2006-06-24 20:49 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Make _isTopLevelObject: into a normal method, not private. 2006-06-24 20:41 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Change -[GormNibWrapperLoader _isTopLevelObject:] to use the "objects" map. This map is used to maintain parent/child object relationships in the .nib file. * Gorm.m: in -[Gorm testInterface] change the warning to use multiple lines. On smaller screens it runs over. 2006-06-24 10:36 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Remove swappedObjects ivar and also remove from -init and -dealloc in GormNibWrapperLoader. 2006-06-24 10:22 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Use the "classes" map properly in -[GormNibWrapperLoader loadWrapperFile:withDocument:]. * main.m: Correct comment. 2006-06-23 00:57 Gregory John Casamento * GormCore/GormGModelWrapperLoader.m: call -[NSDocument updateChangeCount:] to clear changes so that the document isn't flagged as needing to be saved right after load. * GormCore/GormNibWrapperLoader.m: Use the objects in the map returned by -names in -loadFileWrapper:withDocument:. 2006-06-18 14:40 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Added filter to remove NSIBHelpConnector instances from the connections array. 2006-06-17 20:39 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Remove resizing change from loadFileWrapper:withDocument: since it was moved to NSWindowTemplate nibInstantiate. 2006-06-17 12:45 Gregory John Casamento * GormCore/GormInternalViewEditor.m: Removed previous resize in activate method. * GormCore/GormNibWrapperLoader.m: Code to properly resize the window after loading. 2006-06-17 10:54 Gregory John Casamento * GormCore/GormCustomView.m: Return self in the conditional that reads the custom view. * GormCore/GormInternalViewEditor.m: Reset the current view size so that the window is properly displayed. * Palettes/1Windows/GormNSWindow.m: Send deferred as "NO" always. 2006-06-17 06:53 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Added code to clear changes so that the nib loads without showing the document as changed. Also added code to correct the missing colon in some nib files for certain methods so that connections are correctly made. * Resources/ClassInformation.plist: Addition of missing methods on NSFirst. 2006-06-17 06:25 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Fix for connections to NSOwner. 2006-06-15 00:48 Gregory John Casamento * GormCore/GModelDecoder.m: Removed old class. * GormCore/GNUmakefile: Added new GormGModelWrapperLoader class * GormCore/GormClassManager.m: Minor cleanup * GormCore/GormDocument.m: Temporarily comment out release of file prefs window. * GormCore/GormGModelWrapperLoader.m: new loader class for GModel. * GormCore/GormNibWrapperLoader.m: Minor cleanup * GormInfo.plist: Added GModel entry back in and made both GModel and Nib "Viewer" entries. 2006-06-14 22:45 Gregory John Casamento * GormCore/GormDocument.[hm]: Added new deactivateEditors and reactivateEditors methods. * GormCore/GormGormWrapperBuilder.m: Moved connection name/object swap here for gorm format. * Gorm.m: Calling new deactivate/reactivateEditors 2006-06-14 01:42 Gregory John Casamento * GormCore/GNUmakefile: Addition of GormNibWrapperLoader to the makefile. * GormCore/GormClassManager.[hm]: Correction for nib classes loading. * GormCore/GormDocument.h: Added include for GSNibContainer * GormCore/GormDocument.m: In NSNibConnector category which implements "isEqual" check if it's the same "kind of class". If not return NO. * GormCore/GormGormWrapperBuilder.m: Corrections for connection persistence issues. * GormCore/GormGormWrapperLoader.m: Corrections for connection persistence issues. * GormCore/GormNibWrapperLoader.m: Initial cut at class to build the nib wrapper. * GormCore/GormPrivate.[hm]: Added encoding changes to GormObjectProxy and GormCustomView to allow them to handle NSCustomObject and NSCustomView respectively * Gorm.m: In testing, don't substitute the browser either. 2006-06-10 21:04 Gregory John Casamento * GormCore/GormGormWrapperLoader.m: removed uneeded sound/image logic. That is in the parent class. 2006-06-10 10:28 Gregory John Casamento * GormCore/GormDocument.m: Removed code that does name/obj substitution in connections. * GormCore/GormGormWrapperBuilder.m: Added code which handles name/obj substitution. * Gorm.m: Corrected issues with testing. 2006-06-10 09:24 Gregory John Casamento * GormCore/GModelDecoder.m: Changes to make this compile with new modifications. * GormCore/GNUmakefile: Addition of new files. * GormCore/GormCustomView.m:Encoding changes for NSCustomView. * GormCore/GormDocumentController.m: Removed touch, so that it is possible to quit when first creating a new document, this is the way other document oriented apps behave. * GormCore/GormDocument.[hm]: Added container methods and coding methods. * GormCore/GormGormWrapperBuilder.m: Class whic writes gorm files. * GormCore/GormGormWrapperLoader.m: Class which loads gorm files * GormCore/GormPrivate.[hm]: Simplification of init call to GormObjectProxy. * GormCore/GormWrapperBuilder.[hm]: Wrapper builder * GormCore/GormWrapperLoader.[hm]: Wrapper loader * Gorm.m: Change testInterface to encode the doc. 2006-06-05 21:20 Gregory John Casamento * GormCore/GormDocumentController.m: touches the initial document so that the user cannot simply quit after. Also sets the initial fileType. * GormCore/GormDocument.m: Compose the names used in Gorm name table using the base class name (without NS or GS) and a number in parenthesis starting with 0. A new panel or window might look like Window(0) or Panel(1). 2006-06-05 01:46 Gregory John Casamento * GormCore/GormClassManager.h: Added classes.nib loading and saving method declarations. * GormCore/GormClassManager.m: Added classes.nib loading and saving method implementations. * GormCore/GormDocument.h: Add NSObject to id declaration for container ivar. * GormCore/GormDocument.m: Minor cleanup. * GormCore/GormProtocol.h: Minor cleanup. 2006-06-04 22:11 Gregory John Casamento * ChangeLog * English.lproj/GormDocument.gorm * English.lproj/Gorm.gorm * GormCore/GModelDecoder.m * GormCore/GNUmakefile * GormCore/GormClassManager.h * GormCore/GormClassManager.m * GormCore/GormDocument.h * GormCore/GormDocument.m * GormCore/GormFilePrefsManager.h * GormCore/GormFilePrefsManager.m * GormCore/GormFilesOwner.m * GormCore/GormImageEditor.m * GormCore/GormImage.h * GormCore/GormImage.m * GormCore/GormProtocol.h * GormCore/GormResource.h * GormCore/GormResource.m * GormCore/GormSound.h * GormCore/GormSound.m * GormCore/GormViewWithContentViewEditor.m * GormInfo.plist * GormLib/IBDocuments.h * GormLib/IBPalette.m * Gorm.m * Palettes/0Menus/GormNSMenu.m * Palettes/1Windows/GormNSWindow.m * Version: Merged from NibCompatibility branch. 2006-06-03 11:44 Gregory John Casamento * English.lproj/Gorm.gorm: Add GormDocumentController as delegate to Gorm. * GormCore/GormDocumentController.m: Comment. * GormCore/GormDocument.h: Comments and containerClass declaration. * GormCore/GormDocument.m: containerClass implementation and use. * GormLib/IBDocuments.h: More descriptive comment. * GormLib/IBPalette.m: Remove IBPaletteDocument, since this is not used. * Gorm.m: Remove applicationShouldTerminate, since it is handled by GormDocumentController as the app delegate. 2006-06-01 23:06 Gregory John Casamento * GormInfo.plist: Correct NSName entries. 2006-05-30 00:03 Gregory John Casamento * GormCore/GormDocumentController.h * GormCore/GormDocumentController.m: New file. * Gorm.m: Reimplemented activeDocument to use the document controller. 2006-05-29 22:55 Gregory John Casamento * GormCore/GormDocument.m: Removed some unused variables in fileWrapperRepresentationOfType:. 2006-05-29 22:50 Gregory John Casamento * GormCore/GormDocument.[hm]: Added scmDirWrapper and private method saveSCMDirectory to preserve the .svn/CVS directories, if they are there. * GormInfo.plist: GormDocument will be responsible for saving/reading all types. 2006-05-29 18:38 Gregory John Casamento * GormCore/GormImage.m: Corrected minor issue in initWithData:... 2006-05-29 11:48 Gregory John Casamento * GormCore/GormDocument.h: Added new ivars for holding images/sounds temporarily. * GormCore/GormDocument.m: loadFileWrapperRepresentation:ofType: modified to use images/sounds arrays. The awakeFromNib method now pulls objects from those arrays and inserts them into the GormImageEditor/GormSoundEditor instances when the nib is fully loaded. 2006-05-29 10:39 Gregory John Casamento * GormCore/GormDocument.m: Override displayName and keepBackupFile. * Palettes/1Windows/GormNSWindow.m: Remove test code. 2006-05-28 23:31 Gregory John Casamento * GormCore/GormProtocol.h: Removed some methods not needed anymore. 2006-05-28 23:03 Gregory John Casamento * English.lproj/Gorm.gorm: Removed uneeded methods from Gorm class. * GormCore/GormDocument.[hm]: Add sender as a parameter to translate and exportStrings. * Gorm.m: Removed some uneeded checks in validateMenu: also removed uneeded methods which were used to forward to GormDocument. * Palettes/0Menus/GormNSMenu.m: Can't become key. 2006-05-28 19:36 Gregory John Casamento * English.lproj/GormDocument.gorm: Reparented GormDocument to be a subclass of NSDocument and also redid connections. * English.lproj/Gorm.gorm: Added new GormDocumentController class. redid connections to save/new/and loadDocument methods for NSDocument subclasses. * GormCore/GModelDecoder.m: Changed to reflect changes to document. * GormCore/GNUmakefile: Added new classes. * GormCore/GormClassManager.[hm]: Added methods to allow initialization and saving to NSData * GormCore/GormDocument.[hm]: Removed save* and load* methods, implemented loadFileWrapperRepresentation:ofType: and fileWrapperRepresentationOfType: for NSDocument. * GormCore/GormFilePrefsManager.[hm]: Added methods to allow initialization from data. * GormCore/GormImageEditor.m: Changed comment. * GormCore/GormImage.[hm]: Allow init with data. * GormCore/GormProtocol.h: Removed superceded methods. * GormCore/GormResource.[hm]: Allow initialization with data. * GormCore/GormSound.[hm]: Changed to allow initialization with data. * GormCore/GormViewWithContentViewEditor.m: Fixed warning. * GormInfo.plist: Updated information for use with NSDocument. * Gorm.m: Remove superceded methods. * Palettes/1Windows/GormNSWindow.m: Temporary debugging method. 2006-05-20 18:19 Gregory John Casamento * GormCore/GormFilePrefsManager.m: Updated to 1.0.9 * GormInfo.plist: Updated to 1.0.9. * [NibCompatibility]: Merged from this branch to HEAD. 2006-01-08 14:03 Gregory John Casamento * GormCore/GormPrivate.m: Removed deprecated templates. * GormCore/GormViewEditor.m: Removed problem which was causing a notification loop. [NibCompatibility] 2006-05-20 04:47 Gregory John Casamento * Version 1.0.8 2006-05-20 04:46 Gregory John Casamento * ANNOUNCE * Documentation/news.texi * GormCore/GormFilePrefsManager.m * GormInfo.plist * NEWS * Version: Changes for 1.0.8 bugfix release. 2006-05-16 00:56 Gregory John Casamento * GormCore/GormDocument.m: Improved logic in detachObject: to clear the selection in the parent editor and reset the selection in the document to prevent any problems when an object is removed. Also added code for removeAllInstancesOfClass: from GormObjectEditor. * GormCore/GormFunctions.m: allSubviews shouldn't return the view which is initially passed. * GormCore/GormInternalViewEditor.m: simplified deleteSelection because of changes to detachObject: * GormCore/GormObjectEditor.[hm]: Remove removeAllInstancesOfClass: from the header and class. 2006-05-15 22:58 Gregory John Casamento * GormCore/GormClassEditor.m: Reload all on calls to reloadData * GormCore/GormDocument.m: in detachObject: make certain that window is closed and released. Corrects bug#16587. 2006-05-15 21:28 Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist: Update to 1.0.7. 2006-05-01 07:45 David Ayers * Palettes/3Containers/GormNSTableView.m ([-tableView:objectValueForTableColumn:row:]): Do not assume that the identifier of the table column is an NSString. 2006-04-30 09:15 David Ayers * GormCore/GormCustomClassInspector.m ([-_replaceWithCellClassForClassName:]): Cast to NSCell to invoke type to disambiguate incompatible method signatures. 2006-04-08 15:16 Gregory John Casamento * Version 1.0.6 2006-04-08 15:15 Gregory John Casamento * GormCore/GormFilePrefsManager.m 2006-04-08 14:40 Gregory John Casamento * ANNOUNCE * Documentation/news.texi * NEWS * Version: Changed for release 1.0.6. 2006-04-06 07:29 Gregory John Casamento * GormInfo.plist: Update date in info file. 2006-03-25 10:32 Gregory John Casamento * Palettes/4Data/GormNSNumberFormatterInspector.gorm: Change labels in inspector to clarify. 2006-03-24 17:34 Gregory John Casamento * Images/GormTesting.tiff: New testing icon * Palettes/2Controls/GormNSButtonInspector.gorm: * Palettes/2Controls/GormNSTextFieldInspector.gorm: * Palettes/4Data/GormNSImageViewInspector.gorm: Usability changes. Some inspectors had some "dead" space. 2006-03-21 20:03 Gregory John Casamento * Images/Gorm.tiff: Slight change so that .xpm renders a little more nicely when docking. 2006-03-21 19:54 Gregory John Casamento * GNUmakefile * GormInfo.plist * Images/Gorm.tiff: Improved icon. 2006-03-20 22:41 Gregory John Casamento * GNUmakefile: Added entries for new icons * GormInfo.plist: Added entries for new icons * Images/FileIcon_gmodel.tiff: Changed icon * Images/GormFile.tiff: New icon * Images/GormPalette.tiff: New icon * Images/GormTesting.tiff: Changed icon * Images/Gorm.tiff: Changed icon 2006-03-19 23:38 Gregory John Casamento * GormInfo.plist: Added 2006 * Images/centeralign_nib.tiff * Images/leftalign_nib.tiff * Images/rightalign_nib.tiff: Recreated images. 2006-03-19 22:42 Gregory John Casamento * GormInfo.plist: Update date. 2006-03-19 21:43 Gregory John Casamento * Images/GormEHCoil.tiff * Images/GormEHLine.tiff * Images/GormEVCoil.tiff * Images/GormEVLine.tiff * Images/GormMHCoil.tiff * Images/GormMHLine.tiff * Images/GormMVCoil.tiff * Images/GormMVLine.tiff: Improved images. 2006-03-18 20:12 Gregory John Casamento * GormCore/GormDocument.m: Generalize rule for adding documentView objects from a scrollview. * GormCore/GormInspectorsManager.m: Correct logic which selects the object to send to the inspector. * GormCore/GormScrollViewEditor.m: Cleanup code a little bit. 2006-03-16 06:33 Gregory John Casamento * GormCore/GormViewWithContentViewEditor.m: Correction related to bug#16049. There was an issue with moving a table column while the table was selected. 2006-03-11 20:40 Gregory John Casamento * GormCore/GormViewWithContentViewEditor.m: Minor formatting changes. * Palettes/4Data/DataPalette.m: Correction for bug#15988, patch by Matt Rice. 2006-03-11 16:57 Gregory John Casamento * Palettes/3Containers/GormTableViewEditor.m: Correction for bug#16050. 2006-03-10 01:24 Gregory John Casamento * GormCore/GormViewEditor.m: Correction for bug#16049 2006-03-09 05:18 Gregory John Casamento * Images/GormEHCoil.tiff * Images/GormEHLine.tiff * Images/GormEVCoil.tiff * Images/GormEVLine.tiff * Images/GormMHCoil.tiff * Images/GormMHLine.tiff * Images/GormMVCoil.tiff * Images/GormMVLine.tiff: Remade coil/lines to look cleaner. 2006-03-05 20:10 Gregory John Casamento * GormCore/GormPalettesManager.m: Correction for bug#15989 2006-03-04 19:44 Gregory John Casamento * Palettes/3Containers/GormTableViewEditor.m: Correction for bug#15987. 2006-02-22 22:52 Gregory John Casamento * Gorm.m: Overide arrangeInFront: so that when testing the interface it doesn't inadvertantly bring the edited window forward. 2006-02-20 08:54 Gregory John Casamento * GormCore/GormScrollViewEditor.m: Correction for bug#15817. Returning only GormScrollViewEditor was causing an issue with editing tables. 2006-02-19 12:07 Gregory John Casamento * Palettes/2Controls/GormTextFieldAttributesInspector.m: Correction for bug#15780. 2006-02-09 23:36 Gregory John Casamento * GormInfo.plist: Change "RELEASE" to SVN to indicate that 1.0.5 is an unstable version. 2006-02-06 21:06 Gregory John Casamento * Palettes/3Containers/GormNSTableViewInspector.gorm * Palettes/3Containers/GormTableViewAttributesInspector.m: Correction for bug#15642. 2006-02-03 21:56 Gregory John Casamento * GormCore/GormScrollViewAttributesInspector.m * GormCore/GormScrollViewEditor.m: Corrected problem with adding something to a scrollview. 2006-02-01 23:24 Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist * Version: Updated with new version information. 2006-02-01 22:08 Gregory John Casamento * Palettes/4Data/GormDateFormatterAttributesInspector.m: Correction for bug#15556 2006-01-25 05:21 Gregory John Casamento * Version 1.0.4 2006-01-21 00:19 Gregory John Casamento * GormCore/GormViewEditor.m: [GormViewEditor activate] do not send notifications about frame size changes, if the object is a standalone view. * GormCore/GormViewSizeInspector.m: [GormViewSizeInspector setObject:] Added code to enable/disable cells if view is standalone. 2006-01-17 22:03 Gregory John Casamento * ChangeLog * GormCore/GormViewEditor.m * GormCore/GormViewSizeInspector.m * Palettes/1Windows/GormWindowAttributesInspector.m * Palettes/1Windows/GormWindowSizeInspector.m: Merged changes from the baseline. 2006-01-16 23:19 Gregory John Casamento * GormCore/GormViewSizeInspector.m: Correction for a similar problem in the view size inspector. Added to call to abort editing. 2006-01-16 16:25 Gregory John Casamento * Palettes/1Windows/GormWindowSizeInspector.m: Correction for bug#13994. abortEditing call to all forms added to revert:. 2006-01-16 12:20 Gregory John Casamento * Palettes/1Windows/GormWindowAttributesInspector.m: Correction for bug#15236. In ok: method the newStyleMask variable wasn't properly initialized, this was causing the flags to be set 2006-01-08 14:03 Gregory John Casamento * GormCore/GormPrivate.m: Removed deprecated templates. * GormCore/GormViewEditor.m: Removed problem which was causing a notification loop. 2005-12-15 19:08 Gregory John Casamento * GormCore/GormDocument.m: Correction for crash on close after opening objects.gorm directly. Corrects bug#15178. 2005-12-14 22:08 Gregory John Casamento * GormCore/GormDocument.h: Declaration for new readableTypes method. * GormCore/GormDocument.m: Added readableTypes method to return the types accepted by GormDocument. * Gorm.m: Use readableTypes in application:openFile: corrects bug#15178 2005-11-19 09:57 Gregory John Casamento * Version 1.0.1 2005-11-14 09:59 Gregory John Casamento * Palettes/3Containers/GormTabViewEditor.m: Correction to tabView: shouldSelectTabViewItem: for gcc < 3.x compatibility. 2005-11-13 23:17 Gregory John Casamento * GormCore/GormCustomClassInspector.m: Correctly handle image/text cell in replaceWithCellClassForClassName:. 2005-11-13 Richard Frith-Macdonald * GormCore/GormFunctions.m: Use NSSearchPathForDirectoriesInDomains() to locate resources rather than broken use of NSOpenStepRootDirectory() 2005-11-12 16:32 Gregory John Casamento * GormCore/GormClassManager.m * GormCore/GormGenericEditor.h * GormCore/GormPalettesManager.m * GormCore/GormPrivate.h * GormObjCHeaderParser/OCHeaderParser.m * Palettes/0Menus/GormMenuAttributesInspector.m: Corrected minor compilation warnings. 2005-11-12 15:33 Gregory John Casamento * GormCore/GormScrollViewAttributesInspector.m: Corrected problem reported by Matt Rice with table column selection. 2005-11-04 00:20 Gregory John Casamento * GormCore/GormCustomClassInspector.m: Corrected problem with cell. 2005-11-02 20:17 Gregory John Casamento * GormCore/GormFilePrefsManager.m: Updated version to 1.0.1 * GormInfo.plist: Same * Palettes/2Controls/GormNSTextFieldInspector.gorm: Corrected resize issues. 2005-10-29 09:09 Gregory John Casamento * Version 1.0.0 2005-10-29 09:04 Gregory John Casamento * ANNOUNCE: Updated for 1.0 * Documentation/news.texi: Updated for 1.0 * INSTALL: Updated for 1.0 * NEWS: Updated for 1.0 * README: Updated for 1.0 * Version: Updated for 1.0 * GormCore/GormCustomClassInspector.m: Fixed minor problem updating cell. 2005-10-05 20:21 Gregory John Casamento * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Remove delegate from sizeForm and connect to ok: * Palettes/1Windows/GormWindowSizeInspector.m: Cleanup in ok: and other methods. 2005-10-05 fabien * Palettes/2Controls/GormButtonAttributesInspector.m : Add delegate method for forms 2005-10-05 00:21 Gregory John Casamento * Palettes/1Windows/GormNSWindowInspector.gorm: Corrected spelling of "deactivate" on Window Inspector. 2005-10-04 20:57 Gregory John Casamento * GormCore/GormScrollViewAttributesInspector.m: In category IBObjectAdditions, for editorClassName, return only GormScrollViewEditor. * GormCore/GormScrollViewEditor.m: Cleanup. 2005-09-29 19:38 Gregory John Casamento * GormCore/GormConnectionInspector.m: Corrected resizing attributes in the GormInspectorManager setCurrentInspector: method. * GormCore/GormInspectorsManager.m: Corrected resizing attributes for connect and revert buttons in init. 2005-09-25 14:40 Gregory John Casamento * GormCore/GormInspectorsManager.m: Additional correct in setCurrentInspector: 2005-09-25 12:54 Gregory John Casamento * English.lproj/GormInspectorPanel.gorm: Set resize options correctly. * GormCore/GormConnectionInspector.m: [GormConnectionInspector init] modified size of ok/revert buttons. * GormCore/GormDocument.m: Pull the archive type in [GormDocument saveGormDocument:] * GormCore/GormInspectorsManager.m: in setCurrentInspector: corrected issues with inspector resizing. 2005-09-15 00:53 Gregory John Casamento * GormCore/GormInspectorsManager.[mh]: Added origFrame to allow resetting the inspectorView frame to it's original size in setCurrentInspector:. * GormCore/GormPalettesManager.m: Removed old commented out code in init. 2005-09-12 22:15 Gregory John Casamento * GNUmakefile: Copy the .gorm file into the Resources. * GormCore/GormInspectorsManager.h: Use the inspector panel gorm. * GormCore/GormInspectorsManager.m: Use the inspector panel gorm. * English.lproj/GormInspectorPanel.gorm: corrects bug#13767. * English.lproj/GormDummyInspector.gorm: corrects bug#13767. 2005-09-04 10:17 Gregory John Casamento * Palettes/4Data/GormNSComboBoxAttributesInspector.m: In ok: performs a revert to show any changes which were made automatically as a result of other changes. 2005-09-04 10:00 Gregory John Casamento * Palettes/1Windows/GormWindowAttributesInspector.m * Palettes/1Windows/GormWindowSizeInspector.m * Palettes/2Controls/GormBoxAttributesInspector.m * Palettes/2Controls/GormColorWellAttributesInspector.m * Palettes/2Controls/GormMatrixAttributesInspector.m * Palettes/2Controls/GormNSTextFieldInspector.gorm * Palettes/2Controls/GormTextFieldAttributesInspector.m * Palettes/3Containers/GormTableColumnAttributesInspector.m * Palettes/3Containers/GormTableViewAttributesInspector.m * Palettes/4Data/GormNSComboBoxAttributesInspector.h * Palettes/4Data/GormNSComboBoxAttributesInspector.m * Palettes/4Data/GormNSComboBoxInspector.gorm * Palettes/4Data/GormTextViewAttributesInspector.m: Removed all extraneous and unecessary (and annoying) #warning messages. 2005-08-29 22:41 Gregory John Casamento * Palettes/2Controls/GormFormAttributesInspector.h: Added ivar autosizeSwitch. * Palettes/2Controls/GormFormAttributesInspector.m: Added code to handle autosize flag. * Palettes/2Controls/GormNSFormInspector.gorm: Added autosize flag * Palettes/2Controls/GormNSMatrixInspector.gorm: Box on bottom now reads "Options". 2005-08-29 19:40 Gregory John Casamento * GormCore/GormMatrixEditor.m: Corrected bug in editTitleWithEvent: which was causing a portion of the window to become transparent. 2005-08-19 00:24 Gregory John Casamento * GormCore/GormDocument.m: [GormDocument attachObject:toParent:] handle popup button items. * GormCore/GormFilePrefsManager.m: Updated version. * GormInfo.plist: Updated version. 2005-08-18 23:22 Gregory John Casamento * GormCore/GormDocument.m: retrieveObjectForParent:.. check for nil before placing in result array. 2005-08-18 22:21 Gregory John Casamento * GormCore/GormDocument.m: attachObject:toParent: added code to add menu items and submenus to document. 2005-08-18 21:32 Gregory John Casamento * GormCore/GormDocument.m: attachObject:toParent code to add all subviews of a view when it's added to the document. 2005-08-18 21:02 Gregory John Casamento * GormCore/GormDocument.m: attachObject:toParent: added code to insert the content view into the nametable and the parent->child connections. * GormCore/GormViewWithContentViewEditor.m: in the group* methods added code to "reparent" the objects so that the parent->child relationships are reset to represent the reflect the new relationship. 2005-08-18 20:21 Gregory John Casamento * GormCore/GormDocument.m: Remove commented out code. 2005-08-17 23:26 Gregory John Casamento * GormCore/GormDocument.m: attachObject:toParent: code to handle addition of tab view and items. * Palettes/3Containers/GormTabViewAttributesInspector.m: in ok: code to handle attaching and detaching from the document, when items are added and deleted. * Palettes/3Containers/GormTabViewEditor.m: Streamlined code in delegate. Corrects bug#14004. 2005-08-12 01:23 Gregory John Casamento * GormCore/GormClassEditor.m: Correction for crash when loading .gorm files via [NSApplication openFile:...]. 2005-08-11 23:00 Gregory John Casamento * GormCore/GormInspectorsManager.m: Removed explicit check for table or text view. * GormCore/GormScrollViewAttributesInspector.m: removed explicit check for table or text view. * Palettes/3Containers/inspectors.m: Added editorClassName * Palettes/4Data/GNUmakefile: Added new files. * Palettes/4Data/GormImageViewAttributesInspector.m: Pulled out IBObjectAdditions category * Palettes/4Data/GormTextViewAttributesInspector.[hm]: Change class name to GormTextViewAttributesInspector. * Palettes/4Data/GormNumberFormatterAttributesInspector.m: Split * Palettes/4Data/GormDateFormatterAttributesInspector.m: Split * Palettes/4Data/GormTextViewEditor.m: Split * Palettes/4Data/inspectors.m: Moved all IBObjectAdditions categories here. 2005-08-10 21:05 Gregory John Casamento * Palettes/3Containers/GormTableViewEditor.m: in pasteInSelection, pasteType:fromPasteboard:parent: w/ _editedObject as the parent. 2005-08-10 02:36 Gregory John Casamento * GormCore/GormDocument.[hm]: Added retrieveObjectForParent:recursive: which retrieves all of the children of a given parent. Also modified detachObject: to use this method. * GormCore/GormFilePrefsManager.m: Bumped version to 0.13.1 * GormInfo.plist: Bumped version to 0.13.1 * Palettes/3Containers/GormNSTableViewInspector.gorm: Corrected minor spacing issue. 2005-08-07 21:15 Gregory John Casamento * GNUmakefile: Added new GormObjectInspector.gorm file. * English.lproj/GormObjectInspector.gorm: New file. * GormCore/GNUmakefile: Added new GormObjectInspector.h. * GormCore/GormObjectInspector.m: Now loads gorm file. * GormCore/GormObjectInspector.h: New file. * Gorm.m: Corrected comment in header. 2005-08-07 10:26 Gregory John Casamento * GormCore/GNUmakefile: Add new header file. * GormCore/GormConnectionInspector.m: Include new header. * GormCore/GormConnectionInspector.h: New file, split from .m 2005-08-07 08:38 Gregory John Casamento * GormCore/GNUmakefile: Added new file. * GormCore/GormInspectorsManager.m: Removed GormConnectionInspector. * GormCore/GormConnectionInspector.m: Split out from GormInspectorsManager.m 2005-08-07 08:30 Gregory John Casamento * GormCore/GormFilePrefsManager.m: Update version to 0.13.0 * GormInfo.plist: Same 2005-08-06 22:25 Gregory John Casamento * English.lproj/GormClassInspector.gorm: Minor changes. * GNUmakefile: Added GormConnectionInspector.m * GormCore/GNUmakefile: Added the new resource manager. * GormCore/GormDocument.m: Changed to refer to the new resource manager. * GormCore/GormInspectorsManager.m: Removed hard coded gui. * GormCore/GormObjectEditor.m: Enabled copy/paste for objects in the object view. * GormCore/GormResourceManager.[hm]: Added to replace GormViewResourceManager.[hm] * Palettes/3Containers/GormBrowserAttributesInspector.[hm]: Added code to handle maxVisibleColumnsField. Corrected tag issue. * Palettes/3Containers/GormNSBrowserInspector.gorm: Added maximum visible columns field. 2005-08-06 18:04 Gregory John Casamento * GormLib/IBInspector.m: Change to correct problem with revert call in setObject:. It should call using self as the sender parameter, not anObject or object. 2005-08-06 17:52 Gregory John Casamento * Palettes/2Controls/GNUmakefile: Add in GormButtonAttributesInspector files. * Palettes/2Controls/GormButtonAttributesInspector.h: Changed ivar names. * Palettes/2Controls/GormButtonAttributesInspector.m: Changed names of vars and corrected problem with revert using anObject instead of object as it should. Removed explicit button item adds from init. Added trivial subclass to the file. * Palettes/2Controls/GormNSButtonInspector.gorm: Added NSPopUpButton items for button types. * Palettes/2Controls/GormStepperAttributesInspector.m: Added trivial subclass to the file. * Palettes/2Controls/inspectors.m: Moved all of IBObjectAdditions categories here. 2005-08-06 15:40 Gregory John Casamento * Palettes/0Menus/GNUmakefile: Add new file * Palettes/0Menus/GormMenuAttributesInspector.m: Removed IBObjectAdditions definitions from this file. * Palettes/0Menus/GormMenuEditor.m: Same * Palettes/0Menus/GormMenuInspectors.m: Same * Palettes/0Menus/GormMenuItemAttributesInspector.m: Same * Palettes/0Menus/inspectors.m: new file to hold implementation of IBObjectAdditions. * Palettes/1Windows/GNUmakefile: Add new file. * Palettes/1Windows/GormWindowAttributesInspector.m: Remove IBObjectAdditions definitions from this file. * Palettes/1Windows/inspectors.m: new file to hold implementation of IBObjectAdditions. 2005-08-06 15:24 Gregory John Casamento * Palettes/0Menus/GNUmakefile * Palettes/1Windows/GNUmakefile * Palettes/2Controls/GNUmakefile * Palettes/3Containers/GNUmakefile * Palettes/4Data/GNUmakefile: Added new palette file names. * Palettes/0Menus/MenusPalette.m: New file created from main.m * Palettes/1Windows/WindowsPalette.m: New file created from main.m * Palettes/2Controls/ControlsPalette.m: New file created from main.m * Palettes/3Containers/ContainersPalette.m: : New file created from main.m * Palettes/4Data/DataPalette.m: New file created from main.m 2005-08-06 11:33 Gregory John Casamento * Merge from post 1.0 branch. 2005-08-03 07:57 Gregory John Casamento * Palettes/2Controls/GormStepperAttributesInspector.m: Removed call to setNeedsDisplay in ok: method. 2005-08-03 07:11 Gregory John Casamento * Palettes/4Data/inspectors.m: Removed local declaration of GormViewSizeInspector, added include of new header, added copyright header. 2005-08-03 06:20 Gregory John Casamento * GormCore/GNUmakefile: Added new GormViewSizeInspector.h file, split out from the GormViewSizeInspector.h file. * GormCore/GormViewSizeInspector.m: Removed interface, put into .h * GormCore/GormViewSizeInspector.h: Moved interface here. * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Corrected position and sizing of elements in size inspector. * Palettes/1Windows/GormWindowAttributesInspector.m: Corrected comment, added copyright header. * Palettes/1Windows/GormWindowSizeInspector.m: Corrected comment, added copyright header. * Palettes/1Windows/main.m: Added category for NSPanel to add allocSubstitute. Same as change on HEAD. * Palettes/2Controls/GormBoxAttributesInspector.[hm]: Added copyright header. * Palettes/2Controls/GormCellAttributesInspector.[hm]: Added copyright header. * Palettes/2Controls/GormColorWellAttributesInspector.[hm]: Added copyright header. * Palettes/2Controls/GormFormAttributesInspector.m: Added copyright header. * Palettes/2Controls/GormMatrixAttributesInspector.m: Corrected comment. * Palettes/2Controls/GormPopUpButtonAttributesInspector.m: Corrected comment. * Palettes/2Controls/GormProgressIndicatorAttributesInspector.m: Corrected comment. * Palettes/2Controls/GormSliderAttributesInspector.m: Corrected comment. * Palettes/2Controls/GormStepperAttributesInspector.m: Corrected comment. * Palettes/2Controls/GormTextFieldAttributesInspector.m: Corrected comment. * Palettes/3Containers/GNUmakefile: Added table size inspector files. * Palettes/3Containers/GormBrowserAttributesInspector.m: Corrected comment. * Palettes/3Containers/GormNSOutlineView.[hm]: Added copyright header. * Palettes/3Containers/GormTableColumnAttributesInspector.[hm]: Added copyright header. Corrected comment. * Palettes/3Containers/GormTableColumnSizeInspector.m: Corrected comment. * Palettes/3Containers/GormTableViewAttributesInspector.m: Corrected comment. * Palettes/3Containers/GormTableViewSizeInspector.[hm]: Re-added this as it was previously removed. * Palettes/3Containers/GormTabViewAttributesInspector.m: Corrected comment. * Palettes/3Containers/inspectors.m: Moved all categories from containers to here. * Palettes/4Data/GormImageViewAttributesInspector.m: Corrected comment. * Palettes/4Data/GormNSComboBoxAttributesInspector.m: Corrected comment. * Palettes/4Data/GormTextViewAttributesInspector.m: Corrected comment. 2005-08-02 Fabien VALLON * Palettes/2Controls/GormBoxAttributesInspector.m : split file use ok: revert:, clean up and comments. Add NSBox IBObjectAdditions category * Palettes/2Controls/GormBoxAttributesInspector.h : split file clean up and comments * Palettes/2Controls/GormCellAttributesInspector.m: split file use ok: revert: , clean up and comments. Add NSCell IBObjectAdditions category * Palettes/2Controls/GormCellAttributesInspector.h: split file clean up and comments. * Palettes/2Controls/GormFormAttributesInspector.m: split file use ok: revert:, replace optionMatrix by cellPositionSwitch, editableSwitch,selectableSwitch, and scrollableSwitch. clean up and comments. Add NSForm IBObjectAdditions category * Palettes/2Controls/GormFormAttributesInspector.h: split file replace optionMatrix by cellPositionSwitch,editableSwitch, selectableSwitch, and scrollableSwitch. clean up and comments. * Palettes/2Controls/GormNSFormInspector.gorm: replace optionMatrix by cellPositionSwitch,editableSwitch, selectableSwitch, and scrollableSwitch. setNextKeyView * Palettes/2Controls/GormMatrixdAttributesInspector.m: split file use ok: revert:. clean up and comments. Add NSMatrix IBObjectAdditions category * Palettes/2Controls/GormMatrixdAttributesInspector.h: split file clean up and comments * Palettes/2Controls/GormPopUpButtonAttributesInspector.m: split file use ok: revert:, clean up and comments. Add NSPopUpButton IBObjectAdditions category * Palettes/2Controls/GormPopUpButtonAttributesInspector.h : split file clean up and comments * Palettes/2Controls/GormSliderAttributesInspector.m: split file use ok: revert:, clean up and comments. Add NSSlider IBObjectAdditions category. Remove : altForm, knobField, numberOfTicks,snapToTicks, tickPosition Rename : valueForm into valuesForm. clean up & comments. * Palettes/2Controls/GormSliderAttributesInspector.h: split file clean up and comments * Palettes/2Controls/GormNSSliderInspector.gorm : Remove : altForm, knobField, numberOfTicks,snapToTicks,tickPosition Rename : valueForm into valuesForm. Remove : ok: target for NSForms ( use delegate ) * Palettes/2Controls/GormStepperAttributesInspector.m: split file use ok: revert: clean up and comments. Add NSStepper IBObjectAdditions category * Palettes/2Controls/GormStepperAttributesInspector.h: split file Clean up and comments * Palettes/2Controls/GormTextFieldAttributesInspector.m: split file use ok: revert. replace optionsMatrix by editableSwitch, selectableSwitch,scrollableSwitch. clean up and comments. Add NSTextField IBObjectAdditions category. * Palettes/2Controls/GormTextFieldAttributesInspector.h: split file replace optionsMatrix by editableSwitch, selectableSwitch, scrollableSwitch. clean up and comments. * Palettes/2Controls/GormNSTextFieldInspector.gorm: replace optionsMatrix by editableSwitch, selectableSwitch andscrollableSwitch. set NextKeyView: * Palettes/2Controls/GormColorWellAttributesInspector.m: split file renamed bordered in borderedSwitch, initialColor in initialColorWell, disabled in disabledSwitch, tagValue in tagField. remove initialColorSelected:, disabledSelected:, borderedSelected:. use ok: revert: clean up and comments. * Palettes/2Controls/GormColorWellAttributesInspector.h: split file renamed bordered in borderedSwitch, initialColor in initialColorWell, disabled in disabledSwitch, tagValue in tagField. remove initialColorSelected:, disabledSelected:, borderedSelected:. Clean up and comments. * Palettes/2Controls/GormColorWellInspector.gorm: renamed bordered in borderedSwitch, initialColor in initialColorWell, disabled in disabledSwitch, tagValue in tagField. remove initialColorSelected:, disabledSelected:, borderedSelected:. tagField remove ok: target ( use delegate ) * Palettes/2Controls/GormProgressIndicatorAttributesInspector.m : split file emove doubleValue; borderMatrix. use ok: revert: Clean up and comments * Palettes/2Controls/GormProgressIndicatorAttributesInspector.h : split file remove doubleValue; borderMatrix. Clean up and comments * Palettes/2Controls/GormNSProgressIndicatorInspector.gorm: remove doubleValue; borderMatrix * Palettes/3Containers/GormBrowserAttributesInspector.m : split file use ok: revert: , use multipleSelectionSwitch, emptySelectionSwitch, branchSelectionSwitch,separateColumnsSwitch,horizontalScrollerSwitch, and displayTitlesSwitch instead of optionMatrix.clean up and comments Add NSBrowser category ( IBObjectAdditions ) * Palettes/3Containers/GormBrowserAttributesInspector.h : split file use multipleSelectionSwitch, emptySelectionSwitch, branchSelectionSwitch,separateColumnsSwitch,horizontalScrollerSwitch, and displayTitlesSwitch instead of optionMatrix. clean up and comments * Palettes/3Containers/GormNSBrowserInspector.gorm: use multipleSelectionSwitch, emptySelectionSwitch, branchSelectionSwitch,separateColumnsSwitch,horizontalScrollerSwitch, and displayTitlesSwitch instead of optionMatrix. set nextKeyView: * Palettes/3Containers/GormTableViewAttributesInspector.m: split file use ok: revert:, replace selectionMatrix by multipleSelectionSwitch, emptySelectionSwith and columnSelectionSwitch, replace optionMatrix by drawgridSwitch, resizingSwitch and reorderingSwitch.clean up and comments. Add NSTableView category ( IBObjectAdditions ) * Palettes/3Containers/GormTableViewAttributesInspector.h: split file replace selectionMatrix by multipleSelectionSwitch,emptySelectionSwith and columnSelectionSwitch. replace optionMatrix by drawgridSwitch, resizingSwitch and reorderingSwitch.clean up and comments. * Palettes/3Containers/GormNSTableViewInspector.gorm : replace selectionMatrix by multipleSelectionSwitch,emptySelectionSwith and columnSelectionSwitch. replace optionMatrix by drawgridSwitch, resizingSwitch and reorderingSwitch.set nextKeyView: * Palettes/3Containers/GormTableColumnAttributesInspector.m : split file clean up, comments and warnings ( TODO ) Add NSTableColumn category ( IBObjectAdditions ) * Palettes/3Containers/GormTableColumnAttributesInspector.h : split file clean up and comments * Palettes/3Containers/GormTableColumnSizeInspector.m: split file use controlTextDidChange: for the form, clean up and comments. Add IBObjectAdditionsSize category * Palettes/3Containers/GormTableColumnSizeInspector.h: split file clean up and comments. * Palettes/3Containers/ GormNSTableColumnSizeInspector.gorm: remove ok: taget ( use delegate ) * Palettes/3Containers/GNUmakefile : add GormBrowserAttributesInspector.m GormTabViewAttributesInspector.m, GormTableColumnAttributesInspector.m GormTableColumnSizeInspector.m and GormTableViewAttributesInspector. * Palettes/3Containers/inspector.m : remove GormBrowserAttributesInspector GormTabViewAttributesInspector, GormTableColumnAttributesInspector GormTableColumnSizeInspector and GormTableViewAttributesInspector * Palettes/4Data/GormComboBoxAttributesInspector.m: split file * Palettes/4Data/GormImageViewAttributesInspector.m: split file use ok:, revert:, clean up and comments * Palettes/4Data/GormImageViewAttributesInspector.h: split file clean up * Palettes/4Data/GormTextViewAttributesInspector.m: split file replace optionsMatrix by selectableButton, editableButton, multipleFontsButtonand graphicsButton, clean up and comments. Add NSTextView IBObjectAdditions category * Palettes/4Data/GormTextViewAttributesInspector.h: split file replace optionsMatrix by selectableButton, editableButton, multipleFontsButton and graphicsButton, clean up and comments * Palettes/4Data/GormNSTextViewInspector.gorm: replace optionsMatrix by selectableButton, editableButton, multipleFontsButton and graphicsButton 2005-08-01 20:30 Gregory John Casamento * English.lproj/GormPreferences.gorm: Add keyboard equivalents to dropdown for preference panels. 2005-08-01 07:59 Gregory John Casamento * GormCore/GormClassInspector.m: Return an autoreleased copy of the class name from _currentClass. 2005-08-01 05:45 Gregory John Casamento * GormCore/GormClassInspector.m: Remove dopy code from _currentClass. * GormCore/GormPrivate.m: Use ASSIGNCOPY in initWithClassName: * Palettes/1Windows/main.m: Removed FIXME, since Gorm shouldn't show the window decoration changes directly. 2005-07-31 19:14 Gregory John Casamento * Palettes/1Windows/main.m: Addition of allocSubstitute method for NSPanel in the category GormPrivate. 2005-07-31 18:56 Gregory John Casamento * GormCore/GormDocument.m: Correction for bug#13990. * GormCore/GormInspectorsManager.m: Removed uneeded GormISelectionView class. 2005-07-31 10:57 Gregory John Casamento * GormCore/GormInspectorsManager.m: [GormConnectionsInspector ok:] Removed code which blanks out the connector. This allows the user to select connections repeatedly. Suggested by Matt Rice. 2005-07-31 08:43 Gregory John Casamento * GormCore/GormPrivate.m: Reverted previous change in init. 2005-07-30 15:57 Gregory John Casamento * English.lproj/GormPreferences.gorm: Changed class hierarchy. Also added panel outlet. * GormCore/GormClassInspector.m: -[GormClassInspector _currentClass] copy the className. * GormCore/GormPrivate.m: -[GormClassProxy init] copy the className. * Gorm.m: Changed to initialize preferences panel using init. * GormPrefs/GormPrefController.[hm]: Added panel method, changed derivation to a subclass of NSObject, instead of NSWindowController. 2005-07-30 09:30 Gregory John Casamento * Documentation/Makefile.postamble: Generate documentation from headers only. * GormPrefs/GormColorsPref.h * GormPrefs/GormGeneralPref.h * GormPrefs/GormGeneralPref.m * GormPrefs/GormGuidelinePref.h * GormPrefs/GormHeadersPref.h * GormPrefs/GormPalettesPref.h * GormPrefs/GormPrefController.h * GormPrefs/GormShelfPref.h: Added documentation. 2005-07-30 04:29 Gregory John Casamento * GormCore/GormFilePrefsManager.h: Added documentation. 2005-07-30 04:16 Gregory John Casamento * GormCore/GormDocument.m: use versionOfClass: in _replaceObjectsWithTemplates: method. * GormCore/GormFilePrefsManager.[hm]: Added versionOfClass:. 2005-07-30 Fabien VALLON * Palettes/1Window/GormWindowAttributesInspector.[mh] : split files. use ok: revert: methods, remove controls & options Matrix, & replace it by a set of switch buttons. Clean up & comments * Palettes/1Window/GormWindowSizeInspector.{m,h} :split files. use ok: revert: methods. Clean up & comments * Palettes/1Window/main.m : remove GormWindowSizeInspector, GormWindowAttributesInspector classes and move IBObjectAdditions categories into GormWindowAttributesInspector and GormSizeInspector. * Palettes/1Window/GormNSWindowInspector.gorm: remove controls and options matrix, & replace it by a set of switch buttons. * Palettes/0Menus/GormMenuAttributesInspector.{m,h} : split files. use ok: revert: methods, replace menuType matrix by a matrix of Radio buttons.Clean up and comments. * Palettes/0Menus/GormMenuItemAttributesInspector.m: split files. use ok: revert: methods, Clean up and comments. * Palettes/0Menus/MenuInspectors.m : removed * Palettes/0Menus/GormMenuAttributesInspector.gorm : improve ui, use a matrix of radioButtonCell for menu type * Palettes/0Menus/GormMenuEditor.m : rename IBObjectAdditions category 2005-07-28 00:04 Gregory John Casamento * GormCore/GormImage.h: Added documentation. * GormCore/GormImage.m: Properly implemented IBObjectAdditions. * GormCore/GormPrivate.h: Remove illegalClassSubstitution method. * GormCore/GormPrivate.m: Remove illegalClassSubstitution method. * GormCore/GormSound.h: Added documentation. * GormCore/GormSound.m: Properly implemented IBObjectAdditions. * Gorm.m: Removed methods which check for user bundles. 2005-07-27 02:10 Gregory John Casamento * GormPrefs/GormGeneralPref.m: Removed extra calls to synchronize. * GormPrefs/GormHeadersPref.m: ditto 2005-07-27 01:47 Gregory John Casamento * GormCore/GormDocument.h: Added documentation. * GormCore/GormDocument.m: Removed commented code. Corrected problem in [GormDocument instantiateClass:] when switching to the objects view. * GormCore/GormWindowEditor.h: Added documentation. 2005-07-26 22:56 Gregory John Casamento * GormCore/GNUmakefile: Added new GormWindowEditor.h file. * GormCore/GormWindowEditor.m: Reorganized methods, extracted .h * GormCore/GormWindowEditor.h: New file. * GormCore/NSCell+GormAdditions.h * GormCore/NSColorWell+GormExtensions.h * GormCore/NSColorWell+GormExtensions.m * GormCore/NSFontManager+GormExtensions.h * GormCore/NSFontManager+GormExtensions.m * GormCore/NSView+GormExtensions.h: Added documentation. 2005-07-26 21:02 Gregory John Casamento * Palettes/2Controls/GormNSTextFieldInspector.gorm: Correct resize attributes. 2005-07-25 23:26 Gregory John Casamento * GormCore/GormClassEditor.m: [GormClassEditor selectClass:editClass:] add exception handling. * GormCore/GormDocument.m: [GormDocument pasteObjects:type fromPasteboard:] added check for specific pb types. 2005-08-06 08:30 Gregory John Casamento * Version 0.11.0 (Gorm 1.0 release candidate #1) 2005-08-01 20:30 Gregory John Casamento * English.lproj/GormPreferences.gorm: Add keyboard equivalents to dropdown for preference panels. 2005-08-01 07:59 Gregory John Casamento * GormCore/GormClassInspector.m: Return an autoreleased copy of the class name from _currentClass. 2005-08-01 05:45 Gregory John Casamento * GormCore/GormClassInspector.m: Remove dopy code from _currentClass. * GormCore/GormPrivate.m: Use ASSIGNCOPY in initWithClassName: * Palettes/1Windows/main.m: Removed FIXME, since Gorm shouldn't show the window decoration changes directly. 2005-07-31 19:14 Gregory John Casamento * Palettes/1Windows/main.m: Addition of allocSubstitute method for NSPanel in the category GormPrivate. 2005-07-31 18:56 Gregory John Casamento * GormCore/GormDocument.m: Correction for bug#13990. * GormCore/GormInspectorsManager.m: Removed uneeded GormISelectionView class. 2005-07-31 10:57 Gregory John Casamento * GormCore/GormInspectorsManager.m: [GormConnectionsInspector ok:] Removed code which blanks out the connector. This allows the user to select connections repeatedly. Suggested by Matt Rice. 2005-07-31 08:43 Gregory John Casamento * GormCore/GormPrivate.m: Reverted previous change in init. 2005-07-30 15:57 Gregory John Casamento * English.lproj/GormPreferences.gorm: Changed class hierarchy. Also added panel outlet. * GormCore/GormClassInspector.m: -[GormClassInspector _currentClass] copy the className. * GormCore/GormPrivate.m: -[GormClassProxy init] copy the className. * Gorm.m: Changed to initialize preferences panel using init. * GormPrefs/GormPrefController.[hm]: Added panel method, changed derivation to a subclass of NSObject, instead of NSWindowController. 2005-07-30 09:30 Gregory John Casamento * Documentation/Makefile.postamble: Generate documentation from headers only. * GormPrefs/GormColorsPref.h * GormPrefs/GormGeneralPref.h * GormPrefs/GormGeneralPref.m * GormPrefs/GormGuidelinePref.h * GormPrefs/GormHeadersPref.h * GormPrefs/GormPalettesPref.h * GormPrefs/GormPrefController.h * GormPrefs/GormShelfPref.h: Added documentation. 2005-07-30 04:29 Gregory John Casamento * GormCore/GormFilePrefsManager.h: Added documentation. 2005-07-30 04:16 Gregory John Casamento * GormCore/GormDocument.m: use versionOfClass: in _replaceObjectsWithTemplates: method. * GormCore/GormFilePrefsManager.[hm]: Added versionOfClass:. 2005-07-28 23:09 Gregory John Casamento * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Corrected layout. 2005-07-28 00:04 Gregory John Casamento * GormCore/GormImage.h: Added documentation. * GormCore/GormImage.m: Properly implemented IBObjectAdditions. * GormCore/GormPrivate.h: Remove illegalClassSubstitution method. * GormCore/GormPrivate.m: Remove illegalClassSubstitution method. * GormCore/GormSound.h: Added documentation. * GormCore/GormSound.m: Properly implemented IBObjectAdditions. * Gorm.m: Removed methods which check for user bundles. 2005-07-27 02:10 Gregory John Casamento * GormPrefs/GormGeneralPref.m: Removed extra calls to synchronize. * GormPrefs/GormHeadersPref.m: ditto 2005-07-27 01:47 Gregory John Casamento * GormCore/GormDocument.h: Added documentation. * GormCore/GormDocument.m: Removed commented code. Corrected problem in [GormDocument instantiateClass:] when switching to the objects view. * GormCore/GormWindowEditor.h: Added documentation. 2005-07-26 22:56 Gregory John Casamento * GormCore/GNUmakefile: Added new GormWindowEditor.h file. * GormCore/GormWindowEditor.m: Reorganized methods, extracted .h * GormCore/GormWindowEditor.h: New file. * GormCore/NSCell+GormAdditions.h * GormCore/NSColorWell+GormExtensions.h * GormCore/NSColorWell+GormExtensions.m * GormCore/NSFontManager+GormExtensions.h * GormCore/NSFontManager+GormExtensions.m * GormCore/NSView+GormExtensions.h: Added documentation. 2005-07-26 21:02 Gregory John Casamento * Palettes/2Controls/GormNSTextFieldInspector.gorm: Correct resize attributes. 2005-07-25 23:26 Gregory John Casamento * GormCore/GormClassEditor.m: [GormClassEditor selectClass:editClass:] add exception handling. * GormCore/GormDocument.m: [GormDocument pasteObjects:type fromPasteboard:] added check for specific pb types. 2005-07-24 16:43 Gregory John Casamento * GormCore/GormPrivate.h: Removed GormOutlineView.h from the includes. 2005-07-24 16:31 Gregory John Casamento * GormCore/GormClassEditor.m: Call selectRow: method. * GormCore/GormOutlineView.[hm]: Added new selectRow: method. Corrects bug#13754. 2005-07-24 12:29 Gregory John Casamento * Gorm.m: Eliminated [Gorm finishLaunching] and moved default initialization code to init before paletteManager is called so that the palette window is placed correctly. * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Added override for saveFrameUsingName: to prevent saving the position of windows during testing in Gorm's defaults. * Resources/Defaults.plist: Added defaults for Inspector, Palettes, and Preferences windows so that they appear at a reasonable position on the screen when Gorm is first used. Corrects bug#13780. 2005-07-24 11:20 Gregory John Casamento * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Readded override of orderWindow:relativeTo:. This corrects bug#13838. 2005-07-23 18:02 Gregory John Casamento * GormCore/GormInspectorsManager.m: Remove extra revert: call. * GormLib/IBInspector.m: Touch changes the inspector X to the broken X, per specs. * Gorm.m: [Gorm testInterface] fix for menu disappearance when testing the interface. * Palettes/0Menus/main.m: Added to authors list. 2005-07-23 10:10 Gregory John Casamento * Documentation/Makefile.postamble: Create documentation for GormCore, GormObjCHeaderParser and GormPrefs. 2005-07-21 fabien * Palettes/0Menus/GormMenuInspectors.m : Corrects bug #13872 2005-07-20 23:39 Gregory John Casamento * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Reverted previous change. 2005-07-19 00:35 Gregory John Casamento * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Removed override for orderWindow:... added sendEvent: to do the same thing, since it's a little more generic. This corrects bug#13838. 2005-07-18 23:54 Gregory John Casamento * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Added override for orderWindow:relativeTo: which causes selection of the window by Gorm, if the title bar is clicked. 2005-07-17 15:47 Gregory John Casamento * GormCore/GormClassEditor.m: Added code to prevent memory leak with previous change. 2005-07-17 15:08 Gregory John Casamento * GormCore/GormClassEditor.m: Removed AUTORELEASE for subClassesArray, it was causing a crash. * GormCore/GormClassInspector.m: setObject: conditional which prints a warning if a non-GormClassProxy class is passed in. * GormCore/GormPrivate.m: initWithClassName: conditional which prints a warning if a non-string is used to initialize th GormClassProxy. 2005-07-17 08:42 Gregory John Casamento * GormCore/GormInternalViewEditor.m: -init, prepareForDragOperation:, performDragOperation: removed uneeded IBFormatterPboardType from the list. 2005-07-16 23:34 Gregory John Casamento * GormCore/GormClassInspector.m: -_refreshView removed call to deselectAll: for the actionTable and outletTable. On occasion this was causing the application to go into a notification-update loop. 2005-07-15 21:48 Gregory John Casamento * GormCore/GormInspectorsManager.m: -init, changed NSLog to NSDebugLog. 2005-07-15 00:54 Gregory John Casamento * GormCore/GormClassEditor.m: Added exception handling to portions of code which call itemAtIndex: method on the outline view to prevent any problems. * GormCore/GormInspectorsManager.m: Changed a NSLog to NSDebugLog. 2005-07-14 12:39 Gregory John Casamento * GormCore/GormDocument.m: Minor change to changeView: to switch to the appropriate toolbar item when the view changes automatically while dragging. Also a change to awakeFromNib to select the correct item on startup. 2005-07-14 09:03 Gregory John Casamento * GormCore/GormDocument.m: Implement toolbarSelectableItemIdentifiers in the toolbar delegate so that the items will remain selected showing the current selection. 2005-07-14 00:05 Gregory John Casamento * GormCore/GormInspectorsManager.m: Removed commented out code. * Palettes/3Containers/GormNSTableColumnInspector.gorm: Changed "Is visible at launch" to NO to prevent exception. 2005-07-13 22:51 Gregory John Casamento * Palettes/2Controls/GormButtonEditor.m: Corrected issue with button editing. bug #13756. 2005-07-13 09:01 Gregory John Casamento * GormCore/GormClassEditor.m: Corrected problem selecting NSObject in browser when it's selected in the outline. 2005-07-13 02:17 Gregory John Casamento * GormCore/GormClassEditor.m: Changed code in selectClass:editClass: to use the methods from the GormClassManager as appropriate. Removed do.. while construct since it did the same thing as allSuperClassesOf in GormClassManager. * GormCore/GormClassManager.[hm]: Added new method isRootClass: which returns true if the argument is a root class. Also replaced references to @"NSObject" in a number of places with calls to this method. This makes the code more generic. * GormCore/GormPalettesManager.m: Added check in importClasses:withDictionary: which should allow loading palettes which define root level classes. 2005-07-12 fabien * GormCore/GormClassEditor.m: Fix OutlineView / BrowserView switch Add some warnings. Greg please check the code. You will need to change it when GormClassManager will change ( for root object ) * Palettes/3Containers/inspector.m : Add minimum column size for NSBrowser * Palettes/3Containers/GormNSBrowserInspector.gorm : Ditto 2005-07-11 fabien * Palettes/1Windows/ControlsPalette.gorm : Fix bad layout when doing a matrix of NSForms. * Documentation : Gorm.texi, Update documentation * GormCore/GormInspectorsManager.m : make setInitialFirstResponder working with inspector * Palettes/0Menus/GormMenuInspectors.gorm : set initialFirstResponder * Palettes/0Menus/GormMenuItemAttributesInspector.gorm : Ditto * Palettes/1Windows/GormNSWindowSizeInspector.gorm : Ditto * Palettes/2Controls/GormNSButtonInspector.gorm : Ditto * Palettes/2Controls/GormNSCellInspector.gorm : Ditto * Palettes/3Containers/GormNSTableColumnInspector.gorm : Ditto * Palettes/4Data/GormNSDateFormatterInspector.gorm: Ditto * Palettes/4Data/GormNSNumberFormatterInspector.gorm : Ditto * English.lproj/GormCustomClassInspector.gorm : Ditto * English.lproj/GormScrollViewAttributesInspector.gorm: Ditto * English.lproj/GormViewSizeInspector.gorm : Ditto 2005-07-10 20:37 Gregory John Casamento * English.lproj/Gorm.gorm: Corrected some connections which were causing the "Classes" menu items to be enabled when the shouldn't have been. 2005-07-08 13:34 Gregory John Casamento * Gorm.m: Correction for problem with testing with tables and outline views in testInterface. * Palettes/3Containers/GormNSOutlineView.m: Removed awakeFromNib * Palettes/3Containers/GormNSTableView.m: ditto. 2005-07-08 04:36 Gregory John Casamento * GormCore/GormCustomClassInspector.m: In -(void)_replaceCellClassForObject:className: added checks to make sure the object/cell responds to appropriate messages before call. This prevents an issue when selecting a new custom class. 2005-07-07 22:02 Gregory John Casamento * GormCore/GormCustomClassInspector.m: In the method - (void) _replaceCellClassForObject:className: added logic to automatically replace the cell in a more generic fashion. * GormCore/GormPrivate.m: Added logic to canSubstituteForClass: to determine if it's possible for the class passed in to substitute for the reciever. * Palettes/2Controls/inspectors.m: Removed canSubstituteForClass: implementation for NSSecureTextView. * Palettes/3Containers/GormNSOutlineView.[hm]: Cleaned up initWithCoder: and encodeWithCoder:. * Palettes/3Containers/GormNSTableView.[hm]: Ditto 2005-07-07 13:22 Gregory John Casamento * GormCore/GormControlEditor.m: Removed commented out code in GormControlEditor. * GormCore/GormDocument.m: Removed unused variables. * Palettes/3Containers/GormNSTableView.m: Added encoder methods to the data source/delegate to allow testInterface: to work properly. 2005-07-07 fabien * English.lproj/GormClassInspector.gorm : Improve UI * English.lproj/GormClassPanel.gorm : Ditto * English.lproj/GormCustomClassInspector.gorm : Ditto * English.lproj/GormDocument.gorm : Ditto * English.lproj/GormFontView.gorm : Ditto * English.lproj/GormImageInspector.gorm : Ditto * English.lproj/GormNSSplitViewInspector.gorm : Ditto * English.lproj/GormPrefColors.gorm : Ditto * English.lproj/GormPrefGeneral.gorm : Ditto * English.lproj/GormPrefGuideline.gorm : Ditto * English.lproj/GormPrefHeaders.gorm : Ditto * English.lproj/GormPrefPalettes.gorm : Ditto * English.lproj/GormPreferences.gorm : Ditto * English.lproj/GormScrollViewAttributesInspector.gorm : Ditto * English.lproj/GormSetName.gorm : Ditto * English.lproj/GormShelfPref.gorm : Ditto * English.lproj/GormSoundInspector.gorm : Ditto * English.lproj/GormViewSizeInspector.gorm : Ditto * Palettes/0Menus/GormMenuInspectors.m: Implement the delegate method controlTextDidChange for textField * Palettes/0Menus/GormMenuAttributesInspector.gorm: Improve UI, set setNextView:, initialFirstResponder: ... * Palettes/0Menus/GormMenuItemAttributesInspector.gorm: Improve UI, set setNextView:, initialFirstResponder: ... * Palettes/1Windows/main.m: Implement delegate method controlTextDidChange for textFields * Palettes/1Windows/GormNSWindowInspector.gorm: Improve UI,set setNextView:, initialFirstResponder: ... * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Improve UI,set setNextView:, initialFirstResponder: ... * Palettes/2Controls/inspectors.m: Implement delegate method controlTextDidChange: for textFields * Palettes/2Controls/ControlsPalette.gorm: Improve UI,set setNextView:, initialFirstResponder: ... * Palettes/2Controls/GormNSBoxInspector.gorm: Ditto * Palettes/2Controls/GormNSButtonInspector.gorm: Ditto * Palettes/2Controls/GormNSCellInspector.gorm: Ditto * Palettes/2Controls/GormNSColorWellInspector.gorm : Ditto * Palettes/2Controls/GormNSFormInspector.gorm : Ditto * Palettes/2Controls/GormNSMatrixInspector.gorm : Ditto * Palettes/2Controls/GormNSPopUpButtonInspector.gorm : Ditto * Palettes/2Controls/GormNSProgressIndicatorInspector.gorm : Ditto * Palettes/2Controls/GormNSSliderInspector.gorm : Ditto * Palettes/2Controls/GormNSStepperInspector.gorm : Ditto * Palettes/2Controls/GormNSTextFieldInspector.gorm : Ditto * Palettes/3Containers/inspectors.m: Implement delegate method controlTextDidChange: for textFields * Palettes/3Containers/GormNSBrowserInspector.gorm :Improve UI, set setNextView:, initialFirstResponder: ... * Palettes/3Containers/GormNSTableColumnInspector.gorm :Ditto * Palettes/3Containers/GormNSTableColumnSizeInspector.gorm :Ditto * Palettes/3Containers/GormNSTableViewInspector.gorm :Ditto * Palettes/3Containers/GormTabViewInspector.gorm : Ditto * Palettes/4Data/GormNSComboBoxInspector.gorm : Ditto * Palettes/4Data/GormNSDateFormatterInspector.gorm: Ditto * Palettes/4Data/GormNSImageViewInspector.gorm: Ditto * Palettes/4Data/GormNSNumberFormatterInspector.gorm: Ditto * Palettes/4Data/GormNSTextViewInspector.gorm: Ditto 2005-07-06 10:48 Gregory John Casamento * GormCore/GormDocument.m: changeToViewWithTag: added code to change current selection when switching the editor. 2005-07-05 10:59 Gregory John Casamento * GormCore/GormDocument.m: Corrected problem where the Gorm was incorrectly warning of version upgrade on .gorm files which don't contain windows. Also added documentation/comments for all methods in GormDocument.m. 2005-07-04 21:18 Gregory John Casamento * Gorm.m: In -testInterface corrected a problem with testing interface when menu item is connected to NSOwner. 2005-07-04 20:44 Gregory John Casamento * English.lproj/Gorm.gorm: Cleaned up some duplicate connections * GormCore/GormFilePrefsManager.m: Updated version to 0.10.2 * GormInfo.plist: Updated version to 0.10.2 * Version: Updated version to 0.10.2 2005-07-04 17:53 Gregory John Casamento * English.lproj/Gorm.gorm: Added Layout and Alignment menus. * GormCore/GormDocument.[hm]: Added alignSelectedObjects: and arrangeSelectedObjects: methods. * GormCore/GormProtocol.h: Added alignSelectedObjects: and arrangeSelectedObjects: methods declarations * GormCore/NSView+GormExtensions.[hm]: Added moveViewToFront: and moveViewToBack: methods. * Gorm.m: Added alignSelectedObjects: and arrangeSelectedObjects: methods. 2005-07-03 12:52 Gregory John Casamento * Palettes/4Data/main.m: Minor fix in depositViewResourceFromPasteboard: to prevent crash. 2005-07-03 12:26 Gregory John Casamento * GormCore/GormBoxEditor.m: Minor cleanup. * GormCore/GormControlEditor.m: Removed unecessary code to handle formatter, since it is now handled generically via the dragging delegate code. * GormCore/GormViewEditor.m: Added code in performDragOperation: and other dragging methods to correctly use the dragging delegate code. * GormCore/NSView+GormExtensions.m: Added implementation of delegate registration methods to NSView here. * GormLib/IBApplicationAdditions.h: Added declaration for documentForObject: to the IBDocuments protocol. * GormLib/IBPalette.h: Changed "document" ivar to paletteDocument. * GormLib/IBPalette.m: Changed "document" ivar to paletteDocument. * Gorm.m: Added implementation of documentForObject: * Palettes/2Controls/main.m: Added methods for IBViewResourceDraggingDelegates to handle images and sounds dragged to controls. * Palettes/4Data/main.m: Added methods for IBViewResourceDraggingDelegates to handle formatters being dragged to controls. 2005-07-02 16:12 Gregory John Casamento * GormCore/GormControlEditor.m: Added call to setSelectionFromEditor: in performDragOperation, if the object has a formatter. * GormCore/GormInspectorsManager.m: Changes to refresh the popup button based on the inspector modes in setCurrentInspector: * GormLib/IBInspectorManager.[hm]: New instance variable. Implemented addInspectorModeWithIndentifier:forObject:... * GormLib/IBInspectorMode.[hm]: Added. * Palettes/4Data/inspectors.m: minor cleanup. * Palettes/4Data/main.m: Added code to add the inspector mode to the manager when the object is selected. 2005-06-30 00:21 Gregory John Casamento * English.lproj/GormPrefGeneral.gorm: Remove the preferences to manually change if the inspector or palette is shown. * Gorm.m: -[Gorm applicationWillTerminate:] added code to save the inspector and palette state. 2005-06-20 20:11 Gregory John Casamento * GNUmakefile.preamble: Remove dependency on GL. * GormCore/GormOpenGLView.h: Make a subclass of NSView. * GormCore/GormOpenGLView.m: Comment out uneeded code. 2005-06-20 19:32 Gregory John Casamento * GNUmakefile.preamble: Add -lGL to ADDITIONAL_LIBS * GormCore/GNUmakefile: Added new opengl view. * GormCore/GormCustomView.m: Added include for GormOpenGLView and modified _bestPossibleSuperClass to return the GormOpenGLView. * GormCore/GormOpenGLView.[hm]: Displays a rotating polygon to illustrate that this is a OpenGL view to the user when in test mode. * GormCore/GormViewWithSubviewsEditor.m: Corrected includes. * Gorm.m: Corrected a memory leak in testInterface and endTesting. 2005-06-17 17:33 Gregory John Casamento * Palettes/0Menus/GormNSMenu.m: Code cleanup. 2005-06-17 07:59 Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m * Palettes/0Menus/main.m * Palettes/1Windows/main.m * Palettes/3Containers/inspectors.m: Code cleanup. 2005-06-17 00:47 Gregory John Casamento * GormCore/GormClassManager.m * GormCore/GormDocument.m * GormCore/GormInspectorsManager.m * GormCore/GormObjectEditor.m * GormCore/GormObjectInspector.m * GormCore/GormPalettesManager.m * GormCore/GormResourceEditor.m * GormCore/GormWindowEditor.m: Code cleanup. 2005-06-17 00:24 Gregory John Casamento * Gorm.m: Code cleanup. 2005-06-16 23:49 Gregory John Casamento * Gorm.m: Override "stop:" to call endTesting: if a test session is running, instead of killing the app. 2005-06-16 19:49 Gregory John Casamento * GormLib/IBInspector.m: Added "revert" call in setObject: 2005-06-14 20:39 Gregory John Casamento * GormCore/GormDocument.m: Fix in [GormDocument translate] to properly redisplay the window after translation. 2005-06-12 23:36 Gregory John Casamento * GormCore/GormOutlineView.m: _handleDoubleClick: now calls NSDebugLog 2005-06-12 23:24 Gregory John Casamento * GormCore/GNUmakefile: Added GormProtocol.h to the exported headers. 2005-06-12 23:07 Gregory John Casamento * GormCore/GormClassEditor.m: Modified the data source method outlineView:setObjectValue:forItem: to reject outlet/action changes when the item and the objectValue are the same. * GormCore/GormDocument.m: Changed collectAllObjects to _collectAllObjects, since it is private. * GormCore/GormOutlineView.m: In mouseDown: only send to the super class under certain conditions. 2005-06-11 14:10 Gregory John Casamento * English.lproj/Gorm.gorm: Addition of "Translation" submenu as well as Load Strings and Export Strings * GormCore/GormDocument.h: Declaration of exportStrings * GormCore/GormDocument.m: Implementation of exportStrings * GormCore/GormProtocol.h: Declaration of app level exportStrings: * Gorm.m: Implementation of app level exportStrings: method. 2005-06-11 05:13 Gregory John Casamento * GormCore/GormDocument.m: Improved translate method. * Gorm.m: validateMenuItem: add case to handle translate menu. 2005-06-10 07:45 Gregory John Casamento * English.lproj/Gorm.gorm: Addition of "Translate" menu. * GormCore/GormClassInspector.m: Corrected problem in outlet and action data sources in tableView:setObjectValue: tableColumn:row: * GormCore/GormDocument.h: Added translate method, also added selectClass:editClass: method declarations. * GormCore/GormDocument.m Added translate method, also added selectClass:editClass: method implementation. * GormCore/GormProtocol.h: Added translate method declaration to call from the menu. * Gorm.m: Added translate method implementation which simply calls the method on the currently active document. 2005-06-04 07:41 Gregory John Casamento * English.lproj/GormClassInspector.gorm: Updated to new .gorm file version * English.lproj/GormDocument.gorm: Added new profile to drop down. * English.lproj/GormViewSizeInspector.gorm: Updated to new .gorm file version * GormCore/GormDocument.m: Change to _replaceObjectsWithTemplates: to always replace windows with a GSWindowTemplate. This allows the autoposition and defered logic to work properly when loading this .gorm file in an application. * GormCore/GormFilePrefsManager.m: Bumped version to 0.10.1 * GormCore/GormViewSizeInspector.m: Minor changes. * GormInfo.plist: Bumped version to 0.10.1 * Palettes/0Menus/GormMenuEditor.m: Removed uneeded code. * Palettes/0Menus/GormNSMenu.h: Added +menuWithMenu declaration. * Palettes/0Menus/GormNSMenu.m: Added +menuWithMenu: to initialize one menu from another. * Palettes/0Menus/main.m: Change to use the fontMenu: method in the NSFontManager to build the menu in Gorm's palette. * Palettes/1Windows/GormNSPanel.h: Declarations for new methods. * Palettes/1Windows/GormNSPanel.m: setAutoPositionMask: and autoPositionMask methods added. * Palettes/1Windows/GormNSWindow.h: Declarations for new methods. * Palettes/1Windows/GormNSWindow.m: setAutoPositionMask: and autoPositionMask methods added. * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Additions to handle window positioning and maxsize. * Palettes/1Windows/main.m: Additions to the window inspector to handle maxSize and window position. * Resources/VersionProfiles.plist: New profile entry 2005-05-25 23:38 Gregory John Casamento * GormCore/GModelDecoder.m * GormCore/GormBoxEditor.h * GormCore/GormBoxEditor.m * GormCore/GormClassEditor.h * GormCore/GormClassEditor.m * GormCore/GormClassManager.h * GormCore/GormClassManager.m * GormCore/GormClassPanelController.h * GormCore/GormClassPanelController.m * GormCore/GormControlEditor.h * GormCore/GormControlEditor.m * GormCore/GormCustomView.h * GormCore/GormCustomView.m * GormCore/GormDocument.h * GormCore/GormDocument.m * GormCore/GormFilesOwner.h * GormCore/GormFilesOwner.m * GormCore/GormFunctions.h * GormCore/GormFunctions.m * GormCore/GormGenericEditor.h * GormCore/GormGenericEditor.m * GormCore/GormImageEditor.h * GormCore/GormImageEditor.m * GormCore/GormImage.m * GormCore/GormInspectorsManager.h * GormCore/GormInspectorsManager.m * GormCore/GormInternalViewEditor.h * GormCore/GormInternalViewEditor.m * GormCore/GormMatrixEditor.h * GormCore/GormMatrixEditor.m * GormCore/GormObjectEditor.h * GormCore/GormObjectEditor.m * GormCore/GormObjectInspector.m * GormCore/GormPalettesManager.h * GormCore/GormPalettesManager.m * GormCore/GormPlacementInfo.h * GormCore/GormPrivate.h * GormCore/GormPrivate.m * GormCore/GormProtocol.h * GormCore/GormResourceEditor.h * GormCore/GormResourceEditor.m * GormCore/GormResource.m * GormCore/GormScrollViewEditor.m * GormCore/GormSoundEditor.h * GormCore/GormSoundEditor.m * GormCore/GormSound.m * GormCore/GormSplitViewEditor.h * GormCore/GormSplitViewEditor.m * GormCore/GormViewEditor.h * GormCore/GormViewEditor.m * GormCore/GormViewResourceManager.h * GormCore/GormViewResourceManager.m * GormCore/GormViewSizeInspector.m * GormCore/GormViewWindow.h * GormCore/GormViewWindow.m * GormCore/GormViewWithContentViewEditor.h * GormCore/GormViewWithContentViewEditor.m * GormCore/GormViewWithSubviewsEditor.h * GormCore/GormViewWithSubviewsEditor.m * GormCore/GormWindowEditor.m * GormCore/NSCell+GormAdditions.h * GormCore/NSCell+GormAdditions.m * GormCore/NSColorWell+GormExtensions.h * GormCore/NSColorWell+GormExtensions.m * GormCore/NSFontManager+GormExtensions.h * GormCore/NSFontManager+GormExtensions.m * GormCore/NSView+GormExtensions.h * GormCore/NSView+GormExtensions.m * GormLib/IBApplicationAdditions.h * GormLib/IBApplicationAdditions.m * GormLib/IBCellAdditions.h * GormLib/IBCellProtocol.h * GormLib/IBConnectors.h * GormLib/IBConnectors.m * GormLib/IBDefines.h * GormLib/IBDocuments.h * GormLib/IBDocuments.m * GormLib/IBEditors.h * GormLib/IBEditors.m * GormLib/IBInspector.h * GormLib/IBInspector.m * GormLib/IBInspectorManager.h * GormLib/IBInspectorManager.m * GormLib/IBObjectAdditions.h * GormLib/IBObjectAdditions.m * GormLib/IBObjectProtocol.h * GormLib/IBPalette.h * GormLib/IBPalette.m * GormLib/IBProjectFiles.h * GormLib/IBProjects.h * GormLib/IBResourceManager.h * GormLib/IBResourceManager.m * GormLib/IBViewAdditions.h * GormLib/IBViewProtocol.h * GormLib/IBViewResourceDragging.h * GormLib/InterfaceBuilder.h * GormPrefs/GormColorsPref.h * GormPrefs/GormGeneralPref.m * GormPrefs/GormGuidelinePref.h * GormPrefs/GormPalettesPref.m * Palettes/0Menus/GormMenuEditor.m * Palettes/0Menus/GormMenuInspectors.m * Palettes/0Menus/GormNSMenu.h * Palettes/0Menus/GormNSMenu.m * Palettes/0Menus/main.m * Palettes/1Windows/GormNSPanel.h * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.h * Palettes/1Windows/GormNSWindow.m * Palettes/1Windows/main.m * Palettes/2Controls/GormButtonEditor.h * Palettes/2Controls/GormButtonEditor.m * Palettes/2Controls/inspectors.m * Palettes/2Controls/main.m * Palettes/3Containers/GormNSBrowser.h * Palettes/3Containers/GormNSBrowser.m * Palettes/3Containers/GormNSOutlineView.h * Palettes/3Containers/GormNSOutlineView.m * Palettes/3Containers/GormNSTableView.h * Palettes/3Containers/GormNSTableView.m * Palettes/3Containers/GormTableViewEditor.h * Palettes/3Containers/GormTableViewEditor.m * Palettes/3Containers/GormTabViewEditor.h * Palettes/3Containers/GormTabViewEditor.m * Palettes/3Containers/inspectors.m * Palettes/3Containers/main.m * Palettes/4Data/inspectors.m * Palettes/4Data/main.m * Palettes/GNUmakefile: Change of address for FSF in header. 2005-05-25 23:09 Gregory John Casamento * GNUmakefile * GNUmakefile.postamble * GNUmakefile.preamble * Gorm.m * main.m: Change address of FSF. * Palettes/1Windows/GormNSWindowInspector.gorm: Remove "wants to be color". * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Added window autoposition section and max size section to .gorm file. 2005-05-24 00:28 Gregory John Casamento * English.lproj/GormClassInspector.gorm: Added link to invoke selectAction: when an action is selected, also added link to invoke selectOutlet: when an outlet is selected. * GormCore/GormClassInspector.m: Addition of two new actions selectAction: and selectOutlet: 2005-05-22 00:41 Gregory John Casamento * GormCore/GormClassEditor.m: Correction for outline view resize issues in switchView. 2005-05-21 13:15 Gregory John Casamento * English.lproj/GormPrefGeneral.gorm: Make the top switch off. * GormCore/GormClassEditor.m: Added code in switchView to properly resize the view so that it doesn't shrink when switching between the outline and browser. * GormPrefs/GormGeneralPref.m: Correct problem setting the radio button. 2005-05-21 11:06 Gregory John Casamento * English.lproj/GormPrefGeneral.gorm: Added oulets/actions for matrix to choose outline or browser view. * GormCore/GormClassEditor.h: Added forward declaration for NSBrowser. * GormCore/GormClassEditor.m: Added new private methods and also added code to existing methods to handle the browser view. * GormCore/GormClassManager.m: Removed artificial returning of NSObject in subClassesOf: and allSubclassesOf: so that it's now possible to all root classes when querying for "nil". * GormCore/GormFilePrefsManager.m: Updated version. * GormInfo.plist: Updated version. * GormPrefs/GormGeneralPref.h: Added interfaceMatrix and classesAction: * GormPrefs/GormGeneralPref.m: Implemented classesAction. * Resources/Defaults.plist: Added new default so that the user's preference for the classes view is stored. 2005-05-19 23:54 Gregory John Casamento * Version 0.9.10 2005-05-07 06:50 Gregory John Casamento * Gorm.m: In handleNotification: reset selection owner to nil when document is closed. In validateMenuItem: do not get class manager or selection owner when there is no active document. 2005-05-07 06:35 Gregory John Casamento * GormCore/GModelDecoder.m: Code to remove uneeded classes from the model during processing. * GormCore/GormClassEditor.m: Beginnings of class browser code. 2005-05-04 05:32 Gregory John Casamento * GormCore/GormClassEditor.h: Changed class inheritance added some ivars. * GormCore/GormClassEditor.m: Made the editor indenpendent of the outlineview. It now is an NSBox subclass. Preparing to implement NSBrowser view of class hierarchy. * GormCore/GormClassInspector.m: Changed document extensions to call resetObject: on the editor instead of reset. * GormCore/GormClassManager.m: Removed uneeded variable. * GormCore/GormDocument.m: Changed to use new editor view. * GormCore/GormPrivate.h: Added include. 2005-05-01 01:18 Gregory John Casamento * GormCore/GormClassManager.m: Added code in initWithDocument: which properly adds the methods to FirstResponder. Previously these methods were being added in "ExtraActions" which was not correct. Methods which are added in the palette should be added to "Actions". 2005-04-28 08:50 Gregory John Casamento * GormCore/GormDocument.m: Correct problem in setName:forObject: which was causing a segfault. 2005-04-24 11:16 Gregory John Casamento * GormCore/GormClassManager.m: Remove special case for NSSecureTextField. * GormCore/GormCustomClassInspector.m: Added new private method to call canSubstituteForClass: when appropriate to determine if the class should appear in the class list. * GormCore/GormPrivate.m: Added default implementation of canSubstituteForClass: on NSObject to return NO. * Palettes/2Controls/inspectors.m: Added implementation of canSubstituteForClass: to NSSecureTextField. 2005-04-23 22:57 Gregory John Casamento * GormCore/GormClassEditor.m: Change in performDragOperation: to bring up an alert panel if the header can't be parsed. 2005-04-23 20:13 Gregory John Casamento * GormCore/GormClassEditor.m: Register for all types. * GormCore/GormDocument.h: Added new method allManagedPbTypes. * GormCore/GormDocument.m: Implemented new method. * GormCore/GormObjectEditor.m: Register for all types. * GormCore/GormPrivate.m: Added call to new method which returns the pb types for all resource managers. 2005-04-23 14:37 Gregory John Casamento * GormCore/GNUmakefile: Added new files. * GormCore/GormBoxEditor.m: Added new includes. * GormCore/GormControlEditor.m: Added new includes * GormCore/GormDocument.m: Added new includes. * GormCore/GormGenericEditor.m: Added new includes. * GormCore/GormImageEditor.m: Added new includes. * GormCore/GormInternalViewEditor.m: * GormCore/GormMatrixEditor.m: Added new includes * GormCore/GormObjectEditor.m: Added new header. * GormCore/GormPrivate.h: Removed declarations. * GormCore/GormResourceEditor.m: Include new header. * GormCore/GormScrollViewEditor.m: Include new header. * GormCore/GormSoundEditor.m: Include new header. * GormCore/GormSplitViewEditor.m: Added GormViewKnobs.h * GormCore/GormViewEditor.m: Added GormViewKnobs.h * GormCore/GormViewSizeInspector.m: Added GormViewKnobs.h * GormCore/GormViewWithContentViewEditor.m: Added GormViewKnobs.h * GormCore/GormWindowEditor.m: Added GormViewKnobs.h * GormCore/GormSoundEditor.h: Pulled out of GormPrivate.h * GormCore/GormImageEditor.h: Pulled out of GormPrivate.h * GormCore/GormResourceEditor.h: Pulled out of GormPrivate.h * GormCore/GormObjectEditor.h: Pulled out of GormPrivate.h * GormCore/GormGenericEditor.h: Pulled out of GormPrivate.h * Gorm.m: Added new includes * GormPrefs/GormPalettesPref.m: Eliminated warning. * Palettes/0Menus/GormMenuEditor.m: Removed unused variable. * Palettes/3Containers/GormTabViewEditor.m: Added include to GormViewKnobs.h 2005-04-23 13:11 Gregory John Casamento * GormCore/GNUmakefile: Added new files. * GormCore/GormClassEditor.m: Changed to include new header, and use new method for registration of pboard types. * GormCode/GormClassEditor.h: New file * GormCore/GormDocument.m: Changed to include new header. * GormCore/GormObjectEditor.m: Uses new method to register all pboard types. * GormCore/GormPrivate.h: Added declaration for new method. * GormCore/GormPrivate.m: Added new method to register pboard types. * GormCore/GormResourceEditor.m: Changed to use new method. * NSCell+GormAdditions.h: Removed from GormPrivate.h * NSCell+GormAdditions.m: Removed from GormPrivate.m 2005-04-23 02:50 Gregory John Casamento * GormCore/GormClassEditor.m: Implementation of editor/dragging methods. * GormCore/GormDocument.m: Uncommented the section of the changeToTopLevelEditorAcceptingTypes: method which switches to the classes view. * GormCore/GormGenericEditor.m: Added implementation for fileTypes. * GormCore/GormPrivate.h: Added declaration of fileTypes. 2005-04-22 17:15 Gregory John Casamento * GormCore/GormDocument.h: Changed signature. * GormCore/GormDocument.m: Add another parameter on the new method added previously. * GormCore/GormObjectEditor.m: Get the ext to pass and call changeToTopLevelEditorAcceptingTypes:andFileTypes: if the type is NSFilenamePboardType. * GormCore/GormResourceEditor.m: Get the ext to pass and call changeToTopLevelEditorAcceptingTypes:andFileTypes: 2005-04-22 15:57 Gregory John Casamento * GormCore/GormDocument.h: Added new method. * GormCore/GormDocument.m: Added implementation for changeToTopLevelEditorAcceptingTypes and changeToViewWithTag:. * GormCore/GormObjectEditor.m: Added code to call changeToTopLevelEditorAcceptingTypes: when a given type isn't accepted by this editor. * GormCore/GormResourceEditor.m: Added code to call changeToTopLevelEditorAcceptingTypes: when a given type isn't accepted by this editor. 2005-04-22 12:38 Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: [GormMenuEditor pasteInSelection] removed extra call to attachObject:withParent:. 2005-04-22 12:24 Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: [GormMenuEditor pasteInSelection] corrected problem with pasting the menu items. 2005-04-21 20:40 Gregory John Casamento * GormCore/GNUmakefile: Build the new resource manager. * GormCore/GormDocument.m: Register the new resource manager. * GormCore/GormViewResourceManager.m: New resource manager for views. * GormLib/IBResourceManager.m: Removed views for the main resource manager. 2005-04-21 00:39 Gregory John Casamento * GormCore/GormViewEditor.m: Fix for double "setView:" call. * GormCore/GormViewWindow.m: Code cleanup. 2005-04-20 23:00 Gregory John Casamento * GormCore/GormObjectEditor.m: Added copyright information. * GormLib/IBResourceManager.m: Added exception handling to prevent a problem unarchiving an object from the pasteboard from crashing the app. 2005-04-20 21:51 Gregory John Casamento * GormCore/GormClassManager.m: Restrict instantiation of NSView and subclasses using Command-Shift-I. This means that standalone views can only be created from objects which are draggable from the palette. * GormCore/GormViewEditor.m: Removed logging ever time a standalone view is placed, as I don't consider the functionality experimental at this point. * GormCore/GormViewWindow.m: Size the window to accommodate the view if it already has size, if it doesn't resize the view to the window's dimensions. 2005-04-20 06:27 Gregory John Casamento * Palettes/2Controls/ControlsPalette.gorm: Corrected minor problem with switch and radio buttons in the controls palette. * TODO: Updated completed item. 2005-04-17 20:46 Gregory John Casamento * GormCore/GormCustomClassInspector.m: In _replaceCellClassForObject: className: corrected a problem where the drawBackground flag is set to NO when changing the cell type. It is now preserved when the new cell object is set. * Palettes/2Controls/GormButtonEditor.h: Added ivar. * Palettes/2Controls/GormButtonEditor.m: Corrects a bug reported by Matt Rice where the temporary text field becomes part of the document when saving while editing a button. 2005-04-17 12:06 Gregory John Casamento * GormCore/GormDocument.m: Added code in loadDocument: and saveGormDocument: to use data from the new SubstituteClasses entry in the palette.table. * GormCore/GormFilePrefsManager.m: Updated version to 0.9.9 * GormCore/GormPalettesManager.h: Added substituteClasses ivar. * GormCore/GormPalettesManager.m: Implemented code to use SubstituteClasses entry in palette. * GormInfo.plist: Update version to 0.9.9 2005-04-16 21:44 Gregory John Casamento * GormCore/GormDocument.m: In removeConnector: make the IBWillRemoveConnectorNotification carry aConnector as the object, instead of the document. The same for IBDidRemoveConnectorNotification. 2005-04-16 19:29 Gregory John Casamento * GormCore/GormPalettesManager.m: Slight improvement to palette import. 2005-04-16 17:21 Gregory John Casamento * GormCore/GormClassManager.m: Added code in initWithDocument: to add the actions to the FirstResponder. * GormCore/GormFunctions.h * GormCore/GormFunctions.m: Added function to get the actions from a class. * GormCore/GormPalettesManager.m: Added code to get actions/outlets from classes in exported from palettes. * Palettes/0Menus/GNUmakefile * Palettes/1Windows/GNUmakefile * Palettes/2Controls/palette.table * Palettes/3Containers/GNUmakefile: Added palette.table 2005-04-15 02:14 Gregory John Casamento * GormCore/GormInspectorsManager.m: Patch from Matt Rice to allow connection from a table column. * GormCore/GormPalettesManager.m: Import action methods automatically from the class. * Palettes/3Containers/GormTableViewEditor.m: Patch from Matt Rice to allow connection from a table column. 2005-04-14 01:42 Gregory John Casamento * Resources/ClassInformation.plist: Added NSPopUpButtonCell and NSMenuItemCell. 2005-04-14 00:31 Gregory John Casamento * GormCore/GormClassManager.m: More informative error message when a class can't be found. * GormCore/GormImage.m: Implement objectNameForInspectorTitle. * GormCore/GormInspectorsManager.m: Remove special cases for Image and Sound. * GormCore/GormPalettesManager.m: Beginnings of code to get outlets/actions for exported class. * GormCore/GormResource.h: Added include for IBObjectAdditions.h to GormResource.h * GormCore/GormSound.m: Implement objectNameForInspectorTitle. 2005-04-12 20:27 Gregory John Casamento * GormCore/GormGenericEditor.m: Unsubscribe from all notifications. * GormCore/GormObjectEditor.m: Correct problem preventing connections. 2005-04-11 23:24 Gregory John Casamento * GormCore/GormInspectorsManager.m: Send a call to "revert" to load the contents of the inspector from the object. 2005-04-11 22:46 Gregory John Casamento * GormCore/GormGenericEditor.m: Removed release of resource manager. This is a "weak connection" in the sense that the manager is a shared instance and is retained by the document, not the editor. 2005-04-11 19:22 Gregory John Casamento * GormCore/GormObjectEditor.m: Correction for problem which was causing issues with dragging. 2005-04-11 16:38 Gregory John Casamento * GormCore/GormDocument.m: Improved documentation. 2005-04-11 01:38 Gregory John Casamento * GormLib/IBResourceManager.m: Made addResourcesFromPasteboard: call addResources: for each array for a given type from the pasteboard. 2005-04-11 01:04 Gregory John Casamento * GormCore/GormDocument.m * GormCore/GormObjectEditor.m: Corrected problem with resource manager. 2005-04-10 23:59 Gregory John Casamento * GormCore/GormDocument.m: Moved call to register IBResourceManager here and also correct a memory problem. * GormCore/GormObjectEditor.m: Corrected a problem with registering the types. 2005-04-10 22:42 Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist: Updated version to 0.9.7. 2005-04-10 20:09 Gregory John Casamento * GormCore/GormDocument.h * GormCore/GormDocument.m: addition of the method resourceManagerForPasteboard:. * GormCore/GormObjectEditor.m: Changes to utilize IBResourceManager * GormLib/IBResourceManager.h * GormLib/IBResourceManager.m: Changes to add objects to the document properly. 2005-04-10 18:13 Gregory John Casamento * GormCore/GormDocument.h: Organized methods. * GormCore/GormDocument.m: Added code here to add to top level objects array, when appropriate. * GormCore/GormGenericEditor.m: Prevent close when already closed. * GormCore/GormObjectEditor.m: Removed code which adds to document/top level objects, this is done in the document now. * GormCore/GormPrivate.h: Added new ivar to GormGenericEditor * GormLib/IBResourceManager.h * GormLib/IBResourceManager.m: Corrected implementation of register methods. * Resources/ClassInformation.plist: Added Object. 2005-04-03 07:36 Gregory John Casamento * GormLib/IBResourceManager.[hm]: Implementation of this class. 2005-03-30 23:36 Gregory John Casamento * GormCore/GormFilePrefsManager.m: Update the version of a file, once it's been saved with a new version of Gorm. 2005-03-30 22:43 Gregory John Casamento * GormCore/GormFilePrefsManager.m: Update to version 0.9.5. * GormInfo.plist: Update to version 0.9.5. 2005-03-30 06:09 Gregory John Casamento * Merge: from branch: build_reorg_branch. 2005-03-30 06:09 Gregory John Casamento BRANCH: build_reorg_branch * GNUmakefile: Added GormInfo.plist back to the top level dir * Resources/GormInfo.plist: Removed from here. 2005-03-29 21:42 Gregory John Casamento BRANCH: build_reorg_branch * GNUmakefile * GNUmakefile.preamble * GormPrefs/GNUmakefile * GormPrefs/GNUmakefile.preamble * Palettes/0Menus/GNUmakefile.preamble * Palettes/1Windows/GNUmakefile.preamble * Palettes/2Controls/GNUmakefile.preamble * Palettes/3Containers/GNUmakefile.preamble * Palettes/4Data/GNUmakefile.preamble: Removed GormPrefs framework, it is now a library. * Resources: Moved all .gorm files from here.. * English.lproj: To here. 2005-03-29 Richard Frith-Macdonald BRANCH: build_reorg_branch * GormPalettesManager.m: Fix some coordinate translation bugs when the gui is decorating windows itsself. 2005-03-29 02:47 Gregory John Casamento BRANCH: build_reorg_branch * GormCore/GNUmakefile.preamble: Removed link to GormPrefs. * GormCore/GormPrivate.m: Removed uneeded reference to GormPrefs. 2005-03-29 02:24 Gregory John Casamento BRANCH: build_reorg_branch * GNUmakefile.postamble: Removed kludge for windows. * GormCore/GNUmakefile.preamble: Fixed path. 2005-03-29 01:50 Gregory John Casamento BRANCH: build_reorg_branch * GNUmakefile: Reorganized the build order so that GormCore is built before GormPrefs. 2005-03-29 01:40 Gregory John Casamento BRANCH: build_reorg_branch * GNUmakefile.preamble * GormPrefs/GNUmakefile * Palettes/0Menus/GNUmakefile.preamble * Palettes/1Windows/GNUmakefile.preamble * Palettes/2Controls/GNUmakefile.preamble * Palettes/3Containers/GNUmakefile.preamble * Palettes/4Data/GNUmakefile.preamble: Build and link GormPrefs as a library on windows, for now, until the bug is fixed. 2005-03-29 01:24 Gregory John Casamento BRANCH: build_reorg_branch * Palettes/0Menus/GNUmakefile.preamble * Palettes/1Windows/GNUmakefile.preamble * Palettes/2Controls/GNUmakefile.preamble * Palettes/3Containers/GNUmakefile.preamble * Palettes/4Data/GNUmakefile.preamble: Added lines to all of these files to link the GormCore when the palette is built on windows. 2005-03-29 01:08 Gregory John Casamento BRANCH: build_reorg_branch * Gorm.m: Added new version here, after factoring out of GormCore. * install-windows.sh: Removed. 2005-03-28 19:55 Gregory John Casamento BRANCH: build_reorg_branch * GormCore: New library (may become a framework) * *.[hm]: Except for main.m, moved to GormCore. 2005-03-27 06:24 Gregory John Casamento * GormClassEditor.m: Added addAttributeToClass here. Also added a check to prevent changing the outline row count. * GormOutlineView.m: Removed addAttributeToClass from here. * GormPrivate.h: Moved addAttributeToClass to class editor. 2005-03-26 15:02 Gregory John Casamento BRANCH: build_reorg_branch * GNUmakefile: Add new framework to makefile. * Resources: Removed pref gorms. * GormLib: New framework. Pref gorms moved here as 2005-03-26 10:18 Gregory John Casamento * install-windows.sh: Installation script for windows. This automates the process until the reorg is completed. 2005-03-26 01:49 Gregory John Casamento * GNUmakefile: Correction to previous commit. Compile palettes after GormLib/InterfaceBuilder library. 2005-03-26 01:37 Gregory John Casamento These changes allow the build to work correctly on UNIX and preserve Nicola's changes for mingw. This is temporary until the build is reorganized. * GNUmakefile: Added Palettes back to subprojects back in with conditional for mingw. * GNUmakefile.postamble: Added conditional for targets so that they will work as expected on UNIX. 2005-03-22 04:30 Nicola Pero With these changes, Gorm builds and runs out-of-the-box on Mingw32 with latest gnustep-make. * GNUmakefile (SUBPROJECTS): Do not build Palettes as a subproject because they depend on Gorm.app having been built first. * GNUmakefile.postamble (after-all): Added rule to manually build Palettes after Gorm.app. (after-clean): Same change. (after-distclean): Same change. * Palettes/0Menus/GNUmakefile.preamble: Link ../../Gorm.app/Gorm.exe.a on Mingw. * Palettes/1Windows/GNUmakefile.preamble: Same change. * Palettes/2Controls/GNUmakefile.preamble: Same change. * Palettes/3Containers/GNUmakefile.preamble: Same change. * Palettes/4Data/GNUmakefile.preamble: Same change. 2005-03-21 23:30 Nicola Pero * GormLib/IBSystem.h: Fixed windows32 check for building the library. The library name is libGorm, not libGormLib! Also, simply use extern when exporting on Mingw. * GormLib/GNUmakefile.preamble: Removed special linking additions on Mingw, not needed. * Palettes/0Menus/GNUmakefile.preamble: Use ADDITIONAL_GUI_LIBS, not xxx_LIBRARIES_DEPEND_UPON, to link libGorm on Mingw. * Palettes/1Windows/GNUmakefile.preamble: Same change. * Palettes/2Controls/GNUmakefile.preamble: Same change. * Palettes/3Containers/GNUmakefile.preamble: Same change. * Palettes/4Data/GNUmakefile.preamble: Same change. 2005-03-20 10:17 Gregory John Casamento * GormViewEditor.m: [GormViewEditor performDragOperation:] call [GormDocument setSelectionFromEditor:] with self in order to force the inspector to show the newly added image name. 2005-03-19 16:04 Gregory John Casamento * GormLib/InterfaceBuilder.h: Added new header * GormLib/IBViewResourceDragging.h: New header * GormLib/GNUmakefile: Added new header 2005-03-19 05:39 Gregory John Casamento * GormViewEditor.m: Corrected problem with control snapping to edge when the threshold for the guideline was set lower than 5. * Resources/GormPrefGuideline.gorm: Set minimum of slider to 1. * Resources/GormPrefHeaders.gorm: Adjusted sizing of table. * Resources/GormPrefPalettes.gorm: Corrected background color 2005-03-19 04:57 Gregory John Casamento * Defaults.plist: Added default of 10 for "GuideSpacing". * GNUmakefile: Added new files. * GormColorsPref.h: Removed extra "#" from header. * GormGuidelinePref.[hm]: New controller class for preference module. * GormPrefController.[hm]: Added new preference panel. * GormViewEditor.m: Modifed to use new GuideSpacing preference value instead of a hardcoded value of 10 or 5. * Resources/GormPreferences.gorm: Added new pulldown. * Resources/GormPrefGuideline.gorm: New gui for setting GuideSpacing default. 2005-03-19 03:31 Gregory John Casamento * Defaults.plist: Change default to allow user bundles to YES. 2005-03-11 21:31 Gregory John Casamento * GNUmakefile: Remove Testing directory from makefile. 2005-03-11 21:25 Gregory John Casamento * Testing: Removed the "GormTest" application. Since most .gorm files use classes which will never be linked into that application and since the "test interface" functionality in Gorm itself provides the same functionality, this app is being removed. 2005-03-09 23:58 Gregory John Casamento * Documentation/GNUmakefile: Install docs into correct location under ${GNUSTEP_SYSTEM_ROOT}/Library/Documentation. 2005-03-08 00:15 Gregory John Casamento * GNUmakefile: Added new files. * GormDocument.h: Added header for InterfaceBuilder.h to get the necessary interface declarations. * GormDocument.m: Change to retain and release the last used editor. * NSFontManager+GormExtensions.[hm]: New files. 2005-03-07 22:18 Gregory John Casamento * GormDocument.m: Added code to make the window of the widget selected, the key window. This helps correct Bug#12224. * Palettes/1Windows/GormNSWindow.m: Added method canBecomeKeyWindow to guarantee that it returns YES. 2005-03-06 06:20 Gregory John Casamento * Documentation/Gorm.texi: Added FAQ concerning font modification. 2005-03-05 23:07 Gregory John Casamento * GNUmakefile: Added new class. * GormImageEditor.m: Refactored all of the code into the new parent. Implemented only those methods needed. * GormPrivate.h: Changed hierarchy of GormImageEditor and GormSoundEditor to have GormResourceEditor as their parent * GormResourceEditor.m: New parent for sound/image editors. * GormSoundEditor.m: Refactored all of the code into the new parent class. Implemented needed methods. 2005-03-04 04:04 Gregory John Casamento * GormImageEditor.m * GormPrivate.h: Added declaration for new method. * GormSoundEditor.m: Streamlined drag/drop code in image/sound editors. 2005-03-01 21:34 Gregory John Casamento * GNUmakefile: Added new files. * GormDocument.m: Calls new resource methods. * GormImageEditor.m: Calls new resource methods. * GormImage.[hm]: Now inherits from GormResource. * GormResource.[hm]: Added. New abstract resource class which implements IBResourceFiles. * GormSoundEditor.m: Calls new methods. * GormSound.[hm]: Now inherits from GormResource. * GormSoundInspector.m: Calls new methods. 2005-02-28 20:13 Gregory John Casamento * GormFilePrefsManager.m * GormInfo.plist: Bump application version in CVS. 2005-02-28 19:53 Gregory John Casamento * Version 0.9.2 2005-02-27 12:07 Gregory John Casamento * Documentation/Gorm.texi: Added a question to the FAQ. 2005-02-27 00:22 Gregory John Casamento * Documentation/Makefile.postamble: Now generates autogsdoc documentation for GormLib and places it in the "InterfaceBuilder" directory under Documentation. 2005-02-27 00:03 Gregory John Casamento * Documentation/Gorm.texi: Palette documentation. 2005-02-26 22:14 Gregory John Casamento * Documentation/Gorm.texi: Updating documentation to contain information answering recent questions about encoding. 2005-02-20 12:48 Gregory John Casamento * GModelDecoder.m: Mapped NSCStringText to NSText. 2005-02-19 02:29 Gregory John Casamento * Defaults.plist: Added new default "AllowUserBundles" to disable new code which prevents Gorm from running if a user bundle is present. * Gorm.m: Added code in [Gorm applicationDidFinishLaunching:] to warn the user and quit, unless the above default is set, if there is a user bundle loaded. It will give the user a few panels explaining what's going on. 2005-02-15 23:37 Gregory John Casamento * GormPosingView.[hm]: Removed. 2005-02-15 23:24 Gregory John Casamento * Gorm.m: Disabled poseAs: and poseAsClass: while in Gorm. * Resources/GormClassInspector.gorm * Resources/GormFontView.gorm * Resources/GormImageInspector.gorm * Resources/GormNSSplitViewInspector.gorm * Resources/GormPrefGeneral.gorm * Resources/GormPrefPalettes.gorm * Resources/GormScrollViewAttributesInspector.gorm: made sure that all fonts are system fonts. 2005-02-14 23:35 Gregory John Casamento * GormClassManager.m: changed [GormClassManager parseHeader:] to be able to properly handle categories on existing classes. 2005-02-14 01:00 Gregory John Casamento * GormObjCHeaderParser/OCIVarDecl.m: Corrected problem with reading declarations which have the "*" spaced oddly. Problem reported by Nicolas Roard. 2005-02-13 09:37 Gregory John Casamento * GModelDecoder.m: After gmodel load, mark the document as edited in openGModel:. * GormDocument.m: in setupDefaults: mark the document as edited. 2005-02-13 09:27 Gregory John Casamento * GormDocument.m: in [GormDocument attachObject:withParent:] coercion of id to NSControl to avoid warning about selection of the target method. Changed setSelectionFromEditor: to stop any connection activity when a selection is changed. 2005-02-13 04:46 Gregory John Casamento * GormDocument.m: in -loadDocument: if the extension is .gmodel call the openGModel: method to load it. 2005-02-06 10:43 Gregory John Casamento * GormDocument.m: in -saveAsDocument: return the value returned by -saveGormDocument: when it's called. 2005-02-06 02:13 Gregory John Casamento * Resources/GormViewSizeInspector.gorm: Corrected box title color. 2005-02-05 15:26 Gregory John Casamento * Palettes/0Menus/main.m: Corrected "revert To Saved" to "Revert To Saved". * Palettes/2Controls/GormNSButtonInspector.gorm: Corrected box title color. 2005-02-05 09:16 Gregory John Casamento * GormDocument.m: Improved some of the panel messages when gorm has a problem loading/saving. Added titles. * Gorm.m: Made some of the warning panels have a title. Added code to -testInterface: and -endTesting: to close extra windows opened during testing. * GormPrivate.h: testingWindows ivar to hold windows which were open before testing, so that we know which ones to orderOut when testing ends. 2005-02-02 22:44 Gregory John Casamento * GormDocument.m: -[GormDocument removeConnectionsWithLabel:..] added break to avoid iterating through all connections when the user has responded "NO". * GormFilePrefsManager.m: Update version to 0.9.1 * GormInfo.plist: Update version to 0.9.1 * GormObjCHeaderParser/OCIVarDecl.m: Change to correct problem reading ivars with <...> in them such as id xxx. 2005-02-01 23:40 Gregory John Casamento * Version 0.9.0 2005-01-31 23:34 Gregory John Casamento * GormClassManager.m: Corrected bug#11778. Added code which removes connections when a class is being reparsed. * GormFilePrefsManager.m: Updated file prefs with new version. * GormInfo.plist: Updated plist with new version. 2005-01-31 01:33 Gregory John Casamento * GormDocument.m: In the -[GormDocument removeConnections:..] methods corrected a problem with removing a connector while enumerating throught the list of connectors. This was causing the process to miss some of the connections which should have been removed. * Gorm.m: -[Gorm stopConnecting]: Properly reset the connectionSource and connectionDestination with the connecting process is stopped. Correction for bug#11777. * GormObjectEditor.m: -[GormObjectEditor removeAllInstancesOfClass:] correct problem where all instances were not being removed. 2005-01-30 14:34 Gregory John Casamento * GormObjCHeaderParser/GNUmakefile: Added new files. * GormObjCHeaderParser/OCClass.m: Uses lookAhead function * GormObjCHeaderParser/OCIVarDecl.m: Uses lookAhead function * GormObjCHeaderParser/OCIVar.m: Uses lookAhead function * GormObjCHeaderParser/ParserFunctions.[hm]: New functions for use by the class parser. * Resources/GormDocument.gorm: Corrected background color. 2005-01-30 00:33 Gregory John Casamento * GNUmakefile: Build new file. * NSColorWell+GormExtensions.[hm]: Category which allows the setting of a color into a color well without invoking the action associated with that control. * Palettes/1Windows/main.m: Include new extension. * Palettes/2Controls/inspectors.m: Include new extension. * Palettes/3Containers/inspectors.m: Include new extension. * Palettes/4Data/inspectors.m: Include new extension. 2005-01-29 22:36 Gregory John Casamento * GormDocument.m: in -handleNotification: added code to reset the selection to nil to clear the inspector when the window is miniaturized. 2005-01-29 18:55 Gregory John Casamento * GormClassInspector.m: In -addAction:, -addOutlet:, -removeAction:, -removeOutlet:, -selectClass: made changes to make sure that if the document is not active, that the method will fall through. This prevents a crash when user presses buttons on the class inspector window when the document is miniaturized. * Palettes/2Controls/inspectors.m: Improved error when the .gorm file can't be loaded for GormBoxInspector. 2005-01-28 21:50 Gregory John Casamento * Palettes/2Controls/GormNSStepperInspector.gorm: Corrected problem with inspector. 2005-01-28 00:41 Gregory John Casamento * GormClassInspector.m: Added call to super ok: method. * GormCustomClassInspector.m: Added call to super ok: method. * GormLib/IBInspector.m: Corrected touch method to properly update the document status. Implemented ok: which simply calls touch: in the superclass. * GormNSSplitViewInspector.m: Added call to super ok: method. * GormObjectInspector.m: Added call to super ok: method. * GormScrollViewAttributesInspector.m: Added call to super ok: method. * GormViewSizeInspector.m: Added call to super ok: method. * Palettes/1Windows/GormNSWindowInspector.gorm: Corrected background. * Palettes/1Windows/main.m: Added call to super ok: method for all inspectors. * Palettes/2Controls/GormNSBoxInspector.gorm: Corrected background. * Palettes/2Controls/GormNSButtonInspector.gorm: Corrected background. * Palettes/2Controls/GormNSCellInspector.gorm: Corrected background. * Palettes/2Controls/GormNSColorWellInspector.gorm: Corrected background. * Palettes/2Controls/GormNSFormInspector.gorm: Corrected background. * Palettes/2Controls/GormNSMatrixInspector.gorm: Corrected background. * Palettes/2Controls/GormNSPopUpButtonInspector.gorm: Corrected background. * Palettes/2Controls/GormNSSliderInspector.gorm: Corrected background. * Palettes/2Controls/GormNSStepperInspector.gorm: Corrected background. * Palettes/2Controls/GormNSTextFieldInspector.gorm: Corrected background. * Palettes/2Controls/inspectors.m: Added call to super ok: method. * Palettes/3Containers/GormNSBrowserInspector.gorm: Corrected background. * Palettes/3Containers/GormNSTableColumnInspector.gorm: Corrected background. * Palettes/3Containers/GormNSTableColumnSizeInspector.gorm: Corrected background. * Palettes/3Containers/GormNSTableViewInspector.gorm: Corrected background. * Palettes/3Containers/GormTabViewInspector.gorm: Corrected background. * Palettes/3Containers/inspectors.m: Added call to super ok: method. * Palettes/4Data/GormNSComboBoxInspector.gorm: Corrected background. * Palettes/4Data/GormNSDateFormatterInspector.gorm: Corrected background. * Palettes/4Data/GormNSImageViewInspector.gorm: Corrected background. * Palettes/4Data/GormNSNumberFormatterInspector.gorm: Corrected background. * Palettes/4Data/GormNSTextViewInspector.gorm: Corrected background. * Palettes/4Data/inspectors.m: Added call to super ok: method for all inspectors. * Resources/GormImageInspector.gorm: Corrected background. * Resources/GormViewSizeInspector.gorm: Corrected background. Corrects bug#11346 2005-01-23 00:41 Gregory John Casamento * GormFunctions.m: identifierString() added code which tests the result to see if it's zero length. If it is, it's replaced with "dummyIdentifier". 2005-01-22 15:38 Gregory John Casamento * GormClassEditor.m: Replaced use of the class methods from GormDocument with the appropriate function call. * GormClassInspector.m: Replaced use of the class methods from GormDocument with the appropriate function call. * GormDocument.[hm]: Removed the formatting class methods. * GormFunctions.[hm]: Added indentifierString(), formatAction(), formatOutlet() functions. NOTE: The correct way to apply this formatting is using NSFormatter subclasses. This will be done after the pending release. 2005-01-22 14:21 Gregory John Casamento * GNUmakefile: Reorganized the files in the resources, hearders and source lists. 2005-01-22 12:14 Gregory John Casamento * GormDocument.m: In [GormDocument detachObject:] made [GormDocument setObject:isVisibleAtLaunch:] called only when the object is an NSWindow subclass. * GormImageEditor.m: Added implementation of addObject: to prevent addition of duplicate images. * GormImage.h: Added isEqual: so that containsObject: can find the image. * GormImage.m: Added isEqual: declaration. * GormSoundEditor.m: Added implementation of addObject to prevent addition of duplicate sounds. * GormSound.h: Added isEqual: so that containsObject can find the sound. * GormSound.m: Added isEqual: declaration. 2005-01-11 22:04 Gregory John Casamento * GModelDecoder.m: Default NSWindows being imported from the .gmodel to the default window background color in the method [GModelApplication initWithModelUnarchiver:]. 2005-01-09 01:36 Gregory John Casamento * ClassInformation.plist: Added missing changeFont: method. * GormClassManager.m: Changed code to read only the additions to FirstResponder from the data.classes file. * GormFilePrefsManager.m: Updated version to 0.8.7. * GormImageEditor.m: Made some logs "debug". * GormInfo.plist: Updated version. * GormInternalViewEditor.m: Made some logs "debug". * Palettes/1Windows/GormNSWindowInspector.gorm: Changes to layout * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Same. 2005-01-08 18:36 Gregory John Casamento * GormImage.h: Moved the declaration for setArchiveByName: here. * GormImage.m: Moved the code for the category here. * GormMatrixEditor.m: Included GormImage.h. 2005-01-08 18:06 Gregory John Casamento * GormClassManager.m: Corrected bug#11534. * GormFilePrefsManager.m: Updated alpha version * GormInfo.plist: Updated alpha version 2005-01-08 12:28 Gregory John Casamento * GormViewWithContentViewEditor.m: Change in pasteInView: to move a view to the origin if it's rect is outside the view it's being placed into. 2005-01-03 23:56 Gregory John Casamento * GormDocument.m: Improved resource handling in saveGormDocument: * GormImageEditor.m: Implemented deleteSelection * GormImage.[hm]: Added new init methods. * GormSoundEditor.m: Implemented deleteSelection * GormSound.[hm]: Added new init methods. 2005-01-02 15:11 Gregory John Casamento * GormImageEditor.m * GormSoundEditor.m: Fix to correct exception when dragging from a cell which doesn't contain a resource. 2005-01-01 10:33 Gregory John Casamento * GormLib/IBObjectAdditions.m: Implementation for nibLabel. * GormLib/IBObjectProtocol.h: Better document for nibLabel. 2005-01-01 09:59 Gregory John Casamento * GormLib/IBApplicationAdditions.h * GormLib/IBCellProtocol.h * GormLib/IBConnectors.h * GormLib/IBInspector.h * GormLib/IBObjectProtocol.h * GormLib/IBSystem.h * GormLib/IBViewProtocol.h: Completed all documentation for existing IntefaceBuilder classes. 2005-01-01 02:39 Gregory John Casamento * GormLib/GNUmakefile: Added new headers and new .m file. * GormLib/IBCellAdditions.h: Added include for NSCell.h * GormLib/IBDocuments.h: Added documentation. * GormLib/IBDocuments.m: Added include of IBDocuments.h to get string declarations. * GormLib/IBPalette.m: Implemented IBPaletteDocument. * GormLib/IBProjectFiles.h: New * GormLib/IBProjects.h: New * GormLib/IBResourceManager.[hm]: New * GormLib/InterfaceBuilder.h: Added new headers. 2004-12-31 14:29 Gregory John Casamento * Palettes/1Windows/GormNSWindowInspector.gorm: Added form to allow setting of the miniaturized image by name. * Palettes/1Windows/main.m: Changes to use the form added to the UI. 2004-12-31 08:22 Gregory John Casamento * GormDocument.h: Added GormFilesOwner to @class declaration. * Gorm.m: Made rect drawn around objects thinner to prevent residual lines from remaining when the rect is erased. * Palettes/1Windows/main.m: Simplified includes. 2004-12-28 21:21 Gregory John Casamento * GormImageEditor.m: Added check to see if object responds to setImage: in performDragOperation. * GormImage.m: Moved NSImage category dec/def here. * GormPrivate.h: Removed NSImage category declaration. * GormViewEditor.m: Removed NSImage category definition. 2004-12-28 16:38 Gregory John Casamento * GormPalettesManager.m: Enhancment in loadPalette: to allow loading using either the plist or the strings format for palette.table. 2004-12-28 12:10 Gregory John Casamento * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Initialize the miniaturized window image to nil. 2004-12-28 08:38 Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: Improvement on previous correction. 2004-12-27 22:02 Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: Correction for Bug#11410. 2004-12-27 21:39 Gregory John Casamento * GormLib/IBObjectAdditions.m: Changed some implementations. * GormObjectEditor.m: Removed methods which it was unecessary to override. 2004-12-27 21:21 Gregory John Casamento * GModelDecoder.m: * GormDocument.m: Change to properly handle exception when a class fails to parse. * Gorm.m: Correction for Bug#11415 and also made a changed to discontinue connection when a cut/paste/copy operation is done. * GormObjectEditor.m: Correction for Bug#11415. * Palettes/0Menus/GormMenuEditor.m: Correction for Bug#11412. 2004-12-23 14:52 Gregory John Casamento * GormFilesOwner.h: Added inspector declaration. * GormFilesOwner.m: Changed code in setObject to create an autoreleased mutableCopy of the array and removed FirstResponder from the list to prevent the user from selecting this. * GormPrivate.h: Added the include for GormFilesOwner.h and also removed the inspector declaration from this file. 2004-12-23 13:30 Gregory John Casamento * GormViewEditor.m: In -performDragOperation: copy the image/sound before setting it into the control to make certain any changes made to the original image don't reflect in the system wide image. 2004-12-23 06:20 Gregory John Casamento * Resources/GormClassPanel.gorm: Set nextKeyView for all views in the window and the initialFirstResponder of the window to the table view. 2004-12-23 06:03 Gregory John Casamento * GormClassInspector.m: Fix for issue when loading from gmodel. Corrected _refreshView: and searchForClass: so that if list is nil, the selection isn't set. * Gorm.spec.in: Minor correction. 2004-12-19 09:05 Gregory John Casamento * GormInspectorsManager.m: Added [super init] call to init. * GormLib/IBInspectorManager.m: Corrected init. 2004-12-19 08:38 Gregory John Casamento * GormInspectorsManager.h: Changed parent class. * GormInspectorsManager.m: Added notification IBWillInspectoObjectNotification. * GormLib/GNUmakefile: Added new class. * GormLib/IBInspectorManager.h: New class * GormLib/IBInspectorManager.m: New class * GormLib/InterfaceBuilder.h: Added new class. * Gorm.m: Coerce IBInspectorManager to GormInspectorsManager. 2004-12-18 13:24 Gregory John Casamento * GormLib/IBApplicationAdditions.h * GormLib/IBConnectors.h * GormLib/IBDocuments.h * GormLib/IBEditors.h * GormLib/IBPalette.h * GormLib/IBSystem.h: Changed IB_EXPORT to IB_EXTERN. 2004-12-18 10:05 Gregory John Casamento * GormDocument.m: * GormFilesOwner.m: * Gorm.m: * GormPalettesManager.m: * GormWindowEditor.m: Changed NSRunAlertPanel(...) calls to use nil instead of NULL. NULL shouldn't be used. 2004-12-18 08:53 Gregory John Casamento * GormLib/GNUmakefile: Added new header * GormLib/GNUmakefile.preamble: Added comment. * GormLib/IBApplicationAdditions.h: Add include, change extern to IB_EXPORT * GormLib/IBConnectors.h: Same * GormLib/IBDocuments.h: Same * GormLib/IBEditors.h: Same * GormLib/IBPalette.h: Same * GormLib/IBSystem.h: New file containing declarations for IB_EXPORT for different Operating Systems. * GormLib/InterfaceBuilder.h: Include IBSystem.h. 2004-12-17 21:28 Gregory John Casamento * GormClassInspector.m: Set the double action and target for parentClass. * GormObjectEditor.m: Moved the pasteInSelection method. 2004-12-17 05:48 Gregory John Casamento * GormDocument.m: Changed implementation here to call the one on the object editor. * GormObjectEditor.m: Added implementation for removeAllInstancesOfClass: * GormPrivate.h: Added declaration for removeAllInstancesOfClass: 2004-12-16 05:32 Gregory John Casamento * GormClassEditor.m: added call to removeAllInstancesOfClass: in deleteSelection so that no objects in the objectView can refer to a class that doesn't have a correstponding class in the class manager/class editor. * GormClassManager.h: Added declaration for classNameForObject:. * GormClassManager.m: Added implemented for classNameForObject:. * GormDocument.h: Added declaration of removeAllInstancesOfClass:. * GormDocument.m: Addition of method to remove all instances from the objects view if a class is removed from the classes view. 2004-12-15 01:43 Gregory John Casamento * GormClassEditor.m: Code from -changeView added to select contents of a scrollview instead of the scrollview itself (when appropriate). * GormDocument.m: Moved code from -changeView: to GormClassEditor. * GormPrivate.h: Added methods for changing the selection in the outline view without setting the inspector. 2004-12-14 21:26 Gregory John Casamento * GormClassManager.m: -addClassNamed:withSuperClassNamed: actions:outlets:isCustom: added check for superclass of "FirstResponder". 2004-12-14 21:04 Gregory John Casamento * GormClassEditor.m: Added code in pasteInSelection to prevent the user from pasting a subclass onto FirstResponder. 2004-12-14 06:53 Gregory John Casamento * GormClassEditor.m: Further correction to previous issue. 2004-12-14 06:30 Gregory John Casamento * GormClassEditor.m: Corrected potential issue after delete of a class which is selected. 2004-12-14 06:04 Gregory John Casamento * GormClassEditor.m: Added code in -deleteSelection to copy the selection, if it's a class, added code in copySelection and pasteInSelection to handle copy/paste. * GormClassManager.h: Made variable names conform a little more to standard practice. Also changed the declarations of "NSArray*" to "NSArray *". * GormClassManager.m: Corrected addClassNamed:withSuperClassNamed: actions:outlets:isCustom: to eliminate duplicate actions, outlets from the class being added if they exist on the superclass. * Gorm.m: Changed coercion to id * GormDocument.h: Added declaration for windowAndRect:forObject: * GormLib/IBDocuments.h: Removed the declaration for windowAndRect:forObject: from here as it doesn't belong in the IBDocuments protocol. * GormLib/IBPalette.m: Started implementing the private class IBPaletteDocument. * Gorm.m: Changed some code due to to switch in location of the windowAndRect:forObject: method from IBDocuments.h to GormDocument.h. 2004-12-12 16:00 Gregory John Casamento * GormLib/GNUmakefile: Added new header files. * GormLib/IBViewAdditions.h: Creates a category/informal protocol. * GormLib/IBViewProtocol.h: New file defines IBViewProtocol * GormLib/IBCellAdditions.h: New file for IBCellAdditions, adopts protocol and creates a category/informal protocol. * GormLib/IBCellProtocol.h: New file defines IBCellProtocol 2004-12-12 15:27 Gregory John Casamento * GormClassEditor.m: Corrected problem in -outlineView: shouldEditTableColumn:item: to prevent editing of FirstResponder name in the class editor. 2004-12-12 14:16 Gregory John Casamento * GormClassEditor.m: Implemented new methods. * GormGenericEditor.m: Implemented new methods. * GormLib/IBEditors.h: Added back some of the commented out methods and added also validateEditing and openSubeditorForObject: * GormLib/IBViewAdditions.h: Added the category IBCellAdditions as defined in the IB API Spec. * GormViewEditor.m: Added stub implementations for methods not implemented in the view editor. They are implemented in some of the lower level editors, but it still needs to be compliant. * GormViewWithSubviewsEditor.[hm]: Removed redundant method for deleteSelection. 2004-12-11 18:03 Gregory John Casamento * GormClassManager.m: Correction for reparenting of a class in -setSuperClassNamed:forClassNamed: 2004-12-11 10:22 Gregory John Casamento * GormClassInspector.m: Changed _refreshView to gray out the class field when the FirstResponder is selected since it's name isn't editable. 2004-12-11 00:51 Gregory John Casamento * GormClassInspector.m: Added code in setObject: to show the total outlets and actions in the class. * Resources/GormClassInspector.gorm: Swapped the outlet/action tabs. 2004-12-11 00:21 Gregory John Casamento * GormDocument.m: in handleNotification: changed the condition for IBClassNameChangedNotification so that the inspector is cleared when the class name is modified. This prevents the inspector from accidently being used to modify a class which no longer exists. 2004-12-10 23:57 Gregory John Casamento * Resources/GormClassInspector.gorm: Added proper resizing settings so that the buttons on the outlets and actions tabs resize in the same way. 2004-12-10 17:55 Gregory John Casamento * GormClassEditor.m: Changes to return a item if it's an action/outlet holder without generating a string. * GormOutlineView.m: Modifications to make drawing of the actions and outlets more efficient. 2004-12-08 21:03 Gregory John Casamento * GormOutlineView.m: Corrected a leak. 2004-12-08 19:52 Gregory John Casamento * GormClassEditor.m: Use new ivar to store selected class. * GormClassManager.m: Reimplement addAction:toClassNamed: and addOutlet:forClassNamed:. * GormImageEditor.m: Release the objects in dealloc. * GormPrivate.h: Added new ivar for GormClassEditor to store selected class in. 2004-12-05 18:21 Gregory John Casamento * GormClassEditor.m: Added new methods moved from GormDocument. * GormDocument.m: Moved remove: to deleteSelection on GormClassEditor, also moved createSubclass to GormClassEditor. * GormPrivate.h: Added methods moved from GormDocument to GormClassEditor. * GormLib/IBEditors.h: Added deleteSelection back into the protocol. 2004-12-05 15:40 Gregory John Casamento * GNUmakefile: Added new classes to the makefile. * GormClassEditor.m: Moved some methods from GormDocument to here. * GormDocument.[hm]: Changes for new GormSound/GormImage methods. Also modifications for changes in GormClassEditor. * GormImage.[hm]: New files. * GormImageEditor.m: Added imageForPath: call. * GormImageInspector.m: Added imageForPath: call. * GormInspectorsManager.m: Added GormImage/GormSound include * GormPrivate.h: Added incudes * GormSound.[hm]: New files. * GormSoundEditor.m: Added includes and soundForPath call. * GormSoundInspector.m: Added includes and soundForPath call. * Palettes/0Menus/GormMenuAttributesInspector.gorm: Made correction to allow "Title" field to resize properly. * Palettes/3Containers/GormNSTableViewInspector.gorm: Corrected a slight problem with one of the boxes cutting off text on the bottom. * Resources/GormClassInspector.gorm: Made outlets table resize properly 2004-12-05 07:48 Gregory John Casamento * GormCustomClassInspector.m: Set the max visible columns to 1 in awakeFromNib. * GormDocument.m: Corrected a segfault when reverting to the saved document. * GormObjectEditor.m: Fully implemented IBObjectAdditions.m * Palettes/0Menus/GormMenuAttributesInspector.gorm * Palettes/0Menus/GormMenuItemAttributesInspector.gorm * Palettes/1Windows/GormNSWindowInspector.gorm * Palettes/2Controls/GormNSBoxInspector.gorm * Palettes/2Controls/GormNSButtonInspector.gorm * Palettes/2Controls/GormNSCellInspector.gorm * Palettes/2Controls/GormNSColorWellInspector.gorm * Palettes/2Controls/GormNSFormInspector.gorm * Palettes/2Controls/GormNSMatrixInspector.gorm * Palettes/2Controls/GormNSPopUpButtonInspector.gorm * Palettes/2Controls/GormNSProgressIndicatorInspector.gorm * Palettes/2Controls/GormNSSliderInspector.gorm * Palettes/2Controls/GormNSStepperInspector.gorm * Palettes/2Controls/GormNSTextFieldInspector.gorm * Palettes/3Containers/GormNSBrowserInspector.gorm * Palettes/3Containers/GormNSTableColumnInspector.gorm * Palettes/3Containers/GormNSTableColumnSizeInspector.gorm * Palettes/3Containers/GormNSTableViewInspector.gorm * Palettes/3Containers/GormTabViewInspector.gorm * Palettes/3Containers/inspectors.m * Palettes/4Data/GormNSComboBoxInspector.gorm * Palettes/4Data/GormNSDateFormatterInspector.gorm * Palettes/4Data/GormNSImageViewInspector.gorm * Palettes/4Data/GormNSNumberFormatterInspector.gorm * Palettes/4Data/GormNSTextViewInspector.gorm * Resources/GormClassInspector.gorm * Resources/GormCustomClassInspector.gorm * Resources/GormImageInspector.gorm * Resources/GormNSSplitViewInspector.gorm * Resources/GormScrollViewAttributesInspector.gorm * Resources/GormSoundInspector.gorm * Resources/GormViewSizeInspector.gorm: Modified the inspectors to resize properly. Corrects bug#11216. 2004-12-04 17:43 Gregory John Casamento * GormBoxEditor.m * GormControlEditor.m * GormInternalViewEditor.m * GormMatrixEditor.m * GormNSSplitViewInspector.m * GormObjectEditor.m * GormScrollViewAttributesInspector.m * GormScrollViewEditor.m * GormSplitViewEditor.m * GormWindowEditor.m * Palettes/2Controls/GormButtonEditor.m * Palettes/2Controls/inspectors.m * Palettes/3Containers/GormTabViewEditor.m * Palettes/3Containers/inspectors.m: Replaced all references of GormObjectAdditions with IBObjectAdditions. This makes Gorm more compliant with the IB API spec. 2004-12-03 07:09 Gregory John Casamento * GormClassManager.[hm]: New method allCustomClassNames which returns the customClasses array. * GormDocument.m: Change in handleNotification: method to select the class just added. 2004-12-02 06:20 Gregory John Casamento * GormObjCHeaderParser/OCClass.m: [OCClass parse] added a check to determine if the string is nil before loading it into the scanner. 2004-12-02 06:20 Gregory John Casamento * GormObjCHeaderParser/OCClass.m: added code in parse method to use new class for IVar parsing. * GormObjCHeaderParser/OCIVarDecl.[hm]: New class. This class handles the declaration and breaks it into separate ivar objects. 2004-12-01 02:12 Gregory John Casamento * GormClassManager.m: [GormClassManager parseHeader:] altered method to throw NSInvalidArgumentException instead of a custom exception. 2004-11-29 23:40 Gregory John Casamento * GormPalettesManager.[hm]: [GormPalettesManager loadPalette:] now returns BOOL. * GormPalettesManager.m: [GormPalettesManager openPalette:] returns nil of loadPalette returns NO. * GormObjCHeaderParser/OCHeaderParser.m: Returns NO if there is no class in the file. 2004-11-27 13:22 Gregory John Casamento * GormObjCHeaderParser/OCClass.m * GormObjCHeaderParser/OCIVar.m * GormObjCHeaderParser/OCMethod.m: Added code to parse method to trim the result of any whitespace to make certain that there aren't any extra spaces in the data which could cause problems. 2004-11-27 09:17 Gregory John Casamento * GormObjCHeaderParser/OCClass.m: Condensed parse methods into parse. Corrected a minor issue. 2004-11-27 05:53 Gregory John Casamento * GormObjCHeaderParser/OCClass.h * GormObjCHeaderParser/OCClass.m * GormObjCHeaderParser/NSScanner+OCHeaderParser.h * GormObjCHeaderParser/NSScanner+OCHeaderParser.m * GormObjCHeaderParser/OCMethod.h * GormObjCHeaderParser/OCMethod.m * GormObjCHeaderParser/OCIVar.h * GormObjCHeaderParser/OCIVar.m * GormObjCHeaderParser/OCHeaderParser.h * GormObjCHeaderParser/OCHeaderParser.m * GormObjCHeaderParser/GNUmakefile: New files for class parser. * GormClassManager.m: Changes to use new class parser. 2004-11-24 00:04 Gregory John Casamento * Palettes/3Containers/GormNSOutlineView.h: Removed savedColor and added "Gorm" methods to the header. * Palettes/3Containers/GormNSOutlineView.m: Removed all references to savedColor and commented out select and unselect methods. * Palettes/3Containers/GormNSTableView.h: Removed saved color and commented out select and unselect. * Palettes/3Containers/GormNSTableView.m: Removed all references to savedColor and commented out select and unselect methods. Corrects bug #10118. 2004-11-20 13:27 Gregory John Casamento * Resources: Updated all gorms to latest format. * Palettes: Updated all gorms to latest format. 2004-11-18 00:23 Gregory John Casamento * GNUmakefile: Addition of entries for new NSView+GormExtensions.[hm] files. * NSView+GormExtensions.[hm]: Added to hold extensions for the NSView class in Gorm. * GModelDecoder.m: Changes to minimize warnings during compilation with gcc 3.x. * GormClassEditor.m: Same as above * GormClassManager.m: Same as above * GormDocument.m: Same as above + new code to eliminate orphaned views in _repairFile. * GormGenericEditor.m: Added copyright comment. * GormInspectorsManager.h: Added copyright comment. Made changes to minimize warnings. * GormPrivate.h: Removed AppKit.h include and replaced it with several specific includes to reduce compile issues. This was causing a lot of warnings because of similar selectors. * GormLib/IBEditors.h: removed circular referece to IBDocuments.h * Palettes/3Containers/GormNSBrowser.h: Removed AppKit.h and replaced it with a specific include. * Palettes/3Containers/GormNSBrowser.m: Added specific includes for classes used. * Palettes/3Containers/GormNSOutlineView.m: Same as above. * Palettes/3Containers/GormNSTableView.m: Same as above. * Palettes/3Containers/inspectors.m: fix for method name on GormClassManager which changed from setCustomClass:forObject: to setCustomClass:forName:. Also, other changes which needed to be made to minimize warnings. * Palettes/3Containers/main.m: Removed overly general includes and added specific includes for each class used. Made changes to minimize warnings. 2004-11-17 00:59 Gregory John Casamento * GormViewEditor.m: initWithObject:withDocument: added code to instantiated GormViewWindow if the view being added has no window attached to it. This is to handle standalone views. Correction for Report #10849. * GormViewWindow.m: [GormViewWindow initWithView:] call to setReleasedWhenClosed so that the window isn't released when the view window is closed. This was causing a crash. 2004-11-16 19:19 Gregory John Casamento * GormClassPanelController.[hm]: Added method browserAction:. Changed okButton: to use the value from the textfield. Added new textfield so that the user can type the name of the class. * GormClassPanel.gorm: Added textfield. Changed connection so that the browser now invokes browserAction: on the controller. 2004-11-13 00:03 Gregory John Casamento * GModelDecoder.m: Added GModelMenuTemplate to allow decoding of .gmodels which contain the menu template class. * GormClassManager.m: Changed the allClassNames method to not prepend NSObject now that NSObject is part of the classInformation plist. * GormFunctions.[hm]: Added parameter to pass in the current list of classes from the calling document. * GormClassPanelController.[hm]: New class. * GormClassPanel.gorm: Added interface. 2004-11-12 17:08 Gregory John Casamento * GModelDecoder.m: Changes to improve loading of .gmodel files. * GormClassManager.[hm]: Changed name of setCustomClass:forObject: to setCustomClass:forName: and also removeCustomClassforObject: to removeCustomClassForName: * GormCustomClassInspector.m: Changes to accomodate the new method name. * GormDocument.m: Changes to accomodate the new method name. * GormFilesOwner.m: Corrected an issue with changing the class for the file's owner. Added code which checks both the actions and outlets attached to see if it's necessary to prompt before destroying connections. 2004-11-09 09:08 Gregory John Casamento * Palettes/2Controls/GormNSStepperInspector.gorm: Changed some of the titles and made the layout more consistent with other inspectors. 2004-11-09 08:55 Gregory John Casamento * GormClassInspector.m: Modified the code in the table delegate to use the NSTableView * to determine which table is calling the delegate instead of which tab is currently selected. 2004-11-07 22:56 Gregory John Casamento * GormClassManager.m: Added code to [GormClassManager loadCustomClasses:] to ignore any entry in the data.classes file which is not a dictionary. 2004-11-07 22:56 Gregory John Casamento * GormClassManager.m: Added code to [GormClassManager saveToFile:] and [GormClassManager loadCustomClasses:] to handle adding (and subsequently removing before processing) of a comment which warns users not to manually edit the file. 2004-11-07 22:18 Gregory John Casamento * GormClassInspector.m: [GormClassManager removeAction:] added code to check for a custom class. 2004-11-07 14:27 Gregory John Casamento * ClassInformation.plist: Added entry for NSObject. * Gorm.m: Removed check for adding attribute to class so that "category" actions can be added to existing AppKit classes. * GormClassEditor.m: Removed check for custom in outlineView: addActionToClass: for category method support. * GormClassInspector.m: Changed "isCustom" to isEditable in table delegate method. * GormClassManager.[hm]: Changed grouping of methods. Also made changes to correct various problems found while implementing category support. Fixes Bug#10934. * GormDocument.m: [GormDocument remove:] added check for custom class or for category to allow remove. * GormLib/IBConnectors.m: Added default implementation of nibInstantiate. 2004-11-04 01:43 Gregory John Casamento * GormClassManager.m: Corrected a memory leak in loadFromFile:. * GormClassManager.h: Added FSF/GPL header and organized the methods in the header according to function. 2004-11-03 22:07 Gregory John Casamento * GormClassManager.m: modified addNewActionToClassNamed: and addNewOutletToClassNamed: so that the initial names for outlets and actions are newOutet1, newOutlet2, and similar for actions newAction1:, newAction2:, etc. 2004-11-03 21:45 Gregory John Casamento * GormDocument.m: Added alert panel to loadDocument: so that if the build version loaded from the .gorm file is greater than the one of the running Gorm application, the user is warned that this .gorm file was created with a newer version of the application. * GormFilePrefsManager.[hm]: Added +currentVersion to give the current build number. 2004-10-26 21:18 Gregory John Casamento * GormControlEditor.m: Added code to call the superclass in the dragging methods if the type being dragged isn't a formatter. This was a bug introduced on 10-17. Corrected now. Thanks to Fabien Vallon for the report. 2004-10-24 01:13 Gregory John Casamento * Palettes/0Menus/GNUmakefile.preamble * Palettes/1Windows/GNUmakefile.preamble * Palettes/2Controls/GNUmakefile.preamble * Palettes/3Containers/GNUmakefile.preamble * Palettes/4Data/GNUmakefile.preamble: Removed extra slash for compilation under MinGW on win32. 2004-10-23 20:16 Gregory John Casamento * GormLib/GNUmakefile.postamble: Changed the build process a little to be more compatible with MinGW on win32. 2004-10-17 12:51 Gregory John Casamento * GormControlEditor.m: Added necessary methods for dragging of the formatter to the view. * GormInternalViewEditor.m: Changed initWithObject:inDocument: so that the view doesn't attempt to accept an IBFormatterPboardType object from the drag when it shouldn't. * GormViewEditor.m: Made similar changes here. * Palettes/4Data/inspectors.m: Removed hard coded implementations of tables. Added code to blank inspector when the formatter is detached. * Palette/4Data/GormNSDateFormatterInspector.gorm: Updated with new table. * Palette/4Data/GormNSNumberFormatterInspector.gorm: Updated with new table. 2004-10-03 12:51 Gregory John Casamento * GormMatrixEditor.m: Added performDragOperation implementation to allow the drag and drop of sound/images to a matrix cell. * GormPrivate.h: Moved a category which defines a method called on setArchiveByName to this header so it's useful to more than just the editors. * GormViewEditor.m: Removed category declaration. * Palettes/2Controls/GormButtonEditor.m: Removed some old, commented out code. 2004-10-02 13:08 Gregory John Casamento * Resources/GormDocument.gorm: Changed the spacing of the file view so that the text fields don't get cut off. 2004-10-02 01:15 Gregory John Casamento * Palettes/0Menus/GormNSMenu.m: Modified -[GormNSMenu handleNotification:] so that the menu is no longer closed if the window which displays it isn't visible. This prevents the annoying "Ordering invalid window 0" error. 2004-09-27 07:40 Gregory John Casamento * GormFilePrefsManager.m: Bumped version to 0.8.1 (Alpha) * GormInfo.plist: Bumped version to 0.8.1 (Alpha) * Documentation/Gorm.texi: Updated documentation. 2004-09-26 08:16 Gregory John Casamento * Version 0.8.0 2004-09-25 07:21 Gregory John Casamento * GormInfo.plist: Changed version number to 0.8.0 (Alpha) since we are now, more or less, in "pre-release" mode. * GormFilePrefsManager.m: Updated call which sets version. * Palettes/0Menus/GormMenuAttributesInspector.gorm: * Palettes/1Windows/GormNSWindowInspector.gorm: * Palettes/2Controls/ControlsPalette.gorm: * Palettes/2Controls/GormNSBoxInspector.gorm: * Palettes/2Controls/GormNSButtonInspector.gorm: * Palettes/2Controls/GormNSFormInspector.gorm: * Palettes/2Controls/GormNSMatrixInspector.gorm: * Palettes/2Controls/GormNSPopUpButtonInspector.gorm: * Palettes/2Controls/GormNSProgressIndicatorInspector.gorm: * Palettes/2Controls/GormNSStepperInspector.gorm: * Palettes/2Controls/GormNSTextFieldInspector.gorm: * Palettes/3Containers/GormNSBrowserInspector.gorm: * Palettes/3Containers/GormNSTableViewInspector.gorm: * Palettes/3Containers/GormTabViewInspector.gorm: * Palettes/4Data/GormNSComboBoxInspector.gorm: * Palettes/4Data/GormNSDateFormatterInspector.gorm: * Palettes/4Data/GormNSImageViewInspector.gorm: * Palettes/4Data/GormNSNumberFormatterInspector.gorm: * Palettes/4Data/GormNSTextViewInspector.gorm: Modified spacing of the widgets so that text isn't clipped when using Vera font. 2004-09-24 Adam Fedor * GModelDecoder.m ([GormDocument -openGModel:]): Initialize variable. 2004-09-17 18:07 Gregory John Casamento * VersionProfiles.plist: Updated the profile to properly set the version for NSTextFieldCell which has also been updated since the last release. 2004-09-17 00:54 Gregory John Casamento * GormPalettesManager.m: Added code to [GormPalettesManager setCurrentPalette:] to change the title to reflect the name of the palette currently selected. This makes it easier for the developer to navigate the palettes. 2004-09-17 00:54 Gregory John Casamento * Palettes/2Controls/ControlsPalette.gorm: Removed old 14pt. system title widget and added some widgets which are standard sized which use the system defined fonts. * Palettes/2Controls/main.m: Changed the location of the pulldown, since it isn't in the .gorm. 2004-09-12 20:06 Gregory John Casamento * Gorm.m: Made some changes in [Gorm testInterface] and [Gorm endTesting] to change the icon when testing and also to modify the menu and quit titles so that it is obvious to the user that Gorm is in testing mode and has not died. * Images/GormTesting.tiff: Alternate icon used when Gorm is testing. 2004-09-08 22:00 Gregory John Casamento * Gorm.m: Removed main function from Gorm class file. * main.m: Added main function here. 2004-09-07 21:00 Gregory John Casamento * Gorm.m: Removed some old code which measured the startup time for the application. * GormDocument.m: Removed previous temporary fix. * Palettes/3Containers/GormTableViewEditor.m: Correction for recently discovered crash. The problem is located here. I have added a retain which seems to stop the crash, but I need to find a better solution. Also removed some old commented out code. * Palettes/3Containers/inspectors.m: Properly indented some code. 2004-09-06 17:39 Gregory John Casamento * Gorm.m: * GormInspectorsManager.m: * GormInternalViewEditor.m: * GormMatrixEditor.m: * GormViewKnobs.m: * GormWindowEditor.m: Removed some old FIXME comments which were no longer appropriate or which have already been addressed. 2004-09-06 15:30 Gregory John Casamento * GormDocument.m: Temporary fix for crash. Corrects a problem with document deallocation, until I can find a more permanent solution. 2004-09-06 08:52 Gregory John Casamento * ClassInformation.plist: Added missing NSImageCell class description. * Palettes/3Containers/inspectors.m: Corrected issue with getting the class name of the data cell in [GormTableColumnAttributesInspector _getCellClassName]. 2004-09-06 08:38 Gregory John Casamento * ClassInformation.plist: Reformatted to canonical plist. Suggested by Deek/Jeff. * Palettes/3Containers/GormNSTableColumnInspector.gorm: Added title and made the table draw the grid. 2004-09-05 12:17 Gregory John Casamento * Palettes/3Containers/inspectors.m: Added _getCellClassName to GormTableColumnAttribitesInspector to get the cell class for the inspector. Also modified _getValuesFromObject: to call the method and display the cell class name in the table. Modified setValuesFromControl to add the object to the document and assign the correct custom class. 2004-09-05 10:15 Gregory John Casamento * Palettes/3Containers/GormNSTableColumnInspector.gorm: Made changes to allow user to edit the tableColumn dataCell. * Palettes/3Containers/inspectors.m: Added code for the delegate and datasource of the table added to the inspector. Also modified methods _getValuesFromObject and _setValuesFromControl: in GormTableColumnInspector to accommodate changing the dataCell and redisplaying the tableView which the column belongs to. 2004-08-28 16:43 Gregory John Casamento * GormCustomView.m: Modified _bestPossibleSuperClass to return NSView if the class isn't defined or is not an NSView subclass. 2004-08-28 11:00 Gregory John Casamento * Gorm.m: Added calls to [GSClassSwapper setIsInInterfaceBuilder:] to shut off the custom class -> real class morphing when testing. Added implementation for method which changes the static value of the flag as well called setIsInInterfaceBuilder:. * GormDocument.m: Added calls in loadDocument: to [GSClassSwapper setIsInInterfaceBuilder:] to turn off custom class conversion while loading the .gorm document. * GormCustomView.m: Added implementation of a method called _bestPossibleSuperClass to get the best substitute for the custom class specified when testing the interface. This allows the user to see a more accurate picture of what the gui will look like when it's done. 2004-08-25 22:28 Gregory John Casamento * Palettes/1Windows/GormNSWindow.m: Removed canBecomeKeyWindow method. This was returning NO and preventing the method user from setting the font. 2004-08-23 22:28 Gregory John Casamento * GormClassInspector.m: Corrected bug introduced a few days ago. The actions tag in the class inspector wasn't functioning correctly. 2004-08-23 15:06 Gregory John Casamento * Palettes/1Windows/GormNSPanel.[hm]: * Palettes/1Windows/GormNSWindow.[hm]: Changed the name of the styleMask method to _styleMask. Since this serves as a "proxy" of the original value so that it can be edited without effecting the window, it shouldn't have the same name as the method in the parent class anyway. The new window decoration code was calling this method. * Palettes/1Windows/main.m: [GormWindowAttributesInspector _setValuesFromControl:] and [GormWindowAttributesInspector _getValuesFromObject] changed to use new method name. 2004-08-21 00:20 Gregory John Casamento * Palettes/1Windows/GormNSPanel.m: * Palettes/1Windows/GormNSWindow.m: Added code to prevent redundant release and subsequent crash. 2004-08-18 00:20 Gregory John Casamento * GormClassEditor.m: Cleaned up some code. * GormClassInspector.m: Added code in the data source for both the GormActionDataSource and GormOutletDataSource classes in the class inspector to call the method in GormDocument which removes connections when a connections' name changes. Corrects Bug #100026. * GormMenuEditor.m: If a menu item being added to a popup has a submenu, reject it. 2004-08-13 18:30 Gregory John Casamento * Gorm.m: Disabled class parser menu item in [Gorm validateMenuItem:]. * GormClassManager.m: [GormClassManager parseClass:] commented out contents of this method. The class parser needs to be replaced and it shouldn't be used until it's rewritten. 2004-08-12 21:41 Gregory John Casamento * Gorm.m: [Gorm validateMenuItem:] deselect the cut, delete, paste, etc. items for top level objects which cannot be removed. * GormDocument.m: Simplified implementation of [GormDocument isTopLevelObject:] to simply check in the set of top level objects. 2004-08-11 22:41 Gregory John Casamento * GormDocument.[hm]: Added back isTopLevelObject:. 2004-08-11 07:18 Gregory John Casamento * GormDocument.m: Removed the delegate and data source for the outline view. Changed the code in init to use the GormClassEditor as the outline view, instead of instantiating two different classes. I also changed the coded in other areas where "classEditor" was being used. Removed an uneeded method. * GormClassEditor.m: Added the delegate here. Added the initialization code from GormDocument init to the init method here. * GormPrivate.h: Made GormClassEditor into a subclass of GormOutlineView. This ultimately makes the code cleaner as it unifies the view/editor for the class editor. 2004-08-09 17:18 Gregory John Casamento * GormFilePrefsManager.m: The method showIncompatibilities: added call to "center" method on iwindow so that the incompatibilities window shows up in the center of the screen. 2004-08-08 16:46 Gregory John Casamento * Resource/GormDocument.gorm: Made text label lengths a little longer. 2004-08-08 16:33 Gregory John Casamento * Palettes/0Menus/GormNSMenu.m: Changed the code in handleNotification to not call edited object blindly. It now checks to make sure the object responds to the message before calling. 2004-08-08 13:43 Gregory John Casamento * Palettes/1Windows/GormNSWindow.m: Removed some debugging information. 2004-08-08 13:23 Gregory John Casamento * GormDocument.[hm]: Added ivar isDocumentOpened to track when document is opened and closed. The document was being made active while closing and was causing an issue with some of the windows in the document being edited being brought to the front even though the document itself had been deallocated. This is the permanent fix for the previously discovered issue. * Palettes/1Windows/GormNSWindow.m: Added canBecomeKeyWindow which returns NO. The edited window should never be able to become either key or main window within the application. 2004-08-07 06:10 Gregory John Casamento * GormObjectEditor.m: Temporary fix for recently discovered crash. 2004-08-06 07:20 Gregory John Casamento * Palettes/GormMenuEditor.m: Added rightMouseDown: method to effectively ignore when the right mouse button is pressed when over a menu that is being edited. This was causing the problem described in Bug#9827. 2004-08-05 01:36 Gregory John Casamento * Palettes/GormNSMenu.m: Added code in the initWithCoder: method to subscribe to the notification which indicates a selection change. When the notification is recieved, if the menu is owned by a popup the menu is closed. This corrects Bug#9771. 2004-08-04 01:08 Gregory John Casamento * GormPalettesManager.m: -[GormPalettesManager loadPalette:] added code to made sure that the palette view cannot exceed the maximum size. This prevents accidentally causing the issue cited in the previous entry. 2004-08-04 00:52 Gregory John Casamento * GormDocument.m: -[GormDocument setupDefaults:] changed size of the window for a new palette. If it's too big it causes problems with event handling in the palettes. * Palettes/2Controls/GNUmakefile: Added ControlsPalette.gorm * Palettes/2Controls/main.m: Removed much of the code from the ControlsPalette class. It's not needed now that the palette uses a .gorm file. * Palettes/2Controls/ControlsPalette.gorm: New gui for the palette. 2004-08-02 23:00 Gregory John Casamento * GormViewEditor.m: Added stub for initWithCoder just for completeness. * Palettes/2Controls/GormButtonEditor.m: Change references to xDist and yDist to new names from NSCell.h 2004-08-02 08:54 Gregory John Casamento * GormPalettesManager.m: Clarified error message when unable to load palettes. 2004-08-02 00:54 Gregory John Casamento * GormPrefController.m: Center the window the prefs appear in. Changed [GormPrefController awakeFromNib] to center the window. 2004-08-02 00:14 Gregory John Casamento * Palettes/2Controls/inspectors.m: Reversion of previous change. The real problem was that in setObject: the _setValuesFromObject: method was being called unnecessarily. The call has been removed. 2004-08-01 23:17 Gregory John Casamento * GormLib/IBEditors.m: Removed some old comments which are no longer pertinent. Added documentation for all methods. * GormLib/IBObjectAdditions.m: Added documentation for all methods. * GormLib/IBPalette.h: Clarified documentation of one of the methods. * Palettes/0Menus/GormNSMenu.m: Removed some old commented out code. Changed superclass of GormNSMenuWindow to NSPanel. * Palettes/2Controls/inspectors.m: Made the first two lines conditional for NSForm and subclasses. These were causing a bug which was making it difficult to edit button matrices since the title would revert when clicking on on the next button. This corrects issue #9830. 2004-07-27 02:15 Gregory John Casamento * GormLib/IBInspector.m: Change the name of the method called when receiving IBDocumentWillCloseNotification to _releaseObject: instead of handleNotification:. This prevents confusion as some of the subclasses define handleNotification for other purposes. * GormDocument.m: Modified the code in instantiateObject so that NSView itself can be instantiated. 2004-07-27 02:15 Gregory John Casamento * Gorm.m: Cleaned up some commented out code. * GormDocument.m: Added code in [GormDocument instantiateClass] to add the appropriate information to the document when an NSView subclass is instantiated in the classes view. This is for "standalone view" support. Some additional cleanup. * GormGenericEditor.m: The editor wasn't calling [GormDocument editor:didCloseForObject:] as it should when the editor is closed. Added implementation for isOpened to give any subeditors the correct response when the editor is opened. * GormInternalViewEditor.m: Added code to show the appropriate image when we have a standalone view in the document. * GormPrivate.h: Added declaration for isOpened to GormGenericEditor class declaration. * GormViewEditor.h: Added ivar for GormViewWindow. * GormViewEditor.m: Added code in activate, deactivate, and resetObject to properly show the standalone view. This allows the user to see and edit the view. * GormViewWindow.[hm]: completed implementation of this class for use by the GormViewEditor. * GormLib/IBEditors.h: Properly documented resetObject. * GormLib/IBInspector.m: Added code which releases objects held by the inspector after the document has been released. This prevents problems with old objects being retained in memory by the inspectors until another object is selected. * Palettes/0Menu/GormNSMenu.m: corrected a crash caused by a recent change. * Palettes/3Containers/GormNSOutlineView.m: Added allocSubstitute method. * Palettes/3Containers/GormNSTableView.m: Added allocSubstitute method. 2004-07-20 20:04 Gregory John Casamento * GormDocument.m: Leak fixes and general clean up. * GormGenericEditor.m: Same. * GormImageEditor.m: Same. * GormViewEditor.h: Same. * GormWindowEditor.m: Same. * Palettes/0Menus/GormMenuEditor.m: Same. * Palettes/0Menus/GormNSMenu.m: Same. * Palettes/1Windows/GormNSPanel.h: Added new method so that the window setting "is released when closed" is saved, but doesn't effect the window displayed in Gorm. This presents some tricky memory management problems. * Palettes/1Windows/GormNSPanel.m: Same. * Palettes/1Windows/GormNSWindow.h: Same. * Palettes/1Windows/GormNSWindow.m: Same. * Palettes/1Windows/main.m: Added code necessary in the inspector to use the new method. 2004-07-17 17:54 Gregory John Casamento * GormFilePrefsManager.m: Removed reference to math.h and values.h in includes. They were there temporarily for something which I ended up not doing anyway. Causing compilation problem on FreeBSD. 2004-07-15 21:43 Gregory John Casamento * Gorm.m: Added a check in applicationDidFinishLaunching: to make certain the user is using the right version of GNUstep by checking for a recent signature change in GSNibContainer. * ClassInformation.plist: Added redo: and undo: to the list of methods on the first responder. * GormFilePrefsManager.m: Changed a lot of the NSLogs to NSDebugLog. 2004-07-12 23:08 Gregory John Casamento * GormImageEditor.m: [GormImageEditor initWithObject:inDocument:] added call to [GormPalettesManager importedImages] to return the images imported by any custom palettes. * GormSoundEditor.m: [GormSoundEditor initWithObject:inDocument:] added call to [GormPalettesManager importedSounds] to return the sounds imported by any custom palettes. * GormPalettesManager.m: Changed the return of [GormPalettesManager importClasses:withDictionary:], added [GormPalettesManager importImages:withBundle:], [GormPalettesManager importSounds:withBundle:], [GormPalettesManager importedImages], and [GormPalettesManager importedImages]. These methods are used to get the images and sounds from a palette so that they can be used from Gorm by the user. * GormPalettesManager.h: Added banner. 2004-07-11 23:40 Gregory John Casamento * GormDocument.m: saveGormDocument.m: Changes to prevent a new gorm from being saved twice. This was an innocuous problem as it would simply overwrite the same .gorm with itself. Added code to set isOlderArchive in loadDocument: method. Added code to call [GormFilePrefsManager setClassVersions] and [GormFilePrefsManager restoreClassVersions] in beginArchiving and endArchiving respectively to set and reset the versions of classes which need to be used for each .gorm file version to be saved. Updated changeView: method to switch to the filePrefsView when clicking on the button. Added code to the toolbar delegate to add the "File" button to the document toolbar. Added code to loadDocument to load the data.info file if it's present, if not we simply use the defaults. * GormDocument.h: Added new ivars for isOlderArchive, filePrefsView, and filePrefsManager. * GormFilePrefsManager.[hm]: New files. * GormPalettesPref.[hm]: New files. * GormPrefsPalette.gorm: new interface for palette loading. * GormDocument.gorm: Updated with new window to view incompatibilities and controller for new "file" document button. * GormPreferences.gorm: Addition of palettes in pulldown. * GormClassManager.[hm]: Added - (BOOL) addClassNamed: (NSString*)class_name withSuperClassNamed: (NSString*)super_class_name withActions: (NSArray*)_actions withOutlets: (NSArray*)_outlets isCustom: (BOOL) isCustom; So that classes can be added with out adding them to the custom list. Added logic in "init" to get the list of classes imported by the palettes manager and add them into the master list of classes. This allows the user to work with the classes added by the palette. * GormFunctions.[hm]: appVersion function to calculate a useful value which can be used to compare against easily when reading. This will allow gorm to tell if this file was created with an older or newer version of Gorm.app and take appropriate action. * GormObjectEditor.m: Added capability to place non-UI instances in the objects view directly. This will allow the user to place arbitrary non-ui objects in a Gorm file. It will be useful for adding DB objects or other things which a .gorm file might need. * GormPalettesManager.[hm]: Added [GormPalettesManager importedClasses] and [GormPalettesManager importClasses:withDictionary:] adds the classes from the list in the palette.table. * GormLib/IBPalette.h: Changed name of ivar. This ivar wasn't properly named. It should have been originalWindow. This issue was causing the .gorm load to not make a needed connection. * GormLib/IBPalette.m: Change to read palette.table as a property list instead of strings file format. This was needed to facilitate the reading of all of the classes, sounds and images a palette might import. Also modified to correctly load the nib file. * Palettes/0Menus/main.m: Corrected window to originalWindow as detailed above. It was referred to in a few places by the old name. * Palettes/1Windows/main.m: same. * Palettes/2Controls/main.m: same. * Palettes/3Containers/main.m: same. * Palettes/4Data/main.m: same. * Palettes/2Controls/inspectors.m: Change to clarify the autoenable switch on pulldown buttons. * Palettes/2Controls/GormNSPopUpButtonInspector.gorm: Corresponding .gorm file change for the above. Added new outlet and made new connection. 2004-07-09 16:24 Gregory John Casamento * Palettes/3Containers/GormNSTableViewInspector.gorm: Missing connection to ok: from the tag form was causing the table not to save the value. 2004-06-30 20:14 Gregory John Casamento * GormDocument.m: Added "Compatibility Warning" alert panel to [GormDocument saveGormDocument:]. If the user loads a version 0 file and saves it will give a warning telling the user that the new version isn't compatible with older releases of GNUstep. * GormDocument.h: Added ivar to keep track of whether we are going to upgrade the version of the .gorm file or not. 2004-06-30 01:45 Gregory John Casamento * GormDocument.m: [GormDocument loadDocument:] the application was not picking up subclasses of GSNibItem (GormObjectProxy) properly from version 0 files. I needed to add a loop which iterates through the objects, since the GormObjectProxy doesn't call the super class's initWithCoder: method. 2004-06-28 23:14 Gregory John Casamento * Gorm.m: -[Gorm testInterface:] changed awakeWithContext: call to use new signature. * GormDocument.m: [GormDocument rebuildObjToNameMapping] added logic to add all of the objects in the topLevelObjects set to the objects view. Modified [GormDocument attachObject:toParent:] so that any top level object which is attached, such as a window, the main, menu, or a controller is automatically added to the topLevelObjects set. Modified [GormDocument loadDocument:] so that the topLevelObjects set is properly merged into the current document's data structures. [GormDocument setupDefaults:] removed explicit call to [GormDocument setName:forObject:] since the attachObject:toParent: method automatically makes the new menu in a .gorm which doesn't have any menus the main menu and adds it to the topLevelItems array. * GormPalettesManager.m: Removed some of the palette prefs code for now so I could concentrate on the version update. * GormSoundView.m: Commented out currently unused function. * Resources/Gorm.gorm: Updated to a version 1 gorm file. This prevent someone from running the new Gorm with the old gnustep which doesn't contain the recent changes. 2004-06-27 08:45 Gregory John Casamento * Gorm.m: -[Gorm testInterface:] removed NSWindowsMenu and NSServicesMenu from the nameTable of the .gorm being tested. This prevents an exception because of problems re-setting these on the fly. * GormPalettesManager.m: The beginnings of getting the palettes from a default rather than being hardcoded. This allows greater flexibility in adding custom palettes to Gorm later on. 2004-06-26 18:10 Gregory John Casamento * GormPalettesManager.m: Removed line in -init which observes IBDidDeleteConnectionNotification in GormConnectionInspector. It was causing a number of bugs since it could potentially modify the connection prior to adding it to the connections list. Added method _selectAction: which is used to select the action without going through all of the other code in _internalCall:. * GormDocument.m: Added code in NSNibConnector category to let isEqual immediately return true if the object and self are precisely the same object. * GormClassInspector.m: Added code to change the color of the textfield to grey if the class isn't editable and to white if the class name is editable. 2004-06-26 08:25 Gregory John Casamento * GormPalettesManager.m: There was problem which crops up when the user has many connections to the same object both action/outlet in the same list. When disconnecting it the inspector, because of a memory leak, was deleting the outlet & the action following it. This was happening inconsistently and would cause a blank line to appear in the connections inspector when the user would click on the object. This was reported as Bug #9461. 2004-06-25 01:33 Gregory John Casamento * GormDocument.m: [GormDocument(GormOutlineDataSource) outlineView:setObjectValue:forTableColumn:byItem:] added code to ignore the value which comes if it is nil. This corrects a recent problem caused by a "fix" in gui's NSTableView. * GormClassInspector.m: Changes to allow the user to change the class name when it's a custom class that's being edited. * GormClassInspector.gorm: Changes to facilitate the above modification. 2004-06-24 01:33 Gregory John Casamento * Gorm.m: [Gorm close:] the window is already released when the document is released and the code had an "setReleasedWhenClosed" which was call which was causing an extra release and subsequently a core dump when selecting the "Close" item from the document menu. 2004-06-24 01:33 Gregory John Casamento * GormDocument.m: Additions to [GormDocument attachObject: withParent:], [GormDocument loadDocument:], [GormDocument setupDefaults:] to move the main menu appropriately when it is either added to the documnent, loaded, or added when the user selects the "Application" type from the New menu. This helps alleviate confusion when editing the menu. 2004-06-22 23:33 Gregory John Casamento * GormDocument.m: A fix in -[GormDocument pasteType: fromPasteboard: parent:] to retain objects unarchived from the pasteboard to prevent a recently discovered segfault. 2004-06-21 23:33 Gregory John Casamento * GModelDecoder.m: Added code to openGModel: to more automatically detect what actions should be added to FirstResponder. This facilitates importing the .gmodel without even needing the header file. All of the information necessary to convert the interface can be gleaned from the .gmodel information. 2004-06-18 23:40 Gregory John Casamento * Version 0.7.7 2004-06-15 01:28 Gregory John Casamento * GormPalettesManager.m: [GormPalettesManager mouseDown:] a call to convertRect:toView: was added to correctly translate the view being dragged in all cases. This will show no real benefit until Alex M. adds the window decoration patches. 2004-06-10 01:28 Gregory John Casamento * Gorm.m: [Gorm testInterface] added code in the exception handler to show an alert panel when an exception occurs along with a warning (and the actual exception, of course). This allows users to see what the issue was when trying to test the interface. 2004-06-07 23:59 Gregory John Casamento * GormInspectorsManager.m: [GormConnectionInspector setObject:] corrected code to call "isConnecting" before blindly causing the inspector to show the connection on the selected object. This was interfering with the user making connections in some cases. 2004-06-06 21:57 Gregory John Casamento * Palettes/3Containers/GormNSOutlineView.h: added ivar _savedColor. This is used to save the color during selection. * Palettes/3Containers/GormNSTableView.h: same as above. * Palettes/3Containers/GormNSTableView.m: implemented select and unselect methods to allow the color to be saved when the object is selected. * Palettes/3Containers/GormNSOutlineView.m: same as above. 2004-06-06 08:39 Gregory John Casamento * GormImageEditor.m: Corrected comments. 2004-06-04 23:53 Gregory John Casamento * GormImageEditor.m: Added some code to correct a problem found by Riccardo Mattolla and Sungjin Chun. The code is as suggested by Sujin, to return when the superview is not available. * GormSoundEditor.m: same as above. NOTE: This was due to a recent change to load all images for easy access by the user. Apparently, Linux is a little more forgiving that some other OSes. :) 2004-06-03 00:43 Gregory John Casamento * GormDocument.h: Added "lastEditor" ivar to hold the last editor selected by the document. * GormDocument.m: In [GormDocument setDocumentActive:] used lastEditor to reset the selection to the current one for the document selected. This causes the inspector to switch to the appropriate inspector for the object currently being edited in that document. 2004-06-03 00:43 Gregory John Casamento * Gorm.m: Removed code in the testInterface: method to allow NSBrowser, NSTableView, and NSOutlineView display correctly in testing mode. * GormDocument.m: Moved the code in loadDocument: into a NS_DURING block to catch any exceptions thrown during loading of a .gorm file. This will facilitate recovery of the application when a problem is encountered while loading the file and will allow the user to continue using the application despite the issue. 2004-05-30 22:37 Gregory John Casamento * GormDocument.m: [GormFirstResponder connectInspectorClassName] made it return the "not applicable" inspector instead of the connections inspector for this. The FirstResponder shouldn't be able to make outlet connections. 2004-05-29 23:10 Gregory John Casamento * GormInspectorsManager.m: [GormConnectionsInspector _internalCall:] The search for an existing control connection was leaving the con variable set to a outlet connection (occasionally) which caused later logic to not properly set the action list and prevented the user from selecting an action. 2004-05-29 23:10 Gregory John Casamento * Gorm.m: [Gorm testInterface:] removed conditional. The services menu is always set to nil when testing. [Gorm endTesting:] added a NS_DURING block to catch any issues with resetting the services menu. This prevents Gorm from crashing, if there's a problem. Since the menu is set to nil and then reset there shouldn't be an issue. 2004-05-29 16:00 Gregory John Casamento * GormDocument.m: [GormDocument attachObject:] added code to automatically mark a menu being attached as the windows/services menu if it has the appropriate title. Also changed [GormDocument detachObject:] added code to remove the menu as the services/windows menu if it's detached from the document. 2004-05-29 08:56 Gregory John Casamento * Palettes/2Controls/main.m: Had some DOS formatted lines. Simply converted to UNIX format. * Palettes/3Containers/main.m: Changed the default border type for both NSTableView and NSOutlineView to NSBezelBorder in -finishInstantiate. * Palettes/4Data/main.m: Changed the default border type for the NSTextView to NSBezelBorder in -finishInstantiate. 2004-05-29 07:30 Gregory John Casamento * Palettes/4Data/GormNSComboBoxInspector.gorm: Improved the layout a little. 2004-05-28 21:48 Gregory John Casamento * GormClassManager.m: Corrected a problem the the renameClassNamed: newName: method. It was releasing the classInformation and causing a crash. 2004-05-25 07:01 Gregory John Casamento * Gorm.m: [Gorm testInterface:] added code to save the services menu and set the current one to nil, if one is not defined in the .gorm file. This prevents the annoying "Services Menu not in main menu" warning. * GormPrivate.h: Added servicesMenu ivar. 2004-05-24 10:22 Gregory John Casamento * GormDocument.m: [GormDocument awakeFromNib] added call to [NSToolbar setUsesStandardBackgroundColor:] to make the background light-grey instead of clear. 2004-05-22 12:31 Gregory John Casamento * Gorm.m: [Gorm validateMenuItem:] removed code which greys out the add/remove for first responder. This was preventing people from adding in the classes view. 2004-05-21 07:20 Gregory John Casamento * Gorm.m: Removed the infoPanel method. * GormInfo.plist: Added all of the information to this file to produce an identical info panel as before. * Gorm.gorm: Changed info menu so that "orderFrontStandardInfoPanel:" is called. 2004-05-19 07:20 Gregory John Casamento * GormDocument.gorm: Added. This replaces much of the code which was once in [GormDocument init]. * Gorm.m: Missing definition for GormLinkPboardType added. * GormDocument.h: Removed selectionView, added toolbar. * GormDocument.m: Added include for NSNibLoading and NSToolbar and removed some of the old rect declarations for creating the GUI. Portions of this will stay hard-coded, since the editors all need to be initialized with the document. Moved some of the initialization around. Added awakeFromNib method to load the toolbar and the toolbar delegate methods. 2004-05-18 07:20 Gregory John Casamento * GModelDecoder.m: Changed reference to the class loader. * Gorm.m: Added code to inactivate menu items when a class isn't selected. Moved some code to decide what is instantiable to the GormClassManager. * GormDocument.m: Moved the parseHeader: method to GormClassManager where it belongs. All methods dealing with loading classes into Gorm or creating class files from data within the application belong in GormClassManager. Changed references to the call where appropriate in the code. Added document as observer when a class is added. This is to help factilitate the move of the parseHeader method. Moved the init method near the top of the file. * GormClassManager.m: added parseHeader method to process headers into data usable by Gorm. Added an instance variable to cache the document when a class manager is instantiated. The class manager needs to communicate with the document it belongs to frequently. * GormSoundInspector.m: Backed out previous change. * GormSoundInspector.h: Removed _currentSound ivar. 2004-05-16 07:20 Gregory John Casamento * Gorm.m: in testInterface: bring the temporary menu to the front. There has been an issue with it sometimes not displaying. In endTesting bring the normal menu to the front. In unhide, bring the menu to the front. * GormLib/IBPalette.[hm]: Added paletteDocument method as per specs. Currently this method will return nil unless the ivar is set to something conforming to IBDocuments. 2004-05-16 07:20 Gregory John Casamento * GormSoundEditor.m: Added methods to GormSound class to show the "not applicable" inspector on all options but the attributes inspector. * GormImageEditor.m: same as above for GormImage. * GormInspectorsManager.m: Added code to show "Sound Inspector" or "Image Inspector" when appropriate for either GormSound or GormImage respectively. 2004-05-15 23:14 Gregory John Casamento * GormImageInspector.gorm: Repositioned fields. 2004-05-15 16:19 Gregory John Casamento * GormDocument.m: [GormDocument init] changed initialization of scrollviews to allow horizontal scroller to be used. * GormImageInspector.gorm: resized some of the fields which were too short. 2004-05-15 12:42 Gregory John Casamento * GormFunctions.[hm]: added function to get all system sounds. NOTE: Current there aren't any, but why wait? I'm assuming that they'll go into $GNUSTEP_SYSTEM_ROOT/Library/Sounds. * GormSoundEditor.m: Added call to add all system sounds to the editor. 2004-05-15 11:14 Gregory John Casamento * Gorm.m: Add call to [GormDocument closeAllEditors] to avoid a crash when the user attempts to open a document, then cancels. The document wasn't properly released. * GormDocument.h: Removed the images and sounds arrays. This information is kept in the editor and these arrays are redundant. Also exposed the closeAllEditors method. * GormDocument.m: Removed references to the images and sounds array. Changed load/save logic to use the list from the editors themselves. * GormFunctions.[hm]: Added function to retrieve the names of the images from the system directory named systemImagesList(). * GormImageEditor.m: Modified to call the new function and add the images to the editor when it is first instantiated. * GormPrivate.h: Added objects method to GormGenericEditor's interface. * GormSoundInspector.h: Changed _currentSound to id. * GormSoundInspector.m: Uses _currentSound to make certain that the same GormSound object isn't reinspected, thus wasting time loading it over and over. 2004-05-14 22:11 Gregory John Casamento * GormDocument.m: [GormDocument _closeAllEditors] mocified to use secondary array. The close method causes the editor to call editor:didCloseForObject: which modifies the openEditors array while the "close" message is being sent to all of the objects. To avoid any issues with the array potentially being changed while this is happening I add all of the objects to another array execute the method on all objects of that and empty both the original and the copy. * GormSoundInspector.m: Corrected an issue where the sound wasn't immediately being set into the inspector. 2004-05-14 17:46 Gregory John Casamento * GormButtonEditor.[hm]: Moved to the Controls palette, removed from the main directory. In general, inspectors and editors should appear in the palette which provides those things. * GormTabViewEditor.[hm]: Moved to Containers palette. 2004-05-14 11:36 Gregory John Casamento * GormButtonEditor.m: Added a line between some methods to improve readability. * GormDocument.m: [GormDocument instantiateClass:] removed extra release for an object being added to the objectsView which is already autoreleased (in setName:forObject:). * GormInspectorsManager.m: [GormNotApplicableInspector setObject:] method removed. This was a temporary hack until the memory leak was located. 2004-05-14 02:39 Gregory John Casamento * GormClassManager.m: Moved the call to _touch to the bottom of all of the methods. This should be called only after all changes have been made to the class. * GormImageInspector.m: setObject: wasn't calling [super setObject:] * GormInspectorsManager.m: [GormNotApplicableInspector setObject:] added code to prevent crash. * GormObjectEditor.m: Removed some commented-out code. * GormSoundInspector.m: Added code to set the _currentSound to nil if the selection sent is empty. * GormPreferences.gorm: Added line. 2004-05-13 18:47 Gregory John Casamento * Gorm.m: Removed some commented out code. Removed commented out RELEASE statements, now that AUTORELEASE is used. * GormDocument.m: [GormDocument dealloc] added openEditors to the set of things released. [GormDocument editorForObject:create:] when a new editor is created, add it to the master list of editors. This makes it easier to send the close message to all of the editors upon shutdown. [GormDocument editor:dicCloseForObject:] removes the editor from the list of editors. [GormDocument _closeAllEditors] closes all of the editors in the document using the new list. * GormDocument.h: Added member variable openEditors. * Palettes/GormMenuEditor.m: Added category to allow testing when a menu is visible so that we can avoid sending the close message to it. This prevents the harmless message "Invalidparm: ordered invalid window 0" from appearing when the document is being closed. 2004-05-13 01:03 Gregory John Casamento NOTE: These changes might unstabilize things a bit. * Gorm.m: The document is now autoreleased when it is instantiated. This change was made in [Gorm application:openFile:],[Gorm open:], [Gorm newGormDocument:]. * GormDocument.m: Addition of a method called [GormDocument _closeAllEditors] this closes all of the editors from the handleNotification method before the any objects are ultimately released. Removal of old, commented out GormFontManager implementation. Streamlined the dealloc method to make certain everything is released. Also changed the window in the init method so that it doesn't release itself when it's closed by the user. This allows for a more controlled shutdown. * GormDocument.h: Minor code cleanup. * GormGenericEditor.[hm]: Added activate, closed ivars. Also added code in close and activate to make use of them. Added code in dealloc to call [GormGenericEditor close] if there the flag indicates the editor is open. Also moved some common, trivial, operations to the parent class implementation of initWithObject:inDocument:. * GormObjectEditor.m: Added code in close to remove the document from the map. This eliminates a crash which was occurring. * GormSoundEditor.m: Same. * GormImageEditor.m: Same. * GormViewEditor.m: Re-arranged the initWithObject:inDocument:. * GormWindowEditor.m: Same. * GormMenuEditor.m: Same. 2004-05-10 21:45 Gregory John Casamento * GormDocument.m: [GormDocument handleNotification:] was failing to remove the document as an observer in the notification center. This was causing the old document to be retained and was, also causing "Test Interface" to fail randomly because the notifcation cetner was still attempting to reach the old document. 2004-05-10 11:58 Gregory John Casamento * Gorm.m: Update version to 0.7.7 (Alpha) to avoid confusion between users using the release and users using CVS. 2004-05-10 09:55 Gregory John Casamento * Version 0.7.6 2004-05-10 09:08 Gregory John Casamento * GormDocument.m: Corrected an issue when creating an "Inspector" or "Palette" in [GormDocument setupDefaults:]. The method was creating an NSWindow which doesn't respond to one of the methods the inspector needs it to. * GormSetName.gorm: Reduced the line to 2 pixels high to make it look a little better. 2004-05-09 10:16 Gregory John Casamento * GModelDecoder.m: defineClass:inFile: changed signature to take the object and get the classname from it. This allows a call to add the class under an assumed superclass, if the user says no to the query. Also in loadGModel: added code to pull the outlet/action from the connections and add them to the class if they are not present on the imported header. This also allows, in the above case, for Gorm to automatically get all outlets/actions from the gmodel. 2004-05-08 08:53 Gregory John Casamento * GormDocument.m: [GormDocument loadDocument:] added code to prevent users from invoking "open objects.gorm" or opening "objects.gorm" directly when in GWorkspace. This caused Gorm to convert the objects.gorm file as if it were an old-style file before gorm packages. It now issues a warning. Also added code to [GormDocument openDocument:] to check for a duplicate open of a model which is already opened. This can cause confusion. * Gorm.m: Added a new method [Gorm documentNameIsUnique:] which checks all existing open documents for a duplicate name and returns NO, if it's not unique. * GormPrivate.h: Added declaration of the method mentioned above to the Gorm class interface. 2004-05-08 08:53 Gregory John Casamento * GModelDecoder.m: [GModelDecoder openGModel:] Corrected issue which was causing a crash. * GormDocument.m: Cleaned up a memory leak. Commented/Documented the location / justification for all memory operations. * Gorm.m: same as above. Also added code to [Gorm unhide:] to prevent bringing forward the document window when clicking on the app icon in test mode. 2004-05-06 21:21 Gregory John Casamento * GormDocument.m: [GormDocument selectClass:] do not switch if the class is one of GormSound or GormImage. This prevents a harmless, but annoying message. 2004-05-05 22:18 Gregory John Casamento * Gorm.m: [Gorm unhide:] improvement over previous fix to bring all things to front. The code now toggles the active status of the document to cause all of the windows of the document to come to the front when the icon is clicked. 2004-05-02 18:35 Gregory John Casamento * GormImageEditor.m: Added code to allow it to resize the cells in the matrix according to the setting in preferences. * GormSoundEditor.m: Added code to allow it to resize the cells in the matrix according to the setting in preferences. * GormSoundView.m: Commented out some of the sound drawing code. I'm planning on getting this working later. * GormSoundInspector.gorm: Added images in buttons, rw.tiff, rec.tiff, play.tiff, pause.tiff, and ff.tiff. 2004-05-02 23:40 Gregory John Casamento * GormDocument.m: [GormDocument openEditorForObject:] Do not bring the editor to the front if it's for an NSMenu. This prevents the "flash" bug which was apparent after the most recent fix for menu editing in Gorm. * GormNSMenu.m: Added #ifdef in GormNSMenu to conditionally compile [GormNSMenu display] so that it becomes easier to debug issues with NSMenu editing. 2004-05-01 17:40 Gregory John Casamento * Documentation/Gorm.texi: Correction of itemize bullet, error found by Christopher Culver. 2004-05-01 11:46 Gregory John Casamento * GormSoundView.[hm]: New class to visualize the sound being inspected. * GormSoundInspector.m: Modifications so that it can now use a GormSoundView. * GormSoundInspector.gorm: Added soundView to .gorm file and made appropriate connections. 2004-05-01 11:18 Gregory John Casamento * GormClassInspector.m: Corrected a problem with the wrong name being sent to the class manager. This was causing an error to be printed by the class manager. This problem had no effect, but was annoying. 2004-05-01 09:44 Gregory John Casamento * Gorm.m: Added implementation for unhide: to bring forward the document window as well as any other windows. This corrects Report #3269. 2004-05-01 09:03 Gregory John Casamento * GormNSMenu.m: [GormNSMenu _createWindow] added call to setExcludedFromWindowsMenu: to make certain that the menu windows are not displayed in the Windows menu under Gorm's main menu. 2004-05-01 07:10 Gregory John Casamento * GormClassManager.m: Removed some NSLog messages. 2004-04-30 20:04 Gregory John Casamento * Gorm.m: Removed code which calls "awakeFromDocument:" on objects loaded in palettes. * GormDocument.m: [GormDocument loadGormDocument:] added back code which calls awakeFromDocument:. Also in [GormDocument setDocumentActive:] removed code which was causing all menus to display instead of just the main menu when loading a .gorm. * GormMenuEditor.m: [GormMenuEditor activate] removed code which was causing all submenus to be displayed when the editor for a menu was activated. * GormMenuInspectors.m: Removed awakeFromDocument: method. * GormNSMenu.m: Commented out some old code. 2004-04-30 19:15 Gregory John Casamento * GormDocument.m: Modified _repairFile so that it works. :) * Gorm.gorm: Removed some extraneous menu items/submenus. 2004-04-27 22:15 Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: [GormMenuEditor deleteSelection] added code to re-display and resize after an item is deleted. This corrects the problem where the menu item doesn't immediately disappear from the screen when deleted. 2004-04-27 21:50 Gregory John Casamento * GormClassInspector.m: Added code to properly collapse the item if the class is being edited in the class inspector. * GormClassManager.m: some improvements on the previous fix. 2004-04-27 01:28 Gregory John Casamento * GormClassManager.m: Modified [GormClassManager addAction:forClassNamed:], [GormClassManager addOutlet:forClassNamed:], [GormClassManager removeAction:fromClassNamed:], [GormClassManager removeOutlet:fromClassNamed:], [GormClassManager replaceAction:withAction:forClassNamed:], [GormClassManager replaceOutlet:withOutlet:forClassNamed:], to allow synchronization in the class list. When a outlet/action is added/removed/replaced the subclasses of that action stay in sync. 2004-04-26 01:04 Gregory John Casamento * GormClassInspector.m: Modifications to addAction: removeAction: addOutlet: & removeOutlet to syncronize with the classes outline view. * GormDocument.[hm]: exposed selectClass: method. * GormOutlineView.[hm]: Simplified some code and added a method called "reset" which stops the editing process on a class. 2004-04-25 23:24 Gregory John Casamento * GormClassInspector.m: removeOutlet: and removeAction: check for i >= 0 to allow deletion of last element. This was an issue introduced in the previous commit. Also made the tables deselect the previous selection so that it would allow deselection of all rows. * GormClassInspector.gorm: Made both tables capable of having an empty selection. This corrected an issue with deleting the last element. * GormDocument.m: Added back, in handleNotification:, handling of GormDidModifyClassNotification. Previously this was removed since there were no other places where the classes were being modified. This is no longer the case. 2004-04-25 06:34 Gregory John Casamento * GormClassInspector.m: removeOutlet: and removeAction: check for i > 0 to prevent and out of range exception if nothing is selected. 2004-04-18 08:30 Gregory John Casamento * GormPrefsController.m: Added dealloc to prevent any memory leaks. 2004-04-17 23:55 Gregory John Casamento * Resources/GormPrefColors.gorm: New gorm file for color preferences. * GormColorsPref.[hm]: new class to implement color preferences. * GormViewEditor.m: Added code to allow the color of guidelines to be changed in preferences. * Defaults.plist: Added entry for GuideColor. The default is red. 2004-04-17 13:11 Gregory John Casamento * Palettes/3Containers/inspectors.m: Added code to the GormTableViewInspector update the background color when the user changes it in the inspector. * Palettes/3Containers/GormNSTableViewInspector.gorm: added color well to allow changing of the background color. 2004-04-17 12:52 Gregory John Casamento * GormObjectEditor.m: [GormObjectEditor mouseDown:] check that "name" is not nil before proceeding into the code to do the drag & drop. This was causing an exception. 2004-04-17 10:58 Gregory John Casamento * Palettes/3Containers/GormNSOutlineView.m: Changed some of the default data source's elements to be closer to the actual class hierarchy. * Palettes/3Containers/inspectors.m: Added code to the GormTableViewInspector to add or delete columns based on the new field which specifies the number of columns in the table/outline. * Palettes/3Containers/main.m: removed some old code and added code to expand the outline view so it looks better in the palette. * Palettes/3Containers/GormNSTableViewInspector.gorm: added "#Columns" field to allow the user to modify the columns in the table without cutting/pasting. 2004-04-13 20:57 Gregory John Casamento * Version 0.7.5 2004-04-11 21:26 Gregory John Casamento * GormBoxEditor.m: Cleaned up warnings. * GormImageEditor.m: same.. * GormInternalViewEditor.m: same.. * GormTabViewEditor.m: same.. * GormViewEditor.m: same.. * GormViewWithContentViewEditor.m: same.. * Palettes/0Menus/main.m: same.. * Palettes/3Containers/GormTableViewEditor.m: same.. * Palettes/3Containers/inspectors.m: same.. * Palettes/4Data/inspectors.m: same.. * Palettes/4Data/main.m: same.. * GormViewKnobs.m: Added reference to new header... * GormViewKnobs.h: New header which declares the knob related functions. 2004-04-06 20:16 Gregory John Casamento * GormClassManager.m: Correction to how actions are added to FirstResponder. Previously it was adding *all* actions to this entry, but it shouldn't do this. It now adds only those methods added to subclasses of NSResponder. 2004-04-06 00:16 Gregory John Casamento * Palettes/2Controls/inspectors.m: added defaultItemForm attribute. Added code in [GormPopUpButtonAttributesInspector _setValuesFromControl:] to select the appropriate item, when the value is changed in the inspector. * Palettes/2Controls/GormNSPopUpButtonInspector.gorm: corresponding changes to above code modifications. 2004-04-05 00:06 Gregory John Casamento * GormDocument.m: [GormDocument rebuildObjToNameMapping] some additional debugging information. Also in [GormDocument loadDocument:] unarchiver is now explicitly using RELEASE instead of AUTORELEASE. 2004-04-04 22:09 Gregory John Casamento * GormDocument.m: [GormDocument rebuildObjToNameMapping] use [[********* ******** ***************** ******* ** ************** ********* **** *********** ********** ***** ******* **** ********* ************************** * ************************ ********* **** ******** *** *********** *** *********************** **** ***** **** ** ********************** ************** ** **** *** *** **** ****** **** *** ********** ***** * ***** **** * ******************* ********* **** ********* ********** ***** ******* **** ********* ************************** * ******************* ********* * ******* **** ******** * ***** ** ***************** ****************************** *** ****** ********** ** *** ***** ***** **** ** ***** ******* **** ** ******** ** **** ***** ********** **** *** ** *** *** ***** * ***************** *** *** ****** **** ** *** *** **** **** ** ******* *** **** **** ** *** ******* **** *** ** *** ***** * *************** ********* ** ***** **** ********* ** *** ******* ***** ***** **** **** **** ******* ** ******* **** ******** ********* * ************************* *** ******* ****** ** *** **** ********** ** *** ** *** *** ******** ******** ** **** ***** **** ** **** *** **** **** ***** ***** **** ********* * ****** ***** * **************************** *********************** ************* **** ****** *** **** ** ** ******** ** ******** * ********************** **** ** ****** ****** ***** ******** ***** ** * ******* ***** *** ******* ***** ****** **** *** ******* ** *** ****** *** *** ************** ** *********** ********** ***** ******* **** ********* ************************** * ********************** **************** ********************* *********** ***** **** ** ******* *** ******* **** ***** *** **** ** ***** **** ** * ********* ********* *** *** ***** ** *** *** ******** ********** ***** ******* **** ********* ************************** * ************************** ***** ******* ***** ******** **** **** ***** ******* **** * ***** * ****************** ******* ** ********* ** ***** **************** ****** **** **** **************** ***** ****** ********** ***** ******* **** ********* ************************** * *************** ************* *********************** ******* ** ******* ****** * *** ***** ** *** **** **** *** **** ******** * ********************** **************** ********************* *********** ***** **** ** ***** ******* ** ***** ** * ******* ******* ** ******** ********** ***** ******* **** ********* ************************** * ********************************* ***** **** ** ********** *** *** ** *** ***** *** ******** ** *** ********* * *********************** ***** **** ** ***** **** ** **** * *** **** ** *** ********* * ********************************** ***** *** **** ** **** * ********************* *** ****** ********** ***** ******* **** ********* ************************** * ****************** ***** ************* ************************ ****** ** ****** *** **** ******* **** ********* ********* *** ** ****** ***** ********* ** *** ****** ** *** *** **** ******* ************** ******* *********** *** ********** ** *** *************** ****** ******** ********************** ** ******** ****** **** * **** **** ** ***** ***** ***** ***** *** **** ******** * ****************** ***** ************** ** ************** ** **** * **** ******* ***** ** *** ****** ** * ************* ** **** ********* * ******************* ***** ******** ********** ***** ******* **** ********* ************************** * ****************** ******* **** ******* *** *** ************ ***** **** ** ************* ************** ** ****** *** ********** ********** ********** *** ********** **** *** ***** ******* ********* ***** ******* *** **** ** ********** *** ******** ********** *** ********** * ******************* ******* *** ***** *** ****** ** ** ****** ***** ***** ** ******** ** **** ** ******** ** ****** ** **** ** *** ** ************ * *********************** ******* **** ** *** *********** **** ** **** **** *** **** ******** **** ***** ** *** ********* **** **** ** **** *** *** *** *********** ************** ** ***** ********** ***** ******* **** ********* ************************** * *********************** ******* **** ******* ***** ****** *** **** **** ** *************** * ******* ***** **** ** *** ******* ** *********** * ************** ********** ** **** * **** ******* *** *** **** *** *** * ****** ***** *** *********** ** *** **** ******** ***** *** *** **** ****** **** ****** ***** *** **** ** *********** ** ********* * ***************** ******* ************* *** ********** ********* * **************** ***** *********** *** ********** ********* **** ** **** **** *** ** **** *********** ***** * ******************* ***************** ***************** ***** **** ** ***** *** **** ****** ******** ** *** **** ***** ** **** **** ******* ****** ** ********* ***** **** ** ****** *** ******** ** * ****** **** *** ********* ********** ***** ******* **** ********* ************************** * *************** ************* ************** ***** **** ** ************* ************ ** * ***** ******* ** ***** **** ***** *** **** *** ******* ** ****** ***** ***** ***** ***** **** ******* * ***************** ************************ *********** **** ****** ****** ********** ** *** ****** ****** ** ** * *************** **** *** ******* ** ***** **** ***** **** ****** *********** ******* *** ****** ******* ****** ** ***** * ********************** ***** ******** ********** ***** ******* **** ********* ************************** * ***************************** ******* **** ** *************************** *********** ** *********************** ** ************* **** *** ******* *** ****** ** ** ***** ** ******** ** **** ** **** ** **** ***** ******* ********** ***** ******* **** ********* ************************** * *************************** ***** ** **** ** ********** ** ******* *** ******** ** *** ****** ****** ** ** **** * *************** ***** ******** * ***************** ***** ******** ********** ***** ******* **** ********* ************************** * ***************** **************** ***** ******* *** ********** ** ******** **** **** ** ** **** *** ********* ***** ** ** **** *** ********** *** *** ****** ***** ***** ** ********* **** ** **** ** ** ***** ****** ********** ***** ******* **** ********* ************************** * *************** ************* ******************* ***** **** ** ***** *** **** ** ** ****** ** ** ** ** *** ****** ***** **** ********** ***** ******* **** ********* ************************** * ****************************** ******* ***************** ** ** *** ********* **** *** ******** ***** ********** *** **** *** *********** ** *** ******* *** ** ***** *** **** ****** ** ***** ** *** ****** ***** ** **** ******* ********** ** *** ********* ******* ********** ** ******************* * ********************** ******* *** ***** ****** ****************** *** ******** ** *** **** ** ********** *** *********** ****** **** ********* ** ****** *** **** ** *** ***** *** ***** ********** ** ******** ** **** **** ** * ******* ********* * *************** ******* *** ********** ** ****************** ** *** ************* ******* * ***************** ******* **** ****** ** ********** ** **** *** ********* ** ******* *** *** ****** ***** **** ******* ** *** ******* **** ***** *** ******* * ********************** ***** ********** * *********************** ***** * ************************ ***** * ********************************* ***** ********* ** ************** ** ***************** *** ********************** * *************************** ***** ********** * ************************* ***** ********** ***** ******* **** ********* ************************** * *************************** ************************** *********** ********* ****** ****** ********* *** ******** ******* *** ******** ** *** ****** **** *** ***** ** ********* ******* * ************************ ******* **** ******* ***** ** ********************** ********** ***** ******* **** ********* ************************** * *********************** *********** *** ************* **** ******* ** ******* ***** **** ******* *** ** ********** ********** ***** ******* **** ********* ************************** * *************** *** *** ******* *** ******** ************** ******* ** ************ * ********************* ***** **** *** *** ******* * *************** ****** ******* **** ********** * ************************ **** * ******************* **** * ********************* **** * ********************** **** * ***************************** **** * ******************* **** * ********************************* **** * ************************* **** * ******************************************* **** * ******************************* *** ******* *** ******** *************** **** ********* ******* **** ***** *** ***** ********* ********** ** *** ***** ************ ********** ***** ******* **** ********* ************************** * ***************** ***** ****** ************ * ******************** ***** ***** ******* ** ******** * ******************************************* ******* **** ********* ************ * ********************* ***** ******* *** ******* **** ************ ********** ***** ******* **** ********* ************************** * *************** ************** ******************** ***** **** ** *** ********* **** ** ***** ** *** ******** ** ******* ********** ***** ******* **** ********* ************************** * ********************* ******************** ************* ********* ** ***** **** **** ******* ** ********* ********** ***** ******* **** ********* ************************** * ******************* ***** ********** ***** *** *** *********** ******* * ******************* ***** ********* *** *** *********** ******* ****** ** ****** ******** **** *********** ****** *** **** ** ***** ******* ** **** **** ** ***** *** *********** * ******* *********** *** ************* * ************** ************* *** ************* ********** ***** ******* **** ********* ************************** * ********************* ***** ******** ** ***** ****** ************ ** *** ******* **** **** *** ***** ********** *** *** ****** ** * ****** ************** ********* ************ ******** ******************* ************* ** ****** *** **** **** *** ****** *** **** **** *** **** ******* ** ************* ***** **** ** ******** ** ******* ********* ** * ******** ** *** ******* ****** * *************** ******* ** **** ** *** **** ********** ** ************* ********************* ********** ***** ******* **** ********* ************************** * ********************* ***** *** ************* ** ******* *** *** ***** *** *** ******* ********* ** ****** ****** ********* ** ****** *** **** ** ****** *** ****** ***** ** ** *** ********* ******** ****** **** ** ******* ** ******* ***** ******* * ***** ***** *** *** ******* ******* ** *** **** ****** ****** ** ****** *** ********** ***** *** ********** ***** ******* **** ********* ************************** * ******* ***** ********** ***** ******* **** ********* ************************** * *********************** ***** ****** ** ******** ***** ********* ** ****** ******** *** **************** ****** *** ******* **** *** **** ** ******* *** **** ****** ********** ***** ******* **** ********* ************************** * *************** ************** *********************** ***** **** ** ***** *** ************* ** ** ****** ***** **** ********** *** **** ***** ** *** *********** ***** ***** *** *********** *** ******** **** *** ***** ** ******* **** ******** *** ************* **** ***** ********* **** **** *** ***** ** *** **** ******* * ********************************* ***** ************************** ************** ** ****** *** ********** ** **** ********** ********** ***** ******* **** ********* ************************** * *************** ************** *********************** ***** **** ** ******* **** ******* **** ***** ******** **** ******** ** **** ****** ********** ***** ******* **** ********* ************************** * ********************************* **************** ********* ******* **** ** ******** ********* **** ******** ************ ********** ***** ******* **** ********* ************************** * ******************* ******** *** **** ****** ********* **** **** ***** ********** ***** ******* **** ********* ************************** * ************************* ***** **** ** *********************** ** ****** *** **** **** *** ******** ** ************ * ********************** **** ** ****** * ***************** ***** ******* ** ****** **** **** ****** *** ****** **** ******** ** ******* ** ***** ********* ** *** ******* * *********************** **** ** ****** **** ***** **** ** ****** ******* ** ****** **** **** *** ****** ***** * ******************************** ******* **** ***** **** *** ***** **** ** *************************** ** *** *** **** ****** ** ***** ** **** *** **** ********* ********** ***** ******* **** ********* ************************** * ************************* ****** ** ****** ********** ** ********* ** ********* ************* ** *********** ********** ***** ******* **** ********* ************************** * ******************************** ******* *** ******** ******* ********** ***** ******* **** ********* ************************** * ******************** ******** ** ********* *** ******************** ******* ** ***** ***** ** ***** ****** * ********** ******* * ********** ******* * ******************************** ******* **** ** ************************** ** *** ****** * ****** ** ******* *** ******* ***** ******* ** *** **** ***** ***** ** **** *** **** ********* ***** ***** ******* ************ ********** ***** ******* **** ********* ************************** * *********************** ***** ************** ** *** ****** ****** ********** ***** ******* **** ********* ************************** * *************** ********************** **** *** ********** ********* ** *** ****** ***** ** ******** ** **** *** *** ******* **** ******** * ***** ***** **** ****** *** **** ******** ********** ***** ******* **** ********* ************************** * *************** ******* ***************** **** *** ***** ** ** ****** ** **** ***************** ** ****** ***** *** ************** ** ***** * ******* ***** **** ** ***** ** ***** *** ******* ** *** ********* ***** ******** * *********************************** ***** **** ** ***** *** ** *** ******* ***** **** ******** **** ******** ****** ****** ********** ***** ******* **** ********* ************************** * *************** ************* ************** ***** ***** ** ************* *** ********** *********** ** *** ********** ***** ** **** **** *** ** *********** ** ***** ** * ******* ******* *** *********** ** ** *** ***** ********** *** *** ***** ** ** ****************************** **** **** **** ** ********* ** *** *********** ********** * *********************** **** *** ******** **** ************* ***** ******** *** ******* * ***** ***** ***** ** ******** *** ************* ** ***** ** **** ** ****** ********** ***** ******* **** ********* ************************** * *************** **** ************** ******************** ************** **************** *** ************** *************** **** ************** ******************* ************** *************** *** ************** ************** ** **** **** *** ** **** ** ***** ******* ***** **** ** ****** **************** * *************** ***** ************ *** *** *** ***** ******** * ************************ *** *** *** ******* ** ******* **** **** ******** * *** **** *** ** ****** ** ******* ********** ***** ******* **** ********* ************************** * ************************ ***** **** **** **** ** **** *** ******* ** *** ***** ** *** ********* **** *********** **** ******* * ****** *** ***** *** ****** ****** **** ********** ************* **** **** *** **** ********* *** * ***** ***** ********** ***** ******* **** ********* ************************** * ********************* ***** ********** ** ************** *** ************** ** ******* ** ********* ***** ****** **** ********** ****** **** ***** *** *** *************** ** *** ***** ********** ***** ******* **** ********* ************************** * ******* **** ********* ******* ** **** *** **** ***** ***** *************** ** ******** ********** ***** ******* **** ********* ************************** * ******* ********* ** ***** **** ************* ******* ** *** *** ********* *** ****************** **** ***** ** ***** ** ****** ******* ******* ***** ******************** ******* **** ******* ******* ** ****** *** ***** ****** ** **** ***** **** ***** ********* **** ********* ********** ***** ******* **** ********* ************************** * *************** ******* ******* ****** ***** *** ********** ****************** **** ****** ** ****** **** ************* **** ***** *** ************ ** * ********* *** ** ***** ****** ** **** ****** ********** *** ***** ************** ** ********** * *********************** **** ** *** ****** *********** *** ****** **** *** ********** * ******* ***** **** ** ****************** ** **** *** ******* **** ***** ***** ***** *********** **** ******** ********* *** ******** *** **** **** ********** *** ***** **** ** ***** ********* ****** *** ********** ********** ***** ******* **** ********* ************************** * ******* ****************** ***** **** ** **** *** *** **** ***** **** ***** ** *** ****** ******** ****** ** ******** ********** ***** ******* **** ********* ************************** * ******* ***** * ********* ***** ****** *** **** ******** ** *** ************* ****** *** **** ***** **** ** *** ******* ** *** **** ** ******* ***** **** ** ** ********** **** ***** ********* ************ ********** ***** ******* **** ********* ************************** * ******* ****** *** ***** ******* ******* *** **** ** ****** ***** ****** ** ** ****** ** * **** ***** ******* ****** ******** *** **** ** ****** *** * ********************* ***** *** * *** ***** *** ********** ***** **** ******** **************** **** ***** * **** ** *** ****** ***** ******* *********** **** ** ****** ** ****** ** ******* **** *** ********* * ******************* ***** **** ** ******* ******* ******** **************** *** ******* **** *** ***** ******** ******* **** *** *********** * *************************** *** ******* **** *** ****************** ***** ****** ** ** ******* ************ *** *** ******** ********* *** **** **** * ****** *** *** ********** * *** ****** ****** *************************** ********** *** ***** ** ***** *** **** ** ** ******* ** *********** *** *** ******** ****** * ****************** ***** **** ** ******** ****** *** ***** ********* **** ********* ** ******* **** *** ***** **** ******** ***** ************** *** ***************** * ************************ ******* ******* *** ******** ******* *** ************ ** *** ******** ***** ****** ****** ******* *** ******* ******* ** ** *** **** ***** * ********************** ****** * ******************* ******** ** *** *** ***** ***** ********** **** ***** *************** * ******************* ******************************** *** ****************** ******* * ***************************** **** *** ******* ** ***** *** ******* ********** ***** ******* **** ********* ************************** * *************** ************** ***** ******* *** ******* * ****** ******* **** *** ****** *** ** ****** *** ************ ******* **** *** **************** ******* * ******** **** ******** ** ******* **** *** **** ********** ***** ******* **** ********* ************************** * ********************** ****** ************ ********************** ********** ***** *** * ******* **** ***** ***** ******* *** ********* **** *** **** ***** **** * *************************** **** ****** ** ***** ******* ** *** *** *********** ****** ******** ****** *** ****** ****** *** **** ****** ** ******** *** **** ************ * ********************************************** ******* ******** ******** ** ********* ***** **** ** *** *** ** *** ***** ******* ** *** **** *** **** ** *** **** **** ****** *** **** ** *** **** ********** ***** ******* **** ********* ************************** * ********************************* ***** ****** ** ******* ********* ******** ********** ***** ******* **** ********* ************************** * ******* ***** ********** ***** ******* **** ********* ************************** * ********************** ***** ****** **************** ** *** *** ********** ******* ****** ** **** * *************************** **** *** ****** ** ***** ******* ** *** *** *********** ******** ****** ****** ********** ***** ******* **** ********* ************************** * ******************************** ***** **** ** ***** ******** ** *** ***** ** ***** ******** ****** ****** ********** ***** ******* **** ********* ************************** * *************** ******* *********** **** ******** ** ************ *** **** *** ***** *** *** ****** **** *** ******* * ********* ********** ***** ******* **** ********* ************************** * ******************************** ***** ******* ***************** *** *************************** *** ******** *** ************************* ****** ** ***** ********** *********** ** *** ********** *** **** ****** *** ****** *** ********* ** ** ***** ***** ** *** ******** ******** ** *** ***** ** *** ****** ***** ******* **** *** ********* ********** ****** ********** ***** ******* **** ********* ************************** * ***************** ******* ***** ******* ***** *** ******* * ********* ********** ***** ******* **** ********* ************************** * ****************************** ***** ************** * ****************************** ***** ********** * ******* ******* ********************* ******* ********** ***** ******* **** ********* ************************** * *************** ******************** ********* ***** ***** *** ******* * ************ ****** ********** ***** ******* **** ********* ************************** * ************************ **** ******* ******* ***** ***** *** ********** ********** ** ******** ********** ***** ******* **** ********* ************************** * **************** ******* ********* *** ***** * ******************** **** * ***************** **** * ************************* **** * ******************** **** * ****************** **** * ****************** **** * ************************* **** * ******************* **** * ******************* **** * ********************** **** * ***************** **** * ******************************** **** * ***************************** **** * ************************ ***** ******** * *************** ************* ************** ******* ****** ******* ******* ************* ************** ******* *** ****** **** ***** **** ******** **** *** ********* ************* ******************** ******* ***** ****** ****** ************* ****************************** ******* ***** ******* * ************************ ******* **** ** *** ************* ** ******* ****** ******** **** ******* ************* ********* ** *** ******* ********** ***** ******* **** ********* ************************** * ******* ***** ********** *** *** *** ********* ** ***** **** ** ** ******* *** *** ********* *** *** ********* ************* **** *** **** ** ******* ** ****** ******** ** **** ******* *** ***** ********** ***** ******* **** ********* ************************** * ****************** ********* ***** ** ******************* ***** *** ****** ** *** ***** **** ***** ****** ********** **** *** **** *** ***** ************* ********** ***** ******* **** ********* ************************** * ************************************* ********* *** *** ************ ****** ***** **** ** ******** *** ****** ** *** ******* **** *** ********** **** *** **** *** *** ****** ** *** ****** ******* *** *** **** * ********** ***** ******** *** *** ************* ******* ***** ****** ********** ***** ******* **** ********* ************************** * *********************** ***** *********** *** ****** * ******* ******* ***** ****** * ******************* ***** *********** ****** ** *** ** ****** ********** * *************** ***** **** ** **** * ******* ** *** ************ ****** ** *** ****** ***** ******** ******* **** * ***** ***** * *********** ******* * ***************** ***** ************ *** *************************** ** ******* *** ** *** ***** ***** **** ** ** ******** **** * ****** **** ** ******* **** *** **** **** ** **** *** ** ************** ** *************** ********** ***** ******* **** ********* ************************** * ************************ ********* ****** ** ************** ********** ***** ********** * ***************** ***** ******************* *** ***************** ** *********** ******* *** ******* ***** ****** ** ******* **** *** ********* **** *** **** ******* * **** ***** * ************************************* ********** ******* ******** *** ********* ****** ***** ****** ** ********* ******** ******* ** *************** ***** * ***************************** ********** ** *** ** ******* **** **** ******* *** ***** ** ***** ********** ***** ******* **** ********* ************************** * *************** ***** **** ** **** **** ********** ****** * ************************ ***** **** ** ** ******** ****** ** ****** **** *** **** ****** **** ********* ************ ********** ***** ******* **** ********* ************************** * *************** ***** ******* *** **************** ******* **** ******** *** ******* ** *** ***** ** ***************************** ******* ************ ***** *** ******* **** ******** ********* ***** **** ** *** *** ***** **** ** *** ******** *** *** ******** ***** ******** ** ************** * ************************* ***** ******* ***** **** ******** * ********************************************* ******* ***** ***** ********** ***** ******* **** ********* ************************** * ******* ***** ********** ***** ******* **** ********* ************************** * *************** ******* **** ***** ***** **** *** ***** ***** ***** ************ *** ******* *************** **************** ************* ************ * *************** ***** ************** ** ***** ******** * ************************************* ***** ************** ** ****** ************** ***** **** *** **** ************* ** **** **** *** **** ** ********** *** ****** **** ******* ** ********** * ********************************************** ***** ********** *** ****** *************** * ******************** ********** ******** *** ******* ***** *** ***** ********** ***** ******* **** ********* ************************** * **************************** *** ***** ***** *** *** ********** * ********************************* ******** ********* ** ****** ************ **** ******** *** *** ** **** ********* *** **** *** **** **** ***** *** *** ******* ******** ***** * ***************************** ******* **** *** **** ***** *** *** ********** * ************************************* ******* ********* *** *** ******** ** **** *** ******* ** *** *********** ***** ***** *** **** ********** * ************************************************* *** *** *** **** ********** **** ***** *** ********** ** *** ********* ** ***** *** **************** ***** **** ** ********** * ***************************************************** *** *** *** **** **** ********** ********** ******* **** ********* ************************** * ******************* ************************ ** *** ***** ****** ** ** *** ****** ** **** ****** *** ********* ********** ** **** ****** **** ** ** ***** *** *** ** *** ****** ***** ********* ** ****** ******* ***** *** *** ****** *** *** *** ******* ** *** ******** ***** ******************* ********** ******* **** ********* ************************** * ******************** ******** * ****** *** ********** ***** ** ***** ********** **** ***** ***************** ******** ** ******* ********* * ***************** *** **** **** *** ******* ****** * *************************** ******** *** ******* ** *** ***** * ******* ******** *** ******* ** **** ***** ***** *** ***** ********** ******* **** ********* ************************** * ************************ ******* ** *** ******** ****** ******** ****** **** **** ** * ********** ** *********** *** *** *** ****** ****** ** ********** *** ********** ** ******* *** ** ***** ******* ** ********* ********** **** ****** *** ********** ** ***** ********** ******* **** ********* ************************** * ************************ ***** ***** ** ****** ** ********* ** ******** *********** ** ****** ** ** ** *** ** ***** ***** ** ****** **** **** **** ******* *** ******** ** ******* ************ ********** ****** ***** ***************** ******** ** ******* ********* * ******* ***** *** ** *** **************************** ****** **** ******* ** *** **** ****** * **************** ***** ******** *** **** ** ***** ******** ** ***** ** *** ***** ** ** ****** * **************************** ***** **************************** ************** *** ********** ********** **** ********** *** *********** ******** **** ***** **** ** ************** ******** ** **** **** ******* ***** * ***************************** ***** **************************** *** *********** ** ******** *** *** *** **** ******** * **************************** ***** ****** ** ******* ** **** ** ******* **** ******* ***** ********** ******* **** ********* ************************** * *********************** ***** *********** *** ********* *** ************** ********** ******* **** ********* ************************** * ******* ***** ********** ******* **** ********* ************************** * ***************** ***** **** ** ***** ****** ** ***** ** **** ** *** ***** **** ******** * *** *** ****** ***** *** ****** ********** ******* **** ********* ************************** * *************** ***** ***** ************** ** ***************** ***** **** ****** ** **** **** ** ********* *********** ** * **** ************ **** ****** *** ** **** **** *** **** ** ****** **** **** ******* ********** ******* **** ********* ************************** * ****************** ***** ********** ** ***** *********** **** *** * **** ****** ** ******** ********************* ********** ******* **** ********* ************************** * *************** ***** ********** ** ***** *********** **** *** * **** ********** ******* **** ********* ************************** * *************** ******* **** ** *** ***** ***** * ********************* *** ***** ** ******* ***** *** ** ****** ********** ********** ******* **** ********* ************************** * *************** ********* **** ****** ******* ******* * ************************* ***** ** *** ***** ******* **** ** * *** ****** ******** **** *** **** **** * ******* ******* ** **** ******** *** ******* *** ******* ** *** ************ ********** ******* **** ********* ************************** * *************** ***** **** ***** ***** *** ** ***************************** ******** *** ****** ** *** *** ************** **** ******* ** ********* *** *** ********* * ******************* ***************** *** ***************** **** **** ******* ** ****** *** ****** ***** ************ **** * ****** ***** ** ******* ** ******** ***** *** **** ** ** ***** * *************************** ***** ***** *** *** ****** **** *** ************* **** **** ***** * ******* ** ******* ** **** ******** ********** ******* **** ********* ************************** * *************** ********* ********* ******** ***** **** ** ****** **** ** ******* **** **** ********************* * *********************** ******* *** **** **** ***** ********** ******* **** ********* ************************** * *************************** ***** ****** ****** **** ** ******** ********* ** ******* *** ***** ********** ******* **** ********* ************************** * ****************** **** ********************* ******* * *********************** ***** ***** ** **** ********************* ** **** **** ** ****** ** ********* *** ******* **** ******* ** *** ********** ******* **** ********* ************************** * ******************* ******* ********** ******* ****** ** **** ***** **** **************** *** **** **** ***** ****** ** ****** ************* ***** *** *** ********* ** **** **** ** ******* ********** * *************** ********* ************* ****** ** ****** ****** ****** *** ******** **** *** *** ***** ******* **** *** ****** ***** ***** ** **** *** ****** * ********* ***** ***** ********** ******* **** ********* ************************** * *************** ******* ********* ** *** ******** ******** ***** **** ** *** *** ******** ******* *** ***** ******* ***** * ******* ******* *** ********** *** ********** ******** ******** * ************** ******* ********** *** ********** ******** ******** * ************************** ***** ************** ******* ********** **** ***** *************** * ******************** ********************** *** ********* ********** ****** ****** ********************** * ********************** * *** ****** **** ********** ******* **** ********* ************************** * ************************* ***** ************* *** ******** * ** **** ** ** *** **** ************* ** *** ***** ***** ** *** ************** ********** ******* **** ********* ************************** * **************** ************** ********************************* ***** ***** ** ********* ** ***** ** ********* ** ** *** ****** ***** ******* **** *** ******* ** *********** ********** ******* **** ********* ************************** * ***************** ********* ******** ****** ********** * ************************ ******* ***** ******************* **** ***** *** ******* * ******* **** ******** *********** **** ******** ********** ****** ****** ********************** * *** * **** **** ****** ****** ********** ****** ****** ********************** * ***************** * *** *** ***** * ****** ***************** ***** ****** **** ************ ** ********* ********* ********** ****** ****** ********************** * ************** * *** ****** **** ******* * ****** * ***** ** * *** **** ******* * ************* * ***** ** ********** ******* **** ********* ************************** * *************** ***** ******** ** *** *** ******** *** ******* ******** * **************** ****** ********** ******* **** ********* ************************** * ******* ***** ********** ******* **** ********* ************************** * **************************** ***** ******** ** ****** ******* ****** ** ************ ***** ** ****** ** *** **** ******* * ******************************** **** ** ****** ********** ******* **** ********* ************************** * ********************** ***** ** **** **** ******** ******** * ********************* ***** ****************** ** **** **** *** ** ******** ** *** ***** ******** *** ****** ********** ******* **** ********* ************************** * ************************ ****** ********** ***** ********** * ********************************** ***** ********* ***** ********** ******* **** ********* ************************** * *************** *************** ******************* ***** **** ** ******* ******* ** ************* ** *** ****** **** ** *** **** ** *** ************ **** *** ******* *** **** ** ** ********* ** **** *** ****** **** ** ***** * *************** *************** ******* ***** ************ *********** ********** ******* **** ********* ************************** * ********************** ***** ************** *** *** ******* ** *** ** ***** ** ******* *** ******* ** * ****** * ****************** ***** *** ****** ** *** ** **** ** **** *** **** ******* ** *** ************ ****** ** ******** ****** ** ***** **** *********** * ******************* ******* **** **** *** *** ********* *** ***** ********** ******* **** ********* ************************** * ******************* ***** **** ** **** ************* **** * ***** ** ************ * ************** ***** ************ *** *** ************** * ******* ***** ****** ********* *** *** ************** * ***************** ***** **** ** *** ********* ** ******* *** ************* *** ****** *** ***** **** **** * ***** ** ************** ********** ******* **** ********* ************************** ******* ***** ********* ** **** **** * *************** ***** **** ** ***** ******** ********* ** ****** *** ****** **** ****** **** ** * ***** ***** ******* ****** ********** ******* **** ********* ************************** * ************************************************* ***** *** ********* *** ****** * ******************************** *********** ********************** ** ***** *** ************ ** ***** ***** ** ***** * ************************* ***** ******* ******** ** *** ******* ************ *** ************* ********** ******* **** ********* ************************** * ********************************************************* ***** * ******************************* ***** ****************************** ***** ** ****** ********** ** ******************** * **************************** ***** **** ** **** *** ***** ***** ********** ******* **** ********* ************************** * *************** *********** ***** ***** ** ******* *** ******** ** *************** **** ******* ********** **** ********* **** * ******* **** **** ******** * ******* ***** ******** **** ***** ******** **** *** ***** ** ******** ********** ******* **** ********* ************************** * *************** ***** *********** ** ********* ** ***************** ** *** *** ** *** ****** ** **** ** **** ******* ** *** * **** ******* ***** *** ***** ********* ** ******* ******* ******* ********** ******* **** ********* ************************** * ************ ***** ******* ** *************************** ** *** ********* * ******* ***** ****** *** ******* ******************** ** ******* *** **** **** *** **** ***** ** ************* * *********************** ***** **** ******** * **************************** ****** ********** ******* **** ********* ************************** * *********************** ***** ************************* ****** ** ***** ***** ****** * ************ ** ** ********** * ******************************** ***** ******************** ** **** ** ******* ** **** *** ** **** *** ******* ****** **** ******** ********* *** ****** ********** ******* **** ********* ************************** * ************** ***** *********** *** ****************************** * ******* ***** ********** *** ******************************* **** ********* ** ***** ***** *** ******* **** ** ***** **** ******* ** ********** * ******************* ***** **** ** **** *** ************ **** ** ****** ** ** ****** ** ****** * ********************* ***** **** ** ****************** ****************************** ** **** *** ***** ** *** ********* *** ** ******** ******* **** *** ***** ** ****** ** *** ***** ******* ********** ******* **** ********* ************************** * ********************* ***** **** ** ************ ** *********** ******* *** ***** ************************************** **** *** ***** ** ******* **** *** ********** * *************** ***** ***** ** ****************** ** ******* *** *** ************ **** ****** ********** ******* **** ********* ************************** * ********************************** ***** ******* **** *** ***** * ************************ ***** *** ******* *** ***** *** ******* ** **** *** ***** * *************** ***** **** ** ******* ******** ** ******* ** *************** * ******************* ******* **** ***** ********* ****** ******* ** *************** **** ** **** ** *** ******** *** *** ******* ** *************** **** ******** **** **** **** *********** ** *** ***** ******* ** *** *** ****** ** ************** **** ********* *** ****** ********** ******* **** ********* ************************** * ********************************** *** ********* * ************************ *** ********* ******* * *************** ***** ******** ****** ** ****** ***** ** *************** **** ******** ** *** *************** ***** * ******************* ***** ******* ** *********** ******* ** *** *** ***** ****** ******** ** *** ****** **** ** *** **** ****** **** * ************* ** ****** ********** ******* **** ********* ************************** * ********************************************** ***** *** ********** ******** * ******************************** ***** **** ** ****** *** ********* ********** ******* **** ********* ************************** * ********************* ******** ***** **** ********** ** *** ******************* ********** ******* **** ********* ************************** * ************************** ***** *** ****** ** ******** *** *** ***** ****** ******** * *********************** *** ***** * *********************** *** ***** * ************ ***** ****** ** ********* ********** ******* **** ********* ************************** * ************************************ ***** **** ** **** ******* ** * ****** ***** *** ********* ** *** *********** * *************************************** ***** *********** ** ******* * ********************************** ********* *** ***** ********* *** ****** ****** ********** ******* **** ********* ************************** * ************************************************* *** * ************************************ *** * ************************************ *** * ************************************ *** * *************************************** *** * **************************************** *** * ****************************************** *** * ************************************ *** * ******* ******* **** ********* *** ***** **** ** ******** * *************** ******* **** ********* *** ***** **** ** ******** * ************* ******* ******* ** ********* *** *** ** ******* ***** ** ******** ** ***** *********** ********* **** ********* *** ******** **** **** ** *** ******* *** ************ ** ******* ********* ***** ** ***** ********** ******* **** ********* ************************** * *************** ******* *********** ** *************** ********** ******* **** ********* ************************** * ************************ **** ******* ** ****** ********* ** ******* **** * ******** ** ******* * ******************* ******* **** **** ****** ******* ** *************** ************** *** ************* **** *** ****** ******* ** **** ******* * *************** ********* * ******* ***** *** ******** *** **** ** *********** *************** * ******* ******* ** **** ****** ***** * *** ***** ***** ** *** ****** **** **** ***** ********* ********** ****** ****** ********************** * ****** * *** **** ********** ****** ****** ********************** * ****** * *** ************ * ************** * ***** * **************** * ***** * *********************** * ***** * ********************* * ***** * ********************* * ***** ********** ****** ****** ********************** * ****** * ********** *************** ********* ************ ************* *** ****** * *************** *** ********** ****** ********* ********* * ********* * *** **** *** *************** ********* ************ ************ ********** ******* **** ********* ************************** * *************** **** *** ****************************** ***** **** ** **************** *** ******** ******* ** *** ********* ***** *** ******** **** ******** * **** **** ***** *** ********* **** ******* * **** *** ******** ** ******** **************** ********** ******* **** ********* ************************** * ***** ******** * ************ ***** ********* ** ******* ** * ********** ** **** * **************** ******* ** **** ***** *** ******* ********* ** *********** *** ********** * ********************* ******** *** ******* ********* ** *** ********* *** **** * ******* ******* **** ***** *** ***** ** ******* ******** * ******************* ***** ******** *** ***************** * ****************** ******* ****** ****** ***** ** ** ****** ********** * ******************* ***** ******* ** *********** *** * *************************** ******* ****** ****** ********** * *************** ***** **** ******** * *************** ******* **** ******** ******* ************* ***** **** ** ** ******* ******** *********** *** ** ******************** * *** ****** ******* ** ******* ***** ****** ************ ** ******** **** * ***** ** ****** ** ***** **** ******* ********* ******* ********** * ***************** ***** ************** ****** ***** *** ********** ******** ** ******* **** *** *** **** ******* ****** ***** * ************************ **** ** ****** * ************** ***** *** ****** *** ******* *** ****************** * ********************* ********* *********** *** ****************** ****** * ********* ******* *** ******** ** *** ******** ********* ** ******* *** *** ******** * ******************** *** ***** * ****************************** *** ***** * ***************************** *** ***** * ********************************* *** ***** * ********************************* *** ***** * *********************** *** ***** * *********************** *** ***** * ******************** *** ***** * ********************** *** ***** * ********************** *** ***** * ******************** *** ***** * ******************** *** ***** * ********************** *** ***** * ********************** *** ***** * **************************** *** ***** * **************************** *** ***** * *************************** *** ***** * ******************** *** ***** * ******************** *** ***** * ************************** *** ***** * *************************** *** ***** * *************** *** ***** ********** ******* **** ********* ************************** ******* ***** ********* ** ****** ****** ********************** * ******* ******* ** *************** ***** ***** ******* ** ***** ******** ** ********** ******* **** **** ************ ** ***************** * ****************** ******* ************** ** ****** ***** ******* ************ ** ***************** * ************** ***** **** **** ** ************** ********* ***** ************ ** ******** **** *** ********* ** ***** ********* * ******************************** ***** **** ** ***** ****** ** ***** ******* ** ****** ********** ** *** ***** ** * ******* ***** ** *** ** *** **** ***** * ********** ***** **** **** ** ************** ********** ***** *** **** ***** ******** ****** ******* ********** ******* **** ********* ************************** * *************** ********* ********* ***** *** ** ***** **** ****** ***** *** ******* **** ** **** ** * **** *** ********* ********** ******* **** ********* ************************** ******* ***** ********* ** ****** ********************** * ************ ***** ***** ***** *** *** ** *** ** ****** * ********************* ******* **** ** ************* ****** *** *********** ******* ******* ********** ** **************** *** ***** *** *** ************** ****** * ********************* ******* *** *** ************ * ********************* ****** * ******* **** **** ******** ** ***** * ******* ******* ********* ***** * ********************* ****** * ********************* ****** * ********************* ****** ********** ******* **** ********* ************************** * ******************************** *** ********** ****** *** *** ****** ***** ** *** ********* ***** * ****** ***** **** *** **** *** **** ********* **** *** ******** ********* ********** ******* **** ********* ************************** * ********************* ***** ** ******* *** ******* ********* ** ******* *** **** ******** ** *** ******* * **************** ********* **** ** ********* ********* * ******* ********* **** ** ********* ********* * ******************** ********* **** ** ********* ********* * *************** ***** **** ** *** ******* ***** **** ***** **** **** ******* ** *** ****** *** **** ***** ******** ********* * *************** ********* **** ** ********* ********* * ******************** ********* **** ** ********* ********* * ****************** ********* **** ** ********* ********* * ************************* ********* **** ** ********* ********* * ******************* ********* **** ** ********* ********* * ************** ***** ************ ** ****** ***** ******* ****** ** ******* ********* * ****************** ********* **** ** ********* ********* * ***************** ********* **** ** ********* ********* * ******************************** ********* **** ** ********* ********* ********** ******* **** ********* ************************** * *************** ******* ******** *** *** ** *** ******* ***** ********** *** ****** ***** **** *** ******* * ******* **** ** *** ** *** ******* ** *** ********** **** *** *** ********* ****** *** ****** ** * ******** ****** *** *** ******* **** ****** **** **** **** *********** ********** ******* **** ********* ************************** * *************** ********* * ******* ***** *** ******* *** ********* ***** ** *** ********* ** ****** ********* **** ***** ****** ******** **** ***** * ********** **** ** **** **** ******** ** *** ********** ********** ******* **** ********* ************************** ******* ***** ********* ** *** ***** * ************ ***** ********************* * *************** ***** ******************** ** ******* **** *** ****** ****** ********** **** ***** *************** * *********************** *** ********************* ** *** ******* *** ********* ********** ******* *************** ************* * ******* ***** ******* ** ******* **** ****** *** *** *** **** ****** *** ****** ********** * *************** ***** * *************** ** ****** **** * *** ***** *** **** **** **** ***** ** ** *** ******* *** ** *** ******* *** ***** ****** * ******* **** *** ****** ************ ******** *** *** * ****** ******** ** ***** *** ****** ******** ** ******* *** ******* ** ** *** **** ******************* ****** ********** ******* ********* ************************** * ***************** ********* ***** ******* **** ******** ***** ***** *** *** ****** ***** ********** ** *** *** ******** *** **** **** *********** *** **** ******* ** *** ******* **** *** ***** ********** ********** **** ***** *************** * ******** ***** ********** ****** ********************** * ********************************** ****** ******* ********* * **************************** ****** ******** ********** ********** **** ***** *************** * ****** ****** ******************** ****** *********** ***** * ********************** ************** ********************* *** *************************** *** **** **** ***** ********** ******* *************** ************* * ******* * ******* * **************** * **************** * ******************* * ******************* * ****************** * ******************* * ******************* * ******************** * ******************** * *************************** * ***************** * ***************** * *************** * *************** * ***************** * ******************** * ************************ * ************************* * ************************* * ******************* * ******************* * ****************** * ********************** * ******************** * ***************** * ***************** * ****************** * ****************** * ************** * *********************** * ********************* * ********************** * ********************** * ******************** * ******************** * ***************** * ***************** * ******************************** * ******************************** * ***************************** * ***************************** * ******************* * ***************************** * ***************************** * ******************************** * ******************************** * ********************************* * ********************************* * ******************************************* * ************************************* * ************************************* * ***************************************** * ***************************************** * *************************************** * *************************************** * ******************************************* * ******************************************* * ********************************** * **************************** ********* ** ***** *** ** ******* ****** *** **** ********** *** ****** *** ** ******* ******* ***** ******* ******** ********** ******* *************** ************* * *************** **** *********** ******** ******* ********** ******* *************** ************* * ****************** *** **** ** ****** **** **** ************* ****** *** ******* *** ********** ******* *************** ************* * ************************ ** ******* ******** ********** ********* *** ************ ******* ** ********* ***** *** ***** ** *** **** ******** **** ************ ** ******* ******** ********* ********* *********** *********** ******** ********** *********** ******** ********************** * ************************ ************** **** ****** *** ****** **** ******* **** *** ******* ********* **** *** *** ********* ***** ********** ******* **** ********* ************************** * ******************************************* ******* ****** *** ******* ** ********* ** ** ****** **** ********** ** ****** * ****** ** *********** **** ******* ** ********* ********** ******* **** ********* ************************** * ******* **** ******* ******** ******* *** *********** ******** ******** **** **** ** ******* ** *********** * **************** ***** *********** ** *** *** ** ******* ********** ** **** *** ****** ********** *** ** **** ** ***** * ************************** ******* ** **** ******* ******* ********** ******* **** ********* ************************** * ******* ******* ********* ** ******************* **** ******** *** ******* ** *** *** ******* *** *** ******* *********** ** ***** **** ******* ** ****** ** ******* *** ** **** *** ********* ********** **** ***** *************** * ******** ***** ********** ******* **** ********* ************************** * ******* ************ ***** ** *** *** ******** ** *** *** **** ******* ** *** ***** ***** **** ** ** ******* * *** **** ******* *** ********** * ************** ***** *** ****** ** **** **** ***** * ******************** ***** ****** *** ********* ********** ******* **** ********* ************************** * ******* ***************** ***************** ********* * ******* ***** *** ********** *** ********* **** ***** ****** * ****************** ***** **** ** ******* *** ******** **** *** ******** ********************* *** ***************** **** ****** * **************** ***** ******* *** ******** ***** * ****** ****** *** **** ** *** **** ***** ******************* ***** ** ** ******* ** ***** **** **** ** ** ***** **** ****** ***** ** **** ** ******** ********** ******* **** ********* ************************** * *************** **************************** **** ********* *** ******* ****** *** ******** *** *** ***** ********* ********* **** ** *** ****** ********** ******* **** ********* ************************** * *************** **************************** ***** * **** ** * *** ****** ** *** ***** ******* ***** ******* ****** ******* ***** ** *** **** ******** ** *** ******* * ******************* ***** * ****** ** **** *** ****** ***** *********** ** ***** **** ********* ** ***** **** ****** ******** ********** ******* **** ********* ************************** * **************** *********** ***** **** ** ****** *** ******* ** ****** ******* **** **** *** ******* ***** ********** ******* **** ********* ************************** * *************** ************** ************** ***** * ******* ******* ******* **** ******** ********* ** *** ************ ***** *** ******** **** ***** **** ** ********* ******* ** *** **** ** ***** *********** ******* * ************************ ******** **** ** **** ******* ****** ** ***** ********** ******* **** ********* ************************** * ***************** ********* ******* **** ***** ************** ** ***************** ******** ***** *** ***** ******** ** ***** ******** ********** ******* **** ********* ************************** * *************** ************* ********* ***** **** ** ***** *** ******* ******** **** *** **************** ******** ** *** ****** ** *** **** ******* **** *** ******* ********** ******* **** ********* ************************* * *************** ************* ********* ***** **** ** ***** *********** **** * ****** ****** ** ****** ** ******** ********** ******* **** ********* ************************** * *********************** ***** ******* ******************** ****** ** *************** * ********** ******* ** *** **** ***** ******** * ******* *********** ******************** ********** ******* **** ********* ************************** * ********************************* ********* *** *** ******** * **** ********** * ********* *** *** ****** ***** *** ********* ******* *** *** *** ********* **** *** ******* **** **** ********** ********** ******* **** ********* ************************** * ******************* ****************** *********************** ***** **** ** ******* *** ****** ***** ****** ** ** *** **** ***** ** **** ** *** **** ****** **** ** *** ****** ** *** ****** ***** **** **** ******** * ******* ***** *** ********** ** *** ******** **** * ************************ ** ******* ********* ******* **** ***** *** ******* ** *** **** *********** *** ****** ** **** ***** ****** * *************************** ************************** ******************************** ******* **** ***** ***** ** *** ***** *** **** **** ** ***************** ********** ******* **** ********* ************************** * ******************* ***** **** ********** ********** ** ****** **** ********** * *********************** ********* * ******* ***** *** ********** *********** ***** **** ** ******* ***** ** * ********* ********** ******* **** ********* ************************** * ******* ******* ** **** ***** *********** ****** *************** ***** **** ** ****** *********** ** ******* **** ******** * *************** ************** ************** ***** **** ** ****** *********** ** ******** ************** ************** ***** **** ** ****** ******* ** *********** ** ** *** ** ******* * ****************************** ***** *** ***** ***************** * *********************************** ****** * ************************* ******** ** *** *** *********** ****** * ******************************* ******** ** ******** ******** ** *** ****** ********** ******* **** ********* ************************** * ********* ******** *** *** ************** ***** **** ***** ********* ********** ******* **** ********* ************************** * ******* ********** **** *********** ********* * *************** ********** **** *********** ********* * ***************** **** ** ****** * ************************ **** ** ****** * ********************** **** ** ****** * ***************** ***** ******** ** ******* ************************ ** ******* *********** ******** ** *** ****** ******** * ***************** ******* ***** ************** ** **************** ** ******* ********* * ************************* ***** * ******** ** ******* ** *** *** ****** ********* ** **** ** ******* ********* ********** ******* **** ********* ************************** * *************** ***** **** *** ******** *** ******* **** ******** ***** * ************ ***** *** ****** * ********************* ***** ****** ** ****** *** *********** ***** ****** ***************** ** **** ** * *** ***** * *************** ************** ****** ***** **** ** ******* ******* **** *** ******** ***** ** ********* ********** ** ******* ** * ******* ********** **** *** ******* ** ********* ************** *************** ******* ********** ** ******** ******* ***** ** ********* ************** *************** ******* ********** ** ********* ******* ***** ** ********* * ***** ***** **** **** ****** ********** ******* **** ********* ************************** * ********** ***** ** ******* ***** **** ***** ** **** ** *** ****** ***** * ******* ****** ***************** ******* **** ***** **** ** *** ***** ** *** **** ********** ** *** ********* ***** ****** ***** ***** **** ** **** *** ***** ***** ****** ****************** ******** ** **** ******* **** ***** ****** **** ************ * ****************** ***** ************** ******** ** ***** *** *** ** ********* ***** **** ** ***** ****** ********* ******* ******* ********* ********** ******* **** ********* ************************** * ******************* **** * ***** ********** ** *** *************************** ** ***** ******* ** ** ******* **** ****** ******** ********** ******* **** ********* ************************** * ******* ******* ******* *********** ** ***** *** ** *** ** *** ****** *** ***** *** ************* * *************** **** ** ****** * ***************** ******* ** ******** ***** *** ** ****** ***** *** ******* *** *********** ** ****** ********** ******* **** ********* ************************** * ***** **** **** ** ******** *********** ******* *********** *** **** ***** **** ** ** ****** ********** ******* **** ********* ************************** * ******* ***************** ******************** ******* *************************** ***** ** ********* ** **** ** ******** ****** *** ** *** ********** ** * **************** ********** ******* **** ********* ************************** * *************** ************** ************* ***** **** ** ****** *** ***** **** ** ** ****** ** *** ******* ***** **** ******** *** ************** ************** ****** *** ***** * *** ******* ****** ************** ************************ ***** **** ****** ***** ** ****** ***** ** ****** *** ********** ******* **** ********* ************************** * *************** ************** ************* ********* ******* ******* *** ** ****** ******** ******* ****** ******* ********** ******* **** ********* ************************** * *************** ***** **** ** ************* ** ****** ** ***** ********** *** ****** ******** ********* ******* ** ***************** ***** ********* ******* ***** **** *** ***** ****** ***** ******* ******* ******** ********** ******* **** ********* ************************** * ******************* ******* ***** ** *********** * *************************** ******* ***** ***** ** *********** * *************** ******* ***** ***** ** ********** ***** ************ * ****************** ******* **** ******* ***** ****** ********** ******* **** ********* ************************** * ******* ***** ******** * ********************** ***** ****** ** *** *** ************ ** * ***** ****** ***** *** ****************** ****** ***** **** ***** ** ******** ******* ** ***** ******** ************* * *************************** **** ******* ** **** *** ***** ****** ** ***************** * *************** ***** ******** ******** ** ************ ****** ***** **** ***** *** ******* **** ** **** *** ***** ** *** ******** ********* ******** ** *** ****** ***** ********** *********** ******** ********************** * **************** * ************************ * ******************************* ******** ********* ******* ***** ******** ** ***** **** ********** ** ***** * *********** **** **** *** ******* ****** ** ********* ********** ******* **** ********* ************************** * *************** ***** **** ** ****** ** *** ***** **** **** *** *********** ** ******** *** ***** ***** ********** ******* **** ********* ************************** * ****************** ***** ****** ***** ************** *************************************** ** ****** *** ****** ** *** ****** ****** ** **** *** *********** **** ** **** ** *** *** ***** * ********************* ***** ***************** ************** ********** **** ***** *************** * ******** ***** * ******* ****** **** ***** ******** ** * ********** **** ***** *************** * *************** ************** ****************************** ****** *** ** ****** ** **** ********** ******* **** ********* ************************** * ***** ***** * ***** ********* ** ****** ****** ** *** *** **** ********** ******* * *********************************************** ****** * ********************************** ******** * ********************************* ******** ********** ******* **** ********* ************************** * ***** ***** * ***** ********* ** ****** ****** ** *** ************* ** *** ***** *** ********** ******* * ******************************************** ****** * **************************** ******** ********** ******* **** ********* ************************** * ******* ***************** ************************ ***** **** ** ****** ****************************** ********** ******* **** ********* ************************** * ***************** **************** ************************ *********** ** ****** ****************************** * *************** ******************** ************************ **** ** ****** ********** ******* **** ********* ************************** * ******* **************** ******************** ******* ** ****** ***************************** ** **** **** * **** ******* * *** ******** ** *** ***** ****** ** ********* ** ****** ******* ***** ******** **************** ***** ** ** ******** ****** ********** ******* **** ********* ************************** * ******* **************** ************************* ******* ** ****** ***************************** ** **** **** * **** ******* * *** ******** ** *** ***** ****** ** ********* ** ****** ******* ***** ******** **************** ***** ** ** ******** ****** ********** ******* **** ********* ************************** * *********************** ******* ********** ********** ***** **** *** **** ****** ***** ******* ** *************** **** ***** ** ****** ** ***** *** **** ***** ********** ******* **** ********* ************************** * ************************* ***** **** ** **************** *************** *** ***************** *************** ** ***** *** ************ ** *** ***** **** ****** *********** ** *** ********* ** **** *** ************ ***** ****** *** ********** ******* **** ********* ************************** * *************** ******** ***************************** ** ****** * ******* ** ******** ** ************* *** ******** **** ******** *** **** ** **** *** ***** **** ******* ** * ********** ******** ******* ********** ******* **** ********* ************************** * *************** ************** ****************** ***** ******* ***** *** ******* *** ********* **** *** ********* ******** *** ** *** ************ ** *** ***** ***************** **************** ** *** *** ***** ***** ******* ********** ******* **** ********* ************************** * ****************** ***** ************** *************************** ********* ****** ************** ********* *********** ********* ************* **** ****** ******* *** *********** ******** ** ** ************* **** **** **** ** ******** * **** ******** *** ******** ** **** ** *** ** ******* *** **** ** ** ***** ****** **** ** ********** ** *** **************** ******** ********** **** ***** *************** * *************** ***************** **************************** ****** *** ********** ************** *********************** **** ************** *************** ****** ****** ******** ***** ********** ******* ************* * ****************** ***************** **** * **************** ************************* *********** ***** ******* ********** **** ******* ********** ******* **** ********* ************************** * *********************** ***** ***** *** ************* ********** *********** ******** ********************** * ****************** ****************** ************************** ******** **** **** ******* ***** *** ** ********* **** ********** *** ****** ********** ******* **** ********* ************************** * ******* ***** *** *********** *** ********** ** *** ******* ***** ********** *********** ******** ********************** * ************ ***** ************************ ******************* *** ****************** * ******************** *** ******** ********** ** ***************** *************** *** **************** * ****************** *** ***** ** **** **** ******* * ****************** ********** **** **** ****************** *** ***** **** ***************** * ************************** ******* ***** ** **** ***** ************ *** *** ************* ****** ******** * ******* ******* ************** *************** *************** ******* ** ********** *** ***** * ***** ***** * ************************ *** ***** ******** **** ***** **** ******************* ********** ******* **** ********* ************************** * ****** ****** ****************** **** ********** * **** ****** *** ***** ** ************* **************** *** ************* ************** ** **** ** *** ******* *** ***** ** ***** ******** * ******************* *** ****** **** ** ***************** **************** ** ******************* *** *** ********* ** ***************** ******************** ** ******************** * ******************* ***************** ******************** *** ****** ******* *** ***** *** ******* ** ******* *** * *************************** **** *** **** ** *** ***** **** *** **** ***** ********* ****************** ******* ** ***** *** ***** ******** ***** ***** ***** ****** ******* **** ******* **** ** ****** *** ****** ***** ******* ** ** *** ***** ** ****** **** ** *** ****** ***** ***** * *************** *** *** ******* ** *** ************ ***** ** *** ************* ************ ******* ******* **** ********* *** **** ** *** ************* ************************** ******* ** ************* **************** *** ************* ************** ***** **** ** ***** ******** ************ ** ** *** ** ******* ***** **** ********* * **** **** **** ******* ** * ***** **** **** ****** ******** ***** ***** ***** *** ****** ******* *** *** ** ************* ************** ***** *** ******* * **** ***** ********** **** ***** *************** * ************** ************** **************** ****** *** ***** **** ***** ****** * ***** *********** **** ****** ************************ ********** **** ***** *************** * **** *********** **** ** ******* ******* **** ******* ***** * ************** ************** *************************** **** **************** *** *** * **************** *** **** *** *********** ****** ****** ************** ***** **** ************* ********** **** ***** *************** * ********************** ************* *** ******* ******* * ****************** ************************************************************** *** **** * *** ***** **** *** **** ** ************** * ************** ************** **************** *** ** **** ** ****** ***** ********** ******* **** ********* ************************** * *************** ************** ****************************** ****** ** ****** *** ******** ******* ********** **** ****** *** ***** ********** ******* **** ********* ************************** * ******************* ****************** ************ ********* *** *** *** ***** ** ******* ** ******* * ****** ********** ******* **** ********* ************************** * *************** ************** ******************** ***** ** *** ****** ****** **** ** *** ** ********* **** *** ******* ** ********** ********** ******* **** ********* ************************** * *************** ************** ******** ***** ** *** ****** ****** **** ** *** ** ********* **** *** ******* ** ********** ********** ******* **** ********* ************************** * ****************** ***** ******* ***** ********** ******* **** ********* ************************** * *************** ***** ************** ************ ** ***** *** ******* ** ******* ***** *** ********** **** ***** ****** * ********************* ********* * ******* ** ******** ****** ***** *** ******* * **** ***** ********** ******* **** ********* ************************** * *************** ***** ******* *** ***** ******* ************** ************ ************** ************************** ******** ************** ************** *** ************** ************* ** ****** ******* ** ****** **** *** **** **** ******* **** *** ***** ** ***** *** *********** **** ** **** **** *** ******* ** ************ ******* * ************** ***** ***** *********** *** ********** *** ***** *********** ****** **** ***** ******** *** ******* *********** ****** ** ****** ****** ** ***** * ************************ *** ***** ********** * ********************************** *** ********** ** *** ***** ********* **** * ********** ******** *** **** ***** ** ********* ********** ******* **** ********* ************************** * *************** ************** ************** **** ******* ** ***** ****** ** ***** ***** ** ************ ************** ************** **** ********* ************* ** **** ***** ********* ********* **** **** ******* **** *** **** ***** *** ****** ******** *** ********* **** ****** * ******************* **** ************* ** ***** ***************** ** ********** *** *********** *** ******* ** ********** *** ********* **** **** ******* ** ***** ************** ** ********* ********** **** ***** *************** * ****************** ************************************************* *** ************ ** * **** ********* * ** ********************************************************** ***** * ******************* ****** ********* *** ***** ********** *********** ******** ********************** * *************** ****** ********* ********* ****** **** ********************************** ** ************************ **** ********** ********* **** ******** **** ************** ******** ****** ***** **** ***** *** ** *** **** ********* *** ** **** ***** * *********************** * ********************** * ********************************* * *************************** ******* ******* ** ******************** *** ** ********** ******** ********* ** ******************* ********** ******* **** ********* ************************** * *************** ******* ********** ***** ** ********* ******* ** *** ********* *** **** *** ************ ******* **** *** ********* *** ******* ** **** ******** **** ********* * ********** ***** ***** **** *** ****** ****** ********** **** ***** *************** * ************** *********** ******* ************** ****** **** ****** ** ************ ********** **** ***** *************** * ************** ********************* *** ******* **** **** ** ********** * ******************************* ******************************** ************************* *** ********* ****** ********** **** ***** *************** * ******** ***** ********* * ************************ ******* ********** **** ***** *************** * *********************** ***** ******************** *** ********** ******* ** ************** ************** *********************** ****************** ************** **************** ***************** * *********************** ************************ **** ***** ********* **** **** ***** * ** ** ** ********* **** ** ******** ** ******* **** *************************** * ****************** ************** **** ****** ** ****** *** ** ************* * ******************************** ************** **** ********* ** ********* ** ***** *** *** *** * ********************** ********************* ****** ******* ** *********** ********** ******** * ******************************* *********** ************************** ****** ** ****** **** ********* ** ***** * *************************** ********************************** ************************** **** ***** ***** ** ******* ***** **** ** *** ***** ****** ****** ***** ********** ********** ******* **** ********* ************************** * ******* *********** ******* ********* ** **** *** ********* **** **** *** **** **** *** ********* **** **** **** *** *********** ****** ****** **** **** ************* ** *** ******** ********* *** ***************** *** *** ***** ********* ** **** *** ******* **** ****** ** ******* * ******************* ***** **** ******* ** ****** ****** ******* *** ******* ** **** ** *** ********** ** *********** ***** ****** ** **** ******** * ******************* ***** *************** ** *** ****** ***** ******** ******* *** *** ************** *** *** ******************** **** *** ******* * *************************** ***** ******* ******** *********** ******* ********* ** ***** *** **** ** ****** * ***** **** * **** ** ******* ********* ** *** ********** * *************** ***** ************* ******** ** **** *** ******* ***** *** **** ** ***** ********** **** ****** *** ********* ** ** *********** ****** *** ********* ******* *** *** **** ******* ** ** ***** *** ******** *********** ***** ******** ******* ********* * *************** ***** ******************************* *** ****************************** ***** *** ****** **** ***************** *** *************** ************* ***** ******* ********** *** ********* **** *** ****** ***** **** *** **** ** ********* *** ******* *** ******** ******* ** **** *** **** *** ******** ** ** ****** ***** *** ***** **** **** ********* ************* ** *************** *** *************** ** **** *** ****** ***** ***** ***** ******* ** ***** ******* ** ** ******** ********************** *** ******************** * ************** ******** ************ *** ***** ** ** *** ********** *** *** ******** ******** ******** **** ******** ******** * ****************************** **** **** ***** *********** ** *** **** ** *** ***** ********** ******* **** ********* ************************** * ****** * ***** ******* ******** * **************** * ***** ******* ******** ********** *********** ******** ********************** * ******* ***** **** **** *** ****** ** ****** ****** * ************ ***** ********************** * *********************** *** ***** * ************************* ***** ******* *** ************ ******** ******** * ******************************************* ******* *** ******* *** ************* * ******************************** ***** ******* *** ******** ****** * ******** ** ******** * ******* *** ****** ** ****** ****** * ********************************* ***** **** ****** * **** **** **** ** ************** * ***************************************** * ******************************************* * *********************************************** ******* *** ****** ****** ******* * ******************* ***** ****** ***** ******** * *************** ** *** **** *** **** ********* ** *** ************** ** *** ****** *********** ********** ******* **** ********* ************************** * ************************* ************* **** ******** ** *** ********* ** *** * ** ******* ***** *** ***** ********* ** ****** ******* ********** *********** ******** ********************** * ********************** ******* **** ***** ** ******************** **** **** ***** * ******************************************* ******* *********** ******* ********** *********** ******** ********************** * ******* *** ******** **** ******* **** ***** **** ******* ******** *** ********** *** ****** **** ******** **** **** ** ******* ** ********** * *************** ***** *** ************ ** ******** * **************** ********* ****** *********** ***** * ***************** ***** ****************** ***** ** **** **** ******* ***** **** ******* ******* ** ********** * ************************ *** ** **** **** *** ********* ********** * ******************* ****************** ****************** ********* ******** ***** * ************************* * ***************** ******* *********** ******** * ******************* ********* ****** ***** * ******************* ****** ******* ** ******** ****** * ******************************** ******* ****** **** ************ * ******************************** * ************************************ * **************************** * **************************** * ********************** ******* **** ******* ** ******* ************** ***** *** ******* ****** * ****************************************** * ****************************** * ******************************* * ************************* * ************** * ****** ***** ******* *** ************** * ****************************************** ******* *********** *** ****** ************ * ********************* ******* ********** ************** ** **** ** ******* ********* ********** ******* **** ********* * ****************** ********* ***** *********** ******* *** ** ****** ********** **** ** *** **** ******* ** *** ******** ********* ********** **** ***** *************** * ****************** ************************ ***** ***** ** ***** ******** ************************ ****** *********************** ***** * ******************* ************************************************* **** ******** ** *** ********* ** *** * ** ********** ******* **** ********* ************************** * *************** ************** ************************ ***** *********** ** **** ** * ***** ****** ******** ** *** ****** ****** ***** ** ******* ******************* **** *** ******* * ******* **** ****** *** ******** ********** ******* **** ********* ************************** * **************************** *** ****** **** *** *** ***** **** *** ******* **** **** *** ***** ***** ** *** ****** ***** ** *** *************** ***** **** *** ******* ** ********* ** ****** ** ***** ********** *********** ******** ********************** * ********************** ******* ** ***** * **** *** ******** *** **** * **************** ******* ******* * ***************** ****** ******* ** *********** ********* ****** * ******************** *********** ********* **** ******* **** ******** * **************************** ***** ******* ******* **** ****** ********** * ***************** **************** ****************** ******* ****** **** **** ** ** **** ***** *** *********** **** ******************* ********** *********** ******** ********************** * ***** ******* ** ******* ******** * ***** ******* *** *********** *** ********** * *********** ********* *** ******** ** ******* * ******** ****** **** *** *** ****** ************ * ******** **** **************** *** *********** * ****** ******* ** ********** *** ******* ****** * **** ***** ****** ********** ******* **** ********* ************************** * ************************************************** ****** * ****************************** ****** ****** ***** ******* ** *** ***** *********** * ** ********* ******* ** *** *** * ******* ** ***** ** ****** ** ****** *** **** ****** ****** **** ****** * ******* **** **** ***** ** ******* **** ***** * ******************* ******* **** ********* ***** ***** *** ***** ***** ** ******* *** ******** ** *********** *************** ** * ****** * *************** ******** ** *** ****** ************** ***** **** ** **** ** ***** ***** **** *** **** ***** ** *** * ********* ******* ****** ** *** ****** * ****************** ***** ****** ** ***** ******** ** * ***** *** ******** **** *** ******* ***** * ************************ ******** ** *** ** ****** ** **** ****** ***** ********* ** ** ******* * ******************* ******* ****** ***** ********* **** ************************ ** ******* * ************** ******* **** **** ***** *** ******* **** ***** ********** ******* **** ********* ************************** * ********************** ***** **** ******* ** ******* ****** ******** * ********** ******************* ********* ************* * ********** ********************** ********* ************* *** **** **** **** *********** ** *** ************* ** ******* * ******* **** ******* ** *** ******* ***** ********** ******* **** ********* ************************** * ********************** ******* ***** ******* ** **** ** ***** *** ******* **** ***** * ********************** ******* ********* ************* ********* ***** **** *** ******** *** ********* ** *** *** ** *** ***** **** * ****** *** ******* ****** *********** *********** ********** ******* **** ********* ************************** * ********************** ***** ******* ** ******* ******** ** ******** ******** *** ******** * *************** **** ******* *** ****** ***** ******* ** ******* ********* * ******* ***** **** **** *** *********** ********** ******* **** ********* ************************** * ********************** ***** *** ******** * ********* ** ************************* ********* ******* * ********* ** ************************* ********* ******* * ****** ****************** **************** * ****** ************** ********* ************ * ****** ********* ********* ************ ******** ********* ************ * ****** ********* ********* ** ********** ******** ********* ************ ******* *** ****** ** *** ********** **** ** ***** **** *** ****** ******** **** ** **** ********* ***** *** **** ***** **** ** ******* ****** **** *** **************** ** ************ *** ****** ***** **** ** ****** **** **** ** ****** *** ******* ***** ** *** ******* ***** * *************** ******** ** ******* *** ***** ******** ** *** ****** ***** ***** *** ***** **** *** *** **** ******* * ****************** ***** *** ******* ** *** *** *************** **** ******* ***** ** **** *** **** *** **** *** *************** **** ****** ********** ******* **** ********* ************************** * ******* ********* **** ** ****** ***** ***** ***** ** ******* ******** ** ***** ******* ****** ** ***** ***** * ******************* ******* ** ************* *** ****** ******** ********** ******* **** ********* ************************** * ******* *************************** ***** ****** ** ** **** ** *** **** **** ******* *************** ******* **** ***** *********** * ********************** ***** ******* ** ******* ****** *** ********* ******* *** ******** * *************** ******** **** ****** ******* ** *** *** ******* ***** ** *** ***** ******* ** **** *** ******** ** *** ***** ***** * ********************* ***** ******* ** *** ******* *** ******* ** *** **** ****** **** *** ******* ***** **** ******* *** ******* **** ** **** *** ************* ***** ****** ******* ***** **** ******** ********** ******* **** ********* ************************** * ******************* ***** ***** *** *** *** ****** ** *** ******* *** ******* ***** ** ********** * *************** ***** ***** *** *** **** ** *** **** ****** ******** * ****************** ******** *********************************** ** **** ******** *** *** *************** * ****************** **** ********************** ** ****** ** ** *** ** **** ** *** **** ******* ********** ******* **** ********* ************************** * ******* ***** *** **** **** *** ****** ** *** ************* ****** ********************* * *************** ***** *** ****** ***** **** ****** ** *** *** ** ****** *** ****** ******* ** *** ************ * ***************** ***** ***************** ******************** ** *** ****** ** ****** ** ** ****** ********* ** **** **** ** ********* ***** ********* ** **** **** *** **** *** ******* ****** *** *********** *** **** ******* ***** ********** ******* **** ********* ************************** * ***************** *********** ***** ***** ** **** ******* ***** ** *** ****** ** ****** ****** ** ******** ******** ***** ** ***** ****** ** *** ******* ***** * ****************** ***** ******* ** ******** ******* ******* ** ******* *** ***** ******* * ******************************* ***** * ******************************* ***** * ************ ******** ** **** ****** ** *** ********* ********** ********** ******* **** ********* ************************** * ******************** * ****** **** ** * ************* ******** ******* ******* *** ******* *** *** ***** ***** ** ** **** ********* *** *** **** *** ******* *** ******* ** * ****** *** *** ***** **** ***** * *************** ******** ** *** *** ****** * ************************ ******* **** **** ***** *** ******* *** *********** ** **** **** ** ***** ********** ******* **** ********* ************************** * ****************** ***** ***** ************** ** **************** ***************************** ******* **** ******** * *** ***** *** ******* *** *** *********** *** ******** ** ********* *** ** *** ******* ** **** ******* ** *** ***** ** ******** ********** ********** ******* **** ********* ************************** * **************************** *********** **************** ******* ***** ********* ****** ******* **** *********** ***** *** ******* **** *** ** ***** ** ********* *** * **** ********** *********** ******** ********************** * *********************** *** ****** *** ****************** * ****** * ****************** * ********************* * ****************** ******** *** ****** **************** ** ********** * ************** **** *** ******** **** **** **** *** ********** ****** *** **** ********* **** *** ******* ** *** ***** *** ******** ** *** ******* *** **** ***** * ****************** * ************************************ * *************************************** *** **** ********* ** *** ****** **** * **** ***** * ************** * **************************** * **************************** * ********************** * ******************************** * *************************** ********** ******** ****** **** ******* ********** * ************************ *** ******** **** ** *********** **** ***** ************* ****** **** ****** ******** ********** *********** ***************** * ********************* ********************* ************ ****** *** *** ***** ********** *********** ******** ********************** * ****************** **** ******** ******* *** ******* ****** *** ************ **** ******** ** ****** **** *** ********* *** ******* *********** *** *** ****** * *********** * ****************** * ************************************ * *************************************** ***** ********************* ** ***** * *********************** ************* ************ * ************** ************** ******* **************** * ********************* *********************************** * ******************************** * *************************** * **************************************** * **************************************** * ********************************* ***************** ******** ************* **** ******* ********** ***************** ******** * ***** ********** ****** ******* *** ******** * ************************* * **************************************** * ******************************************* * ***************************************** * ******************************************* * ********************************************** ******** ******** ********** *********** ******** ********************** * ************** ************** **************************** ******* *** ************* ******** * ************** ************** ************************* **** ********* * ************ ****** *** ************ **** * ****************** ****************** ************ ***** ******************* **** ******* * ****************** ******************** **** *** **** * ****** ******** ***** ** * ***** *** *** ****** *** ************* ********* * ********************* *** ****** * *********** * *** ********************* * ************* ********* *** ******************* * ********************** *** ******* ******** ** **** ********** * ******************************** * ******************************* * ***************************************************** * ************************************************** * ********************************************************* * ****************************************************** ******* *** ************* ********* * ************************************** * ************************************** ******* ****** ** **************** ********** *********** ******** ********************** * ************** ************** ******** **** ******** ******* ** *********** *** ************* ******* **** ********* ** ************ * ************** ************** ******* **************** *** ******* *** **************** * ******************************** * *************************** * ************************************** * ************************************** * ********************************* *************** ******** *********** **** ******* ********** *************** ******** * ***** ********** ****** ******* *** ******** ********** ******* **** ********* ************************** * *************** ***** ******* ** ***** *********** ********** ******* **** ********* ************************** * *************** **** ********* ************* ** ****** *** *********** **** ** *********** ** ** ************** * ******************* ***** ****** ** ****** *** ********** *** * ***** *********** * ******************* ***** *********** *** *** ****** ********* ****** ********** ******* *************** ************* * ************** ***** ******* ****** ** ******* *** ****** ** * ******** ******* **** ******* * ************ ***** ********** ******* *************** ************* * ************** ******* *** ***** ** ******** * ************ ***** * ************************************* ***** ******* ********** ***** ** *** ******* ******* * ************************* ***** * ******************************** ***** * ********************************** ***** * **************************** ***** * **************************** ***** ******* ** **** ************** ********** *** ********** **** *** ******* *** ***** ** * ********** ** ***** ******* ****** ** *** ********** ******* ****** ****** ** ***** ***** *** ******* ** ****** ******** ******* ****** ********** *********** ******** ********************** * ****** ***************** ****************** **** ******* ********** *********** ******** ********************** * ****** ***************** ****************** ******* ** ******* **** ********* *** ******** ******* ********** *********** ******** ********************** * **************** **************** ***************** *** ******* **** *** ** **** **** ************** ** ****** ******* ** * ************* * **************** **************** ****************** **************** ******************** *** ******** ****** **** *** *** ************ ********** ******* ** **** *** ********** * *************** ************** ************************************ ****** ************ ** *************** ********** *********** ******** ********************** * ******************************** * *************************** * ************************************ * ************************************ * ****** * ************** ******** ** ********* *** *********** ** ** **** ** *** *** ******** *** ******* **** ****** ** * ***** ******** *** ********* *** *********** ***** ******* *** ******* ** ********************* *** ********************* *** ******* ** ***************************** * ***************************** * ******************************** * ******************************** * ************************ * ************** * ****** ******** ** ******** ** ** **** ** ****** *** ********* *** ** ***** ** **** ** ********************* *** ****** ** *** ****** ********** ** *** ********** **** ***** ** ******* ** ******** *** ******** ** ******* ** ************* * ************** ************************** *********** * ********** ******* ********* ** ************ *** *** ****** *********** ** *** **** ***** ******* *** *** ********** * ******************* *** ****************** ******** ********* ***** **** ****** ******* ************************ ******** ** *** *** **** ****** *** ************ ** *** *********** *********** ********* ****** *** ************** * ********************************* * ********************************************** * ************************************************ *********** *** ********* ********** ******* **** *** ****** ****** **** ****** ******* ************************* ********** **** ***** *************** * ******** ***** * ************************ ******* ********** **** ***** *************** * ****************** ************************ *** ******* *** ***** ********* ** ***** * *********************** ****** ***** ************************ *** ************** ******** * ************************ ****** ********** **** ***** *************** * ************** ************** ******** *********** ************ * ****************** ****************** ************** *** *** *********** *** ********* **** **** **** *** ******* ***** ** **** ****** ******** **** ********** ********** ******* **** ********* ************************** * ******* ********* ****** ***** ** **** *** ****** ** ************ * *************** ********* ****** *** ********** ****** ***** ** ***** *** ******** ** * ***** **** ** ******* ** ***** ** *** ******* ***** * ********************** ***************** ****** ****** ********** ******* ******** ******************** * ********************** **** *** ****** ********** ***** * **************************** **** *** ****** ********** ***** * *************************** **** *** ****** ********** ***** * ******************* **** *** **** ***** *** ********** * ************ **** *** **** ***** *** ********** * ************** *************** *** ***************** ********* * ********************** **** *** **** ***** *** ********** * ************************ *** ********** ***** ****** **** *** ********** * ******* *** **** *** **** **** *** ********** * *********************************************** *** **** ********* ********* * *********************************************** *** ****** ********* ********* ********** ******* ******** ***************************** * ************ **** ******* *** *** ***** ***** * ********************** *********************** ******** ******** ** ************ **** ** ******* *********** * ****************** ************ * **** ********* **** ***** * ***************************************** ********* ****** * ********************************************** * *** ********* ********* * ************************************************* *** *********** ********* * ********************** *** **** ******* * **************************** *** **** ******* * ****************************************** *** ********** ********* ************ * ******************************************* *** *********** ********* * ****************************************** *** ********** ********* * ************************** *** ********* **** * *********************** *** ********* **** * *************************** *** ********* **** * ******************************* *** ********* **** * ******************************** *** ********* **** * *************************** *** ********* **** * ******************************* *** ********* **** * ******************************** *** ********* **** * *************************** *** ********* **** * **************************** *** ********* **** * ***************************** *** ********* **** * ************************ *** ********* **** * ***************************** *** ********* **** * *************************** *** ********* **** ********** ******* *************** ************* * *************** ******* ***** ********* ********* ** ******* ********* *** ********** ******** ***** **** *** ***** *** ***** *** ******* *********** ***** ** ********* ***** ****** ********** **** ***** *************** * ************** ************** ***************** **** **** **** ******* **** * ************************* *** ************* ** *** ** ******* ** ******************* *** ************************ ****** *** ***************** ************** * ******************************** ******** *** *** ******* *********** **** **** **** *** *************** ******** *** **** * ******* ******* ********** ******* *************** ************* * ******************* ***** ******* ******* ******** **** ******** ******* *** ****** ***** ** ************ ** ** ***** ******** *** * *** *********** ** *********** ********** *********** ******** ********************** * ************** ************** ******** *** *** ************* ********** ** **** ** ******** **** ************ *********** ********** ******* *************** ************* * ******************* **** ****** ***** ** ******* **** * ******************* **** **** ** ****** ** *** ** ******* ********** *********** ******** ********************** * ************************* ***************** ********************* ****** ********* ** *** ********* ******* *** *** * *** ******* ***** ********** ******* *************** ************* * ******************* ***** ****** ******* *** ****** ***** ** ** ***** *********** *** ** ******* ** ************ *** ********** ********** **** * *********** ******* ********** * ********************** *** *** * ******* ********** ****** ***** ******** ** ******* ******** ********** ******* ******** ***************************** * *********************** *********** *************** ****** ** ** *** * ******************************************* *** ****** *** *** ****** * ******************************************* *** ****** *** *** ****** * ************************* **** *** *** ****** ********* * ******************************************** *** ****** *** *** ****** * *********************************************** **** ****** *** ******* ** ****** ******* * ******************************************** **** ****** ** ****** ******* * ***************************************** **** ***** *** ******* * ****************************************** ** ****** ******** **** ****** * ************************************************* ** ****** ******* * ****************************************** ** ****** ******* * ***************************************** ** ****** ******** ******* ***** * ******************************** **** *** *********** ********** * **************************** *** ********* **** * ***************************** *** ********* **** * ************************** *** ********* **** * ***************************** *** ********* **** * *************************** *** ********* **** * ************************* *** ********* **** * ************************* *** ********* **** * ************************** *** ********* **** * ************************** *** ********* **** * ************************** *** ********* **** * ************************** *** ********* **** * ********************* *** ********* **** * ********************** *** ********* **** * ************************* *** ********* **** * ********************** *** ********* **** ********** *********** ******** ********************** * ******************* ******* ***************** ************* ** **** ******** ** *** ****** **** *** ******* **** **** ***** *** ****** **** *** ** ******** ***** ** ************************** ********** ******* ******** ***************************** * ****************************************** *** **** ********** * ********************************************* ********* * ************************************************* *** ***** ****** ********* * **************************************************** ******** * ****************************************** *** **** ********* * ********************************************* ******** * ******************************** *** ***** *** *** *** ********** * ******************************* *** ********** ** ********* ********** **** ***** *************** * ********************* ********************* ********************** ***** *** ** ****** ******* ***** ******** ***** ********** **** ***** *************** * *********************** *** *********** ********** **** ***** *************** * ************** ***************** **** *** * ***** ******* ************** ** ****** ******* **** **** ********* ** *********************** ********** **** ***** *************** * ****************** **************** ****** ****** ****** ** **** **** ***** ************* * ****************** ***************************************************** ***** ******* *** ********* ******* **** **** *** *** ** **** ********** **** ***** *************** * *** ******* *** ****** ***** * ****************** ************************ *** ******* *** ************** ************************ ********* *********************** ********* * ************** ***************** ****** ************ ** *************** ***************** ******** *** ********* * ***************** *** ****** * ************************** *** ********** ***** ********** **** ***** *************** * ******************************** *** ******** *** ***** ****** ****** * ******************************************** ****** *** *** ***** ****** ** *** ******** ********** **** ***** *************** * *********************** ************************ ********** ****** ** ********* ******** ****** * ****************** **************************** ********* ***** ****** ******* * ******************************** *** ****** ************* ********* *** *********** *********** ********** **** ***** *************** * ****************** ***************************************************** ***** ****** ** ***** ** ******* *** ****** * ******************************** ********* ****** **** ***** *** ****** ********** ********** **** ***** *************** * ***** ** ****** ******** ******* ******** ****** ****** ******** ******* *** ****** **** *** ******** * ****************** *********************** ******** *** **** **** *** ********* *** ******* *** ******** *** ********* ****** ****** * ******************* *** ***** *** ******* ****** ****** * ****************** ************************** ***** ** ******************* ***************************************************** **** ********* **** **** ****** ****** *** **** *** ****** ****** ** ********* ************** **** ****** ********* ** ************ ** ******* ******************* ****** ******** ** * *** ****** ******** **** * ******************************** *** ****** ********** ********** *********** ******** ********************** ***** *** ******* ** ****** *** **** ** *** ******** ******* * ******* *** ******** * ****** *************** *** ***** ** full control of the font's changes) added a menu item for the font panel added a shortcut for the palettes panel (@"p") * GormWindowEditor.m : [-acceptsFirstResponder] new method, returns YES [-initWithObject] set self as initialFirstResponder of the window [-changeFont:] new method, change the font of the selected controls [-selectObjects:] update the font in the font panel * Palettes/2Controls/GormSliderInspector.gorm: font updates 2001-08-20 Pierre-Yves Rivaille * Palettes/2Controls/main.m: Add stepper control to the controls' palette * Add stepper inspector. * Palettes/2Controls/inspectors.m: added GormSliderAttributsInspector class * Palettes/2Controls/GormSliderInspector.gorm: New file. * Palettes/2Controls/GNUmakefile: Update 2001-08-18 Adam Fedor * GormWindowEditor.m (-_editTextView:withEvent:): Size the NSForm to fit when titles are edited. * Add slider inspector. * Palettes/2Controls/inspectors.m: New file. * Palettes/2Controls/GormSliderInspector.gorm: Likewise. * Palettes/2Controls/GNUmakefile: Update 2001-07-18 Adam Fedor * Version 0.0.3. 2001-07-10 Richard Frith-Macdonald GormDocument.m: ([-detachObject:]) retain object name on entry and release on exit, or if the object is not in the name table the detach process could cause the name to be released before we try to use it to remove the object from the table. 2001-07-09 Richard Frith-Macdonald Gorm.m: Tidied code a little to conform to coding standards and avoid gcc-3.0 compiler warning. Incorporated Pierres fixes to his last patch. 2001-07-08 Mirko Viviani * GormWindowEditor.m ([GormWindowEditor -_editTextView:withEvent:]): return if mouse not on cell. 2001-07-07 Richard Frith-Macdonald Gomr.m: Fixed typo in info panel and updated a little. 2001-07-04 Pierre-Yves Rivaille Added the ability to create the .m and .h files of a class created within Gorm (it's a basic implementation but it works) Added an "application: openFile:" method in the class Gorm and a GormInfo.plist file, it is now possible to open a Gorm document from ProjectCenter (and I suppose GWorkspace but I have not checked yet) a keyEquivalent for the inspector (i was really missing this ...) no more [menu display] in the initialization of Gorm, I found out that it prevented a proper docking within WindowMaker's dock, and it does not seem to have any side effect. 2001-06-24 Mirko Viviani * GormWindowEditor.m ([GormWindowEditor -_validateFrame:forViewPtr: withEvent:update:update]): fixed checks for non-matrix control. Allow the matrix to reduce rows and columns. 2001-06-20 Adam Fedor * GormDocument.m (-beginArchiving): Add filesOwner class name to archive. (-loadDocument:): Retreive and set filesOwner class. * GormClassManager.m (-removeOutlet:forObject:): Remove from allOutlets even if not in extraOutlets. (-ok:): Implement renaming outlets. 2001-06-18 Adam Fedor * GormWindowEditor.m (-_validateFrame:forViewPtr:withEvent:update:update): Allow the frame to increase even if it's already too small. * Palettes/1Windows/main.m: Implement GormWindowSizeInspector. * Palettes/1Windows/GormWindowSizeInspector.gorm: New file. * Palettes/1Windows/GormWindowSizeInspector.class: Likewise. 2001-06-15 Adam Fedor * GormWindowEditor.m (-_editTextView:withEvent:): New method to edit text in place (handles only NSForms now). (-mouseDown:): Double-click on NSForm edits NSFormCell. 2001-06-06 Adam Fedor * Changes to allow an NSBox to be 'edited' and add subviews, move them around inside the box, etc. * GormPalettesManager.m (-mouseDown): Make sure the drag view is the proper one, not a subview of the indented item. * GormViewKnobs.m (GormDrawOpenKnobsForRect): New function. * GormWindowEditor: Add edit_view ivar to show which view accepts DnD, selections, etc. Changes to allow double-click to 'edit' an NSBox. 2001-05-09 Adam Fedor * GormWindowEditor.m (-_validateFrame:forViewPtr:withEvent:update:): New method - validate and update view during resize. 2001-05-08 Richard Frith-Macdonald Applied patch by Raphael Sebbe to add support for custom objects. Went through the code and tried to make it conform to GNUstep coding standards. * GNUmakefile: Custom class modifications * Gorm.h: ditto * Gorm.m: ditto * GormClassManager.h: ditto * GormClassManager.m: ditto * GormDocument.h: ditto * GormDocument.m: ditto * GormInspectorsManager.m: ditto * GormObjectEditor.m: ditto * GormPrivate.h: ditto * GormWindowEditor.m: ditto 2001-04-24 Adam Fedor * Version: 0.0.2 snapshot * GNUmakefile: Add rpm package info * Gorm.spec.in: New file. * Documentation/{readme,news,install}.texi: Update * README, INSTALL, NEWS: Regenerate 2001-02-07 Richard Frith-Macdonald * GormInspectorsManager.m: Resize a few buttons to fit text neatly. 2001-02-06 Richard Frith-Macdonald * Palettes/2Control/main.m: Added patch to tidy up and add more objects to the controls palette ... patch by Jason H Clouse Removed bogus code that selected a window when it was made key. 2001-01-27 Richard Frith-Macdonald * GormPalettesManager.m: Ensure that palette manager window can never become key or main. Accept first mouse events so drag start works. 2000-11-06 Adam Fedor * Documenation: Remove use of tmpl texi files Fri Feb 25 16:31:00 2000 Richard Frith-Macdonald * Gorm.m: Fix a few window deallocation problems. * GormDocument.m: Fix error in renaming objects. 2000-02-21 Adam Fedor * GNUmakefile: Don't make Documentation by default for those who don't have TeX setup. Sun Feb 14 06:56:00 2000 Richard Frith-Macdonald * Palettes/2Control/main.m: Add popup and pulldown menu controls though there is no way to edit them yet. Sun Feb 6 8:44:00 2000 Richard Frith-Macdonald Removed InfoPanel.m and updated Gorm to use standard panel now that NSApplication supports it. Fri Feb 4 11:10:59 2000 Richard Frith-Macdonald * Palettes/0Menu/GormMenuInspectors.m: Added code for setting key-equivalent in menu item inspector. Thu Feb 3 16:16:59 2000 Richard Frith-Macdonald * Gorm.m: tidied start/end testing. * GormDocument.m: ditto Sat Jan 15 04:35:59 2000 Nicola Pero * GormObjectEditor.m ([GormObjectEditor -activate]), ([GormObjectEditor -orderFront]): Trivial fix to make it compile. Fri Jan 14 16:22:00 2000 Richard Frith-Macdonald * GormDocument.m: Fix to deactivate editors while copying to pb and add support for a few more document setup types. * Gorm.m: Add Inspector, Panel and Empty documents. Fri Jan 14 9:34:00 2000 Richard Frith-Macdonald * Palettes/OMenus/GormMenuEditor.m: ([mouseDown:]) support for dragging menu items to rearrange their order. Thu Jan 13 20:34:00 2000 Richard Frith-Macdonald Preliminary menu support (very limited). Fri Jan 7 11:03:00 2000 Richard Frith-Macdonald * GNUmakefile: Set Gorm_PRINCIPAL_CLASS * Gorm.m: Do startup stuff in [-finishLaunching] and use the NSApplicationMain() function to run the app (as well-behaved apps do). Wed Jan 5 17:00:00 2000 Richard Frith-Macdonald * Palettes/0Menu/main.m: First cut at code for providing menus items on the palette. * GormWindowEditor.m: accept first mouse so we act immediately that the mouse is clicked anywhere in the window. * Palettes/1Window/main.m: Tidy attributes editor and add support for setting window title. Tue Jan 4 17:42:00 2000 Richard Frith-Macdonald Added 'miniaturize', 'close', and 'revert to saved' menu items and implemented their actions. Tue Jan 4 12:13:00 2000 Richard Frith-Macdonald Various tidyups Somewhat improved documentation Added registration ddefaults stuff Mon Jan 3 10:50:00 2000 Richard Frith-Macdonald Rewrote testing mechanism so that we test by creating an in-memory nib, and load that nib. This way, the testing process has no effect on the original objects in the document we are working on. Also changed the editor api so that we have a deactivate method. Editors are deactivated on archiving and reactivated afterwords - this means that we no longer need to destroy all editors during archiving in order to stop them being included in the archive. Thu Dec 23 16:32:00 1999 Richard Frith-Macdonald Added generic object inspector. Wed Dec 22 12:16:00 1999 Richard Frith-Macdonald Replaced the two NeXT images for sounds and classes. Improved drag and drop. Tue Dec 21 15:30:00 1999 Richard Frith-Macdonald Added size inspector for autoresizing of views. Tue Dec 21 8:10:00 1999 Richard Frith-Macdonald Added inspector for files owner so we can create connections from objects inside the nib to the files owner. Mon Dec 20 14:16:00 1999 Richard Frith-Macdonald Added connections inspector so connecting objects should work. Use information from 'ClassInformation.plist' to specify outlets and actions for a class. Added GormClassManager stuff to manage this information. Sat Dec 18 21:24:00 1999 Richard Frith-Macdonald Add partial support for draagging into object view. Fix move/resize of window subviews to make sure subviews can't be dragged outside visible area. Fri Dec 17 18:44:00 1999 Richard Frith-Macdonald Add some support for connections - handle link dragging within window editor - raise connection inspector on completion. Thu Dec 16 21:35:00 1999 Richard Frith-Macdonald Change directory structure - add palettes directory, move palettes into it, rename them, change automatic loading of palettes to do it in palette name order. Thu Dec 16 15:45:00 1999 Richard Frith-Macdonald * GormWindowEditor.m: Implemented support for moving and resizing subviews within a window. * Gorm.m: Implemented edit menu (mostly) with cut and paste. Thu Dec 16 6:54:00 1999 Richard Frith-Macdonald * GormWindowEditor.m: Implemented selection mechanism including marking subviews within a window by drawing knobs on them. Wed Dec 15 15:27:00 1999 Richard Frith-Macdonald Archive save/restore fixes. Implementation of framework for interactive testing mode. Tue Dec 14 20:13:00 1999 Richard Frith-Macdonald Enough for today. * View/View.m: Added a single button to the 'View' palette. * GormPaletteManager.m: improve DnD image ffset code. * GormWindowEditor.m: accept dropped views in window. Tue Dec 14 19:53:00 1999 Richard Frith-Macdonald Removed GormResourcesManager - merged functionality into GormDocument Loads of other minor changes too - hopefully all simplified a bit. Tue Dec 14 17:33:00 1999 Richard Frith-Macdonald * GormDocument.m: Major changes - nearly all methods implemented to including all the editor related methods. * GormWindowEditor.m: Loads of stuff fleshed out, mostly just leaving drawing code to do. Mon Dec 13 20:04:00 1999 Richard Frith-Macdonald * GormViewKnobs.m: imported from IM Mon Dec 13 14:57:00 1999 Richard Frith-Macdonald * Gorm.h: Added NSView additions * GormWindowEditor.m: new skeleton file. * GormDocument.m: handle class replacement on archiving/unarchiving. Add filesOwner and firstResponder dummy objects. * GormResourcesManager.m: tidy files owner and first responder stuff. * GormObjectEditor.m: Use neater mechanism for determining image to be displayed in matrix. Wed Dec 8 20:54:00 1999 Richard Frith-Macdonald * Gorm.m: ([-init]) make sure that the palettes manager is loaded. Wed Dec 8 16:33:00 1999 Richard Frith-Macdonald * GormObjecteditor.m: ([-refreshCells]) cell highlighting fixed so that empty cells in the matrix can't be highlighted. gorm-1.3.1/GNUmakefile0000644000175000017500000001267714327003122013551 0ustar heronheron# GNUmakefile: main makefile for GNUstep Object Relationship Modeller # # Copyright (C) 1999,2002,2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # Date: 2003 # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ifeq ($(GNUSTEP_MAKEFILES),) GNUSTEP_MAKEFILES := $(shell gnustep-config --variable=GNUSTEP_MAKEFILES 2>/dev/null) ifeq ($(GNUSTEP_MAKEFILES),) $(warning ) $(warning Unable to obtain GNUSTEP_MAKEFILES setting from gnustep-config!) $(warning Perhaps gnustep-make is not properly installed,) $(warning so gnustep-config is not in your PATH.) $(warning ) $(warning Your PATH is currently $(PATH)) $(warning ) endif endif ifeq ($(GNUSTEP_MAKEFILES),) $(error You need to set GNUSTEP_MAKEFILES before compiling!) endif PACKAGE_NAME = gorm export PACKAGE_NAME include $(GNUSTEP_MAKEFILES)/common.make CVS_MODULE_NAME = gorm SVN_MODULE_NAME = gorm SVN_BASE_URL = svn+ssh://svn.gna.org/svn/gnustep/apps include ./Version # # Each palette is a subproject # SUBPROJECTS = \ GormObjCHeaderParser \ GormLib \ GormCore \ GormPrefs \ Palettes \ Plugins # # MAIN APP # APP_NAME = Gorm Gorm_PRINCIPAL_CLASS=Gorm Gorm_APPLICATION_ICON=Gorm.tiff Gorm_RESOURCE_FILES = \ GormInfo.plist \ Resources/ClassInformation.plist \ Resources/VersionProfiles.plist \ Resources/Defaults.plist \ Palettes/0Menus/0Menus.palette \ Palettes/1Windows/1Windows.palette \ Palettes/2Controls/2Controls.palette \ Palettes/3Containers/3Containers.palette \ Palettes/4Data/4Data.palette \ Plugins/Gorm/Gorm.plugin \ Plugins/Nib/Nib.plugin \ Plugins/GModel/GModel.plugin \ Plugins/Xib/Xib.plugin \ Images/GormClass.tiff \ Images/GormFilesOwner.tiff \ Images/GormFirstResponder.tiff \ Images/GormFontManager.tiff \ Images/GormImage.tiff \ Images/GormWindow.tiff \ Images/GormMenu.tiff \ Images/GormObject.tiff \ Images/GormSound.tiff \ Images/GormUnknown.tiff \ Images/GormSourceTag.tiff \ Images/GormTargetTag.tiff \ Images/GormLinkImage.tiff \ Images/GormEHCoil.tiff \ Images/GormEHLine.tiff \ Images/GormEVCoil.tiff \ Images/GormEVLine.tiff \ Images/GormMHCoil.tiff \ Images/GormMHLine.tiff \ Images/GormMVCoil.tiff \ Images/GormMVLine.tiff \ Images/Gorm.tiff \ Images/GormFile.tiff \ Images/GormNib.tiff \ Images/GormPalette.tiff \ Images/leftalign_nib.tiff \ Images/rightalign_nib.tiff \ Images/centeralign_nib.tiff \ Images/justifyalign_nib.tiff \ Images/naturalalign_nib.tiff \ Images/iconAbove_nib.tiff \ Images/iconBelow_nib.tiff \ Images/iconLeft_nib.tiff \ Images/iconOnly_nib.tiff \ Images/iconRight_nib.tiff \ Images/titleOnly_nib.tiff \ Images/line_nib.tiff \ Images/bezel_nib.tiff \ Images/noBorder_nib.tiff \ Images/ridge_nib.tiff \ Images/button_nib.tiff \ Images/shortbutton_nib.tiff \ Images/photoframe_nib.tiff \ Images/date_formatter.tiff \ Images/number_formatter.tiff \ Images/Sunday_seurat.tiff \ Images/iconBottomLeft_nib.tiff \ Images/iconBottomRight_nib.tiff \ Images/iconBottom_nib.tiff \ Images/iconCenterLeft_nib.tiff \ Images/iconCenterRight_nib.tiff \ Images/iconCenter_nib.tiff \ Images/iconTopLeft_nib.tiff \ Images/iconTopRight_nib.tiff \ Images/iconTop_nib.tiff \ Images/GormAction.tiff \ Images/GormOutlet.tiff \ Images/GormActionSelected.tiff \ Images/GormOutletSelected.tiff \ Images/FileIcon_gmodel.tiff \ Images/tabtop_nib.tiff \ Images/tabbot_nib.tiff \ Images/GormView.tiff \ Images/LeftArr.tiff \ Images/RightArr.tiff \ Images/GormTesting.tiff \ Images/outlineView.tiff \ Images/browserView.tiff Gorm_LOCALIZED_RESOURCE_FILES = \ GormClassEditor.gorm \ GormClassInspector.gorm \ GormClassPanel.gorm \ GormConnectionInspector.gorm \ GormCustomClassInspector.gorm \ GormDocument.gorm \ GormDummyInspector.gorm \ GormFontView.gorm \ GormHelpInspector.gorm \ Gorm.gorm \ GormImageInspector.gorm \ GormInconsistenciesPanel.gorm \ GormInspectorPanel.gorm \ GormObjectInspector.gorm \ GormNSSplitViewInspector.gorm \ GormPalettePanel.gorm \ GormPrefColors.gorm \ GormPreferences.gorm \ GormPrefGeneral.gorm \ GormPrefGuideline.gorm \ GormPrefHeaders.gorm \ GormPrefPalettes.gorm \ GormPrefPlugins.gorm \ GormScrollViewAttributesInspector.gorm \ GormSetName.gorm \ GormShelfPref.gorm \ GormSoundInspector.gorm \ GormViewSizeInspector.gorm \ Gorm.rtfd Gorm_LANGUAGES = \ English Gorm_HEADERS = Gorm_OBJC_FILES = \ Gorm.m \ main.m # Gorm_ADDITIONAL_NATIVE_LIBS = m -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/aggregate.make include $(GNUSTEP_MAKEFILES)/application.make -include GNUmakefile.postamble include $(GNUSTEP_MAKEFILES)/Master/nsis.make gorm-1.3.1/Palettes/0000755000175000017500000000000014327003123013244 5ustar heronherongorm-1.3.1/Palettes/2Controls/0000755000175000017500000000000014360746517015153 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormButtonAttributesInspector.m0000644000175000017500000002677014327003123023361 0ustar heronheron/* inspectors - Various inspectors for control elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003, 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormButtonAttributesInspector.h" /* This macro makes sure that the string contains a value, even if @"" */ #define VSTR(str) ({NSString *_str = (NSString *)str; ((NSString *)_str) ? (NSString *)_str : (NSString *)@"";}) const unichar up[]={NSUpArrowFunctionKey}; const unichar dn[]={NSDownArrowFunctionKey}; const unichar lt[]={NSLeftArrowFunctionKey}; const unichar rt[]={NSRightArrowFunctionKey}; NSString *upString = nil; NSString *dnString = nil; NSString *ltString = nil; NSString *rtString = nil; // trivial cell subclass. @interface GormButtonCellAttributesInspector : GormButtonAttributesInspector @end @implementation GormButtonCellAttributesInspector @end @implementation GormButtonAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSButtonInspector" owner: self] == NO) { NSLog(@"Could not load GormButtonInspector"); return nil; } // initialize the strings. upString = RETAIN([NSString stringWithCharacters: up length: 1]); dnString = RETAIN([NSString stringWithCharacters: dn length: 1]); ltString = RETAIN([NSString stringWithCharacters: lt length: 1]); rtString = RETAIN([NSString stringWithCharacters: rt length: 1]); return self; } - (void) dealloc { RELEASE(upString); RELEASE(dnString); RELEASE(ltString); RELEASE(rtString); [super dealloc]; } /* The button type isn't stored in the button, so reverse-engineer it */ - (NSButtonType) buttonTypeForObject: (id)button { NSButtonCell *cell; NSButtonType type; int highlight, stateby; /* We could be passed the button or the cell */ cell = ([button isKindOfClass: [NSButton class]]) ? [button cell] : button; highlight = [cell highlightsBy]; stateby = [cell showsStateBy]; NSDebugLog(@"highlight = %d, stateby = %d", (int)[cell highlightsBy],(int)[cell showsStateBy]); type = NSMomentaryPushInButton; if (highlight == NSChangeBackgroundCellMask) { if (stateby == NSNoCellMask) type = NSMomentaryLightButton; else type = NSOnOffButton; } else if (highlight == (NSPushInCellMask | NSChangeGrayCellMask)) { if (stateby == NSNoCellMask) type = NSMomentaryPushInButton; else type = NSPushOnPushOffButton; } else if (highlight == (NSPushInCellMask | NSContentsCellMask)) { type = NSToggleButton; } else if (highlight == NSContentsCellMask) { if (stateby == NSNoCellMask) type = NSMomentaryChangeButton; else type = NSToggleButton; /* Really switch or radio. What should it be? */ } else { NSDebugLog(@"Ack! no button type"); } return type; } - (void) ok: (id) sender { id obj = object; if ([object respondsToSelector: @selector(prototype)]) { obj = [object prototype]; } if (sender == alignMatrix) { [(NSButton *)obj setAlignment: (NSTextAlignment)[[sender selectedCell] tag]]; } else if (sender == iconMatrix) { [(NSButton *)obj setImagePosition: (NSCellImagePosition)[[sender selectedCell] tag]]; } else if (sender == keyForm) { // if the user does his own thing, select the default... [keyEquiv selectItemAtIndex: 0]; [obj setKeyEquivalent: [[sender cellAtIndex: 0] stringValue]]; } else if (sender == keyEquiv) { unsigned int tag = [[keyEquiv selectedItem] tag]; switch(tag) { case 0: // none { [obj setKeyEquivalent: nil]; } break; case 1: // return { [obj setKeyEquivalent: @"\r"]; [[keyForm cellAtIndex: 0] setStringValue: @"\\r"]; } break; case 2: // delete { [obj setKeyEquivalent: @"\b"]; [[keyForm cellAtIndex: 0] setStringValue: @"\\b"]; } break; case 3: // escape { [obj setKeyEquivalent: @"\E"]; [[keyForm cellAtIndex: 0] setStringValue: @"\\E"]; } break; case 4: // tab { [obj setKeyEquivalent: @"\t"]; [[keyForm cellAtIndex: 0] setStringValue: @"\\t"]; } break; case 5: // up { [obj setKeyEquivalent: upString]; } break; case 6: // down { [obj setKeyEquivalent: dnString]; } break; case 7: // left { [obj setKeyEquivalent: ltString]; } break; case 8: // right { [obj setKeyEquivalent: rtString]; } break; default: // should never happen.. { [obj setKeyEquivalent: nil]; NSLog(@"This shouldn't happen."); } break; } } else if (sender == optionMatrix) { BOOL flag; flag = ([[sender cellAtRow: 0 column: 0] state] == NSOnState) ? YES : NO; [obj setBordered: flag]; flag = ([[sender cellAtRow: 1 column: 0] state] == NSOnState) ? YES : NO; [obj setContinuous: flag]; flag = ([[sender cellAtRow: 2 column: 0] state] == NSOnState) ? YES : NO; [obj setEnabled: flag]; [obj setState: [[sender cellAtRow: 3 column: 0] state]]; flag = ([[sender cellAtRow: 4 column: 0] state] == NSOnState) ? YES : NO; [obj setTransparent: flag]; } else if (sender == tagForm) { [(NSButton *)obj setTag: [[sender cellAtIndex: 0] intValue]]; } else if (sender == titleForm) { NSString *string; NSImage *image; [obj setTitle: [[sender cellAtIndex: 0] stringValue]]; [obj setAlternateTitle: [[sender cellAtIndex: 1] stringValue]]; string = [[sender cellAtIndex: 2] stringValue]; if ([string length] > 0) { image = [NSImage imageNamed: string]; [obj setImage: image]; } string = [[sender cellAtIndex: 3] stringValue]; if ([string length] > 0) { image = [NSImage imageNamed: string]; [obj setAlternateImage: image]; } } else if (sender == typeButton) { [obj setButtonType: [[sender selectedItem] tag]]; } else if (sender == bezelButton) { [obj setBezelStyle: [[sender selectedItem] tag]]; } else if (sender == altMod) { if ([altMod state] == NSOnState) { [obj setKeyEquivalentModifierMask: [obj keyEquivalentModifierMask] | NSAlternateKeyMask]; } else { [obj setKeyEquivalentModifierMask: [obj keyEquivalentModifierMask] & ~NSAlternateKeyMask]; } } else if (sender == ctrlMod) { if ([ctrlMod state] == NSOnState) { [obj setKeyEquivalentModifierMask: [obj keyEquivalentModifierMask] | NSControlKeyMask]; } else { [obj setKeyEquivalentModifierMask: [obj keyEquivalentModifierMask] & ~NSControlKeyMask]; } } else if (sender == shiftMod) { if ([shiftMod state] == NSOnState) { [obj setKeyEquivalentModifierMask: [obj keyEquivalentModifierMask] | NSShiftKeyMask]; } else { [obj setKeyEquivalentModifierMask: [obj keyEquivalentModifierMask] & ~NSShiftKeyMask]; } } else if (sender == cmdMod) { if ([cmdMod state] == NSOnState) { [obj setKeyEquivalentModifierMask: [obj keyEquivalentModifierMask] | NSCommandKeyMask]; } else { [obj setKeyEquivalentModifierMask: [obj keyEquivalentModifierMask] & ~NSCommandKeyMask]; } } if ([object respondsToSelector: @selector(prototype)]) { [object setPrototype: obj]; } [super ok: sender]; } -(void) revert: (id)sender { NSImage *image; id obj = object; if ([object respondsToSelector: @selector(prototype)]) { obj = [object prototype]; } if(sender != nil) { NSString *key = VSTR([obj keyEquivalent]); unsigned int flags = [obj keyEquivalentModifierMask]; [alignMatrix selectCellWithTag: [obj alignment]]; [iconMatrix selectCellWithTag: [obj imagePosition]]; [[keyForm cellAtIndex: 0] setStringValue: key]; if ([key isEqualToString: @"\r"]) { [keyEquiv selectItemAtIndex: 1]; } else if ([key isEqualToString: @"\b"]) { [keyEquiv selectItemAtIndex: 2]; } else if ([key isEqualToString: @"\E"]) { [keyEquiv selectItemAtIndex: 3]; } else if ([key isEqualToString: @"\t"]) { [keyEquiv selectItemAtIndex: 4]; } else if ([key isEqualToString: upString]) { [keyEquiv selectItemAtIndex: 5]; } else if ([key isEqualToString: dnString]) { [keyEquiv selectItemAtIndex: 6]; } else if ([key isEqualToString: ltString]) { [keyEquiv selectItemAtIndex: 7]; } else if ([key isEqualToString: rtString]) { [keyEquiv selectItemAtIndex: 8]; } else { [keyEquiv selectItemAtIndex: 0]; } [optionMatrix deselectAllCells]; if ([obj isBordered]) [optionMatrix selectCellAtRow: 0 column: 0]; if ([obj isContinuous]) [optionMatrix selectCellAtRow: 1 column: 0]; if ([obj isEnabled]) [optionMatrix selectCellAtRow: 2 column: 0]; if ([obj state] == NSOnState) [optionMatrix selectCellAtRow: 3 column: 0]; if ([obj isTransparent]) [optionMatrix selectCellAtRow: 4 column: 0]; [[tagForm cellAtIndex: 0] setIntValue: [(NSButton *)obj tag]]; [[titleForm cellAtIndex: 0] setStringValue: VSTR([obj title])]; [[titleForm cellAtIndex: 1] setStringValue: VSTR([obj alternateTitle])]; image = [obj image]; if (image != nil) { [[titleForm cellAtIndex: 2] setStringValue: VSTR([image name])]; } else { [[titleForm cellAtIndex: 2] setStringValue: @""]; } image = [obj alternateImage]; if (image != nil) { [[titleForm cellAtIndex: 3] setStringValue: VSTR([image name])]; } else { [[titleForm cellAtIndex: 3] setStringValue: @""]; } // key modifier mask... [altMod setState: NSOffState]; [ctrlMod setState: NSOffState]; [shiftMod setState: NSOffState]; [cmdMod setState: NSOffState]; if(flags & NSAlternateKeyMask) { [altMod setState: NSOnState]; } if(flags & NSControlKeyMask) { [ctrlMod setState: NSOnState]; } if(flags & NSShiftKeyMask) { [shiftMod setState: NSOnState]; } if(flags & NSCommandKeyMask) { [cmdMod setState: NSOnState]; } [typeButton selectItemWithTag: [self buttonTypeForObject: obj]]; [bezelButton selectItemAtIndex: [bezelButton indexOfItemWithTag: [obj bezelStyle]]]; } } - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok: [aNotification object]]; } - (void) selectKeyEquivalent: (id)sender { NSLog(@"Select key equivalent: %d",(int)[[sender selectedItem] tag]); } @end gorm-1.3.1/Palettes/2Controls/GormCellSizeInspector.m0000644000175000017500000000600514327003123021536 0ustar heronheron/* GormCellSizeInspector.m * * Copyright (C) 2021 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: 2021 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormCellSizeInspector.h" @implementation NSCell (IBObjectAdditions_Matrix) - (NSString *) sizeInspectorClassName { return @"GormCellSizeInspector"; } @end @implementation GormCellSizeInspector + (void) initialize { if (self == [GormCellSizeInspector class]) { } } - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; RELEASE(window); [super dealloc]; } - (id) init { self = [super init]; if (self != nil) { if ([NSBundle loadNibNamed: @"GormCellSizeInspector" owner: self] == NO) { NSLog(@"Could not open gorm GormViewSizeInspector"); NSLog(@"self %@", self); return nil; } [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(controlTextDidEndEditing:) name: NSControlTextDidEndEditingNotification object: nil]; } return self; } - (void) ok: (id)sender { id document = [(id)NSApp activeDocument]; id parent = [document parentOfObject: object]; if ([parent respondsToSelector: @selector(cellSize)]) { NSSize size; CGFloat w = [width doubleValue]; CGFloat h = [height doubleValue]; size.width = w; size.height = h; [parent setCellSize: size]; [parent sizeToCells]; [parent setNeedsDisplay: YES]; // Update the document as edited... [document touch]; } } - (void) revert: (id)sender { NSLog(@"sender = %@",sender); } - (void) controlTextDidEndEditing: (NSNotification*)aNotification { id obj = [aNotification object]; [super ok: obj]; } - (void) setObject: (id)anObject { if (anObject != nil && anObject != object) { id document = [(id)NSApp activeDocument]; id parent = [document parentOfObject: anObject]; ASSIGN(object, anObject); if ([parent respondsToSelector: @selector(cellSize)]) { NSSize size = [parent cellSize]; [width setDoubleValue: size.width]; [height setDoubleValue: size.height]; } } } @end gorm-1.3.1/Palettes/2Controls/GormNSStepperInspector.gorm/0000755000175000017500000000000014327003123022473 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormNSStepperInspector.gorm/objects.gorm0000644000175000017500000001776714327003123025034 0ustar heronheronGNUstep archive000f4240:0000001f:000000bd:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @H01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 % @F @f @f @a  @f @aJ0 &0 % @ @ @f @]  @f @]J0 &01 NSTextField1 NSControl% @Z @V @L @5  @L @5J0 &%01NSTextFieldCell1 NSActionCell1NSCell0&%001NSFont% A@01NSNumber1NSValued &&&&&&JJ &&&&&&&I01NSColor0&% NSCalibratedRGBColorSpace ? ? ? ? ?0 ?0% @Z @P@ @L @5  @L @5J0 &%00&%0&&&&&&JJ &&&&&&&I0 ? ? ? ? ?0 ?0% @Z @C @L @5  @L @5J0 &%0 0!&%590"d @M&&&&&&JJ &&&&&&&I0# ? ? ? ? ?0$ ?0%% @ @V @X @2  @X @2J0& &%0'0(&%Value:&&&&&&JJ &&&&&&&I0) ? ? ? ? ?0* ?0+% @ @P@ @X @2  @X @2J0, &%0-0.&%Minimum Value:&&&&&&JJ &&&&&&&I0/ ? ? ? ? ?00 ?01% @ @C @X @2  @X @2J02 &%0304&%Maximum Value:&&&&&&JJ &&&&&&&I05 ? ? ? ? ?06 ?07% @Z @* @L @5  @L @5J08 &%090:&%10;d ?&&&&&&JJ &&&&&&&I0< ? ? ? ? ?0= ?0>% @ @* @X @2  @X @2J0? &%0@0A& % Increment:A&&&&&&JJ &&&&&&&I0B ? ? ? ? ?0C ?0D0E&%Values0F% A@E&&&&&&JJ&&&&&&& %%0G % @F @W @f @U@  @f @U@J0H &0I % @ @ @f @P  @f @PJ0J &0K1NSButton% @. @C @] @1  @] @1J0L &%0M1 NSButtonCell0N& % Autorepeat0O1NSImage0P1NSMutableString&%GSSwitch&&&&&&JJ&&&&&&&I0Q&0R0S&%GSSwitchSelected&&& &&0T% @. @2 @] @1  @] @1J0U &%0V0W& % Value wrapsO&&&&&&JJ&&&&&&&IQR&&& &&0X0Y&%OptionsFY&&&&&&JJ&&&&&&& %%0Z0[&% Title0\% A &&&&&&JJ&&&&&&& %%0]0^&% NSNamedColorSpace0_&% System0`&% windowBackgroundColor0a&%Window0b&%Steppers Attributes Inspectorb ? ? @Ç @|I&   @ @0c &0d &0e1NSMutableDictionary1 NSDictionary&0f& % TextField670g&%Button1T0h&%TextFieldCell(3)'0i& % Inspector0j&%View(0) 0k&%Box(1)G0l&%TextFieldCell(7)@0m& % TextField10n&%TextFieldCell(0)0o&% NSOwner0p&%GormStepperAttributesInspector0q&%TextFieldCell(4)-0r& % TextField3%0s&%View(1)I0t&%Box(2)0u&%TextFieldCell(1)0v& % TextField0w& % TextField510x&%TextFieldCell(5)30y& % TextField7>0z& % ButtonCell(0)M0{&%View(2) 0|&%TextFieldCell(2) 0}&%ButtonK0~& % TextField20&%Box(0) 0&%TextFieldCell(6)90& % TextField4+0& % ButtonCell(1)V0 &..01NSNibConnector}s0gs0vj0mj0~j0rj0j0wj01NSNibOutletConnectoro}0&%autorepeatButton0ov0& % valueField0o~0&%maximumValueField0fj0yj01NSNibControlConnector}o0&%ok:0go0oi0&%window0og0&%valueWrapsButton0om0&%minimumValueField0of0&%incrementValueField0}g0& % nextKeyView0gv0vm0m~0~f0f}0vo0&%delegate0mo0~o0fo0z}0g0nv0um0|~0hr0q0xw0f0ly0t0j0kt0sk0t0{t0iv0&%initialFirstResponder0&gorm-1.3.1/Palettes/2Controls/GormNSStepperInspector.gorm/data.info0000644000175000017500000000027014327003123024260 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/2Controls/GormNSStepperInspector.gorm/data.classes0000644000175000017500000000053214327003123024763 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormStepperAttributesInspector = { Actions = ( "ok:", "revert:" ); Outlets = ( autorepeatButton, incrementValueField, maximumValueField, minimumValueField, valueField, valueWrapsButton, window ); Super = IBInspector; }; }gorm-1.3.1/Palettes/2Controls/GormNSPopUpButton.h0000644000175000017500000000047614327003123020636 0ustar heronheron#include #ifndef INCLUDED_GormNSPopUpButton_h #define INCLUDED_GormNSPopUpButton_h @interface GormNSPopUpButton : NSPopUpButton @end @interface GormNSPopUpButtonCell : NSPopUpButtonCell { } @end @interface NSPopUpButtonCell (DirtyHack) - (id) _gormInitTextCell: (NSString *) string; @end #endif gorm-1.3.1/Palettes/2Controls/GormFormAttributesInspector.m0000644000175000017500000002101514327003123022774 0ustar heronheron/* GormFormAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include #include "GormFormAttributesInspector.h" /* IBObjectAdditions category */ @implementation NSForm (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormFormAttributesInspector"; } @end @implementation GormFormAttributesInspector NSUInteger numberStepperValue; - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSFormInspector" owner: self] == NO) { NSLog(@"Could not gorm GormFormInspector"); return nil; } /* It shouldn't break functionality of field number changing if someone will decide in the future to change the value of the stepper in the gorm file. So we stores those value from the gorm file in the auxillary variable to use it later in -[ok:]. (It allows us to avoid the value being hardcoded). */ numberStepperValue = [numberStepper intValue]; return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok:(id) sender { NSInteger rows; NSInteger cols; int i; [object getNumberOfRows: &rows columns: &cols]; /* background color */ if (sender == backgroundColorWell) { [object setBackgroundColor: [sender color]]; } else if (sender == drawsBackgroundSwitch) { [object setDrawsBackground: ([sender state] == NSOnState)]; } /* options */ else if (sender == cellPositionSwitch) { BOOL flag; flag = ([cellPositionSwitch state] == NSOnState) ? YES : NO; if (flag == YES) { for (i = 0; i < rows; i++) { [[object cellAtIndex: i] setTag: i]; } } } else if ( sender == editableSwitch ) { BOOL flag = ([editableSwitch state] == NSOnState) ? YES : NO; for (i = 0; i < rows; i++) { [[object cellAtIndex: i] setEditable: flag]; } } else if ( sender == selectableSwitch ) { BOOL flag = ([selectableSwitch state] == NSOnState) ? YES : NO; for (i = 0; i < rows; i++) { [[object cellAtIndex: i] setSelectable: flag]; } } else if ( sender == scrollableSwitch ) { BOOL flag = ([scrollableSwitch state] == NSOnState) ? YES : NO; for (i = 0; i < rows; i++) { [[object cellAtIndex: i] setScrollable: flag]; } } /* text alignment */ else if (sender == textMatrix) { [object setTextAlignment: (NSTextAlignment)[[sender selectedCell] tag]]; } /* title alignment */ else if (sender == titleMatrix) { [object setTitleAlignment: (NSTextAlignment)[[sender selectedCell] tag]]; } /* tag */ else if (sender == tagForm) { [object setTag: [[sender cellAtIndex: 0] intValue]]; } /* autosize */ else if (sender == autosizeSwitch) { BOOL flag = ([autosizeSwitch state] == NSOnState) ? YES : NO; [object setAutosizesCells: flag]; } /* number of fields */ else if(sender == dimensionsForm) { int fields = [[sender cellAtIndex: 0] intValue]; if(fields) // make changes only if the user actions do something meaningful { NSRect rect = [object frame]; NSSize cell = [object cellSize]; NSSize inter = [object intercellSpacing]; while(((rows = [object numberOfRows]) != fields)) { if(rows > fields) { [object removeEntryAtIndex: rows - 1]; // remove last field } else { [object addEntry: [NSString stringWithFormat: @"Field (%ld)", (long)rows]]; } } cell.height = (rect.size.height + inter.height) / fields - inter.height; [object setCellSize: cell]; } [object setNeedsDisplay: YES]; [[object superview] setNeedsDisplay: YES]; } else if(sender == numberStepper) { int delta = [sender intValue] - numberStepperValue; NSRect rect = [object frame]; NSSize cell = [object cellSize]; NSSize inter = [object intercellSpacing]; while(delta > 0) { [object addEntry: [NSString stringWithFormat: @"Field (%ld)", (long)rows]]; delta--; rows++; } while((delta < 0) && (rows > 1)) { [object removeEntryAtIndex: rows - 1]; rows--; delta++; } cell.height = (rect.size.height + inter.height) / rows - inter.height; [object setCellSize: cell]; [[dimensionsForm cellAtIndex: 0] setIntValue: rows]; [sender setIntValue: numberStepperValue]; [dimensionsForm setNeedsDisplay: YES]; [object setNeedsDisplay: YES]; } [super ok:sender]; } /* Sync from object ( NSForm ) changes to the inspector */ - (void) revert: (id) sender { if ( object == nil ) { return; } /* background color */ [backgroundColorWell setColorWithoutAction: [object backgroundColor]]; [drawsBackgroundSwitch setState: ([object drawsBackground]) ? NSOnState : NSOffState]; /* alignments */ [textMatrix selectCellWithTag: [[object cellAtIndex: 0] alignment]]; [titleMatrix selectCellWithTag: [[object cellAtIndex: 0] titleAlignment]]; /* options */ [editableSwitch setState:[[object cellAtIndex: 0] isEditable]]; [selectableSwitch setState:[[object cellAtIndex: 0] isSelectable]]; [scrollableSwitch setState:[[object cellAtIndex: 0] isScrollable]]; [autosizeSwitch setState: [object autosizesCells]]; // Cells tags = position is not directly stored in the Form so guess it. { NSInteger rows; NSInteger cols; int i; BOOL flag; [object getNumberOfRows: &rows columns: &cols]; i = 0; do { flag = ([[object cellAtIndex: i] tag] == i); } while (flag && (++i < rows)); if (flag) { [cellPositionSwitch setState:NSOnState]; } } /* number of fields */ [[dimensionsForm cellAtIndex: 0] setIntValue: [object numberOfRows]]; /* tag */ [[tagForm cellAtRow: 0 column: 0] setIntValue: [object tag]]; [super revert:sender]; } /* delegate method for tagForm */ -(void) controlTextDidChange:(NSNotification*) aNotification { [self ok:[aNotification object]]; } /* The button type isn't stored in the button, so reverse-engineer it */ - (NSButtonType) buttonTypeForObject: button { NSButtonCell *cell; NSButtonType type; int highlight, stateby; /* We could be passed the button or the cell */ cell = ([button isKindOfClass: [NSButton class]]) ? [button cell] : button; highlight = [cell highlightsBy]; stateby = [cell showsStateBy]; NSDebugLog(@"highlight = %d, stateby = %d", (int)[cell highlightsBy],(int)[cell showsStateBy]); type = NSMomentaryPushButton; if (highlight == NSChangeBackgroundCellMask) { if (stateby == NSNoCellMask) type = NSMomentaryLight; else type = NSOnOffButton; } else if (highlight == (NSPushInCellMask | NSChangeGrayCellMask)) { if (stateby == NSNoCellMask) type = NSMomentaryPushButton; else type = NSPushOnPushOffButton; } else if (highlight == (NSPushInCellMask | NSContentsCellMask)) { type = NSToggleButton; } else if (highlight == NSContentsCellMask) { if (stateby == NSNoCellMask) type = NSMomentaryChangeButton; else type = NSToggleButton; /* Really switch or radio. What should it be? */ } else { NSDebugLog(@"Ack! no button type"); } return type; } /* We may need to reset some parameters based on the previous type */ - (void) setButtonType: (NSButtonType)type forObject: (id)button { [object setButtonType: type]; } @end gorm-1.3.1/Palettes/2Controls/GormStepperAttributesInspector.m0000644000175000017500000000646514327003123023527 0ustar heronheron/* GormStepperAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include "GormStepperAttributesInspector.h" // Some simple inspectors. @interface GormStepperCellAttributesInspector : GormStepperAttributesInspector @end @implementation GormStepperCellAttributesInspector @end @implementation GormStepperAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSStepperInspector" owner: self] == NO) { NSLog(@"Could not gorm GormStepperAttributesInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { if (sender == valueField) { [object setDoubleValue:[sender doubleValue]]; } else if (sender == minimumValueField) { [object setMinValue:[sender doubleValue]]; } else if (sender == maximumValueField) { [object setMaxValue:[sender doubleValue]]; } else if (sender == incrementValueField) { [object setIncrement:[sender doubleValue]]; } else if (sender == autorepeatButton) { switch ([(NSButton *)sender state]) { case 0: [object setAutorepeat: NO]; break; case 1: [object setAutorepeat: YES]; break; } } else if (sender == valueWrapsButton) { switch ([(NSButton *)sender state]) { case 0: [object setValueWraps: NO]; break; case 1: [object setValueWraps: YES]; break; } } [super ok:(id) sender]; } /* Sync from object ( NSStepper ) changes to the inspector */ - (void) revert:(id) sender { if (object == nil) return; [valueField setDoubleValue: [object doubleValue]]; [minimumValueField setDoubleValue: [object minValue]]; [maximumValueField setDoubleValue: [object maxValue]]; [incrementValueField setDoubleValue: [object increment]]; if ([object autorepeat]) [autorepeatButton setState: 1]; else [autorepeatButton setState: 0]; if ([object valueWraps]) [valueWrapsButton setState: 1]; else [valueWrapsButton setState: 0]; [super revert:sender]; } /* delegate methods for NSForms */ -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.3.1/Palettes/2Controls/ControlsPalette.tiff0000644000175000017500000000071614327003123021131 0ustar heronheronII* P8 _e8UDUI1$!N+ơшR-$id~nJJdi6fhiV|U( J(^̢3JZ0 ?*'t aOdl ݑ+ ?AaV]cYw9Z,//{oZ:?! P8 ~<& CFF"Hr3Ģr(6A&AhDXJ"yI4cy};簸##8(RN ' 'gorm-1.3.1/Palettes/2Controls/GormProgressIndicatorAttributesInspector.h0000644000175000017500000000305714327003123025533 0ustar heronheron/* GormProgressIndicatorAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormProgressIndicatorAttributesInspector_h #define INCLUDED_GormProgressIndicatorAttributesInspector_h #include @class NSButton; @class NSTextField; @interface GormProgressIndicatorAttributesInspector: IBInspector { NSButton *indeterminate; NSButton *vertical; NSTextField *minValue; NSTextField *maxValue; } @end #endif /* INCLUDED_GormProgressIndicatorAttributesInspector_h */ gorm-1.3.1/Palettes/2Controls/palette.table0000644000175000017500000000037114327003123017601 0ustar heronheron{ NibFile = "ControlsPalette"; Class = "ControlsPalette"; Icon = "ControlsPalette"; ExportClasses = (); ExportImages = (); SubstituteClasses = { GormNSPopUpButton = NSPopUpButton; GormNSPopUpButtonCell = NSPopUpButtonCell; }; }gorm-1.3.1/Palettes/2Controls/inspectors.m0000644000175000017500000000334314327003123017503 0ustar heronheron/* inspectors - Various inspectors for control elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormButtonAttributesInspector.h" #include "GormStepperAttributesInspector.h" @implementation NSButton (IBObjectAdditions) - (NSString*) editorClassName { return @"GormButtonEditor"; } - (NSString*) inspectorClassName { return @"GormButtonAttributesInspector"; } @end @implementation NSButtonCell (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormButtonCellAttributesInspector"; } @end @implementation NSStepper (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormStepperAttributesInspector"; } @end @implementation NSStepperCell (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormStepperCellAttributesInspector"; } @end gorm-1.3.1/Palettes/2Controls/GormPopUpButtonAttributesInspector.m0000644000175000017500000001001414327003123024325 0ustar heronheron/* GormPopUpButtonAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include "GormPopUpButtonAttributesInspector.h" /* IBObjectAdditions category */ @implementation NSPopUpButton (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormPopUpButtonAttributesInspector"; } @end @implementation GormPopUpButtonAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSPopUpButtonInspector" owner: self] == NO) { NSLog(@"Could not gorm GormPopUpButtonInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { if (sender == typeMatrix) { BOOL pullsDown = [[sender selectedCell] tag]; id selectedItem; [object setPullsDown: pullsDown]; selectedItem = [object selectedItem]; [object selectItem: nil]; [object selectItem: selectedItem]; [pullDownTitleForm setEnabled: pullsDown]; [[pullDownTitleForm cellAtIndex: 0] setStringValue: pullsDown ? [object title] : @""]; [pullDownArrowPopUp setEnabled: pullsDown]; } else if (sender == autoenableSwitch) { [object setAutoenablesItems: ([sender state] == NSOnState)]; } else if (sender == enableSwitch) { [object setEnabled: ([sender state] == NSOnState)]; } else if (sender == tagForm) { [object setTag: [[sender cellAtIndex: 0] intValue]]; } else if (sender == defaultItemForm) { int index = [[sender cellAtIndex: 0] intValue]; int num = [object numberOfItems]; // if the user enters more than the number, select the last item. index = (index < num && index >= 0) ? index : num; [object selectItemAtIndex: index]; } else if (sender == pullDownTitleForm) { [object setTitle: [[sender cellAtIndex: 0] stringValue]]; } else if (sender == pullDownArrowPopUp) { [object setPreferredEdge: [[sender selectedItem] tag]]; } [super ok: sender]; } /* Sync from object ( NSPopUpButton ) changes to the inspector */ - (void) revert: (id)sender { BOOL pullsDown; if ( object == nil) return; pullsDown = [object pullsDown]; [typeMatrix selectCellWithTag: pullsDown]; [autoenableSwitch setState: [object autoenablesItems]]; [enableSwitch setState: [object isEnabled]]; [[tagForm cellAtRow: 0 column: 0] setIntValue: [object tag]]; [[defaultItemForm cellAtRow: 0 column: 0] setIntValue: [object indexOfSelectedItem]]; [pullDownTitleForm setEnabled: pullsDown]; [[pullDownTitleForm cellAtIndex: 0] setStringValue: pullsDown ? [object title] : @""]; [pullDownArrowPopUp setEnabled: pullsDown]; [pullDownArrowPopUp selectItemWithTag: [object preferredEdge]]; [super revert:sender]; } /* delegate method for tagForm and defaultItemForm */ -(void) controlTextDidChange:(NSNotification*) aNotification { [self ok:[aNotification object]]; } @end gorm-1.3.1/Palettes/2Controls/GormStepperAttributesInspector.h0000644000175000017500000000305114327003123023506 0ustar heronheron/* GormStepperAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormStepperAttributesInspector_h #define INCLUDED_GormStepperAttributesInspector_h #include @class NSButton; @class NSTextField; @interface GormStepperAttributesInspector : IBInspector { NSTextField *valueField; NSTextField *minimumValueField; NSTextField *maximumValueField; NSTextField *incrementValueField; NSButton *autorepeatButton; NSButton *valueWrapsButton; } @end #endif gorm-1.3.1/Palettes/2Controls/GormProgressIndicatorAttributesInspector.m0000644000175000017500000000607714327003123025545 0ustar heronheron/* GormProgressIndicatorAttributesInspector.m Copyright (C) 2001-2020 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include "GormProgressIndicatorAttributesInspector.h" /* IBObjectAdditions category */ @implementation NSProgressIndicator (IBObjectAdditions) - (NSString *) inspectorClassName { return @"GormProgressIndicatorAttributesInspector"; } @end @implementation GormProgressIndicatorAttributesInspector -(id) init { if ( ( self = [super init] ) == nil) return nil; if ( [NSBundle loadNibNamed: @"GormNSProgressIndicatorInspector" owner: self] == NO ) { NSLog(@"Could not open gorm GormNSProgressIndicatorInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ -(void) ok: (id) sender { if ( sender == indeterminate ) { [object setIndeterminate: ([indeterminate state] == NSOnState)]; } else if (sender == vertical ) { [object setVertical: ([vertical state] == NSOnState)]; } else if ( sender == minValue ) { [object setMinValue: [minValue doubleValue]]; } else if ( sender == maxValue ) { [object setMaxValue: [maxValue doubleValue]]; } [super ok: sender]; } /* Sync from object (ProgressIndicator ) changes to the inspector */ - (void) revert:(id) sender { if ( object == nil ) return; if ( ![object isKindOfClass:[NSProgressIndicator class]] ) NSLog ( @"GormNSProgressIndicatorInspector: Unexpected class of object; %@", [object class]); [indeterminate setState: [(NSProgressIndicator *)object isIndeterminate]?NSOnState:NSOffState]; [vertical setState: [(NSProgressIndicator *)object isVertical] ? NSOnState:NSOffState]; [minValue setIntValue: [(NSProgressIndicator *)object minValue]]; [maxValue setIntValue: [(NSProgressIndicator *)object maxValue]]; [super revert:sender]; } /* delegate method for titleForm */ - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok: [aNotification object]]; } @end gorm-1.3.1/Palettes/2Controls/ControlsPalette.m0000644000175000017500000001044214327003123020432 0ustar heronheron/** main.m Copyright (C) 2004 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormNSPopUpButton.h" @interface ControlsPalette: IBPalette @end @implementation ControlsPalette - (id) init { if((self = [super init]) != nil) { // Make ourselves a delegate, so that when the sound/image is dragged in, // this code is called... [NSView registerViewResourceDraggingDelegate: self]; // subscribe to the notification... [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(willInspectObject:) name: IBWillInspectObjectNotification object: nil]; } return self; } - (void) dealloc { [NSView unregisterViewResourceDraggingDelegate: self]; [super dealloc]; } - (void) finishInstantiate { NSView *contents; id v; contents = [originalWindow contentView]; v = [[GormNSPopUpButton alloc] initWithFrame: NSMakeRect(73, 159, 70, 22)]; [v addItemWithTitle: @"Item 1"]; [v addItemWithTitle: @"Item 2"]; [v addItemWithTitle: @"Item 3"]; [contents addSubview: v]; RELEASE(v); } - (void) willInspectObject: (NSNotification *)notification { id o = [notification object]; // [o respondsToSelector: @selector(prototype)] && [o prototype]) if ([o isKindOfClass: [NSMatrix class]]) { id prototype = [o prototype]; NSString *ident = NSStringFromClass([prototype class]); [[IBInspectorManager sharedInspectorManager] addInspectorModeWithIdentifier: ident forObject: o localizedLabel: _(@"Prototype") inspectorClassName: [prototype inspectorClassName] ordering: -1.0]; } } /** * Ask if the view accepts the object. */ - (BOOL) acceptsViewResourceFromPasteboard: (NSPasteboard *)pb forObject: (id)obj atPoint: (NSPoint)p { NSArray *types = [pb types]; return (([obj respondsToSelector: @selector(setSound:)] || [obj respondsToSelector: @selector(setImage:)]) && ([types containsObject: GormImagePboardType] || [types containsObject: GormSoundPboardType])); } /** * Perform the action of depositing the object. */ - (void) depositViewResourceFromPasteboard: (NSPasteboard *)pb onObject: (id)obj atPoint: (NSPoint)p { NSArray *types = [pb types]; if ([types containsObject: GormImagePboardType] == YES) { NSString *name = [pb stringForType: GormImagePboardType]; if([(id)obj respondsToSelector: @selector(setImage:)]) { NSImage *image = [NSImage imageNamed: name]; [(id)obj setImage: AUTORELEASE([image copy])]; } } else if ([types containsObject: GormSoundPboardType] == YES) { NSString *name; name = [pb stringForType: GormSoundPboardType]; if([(id)obj respondsToSelector: @selector(setSound:)]) { NSSound *sound = [NSSound soundNamed: name]; [(id)obj setSound: AUTORELEASE([sound copy])]; } } } /** * Should we draw the connection frame when the resource is * dragged in? */ - (BOOL) shouldDrawConnectionFrame { return NO; } /** * Types of resources accepted by this view. */ - (NSArray *)viewResourcePasteboardTypes { return [NSArray arrayWithObjects: GormImagePboardType, GormSoundPboardType, nil]; } @end gorm-1.3.1/Palettes/2Controls/GormNSSliderInspector.gorm/0000755000175000017500000000000014327003123022273 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormNSSliderInspector.gorm/objects.gorm0000644000175000017500000002376514327003123024627 0ustar heronheronGNUstep archive000f4240:0000001f:000000d7:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@J I @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 % @@ @j@ @h @b  @h @bJ0 &0 % @ @ @h@ @`  @h@ @`J0 &01NSForm1NSMatrix1 NSControl% @, @> @e @W@  @e @W@J0 &%01 NSFormCell1 NSActionCell1NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&I 00&%Field:&&&&&&JJ&&&&&&&% @e @5 @01NSColor0&% NSNamedColorSpace0&% System0&% controlBackgroundColor00&% NSCalibratedRGBColorSpace ?* ?* ?* ?* ?0& % NSFormCell%%0 &0&&&&&&JJ&&&&&&&I B00 &%Minimum:&&&&&&JJ&&&&&&&0!&&&&&&JJ&&&&&&&I B0"0#&%Current:&&&&&&JJ&&&&&&&0$&&&&&&JJ&&&&&&&I B0%0&&%Maximum:&&&&&&JJ&&&&&&&0'0(%&&&&&&JJ&&&&&&&I B0)0*&%Number of Ticks:(*&&&&&&JJ&&&&&&&2 ok:v24@0:8@16'0+1NSButton% @$ @$ @\ @1  @\ @1J0, &%0-1 NSButtonCell0.&%Stop on ticks only0/1NSImage001NSMutableString&%GSSwitch(.&&&&&&JJ&&&&&&&I0102&%GSSwitchSelected&&& &&031NSTextFieldCell04&%Values&&&&&&JJ &&&&&&&I0506&% windowBackgroundColor07 ? %%08% @N @V @c @4  @c @4J09 &%0:&&&&&&JJ&&&&&&&I 0;0<&%Field:&&&&&&JJ&&&&&&&% @c @4 @0= ?* ?* ?* ?* ?0>& % NSFormCell%%0? &0@&&&&&&JJ&&&&&&&I B0A0B&%Alt Increment:&&&&&&JJ&&&&&&&@0C % @@ @` @h @S@  @h @S@J0D &0E % @ @ @g @I  @g @IJ0F &0G% @F @; @U @1  @U @1J0H &%0I0J& % Continuous/(J&&&&&&JJ&&&&&&&I1&&& &&0K% @F @ @U @1  @U @1J 0L &%0M0N&%Enabled/(&&&&&&JJ&&&&&&&I1&&& &&0O0P&%Options&&&&&&JJ &&&&&&&I50Q ? @ @%%0R% @F @O @e @4  @e @4J0S &%0T&&&&&&JJ&&&&&&&I 0U0V&%Field:&&&&&&JJ&&&&&&&% @e @4 @0W ?* ?* ?* ?* ?0X& % NSFormCell%%0Y &0Z&&&&&&JJ&&&&&&&I B0[0\&%Knob Thickness:&&&&&&JJ&&&&&&&Z0]% @[ @C @Z@ @4  @Z@ @4J0^ &%0_&&&&&&JJ&&&&&&&I 0`0a&%Field:&&&&&&JJ&&&&&&&% @Z@ @4 @0b ?* ?* ?* ?* ?0c& % NSFormCell%%0d &0e&&&&&&JJ&&&&&&&I A0f0g&%Tag:&&&&&&JJ&&&&&&&e0h0i&% Title0j% A &&&&&&JJ&&&&&&& %%50k&%Window0l&%Slider Attributes Inspectorl ?  @Ç @xI&   @ @0m &0n &0o1NSMutableDictionary1 NSDictionary&0p&% NSOwner0q&%GormSliderInspector0r&%ButtonG0s& % Inspector0t& % FormCell(1)!0u& % ButtonCell(1)I0v& % FormCell(5)@0w&%Form3]0x&%Button1K0y& % FormCell(9)e0z&%Form2R0{&%Box 0|&%Form10}& % FormCell(0)0~& % ButtonCell(0)-0&%View(2)E0& % FormCell(4)0& % FormCell(10)_0& % FormCell(8)T0& % Button(0)+0& % FormCell(3)'0&%View(1) 0&%Box1C0&%Form80&%Box(0)0& % FormCell(7)Z0& % FormCell(2)$0&%View(0) 0& % ButtonCell(2)M0& % FormCell(6):0 &2201NSNibConnectorsp0{00|01NSNibOutletConnectorp0&%altIncrementForm00z0w0ps0&%window0pz0&%knobThicknessForm0pw0&%tagForm0z0& % nextKeyView0zw0w|0s|0&%initialFirstResponder0p0&%delegate0zp0wp0|p0p|0& % valuesForm0r0x0pr0&%continuousSwitch0px0& % enabledSwitch01NSNibControlConnectorrp0&%ok:0xp0|r0& % nextKeyView0rx0x00p0&%ok:0p0&%stopOnTicksSwitch000{0}|0t|0±|0ñ|0ı|0ű~0Ʊv0DZ0ȱ0ɱur0ʱx0˱z0̱z0ͱyw0αw0ϱ&gorm-1.3.1/Palettes/2Controls/GormNSSliderInspector.gorm/data.info0000644000175000017500000000027014327003123024060 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/2Controls/GormNSSliderInspector.gorm/data.classes0000644000175000017500000000045714327003123024571 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormSliderInspector = { Actions = ( ); Outlets = ( altIncrementForm, knobThicknessForm, tagForm, valuesForm, continuousSwitch, enabledSwitch, stopOnTicksSwitch ); Super = IBInspector; }; }gorm-1.3.1/Palettes/2Controls/GormTextFieldAttributesInspector.h0000644000175000017500000000330214327003123023753 0ustar heronheron/* GormTextFieldAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormTextFieldAttributesInspector_h #define INCLUDED_GormTextFieldAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSForm; @class NSMatrix; @interface GormTextFieldAttributesInspector: IBInspector { NSMatrix *alignMatrix; NSColorWell *backgroundColor; NSButton *drawsBackground; NSColorWell *textColor; NSMatrix *borderMatrix; NSButton *editableSwitch; NSButton *selectableSwitch; NSButton *scrollableSwitch; NSButton *singleLineMode; NSForm *tagForm; NSMatrix *sendActionMatrix; } @end #endif gorm-1.3.1/Palettes/2Controls/GormNSPopUpButtonInspector.gorm/0000755000175000017500000000000014327003123023310 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormNSPopUpButtonInspector.gorm/objects.gorm0000644000175000017500000002757614327003123025650 0ustar heronheronGNUstep archive000f4240:00000027:0000010b:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 % @F @q0 @f @R  @f @RJ0 &0 % @ @ @e @H  @e @HJ0 &01NSMatrix1 NSControl% @A @ @S @D  @S @DJ0 &%01 NSActionCell1NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&I% @S @4 ? ?01NSColor0&% NSNamedColorSpace0&% System0&% controlBackgroundColor00&% NSCalibratedRGBColorSpace ?* ?* ?* ?* ?0& % NSButtonCell01 NSButtonCell0&%Radio01NSImage01NSMutableString&%GSRadio&&&&&&JJ&&&&&&&I00 &%GSRadioSelected&&& &&%%0! &0"0#&%PopUp&&&&&&JJ&&&&&&&I&&& &&0$0%&%PullDown&&&&&&JJ&&&&&&&I&&& &&2 ok:v24@0:8@16"0&1 NSImageView% @[ @7 @9 @6  @9 @6J0' &%0(1 NSImageCell0)0*& %  common_Nibble0+% A@&&&&&&JJ&&&&&&&%%% @& @ 0,% @[ @ @9 @4  @9 @4J0- &%0.0/00&% common_3DArrowDown01%&&&&&&JJ&&&&&&&%%% @ @021NSTextFieldCell03&%Type&&&&&&JJ &&&&&&&I0405&% windowBackgroundColor06 ? @ @%%07 % @F @i @f @Q  @f @QJ08 &09 % @ @ @e @F  @e @FJ0: &0;1NSButton% @9 @8 @\ @1  @\ @1J0< &%0=0>&%Autoenable Items0?0@&%GSSwitch&&&&&&JJ&&&&&&&I0A0B&%GSSwitchSelected&&& &&0C% @9 @ @\ @1  @\ @1J0D &%0E0F&%Enabled?1&&&&&&JJ&&&&&&&IA&&& &&0G0H&%Option&&&&&&JJ &&&&&&&I40I ? @ @%%0J1NSForm% @W @I @S @5  @S @5J0K &%0L1 NSFormCell&&&&&&JJ&&&&&&&I 0M0N&%Field:&&&&&&JJ&&&&&&&% @S @5 @0O ?* ?* ?* ?* ?0P& % NSFormCell%%0Q &0R&&&&&&JJ&&&&&&&I A0S0T&%Tag :&&&&&&JJ&&&&&&&R0U% @K @S@ @] @5  @] @5J0V &%0W1&&&&&&JJ&&&&&&&I 0X0Y&%Field:1&&&&&&JJ&&&&&&&% @] @5 @0Z& % NSFormCell%%0[ &0\1&&&&&&JJ&&&&&&&I B0]0^& % Default Item:1&&&&&&JJ&&&&&&&\0_ % @F @Y @f @W  @f @WJ0` % @ @ @e @P  @e @PJ_0a &0b% @0 @A @b` @5  @b` @5J0c &%0d1&&&&&&JJ&&&&&&&I 0e0f&%Field:1&&&&&&JJ&&&&&&&% @b` @5 @0g& % NSFormCell%%0h &0i1&&&&&&JJ&&&&&&&I A0j0k&%Title:1k&&&&&&JJ&&&&&&&i0l1 NSTextField% @$ @E @2  @E @2J0m &%0n0o&%Arrow:+o&&&&&&JJ &&&&&&&I0p0q&%System0r&%textBackgroundColor0sq0t& % textColor0u1 NSPopUpButton% @G @  @]@ @6  @]@ @6J0v &%0w1NSPopUpButtonCell1 NSMenuItemCell1&&&&&&JJ0x1!NSMenu0y &0z1" NSMenuItem0{&%RightJJII0|"0}&%DownJJI)I&&&&&&&I&&& > =&&|x|%%%%%0~ &`00&%PullDown Options1&&&&&&JJ&&&&&&& @ @%%00&% Title0% A &&&&&&JJ&&&&&&& %%40&%Window0& % PopUpButton Attributes Inspector ? ? @Ç @|I&   @ @0 &0 &01#NSMutableDictionary1$ NSDictionary&&0&% NSOwner0&%GormPopUpButtonInspector0&%PopUpButtonCell(0)w0& % ActionCell(0)0&%Button;0& % ImageCell(1).0& % Inspector0& % MenuItem(1)|0& % ImageView&0& % FormCell(1)01&&&&&&JJ&&&&&&&I A00&%Field:1&&&&&&JJ&&&&&&&0&%TextFieldCell(0)n0& % ButtonCell(1)$0& % FormCell(5)W0&%View(3)90&%Button1C0& % ImageCell(0)(0&%Box 0&%Form1U0& % FormCell(0)i0& % MenuItem(0)z0& % ButtonCell(0)"0&%View(2) 0& % FormCell(4)\0&%Box(1)0& % FormCell(3)L0&%Box170&%View(1) 0&%PopUpButton(0)u0&%FormJ0&%Box(0)_0& % ButtonCell(3)E0&%Form(0)b0& % TextField(0)l0& % ImageView1,0&%View(0)`0& % FormCell(2)R0&%Matrix0& % ButtonCell(2)=0& % FormCell(6)d0 &==01%NSNibConnector0%0%0%0%0%01&NSNibOutletConnector0& % typeMatrix0&0&%tagForm0&0&%window01'NSNibControlConnector0&%ok:0±'0ñ'0ı&%ok:0ű%0Ʊ%0DZ%0ȱ'0ɱ&%ok:0ʱ&0˱&%defaultItemForm0̱%0ͱ'0α&%ok:0ϱ&0б&%autoenableSwitch0ѱ&0ұ& % enableSwitch0ӱ&0Ա& % nextKeyView0ձ&0ֱ&0ױ&0ر&0ٱ&0ڱ&%initialFirstResponder0۱&0ܱ&%delegate0ݱ&0ޱ%0߱%0%0%0%0%0%0%0%0&0&%pullDownTitleForm0&0&%pullDownArrowPopUp0'0&%ok:0'0%0%0%0%0%0%0%0%0%0%0'0&% NSFirst0&% ok:0%0%0%0%0%P%P%P%P#&gorm-1.3.1/Palettes/2Controls/GormNSPopUpButtonInspector.gorm/data.info0000644000175000017500000000027014327003123025075 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/2Controls/GormNSPopUpButtonInspector.gorm/data.classes0000644000175000017500000000046314327003123025603 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormPopUpButtonInspector = { Actions = ( ); Outlets = ( autoenableSwitch, tagForm, typeMatrix, defaultItemForm, enableSwitch, pullDownArrowPopUp, pullDownTitleForm ); Super = IBInspector; }; }gorm-1.3.1/Palettes/2Controls/GormCellAttributesInspector.h0000644000175000017500000000300314327003123022740 0ustar heronheron/* GormCellAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormCellAttributesInspector_h #define INCLUDED_GormCellAttributesInspector_h #include @class NSButton; @class NSForm; @interface GormCellAttributesInspector: IBInspector { NSButton *disabledSwitch; NSForm *tagForm; } @end #endif /* INCLUDED_GormCellAttributesInspector_h */ gorm-1.3.1/Palettes/2Controls/GormNSFormInspector.gorm/0000755000175000017500000000000014327003123021754 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormNSFormInspector.gorm/objects.gorm0000644000175000017500000003427614327003123024307 0ustar heronheronGNUstep archive000f4240:00000024:00000133:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q0 @x@JI @ @01 NSView% ? @" @q0 @x@  @q0 @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 1NSForm1NSMatrix1 NSControl% @T @( @Z @5  @Z @5J 0 &%0 1 NSFormCell1 NSActionCell1NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&I 00&%Field:&&&&&&JJ&&&&&&&% @Z @5 @01NSColor0&% NSNamedColorSpace0&% System0&% controlBackgroundColor00&% NSCalibratedRGBColorSpace ?* ?* ?* ?* ?0& % NSFormCell%%0 &00&%0&&&&&&JJ&&&&&&&I B800&%Tag:&&&&&&JJ&&&&&&&2 ok:v24@0:8@160 % @< @b @Y @M  @Y @MJ0 &0 % @ @ @V @@  @V @@J0! &0"% @ @ @S@ @9  @S@ @9J0# &%0$&&&&&&JJ&&&&&&&I% @9 @9 ? ?0% ?* ?* ?* ?* ?%0&& % NSButtonCell0'1 NSButtonCell0(&%|<-&&&&&&JJ&&&&&&&I&&& &&%%0) &0*0+1NSImage0,& % leftalign_nib&&&&&&JJ&&&&&&&I&&& &&0-0.0/&%centeralign_nib&&&&&&JJ&&&&&&&I&&& &&000102&%rightalign_nib&&&&&&JJ&&&&&&&I&&& &&*031NSTextFieldCell04&%Title&&&&&&JJ &&&&&&&I0506&% windowBackgroundColor07 ? @ @%%08 % @< @j @j @_  @j @_J09 &0: % @ @ @h` @Y  @h` @YJ0; &0<1NSButton% @> @S @` @1  @` @1J0= &%0>0?&%Cell tags = Positions0@0A1NSMutableString&%GSSwitch0B%?&&&&&&JJ&&&&&&&I0C0D&%GSSwitchSelected&&& &&0E% @> @N @` @1  @` @1J0F &%0G0H&%Editable@B&&&&&&JJ&&&&&&&IC&&& &&0I% @> @D @` @1  @` @1J0J &%0K0L& % Selectable@B&&&&&&JJ&&&&&&&IC&&& &&0M% @> @6 @` @1  @` @1J0N &%0O0P& % Scrollable@B&&&&&&JJ&&&&&&&IC&&& &&0Q% @> @ @` @1  @` @1J0R &%0S0T&%Autosize@B&&&&&&JJ&&&&&&&IC&&& &&0U0V&%Options&&&&&&JJ &&&&&&&I50W ? @ @%%0X % @< @L @j @V@  @j @V@J0Y &0Z % @ @ @h` @O  @h` @OJ0[ &0\% @@ @ @_ @0  @_ @0J0] &%0^0_&%Draws Background@&&&&&&JJ&&&&&&&IC&&& &&0`1 NSColorWell% @Q @< @J @>  @J @>J0a &%0b&&&&&&JJ&&&&&&&0c0d&% NSCalibratedWhiteColorSpace ?* ?0e0f&%Background Color&&&&&&JJ &&&&&&&I50g ? @ @%%0h % @` @b @Y @M  @Y @MJ0i &0j % @ @ @V @@  @V @@J0k &0l% @ @ @S@ @9  @S@ @9J0m &%0n&&&&&&JJ&&&&&&&I% @9 @9 ? ?0o ?* ?* ?* ?* ?o0p& % NSButtonCell0q0r&%Button&&&&&&JJ&&&&&&&I&&& &&%%0s &0t+&&&&&&JJ&&&&&&&I&&& &&0u.&&&&&&JJ&&&&&&&I&&& &&0v1&&&&&&JJ&&&&&&&I&&& &&t0w0x&%Text&&&&&&JJ &&&&&&&I50y ? @ @%%0z% @; @u @g @5  @g @5J0{ &%0|B&&&&&&JJ&&&&&&&I 0}0~&%Field:B&&&&&&JJ&&&&&&&% @g @5 @0& % NSFormCell%%0 &00&%2B&&&&&&JJ&&&&&&&I B00&%Number of Fields:B&&&&&&JJ&&&&&&&01 NSStepper% @k @u @2 @:  @2 @:J0 &%01 NSStepperCell0&%3001NSNumber1NSValued @>&&&&&&JJ&&&&&&&I @M ?%%00&%Title0% A &&&&&&JJ&&&&&&& %%50&%Window0&%Form Attributes Inspector ? @D @Ç @|I&   @ @p0 &0 &01 NSMutableDictionary1! NSDictionary&.0&% NSOwner0&%GormFormInspector0&%Button5M0& % ActionCell(0)$0& % ButtonCell(6)O0&%Button4I0&%Button\0& % Inspector0& % FormCell(1)0B&&&&&&JJ&&&&&&&I BD00&%ColsB&&&&&&JJ&&&&&&&0&%Button3E0& % ButtonCell(1)-0&%Button2<0&%View(3)Z0& % ColorWell`0&%Button10% @$ @V @L @8  @L @8J0 &%00&%Button&&&&&&JJ&&&&&&&I&&& &&0& % ButtonCell(5)K0& % Stepper(0)0&%Box0&%ButtonCell(11)v0& % FormCell(0)0& % ButtonCell(9)t0& % ButtonCell(0)*0&%View(2):0& % FormCell(4) 0& % ButtonCell(4)G0&%Box3X0&%Matrix2l0&%ButtonCell(10)u0& % ButtonCell(8)^0&%Box280&%View(1) 0& % FormCell(3)0&%Box1h0&%Cell(0)b0&%Form 0& % ButtonCell(3)>0&%Box(0)0& % ActionCell(1)n0&%Form(0)z0& % ButtonCell(7)S0&%StepperCell(0)0±& % FormCell(2)|0ñ&%View(0) 0ı&%Matrix"0ű& % ButtonCell(2)00Ʊ&%Button6Q0DZ&%View(4)j0ȱ &KK01"NSNibConnector0ʱ&% NSOwner0˱"0̱"0ͱ"0α"0ϱ"0б"0ѱ"0ұ"İ0ӱ"01#NSNibOutletConnectorʰ0ձ&%backgroundColorWell0ֱ#ʰ0ױ&%drawsBackgroundSwitch0ر#ʰ0ٱ& % titleMatrix0ڱ#ʰ0۱&%window0ܱ"ǐ0ݱ#ʰ0ޱ& % textMatrix01$NSNibControlConnector0&%ok:0$ʰ0$İʰ0$ʰ0#ʰ0&%tagForm0#İ0& % nextKeyView0#0#0#0#0&%delegate0"0"0"0"0"ư0$ư0&%ok:0#ʰ0&%autosizeSwitch0$0&%ok:0$ʰ0$ʰ0$ʰ0#ʰ0&%cellPositionSwitch0#ʰ0&%editableSwitch0#ʰP&%selectableSwitchP#ʰP&%scrollableSwitchP"P"P"P"P$P&%ok:P #P &%delegateP #ʰP & % numberStepperP #ʰP&%dimensionsFormP"°P"P"P"ðP"P"P"P"ĐP"ĐP"ŰĐP"ĐP"P"P"P"P"P"ƐP "P!"P"$P#&% NSFirstP$&%ok:P%"P&"ǰP'"P("P)"P*"P+ &gorm-1.3.1/Palettes/2Controls/GormNSFormInspector.gorm/data.info0000644000175000017500000000027014327003123023541 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/2Controls/GormNSFormInspector.gorm/data.classes0000644000175000017500000000063514327003123024250 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormFormInspector = { Actions = ( ); Outlets = ( backgroundColorWell, drawsBackgroundSwitch, tagForm, textMatrix, titleMatrix, cellPositionSwitch, editableSwitch, scrollableSwitch, selectableSwitch, autosizeSwitch, dimensionsForm, numberStepper ); Super = IBInspector; }; }gorm-1.3.1/Palettes/2Controls/GormBoxAttributesInspector.m0000644000175000017500000001066314327003123022630 0ustar heronheron/* GormBoxAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003, 2004, 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include #include "GormBoxAttributesInspector.h" /* This macro makes sure that the string contains a value, even if @"" */ #define VSTR(str) ({id _str = (id)str; (_str) ? (id)_str : (id)(@"");}) /* IBObjectAdditions category */ @implementation NSBox (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormBoxAttributesInspector"; } @end @implementation GormBoxAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSBoxInspector" owner: self] == NO) { NSLog(@"Could not load GormBoxInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { /* Position */ if (sender == positionMatrix) { [object setTitlePosition: [[sender selectedCell] tag]]; } /* border type */ else if (sender == borderMatrix) { [object setBorderType: [[sender selectedCell] tag]]; } /* title */ else if (sender == titleForm) { [object setTitle: [[sender cellAtIndex: 0] stringValue]]; } /* content view margins */ else if (sender == horizontalSlider) { [object setContentViewMargins: NSMakeSize((float)[sender intValue], (float)[verticalSlider intValue])]; } else if (sender == verticalSlider) { [object setContentViewMargins: NSMakeSize((float)[horizontalSlider intValue], (float)[sender intValue])]; } /* title cell : background color, only useful for older NSBox instances */ else if(sender == colorWell) { NSTextFieldCell *titleCell = (NSTextFieldCell *)[object titleCell]; if([titleCell isKindOfClass: [NSTextFieldCell class]]) { [titleCell setBackgroundColor: [colorWell color]]; [object display]; } } /* only useful for older NSBox instances */ else if(sender == backgroundSwitch) { NSTextFieldCell *titleCell = (NSTextFieldCell *)[object titleCell]; if([titleCell isKindOfClass: [NSTextFieldCell class]]) { BOOL state = ([backgroundSwitch state] == NSOnState)?YES:NO; [titleCell setDrawsBackground: state]; } } [super ok:sender]; } /* Sync from object ( NSBox ) changes to the inspector */ - (void) revert: (id) sender { NSTextFieldCell *titleCell; if ( object == nil ) return; /* Position */ [positionMatrix selectCellWithTag: [object titlePosition]]; /* Border Type */ [borderMatrix selectCellWithTag: [object borderType]]; /* title */ [[titleForm cellAtIndex: 0] setStringValue: VSTR([object title])]; /* content view margins */ [horizontalSlider setIntValue: (int)[object contentViewMargins].width]; [verticalSlider setIntValue: (int)[object contentViewMargins].height]; /* title cell: background color */ titleCell = (NSTextFieldCell *)[object titleCell]; if([titleCell isKindOfClass: [NSTextFieldCell class]]) { [colorWell setColorWithoutAction: [titleCell backgroundColor]]; [backgroundSwitch setState: ([titleCell drawsBackground]? NSOnState:NSOffState)]; } [super revert:sender]; } /* delegate method for titleForm */ - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.3.1/Palettes/2Controls/ControlsPalette.gorm/0000755000175000017500000000000014327003123021216 5ustar heronherongorm-1.3.1/Palettes/2Controls/ControlsPalette.gorm/objects.gorm0000644000175000017500000002420314327003123023536 0ustar heronheronGNUstep archive000f4240:00000029:000000bf:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @p @hJI @ @01 NSView% ? @" @p @h  @p @hJ01 NSMutableArray1 NSArray&01 NSTextField1 NSControl% @f @d @T@ @5  @T@ @5J0 &%0 1NSTextFieldCell1 NSActionCell1NSCell0 &%Text0 1NSFont%&&&&&&JJ &&&&&&&I0 1NSColor0 &% NSNamedColorSpace0&%System0&%textBackgroundColor0 0& % textColor01NSButton% @ @c @L @8  @L @8J0 &%01 NSButtonCell0&%Button &&&&&&JJ&&&&&&&I0&&&& &&0% @ @S @P @0  @P @0J0 &%00&%Switch01NSImage01NSMutableString&%GSSwitch &&&&&&JJ&&&&&&&I00&%GSSwitchSelected&&& &&01 NSColorWell% @e @P@ @J @>  @J @>J0 &%0! &&&&&&JJ&&&&&&&0"0#&% NSCalibratedWhiteColorSpace ?0$1NSSlider% @o @" @0 @P@  @0 @P@J0% &%0&1 NSSliderCell0'&%0 0(1NSNumber1NSValued &&&&&&JJ&&&&&&&I ? %0) &&&&&&JJ &&&&&&&I 0* 0+&% System0,&% controlTextColor0-0.0/&%common_SliderVert &&&&&&JJ&&&&&&&I%00% @d @$ @T @0  @T @0J01 &%0203&%0 (&&&&&&JJ&&&&&&&I ? %04 &&&&&&JJ &&&&&&&I *050607&%common_SliderHoriz &&&&&&JJ&&&&&&&I%081NSProgressIndicator% @e @B @Q@ @2  @Q@ @2J09 & ?UUUUUU @I @Y0:1 GSCustomView1 GSNibItem0;&%GormCustomView @U @$ @N @D&0<1 NSStepper% @c @c @2 @:  @2 @:J0= &%0>1! NSStepperCell0?&%00@i%&&&&&&JJ&&&&&&&I @M ?%%0A % @T @_ @R@ @2  @R@ @2J0B &%0C0D&%Text0E% A@D&&&&&&JJ &&&&&&&I 0F % @T @Y @R@ @2  @R@ @2J0G &%0H0I& % Bold Text0J% A@I&&&&&&JJ &&&&&&&I 0K % @T @T @R@ @2  @R@ @2J0L &%0M0N& % Fixed Text0O% A@N&&&&&&JJ &&&&&&&I 0P1"NSForm1#NSMatrix% @f @Z @T@ @F  @T@ @FJ0Q &%0R1$ NSFormCell &&&&&&JJ&&&&&&&I 0S0T&%Field: &&&&&&JJ&&&&&&&% @T@ @5 @0U +0V&% controlBackgroundColorU0W& % NSFormCell%%0X &0Y$ &&&&&&JJ&&&&&&&I A0Z0[&%Field: &&&&&&JJ&&&&&&&0\$ &&&&&&JJ&&&&&&&I A0]0^&%Field: &&&&&&JJ&&&&&&&\0_#% @ @Z @L @B  @L @BJ0` &%0a &&&&&&JJ&&&&&&&I% @L @2 ? ?0b& % NSButtonCell0c0d&%Radio0e0f&%GSRadio&&&&&&JJ&&&&&&&I0g0h&%GSRadioSelected&&& &&%%0i &0j0k&%Radioe&&&&&&JJ&&&&&&&Ig&&& &&0l0m&%Radioe&&&&&&JJ&&&&&&&Ig&&& &&j0n1%NSBox% @ @P@ @I @  @I @J0o % @ @ @B   @B Jn0p &0q &o0r &&&&&&JJ&&&&&&& @ @%%0s%% @Q @" @ @I  @ @IJ0t % @ @ @B  @BJs0u &0v &t0w &&&&&&JJ&&&&&&& @ @%%0x%% @ @$ @I @I  @I @IJ0y % @ @ @B @8  @B @8Jx0z &0{ &y0|0}&%Box &&&&&&JJ&&&&&&& @ @%%0~ +0&% windowBackgroundColor0&%Window0&%Controls @ @b` @Ç @|I00&% NSApplicationIcon&   @ @p0 &0 &01&NSMutableDictionary1' NSDictionary&0&%GormCustomView:0&%Slider100&%Button10&%Slider$0& % ColorWell0&%View(0)y0&%Box(1)s0& % Matrix(0)_0&% NSOwner0&%ControlsPalette0& % TextField3F0& % PaletteWin0&%View(1)o0&%Box(2)x0&%FormP0&%Stepper<0& % TextField5K0& % TextField0& % ButtonCell(0)j0&%View(2)t0&%Button0& % TextField2A0&%Box(0)n0&%ProgressIndicator80& % ButtonCell(1)l0 &01(NSNibConnector0&% NSOwner0(0(0(0(0(0(0(0(0(01)NSNibOutletConnector0&%originalWindow0(0(0(0(0(0(0(0(0(0(0(0(0(0&&gorm-1.3.1/Palettes/2Controls/ControlsPalette.gorm/data.info0000644000175000017500000000027014327003123023003 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/2Controls/ControlsPalette.gorm/data.classes0000644000175000017500000000036414327003123023511 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; ControlsPalette = { Actions = ( ); Outlets = ( ); Super = IBPalette; }; GormNSPopUpButton = { Actions = ( ); Outlets = ( ); Super = NSPopUpButton; }; }gorm-1.3.1/Palettes/2Controls/GormCellAttributesInspector.m0000644000175000017500000000470514327003123022757 0ustar heronheron/* GormCellAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include "GormCellAttributesInspector.h" /* IBObjectAdditions category */ @implementation NSCell (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormCellAttributesInspector"; } @end @implementation GormCellAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSCellInspector" owner: self] == NO) { NSLog(@"Could not gorm GormCellInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok:(id) sender { if (sender == disabledSwitch) { [object setEnabled: [disabledSwitch state]]; } else if (sender == tagForm) { [object setTag: [[sender cellAtIndex: 0] intValue]]; } [super ok: sender]; } /* Sync from object ( NSCell ) changes to the inspector */ - (void) revert:(id) sender { if ( object == nil) return; [disabledSwitch setState: [object isEnabled]]; [[tagForm cellAtRow: 0 column: 0] setIntValue: [object tag]]; [super revert:sender]; } /* delegate method for tagForm */ - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.3.1/Palettes/2Controls/GormMatrixAttributesInspector.m0000644000175000017500000002444614327003123023350 0ustar heronheron/* GormMatrixdAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include #include "GormMatrixAttributesInspector.h" #include #include @implementation NSMatrix (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormMatrixAttributesInspector"; } @end @implementation GormMatrixAttributesInspector NSUInteger rowsStepperValue; NSUInteger colsStepperValue; - (void) _displayObject: (id)obj resize: (BOOL)resize { id document = [(id)NSApp documentForObject: obj]; id editor = [document editorForObject: obj create: NO]; NSRect eoFrame = [editor frame]; if (resize == NO) { NSRect rect = [obj frame]; NSSize cell = [obj cellSize]; NSSize inter = [obj intercellSpacing]; cell.width = (rect.size.width + inter.width) / colsStepperValue - inter.width; cell.height = (rect.size.height + inter.height) / rowsStepperValue - inter.height; [object setCellSize: cell]; } else { [obj sizeToCells]; } [obj setNeedsDisplay: YES]; [[editor superview] setNeedsDisplayInRect: GormExtBoundsForRect(eoFrame)]; } - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSMatrixInspector" owner: self] == NO) { NSLog(@"Could not gorm GormMatrixInspector"); return nil; } /* It shouldn't break functionality of rows/columns number changing if someone will decide in the future to change the values of the corresponding steppers in the gorm file. So we stores those values from the gorm file in the auxillary variables to use its later in -[ok:]. (It allows us to avoid the values being hardcoded). */ rowsStepperValue = [rowsStepper intValue]; colsStepperValue = [colsStepper intValue]; return self; } - (void) _refreshCellsComparingWithOldCells: (NSArray *)oldCells { id document = [(id)NSApp activeDocument]; NSArray *newCells = [[self object] cells]; NSUInteger newCount = [newCells count]; NSUInteger oldCount = [oldCells count]; NSMutableArray *cellsAdded = [NSMutableArray arrayWithCapacity: newCount]; NSMutableArray *cellsRemoved = [NSMutableArray arrayWithCapacity: newCount]; NSEnumerator *en = nil; NSCell *c = nil; if (newCount > oldCount) { en = [newCells objectEnumerator]; while ((c = [en nextObject]) != nil) { if ([oldCells containsObject: c] == NO) { [cellsAdded addObject: c]; // object is new } } [document attachObjects: cellsAdded toParent: [self object]]; } else if (oldCount > newCount) { en = [oldCells objectEnumerator]; while ((c = [en nextObject]) != nil) { if ([newCells containsObject: c] == NO) { [cellsRemoved addObject: c]; // object is new } } [document detachObjects: cellsRemoved closeEditors: NO]; } else { NSLog(@"No change"); } } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { if (sender == autosizeSwitch) { [object setAutosizesCells: ([sender state] == NSOnState)]; } else if (sender == autotagSwitch) { NSInteger rows; NSInteger cols; int i; [object getNumberOfRows: &rows columns: &cols]; if ((rows == 1) && (cols > 1)) { for (i = 0; i < cols; i++) { [[object cellAtRow:0 column:i] setTag: i]; } } else if ((rows > 1) && (cols ==1)) { for (i = 0; i < rows; i++) { [[object cellAtRow:i column:0] setTag: i]; } } } else if (sender == backgroundColorWell) { [object setBackgroundColor: [sender color]]; } else if (sender == drawsBackgroundSwitch) { [object setDrawsBackground: ([sender state] == NSOnState)]; } else if (sender == modeMatrix) { [(NSMatrix *)object setMode: [[sender selectedCell] tag]]; } else if (sender == propagateSwitch) { NSButtonCell *cell; NSInteger tag; NSString *title; int c; if ([object prototype] == nil) { NSLog(@"prototype is nil, using first cell in matrix"); if ([object cells] > 0) { NSCell *acell = [[object cells] objectAtIndex: 0]; [object setPrototype: acell]; NSLog(@"prototype set %@", acell); } } if ([object prototype] != nil) { for (c = 0; c < [object numberOfColumns]; c++) { int r; for (r = 0; r < [object numberOfRows]; r++) { cell = [object cellAtRow: r column: c]; tag = [cell tag]; title = [cell title]; cell = [[object prototype] copy]; [cell setTag: tag]; [cell setTitle: title]; [object putCell:cell atRow:r column:c]; [cell release]; } } } [object deselectAllCells]; [object selectCellAtRow: 0 column: 0]; } else if (sender == selRectSwitch) { [object setSelectionByRect: ([sender state] == NSOnState)]; } else if (sender == tagForm) { [object setTag: [[sender cellAtIndex: 0] intValue]]; } else if (sender == rowsForm || sender == colsForm) { int rows = [[rowsForm cellAtIndex: 0] intValue]; int cols = [[colsForm cellAtIndex: 0] intValue]; int num = 0; NSArray *oldCells = [NSArray arrayWithArray: [[self object] cells]]; while((num = [object numberOfRows]) != rows) { if(num > rows) { [object removeRow: num - 1]; // remove last row } else { [object addRow]; } } while((num = [object numberOfColumns]) != cols) { if(num > cols) { [object removeColumn: num - 1]; // remove last column } else { [object addColumn]; } } [self _displayObject: object resize: YES]; [self _refreshCellsComparingWithOldCells: oldCells]; } else if(sender == rowsStepper) { int delta = [sender intValue] - rowsStepperValue; int num = [object numberOfRows]; NSArray *oldCells = [NSArray arrayWithArray: [[self object] cells]]; while(delta > 0) { [object addRow]; delta--; num++; } while((delta < 0) && (num > 1)) { [object removeRow: num - 1]; num--; delta++; } [[rowsForm cellAtIndex: 0] setIntValue: num]; [sender setIntValue: num]; rowsStepperValue = num; [self _displayObject: object resize: YES]; [self _refreshCellsComparingWithOldCells: oldCells]; } else if(sender == colsStepper) { int delta = [sender intValue] - colsStepperValue; int num = [object numberOfColumns]; NSArray *oldCells = [NSArray arrayWithArray: [[self object] cells]]; while(delta > 0) { [object addColumn]; delta--; num++; } while((delta < 0) && (num > 1)) { [object removeColumn: num - 1]; num--; delta++; } [[colsForm cellAtIndex: 0] setIntValue: num]; [sender setIntValue: num]; colsStepperValue = num; [self _displayObject: object resize: YES]; [self _refreshCellsComparingWithOldCells: oldCells]; } /* * prototypeMatrix * If prototype cell is set show it else show a matrix cell */ if ([object prototype] == nil) { [prototypeMatrix putCell: [object cellAtRow:0 column:0] atRow:0 column:0]; } else { [prototypeMatrix putCell: [object prototype] atRow:0 column:0]; } [super ok:sender]; } /* Sync from object ( NSMatrix ) changes to the inspector */ - (void) revert:(id)sender { if (object == nil) return; [autosizeSwitch setState: ([object autosizesCells]) ? NSOnState : NSOffState]; { NSInteger rows; NSInteger cols; [object getNumberOfRows: &rows columns: &cols]; if ((rows == 1 && cols > 1) || (cols == 1 && rows > 1)) [autotagSwitch setEnabled: YES]; else [autotagSwitch setEnabled: NO]; } [backgroundColorWell setColorWithoutAction: [object backgroundColor]]; [drawsBackgroundSwitch setState: ([object drawsBackground]) ? NSOnState : NSOffState]; [modeMatrix selectCellWithTag: [(NSMatrix *)object mode]]; if ([object prototype] == nil) [prototypeMatrix putCell: [object cellAtRow:0 column:0] atRow:0 column:0]; else [prototypeMatrix putCell: [object prototype] atRow:0 column:0]; [selRectSwitch setState: ([object isSelectionByRect]) ? NSOnState : NSOffState]; [[tagForm cellAtIndex: 0] setIntValue: [object tag]]; rowsStepperValue = [object numberOfRows]; [[rowsForm cellAtIndex: 0] setIntValue: rowsStepperValue]; [rowsStepper setIntValue: rowsStepperValue]; colsStepperValue = [object numberOfColumns]; [[colsForm cellAtIndex: 0] setIntValue: colsStepperValue]; [colsStepper setIntValue: colsStepperValue]; [super revert:sender]; } /* delegate method for tag Form */ - (void) controlTextDidEndEditing: (NSNotification*)aNotification { [self ok:[aNotification object]]; } @end gorm-1.3.1/Palettes/2Controls/GormSliderAttributesInspector.h0000644000175000017500000000311214327003123023304 0ustar heronheron/* GormSliderAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormSliderAttributesInspector_h #define INCLUDED_GormSliderAttributesInspector_h #include @class NSButton; @class NSForm; @interface GormSliderAttributesInspector: IBInspector { NSForm *valuesForm; NSForm *altIncrementForm; NSButton *continuousSwitch; NSButton *enabledSwitch; NSButton *stopOnTicksSwitch; NSForm *knobThicknessForm; NSForm *tagForm; } @end #endif /* INCLUDED_GormSliderAttributesInspector_h */ gorm-1.3.1/Palettes/2Controls/GormButtonEditor.m0000644000175000017500000003307714327003123020570 0ustar heronheron/* GormButtonEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormButtonEditor.h" #define _EO ((NSButton *)_editedObject) @interface NSButtonCell (GormObjectAdditions) - (NSRect) gormTitleRectForFrame: (NSRect) cellFrame inView: (NSView *)controlView; @end @implementation NSButtonCell (GormObjectAdditions) - (NSRect) gormTitleRectForFrame: (NSRect) cellFrame inView: (NSView *)controlView { unsigned mask; NSImage *imageToDisplay; NSRect imageRect; NSString *titleToDisplay; NSRect titleRect = {{0,0},{0,0}}; NSSize imageSize = {0, 0}; NSSize titleSize = {0, 0}; NSColor *backgroundColor = nil; BOOL flippedView = [controlView isFlipped]; NSCellImagePosition ipos = _cell.image_position; cellFrame = [self drawingRectForBounds: cellFrame]; if (_cell.is_highlighted) { mask = _highlightsByMask; if (_cell.state) mask &= ~_showAltStateMask; } else if (_cell.state) mask = _showAltStateMask; else mask = NSNoCellMask; /* Pushed in buttons contents are displaced to the bottom right 1px. */ if (_cell.is_bordered && (mask & NSPushInCellMask)) { cellFrame = NSOffsetRect(cellFrame, 1., flippedView ? 1. : -1.); } /* Determine the background color. */ if (mask & (NSChangeGrayCellMask | NSChangeBackgroundCellMask)) { backgroundColor = [NSColor selectedControlColor]; } if (backgroundColor == nil) backgroundColor = [NSColor controlBackgroundColor]; /* * Determine the image and the title that will be * displayed. If the NSContentsCellMask is set the * image and title are swapped only if state is 1 or * if highlighting is set (when a button is pushed it's * content is changed to the face of reversed state). */ if (mask & NSContentsCellMask) { imageToDisplay = _altImage; if (!imageToDisplay) imageToDisplay = _cell_image; titleToDisplay = _altContents; if (titleToDisplay == nil || [titleToDisplay isEqual: @""]) titleToDisplay = _contents; } else { imageToDisplay = _cell_image; titleToDisplay = _contents; } if (imageToDisplay) { imageSize = [imageToDisplay size]; } titleSize = [self _sizeText: titleToDisplay]; if (flippedView == YES) { if (ipos == NSImageAbove) { ipos = NSImageBelow; } else if (ipos == NSImageBelow) { ipos = NSImageAbove; } } switch (ipos) { case NSNoImage: imageToDisplay = nil; titleRect = cellFrame; { int heightDiff = titleRect.size.height - titleSize.height; titleRect.origin.y += heightDiff - heightDiff / 2; titleRect.size.height -= heightDiff; } break; case NSImageOnly: titleToDisplay = nil; imageRect = cellFrame; break; case NSImageLeft: imageRect.origin = cellFrame.origin; imageRect.size.width = imageSize.width; imageRect.size.height = cellFrame.size.height; if (_cell.is_bordered || _cell.is_bezeled) { imageRect.origin.x += 3; imageRect.size.height -= 2; imageRect.origin.y += 1; } titleRect = imageRect; titleRect.origin.x += imageSize.width + GSCellTextImageXDist; titleRect.size.width = cellFrame.size.width - imageSize.width - GSCellTextImageXDist; if (_cell.is_bordered || _cell.is_bezeled) { titleRect.size.width -= 3; } { int heightDiff = titleRect.size.height - titleSize.height; titleRect.origin.y += heightDiff - heightDiff / 2; titleRect.size.height -= heightDiff; } break; case NSImageRight: imageRect.origin.x = NSMaxX(cellFrame) - imageSize.width; imageRect.origin.y = cellFrame.origin.y; imageRect.size.width = imageSize.width; imageRect.size.height = cellFrame.size.height; if (_cell.is_bordered || _cell.is_bezeled) { imageRect.origin.x -= 3; imageRect.size.height -= 2; imageRect.origin.y += 1; } titleRect.origin = cellFrame.origin; titleRect.size.width = cellFrame.size.width - imageSize.width - GSCellTextImageXDist; titleRect.size.height = cellFrame.size.height; if (_cell.is_bordered || _cell.is_bezeled) { titleRect.origin.x += 3; titleRect.size.width -= 3; } { int heightDiff = titleRect.size.height - titleSize.height; titleRect.origin.y += heightDiff - heightDiff / 2; titleRect.size.height -= heightDiff; } break; case NSImageAbove: /* * In this case, imageRect is all the space we can allocate * above the text. * The drawing code below will then center the image in imageRect. */ titleRect.origin.x = cellFrame.origin.x; titleRect.origin.y = cellFrame.origin.y; titleRect.size.width = cellFrame.size.width; titleRect.size.height = titleSize.height; imageRect.origin.x = cellFrame.origin.x; imageRect.origin.y = cellFrame.origin.y; imageRect.origin.y += titleRect.size.height + GSCellTextImageYDist; imageRect.size.width = cellFrame.size.width; imageRect.size.height = cellFrame.size.height; imageRect.size.height -= titleSize.height + GSCellTextImageYDist; if (_cell.is_bordered || _cell.is_bezeled) { imageRect.size.width -= 6; imageRect.origin.x += 3; titleRect.size.width -= 6; titleRect.origin.x += 3; imageRect.size.height -= 1; titleRect.size.height -= 1; } break; case NSImageBelow: /* * In this case, imageRect is all the space we can allocate * below the text. * The drawing code below will then center the image in imageRect. */ titleRect.origin.x = cellFrame.origin.x; titleRect.origin.y = cellFrame.origin.y + cellFrame.size.height; titleRect.origin.y -= titleSize.height; titleRect.size.width = cellFrame.size.width; titleRect.size.height = titleSize.height; imageRect.origin.x = cellFrame.origin.x; imageRect.origin.y = cellFrame.origin.y; imageRect.size.width = cellFrame.size.width; imageRect.size.height = cellFrame.size.height; imageRect.size.height -= titleSize.height + GSCellTextImageYDist; if (_cell.is_bordered || _cell.is_bezeled) { imageRect.size.width -= 6; imageRect.origin.x += 3; titleRect.size.width -= 6; titleRect.origin.x += 3; imageRect.size.height -= 1; imageRect.origin.y += 1; } break; case NSImageOverlaps: titleRect = cellFrame; imageRect = cellFrame; { int heightDiff = titleRect.size.height - titleSize.height; titleRect.origin.y += heightDiff - heightDiff / 2; titleRect.size.height -= heightDiff; } break; } return titleRect; } @end static BOOL done_editing; static NSRect oldFrame; @implementation GormButtonEditor - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: NSControlTextDidEndEditingNotification] == YES) { done_editing = YES; } else if([name isEqual: IBWillSaveDocumentNotification] == YES) { done_editing = YES; [[NSNotificationCenter defaultCenter] removeObserver: self name: IBWillSaveDocumentNotification object: nil]; [tempTextView resignFirstResponder]; [tempTextView removeFromSuperview]; [tempTextView setDelegate: nil]; tempTextView = nil; } } - (void) textDidChange: (NSNotification *)aNotification { [_EO setTitle: [[aNotification object] string]]; [_EO setNeedsDisplay: NO]; [[(id)NSApp inspectorsManager] updateSelection]; } - (void) textDidEndEditing: (NSNotification *)aNotification { [[aNotification object] setDelegate: nil]; [_EO setTitle: [[aNotification object] string]]; [[aNotification object] removeFromSuperview]; { NSSize suggestedSize; NSRect newFrame = [_EO frame]; suggestedSize = [[_EO cell] cellSize]; if (suggestedSize.width > newFrame.size.width) { newFrame.origin.x = newFrame.origin.x - (int)((suggestedSize.width - newFrame.size.width) / 2); newFrame.size.width = suggestedSize.width; [_EO setFrame: newFrame]; [[self window] disableFlushWindow]; [[self window] display]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } } } /* Edit a textfield. If it's not already editable, make it so, then edit it */ - (NSEvent *) editTextField: view withEvent: (NSEvent *)theEvent { unsigned eventMask; BOOL wasEditable; BOOL didDrawBackground; NSTextField *editField; NSRect frame; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSDate *future = [NSDate distantFuture]; NSEvent *e; editField = view; frame = [editField frame]; wasEditable = [editField isEditable]; [editField setEditable: YES]; didDrawBackground = [editField drawsBackground]; [editField setDrawsBackground: YES]; [nc addObserver: self selector: @selector(handleNotification:) name: NSControlTextDidEndEditingNotification object: nil]; /* Do some modal editing */ [editField selectText: self]; eventMask = NSLeftMouseDownMask | NSLeftMouseUpMask | NSKeyDownMask | NSKeyUpMask | NSFlagsChangedMask; done_editing = NO; while (!done_editing) { NSEventType eType; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; switch (eType) { case NSLeftMouseDown: { NSPoint dp = [self convertPoint: [e locationInWindow] fromView: nil]; if (NSMouseInRect(dp, frame, NO) == NO) { done_editing = YES; break; } } [[editField currentEditor] mouseDown: e]; break; case NSLeftMouseUp: [[editField currentEditor] mouseUp: e]; break; case NSLeftMouseDragged: [[editField currentEditor] mouseDragged: e]; break; case NSKeyDown: [[editField currentEditor] keyDown: e]; break; case NSKeyUp: [[editField currentEditor] keyUp: e]; break; case NSFlagsChanged: [[editField currentEditor] flagsChanged: e]; break; default: NSLog(@"Internal Error: Unhandled event during editing: %@", e); break; } } [editField setEditable: wasEditable]; [editField setDrawsBackground: didDrawBackground]; [nc removeObserver: self name: NSControlTextDidEndEditingNotification object: nil]; [[editField currentEditor] resignFirstResponder]; [self setNeedsDisplay: YES]; tempTextView = nil; return e; } - (NSTextView *) startEditingInFrame: (NSRect) frame { NSTextView *textView = [[NSTextView alloc] initWithFrame: frame]; NSTextContainer *textContainer = [textView textContainer]; tempTextView = textView; [textContainer setContainerSize: NSMakeSize(3000, NSHeight([textView frame]))]; [textContainer setWidthTracksTextView: NO]; [textContainer setHeightTracksTextView: NO]; [textView setHorizontallyResizable: NO]; [textView setVerticallyResizable: NO]; [textView setMinSize: frame.size]; [textView setMaxSize: frame.size]; [textView setAutoresizingMask: NSViewMinXMargin | NSViewMaxXMargin]; [textView setSelectable: YES]; [textView setEditable: YES]; [textView setRichText: NO]; [textView setImportsGraphics: NO]; [textView setFieldEditor: YES]; [textView setHorizontallyResizable: YES]; [textView setDelegate: self]; [textView setPostsFrameChangedNotifications:YES]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(textViewFrameChanged:) name: NSViewFrameDidChangeNotification object: textView]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: IBWillSaveDocumentNotification object: nil]; oldFrame = frame; return textView; } - (void) textViewFrameChanged: (NSNotification *)aNot { static BOOL inside = NO; NSRect newFrame; if (inside) return; inside = YES; [[[self window] contentView] setNeedsDisplayInRect: oldFrame]; newFrame = [[aNot object] frame]; if ([[aNot object] alignment] == NSCenterTextAlignment) { NSRect frame = [[_EO cell] gormTitleRectForFrame: [_EO frame] inView: _EO]; int difference = newFrame.size.width - frame.size.width; newFrame.origin.x = frame.origin.x - (int) (difference / 2); [[aNot object] setFrame: newFrame]; oldFrame = newFrame; } [[self superview] setNeedsDisplayInRect: oldFrame]; inside = NO; } - (void) mouseDown: (NSEvent*)theEvent { // double-clicked -> let's edit if (([theEvent clickCount] == 2) && [parent isOpened]) { NSRect frame = [[_EO cell] gormTitleRectForFrame: [_EO frame] inView: _EO]; NSTextView *tv = [self startEditingInFrame: frame]; [[self superview] addSubview: tv]; [tv setText: [_EO title]]; [tv setAlignment: [_EO alignment]]; [tv setFont: [_EO font]]; [[self window] display]; [[self window] makeFirstResponder: tv]; [tv mouseDown: theEvent]; } else { [super mouseDown: theEvent]; } } @end gorm-1.3.1/Palettes/2Controls/GormCellSizeInspector.h0000644000175000017500000000226314327003123021533 0ustar heronheron/* GormViewSizeInspector.m * * Copyright (C) 2021 Free Software Foundation, Inc. * * Author: Gregory John Casamento @interface GormCellSizeInspector : IBInspector { NSTextField *width; NSTextField *height; } @end #endif gorm-1.3.1/Palettes/2Controls/GormMatrixAttributesInspector.h0000644000175000017500000000343714327003123023340 0ustar heronheron/* GormMatrixdAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormMatrixAttributesInspector_h #define INCLUDED_GormMatrixAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSForm; @class NSMatrix; @class NSStepper; @interface GormMatrixAttributesInspector:IBInspector { NSButton *autosizeSwitch; NSButton *autotagSwitch; NSColorWell *backgroundColorWell; NSButton *drawsBackgroundSwitch; NSMatrix *modeMatrix; NSButton *propagateSwitch; NSMatrix *prototypeMatrix; NSButton *selRectSwitch; NSForm *tagForm; NSForm *rowsForm; NSForm *colsForm; NSStepper *rowsStepper; NSStepper *colsStepper; } @end #endif /* INCLUDED_GormMatrixAttributesInspector_h */ gorm-1.3.1/Palettes/2Controls/GormColorWellAttributesInspector.m0000644000175000017500000000575114327003123024004 0ustar heronheron/* GormColorWellAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include #include "GormColorWellAttributesInspector.h" /* IBObjectAdditions category */ @implementation NSColorWell (IBObjectAdditions) - (NSString *) inspectorClassName { return @"GormColorWellAttributesInspector"; } @end @implementation GormColorWellAttributesInspector -(id) init { if ( ( self = [super init] ) == nil ) { return nil; } if ([NSBundle loadNibNamed: @"GormNSColorWellInspector" owner: self] == NO) { NSLog(@"Could not open gorm GormNSColorWellInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { if ( sender == initialColorWell ) { [object setColor: [initialColorWell color]]; } else if ( sender == disabledSwitch ) { [object setEnabled: ([disabledSwitch state] == NSOnState)?NO:YES]; // it's being enabled to show it's disabled! } else if ( sender == borderedSwitch ) { [object setBordered: [borderedSwitch state]]; } else if ( sender == tagField ) { [object setTag: [tagField intValue]]; } [super ok:sender]; } /* Sync from object ( NSColorWell ) changes to the inspector */ - (void) revert:(id) sender { if ( object == nil ) return; [disabledSwitch setState: ([object isEnabled])?NSOffState:NSOnState]; // On = NO and Off = YES, since we're tracking the Disabled state. [borderedSwitch setState: [object isBordered]]; [initialColorWell setColorWithoutAction: [object color]]; [tagField setIntValue: [object tag]]; [super revert:sender]; } /* delegate method for tag Field */ - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok: [aNotification object]]; } @end gorm-1.3.1/Palettes/2Controls/GormNSPopUpButton.m0000644000175000017500000000554114327003123020641 0ustar heronheron#include #include "GormNSPopUpButton.h" Class _gormnspopupbuttonCellClass = 0; @implementation GormNSPopUpButton /* * Class methods */ + (void) initialize { if (self == [GormNSPopUpButton class]) { // Initial version [self setVersion: 1]; [self setCellClass: [GormNSPopUpButtonCell class]]; } } + (Class) cellClass { return _gormnspopupbuttonCellClass; } + (void) setCellClass: (Class)classId { _gormnspopupbuttonCellClass = classId; } - (NSString*) editorClassName { return @"GormPopUpButtonEditor"; } - (NSString *) className { return @"NSPopUpButton"; } @end @implementation NSPopUpButtonCell (DirtyHack) - (id) _gormInitTextCell: (NSString *) string { return [super initTextCell: string]; } @end @implementation GormNSPopUpButtonCell /* Overriden helper method */ - (void) _initMenu { NSMenu *menu = [[NSMenu allocSubstitute] initWithTitle: @""]; [self setMenu: menu]; RELEASE(menu); } - (NSString *) className { return @"NSPopUpButtonCell"; } /** * Override this here, since themes may override it. * Always want to show the menu view since it's editable. */ - (void) attachPopUpWithFrame: (NSRect)cellFrame inView: (NSView *)controlView { NSRectEdge preferredEdge = _pbcFlags.preferredEdge; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSWindow *cvWin = [controlView window]; NSMenuView *mr = [[self menu] menuRepresentation]; int selectedItem; [nc postNotificationName: NSPopUpButtonCellWillPopUpNotification object: self]; [nc postNotificationName: NSPopUpButtonWillPopUpNotification object: controlView]; // Convert to Screen Coordinates cellFrame = [controlView convertRect: cellFrame toView: nil]; cellFrame.origin = [cvWin convertBaseToScreen: cellFrame.origin]; if (_pbcFlags.pullsDown) selectedItem = -1; else { selectedItem = [self indexOfSelectedItem]; if (selectedItem == -1) // Test selectedItem = 0; } if (selectedItem > 0) { [mr setHighlightedItemIndex: selectedItem]; } if ([controlView isFlipped]) { if (preferredEdge == NSMinYEdge) { preferredEdge = NSMaxYEdge; } else if (preferredEdge == NSMaxYEdge) { preferredEdge = NSMinYEdge; } } // Ask the MenuView to attach the menu to this rect [mr setWindowFrameForAttachingToRect: cellFrame onScreen: [cvWin screen] preferredEdge: preferredEdge popUpSelectedItem: selectedItem]; // Set to be above the main window [cvWin addChildWindow: [mr window] ordered: NSWindowAbove]; // Last, display the window [[mr window] orderFrontRegardless]; [nc addObserver: self selector: @selector(_handleNotification:) name: NSMenuDidSendActionNotification object: _menu]; } @end gorm-1.3.1/Palettes/2Controls/GormNSCellInspector.gorm/0000755000175000017500000000000014327003123021730 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormNSCellInspector.gorm/objects.gorm0000644000175000017500000001167414327003123024260 0ustar heronheronGNUstep archive000f4240:0000001e:0000006a:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 1NSForm1NSMatrix1 NSControl% @Y@ @d@ @N @5  @N @5J0 &%0 1 NSFormCell1 NSActionCell1NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&I 00&%Field:&&&&&&JJ&&&&&&&% @N @5 @01NSColor0&% NSNamedColorSpace0&% System0&% controlBackgroundColor00&% NSCalibratedRGBColorSpace ?* ?* ?* ?* ?0& % NSFormCell%%0 &0&&&&&&JJ&&&&&&&I A00&%Tag:&&&&&&JJ&&&&&&&2 ok:v24@0:8@160 % @O @g @` @N  @` @NJ0 &0 % @ @ @^@ @A  @^@ @AJ0 &0!1NSButton% @8 @$ @Q @1  @Q @1J0" &%0#1 NSButtonCell0$&%Disabled0%1NSImage0&1NSMutableString&%GSSwitch&&&&&&JJ&&&&&&&I0'0(&%GSSwitchSelected&&& &&0)0*&%Options0+%&&&&&&JJ&&&&&&& @ @%%0,0-&% Title0.% A &&&&&&JJ&&&&&&& %%0/00&% windowBackgroundColor01&%Window02&%Cell Attributes Inspector2 ? ? @Ç @|I&   @ @03 &04 &051NSMutableDictionary1 NSDictionary& 06&%View(1)07&%Box108& % FormCell(1) 09&%Box(0)0:& % ButtonCell(0)#0;&%Button10<% @$ @N @L @0  @L @0J0= &%0>0?&%Switch%&&&&&&JJ&&&&&&&I'&&& &&0@&%Form 0A&% NSOwner0B&%GormCellInspector0C&%View(0) 0D&%Button2!0E& % FormCell(0)0F& % Inspector0G&%Button0H% @$ @N @L @0  @L @0J0I &%0J0K&%Switch%&&&&&&JJ&&&&&&&I'&&& &&0L &0M1NSNibConnectorFA0NGF0O;F0P@90Q1NSNibOutletConnectorA@0R&%tagForm0SAF0T&%window0U790VD60W1NSNibControlConnectorDA0X&%ok:0YAD0Z&%disabledSwitch0[D@0\& % nextKeyView0]@D\0^@A0_&%delegate0`FD0a&%initialFirstResponder0b90cC90dE@0e8@0f670g:D0h&gorm-1.3.1/Palettes/2Controls/GormNSCellInspector.gorm/data.info0000644000175000017500000000027014327003123023515 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/2Controls/GormNSCellInspector.gorm/data.classes0000644000175000017500000000027714327003123024226 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormCellInspector = { Actions = ( ); Outlets = ( disabledSwitch, tagForm ); Super = IBInspector; }; }gorm-1.3.1/Palettes/2Controls/GormButtonAttributesInspector.h0000644000175000017500000000334714327003123023347 0ustar heronheron/* GormButtonAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormButtonAttributesInspector_h #define INCLUDED_GormButtonAttributesInspector_h #include @class NSForm; @class NSMatrix; @class NSPopUpButton; @class NSButton; @interface GormButtonAttributesInspector: IBInspector { NSMatrix *alignMatrix; NSMatrix *iconMatrix; NSForm *keyForm; NSMatrix *optionMatrix; NSForm *tagForm; NSForm *titleForm; NSPopUpButton *typeButton; NSPopUpButton *bezelButton; NSPopUpButton *keyEquiv; NSButton *altMod; NSButton *shiftMod; NSButton *ctrlMod; NSButton *cmdMod; } @end #endif /* INCLUDED_GormButtonAttributesInspector_h */ gorm-1.3.1/Palettes/2Controls/GormNSMatrixInspector.gorm/0000755000175000017500000000000014327003123022315 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormNSMatrixInspector.gorm/objects.gorm0000644000175000017500000004104614327003123024641 0ustar heronheronGNUstep archive000f4240:00000024:0000016c:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @~JI @h @01 NSView% ? @" @q @~  @q @~J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @~P  @p @~PJ-0 &0 %  @p @~P  @p @~PJ0 &0 % @J @m @d@ @P  @d@ @PJ0 &0 % @ @ @c @E  @c @EJ0 &01NSMatrix1 NSControl% @ @ @b @C  @b @CJ0 &%01 NSActionCell1NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&I% @R @3 ? 01NSColor0&% NSNamedColorSpace0&% System0&% controlBackgroundColor00&% NSCalibratedRGBColorSpace ?* ?* ?* ?* ?0& % NSButtonCell01 NSButtonCell0&%Radio01NSImage01NSMutableString&%GSRadio&&&&&&JJ&&&&&&&I00 &%GSRadioSelected&&& &&%%0! &0"0#&%Radio&&&&&&JJ&&&&&&&I&&& &&0$0%& % Highlight&&&&&&JJ&&&&&&&I&&& &&0&0'&%List&&&&&&JJ&&&&&&&I&&& &&0(0)&%Track&&&&&&JJ&&&&&&&I&&& &&2 ok:v24@0:8@16"0*1NSTextFieldCell0+&%Mode&&&&&&JJ &&&&&&&I0,0-&% windowBackgroundColor0. ? %%0/1NSForm% @J @, @d@ @5  @d@ @5J00 &%011 NSFormCell&&&&&&JJ&&&&&&&I 0203&%Field:&&&&&&JJ&&&&&&&% @d@ @5 @04 ?* ?* ?* ?* ?05& % NSFormCell%%06 &0708&%08&&&&&&JJ&&&&&&&I A090:&%Tag::&&&&&&JJ&&&&&&&70; % @J @s@ @d@ @S  @d@ @SJ0< &0= % @ @ @c @L  @c @LJ0> &0?1 NSColorWell% @J @8 @J @>  @J @>J0@ &%0A&&&&&&JJ&&&&&&&0B0C&% NSCalibratedWhiteColorSpace ?0D1NSButton% @. @ @_@ @1  @_@ @1J0E &%0F0G&%Draws Background0H0I&%GSSwitch&&&&&&JJ&&&&&&&I0J0K&%GSSwitchSelected&&& &&0L0M&%Background Color&&&&&&JJ &&&&&&&I,0N ? %%0O % @J @D @d@ @\@  @d@ @\@J0P &0Q % @ @ @c @W  @c @WJ0R &0S% @2 @R@ @[ @1  @[ @1J0T &%0U0V&%AutosizeH&&&&&&JJ&&&&&&&IJ&&& &&0W% @2 @J @[ @1  @[ @1J0X &%0Y0Z&%Selection by rectH&&&&&&JJ&&&&&&&IJ&&& &&0[% @( @; @` @4  @` @4J0\ &%0]0^&%Match Prototype&&&&&&JJ&&&&&&&I&&& &&0_% @( @ @` @4  @` @4J0` &%0a0b&%Tags = Positions&&&&&&JJ&&&&&&&I&&& &&0c0d&%Options&&&&&&JJ &&&&&&&I,0e ? %%0f % @J @c @d@ @S  @d@ @SJ0g &0h % @ @ @c @K  @c @KJ0i &0j % @ @ @b` @G  @b` @GJ0k &0l % @ @ @` @@  @` @@J0m &0n% @C @ @M @8  @M @8J0o &%0p&&&&&&JJ&&&&&&&I% @M @8 ? ?,0q ?* ?* ?* ?* ?0r& % NSButtonCell0s0t&%Button&&&&&&JJ&&&&&&&I&&& &&%%0u &0vt&&&&&&JJ&&&&&&&I&&& &&v0w0x&%Box&&&&&&JJ &&&&&&&I,0y ? @ @%%0z0{& % Prototype&&&&&&JJ &&&&&&&I,0| ? %%0} % @J @xp @d@ @W@  @d@ @W@J0~ &0 % @ @ @c @R  @c @RJ0 &0% @B @F @U @5  @U @5J0 &%00%&&&&&&JJ&&&&&&&I 00&%Field:&&&&&&JJ&&&&&&&% @U @5 @0& % NSFormCell%%0 &0&&&&&&JJ&&&&&&&I B00&%Rows:&&&&&&JJ&&&&&&&0% @2 @, @Z @5  @Z @5J0 &%0&&&&&&JJ&&&&&&&I 00&%Field:&&&&&&JJ&&&&&&&% @Z @5 @0& % NSFormCell%%0 &0&&&&&&JJ&&&&&&&I BL00&%Columns:&&&&&&JJ&&&&&&&01 NSStepper% @_@ @E @2 @:  @2 @:J0 &%01 NSStepperCell0&%101NSNumber1NSValued ?&&&&&&JJ&&&&&&&I @M ? ?%%0% @_@ @& @2 @:  @2 @:J0 &%00&%1&&&&&&JJ&&&&&&&I @M ? ?%%00& % Dimensions&&&&&&JJ&&&&&&& %%00&%Title0% A &&&&&&JJ&&&&&&& %%,0&%Window0&%Matrix Attributes Inspector ? @\@ @Ç @|I&   @ @p0 &0 &01 NSMutableDictionary1! NSDictionary&50& % ColorWell1?0& % FormCell(0)0& % FormCell(5)0& % ButtonCell(2)&0&%Form(0)0& % ButtonCell(7)]0&%Box(0)}0& % ActionCell(0)0&%Box 0&%StepperCell(1)0&%View(3)=0&%Button1D0&%Form/0&%Box2O0& % Stepper(1)0& % FormCell(3)10& % ButtonCell(0)"0& % ButtonCell(5)U0&%View(1) 0&%View(6)l0&%Button3[0&%Box4j0& % Inspector0& % FormCell(6)0&&&&&&JJ&&&&&&&I B0±0ñ&%Cols:&&&&&&JJ&&&&&&&0ı& % FormCell(1)0ű&&&&&&JJ&&&&&&&I B0Ʊ0DZ&%Cols:&&&&&&JJ&&&&&&&0ȱ& % ButtonCell(3)(0ɱ&%Form(1)0ʱ& % ButtonCell(8)a0˱& % ActionCell(1)p0̱&%Box(1)0ͱ&%View(4)Q0α&%Button5_0ϱ&%Matrix1n0б&%Box1;0ѱ& % FormCell(4)0ұ& % ButtonCell(1)$0ӱ& % ButtonCell(6)Y0Ա&%ButtonS0ձ&%StepperCell(0)0ֱ&%View(2) 0ױ&%Button2W0ر&%Matrix0ٱ&%Box3f0ڱ& % Stepper(0)0۱&% NSOwner0ܱ&%GormMatrixInspector0ݱ& % FormCell(2)70ޱ& % FormCell(7)0߱& % ButtonCell(9)v0& % ButtonCell(4)F0&%View(5)h0&%View(0)0&%Button40% @$ @V @L @8  @L @8J0 &%00&%Button&&&&&&JJ&&&&&&&I&&& &&0&%Cell(0)A0 &^^01"NSNibConnector0&% NSOwner0"̐0"ذ֐0"̐01#NSNibOutletConnector밵0&%tagForm0#0& % modeMatrix0#밿0&%window0"а̐0"0"0"̐0"԰͐0"װ͐0"͐0"㰿0"ΰ͐0"ٰ̐0"P"ϰP#방P&%backgroundColorWellP#밴P&%drawsBackgroundSwitchP#P&%prototypeMatrixP#P&%autosizeSwitchP #P & % selRectSwitchP #밽P &%propagateSwitchP #P& % autotagSwitchP1$NSNibControlConnectorP&%ok:P$P$ذP$԰P$װP$ΰP#P& % nextKeyViewP#P#ذP#ϰP#԰P#װP#P#ΰP#P &%initialFirstResponderP!#P"&%delegateP#"P$"P%"İP&"̐P'"ⰯP(#P)&%delegateP*"̐P+"̐P,"ְP-"ؐP."ҰؐP/"ؐP0"ȰؐP1"ؐP2"ݰP3"P4"АP5"谩P6"ఴP7$P8&% NSFirstP9&%ok:P:"ͰP;"ԐP<$89P="ӰאP>$89P?"P@$89PA"ʰΐPB$89PC"ِPD"PE"߰ϐPF"˰ϐPG"ѰPH$PI&%ok:PJ"ɰPK"ɐPL"ɐPM"ްɐPN"ڰPO"հڐPP"PQ"PR#PS& % rowsStepperPT#밷PU& % colsStepperPV#ɰPW&%delegatePX#밭PY&%rowsFormPZ#P[&%colsFormP\$ڰP]&%ok:P^$]P_$P`&%ok:Pa$ɰ`Pb &gorm-1.3.1/Palettes/2Controls/GormNSMatrixInspector.gorm/data.info0000644000175000017500000000027014327003123024102 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/2Controls/GormNSMatrixInspector.gorm/data.classes0000644000175000017500000000065014327003123024606 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormMatrixAttributesInspector = { Actions = ( ); Outlets = ( autosizeSwitch, autotagSwitch, backgroundColorWell, drawsBackgroundSwitch, modeMatrix, propagateSwitch, prototypeMatrix, selRectSwitch, tagForm, rowsForm, colsStepper, rowsStepper, colsForm ); Super = IBInspector; }; }gorm-1.3.1/Palettes/2Controls/GormNSBoxInspector.gorm/0000755000175000017500000000000014327003123021601 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormNSBoxInspector.gorm/objects.gorm0000644000175000017500000004601214327003123024123 0ustar heronheronGNUstep archive000f4240:00000025:00000167:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @w  @p @wJ-0 &0 %  @p @w  @p @wJ0 &0 % @R@ @n @] @Q  @] @QJ 0 &0 % @ @ @Y @L  @Y @LJ0 &01NSTextFieldCell1 NSActionCell1NSCell0&%Box01NSFont% A@&&&&&&JJ &&&&&&&I01NSColor0&% NSCalibratedRGBColorSpace ?* ?* ?* ?* ?0 ? @ @%%01NSForm1NSMatrix1 NSControl% @ @v0 @o @5  @o @5J 0% @W @k @R @]  @R @]J 0 &%00&&&&&&&JJ&&&&&&&I% @R @0 ? ?00&% NSNamedColorSpace0&% System0&% controlBackgroundColor0 ?* ?* ?* ?* ?0& % NSButtonCell0 1 NSButtonCell0!&%Button&&&&&&JJ&&&&&&&I&&& &&%%0" &0#0$& % Above Top&&&&&&JJ&&&&&&&I&&& &&0%0&&%Top&&&&&&JJ&&&&&&&I&&& &&0'0(& % Below Top&&&&&&JJ&&&&&&&I&&& &&0)0*&%No Title&&&&&&JJ&&&&&&&I&&& &&0+0,& % Above Bottom&&&&&&JJ&&&&&&&I&&& &&0-0.&%Bottom&&&&&&JJ&&&&&&&I&&& &&0/00& % Below Bottom&&&&&&JJ&&&&&&&I&&& &&2 ok:v24@0:8@16%01 &%021 NSFormCell&&&&&&JJ&&&&&&&I 0304&%Field:&&&&&&JJ&&&&&&&% @o @5 @05 ?* ?* ?* ?* ?06& % NSFormCell%%07 &08&&&&&&JJ&&&&&&&I A090:&%Title&&&&&&JJ&&&&&&&80; % @R@ @b @] @L  @] @LJ 0< &0= % @ @ @Y @>  @Y @>J0> &0?% @ @ @Y @:  @Y @:J0@ &%0A&&&&&&JJ&&&&&&&I% @9 @: 0B ?* ?* ?* ?* ?B0C& % NSButtonCell0D0E&%Button&&&&&&JJ&&&&&&&I&&& &&%%0F &0GE0H1NSImage0I& % noBorder_nib&&&&&&JJ&&&&&&&I&&& &&0J0K0L&%line_nib&&&&&&JJ&&&&&&&I&&& &&0M0N0O& % bezel_nib&&&&&&JJ&&&&&&&I&&& &&0P0Q0R& % ridge_nib&&&&&&JJ&&&&&&&I&&& &&P0S0T&%Border0U%&&&&&&JJ&&&&&&& @ @%%0V % @ @V @_ @L  @_ @LJ 0W &0X % @ @ @\ @>  @\ @>J0Y &0Z1 NSTextField% @ @2 @Y @*  @Y @*J0[ &%0\0]&%0 1 2 3 4 5 6 7 8 90^% A ]&&&&&&JJ &&&&&&&I0_0`&% NSCalibratedWhiteColorSpace > ?0a % ? ? @[ @2  @[ @2J0b &0c % @ @ @Z @,  @Z @,J0d &0e1NSSlider%  @[@ @0  @[@ @0J0f &%0g1 NSSliderCell0h&%00i1NSNumber1NSValued &&&&&&JJ&&&&&&&I A %0j&&&&&&JJ &&&&&&&I0k ? ? ? ? ?0l ?0m0n0o&%common_SliderHoriz&&&&&&JJ&&&&&&&I %0p0q&%Title^&&&&&&JJ&&&&&&& %%0r0s&%Horizontal OffsetU&&&&&&JJ&&&&&&& @ @%%0t % @a @V @_ @L  @_ @LJ 0u &0v % @ @ @\ @>  @\ @>J0w &0x % ? ? @[ @2  @[ @2J0y &0z % @ @ @Z @,  @Z @,J0{ &0|%  @[@ @0  @[@ @0J0} &%0~0&%0i&&&&&&JJ&&&&&&&I A %0&&&&&&JJ &&&&&&&I0 ? ? ? ? ?0 ?0n&&&&&&JJ&&&&&&&I %0q^&&&&&&JJ&&&&&&& %%0% @ @2 @Y @*  @Y @*J0 &%00&%0 1 2 3 4 5 6 7 8 9^&&&&&&JJ &&&&&&&I0` > ?00&%Vertical OffsetU&&&&&&JJ&&&&&&& @ @%%0 % @O @ @a` @T  @a` @TJ 0 &0 % @ @ @_@ @L  @_@ @LJ0 &01 NSColorWell% @B @8 @J @>  @J @>J0 &%0U&&&&&&JJ&&&&&&&0` ?* ?01NSButton% @ @ @^ @0  @^ @0J%0 &%00&%Draws Background001 NSMutableString&%GSSwitchU&&&&&&JJ&&&&&&&I00 &%GSSwitchSelected&&& &&00& % Title CellU&&&&&&JJ&&&&&&& @ @%%00&^&&&&&&JJ&&&&&&& %%00&% windowBackgroundColor0&%Window0&%NSBox Inspector ? @m  @Ç @|I&   @ @p0 &0 &01!NSMutableDictionary1" NSDictionary&30& % SliderCell(1)~0& % FormCell(0)80& % ButtonCell(2)M0& % ButtonCell(7)0(&&&&&&JJ&&&&&&&I&&& &&0&%TextFieldCell(0)0&%Box(0)a0& % ActionCell(0)A0&%Box 0&%Form10&%View(3) 0&%Matrix2?0&%Slider1e0&%Box2t0& % InspectorWin0&%ButtonCell(10)0.&&&&&&JJ&&&&&&&I&&& &&0& % ButtonCell(0)G0& % ButtonCell(5)0$&&&&&&JJ&&&&&&&I&&& &&0& % TextFieldZ0&%View(1)z0&%View(6)v0&%Slider3|0&%Box4;0& % TextField(0)0& % FormCell(1)20±& % ButtonCell(3)P0ñ& % ButtonCell(8)0ı*&&&&&&JJ&&&&&&&I&&& &&0ű&%TextFieldCell(1)\0Ʊ& % ActionCell(1)0DZ&%Box(1)x0ȱ& % ColorWell0ɱ&%View(4)=0ʱ&%Matrix10˱% @'  @P @T  @P @TJ0̱ &%0ͱ&&&&&&JJ&&&&&&&I% @P @3@ ? ?0α ?* ?* ?* ?* ?0ϱ& % NSButtonCell0б0ѱ&%Radio0ұ0ӱ &%GSRadio&&&&&&JJ&&&&&&&I0Ա0ձ &%GSRadioSelected&&& &&%%0ֱ &0ױ0ر&%NoneҰ&&&&&&JJ&&&&&&&I&&& &&0ٱ0ڱ&%LineҰ&&&&&&JJ&&&&&&&I&&& &&0۱0ܱ&%BezelҰ&&&&&&JJ&&&&&&&I&&& &&0ݱ0ޱ&%GrooveҰ&&&&&&JJ&&&&&&&I&&& &&0߱&%Box1V0& % SliderCell(0)g0&%ButtonCell(11)00&&&&&&JJ&&&&&&&I&&& &&0& % ButtonCell(1)J0& % ButtonCell(6)0&&&&&&&JJ&&&&&&&I&&& &&0&%Button0&%View(2) 0&%View(7)0&%Matrix0&%Slider20% @S @3 @T @0  @T @0J0 &%0&&&&&&JJ&&&&&&&I ? %0&&&&&&JJ &&&&&&&I0 ? ? ? ? ?0 ?0n&&&&&&JJ&&&&&&&I%0&%Box30&% NSOwner0&%GormBoxAttributesInspector0& % ButtonCell(4)0& % ButtonCell(9)0,&&&&&&JJ&&&&&&&I&&& &&0&%Box(2)0&%View(5)X0&%View(0)c0&%Slider0% @S @3 @T @0  @T @0J0 &%0&&&&&&JJ&&&&&&&I ? %0&&&&&&JJ &&&&&&&IP ? ? ? ? ?P ?Pn&&&&&&JJ&&&&&&&I%P&%Cell(0)P &JJP1#NSNibConnectorP&% NSOwnerP#P#ʰP 1$NSNibOutletConnectorP &%windowP #P $P &%positionMatrixP#P#P#갵P1%NSNibControlConnectorP&%ok:P%P$P&%initialFirstResponderP$P& % nextKeyViewP#P#ɐP$P & % borderMatrixP#߰P#P#P$P &%horizontalSliderP!#P"#P#$P$ &%verticalSliderP%%P& &%ok:P'%&P(%&P)#P*#ȰP+#P,$P- & % colorWellP.$P/&%backgroundSwitchP0%P1 &%ok:P2%1P3$鰲P4 & % nextKeyViewP5$4P6$4P7$4P8$Ȱ4P9$氰4P:$P; &%delegateP<$P= & % titleFormP>#P?#P@#ళPA#ǰPB#ǐPC#PD#PE#PF#PG#PH#PI#PJ#PK#ɰPL#PM#㰲PN#PO#°PP#PQ#ߐPR#ŰPS#PT#PU#ȐPV#PW#PX#PY#PZ#ðP[#P\#P]#P^#ưP_!&gorm-1.3.1/Palettes/2Controls/GormNSBoxInspector.gorm/data.info0000644000175000017500000000027014327003123023366 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/2Controls/GormNSBoxInspector.gorm/data.classes0000644000175000017500000000046014327003123024071 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormBoxAttributesInspector = { Actions = ( ); Outlets = ( borderMatrix, horizontalSlider, positionMatrix, titleForm, verticalSlider, colorWell, backgroundSwitch ); Super = IBInspector; }; }gorm-1.3.1/Palettes/2Controls/GormNSTextFieldInspector.gorm/0000755000175000017500000000000014327003123022741 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormNSTextFieldInspector.gorm/objects.gorm0000644000175000017500000004143614327003123025270 0ustar heronheronGNUstep archive000f4240:00000020:00000171:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@J I @0 @H01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 % @( @_ @n @[  @n @[J0 &0 % @ @ @m @U  @m @UJ0 &01NSButton1 NSControl% @K @P @] @1  @] @1J0 &%01 NSButtonCell1 NSActionCell1NSCell0&%Editable01NSImage01NSMutableString&%GSSwitch01NSFont%&&&&&&JJ&&&&&&&I0&00&%GSSwitchSelected&&& &&0% @K @F @] @1  @] @1J0 &%00& % Selectable&&&&&&JJ&&&&&&&I&&& &&0% @K @8 @] @1  @] @1J0 &%00 & % Scrollable&&&&&&JJ&&&&&&&I&&& &&0!% @K @ @] @1  @] @1J0" &%0#0$&%Single Line Mode&&&&&&JJ&&&&&&&I&&& &&0%1NSTextFieldCell0&&%Options0'% A@&&&&&&JJ &&&&&&&I0(1NSColor0)&% NSNamedColorSpace0*&% System0+&% windowBackgroundColor0,0-&% NSCalibratedRGBColorSpace ? @ @%%0. % @[ @m @b` @M  @b` @MJ0/ &00 % @ @ @a @B  @a @BJ01 &021NSMatrix% @ @" @_@ @9  @_@ @9J03 &%04'&&&&&&JJ&&&&&&&I% @9 @9 05- ?* ?* ?* ?* ?506& % NSButtonCell0708&%L'&&&&&&JJ&&&&&&&I&&& &&%%09 &0:0;0<& % leftalign_nib'&&&&&&JJ&&&&&&&I&&& &&0=0>0?&%centeralign_nib'&&&&&&JJ&&&&&&&I&&& &&0@0A0B&%rightalign_nib'&&&&&&JJ&&&&&&&I&&& &&0C0D0E&%justifyalign_nib'&&&&&&JJ&&&&&&&I&&& &&0F0G&%N0H0I&%naturalalign_nib'&&&&&&JJ&&&&&&&I&&& &&2 ok:v24@0:8@16C0J0K& % Alignment'&&&&&&JJ &&&&&&&I(0L- ? %%0M1NSForm% @X @$ @P @5  @P @5J0N &%0O1 NSFormCell'&&&&&&JJ&&&&&&&I 0P0Q&%Field:'&&&&&&JJ&&&&&&&% @P @5 @0R)*0S&% controlBackgroundColor0T- ?* ?* ?* ?* ?0U& % NSFormCell%%0V &0W'&&&&&&JJ&&&&&&&I A0X0Y&%Tag:'&&&&&&JJ&&&&&&&W0Z % @[ @r @b` @T  @b` @TJ0[ &0\ % @ @ @a @N  @a @NJ0] &0^1 NSColorWell% @E @: @J @?  @J @?J0_ &%0`'&&&&&&JJ&&&&&&&0a- ? ? ? ? ?0b% @ @ @` @0  @` @0J0c &%0d0e&%Draws Background'&&&&&&JJ&&&&&&&I&&& &&0f0g&%Background color'&&&&&&JJ &&&&&&&I(0h- ? %%0i % @( @r @W @T  @W @TJ0j &0k % @ @ @T @L  @T @LJ0l &0m% @* @, @J @?  @J @?J0n &%0o'&&&&&&JJ&&&&&&&0p0q&% NSCalibratedWhiteColorSpace ?0r0s& % Text Color'&&&&&&JJ &&&&&&&I(0t- ? @ @%%0u % @( @m @W @L  @W @LJ0v &0w % @ @ @V @B  @V @BJ0x &0y% @ @  @R @9  @R @9J0z &%0{'&&&&&&JJ&&&&&&&I% @9 @9 0|- ?* ?* ?* ?* ?|0}& % NSButtonCell0~0&%Button'&&&&&&JJ&&&&&&&I&&& &&%%0 &000& % noBorder_nib'&&&&&&JJ&&&&&&&I&&& &&000&%line_nib'&&&&&&JJ&&&&&&&I&&& &&000& % bezel_nib'&&&&&&JJ&&&&&&&I&&& &&00&%Border'&&&&&&JJ &&&&&&&I(0- ? %%0 % @( @K @n @Q  @n @QJ0 &0 % @ @ @m @E  @m @EJ0 &0% @R @ @U @B  @U @BJ0 &%0&&&&&&JJ&&&&&&&I% @U @2 ? ?0& % NSButtonCell00&%Radio00&%GSRadio&&&&&&JJ&&&&&&&I00&%GSRadioSelected&&& &&%%0 &00& % Enter Only&&&&&&JJ&&&&&&&I&&& &&00& % End Editing&&&&&&JJ&&&&&&&I&&& &&00&%Send Action On&&&&&&JJ&&&&&&& @ @%%00&% Title0% A &&&&&&JJ&&&&&&& %%(0&%Window0&%TextField Attributes Inspector ?  @Ç @xI&   @ @0 &0 &01NSMutableDictionary1 NSDictionary&60& % Button(0)!0& % FormCell(0)W0& % ButtonCell(2)#0& % ButtonCell(7)=0&%ButtonCell(12)0&%Box(0)0& % ActionCell(0)40&%Box 0&%View(3)00&%Button10% @$ @V @L @8  @L @8J0 &%00&%Button'&&&&&&JJ&&&&&&&I&&& &&0&%FormM0&%Matrix2y0&%Box2Z0& % ColorWell30% @S @E @J @>  @J @>J0 &%0'&&&&&&JJ&&&&&&&0q ?0&%ButtonCell(10)F0& % ButtonCell(0)0±& % ButtonCell(5)0ñ& % Matrix(0)0ı&%View(1) 0ű&%View(6)w0Ʊ&%Button30DZ&%Cell(1)o0ȱ&%Box4u0ɱ& % Inspector0ʱ& % ColorWell5m0˱& % FormCell(1)O0̱&%ButtonCell(13)0ͱ& % ButtonCell(3)0α& % ButtonCell(8)@0ϱ& % ActionCell(1){0б&%Box(1)0ѱ& % ColorWell^0ұ&%View(4)\0ӱ&%Button50Ա&%Matrix120ձ&%Box1.0ֱ& % ColorWell20ױ% @S @E @J @>  @J @>J0ر &%0ٱ'&&&&&&JJ&&&&&&&0ڱq ?0۱&%ButtonCell(11)d0ܱ& % ButtonCell(1)0ݱ& % ButtonCell(6):0ޱ&%Button0߱% @$ @V @L @8  @L @8J0 &%00&%Button'&&&&&&JJ&&&&&&&I&&& &&0&%View(2) 0&%Button2b0&%Box3i0&% NSOwner0&%GormTextFieldInspector0& % ColorWell40% @S @E @J @>  @J @>J0 &%0'&&&&&&JJ&&&&&&&0q ?0& % ButtonCell(9)C0& % ButtonCell(4)0&%ButtonCell(14)0& % ActionCell(2)0&%View(0)0&%View(5)k0&%Button40&%Cell(0)`0 &YY01NSNibConnector0&% NSOwner01NSNibOutletConnector0&%window0А0հА0ްɐ0ɐ0԰0P& % alignMatrixPАPP&%tagFormPАPѰҐPҐPАPְɐP ɐP ɐP ʰP ȰАP ŐPP&%backgroundColorPP& % textColorPP&%drawsBackgroundPP& % borderMatrixP1 NSNibControlConnectorѰP&%ok:P P ʰP ԰P P P&%ok:PѰP& % nextKeyViewP P!ʰP"԰P#P$ɰP%&%initialFirstResponderP&P'&%delegateP(ưP)P*ӰP+P,&%editableSwitchP-P.&%scrollableSwitchP/ ưP0&%ok:P1 0P2 Ӱ0P3P4& % nextKeyViewP5ư4P64P7P8&%selectableSwitchP9АP:񰯐P;ðP<ÐP=ܰÐP>P?&%sendActionMatrixP@ ðPA&%ok:PBðPC& % nextKeyViewPDPEPF PG&%ok:PHPI&%singleLineModePJӰPK& % nextKeyViewPLАPMİАPN㰱POͰƐPPPQ°ӐPRՐPSݰԐPTԐPUΰԐPVԐPWԐPXԐPYPZ˰P[ҰP\ѐP]۰P^ P_&% NSFirstP`&% ok:PaPbǰʐPcŰȐPdPḛPfﰹPgϰPhÐPi&gorm-1.3.1/Palettes/2Controls/GormNSTextFieldInspector.gorm/data.info0000644000175000017500000000027014327003123024526 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/2Controls/GormNSTextFieldInspector.gorm/data.classes0000644000175000017500000000057714327003123025242 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormTextFieldInspector = { Actions = ( ); Outlets = ( alignMatrix, backgroundColor, borderMatrix, drawsBackground, tagForm, textColor, editableSwitch, scrollableSwitch, selectableSwitch, sendActionMatrix, singleLineMode ); Super = IBInspector; }; }gorm-1.3.1/Palettes/2Controls/GormNSColorWellInspector.gorm/0000755000175000017500000000000014327003123022753 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormNSColorWellInspector.gorm/objects.gorm0000644000175000017500000003576214327003123025307 0ustar heronheronGNUstep archive000f4240:00000021:0000008d:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @( @H01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 % @O @k @a@ @S  @a@ @SJ0 &0 % @ @ @_ @J  @_ @JJ0 &01 NSColorWell1 NSControl% @A @( @J @>  @J @>J0 &%01NSCell0&01NSFont%&&&&&&JJ&&&&&&&01NSColor0&% NSCalibratedWhiteColorSpace ?2 initialColorSelected:v12@0:4@801NSTextFieldCell1 NSActionCell0& % Initial Color&&&&&&JJ &&&&&&&I00&% NSNamedColorSpace0&% System0&% windowBackgroundColor00&%System0& % textColor @ @%%0 % @O @a @a@ @S  @a@ @SJ0 &0! % @ @ @_ @J  @_ @JJ0" &0#1NSButton% @0 @; @T@ @1  @T@ @1J0$ &%0%1 NSButtonCell0&&%Disabled0'1NSImage0(1NSMutableString&%GSSwitch&&&&&&JJ&&&&&&&I0)0*&%GSSwitchSelected&&& &&0+% @0 @ @T@ @1  @T@ @1J0, &%0-0.&%Bordered'&&&&&&JJ&&&&&&&I)&&& &&0/00&%Options&&&&&&JJ &&&&&&&I @ @%%011 NSTextField% @` @\ @D @5  @D @5J02 &%03&&&&&&JJ &&&&&&&I0405&%textBackgroundColor06% @T@ @]@ @E @2  @E @2J07 &%0809&%Tag:0:% A@&&&&&&JJ &&&&&&&I40;0<&% Title0=% A &&&&&&JJ&&&&&&& %%0>&%Window0?&%ColorWell Attributes Inspector?  @Ç @|I0@ 0A 0B &0C1NSBitmapImageRep1 NSImageRep0D&% NSDeviceRGBColorSpace @H @HII0I00E1NSData&$$II*$[=T8J2R-!k[=U:K3xB-H'R-!k[=S7J2xB-H'/ ?[=S7I2xB-H'/ ?[=S7H0xB-H'/ ?[=R7I2xB-H'/ ?[=S7I0xB-H'/ ?[=R7I2xB-H'/ ?[=R7H0xB-H'/ ?[>X/!j:)H'/ ?D49  ?hft{y<;D ?hft}<;D ?<;D ?43:""""43:zzzzͱ""""EEEEEEEEEEEE43:555222t43:0?55hhhiiiyyyVVV777?43:~=0rdxxxUUU444?/17?43:5?0\Mzz{]]]QQQmmm_bn:9@5?0I>e]xxwvtsqpo}66<5?2A3QFA4H:|zzywutrqpbao++05?2@2@2A3B3C4E6}}|zxxwutrqpn}VT_=,, 5@2@3A3A3JdbqihvFEOQ-)Y)!W)`/$k3'q6*n4)l3'i2'f0&c/$`-$Y*!)5C4C4D4E6F7H7Ʀkkk)))LJRkjxihvhgu::B\/&[-$Y-$c/&l3'o4)l3'j2'g2&d0$a/$^-#X*!)5@2D4E6F7H7I8{{{[[[322QPZ^]jjhwhguQP[K33\-&W)_/$j3'm3'm4)j3'h2&d0&b/$_-#],#X*!)P'~>>ddd>>?87?4$$E)&_-#`0'_0&]/&^/&`/&`/&c0&j2'n3'k3'h2&d0$a/$^-#\,!Z,!X*!U)T))ttttttzzz;;;rqyjhwPPZ43:C@?w9,c2)b2)^,#_0&d2'g2'h2'k3)l3)l3)l3'l3'i2'f0&c/$_-#],#Z,!X*!W)T)S))rrr```FFF000mmm\[a<;CA)'^3,I::76v8,_-$b2'g2'l4)r7*s7*s7*w8,t7,q6*n4)k3'g2&d0$`-$],#[,!X*!W)U)S'S')YYY777XWcKJS|||SSS\2,KDD4I:I;A?>~>0b2)f2'p6*x:-y:-{;-x:-v9,s7*o4)l3'i2&f0&c/$_-#\,#Y*!W)T)S'R'S')TR^|z@?Gↄ\Zg<;CJJJm4)D4E6J;UIPEvI@q:/l4)m4)x:,};/{:-y:-w9,t7*q6*m4)j3'h2&c0&a/$]-#[,!X*!V)T)R'R'R')0/5?_^kCBJ43:?QQQ ^-#I:O>SBP?H7?2p6*s7*0|;/y:-p6*f0&d0&c/&`/$_-$]-#\,#T)!T)!T)!T)!T)!T)!T)!)))) ?h3'z;/T)!T)!T)!`/$`/$))))) ? 00$$R&   @ @0F &0G &0H1NSMutableDictionary1 NSDictionary&0I&%Box 0J&%View(1) 0K& % TextField160L&%Box10M& % TextField10N&%Box(0)0O& % ColorWell0P&%TextFieldCell(1)80Q& % ButtonCell(0)%0R&%Button1#0S&%View(2)!0T&% NSOwner0U&%GormColorWellInspector0V& % ButtonCell(1)-0W&%View(0) 0X&%Cell(0)0Y& % Inspector0Z&%TextFieldCell(0)30[&%Button2+0\ &!!0]1NSNibConnectorY0^&% NSOwner0_IN0`LN0aOJ0bRS0c[S0dMN0eKN0f1 NSNibOutletConnector^Y0g&%window0h OR0i& % nextKeyView0j R[i0k [Mi0l MOi0m YO0n&%initialFirstResponder0o M^0p&%delegate0q ^O0r&%initialColorWell0s ^R0t&%disabledSwitch0u ^[0v&%borderedSwitch0w ^M0x&%tagField0y1!NSNibControlConnectorO^0z&%ok:0{!R^z0|![^z0}N0~WN0JI0XO0SL0QR0!Q0&% NSFirst0&%disabledSelected:0V[0!V0&%borderedSelected:0ZM0PK0&gorm-1.3.1/Palettes/2Controls/GormNSColorWellInspector.gorm/data.info0000644000175000017500000000027014327003123024540 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/2Controls/GormNSColorWellInspector.gorm/data.classes0000644000175000017500000000051714327003123025246 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:" ); Super = NSObject; }; GormColorWellInspector = { Actions = ( ); Outlets = ( borderedSwitch, disabledSwitch, initialColorWell, tagField ); Super = IBInspector; }; }gorm-1.3.1/Palettes/2Controls/GormNSProgressIndicatorInspector.gorm/0000755000175000017500000000000014327003123024512 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormNSProgressIndicatorInspector.gorm/objects.gorm0000644000175000017500000001360414327003123027035 0ustar heronheronGNUstep archive000f4240:0000001d:0000008b:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @001 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 % @< @k @j@ @W  @j@ @WJ0 &0 % @ @ @h @Q@  @h @Q@J0 &01NSButton1 NSControl% @H @B @X @1  @X @1J0 &%01 NSButtonCell1 NSActionCell1NSCell0& % Indeterminate01NSImage01NSMutableString&%GSSwitch01NSFont%&&&&&&JJ&&&&&&&I0&00&%GSSwitchSelected&&& &&0% @H @0 @X @1  @X @1J0 &%00&%Vertical&&&&&&JJ&&&&&&&I&&& &&01NSTextFieldCell0&%Options&&&&&&JJ &&&&&&&I01NSColor0 &% NSNamedColorSpace0!&% System0"&% windowBackgroundColor0# 0$&%System0%& % textColor @ @%%0& % @< @X @j@ @\@  @j@ @\@J0' &0( % @ @ @h @U  @h @UJ0) &0*1 NSTextField% @Z @G @R @5  @R @5J0+ &%0,&&&&&&JJ &&&&&&&I0- $0.&%textBackgroundColor#0/% @ @G @X @4  @X @4J00 &%0102&%Minimum Value:03% A@&&&&&&JJ &&&&&&&I-#04% @Z @0 @R @5  @R @5J05 &%06&&&&&&JJ &&&&&&&I-#07% @ @1 @X @4  @X @4J08 &%090:&%Maximum Value:3&&&&&&JJ &&&&&&&I-#0;0<&%Range&&&&&&JJ &&&&&&&I# @ @%%0=0>&% Title0?% A &&&&&&JJ&&&&&&& %%0@&%Window0A&%ProgressIndicator AttributesA  @Ç @|I0B0C&% NSApplicationIcon&   @ @0D &0E &0F1NSMutableDictionary1 NSDictionary&0G&%Button10H&%TextFieldCell(3)90I& % Inspector0J&%View(0) 0K&%TextFieldCell(0),0L& % TextField1/0M&% NSOwner0N&%GormProgressIndicatorInspector0O& % TextField370P&%Box1&0Q&%View(1) 0R&%TextFieldCell(1)10S& % TextField*0T& % ButtonCell(0)0U&%View(2)(0V&%Button0W& % TextField240X&%TextFieldCell(2)60Y&%Box 0Z&%Box(0)0[& % ButtonCell(1)0\ &!!0]1NSNibConnectorYZ0^PZ0_SU0`LU0aOU0bVQ0cGQ0d1NSNibOutletConnector0e&% NSOwnerS0f&%minValue0geW0h&%maxValue0ieV0j& % indeterminate0keG0l&%vertical0meI0n&%window0oVG0p& % nextKeyView0qGSp0rSWp0sWVp0tIV0u&%initialFirstResponder0vWe0w&%delegate0x1NSNibControlConnectorVe0y&%ok:0zGey0{Se0|&%delegate0}Z0~JZ0QY0TV00[0&% NSFirst0&%verticalSelected:0UP0KS0RL0WU0XW0HO0&gorm-1.3.1/Palettes/2Controls/GormNSProgressIndicatorInspector.gorm/data.info0000644000175000017500000000027014327003123026277 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/2Controls/GormNSProgressIndicatorInspector.gorm/data.classes0000644000175000017500000000071114327003123027001 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "indeterminateSelected:", "revert:", "orderFrontFontPanel:" ); Super = NSObject; }; GormProgressIndicatorInspector = { Actions = ( ); Outlets = ( vertical, maxValue, minValue, indeterminate ); Super = IBInspector; }; NSBox = { Actions = ( "revert:", "ok:" ); Super = NSView; }; }gorm-1.3.1/Palettes/2Controls/GNUmakefile0000644000175000017500000000435014327003123017205 0ustar heronheron# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make PALETTE_NAME = 2Controls 2Controls_PALETTE_ICON = ControlsPalette 2Controls_OBJC_FILES = \ GormButtonAttributesInspector.m \ GormBoxAttributesInspector.m \ GormCellAttributesInspector.m \ GormCellSizeInspector.m \ GormColorWellAttributesInspector.m \ GormFormAttributesInspector.m \ GormPopUpButtonAttributesInspector.m \ GormSliderAttributesInspector.m \ GormStepperAttributesInspector.m \ GormProgressIndicatorAttributesInspector.m \ GormTextFieldAttributesInspector.m \ GormMatrixAttributesInspector.m \ ControlsPalette.m \ GormPopUpButtonEditor.m \ GormNSPopUpButton.m \ GormButtonEditor.m \ inspectors.m 2Controls_PRINCIPAL_CLASS = ControlsPalette 2Controls_RESOURCE_FILES = ControlsPalette.tiff \ GormNSBoxInspector.gorm \ GormNSButtonInspector.gorm \ GormNSCellInspector.gorm \ GormCellSizeInspector.gorm \ GormNSFormInspector.gorm \ GormNSMatrixInspector.gorm \ GormNSPopUpButtonInspector.gorm \ GormNSSliderInspector.gorm \ GormNSStepperInspector.gorm \ GormNSTextFieldInspector.gorm \ GormNSColorWellInspector.gorm \ GormNSProgressIndicatorInspector.gorm \ ControlsPalette.gorm \ palette.table 2Controls_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/palette.make -include GNUmakefile.postamble gorm-1.3.1/Palettes/2Controls/GormButtonEditor.h0000644000175000017500000000215214327003123020551 0ustar heronheron/* GormButtonEditor.h - Editor for buttons. * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: Aug 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormButtonEditor_h #define INCLUDED_GormButtonEditor_h #include @class NSTextView; @interface GormButtonEditor : GormControlEditor { NSTextView *tempTextView; } @end #endif gorm-1.3.1/Palettes/2Controls/GormPopUpButtonEditor.m0000644000175000017500000000116414327003123021544 0ustar heronheron#include #include #include "GormNSPopUpButton.h" #define _EO ((NSPopUpButton *)_editedObject) @interface GormPopUpButtonEditor : GormControlEditor { } @end @implementation GormPopUpButtonEditor - (void) mouseDown: (NSEvent *)theEvent { // double-clicked -> let's edit if (([theEvent clickCount] == 2) && [parent isOpened]) { [[_EO cell] attachPopUpWithFrame: [_EO bounds] inView: _editedObject]; NSDebugLog(@"attach down"); [[document openEditorForObject: [[_EO cell] menu]] activate]; } else { [super mouseDown: theEvent]; } } @end gorm-1.3.1/Palettes/2Controls/GormNSButtonInspector.gorm/0000755000175000017500000000000014327003123022324 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormNSButtonInspector.gorm/objects.gorm0000644000175000017500000006171214327003123024652 0ustar heronheronGNUstep archive000f4240:00000024:00000242:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @801 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @1 @p @v  @p @vJ-0 &0 %  @p @v  @p @vJ0 &  0 1NSForm1NSMatrix1 NSControl% ? @pP @pP @W@  @pP @W@J 0 &%0 1 NSFormCell1 NSActionCell1NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&I 00&%Field:&&&&&&JJ&&&&&&&% @pP @5 @01NSColor0&% NSNamedColorSpace0&% System0&% controlBackgroundColor00&% NSCalibratedRGBColorSpace ?* ?* ?* ?* ?0& % NSFormCell%%0 &0&&&&&&JJ&&&&&&&I B400&%Title:&&&&&&JJ&&&&&&&0&&&&&&JJ&&&&&&&I B400& % Alt Title:&&&&&&JJ&&&&&&&0 &&&&&&JJ&&&&&&&I B40!0"&%Icon:&&&&&&JJ&&&&&&&0#&&&&&&JJ&&&&&&&I B40$0%& % Alt Icon:&&&&&&JJ&&&&&&&2 ok:v24@0:8@16#0&% @6 @m @L @5  @L @5J 0' &%0(&&&&&&JJ&&&&&&&I 0)0*&%Field:&&&&&&JJ&&&&&&&% @L @5 @0+ ?* ?* ?* ?* ?0,& % NSFormCell%%0- &0.&&&&&&JJ&&&&&&&I A0/00&%Tag:0&&&&&&JJ&&&&&&&.01% @U@ @m @P @5  @P @5J 02 &%03&&&&&&JJ&&&&&&&I 0405&%Field:&&&&&&JJ&&&&&&&% @P @5 @06 ?* ?* ?* ?* ?07& % NSFormCell%%08 &09&&&&&&JJ&&&&&&&I A0:0;&%Key:&&&&&&JJ&&&&&&&90< % ? @g@ @d @H  @d @HJ 0= &0> % @ @ @c @6  @c @6J0? &0@1 NSPopUpButton1NSButton%  @c @6  @c @6J0A &%0B1NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell0C%&&&&&&JJ0D1NSMenu0E &0F1 NSMenuItem0G&%Momentary PushJJI0H1NSImage0I& %  common_NibbleI0J0K&%Momentary ChangeJJII0L0M&%Momentary LightJJII0N0O&%PushOn/PushOffJJII0P0Q&%On/OffJJII0R0S&%ToggleJJII&&&&&&&I&&& > =&&FDF%%%%%0T1NSTextFieldCell0U&%Type&&&&&&JJ&&&&&&&I0V0W&% windowBackgroundColor0X ? @ @%%0Y % ? @* @d @_@  @d @_@J 0Z &0[ % @ @ @b @X  @b @XJ0\ &0]% @> @ @U @V@  @U @V@J0^ &%0_&&&&&&JJ&&&&&&&I% @U @1 ? ?0` ?* ?* ?* ?* ?0a& % NSButtonCell0b0c&%Switch0d0e1NSMutableString&%GSSwitch&&&&&&JJ&&&&&&&I0f0g&%GSSwitchSelected&&& &&%%0h &0i0j&%Borderedd&&&&&&JJ&&&&&&&If&&& &&0k0l& % Continuousd&&&&&&JJ&&&&&&&If&&& &&0m0n&%Enabledd&&&&&&JJ&&&&&&&If&&& &&0o0p&%Selectedd&&&&&&JJ&&&&&&&If&&& &&0q0r& % Transparentd&&&&&&JJ&&&&&&&If&&& &&m0s0t&%Options&&&&&&JJ&&&&&&&IV0u ? @ @%%0v % @e @U @V@ @I  @V@ @IJ 0w &0x % @ @ @R @9  @R @9J0y &0z%  @R @9  @R @9J0{ &%0|&&&&&&JJ&&&&&&&I% @9 @9 0} ?* ?* ?* ?* ?}0~& % NSButtonCell00&%L&&&&&&JJ&&&&&&&I&&& &&%%0 &000& % leftalign_nib&&&&&&JJ&&&&&&&I&&& &&000&%centeralign_nib&&&&&&JJ&&&&&&&I&&& &&000&%rightalign_nib&&&&&&JJ&&&&&&&I&&& &&00& % Alignment&&&&&&JJ&&&&&&&IV0 ? @ @%%0% @c @m @Z@ @6  @Z@ @6J 0 &%00&%Button&&&&&&JJ00 &  00& % CharacterJJIHI00&%ReturnJJII00&%DeleteJJII00&%EscapeJJII00&%TabJJII00&%Up ArrowJJII00& % Down ArrowJJII00& % Left ArrowJJII00& % Right ArrowJJII&&&&&&&I&&& &&%%%%%0 % @e @a@ @V@ @X  @V@ @XJ 0 &0 % @ @ @R @Q  @R @QJ0 &0% @A @R@ @1  @R@ @1J0 &%00& % AlternatedC0&%Alt&&&&&&JJ&&&&&&&If&&& &&0% @1 @R@ @1  @R@ @1J0 &%00&%ControldC&&&&&&JJ&&&&&&&If&&& &&0%  @R@ @1  @R@ @1J0 &%00&%ShiftdC0&%Shift&&&&&&JJ&&&&&&&If&&& &&0% @I @R@ @1  @R@ @1J0 &%00&%CommanddC0&%Cmd&&&&&&JJ&&&&&&&If&&& &&00&%ModifierC&&&&&&JJ&&&&&&& @ @%%0 % ? @a@ @d @H  @d @HJ 0 &0 % @ @ @c @6  @c @6J0± &0ñ%  @c @6  @c @6J0ı &%0űC&&&&&&JJ0Ʊ0DZ &0ȱ0ɱ&%DefaultJJIHI0ʱ0˱&%RoundedJJII0̱0ͱ&%Regular SquareJJII0α0ϱ& % Thick SquareJJII0б0ѱ&%Thicker SquareJJII0ұ0ӱ& % DisclosureJJII0Ա0ձ&%Shadowless SquareJJII0ֱ0ױ&%CircularJJII0ر0ٱ&%TexturedJJII0ڱ0۱& % Help ButtonJJII 0ܱ0ݱ& % Small SquareJJII 0ޱ0߱&%Textured RoundJJII 00& % Round RectJJII 00&%RecessedJJII 00&%Disclosure RoundJJII00&%NeXTJJII00& % Push ButtonJJII00& % Small IconJJII00& % Medium IconJJII00& % Large IconJJII&&&&&&&I&&& > =&&Ȱư%%%%%00&%BezelC&&&&&&JJ&&&&&&& @ @%%0 % @e @* @V@ @R  @V@ @RJ 0 &0 % @ @ @U@ @J  @U@ @JJ0 &0% @ @ @R @I  @R @IJ0 &%0&&&&&&JJ&&&&&&&I% @9 @9 }}0& % NSButtonCell00&%B&&&&&&JJ&&&&&&&I&&& &&%%0 &000& % iconAbove_nib&&&&&&JJ&&&&&&&I&&& &&PPP& % iconBelow_nib&&&&&&JJ&&&&&&&I&&& &&PPP& % iconOnly_nib&&&&&&JJ&&&&&&&I&&& &&PPP& % iconLeft_nib&&&&&&JJ&&&&&&&I&&& &&P P P & % iconRight_nib&&&&&&JJ&&&&&&&I&&& &&P P P& % titleOnly_nib&&&&&&JJ&&&&&&&I&&& &&PP& % Icon PositionP% A@&&&&&&JJ&&&&&&& %%PP% A &&&&&&JJ&&&&&&& %%VP&%WindowP&%NSButton Attributes Inspector ? @`  @Ç @|I&   @ @P &P &P1 NSMutableDictionary1! NSDictionary&gP& % ButtonCell(2)P&%Box1YP& % MenuItem(10)P& % MenuItem3P& % FormCell(7)9P& % MenuItem(27)PP &%On/OffJJIIP!&%ButtonCell(15)P"&%View(5)[P#& % ActionCell(0)P$&%MenuItemP%& % FormCell(2) P&& % MenuItem(19)P'& % MenuItem(6)P(& % MenuItem(22)P)&%ButtonCell(10)qP*& % MenuItem(31)RP+&%View(0)P,& % ButtonCell(6)iP-&%PopUpButton(0)P.&%Form1&P/& % MenuItem(14)P0& % MenuItem(1)P1&%PopUpButtonCell(0)BP2& % Button(0)P3&%Matrix]P4& % ButtonCell(1)P5& % InspectorP6& % FormCell(6)(P7&%Box(3)P8&%ButtonCell(14)P9& % MenuItem(26)P:P;&%Momentary ChangeJJIIP<& % MenuItem(35)FP=&%View(4)>P>& % MenuItem1P?&%Matrix2P@& % MenuItem(5)PA& % FormCell(1)PB& % MenuItem(18)PC& % MenuItem(21)PD& % MenuItem(30)NPE&%Form PF& % ButtonCell(5) PG& % MenuItem(0)PH& % MenuItem(13)PI&%Box2vPJ& % MenuItem4PK& % ButtonCell(0)PL&%BoxP"cP"P"JP#bP&%keyEquivP#EXP& % nextKeyViewP#3P#3?P#?.P#XbP#.EP#EP&%delegateP#5EP&%initialFirstResponderP#XP&%keyFormP#.P&%tagFormP#.P&%delegateP±#XPñ"GPı"0Pű"PƱ"pPDZ$bPȱ&%ok:Pɱ"2+Pʱ"+P˱"r+P̱"\+Pͱ"~7Pα"+~Pϱ#2Pб&%altModPѱ#Pұ&%ctrlModPӱ#rPԱ&%shiftModPձ$2Pֱ&%ok:Pױ$Pر$rPٱ$\Pڱ#\P۱&%cmdModPܱ"f7Pݱ"fPޱ"-P߱"YP"@P"'P"P"dP"NP"P"tP"^P"HP"/P"P"oP"WP"BP"&P"[P"CP#-P& % bezelButtonP"(P$-P&%ok:P"K?P"4?P"?P"s?P"]?P"F?P"#?P"M7P"mMP"7P"V7P"ZEP"AEP"%EP"EP"eEP"O.P"6.P"XP "uXP "=LP ""P ",3P "3P"l3P"U3P")3P"z3P"{IP"P"jP"SP"aP"bP"82P"!P"vrP"`\P"q-P"P"gP"PP "9P!"P""wP#"n=P$"_P%$_1P&&%_popUpItemAction:P'"DP($D1P)&%_popUpItemAction:P*"*P+$*1P,&%_popUpItemAction:P-"1nP."P/#nP0& % typeButtonP1$nP2&%ok:P3"kP4" Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormPopUpButtonAttributesInspector_h #define INCLUDED_GormPopUpButtonAttributesInspector_h #include @class NSButton; @class NSForm; @class NSMatrix; @class NSPopUpButton; @interface GormPopUpButtonAttributesInspector:IBInspector { NSMatrix *typeMatrix; NSButton *autoenableSwitch; NSButton *enableSwitch; NSForm *tagForm; NSForm *defaultItemForm; NSForm *pullDownTitleForm; NSPopUpButton *pullDownArrowPopUp; } @end #endif /* INCLUDED_GormPopUpButtonAttributesInspector_h */ gorm-1.3.1/Palettes/2Controls/GormCellSizeInspector.gorm/0000755000175000017500000000000014327003123022322 5ustar heronherongorm-1.3.1/Palettes/2Controls/GormCellSizeInspector.gorm/objects.gorm0000644000175000017500000000745614327003123024655 0ustar heronheronGNUstep archive000f4240:0000001a:00000051:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ? @" @q @x@JI @ @`01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01NSBox% @K @h  @d @R  @d @RJ-0 &0 % @ @ @b` @I  @b` @IJ0 &0 1 NSTextField1 NSControl% @P @= @T@ @5  @T@ @5J0 &I0 1NSTextFieldCell1 NSActionCell1NSCell0&01NSFont%JJJJJJJJ JJJJJJJI01NSColor0&% NSNamedColorSpace0&%System0&%textBackgroundColor00& % textColor0% @= @N @2  @N @2J0 &I00&%Width:0% A@JJJJJJJJ JJJJJJJI0% @P  @T@ @5  @T@ @5J0 &I0JJJJJJJJ JJJJJJJI0%  @N @2  @N @2J0 &I0 0!&%Height:!JJJJJJJJ JJJJJJJI0"0#& % Cell Size0$% A #JJJJJJJJJJJJJJJ @ @%%0%0&&% System0'&% windowBackgroundColor0(&%Window0)&%Inspector Window) ? @9 @Ç @|I&   @ @H0* &0+ &0,1NSMutableDictionary1 NSDictionary& 0-& % TextField(2)0.&%TextFieldCell(3) 0/&%View(1) 00& % TextField(0) 01&%Box(0)02&%TextFieldCell(1)03& % TextField(3)04&% NSOwner05&%GormCellSizeInspector06& % InspectorWin07& % TextField(1)08&%TextFieldCell(2)09&%View(0)0:&%TextFieldCell(0) 0; &0<1NSNibConnector640=960>010?:00@710A270B-10C8-0D310E.30F190G/10H1NSNibControlConnector040I&%ok:0J-4I0K1NSNibOutletConnector460L&%window0M4-0N&%height0O400P&%width0Q&gorm-1.3.1/Palettes/2Controls/GormCellSizeInspector.gorm/data.info0000644000175000017500000000027014327003123024107 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/2Controls/GormCellSizeInspector.gorm/data.classes0000644000175000017500000000057514327003123024621 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "revert:", "setObject:", "touch:" ); Super = NSObject; }; GormCellSizeInspector = { Actions = ( ); Outlets = ( width, height ); Super = IBInspector; }; IBInspector = { Actions = ( "setObject:" ); Super = NSObject; }; }gorm-1.3.1/Palettes/2Controls/GormColorWellAttributesInspector.h0000644000175000017500000000317014327003123023770 0ustar heronheron/* GormColorWellAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormColorWellAttributesInspector_h #define INCLUDED_GormColorWellAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSTextField; @interface GormColorWellAttributesInspector:IBInspector { NSColorWell *initialColorWell; NSButton *disabledSwitch; NSButton *borderedSwitch; NSTextField *tagField; } @end #endif /* INCLUDED_GormColorWellAttributesInspector_h */ gorm-1.3.1/Palettes/2Controls/GormFormAttributesInspector.h0000644000175000017500000000350014327003123022766 0ustar heronheron/* GormFormAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormFormAttributesInspector_h #define INCLUDED_GormFormAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSForm; @class NSMatrix; @class NSStepper; @interface GormFormAttributesInspector: IBInspector { NSButton *cellPositionSwitch; NSButton *editableSwitch; NSButton *selectableSwitch; NSButton *scrollableSwitch; NSButton *autosizeSwitch; id backgroundColorWell; id drawsBackgroundSwitch; id tagForm; id textMatrix; id titleMatrix; NSForm *dimensionsForm; NSStepper *numberStepper; } @end #endif /* INCLUDED_GormFormAttributesInspector_h */ gorm-1.3.1/Palettes/2Controls/GormSliderAttributesInspector.m0000644000175000017500000000766614327003123023333 0ustar heronheron/* GormSliderAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include "GormSliderAttributesInspector.h" /* IBObjectAdditions category */ @implementation NSSlider (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormSliderAttributesInspector"; } @end @implementation GormSliderAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSSliderInspector" owner: self] == NO) { NSLog(@"Could not gorm GormSliderInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok:(id) sender { if (sender == valuesForm) { [object setMinValue: [[sender cellAtIndex: 0] doubleValue]]; [object setMaxValue: [[sender cellAtIndex: 2] doubleValue]]; [object setDoubleValue: [[sender cellAtIndex: 1] doubleValue]]; [object setNumberOfTickMarks: [[sender cellAtIndex: 3] intValue]]; } else if ( sender == stopOnTicksSwitch ) { [object setAllowsTickMarkValuesOnly: (([stopOnTicksSwitch state] == NSOnState) ? YES:NO)]; } else if ( sender == continuousSwitch ) { [object setContinuous: (([continuousSwitch state] == NSOnState) ? YES : NO)]; } else if ( sender == enabledSwitch ) { [object setEnabled: (([enabledSwitch state] == NSOnState) ? YES : NO)]; } else if (sender == altIncrementForm) { [[object cell] setAltIncrementValue: [[sender cellAtIndex: 0] doubleValue]]; } else if (sender == knobThicknessForm) { [[object cell] setKnobThickness: [[sender cellAtIndex: 0] floatValue]]; } else if (sender == tagForm) { [[object cell] setTag: [[sender cellAtIndex: 0] intValue]]; } } /* Sync from object ( NSSlider ) changes to the inspector */ - (void) revert:(id) sender { if ( object == nil) return; [[valuesForm cellAtIndex: 0] setDoubleValue: [object minValue]]; [[valuesForm cellAtIndex: 1] setDoubleValue: [object doubleValue]]; [[valuesForm cellAtIndex: 2] setDoubleValue: [object maxValue]]; [[valuesForm cellAtIndex: 3] setIntValue: [object numberOfTickMarks]]; [continuousSwitch setState: ([object isContinuous] ? NSOnState : NSOffState)]; [enabledSwitch setState: ([object isEnabled] ? NSOnState : NSOffState)]; [stopOnTicksSwitch setState: ([object allowsTickMarkValuesOnly] ? NSOnState : NSOffState)]; [[altIncrementForm cellAtIndex: 0] setDoubleValue: [[object cell] altIncrementValue]]; [[knobThicknessForm cellAtIndex: 0] setFloatValue: [[object cell] knobThickness]]; [[tagForm cellAtIndex: 0] setIntValue: [[object cell] tag]]; [super revert:sender]; } /* delegate methods for all Forms */ -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.3.1/Palettes/2Controls/GormTextFieldAttributesInspector.m0000644000175000017500000001141414327003123023763 0ustar heronheron/* GormTextFieldAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include #include "GormTextFieldAttributesInspector.h" /* IBObjectAdditions category */ @implementation NSTextField (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormTextFieldAttributesInspector"; } @end @implementation GormTextFieldAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSTextFieldInspector" owner: self] == NO) { NSLog(@"Could not gorm GormTextFieldInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { if (sender == alignMatrix) { [object setAlignment: (NSTextAlignment)[[sender selectedCell] tag]]; } else if (sender == backgroundColor) { [object setBackgroundColor: [sender color]]; } else if (sender == drawsBackground) { [object setDrawsBackground: [drawsBackground state]]; } else if (sender == textColor) { [object setTextColor: [sender color]]; } else if ( sender == editableSwitch ) { [object setEditable: [editableSwitch state]]; } else if ( sender == selectableSwitch ) { [object setSelectable: [selectableSwitch state]]; } else if ( sender == scrollableSwitch ) { [[object cell] setScrollable: [scrollableSwitch state]]; } else if (sender == borderMatrix) { BOOL bordered=NO, bezeled=NO; if ([[sender cellAtRow: 0 column: 0] state] == NSOnState) { bordered = bezeled = NO; } else if ([[sender cellAtRow: 0 column: 1] state] == NSOnState) { bordered = YES; bezeled = NO; } else if ([[sender cellAtRow: 0 column: 2] state] == NSOnState) { bordered = NO; bezeled = YES; } [object setBordered: bordered]; [object setBezeled: bezeled]; } else if (sender == tagForm) { [object setTag: [[sender cellAtIndex: 0] intValue]]; } else if (sender == sendActionMatrix) { BOOL sendActionOnEndEditing = ([[sender cellAtRow: 1 column: 0] state] == NSOnState); [[object cell] setSendsActionOnEndEditing: sendActionOnEndEditing]; } else if (sender == singleLineMode) { [[object cell] setUsesSingleLineMode: [singleLineMode state]]; } [super ok:sender]; } /* Sync from object ( NSTextField ) changes to the inspector */ - (void) revert:(id) sender { if (object == nil) return; [alignMatrix selectCellWithTag: [object alignment]]; [backgroundColor setColorWithoutAction: [object backgroundColor]]; [textColor setColorWithoutAction: [object textColor]]; [drawsBackground setState: ([object drawsBackground]) ? NSOnState : NSOffState]; [editableSwitch setState:[object isEditable]]; [selectableSwitch setState:[object isSelectable]]; [scrollableSwitch setState:[[object cell] isScrollable]]; [singleLineMode setState:[[object cell] usesSingleLineMode]]; if ([object isBordered] == YES) { [borderMatrix selectCellAtRow: 0 column: 1]; } else { if ([object isBezeled] == YES) [borderMatrix selectCellAtRow: 0 column: 2]; else [borderMatrix selectCellAtRow: 0 column: 0]; } [[tagForm cellAtIndex: 0] setIntValue: [object tag]]; if([[object cell] sendsActionOnEndEditing]) { [sendActionMatrix selectCellAtRow: 1 column: 0]; } else { [sendActionMatrix selectCellAtRow: 0 column: 0]; } [super revert:sender]; } /* delegate method for tagForm */ -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok: [aNotification object]]; } @end gorm-1.3.1/Palettes/2Controls/GNUmakefile.preamble0000644000175000017500000000131014327003123020764 0ustar heronheron# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) 2Controls_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.3.1/Palettes/2Controls/GormBoxAttributesInspector.h0000644000175000017500000000330614327003123022617 0ustar heronheron/* GormBoxAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003, 2004, 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormBoxAttributesInspector_h #define INCLUDED_GormBoxAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSForm; @class NSMatrix; @class NSSlider; @interface GormBoxAttributesInspector:IBInspector { NSMatrix *positionMatrix; NSMatrix *borderMatrix; NSForm *titleForm; NSSlider *horizontalSlider; NSSlider *verticalSlider; NSColorWell *colorWell; NSButton *backgroundSwitch; } @end #endif /* INCLUDED_GormBoxAttributesInspector_h */ gorm-1.3.1/Palettes/6GridStack/0000755000175000017500000000000014327003123015205 5ustar heronherongorm-1.3.1/Palettes/6GridStack/6GridStack.palette/0000755000175000017500000000000014327003123020603 5ustar heronherongorm-1.3.1/Palettes/6GridStack/6GridStack.palette/6GridStack0000755000175000017500000020235014327003123022474 0ustar heronheronELF>@@8@,+@@@==L\\ 0 L\\PP$$Ptd<<<llQtdRtdL\\PPGNU8$%tc&vCѪ /<"6Nl ">[|{   hhhhXph h(hX b_end_edata__bss_startobjc_msg_lookup_superobjc_msgSend__cxa_finalizeGLIBC_2.2.5libc.so.6./6GridStack.palette/./6GridStack__objc_load__objc_ivar_offset_IBPalette.originalWindow.NSStringFromClassNSAppIBWillInspectObjectNotificationIBViewPboardTypeIBFormatterPboardType._OBJC_REF_CLASS_NSWindow._OBJC_REF_CLASS_NSView._OBJC_REF_CLASS_NSUnarchiver._OBJC_REF_CLASS_NSStackView._OBJC_REF_CLASS_NSNumberFormatter._OBJC_REF_CLASS_NSNumber._OBJC_REF_CLASS_NSNotificationCenter._OBJC_REF_CLASS_NSImageView._OBJC_REF_CLASS_NSImage._OBJC_REF_CLASS_NSGridView._OBJC_REF_CLASS_NSFormatter._OBJC_REF_CLASS_NSDateFormatter._OBJC_REF_CLASS_NSDate._OBJC_REF_CLASS_NSBundle._OBJC_REF_CLASS_NSArray._OBJC_REF_CLASS_IBPalette._OBJC_REF_CLASS_IBInspectorManager._OBJC_REF_CLASS_GridStackPalette._OBJC_PROTOCOL_IBViewResourceDraggingDelegates._OBJC_INIT_CLASS_GridStackPalette._OBJC_CLASS_NSConstantString._OBJC_CLASS_IBPalette._OBJC_CLASS_GridStackPalette_ITM_registerTMCloneTable_ITM_deregisterTMCloneTable__gmon_start__libgnustep-gui.so.0.29libgnustep-base.so.1.28libpthread.so.0libobjc.so.4.6libm.so.6! !%&|BEʇ&ϖsqXOd%(& !$#"%  ' UaWui K\#\#\ 1(`(`@`4`#`f`4`$`f`4ap%ada4ap' af(a40a+8af@aS5HaP-PagXan5`a.hagpa5xa0a ga5a0a0ga5aga:aga:a gaZ:a0ga: b0`0b4Xb`bbb0cbPgbphbxhbhhbphbxhbhbhbhhchchchch cPg(ch0c1@c1Hc1Pc1Xc1`c1pc2xc02cP2c1cx2c1c2c2c2c2c2c2c2c2c1c2c2d3d 3dP3dd3 dp3(d30d38dd3@d3Hd1Pd3Xd1`d3hd1pd3xd3d4d 4d 4dP4d5d1d6d1d 6dP6d6d1d6d6d6e6e1e6 e6(e10e68e6@e6He1Pe7Xe1`e 7heP7pep7xe1e7e7e8e8e1e8e+8e68e2eP8e2ei8eo8ew8e8f8f1f8f8 f8(f10f88f1@f8Hf6Pf8Xf8`f8hf1pf9xf1f9f1f(9f1f-9f1f@9f2f1f1f2f8f`9f8f1f1g9g9g9g : g@:(gZ:0gp:8g1hg4g4g4g4g4h4h5 hh(ha0ha8ha@hb0___P_p_ _ x_ @_ _ ___H_h_`_____X__8__Pgpggggg(b(_ __ b&hh'ph'```` `HHu<HtH5:=%<=%:=h%2=h%*=h%"=h%=hH=@H@H9tH;Ht H=?H5?H)HH?HHHtH;HtfD=AEu/UH=;Ht H=<hE]{ff.UHH@HQ?H R;H}HuHUHH HUHMHMHHuHH ?H}HHEHyH?H ;H9HMHHH>H :H9HvH >H>E1EH5:H}LH}HHHEHUHHM6HEH@]f.fUHH0H>H j:H}HuH9HMHHHY>H J:H9HH >HUHHHz>H :HUHH HUHMHMHHuH~H G>H}HH0]UHHHEL*>L9H}HuHUHMLELMI;HMH}HLHE!H =H}HH H =HUHHH =Hg9HEH:HH =HUHHH =H<9HEH:HH =HHHEHH $HHHL$HHHL$HHHL$mH =HEH}HκQH=1H}HLEH0HHHHHLMML$MQLT$MQLT$MILL$LH :H 5HUH9HH^ ^Hh(HH9HHHHhHH $HHHL$HHHL$H@HD$^ HHHH9H <H<LEHHHHHHLHML$MQLT$MQLT$MILL$LH`]f.@UHHEMU]EEGEGEG]f.fUHH`H19H}HuHUHMHH&H /9H9HEH}H<iH9H}HH 8H9HEH}H<+H9H}HH }7H^3HEH}HH}HHH 8H}HHv<H77H}H[HcH 8H3HEH:H6H 8H2HuH}HH}HHuHHEH 8H;E1HHιH n8H}HHEH g8WHUHHHUHMLEIH`]ÐUHH@H7L*8EMH}HuHUHMH}HLQE1DADM@H7HMHH&H 7H1HHH DAEϊE$H@]f.UHHH7L1EMH}HuHUHMHMIHHH 7H]1HEH:HUHzHEH}<Hd7H}HXHHW71ɉH}H7H@6H56HEH}HuHHU<H"7H 0H HHH 7HHH7H}HMHHH 7H}HH w4H0H}HH}HHHEH 6H}HHp<uH6H :0H9HGH 6HEH}HEH}HH%H 6H}HHH6H}HUHH3H /H}H H}HHH (6H}HH<nHZ6H /H9HH Q6HEH}HEHxHHsH 5HxHHZH5H}HUHCHĐ]fDUH1H}Hu]f.UHHH5H z.H.H}HuH:H HHH]@PH=1XHHb@H@E@$@Y@h@q@o͏?initregisterViewResourceDraggingDelegate:v24@0:8@16defaultCenter@16@0:8willInspectObject:addObserver:selector:name:object:v48@0:8@16:24@32@40unregisterViewResourceDraggingDelegate:removeObserver:deallocclass#16@0:8bundleForClass:@24@0:8#16pathForImageResource:@24@0:8@16allocinitWithContentsOfFile:initWithFrame:@48@0:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16setImageFrameStyle:v20@0:8i16setImageScaling:v24@0:8Q16setImageAlignment:setImage:setToolTip:addSubview:associateObject:type:with:v40@0:8@16@24@32releaseVv16@0:8initWithContentRect:styleMask:backing:defer:@68@0:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16Q48Q56C64NSGridView / NSStackViewstack_viewNSStackViewgrid_viewNSGridViewFormatterGridStackPalette@16@0:8v16@0:8v80@0:8@"NSView"16@"NSString"24{_NSRect={_NSPoint=dd}{_NSSize=dd}}32@"NSView"64@"NSString"72v24@0:8@"NSNotification"16C48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32v48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32C16@0:8@"NSArray"16@0:8IBViewResourceDraggingDelegatessetTitle:contentViewplaceView:withImageNamed:atRect:inView:toolTip:v80@0:8@16@24{_NSRect={_NSPoint=dd}{_NSSize=dd}}32@64@72objectcellrespondsToSelector:C24@0:8:16formatterisKindOfClass:C24@0:8#16sharedInspectorManagermainBundlelocalizedStringForKey:value:table:@40@0:8@16@24@32inspectorClassNameaddInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:v52@0:8@16@24@32@40f48setFormatter:typescontainsObject:C24@0:8@16dataForType:unarchiveObjectWithData:countQ16@0:8objectAtIndex:@24@0:8Q16activeDocumenttouchv16@0:8retainisMemberOfClass:numberWithFloat:@20@0:8f16stringValuesetStringValue:setObjectValue:datedescriptionarrayWithObject:finishInstantiateacceptsViewResourceFromPasteboard:forObject:atPoint:C48@0:8@16@24{_NSPoint=dd}32depositViewResourceFromPasteboard:onObject:atPoint:v48@0:8@16@24{_NSPoint=dd}32shouldDrawConnectionFrameC16@0:8viewResourcePasteboardTypesC48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32v48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32@"NSArray"16@0:8zRx AC  <xAC  \AC  |AC  DAC  AC  hAC  AC  AC N <<AC w \AM$t0`FJ w?;*3$";` ,|<\\|<|## 1_x "`  o(  koX  *BRaW " 01\\o o$ oo@ o\""""#(`4 #f4$f4p%d4p'f4+fS5P-gn5.g50 g500g5g:g: gZ:0g:h0`4`b0cPgphxhhhphxhhhhhhhhhPgh111111202P21x21222222221223 3P3d3p333d3313131334 4 4P45161 6P66166661661666171 7P7p71778818+8682P82i8o8w88818881818688819191(91-91@921128`9811999 :@:Z:p:14 4 4 4 4 45haaab b bGCC: (Debian 10.2.1-6) 10.2.1 20210110clang version 9.0.1-16.1 clang version 9.0.1-16.1 GridStackPalette.m/home/heron/Development/gnustep/apps-gorm/Palettes/6GridStackunsigned intNSFocusRingTypeDefaultNSFocusRingTypeNoneNSFocusRingTypeExterior_NSFocusRingTypeNSImageCacheDefaultNSImageCacheAlwaysNSImageCacheBySizeNSImageCacheNeverNSNoInterfaceStyleNSNextStepInterfaceStyleNSMacintoshInterfaceStyleNSWindows95InterfaceStyleGSWindowMakerInterfaceStyleGSTextFillGSTextStrokeGSTextClip_GSTextDrawingModeNSImageInterpolationDefaultNSImageInterpolationNoneNSImageInterpolationLowNSImageInterpolationHigh_NSImageInterpolationNSToolbarDisplayModeDefaultNSToolbarDisplayModeIconAndLabelNSToolbarDisplayModeIconOnlyNSToolbarDisplayModeLabelOnlyNSToolbarSizeModeDefaultNSToolbarSizeModeRegularNSToolbarSizeModeSmallNSNonZeroWindingRuleNSEvenOddWindingRuleNSButtLineCapStyleNSRoundLineCapStyleNSSquareLineCapStyleNSMiterLineJoinStyleNSRoundLineJoinStyleNSBevelLineJoinStyleNSRoundedBezelStyleNSRegularSquareBezelStyleNSThickSquareBezelStyleNSThickerSquareBezelStyleNSDisclosureBezelStyleNSShadowlessSquareBezelStyleNSCircularBezelStyleNSTexturedSquareBezelStyleNSHelpButtonBezelStyleNSSmallSquareBezelStyleNSTexturedRoundedBezelStyleNSRoundRectBezelStyleNSRecessedBezelStyleNSRoundedDisclosureBezelStyleNSNeXTBezelStyleNSPushButtonBezelStyleNSSmallIconButtonBezelStyleNSMediumIconButtonBezelStyleNSLargeIconButtonBezelStyle_NSBezelStyleNSGradientNoneNSGradientConcaveWeakNSGradientConcaveStrongNSGradientConvexWeakNSGradientConvexStrong_NSGradientTypeisaobjc_classobjc_objectidClassNSObjectoriginalWindow_interface_styleNSInterfaceStyle_next_responder_menu_titleNSString_itemsNSArrayNSMutableArray_viewlayerContentsPlacementlong intintptr_tNSIntegerNSViewLayerContentsPlacementlayerContentsRedrawPolicyNSViewLayerContentsRedrawPolicyuserInterfaceLayoutDirectionNSUserInterfaceLayoutDirection_frameoriginxdoubleCGFloaty_NSPointNSPointsizewidthheight_NSSizeNSSize_NSRectNSRect_bounds_frameMatrix_boundsMatrix_matrixToWindow_matrixFromWindow_coreAnimationData_super_view_sub_views_window_tracking_rects_cursor_rects_invalidRect_visibleRect_gstate_nextKeyView_previousKeyView_alphaValue_rFlagsflipped_viewhas_subviewshas_currectshas_trkrectshas_draginfoopaque_viewvalid_rectsneeds_displayhas_tooltipsignores_backing_rFlagsType_is_rotated_from_baseunsigned charBOOL_is_rotated_or_scaled_from_base_post_frame_changes_post_bounds_changes_autoresizes_subviews_coordinates_valid_allocate_gstate_renew_gstate_is_hidden_in_live_resize_autoresizingMasklong unsigned intuintptr_tNSUInteger_focusRingTypeNSFocusRingType_autoresizingFrameErrorNSView_superMenu_attachedMenu_notifications_delegate_popUpButtonCell_contents_cell_image_name_fileName_size_flagsarchiveByNamescalabledataRetainedflipDrawsizeWasExplicitlySetuseEPSOnResolutionMismatchcolorMatchPreferredmultipleResolutionMatchingcacheSeparatelyunboundedCacheDepthsyncLoad__imageFlags_reps_colorNSColor_lockedView_cacheModeNSImageCacheModeNSImage_fontfontNamematrix__ARRAY_SIZE_TYPE__matrixExplicitlySetscreenFontfontInfo_fontRefroleintcachedScreenFontcachedFlippedFontNSFont_object_value_cellcontents_is_attributed_stringis_highlightedis_disabledis_editableis_rich_textimports_graphicsshows_first_responderrefuses_first_respondersends_action_on_end_editingis_borderedis_bezeledis_scrollablereservedtext_alignis_selectableallows_mixed_statehas_valid_object_valuetypeimage_positionentry_typeallows_undoline_break_modestatemnemonic_locationcontrol_tintcontrol_sizefocus_ring_typebase_writing_directionsubclass_bool_onesubclass_bool_twosubclass_bool_threesubclass_bool_fourin_editinguses_single_line_modebackground_styleGSCellFlagsType_mouse_down_flags_action_mask_formatterNSFormatter_represented_object_reserved1NSCell_tag_target_actionobjc_selectorSEL_control_viewNSActionCell_altContents_altImage_keyEquivalent_keyEquivalentFont_sound_dataNSData_playbackDeviceIdentifier_channelMapping_onlyReference_source_sink_readLockNSConditionLock_playbackLockNSLock_shouldStop_shouldLoopNSSound_keyEquivalentModifierMask_highlightsByMask_showAltStateMask_delayIntervalfloat_repeatInterval_bezel_styleNSBezelStyle_gradient_typeNSGradientType_backgroundColor_imageScalingNSImageScalingNSButtonCell_menuItem_mnemonicLocation_state_image_onStateImage_offStateImage_mixedStateImage_representedObject_submenu_enabled_changesState_isAlternate_indentationchar_toolTipNSMenuItem_menuView_itemCells_horizontal_pad1_highlightedItemIndex_horizontalEdgePad_stateImageOffset_stateImageWidth_imageAndTitleOffset_imageAndTitleWidth_keyEqOffset_keyEqWidth_needsSizing_pad2_cellSize_items_link_leftBorderOffset_titleViewNSMenuView_mcell_belongs_to_popupbutton_needs_sizing_needs_display_pad_imageWidth_titleWidth_keyEquivalentWidth_menuItemHeight_imageToDisplay_titleToDisplay_imageSizeNSMenuItemCell_selectedItem_pbcFlagspullsDownpreferredEdgeusesItemFromMenualtersStateOfSelectedItemarrowPosition__pbcFlagsNSPopUpButtonCellchangedMessagesEnabledautoenableneedsSizingis_tornofftransienthorizontalmainMenuChangedunusedGSMenuFlags_aWindow_bWindow_oldAttachedMenu_oldHiglightedIndexNSMenuNSRespondersheetParentbackingScaleFactor_minimumSize_maximumSize_increments_autosaveName_wvGSWindowDecorationView_contentView_firstResponder_futureFirstResponder_initialFirstResponder_fieldEditor_lastLeftMouseDownView_lastRightMouseDownView_lastOtherMouseDownView_lastDragView_lastDragOperationMask_windowNum_defaultButtonCell_contextmethodsDPScurrentalpha_DPScurrentcmykcolor____DPScurrentgray_DPScurrenthsbcolor___DPScurrentrgbcolor___DPSsetalpha_DPSsetcmykcolor____DPSsetgray_DPSsethsbcolor___DPSsetrgbcolor___GSSetFillColorspace_NSDictionaryGSSetStrokeColorspace_GSSetFillColor_GSSetStrokeColor_DPSashow___DPSawidthshow______DPScharpath__DPSshow_DPSwidthshow____DPSxshow___DPSxyshow___DPSyshow___GSSetCharacterSpacing_GSSetFont_GSSetFontSize_GSGetTextCTMNSAffineTransformGSGetTextPositionGSSetTextCTM_GSSetTextDrawingMode_GSTextDrawingModeGSSetTextPosition_GSShowText__size_tGSShowGlyphs__NSGlyphGSShowGlyphsWithAdvances__DPSgrestoreDPSgsaveDPSinitgraphicsDPSsetgstate_GSDefineGStateGSUndefineGState_GSReplaceGState_DPScurrentflat_DPScurrentlinecap_DPScurrentlinejoin_DPScurrentlinewidth_DPScurrentmiterlimit_DPScurrentpoint__DPScurrentstrokeadjust_DPSsetdash___DPSsetflat_DPSsethalftonephase__DPSsetlinecap_DPSsetlinejoin_DPSsetlinewidth_DPSsetmiterlimit_DPSsetstrokeadjust_DPSconcat_DPSinitmatrixDPSrotate_DPSscale__DPStranslate__GSCurrentCTMGSSetCTM_GSConcatCTM_DPSarc_____DPSarcn_____DPSarct_____DPSclipDPSclosepathDPScurveto______DPSeoclipDPSeofillDPSfillDPSflattenpathDPSinitclipDPSlineto__DPSmoveto__DPSnewpathDPSpathbbox____DPSrcurveto______DPSrectclip____DPSrectfill____DPSrectstroke____DPSreversepathDPSrlineto__DPSrmoveto__DPSstrokeGSSendBezierPath__windingRuleNSWindingRule_lineCapStyleNSLineCapStyle_lineJoinStyleNSLineJoinStyle_lineWidth_flatness_miterLimit_dash_count_dash_phase_dash_pattern_controlPointBounds_cacheImage_pathElements_cachesBezierPath_shouldRecalculateBounds_flatNSBezierPathGSRectClipList__GSRectFillList__GSCurrentDevice___DPScurrentoffset__GSSetDevice___DPSsetoffset__shortDPScomposite________NSCompositingOperationDPScompositerect_____DPSdissolve________GSDrawImage__DPSPrintf__gp_offsetfp_offsetoverflow_arg_areareg_save_area__va_list_tagDPSWriteData__GSReadRect_NSBeepGSWSetViewIsFlipped_GSWViewIsFlippedNSDrawBitmap___________DPSshfillgsMethodTablecontext_infocontext_dataNSMutableDatafocus_stackusedFontsNSSetNSMutableSet_interpNSImageInterpolation_antialias_patternPhase_graphicsPort_isFlipped_compositingOperationNSGraphicsContext_screen_depthNSWindowDepth_screenNumber_supportedWindowDepths_reservedNSScreen_representedFilename_miniaturizedTitle_miniaturizedImage_windowTitle_lastPoint_backingTypeNSBackingStoreType_styleMask_windowLevel_rectNeedingFlush_rectsBeingDrawn_disableFlushWindow_depthLimit_windowController_window_nib_name_window_nib_path_window_frame_autosave_name_document_window_controllers_file_urlfileURLisFileURLNSURL_file_name_file_type_file_modification_dateNSDate_last_component_file_name_autosaved_file_url_print_info_infoNSMutableDictionaryNSPrintInfo_printOp_delegate_printOp_didRunSelector_save_panel_accessory_spa_button_ignoresMultiClickNSControlNSButtonNSPopUpButton_save_type_undo_managerNSUndoManager_change_count_autosave_change_count_document_index_doc_flagsin_closehas_undo_managerpermanently_modifiedautosave_permanently_modifiedRESERVED__docFlagsNSDocument_top_level_objects_owner_segueMapNSMapTable_storyboard_transformNSStoryboard_wcFlagsshould_close_documentshould_cascadenib_is_loaded___wcFlags_reserved2NSWindowController_counterpart_children_parent_cachedImage_colorSpace_hasAlpha_isOpaque_bitsPerSample_pixelsWide_pixelsHighNSImageRep_rectNSCachedImageRep_cachedImageOrigin_attachedSheet_faccepts_dragis_one_shotneeds_flushis_autodisplayoptimize_drawingdynamic_depth_limitcursor_rects_enabledcursor_rects_validvisibleis_keyis_mainis_editedis_released_when_closedis_miniaturizedmenu_excludehides_on_deactivateaccepts_mouse_movedhas_openedhas_closeddefault_button_cell_key_disabledcan_hidehas_shadowis_opaqueviews_need_displayselectionDirectiondisplays_when_screen_profile_changesis_movable_by_window_backgroundallows_tooltips_when_inactiveshows_toolbar_buttonautorecalculates_keyview_loopignores_mouse_eventspreserves_content_during_live_resizeGSWindowFlagsType_toolbar_configurationDictionary_identifier_selectedItemIdentifier_toolbarViewGSToolbarView_displayModeNSToolbarDisplayMode_sizeModeNSToolbarSizeMode_allowsUserCustomization_autosavesConfiguration_visible_customizationPaletteIsRunning_showsBaselineSeparator_build_interfaceBuilderItemsByIdentifier_interfaceBuilderAllowedItemIdentifiers_interfaceBuilderDefaultItemIdentifiers_interfaceBuilderSelectableItemIdentifiersNSToolbar_reserved_1NSWindowiconpaletteDocumentIBPaletteGridStackPalette-[GridStackPalette init]-[GridStackPalette dealloc]-[GridStackPalette placeView:withImageNamed:atRect:inView:toolTip:]-[GridStackPalette finishInstantiate]NSMakeRect-[GridStackPalette willInspectObject:]-[GridStackPalette acceptsViewResourceFromPasteboard:forObject:atPoint:]-[GridStackPalette depositViewResourceFromPasteboard:onObject:atPoint:]-[GridStackPalette shouldDrawConnectionFrame]-[GridStackPalette viewResourcePasteboardTypes]self_cmdoimageNameframecontentstooltipvimgpathwhrectnotificationNSNotificationcellformatteridentpbnamechangeCounttargetowneruseHistoryNSPasteboardobjpdataarrayfieldValue%I : ; ($> I : ; II  I8 <  : ;  I8  : ;   I: ; 8 2  : ;  I: ;8 2 I: ;  : ;  I: ; I: ; 8  I: ;8  : ;  I: ; 8 I!I7 $ >  : ; I: ; 8 < &I I: ;! : ; " I: ; 8# I: ;8$'%I&I''I: ; (.@d: ; 'I)I4*.@d: ; '+: ; I,4: ; I-.@: ; 'I. /-#L IwxkIOI++D^xII0pI7FbI@I>I'1DXI-mIZ #@Up     ,HeIq#  -2  ( 4 G( 3= ~53?( 3@(3A, $ +-&( >Z bv1 > K W^ea ,CNalab# ^^ ^ # )  4  A  S td Ix # ## #t##S'I$\$k$'F&'*H( I / ~Dt 3f 8v AqU5>x  ~|^ t       t    $ v      ^ c  ~y 2  = ~ P} >wnLoL:{ v 0<tGOt_tmz   K Q z         & _  ~ U\WLW"d e}g h;< > ? f* OP R SE IIIII I I I( I5 I u g  T ] J Z8 *n {) EP1 T 3:@'  W))^* .9 1G 2Vw3[ 5g 6s 7w 8 9 ;^< =Jz ^} ~^*   -$ % ['`(h)*T` ~:>    *    v5I   X~ ~ ^ ^   \  t      I! I* I7 I@ IU Ip I I I I I Y ~P T/ pP ~$ ^R- SH T\ Ug Wp Xy _ *f *n 4 ~  I I I I I I# I9 IQ Im Iy I I I I I I I  I  I I I II1I>IKI[I rI I I I III)B ~~ px`9 ~ ^;<^=> ? @#B+C1DKE` Fl GU ~; ~YI ~co w ;. s ~vu|^v^w xa yszz { | } ~`h[   W^cQ tS* T6kU *V<WRXeYwZ[\]^ _k` adef lWW:4I5I6I7I8,I9 WI nI yI I I I I I fiqO` ~j@#t2#W#   . 9~! & >!H (ro - /o 1 3 5  7( 90 ;8  =@  ?H(* BPJ* DXao F`qo HhU Np Px R T V X Z \ _. a c!D e@n gR i` k m o q"& s"P y"P {"P }"a  "w ("#a 0"5a 8"Fo @"V H"i P"}o X"o `" h" p" x" " " " "! "2 "D "X "cP "q "| " "D " " ") ") ") "P "P "S "P ("P 0"P 8""P @"1P H"= P"I X"UP `"` h"pS p" x" " "P " " "P " " " "% "8 #K! #Z#! #oE! #! #! #! #" #!`" #0{" #<P  #C" $(#X" &0#i" ,8#* <@t$%l%% $%l%%%%%$%l%%%%$%l%% $%l%% % % % $%l%% % % /$%l%%@E=!) ~Z$%l%% % %uzW$%l%% % %% % %u$%l%%u%$%l%%u$%l%% % %%u $%l%%u%$%) 3$%l%%*I&Y%l%^."- ~s&%l%$%l%%Y$%l%%v$%l%%$%l%%u% #.$%l%%%I/+$%l%%%F%K U$%l%f$%l%%|&%l%$%l%%$%l%%%$%l%%$%% $%l%% % $%l%%$%l%%$.$%l%% % % % % X$%l%% % % % % % $%l%%J ~} M N1 OP P[ Qe RqS} TUVW X \ ` a bA-"+H@1 $%l%% %  $%l%% %%  $%l%%%!$%l%% %%(!$%l%%>!%>!iJ!$%l%% % % % %% % %~! k!$%l%% % % % %~!!$%l%% % % % %% % % !$%l%%%  "$%l%%u%""'"II  e"$%l%%u%I"&@%l%%"$%l%% "& %l%"$%l%%%%%%%%% % %^%# ### !#= 7#$ G#$/ ~vg#H%, ~i#%/v%0~%1#%2 %3pm#  A##&) >G&, ^&- ^&. ^&/ $&0"&1#&2#&&3+#&&4O#'&;I &<# &=$"'W ~G'Z t'[ %'\!^']!^'^*!%'_I!^'`c!%'aw!%'b!'c!'d!'e!&'f)"^'g4"n&'hP"'i^"'ju"'k"&'rI 's%!(H ~' (!%B!)< ~%!*? ~!%*A%!! E&"h-- %&"h,* 6&"h+/ [+2 +3! +4s&B".V ~"'l"I'm"I'n"I'o"I'p"I'q& #/? ~&B#0+ ~7#0-#&5X#I&7n#I&8}#I&9"I&:X'8$h2' '2$2*G2+'$@11 ~#^14  15# 16# 17$18$19$1:&n$I{$I $I!$I"$I#$I$$I%$I&$I'$I($I)%I*%I+(%I,8%I-E%I.Y%I/m%I0x%I1 %I2 %I3 %I4 %I5 %I6rI8I9I:%I<%I= &I>-&I?K&IB`&IC~&ID&IE,*(hM ~&@O P&^Q&^RtS'&+T+'1+UM'<+Wi' [' \' ]' ^' _' `'@a(b,(cT(d++'8'=W'E(#Vd+(%)x*//)p**$V+(8)x*//)p**p%V+)?)x*//)p*+h*?+`*@^+*A+X*B+P*C^,H*E,@*F ,*G^*p'Vk,G)W)x*//)p*,h*Y-@+DVm)׵+x +p +h* +`* ,u*ٵ*+V -x)q)x*//)p*+h*q4/,`*s.+b,X*v. ,$,P*y.y,,H*|^(P-V-) )h*//)`*+X+I/+P9++p=+*.V .))h*//)`*+X+I/+P9++p=+,H?+,@D+..,*./_,J+.=0`,J+(0V.0* )x*//)p*(0<V/^*)x*//)p*79/*51 ~N/,+06 ~+^6+6+6+6!+ 6H /usr/GNUstep/System/Library/Headers/AppKit/usr/GNUstep/System/Library/Headers/Foundation/usr/include/usr/GNUstep/Local/Library/Headers/objc/usr/GNUstep/System/Library/Headers/GNUstepGUI/usr/lib/llvm-9/lib/clang/9.0.1/include../../InterfaceBuilder.NSView.hNSImage.hNSInterfaceStyle.hNSGraphicsContext.hNSToolbar.hNSBezierPath.hNSButtonCell.hGridStackPalette.mNSObject.hNSResponder.hNSString.hNSMenu.hNSArray.hstdint.hNSObjCRuntime.hNSUserInterfaceLayout.hNSGeometry.hruntime.hNSCell.hNSColor.hNSFont.hNSFormatter.hNSActionCell.hNSSound.hNSData.hNSLock.hNSMenuItem.hNSMenuItemCell.hNSMenuView.hNSPopUpButtonCell.hNSWindow.hGSMethodTable.hNSDictionary.hNSAffineTransform.hstddef.hNSSet.hNSScreen.hNSWindowController.hNSDocument.hNSURL.hNSDate.hNSPrintInfo.hNSControl.hNSButton.hNSPopUpButton.hNSUndoManager.hNSMapTable.hNSStoryboard.hNSImageRep.hNSCachedImageRep.hIBPalette.hGridStackPalette.hNSNotification.hNSPasteboard.h #$  5JJYf+5<J&Lq J# 3<J9 J5 55<41!I M2  JK 8KJYJJJJJJJJJ"J9</  8IJfJJJ MJ8"II5WJ7"LL8Lf XKXYXYXY  JKJftJ X K JftJXK!Jf-t,JX K#KKBJYY{ 0 J>~ftJ <>~<XC 3#J< K5<J LX~f t J J~fJXM~f <  "JJ! (J ~fX KJX!JJ~X-J~f KJ!JJ~XYYY & %$< < GNUgold 1.16 0c #. @#A #W!hc\ #\0``!hb&aHAa^a{b @+D P- $  .S p'z # p% 0 0<9 +a<o "u01{(`\bxh8 hh@g9598W7U2"3 2@9<3f26286 i868 (9-2D1a94-9 `96 1  4-I2p3p768 7# 7 :8Z6pw82 601&' 4> x2] 6 8 8 3 3 P3 p31 9P 9o 5 3 6 @: 8 8" 87 P8_ P2( p: 1 : 1 8 7 2 R 2 m 8 P7  3- P46, 2D Z:\ +8 w 6 6 :+ 9o8- 4 F8^d3 y1 3 3:+  :802\7P69g-fSepc`d9cVfpdcdec4e^deefcfPc=gffe e$dcd0c(fDpen0e@f`ePe'PfRe{dcdA@cdcd0fe5 f]@d0dd df1pf[dPd@e g`f'fDeaec0g `c,fYg mg g  10c\P0cPgPgh1hJhhbhh|phphxhxhhhh" h? h[_@qhvh}h" ->Tn$AZv > hh` hX ph    b! ! ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmgorm-1.3.1/Palettes/6GridStack/6GridStack.palette/Resources/stack_view.tiff0000644000175000017500000000720214327003123025567 0ustar heronheronMM*X?O BaPd6DbQ8'FcQ+HdR8t~I'JbiTB ri"@8ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmgorm-1.3.1/Palettes/6GridStack/6GridStack.palette/Resources/GridStackPalette.tiff0000644000175000017500000000745414327003123026633 0ustar heronheronMM*?O BaPd6DbQ8Cv=HaX\`HRdIנ 4gSHS-P`L ;cY2a:L5Ta'C Rc\RzhA\} BqX5Kj$ |ӗG7(f30ӣ0}._O [~=k2n[i]_KptwDڸ7̄7-gt;h?>{ⅳlۣ A  ?pT2hD%BD@$S0,@dWH8/4:mFH궐Ir P1 jzKI:|KhJHr,$jԹZM) ҪC7!Oh\q C2dDRF#}#QT+RġNuPԐu9RUGT(## #(=RS܇s H HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmgorm-1.3.1/Palettes/6GridStack/obj/0000755000175000017500000000000014327003123015757 5ustar heronherongorm-1.3.1/Palettes/6GridStack/obj/6GridStack.obj/0000755000175000017500000000000014327003123020471 5ustar heronherongorm-1.3.1/Palettes/6GridStack/obj/6GridStack.obj/GridStackPalette.m.d0000644000175000017500000016301614327003123024272 0ustar heronheronobj/6GridStack.obj/GridStackPalette.m.o: GridStackPalette.m \ /usr/GNUstep/System/Library/Headers/Foundation/Foundation.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/GSVersionMacros.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/GSConfig.h \ /usr/GNUstep/Local/Library/Headers/objc/blocks_runtime.h \ /usr/GNUstep/Local/Library/Headers/objc/objc.h \ /usr/GNUstep/Local/Library/Headers/objc/runtime.h \ /usr/GNUstep/System/Library/Headers/Foundation/FoundationErrors.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSObject.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSObjCRuntime.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/GNUstep.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/GSBlocks.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/GSObjCRuntime.h \ /usr/GNUstep/Local/Library/Headers/objc/objc-api.h \ /usr/GNUstep/Local/Library/Headers/objc/encoding.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSZone.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDate.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSObject+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/FoundationLegacySwiftCompatibility.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDebug.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSDebug+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSProcessInfo.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSProcessInfo+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSAffineTransform.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSGeometry.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSString.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSRange.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSString+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSMutableString+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSAppleEventDescriptor.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSAppleEventManager.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSAppleScript.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSArchiver.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSCoder.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSSet.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSEnumerator.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSArray.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSArray+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSAttributedString.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDictionary.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSAttributedString+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSAutoreleasePool.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSBackgroundActivityScheduler.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSBundle.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSBundle+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSByteCountFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDecimalNumber.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDecimal.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSValue.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSNumber+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSByteOrder.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSCache.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSCalendar.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSCalendarDate.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSCalendarDate+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSCharacterSet.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSClassDescription.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSException.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSComparisonPredicate.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSExpression.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPredicate.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSCompoundPredicate.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSConnection.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSTimer.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSRunLoop.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSMapTable.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPointerFunctions.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSData.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSSerialization.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSData+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDateComponentsFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDateFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDateInterval.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDateIntervalFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDistantObject.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSProxy.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDistributedLock.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDistributedNotificationCenter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSLock.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSLock+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSNotification.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSEnergyFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSError.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSExtensionContext.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSExtensionItem.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSExtensionRequestHandling.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFileCoordinator.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURL.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLHandle.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSURL+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFileHandle.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSFileHandle+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFileManager.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPathUtilities.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFilePresenter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFileVersion.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFileWrapper.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSGarbageCollector.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSHashTable.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSHFSFileTypes.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSHost.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSHTTPCookie.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSHTTPCookieStorage.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSIndexPath.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSIndexSet.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSInvocation.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSMethodSignature.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSInvocationOperation.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSOperation.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSISO8601DateFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSItemProvider.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSItemProviderReadingWriting.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSJSONSerialization.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSKeyedArchiver.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPropertyList.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSKeyValueCoding.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSKeyValueObserving.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSLengthFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSLinguisticTagger.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSLocale.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSMeasurement.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSMeasurementFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSMetadata.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSMetadataAttributes.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSNotificationQueue.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSNetServices.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSNetServices+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSNull.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSNumberFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSObjectScripting.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSOrderedSet.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSOrthography.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPersonNameComponents.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPersonNameComponentsFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPointerArray.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPortCoder.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPortMessage.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPort.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPortNameServer.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSProgress.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSProtocolChecker.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSRegularExpression.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScanner.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptClassDescription.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptCoercionHandler.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptCommand.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptCommandDescription.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptExecutionContext.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptKeyValueCoding.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptObjectSpecifiers.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptStandardSuiteCommands.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptSuiteRegistry.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptWhoseTests.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSSortDescriptor.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSSpellServer.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSStream.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSStream+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSTask.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSTask+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSTextCheckingResult.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSThread.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSThread+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSTimeZone.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUbiquitousKeyValueStore.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUndoManager.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUnit.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUserActivity.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLAuthenticationChallenge.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLCache.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLConnection.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLCredential.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLCredentialStorage.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLDownload.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLError.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLProtectionSpace.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLProtocol.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLRequest.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLResponse.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLSession.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUserDefaults.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUserNotification.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUUID.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSValueTransformer.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLDocument.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLNode.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLNodeOptions.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLDTD.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLDTDNode.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLElement.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLParser.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXPCConnection.h \ /usr/GNUstep/System/Library/Headers/AppKit/AppKit.h \ /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSVersion.h \ /usr/GNUstep/System/Library/Headers/AppKit/AppKitErrors.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGraphics.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGraphicsContext.h \ /usr/GNUstep/System/Library/Headers/AppKit/AppKitDefines.h \ /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSMethodTable.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFont.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibility.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityConstants.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityCustomAction.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityCustomRotor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityProtocols.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityElement.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSActionCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSParagraphStyle.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSText.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSResponder.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSInterfaceStyle.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceLayout.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSpellProtocol.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAnimationContext.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAppearance.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSApplication.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceValidation.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAttributedString.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFontManager.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSBitmapImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSBox.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSBrowser.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSControl.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSBrowserCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSButton.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSButtonCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCachedImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCIImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSClipView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCollectionView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDragging.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSNibDeclarations.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCollectionViewItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSImageView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSImageCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextField.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextFieldCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSViewController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSeguePerforming.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStoryboardSegue.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPopover.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorList.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorPicking.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorWell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSWindow.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorPicker.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCursor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCustomImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDataAsset.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDataLink.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDataLinkManager.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDataLinkPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSEPSImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSEvent.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFontPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSForm.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMatrix.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFormCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSHelpPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSImage.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMenu.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMenuItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMenuItemCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMenuView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSNibLoading.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSOpenPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSavePanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPageLayout.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPasteboard.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPasteboardItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPDFInfo.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPrintInfo.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPDFImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPDFPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPICTImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPopUpButton.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPopUpButtonCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPrinter.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPrintOperation.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPrintPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSRunningApplication.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSWorkspace.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSScreen.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSScroller.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSScrollView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSScrubber.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSScrubberItemView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSScrubberLayout.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSelection.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSharingService.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSlider.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSliderCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSpellChecker.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSplitView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStatusBar.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStatusBarButton.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStatusItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStringDrawing.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAlert.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAnimation.h \ /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSAnimator.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAffineTransform.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSArrayController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSObjectController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSBezierPath.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSButtonTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorSampler.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorSpace.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSComboBox.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSComboBoxCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCandidateListTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSClickGestureRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGestureRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorPickerTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCustomTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDatePicker.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDatePickerCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDockTile.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDocument.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDocumentController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDrawer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFileWrapperExtensions.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFontAssetRequest.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFontCollection.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFontDescriptor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGlyphGenerator.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGlyphInfo.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGradient.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGridView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGroupTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSHelpManager.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSInputManager.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSInputServer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSKeyValueBinding.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutAnchor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutConstraint.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutGuide.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceItemIdentification.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutManager.h \ /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSLayoutManager.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextFinder.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextAttachment.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSLevelIndicator.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSLevelIndicatorCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMagnificationGestureRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMediaLibraryBrowserController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMovie.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMovieView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPageController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPanGestureRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSNib.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSNibControlConnector.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSNibConnector.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSNibOutletConnector.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSOpenGL.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSOpenGLView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSOutlineView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTableView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPersistentDocument.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPathControl.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPathCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPathComponentCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPathControlItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPickerTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPredicateEditor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSRuleEditor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPredicateEditorRowTemplate.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSProgressIndicator.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPopoverTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPressGestureRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSRulerMarker.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSRulerView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSRotationGestureRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSearchField.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSearchFieldCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSecureTextField.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSegmentedCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSegmentedControl.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSShadow.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSharingServicePickerToolbarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSToolbarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSharingServicePickerTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSliderTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSound.h \ /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSSoundSource.h \ /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSSoundSink.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSpeechRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSpeechSynthesizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStackView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStepperTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStepper.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStepperCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStoryboard.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSwitch.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSplitViewController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSplitViewItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTableColumn.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTableHeaderCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTableHeaderView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTabView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTabViewController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSToolbar.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTabViewItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextAlternatives.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextContainer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextCheckingClient.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextInputClient.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextCheckingController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextInputContext.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextList.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextStorage.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextTable.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTouch.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTouchBar.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTokenField.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTokenFieldCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSToolbarItemGroup.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTrackingArea.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTreeController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTreeNode.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSUserDefaultsController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceCompression.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceItemSearching.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSVisualEffectView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSWindowController.h \ /usr/GNUstep/System/Library/Headers/AppKit/PSOperators.h \ /usr/GNUstep/System/Library/Headers/AppKit/DPSOperators.h \ ../../InterfaceBuilder/InterfaceBuilder.h \ ../../InterfaceBuilder/IBApplicationAdditions.h \ ../../InterfaceBuilder/IBDocuments.h \ ../../InterfaceBuilder/IBEditors.h ../../InterfaceBuilder/IBSystem.h \ ../../InterfaceBuilder/IBConnectors.h \ ../../InterfaceBuilder/IBCellAdditions.h \ ../../InterfaceBuilder/IBCellProtocol.h \ ../../InterfaceBuilder/IBDefines.h \ ../../InterfaceBuilder/IBInspector.h \ ../../InterfaceBuilder/IBObjectProtocol.h \ ../../InterfaceBuilder/IBInspectorManager.h \ ../../InterfaceBuilder/IBInspectorMode.h \ ../../InterfaceBuilder/IBObjectAdditions.h \ ../../InterfaceBuilder/IBPalette.h ../../InterfaceBuilder/IBPlugin.h \ ../../InterfaceBuilder/IBProjectFiles.h \ ../../InterfaceBuilder/IBProjects.h \ ../../InterfaceBuilder/IBResourceManager.h \ ../../InterfaceBuilder/IBViewAdditions.h \ ../../InterfaceBuilder/IBViewProtocol.h \ ../../InterfaceBuilder/IBViewResourceDragging.h GridStackPalette.h /usr/GNUstep/System/Library/Headers/Foundation/Foundation.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/GSVersionMacros.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/GSConfig.h: /usr/GNUstep/Local/Library/Headers/objc/blocks_runtime.h: /usr/GNUstep/Local/Library/Headers/objc/objc.h: /usr/GNUstep/Local/Library/Headers/objc/runtime.h: /usr/GNUstep/System/Library/Headers/Foundation/FoundationErrors.h: /usr/GNUstep/System/Library/Headers/Foundation/NSObject.h: /usr/GNUstep/System/Library/Headers/Foundation/NSObjCRuntime.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/GNUstep.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/GSBlocks.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/GSObjCRuntime.h: /usr/GNUstep/Local/Library/Headers/objc/objc-api.h: /usr/GNUstep/Local/Library/Headers/objc/encoding.h: /usr/GNUstep/System/Library/Headers/Foundation/NSZone.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDate.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSObject+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/FoundationLegacySwiftCompatibility.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDebug.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSDebug+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSProcessInfo.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSProcessInfo+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSAffineTransform.h: /usr/GNUstep/System/Library/Headers/Foundation/NSGeometry.h: /usr/GNUstep/System/Library/Headers/Foundation/NSString.h: /usr/GNUstep/System/Library/Headers/Foundation/NSRange.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSString+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSMutableString+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSAppleEventDescriptor.h: /usr/GNUstep/System/Library/Headers/Foundation/NSAppleEventManager.h: /usr/GNUstep/System/Library/Headers/Foundation/NSAppleScript.h: /usr/GNUstep/System/Library/Headers/Foundation/NSArchiver.h: /usr/GNUstep/System/Library/Headers/Foundation/NSCoder.h: /usr/GNUstep/System/Library/Headers/Foundation/NSSet.h: /usr/GNUstep/System/Library/Headers/Foundation/NSEnumerator.h: /usr/GNUstep/System/Library/Headers/Foundation/NSArray.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSArray+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSAttributedString.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDictionary.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSAttributedString+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSAutoreleasePool.h: /usr/GNUstep/System/Library/Headers/Foundation/NSBackgroundActivityScheduler.h: /usr/GNUstep/System/Library/Headers/Foundation/NSBundle.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSBundle+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSByteCountFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDecimalNumber.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDecimal.h: /usr/GNUstep/System/Library/Headers/Foundation/NSValue.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSNumber+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSByteOrder.h: /usr/GNUstep/System/Library/Headers/Foundation/NSCache.h: /usr/GNUstep/System/Library/Headers/Foundation/NSCalendar.h: /usr/GNUstep/System/Library/Headers/Foundation/NSCalendarDate.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSCalendarDate+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSCharacterSet.h: /usr/GNUstep/System/Library/Headers/Foundation/NSClassDescription.h: /usr/GNUstep/System/Library/Headers/Foundation/NSException.h: /usr/GNUstep/System/Library/Headers/Foundation/NSComparisonPredicate.h: /usr/GNUstep/System/Library/Headers/Foundation/NSExpression.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPredicate.h: /usr/GNUstep/System/Library/Headers/Foundation/NSCompoundPredicate.h: /usr/GNUstep/System/Library/Headers/Foundation/NSConnection.h: /usr/GNUstep/System/Library/Headers/Foundation/NSTimer.h: /usr/GNUstep/System/Library/Headers/Foundation/NSRunLoop.h: /usr/GNUstep/System/Library/Headers/Foundation/NSMapTable.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPointerFunctions.h: /usr/GNUstep/System/Library/Headers/Foundation/NSData.h: /usr/GNUstep/System/Library/Headers/Foundation/NSSerialization.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSData+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDateComponentsFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDateFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDateInterval.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDateIntervalFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDistantObject.h: /usr/GNUstep/System/Library/Headers/Foundation/NSProxy.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDistributedLock.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDistributedNotificationCenter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSLock.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSLock+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSNotification.h: /usr/GNUstep/System/Library/Headers/Foundation/NSEnergyFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSError.h: /usr/GNUstep/System/Library/Headers/Foundation/NSExtensionContext.h: /usr/GNUstep/System/Library/Headers/Foundation/NSExtensionItem.h: /usr/GNUstep/System/Library/Headers/Foundation/NSExtensionRequestHandling.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFileCoordinator.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURL.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLHandle.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSURL+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFileHandle.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSFileHandle+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFileManager.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPathUtilities.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFilePresenter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFileVersion.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFileWrapper.h: /usr/GNUstep/System/Library/Headers/Foundation/NSGarbageCollector.h: /usr/GNUstep/System/Library/Headers/Foundation/NSHashTable.h: /usr/GNUstep/System/Library/Headers/Foundation/NSHFSFileTypes.h: /usr/GNUstep/System/Library/Headers/Foundation/NSHost.h: /usr/GNUstep/System/Library/Headers/Foundation/NSHTTPCookie.h: /usr/GNUstep/System/Library/Headers/Foundation/NSHTTPCookieStorage.h: /usr/GNUstep/System/Library/Headers/Foundation/NSIndexPath.h: /usr/GNUstep/System/Library/Headers/Foundation/NSIndexSet.h: /usr/GNUstep/System/Library/Headers/Foundation/NSInvocation.h: /usr/GNUstep/System/Library/Headers/Foundation/NSMethodSignature.h: /usr/GNUstep/System/Library/Headers/Foundation/NSInvocationOperation.h: /usr/GNUstep/System/Library/Headers/Foundation/NSOperation.h: /usr/GNUstep/System/Library/Headers/Foundation/NSISO8601DateFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSItemProvider.h: /usr/GNUstep/System/Library/Headers/Foundation/NSItemProviderReadingWriting.h: /usr/GNUstep/System/Library/Headers/Foundation/NSJSONSerialization.h: /usr/GNUstep/System/Library/Headers/Foundation/NSKeyedArchiver.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPropertyList.h: /usr/GNUstep/System/Library/Headers/Foundation/NSKeyValueCoding.h: /usr/GNUstep/System/Library/Headers/Foundation/NSKeyValueObserving.h: /usr/GNUstep/System/Library/Headers/Foundation/NSLengthFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSLinguisticTagger.h: /usr/GNUstep/System/Library/Headers/Foundation/NSLocale.h: /usr/GNUstep/System/Library/Headers/Foundation/NSMeasurement.h: /usr/GNUstep/System/Library/Headers/Foundation/NSMeasurementFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSMetadata.h: /usr/GNUstep/System/Library/Headers/Foundation/NSMetadataAttributes.h: /usr/GNUstep/System/Library/Headers/Foundation/NSNotificationQueue.h: /usr/GNUstep/System/Library/Headers/Foundation/NSNetServices.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSNetServices+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSNull.h: /usr/GNUstep/System/Library/Headers/Foundation/NSNumberFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSObjectScripting.h: /usr/GNUstep/System/Library/Headers/Foundation/NSOrderedSet.h: /usr/GNUstep/System/Library/Headers/Foundation/NSOrthography.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPersonNameComponents.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPersonNameComponentsFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPointerArray.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPortCoder.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPortMessage.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPort.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPortNameServer.h: /usr/GNUstep/System/Library/Headers/Foundation/NSProgress.h: /usr/GNUstep/System/Library/Headers/Foundation/NSProtocolChecker.h: /usr/GNUstep/System/Library/Headers/Foundation/NSRegularExpression.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScanner.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptClassDescription.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptCoercionHandler.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptCommand.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptCommandDescription.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptExecutionContext.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptKeyValueCoding.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptObjectSpecifiers.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptStandardSuiteCommands.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptSuiteRegistry.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptWhoseTests.h: /usr/GNUstep/System/Library/Headers/Foundation/NSSortDescriptor.h: /usr/GNUstep/System/Library/Headers/Foundation/NSSpellServer.h: /usr/GNUstep/System/Library/Headers/Foundation/NSStream.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSStream+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSTask.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSTask+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSTextCheckingResult.h: /usr/GNUstep/System/Library/Headers/Foundation/NSThread.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSThread+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSTimeZone.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUbiquitousKeyValueStore.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUndoManager.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUnit.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUserActivity.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLAuthenticationChallenge.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLCache.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLConnection.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLCredential.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLCredentialStorage.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLDownload.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLError.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLProtectionSpace.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLProtocol.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLRequest.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLResponse.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLSession.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUserDefaults.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUserNotification.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUUID.h: /usr/GNUstep/System/Library/Headers/Foundation/NSValueTransformer.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLDocument.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLNode.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLNodeOptions.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLDTD.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLDTDNode.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLElement.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLParser.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXPCConnection.h: /usr/GNUstep/System/Library/Headers/AppKit/AppKit.h: /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSVersion.h: /usr/GNUstep/System/Library/Headers/AppKit/AppKitErrors.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGraphics.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGraphicsContext.h: /usr/GNUstep/System/Library/Headers/AppKit/AppKitDefines.h: /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSMethodTable.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFont.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibility.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityConstants.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityCustomAction.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityCustomRotor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityProtocols.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityElement.h: /usr/GNUstep/System/Library/Headers/AppKit/NSActionCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSParagraphStyle.h: /usr/GNUstep/System/Library/Headers/AppKit/NSText.h: /usr/GNUstep/System/Library/Headers/AppKit/NSView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSResponder.h: /usr/GNUstep/System/Library/Headers/AppKit/NSInterfaceStyle.h: /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceLayout.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSpellProtocol.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAnimationContext.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAppearance.h: /usr/GNUstep/System/Library/Headers/AppKit/NSApplication.h: /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceValidation.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAttributedString.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFontManager.h: /usr/GNUstep/System/Library/Headers/AppKit/NSBitmapImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSBox.h: /usr/GNUstep/System/Library/Headers/AppKit/NSBrowser.h: /usr/GNUstep/System/Library/Headers/AppKit/NSControl.h: /usr/GNUstep/System/Library/Headers/AppKit/NSBrowserCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSButton.h: /usr/GNUstep/System/Library/Headers/AppKit/NSButtonCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCachedImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCIImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSClipView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCollectionView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDragging.h: /usr/GNUstep/System/Library/Headers/AppKit/NSNibDeclarations.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCollectionViewItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSImageView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSImageCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextField.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextFieldCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSViewController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSeguePerforming.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStoryboardSegue.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPopover.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorList.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorPicking.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorWell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSWindow.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorPicker.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCursor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCustomImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDataAsset.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDataLink.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDataLinkManager.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDataLinkPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSEPSImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSEvent.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFontPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSForm.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMatrix.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFormCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSHelpPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSImage.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMenu.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMenuItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMenuItemCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMenuView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSNibLoading.h: /usr/GNUstep/System/Library/Headers/AppKit/NSOpenPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSavePanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPageLayout.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPasteboard.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPasteboardItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPDFInfo.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPrintInfo.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPDFImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPDFPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPICTImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPopUpButton.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPopUpButtonCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPrinter.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPrintOperation.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPrintPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSRunningApplication.h: /usr/GNUstep/System/Library/Headers/AppKit/NSWorkspace.h: /usr/GNUstep/System/Library/Headers/AppKit/NSScreen.h: /usr/GNUstep/System/Library/Headers/AppKit/NSScroller.h: /usr/GNUstep/System/Library/Headers/AppKit/NSScrollView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSScrubber.h: /usr/GNUstep/System/Library/Headers/AppKit/NSScrubberItemView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSScrubberLayout.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSelection.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSharingService.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSlider.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSliderCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSpellChecker.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSplitView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStatusBar.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStatusBarButton.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStatusItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStringDrawing.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAlert.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAnimation.h: /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSAnimator.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAffineTransform.h: /usr/GNUstep/System/Library/Headers/AppKit/NSArrayController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSObjectController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSBezierPath.h: /usr/GNUstep/System/Library/Headers/AppKit/NSButtonTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorSampler.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorSpace.h: /usr/GNUstep/System/Library/Headers/AppKit/NSComboBox.h: /usr/GNUstep/System/Library/Headers/AppKit/NSComboBoxCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCandidateListTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSClickGestureRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGestureRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorPickerTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCustomTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDatePicker.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDatePickerCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDockTile.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDocument.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDocumentController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDrawer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFileWrapperExtensions.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFontAssetRequest.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFontCollection.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFontDescriptor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGlyphGenerator.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGlyphInfo.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGradient.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGridView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGroupTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSHelpManager.h: /usr/GNUstep/System/Library/Headers/AppKit/NSInputManager.h: /usr/GNUstep/System/Library/Headers/AppKit/NSInputServer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSKeyValueBinding.h: /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutAnchor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutConstraint.h: /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutGuide.h: /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceItemIdentification.h: /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutManager.h: /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSLayoutManager.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextFinder.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextAttachment.h: /usr/GNUstep/System/Library/Headers/AppKit/NSLevelIndicator.h: /usr/GNUstep/System/Library/Headers/AppKit/NSLevelIndicatorCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMagnificationGestureRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMediaLibraryBrowserController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMovie.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMovieView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPageController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPanGestureRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSNib.h: /usr/GNUstep/System/Library/Headers/AppKit/NSNibControlConnector.h: /usr/GNUstep/System/Library/Headers/AppKit/NSNibConnector.h: /usr/GNUstep/System/Library/Headers/AppKit/NSNibOutletConnector.h: /usr/GNUstep/System/Library/Headers/AppKit/NSOpenGL.h: /usr/GNUstep/System/Library/Headers/AppKit/NSOpenGLView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSOutlineView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTableView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPersistentDocument.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPathControl.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPathCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPathComponentCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPathControlItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPickerTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPredicateEditor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSRuleEditor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPredicateEditorRowTemplate.h: /usr/GNUstep/System/Library/Headers/AppKit/NSProgressIndicator.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPopoverTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPressGestureRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSRulerMarker.h: /usr/GNUstep/System/Library/Headers/AppKit/NSRulerView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSRotationGestureRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSearchField.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSearchFieldCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSecureTextField.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSegmentedCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSegmentedControl.h: /usr/GNUstep/System/Library/Headers/AppKit/NSShadow.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSharingServicePickerToolbarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSToolbarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSharingServicePickerTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSliderTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSound.h: /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSSoundSource.h: /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSSoundSink.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSpeechRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSpeechSynthesizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStackView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStepperTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStepper.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStepperCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStoryboard.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSwitch.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSplitViewController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSplitViewItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTableColumn.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTableHeaderCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTableHeaderView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTabView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTabViewController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSToolbar.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTabViewItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextAlternatives.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextContainer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextCheckingClient.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextInputClient.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextCheckingController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextInputContext.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextList.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextStorage.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextTable.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTouch.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTouchBar.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTokenField.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTokenFieldCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSToolbarItemGroup.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTrackingArea.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTreeController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTreeNode.h: /usr/GNUstep/System/Library/Headers/AppKit/NSUserDefaultsController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceCompression.h: /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceItemSearching.h: /usr/GNUstep/System/Library/Headers/AppKit/NSVisualEffectView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSWindowController.h: /usr/GNUstep/System/Library/Headers/AppKit/PSOperators.h: /usr/GNUstep/System/Library/Headers/AppKit/DPSOperators.h: ../../InterfaceBuilder/InterfaceBuilder.h: ../../InterfaceBuilder/IBApplicationAdditions.h: ../../InterfaceBuilder/IBDocuments.h: ../../InterfaceBuilder/IBEditors.h: ../../InterfaceBuilder/IBSystem.h: ../../InterfaceBuilder/IBConnectors.h: ../../InterfaceBuilder/IBCellAdditions.h: ../../InterfaceBuilder/IBCellProtocol.h: ../../InterfaceBuilder/IBDefines.h: ../../InterfaceBuilder/IBInspector.h: ../../InterfaceBuilder/IBObjectProtocol.h: ../../InterfaceBuilder/IBInspectorManager.h: ../../InterfaceBuilder/IBInspectorMode.h: ../../InterfaceBuilder/IBObjectAdditions.h: ../../InterfaceBuilder/IBPalette.h: ../../InterfaceBuilder/IBPlugin.h: ../../InterfaceBuilder/IBProjectFiles.h: ../../InterfaceBuilder/IBProjects.h: ../../InterfaceBuilder/IBResourceManager.h: ../../InterfaceBuilder/IBViewAdditions.h: ../../InterfaceBuilder/IBViewProtocol.h: ../../InterfaceBuilder/IBViewResourceDragging.h: GridStackPalette.h: gorm-1.3.1/Palettes/6GridStack/obj/6GridStack.obj/GridStackPalette.m.o0000644000175000017500000032401014327003123024276 0ustar heronheronELF>H=@@UHH@HH H}HuHUHH HUHMHMHHuHH H}HHEHyHH H9HMHHHH H9HH HE1EH5H}LH}HHHEHUHHMHEH@]f.fUHH0HH H}HuH9HMHHHH H9HH HUHHHH HUHH HUHMHMHHuHH H}HH0]UHHHELLH}HuHUHMLELMI;HMH}HLHEH H}HHH HUHHH HHEH:HH HUHHH HHEH:HH HHHEHH $HHHL$HHHL$HHHL$H HEH}HκH1H}HH1H}HHH}HUHHH}HUHHHMHUHHHH HUHuH H}H}HHuHHULEHH}HHHMHHHĐ]DUHH`HH H}HuH9HH}W@@H8qH1҉E1H8HHHELL $LHLL$LHLL$H@HD$HH HH5H}DEJHEDDH0HHHH HUDDH HHH HHEHEH:HH0 H}(( (  HRHHHHHEHH $HHHL$HHHL$H@HD$ H}HHH HLEH0HHHHHLMML$MQLT$MQLT$MILL$LHH HUH9HH Hh(HHHHHHhHH $HHHL$HHHL$H@HD$ HHHHH HLEHHHHHHLHML$MQLT$MQLT$MILL$LH`]f.@UHHEMU]EEGEGEG]f.fUHH`HH}HuHUHMHHH HHEH}H<iHH}HH HHEH}H<+HH}HH HHEH}HH}HHH H}HH<HH}HHH HHEH:HH HHuH}HH}HHuHHEH HE1HHιH H}HHEH HUHHHUHMLEIH`]ÐUHH@HLEMH}HuHUHMH}HLE1DADM@HHMHHH HHHHDAEϊE$H@]f.UHHHLEMH}HuHUHMHMIHHH HHEH:HUHHEH}<HH}HHH1ɉH}HHH5HEH}HuHHU<HH H HHH HHHH}HMHHHH}HH HH}HH}HHHEH H}HH<uHH H9HH HEH}HEH}HHH H}HHHH}HUHHH H}H H}HHH H}HH<nHH H9HH HEH}HEHxHHH HxHHHH}HUHHĐ]fDUH1H}Hu]f.UHHHH HH}HuH:H HHH]b@H@E@$@Y@h@q@o͏?PH=XinitregisterViewResourceDraggingDelegate:v24@0:8@16defaultCenter@16@0:8willInspectObject:addObserver:selector:name:object:v48@0:8@16:24@32@40unregisterViewResourceDraggingDelegate:removeObserver:deallocclass#16@0:8bundleForClass:@24@0:8#16pathForImageResource:@24@0:8@16allocinitWithContentsOfFile:initWithFrame:@48@0:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16setImageFrameStyle:v20@0:8i16setImageScaling:v24@0:8Q16setImageAlignment:setImage:setToolTip:addSubview:associateObject:type:with:v40@0:8@16@24@32releaseVv16@0:8initWithContentRect:styleMask:backing:defer:@68@0:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16Q48Q56C64NSGridView / NSStackViewstack_viewNSStackViewgrid_viewNSGridViewFormatterGridStackPalette@16@0:8v16@0:8v80@0:8@"NSView"16@"NSString"24{_NSRect={_NSPoint=dd}{_NSSize=dd}}32@"NSView"64@"NSString"72v24@0:8@"NSNotification"16C48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32v48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32C16@0:8@"NSArray"16@0:8IBViewResourceDraggingDelegates setTitle:contentView placeView:withImageNamed:atRect:inView:toolTip:v80@0:8@16@24{_NSRect={_NSPoint=dd}{_NSSize=dd}}32@64@72 objectcellrespondsToSelector:C24@0:8:16formatterisKindOfClass:C24@0:8#16sharedInspectorManagermainBundle localizedStringForKey:value:table:@40@0:8@16@24@32inspectorClassNameaddInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:v52@0:8@16@24@32@40f48setFormatter:typescontainsObject:C24@0:8@16dataForType:unarchiveObjectWithData:countQ16@0:8objectAtIndex:@24@0:8Q16activeDocumenttouchv16@0:8retainisMemberOfClass:numberWithFloat:@20@0:8f16stringValuesetStringValue:setObjectValue:datedescriptionarrayWithObject: finishInstantiateacceptsViewResourceFromPasteboard:forObject:atPoint:C48@0:8@16@24{_NSPoint=dd}32depositViewResourceFromPasteboard:onObject:atPoint:v48@0:8@16@24{_NSPoint=dd}32shouldDrawConnectionFrameC16@0:8viewResourcePasteboardTypesC48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32v48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32@"NSArray"16@0:8clang version 9.0.1-16.1 GridStackPalette.m/home/heron/Development/gnustep/apps-gorm/Palettes/6GridStackunsigned intNSFocusRingTypeDefaultNSFocusRingTypeNoneNSFocusRingTypeExterior_NSFocusRingTypeNSImageCacheDefaultNSImageCacheAlwaysNSImageCacheBySizeNSImageCacheNeverNSNoInterfaceStyleNSNextStepInterfaceStyleNSMacintoshInterfaceStyleNSWindows95InterfaceStyleGSWindowMakerInterfaceStyleGSTextFillGSTextStrokeGSTextClip_GSTextDrawingModeNSImageInterpolationDefaultNSImageInterpolationNoneNSImageInterpolationLowNSImageInterpolationHigh_NSImageInterpolationNSToolbarDisplayModeDefaultNSToolbarDisplayModeIconAndLabelNSToolbarDisplayModeIconOnlyNSToolbarDisplayModeLabelOnlyNSToolbarSizeModeDefaultNSToolbarSizeModeRegularNSToolbarSizeModeSmallNSNonZeroWindingRuleNSEvenOddWindingRuleNSButtLineCapStyleNSRoundLineCapStyleNSSquareLineCapStyleNSMiterLineJoinStyleNSRoundLineJoinStyleNSBevelLineJoinStyleNSRoundedBezelStyleNSRegularSquareBezelStyleNSThickSquareBezelStyleNSThickerSquareBezelStyleNSDisclosureBezelStyleNSShadowlessSquareBezelStyleNSCircularBezelStyleNSTexturedSquareBezelStyleNSHelpButtonBezelStyleNSSmallSquareBezelStyleNSTexturedRoundedBezelStyleNSRoundRectBezelStyleNSRecessedBezelStyleNSRoundedDisclosureBezelStyleNSNeXTBezelStyleNSPushButtonBezelStyleNSSmallIconButtonBezelStyleNSMediumIconButtonBezelStyleNSLargeIconButtonBezelStyle_NSBezelStyleNSGradientNoneNSGradientConcaveWeakNSGradientConcaveStrongNSGradientConvexWeakNSGradientConvexStrong_NSGradientTypeisaobjc_classobjc_objectidClassNSObjectoriginalWindow_interface_styleNSInterfaceStyle_next_responder_menu_titleNSString_itemsNSArrayNSMutableArray_viewlayerContentsPlacementlong intintptr_tNSIntegerNSViewLayerContentsPlacementlayerContentsRedrawPolicyNSViewLayerContentsRedrawPolicyuserInterfaceLayoutDirectionNSUserInterfaceLayoutDirection_frameoriginxdoubleCGFloaty_NSPointNSPointsizewidthheight_NSSizeNSSize_NSRectNSRect_bounds_frameMatrix_boundsMatrix_matrixToWindow_matrixFromWindow_coreAnimationData_super_view_sub_views_window_tracking_rects_cursor_rects_invalidRect_visibleRect_gstate_nextKeyView_previousKeyView_alphaValue_rFlagsflipped_viewhas_subviewshas_currectshas_trkrectshas_draginfoopaque_viewvalid_rectsneeds_displayhas_tooltipsignores_backing_rFlagsType_is_rotated_from_baseunsigned charBOOL_is_rotated_or_scaled_from_base_post_frame_changes_post_bounds_changes_autoresizes_subviews_coordinates_valid_allocate_gstate_renew_gstate_is_hidden_in_live_resize_autoresizingMasklong unsigned intuintptr_tNSUInteger_focusRingTypeNSFocusRingType_autoresizingFrameErrorNSView_superMenu_attachedMenu_notifications_delegate_popUpButtonCell_contents_cell_image_name_fileName_size_flagsarchiveByNamescalabledataRetainedflipDrawsizeWasExplicitlySetuseEPSOnResolutionMismatchcolorMatchPreferredmultipleResolutionMatchingcacheSeparatelyunboundedCacheDepthsyncLoad__imageFlags_reps_colorNSColor_lockedView_cacheModeNSImageCacheModeNSImage_fontfontNamematrix__ARRAY_SIZE_TYPE__matrixExplicitlySetscreenFontfontInfo_fontRefroleintcachedScreenFontcachedFlippedFontNSFont_object_value_cellcontents_is_attributed_stringis_highlightedis_disabledis_editableis_rich_textimports_graphicsshows_first_responderrefuses_first_respondersends_action_on_end_editingis_borderedis_bezeledis_scrollablereservedtext_alignis_selectableallows_mixed_statehas_valid_object_valuetypeimage_positionentry_typeallows_undoline_break_modestatemnemonic_locationcontrol_tintcontrol_sizefocus_ring_typebase_writing_directionsubclass_bool_onesubclass_bool_twosubclass_bool_threesubclass_bool_fourin_editinguses_single_line_modebackground_styleGSCellFlagsType_mouse_down_flags_action_mask_formatterNSFormatter_represented_object_reserved1NSCell_tag_target_actionobjc_selectorSEL_control_viewNSActionCell_altContents_altImage_keyEquivalent_keyEquivalentFont_sound_dataNSData_playbackDeviceIdentifier_channelMapping_onlyReference_source_sink_readLockNSConditionLock_playbackLockNSLock_shouldStop_shouldLoopNSSound_keyEquivalentModifierMask_highlightsByMask_showAltStateMask_delayIntervalfloat_repeatInterval_bezel_styleNSBezelStyle_gradient_typeNSGradientType_backgroundColor_imageScalingNSImageScalingNSButtonCell_menuItem_mnemonicLocation_state_image_onStateImage_offStateImage_mixedStateImage_representedObject_submenu_enabled_changesState_isAlternate_indentationchar_toolTipNSMenuItem_menuView_itemCells_horizontal_pad1_highlightedItemIndex_horizontalEdgePad_stateImageOffset_stateImageWidth_imageAndTitleOffset_imageAndTitleWidth_keyEqOffset_keyEqWidth_needsSizing_pad2_cellSize_items_link_leftBorderOffset_titleViewNSMenuView_mcell_belongs_to_popupbutton_needs_sizing_needs_display_pad_imageWidth_titleWidth_keyEquivalentWidth_menuItemHeight_imageToDisplay_titleToDisplay_imageSizeNSMenuItemCell_selectedItem_pbcFlagspullsDownpreferredEdgeusesItemFromMenualtersStateOfSelectedItemarrowPosition__pbcFlagsNSPopUpButtonCellchangedMessagesEnabledautoenableneedsSizingis_tornofftransienthorizontalmainMenuChangedunusedGSMenuFlags_aWindow_bWindow_oldAttachedMenu_oldHiglightedIndexNSMenuNSRespondersheetParentbackingScaleFactor_minimumSize_maximumSize_increments_autosaveName_wvGSWindowDecorationView_contentView_firstResponder_futureFirstResponder_initialFirstResponder_fieldEditor_lastLeftMouseDownView_lastRightMouseDownView_lastOtherMouseDownView_lastDragView_lastDragOperationMask_windowNum_defaultButtonCell_contextmethodsDPScurrentalpha_DPScurrentcmykcolor____DPScurrentgray_DPScurrenthsbcolor___DPScurrentrgbcolor___DPSsetalpha_DPSsetcmykcolor____DPSsetgray_DPSsethsbcolor___DPSsetrgbcolor___GSSetFillColorspace_NSDictionaryGSSetStrokeColorspace_GSSetFillColor_GSSetStrokeColor_DPSashow___DPSawidthshow______DPScharpath__DPSshow_DPSwidthshow____DPSxshow___DPSxyshow___DPSyshow___GSSetCharacterSpacing_GSSetFont_GSSetFontSize_GSGetTextCTMNSAffineTransformGSGetTextPositionGSSetTextCTM_GSSetTextDrawingMode_GSTextDrawingModeGSSetTextPosition_GSShowText__size_tGSShowGlyphs__NSGlyphGSShowGlyphsWithAdvances__DPSgrestoreDPSgsaveDPSinitgraphicsDPSsetgstate_GSDefineGStateGSUndefineGState_GSReplaceGState_DPScurrentflat_DPScurrentlinecap_DPScurrentlinejoin_DPScurrentlinewidth_DPScurrentmiterlimit_DPScurrentpoint__DPScurrentstrokeadjust_DPSsetdash___DPSsetflat_DPSsethalftonephase__DPSsetlinecap_DPSsetlinejoin_DPSsetlinewidth_DPSsetmiterlimit_DPSsetstrokeadjust_DPSconcat_DPSinitmatrixDPSrotate_DPSscale__DPStranslate__GSCurrentCTMGSSetCTM_GSConcatCTM_DPSarc_____DPSarcn_____DPSarct_____DPSclipDPSclosepathDPScurveto______DPSeoclipDPSeofillDPSfillDPSflattenpathDPSinitclipDPSlineto__DPSmoveto__DPSnewpathDPSpathbbox____DPSrcurveto______DPSrectclip____DPSrectfill____DPSrectstroke____DPSreversepathDPSrlineto__DPSrmoveto__DPSstrokeGSSendBezierPath__windingRuleNSWindingRule_lineCapStyleNSLineCapStyle_lineJoinStyleNSLineJoinStyle_lineWidth_flatness_miterLimit_dash_count_dash_phase_dash_pattern_controlPointBounds_cacheImage_pathElements_cachesBezierPath_shouldRecalculateBounds_flatNSBezierPathGSRectClipList__GSRectFillList__GSCurrentDevice___DPScurrentoffset__GSSetDevice___DPSsetoffset__shortDPScomposite________NSCompositingOperationDPScompositerect_____DPSdissolve________GSDrawImage__DPSPrintf__gp_offsetfp_offsetoverflow_arg_areareg_save_area__va_list_tagDPSWriteData__GSReadRect_NSBeepGSWSetViewIsFlipped_GSWViewIsFlippedNSDrawBitmap___________DPSshfillgsMethodTablecontext_infocontext_dataNSMutableDatafocus_stackusedFontsNSSetNSMutableSet_interpNSImageInterpolation_antialias_patternPhase_graphicsPort_isFlipped_compositingOperationNSGraphicsContext_screen_depthNSWindowDepth_screenNumber_supportedWindowDepths_reservedNSScreen_representedFilename_miniaturizedTitle_miniaturizedImage_windowTitle_lastPoint_backingTypeNSBackingStoreType_styleMask_windowLevel_rectNeedingFlush_rectsBeingDrawn_disableFlushWindow_depthLimit_windowController_window_nib_name_window_nib_path_window_frame_autosave_name_document_window_controllers_file_urlfileURLisFileURLNSURL_file_name_file_type_file_modification_dateNSDate_last_component_file_name_autosaved_file_url_print_info_infoNSMutableDictionaryNSPrintInfo_printOp_delegate_printOp_didRunSelector_save_panel_accessory_spa_button_ignoresMultiClickNSControlNSButtonNSPopUpButton_save_type_undo_managerNSUndoManager_change_count_autosave_change_count_document_index_doc_flagsin_closehas_undo_managerpermanently_modifiedautosave_permanently_modifiedRESERVED__docFlagsNSDocument_top_level_objects_owner_segueMapNSMapTable_storyboard_transformNSStoryboard_wcFlagsshould_close_documentshould_cascadenib_is_loaded___wcFlags_reserved2NSWindowController_counterpart_children_parent_cachedImage_colorSpace_hasAlpha_isOpaque_bitsPerSample_pixelsWide_pixelsHighNSImageRep_rectNSCachedImageRep_cachedImageOrigin_attachedSheet_faccepts_dragis_one_shotneeds_flushis_autodisplayoptimize_drawingdynamic_depth_limitcursor_rects_enabledcursor_rects_validvisibleis_keyis_mainis_editedis_released_when_closedis_miniaturizedmenu_excludehides_on_deactivateaccepts_mouse_movedhas_openedhas_closeddefault_button_cell_key_disabledcan_hidehas_shadowis_opaqueviews_need_displayselectionDirectiondisplays_when_screen_profile_changesis_movable_by_window_backgroundallows_tooltips_when_inactiveshows_toolbar_buttonautorecalculates_keyview_loopignores_mouse_eventspreserves_content_during_live_resizeGSWindowFlagsType_toolbar_configurationDictionary_identifier_selectedItemIdentifier_toolbarViewGSToolbarView_displayModeNSToolbarDisplayMode_sizeModeNSToolbarSizeMode_allowsUserCustomization_autosavesConfiguration_visible_customizationPaletteIsRunning_showsBaselineSeparator_build_interfaceBuilderItemsByIdentifier_interfaceBuilderAllowedItemIdentifiers_interfaceBuilderDefaultItemIdentifiers_interfaceBuilderSelectableItemIdentifiersNSToolbar_reserved_1NSWindowiconpaletteDocumentIBPaletteGridStackPalette-[GridStackPalette init]-[GridStackPalette dealloc]-[GridStackPalette placeView:withImageNamed:atRect:inView:toolTip:]-[GridStackPalette finishInstantiate]NSMakeRect-[GridStackPalette willInspectObject:]-[GridStackPalette acceptsViewResourceFromPasteboard:forObject:atPoint:]-[GridStackPalette depositViewResourceFromPasteboard:onObject:atPoint:]-[GridStackPalette shouldDrawConnectionFrame]-[GridStackPalette viewResourcePasteboardTypes]self_cmdoimageNameframecontentstooltipvimgpathwhrectnotificationNSNotificationcellformatteridentpbnamechangeCounttargetowneruseHistoryNSPasteboardobjpdataarrayfieldValue%I : ; ($> I : ; II  I8 <  : ;  I8  : ;   I: ; 8 2  : ;  I: ;8 2 I: ;  : ;  I: ; I: ; 8  I: ;8  : ;  I: ; 8 I!I7 $ >  : ; I: ; 8 < &I I: ;! : ; " I: ; 8# I: ;8$'%I&I''I: ; (.@d: ; 'I)I4*.@d: ; '+: ; I,4: ; I-.@: ; 'I. /L IwIOI+IIpI7I@I>I'I-IZ     Iq -2 4 G 3= ~3? 3@3A $ +- >Z b   ^alb# ^^ ^#     tI## tS''F'*H I / ~t 3 8 Aq5>x  ~^ t    t  $      ^ c  ~y 2  = ~P} >wnLoL{ ttt   K             U\WL"d eg h;< > ? f* OP R SIIIIIIIIII  ] Z*{) P1 T 3:@'  ))^* . 1 2w3 5 6 7 8 9 ;^< =z ^} ~^*   $ % '()*` ~>  *    X~ ~^^ \ t IIIIIIIIIIIY ~PT/pP ~^RS T UW X_*f*n IIIIIIIIIIIIIIIII I IIIIIIIII I I I I IIIB ~ `9 ~^;<^=> ?@BCDE F GU ~ ~I ~cow .s ~u^v^w x yz { | } ~   W^cQ tS TkU*VWXYZ[\]^ _k` adeflWW4I5I6I7I8I9 I I I I I I I I fq` ~@#t2#W#   ~! & >!H (o - /o 1 3 5  7( 90 ;8  =@  ?H* BP* DXo F`o HhU Np Px R T V X Z \ _. a cD en g i k m o q"& s"P y"P {"P }"a  "w ("a 0"a 8"o @" H" P"o X"o `" h" p" x" " " " " " " " "P " " " "D " " ") ") ") "P "P "S "P ("P 0"P 8"P @"P H" P" X"P `" h"S p" x" " "P " " "P " " " " " #! ##! #E! #! #! #! #" #`" #{" #P  #" $(#" &0#" ,8#* <@t$%l%% $%l%%%%%$%l%%%%$%l%% $%l%% % % % $%l%% % % /$%l%%@E!) ~Z$%l%% % %uzW$%l%% % %% % %u$%l%%u%$%l%%u$%l%% % %%u $%l%%u%$%) 3$%l%%*I&Y%l%^"- ~s&%l%$%l%%Y$%l%%$%l%%$%l%%u% #.$%l%%%I/+$%l%%%F%K U$%l%f$%l%%|&%l%$%l%%$%l%%%$%l%%$%% $%l%% % $%l%%$%l%%$.$%l%% % % % % X$%l%% % % % % % $%l%%J ~} M N O P Q RS TUVW X \ ` a bA-+H1 $%l%% %  $%l%% %%  $%l%%%!$%l%% %%(!$%l%%>!%>!J!$%l%% % % % %% % %~! k!$%l%% % % % %~!!$%l%% % % % %% % % !$%l%%%  "$%l%%u%""'"II  e"$%l%%u%I"&@%l%%"$%l%% "& %l%"$%l%%%%%%%%% % %^%# ### !#= 7#$ G#$/ ~vg#H%, ~#%/%0%1#%2 %3m# A#&) >&,^&-^&.^&/$&0&1&2&&3&&4'&; &< &=$'W ~'Zt'[%'\^']^'^%'_^'`%'a%'b'c'd'e&'f^'gn&'h'i'j'k&'r 's%(H ~' (%)< ~%*? ~%*A%! E&h-- %&h,* 6&h+/ +2+3 +4s&.V ~'lI'mI'nI'oI'pI'q&/? ~&0+ ~0-&5I&7I&8I&9I&:X'h2' '2*2+@11 ~^14 15 16 1718191:II I!I"I#I$I%I&I'I(I)I*I+I,I-I.I/I0I1 I2 I3 I4 I5 I6I8I9I:I<I=I>I?IBICIDIE,*hM ~@OP^Q^RtS&+T1+U<+W [ \ ] ^ _ `@abcd++=E(Vd+%)x//)p*V+8)x//)p*V+?)x//)p+h?+`@^+A+XB+PC^,HE,@F ,G^*Vk,W)x//)p,hY-DV׵+x +p +h +` ,uٵ*V -q)x//)p+hq4/,`s.b,Xv.$,Py.,H|^(V- )h//)`+XI/+P+p*V .)h//)`+XI/+P+p,H,@.,._,.`,(V. )x//)p(<V/)x//)p79/51 ~N/06 ~^6666 6clang version 9.0.1-16.1 zRx AC  <AC  \AC  |AC  DAC  AC  AC  AC  AC N <<AC w \AMH /usr/GNUstep/System/Library/Headers/AppKit/usr/GNUstep/System/Library/Headers/Foundation/usr/include/usr/GNUstep/Local/Library/Headers/objc/usr/GNUstep/System/Library/Headers/GNUstepGUI/usr/lib/llvm-9/lib/clang/9.0.1/include../../InterfaceBuilder.NSView.hNSImage.hNSInterfaceStyle.hNSGraphicsContext.hNSToolbar.hNSBezierPath.hNSButtonCell.hGridStackPalette.mNSObject.hNSResponder.hNSString.hNSMenu.hNSArray.hstdint.hNSObjCRuntime.hNSUserInterfaceLayout.hNSGeometry.hruntime.hNSCell.hNSColor.hNSFont.hNSFormatter.hNSActionCell.hNSSound.hNSData.hNSLock.hNSMenuItem.hNSMenuItemCell.hNSMenuView.hNSPopUpButtonCell.hNSWindow.hGSMethodTable.hNSDictionary.hNSAffineTransform.hstddef.hNSSet.hNSScreen.hNSWindowController.hNSDocument.hNSURL.hNSDate.hNSPrintInfo.hNSControl.hNSButton.hNSPopUpButton.hNSUndoManager.hNSMapTable.hNSStoryboard.hNSImageRep.hNSCachedImageRep.hIBPalette.hGridStackPalette.hNSNotification.hNSPasteboard.h $  5JJYf+5<J&Lq J# 3<J9 J5 55<41!I M2  JK 8KJYJJJJJJJJJ"J9</  8IJfJJJ MJ8"II5WJ7"LL8Lf XKXYXYXY  JKJftJ X K JftJXK!Jf-t,JX K#KKBJYY{ 0 J>~ftJ <>~<XC 3#J< K5<J LX~f t J J~fJXM~f <  "JJ! (J ~fX KJX!JJ~X-J~f KJ!JJ~XYYY & %$< <   "$&')+,.013568:<=?ACDFHJKMOPRTUWY[\^`bcegijlnoqstvxy{}~    "$%'(*,-/124689;=>@BCEGHJLMOQRTVW[\^_acdfgikmnprtuwy{|~8##2  & (f0##X]X.XBXxH XXX%pDa   0 4 K &   < XXTXwK& w j oG?!!!8!!!O !i5!!U!"", !{ 1 !M!T!!?S!d!8s!a! w! ! c !J !3! !p4!O  !a.! ! !-!R8!W] !9!!/!# ! !4! !4!F!0!& !!._!"!*!!q !l^!^"!eJ!Eq!@! a!v %! !w9!; ! N!a!!)(k!~I!/!!!6 !H 5!A !! !#!w!Y-7!6!:!y! ! m! O!!+'"!k!#! !"!` ! !g "! !!+!!r#!$!C !9T"!ms!!#!&!}!O!V"!P!C !!!<!P!\!!!7!L !5!^d!!!t!Q!c1 !C!}!H!T![ ! ![S!!!1B#!}!!8<!!z!J !!<!!0!!, !!'b!s"!nO!b!ih!G!B>!B!x!!{!=!$!! !+! !!f! ! |! "  y)$ 0 0cD*J   -?Fdk ;} 6  ;#* 65<KRY -~ /% 44;JQX 5gn-4; elx <DKR Y   9!Yaiq  3&.s <U&-=LX_f 2 , /   ' . > E M  k         > E q x  :           & 1 8 K R ^ e l 8      7        ' 1= D S b i 0t {       " ) .B > YgT}F{iSMKeH[\opnmtGJhZ( (8@(X0sO($f(:cLjLXX^ua(E`]ElyNQzPdDxlk_bwrqRVIO`hph (00 8@H PX>` hpF~*!'O(!X!YSW}CUv|W"!x !(!0!&& (08@HPX`hpx $ # # % #-/ #7 #x= #C #J #kY #_ #e #k #z # #+ #D #^ #x # # # # #0 # # # # #F #b # # #  # #! #' #6 #1< #DB #XQ #mW #] #h #p #v #| # # #  ## #@ #U #p # # # # # # # #, #H #e # # # # # # ## ## #3 # 8 #(H #(W #5d #(q #( #, # #& #( # # #v #1 #> #K #W #e" #/ #< #I #V # b #o #| # # # #, #C # #N #a #a # # # #* #8 #E # S #) a #4 o #A | #S  #d  #x  #  ## # ## ## ## #I$ #\$ #k$" #&0 #(? #N #DZ #fg #vy #U # #| # # #  #  #  #  #  #v #& #4 #B #P # d #z # # #  # # #: #v # # # # # ( #5 #0B #<N #G[ #Og #_s #m #z # # # # # #Q  #z  #  #  #  #  # ) # 6 # C # P #& ] #_ j #~ | # # # # # #W # # #} # # # # # # #$ #+ #3 #? #L #E T #c #r # # # # # # #( #5 #u #g  #T #J  #8  #n * #E: #G #U #e #Wr # # #9 #G #V #[ #g #s #w # # # # #J+ #8 #E #R #_ #l #y # # # # # # # #- # #[ #` #h #& #T5 #:C # P # ] # j # w # # # # #v #5 #I # # #  #  #  # ( # 5 # B # O # ] # e # t #! #* #7 #@ #U #p # # # #  # $ # 0 # ? #$ L #- Y #H f #\ s #g  #p  #y  #  #  #4  #~  # #  #  #  #  # " # 1 ## @ #9 O #Q ^ #m m #y | #  #  #  #  #  #  #  #  #  #  # ! #0 #? #1N #>] #Kl #[{ #r # # # # # # #) #~ #p #x! # . #; #H #U #b # o ##| #+ #1 #K #` #l # #; #Y #  # # # #;/ # ? #vM #|[ #i #w #a #s #z # # # #` #h #[ # # # #- #; #I #X #d #t # #* #6 #  #< #R #e #w # # # # # #* #7 #D #Q #^ #  #: # # # # #, # #W #n #y #! #1 #A #Q #g #ir #O #j # # # # # # # #  #. #9 #, #r8 #D #P #\ #h #t # # # # #( #J #a #q # # # # # # #( #4 #@ #L #X #!d #@p #R| #` # # # # # # # # # ## #5 #F! #V. #i; #}H #U #b #o #| # # # # #! #2 #D #X #c #q #|  # #% #2 #? #L #Y #f #s # # # # # #" #1 #= #I #U #` #p # #) #6 #C #P #] #j #w # # #% #8 #K #Z #o # # # #  #! #0) #<7 #CE #XS #ia #F #=_ #. #v #  # # # # #1 #P #[ #e #q #} #" #/ #< #I #V #c #p # # #" #@?! #i! #(" #0" #<" #H" #T" #"# #8# #H# #\# #h# #w# #i# #v# #~# ## ## #p# # # ### #G# # $ # $ # $ # )$ #"6$ ##C$ ##P$ #+#]$ #O#j$ #Iw$ ##$ #"$ #G$ # $ # $ #!$ #!$ #*!$ #I!$ #c!% #w!% #!% #!(% #!5% #!B% #)"O% #4"\% #P"i% #^"v% #u"% #"% #I% #!% # % #!% #B!% #!% #!& #!& #"&& #"7& #"G& #[T& # a& #!t& #B"& #"& #"& #"& #"& #"& #"& # #& #B#' #7#' ##' #X#&' #n#5' #}#D' #"Y' #8$h' #2$u' #G' #'$' ##' # ' ##' ##' #$' #$' #$' #&' #n$( #{$( #$'( #$7( #$G( #$W( #$g( #$w( #$( #$( #$( #%( #%( #(%( #8%( #E%( #Y%) #m%) #x%') #%7) #%G) #%W) #%g) #%w) #r) #) #) #%) #%) # &) #-&) #K&) #`&* #~&* #&-* #(<* #&I* # V* #&c* #&p* #}* #'* #+'* #M'* #i'* #'* #'* #'* #'* #'* #'* #( + #,(+ #T(,+ #'6+ #8'A+ #W'H+Z+ #(h+ #*t+ #*~++ #(+ #*+ #*++ #)+ #*+ #*+ #*+ #*, #*, #*, #**, #*8, #*G, #*S,e, #G)o, #*{, #*, #*,p, #m), #, #, #*, #*, #*,- #x)- #*- #*'- #*5- #*@-P- #*[-Pk- #*v-- #*- - #)- #*- #*- #+- #9+- #=+-0 . #). #*. #*). #+7. #9+E. #=+S. #?+a. #D+l. }. #*. . #J+.m . #J+. . #0*. #*. #*. / #^*/ #*&/ #*:/ #*O/ #,+^/ #+k/ #+x/ #+/ #+/ #!+ @`p 0  @ `Y-;g6T}F{iS/MKe4H[5\opnmtGJh=B?A@.objc_null_category.rela.init_array._OBJC_REF_CLASS_NSArray._OBJC_REF_CLASS_NSWindow.rodata..objc_sel_name_contentView.objc_str_NSStackView._OBJC_REF_CLASS_NSStackView._OBJC_REF_CLASS_NSImageView.objc_str_NSGridView._OBJC_REF_CLASS_NSGridView._OBJC_REF_CLASS_NSView.debug_abbrev.rela.text.objc_protocol_list.objc_protocol_method_list.objc_method_list.rodata..objc_sel_name_count.rodata..objc_sel_name_activeDocument.comment.rodata..objc_sel_name_init.rela.data..objc_init_i_GridStackPalette__init.rodata..objc_sel_name_objectNSMakeRect__start___objc_cats__stop___objc_cats.bss.rodata..objc_sel_name_classNSStringFromClass.rela__objc_selectors__start___objc_selectors__stop___objc_selectors.rela__objc_protocols__start___objc_protocols__stop___objc_protocols.rela__objc_class_refs__start___objc_class_refs__stop___objc_class_refs__start___objc_protocol_refs__stop___objc_protocol_refs._OBJC_PROTOCOL_IBViewResourceDraggingDelegates.rela__objc_classes__start___objc_classes__stop___objc_classes__start___objc_class_aliases__stop___objc_class_aliases.rodata..objc_sel_name_types.rodata..objc_sel_name_viewResourcePasteboardTypes_i_GridStackPalette__viewResourcePasteboardTypes.objc_null_class_alias.debug_str.objc_null_selector.objc_ctor._OBJC_REF_CLASS_NSUnarchiver.rodata..objc_sel_name_formatter._OBJC_REF_CLASS_NSNumberFormatter._OBJC_REF_CLASS_NSDateFormatter.objc_str_Formatter._OBJC_REF_CLASS_NSFormatter.rodata..objc_sel_name_defaultCenter._OBJC_REF_CLASS_NSNotificationCenterobjc_msg_lookup_super.rodata..objc_sel_name_sharedInspectorManager._OBJC_REF_CLASS_IBInspectorManager._OBJC_REF_CLASS_NSNumber.groupNSApp.debug_macinfo.rela.debug_info.rodata..objc_sel_name_description.rela.text..objcv2_load_functionIBWillInspectObjectNotification.rodata..objc_sel_name_retainGridStackPalette.m.rodata..objc_sel_name_cell.note.GNU-stack.rodata..objc_sel_name_touch.rela__objc_constant_string__start___objc_constant_string__stop___objc_constant_string._OBJC_CLASS_NSConstantString.llvm_addrsig.objc_null_protocol_ref.rodata..objc_sel_name_stringValue._OBJC_INIT_CLASS_GridStackPalette._OBJC_REF_CLASS_GridStackPalette._OBJC_CLASS_GridStackPalette._OBJC_METACLASS_GridStackPalette._OBJC_REF_CLASS_IBPalette._OBJC_CLASS_IBPalette.rodata..objc_sel_name_finishInstantiate_i_GridStackPalette__finishInstantiate.rodata..objc_sel_name_date._OBJC_REF_CLASS_NSDate.rodata..objc_sel_name_releaseIBViewPboardTypeIBFormatterPboardType.rela.debug_line.rela.eh_frame.rodata..objc_sel_name_shouldDrawConnectionFrame_i_GridStackPalette__shouldDrawConnectionFrame.rodata..objc_sel_name_inspectorClassName.rodata..objc_sel_name_mainBundle._OBJC_REF_CLASS_NSBundle._OBJC_REF_CLASS_NSImageobjc_msgSend__objc_load.rodata..objc_sel_name_dealloc_i_GridStackPalette__dealloc.rodata..objc_sel_name_alloc.strtab.symtab.rela.data_i_GridStackPalette__acceptsViewResourceFromPasteboard_forObject_atPoint__i_GridStackPalette__depositViewResourceFromPasteboard_onObject_atPoint_.objc_selector_init__i_GridStackPalette__willInspectObject_.objc_selector_formatter__i_GridStackPalette__placeView_withImageNamed_atRect_inView_toolTip_.objc_selector_cell_.objc_selector_dealloc_.objc_selector_willInspectObject:_.objc_selector_setFormatter:_.rodata..objc_sel_name_objectAtIndex:.rodata..objc_sel_name_addSubview:.rodata..objc_sel_name_acceptsViewResourceFromPasteboard:forObject:atPoint:.rodata..objc_sel_name_depositViewResourceFromPasteboard:onObject:atPoint:.rodata..objc_sel_name_setImageAlignment:.rodata..objc_sel_name_addObserver:selector:name:object:.rodata..objc_sel_name_willInspectObject:.rodata..objc_sel_name_containsObject:.rodata..objc_sel_name_arrayWithObject:.rodata..objc_sel_name_numberWithFloat:.rodata..objc_sel_name_bundleForClass:.rodata..objc_sel_name_isMemberOfClass:.rodata..objc_sel_name_isKindOfClass:.rodata..objc_sel_name_respondsToSelector:.rodata..objc_sel_name_removeObserver:.rodata..objc_sel_name_setFormatter:.rodata..objc_sel_name_initWithContentRect:styleMask:backing:defer:.rodata..objc_sel_name_placeView:withImageNamed:atRect:inView:toolTip:.rodata..objc_sel_name_setToolTip:.rodata..objc_sel_name_associateObject:type:with:.rodata..objc_sel_name_addInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:.rodata..objc_sel_name_setImageScaling:.rodata..objc_sel_name_setObjectValue:.rodata..objc_sel_name_setStringValue:.rodata..objc_sel_name_unregisterViewResourceDraggingDelegate:.rodata..objc_sel_name_registerViewResourceDraggingDelegate:.rodata..objc_sel_name_dataForType:.rodata..objc_sel_name_initWithFrame:.rodata..objc_sel_name_setImageFrameStyle:.rodata..objc_sel_name_setTitle:.rodata..objc_sel_name_initWithContentsOfFile:.rodata..objc_sel_name_localizedStringForKey:value:table:.rodata..objc_sel_name_setImage:.rodata..objc_sel_name_pathForImageResource:.rodata..objc_sel_name_unarchiveObjectWithData:.rodata.cst8.rodata..objc_sel_types_v160:8.objc_selector_touch_v160:8.objc_selector_finishInstantiate_v160:8.objc_selector_dealloc_v160:8.rodata..objc_sel_types_Vv160:8.objc_selector_release_Vv160:8.objc_selector_count_Q160:8.rodata..objc_sel_types_Q160:8.rodata..objc_sel_types_C160:8.objc_selector_shouldDrawConnectionFrame_C160:8.objc_selector_class_#160:8.rodata..objc_sel_types_#160:8.rodata..objc_sel_types_"NSArray"160:8.objc_selector_contentView_160:8.objc_selector_activeDocument_160:8.objc_selector_init_160:8.objc_selector_object_160:8.objc_selector_types_160:8.rodata..objc_sel_types_160:8.objc_selector_viewResourcePasteboardTypes_160:8.objc_selector_formatter_160:8.objc_selector_defaultCenter_160:8.objc_selector_sharedInspectorManager_160:8.objc_selector_description_160:8.objc_selector_retain_160:8.objc_selector_cell_160:8.objc_selector_stringValue_160:8.objc_selector_date_160:8.objc_selector_inspectorClassName_160:8.objc_selector_mainBundle_160:8.objc_selector_alloc_160:8.rodata..objc_sel_types_v520:816243240f48.objc_selector_addInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:_v520:816243240f48.LCPI3_6.rodata..objc_sel_types_480:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16.objc_selector_initWithFrame:_480:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16.rodata..objc_sel_types_v200:8i16.objc_selector_setImageAlignment:_v200:8i16.objc_selector_setImageFrameStyle:_v200:8i16.rodata..objc_sel_types_200:8f16.objc_selector_numberWithFloat:_200:8f16.rodata..objc_sel_types_v240:8Q16.objc_selector_setImageScaling:_v240:8Q16.rodata..objc_sel_types_240:8Q16.objc_selector_objectAtIndex:_240:8Q16.rodata..objc_sel_types_C240:8:16.objc_selector_respondsToSelector:_C240:8:16.rodata..objc_sel_types_C240:8#16.objc_selector_isMemberOfClass:_C240:8#16.objc_selector_isKindOfClass:_C240:8#16.rodata..objc_sel_types_240:8#16.objc_selector_bundleForClass:_240:8#16.rodata..objc_sel_types_v240:816.objc_selector_addSubview:_v240:816.objc_selector_willInspectObject:_v240:816.objc_selector_removeObserver:_v240:816.objc_selector_setFormatter:_v240:816.objc_selector_setToolTip:_v240:816.objc_selector_setObjectValue:_v240:816.objc_selector_setStringValue:_v240:816.objc_selector_unregisterViewResourceDraggingDelegate:_v240:816.objc_selector_registerViewResourceDraggingDelegate:_v240:816.objc_selector_setTitle:_v240:816.objc_selector_setImage:_v240:816.rodata..objc_sel_types_C240:816.objc_selector_containsObject:_C240:816.rodata..objc_sel_types_240:816.objc_selector_arrayWithObject:_240:816.objc_selector_dataForType:_240:816.objc_selector_initWithContentsOfFile:_240:816.objc_selector_pathForImageResource:_240:816.objc_selector_unarchiveObjectWithData:_240:816.objc_protocol_list.6.LCPI3_5.objc_protocol_method_list.5.rodata.cst4.LCPI3_4.rodata..objc_sel_types_680:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16Q48Q56C64.objc_selector_initWithContentRect:styleMask:backing:defer:_680:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16Q48Q56C64.objc_protocol_method_list.4.LCPI3_3.objc_protocol_method_list.3.LCPI3_2.rodata..objc_sel_types_v800:81624{_NSRect={_NSPoint=dd}{_NSSize=dd}}326472.objc_selector_placeView:withImageNamed:atRect:inView:toolTip:_v800:81624{_NSRect={_NSPoint=dd}{_NSSize=dd}}326472.rodata..objc_sel_types_v480:8"NSPasteboard"1624{_NSPoint=dd}32.rodata..objc_sel_types_C480:8"NSPasteboard"1624{_NSPoint=dd}32.rodata..objc_sel_types_v480:81624{_NSPoint=dd}32.objc_selector_depositViewResourceFromPasteboard:onObject:atPoint:_v480:81624{_NSPoint=dd}32.rodata..objc_sel_types_C480:81624{_NSPoint=dd}32.objc_selector_acceptsViewResourceFromPasteboard:forObject:atPoint:_C480:81624{_NSPoint=dd}32.rodata..objc_sel_types_v400:8162432.objc_selector_associateObject:type:with:_v400:8162432.rodata..objc_sel_types_400:8162432.objc_selector_localizedStringForKey:value:table:_400:8162432.LCPI3_1.rodata.str1.1.LCPI7_0.LCPI5_0.LCPI3_0.rodata..objc_sel_types_v480:816:243240.objc_selector_addObserver:selector:name:object:_v480:816:243240__objc_ivar_offset_IBPalette.originalWindow.F W$(@L # 8 l  0xY    g&z&  80THV `80ć}Aṗ h؇F"# 0&{( (0+i8 H00S X$ `50M\p8v@ (0<LKT- \ X0Che,p x 0JH)  0O[ (0T\08oP- 0[ȈoVЈ ؈ H0bp  x0in  0nm   (غ0s(tY8 0 H0x<G$ X D h80}PJ|X"` h0lh t | 0Z-/ 6 XȻ0#2hw`s@  P0OY`  p0̉  0؉f0; 9 0   H0c@ Hx0LKX `(jWp0e 8 0D 0PX& X  d 80p^1x  h0u (0a 8  HȾ0 X 0`#Ȋ#Њ (0܊]U  X0EUp 0 l  yF( п04Nk< D 0PQ  X 00dzY l @`0 xPoPyV `0d p  0D 0ċxw̋ԋ  0$ P0'k 0,_  (01b@}Q $ `080w1p 8 0=DriL @0BXqB` p0GlR[ t 0LV  0QI (0V[ 8xV 0X  0[ P0^W Ȍ 0cԌ 0fCG 5"P p0mU 4! 0tv   ( @0{4|c0< Pp0W`HG!`+P!+X~'` *XQ008Hl >@`x =B?K8A @1 00 U+KlM/xK}0}g} p}p p  L x Lo^N @&gorm-1.3.1/Palettes/0Menus/0000755000175000017500000000000014360746517014435 5ustar heronherongorm-1.3.1/Palettes/0Menus/palette.table0000644000175000017500000000023614327003123017063 0ustar heronheron{ NibFile = ""; Class = "MenusPalette"; Icon = "MenusPalette"; SubstituteClasses = { GormNSMenu = NSMenu; GormNSMenuView = NSMenuView; }; } gorm-1.3.1/Palettes/0Menus/inspectors.m0000644000175000017500000000343414327003123016766 0ustar heronheron/* inspectors.m * * This file defines the mapping between objects and thier editors/inspectors. * * Copyright (C) 2000 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include @implementation NSMenu (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormMenuAttributesInspector"; } - (NSString*) editorClassName { return @"GormMenuEditor"; } /* * Method to return the image that should be used to display menus within * the matrix containing the objects in a document. */ - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormMenu"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } @end @implementation NSMenuItem (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormMenuItemAttributesInspector"; } @end gorm-1.3.1/Palettes/0Menus/GormMenuAttributesInspector.h0000644000175000017500000000270514327003123022257 0ustar heronheron/* GormMenuAttributesInspector.m Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormMenuAttributesInspector_h_ #define INCLUDED_GormMenuAttributesInspector_h_ #include @class NSButton; @class NSMatrix; @class NSTextField; @interface GormMenuAttributesInspector : IBInspector { NSTextField *titleText; NSMatrix *menuType; NSButton *autoenable; } @end #endif /* INCLUDED_GormMenuAttributesInspector_h_ */ gorm-1.3.1/Palettes/0Menus/MenusPalette.m0000644000175000017500000003703314327003123017205 0ustar heronheron/* main.m Copyright (C) 1999,2000 Free Software Foundation, Inc. Author: Richard frith-Macdonald Date: 1999 Author: Gregory John Casamento Date: 2003, 2004, 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNSMenu.h" @interface GormMenuMaker : NSObject { } @end @implementation GormMenuMaker - (void) encodeWithCoder: (NSCoder *)coder { } - (id) initWithCoder: (NSCoder *)coder { NSMenu *m = [[GormNSMenu alloc] init]; // build the menu.. [m setTitle: _(@"Main Menu")]; [m addItemWithTitle: _(@"Hide") action: @selector(hide:) keyEquivalent: @"h"]; [m addItemWithTitle: _(@"Quit") action: @selector(terminate:) keyEquivalent: @"q"]; RELEASE(self); return ((id)m); } @end @interface MenusPalette: IBPalette { } @end @implementation MenusPalette - (void) finishInstantiate { NSView *contents; NSMenuItem *i; NSMenu *m; NSMenu *s; NSButton *b; id menu; id v; NSBundle *bundle = [NSBundle bundleForClass: [self class]]; NSString *path = [bundle pathForImageResource: @"GormMenuDrag"]; NSImage *dragImage = [[NSImage alloc] initWithContentsOfFile: path]; NSFontManager *fm = nil; originalWindow = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192) styleMask: NSBorderlessWindowMask backing: NSBackingStoreRetained defer: NO]; [originalWindow setTitle: @"Menus"]; contents = [originalWindow contentView]; /* * The Info menu */ m = [[GormNSMenu alloc] init]; [m addItemWithTitle: @"Info Panel..." action: @selector(orderFrontStandardInfoPanel:) keyEquivalent: @""]; [m addItemWithTitle: @"Preferences..." action: NULL keyEquivalent: @""]; [m addItemWithTitle: @"Help..." action: @selector(orderFrontHelpPanel:) keyEquivalent: @"?"]; [m setTitle: @"Info"]; i = [[NSMenuItem alloc] initWithTitle: @"Info" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 160, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Info"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Font menu */ fm = [NSFontManager sharedFontManager]; m = [GormNSMenu menuWithMenu: [fm fontMenu: YES]]; // Other font menu items [m addItemWithTitle: @"Underline" action: @selector(underline:) keyEquivalent: @""]; [m addItemWithTitle: @"Superscript" action: @selector(superscript:) keyEquivalent: @""]; [m addItemWithTitle: @"Subscript" action: @selector(subscript:) keyEquivalent: @""]; [m addItemWithTitle: @"Unscript" action: @selector(unscript:) keyEquivalent: @""]; [m addItemWithTitle: @"Copy Font" action: @selector(copyFont:) keyEquivalent: @"3"]; [m addItemWithTitle: @"Paste Font" action: @selector(pasteFont:) keyEquivalent: @"4"]; i = [[NSMenuItem alloc] initWithTitle: @"Font" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 160, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Font"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Document menu */ m = [[GormNSMenu alloc] init]; [m addItemWithTitle: @"Open..." action: @selector(openDocument:) keyEquivalent: @"o"]; i = (NSMenuItem *)[m addItemWithTitle: @"Open Recent" action: NULL keyEquivalent: @""]; s = [[GormNSMenu alloc] init]; [s addItemWithTitle: @"Clear List" action: @selector(clearRecentDocuments:) keyEquivalent: @""]; [s setTitle: @"Open Recent"]; [i setSubmenu: s]; [m addItemWithTitle: @"New" action: @selector(newDocument:) keyEquivalent: @"n"]; [m addItemWithTitle: @"Save..." action: @selector(saveDocument:) keyEquivalent: @"s"]; [m addItemWithTitle: @"Save As..." action: @selector(saveDocumentAs:) keyEquivalent: @"S"]; [m addItemWithTitle: @"Save To..." action: @selector(saveDocumentTo:) keyEquivalent: @""]; [m addItemWithTitle: @"Save All" action: @selector(saveAllDocuments:) keyEquivalent: @""]; [m addItemWithTitle: @"Revert To Saved" action: @selector(revertDocumentToSaved:) keyEquivalent: @""]; [m addItemWithTitle: @"Close" action: @selector(close:) keyEquivalent: @""]; [m setTitle: @"Document"]; i = [[NSMenuItem alloc] initWithTitle: @"Document" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 140, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Document"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Text menu */ m = [[GormNSMenu alloc] init]; [m addItemWithTitle: @"Align Left" action: @selector(alignLeft:) keyEquivalent: @""]; [m addItemWithTitle: @"Center" action: @selector(alignCenter:) keyEquivalent: @""]; [m addItemWithTitle: @"Align Right" action: @selector(alignRight:) keyEquivalent: @""]; [m addItemWithTitle: @"Show Ruler" action: @selector(toggleRuler:) keyEquivalent: @""]; [m addItemWithTitle: @"Copy Ruler" action: @selector(copyRuler:) keyEquivalent: @"1"]; [m addItemWithTitle: @"Paste Ruler" action: @selector(pasteRuler:) keyEquivalent: @"2"]; [m setTitle: @"Text"]; i = [[NSMenuItem alloc] initWithTitle: @"Text" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 140, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Text"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Edit menu */ m = [[GormNSMenu alloc] init]; [m addItemWithTitle: @"Undo" action: @selector(undo:) keyEquivalent: @"z"]; [m addItemWithTitle: @"Redo" action: @selector(redo:) keyEquivalent: @"Z"]; [m addItemWithTitle: @"Cut" action: @selector(cut:) keyEquivalent: @"x"]; [m addItemWithTitle: @"Copy" action: @selector(copy:) keyEquivalent: @"c"]; [m addItemWithTitle: @"Paste" action: @selector(paste:) keyEquivalent: @"v"]; [m addItemWithTitle: @"Select All" action: @selector(selectAll:) keyEquivalent: @"a"]; [m setTitle: @"Edit"]; i = [[NSMenuItem alloc] initWithTitle: @"Edit" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 120, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Edit"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Find menu */ m = [[GormNSMenu alloc] init]; i = (NSMenuItem *)[m addItemWithTitle: @"Find Panel..." action: @selector(performFindPanelAction:) keyEquivalent: @"f"]; [i setTag: NSFindPanelActionShowFindPanel]; i = (NSMenuItem *)[m addItemWithTitle: @"Find Next" action: @selector(performFindPanelAction:) keyEquivalent: @"g"]; [i setTag: NSFindPanelActionNext]; i = (NSMenuItem *)[m addItemWithTitle: @"Find Previous" action: @selector(performFindPanelAction:) keyEquivalent: @"d"]; [i setTag: NSFindPanelActionPrevious]; i = (NSMenuItem *)[m addItemWithTitle: @"Enter Selection" action: @selector(performFindPanelAction:) keyEquivalent: @"e"]; [i setTag: NSFindPanelActionSetFindString]; [m addItemWithTitle: @"Jump To Selection" action: @selector(centerSelectionInVisibleArea:) keyEquivalent: @"j"]; [m setTitle: @"Find"]; i = [[NSMenuItem alloc] initWithTitle: @"Find" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 120, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Find"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Format menu */ m = [[GormNSMenu alloc] init]; /* * Font submenu */ i = (NSMenuItem *)[m addItemWithTitle: @"Font" action: NULL keyEquivalent: @""]; s = [GormNSMenu menuWithMenu: [fm fontMenu: YES]]; // Other font menu items [s addItemWithTitle: @"Underline" action: @selector(underline:) keyEquivalent: @""]; [s addItemWithTitle: @"Superscript" action: @selector(superscript:) keyEquivalent: @""]; [s addItemWithTitle: @"Subscript" action: @selector(subscript:) keyEquivalent: @""]; [s addItemWithTitle: @"Unscript" action: @selector(unscript:) keyEquivalent: @""]; [s addItemWithTitle: @"Copy Font" action: @selector(copyFont:) keyEquivalent: @"3"]; [s addItemWithTitle: @"Paste Font" action: @selector(pasteFont:) keyEquivalent: @"4"]; [m setSubmenu: s forItem: i]; /* * Text submenu */ i = (NSMenuItem *)[m addItemWithTitle: @"Text" action: NULL keyEquivalent: @""]; s = [[GormNSMenu alloc] init]; [s addItemWithTitle: @"Align Left" action: @selector(alignLeft:) keyEquivalent: @""]; [s addItemWithTitle: @"Center" action: @selector(alignCenter:) keyEquivalent: @""]; [s addItemWithTitle: @"Align Right" action: @selector(alignRight:) keyEquivalent: @""]; [s addItemWithTitle: @"Show Ruler" action: @selector(toggleRuler:) keyEquivalent: @""]; [s addItemWithTitle: @"Copy Ruler" action: @selector(copyRuler:) keyEquivalent: @"1"]; [s addItemWithTitle: @"Paste Ruler" action: @selector(pasteRuler:) keyEquivalent: @"2"]; [s setTitle: @"Text"]; [m setSubmenu: s forItem: i]; [m addItemWithTitle: @"Page Layout..." action: @selector(runPageLayout:) keyEquivalent: @"P"]; [m setTitle: @"Format"]; i = [[NSMenuItem alloc] initWithTitle: @"Format" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 100, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Format"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Colors item */ i = [[NSMenuItem alloc] initWithTitle: @"Colors..." action: @selector(orderFrontColorPanel:) keyEquivalent: @""]; b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 100, 100, 20)]; [b setAlignment: NSLeftTextAlignment]; [b setTitle: @" Colors..."]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); /* * The Windows menu */ m = [[GormNSMenu alloc] init]; [m addItemWithTitle: @"Arrange In Front" action: @selector(arrangeInFront:) keyEquivalent: @""]; [m addItemWithTitle: @"Miniaturize Window" action: @selector(performMiniaturize:) keyEquivalent: @"m"]; [m addItemWithTitle: @"Close Window" action: @selector(performClose:) keyEquivalent: @"w"]; [m setTitle: @"Windows"]; i = [[NSMenuItem alloc] initWithTitle: @"Windows" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 80, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Windows"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The general item */ i = [[NSMenuItem alloc] initWithTitle: @"Item" action: NULL keyEquivalent: @""]; b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 80, 100, 20)]; [b setAlignment: NSLeftTextAlignment]; [b setTitle: @" Item"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); /* * The Services menu */ m = [[GormNSMenu alloc] init]; [m setTitle: @"Services"]; i = [[NSMenuItem alloc] initWithTitle: @"Services" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 60, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Services"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The general submenu */ m = [[GormNSMenu alloc] init]; [m addItemWithTitle: @"Item" action: NULL keyEquivalent: @""]; [m setTitle: @"Submenu"]; i = [[NSMenuItem alloc] initWithTitle: @"Submenu" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 60, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Submenu"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * A whole new menu... */ menu = [[GormMenuMaker alloc] init]; v = [[NSButton alloc] initWithFrame: NSMakeRect(115,0,48,48)]; [v setBordered: NO]; [v setImage: dragImage]; [v setImagePosition: NSImageOverlaps]; [v setTitle: nil]; [contents addSubview: v]; [self associateObject: menu type: IBMenuPboardType with: v]; RELEASE(v); RELEASE(menu); } @end gorm-1.3.1/Palettes/0Menus/MenusPalette.tiff0000644000175000017500000000071414327003123017675 0ustar heronheronMM* P8$ B`76 h@pJ)@8b GY^6UJeT.xDS9A2&q=iCUN屹|:c<4YJTT*5.%MU:VDlu]vh\nW;" P8$ B`76 ~@tD?шn3GRzK$ɥ2*S |+6L\cϨ4 D$tjLqKM(eBQԩUv_W` 00 (p ' 'gorm-1.3.1/Palettes/0Menus/GormMenuAttributesInspector.gorm/0000755000175000017500000000000014327003123023045 5ustar heronherongorm-1.3.1/Palettes/0Menus/GormMenuAttributesInspector.gorm/objects.gorm0000644000175000017500000003770214327003123025375 0ustar heronheronGNUstep archive000f4240:00000021:0000009a:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @h @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @6 @T @l@ @m  @l@ @mJ-0 &0 %  @l@ @m  @l@ @mJ0 &0 % @ @a @j @V@  @j @V@J0 &0 % @ @ @h @O  @h @OJ0 &01 NSTextField1 NSControl% @C @@ @b @4  @b @4J 0 &%01NSTextFieldCell1 NSActionCell1NSCell0&01NSFont%&&&&&&JJ &&&&&&&I01NSColor0&% NSNamedColorSpace0&%System0&%textBackgroundColor00& % textColor0% @ @@ @> @2  @> @2J0 &%00&%Title:&&&&&&JJ &&&&&&&I01NSButton% @W @ @W @0  @W @0J%0 &%0 1 NSButtonCell0!& % Autoenable0"1NSImage0#1NSMutableString&%GSSwitch&&&&&&JJ&&&&&&&I0$0%&%GSSwitchSelected&&& &&0&0'&%Menu Attributes&&&&&&JJ &&&&&&&I0(0)&% System0*&% windowBackgroundColor @ @%%0+ % @ @( @j @]  @j @]J0, &0- % @ @ @h @W@  @h @W@J0. &0/1NSMatrix% @A @ @_ @S  @_ @SJ00 &%01&&&&&&JJ&&&&&&&I% @_ @3 02)03&% controlBackgroundColor204& % NSButtonCell0506& % Windows Menu0708&%GSRadio&&&&&&JJ&&&&&&&I090:&%GSRadioSelected&&& &&%%0; &0<0=& % Windows Menu7&&&&&&JJ&&&&&&&I9&&& &&0>0?& % Services Menu7&&&&&&JJ&&&&&&&I9&&& &&0@0A&%Open Recent Menu7&&&&&&JJ&&&&&&&I9&&& &&0B0C& % Normal Menu7&&&&&&JJ&&&&&&&I9&&& &&<0D0E& % Menu Type&&&&&&JJ &&&&&&&I( @ @%%0F0G&% Title0H% A &&&&&&JJ&&&&&&& %%(0I&%Window0J&%NSMenu InspectorJ @* @Ç @|I0K 0L0M&% NSCalibratedWhiteColorSpace 0N &0O1NSBitmapImageRep1 NSImageRep0P&% NSDeviceRGBColorSpace @H @HII0I00Q1NSData&$$II*$[=T8J2R-!k[=U:K3xB-H'R-!k[=S7J2xB-H'/ ?[=S7I2xB-H'/ ?[=S7H0xB-H'/ ?[=R7I2xB-H'/ ?[=S7I0xB-H'/ ?[=R7I2xB-H'/ ?[=R7H0xB-H'/ ?[>X/!j:)H'/ ?D49  ?hft{y<;D ?hft}<;D ?<;D ?43:""""43:zzzzͱ""""EEEEEEEEEEEE43:555222t43:0?55hhhiiiyyyVVV777?43:~=0rdxxxUUU444?/17?43:5?0\Mzz{]]]QQQmmm_bn:9@5?0I>e]xxwvtsqpo}66<5?2A3QFA4H:|zzywutrqpbao++05?2@2@2A3B3C4E6}}|zxxwutrqpn}VT_=,, 5@2@3A3A3JdbqihvFEOQ-)Y)!W)`/$k3'q6*n4)l3'i2'f0&c/$`-$Y*!)5C4C4D4E6F7H7Ʀkkk)))LJRkjxihvhgu::B\/&[-$Y-$c/&l3'o4)l3'j2'g2&d0$a/$^-#X*!)5@2D4E6F7H7I8{{{[[[322QPZ^]jjhwhguQP[K33\-&W)_/$j3'm3'm4)j3'h2&d0&b/$_-#],#X*!)P'~>>ddd>>?87?4$$E)&_-#`0'_0&]/&^/&`/&`/&c0&j2'n3'k3'h2&d0$a/$^-#\,!Z,!X*!U)T))ttttttzzz;;;rqyjhwPPZ43:C@?w9,c2)b2)^,#_0&d2'g2'h2'k3)l3)l3)l3'l3'i2'f0&c/$_-#],#Z,!X*!W)T)S))rrr```FFF000mmm\[a<;CA)'^3,I::76v8,_-$b2'g2'l4)r7*s7*s7*w8,t7,q6*n4)k3'g2&d0$`-$],#[,!X*!W)U)S'S')YYY777XWcKJS|||SSS\2,KDD4I:I;A?>~>0b2)f2'p6*x:-y:-{;-x:-v9,s7*o4)l3'i2&f0&c/$_-#\,#Y*!W)T)S'R'S')TR^|z@?Gↄ\Zg<;CJJJm4)D4E6J;UIPEvI@q:/l4)m4)x:,};/{:-y:-w9,t7*q6*m4)j3'h2&c0&a/$]-#[,!X*!V)T)R'R'R')0/5?_^kCBJ43:?QQQ ^-#I:O>SBP?H7?2p6*s7*0|;/y:-p6*f0&d0&c/&`/$_-$]-#\,#T)!T)!T)!T)!T)!T)!T)!)))) ?h3'z;/T)!T)!T)!`/$`/$))))) ? 00$$R&   @ @p0R &0S &0T1NSMutableDictionary1 NSDictionary&0U& % ActionCell(0)10V&%View(0) 0W&%TextFieldCell(0)0X& % TextField10Y& % ButtonCell(2)>0Z&% NSOwner0[&%GormMenuAttributesInspector0\&%Box1+0]&%View(1) 0^&%TextFieldCell(1)0_& % TextField0`&%Matrix/0a& % ButtonCell(3)@0b& % ButtonCell(0) 0c&%View(2)-0d&%Button0e& % InspectorWin0f& % ButtonCell(4)B0g&%Box 0h&%Box(0)0i& % ButtonCell(1)<0j &0k1NSNibConnectore0l&% NSOwner0m_]0nX]0ogh0p\h0q1 NSNibOutletConnectorl_0r& % titleText0s _l0t&%delegate0u le0v&%window0wd]0x ld0y& % autoenable0z _d0{& % nextKeyView0| e_0}&%initialFirstResponder0~`c0 l`0&%menuType01!NSNibControlConnector`l0&%ok:0!dl0 d`0& % nextKeyView0 `_0h0Vh0]g0W_0!W0&% NSFirst0& % setObject:0^X0bd0c\0i`0Y`0a`0f`0U`0&gorm-1.3.1/Palettes/0Menus/GormMenuAttributesInspector.gorm/data.info0000644000175000017500000000027014327003123024632 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/0Menus/GormMenuAttributesInspector.gorm/data.classes0000644000175000017500000000053114327003123025334 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:", "setObject:" ); Super = NSObject; }; GormMenuAttributesInspector = { Actions = ( "setObject:" ); Outlets = ( titleText, menuType, autoenable ); Super = IBInspector; }; }gorm-1.3.1/Palettes/0Menus/GormNSMenuView.m0000644000175000017500000000366614327003123017431 0ustar heronheron/** GormNSMenuView Copyright (C) 2007 Free Software Foundation, Inc. Author: Gregory Casamento Date: 2007 This file is part of the GNUstep GUI Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include #include "GormNSMenuView.h" @implementation GormNSMenuView - (BOOL) _executeItemAtIndex: (int)indexOfActionToExecute removeSubmenu: (BOOL)subMenusNeedRemoving { if (indexOfActionToExecute == -1) { return YES; } if (indexOfActionToExecute >= 0 && [[self menu] attachedMenu] != nil && [[self menu] attachedMenu] == [[[[self menu] itemArray] objectAtIndex: indexOfActionToExecute] submenu]) { if (subMenusNeedRemoving) { [self detachSubmenu]; } return NO; } return YES; } - (NSPoint) locationForSubmenu: (NSMenu *)aSubmenu { NSRect frame = [_window frame]; NSRect submenuFrame; if (_needsSizing) [self sizeToFit]; if (aSubmenu) submenuFrame = [[[aSubmenu menuRepresentation] window] frame]; else submenuFrame = NSZeroRect; return NSMakePoint(NSMaxX(frame), NSMaxY(frame) - NSHeight(submenuFrame)); } @end gorm-1.3.1/Palettes/0Menus/GormMenuEditor.m0000644000175000017500000006375414327003123017510 0ustar heronheron/* GormMenuEditor.m * * Copyright (C) 2000 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 2000 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include /* * This method will allow us to check if the menu is * open, so that it can be conditionally closed. */ @interface NSMenu (GormMenuEditorAdditions) - (BOOL) isVisible; @end @implementation NSMenu (GormMenuEditorAdditions) - (BOOL) isVisible { return [[self window] isVisible]; } @end @interface GormMenuEditor : NSMenuView { id document; NSMenu *edited; id original; NSMenuView *rep; NSMutableArray *selection; id subeditor; BOOL isLinkSource; BOOL isClosed; NSPasteboard *dragPb; NSString *dragType; } - (BOOL) acceptsTypeFromArray: (NSArray*)types; - (BOOL) activate; - (id) initWithObject: (id)anObject inDocument: (id)aDocument; - (void) close; - (void) closeSubeditors; - (void) copySelection; - (void) deactivate; - (void) deleteSelection; - (id) document; - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f; - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag; - (id) editedObject; - (void) makeSelectionVisible: (BOOL)flag; - (id) openSubeditorForObject: (id)anObject; - (void) orderFront; - (void) pasteInSelection; - (void) resetObject: (id)anObject; - (void) selectObjects: (NSArray*)objects; - (void) validateEditing; - (BOOL) wantsSelection; - (NSWindow*) window; @end @interface GormMenuEditor (Private) - (NSEvent *) editTextField: view withEvent: (NSEvent *)theEvent; @end @implementation GormMenuEditor - (BOOL) acceptsFirstMouse: (NSEvent*)theEvent { return YES; } - (void) encodeWithCoder: (NSCoder*)aCoder { [NSException raise: NSInternalInconsistencyException format: @"Argh - encoding menu editor"]; } /* * Intercepting events in the view and handling them */ - (NSView*) hitTest: (NSPoint)loc { /* * We grab all events in the window. */ if ([super hitTest: loc] != nil) { return self; } return nil; } - (BOOL) resignFirstResponder { return NO; } - (void) rightMouseDown: (NSEvent*)theEvent { // Do nothing. We want to ignore when the right mouse button is pressed. } - (void) mouseDown: (NSEvent*)theEvent { NSPoint loc = [theEvent locationInWindow]; NSView *hit = [super hitTest: loc]; [[self window] makeMainWindow]; [[self window] makeFirstResponder: self]; if (hit == rep) { int pos = [rep indexOfItemAtPoint: loc]; if (pos >= 0) { NSMenuItem *item = (NSMenuItem *)[edited itemAtIndex: pos]; if ([theEvent clickCount] == 2) { id cell; NSTextField *tf; NSRect frame; [self makeSelectionVisible: NO]; [self selectObjects: [NSArray array]]; cell = [rep menuItemCellForItemAtIndex: pos]; tf = [[NSTextField alloc] initWithFrame: [self bounds]]; frame = (NSRect)[cell titleRectForBounds: [rep rectOfItemAtIndex: pos]]; NSDebugLog(@"cell %@ (%@)", cell, [cell stringValue]); frame.origin.y += 3; frame.size.height -= 5; frame.origin.x += 1; frame.size.width += 3; [tf setFrame: frame]; [tf setEditable: YES]; [tf setBezeled: NO]; [tf setBordered: NO]; [self addSubview: tf]; [tf setStringValue: [[cell menuItem] title]]; [self editTextField: tf withEvent: theEvent]; [[cell menuItem] setTitle: [tf stringValue]]; [tf removeFromSuperview]; RELEASE(tf); return; } [self makeSelectionVisible: NO]; if ([theEvent modifierFlags] & NSShiftKeyMask) { NSMutableArray *array; array = [NSMutableArray arrayWithArray: selection]; if ([array containsObject: item] == YES) { [array removeObject: item]; } else { [array addObject: item]; } [self selectObjects: array]; [self makeSelectionVisible: YES]; return; } [self selectObjects: [NSArray arrayWithObject: item]]; if ([theEvent modifierFlags] & NSControlKeyMask) { NSPoint dragPoint = [theEvent locationInWindow]; NSPasteboard *pb; NSString *name = [document nameForObject: item]; pb = [NSPasteboard pasteboardWithName: NSDragPboard]; [pb declareTypes: [NSArray arrayWithObject: GormLinkPboardType] owner: self]; [pb setString: name forType: GormLinkPboardType]; [NSApp displayConnectionBetween: item and: nil]; [NSApp startConnecting]; isLinkSource = YES; [self dragImage: [NSApp linkImage] at: dragPoint offset: NSZeroSize event: theEvent pasteboard: pb source: self slideBack: YES]; isLinkSource = NO; } else { NSDate *future = [NSDate distantFuture]; unsigned eventMask; NSEvent *e; NSEventType eType; BOOL acceptsMouseMoved; NSRect frame = [rep innerRect]; float maxMouse = NSMaxY(frame); float minMouse = NSMinY(frame); NSPoint lastPoint = loc; NSPoint point = loc; NSRect lastRect = [rep rectOfItemAtIndex: pos]; id cell = [rep menuItemCellForItemAtIndex: pos]; int newPos; eventMask = NSLeftMouseUpMask | NSLeftMouseDraggedMask | NSMouseMovedMask | NSPeriodicMask; [[self window] setAcceptsMouseMovedEvents: YES]; /* * Save window state info. */ acceptsMouseMoved = [[self window] acceptsMouseMovedEvents]; [rep lockFocus]; /* * Track mouse movements until left mouse up. * While we keep track of all mouse movements, * we only act on a movement when a periodic * event arives (every 20th of a second) * in order to avoid excessive amounts of drawing. */ [NSEvent startPeriodicEventsAfterDelay: 0.1 withPeriod: 0.05]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; while (eType != NSLeftMouseUp) { if (eType != NSPeriodic) { point = [e locationInWindow]; } else if (NSEqualPoints(point, lastPoint) == NO) { /* * Limit mouse movement. */ point.x = NSMinX(frame); if (point.y < minMouse) point.y = minMouse; if (point.y > maxMouse) point.y = maxMouse; if (NSEqualPoints(point, lastPoint) == NO) { [[self window] disableFlushWindow]; /* * Redraw cells under area being changed. */ [rep drawRect: lastRect]; /* * Update location. */ lastRect.origin.y += point.y - lastPoint.y; lastPoint = point; /* * Draw highlighted item being moved. */ [cell highlight: YES withFrame: lastRect inView: rep]; [cell setHighlighted: NO]; /* * Flush any drawing performed for this event. */ [[self window] enableFlushWindow]; [[self window] flushWindow]; } } e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; } [NSEvent stopPeriodicEvents]; [rep drawRect: lastRect]; [rep unlockFocus]; newPos = [rep indexOfItemAtPoint: point]; if (newPos < pos) { NSMenuItem *item = (NSMenuItem *)[edited itemAtIndex: pos]; RETAIN(item); if (newPos < 0) newPos = 0; [edited removeItemAtIndex: pos]; [edited insertItem: item atIndex: newPos]; RELEASE(item); } else if (newPos > pos) { NSMenuItem *item = (NSMenuItem *)[edited itemAtIndex: pos]; RETAIN(item); [edited removeItemAtIndex: pos]; [edited insertItem: item atIndex: newPos]; RELEASE(item); } [edited sizeToFit]; [edited display]; /* * Restore state to what it was on entry. */ [[self window] setAcceptsMouseMovedEvents: acceptsMouseMoved]; } [self makeSelectionVisible: YES]; } } else { /* * The mouse down wasn't over the menu items, so we just let the menu * handle it - but make sure the menu is selected in the editor first. */ [[document parentEditorForEditor: self] selectObjects: [NSArray arrayWithObject: edited]]; [hit mouseDown: theEvent]; } } - (BOOL) acceptsTypeFromArray: (NSArray*)types { /* * A menu editor can accept menu items pasted in to it. */ return [types containsObject: IBMenuPboardType]; } - (BOOL) activate { if (original == nil) { NSWindow *w; NSEnumerator *enumerator; NSView *sub; NSMenuItem *item; // // Swap ourselves in as a replacement for the original window // content view. // w = [rep window]; original = RETAIN([w contentView]); [self setFrame: [original frame]]; enumerator = [[original subviews] objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { [self addSubview: sub]; } [w setContentView: self]; // // Line up submenu with parent menu. // item = [document parentOfObject: edited]; if (item != nil && [item isKindOfClass: [NSMenuItem class]]) { NSMenu *parent = [document parentOfObject: item]; NSRect frame = [[[parent menuRepresentation] window] frame]; NSPoint tl; tl = frame.origin; tl.x += frame.size.width; tl.y += frame.size.height; // if it's the main menu, display it when activated, otherwise don't. if([[document nameForObject: edited] isEqual: @"NSMenu"]) { [edited sizeToFit]; [[[edited menuRepresentation] window] setFrameTopLeftPoint: tl]; } } return NO; } return YES; } - (void) close { isClosed = YES; [[NSNotificationCenter defaultCenter] removeObserver: self]; if ([(id)NSApp selectionOwner] == self) { [document resignSelectionForEditor: self]; } [self closeSubeditors]; [self deactivate]; // if it's visible, close it. if([edited isVisible]) { [edited close]; } [document editor: self didCloseForObject: edited]; } - (void) closeSubeditors { if (subeditor != nil) { [subeditor close]; DESTROY(subeditor); } } - (void) copySelection { if ([selection count] > 0) { [document copyObjects: selection type: IBMenuPboardType toPasteboard: [NSPasteboard generalPasteboard]]; } } - (void) deactivate { if (original != nil) { NSEnumerator *enumerator; NSView *sub; RETAIN(self); /* * Swap ourselves out and the original window content view in. */ [self makeSelectionVisible: NO]; [original setFrame: [self frame]]; [[rep window] setContentView: original]; enumerator = [[self subviews] objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { [original addSubview: sub]; } DESTROY(original); RELEASE(self); } } - (void) dealloc { if (isClosed == NO) { [self close]; } RELEASE(edited); RELEASE(selection); RELEASE(subeditor); [super dealloc]; } - (void) deleteSelection { if ([selection count] > 0) { NSArray *s = [NSArray arrayWithArray: selection]; NSEnumerator *e = [s objectEnumerator]; NSMenuItem *i; NSArray *d = nil; [self makeSelectionVisible: NO]; [self selectObjects: [NSArray array]]; // find all relavent objects. Remove them from the nameTable. d = findAllSubmenus( s ); [document detachObjects: d]; // remove the items from the menu... while ((i = [e nextObject]) != nil && [edited numberOfItems] > 0) { [edited removeItem: i]; } [edited sizeToFit]; [edited display]; } } /* * Dragging source protocol implementation */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f { /* * FIXME - handle this. * Notification that a drag failed/succeeded. */ } - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag { if (isLinkSource == YES) return NSDragOperationLink; else return NSDragOperationCopy; } - (NSDragOperation) draggingEntered: (id)sender { NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: IBMenuPboardType] == YES) { dragType = IBMenuPboardType; } else if ([types containsObject: GormLinkPboardType] == YES) { dragType = GormLinkPboardType; } else { dragType = nil; } return [self draggingUpdated: sender]; } - (NSDragOperation) draggingUpdated: (id)sender { if (dragType == IBMenuPboardType) { return NSDragOperationCopy; } else if (dragType == GormLinkPboardType) { NSPoint loc = [sender draggingLocation]; int pos = [rep indexOfItemAtPoint: loc]; id item = nil; if (pos >= 0) { item = [edited itemAtIndex: pos]; } if (item == [NSApp connectSource]) { item = nil; } [NSApp displayConnectionBetween: [NSApp connectSource] and: item]; return NSDragOperationLink; } else { return 0; } } - (void) draggingExited: (id)sender { if (dragType == GormLinkPboardType) { [NSApp displayConnectionBetween: [NSApp connectSource] and: nil]; } } - (void) drawSelection { } - (id) document { return document; } - (id) editedObject { return edited; } // find all subitems for the given items... void _attachAllSubmenus(id menu, NSArray *items, id document) { NSEnumerator *e = [items objectEnumerator]; NSString *name = [document nameForObject: menu]; id i = nil; // if it's the main menu, display it... otherwise.. if([name isEqual: @"NSMenu"]) { [menu display]; } while((i = [e nextObject]) != nil) { [document attachObject: i toParent: menu]; if([i hasSubmenu]) { id submenu = [i submenu]; NSArray *submenuItems = [submenu itemArray]; [submenu setSupermenu: menu]; [document attachObject: submenu toParent: i]; _attachAllSubmenus(submenu, submenuItems, document); } } } void _attachAll(NSMenu *menu, id document) { NSArray *items = [menu itemArray]; _attachAllSubmenus(menu, items, document); } - (id) initWithObject: (id)anObject inDocument: (id)aDocument { self = [super init]; if(self != nil) { document = aDocument; ASSIGN(edited, anObject); selection = [[NSMutableArray alloc] init]; rep = [edited menuRepresentation]; /* * Permit views and connections to be dragged in to the window. */ [self registerForDraggedTypes: [NSArray arrayWithObjects: IBMenuPboardType, GormLinkPboardType, nil]]; /* * Make sure that all our menu items are attached in the document. */ _attachAll(edited, document); } return self; } - (void) makeSelectionVisible: (BOOL)flag { if (flag == NO) { if ([selection count] > 0) { NSEnumerator *enumerator = [selection objectEnumerator]; NSMenuItem *item; [[self window] disableFlushWindow]; [rep lockFocus]; while ((item = [enumerator nextObject]) != nil) { int pos = [edited indexOfItem: item]; id cell = [rep menuItemCellForItemAtIndex: pos]; NSRect rect = [rep rectOfItemAtIndex: pos]; [cell highlight: NO withFrame: rect inView: rep]; } [rep unlockFocus]; [[self window] enableFlushWindow]; [[self window] flushWindowIfNeeded]; } } else { if ([selection count] > 0) { NSEnumerator *enumerator = [selection objectEnumerator]; NSMenuItem *item; [[self window] disableFlushWindow]; [rep lockFocus]; while ((item = [enumerator nextObject]) != nil) { int pos = [edited indexOfItem: item]; id cell = [rep menuItemCellForItemAtIndex: pos]; NSRect rect = [rep rectOfItemAtIndex: pos]; [cell highlight: YES withFrame: rect inView: rep]; } [rep unlockFocus]; [[self window] enableFlushWindow]; [[self window] flushWindowIfNeeded]; } } } - (id) openSubeditorForObject: (id)anObject { return nil; } - (void) orderFront { [[edited window] orderFront: self]; } - (void) pasteInSelection { NSPasteboard *pb = [NSPasteboard generalPasteboard]; NSArray *items; NSEnumerator *enumerator; NSMenuItem *item; /* * Ask the document to get the copied items from the pasteboard and add * them to it's collection of known objects. */ items = [document pasteType: IBMenuPboardType fromPasteboard: pb parent: edited]; enumerator = [items objectEnumerator]; while ((item = [enumerator nextObject]) != nil) { if ([edited _ownedByPopUp]) { [item setOnStateImage: nil]; [item setMixedStateImage: nil]; } [edited addItem: item]; } [edited sizeToFit]; [edited display]; } - (BOOL) performDragOperation: (id)sender { NSRect f = [rep frame]; if (dragType == IBMenuPboardType) { NSPoint loc = [sender draggedImageLocation]; NSArray *items; NSEnumerator *enumerator; NSMenuItem *item; int pos; /* * Adjust location so that it lies within horizontal bounds, and so that * it appears about half an item higher than it is. That way, we treat * a drop in the lower half of an item as an insertion below it, and a * drop in the upper half as an insertion above it. */ if (loc.x < NSMinX(f)) loc.x = NSMinX(f); if (loc.x > NSMaxX(f)) loc.x = NSMaxX(f); loc.y += 10; pos = [rep indexOfItemAtPoint: loc] + 1; [self makeSelectionVisible: NO]; /* * Ask the document to get the dragged views from the pasteboard and add * them to it's collection of known objects. */ items = [document pasteType: IBMenuPboardType fromPasteboard: dragPb parent: edited]; // Test to see if the first item is a menu, if so reject the drag. If the // first item is a menu item, accept it. if([items count] > 0) { id itemZero = [items objectAtIndex: 0]; if([itemZero isKindOfClass: [NSMenu class]]) { return NO; } } // enumerate through the items and add them. enumerator = [items objectEnumerator]; while ((item = [enumerator nextObject]) != nil) { if ([edited _ownedByPopUp]) { NSDebugLog(@"owned by popup"); [item setOnStateImage: nil]; [item setMixedStateImage: nil]; // if the item has a submenu, reject the drag. if([item hasSubmenu]) { return NO; } } else NSDebugLog(@"not owned by popup"); [edited insertItem: item atIndex: pos++]; } [edited sizeToFit]; [edited display]; [self selectObjects: items]; [self makeSelectionVisible: YES]; } else if (dragType == GormLinkPboardType) { NSPoint loc = [sender draggingLocation]; int pos = [rep indexOfItemAtPoint: loc]; NSDebugLog(@"Link at index: %d (%@)", pos, NSStringFromPoint(loc)); if (pos >= 0) { id item = [edited itemAtIndex: pos]; [NSApp displayConnectionBetween: [NSApp connectSource] and: item]; [NSApp startConnecting]; } } else { NSDebugLog(@"Drop with unrecognized type (%@)!", dragType); dragType = nil; return NO; } dragType = nil; return YES; } - (BOOL) prepareForDragOperation: (id)sender { /* * Tell the source that we will accept the drop if we can. */ if (dragType == IBMenuPboardType) { /* * We can accept menus dropped anywhere. */ return YES; } else if (dragType == GormLinkPboardType) { /* * We can accept a link dropped on any of our items. */ return YES; } return NO; } /* * Return the rectangle in which an objects link status will be displayed. */ - (NSRect) rectForObject: (id)anObject { int pos = [edited indexOfItem: anObject]; NSRect rect; if (pos >= 0) { rect = [rep rectOfItemAtIndex: pos]; rect = [rep convertRect: rect toView: nil]; } else { rect = [self frame]; } return rect; } - (void) resetObject: (id)anObject { [[self window] makeKeyAndOrderFront: self]; } - (void) selectObjects: (NSArray*)anArray { if ([anArray isEqual: selection] == NO) { NSUInteger count; NSMenuItem *item; [selection removeAllObjects]; NSDebugLog(@"selectObjects %@ %@", selection, anArray); [selection addObjectsFromArray: anArray]; count = [selection count]; /* * We can only select items in our menu - discard others. */ while (count-- > 0) { id o = [selection objectAtIndex: count]; if ([edited indexOfItem: o] == NSNotFound) { [selection removeObjectAtIndex: count]; } } item = [selection lastObject]; if ([selection count] != 1 || [item hasSubmenu] == NO) { [self closeSubeditors]; } else { NSMenu *menu; id editor; /* * A single item with a submenu is selected - * Make sure the submenu is registered in the document and * open an editor for it Close any existing subeditor. */ menu = [item submenu]; if ([document containsObject: menu] == NO) { [document attachObject: menu toParent: item]; } editor = [document editorForObject: menu create: YES]; if (subeditor != nil && subeditor != editor) { [self closeSubeditors]; } [menu display]; [[item submenu] display]; [editor orderFront]; [editor activate]; ASSIGN(subeditor, editor); } } /* * Now we must let the document (and hence the rest of the app) know * about our new selection. If there is nothing in it, make sure * that our edited window is selected instead. */ if ([selection count] > 0) { [document setSelectionFromEditor: self]; } /* else { id ed = nil; //GormObjectEditor *ed; ed = [GormObjectEditor editorForDocument: document]; [ed selectObjects: [NSArray arrayWithObject: edited]]; } */ } - (NSArray*) selection { return [NSArray arrayWithArray: selection]; } - (NSUInteger) selectionCount { return [selection count]; } - (void) validateEditing { } - (BOOL) wantsSelection { /* * We only want to be the selection owner if we are active (have been * swapped for the windows original content view) and if we have some * object selected. */ if (original == nil) return NO; if ([selection count] == 0) return NO; return YES; } - (NSWindow*) window { return [super window]; } @end static BOOL done_editing; @implementation GormMenuEditor (EditingAdditions) - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: NSControlTextDidEndEditingNotification] == YES) { done_editing = YES; [document setSelectionFromEditor: self]; // Correction for Bug#11410 // [self selectObjects: [NSArray arrayWithObject: edited]]; } } /* Edit a textfield. If it's not already editable, make it so, then edit it */ - (NSEvent *) editTextField: view withEvent: (NSEvent *)theEvent { unsigned eventMask; BOOL wasEditable; BOOL didDrawBackground; NSTextField *editField; NSRect frame; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSDate *future = [NSDate distantFuture]; NSEvent *e; editField = view; frame = [editField frame]; wasEditable = [editField isEditable]; [editField setEditable: YES]; didDrawBackground = [editField drawsBackground]; [editField setDrawsBackground: YES]; [nc addObserver: self selector: @selector(handleNotification:) name: NSControlTextDidEndEditingNotification object: nil]; /* Do some modal editing */ [editField selectText: self]; eventMask = NSLeftMouseDownMask | NSLeftMouseUpMask | NSKeyDownMask | NSKeyUpMask | NSFlagsChangedMask; done_editing = NO; while (!done_editing) { NSEventType eType; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; switch (eType) { case NSLeftMouseDown: { NSPoint dp = [self convertPoint: [e locationInWindow] fromView: nil]; if (NSMouseInRect(dp, frame, NO) == NO) { done_editing = YES; break; } } [[editField currentEditor] mouseDown: e]; break; case NSLeftMouseUp: [[editField currentEditor] mouseUp: e]; break; case NSLeftMouseDragged: [[editField currentEditor] mouseDragged: e]; break; case NSKeyDown: [[editField currentEditor] keyDown: e]; break; case NSKeyUp: [[editField currentEditor] keyUp: e]; break; case NSFlagsChanged: [[editField currentEditor] flagsChanged: e]; break; default: NSLog(@"Internal Error: Unhandled event during editing: %@", e); break; } } [editField setEditable: wasEditable]; [editField setDrawsBackground: didDrawBackground]; [nc removeObserver: self name: NSControlTextDidEndEditingNotification object: nil]; [[editField currentEditor] resignFirstResponder]; [self setNeedsDisplay: YES]; [[self document] touch]; return e; } @end gorm-1.3.1/Palettes/0Menus/GormNSMenuView.h0000644000175000017500000000227314327003123017415 0ustar heronheron/** GormNSMenuView Copyright (C) 1999 Free Software Foundation, Inc. Author: Fred Kiefer Date: Sep 2001 Author: David Lazaro Saz Date: Oct 1999 Author: Michael Hanni Date: 1999 This file is part of the GNUstep GUI Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include @interface GormNSMenuView : NSMenuView @end gorm-1.3.1/Palettes/0Menus/GormMenuItemAttributesInspector.h0000644000175000017500000000323614327003123023076 0ustar heronheron/* GormMenuItemAttributesInspector.h Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormMenuItemAttributesInspector_h_ #define INCLUDED_GormMenuItemAttributesInspector_h_ #include @class NSTextField, NSPopUpButton, NSMatrix; @interface GormMenuItemAttributesInspector : IBInspector { NSTextField *titleText; NSTextField *shortCut; NSTextField *tagText; NSPopUpButton *keyPopup; NSMatrix *keyType; id altBtn; id ctrlBtn; id shiftBtn; id cmdBtn; NSString *upString; NSString *dnString; NSString *ltString; NSString *rtString; } @end #endif gorm-1.3.1/Palettes/0Menus/GormMenuInspectors.m0000644000175000017500000001133014327003123020372 0ustar heronheron/* GormMenuInspectors.m * * Copyright (C) 2000 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 2000 * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include @interface GormMenuAttributesInspector : IBInspector { NSTextField *titleText; NSMatrix *menuType; id autoenable; } - (void) updateMenuType: (id)sender; - (void) updateAutoenable: (id)sender; @end @implementation GormMenuAttributesInspector - (void)controlTextDidChange:(NSNotification *)aNotification { [object setTitle: [titleText stringValue]]; [super ok: self]; } - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormMenuAttributesInspector" owner: self] == NO) { NSLog(@"Could not gorm GormMenuAttributesInspector"); return nil; } return self; } - (void) setObject: (id)anObject { GormDocument *doc = (GormDocument *)[(id)NSApp activeDocument]; ASSIGN(object, nil); // remove reference to old object... [super setObject: anObject]; [titleText setStringValue: [object title]]; [autoenable setState: ([object autoenablesItems]?NSOnState:NSOffState)]; // set up the menu type matrix... if([doc windowsMenu] == anObject) { [menuType selectCellAtRow: 0 column: 0]; } else if([doc servicesMenu] == anObject) { [menuType selectCellAtRow: 1 column: 0]; } else // normal menu without any special function { [menuType selectCellAtRow: 2 column: 0]; } } - (void) updateMenuType: (id)sender { BOOL flag; GormDocument *doc = (GormDocument *)[(id)NSApp activeDocument]; // look at the values passed back in the matrix. flag = ([[menuType cellAtRow: 0 column: 0] state] == NSOnState) ? YES : NO; // windows menu... if(flag) { [doc setWindowsMenu: [self object]]; if([doc servicesMenu] == [self object]) { [doc setServicesMenu: nil]; } } flag = ([[menuType cellAtRow: 1 column: 0] state] == NSOnState) ? YES : NO; // services menu... if(flag) { [doc setServicesMenu: [self object]]; if([doc windowsMenu] == [self object]) { [doc setWindowsMenu: nil]; } } flag = ([[menuType cellAtRow: 2 column: 0] state] == NSOnState) ? YES : NO; // normal menu... if(flag) { if([doc windowsMenu] == [self object]) { [doc setWindowsMenu: nil]; } if([doc servicesMenu] == [self object]) { [doc setServicesMenu: nil]; } } [super ok: sender]; } - (void) updateAutoenable: (id)sender { BOOL flag; // look at the values passed back in the matrix. flag = ([autoenable state] == NSOnState) ? YES : NO; [object setAutoenablesItems: flag]; [super ok: sender]; } @end @interface GormMenuItemAttributesInspector : IBInspector { NSTextField *titleText; NSTextField *shortCut; NSTextField *tagText; } @end @implementation GormMenuItemAttributesInspector - (void)controlTextDidChange:(NSNotification *)aNotification { id o = [aNotification object]; id doc = [(id)NSApp activeDocument]; if (o == titleText) { [object setTitle: [titleText stringValue]]; } if (o == shortCut) { NSString *s = [[shortCut stringValue] stringByTrimmingSpaces]; [object setKeyEquivalent: s]; } if (o == tagText) { [object setTag: [tagText intValue]]; } [doc touch]; [[object menu] display]; } - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormMenuItemAttributesInspector" owner: self] == NO) { NSLog(@"Could not gorm GormMenuItemAttributesInspector"); return nil; } return self; } - (void) setObject: (id)anObject { [super setObject: anObject]; [titleText setStringValue: [object title]]; [shortCut setStringValue: [object keyEquivalent]]; [tagText setIntValue: [object tag]]; } @end gorm-1.3.1/Palettes/0Menus/GormMenuItemAttributesInspector.m0000644000175000017500000001747414327003123023114 0ustar heronheron/* GormMenuItemAttributesInspector.m Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include "GormMenuItemAttributesInspector.h" const unichar up[]={NSUpArrowFunctionKey}; const unichar dn[]={NSDownArrowFunctionKey}; const unichar lt[]={NSLeftArrowFunctionKey}; const unichar rt[]={NSRightArrowFunctionKey}; #define VSTR(str) ({NSString *_str = (NSString *)str; ((NSString *)_str) ? (NSString *)_str : (NSString *)@"";}) @implementation GormMenuItemAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormMenuItemAttributesInspector" owner: self] == NO) { NSLog(@"Could not gorm GormMenuItemAttributesInspector"); return nil; } // initialize the strings. upString = RETAIN([NSString stringWithCharacters: up length: 1]); dnString = RETAIN([NSString stringWithCharacters: dn length: 1]); ltString = RETAIN([NSString stringWithCharacters: lt length: 1]); rtString = RETAIN([NSString stringWithCharacters: rt length: 1]); return self; } - (void) awakeFromNib { NSArray *cells = [keyType cells]; NSEnumerator *en = [cells objectEnumerator]; NSCell *cell = nil; while ((cell = [en nextObject]) != nil) { [cell setRefusesFirstResponder: YES]; } } - (void) dealloc { RELEASE(upString); RELEASE(dnString); RELEASE(ltString); RELEASE(rtString); [super dealloc]; } - (void) revert: (id)sender { unsigned int flags = [object keyEquivalentModifierMask]; NSString *key = VSTR([object keyEquivalent]); if ( object == nil ) return; [titleText setStringValue: VSTR([object title])]; [tagText setIntValue: [object tag]]; [shortCut setEnabled: NO]; if([key isEqualToString: @"\n"]) { [keyPopup selectItemAtIndex: 1]; } else if([key isEqualToString: @"\b"]) { [keyPopup selectItemAtIndex: 2]; } else if([key isEqualToString: @"\E"]) { [keyPopup selectItemAtIndex: 3]; } else if([key isEqualToString: @"\t"]) { [keyPopup selectItemAtIndex: 4]; } else if([key isEqualToString: upString]) { [keyPopup selectItemAtIndex: 5]; } else if([key isEqualToString: dnString]) { [keyPopup selectItemAtIndex: 6]; } else if([key isEqualToString: ltString]) { [keyPopup selectItemAtIndex: 7]; } else if([key isEqualToString: rtString]) { [keyPopup selectItemAtIndex: 8]; } else { [keyPopup selectItemAtIndex: 0]; [keyPopup setEnabled: NO]; [keyType selectCellWithTag: 0]; [shortCut setEnabled: YES]; [shortCut setStringValue: key]; } // key modifier mask... [altBtn setState: NSOffState]; [ctrlBtn setState: NSOffState]; [shiftBtn setState: NSOffState]; [cmdBtn setState: NSOffState]; if(flags & NSAlternateKeyMask) { [altBtn setState: NSOnState]; } if(flags & NSControlKeyMask) { [ctrlBtn setState: NSOnState]; } if(flags & NSShiftKeyMask) { [shiftBtn setState: NSOnState]; } if(flags & NSCommandKeyMask) { [cmdBtn setState: NSOnState]; } } - (void) _setFunctionKeyEquivalent { unsigned int tag = [[keyPopup selectedItem] tag]; switch(tag) { case 0: // none { [object setKeyEquivalent: nil]; } break; case 1: // return { [object setKeyEquivalent: @"\n"]; } break; case 2: // delete { [object setKeyEquivalent: @"\b"]; } break; case 3: // escape { [object setKeyEquivalent: @"\E"]; } break; case 4: // tab { [object setKeyEquivalent: @"\t"]; } break; case 5: // up { [object setKeyEquivalent: upString]; } break; case 6: // down { [object setKeyEquivalent: dnString]; } break; case 7: // left { [object setKeyEquivalent: ltString]; } break; case 8: // right { [object setKeyEquivalent: rtString]; } break; default: // should never happen.. { [object setKeyEquivalent: nil]; NSLog(@"This shouldn't happen."); } break; } } -(void) ok: (id)sender { if (sender == titleText) { [object setTitle: [titleText stringValue]]; } if (sender == shortCut) { NSString *keyEq = [shortCut stringValue]; if ([keyEq length] > 1) { keyEq = [NSString stringWithFormat:@"%c", [keyEq characterAtIndex: 0]]; [shortCut setStringValue: keyEq]; NSBeep(); } [object setKeyEquivalent:[keyEq stringByTrimmingSpaces]]; } if (sender == tagText) { [object setTag: [tagText intValue]]; } else if (sender == keyPopup) { [self _setFunctionKeyEquivalent]; } else if (sender == keyType) { switch ([[keyType selectedCell] tag]) { case 0: [keyPopup selectItemWithTag: 0]; [keyPopup setEnabled: NO]; [shortCut setEnabled: YES]; [object setKeyEquivalent:[[shortCut stringValue] stringByTrimmingSpaces]]; break; case 1: // [shortCut setStringValue: @""]; [shortCut setEnabled: NO]; [keyPopup setEnabled: YES]; [self _setFunctionKeyEquivalent]; break; } } else if (sender == altBtn) { if([altBtn state] == NSOnState) { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] | NSAlternateKeyMask]; } else { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] & ~NSAlternateKeyMask]; } [[object menu] itemChanged: object]; } else if (sender == ctrlBtn) { if([ctrlBtn state] == NSOnState) { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] | NSControlKeyMask]; } else { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] & ~NSControlKeyMask]; } [[object menu] itemChanged: object]; } else if (sender == shiftBtn) { if([shiftBtn state] == NSOnState) { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] | NSShiftKeyMask]; } else { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] & ~NSShiftKeyMask]; } [[object menu] itemChanged: object]; } else if (sender == cmdBtn) { if([cmdBtn state] == NSOnState) { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] | NSCommandKeyMask]; } else { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] & ~NSCommandKeyMask]; } [[object menu] itemChanged: object]; } [super ok:sender]; } - (void) controlTextDidChange: (NSNotification *)aNotification { [self ok: [aNotification object]]; } @end gorm-1.3.1/Palettes/0Menus/GormMenuItemAttributesInspector.gorm/0000755000175000017500000000000014327003123023664 5ustar heronherongorm-1.3.1/Palettes/0Menus/GormMenuItemAttributesInspector.gorm/objects.gorm0000644000175000017500000003451514327003123026213 0ustar heronheronGNUstep archive000f4240:00000023:00000179:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @P01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @W@ @q @k  @q @kJ-0 &0 % @ @ @p` @j  @p` @jJ0 &0 % @ @`@ @o @T  @o @TJ0 &0 % @ @ @m @L  @m @LJ0 &01 NSTextField1 NSControl% @6 @@ @< @2  @< @2J0 &%01NSTextFieldCell1 NSActionCell1NSCell0&%Title:01NSFont%&&&&&&JJ&&&&&&&I01NSColor0&% NSNamedColorSpace0&%System0&%textBackgroundColor00& % textColor0% @K @? @d@ @5  @d@ @5J0 &%00&&&&&&&JJ&&&&&&&I0% @K @ @d@ @5  @d@ @5J0 &%0 0!&%0!&&&&&&JJ&&&&&&&I0"% @5 @  @< @2  @< @2J0# &%0$0%&%Tag:&&&&&&JJ&&&&&&&I0&0'&%Menu Item Attributes&&&&&&JJ&&&&&&&I0(0)&% System0*&% windowBackgroundColor @ @%%0+ % @[ @" @b` @]  @b` @]J0, &0- % @ @ @a @V  @a @VJ0. &0/1NSMatrix% @ @8 @P @I  @P @IJ00 &%01&&&&&&JJ&&&&&&&I% @P @9 ? ?02& % NSButtonCell031 NSButtonCell04&%Radio051NSImage061NSMutableString&%GSRadio&&&&&&JJ&&&&&&&I0708&%GSRadioSelected&&& &&%%09 &0:0;&%Special:5&&&&&&JJ&&&&&&&I7&&& &&0<0=&%Custom:5&&&&&&JJ&&&&&&&I7&&& &&:0>% @: @J @[ @6  @[ @6J0? &%0@&&&&&&JJ&&&&&&&I0A1 NSPopUpButton1NSButton% @; @9 @[ @6  @[ @6J0B &%0C1NSPopUpButtonCell1NSMenuItemCell&&&&&&JJ0D1NSMenu0E &  0F1 NSMenuItem0G&%JJI0H0I& %  common_NibbleI0J0K&%ReturnJJII0L0M&%DeleteJJII0N0O&%EscapeJJII0P0Q&%TabJJII0R0S&%Up ArrowJJII0T0U& % Down ArrowJJII0V0W& % Left ArrowJJII0X0Y& % Right ArrowJJII&&&&&&&I&&& > =&&FDF%%%%%0Z0[&%Key[&&&&&&JJ&&&&&&& @%%0\ % @ @" @X@ @]  @X@ @]J0] &0^ % @ @ @T @V  @T @VJ0_ &0`% @H @S @0  @S @0J0a &%0b0c& % Alternate0d0e&%GSSwitch0f&%Alt&&&&&&JJ&&&&&&&I0g0h&%GSSwitchSelected&&& &&0i% @< @S @0  @S @0J0j &%0k0l&%Controldl&&&&&&JJ&&&&&&&Ig&&& &&0m% @  @S @0  @S @0J0n &%0o0p&%Shiftdp&&&&&&JJ&&&&&&&Ig&&& &&0q% @Q @S @0  @S @0J0r &%0s0t&%Commandd0u&%Cmd&&&&&&JJ&&&&&&&Ig&&& &&0v0w&%Modifierw&&&&&&JJ&&&&&&& @ @%%0x0y&%Title0z% A &&&&&&JJ&&&&&&& @ @%%(0{&%Window0|&%NSMenuItem Inspector| @S@ @Ç @|I&   @ @0} &0~ &01NSMutableDictionary1 NSDictionary&F0& % MenuItem(31)P0&%PopUpButtonCell(0)C0& % Button(0)`0& % ButtonCell(2)b0& % MenuItem(10)00&%ReturnJJII0& % MenuItem(15)00& % Down ArrowJJII0& % MenuItem(21)00&%JJIHI0& % MenuItem(26)00&%Up ArrowJJII0&%TextFieldCell(0)0&%Box(0)+0& % ActionCell(0)10&%Box 0&%View(3) 0& % MenuItem(6)00& % Down ArrowJJII0& % MenuItem(1)00&%ReturnJJII0& % TextField5"0& % MenuItem(34)V0& % Button(3)q0& % MenuItem(24)00&%EscapeJJII0& % MenuItem(18)F0& % MenuItem(29)00& % Right ArrowJJII0& % ButtonCell(0):0& % ButtonCell(5)s0& % MenuItem(13)00&%TabJJII0&%TextFieldCell(3)$0&%PopUpButton(1)A0& % Matrix(0)/0& % TextField0&%View(1)^0& % MenuItem(4)00&%TabJJII0& % MenuItem(9)00&%JJIHI0& % Inspector0& % MenuItem(32)R0& % Button(1)i0& % ButtonCell(3)k0& % MenuItem(11)00&%DeleteJJII0& % MenuItem(22)00&%ReturnJJII0& % MenuItem(16)00& % Left ArrowJJII0±& % MenuItem(27)0ñ0ı& % Down ArrowJJII0ű&%TextFieldCell(1)0Ʊ&%Box(1)\0DZ& % MenuItem(2)0ȱ0ɱ&%DeleteJJII0ʱ& % MenuItem(7)0˱0̱& % Left ArrowJJII0ͱ& % TextField40α& % MenuItem(30)N0ϱ& % MenuItem(35)X0б& % ButtonCell(1)<0ѱ& % MenuItem(19)J0ұ& % MenuItem(25)0ӱ0Ա&%TabJJII0ձ& % MenuItem(14)0ֱ0ױ&%Up ArrowJJII0ر& % MenuItem(20)L0ٱ&%TextFieldCell(4)@0ڱ&%View(2) 0۱& % MenuItem(5)0ܱ0ݱ&%Up ArrowJJII0ޱ& % MenuItem(0)0߱0&%JJIHI0& % TextField10& % MenuItem(33)T0& % Button(2)m0&% NSOwner0&%GormMenuItemAttributesInspector0& % TextField(1)>0& % MenuItem(28)00& % Left ArrowJJII0& % MenuItem(12)00&%EscapeJJII0& % MenuItem(17)00& % Right ArrowJJII0& % MenuItem(23)00&%DeleteJJII0& % ButtonCell(4)o0&%TextFieldCell(2) 0&%Box(2)0&%View(0)-0& % MenuItem(3)00&%EscapeJJII0& % MenuItem(8)00& % Right ArrowJJII0 &cc01!NSNibConnector0&% NSOwnerP!P!ᰔP!ͰP!P!P1"NSNibOutletConnectorP&%delegateP"ͰP"P & % titleTextP "P &%tagTextP "P &%windowP"P&%initialFirstResponderP!ސP!P!ǐP!P!P!ېP!P!ʐP!P!P!P!P!ꐐP!P!ՐP!P !P!!퐐P"!P#!P$!P%!ưP&!ƐP'!P(!P)!㰮P*!P+"P,& % nextKeyViewP-",P."㰝,P/",P01#NSNibControlConnectorP1&%ok:P2"P3&%shortCutP4"P5&%delegateP6"P7&%altBtnP8"P9&%ctrlBtnP:"P;&%shiftBtnP<"P=&%cmdBtnP>#1P?#1P@#1PA#1PB!PC!PD#PE&%_popUpItemAction:PF!ѰPG#ѰPH&%_popUpItemAction:PI!ذPJ#ذPK&%_popUpItemAction:PL!PM!PN!PO!PP!PQ!ҐPR!PS!PT!琐PU!PV!PW!PX!аPY!PZ!ΰP[!P\!P]!ⰫP^!P_!ϰP`"Pa&%keyPopupPb#Pc&%ok:Pd!Pe!ڰPf!Pg!Ph!ŰPi!͐Pj!Pk!ٰPl!Pm!Pn!Po!Pp"Pq& % nextKeyViewPr"ͰqPs"Pt&%keyTypePu#Pv&%ok:Pw&gorm-1.3.1/Palettes/0Menus/GormMenuItemAttributesInspector.gorm/data.info0000644000175000017500000000027014327003123025451 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/0Menus/GormMenuItemAttributesInspector.gorm/data.classes0000644000175000017500000000061114327003123026152 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:" ); Super = NSObject; }; GormMenuItemAttributesInspector = { Actions = ( ); Outlets = ( tagText, shortCut, titleText, altBtn, ctrlBtn, shiftBtn, cmdBtn, keyPopup, keyType ); Super = IBInspector; }; }gorm-1.3.1/Palettes/0Menus/GNUmakefile0000644000175000017500000000304114327003123016463 0ustar heronheron# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make PALETTE_NAME = 0Menus 0Menus_PALETTE_ICON = MenusPalette 0Menus_PRINCIPAL_CLASS = MenusPalette 0Menus_OBJC_FILES = \ GormMenuEditor.m \ GormNSMenu.m \ GormNSMenuView.m \ GormMenuItemAttributesInspector.m\ GormMenuAttributesInspector.m\ MenusPalette.m \ inspectors.m 0Menus_RESOURCE_FILES = MenusPalette.tiff \ GormMenuDrag.tiff \ GormMenuAttributesInspector.gorm \ GormMenuItemAttributesInspector.gorm \ palette.table 0Menus_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/palette.make -include GNUmakefile.postamble gorm-1.3.1/Palettes/0Menus/GormMenuDrag.tiff0000644000175000017500000000071414327003123017616 0ustar heronheronMM* P8$ B`76 h@pJ)@8b GY^6UJeT.xDS9A2&q=iCUN屹|:c<4YJTT*5.%MU:VDlu]vh\nW;" P8$ B`76 ~@tD?шn3GRzK$ɥ2*S |+6L\cϨ4 D$tjLqKM(eBQԩUv_W` 00 (p ' 'gorm-1.3.1/Palettes/0Menus/GormNSMenu.m0000644000175000017500000001212114327003123016560 0ustar heronheron/* GormNSMenu.m Copyright (C) 2002 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2002 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNSMenuView.h" #include "GormNSMenu.h" @interface GormNSMenuWindow : NSPanel @end @implementation GormNSMenuWindow - (BOOL)canBecomeMainWindow { return NO; } - (BOOL)canBecomeKeyWindow { return YES; } - (void)resignMainWindow { [super resignMainWindow]; if ([[self menu] _ownedByPopUp]) { [[NSRunLoop currentRunLoop] performSelector: @selector(close) target: [self menu] argument: nil order: 500000 modes: [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSModalPanelRunLoopMode, NSEventTrackingRunLoopMode, nil]]; } } - (void) sendEvent: (NSEvent*)theEvent { NSEventType type; type = [theEvent type]; if (type == NSLeftMouseDown) { [self makeMainWindow]; [self makeKeyWindow]; } [super sendEvent: theEvent]; } - (void) dealloc { [self setMenu: nil]; [super dealloc]; } @end @interface NSMenu (GormNSMenuPrivate) - (NSString*) _locationKey; @end @implementation GormNSMenu + (GormNSMenu *) menuWithMenu: (NSMenu *)menu { GormNSMenu *newMenu = [[GormNSMenu alloc] init]; NSEnumerator *en = [[menu itemArray] objectEnumerator]; NSMenuItem *item = nil; while((item = [en nextObject]) != nil) { [newMenu addItem: [item copy]]; } [newMenu setTitle: [menu title]]; return newMenu; } - (id) initWithTitle: (NSString *)aTitle { if((self = [super initWithTitle: aTitle]) != nil) { [self setMenuRepresentation: [[GormNSMenuView alloc] initWithFrame: NSZeroRect]]; } return self; } - (id) initWithCoder: (NSCoder *)coder { if((self = [super initWithCoder: coder]) != nil) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc addObserver: self selector: @selector(handleNotification:) name: IBSelectionChangedNotification object: nil]; } return self; } - (void) handleNotification: (NSNotification *)notification { id object = [notification object]; if(object != nil) { // don't call, unless it does respond... if([(id)object respondsToSelector: @selector(editedObject)]) { id edited = [object editedObject]; if(self != edited && [self _ownedByPopUp]) { if([[self window] isVisible]) { [self close]; } } } else { // Close anyway if the editor doesn't respond. if([[self window] isVisible]) { [self close]; } } } } - (BOOL) performKeyEquivalent: (NSEvent*)theEvent { return NO; } - (NSPanel*) _createWindow { NSPanel *win = [[GormNSMenuWindow alloc] initWithContentRect: NSZeroRect styleMask: NSBorderlessWindowMask backing: NSBackingStoreBuffered defer: YES]; [win setLevel: NSSubmenuWindowLevel]; [win setExcludedFromWindowsMenu: YES]; return win; } - (NSString *)className { return @"NSMenu"; } #ifdef DEBUG // These methods are purely for debugging purposes... /* - (void) display { NSDebugLog(@"In GormNSMenu display..."); [super display]; } - (id) retain { NSLog(@"Being retained... %d: %@", [self retainCount], self); return [super retain]; } - (oneway void) release { NSLog(@"Being released... %d: %@", [self retainCount], self); [super release]; } */ #endif - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self name: IBSelectionChangedNotification object: nil]; [super dealloc]; } // Override -autoenablesItems to disable menu validation for design menus in // Gorm. This avoids disabling menu items by default in Gorm documents. - (BOOL) realAutoenablesItems { return [super autoenablesItems]; } - (BOOL) autoenablesItems { return NO; } - (NSString*) _locationKey { if ([self supermenu] == nil) { if ([NSApp mainMenu] == self) { return @"\033"; /* Root menu. */ } else { return nil; /* Unused menu. */ } } else if ([[self supermenu] supermenu] == nil) { return [NSString stringWithFormat: @"\033%@", [self title]]; } else { return [[[self supermenu] _locationKey] stringByAppendingFormat: @"\033%@", [self title]]; } } @end @implementation NSMenu (GormNSMenu) + (id) allocSubstitute { return [GormNSMenu alloc]; } @end gorm-1.3.1/Palettes/0Menus/GormNSMenu.h0000644000175000017500000000212514327003123016556 0ustar heronheron/* GormNSMenu.h Copyright (C) 2002 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2002 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNSMenu_h #define INCLUDED_GormNSMenu_h #include @interface GormNSMenu : NSMenu + (GormNSMenu *) menuWithMenu: (NSMenu *)menu; - (BOOL) realAutoenablesItems; @end #endif gorm-1.3.1/Palettes/0Menus/GNUmakefile.preamble0000644000175000017500000000130514327003123020252 0ustar heronheron# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) 0Menus_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.3.1/Palettes/0Menus/GormMenuAttributesInspector.m0000644000175000017500000001013014327003123022253 0ustar heronheron/* GormMenuAttributesInspector.m Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 Author: Gregory John Casamento Date: 2003 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include #include "GormMenuAttributesInspector.h" #include "GormNSMenu.h" #define WINDOWSMENUTAG 0 #define SERVICESMENUTAG 1 #define RECENTDOCUMENTSMENUTAG 2 #define NORMALMENUTAG 3 @implementation GormMenuAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormMenuAttributesInspector" owner: self] == NO) { NSLog(@"Could not gorm GormMenuAttributesInspector"); return nil; } return self; } -(void) ok:(id) sender { if ( sender == titleText ) { [object setTitle:[titleText stringValue]]; } if ( sender == autoenable ) { BOOL flag; // look at the values passed back in the matrix. flag = ([autoenable state] == NSOnState) ? YES : NO; [object setAutoenablesItems: flag]; } else if ( sender == menuType ) { GormDocument *doc = (GormDocument *)[(id)NSApp activeDocument]; int tag = [[menuType selectedCell] tag]; switch ( tag ) { case WINDOWSMENUTAG: [doc setWindowsMenu:object]; if ( [doc servicesMenu] == object ) [doc setServicesMenu: nil]; else if ( [doc recentDocumentsMenu] == object ) [doc setRecentDocumentsMenu: nil]; break; case SERVICESMENUTAG: [doc setServicesMenu: object]; if ( [doc windowsMenu] == object ) [doc setWindowsMenu: nil]; else if ( [doc recentDocumentsMenu] == object ) [doc setRecentDocumentsMenu: nil]; break; case NORMALMENUTAG: if ( [doc windowsMenu] == object ) [doc setWindowsMenu: nil]; if ( [doc servicesMenu] == object ) [doc setServicesMenu: nil]; break; case RECENTDOCUMENTSMENUTAG: [doc setRecentDocumentsMenu:object]; if ( [doc servicesMenu] == object ) [doc setServicesMenu: nil]; else if ( [doc windowsMenu] == object ) [doc setWindowsMenu: nil]; break; } } [super ok:sender]; } - (void) revert: (id)sender { GormDocument *doc; if ( object == nil ) return; doc = (GormDocument *)[(id)NSApp activeDocument]; [titleText setStringValue: [object title]]; [autoenable setState: ([object realAutoenablesItems]?NSOnState:NSOffState)]; // set up the menu type matrix... if([doc windowsMenu] == object) { [menuType selectCellAtRow:WINDOWSMENUTAG column: 0]; } else if([doc servicesMenu] == object) { [menuType selectCellAtRow:SERVICESMENUTAG column: 0]; } else if([doc recentDocumentsMenu] == object) { [menuType selectCellAtRow:RECENTDOCUMENTSMENUTAG column: 0]; } else { [menuType selectCellAtRow:NORMALMENUTAG column: 0]; } } /* delegate method used for menu title */ - (void)controlTextDidChange:(NSNotification *)aNotification { GormDocument *doc = (GormDocument *)[(id)NSApp activeDocument]; [object setTitle: [titleText stringValue]]; [doc touch]; } @end gorm-1.3.1/Palettes/4Data/0000755000175000017500000000000014360746517014223 5ustar heronherongorm-1.3.1/Palettes/4Data/GormNSDateFormatterInspector.gorm/0000755000175000017500000000000014327003124022663 5ustar heronherongorm-1.3.1/Palettes/4Data/GormNSDateFormatterInspector.gorm/objects.gorm0000644000175000017500000002004714327003124025205 0ustar heronheronGNUstep archive000f4240:00000025:000000b4:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x   @p @x J-0 &0 %  @p @x   @p @x J0 &0 % @ @Y @o @K  @o @KJ0 &0 % @ @ @m @<  @m @<J0 &01 NSTextField1 NSControl% @ @ @l @6  @l @6J0 &%01NSTextFieldCell1 NSActionCell1NSCell0&%Text01NSFont% A@&&&&&&JJ &&&&&&&I01NSColor0&% NSCalibratedRGBColorSpace ? ? ? ? ?0 ?00& % Custom Format&&&&&&JJ &&&&&&&I00&% NSNamedColorSpace0&% System0&% windowBackgroundColor0 ? @ @%%0 % @ @G @o @I  @o @IJ0 &0 % @ @ @m @8  @m @8J0! &0"1NSButton% @D @ @c @0  @c @0J0# &%0$1 NSButtonCell0%&%Allows natural language0&1NSImage0'1NSMutableString&%GSSwitch&&&&&&JJ&&&&&&&I0(&(0)0*&%GSSwitchSelected&&& &&0+0,&%Options&&&&&&JJ &&&&&&&I0- ? @ @%%0.% @S@ @$ @\ @9  @\ @9J0/ &%0001&%Detach Formatter&&&&&&JJ&&&&&&&I((&&& &&021 NSScrollView% @ @d  @o @k@  @o @k@J03 &041 NSClipView% @5 @8 @l @h  @l @hJ051 NSTableView%  @l @h  @l @hJ406 &%07(08%&&&&&&JJ&&&&&&&09 &0:1 NSTableColumn0;&%format B A GP0<1NSTableHeaderCell0=&%Format0>% &&&&&&JJ &&&&&&&I0?0@&% controlShadowColor0A0B&% windowFrameTextColor0C0D&%nine8D&&&&&&JJ &&&&&&&I0E0F&%System0G&%textBackgroundColor0HF0I& % textColor0J0K&%date B A GP0L0M&%Date>&&&&&&JJ &&&&&&&I?A0ND8D&&&&&&JJ &&&&&&&IEH0O0P& %  gridColor0Q0R&% controlBackgroundColor0S1NSTableHeaderView%  @l @6  @l @6J0T% @5 @ @l @6  @l @6JS0U &S0V0W& %  controlColor0X &0Y1GSTableCornerView% @ @ @3 @6  @3 @6J0Z &%% A @ @0[ &0\ &5Q0]1 NSScroller% @ @7 @2 @h   @2 @h J0^ &%0_(8&&&&&&JJ&&&&&&&J22 _doScroll:v24@0:8@16TY4I A A A A ]T0`0a&% Title0b% A &&&&&&JJ&&&&&&& %%0c&%Window0d&!%!DateFormater Attributes Inspectord ? ? @Ç @|I&   @ @0e &0f &0g1!NSMutableDictionary1" NSDictionary&0h&%Button1.0i& % Inspector0j&%View(0) 0k&%TextFieldCell(0)0l&% NSOwner0m&%GormDateFormatterInspector0n&%TableColumn(0)J0o&%Box10p&%View(1) 0q& % TextField0r&%GormNSTableView50s& % TableColumn10t0u&%column2 C1 A GP0v0w&% >&&&&&&JJ &&&&&&&I?A0x0y&%nine8y&&&&&&JJ &&&&&&&IEH0z& % ButtonCell(0)$0{& % TableColumn:0|&%View(2) 0}&%Cell(0)70~&%Button"0& % ScrollView20&%Box 0&%Box(0)0& % ButtonCell(1)00 &$$01#NSNibConnectoril0#0#qp0#o0#~|0#h01$NSNibOutletConnectorli0&%window0$lq0& % formatField0$l~0&%languageSwitch0$lh0& % detachButton01%NSNibControlConnectorql0&%ok:0%~l0%hl0#0#r0#{r0#s0$lr0& % formatTable0$rl0& % dataSource0$rl0&%delegate0$q~0& % nextKeyView0$~h0$hq0$ir0&%initialFirstResponder0#0#j0#p0#kq0%k0&% NSFirst0&% ok:0#|o0#z~0%z0#h0%0#}r0#nr0!&gorm-1.3.1/Palettes/4Data/GormNSDateFormatterInspector.gorm/data.info0000644000175000017500000000027014327003124024450 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/4Data/GormNSDateFormatterInspector.gorm/data.classes0000644000175000017500000000036114327003124025153 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormDateFormatterInspector = { Actions = ( ); Outlets = ( formatTable, formatField, languageSwitch, detachButton ); Super = IBInspector; }; }gorm-1.3.1/Palettes/4Data/GormTextViewEditor.m0000644000175000017500000001006014327003124020130 0ustar heronheron/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include "GormTextViewEditor.h" @implementation GormTextViewEditor - (id) initWithObject: (id)anObject inDocument: (id)aDocument { if((self = [super initWithObject: anObject inDocument: aDocument]) != nil) { id sv = [anObject enclosingScrollView]; [self registerForDraggedTypes: [NSArray arrayWithObjects: IBViewPboardType, GormLinkPboardType, IBFormatterPboardType, nil]]; // subscribe to frame changes of the superview... [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: NSViewFrameDidChangeNotification object: sv]; // make the view post frame changes... [[textView enclosingScrollView] setPostsFrameChangedNotifications: YES]; } return self; } - (void) dealloc { [[textView enclosingScrollView] setPostsFrameChangedNotifications: NO]; [[NSNotificationCenter defaultCenter] removeObserver: self]; [super dealloc]; } - (BOOL) activate { if ([super activate]) { if ([_editedObject isKindOfClass: [NSScrollView class]]) { textView = [(NSScrollView *)_editedObject documentView]; } else { textView = (NSTextView *)_editedObject; } return YES; } return NO; } - (void) deactivate { [super deactivate]; [[textView enclosingScrollView] setPostsFrameChangedNotifications: NO]; } - (NSDragOperation) draggingEntered: (id)sender { return [self draggingUpdated: sender]; } - (NSDragOperation) draggingUpdated: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { id destination = nil; NSView *hitView = [[textView enclosingScrollView] hitTest: [[[textView enclosingScrollView] superview] convertPoint: [sender draggingLocation] fromView: nil]]; if ((hitView == textView) || (hitView == [textView superview])) destination = textView; if (destination == nil) destination = _editedObject; [NSApp displayConnectionBetween: [NSApp connectSource] and: destination]; return NSDragOperationLink; } else { return NSDragOperationNone; } } - (BOOL) performDragOperation: (id)sender { return ([self draggingUpdated: sender] == NSDragOperationLink); } - (void) handleNotification: (id) notification { id view = [notification object]; NSRect frame = [view frame]; NSSize size; if([view hasVerticalScroller]) { NSSize s = [[view verticalScroller] frame].size; frame.size.width -= (s.width + 5); } if([view hasHorizontalScroller]) { NSSize s = [[view horizontalScroller] frame].size; frame.size.height -= (s.height + 5); } size = frame.size; [textView setMinSize: size]; [textView setFrame: frame]; } @end gorm-1.3.1/Palettes/4Data/GormNSImageViewInspector.gorm/0000755000175000017500000000000014327003124021777 5ustar heronherongorm-1.3.1/Palettes/4Data/GormNSImageViewInspector.gorm/objects.gorm0000644000175000017500000003733414327003124024330 0ustar heronheronGNUstep archive000f4240:0000001e:00000149:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ0 &0 %  @p @x  @p @xJ0 &0 % @ @r @o @K  @o @KJ 0 &0 % @ @ @m @<  @m @<J0 &01 NSTextField1 NSControl% @ @ @l @6  @l @6J0 &%01NSTextFieldCell1 NSActionCell1NSCell0&%Text01NSFont% A@&&&&&&JJ &&&&&&&I01NSColor0&% NSCalibratedRGBColorSpace ? ? ? ? ?0 ?00&%Icon&&&&&&JJ &&&&&&&I00&% NSNamedColorSpace0&% System0&% windowBackgroundColor0 ? @ @%%0 % @M @b` @b @M  @b @MJ"0 &0 % @ @ @a @@  @a @@J0! &0"1NSMatrix% @ @ @` @9  @` @9J0# &%0$0%&&&&&&&JJ&&&&&&&I% @9 @9 ? ?0& ?* ?* ?* ?* ?&0'& % NSButtonCell0(1 NSButtonCell0)&%Button&&&&&&JJ&&&&&&&I%&&& &&%%0* &0+%0,1NSImage0-& % noBorder_nib&&&&&&JJ&&&&&&&I%&&& &&0.%0/00&%photoframe_nib&&&&&&JJ&&&&&&&I%&&& &&01%0203& % bezel_nib&&&&&&JJ&&&&&&&I%&&& &&04%0506& % ridge_nib&&&&&&JJ&&&&&&&I%&&& &&07%0809& % button_nib&&&&&&JJ&&&&&&&I%&&& &&2 ok:v24@0:8@16+0:0;&%Border&&&&&&JJ &&&&&&&I0< ? @ @%%0= % @M @@ @b @[  @b @[J0> &0? % @ @ @b` @V@  @b` @V@J0@ &0A% @A @  @S@ @S@  @S@ @S@J0B &%0C%&&&&&&JJ&&&&&&&I% @9 @9 ? ?&&0D& % NSButtonCell0E0F&%Button&&&&&&JJ&&&&&&&I&&& &&%%0G &  0H%0I0J&%iconTopLeft_nib&&&&&&JJ&&&&&&&I%&&& &&0K%0L0M& % iconTop_nib&&&&&&JJ&&&&&&&I%&&& &&0N%0O0P&%iconTopRight_nib&&&&&&JJ&&&&&&&I%&&& &&0Q%0R0S&%iconCenterLeft_nib&&&&&&JJ&&&&&&&I%&&& &&0T%0U0V&%iconCenter_nib&&&&&&JJ&&&&&&&I%&&& &&0W%0X0Y&%iconCenterRight_nib&&&&&&JJ&&&&&&&I%&&& &&0Z%0[0\&%iconBottomLeft_nib&&&&&&JJ&&&&&&&I%&&& &&0]%0^0_&%iconBottom_nib&&&&&&JJ&&&&&&&I%&&& &&0`%0a0b&%iconBottomRight_nib&&&&&&JJ&&&&&&&I%&&& &&]0c0d& % Alignment&&&&&&JJ &&&&&&&I0e ? %%0f % @ @j@ @` @U  @` @UJ 0g &0h % @ @ @\ @N  @\ @NJ0i &0j% @ @ @Y @L  @Y @LJ0k &%0l%&&&&&&JJ&&&&&&&I% @Y @2 ? ?0m0n&% controlBackgroundColor0o ?* ?* ?* ?* ?0p& % NSButtonCell0q0r&%Radio0s0t1NSMutableString&%GSRadio&&&&&&JJ&&&&&&&I%0u0v&%GSRadioSelected&&& &&%%0w &0x0y&%Proportionallys&&&&&&JJ&&&&&&&I%u&&& &&0z0{&%To Fits&&&&&&JJ&&&&&&&I%u&&& &&0|0}&%Nones&&&&&&JJ&&&&&&&I%u&&& &&z0~0&%Scaling&&&&&&JJ &&&&&&&I0 ? @ @%%0 % @b @j@ @\ @U  @\ @UJ 0 &0 % @ @ @Y @N  @Y @NJ0 &01NSButton% @. @9 @Q @1  @Q @1J0 &%00&%Editable00&%GSSwitch&&&&&&JJ&&&&&&&I%00&%GSSwitchSelected&&& &&00&%Options&&&&&&JJ &&&&&&&I0 ? @ @%%00&% Title0% A &&&&&&JJ&&&&&&& %%0&%Window0&%Image Attributes Inspector ? ? @Ç @|I&   @ @p0 &0 &01NSMutableDictionary1 NSDictionary&/0&% NSOwner0&"%"GormNSImageViewAttributesInspector0& % ActionCell(0)$0& % ButtonCell(6)K0&%Button0& % Inspector0&%ButtonCell(12)]0&%TextFieldCell(0)0&%ButtonCell(16)|0& % ButtonCell(1).0&%View(3)?0& % ButtonCell(5)H0&%ButtonCell(11)Z0&%Box 0&%Box70& % ButtonCell(9)T0&%Box6f0& % TextField30&%ButtonCell(15)z0& % ButtonCell(0)+0&%View(2) 0&%Box50 % @S @S @J @F  @J @FJ0 &0 % @ @ @C @2  @C @2J0 &00&%Box&&&&&&JJ &&&&&&&I0 ?* ?* ?* ?* ?0 ? @ @%%0& % TextField20% @$ @_ @L @5  @L @5J0 &%00&%Text&&&&&&JJ &&&&&&&I0 ? ? ? ? ?0 ?0& % ButtonCell(4)70&%Box4=0& % TextField10% @$ @_ @L @5  @L @5J0 &%0±0ñ&%Text&&&&&&JJ &&&&&&&I0ı ? ? ? ? ?0ű ?0Ʊ& % ActionCell(2)l0DZ&%Box30ȱ % @S @S @J @F  @J @FJ0ɱ &0ʱ % @ @ @C @2  @C @2J0˱ &0̱0ͱ&%Box&&&&&&JJ &&&&&&&I0α ?* ?* ?* ?* ?0ϱ ? @ @%%0б&%Matrix2j0ѱ&%ButtonCell(10)W0ұ& % ButtonCell(8)Q0ӱ&%Box20Ա % @S @S @J @F  @J @FJ0ձ &0ֱ % @ @ @C @2  @C @2J0ױ &0ر0ٱ&%Box&&&&&&JJ &&&&&&&I0ڱ ?* ?* ?* ?* ?0۱ ? @ @%%0ܱ&%Matrix1A0ݱ&%ButtonCell(14)x0ޱ&%Box10߱&%View(1) 0&%Box(0)0& % ButtonCell(3)40&%View(5)0& % ActionCell(1)C0& % ButtonCell(7)N0&%ButtonCell(13)`0&%View(0) 0& % TextField0% @$ @_ @L @5  @L @5J0 &%00&%Text&&&&&&JJ &&&&&&&I0 ? ? ? ? ?0 ?0&%Matrix"0&%ButtonCell(17)0& % ButtonCell(2)10&%View(4)h0 &BB01NSNibConnector00簝000ߐ0ް00Ӱ0ǰ00ܰ0PPаPPP1NSNibOutletConnectorP& % iconFieldPP& % borderMatrixPP &%alignmentMatrixP P & % scalingMatrixP P &%editableSwitchPP&%windowP1NSNibControlConnectorP&%ok:PܰPаPPP& % nextKeyViewPаPP&%initialFirstResponderPP&%delegatePP&%ok:PPP ߰P!P"P#&% NSFirstP$&% ok:P%ސP&P'P(P)P*P+P,P-ܐP.ܐP/ܐP0ҰܐP1ܐP2ѰܐP3ܐP4ܐP5ܐP6ܐP7񰨐P8ݰАP9АP:АP;ưАP<ⰦP=ﰜP>#$P?P@& % nextKeyViewPA@PBܰ@PC&gorm-1.3.1/Palettes/4Data/GormNSImageViewInspector.gorm/data.info0000644000175000017500000000027014327003124023564 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/4Data/GormNSImageViewInspector.gorm/data.classes0000644000175000017500000000041714327003124024271 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormNSImageViewAttributesInspector = { Actions = ( ); Outlets = ( alignmentMatrix, borderMatrix, editableSwitch, iconField, scalingMatrix ); Super = IBInspector; }; }gorm-1.3.1/Palettes/4Data/GormTextViewAttributesInspector.h0000644000175000017500000000321614327003124022717 0ustar heronheron/* GormTextViewAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormTextViewAttributesInspector_h #define INCLUDED_GormTextViewAttributesInspector_h #include @class NSColorWell; @class NSMatrix; @interface GormTextViewAttributesInspector : IBInspector { NSColorWell *backgroundColorWell; NSColorWell *textColorWell; NSMatrix *borderMatrix; /* options */ NSButton *selectableButton; NSButton *editableButton; NSButton *multipleFontsButton; NSButton *graphicsButton; NSButton *undoButton; NSButton *findPanelButton; } @end #endif /* INCLUDED_GormTextViewAttributesInspector_h */ gorm-1.3.1/Palettes/4Data/GormTextViewEditor.h0000644000175000017500000000247314327003124020134 0ustar heronheron/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormTextViewEditor_h #define INCLUDED_GormTextViewEditor_h #include #include #include #include @interface GormTextViewEditor : GormViewEditor { NSTextView *textView; } @end #endif gorm-1.3.1/Palettes/4Data/palette.table0000644000175000017500000000016714327003124016655 0ustar heronheron{ NOTE = "Automatically generated, do not edit!"; NibFile = ""; Class = "DataPalette"; Icon = "DataPalette"; } gorm-1.3.1/Palettes/4Data/GormTextViewAttributesInspector.m0000644000175000017500000000730014327003124022722 0ustar heronheron/* GormTextViewAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include // #warning GNUstep bug ? #include #include "GormTextViewAttributesInspector.h" @implementation GormTextViewAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSTextViewInspector" owner: self] == NO) { NSLog(@"Could not gorm GormTextViewInspector"); return nil; } return self; } - (void) setObject: (id)anObject { [super setObject: anObject]; [self revert:anObject]; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { BOOL isScrollView; id scrollView; scrollView = [[object superview] superview]; isScrollView = [scrollView isKindOfClass: [NSScrollView class]]; if (sender == backgroundColorWell) { [object setBackgroundColor: [sender color]]; } else if (sender == textColorWell) { [object setTextColor: [sender color]]; } else if ( (sender == borderMatrix) && isScrollView) { [scrollView setBorderType: [[sender selectedCell] tag]]; [scrollView setNeedsDisplay: YES]; } /* options */ else if ( sender == selectableButton ) { [object setSelectable: [selectableButton state]]; } else if ( sender == editableButton ) { [object setEditable: [editableButton state]]; } else if ( sender == multipleFontsButton ) { [object setRichText:[multipleFontsButton state]]; } else if ( sender == graphicsButton ) { [object setImportsGraphics:[graphicsButton state]]; } else if ( sender == undoButton ) { [object setAllowsUndo:[undoButton state]]; } else if ( sender == findPanelButton ) { [object setUsesFindPanel:[findPanelButton state]]; } [super ok:sender]; } /* Sync from object ( NSTextView ) changes to the inspector */ -(void) revert:(id) sender { BOOL isScrollView; id scrollView; if (object == nil) return; scrollView = [[object superview] superview]; isScrollView = [scrollView isKindOfClass: [NSScrollView class]]; [backgroundColorWell setColorWithoutAction: [object backgroundColor]]; [textColorWell setColorWithoutAction: [object textColor]]; if (isScrollView) [borderMatrix selectCellWithTag: [scrollView borderType]]; /* options*/ [selectableButton setState: [object isSelectable]]; [editableButton setState: [object isEditable]]; [multipleFontsButton setState: [object isRichText]]; [graphicsButton setState: [object importsGraphics]]; [undoButton setState: [object allowsUndo]]; [findPanelButton setState: [object usesFindPanel]]; [super revert:sender]; } @end gorm-1.3.1/Palettes/4Data/GormTextViewSizeInspector.m0000644000175000017500000000234714327003124021514 0ustar heronheron/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormTextViewSizeInspector.h" @implementation GormTextViewSizeInspector - (void) setObject: (id)anObject { id scrollView; scrollView = [anObject enclosingScrollView]; [super setObject: scrollView]; } @end gorm-1.3.1/Palettes/4Data/GormNumberFormatterAttributesInspector.h0000644000175000017500000000270114327003124024252 0ustar heronheron/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNumberFormatterAttributesInspector_h #define INCLUDED_GormNumberFormatterAttributesInspector_h #include @interface GormNumberFormatterAttributesInspector : IBInspector { id addThousandSeparatorSwitch; id commaPointSwitch; id formatForm; id formatTable; id localizeSwitch; id negativeField; id negativeRedSwitch; id positiveField; id detachButton; } @end #endif gorm-1.3.1/Palettes/4Data/inspectors.m0000644000175000017500000000355314327003124016557 0ustar heronheron/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include @implementation NSTextView (IBObjectAdditions) - (NSString*) sizeInspectorClassName { return @"GormTextViewSizeInspector"; } - (NSString*) inspectorClassName { return @"GormTextViewAttributesInspector"; } - (NSString*) editorClassName { return @"GormTextViewEditor"; } @end @implementation NSDateFormatter (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormDateFormatterAttributesInspector"; } @end @implementation NSNumberFormatter (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormNumberFormatterAttributesInspector"; } @end /* IBObjectAdditions category */ @implementation NSImageView (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormImageViewAttributesInspector"; } @end gorm-1.3.1/Palettes/4Data/GormImageViewAttributesInspector.h0000644000175000017500000000302414327003124023012 0ustar heronheron/* GormImageViewAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormImageViewAttributesInspector_h #define INCLUDED_GormImageViewAttributesInspector_h #include @class NSButton; @class NSMatrix; @class NSTextField; @interface GormImageViewAttributesInspector : IBInspector { NSTextField *iconField; NSMatrix *borderMatrix; NSMatrix *alignmentMatrix; NSMatrix *scalingMatrix; NSButton *editableSwitch; } @end #endif /* INCLUDED_GormImageViewAttributesInspector_h */ gorm-1.3.1/Palettes/4Data/GormNSComboBoxInspector.gorm/0000755000175000017500000000000014327003124021632 5ustar heronherongorm-1.3.1/Palettes/4Data/GormNSComboBoxInspector.gorm/objects.gorm0000644000175000017500000004413214327003124024155 0ustar heronheronGNUstep archive000f4240:00000028:00000186:00000002:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @yJI @8 @P01 NSView% ? @" @q @y  @q @yJ01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 % @G @s @e@ @T@  @e@ @T@J0 &0 % @ @ @c @K  @c @KJ0 &01 NSColorWell1 NSControl% @* @2 @J @>  @J @>J0 &%01NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&01NSColor0&% NSCalibratedRGBColorSpace ? ? ? ? ?2 ok:v24@0:8@160% @V @2 @J @>  @J @>J0 &%0&&&&&&JJ&&&&&&&00&% NSCalibratedWhiteColorSpace ?01 NSTextField%  @T @,  @T @,J0 &%01NSTextFieldCell1 NSActionCell0& % Background&&&&&&JJ &&&&&&&I0 ? ? ? ? ?0  ?0!% @R  @T @,  @T @,J0" &%0#0$&%Text&&&&&&JJ &&&&&&&I0% ? ? ? ? ?0& ?0'0(&%Colors&&&&&&JJ &&&&&&&I0)0*&% NSNamedColorSpace0+&% System0,&% windowBackgroundColor0- ? @ @%%0. % @G @pp @e@ @J  @e@ @JJ0/ &00 % @ @ @c @;  @c @;J01 &021NSMatrix% @( @ @` @9  @` @9J03 &%04&&&&&&JJ&&&&&&&I% @9 @9 ? ?05 ?* ?* ?* ?* ?506& % NSButtonCell071 NSButtonCell08&%Button&&&&&&JJ&&&&&&&I&&& &&%%09 &0:0;1NSImage0<& % leftalign_nib&&&&&&JJ&&&&&&&I&&& &&0=0>0?&%centeralign_nib&&&&&&JJ&&&&&&&I&&& &&0@0A0B&%rightalign_nib&&&&&&JJ&&&&&&&I&&& &&0C0D0E&%justifyalign_nib&&&&&&JJ&&&&&&&I&&& &&0F0G0H&%naturalalign_nib&&&&&&JJ&&&&&&&I&&& &&:0I0J& % Alignment&&&&&&JJ &&&&&&&I)0K ? @ @%%0L % @A @b @h` @[  @h` @[J0M &0N % @ @ @f @U  @f @UJ0O &0P% @ @ @` @2  @` @2J0Q &%0R0S&%Number of Visible ItemsS&&&&&&JJ &&&&&&&I0T*0U&%System0V&%textBackgroundColor0W*U0X& % textColor0Y% @b @ @9 @6  @9 @6J0Z &%0[&&&&&&JJ &&&&&&&ITW0\1NSButton% @A @P @_@ @0  @_@ @0J0] &%0^0_&%Editable0`0a1NSMutableString&%GSSwitch0b%&&&&&&JJ&&&&&&&I0c0d&%GSSwitchSelected&&& &&0e% @A @G @_@ @0  @_@ @0J0f &%0g0h& % Selectable`b&&&&&&JJ&&&&&&&Ic&&& &&0i% @A @< @_@ @0  @_@ @0J0j &%0k0l&%Uses Data Source`b&&&&&&JJ&&&&&&&Ic&&& &&0m0n&%Options&&&&&&JJ &&&&&&&I)0o ? @ @%%0p % @ @ @o @a`  @o @a`J0q &0r % @ @ @m @\@  @m @\@J0s &0t% @ @[ @6  @[ @6J0u &%0v&&&&&&JJ &&&&&&&ITW0w% @] ? @L @7  @L @7J0x &%0y0z&%Add&&&&&&JJ&&&&&&&I&&& &&0{% @f ? @N @7  @N @7J0| &%0}0~&%Remove&&&&&&JJ&&&&&&&I&&& &&01 NSScrollView% @= @m @U  @m @UJ0 &01 NSClipView% @5 @8 @j @M  @j @MJ01 NSTableView%  @j @e`  @j @e`J0 &%0b&&&&&&JJ&&&&&&&0 &01 NSTableColumn0&%column1 CW A GP01NSTableHeaderCell0&%Titles0% &&&&&&JJ &&&&&&&I0*+0&% controlShadowColor0*+0&% windowFrameTextColor0b&&&&&&JJ &&&&&&&ITW0*+0& %  gridColor0*+0&% controlBackgroundColor01 NSTableHeaderView%  @j @6  @j @6J0% @5 @ @j @6  @j @6J0 &0 &01!GSTableCornerView% @ @ @3 @6  @3 @6J0 &%% A @ @0 &0 &01" NSScroller% @ @7 @2 @M  @2 @MJ0 &%0b&&&&&&JJ&&&&&&&J2 _doScroll:I A A A A 01# NSRulerView%    J0 &00&%Items&&&&&&JJ &&&&&&&I)0 ? @ @%%00&%Title0% A &&&&&&JJ&&&&&&& %%)0&%Window0&%ComboBox Attributes Inspector ? @" @Ç @|I&   @ @0 &0 &01$NSMutableDictionary1% NSDictionary&70& % ColorWell10& % ButtonCell(2)@0& % ButtonCell(7)k0& % TableColumn200&%column1 CZ A GP00&%Text&&&&&&JJ &&&&&&&I00&%quatre&&&&&&JJ &&&&&&&ITW0&%TextFieldCell(0)0&%Box(0)0& % ActionCell(0)40&%Box 0&%View(3)N0&%Button1{0&%TableColumn(0)0&%GormNSTableView0%  @Y @d   @Y @d J0 &%0&&&&&&JJ&&&&&&&0 &0±0ñ&%column1 B A GP0ı&&&&&&JJ &&&&&&&I0ű0Ʊ&%quatre&&&&&&JJ &&&&&&&ITW0DZ %  @Y @6  @Y @6J0ȱ &0ɱ!% @ @ @3 @6  @3 @6J0ʱ &%% A @ @0˱ &0̱& % TextField5Y0ͱ&%Box2L0α& % ButtonCell(0):0ϱ& % ButtonCell(5)^0б&%TextFieldCell(3)[0ѱ& % TextField0ұ% @S @` @T @,  @T @,J0ӱ &%0Ա0ձ&%Title&&&&&&JJ &&&&&&&I0ֱ ? ? ? ? ?0ױ ?0ر&%View(1) 0ٱ&%Button3e0ڱ&%Cell(1)0۱& % TableView(0)0ܱ& % TextField2!0ݱ& % TableColumn0ޱ& % Inspector0߱& % ButtonCell(3)C0& % ButtonCell(8)y0&%TextFieldCell(1)#0& % TableColumn100&%column2 BL A GP00&% &&&&&&JJ &&&&&&&I0*+0& %  controlColor00&%three&&&&&&JJ &&&&&&&ITW0&%View(4)r0&%TableColumn(1)00&%column2 BT A GP00&% &&&&&&JJ &&&&&&&I0b&&&&&&JJ &&&&&&&ITW0& % TextField4P0&%Box1.0& % ColorWell20& % ButtonCell(1)=0& % ButtonCell(6)g0& % TableColumn300&%column2 C A GP0&&&&&&JJ &&&&&&&I簍00&%four&&&&&&JJ &&&&&&&ITW0&%TextFieldCell(4)v0&%Buttonw0&%View(2)0P&%Button2\P&%Matrix2P&%Cell(2)P& % ScrollView(0)P& % TextField1P& % TextField6tP&%Box3pP&% NSOwnerP&!%!GormNSComboBoxAttributesInspectorP & % ButtonCell(9)}P & % ButtonCell(4)FP &%TextFieldCell(2)RP &%View(0) P &%Button4iP&%Cell(0)P& % TextField3P% @$ @_ @L @5  @L @5JP &%PP&%Text&&&&&&JJ &&&&&&&IP ? ? ? ? ?P ?P &XXP1&NSNibConnectorP&ؐP&ؐP&ѰސP&ؐP&ܰؐP&󰷐P&P&ͰP &P!&ސP"&P#&ݐP$&␐P%&P&&P'&򰺐P(&P)&P*&P+&̰P,1'NSNibOutletConnectorP-& % nextKeyViewP.'-P/'-P0'-P1'-P2'ްP3&%initialFirstResponderP4'P5& % addButtonP6'P7&%alignmentMatrixP8'P9&%backgroundColorWellP:'P;&%itemTxtP<'P=& % itemFieldP>'P?& % removeButtonP@'PA& % textColorWellPB'PC&%visibleItemsFormPD'PE&%windowPF1(NSNibControlConnectorPG&%ok:PH(GPI(GPJ'PK&%delegatePL(GPM(GPN'KPO&PP&ٰPQ& PR'PS& % nextKeyViewPT'SPU' SPV' SPW(PX&%ok:PY(XPZ( XP['P\&%editableP]'P^& % selectableP_' P`&%usesDataSourcePa&Pb&Pc&ېPd&ېPe&ېPf&Pg& Ph&ذPi&ڰPj&Pk&Pl&ܐPm&Pn&Po&Pp&Pq&Pr& Ps&Pt&͐Pu& Pv&а̐Pw&Px&ِPy& Pz&P{&P|&P}(P~&% NSFirstP&%ok:P& P( ~P'P& % itemTableViewP$&gorm-1.3.1/Palettes/4Data/GormNSComboBoxInspector.gorm/data.info0000644000175000017500000000027014327003124023417 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/4Data/GormNSComboBoxInspector.gorm/data.classes0000644000175000017500000000064414327003124024126 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormNSComboBoxAttributesInspector = { Actions = ( ); Outlets = ( alignmentMatrix, backgroundColorWell, itemField, optionMatrix, textColorWell, visibleItemsForm, itemTxt, addButton, removeButton, itemTableView, editable, selectable, usesDataSource ); Super = IBInspector; }; }gorm-1.3.1/Palettes/4Data/GormNSComboBoxAttributesInspector.h0000644000175000017500000000344314327003124023113 0ustar heronheron/* GormNSComboBoxAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormNSComboBoxAttributesInspector_h #define INCLUDED_GormNSComboBoxAttributesInspector_h #include @class NSMutableArray; @class NSMatrix; @class NSButton; @class NSColorWell; @class NSForm; @class NSTableView; @class NSTextField; @interface GormNSComboBoxAttributesInspector: IBInspector { NSMatrix *alignmentMatrix; NSColorWell *backgroundColorWell; NSForm *itemField; NSButton *editable; NSButton *selectable; NSButton *usesDataSource; NSColorWell *textColorWell; NSForm *visibleItemsForm; NSTableView *itemTableView; NSTextField *itemTxt; NSButton *addButton; NSButton *removeButton; @private NSMutableArray *itemsArray; } @end #endif gorm-1.3.1/Palettes/4Data/GormTextViewSizeInspector.h0000644000175000017500000000237414327003124021507 0ustar heronheron/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormTextViewSizeInspector_h #define INCLUDED_GormTextViewSizeInspector_h #include #include @interface GormTextViewSizeInspector : GormViewSizeInspector @end #endif gorm-1.3.1/Palettes/4Data/GormNumberFormatterAttributesInspector.m0000644000175000017500000002053114327003123024257 0ustar heronheron/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNumberFormatterAttributesInspector.h" /* this macro makes sure that the string contains a value, even if @"" */ #define VSTR(str) ({id _str = (id)str; (_str) ? (id)_str : (id)(@"");}) extern NSArray *predefinedNumberFormats; @implementation GormNumberFormatterAttributesInspector - (id) init { if ([super init] != nil) { if ([NSBundle loadNibNamed: @"GormNSNumberFormatterInspector" owner: self] == NO) { NSLog(@"Could not gorm GormNumberFormatterInspector"); return nil; } else { NSNumberFormatter *fmtr = [[NSNumberFormatter alloc] init]; [fmtr setFormat: [NSNumberFormatter defaultFormat]]; [[positiveField cell] setFormatter: fmtr]; [[negativeField cell] setFormatter: fmtr]; } } return self; } - (void) updateAppearanceFieldsWithFormat: (NSString *)format; { [[[positiveField cell] formatter] setFormat: format]; [[positiveField cell] setObjectValue: [NSDecimalNumber decimalNumberWithString: @"123456.789"]]; [[[negativeField cell] formatter] setFormat: format]; [[negativeField cell] setObjectValue: [NSDecimalNumber decimalNumberWithString: @"-123456.789"]]; } - (void) ok: (id)sender { NSString *positiveFmt, *negativeFmt, *zeroFmt, *fullFmt; NSString *minValue, *maxValue; NSCell *cell = [object cell]; NSNumberFormatter *fmtr = [cell formatter]; // Mark as changed... [[(id)NSApp activeDocument] touch]; if (sender == detachButton) { [cell setFormatter: nil]; [[(id)NSApp activeDocument] setSelectionFromEditor: nil]; } else { if (sender == formatTable) { int row; if ((row = [sender selectedRow]) != -1) { positiveFmt = [NSNumberFormatter positiveFormatAtIndex:row]; zeroFmt = [NSNumberFormatter zeroFormatAtIndex:row]; negativeFmt = [NSNumberFormatter negativeFormatAtIndex:row]; fullFmt = [NSNumberFormatter formatAtIndex:row]; // Update Appearance samples [self updateAppearanceFieldsWithFormat: fullFmt]; // Update editable format fields [[formatForm cellAtIndex:0] setStringValue: VSTR(positiveFmt)]; [[formatForm cellAtIndex:1] setStringValue: VSTR(zeroFmt)]; [[formatForm cellAtIndex:2] setStringValue: VSTR(negativeFmt)]; [fmtr setFormat:fullFmt]; } } else if (sender == formatForm) { NSUInteger idx; positiveFmt = [[sender cellAtIndex:0] stringValue]; zeroFmt = [[sender cellAtIndex:1] stringValue]; negativeFmt = [[sender cellAtIndex:2] stringValue]; minValue = [[sender cellAtIndex:3] stringValue]; maxValue = [[sender cellAtIndex:4] stringValue]; NSDebugLog(@"min,max: %@, %@", minValue, maxValue); fullFmt = [NSString stringWithFormat:@"%@;%@;%@", positiveFmt, zeroFmt, negativeFmt]; // If the 3 formats correspond to a predefined set then highlight it in // number Format table view above if ( (idx = [NSNumberFormatter indexOfFormat: fullFmt]) == NSNotFound) { [formatTable deselectAll:self]; } else { [formatTable selectRow:idx byExtendingSelection:NO]; NSDebugLog(@"format found at index: %d", (int)idx); } // Update Appearance samples [self updateAppearanceFieldsWithFormat: fullFmt]; [fmtr setFormat: fullFmt]; if (minValue != nil) { [fmtr setMinimum: [NSDecimalNumber decimalNumberWithString: minValue]]; } if (maxValue != nil) { [fmtr setMaximum: [NSDecimalNumber decimalNumberWithString: maxValue]]; } } else if (sender == localizeSwitch) { [fmtr setLocalizesFormat:([sender state] == NSOnState)]; } else if (sender == negativeRedSwitch) { NSMutableDictionary *newAttrs = [NSMutableDictionary dictionary]; [newAttrs setObject:[NSColor redColor] forKey:@"NSColor"]; [fmtr setTextAttributesForNegativeValues:newAttrs]; } else if (sender == addThousandSeparatorSwitch) { [fmtr setHasThousandSeparators:([sender state] == NSOnState)]; } else if (sender == commaPointSwitch) { [fmtr setDecimalSeparator: ([sender state] == NSOnState) ? @"," : @"."]; } } } - (void) revert: (id)sender { NSUInteger idx; NSNumberFormatter *fmtr = [[object cell] formatter]; // Format form NSDebugLog(@"format from object: %@", [fmtr format]); [[formatForm cellAtIndex:0] setStringValue: [fmtr positiveFormat]]; [[formatForm cellAtIndex:1] setStringValue: [fmtr zeroFormat]]; [[formatForm cellAtIndex:2] setStringValue: [fmtr negativeFormat]]; [[formatForm cellAtIndex:3] setObjectValue: [fmtr minimum]]; [[formatForm cellAtIndex:4] setObjectValue: [fmtr maximum]]; // If the string typed is a predefined one then highligh it in // Number Format table view above if ( (idx = [NSNumberFormatter indexOfFormat: [fmtr format]]) == NSNotFound) { [formatTable deselectAll:self]; } else { [formatTable selectRow:idx byExtendingSelection:NO]; } // Option switches [localizeSwitch setState: ([fmtr localizesFormat] == YES) ? NSOnState : NSOffState]; [addThousandSeparatorSwitch setState: ([fmtr hasThousandSeparators] == YES) ? NSOnState : NSOffState]; if ([[fmtr decimalSeparator] isEqualToString: @","] ) [commaPointSwitch setState: NSOnState]; else [commaPointSwitch setState: NSOffState]; if ( [[[fmtr textAttributesForNegativeValues] objectForKey: @"NSColor"] isEqual: [NSColor redColor] ] ) [negativeRedSwitch setState: NSOnState]; else [negativeRedSwitch setState: NSOffState]; } /* Positive/Negative Format table data source */ - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView { return [NSNumberFormatter formatCount]; } - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { if ( [[aTableColumn identifier] isEqualToString: @"positive"] ) { return [NSNumberFormatter positiveValueAtIndex:rowIndex]; } else if ( [[aTableColumn identifier] isEqualToString: @"negative"] ) { return [NSNumberFormatter negativeValueAtIndex:rowIndex]; } else { // Huuh?? Only 2 columns NSLog(@"Number table view doesn't known column identifier: %@", [aTableColumn identifier]); } return nil; } /* Positive/Negative Format table Delegate */ - (void)tableViewSelectionDidChange:(NSNotification *)aNotification { // When a row is selected update the rest of the inspector accordingly [self ok: formatTable]; } - (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn*)aTableColumn row:(NSInteger)rowIndex { NSNumberFormatter *fmtr; // Adjust the cell formatter before it is displayed fmtr = [[NSNumberFormatter alloc] init]; [fmtr setFormat: [NSNumberFormatter formatAtIndex:rowIndex]]; [aCell setFormatter: fmtr]; } @end gorm-1.3.1/Palettes/4Data/DataPalette.tiff0000644000175000017500000000070214327003124017243 0ustar heronheronII* P8$ JaT wߑ8TzG"@p/߀{9,flIDo3ő,ϦGf(}4E\ C_pqDeT?QdeiU*Va P8 Aన(?p>'E"xr7Ǥ2K$"R\M)%ٌe7Nf0 P (D##8(RO ' 'gorm-1.3.1/Palettes/4Data/GormNSComboBoxAttributesInspector.m0000644000175000017500000001127114327003124023116 0ustar heronheron/* GormComboBoxAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include "GormNSComboBoxAttributesInspector.h" /* IBObjectAdditions category */ @implementation NSComboBox (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormNSComboBoxAttributesInspector"; } @end @implementation GormNSComboBoxAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSComboBoxInspector" owner: self] == NO) { NSLog(@"Could not gorm GormNSComboBoxInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok:(id) sender { if (sender == backgroundColorWell) { [object setBackgroundColor: [sender color]]; } else if (sender == textColorWell) { [object setTextColor: [sender color]]; } else if (sender == alignmentMatrix) { [object setAlignment: (NSTextAlignment)[[sender selectedCell] tag]]; } if (sender == editable) { BOOL flag = ([sender state] == NSOnState) ? YES :NO; [[object cell] setEditable: flag]; } if (sender == selectable) { BOOL flag = ([sender state] == NSOnState) ? YES :NO; [[object cell] setSelectable: flag]; } if (sender == usesDataSource) { BOOL flag = ([sender state] == NSOnState) ? YES :NO; [[object cell] setUsesDataSource: flag]; } else if (sender == visibleItemsForm) { [object setNumberOfVisibleItems: [[sender cellAtIndex: 0] intValue]]; } else if (sender == itemField ) { // #warning To be done } else if (sender == addButton) { if ( ! [[itemTxt stringValue] isEqualToString:@""] ) { [object addItemWithObjectValue:[itemTxt stringValue]]; [itemTableView reloadData]; } } else if (sender == removeButton) { int selected = [itemTableView selectedRow]; if ( selected != -1 ) { [itemTxt setStringValue:@""]; [object removeItemAtIndex:selected]; [itemTableView reloadData]; } } // some changes might affect other settings... [self revert: sender]; // call the superclass. [super ok: sender]; } /* Sync from object ( NSComboBox ) changes to the inspector */ -(void) revert:(id) sender { if ( object == nil ) return; [backgroundColorWell setColorWithoutAction: [object backgroundColor]]; [textColorWell setColorWithoutAction: [object textColor]]; [alignmentMatrix selectCellWithTag: [object alignment]]; // clear buttons. [editable setState: NSOffState]; [selectable setState: NSOffState]; [usesDataSource setState: NSOffState]; // set buttons. if ([[object cell] isEditable]) [editable setState: NSOnState]; if ([[object cell] isSelectable]) [selectable setState: NSOnState]; if ([[object cell] usesDataSource]) [usesDataSource setState: NSOnState]; [itemTableView reloadData]; [itemTxt setStringValue:@""]; [super revert:sender]; } /* TableView dataSource methods */ - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView { if (aTableView == itemTableView ) return [[object objectValues] count]; return 0; } - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { if (aTableView == itemTableView ) return [object itemObjectValueAtIndex:rowIndex]; return nil; } /* TableView delegate methods */ - (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(NSInteger)rowIndex { if ( aTableView == itemTableView ) { [itemTxt setStringValue:[object itemObjectValueAtIndex:rowIndex]]; return YES; } return NO; } @end gorm-1.3.1/Palettes/4Data/GormNSNumberFormatterInspector.gorm/0000755000175000017500000000000014327003124023236 5ustar heronherongorm-1.3.1/Palettes/4Data/GormNSNumberFormatterInspector.gorm/objects.gorm0000644000175000017500000003215414327003124025562 0ustar heronheronGNUstep archive000f4240:00000027:00000120:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @@JI @ @01 NSView% ? @" @q @@  @q @@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @  @p @J-0 &0 %  @p @  @p @J0 &0 % @ @A @o @^  @o @^J0 &0 % @ @ @m @W  @m @WJ0 &01NSButton1 NSControl% @1 @Q @g @0  @g @0J0 &%01 NSButtonCell1 NSActionCell1NSCell0&%Show Negative Value in Red01NSImage01NSMutableString&%GSSwitch01NSFont% A@0&%Show Neg. in Red&&&&&&JJ&&&&&&&I0&00&%GSSwitchSelected&&& &&0% @1 @H @g @0  @g @0J0 &%00&%Use thouthands separators0&%1000 separators&&&&&&JJ&&&&&&&I&&& &&0% @1 @< @g @0  @g @0J0 &%0!0"&%Localize Signs and Separators&&&&&&JJ&&&&&&&I&&& &&0#% @1 @ @g @0  @g @0J0$ &%0%0&&% Replace point with comma&&&&&&JJ&&&&&&&I&&& &&0'1NSTextFieldCell0(&%Options&&&&&&JJ &&&&&&&I0)1NSColor0*&% NSNamedColorSpace0+&% System0,&% windowBackgroundColor0-0.&% NSCalibratedRGBColorSpace ? @ @%%0/1NSForm1NSMatrix% @ @c @o @]@  @o @]@J00 &%011 NSFormCell&&&&&&JJ&&&&&&&I 0203&%Field:&&&&&&JJ&&&&&&&% @o @5 @)04. ?* ?* ?* ?* ?05& % NSFormCell%%06 &07&&&&&&JJ&&&&&&&I B\0809& % Positive:&&&&&&JJ&&&&&&&0:&&&&&&JJ&&&&&&&I B\0;0<&%Zero:&&&&&&JJ&&&&&&&0=&&&&&&JJ&&&&&&&I B\0>0?& % Negative:&&&&&&JJ&&&&&&&0@&&&&&&JJ&&&&&&&I B\0A0B&%Minimum:&&&&&&JJ&&&&&&&0C&&&&&&JJ&&&&&&&I B\0D0E&%Maximum:&&&&&&JJ&&&&&&&2 ok:v24@0:8@1670F % @ @q @o @P@  @o @P@J0G &0H % @ @ @m @C  @m @CJ0I &0J1 NSTextField% @ @8 @T @,  @T @,J0K &%0L0M&%Positive0N% A &&&&&&JJ &&&&&&&I0O. ? ? ? ? ?0P. ?0Q% @` @8 @T @,  @T @,J0R &%0S0T&%NegativeN&&&&&&JJ &&&&&&&I0U. ? ? ? ? ?0V. ?0W% @ @ @Z@ @5  @Z@ @5J0X &%0Y0Z&%Text&&&&&&JJ &&&&&&&I0[*+0\&% controlBackgroundColor0]. ?0^% @` @ @Z@ @5  @Z@ @5J0_ &%0`0a&%Text&&&&&&JJ &&&&&&&I[0b. ?0c0d&%Appearance Samples&&&&&&JJ &&&&&&&I)0e. ? @ @%%0f% @S@ @ @\ @8  @\ @8J0g &%0h0i&%Detach Formatter&&&&&&JJ&&&&&&&I&&& &&0j1 NSScrollView% @ @u @o @b@  @o @b@J0k &0l1 NSClipView% @ @8 @o @^  @o @^J0m1 NSTableView%  @o @e`  @o @e`Jml0n &%0o0p%&&&&&&JJ&&&&&&&0q &0r1 NSTableColumn0s&%positive B A GP0t1 NSTableHeaderCell0u&%Positive0v% &&&&&&JJ &&&&&&&I0w*+0x&% controlShadowColor0y*+0z&% windowFrameTextColor0{0|&%sixp|&&&&&&JJ &&&&&&&I0}*0~&%System0&%textBackgroundColor0*~0& % textColor00&%negative B A GP0 0&%Negativev&&&&&&JJ &&&&&&&Iwy0|p|&&&&&&JJ &&&&&&&I}0*+0& %  gridColor[01!NSTableHeaderView%  @o @6  @o @6J0% @ @ @o @6  @o @6J0 &0*+0& %  controlColor0 &01"GSTableCornerView% @ @ @3 @6  @3 @6J0 &%% A @ @0 &0 &m[lI A A A A 00&%Title0% A &&&&&&JJ&&&&&&& %%)0&%Window0&%Inspector Window ? @X@ @Ç @|I&   @ @0 &0 &01#NSMutableDictionary1$ NSDictionary&'0&% NSOwner0&%GormNumberFormatterInspector0&%Button4f0&%Button0& % ScrollViewj0&%GormNSTableViewm0& % FormCell(1):0&%Button3#0&%TextFieldCell(0)L0& % ButtonCell(1)0&%Button20& % FormCell(5)10&%Button10&%TableColumn(0)0&%Box 0& % TableColumn100&%column2 C, A GP0 0&% v&&&&&&JJ &&&&&&&Iwy00&%fivep&&&&&&JJ &&&&&&&I}0& % FormCell(0)70& % ButtonCell(0)0& % TextField3^0&%View(2)H0& % FormCell(4)C0&%TextFieldCell(3)`0& % TextField2W0& % ButtonCell(4)h0& % TextField1Q0& % TableColumnr0&%Cell(0)o0&%TextFieldCell(2)Y0& % FormCell(3)@0& % InspectorWin0&%View(1) 0&%Box1F0&%Form/0±&%Box(0)0ñ& % ButtonCell(3)%0ı&%TextFieldCell(1)S0ű& % FormCell(2)=0Ʊ& % TextFieldJ0DZ&%View(0) 0ȱ& % ButtonCell(2)!0ɱ &BB01%NSNibConnector0˱&% NSOwner01&NSNibOutletConnector˰0ͱ&%window0α%0ϱ%0б%0ѱ%0ұ%0ӱ%0Ա%0ձ%ư0ֱ%0ױ%0ر%0ٱ&˰0ڱ& % positiveField0۱&˰0ܱ& % negativeField0ݱ&˰0ޱ& % formatForm0߱&˰0&%negativeRedSwitch0&˰0&%addThousandSeparatorSwitch0&˰0&%localizeSwitch0&˰0&%commaPointSwitch01'NSNibControlConnector0&%ok:0'˰0'˰0'˰0'˰0'˰0'˰0%0&˰0& % detachButton0'0&%ok:0%0%0%0%0&˰0& % formatTable0&0& % dataSource0&0&%delegate0&0&%initialFirstResponderP%P%ǰP%P%P'P&% NSFirstP&%ok:P%P'P %ȰP 'P %ðP 'P %P%P%ŰP%P%P%P%P%ƐP%İP%P'P%P'P%P'P%P%P#&gorm-1.3.1/Palettes/4Data/GormNSNumberFormatterInspector.gorm/data.info0000644000175000017500000000027014327003124025023 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/4Data/GormNSNumberFormatterInspector.gorm/data.classes0000644000175000017500000000055214327003124025530 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormNumberFormatterInspector = { Actions = ( ); Outlets = ( addThousandSeparatorSwitch, commaPointSwitch, formatForm, formatTable, localizeSwitch, negativeField, negativeRedSwitch, positiveField, detachButton ); Super = IBInspector; }; }gorm-1.3.1/Palettes/4Data/GNUmakefile0000644000175000017500000000335314327003124016260 0ustar heronheron# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Laurent Julliard # Date: Nov 2001 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make PALETTE_NAME = 4Data 4Data_PALETTE_ICON = DataPalette 4Data_PRINCIPAL_CLASS = DataPalette 4Data_OBJC_FILES = \ DataPalette.m \ GormDateFormatterAttributesInspector.m \ GormImageViewAttributesInspector.m \ GormNSComboBoxAttributesInspector.m \ GormNumberFormatterAttributesInspector.m \ GormTextViewAttributesInspector.m \ GormTextViewEditor.m \ GormTextViewSizeInspector.m \ inspectors.m 4Data_RESOURCE_FILES = DataPalette.tiff \ GormNSImageViewInspector.gorm \ GormNSTextViewInspector.gorm \ GormNSComboBoxInspector.gorm \ GormNSDateFormatterInspector.gorm \ GormNSNumberFormatterInspector.gorm \ palette.table 4Data_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/palette.make #-include GNUmakefile.postamble gorm-1.3.1/Palettes/4Data/GormImageViewAttributesInspector.m0000644000175000017500000000700114327003124023016 0ustar heronheron/* GormImageViewAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include #include "GormImageViewAttributesInspector.h" /* This macro makes sure that the string contains a value, even if @"" */ #define VSTR(str) ({id _str = (id)str; (_str) ? (id)_str : (id)(@"");}) @implementation GormImageViewAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSImageViewInspector" owner: self] == NO) { NSLog(@"Could not gorm GormImageViewInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id)sender { /* icon name */ if (sender == iconField) { NSString *name = [sender stringValue]; NSImage *image; if (name == nil || [name isEqual: @""]) { [object setImage: nil]; return; } image = [NSImage imageNamed: name]; if (image == nil) { image = [[NSImage alloc] init]; // [[NSImage alloc] initByReferencingFile: name]; if (image) { [image setName: name]; [image setArchiveByName: YES]; } else { // NSBeep(); } } // else { [object setImage: image ]; } } /* border */ else if (sender == borderMatrix) { [object setImageFrameStyle: [[sender selectedCell] tag]]; } /* alignment */ else if (sender == alignmentMatrix) { [object setImageAlignment: [[sender selectedCell] tag]]; } /* scaling */ else if (sender == scalingMatrix) { [object setImageScaling: [[sender selectedCell] tag]]; } /* editable */ else if (sender == editableSwitch) { [object setEditable: ([sender state] == NSOnState)]; } [super ok:sender]; } /* Sync from object ( ImageView ) changes to the inspector */ -(void) revert:(id) sender { if ( object == nil) return; if ( [ [[object image] name] isEqualToString: @"Sunday_seurat.tiff"] ) [object setImage: nil]; [iconField setStringValue: VSTR([[object image] name])]; [borderMatrix selectCellWithTag: [object imageFrameStyle]]; [alignmentMatrix selectCellWithTag: [object imageAlignment]]; [scalingMatrix selectCellWithTag: [object imageScaling]]; [editableSwitch setState: [object isEditable]]; [super revert:sender]; } /* delegate method for changing the ImageView Name */ - (void)controlTextDidChange:(NSNotification *)aNotification { // [self ok:[aNotification object]]; } @end gorm-1.3.1/Palettes/4Data/GormDateFormatterAttributesInspector.m0000644000175000017500000001147714327003124023716 0ustar heronheron/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include "GormDateFormatterAttributesInspector.h" /* this macro makes sure that the string contains a value, even if @"" */ #define VSTR(str) ({id _str = (id)str; (_str) ? (id)_str : (id)(@"");}) extern NSArray *predefinedDateFormats; @implementation GormDateFormatterAttributesInspector - (id) init { if ([super init] != nil) { if ([NSBundle loadNibNamed: @"GormNSDateFormatterInspector" owner: self] == NO) { NSLog(@"Could not gorm GormDateFormatterInspector"); return nil; } } return self; } - (void) ok: (id)sender { BOOL allowslanguage = NO; NSString *dateFmt = nil; NSDateFormatter *fmtr; // Set the document as modifed... [[(id)NSApp activeDocument] touch]; if (sender == detachButton) { [[object cell] setFormatter: nil]; [[(id)NSApp activeDocument] setSelectionFromEditor: nil]; } else { NSCell *cell = [object cell]; if (sender == formatTable) { int row; if ((row = [sender selectedRow]) != -1) { dateFmt = [NSDateFormatter formatAtIndex: row]; } [formatField setStringValue: VSTR(dateFmt) ]; } else if (sender == formatField) { NSInteger idx; dateFmt = [sender stringValue]; // If the string typed is a predefined one then highligh it in // table dateFormat table view above if ( (idx = [NSDateFormatter indexOfFormat: dateFmt]) == NSNotFound) { [formatTable deselectAll:self]; } else { [formatTable selectRow:idx byExtendingSelection:NO]; } } else if (sender == languageSwitch) { dateFmt = [formatField stringValue]; allowslanguage = ([sender state] == NSOnState); } // Update the Formatter and refresh the Cell value fmtr = [[NSDateFormatter alloc] initWithDateFormat:dateFmt allowNaturalLanguage:allowslanguage]; [cell setFormatter:fmtr]; RELEASE(fmtr); [cell setObjectValue: [cell objectValue]]; } [super ok: sender]; } - (void) revert: (id)sender { NSInteger idx; NSDateFormatter *fmtr = [[object cell] formatter]; // If the string typed is a predefined one then highligh it in // table dateFormat table view above if ( (idx = [NSDateFormatter indexOfFormat: [fmtr dateFormat]]) == NSNotFound) { [formatTable deselectAll:self]; } else { [formatTable selectRow:idx byExtendingSelection:NO]; } [formatField setStringValue: VSTR([fmtr dateFormat]) ]; [languageSwitch setState: [fmtr allowsNaturalLanguage]]; [super revert: sender]; } /* NSDateFormatter inspector: table view delegate and data source */ - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView { return [NSDateFormatter formatCount]; } - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { NSString *fmt = [NSDateFormatter formatAtIndex:rowIndex]; if ( [[aTableColumn identifier] isEqualToString: @"format"] ) { return fmt; } else if ( [[aTableColumn identifier] isEqualToString: @"date"] ) { return [[NSDateFormatter defaultFormatValue] descriptionWithCalendarFormat:fmt ]; } else { // Huuh?? Only 2 columns NSLog(@"Date table view only doesn't known column identifier: %@", [aTableColumn identifier]); } return nil; } - (void)tableViewSelectionDidChange:(NSNotification *)aNotification { [self ok: formatTable]; } @end gorm-1.3.1/Palettes/4Data/GormDateFormatterAttributesInspector.h0000644000175000017500000000251614327003124023703 0ustar heronheron/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormDateFormatterAttributesInspector_h #define INCLUDED_GormDateFormatterAttributesInspector_h #include @interface GormDateFormatterAttributesInspector : IBInspector { NSTableView *formatTable; id formatField; id languageSwitch; id detachButton; } @end #endif gorm-1.3.1/Palettes/4Data/GormNSTextViewInspector.gorm/0000755000175000017500000000000014327003124021701 5ustar heronherongorm-1.3.1/Palettes/4Data/GormNSTextViewInspector.gorm/objects.gorm0000644000175000017500000002400414327003124024220 0ustar heronheronGNUstep archive000f4240:0000001e:000000e6:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @8 @p01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 % @H @s @d @O  @d @OJ 0 &0 % @ @ @c @B  @c @BJ0 &01 NSColorWell1 NSControl% @H @ @J @?  @J @?J0 &%01NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&01NSColor0&% NSCalibratedRGBColorSpace ? ? ? ? ?2 ok:v24@0:8@1601NSTextFieldCell1 NSActionCell0&%Background Color&&&&&&JJ &&&&&&&I00&% NSNamedColorSpace0&% System0&% windowBackgroundColor0 ? @ @%%0 % @H @, @d @c  @d @cJ0 &0 % @ @ @c @`@  @c @`@J0 &0!1NSButton% @ @Z @a @1  @a @1J0" &%0#1 NSButtonCell0$& % Selectable0%1NSImage0&1NSMutableString&%GSSwitch0'%&&&&&&JJ&&&&&&&I0(0)&%GSSwitchSelected&&& &&0*% @ @P @a @1  @a @1J0+ &%0,0-&%Mutliple fonts allowed%'&&&&&&JJ&&&&&&&I(&&& &&0.% @ @U@ @a @1  @a @1J0/ &%0001&%Editable%'&&&&&&JJ&&&&&&&I(&&& &&02% @ @G @a @1  @a @1J03 &%0405&%Graphics allowed%'&&&&&&JJ&&&&&&&I(&&& &&06% @ @< @a @1  @a @1J07 &%0809& % Undo allowed%'&&&&&&JJ&&&&&&&I(&&& &&0:% @ @" @a @1  @a @1J0; &%0<0=&%Uses Find Panel%'&&&&&&JJ&&&&&&&I(&&& &&0>0?&%Options&&&&&&JJ &&&&&&&I0@ ? @ @%%0A % @H @m @d @O  @d @OJ 0B &0C % @ @ @c @B  @c @BJ0D &0E% @H @ @J @?  @J @?J0F &%0G&&&&&&JJ&&&&&&&0H0I&% NSCalibratedWhiteColorSpace ?0J0K& % Text Color&&&&&&JJ &&&&&&&I0L ? @ @%%0M % @H @e @d @L  @d @LJ0N &0O % @ @ @d` @B  @d` @BJ0P &0Q1NSMatrix% @= @ @Y @9  @Y @9J0R &%0S&&&&&&JJ&&&&&&&I% @9 @9 ? ?0T ?* ?* ?* ?* ?T0U& % NSButtonCell0V0W&%Button&&&&&&JJ&&&&&&&I&&& &&%%0X &0Y0Z0[& % noBorder_nib&&&&&&JJ&&&&&&&I&&& &&0\0]0^&%line_nib&&&&&&JJ&&&&&&&I&&& &&0_0`0a& % bezel_nib&&&&&&JJ&&&&&&&I&&& &&0b0c0d& % ridge_nib&&&&&&JJ&&&&&&&I&&& &&b0e0f&%Border0g% A@f&&&&&&JJ&&&&&&& %%0h0i&%Title0j% A i&&&&&&JJ&&&&&&& %%0k&%Window0l&%TextView Attributes Inspectorl ? @" @Ç @|I&   @ @p0m &0n &0o1NSMutableDictionary1 NSDictionary&"0p&% NSOwner0q&!%!GormNSTextViewAttributesInspector0r& % ActionCell(0)S0s& % ButtonCell(6)00t&%Button!0u& % Inspector0v&%Button320w& % ButtonCell(1)\0x&%Button2.0y&%View(3)0z& % ColorWell0{&%Button1*0|& % ButtonCell(5),0}&%Box 0~& % ButtonCell(9)<0& % Button(1):0& % ButtonCell(0)Y0&%View(2) 0&%Cell(1)G0& % ButtonCell(4)#0&%Box(1)0&%Box30& % ButtonCell(8)80& % Button(0)60& % ColorWell1E0&%Cell(0)0&%View(1) 0&%Box1A0&%Box(0)M0& % ButtonCell(3)b0& % ButtonCell(7)40&%View(0)O0&%MatrixQ0& % ButtonCell(2)_0&%View(4)C0 &>>01NSNibConnectoru0&% NSOwner01NSNibOutletConnectoru0&%window0}0z000z0&%backgroundColorWell00& % borderMatrix0000& % textColorWell01NSNibControlConnectorz0&%ok:000z0& % nextKeyView00uz0&%initialFirstResponder0ty0{y0xy0vy0t0&%selectableButton0x0&%editableButton0{0&%multipleFontsButton0v0&%graphicsButton0t0&%ok:0x0{0v0t0& % nextKeyView0tx0x{0±{v0ñy0ıy0ű0Ʊ& % undoButton0DZ0ȱ&%findPanelButton0ɱ0ʱ&%ok:0˱0̱0ͱw0α0ϱ0бr0ѱ0ұ0ӱ0Ա0ձ}0ֱz0ױy0رt0ٱ|{0ڱsx0۱v0ܱ0ݱ~0ޱ0߱0v0& % nextKeyView00z0&gorm-1.3.1/Palettes/4Data/GormNSTextViewInspector.gorm/data.info0000644000175000017500000000027014327003124023466 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/4Data/GormNSTextViewInspector.gorm/data.classes0000644000175000017500000000055714327003124024200 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormNSTextViewAttributesInspector = { Actions = ( ); Outlets = ( backgroundColorWell, textColorWell, borderMatrix, editableButton, multipleFontsButton, graphicsButton, selectableButton, findPanelButton, undoButton ); Super = IBInspector; }; }gorm-1.3.1/Palettes/4Data/GNUmakefile.preamble0000644000175000017500000000130414327003124020040 0ustar heronheron# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) 4Data_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.3.1/Palettes/4Data/DataPalette.m0000644000175000017500000002652614327003124016563 0ustar heronheron/* main.m Copyright (C) 1999 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include /* ----------------------------------------------------------- * Some additions to the NSNumberFormatter Class specific to Gorm * -----------------------------------------------------------*/ NSArray *predefinedNumberFormats; int defaultNumberFormatIndex = 0; @implementation NSNumberFormatter (GormAdditions) + (int) formatCount { return [predefinedNumberFormats count]; } + (NSString *) formatAtIndex: (int)i { return [[predefinedNumberFormats objectAtIndex:i] objectAtIndex:0]; } + (NSString *) positiveFormatAtIndex: (int)i { NSString *fmt =[[predefinedNumberFormats objectAtIndex:i] objectAtIndex:0]; return [ [fmt componentsSeparatedByString:@";"] objectAtIndex:0]; } + (NSString *) zeroFormatAtIndex: (int)i { NSString *fmt =[[predefinedNumberFormats objectAtIndex:i] objectAtIndex:0]; return [ [fmt componentsSeparatedByString:@";"] objectAtIndex:1]; } + (NSString *) negativeFormatAtIndex: (int)i { NSString *fmt =[[predefinedNumberFormats objectAtIndex:i] objectAtIndex:0]; return [ [fmt componentsSeparatedByString:@";"] objectAtIndex:2]; } + (NSDecimalNumber *) positiveValueAtIndex: (int)i { return [NSDecimalNumber decimalNumberWithString: [[predefinedNumberFormats objectAtIndex:i] objectAtIndex:1] ]; } + (NSDecimalNumber *) negativeValueAtIndex: (int)i { return [NSDecimalNumber decimalNumberWithString: [[predefinedNumberFormats objectAtIndex:i] objectAtIndex:2] ]; } + (NSInteger) indexOfFormat: (NSString *) format { int i; NSString *fmt; int count = [predefinedNumberFormats count]; for (i=0;i @end @implementation DataPalette + (void) initialize { predefinedNumberFormats = [[NSArray alloc] initWithObjects: [NSArray arrayWithObjects: @"$#,##0.00;0.00;-$#,##0.00",@"9999.99",@"-9999.99",nil], [NSArray arrayWithObjects: @"$#,##0.00;0.00;[Red]($#,##0.00)",@"9999.99",@"-9999.99",nil], [NSArray arrayWithObjects: @"0.00;0.00;-0.00",@"9999.99",@"-9999.99",nil], [NSArray arrayWithObjects: @"0;0;-0",@"100",@"-100",nil], [NSArray arrayWithObjects: @"00000;00000;-00000",@"100",@"-100",nil], [NSArray arrayWithObjects: @"0%;0%;-0%",@"100",@"-100",nil], [NSArray arrayWithObjects: @"0.00%;0.00%;-0.00%",@"99.99",@"-99.99",nil], nil]; predefinedDateFormats = [[NSArray alloc] initWithObjects: @"%c",@"%A, %B %e, %Y", @"%B %e, %Y", @"%e %B %Y", @"%m/%d/%y", @"%b %d, %Y", @"%B %H", @"%d %b %Y", @"%H:%M:%S", @"%I:%M",nil]; } - (id) init { if((self = [super init]) != nil) { // Make ourselves a delegate, so that when the formatter is dragged in, // this code is called... [NSView registerViewResourceDraggingDelegate: self]; // subscribe to the notification... [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(willInspectObject:) name: IBWillInspectObjectNotification object: nil]; } return self; } - (void) dealloc { [NSView unregisterViewResourceDraggingDelegate: self]; [[NSNotificationCenter defaultCenter] removeObserver: self]; [super dealloc]; } - (void) finishInstantiate { NSView *contents; NSTextView *tv; id v; NSNumberFormatter *nf; NSDateFormatter *df; NSRect rect; originalWindow = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192) styleMask: NSBorderlessWindowMask backing: NSBackingStoreRetained defer: NO]; [originalWindow setTitle: @"Data Views"]; contents = [originalWindow contentView]; /*******************/ /* First Column... */ /*******************/ // NSScrollView v = [[NSScrollView alloc] initWithFrame: NSMakeRect(20, 22, 113, 150)]; [v setHasVerticalScroller: YES]; [v setHasHorizontalScroller: NO]; [[(NSScrollView *)v contentView] setAutoresizingMask: NSViewHeightSizable | NSViewWidthSizable]; [[(NSScrollView *)v contentView] setAutoresizesSubviews:YES]; [v setBorderType: NSBezelBorder]; rect = [[(NSScrollView *)v contentView] frame]; tv = [[NSTextView alloc] initWithFrame: rect]; [tv setMinSize: NSMakeSize(108.0, 143.0)]; [tv setMaxSize: NSMakeSize(1.0E7,1.0E7)]; [tv setVerticallyResizable: YES]; [tv setHorizontallyResizable: NO]; [tv setAutoresizingMask: NSViewHeightSizable | NSViewWidthSizable]; [tv setSelectable: YES]; [tv setEditable: YES]; [tv setRichText: YES]; [tv setImportsGraphics: YES]; // [[tv textContainer] setContainerSize:NSMakeSize(rect.size.width,1e7)]; // [[tv textContainer] setWidthTracksTextView:YES]; [v setDocumentView:tv]; [contents addSubview: v]; RELEASE(v); RELEASE(tv); /********************/ /* Second Column... */ /********************/ // NSImageView v = [[NSImageView alloc] initWithFrame: NSMakeRect(153, 98, 96, 72)]; [v setImageFrameStyle: NSImageFramePhoto]; //FramePhoto not implemented [v setImageScaling: NSScaleProportionally]; [v setImageAlignment: NSImageAlignCenter]; [v setImage: [NSImage imageNamed: @"Sunday_seurat.tiff"]]; [contents addSubview: v]; RELEASE(v); /* Number and Date formatters. Note that they have a specific drag type. * All other palette objects are views and use the default IBViewPboardType * drag type */ v = [[NSImageView alloc] initWithFrame: NSMakeRect(153, 48, 43, 43)]; [v setImageFrameStyle: NSImageFramePhoto]; [v setImageScaling: NSScaleProportionally]; [v setImageAlignment: NSImageAlignCenter]; [v setImage: [NSImage imageNamed: @"number_formatter.tiff"]]; [contents addSubview: v]; nf = [[NSNumberFormatter alloc] init]; [nf setFormat: [NSNumberFormatter defaultFormat]]; [self associateObject: nf type: IBFormatterPboardType with: v]; RELEASE(v); v = [[NSImageView alloc] initWithFrame: NSMakeRect(206, 48, 43, 43)]; [v setImageFrameStyle: NSImageFramePhoto]; [v setImageScaling: NSScaleProportionally]; [v setImageAlignment: NSImageAlignCenter]; [v setImage: [NSImage imageNamed: @"date_formatter.tiff"]]; [contents addSubview: v]; df = [[NSDateFormatter alloc] initWithDateFormat: [NSDateFormatter defaultFormat] allowNaturalLanguage: NO]; [self associateObject: df type: IBFormatterPboardType with: v]; RELEASE(v); // NSComboBox v = [[NSComboBox alloc] initWithFrame: NSMakeRect(153, 22, 96, 21)]; [contents addSubview: v]; RELEASE(v); } - (void) willInspectObject: (NSNotification *)notification { id o = [notification object]; if([o respondsToSelector: @selector(cell)]) { id cell = [o cell]; if([cell respondsToSelector: @selector(formatter)]) { id formatter = [o formatter]; if([formatter isKindOfClass: [NSFormatter class]]) { NSString *ident = NSStringFromClass([formatter class]); [[IBInspectorManager sharedInspectorManager] addInspectorModeWithIdentifier: ident forObject: o localizedLabel: _(@"Formatter") inspectorClassName: [formatter inspectorClassName] ordering: -1.0]; } } } } // view resource dragging delegate... /** * Ask if the view accepts the object. */ - (BOOL) acceptsViewResourceFromPasteboard: (NSPasteboard *)pb forObject: (id)obj atPoint: (NSPoint)p { return ([obj respondsToSelector: @selector(setFormatter:)] && [[pb types] containsObject: IBFormatterPboardType]); } /** * Perform the action of depositing the object. */ - (void) depositViewResourceFromPasteboard: (NSPasteboard *)pb onObject: (id)obj atPoint: (NSPoint)p { NSData *data = [pb dataForType: IBFormatterPboardType]; id array = [NSUnarchiver unarchiveObjectWithData: data]; if(array != nil) { if([array count] > 0) { id formatter = [array objectAtIndex: 0]; // Add the formatter if the object accepts one... if([obj respondsToSelector: @selector(setFormatter:)]) { // Touch the document... [[(id)NSApp activeDocument] touch]; [obj setFormatter: formatter]; RETAIN(formatter); if ([formatter isMemberOfClass: [NSNumberFormatter class]]) { id fieldValue = [NSNumber numberWithFloat: 1.123456789]; [obj setStringValue: [fieldValue stringValue]]; [obj setObjectValue: fieldValue]; } else if ([formatter isMemberOfClass: [NSDateFormatter class]]) { id fieldValue = [NSDate date]; [obj setStringValue: [fieldValue description]]; [obj setObjectValue: fieldValue]; } } } } } /** * Should we draw the connection frame when the resource is * dragged in? */ - (BOOL) shouldDrawConnectionFrame { return NO; } /** * Types of resources accepted by this view. */ - (NSArray *)viewResourcePasteboardTypes { return [NSArray arrayWithObject: IBFormatterPboardType]; } @end gorm-1.3.1/Palettes/GNUmakefile0000644000175000017500000000236314327003123015322 0ustar heronheron# GNUmakefile: main makefile for Gorm palettes # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. # PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make # # Each palette is a subproject # SUBPROJECTS = \ 0Menus \ 1Windows \ 2Controls \ 3Containers \ 4Data -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/aggregate.make -include GNUmakefile.postamble gorm-1.3.1/Palettes/3Containers/0000755000175000017500000000000014360746517015456 5ustar heronherongorm-1.3.1/Palettes/3Containers/GormTableViewSizeInspector.m0000644000175000017500000000230614327003123023044 0ustar heronheron/* GormTableViewSizeInspector -- size inspector for table and table subclasses. Copyright (C) 2001 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormTableViewSizeInspector.h" @implementation GormTableViewSizeInspector - (void) setObject: (id)anObject { id scrollView; scrollView = [anObject enclosingScrollView]; [super setObject: scrollView]; } @end gorm-1.3.1/Palettes/3Containers/ContainersPalette.tiff0000644000175000017500000000161214327003123021732 0ustar heronheronII*`P8PB@B{~DҨ*"XpLF#z;gj(TI䆇 R,IB4jծרxPa5U )UWĞ\<& D`jf/*W-fsY$`&ME]Clv[77e<n^vmep|]w͗^_?Om>$?$ @/GNPso@В% >d0TkDʐ#9p`1|4ǑeO.I%ɒl')ʒ ##tD8z( ' 'gorm-1.3.1/Palettes/3Containers/GormBrowserAttributesInspector.h0000644000175000017500000000335514327003123024021 0ustar heronheron/* GormBrowserAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormBrowserAttributesInspector_h #define INCLUDED_GormBrowserAttributesInspector_h #include @class NSButton; @class NSForm; @class NSTextField; @interface GormBrowserAttributesInspector : IBInspector { /* options */ NSButton *branchSelectionSwitch; NSButton *displayTitlesSwitch; NSButton *emptySelectionSwitch; NSButton *multipleSelectionSwitch; NSButton *horizontalScrollerSwitch; NSButton *separateColumnsSwitch; NSForm *tagForm; NSTextField *minColumnWidthField; NSTextField *maxVisibleColumnsField; } @end #endif /* INCLUDED_GormBrowserAttributesInspector_h */ gorm-1.3.1/Palettes/3Containers/GormTabViewInspector.gorm/0000755000175000017500000000000014327003123022454 5ustar heronherongorm-1.3.1/Palettes/3Containers/GormTabViewInspector.gorm/objects.gorm0000644000175000017500000004442114327003123025000 0ustar heronheronGNUstep archive000f4240:00000025:000000dc:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? ? @q @x@JI @q @01 NSView% ? ? @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSMatrix1 NSControl% @9 @tp @k @@  @k @@J 0 &%0 1 NSActionCell1NSCell0 &0 1NSFont% A@&&&&&&JJ&&&&&&I% @B @@ 0 1NSColor0 &% NSNamedColorSpace0&% System0&% controlBackgroundColor 0& % NSButtonCell01 NSButtonCell0&%0 &&&&&&JJ&&&&&&I0&0&&&& &&%%0 &00&01NSImage0& % tabtop_nib &&&&&&JJ&&&&&&I0&&&& &&00&00& % tabbot_nib &&&&&&JJ&&&&&&I0&&&& &&0 0!&0"0#& % button_nib &&&&&&JJ&&&&&&I0$&&&& &&0%0&&0'0(&%line_nib &&&&&&JJ&&&&&&I0)&&&& &&0*0+&0,0-& % noBorder_nib &&&&&&JJ&&&&&&I0.&&&& &&0/00&0102&%shortbutton_nib &&&&&&JJ&&&&&&I03&&&& &&2 ok:v24@0:8@16041 NSTextField% @0 @p @\@ @4  @\@ @4J,05 &%061NSTextFieldCell07&%Number of items: &&&&&&JJ &&&&&&I08 09&%System0:&%textBackgroundColor0; 90<& % textColor0=% @a @p @L @4  @L @4J)0> &%0?0@&%2 &&&&&&JJ &&&&&&I8;0A1NSButton% @9 @rp @c` @0  @c` @0J 0B &%0C0D&%Allow truncate labels0E0F1NSMutableString&%GSSwitch &&&&&&JJ&&&&&&I0G&0H&0I0J&%GSSwitchSelected&&& &&0K1NSBox% @$ @V@ @o @a  @o @aJ20L &0M % @ @ @m @]  @m @]J0N &0O% @V @V @V@ @4  @V@ @4J0P &%0Q0R& &&&&&&JJ &&&&&&I8;0S% @: @V @J @4  @J @4J0T &%0U0V&%Label: &&&&&&JJ &&&&&&I8;0W% @7 @P@ @O @4  @O @4J0X &%0Y0Z& % Identifier: &&&&&&JJ &&&&&&I8;0[% @V @P@ @V@ @4  @V@ @4J0\ &%0]0^& &&&&&&JJ &&&&&&I8;0_1 NSStepper% @g @R @0 @7  @0 @7J0` &%0a1 NSStepperCell0b&%00c1NSNumber1NSValuei%&&&&&&JJ&&&&&&I @M ?%%0d% @A @6 @I @2  @I @2J0e &%0f0g&%Ordered:0h% A@g&&&&&&JJ &&&&&&I8;0i% @V @6 @@ @8  @@ @8J0j &%0k0l&%Button0m0n&% common_ArrowLeft0o%&&&&&&JJ&&&&&&I0p&0q&&&& &&0r% @` @6 @@ @8  @@ @8J0s &%0t0u&%Button0v0w&% common_ArrowRightou&&&&&&JJ&&&&&&I0x&0y&&&& &&0z0{& % Current Item {&&&&&&JJ &&&&&&I0| 0}&% windowBackgroundColor; @ @%%|0~&%Window0&%TabView Attributes Inspector ? @7 @È @ÈI0 00&% NSCalibratedWhiteColorSpace 0 &01NSBitmapImageRep1 NSImageRep0&% NSDeviceRGBColorSpace @H @HII0I001 NSData&$$II*$[=T8J2R-!k[=U:K3xB-H'R-!k[=S7J2xB-H'/ ?[=S7I2xB-H'/ ?[=S7H0xB-H'/ ?[=R7I2xB-H'/ ?[=S7I0xB-H'/ ?[=R7I2xB-H'/ ?[=R7H0xB-H'/ ?[>X/!j:)H'/ ?D49  ?hft{y<;D ?hft}<;D ?<;D ?43:""""43:zzzzͱ""""EEEEEEEEEEEE43:555222t43:0?55hhhiiiyyyVVV777?43:~=0rdxxxUUU444?/17?43:5?0\Mzz{]]]QQQmmm_bn:9@5?0I>e]xxwvtsqpo}66<5?2A3QFA4H:|zzywutrqpbao++05?2@2@2A3B3C4E6}}|zxxwutrqpn}VT_=,, 5@2@3A3A3JdbqihvFEOQ-)Y)!W)`/$k3'q6*n4)l3'i2'f0&c/$`-$Y*!)5C4C4D4E6F7H7Ʀkkk)))LJRkjxihvhgu::B\/&[-$Y-$c/&l3'o4)l3'j2'g2&d0$a/$^-#X*!)5@2D4E6F7H7I8{{{[[[322QPZ^]jjhwhguQP[K33\-&W)_/$j3'm3'm4)j3'h2&d0&b/$_-#],#X*!)P'~>>ddd>>?87?4$$E)&_-#`0'_0&]/&^/&`/&`/&c0&j2'n3'k3'h2&d0$a/$^-#\,!Z,!X*!U)T))ttttttzzz;;;rqyjhwPPZ43:C@?w9,c2)b2)^,#_0&d2'g2'h2'k3)l3)l3)l3'l3'i2'f0&c/$_-#],#Z,!X*!W)T)S))rrr```FFF000mmm\[a<;CA)'^3,I::76v8,_-$b2'g2'l4)r7*s7*s7*w8,t7,q6*n4)k3'g2&d0$`-$],#[,!X*!W)U)S'S')YYY777XWcKJS|||SSS\2,KDD4I:I;A?>~>0b2)f2'p6*x:-y:-{;-x:-v9,s7*o4)l3'i2&f0&c/$_-#\,#Y*!W)T)S'R'S')TR^|z@?Gↄ\Zg<;CJJJm4)D4E6J;UIPEvI@q:/l4)m4)x:,};/{:-y:-w9,t7*q6*m4)j3'h2&c0&a/$]-#[,!X*!V)T)R'R'R')0/5?_^kCBJ43:?QQQ ^-#I:O>SBP?H7?2p6*s7*0|;/y:-p6*f0&d0&c/&`/$_-$]-#\,#T)!T)!T)!T)!T)!T)!T)!)))) ?h3'z;/T)!T)!T)!`/$`/$))))) ? 00$$R&   @ @0 &0 &01!NSMutableDictionary1" NSDictionary&0&%BoxK0& % TextField1=0& % TextField40& % TextField(0)d0& % TextField3S0& % TextField5[0&%Stepper_0&% NSOwner0&%GormTabViewInspector0& % Button(0)i0& % TextField2O0& % TextField4W0&%Matrix0&%ButtonA0& % Button(1)r0& % Inspector0 &))01#NSNibConnector0&% NSOwner0#0#0#01$NSNibOutletConnector0& % typeMatrix01%NSNibControlConnector0&%ok:0%0$0&%window0$0&%numberOfItemsField0#0$0& % allowtruncate0%0&%ok:0#0#0#0#0#0#0$0& % itemLabel0$0&%itemIdentifier0$0& % itemStepper0%0&%ok:0%0&%ok:0%0$0& % nextKeyView0$0±$0ñ$0ı&%initialFirstResponder0ű$0Ʊ& % nextKeyView0DZ$0ȱ$0ɱ&%delegate0ʱ$0˱$0̱#0ͱ#0α#0ϱ$0б&%itemNext0ѱ$0ұ& % itemPrevious0ӱ%0Ա&%ok:0ձ%0ֱ$0ױ& % nextKeyView0ر!&gorm-1.3.1/Palettes/3Containers/GormTabViewInspector.gorm/data.info0000644000175000017500000000027014327003123024241 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/3Containers/GormTabViewInspector.gorm/data.classes0000644000175000017500000000046614327003123024752 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormTabViewInspector = { Actions = ( ); Outlets = ( typeMatrix, numberOfItemsField, allowtruncate, itemLabel, itemStepper, itemIdentifier, itemPrevious, itemNext ); Super = IBInspector; }; }gorm-1.3.1/Palettes/3Containers/GormNSBrowser.m0000644000175000017500000000561614327003123020333 0ustar heronheron/* GormNSBrowser.m Copyright (C) 2001 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormNSBrowser.h" /* --------------------------------------------------------------- * NSBrowser Delegate */ @interface NSBrowserDelegate: NSObject { } - (NSInteger) browser: (NSBrowser *)sender numberOfRowsInColumn: (NSInteger)column; - (NSString *) browser: (NSBrowser *)sender titleOfColumn: (NSInteger)column; - (void) browser: (NSBrowser *)sender willDisplayCell: (id)cell atRow: (NSInteger)row column: (NSInteger)column; @end @implementation NSBrowserDelegate - (NSInteger) browser: (NSBrowser *)sender numberOfRowsInColumn: (NSInteger)column { return 0; } - (NSString *) browser: (NSBrowser *)sender titleOfColumn: (NSInteger)column { return (column==0) ? @"Browser" : @""; } - (void) browser: (NSBrowser *)sender willDisplayCell: (id)cell atRow: (NSInteger)row column: (NSInteger)column { // NSDebugLog(@"%@: browser %@ will display %@ %@ at %d,%d",self,sender,[cell class],cell,row,column); // This code should never be called because there is no row // in our browser. But just in case... [cell setLeaf:YES]; [cell setStringValue: @""]; } @end static id _sharedDelegate = nil; @implementation GormNSBrowser + (id) sharedDelegate { if (_sharedDelegate == nil) { _sharedDelegate = [[NSBrowserDelegate alloc] init]; } return _sharedDelegate; } - (id) initWithFrame: (NSRect) aRect { self = [super initWithFrame: aRect]; [super setDelegate: [GormNSBrowser sharedDelegate]]; _gormDelegate = nil; return self; } - (void)setDelegate: (id)anObject { _gormDelegate = anObject; } - (id)delegate { return _gormDelegate; } - (void)encodeWithCoder: (NSCoder*) aCoder { _browserDelegate = _gormDelegate; [super encodeWithCoder: aCoder]; _browserDelegate = _sharedDelegate; } - (id) initWithCoder: (NSCoder*) aCoder { [super setDelegate: [GormNSBrowser sharedDelegate]]; self = [super initWithCoder: aCoder]; return self; } - (NSString *) className { return @"NSBrowser"; } @end gorm-1.3.1/Palettes/3Containers/GormTableColumnSizeInspector.m0000644000175000017500000000513714327003123023374 0ustar heronheron/* GormTableColumnSizeInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include "GormTableColumnSizeInspector.h" #define MINIMUMINDEX 0 #define CURRENTINDEX 1 #define MAXIMUMINDEX 2 @implementation GormTableColumnSizeInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSTableColumnSizeInspector" owner: self] == NO) { NSLog(@"Could not gorm GormTableColumnSizeInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id)sender { [object setMinWidth: [[widthForm cellAtRow:MINIMUMINDEX column: 0] floatValue]]; [object setWidth: [[widthForm cellAtRow:CURRENTINDEX column: 0] floatValue]]; [object setMaxWidth: [[widthForm cellAtRow:MAXIMUMINDEX column: 0] floatValue]]; [super ok:sender]; } /* Sync from object ( NSTableColumn size ) changes to the inspector */ - (void) revert: (id) sender { if (object == nil) return; [[widthForm cellAtRow:MINIMUMINDEX column: 0] setFloatValue: [object minWidth]]; [[widthForm cellAtRow:CURRENTINDEX column: 0] setFloatValue: [object width]]; [[widthForm cellAtRow:MAXIMUMINDEX column: 0] setFloatValue: [object maxWidth]]; [super revert:sender]; } - (void) controlTextDidEndEditing: (NSNotification*)aNotification { [self ok:[aNotification object]]; } /* delegate method for the form */ -(void) controlTextDidChange:(NSNotification *)aNotification { } @end gorm-1.3.1/Palettes/3Containers/GormTabViewAttributesInspector.m0000644000175000017500000001405314327003123023741 0ustar heronheron/* GormTabViewAttributesInspector.m Copyright (C) 2001-2015 Free Software Foundation, Inc. Author: Laurent Julliard Author: Gregory John Casamento Date: Aug 2001. 2003, 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include #include "GormTabViewAttributesInspector.h" #define ORDERED_PREVIOUS 0 #define ORDERED_NEXT 1 @implementation GormTabViewAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormTabViewInspector" owner: self] == NO) { NSLog(@"Could not gorm GormTabViewInspector"); return nil; } return self; } - (void) ok: (id)sender { if (sender == typeMatrix) { unsigned int type = 0; switch([[sender selectedCell] tag]) { case 0: type = NSTopTabsBezelBorder; break; case 5: type = NSLeftTabsBezelBorder; break; case 1: type = NSBottomTabsBezelBorder; break; case 6: type = NSRightTabsBezelBorder; break; case 2: type = NSNoTabsBezelBorder; break; case 3: type = NSNoTabsLineBorder; break; case 4: type = NSNoTabsNoBorder; break; default: break; } [object setTabViewType: type]; } else if (sender == allowtruncate) { BOOL flag; flag = ([allowtruncate state] == NSOnState) ? YES : NO; [object setAllowsTruncatedLabels:flag]; } else if (sender == itemStepper ) { int number = [itemStepper intValue]; [itemLabel setStringValue:[[object tabViewItemAtIndex:number] label]]; [itemIdentifier setStringValue:[[object tabViewItemAtIndex:number] identifier]]; [object selectTabViewItemAtIndex:number]; } else if (sender == numberOfItemsField) { int newNumber = [[numberOfItemsField stringValue] intValue]; if (newNumber <= 0) { [numberOfItemsField setStringValue:[NSString stringWithFormat:@"%ld",(long int)[object numberOfTabViewItems]]]; return; } if ( newNumber > [object numberOfTabViewItems] ) { int i; NSTabViewItem *newTabItem; id document = [(id)NSApp documentForObject: object]; for (i=([object numberOfTabViewItems]+1);i<=newNumber;i++) { NSString *ident = [NSString stringWithFormat: @"item %i",i]; newTabItem = [(NSTabViewItem *)[NSTabViewItem alloc] initWithIdentifier: (id)ident]; [newTabItem setLabel: [NSString stringWithFormat: @"Item %i",i]]; [newTabItem setView:[[NSView alloc] init]]; [object addTabViewItem:newTabItem]; [document attachObject: newTabItem toParent: object]; } } else { int i; for (i=([object numberOfTabViewItems]-1);i>=newNumber;i--) { id item = [object tabViewItemAtIndex:i]; id document = [(id)NSApp documentForObject: item]; [object selectFirstTabViewItem: self]; [object removeTabViewItem: item]; if(document != nil) { [document detachObject: item]; } } } [itemStepper setMaxValue: (newNumber - 1)]; } else if ( sender == itemLabel ) { if ([[itemLabel stringValue] isEqualToString:@""] == NO) { [[object selectedTabViewItem] setLabel:[itemLabel stringValue]]; } } else if ( sender == itemIdentifier ) { if ([[itemIdentifier stringValue] isEqualToString:@""] == NO) { [[object selectedTabViewItem] setIdentifier:[itemIdentifier stringValue]]; } } else if ( sender == itemPrevious ) { NSTabViewItem *tbItem = [object selectedTabViewItem]; int selectedItem = [object indexOfTabViewItem:tbItem]; /* We Should disabled UI ? with delegate tabView:didSelectTabViewItem: */ if ( selectedItem <= 0 ) { return; } [tbItem retain]; [object removeTabViewItem:tbItem]; [object insertTabViewItem:tbItem atIndex:(selectedItem - 1)]; [object selectTabViewItemAtIndex:(selectedItem - 1)]; [tbItem release]; } else if (sender == itemNext ) { NSTabViewItem *tbItem = [object selectedTabViewItem]; int selectedItem = [object indexOfTabViewItem:tbItem]; /* We Should disabled UI ? with delegate tabView:didSelectTabViewItem: */ if ( selectedItem >= ([object numberOfTabViewItems] -1) ) { return; } [tbItem retain]; [object removeTabViewItem:tbItem]; [object insertTabViewItem:tbItem atIndex:(selectedItem + 1)]; [object selectTabViewItemAtIndex:(selectedItem + 1)]; [tbItem release]; } [object setNeedsDisplay: YES]; [super ok: sender]; } - (void) revert :(id) sender { unsigned int numberOfTabViewItems; if ( object == nil ) return; numberOfTabViewItems=[object numberOfTabViewItems]; [numberOfItemsField setStringValue:[NSString stringWithFormat:@"%i",numberOfTabViewItems]]; [itemStepper setMaxValue:(numberOfTabViewItems -1)]; [itemLabel setStringValue:[[object selectedTabViewItem] label]]; [itemIdentifier setStringValue:[[object selectedTabViewItem] identifier]]; } -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.3.1/Palettes/3Containers/palette.table0000644000175000017500000000041114327003123020077 0ustar heronheron{ NOTE = "Automatically generated, do not edit!"; NibFile = ""; Class = "ContainersPalette"; Icon = "ContainersPalette"; SubstituteClasses = { GormNSBrowser = NSBrowser; GormNSTableView = NSTableView; GormNSOutlineView = NSOutlineView; }; } gorm-1.3.1/Palettes/3Containers/inspectors.m0000644000175000017500000000374714327003123020016 0ustar heronheron/* inspectors - Various inspectors for control elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Author: Gregory John Casamento Date: Aug 2001. 2003, 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include /** * IBObjectAdditions categories. */ @implementation NSBrowser (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormBrowserAttributesInspector"; } @end @implementation NSTabView (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormTabViewAttributesInspector"; } - (NSString*) editorClassName { return @"GormTabViewEditor"; } @end @implementation NSTableColumn (IBObjectAdditions) - (NSString *) inspectorClassName { return @"GormTableColumnAttributesInspector"; } - (NSString*) sizeInspectorClassName { return @"GormTableColumnSizeInspector"; } @end @implementation NSTableView (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormTableViewAttributesInspector"; } - (NSString*) sizeInspectorClassName { return @"GormTableViewSizeInspector"; } - (NSString*) editorClassName { return @"GormTableViewEditor"; } @end gorm-1.3.1/Palettes/3Containers/GormNSBrowserInspector.gorm/0000755000175000017500000000000014327003123022777 5ustar heronherongorm-1.3.1/Palettes/3Containers/GormNSBrowserInspector.gorm/objects.gorm0000644000175000017500000002217714327003123025327 0ustar heronheronGNUstep archive000f4240:00000020:000000d7:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 % @ @ @p @w`  @p @w`J0 &0 % @ @e @o @d  @o @dJ0 &0 % @ @ @m @`  @m @`J0 &01NSButton1 NSControl% @1 @[ @f` @1  @f` @1J0 &%01 NSButtonCell1 NSActionCell1NSCell0&%Allow multiple selection01NSImage01NSMutableString&%GSSwitch01NSFont%&&&&&&JJ&&&&&&&I0&00&%GSSwitchSelected&&& &&0% @1 @V @f` @1  @f` @1J0 &%00&%Allow empty selection&&&&&&JJ&&&&&&&I&&& &&0% @1 @Q @f` @1  @f` @1J0 &%00 &%Allow branch selection&&&&&&JJ&&&&&&&I&&& &&0!% @1 @H @f` @1  @f` @1J0" &%0#0$&%Separates columns&&&&&&JJ&&&&&&&I&&& &&0%% @1 @< @f` @1  @f` @1J0& &%0'0(&%Display titles&&&&&&JJ&&&&&&&I&&& &&0)% @1 @  @f` @1  @f` @1J0* &%0+0,&%Allows horizontal scroller&&&&&&JJ&&&&&&&I&&& &&0-1NSTextFieldCell0.&%Options0/% A@&&&&&&JJ &&&&&&&I001NSColor01&% NSNamedColorSpace02&% System03&% windowBackgroundColor0405&% NSCalibratedRGBColorSpace ? @ @%%061NSForm1NSMatrix% @T @H @U@ @5  @U@ @5J07 &%081 NSFormCell/&&&&&&JJ&&&&&&&I 090:&%Field:/&&&&&&JJ&&&&&&&% @U@ @5 @0;120<&% controlBackgroundColor0=5 ?* ?* ?* ?* ?0>& % NSFormCell%%0? &0@0A&%0/A&&&&&&JJ&&&&&&&I A0B0C&%Tag:/C&&&&&&JJ&&&&&&&@0D % @ @R @o @W@  @o @W@J0E &0F % @ @ @o @R  @o @RJ0G &0H1 NSTextField% @e @. @L @5  @L @5J0I &%0J&&&&&&JJ &&&&&&&I0K10L&%System0M&%textBackgroundColor0N1L0O& % textColor0P% @ @1 @d @1  @d @1J0Q &%0R0S&%Maximum Visible Columns:0T% A@&&&&&&JJ &&&&&&&IKN0U% @ @E @d @1  @d @1J0V &%0W0X&%Minimum Column Width:T&&&&&&JJ &&&&&&&IKN0Y% @e @D @L @5  @L @5J0Z &%0[&&&&&&JJ &&&&&&&IKN0\0]& % Attributes]&&&&&&JJ&&&&&&& %%0^0_&%Title0`% A &&&&&&JJ&&&&&&& @ @%%00a&%Window0b&%Browser Attributes Inspectorb ? @L @Ç @|I&   @ @p0c &0d &0e1NSMutableDictionary1 NSDictionary&0f&% NSOwner0g&%GormBrowserAttributesInspector0h&%Button5)0i&%Button4%0j&%Button0k& % Inspector0l& % FormCell(1)80m&%Button3!0n&%TextFieldCell(0)J0o& % ButtonCell(1)0p&%Button20q&%Button10r& % ButtonCell(5)+0s&%Box 0t&%Form160u& % FormCell(0)@0v& % ButtonCell(0)0w& % TextField3P0x&%View(2)F0y&%TextFieldCell(3)[0z& % TextField2H0{& % ButtonCell(4)'0|& % TextField1U0}&%TextFieldCell(2)W0~&%View(1) 0&%Box1D0&%Box(0)0& % ButtonCell(3)#0&%TextFieldCell(1)R0& % TextFieldY0&%View(0) 0& % ButtonCell(2)0 &<<01NSNibConnectork0&% NSOwner0s01NSNibOutletConnectork0&%window0t0t0&%delegate0|x0t0&%tagForm0j~0q~0p~0m~0i~0h~0j0&%multipleSelectionSwitch0q0&%emptySelectionSwitch0p0&%branchSelectionSwitch0m0&%separateColumnsSwitch0i0&%displayTitlesSwitch0h0&%horizontalScrollerSwitch01 NSNibControlConnectorj0&%ok:0 q0 p0 m0 i0 h0jq0& % nextKeyView0qp0pm0mi0ih0zx0wx00x00&%minColumnWidthField0 0&%ok:0 z0z0&%maxVisibleColumnsField0 t0&%ok:000~s0vj0±oq0ñp0ım0ű{i0Ʊrh0DZut0ȱlt0ɱx0ʱnz0˱w0̱}|0ͱy0αz0ϱ& % nextKeyView0бzt0ѱtj0ұh0ӱkj0Ա&%initialFirstResponder0ձ&gorm-1.3.1/Palettes/3Containers/GormNSBrowserInspector.gorm/data.info0000644000175000017500000000027014327003123024564 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/3Containers/GormNSBrowserInspector.gorm/data.classes0000644000175000017500000000063014327003123025266 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormBrowserAttributesInspector = { Actions = ( ); Outlets = ( minColumnWidthField, tagForm, branchSelectionSwitch, displayTitlesSwitch, emptySelectionSwitch, multipleSelectionSwitch, horizontalScrollerSwitch, separateColumnsSwitch, maxVisibleColumnsField ); Super = IBInspector; }; }gorm-1.3.1/Palettes/3Containers/GormTableColumnAttributesInspector.m0000644000175000017500000002270414327003123024607 0ustar heronheron/* GormTableColumnAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory Casamento Added custom class handling for table column. Date: 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #import #import #import "GormTableColumnAttributesInspector.h" /* IBObjectAdditions category */ @implementation GormTableColumnAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSTableColumnInspector" owner: self] == NO) { NSLog(@"Could not gorm GormTableColumnInspector"); return nil; } return self; } - (void) awakeFromNib { [cellTable setDoubleAction: @selector(ok:)]; } - (NSString *)_getCellClassName { id cell = [[self object] dataCell]; NSString *customClassName = [[(id)NSApp classManager] customClassForObject: cell]; NSString *result = nil; if(customClassName == nil) { result = NSStringFromClass([cell class]); } else { result = customClassName; } return result; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { /* title Alignment */ if (sender == titleAlignmentMatrix) { if ([[sender cellAtRow: 0 column: 0] state] == NSOnState) { [[object headerCell] setAlignment: NSLeftTextAlignment]; } else if ([[sender cellAtRow: 0 column: 1] state] == NSOnState) { [[object headerCell] setAlignment: NSCenterTextAlignment]; } else if ([[sender cellAtRow: 0 column: 2] state] == NSOnState) { [[object headerCell] setAlignment: NSRightTextAlignment]; } // [[object headerCell] setAlignment: [[titleAlignmentMatrix selectedRow] tag]]; if ([[object tableView] headerView] != nil) { [[[object tableView] headerView] setNeedsDisplay: YES]; } } /* contents Alignment */ else if (sender == contentsAlignmentMatrix) { if ([[sender cellAtRow: 0 column: 0] state] == NSOnState) { [[object dataCell] setAlignment: NSLeftTextAlignment]; } else if ([[sender cellAtRow: 0 column: 1] state] == NSOnState) { [[object dataCell] setAlignment: NSCenterTextAlignment]; } else if ([[sender cellAtRow: 0 column: 2] state] == NSOnState) { [[object dataCell] setAlignment: NSRightTextAlignment]; } [[object tableView] setNeedsDisplay: YES]; } /* Identifier */ else if (sender == identifierTextField) { [object setIdentifier: [identifierTextField stringValue]]; } /* Options */ else if (sender == editableSwitch) { [object setEditable: ([editableSwitch state] == NSOnState)]; } else if (sender == resizableSwitch) { [object setResizable: ([resizableSwitch state] == NSOnState)]; } /* set Button */ else if (sender == setButton || sender == cellTable) { id classManager = [(id)NSApp classManager]; id doc = [(id)NSApp activeDocument]; id cell = nil; int i = [cellTable selectedRow]; NSArray *list = [classManager allSubclassesOf: @"NSCell"]; NSString *className = [list objectAtIndex: i]; BOOL isCustom = [classManager isCustomClass: className]; Class cls = nil; if(isCustom) { NSString *superClass = [classManager nonCustomSuperClassOf: className]; cls = NSClassFromString(superClass); NSLog(@"Setting custom cell.."); } else { cls = NSClassFromString(className); } // initialize cell = [[cls alloc] init]; [cell setEditable: [object isEditable]]; [object setDataCell: cell]; [[object tableView] setNeedsDisplay: YES]; // add it to the document, since it needs a custom class... if(isCustom) { NSString *name = nil; // An object needs to be a "named object" to have a custom class // assigned to it. Add it to the document and get the name. [doc attachObject: cell toParent: object]; if((name = [doc nameForObject: cell]) != nil) { [classManager setCustomClass: className forName: name]; } } RELEASE(cell); } /* default button */ else if (sender == defaultButton) { [object setDataCell: [[NSTextFieldCell alloc] init]]; [[object tableView] setNeedsDisplay: YES]; [self setObject: [self object]]; // reset... } else if (sender == columnTitle) { [[object headerCell] setStringValue: [columnTitle stringValue]]; [[[object tableView] headerView] setNeedsDisplay: YES]; } // sort descriptor... else if( sender == sortKey || sender == sortSelector || sender == sortOrder ) { NSString *selectorString = [sortSelector stringValue]; NSString *key = [sortKey stringValue]; SEL selector = (([selectorString isEqual: @""]) ? NULL:NSSelectorFromString(selectorString)); BOOL isAscending = ([sortOrder indexOfSelectedItem] == 0); NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:key ascending:isAscending selector:selector]; [object setSortDescriptorPrototype: sortDescriptor]; [sortDescriptor release]; } [super ok:sender]; } /* Sync from object ( NSTableColumn ) changes to the inspector */ - (void) revert:(id) sender { NSArray *list; NSString *cellClassName; NSUInteger index; if ( object == nil ) return; list = [[(id)NSApp classManager] allSubclassesOf: @"NSCell"]; cellClassName = [self _getCellClassName]; index = [list indexOfObject: cellClassName]; if(index != NSNotFound) { [cellTable selectRow: index byExtendingSelection: NO]; [cellTable scrollRowToVisible: index]; } /* title Alignment */ switch ([[object headerCell] alignment]) { case NSLeftTextAlignment: [titleAlignmentMatrix selectCellAtRow: 0 column: 0]; break; case NSCenterTextAlignment: [titleAlignmentMatrix selectCellAtRow: 0 column: 1]; break; case NSRightTextAlignment: [titleAlignmentMatrix selectCellAtRow: 0 column: 2]; break; default: NSLog(@"Unhandled alignment value..."); break; } /* contents Alignment */ switch ([[object dataCell] alignment]) { case NSLeftTextAlignment: [contentsAlignmentMatrix selectCellAtRow: 0 column: 0]; break; case NSCenterTextAlignment: [contentsAlignmentMatrix selectCellAtRow: 0 column: 1]; break; case NSRightTextAlignment: [contentsAlignmentMatrix selectCellAtRow: 0 column: 2]; break; default: NSLog(@"Unhandled alignment value..."); break; } [identifierTextField setStringValue: [(NSTableColumn *)object identifier]]; [columnTitle setStringValue: [[(NSTableColumn *)object headerCell] stringValue]]; /* options */ if ([object isResizable]) [resizableSwitch setState: NSOnState]; else [resizableSwitch setState: NSOffState]; if ([object isEditable]) [editableSwitch setState: NSOnState]; else [editableSwitch setState: NSOffState]; /* sort */ NSSortDescriptor *sortDescriptor = [(NSTableColumn *)object sortDescriptorPrototype]; if(sortDescriptor != nil) { SEL sel = [sortDescriptor selector]; NSString *selectorString = ((sel == NULL) ? @"" : NSStringFromSelector(sel)); [sortKey setStringValue: [sortDescriptor key]]; [sortSelector setStringValue: selectorString]; [sortOrder selectItemAtIndex: ([sortDescriptor ascending]?0:1)]; } else { [sortKey setStringValue: @""]; [sortSelector setStringValue: @""]; [sortOrder selectItemAtIndex: 0]; } [super revert:sender]; } // Data Source // replace by an NSBrowser ? - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSArray *list = [[(id)NSApp classManager] allSubclassesOf: @"NSCell"]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSArray *list = [[(id)NSApp classManager] allSubclassesOf: @"NSCell"]; id value = nil; if([list count] > 0) { value = [list objectAtIndex: rowIndex]; } return value; } // delegate - (BOOL) tableView: (NSTableView *)tableView shouldEditTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { return NO; } - (BOOL) tableView: (NSTableView *)tv shouldSelectRow: (NSInteger)rowIndex { return YES; } /* delegate method for identifier */ -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.3.1/Palettes/3Containers/ContainersPalette.m0000644000175000017500000001224514327003123021242 0ustar heronheron/* main.m Copyright (C) 1999 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNSBrowser.h" #include "GormNSTableView.h" #include "GormNSOutlineView.h" #include /* --------------------------------------------------------------- * Containers Palette Display */ @interface ContainersPalette: IBPalette { } @end @implementation ContainersPalette - (void) finishInstantiate { NSView *contents; NSTableView *tv; NSOutlineView *ov; NSTableColumn *tc; NSSize contentSize; id v; originalWindow = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192) styleMask: NSBorderlessWindowMask backing: NSBackingStoreRetained defer: NO]; [originalWindow setTitle: @"Containers"]; contents = [originalWindow contentView]; /*******************/ /* First Column... */ /*******************/ // NSBrowser // 124 is the minimum width. Below that the browser doesn't display !! v = [[GormNSBrowser alloc] initWithFrame: NSMakeRect(10, 98, 124, 78)]; [v setHasHorizontalScroller: YES]; [v setTitled: YES]; [v loadColumnZero]; [contents addSubview: v]; RELEASE(v); // NSTabView v = [[NSTabView alloc] initWithFrame: NSMakeRect(10, 10, 124, 78)]; [contents addSubview: v]; { NSView *vv; NSTabViewItem *tvi; tvi = [[NSTabViewItem alloc] initWithIdentifier: @"item 1"]; [tvi setLabel: @"Item 1"]; vv = [[NSView alloc] init]; [vv setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable]; [tvi setView: vv]; [v addTabViewItem: tvi]; RELEASE(tvi); tvi = [[NSTabViewItem alloc] initWithIdentifier: @"item 2"]; [tvi setLabel: @"Item 2"]; vv = [[NSView alloc] init]; [vv setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable]; [tvi setView: vv]; [v addTabViewItem: tvi]; RELEASE(tvi); } RELEASE(v); /********************/ /* Second Column... */ /********************/ // NSTableView v = [[NSScrollView alloc] initWithFrame: NSMakeRect(136, 10, 124, 78)]; [contents addSubview: v]; [v setHasVerticalScroller: YES]; [v setHasHorizontalScroller: NO]; contentSize = [v contentSize]; [v setBorderType: NSBezelBorder]; tv = [[GormNSTableView alloc] initWithFrame: NSZeroRect]; tc = [[NSTableColumn alloc] initWithIdentifier: @"column1"]; [[tc headerCell] setStringValue: @" "]; [tc setWidth: floor(contentSize.width/2)]; [tc setMinWidth: 20]; [tc setResizable: YES]; [tc setEditable: YES]; [tv addTableColumn: tc]; RELEASE(tc); tc = [[NSTableColumn alloc] initWithIdentifier: @"column2"]; [[tc headerCell] setStringValue: @" "]; [tc setWidth: ceil(contentSize.width/2)]; [tc setMinWidth: 20]; [tc setResizable: YES]; [tc setEditable: YES]; [tv addTableColumn: tc]; RELEASE(tc); [v setDocumentView: tv]; [contents addSubview: v]; RELEASE(tv); RELEASE(v); // NSOutlineView v = [[NSScrollView alloc] initWithFrame: NSMakeRect(136, 98, 124, 78)]; [contents addSubview: v]; [v setHasVerticalScroller: YES]; [v setHasHorizontalScroller: NO]; contentSize = [v contentSize]; [v setBorderType: NSBezelBorder]; ov = [[GormNSOutlineView alloc] initWithFrame: NSZeroRect]; tc = [[NSTableColumn alloc] initWithIdentifier: @"classes"]; [[tc headerCell] setStringValue: @" "]; [tc setWidth: floor(contentSize.width/2)]; [tc setMinWidth: 20]; [tc setResizable: YES]; [tc setEditable: YES]; [ov addTableColumn: tc]; [ov setOutlineTableColumn: tc]; RELEASE(tc); tc = [[NSTableColumn alloc] initWithIdentifier: @"outlets"]; [[tc headerCell] setStringValue: @" "]; [tc setWidth: ceil(contentSize.width/2)]; [tc setMinWidth: 20]; [tc setResizable: YES]; [tc setEditable: YES]; [ov addTableColumn: tc]; RELEASE(tc); tc = [[NSTableColumn alloc] initWithIdentifier: @"actions"]; [[tc headerCell] setStringValue: @" "]; [tc setWidth: ceil(contentSize.width/2)]; [tc setMinWidth: 20]; [tc setResizable: YES]; [tc setEditable: YES]; [ov addTableColumn: tc]; RELEASE(tc); [ov setDrawsGrid: NO]; [ov setIndentationPerLevel: 10.]; [ov setIndentationMarkerFollowsCell: YES]; [ov expandItem: @"NSObject" expandChildren: YES]; [v setDocumentView: ov]; RELEASE(ov); RELEASE(v); } @end gorm-1.3.1/Palettes/3Containers/GormNSTableViewInspector.gorm/0000755000175000017500000000000014327003123023236 5ustar heronherongorm-1.3.1/Palettes/3Containers/GormNSTableViewInspector.gorm/objects.gorm0000644000175000017500000003716314327003123025567 0ustar heronheronGNUstep archive000f4240:00000020:00000158:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @ @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 % @2 @G @m @V@  @m @V@J0 &0 % @ @ @k@ @O  @k@ @OJ0 &01NSButton1 NSControl% @? @E @c` @1  @c` @1J0 &%01 NSButtonCell1 NSActionCell1NSCell0&%Allows multiple selection01NSImage01NSMutableString&%GSSwitch01NSFont%&&&&&&JJ&&&&&&&I0&00&%GSSwitchSelected&&& &&0% @? @7 @c` @1  @c` @1J0 &%00&%Allows empty selection&&&&&&JJ&&&&&&&I&&& &&0% @? @ @c` @1  @c` @1J0 &%00 &%Allows column selection&&&&&&JJ&&&&&&&I&&& &&0!1NSTextFieldCell0"& % Selection0#% A@&&&&&&JJ &&&&&&&I0$1NSColor0%&% NSNamedColorSpace0&&% System0'&% windowBackgroundColor0(0)&% NSCalibratedRGBColorSpace ? @ @%%0* % @c @a @W @V  @W @VJ0+ &0, % @ @ @V @P  @V @PJ0- &0.% @ @A @S @1  @S @1J0/ &%0001&%Vertical#&&&&&&JJ&&&&&&&I&&& &&02% @ @, @S @1  @S @1J03 &%0405& % Horizontal#&&&&&&JJ&&&&&&&I&&& &&0607& % Scrollers#&&&&&&JJ &&&&&&&I$08) ? @%%09 % @2 @s  @m @S@  @m @S@J0: &0; % @ @ @l @L  @l @LJ0< &0=1NSForm1NSMatrix% @E @" @a` @F  @a` @FJ0> &%0?1 NSFormCell#&&&&&&JJ&&&&&&&I 0@0A&%Field:#&&&&&&JJ&&&&&&&% @a` @5 @0B%&0C&% controlBackgroundColor0D) ?* ?* ?* ?* ?0E& % NSFormCell%%0F &0G0H&%17#H&&&&&&JJ&&&&&&&I B0I0J& % Row Height:#J&&&&&&JJ&&&&&&&0K0L&%2L&&&&&&JJ&&&&&&&I B0M0N&%Columns NumberN&&&&&&JJ&&&&&&&2 ok:v24@0:8@16G0O0P& % Dimensions#&&&&&&JJ &&&&&&&I$0Q) ? %%0R % @2 @a @` @V  @` @VJ0S &0T % @ @E @^ @P  @^ @PJ0U &0V% ?Ԕ @GW@. @] @1  @] @1J0W &%0X0Y& % Draws grid&&&&&&JJ&&&&&&&I&&& &&0Z% ?Ԕ @:\ @] @1  @] @1J0[ &%0\0]&%Allows resizing&&&&&&JJ&&&&&&&I&&& &&0^% ?Ԕ @p @] @1  @] @1J0_ &%0`0a&%Allows reordering&&&&&&JJ&&&&&&&I&&& &&0b0c&%Options#&&&&&&JJ &&&&&&&I$0d) ? @ @ %%0e % @2 @m @` @P@  @` @P@J0f &0g % @ @ @^@ @C  @^@ @CJ0h &0i% @$ @ @Y @;  @Y @;J-0j &%0k#&&&&&&JJ&&&&&&&I% @9 @; 0l) ?* ?* ?* ?* ?l0m& % NSButtonCell0n0o&%Button#&&&&&&JJ&&&&&&&I&&& &&%%0p &0q0r0s& % noBorder_nib#&&&&&&JJ&&&&&&&I&&& &&0t0u0v&%line_nib#&&&&&&JJ&&&&&&&I&&& &&0w0x0y& % bezel_nib#&&&&&&JJ&&&&&&&I&&& &&0z0{0|& % ridge_nib#&&&&&&JJ&&&&&&&I&&& &&q0}0~&%Border#&&&&&&JJ &&&&&&&I$0) ? @ @%%0% @X@ @$ @R @7  @R @7J0 &%0#&&&&&&JJ&&&&&&&I 00&%Field:#&&&&&&JJ&&&&&&&% @R @7 @B0) ?* ?* ?* ?* ?0& % NSFormCell%%0 &00&%0#&&&&&&JJ&&&&&&&I A00&%Tag:#&&&&&&JJ&&&&&&&0 % @c @m @W @P@  @W @P@J0 &0 % @ @ @S @C  @S @CJ0 &01 NSColorWell% @& @ @J @?  @J @?J-0 &%0&&&&&&JJ&&&&&&&0) ? ? ? ? ?00& % Background &&&&&&JJ&&&&&&& @ @%%00&%Title0% A &&&&&&JJ&&&&&&& %%$0&%Window0&%TableView Attributes Inspector ? @L @Ç @|I&   @ @0 &0 &01NSMutableDictionary1 NSDictionary&00&%Box50& % FormCell(0)G0& % ButtonCell(2)0& % ButtonCell(7)`0&%Box(0)0& % ActionCell(0)k0&%Box 0&%Form10% @e @T@ @U @B  @U @BJ0 &%0#&&&&&&JJ&&&&&&&I 00&%Field:#&&&&&&JJ&&&&&&&% @U @1 @0) ?* ?* ?* ?* ?0& % NSFormCell%%0 &0#&&&&&&JJ&&&&&&&I B00&%Field 1#&&&&&&JJ&&&&&&&0#&&&&&&JJ&&&&&&&I B00&%Field 2#&&&&&&JJ&&&&&&&0&%View(3);0&%Button6Z0&%Button120&%Form=0&%Matrix2i0&%Box290& % FormCell(3)0&%ButtonCell(10)w0& % ButtonCell(0)0& % ButtonCell(5)X0&%View(1) 0&%View(6)0&%Button30&%Box4e0±& % Inspector0ñ& % FormCell(1)K0ı& % ButtonCell(3)00ű& % ButtonCell(8)q0Ʊ& % ColorWell0DZ&%View(4)T0ȱ&%Button5V0ɱ&%Box1*0ʱ& % FormCell(4)0˱&%ButtonCell(11)z0̱& % ButtonCell(1)0ͱ& % ButtonCell(6)\0α&%Button.0ϱ&%View(2),0б&%Form20ѱ&%Button7^0ұ&%Button20ӱ&%Box3R0Ա&% NSOwner0ձ&%GormTableViewInspector0ֱ& % FormCell(2)?0ױ& % ButtonCell(4)40ر& % ButtonCell(9)t0ٱ&%View(0) 0ڱ&%View(5)g0۱&%Button40ܱ&%Cell(0)0ݱ &WW01NSNibConnector0߱&% NSOwner01NSNibOutletConnector߰0&%window00ɰ0ΰϐ0ϐ000Ӱ0߰0&%verticalScrollerSwitch0߰0&%horizontalScrollerSwitch0߰0&%rowsHeightForm01 NSNibControlConnectorΰ0&%ok:0 ߰00ڐ0߰0& % borderMatrix0 0&%ok:00а0߰0&%tagField00ư0 ư0&%ok:P߰P&%backgroundColorPP&%delegatePаP&%delegatePҰPP۰P ߰P &%multipleSelectionSwitchP ߰P &%emptySelectionSwithP ߰P&%columnSelectionSwitchP ҰP&%ok:P P ۰PҰP& % nextKeyViewPPȰǐPǐPѰǐP߰P&%drawgridSwitchP߰P&%resizingSwitchP߰P&%reorderingSwitchP ȰP &%ok:P!  P" Ѱ P#߰P$&%tagFormP%P&& % nextKeyViewP'&P(ư&P)Ȱ&P*&P+Ѱ&P,ΰ&P-&P.۰&P/P0ٰP1P2ҐP3̰P4ېP5ϰɐP6İΐP7 P8&% NSFirstP9&%ok:P:װP; 89P<P=P>ðP?ְP@ǰӐPAȐPBͰPCѐPDڰPEŰPFذPGPH˰PIPJАPKʰАPLPMܰƐPN°PO&%initialFirstResponderPP&gorm-1.3.1/Palettes/3Containers/GormNSTableViewInspector.gorm/data.info0000644000175000017500000000027014327003123025023 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/3Containers/GormNSTableViewInspector.gorm/data.classes0000644000175000017500000000072114327003123025526 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormTableViewInspector = { Actions = ( ); Outlets = ( borderMatrix, horizontalScrollerSwitch, optionMatrix, rowsHeightForm, verticalScrollerSwitch, backgroundColor, tagForm, multipleSelectionSwitch, emptySelectionSwith, columnSelectionSwitch, drawgridSwitch, resizingSwitch, reorderingSwitch ); Super = IBInspector; }; }gorm-1.3.1/Palettes/3Containers/GormTableViewSizeInspector.h0000644000175000017500000000222214327003123023034 0ustar heronheron/* GormTableViewSizeInspector -- size inspector for table and table subclasses. Copyright (C) 2001 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormTableViewSizeInspector_h #define INCLUDED_GormTableViewSizeInspector_h #include @interface GormTableViewSizeInspector : GormViewSizeInspector @end #endif gorm-1.3.1/Palettes/3Containers/GormNSOutlineView.m0000644000175000017500000001477514327003123021170 0ustar heronheron/* GormNSOutlineView.m Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2002 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormNSOutlineView.h" /* --------------------------------------------------------------- * NSTableView dataSource */ @interface NSOutlineViewDataSource: NSObject { } - (id)outlineView: (NSOutlineView *)outlineView child: (NSInteger)index ofItem: (id)item; - (BOOL)outlineView: (NSOutlineView *)outlineView isItemExpandable: (id)item; - (NSInteger) outlineView: (NSOutlineView *)outlineView numberOfChildrenOfItem: (id)item; - (id) outlineView: (NSOutlineView *)outlineView objectValueForTableColumn: (NSTableColumn *)tableColumn byItem: (id)item; @end @implementation NSOutlineViewDataSource // required methods for data source - (id)outlineView: (NSOutlineView *)outlineView child: (NSInteger)index ofItem: (id)item { if([item isEqual: @"NSObject"]) { switch(index) { case 0: return @"NSApplication"; break; case 1: return @"NSTableColumn"; break; case 2: return @"NSStatusBar"; break; case 3: return @"NSResponder"; break; default: break; } } if([item isEqual: @"NSResponder"]) { switch(index) { case 0: return @"NSWindow"; break; case 1: return @"NSView"; break; default: break; } } else if(item == nil) { if(index == 0) return @"NSObject"; } return nil; } - (BOOL)outlineView: (NSOutlineView *)outlineView isItemExpandable: (id)item { if([item isEqual: @"NSObject"]) return YES; if([item isEqual: @"NSResponder"]) return YES; return NO; } - (NSInteger) outlineView: (NSOutlineView *)outlineView numberOfChildrenOfItem: (id)item { if(item == nil) return 1; else if([item isEqual: @"NSObject"]) return 4; else if([item isEqual: @"NSResponder"]) return 2; return 0; } - (id) outlineView: (NSOutlineView *)outlineView objectValueForTableColumn: (NSTableColumn *)tableColumn byItem: (id)item { NSString *value = nil; if([item isEqual: @"NSObject"]) { if([[tableColumn identifier] isEqual: @"classes"]) { value = @"NSObject"; } else if([[tableColumn identifier] isEqual: @"outlets"]) { value = @"0"; } else if([[tableColumn identifier] isEqual: @"actions"]) { value = @"0"; } } else { if([[tableColumn identifier] isEqual: @"classes"]) { value = @"NSApplication"; } else if([[tableColumn identifier] isEqual: @"outlets"]) { value = @"2"; } else if([[tableColumn identifier] isEqual: @"actions"]) { value = @"3"; } } return value; } @end static id _sharedDataSource = nil; @implementation NSOutlineView (GormPrivate) + (id) allocSubstitute { return [GormNSOutlineView alloc]; } @end @implementation GormNSOutlineView + (id) sharedDataSource { if (_sharedDataSource == nil) { _sharedDataSource = [[NSOutlineViewDataSource alloc] init]; } return _sharedDataSource; } - (id) initWithFrame: (NSRect) aRect { self = [super initWithFrame: aRect]; [super setDataSource: [GormNSOutlineView sharedDataSource]]; _gormDataSource = nil; return self; } - (void)setDataSource: (id)anObject { _gormDataSource = anObject; } - (id)dataSource { return _gormDataSource; } - (void)setDelegate: (id)anObject { _gormDelegate = anObject; } - (id)delegate { return _gormDelegate; } - (void)setGormDelegate: (id)anObject { [super setDelegate: anObject]; } - (void)encodeWithCoder: (NSCoder*) aCoder { id oldDelegate; int oldNumberOfRows; // set real values... _allowsColumnReordering = _gormAllowsColumnReordering; _allowsColumnResizing = _gormAllowsColumnResizing; _allowsColumnSelection = _gormAllowsColumnSelection; _allowsMultipleSelection = _gormAllowsMultipleSelection; _allowsEmptySelection = _gormAllowsEmptySelection; _dataSource = _gormDataSource; oldDelegate = _delegate; _delegate = _gormDelegate; oldNumberOfRows = _numberOfRows; _numberOfRows = 0; [super encodeWithCoder: aCoder]; // set fake values back... _numberOfRows = oldNumberOfRows; _allowsColumnReordering = YES; _allowsColumnResizing = YES; _allowsColumnSelection = YES; _allowsMultipleSelection = NO; _allowsEmptySelection = YES; _delegate = oldDelegate; _dataSource = _sharedDataSource; } - (id) initWithCoder: (NSCoder*) aCoder { self = [super initWithCoder: aCoder]; [super setDataSource: [GormNSOutlineView sharedDataSource]]; _gormAllowsColumnReordering = _allowsColumnReordering; _gormAllowsColumnResizing = _allowsColumnResizing; _gormAllowsColumnSelection = _allowsColumnSelection; _gormAllowsMultipleSelection = _allowsMultipleSelection; _gormAllowsEmptySelection = _allowsEmptySelection; _gormDelegate = _delegate; _delegate = nil; return self; } - (void) setGormAllowsColumnReordering: (BOOL)flag { _gormAllowsColumnReordering = flag; } - (BOOL) gormAllowsColumnReordering { return _gormAllowsColumnReordering; } - (void) setGormAllowsColumnResizing: (BOOL)flag { _gormAllowsColumnResizing = flag; } - (BOOL) gormAllowsColumnResizing { return _gormAllowsColumnResizing; } - (void) setGormAllowsMultipleSelection: (BOOL)flag { _gormAllowsMultipleSelection = flag; } - (BOOL) gormAllowsMultipleSelection { return _gormAllowsMultipleSelection; } - (void) setGormAllowsEmptySelection: (BOOL)flag { _gormAllowsEmptySelection = flag; } - (BOOL) gormAllowsEmptySelection { return _gormAllowsEmptySelection; } - (void) setGormAllowsColumnSelection: (BOOL)flag { _gormAllowsColumnSelection = flag; } - (BOOL) gormAllowsColumnSelection { return _gormAllowsColumnSelection; } - (NSString *) className { return @"NSOutlineView"; } @end gorm-1.3.1/Palettes/3Containers/GormTableViewAttributesInspector.h0000644000175000017500000000367414327003123024264 0ustar heronheron/* GormTableViewAttributesInspector.h Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Author: Gregory John Casamento Date: Aug 2001. 2003, 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormTableViewAttributesInspector_h #define INCLUDED_GormTableViewAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSForm; @class NSMatrix; @class NSPopUpButton; @interface GormTableViewAttributesInspector: IBInspector { /* selection */ NSButton *multipleSelectionSwitch; NSButton *emptySelectionSwith; NSButton *columnSelectionSwitch; /* scrollers */ NSButton *verticalScrollerSwitch; NSButton *horizontalScrollerSwitch; /* border and rows */ NSMatrix *borderMatrix; NSForm *rowsHeightForm; /* options */ NSButton *drawgridSwitch; NSButton *resizingSwitch; NSButton *reorderingSwitch; /* tag */ NSForm *tagForm; NSColorWell *backgroundColor; } @end #endif /* INCLUDED_GormTableViewAttributesInspector_h */ gorm-1.3.1/Palettes/3Containers/GormNSTableColumnInspector.gorm/0000755000175000017500000000000014327003123023561 5ustar heronherongorm-1.3.1/Palettes/3Containers/GormNSTableColumnInspector.gorm/objects.gorm0000644000175000017500000004666714327003123026123 0ustar heronheronGNUstep archive000f4240:0000002b:000001ad:00000002:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @@ @801 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 % @C @t @W@ @I  @W@ @IJ0 &0 % @ @ @V@ @>  @V@ @>J0 &01NSMatrix1 NSControl% @ @ @R @9  @R @9J0 &%01 NSActionCell1NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&I% @9 @9 01NSColor0&% NSCalibratedRGBColorSpace ?* ?* ?* ?* ?0& % NSButtonCell01 NSButtonCell0&%Button&&&&&&JJ&&&&&&&I&&& &&%%0 &001NSImage0& % leftalign_nib&&&&&&JJ&&&&&&&I&&& &&000&%centeralign_nib&&&&&&JJ&&&&&&&I&&& &&0 0!0"&%rightalign_nib&&&&&&JJ&&&&&&&I&&& &&2 ok:v24@0:8@160#1NSTextFieldCell0$&%Title&&&&&&JJ&&&&&&&I0%0&&% NSNamedColorSpace0'&% System0(&% windowBackgroundColor0) ? %%0* % @a @t @W@ @I  @W@ @IJ0+ &0, % @ @ @V@ @>  @V@ @>J0- &0.% @ @ @R @9  @R @9J0/ &%00&&&&&&JJ&&&&&&&I% @9 @9 01 ?* ?* ?* ?* ?102& % NSButtonCell03&&&&&&JJ&&&&&&&I&&& &&%%04 &05&&&&&&JJ&&&&&&&I&&& &&06&&&&&&JJ&&&&&&&I&&& &&07&&&&&&JJ&&&&&&&I&&& &&60809&%Contents&&&&&&JJ&&&&&&&I%0: ? %%0; % @C @q @h@ @G  @h@ @GJ0< &0= % @ @ @f @5  @f @5J0> &0?1NSButton% @ @ @R @0  @R @0J0@ &%0A0B& % Resizable0C0D1NSMutableString&%GSSwitch&&&&&&JJ&&&&&&&I0E0F&%GSSwitchSelected&&& &&0G% @W @ @R @0  @R @0J0H &%0I0J&%EditableC&&&&&&JJ&&&&&&&IE&&& &&0K0L&%Options&&&&&&JJ&&&&&&&I%0M ? @ @%%0N % @C @Y @h@ @Y  @h@ @YJ0O &0P % @ @ @g @T@  @g @T@J0Q &0R1 NSPopUpButton% @N @ @^ @6  @^ @6J0S &%0T1NSPopUpButtonCell1NSMenuItemCell0U%&&&&&&JJ0V1NSMenu0W &0X1 NSMenuItem0Y& % AscendingJJI0Z0[& %  common_NibbleI0\0]& % DescendingJJII&&&&&&&I&&& > =&&XVX%%%%%0^1 NSTextField% @ @" @J @2  @J @2J0_ &%0`0a&%Order:0b% A@a&&&&&&JJ &&&&&&&I0c&0d&%System0e&%textBackgroundColor0f&d0g& % textColor0h% @N @M @^ @5  @^ @5J0i &%0jU&&&&&&JJ &&&&&&&Icf0k% @N @A @^ @5  @^ @5J0l &%0mU&&&&&&JJ &&&&&&&Icf0n% @ @B @J @2  @J @2J0o &%0p0q& % Selector:bq&&&&&&JJ &&&&&&&Icf0r% @ @N @J @2  @J @2J0s &%0t0u&%Key:bu&&&&&&JJ &&&&&&&Icf0v0w&%Sortingw&&&&&&JJ&&&&&&&I%0x ? %%0y1 NSScrollView% @C @? @h@ @P  @h@ @PJ0z &0{1 NSClipView% @5 @8 @e` @D  @e` @DJ0|1! NSTableView%  @e` @d   @e` @d J||0} &%0~U&&&&&&JJ&&&&&&&0 &01" NSTableColumn0&%column1 C+ A GP01#NSTableHeaderCell0& % Data Cell0% &&&&&&JJ&&&&&&&I0&'0&% controlHighlightColor0&'0&% controlTextColor00&%quatreU&&&&&&JJ&&&&&&&Icf0&'0& %  gridColor0&'0&% controlBackgroundColor01$NSTableHeaderView%  @e` @6  @e` @6J0 &01%GSTableCornerView% @ @ @3 @6  @3 @6J0 &%% A @ @0 &0 &|01& NSScroller% @ @7 @2 @D  @2 @DJ0 &%0U&&&&&&JJ&&&&&&&Jy2 _doScroll:v24@0:8@160 % @5 @ @e` @6  @e` @6J0 &0&'0& %  controlColor{I A A A A 0% @Y @ @P @6  @P @6J0 &%00&%SetU&&&&&&JJ&&&&&&&I&&& &&0% @e @ @P @6  @P @6J0 &%00&%DefaultU&&&&&&JJ&&&&&&&I&&& &&0 % @C @i @h@ @T  @h@ @TJ0 &0 % @ @ @g @M  @g @MJ0 &0% @N @A @^ @5  @^ @5J0 &%0&&&&&&JJ&&&&&&&I0 ? ? ? ? ?0 ?0% @N @" @^ @5  @^ @5J0 &%0&&&&&&JJ&&&&&&&I0 ? ? ? ? ?0 ?0% @ @B @J @2  @J @2J0 &%00&%Title:b&&&&&&JJ &&&&&&&Icf0% @ @$ @J @2  @J @2J0 &%00& % Identifier:b&&&&&&JJ &&&&&&&Icf00& % Attributes&&&&&&JJ&&&&&&&I%0 ? %%00% A &&&&&&JJ&&&&&&& %%%0&%Window0& % TableColumn Attributes Inspector @ @Ç @|I&   @ @p0 &0± &01'NSMutableDictionary1( NSDictionary&?0ı&%PopUpButtonCell(0)T0ű& % TextField(4)^0Ʊ& % ButtonCell(2) 0DZ& % ButtonCell(7)I0ȱ&%TextFieldCell(5)0ɱ&%TextFieldCell(0)`0ʱ&%Box(0)0˱& % ActionCell(0)0̱&%Box 0ͱ&%View(3),0α&%Button60ϱ&%Button10б% @$ @V @L @8  @L @8J0ѱ &%0ұ0ӱ&%Button&&&&&&JJ&&&&&&&I&&& &&0Ա&%GormNSTableView|0ձ& % MenuItem(1)\0ֱ&%Box2;0ױ& % TextField(2)0ر& % TextField(7)n0ٱ& % ScrollViewy0ڱ& % ButtonCell(0)0۱& % ButtonCell(5)70ܱ&%TextFieldCell(3)p0ݱ&%TextFieldCell(8)0ޱ&%View(1) 0߱&%Button3?0& % TableColumn0& % Inspector0& % TextField(0)0& % TextField(5)h0& % ButtonCell(3)50& % ButtonCell(8)0&%TextFieldCell(1)j0&%TextFieldCell(6)0& % TableColumn10"0&%column2 B A GP0#0&% &&&&&&JJ&&&&&&&I0&'0&% controlShadowColor0&'0&% windowFrameTextColor00&%fourU&&&&&&JJ&&&&&&&Icf0& % ActionCell(1)00&%Box(1)0&%View(4)=0&%Button5G0&%Matrix1.0&%Box1*0& % TextField(3)0& % TextField(8)r0& % ButtonCell(1)0& % ButtonCell(6)A0&%TextFieldCell(4)t0&%Button0% @$ @V @L @8  @L @8JP &%PP&%Button&&&&&&JJ&&&&&&&I&&& &&P&%View(2) P&%Button7P&%Button2P% @$ @V @L @8  @L @8JP &%PP &%Button&&&&&&JJ&&&&&&&I&&& &&P &%MatrixP & % MenuItem(0)XP &%Box3NP &% NSOwnerP& % GormTableViewAttributesInspectorP& % TextField(1)P& % TextField(6)kP& % ButtonCell(9)P& % ButtonCell(4)6P&%TextFieldCell(7)P&%TextFieldCell(2)mP&%PopUpButton(0)RP&%View(5)PP&%View(0)P&%Button4P% @$ @N @L @0  @L @0JP &%PP&%SwitchC&&&&&&JJ&&&&&&&IE&&& &&P&%Cell(0)~P &llP1)NSNibConnector P )̰P!)P") P#)P$)ϰP%)P&)͐P'1*NSNibOutletConnector P(&%windowP)*  P*&%titleAlignmentMatrixP+* P,&%contentsAlignmentMatrixP-1+NSNibControlConnector  P.&%ok:P/+ .P0)ְP1)߰P2)P3)P4* P5&%resizableSwitchP6* P7&%editableSwitchP8+ .P9+ .P:) P;)ٰP<)԰ِP=)ԐP>)萐P?)ΰP@)PA* PB& % cellTablePC* PD& % setButtonPE* PF& % defaultButtonPG* PH&%delegatePI* PJ& % dataSourcePK+ PL&%ok:PM+ LPN+ LPO*߰PP& % nextKeyViewPQ* PR&%initialFirstResponderPS)ʰPT)ʐPU)PV+PW&% NSFirstPX&%ok:PY* PZ& % columnTitleP[* P\&%delegateP]*P^& % nextKeyViewP_)P`+WPa&%ok:Pb)Pc)Pd* Pe&%identifierTextFieldPf)Pg) Ph)Pi)Pj* Pk& % sortOrderPl)Pm)Pn)Po)Pp* Pq&%sortKeyPr* Ps& % sortSelectorPt*Pu& % nextKeyViewPv*uPw* uPx*uPy*uPz*uP{*uP|*԰uP}*uP~* uP+WP&%ok:P+WP* P&%delegateP* P+ P&%ok:P* P&%delegateP)P)ްP)̐P) P) P) P) P)ͰP)P)P)۰P)P)֐P)ߐP+WP&%ok:P)ǰP+WP) P)P)ɰŐP)P)P)ܰؐP)P)ԐP)ΐP)P)ȰP)P)אP)ݰP'&gorm-1.3.1/Palettes/3Containers/GormNSTableColumnInspector.gorm/data.info0000644000175000017500000000027014327003123025346 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/3Containers/GormNSTableColumnInspector.gorm/data.classes0000644000175000017500000000064014327003123026051 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormTableViewAttributesInspector = { Actions = ( ); Outlets = ( contentsAlignmentMatrix, editableSwitch, identifierTextField, resizableSwitch, titleAlignmentMatrix, cellTable, defaultButton, setButton, columnTitle, sortOrder, sortKey, sortSelector ); Super = IBInspector; }; }gorm-1.3.1/Palettes/3Containers/GormTableColumnSizeInspector.h0000644000175000017500000000262514327003123023366 0ustar heronheron/* GormTableColumnSizeInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormTableColumnnSizeInspector_h #define INCLUDED_GormTableColumnnSizeInspector_h #include @class NSForm; @interface GormTableColumnSizeInspector : IBInspector { NSForm *widthForm; } @end #endif /* INCLUDED_GormTableColumnnSizeInspector_h */ gorm-1.3.1/Palettes/3Containers/GormTabViewEditor.m0000644000175000017500000000772014327003123021155 0ustar heronheron/* GormTabViewEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormTabViewEditor.h" #define _EO ((NSTabView *)_editedObject) @implementation GormTabViewEditor - (void) setOpened: (BOOL) flag { [super setOpened: flag]; if (flag == YES && currentView) { [document setSelectionFromEditor: currentView]; } } - (NSArray *) selection { return [NSArray arrayWithObject: _EO]; } - (BOOL) activate { if ([super activate]) { currentView = nil; [_EO setDelegate: self]; [self tabView: _EO didSelectTabViewItem: [_EO selectedTabViewItem]]; return YES; } return NO; } - (void) deactivate { if (activated == YES) { [self deactivateSubeditors]; [_EO setDelegate: nil]; [super deactivate]; } } - (void) mouseDown: (NSEvent *) theEvent { BOOL onKnob = NO; { if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _EO]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (parent) return [parent mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } } if (opened == NO) { [super mouseDown: theEvent]; return; } if ([[_EO hitTest: [theEvent locationInWindow]] isDescendantOf: currentView]) { NSDebugLog(@"md %@ descendant of", self); if ([currentView isOpened] == NO) [currentView setOpened: YES]; [currentView mouseDown: theEvent]; } else { NSDebugLog(@"md %@ not descendant of", self); if ([currentView isOpened] == YES) [currentView setOpened: NO]; [_EO mouseDown: theEvent]; } } @end @implementation GormTabViewEditor (TabViewDelegate) - (void) tabView: (NSTabView *)tabView didSelectTabViewItem: (NSTabViewItem *)tabViewItem { if ([tabViewItem view]) { if ([[tabViewItem view] isKindOfClass: [GormViewEditor class]] == NO) { currentView = (GormInternalViewEditor *)[document editorForObject: [tabViewItem view] inEditor: self create: YES]; NSDebugLog(@"dSTVI %@ %@ %@", self, currentView, [tabViewItem view]); NSDebugLog(@"dsTVI %@ %@", self, [document parentEditorForEditor: currentView]); } else { NSDebugLog(@"dsTVI %@ already there", self); } } } - (BOOL) tabView: (NSTabView *)tabView shouldSelectTabViewItem: (NSTabViewItem *)tabViewItem { id view = [[tabView selectedTabViewItem] view]; NSDebugLog(@"shouldSelectTabViewItem called"); if ([view isKindOfClass: [GormInternalViewEditor class]]) { NSDebugLog(@"closing tabviewitem"); [view deactivate]; currentView = nil; openedSubeditor = nil; } return YES; } - (void)tabViewDidChangeNumberOfTabViewItems:(NSTabView *)tabView { // [tabView selectFirstTabViewItem: self]; } @end gorm-1.3.1/Palettes/3Containers/GormTableViewEditor.h0000644000175000017500000000221114327003123021457 0ustar heronheron/* GormTableViewEditor.h - Editor for tableviews. * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: Aug 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormTableViewEditor_h #define INCLUDED_GormTableViewEditor_h #include @class GormNSTableView; @interface GormTableViewEditor : GormViewWithSubviewsEditor { GormNSTableView *tableView; } @end #endif gorm-1.3.1/Palettes/3Containers/GormNSTableColumnSizeInspector.gorm/0000755000175000017500000000000014327003123024414 5ustar heronherongorm-1.3.1/Palettes/3Containers/GormNSTableColumnSizeInspector.gorm/objects.gorm0000644000175000017500000000714014327003123026735 0ustar heronheronGNUstep archive000f4240:0000001b:00000040:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @s@ @P01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @E @b@ @g` @]  @g` @]J-0 &0 % @ @ @e @W  @e @WJ0 &0 1NSForm1NSMatrix1 NSControl% @ @& @c` @Q@  @c` @Q@J0 &%0 1 NSFormCell1 NSActionCell1NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&I 00&%Field:&&&&&&JJ&&&&&&&% @c` @5 @01NSColor0&% NSNamedColorSpace0&% System0&% controlBackgroundColor00&% NSCalibratedRGBColorSpace ?* ?* ?* ?* ?0& % NSFormCell%%0 &0&&&&&&JJ&&&&&&&I B\00&%Minimum:&&&&&&JJ&&&&&&&0&&&&&&JJ&&&&&&&I B\00&%Current:&&&&&&JJ&&&&&&&0 &&&&&&JJ&&&&&&&I B\0!0"&%Maximum:&&&&&&JJ&&&&&&&2 ok:v24@0:8@160#1NSTextFieldCell0$& % Column Width&&&&&&JJ &&&&&&&I0%0&&% windowBackgroundColor0' ? @ @%%%0(&%Window0)&%TableColumne Size Inspector)  @Ç @|I&   @ @0* &0+ &0,1NSMutableDictionary1 NSDictionary&0-&%Box0.&% NSOwner0/&%GormTableColumnSizeInspector00& % Inspector01&%Form 02 &031NSNibConnector0.04-00510061NSNibOutletConnector.007&%window08.109& % widthForm0:010;1NSMutableString&%initialFirstResponder0<1.0=&%delegate0>&gorm-1.3.1/Palettes/3Containers/GormNSTableColumnSizeInspector.gorm/data.info0000644000175000017500000000027014327003123026201 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/3Containers/GormNSTableColumnSizeInspector.gorm/data.classes0000644000175000017500000000026714327003123026711 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormTableColumnSizeInspector = { Actions = ( ); Outlets = ( widthForm ); Super = IBInspector; }; }gorm-1.3.1/Palettes/3Containers/GormTabViewEditor.h0000644000175000017500000000220614327003123021142 0ustar heronheron/* GormTabViewEditor.h - Editor for tabviews. * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: Aug 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormTabViewEditor_h #define INCLUDED_GormTabViewEditor_h #include @interface GormTabViewEditor : GormViewWithSubviewsEditor { int selectedSubview; GormInternalViewEditor *currentView; } @end #endif gorm-1.3.1/Palettes/3Containers/GormTableViewEditor.m0000644000175000017500000003030614327003123021472 0ustar heronheron/* GormTableViewEditor.m - Editor for matrices. * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormTableViewEditor.h" #include "GormNSTableView.h" NSString *IBTableColumnPboardType = @"IBTableColumnPboardType"; static NSCell *_editedCell; static NSCell *_currentHeaderCell; static NSText *_textObject; @interface GormTableViewEditor (Private) - (void) editHeader: (NSTableHeaderView*) th withEvent: (NSEvent *) theEvent; @end @implementation GormTableViewEditor - (void) setFrame: (NSRect)frame { if(tableView != nil) { [tableView deselectAll: self]; } [super setFrame: frame]; } /** * Decide whether an editor can accept data from the pasteboard. */ - (BOOL) acceptsTypeFromArray: (NSArray*)types { return NO; } /** * Activate an editor - inserts it into the view hierarchy or whatever is * needed for the editor to be able to provide its functionality. * This method should be called by the document when an editor is created * or opened. It should be safe to call repeatedly. */ - (BOOL) activate { if ([super activate]) { if ([_editedObject isKindOfClass: [NSScrollView class]]) tableView = [(NSScrollView *)_editedObject documentView]; else tableView = (GormNSTableView *)_editedObject; RETAIN(tableView); // FIXME: Temporary fix. [tableView setAllowsColumnResizing: YES]; [tableView setAllowsColumnSelection: YES]; [tableView setAllowsMultipleSelection: NO]; [tableView setAllowsEmptySelection: YES]; [tableView setAllowsColumnReordering: YES]; [tableView setGormDelegate: self]; return YES; } return NO; } - (void) scrollToPoint: (NSPoint)point { if ([_super_view respondsToSelector:@selector(scrollToPoint:)]) { [(NSClipView *)_super_view scrollToPoint: point]; } } - (NSRect) documentVisibleRect { NSRect visRect = _bounds; if ([_super_view respondsToSelector:@selector(documentVisibleRect)]) { visRect = [(NSClipView *)_super_view documentVisibleRect]; } return visRect; } /** * Deactivate an editor - removes it from the view hierarchy so that objects * can be archived without including the editor. * This method should be called automatically by the 'close' method. * It should be safe to call repeatedly. */ - (void) deactivate { if (activated == YES) { // [tableView unselect]; if ([tableView selectedColumn] != -1) { [tableView deselectColumn: [tableView selectedColumn]]; } [tableView setAllowsColumnResizing: [tableView gormAllowsColumnResizing]]; [tableView setAllowsColumnSelection: [tableView gormAllowsColumnSelection]]; [tableView setAllowsMultipleSelection: [tableView gormAllowsMultipleSelection]]; [tableView setAllowsEmptySelection: [tableView gormAllowsEmptySelection]]; [tableView setAllowsColumnReordering: [tableView gormAllowsColumnReordering]]; [tableView setGormDelegate: nil]; [tableView setNeedsDisplay: YES]; [super deactivate]; } } /* * This method deletes all the objects in the current selection in the editor. */ - (void) deleteSelection { NSDebugLog(@"deleteSelection"); if ([selection count] == 0) { NSDebugLog(@"no column to delete"); } else if([[selection objectAtIndex: 0] isKindOfClass: [NSTableColumn class]]) { [tableView removeTableColumn: [selection objectAtIndex: 0]]; [tableView deselectAll: self]; [self selectObjects: [NSArray array]]; } } /* * This method places the current selection from the editor on the pasteboard. */ - (void) copySelection { NSDebugLog(@"copySelection"); if ([[[self selection] objectAtIndex: 0] isKindOfClass: [NSTableColumn class]]) { [document copyObjects: [self selection] type: IBTableColumnPboardType toPasteboard: [NSPasteboard generalPasteboard]]; } else { NSDebugLog(@"no paste"); } } /* * This method is used to add the contents of the pasteboard to the current * selection of objects within the editor. */ - (void) pasteInSelection { NSArray *objects; NSDebugLog(@"pasteInSelection"); objects = [document pasteType: IBTableColumnPboardType fromPasteboard: [NSPasteboard generalPasteboard] parent: _editedObject]; if (objects == nil) return; if ([objects count] == 0) return; if ([objects count] > 1) { NSDebugLog(@"warning strange behaviour : GormTableViewEditor pasteInSelection"); } else if ([[objects objectAtIndex: 0] isKindOfClass: [NSTableColumn class]] == NO) { NSDebugLog(@"invalid data in IBTableColumnPboardType"); return; } [tableView addTableColumn: [objects objectAtIndex: 0]]; } - (void) mouseDown:(NSEvent*)theEvent { BOOL onKnob = NO; id hitView; { if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _editedObject]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (parent) return [parent mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } } if (opened == NO) { NSDebugLog(@"not opened"); [super mouseDown: theEvent]; return; } hitView = [[tableView enclosingScrollView] hitTest: [[[tableView enclosingScrollView] superview] convertPoint: [theEvent locationInWindow] fromView: nil]]; if (hitView == [tableView headerView]) { if ([theEvent clickCount] == 2) { [self editHeader: hitView withEvent: theEvent]; } else { [hitView mouseDown: theEvent]; } } else if ([hitView isKindOfClass: [NSScroller class]]) { [hitView mouseDown: theEvent]; } else if (hitView == tableView) { if ([theEvent modifierFlags] & NSControlKeyMask) { [super mouseDown: theEvent]; } else if ([tableView selectedColumn] != -1) { [tableView deselectColumn: [tableView selectedColumn]]; } } else if (hitView == self && [theEvent modifierFlags] & NSControlKeyMask) { /* * see if we're making a connection from the selected column. * not useful in vanilla gorm as they have no outlets or actions, * but palettes might find it useful. */ int selectedColumn = [tableView selectedColumn]; if (selectedColumn != -1) { NSPoint pt = [theEvent locationInWindow]; NSRect r = [tableView rectOfColumn: selectedColumn]; pt = [tableView convertPoint:pt fromView:nil]; if (NSMouseInRect(pt, r, [tableView isFlipped])) { /* mouse was inside the selected column */ NSPasteboard *pb; NSPoint dragPoint = [theEvent locationInWindow]; NSTableColumn *col = [[tableView tableColumns] objectAtIndex: selectedColumn]; NSString *name = [document nameForObject: col]; pb = [NSPasteboard pasteboardWithName: NSDragPboard]; [pb declareTypes: [NSArray arrayWithObject: GormLinkPboardType] owner: self]; [pb setString: name forType: GormLinkPboardType]; [NSApp displayConnectionBetween: col and: nil]; [NSApp startConnecting]; [self dragImage: [NSApp linkImage] at: dragPoint offset: NSZeroSize event: theEvent pasteboard: pb source: self slideBack: YES]; } } } } - (void) tableViewSelectionDidChange: (id) tv { if ([tableView selectedColumn] != -1) { [self selectObjects: [NSArray arrayWithObject: [[tableView tableColumns] objectAtIndex: [tableView selectedColumn]]]]; } else { [self selectObjects: [NSArray arrayWithObject: tableView]]; } } - (void) outlineViewSelectionDidChange: (id) tv { if ([tableView selectedColumn] != -1) { [self selectObjects: [NSArray arrayWithObject: [[tableView tableColumns] objectAtIndex: [tableView selectedColumn]]]]; } else { [self selectObjects: [NSArray arrayWithObject: tableView]]; } } - (void) editHeader: (NSTableHeaderView*) th withEvent: (NSEvent *) theEvent { NSText *t; NSTableColumn *tc; NSRect drawingRect; NSUInteger columnIndex = [th columnAtPoint: [th convertPoint:[theEvent locationInWindow] fromView: nil]]; if (columnIndex == NSNotFound) return; _textObject = nil; [[th tableView] scrollColumnToVisible: columnIndex]; t = [[th window] fieldEditor: YES forObject: self]; if ([t superview] != nil) { if ([t resignFirstResponder] == NO) { return; } } // Prepare the cell tc = [[tableView tableColumns] objectAtIndex: columnIndex]; // NB: need to be released when no longer used _editedCell = [[tc headerCell] copy]; _currentHeaderCell = [tc headerCell]; [_editedCell setStringValue: [[tc headerCell] stringValue]]; [_editedCell setEditable: YES]; _textObject = [_editedCell setUpFieldEditorAttributes: t]; drawingRect = [th headerRectOfColumn: columnIndex]; [_editedCell editWithFrame: drawingRect inView: th editor: _textObject delegate: self event: theEvent]; return; } - (void) textDidEndEditing: (NSNotification *)aNotification { [_editedCell endEditing: _textObject]; [_currentHeaderCell setStringValue: [[_textObject text] copy]]; RELEASE(_editedCell); } - (NSDragOperation) draggingEntered: (id)sender { return [self draggingUpdated: sender]; } - (NSDragOperation) draggingUpdated: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { id destination = nil; /* NSView *hitView = [[tableView enclosingScrollView] hitTest: [[[tableView enclosingScrollView] superview] convertPoint: [sender draggingLocation] fromView: nil]]; if (hitView == [tableView headerView]) { NSPoint p = [hitView convertPoint: [sender draggingLocation] fromView: nil]; int columnNumber = [(NSTableHeaderView*) hitView columnAtPoint: p]; if (columnNumber != -1) destination = [[tableView tableColumns] objectAtIndex: columnNumber]; } if (hitView == tableView) destination = tableView; */ if (destination == nil) { int col = 0; destination = _editedObject; if((col = [_editedObject selectedColumn]) != -1) { destination = [[_editedObject tableColumns] objectAtIndex: col]; } } [NSApp displayConnectionBetween: [NSApp connectSource] and: destination]; return NSDragOperationLink; } else { return NSDragOperationNone; } } - (BOOL) performDragOperation: (id)sender { return ([self draggingUpdated: sender] == NSDragOperationLink); } - (NSWindow *)windowAndRect: (NSRect *)prect forObject: (id) object { if (object == tableView) { *prect = [tableView convertRect: [tableView visibleRect] toView :nil]; return _window; } else { return [super windowAndRect: prect forObject: object]; } } @end gorm-1.3.1/Palettes/3Containers/GNUmakefile0000644000175000017500000000355014327003123017511 0ustar heronheron# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make PALETTE_NAME = 3Containers 3Containers_PALETTE_ICON = ContainersPalette 3Containers_PRINCIPAL_CLASS = ContainersPalette 3Containers_OBJC_FILES = \ ContainersPalette.m \ inspectors.m \ GormNSBrowser.m \ GormNSTableView.m \ GormTableViewEditor.m \ GormTabViewEditor.m \ GormNSOutlineView.m \ GormBrowserAttributesInspector.m \ GormTabViewAttributesInspector.m \ GormTableColumnAttributesInspector.m \ GormTableColumnSizeInspector.m \ GormTableViewAttributesInspector.m \ GormTableViewSizeInspector.m 3Containers_RESOURCE_FILES = \ ContainersPalette.tiff \ GormNSBrowserInspector.gorm \ GormNSTableViewInspector.gorm \ GormNSTableColumnInspector.gorm \ GormNSTableColumnSizeInspector.gorm \ GormTabViewInspector.gorm \ palette.table 3Containers_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/palette.make -include GNUmakefile.postamble gorm-1.3.1/Palettes/3Containers/GormNSTableView.h0000644000175000017500000000337714327003123020567 0ustar heronheron/* GormNSTableView.h Copyright (C) 2001 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNSTableView_h #define INCLUDED_GormNSTableView_h #include #include @interface GormNSTableView : NSTableView { id _gormDataSource; id _gormDelegate; BOOL _gormAllowsColumnReordering; BOOL _gormAllowsColumnResizing; BOOL _gormAllowsColumnSelection; BOOL _gormAllowsMultipleSelection; BOOL _gormAllowsEmptySelection; } - (void) setGormDelegate: (id)anObject; - (void) setGormAllowsColumnReordering: (BOOL)flag; - (BOOL) gormAllowsColumnReordering; - (void) setGormAllowsColumnResizing: (BOOL)flag; - (BOOL) gormAllowsColumnResizing; - (void) setGormAllowsMultipleSelection: (BOOL)flag; - (BOOL) gormAllowsMultipleSelection; - (void) setGormAllowsEmptySelection: (BOOL)flag; - (BOOL) gormAllowsEmptySelection; - (void) setGormAllowsColumnSelection: (BOOL)flag; - (BOOL) gormAllowsColumnSelection; @end #endif gorm-1.3.1/Palettes/3Containers/GormTableColumnAttributesInspector.h0000644000175000017500000000354714327003123024606 0ustar heronheron/* GormTableColumnAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormTableColumnAttributesInspector_h #define INCLUDED_GormTableColumnAttributesInspector_h #include @class NSButton; @class NSMatrix; @class NSTextField; @class NSTableView; @class NSForm; @class NSPopUpButton; @interface GormTableColumnAttributesInspector : IBInspector { NSMatrix *titleAlignmentMatrix; NSMatrix *contentsAlignmentMatrix; NSTextField *identifierTextField; NSButton *resizableSwitch; NSButton *editableSwitch; NSButton *setButton; NSButton *defaultButton; NSTableView *cellTable; NSTextField *columnTitle; /* sorting */ NSTextField *sortKey; NSTextField *sortSelector; NSPopUpButton *sortOrder; } @end #endif /* INCLUDED_GormTableColumnAttributesInspector_h */ gorm-1.3.1/Palettes/3Containers/GNUmakefile.preamble0000644000175000017500000000131214327003123021271 0ustar heronheron# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) 3Containers_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.3.1/Palettes/3Containers/GormNSOutlineView.h0000644000175000017500000000341714327003123021152 0ustar heronheron/* GormNSOutlineView.h Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2002 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNSOutlineView_h #define INCLUDED_GormNSOutlineView_h #include #include @interface GormNSOutlineView : NSOutlineView { id _gormDataSource; id _gormDelegate; BOOL _gormAllowsColumnReordering; BOOL _gormAllowsColumnResizing; BOOL _gormAllowsColumnSelection; BOOL _gormAllowsMultipleSelection; BOOL _gormAllowsEmptySelection; } - (void) setGormDelegate: (id)anObject; - (void) setGormAllowsColumnReordering: (BOOL)flag; - (BOOL) gormAllowsColumnReordering; - (void) setGormAllowsColumnResizing: (BOOL)flag; - (BOOL) gormAllowsColumnResizing; - (void) setGormAllowsMultipleSelection: (BOOL)flag; - (BOOL) gormAllowsMultipleSelection; - (void) setGormAllowsEmptySelection: (BOOL)flag; - (BOOL) gormAllowsEmptySelection; - (void) setGormAllowsColumnSelection: (BOOL)flag; - (BOOL) gormAllowsColumnSelection; @end #endif gorm-1.3.1/Palettes/3Containers/GormTabViewAttributesInspector.h0000644000175000017500000000332614327003123023735 0ustar heronheron/* GormTabViewAttributesInspector.h Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Author: Gregory John Casamento Date: Aug 2001. 2003, 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormTabViewAttributesInspector_h #define INCLUDED_GormTabViewAttributesInspector_h #include @class NSButton; @class NSForm; @class NSMatrix; @class NSStepper; @class NSTextField; @interface GormTabViewAttributesInspector : IBInspector { NSMatrix *typeMatrix; int numberOfDisplayItem; NSButton *allowtruncate; NSTextField *numberOfItemsField; NSStepper *itemStepper; NSTextField *itemLabel; NSForm *itemIdentifier; NSButton *itemPrevious; NSButton *itemNext; } @end #endif /* INCLUDED_GormTabViewAttributesInspector_h */ gorm-1.3.1/Palettes/3Containers/GormTableViewAttributesInspector.m0000644000175000017500000001551014327003123024261 0ustar heronheron/* GormTableViewAttributesInspector.m Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Author: Gregory John Casamento Date: Aug 2001. 2003, 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #import #import #import #import "GormTableViewAttributesInspector.h" #import "GormNSTableView.h" @implementation GormTableViewAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSTableViewInspector" owner: self] == NO) { NSLog(@"Could not gorm GormTableViewInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id)sender { BOOL flag; BOOL isScrollView; id scrollView; scrollView = [object enclosingScrollView]; isScrollView = [scrollView isKindOfClass: [NSScrollView class]]; /* Selection */ if ( sender == multipleSelectionSwitch ) { [object setGormAllowsMultipleSelection:[multipleSelectionSwitch state]]; } else if ( sender == emptySelectionSwith ) { [object setGormAllowsEmptySelection: [emptySelectionSwith state]]; } else if ( sender == columnSelectionSwitch ) { [object setGormAllowsColumnSelection: [columnSelectionSwitch state]]; } /* scrollers */ else if ( (sender == verticalScrollerSwitch) && isScrollView) { flag = ([sender state] == NSOnState) ? YES : NO; [scrollView setHasVerticalScroller: flag]; } else if ( (sender == horizontalScrollerSwitch) && isScrollView) { flag = ([sender state] == NSOnState) ? YES : NO; [scrollView setHasHorizontalScroller: flag]; } /* border */ else if ( (sender == borderMatrix) && isScrollView) { [scrollView setBorderType: [[sender selectedCell] tag]]; } /* dimension */ else if (sender == rowsHeightForm) { int numCols = [(NSTableView*)object numberOfColumns]; int newNumCols = [[sender cellAtIndex: 1] intValue]; float rowHeight = [[sender cellAtIndex: 0] floatValue]; // make sure the minimum height doesn't go below 1. if(rowHeight < 1.0) { rowHeight = 1.0; [[sender cellAtIndex: 0] setFloatValue: 1.0]; } // add/delete columns based on number in #columns field... [object setRowHeight: rowHeight]; if(newNumCols > 0) { if(numCols < newNumCols) { int colsToAdd = newNumCols - numCols; int i = 0; // Add columns from the last to the target number... for(i = 0; i < colsToAdd; i++) { NSString *identifier = [NSString stringWithFormat: @"column%d",(numCols + i + 1)]; NSTableColumn *tc = AUTORELEASE([(NSTableColumn *)[NSTableColumn alloc] initWithIdentifier: (id)identifier]); [tc setWidth: 50]; [tc setMinWidth: 20]; [tc setResizable: YES]; [tc setEditable: YES]; [object addTableColumn: tc]; } } else if(numCols > newNumCols) { int colsToDelete = numCols - newNumCols; int i = 0; NSArray *columns = [object tableColumns]; // remove columns... for(i = 0; i < colsToDelete; i++) { NSTableColumn *tc = [columns objectAtIndex: (i + newNumCols)]; [object removeTableColumn: tc]; } } } // recompute column sizes.. [object sizeToFit]; [object tile]; } /* Options */ else if ( sender == drawgridSwitch ) { [object setDrawsGrid:[drawgridSwitch state]]; } else if ( sender == resizingSwitch ) { [object setGormAllowsColumnResizing: [resizingSwitch state]]; } else if ( sender == reorderingSwitch ) { [object setGormAllowsColumnReordering:[reorderingSwitch state]]; } /* tag */ else if( sender == tagForm ) { [object setTag:[[tagForm cellAtIndex:0] intValue]]; } /* background color */ else if( sender == backgroundColor ) { [object setBackgroundColor: [backgroundColor color]]; } // #warning always needed ? [scrollView setNeedsDisplay: YES]; [super ok:sender]; } /* Sync from object ( NSTableView and its scollView ) changes to the inspector */ - (void) revert: (id) sender { BOOL isScrollView; id scrollView; if ( object == nil ) return; scrollView = [object enclosingScrollView]; isScrollView = [ scrollView isKindOfClass: [NSScrollView class]]; /* selection */ [multipleSelectionSwitch setState: [object gormAllowsMultipleSelection]]; [emptySelectionSwith setState:[object gormAllowsEmptySelection]]; [columnSelectionSwitch setState:[object gormAllowsColumnSelection]]; if (isScrollView) { /* scrollers */ [verticalScrollerSwitch setEnabled: YES]; [verticalScrollerSwitch setState: ([scrollView hasVerticalScroller]) ? NSOnState : NSOffState]; [horizontalScrollerSwitch setEnabled: YES]; [horizontalScrollerSwitch setState: ([scrollView hasHorizontalScroller]) ? NSOnState : NSOffState]; /* border */ [borderMatrix setEnabled: YES]; [borderMatrix selectCellWithTag: [scrollView borderType]]; } else { [verticalScrollerSwitch setEnabled: NO]; [horizontalScrollerSwitch setEnabled: NO]; [borderMatrix setEnabled: NO]; } /* dimension */ [[rowsHeightForm cellAtIndex: 0] setIntValue: [object rowHeight] ]; [[rowsHeightForm cellAtIndex: 1] setIntValue: [(NSTableView*)object numberOfColumns]]; /* options */ [drawgridSwitch setState:[object drawsGrid]]; [resizingSwitch setState:[object gormAllowsColumnResizing]]; [reorderingSwitch setState:[object gormAllowsColumnReordering]]; /* tag */ [[tagForm cellAtIndex:0] setIntValue:[object tag]]; /* background color */ [backgroundColor setColorWithoutAction: [object backgroundColor]]; [super revert:sender]; } /* delegate for tag and Forms */ - (void) controlTextDidEndEditing: (NSNotification*)aNotification { [self ok:[aNotification object]]; } @end gorm-1.3.1/Palettes/3Containers/GormNSBrowser.h0000644000175000017500000000205614327003123020321 0ustar heronheron/* GormNSBrowser.h Copyright (C) 2001 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNSBrowser_h #define INCLUDED_GormNSBrowser_h #include @interface GormNSBrowser : NSBrowser { id _gormDelegate; } @end #endif gorm-1.3.1/Palettes/3Containers/GormBrowserAttributesInspector.m0000644000175000017500000000776614327003123024040 0ustar heronheron/* GormBrowserAttributesInspector.m Copyright (C) 2001-2015 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Gregory John Casamento Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include "GormBrowserAttributesInspector.h" @implementation GormBrowserAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSBrowserInspector" owner: self] == NO) { NSLog(@"Could not gorm GormBrowserInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id)sender { /* options */ if ( sender == multipleSelectionSwitch ) { [object setAllowsMultipleSelection: [multipleSelectionSwitch state]]; } else if ( sender == emptySelectionSwitch ) { [object setAllowsEmptySelection: [emptySelectionSwitch state]]; } else if ( sender == branchSelectionSwitch ) { [object setAllowsBranchSelection: [branchSelectionSwitch state]]; } else if ( sender == separateColumnsSwitch ) { [object setSeparatesColumns: [separateColumnsSwitch state]]; } else if ( sender == horizontalScrollerSwitch ) { [object setHasHorizontalScroller: [horizontalScrollerSwitch state]]; } else if ( sender == displayTitlesSwitch ) { [object setTitled: [displayTitlesSwitch state]]; } else if ( sender == minColumnWidthField ) /* minimum column width */ { // TODO: Use stepper.. [object setMinColumnWidth: [minColumnWidthField intValue]]; [minColumnWidthField setStringValue: [NSString stringWithFormat:@"%.2f", [object minColumnWidth]]]; } else if ( sender == maxVisibleColumnsField ) { [object setMaxVisibleColumns: [maxVisibleColumnsField intValue]]; } else if(sender == tagForm) /* tag */ { [object setTag:[[tagForm cellAtIndex:0] intValue]]; } [super ok:sender]; } /* Sync from object ( NSBrowser ) changes to the inspector */ - (void) revert: (id) sender { if (object == nil) return; [multipleSelectionSwitch setState: [object allowsMultipleSelection]]; [emptySelectionSwitch setState: [object allowsEmptySelection]]; [branchSelectionSwitch setState:[object allowsBranchSelection]]; [separateColumnsSwitch setState:[object separatesColumns]]; [displayTitlesSwitch setState:[object isTitled]]; [horizontalScrollerSwitch setState:[object hasHorizontalScroller]]; [[tagForm cellAtIndex:0] setIntValue: [object tag]]; [minColumnWidthField setStringValue: [NSString stringWithFormat:@"%.2f", [object minColumnWidth]]]; [maxVisibleColumnsField setStringValue: [NSString stringWithFormat:@"%ld", (long int)[object maxVisibleColumns]]]; [super revert:sender]; } /* delegate method for tagForm and minColumnWidthField */ -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.3.1/Palettes/3Containers/GormNSTableView.m0000644000175000017500000001214614327003123020566 0ustar heronheron/* GormNSTableView.m Copyright (C) 2001 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNSTableView.h" /* --------------------------------------------------------------- * NSTableView dataSource */ @interface NSTableViewDataSource: NSObject - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv; - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex; @end static NSString* value1[] = {@"zero", @"un", @"deux", @"trois", @"quatre", @"cinq", @"six", @"sept", @"huit", @"neuf"}; static NSString* value2[] = {@"zero", @"one", @"two", @"three", @"four", @"five", @"six", @"seven", @"eight", @"nine"}; @implementation NSTableViewDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { return 10; } - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { if ([[aTableColumn identifier] isEqual: @"column1"]) { return value1[rowIndex]; } return value2[rowIndex]; } - (void) encodeWithCoder: (NSCoder *)coder { return; } - (id) initWithCoder: (NSCoder *)coder { return self; } @end static id _sharedDataSource = nil; @implementation NSTableView (GormPrivate) + (id) allocSubstitute { return [GormNSTableView alloc]; } @end @implementation GormNSTableView + (id) sharedDataSource { if (_sharedDataSource == nil) { _sharedDataSource = [[NSTableViewDataSource alloc] init]; } return _sharedDataSource; } - (id) initWithFrame: (NSRect) aRect { self = [super initWithFrame: aRect]; [super setDataSource: [GormNSTableView sharedDataSource]]; _gormDataSource = nil; // ASSIGN(_savedColor, [NSColor controlBackgroundColor]); return self; } - (void)setDataSource: (id)anObject { _gormDataSource = anObject; } - (id)dataSource { return _gormDataSource; } - (void)setDelegate: (id)anObject { _gormDelegate = anObject; } - (id)delegate { return _gormDelegate; } - (void)setGormDelegate: (id)anObject { [super setDelegate: anObject]; } - (void)encodeWithCoder: (NSCoder*) aCoder { id oldDelegate; // set actual values... _allowsColumnReordering = _gormAllowsColumnReordering; _allowsColumnResizing = _gormAllowsColumnResizing; _allowsColumnSelection = _gormAllowsColumnSelection; _allowsMultipleSelection = _gormAllowsMultipleSelection; _allowsEmptySelection = _gormAllowsEmptySelection; _dataSource = _gormDataSource; oldDelegate = _delegate; _delegate = _gormDelegate; _numberOfRows = 0; [super encodeWithCoder: aCoder]; // reset fake values... _numberOfRows = 10; _allowsColumnReordering = YES; _allowsColumnResizing = YES; _allowsColumnSelection = YES; _allowsMultipleSelection = NO; _allowsEmptySelection = YES; _delegate = oldDelegate; _dataSource = _sharedDataSource; } - (id) initWithCoder: (NSCoder*) aCoder { self = [super initWithCoder: aCoder]; [super setDataSource: [GormNSTableView sharedDataSource]]; _gormAllowsColumnReordering = _allowsColumnReordering; _gormAllowsColumnResizing = _allowsColumnResizing; _gormAllowsColumnSelection = _allowsColumnSelection; _gormAllowsMultipleSelection = _allowsMultipleSelection; _gormAllowsEmptySelection = _allowsEmptySelection; _gormDelegate = _delegate; _delegate = nil; return self; } - (void) setGormAllowsColumnReordering: (BOOL)flag { _gormAllowsColumnReordering = flag; } - (BOOL) gormAllowsColumnReordering { return _gormAllowsColumnReordering; } - (void) setGormAllowsColumnResizing: (BOOL)flag { _gormAllowsColumnResizing = flag; } - (BOOL) gormAllowsColumnResizing { return _gormAllowsColumnResizing; } - (void) setGormAllowsMultipleSelection: (BOOL)flag { _gormAllowsMultipleSelection = flag; } - (BOOL) gormAllowsMultipleSelection { return _gormAllowsMultipleSelection; } - (void) setGormAllowsEmptySelection: (BOOL)flag { _gormAllowsEmptySelection = flag; } - (BOOL) gormAllowsEmptySelection { return _gormAllowsEmptySelection; } - (void) setGormAllowsColumnSelection: (BOOL)flag { _gormAllowsColumnSelection = flag; } - (BOOL) gormAllowsColumnSelection { return _gormAllowsColumnSelection; } - (NSString *) className { return @"NSTableView"; } @end gorm-1.3.1/Palettes/1Windows/0000755000175000017500000000000014360746517015001 5ustar heronherongorm-1.3.1/Palettes/1Windows/GormDrawerAttributesInspector.gorm/0000755000175000017500000000000014327003123023731 5ustar heronherongorm-1.3.1/Palettes/1Windows/GormDrawerAttributesInspector.gorm/objects.gorm0000644000175000017500000000601014327003123026245 0ustar heronheronGNUstep archive000f4240:00000021:00000043:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ? @" @q @x@JI @8 @(01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01NSBox% @? @f @j@ @P@  @j@ @P@J-0 &0 % @ @ @h @C  @h @CJ0 &0 1 NSPopUpButton1NSButton1 NSControl% @? @$ @` @6  @` @6J-0 &%0 1NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell1 NSActionCell1NSCell0&01NSFont%&&&&&&JJ01NSMenu0 &01 NSMenuItem0&%LeftJJI01NSImage0& %  common_NibbleI00&%BottomJJII00&%RightJJII00&%TopJJII&&&&&&&I&&& &&%%%%%00&%Preferred Edge&&&&&&JJ&&&&&&& @ @%%01NSColor0&% NSNamedColorSpace0 &% System0!&% windowBackgroundColor0"&%Window0#&%Inspector Window# ? @" @Ç @|I&   @ @p0$ &0% &0&1NSMutableDictionary1 NSDictionary& 0'&%View(0)0(&%View(1) 0)&%PopUpButton(0) 0*& % MenuItem(2)0+& % MenuItem(3)0,& % MenuItem(0)0-& % MenuItem(1)0.&% NSOwner0/&%GormDrawerAttributesInspector00&%Box(0)01& % InspectorWin02 &  031NSNibConnector104&% NSOwner05'1060'07(008)(09,0:-0;*0<+0=1NSNibOutletConnector410>1 NSMutableString&%window0?1!NSNibControlConnector)40@ &%ok:0A4)0B& % preferredEdge0C&gorm-1.3.1/Palettes/1Windows/GormDrawerAttributesInspector.gorm/data.info0000644000175000017500000000027014327003123025516 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/1Windows/GormDrawerAttributesInspector.gorm/data.classes0000644000175000017500000000027414327003123026224 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormDrawerAttributesInspector = { Actions = ( ); Outlets = ( preferredEdge ); Super = IBInspector; }; }gorm-1.3.1/Palettes/1Windows/WindowsPalette.m0000644000175000017500000001132614327003123020111 0ustar heronheron/* main.m Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormWindowSizeInspector.h" #include "WindowsPalette.h" @interface GormWindowMaker : NSObject { } @end @implementation GormWindowMaker - (void) encodeWithCoder: (NSCoder*)aCoder { } - (id) initWithCoder: (NSCoder*)aCoder { id w; unsigned style = ( NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSMiniaturizableWindowMask); NSRect screenRect = [[NSScreen mainScreen] frame]; float x = (screenRect.size.width - 500)/2; float y = (screenRect.size.height - 300)/2; NSRect windowRect = NSMakeRect(x,y,500,300); w = [[GormNSWindow alloc] initWithContentRect: windowRect styleMask: style backing: NSBackingStoreRetained defer: NO]; [w setFrame: windowRect display: YES]; [w setTitle: @"Window"]; [w orderFront: self]; RELEASE(self); return w; } @end @interface GormPanelMaker : NSObject { } @end @implementation GormPanelMaker - (void) encodeWithCoder: (NSCoder*)aCoder { } - (id) initWithCoder: (NSCoder*)aCoder { id w; unsigned style = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask; NSRect screenRect = [[NSScreen mainScreen] frame]; float x = (screenRect.size.width - 500)/2, y = (screenRect.size.height - 300)/2; NSRect windowRect = NSMakeRect(x,y,500,300); w = [[GormNSPanel alloc] initWithContentRect: windowRect styleMask: style backing: NSBackingStoreRetained defer: NO]; [w setFrame: windowRect display: YES]; [w setTitle: @"Panel"]; [w orderFront: self]; RELEASE(self); return w; } @end @implementation WindowsPalette - (void) finishInstantiate { NSView *contents; id w; id v; NSBundle *bundle = [NSBundle bundleForClass: [self class]]; NSString *path = [bundle pathForImageResource: @"WindowDrag"]; NSImage *dragImage = [[NSImage alloc] initWithContentsOfFile: path]; NSString *drawerPath = [bundle pathForImageResource: @"Drawer"]; NSImage *drawerImage = [[NSImage alloc] initWithContentsOfFile: drawerPath]; NSFont *systemFont = [NSFont boldSystemFontOfSize: [NSFont systemFontSize]]; RELEASE(originalWindow); originalWindow = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192) styleMask: NSBorderlessWindowMask backing: NSBackingStoreRetained defer: NO]; [originalWindow setTitle: @"Windows"]; contents = [originalWindow contentView]; w = [[GormWindowMaker alloc] init]; v = [[NSButton alloc] initWithFrame: NSMakeRect(35, 100, 80, 64)]; [v setFont: systemFont]; [v setBordered: NO]; [v setImage: dragImage]; [v setImagePosition: NSImageOverlaps]; [v setTitle: @"Window"]; [contents addSubview: v]; [self associateObject: w type: IBWindowPboardType with: v]; RELEASE(v); RELEASE(w); w = [[GormPanelMaker alloc] init]; v = [[NSButton alloc] initWithFrame: NSMakeRect(155, 100, 80, 64)]; [v setFont: systemFont]; [v setBordered: NO]; [v setImage: dragImage]; [v setImagePosition: NSImageOverlaps]; [v setTitle: @"Panel"]; [contents addSubview: v]; [self associateObject: w type: IBWindowPboardType with: v]; RELEASE(v); RELEASE(w); w = [[NSDrawer alloc] init]; v = [[NSButton alloc] initWithFrame: NSMakeRect(95, 30, 80, 64)]; [v setFont: systemFont]; [v setBordered: NO]; [v setImage: drawerImage]; [v setImagePosition: NSImageOverlaps]; [v setTitle: @"Drawer"]; [contents addSubview: v]; [self associateObject: w type: IBObjectPboardType with: v]; RELEASE(v); RELEASE(w); RELEASE(dragImage); RELEASE(drawerImage); } @end @implementation NSWindow (GormPrivate) + (id) allocSubstitute { return [GormNSWindow alloc]; } @end @implementation NSPanel (GormPrivate) + (id) allocSubstitute { return [GormNSPanel alloc]; } @end gorm-1.3.1/Palettes/1Windows/GormWindowSizeInspector.m0000644000175000017500000001325214327003123021756 0ustar heronheron/* GormWindowSizeInspector.m Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 Author: Gregory John Casamento Date: 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include #include "GormWindowSizeInspector.h" /* IBObjectAdditions category for NSPanel */ @implementation NSPanel (IBObjectAdditionsSize) - (NSString*) sizeInspectorClassName { return @"GormWindowSizeInspector"; } @end /* IBObjectAdditions category for NSWindow */ @implementation NSWindow (IBObjectAdditionsSize) - (NSString*) sizeInspectorClassName { return @"GormWindowSizeInspector"; } @end @implementation GormWindowSizeInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSWindowSizeInspector" owner: self] == NO) { NSLog(@"Could not gorm GormNSWindowSizeInspector"); return nil; } [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(windowChangeNotification:) name: NSWindowDidMoveNotification object: object]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(windowChangeNotification:) name: NSWindowDidResizeNotification object: object]; return self; } - (void) setObject: (id)obj { [super setObject: obj]; // set up tags... [top setTag: GSWindowMaxYMargin]; [bottom setTag: GSWindowMinYMargin]; [left setTag: GSWindowMinXMargin]; [right setTag: GSWindowMaxXMargin]; // reset information in forms... } /* Commit changes that the user makes in the Window Size Inspector */ - (void) ok: (id)sender { /* Size */ if (sender == sizeForm || sender == originForm) { NSRect rect; rect = NSMakeRect([[originForm cellAtIndex: 0] floatValue], [[originForm cellAtIndex: 1] floatValue], [[sizeForm cellAtIndex: 0] floatValue], [[sizeForm cellAtIndex: 1] floatValue]); [object setFrame: rect display: YES]; } /* Autosave Name */ else if (sender == autosaveName) { // TODO: is not saved yet (not encoded by object?) [object setFrameAutosaveName: [sender stringValue] ]; } /* Min Size */ else if (sender == minForm) { NSSize size; size = NSMakeSize([[minForm cellAtIndex: 0] floatValue], [[minForm cellAtIndex: 1] floatValue]); [object setMinSize: size]; } /* Max Size */ else if (sender == maxForm) { NSSize size; size = NSMakeSize([[maxForm cellAtIndex: 0] floatValue], [[maxForm cellAtIndex: 1] floatValue]); [object setMaxSize: size]; } /* AutoPosition */ else if ( sender == top || sender == bottom || sender == left || sender == right ) { unsigned mask = [sender tag]; if ([sender state] == NSOnState) { mask = [object autoPositionMask] | mask; } else { mask = [object autoPositionMask] & ~mask; } [object setAutoPositionMask: mask]; } [super ok: sender]; } /* Sync from object ( NSWindow ) changes to the inspector */ - (void) revert: (id)sender { NSRect frame; NSSize size; unsigned int mask; if ( object == nil ) return; // Abort editing of the fields, so that the new values can be // populated. [originForm abortEditing]; [sizeForm abortEditing]; [minForm abortEditing]; [maxForm abortEditing]; mask = [object autoPositionMask]; frame = [object frame]; [[originForm cellAtIndex: 0] setFloatValue: NSMinX(frame)]; [[originForm cellAtIndex: 1] setFloatValue: NSMinY(frame)]; [[sizeForm cellAtIndex: 0] setFloatValue: NSWidth(frame)]; [[sizeForm cellAtIndex: 1] setFloatValue: NSHeight(frame)]; // Autosave name [autosaveName setStringValue: [object frameAutosaveName] ]; size = [object minSize]; [[minForm cellAtIndex: 0] setFloatValue: size.width]; [[minForm cellAtIndex: 1] setFloatValue: size.height]; size = [object maxSize]; [[maxForm cellAtIndex: 0] setFloatValue: size.width]; [[maxForm cellAtIndex: 1] setFloatValue: size.height]; if (mask & GSWindowMaxYMargin) [top setState: NSOnState]; else [top setState: NSOffState]; if (mask & GSWindowMinYMargin) [bottom setState: NSOnState]; else [bottom setState: NSOffState]; if (mask & GSWindowMaxXMargin) [right setState: NSOnState]; else [right setState: NSOffState]; if (mask & GSWindowMinXMargin) [left setState: NSOnState]; else [left setState: NSOffState]; [super revert:object]; } - (void) windowChangeNotification: (NSNotification*)aNotification { [self revert: nil]; } /* Delegate for textFields / Forms */ - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok: [aNotification object]]; } @end gorm-1.3.1/Palettes/1Windows/palette.table0000644000175000017500000000032214327003123017423 0ustar heronheron{ NOTE = "Automatically generated, do not edit!"; NibFile = ""; Class = "WindowsPalette"; Icon = "WindowsPalette"; SubstituteClasses = { GormNSWindow = NSWindow; GormNSPanel = NSPanel; }; } gorm-1.3.1/Palettes/1Windows/inspectors.m0000644000175000017500000000453614327003123017336 0ustar heronheron/* inspectors.m * * This file defines the mapping between objects and thier editors/inspectors. * * Copyright (C) 2000 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "WindowsPalette.h" /* IBObjectAdditions category for NSPanel */ @implementation NSPanel (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormWindowAttributesInspector"; } @end /* IBObjectAdditions category for NSWindow */ @implementation NSWindow (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormWindowAttributesInspector"; } - (NSString*) editorClassName { return @"GormWindowEditor"; } /* * Method to return the image that should be used to display windows within * the matrix containing the objects in a document. */ - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormWindow"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } @end @implementation NSDrawer (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormDrawerAttributesInspector"; } - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle bundleForClass: [WindowsPalette class]]; NSString *path = [bundle pathForImageResource: @"DrawerSmall"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } @end gorm-1.3.1/Palettes/1Windows/GormWindowAttributesInspector.m0000644000175000017500000001346714327003123023202 0ustar heronheron/* GormWindowAttributesInspector.m Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 Author: Gregory John Casamento Date: 2002,2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include #include #include "GormWindowAttributesInspector.h" @implementation GormWindowAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSWindowInspector" owner: self] == NO) { NSLog(@"Could not gorm GormNSWindowInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id)sender { /* title */ if (sender == titleForm) { [object setTitle: [[sender cellAtIndex: 0] stringValue] ]; } /* title */ /* backing Type */ else if (sender == backingMatrix) { [object setBackingType: [[sender selectedCell] tag] ]; } /* Masks */ else if ( ( sender == miniaturizeButton ) || ( sender == closeButton ) || ( sender == resizeBarButton ) ) { unsigned int newStyleMask = [object _styleMask]; if ( [miniaturizeButton state] == NSOnState ) newStyleMask |= NSMiniaturizableWindowMask; else newStyleMask &= ~NSMiniaturizableWindowMask; if ( [closeButton state] == NSOnState ) newStyleMask |= NSClosableWindowMask; else newStyleMask &= ~NSClosableWindowMask; if ( [resizeBarButton state] == NSOnState ) newStyleMask |= NSResizableWindowMask; else newStyleMask &= ~NSResizableWindowMask; [object _setStyleMask: newStyleMask]; // The window proxy hides the current button config since // we need to be able to use them in Gorm. The state is shown // on the inspector window. Redisplay the window anyway. [object display]; } /* backgroundColor */ else if (sender == colorWell) { [object setBackgroundColor: [colorWell color]]; } /* release When Closed */ else if ( sender == releaseButton ) { [object _setReleasedWhenClosed:[releaseButton state]]; } /* hide On Desactivate */ else if ( sender == hideButton ) { [object setHidesOnDeactivate:[hideButton state]]; } /* visible at launch time */ else if ( sender == visibleButton ) { GormDocument *doc = (GormDocument*)[(id)NSApp activeDocument]; [doc setObject: object isVisibleAtLaunch: [visibleButton state]]; } /* deferred */ else if ( sender == deferredButton ) { GormDocument *doc = (GormDocument*)[(id)NSApp activeDocument]; [doc setObject: object isDeferred: [deferredButton state]]; } /* One shot */ else if ( sender == oneShotButton ) { [object setOneShot:[oneShotButton state]]; } /* Dynamic depth */ else if ( sender == dynamicDepthButton ) { [object setDynamicDepthLimit: [dynamicDepthButton state]]; } /* icon name */ else if (sender == iconNameField) { NSString *string = [sender stringValue]; NSImage *image; /* the clearButton is disabled if the form is empty, enabled otherwise */ // This allows the user to set the icon, if they wish, for the mini window. // if it's clear it will default to the application icon. if ([string length] > 0) { image = [NSImage imageNamed: string]; [object setMiniwindowImage: image]; } else { // use the default, if the string is empty. [object setMiniwindowImage: nil]; } } [super ok: sender]; } /* Sync from object ( NSWindow ) changes to the inspector */ - (void) revert:(id) sender { GormDocument *doc; if ( object == nil ) return; doc = (GormDocument*)[(id)NSApp activeDocument]; /* Title */ [[titleForm cellAtIndex: 0] setStringValue: [object title] ]; /* Backing */ [backingMatrix selectCellWithTag: [object backingType] ]; /* Controls / Masks */ [miniaturizeButton setState: ([object _styleMask] & NSMiniaturizableWindowMask)]; [closeButton setState:([object _styleMask] & NSClosableWindowMask)]; [resizeBarButton setState:([object _styleMask] & NSResizableWindowMask)]; /* Options */ [releaseButton setState:[object _isReleasedWhenClosed]]; [hideButton setState:[object hidesOnDeactivate]]; [visibleButton setState:[doc objectIsVisibleAtLaunch: object]]; [deferredButton setState:[doc objectIsDeferred: object]]; [oneShotButton setState:[object isOneShot]]; [dynamicDepthButton setState:[object hasDynamicDepthLimit]]; /* Icon Name */ [iconNameField setStringValue: [[object miniwindowImage] name]]; /* background color*/ [colorWell setColorWithoutAction: [object backgroundColor]]; [super revert:sender]; } /* delegate method for changing the Window title */ - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.3.1/Palettes/1Windows/GormNSWindowInspector.gorm/0000755000175000017500000000000014327003123022146 5ustar heronherongorm-1.3.1/Palettes/1Windows/GormNSWindowInspector.gorm/objects.gorm0000644000175000017500000003136514327003123024475 0ustar heronheronGNUstep archive000f4240:00000021:00000125:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@J@C6I @ @X01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 % @ @ @p @w`  @p @w`J0 &0 1NSForm1NSMatrix1 NSControl% @ @uP @o @6  @o @6J0 &%0 1 NSFormCell1 NSActionCell1NSCell0&01NSFont% A@&&&&&&JJ&&&&&&&I 00&%Field:&&&&&&JJ&&&&&&&% @o @6 @01NSColor0&% NSNamedColorSpace0&% System0&% controlBackgroundColor00&% NSCalibratedRGBColorSpace ?* ?* ?* ?* ?0& % NSFormCell%%0 &0&&&&&&JJ&&&&&&&I A00&%Title:&&&&&&JJ&&&&&&&2 ok:v24@0:8@160 % @e @5 @T @Q  @T @QJ0 &0 % @ @ @Q @F  @Q @FJ0 &0!1 NSColorWell% @ @ @J @B  @J @BJ0" &%0#0$%&&&&&&JJ&&&&&&&0%0&&% NSCalibratedWhiteColorSpace ?* ?0'0(& % Background$(&&&&&&JJ&&&&&&& @ @%%0) % @ @X@ @o @b  @o @bJ0* &0+ % @ @ @m @_@  @m @_@J0, &0-1NSButton% @H @Z @a @0  @a @0J0. &%0/1 NSButtonCell00&%Release when closed011NSImage021NSMutableString&%GSSwitch$&&&&&&JJ&&&&&&&I0304&%GSSwitchSelected&&& &&05% @H @U @a @0  @a @0J06 &%0708&%Hide on deactivate1$8&&&&&&JJ&&&&&&&I3&&& &&09% @H @P @a @0  @a @0J0: &%0;0<&%Visible at launch time1$&&&&&&JJ&&&&&&&I3&&& &&0=% @H @F @a @0  @a @0J0> &%0?0@&%Deferred1$&&&&&&JJ&&&&&&&I3&&& &&0A% @H @9 @a @0  @a @0J0B &%0C0D&%One shot1$&&&&&&JJ&&&&&&&I3&&& &&0E% @H @ @a @0  @a @0J0F &%0G0H&%Dynamic depth limit1$&&&&&&JJ&&&&&&&I3&&& &&0I0J&%Options$&&&&&&JJ&&&&&&& @ @%%0K % @a @o @\ @T  @\ @TJ0L &0M % @ @ @Y @L  @Y @LJ0N &0O% @ @C @U @0  @U @0J0P &%0Q0R& % Miniaturize1$&&&&&&JJ&&&&&&&I3&&& &&0S% @ @4 @U @0  @U @0J0T &%0U0V&%Close1$&&&&&&JJ&&&&&&&I3&&& &&0W% @ ? @U @0  @U @0J0X &%0Y0Z& % Resize bar1$&&&&&&JJ&&&&&&&I3&&& &&0[0\&%Controls$&&&&&&JJ&&&&&&& @ @%%0] % @ @o @`@ @T  @`@ @TJ0^ &0_ % @ @ @] @L  @] @LJ0` &0a% @  @Z@ @L  @Z@ @LJ0b &%0c&&&&&&JJ&&&&&&&I% @Z@ @2 ? ?0d ?* ?* ?* ?* ?0e& % NSButtonCell0f0g&%Radio0h0i&%GSRadio&&&&&&JJ&&&&&&&I0j0k&%GSRadioSelected&&& &&%%0l &0m0n& % NonRetainedh&&&&&&JJ&&&&&&&Ij&&& &&0o0p&%Retainedh&&&&&&JJ&&&&&&&Ij&&& &&0q0r&%Bufferedh&&&&&&JJ&&&&&&&Ij&&& &&m0s0t&%Backing$&&&&&&JJ&&&&&&& @ @%%0u % @ @5 @d@ @Q  @d@ @QJ0v % @ @ @b @F  @b @FJu0w &0x1 NSTextField% @ @& @b @5  @b @5J0y &%0z1NSTextFieldCell$&&&&&&JJ &&&&&&&I0{0|&%System0}&%textBackgroundColor0~|0& % textColor0 &v00&%Miniwindow Icon Name$&&&&&&JJ&&&&&&& @ @%%00&%Title0% A &&&&&&JJ&&&&&&& @ @%%00&% windowBackgroundColor0&%Window0&%Window Attributes Inspector ? @Z@ @Ç @|I&   @ @p0 &0 &01NSMutableDictionary1 NSDictionary&,0&% NSOwner0&%GormWindowAttributesInspector0&%Button5A0& % ActionCell(0)c0& % ButtonCell(6)Q0&%Button4=0& % Inspector0& % FormCell(1) 0&%Button390&%TextFieldCell(0)z0& % ButtonCell(1)70&%Button250&%View(3)M0& % ColorWell!0&%Button1-0& % ButtonCell(5)G0&%ButtonCell(11)q0& % FormCell(0)0& % ButtonCell(9)m0& % ButtonCell(0)/0&%Box5)0&%View(2)+0& % ButtonCell(4)C0&%Box(1)0&%Box40&%ButtonCell(10)o0& % ButtonCell(8)Y0&%Box2K0&%Cell(0)#0&%View(1)0&%Box1]0&%Form 0& % ButtonCell(3)?0&%Box(0)u0&%View(5)v0&%Button9W0& % ButtonCell(7)U0&%Button8S0& % TextField(0)x0&%View(0) 0&%Button7O0&%Matrixa0& % ButtonCell(2);0&%Button6E0&%View(4)_0 &QQ01NSNibConnector01 NSNibOutletConnector0&%initialFirstResponder00000±0ñ0ı0ű0Ʊ0DZ0ȱ0ɱ0ʱ0˱0̱ 0ͱ& % nextKeyView0α 0ϱ 0б 0ѱ 0ұ 0ӱ 0Ա 0ձ 0ֱ 0ױ 0ر&% NSOwner0ٱ& % titleForm0ڱ ذ0۱& % backingMatrix0ܱ ذ0ݱ&%miniaturizeButton0ޱ ذ0߱& % closeButton0 ذ0&%resizeBarButton0 ذ0& % colorWell0 ذ0&%deferredButton0 ذ0&%dynamicDepthButton0 ذ0& % hideButton0 ذ0& % visibleButton0 ذ0& % oneShotButton0 ذ0&%window0 0&%delegate01!NSNibControlConnector0&%ok:0!ذ0!ذ0!ذ0!ذ0!ذ0!ذ0!ذ0!ذ0!ذ0!ذ0 ذ0& % releaseButtonPPPPPPPPPP P P P P PPPPPPPPPPPPPP P& % nextKeyViewP ذP& % iconNameFieldP!P &%ok:P!&gorm-1.3.1/Palettes/1Windows/GormNSWindowInspector.gorm/data.info0000644000175000017500000000027014327003123023733 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/1Windows/GormNSWindowInspector.gorm/data.classes0000644000175000017500000000065314327003123024442 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormWindowAttributesInspector = { Actions = ( ); Outlets = ( backingMatrix, titleForm, iconNameField, colorWell, releaseButton, hideButton, visibleButton, deferredButton, oneShotButton, dynamicDepthButton, miniaturizeButton, closeButton, resizeBarButton ); Super = IBInspector; }; }gorm-1.3.1/Palettes/1Windows/GormDrawerAttributesInspector.m0000644000175000017500000000320414327003123023143 0ustar heronheron/* GormDrawerAttributesInspector.m Copyright (C) 2006 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2006 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* All rights reserved */ #include #include "GormDrawerAttributesInspector.h" @implementation GormDrawerAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormDrawerAttributesInspector" owner: self] == NO) { NSLog(@"Could not gorm GormDrawerAttributesInspector"); return nil; } return self; } - (void) ok: (id) sender { id drawer = [self object]; [drawer setPreferredEdge: [[sender selectedItem] tag]]; } - (void) revert: (id) sender { id drawer = [self object]; NSUInteger i = [preferredEdge indexOfItemWithTag: [drawer preferredEdge]]; if(i != NSNotFound) { [preferredEdge selectItemAtIndex: i]; } } @end gorm-1.3.1/Palettes/1Windows/GormDrawerAttributesInspector.h0000644000175000017500000000213714327003123023142 0ustar heronheron/* GormDrawerAttributesInspector.m Copyright (C) 2006 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2006 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* All Rights reserved */ #include #include @interface GormDrawerAttributesInspector : IBInspector { id preferredEdge; } @end gorm-1.3.1/Palettes/1Windows/WindowsPalette.h0000644000175000017500000000175414327003123020110 0ustar heronheron/* WindowsPalette.h Copyright (C) 1999-2006 Free Software Foundation, Inc. Author: Gregory Casamento Date: 2006 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include @interface WindowsPalette: IBPalette @end gorm-1.3.1/Palettes/1Windows/GormWindowAttributesInspector.h0000644000175000017500000000360114327003123023162 0ustar heronheron/* GormWindowAttributesInspector.h Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 Author: Gregory John Casamento Date: 2002,2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormWindowAttributesInspector_h #define INCLUDED_GormWindowAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSForm; @class NSMatrix; @interface GormWindowAttributesInspector : IBInspector { NSForm *titleForm; NSMatrix *backingMatrix; /* Controls: Masks */ NSButton *miniaturizeButton; NSButton *closeButton; NSButton *resizeBarButton; /* Options */ NSButton *releaseButton; NSButton *hideButton; NSButton *visibleButton; NSButton *deferredButton; NSButton *oneShotButton; NSButton *dynamicDepthButton; /*Background Color */ NSColorWell *colorWell; /* Miniaturized Window Icon */ NSForm *iconNameField; } @end #endif gorm-1.3.1/Palettes/1Windows/GormWindowSizeInspector.h0000644000175000017500000000307414327003123021752 0ustar heronheron/* GormWindowSizeInspector.h Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 Author: Gregory John Casamento Date: 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormWindowSizeInspector_h #define INCLUDED_GormWindowSizeInspector_h #include @class NSButton; @class NSForm; @interface GormWindowSizeInspector : IBInspector { NSForm *originForm; NSForm *sizeForm; NSForm *autosaveName; NSForm *minForm; NSForm *maxForm; /* AutoPosition */ NSButton *top; NSButton *bottom; NSButton *left; NSButton *right; } @end #endif gorm-1.3.1/Palettes/1Windows/DrawerSmall.tiff0000644000175000017500000001670414327003123020056 0ustar heronheronII* 3%%%GGGGGGGGG???0003fff 000 fffWWWWWW 000___wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww0003fffLLLLLL 0000003bbb 0000003++++++++++++///0003000//////000//////000//////000//////000//////000//////000//////000///////////////"""0003uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!!!000300000030000003000000300000030000003000000300000030000003000000300000030000003000000300000030000003000000300000030000003000000300000030000003000000300000030000003000000300000030000003000***5555555555555555555555555555555555555555555555553000`88888888888888888 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!30&Z Qb@(R/home/heron/Development/gnustep/dev-apps/gorm/Palettes/1Windows/DrawerSmall.tiffHHgorm-1.3.1/Palettes/1Windows/WindowsPalette.tiff0000644000175000017500000000064414327003123020606 0ustar heronheronMM* P8$ BaP8)UC D !F pV7G#8*eR2fSg3&yx}C]"uEҩ35NeU)n^U6 咻b٪+. P8$ BaPa? P؄>$E_xV9?&ƤLz[ˣ9_frܲ{2ͧ* ^N_<:ER:k1 "5T$.gB` 00 ygorm-1.3.1/Palettes/1Windows/GNUmakefile0000644000175000017500000000336414327003123017037 0ustar heronheron# GNUmakefile # # Copyright (C) 1999-2005 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make PALETTE_NAME = 1Windows 1Windows_PALETTE_ICON = WindowsPalette 1Windows_OBJC_FILES = \ WindowsPalette.m \ GormDrawerAttributesInspector.m \ GormWindowAttributesInspector.m\ GormWindowSizeInspector.m \ inspectors.m 1Windows_HEADER_FILES = \ GormNSWindow.h \ GormWindowAttributesInspector.h\ GormWindowSizeInspector.h\ GormNSPanel.h \ WindowsPalette.h 1Windows_PRINCIPAL_CLASS = WindowsPalette 1Windows_RESOURCE_FILES = \ WindowsPalette.tiff \ WindowDrag.tiff \ Drawer.tiff \ DrawerSmall.tiff \ GormDrawerAttributesInspector.gorm \ GormNSWindowSizeInspector.gorm \ GormNSWindowInspector.gorm \ palette.table 1Windows_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/palette.make -include GNUmakefile.postamble gorm-1.3.1/Palettes/1Windows/GormNSWindowSizeInspector.gorm/0000755000175000017500000000000014327003123023001 5ustar heronherongorm-1.3.1/Palettes/1Windows/GormNSWindowSizeInspector.gorm/objects.gorm0000644000175000017500000005665414327003123025340 0ustar heronheronGNUstep archive000f4240:00000023:00000132:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ? @" @q @x@JI @x @01 NSView% ? @" @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @ @ @p @x  @p @xJ-0 &0 %  @p @x  @p @xJ0 &0 % @ @n  @^ @R  @^ @RJ0 &0 % @ @ @] @I  @] @IJ0 &01NSForm1NSMatrix1 NSControl% @ @ @Z @F  @Z @FJ0 &%01 NSFormCell1 NSActionCell1NSCell0&01NSFont%&&&&&&JJ&&&&&&&I 00&%Field:&&&&&&JJ&&&&&&&% @Z @5 @01NSColor0&% NSNamedColorSpace0&% System0&% controlBackgroundColor0& % NSFormCell%%0 &0&&&&&&JJ&&&&&&&I B00&%Width:&&&&&&JJ&&&&&&&0&&&&&&JJ&&&&&&&I B0 0!&%Height:&&&&&&JJ&&&&&&&0"0#& % Minimum Size&&&&&&JJ&&&&&&& %%0$ % @ @s @o @R  @o @RJ0% &0& % @ @ @o @I  @o @IJ0' &0(% @` @ @Z @F  @Z @FJ0) &%0*&&&&&&JJ&&&&&&&I 0+0,&%Field:&&&&&&JJ&&&&&&&% @Z @5 @0-& % NSFormCell%%0. &0/&&&&&&JJ&&&&&&&I B0001&%Width:1&&&&&&JJ&&&&&&&02&&&&&&JJ&&&&&&&I B0304&%Height:4&&&&&&JJ&&&&&&&205% @@ @ @T @F  @T @FJ06 &%07&&&&&&JJ&&&&&&&I 0809&%Field:&&&&&&JJ&&&&&&&% @T @5 @0:& % NSFormCell%%0; &0<&&&&&&JJ&&&&&&&I A@0=0>&%X:>&&&&&&JJ&&&&&&&0?&&&&&&JJ&&&&&&&I A@0@0A&%Y:&&&&&&JJ&&&&&&&<0B0C&%FrameC&&&&&&JJ&&&&&&& %%0D % @a @n  @^ @R  @^ @RJ0E &0F % @ @ @] @I  @] @IJ0G &0H% @ @ @Z @F  @Z @FJ0I &%0J&&&&&&JJ&&&&&&&I 0K0L&%Field:&&&&&&JJ&&&&&&&% @Z @5 @0M& % NSFormCell%%0N &0O&&&&&&JJ&&&&&&&I B0P0Q&%Width:&&&&&&JJ&&&&&&&0R&&&&&&JJ&&&&&&&I B0S0T&%Height:&&&&&&JJ&&&&&&&R0U0V& % Maximum Size&&&&&&JJ&&&&&&& %%0W % @H @$ @e@ @e@  @e@ @e@J0X &0Y % @ @ @c @b  @c @bJ0Z &0[1NSButton% @K @F @H @I  @H @IJ0\ &%0]1 NSButtonCell0^1NSImage @H @H0_0`&% NSCalibratedWhiteColorSpace 0a &0b1NSBitmapImageRep1 NSImageRep0c&% NSDeviceRGBColorSpace @H @HII0I00d1NSData&$$II*$O?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????+++???+++O???UUUUUU888888++++++UUU+++O???UUU+++UUUUUUUUUUUUUUUqqqUUUqqqUUUUUUUUUUUU+++O???UUUUUUqqqUUU888UUUUUUqqqqqq++++++UUU+++O???UUUUUUUUUUUU888UUUUUUUUUUUU+++O???+++O++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 00$$R0e% A@&&&&&&JJ&&&&&&&I&&& &&0f% @Q  @4 @I  @4 @IJ%0g &%0h0i0j& % GormEVLinee&&&&&&JJ&&&&&&&I0k0l& % GormEVCoil&&& &&0m% @Q @W @4 @I  @4 @IJ 0n &%0oie&&&&&&JJ&&&&&&&Ik&&& &&0p% @Y @P @I @4  @I @4J)0q &%0r0s&%Button0t0u& % GormEHLinee&&&&&&JJ&&&&&&&I0v0w& % GormEHCoil&&& &&0x% @ @P @I @4  @I @4J,0y &%0zte&&&&&&JJ&&&&&&&Iv&&& &&0{1NSTextFieldCell0|& % Autopositione&&&&&&JJ &&&&&&&I0}0~&% windowBackgroundColor00&% NSCalibratedRGBColorSpace ? @ @%%0 % @ @g` @o` @H  @o` @HJ0 % @ @ @n @<  @n @<J0 &01 NSTextField% @ @ @m @5  @m @5J0 &%0&&&&&&JJ &&&&&&&I00&%System0&%textBackgroundColor00& % textColor0 &00& % Autosave Name&&&&&&JJ&&&&&&& %%00&%Title0% A &&&&&&JJ&&&&&&& %%}0&%Window0&%Window Size Inspector ? @T@ @Ç @|I&   @ @p0 &0 &01NSMutableDictionary1 NSDictionary&-0& % FormCell(12)R0&% NSOwner0&%GormWindowSizeInspector0&%Button4x0&%Button[0& % Inspector0& % FormCell(1)?0&%Button3p0&%TextFieldCell(0)0& % ButtonCell(1)h0&%Button2m0& % FormCell(5)0&%View(3)&0& % FormCell(11)O0&%Form3(0&%Button1f0& % FormCell(9)20&%BoxD0& % FormCell(0)<0&%Form10& % ButtonCell(0)]0&%View(2) 0& % FormCell(4)70& % FormCell(10)*0& % ButtonCell(4)z0&%Box(1)0& % FormCell(8)/0&%Box3W0&%Box2 0&%Box1$0& % FormCell(3)0&&&&&&JJ&&&&&&&I B00&%Height:&&&&&&JJ&&&&&&&0&%View(1) 0&%FormH0&%Box(0)0& % ButtonCell(3)r0& % FormCell(7)0& % FormCell(13)J0&%Form(0)50& % TextField(0)0&%View1Y0±&%View(0)0ñ& % FormCell(2)0ı&&&&&&JJ&&&&&&&I B0ű0Ʊ&%Width:&&&&&&JJ&&&&&&&0DZ& % TextField0ȱ% @S @` @T @,  @T @,J0ɱ &%0ʱ0˱&%Titlee&&&&&&JJ &&&&&&&I0̱ ? ? ? ? ?0ͱ ?0α&%ViewF0ϱ& % ButtonCell(2)o0б& % FormCell(6)0ѱ &DD01 NSNibConnector0ӱ ǰ01!NSNibOutletConnector0ձ&%window0ֱ 0ױ 0ر 0ٱ ΰ0ڱ 0۱ 0ܱ 0ݱ 0ޱ 0߱ 0 0!0&%top0!0&%bottom0!0&%left0!0&%right0 0!01"NSMutableString&%sizeForm0 ΐ0!0"&%maxForm0 0!0"&%minForm0!0"& % nextKeyView0!0"&%delegate0!01#NSNibControlConnector0"&%ok:0#0#0#0"&%ok:0#0"&%ok:0 P °P P P P P P ðP P P !P & % originFormP !P & % autosaveNameP !P& % nextKeyViewP!P!P!P#P&%ok:P P P P P аP P P P P P P P P! P" P# ϰP$ P% P&!P'&%initialFirstResponderP(&gorm-1.3.1/Palettes/1Windows/GormNSWindowSizeInspector.gorm/data.info0000644000175000017500000000027014327003123024566 0ustar heronheronGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Palettes/1Windows/GormNSWindowSizeInspector.gorm/data.classes0000644000175000017500000000045414327003123025274 0ustar heronheron{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormWindowSizeInspector = { Actions = ( ); Outlets = ( minForm, sizeForm, window, bottom, left, maxForm, right, top, originForm, autosaveName ); Super = IBInspector; }; }gorm-1.3.1/Palettes/1Windows/Drawer.tiff0000644000175000017500000005047614327003123017071 0ustar heronheronII*PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNOOOPPPPPPPPPOOONNNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP@P LP@P.Q6Q(R/home/heron/Development/gnustep/dev-apps/gorm/Palettes/1Windows/Drawer.tiffHHgorm-1.3.1/Palettes/1Windows/GNUmakefile.preamble0000644000175000017500000000130714327003123020620 0ustar heronheron# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) 1Windows_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.3.1/Palettes/1Windows/WindowDrag.tiff0000644000175000017500000005030214327003123017676 0ustar heronheronII*PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP P@PPPP(R ' 'gorm-1.3.1/Palettes/5Formatters/0000755000175000017500000000000014327003123015457 5ustar heronherongorm-1.3.1/Palettes/5Formatters/5Formatters.palette/0000755000175000017500000000000014327003123021327 5ustar heronherongorm-1.3.1/Palettes/5Formatters/5Formatters.palette/Resources/0000755000175000017500000000000014327003123023301 5ustar heronherongorm-1.3.1/Palettes/5Formatters/5Formatters.palette/Resources/Info-gnustep.plist0000644000175000017500000000012614327003123026733 0ustar heronheron{ NOTE = "Automatically generated, do not edit!"; NSExecutable = "5Formatters"; } gorm-1.3.1/Palettes/5Formatters/5Formatters.palette/Resources/palette.table0000644000175000017500000000020314327003123025743 0ustar heronheron{ NOTE = "Automatically generated, do not edit!"; NibFile = ""; Class = "FormattersPalette"; Icon = "FormattersPalette"; } gorm-1.3.1/Palettes/5Formatters/5Formatters.palette/Resources/energy_formatter.tiff0000644000175000017500000000731414327003123027534 0ustar heronheronMM*?O BaPd6DbQ8'FcQ+HdR8t~I'JbiT]/KS9 i d9Fm=N@ M6W' -.QBFi}Ta 4z3j2^L*rK9"8]_Xdm]!Wk\I/ nn9ߌ(m0VOf 0Z걩3pn3C6-rwqa+z~#݀7\mh{xRELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmgorm-1.3.1/Palettes/5Formatters/5Formatters.palette/Resources/bytecount_formatter.tiff0000644000175000017500000000716414327003123030262 0ustar heronheronMM*J?O BaPd6DbQ8'FcQ+HdR8t~I'JbiT]/KS9 i7DђF9s0ƨpKi=J Q.>+0jN֫t mJ:]U.R|J][վh\,}NQF'A\I30;$+A{P## #B(=RS$s H, HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmgorm-1.3.1/Palettes/5Formatters/5Formatters.palette/Resources/measurement_formatter.tiff0000644000175000017500000000731014327003123030564 0ustar heronheronMM*?O BaPd6DbQ8'FcQ+HdR8t~I'Jbh\ʦS8!. SI6'Qig@P4jd N2\B5UV**J\Y68]ah[uB7g5ew/v&ѯֹ} Z~ӏd9O'z[K87C5^#O6 {m kt.vt# 姢y{"~NeD=w]|a:k.$ি A0D@s<ڷ0&hBB<4JDnV?LЍ0cOAGGH(ZF$Fh9\HE򼴃 ##p #(=RSxs H HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmgorm-1.3.1/Palettes/5Formatters/5Formatters.palette/Resources/date_interval_formatter.tiff0000644000175000017500000000724014327003123031062 0ustar heronheronMM*v?O BaPd6DbQ8'FcQ+HdR8t~I'JbiT]/AD+f-/Lxt6LBc9(3T>Ep8D huxMfTԩt.8hun\!z%]WE_ ^`4c^2eو +d1}5,T#K:z5._e4^wctN+gx>fi+a o=S '_><W?KcJЊBP" %P>Q*,ilHELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmgorm-1.3.1/Palettes/5Formatters/5Formatters.palette/Resources/FormattersPalette.tiff0000644000175000017500000000745414327003123027632 0ustar heronheronMM*?O BaPd6DbQ8Cv=HaX\`HRdIנ 4gSHS-P`L ;cY2a:L5Ta'C Rc\RzhA\} BqX5Kj$ |ӗG7(f30ӣ0}._O [~=k2n[i]_KptwDڸ7̄7-gt;h?>{ⅳlۣ A  ?pT2hD%BD@$S0,@dWH8/4:mFH궐Ir P1 jzKI:|KhJHr,$jԹZM) ҪC7!Oh\q C2dDRF#}#QT+RġNuPԐu9RUGT(## #(=RS܇s H HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmgorm-1.3.1/Palettes/5Formatters/5Formatters.palette/Resources/date_comp_formatter.tiff0000644000175000017500000000711614327003123030176 0ustar heronheronMM*$?O BaPd6DbQ8'FcQ+HdR8t~I'JbiT]/KS9 i7Dә;Pg4 eDRe4U6ELTcu@* Wh5ALO,5zu[cKx,7 kq`0|&*jDv\&3Lrp\v^Zro qF4/Yg68X~¹*-JOho"yByӞGquz׾]7WQ~=}0## #(=RSs H HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmgorm-1.3.1/Palettes/5Formatters/5Formatters.palette/Resources/length_formatter.tiff0000644000175000017500000000720214327003123027520 0ustar heronheronMM*X?O BaPd6DbQ8'FcQ+HdR8t~I'JbiTB ri"@8ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmgorm-1.3.1/Palettes/5Formatters/5Formatters.palette/5Formatters0000755000175000017500000020416014327003123023473 0ustar heronheronELF>@p@8@,+@@@BBL\\  L\\PP$$PtdtBtBtBllQtdRtdL\\hhGNU1 " ܿfk"z(>Xp"Jm 5Ms\z   ii80i b i!i(ib!ihX_end_edata__bss_start__cxa_finalizeGLIBC_2.2.5libc.so.6./5Formatters.palette/./5FormatterspredefinedNumberFormatsobjc_msg_lookup_superobjc_msgSenddefaultNumberFormatIndex__objc_load__objc_ivar_offset_IBPalette.originalWindow.NSStringFromClassNSAppIBWillInspectObjectNotificationIBFormatterPboardType._OBJC_REF_CLASS_NSWindow._OBJC_REF_CLASS_NSView._OBJC_REF_CLASS_NSUnarchiver._OBJC_REF_CLASS_NSPersonNameComponentsFormatter._OBJC_REF_CLASS_NSNumberFormatter._OBJC_REF_CLASS_NSNumber._OBJC_REF_CLASS_NSNotificationCenter._OBJC_REF_CLASS_NSMeasurementFormatter._OBJC_REF_CLASS_NSLengthFormatter._OBJC_REF_CLASS_NSImageView._OBJC_REF_CLASS_NSImage._OBJC_REF_CLASS_NSFormatter._OBJC_REF_CLASS_NSDateIntervalFormatter._OBJC_REF_CLASS_NSDateFormatter._OBJC_REF_CLASS_NSDateComponentsFormatter._OBJC_REF_CLASS_NSDate._OBJC_REF_CLASS_NSByteCountFormatter._OBJC_REF_CLASS_NSBundle._OBJC_REF_CLASS_NSArray._OBJC_REF_CLASS_IBPalette._OBJC_REF_CLASS_IBInspectorManager._OBJC_REF_CLASS_FormattersPalette._OBJC_PROTOCOL_IBViewResourceDraggingDelegates._OBJC_INIT_CLASS_FormattersPalette._OBJC_CLASS_NSConstantString._OBJC_CLASS_IBPalette._OBJC_CLASS_FormattersPalette_ITM_registerTMCloneTable_ITM_deregisterTMCloneTable__gmon_start__libgnustep-gui.so.0.29libgnustep-base.so.1.28libpthread.so.0libobjc.so.4.6libm.so.6$@p1 ($(+|BEl7|[OqXlW i"e%-',#" ! $&%) + *( 31 >4ui (\p&\&\6(`(`@`:`&`d`:`'`f`:a`(ada:a`* af(a:0a08af@a;Ha2PagXa7;`a`3hagpab;xa 6a ga;a@6a0ga;aga`@aga@a ga*@a0ga@ b0`0b:Xb`bbb0cbPgb0ib8ib(ib0ib8ibpibhb(icpicxicxici cPg(ch0c6@c6Hc7Pc7Xc7`c07pcP7xc7c7c7c7c7c7c7c7c7c7c8c&8c18c7c@8c&8dX8dp8d8d8 d8(d80d88d8@d8Hd7Pd8Xd7`d 9hd7pd 9xd@9dQ9dY9dp9d9d;d7d;d7d6d7d;d <dY<d7d`<ep<e<e`<e7 e<0e<8e7@e<He<Pe<Xe7`e<he7pe<xe =e@=e7e`=e=e=e=e7e=e=e>e&8e >e&8e9>e?>fG>fV>fa>f7 fp>(fv>0f=8f7@f~>Hf7Pf>Xf<`f>hf>pf>xf7f>f7f>f7f>f7f>f7f?f&8f7fv>f0?fv>f07f7gP?g?g?g? g@(g*@0g@@8g7hg9g9g:g$:gJ:h[:(h}:Hh9hh:h<:hq:h:h;hihahahaib_h__8_X_ `_ (_ _ _ __0___P_H____x__p_@__ __Pgpgggggh0hPhphhh(b _!_"_#(i'0i'b,```` `HHu9HtH5J:%L:%J:h%B:h%::h%2:h%*:hH=)=H"=H9tH8Ht H=<H5<H)HH?HHHtH8HtfD=Cu/UH=8Ht H=9hB]{ff.UHH@Ha<H J8H}HuHUHH HUHMHMHHuHH &<H}HHEHyH<H 7H9HMHHH<H 7H9HvH <H;E1EH57H}LH}HHHEHUHHM6HEH@]f.fUHH0H;H b7H}HuH9HMHHHi;H B7H9HH ;HUHHH;H 7HUHH HUHMHMHHuH~H W;H}HH0]UHHHEL:;L6H}HuHUHMLELMI;HMH}HLHE!H ;H}HH H ;HUHHH :H_6HEH:HH :HUHHH :H46HEH:HH :HHHEHH $HHHL$HHHL$HHHL$mH :HEH}HκQH:1H}H<LEHHHHHHLMML$MQLT$MQLT$MILL$LH7H $3HUH9HHfH O8HHT4  $  H}HH8H :H;LEHHHHHHLMML$MQLT$MQLT$MILL$LH6H U2HUH9HHH x7HH}E  M = HhHH;7H :H:LEHHHHHHLhML$MQLT$MQLT$MILL$LH5H 1HUH9HHH 6HHx hHH(Hx"HK6H D9LEHHHHxHHLL $LHLL$LHLL$H@HD$I4@,/H4H 0HUH9HHpH 5HH H(Wh(hhH`MHv5H 8H(9LEHpHHH`HXHL(ML$MQLT$MQLT$MILL$LXH4H /HUH9HHPH 4HH HWH(HHH@jH4H 7LEHPHHH@HLL $LHLL$LHLL$H@HD$I4~vH /H +H}HH}HHHEH 1H}HH<uH1H *H9HH p1HEH}HEH}HHH ^1H}HHHX1H}HUHH\.H u*H}H H}HH_H 0H}HHI<nH 1H ;*H9H(H 1HEH}HEHxHHH 0HxHHH0H}HUHHĐ]fDUH1H}Hu]f.UHHHq0H )H)H}HuH:H HHZH]@PH= ,cXHHX@E@H@b@h@q@o͏?initregisterViewResourceDraggingDelegate:v24@0:8@16defaultCenter@16@0:8willInspectObject:addObserver:selector:name:object:v48@0:8@16:24@32@40unregisterViewResourceDraggingDelegate:removeObserver:deallocclass#16@0:8bundleForClass:@24@0:8#16pathForImageResource:@24@0:8@16allocinitWithContentsOfFile:initWithFrame:@48@0:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16setImageFrameStyle:v20@0:8i16setImageScaling:v24@0:8Q16setImageAlignment:setImage:setToolTip:addSubview:associateObject:type:with:v40@0:8@16@24@32releaseVv16@0:8initWithContentRect:styleMask:backing:defer:@68@0:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16Q48Q56C64Formattersbytecount_formatterByte Countdate_comp_formatterDate Componentsdate_interval_formatterDate Intervalenergy_formattermeasurement_formatterMeasurementlength_formatterFormatterFormattersPalette@16@0:8v16@0:8v80@0:8@"NSFormatter"16@"NSString"24{_NSRect={_NSPoint=dd}{_NSSize=dd}}32@"NSView"64@"NSString"72v24@0:8@"NSNotification"16C48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32v48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32C16@0:8@"NSArray"16@0:8IBViewResourceDraggingDelegatessetTitle:contentViewplaceFormatter:withImageNamed:atRect:inView:toolTip:v80@0:8@16@24{_NSRect={_NSPoint=dd}{_NSSize=dd}}32@64@72objectcellrespondsToSelector:C24@0:8:16formatterisKindOfClass:C24@0:8#16sharedInspectorManagermainBundlelocalizedStringForKey:value:table:@40@0:8@16@24@32inspectorClassNameaddInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:v52@0:8@16@24@32@40f48setFormatter:typescontainsObject:C24@0:8@16dataForType:unarchiveObjectWithData:countQ16@0:8objectAtIndex:@24@0:8Q16activeDocumenttouchv16@0:8retainisMemberOfClass:numberWithFloat:@20@0:8f16stringValuesetStringValue:setObjectValue:datedescriptionarrayWithObject:finishInstantiateacceptsViewResourceFromPasteboard:forObject:atPoint:C48@0:8@16@24{_NSPoint=dd}32depositViewResourceFromPasteboard:onObject:atPoint:v48@0:8@16@24{_NSPoint=dd}32shouldDrawConnectionFrameC16@0:8viewResourcePasteboardTypesC48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32v48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32@"NSArray"16@0:8zRx AC  <AC  \(AC  |=AC 8 (DAC  XAC  AC  AC  (AC N <(<AC w \HAM$tP`FJ w?;*3$";` ,L|<,|<<\| p&&6_x% ( o( ` Mo   $4C4 % 6\\oH o oo o\%%%%%(`: &d:'f:`(d:`*f:0f;2g7;`3gb; 6 g;@60g;g`@g@ g*@0g@h0`:`b0cPg0i8i(i0i8ipih(ipixixiiPgh6677707P777777777778&8187@8&8X8p88888888787 97 9@9Q9Y9p99;7;767; <Y<7`<p<<`<7<<7<<<7<7< =@=7`====7==>&8 >&89>?>G>V>a>7p>v>=7~>7><>>>7>7>7>7>7?&87v>0?v>077P????@*@@@7 99:$:J:[:}: 9: <: q: :;iaaab b bGCC: (Debian 10.2.1-6) 10.2.1 20210110clang version 9.0.1-16.1 clang version 9.0.1-16.1 FormattersPalette.m/home/heron/Development/gnustep/apps-gorm/Palettes/5FormattersdefaultNumberFormatIndexintpredefinedNumberFormatsisaobjc_classClassNSObjectNSArrayunsigned intNSFocusRingTypeDefaultNSFocusRingTypeNoneNSFocusRingTypeExterior_NSFocusRingTypeNSImageCacheDefaultNSImageCacheAlwaysNSImageCacheBySizeNSImageCacheNeverNSNoInterfaceStyleNSNextStepInterfaceStyleNSMacintoshInterfaceStyleNSWindows95InterfaceStyleGSWindowMakerInterfaceStyleGSTextFillGSTextStrokeGSTextClip_GSTextDrawingModeNSImageInterpolationDefaultNSImageInterpolationNoneNSImageInterpolationLowNSImageInterpolationHigh_NSImageInterpolationNSToolbarDisplayModeDefaultNSToolbarDisplayModeIconAndLabelNSToolbarDisplayModeIconOnlyNSToolbarDisplayModeLabelOnlyNSToolbarSizeModeDefaultNSToolbarSizeModeRegularNSToolbarSizeModeSmallNSNonZeroWindingRuleNSEvenOddWindingRuleNSButtLineCapStyleNSRoundLineCapStyleNSSquareLineCapStyleNSMiterLineJoinStyleNSRoundLineJoinStyleNSBevelLineJoinStyleNSRoundedBezelStyleNSRegularSquareBezelStyleNSThickSquareBezelStyleNSThickerSquareBezelStyleNSDisclosureBezelStyleNSShadowlessSquareBezelStyleNSCircularBezelStyleNSTexturedSquareBezelStyleNSHelpButtonBezelStyleNSSmallSquareBezelStyleNSTexturedRoundedBezelStyleNSRoundRectBezelStyleNSRecessedBezelStyleNSRoundedDisclosureBezelStyleNSNeXTBezelStyleNSPushButtonBezelStyleNSSmallIconButtonBezelStyleNSMediumIconButtonBezelStyleNSLargeIconButtonBezelStyle_NSBezelStyleNSGradientNoneNSGradientConcaveWeakNSGradientConcaveStrongNSGradientConvexWeakNSGradientConvexStrong_NSGradientTypeobjc_objectidoriginalWindow_interface_styleNSInterfaceStyle_next_responder_menu_titleNSString_itemsNSMutableArray_viewlayerContentsPlacementlong intintptr_tNSIntegerNSViewLayerContentsPlacementlayerContentsRedrawPolicyNSViewLayerContentsRedrawPolicyuserInterfaceLayoutDirectionNSUserInterfaceLayoutDirection_frameoriginxdoubleCGFloaty_NSPointNSPointsizewidthheight_NSSizeNSSize_NSRectNSRect_bounds_frameMatrix_boundsMatrix_matrixToWindow_matrixFromWindow_coreAnimationData_super_view_sub_views_window_tracking_rects_cursor_rects_invalidRect_visibleRect_gstate_nextKeyView_previousKeyView_alphaValue_rFlagsflipped_viewhas_subviewshas_currectshas_trkrectshas_draginfoopaque_viewvalid_rectsneeds_displayhas_tooltipsignores_backing_rFlagsType_is_rotated_from_baseunsigned charBOOL_is_rotated_or_scaled_from_base_post_frame_changes_post_bounds_changes_autoresizes_subviews_coordinates_valid_allocate_gstate_renew_gstate_is_hidden_in_live_resize_autoresizingMasklong unsigned intuintptr_tNSUInteger_focusRingTypeNSFocusRingType_autoresizingFrameErrorNSView_superMenu_attachedMenu_notifications_delegate_popUpButtonCell_contents_cell_image_name_fileName_size_flagsarchiveByNamescalabledataRetainedflipDrawsizeWasExplicitlySetuseEPSOnResolutionMismatchcolorMatchPreferredmultipleResolutionMatchingcacheSeparatelyunboundedCacheDepthsyncLoad__imageFlags_reps_colorNSColor_lockedView_cacheModeNSImageCacheModeNSImage_fontfontNamematrix__ARRAY_SIZE_TYPE__matrixExplicitlySetscreenFontfontInfo_fontRefrolecachedScreenFontcachedFlippedFontNSFont_object_value_cellcontents_is_attributed_stringis_highlightedis_disabledis_editableis_rich_textimports_graphicsshows_first_responderrefuses_first_respondersends_action_on_end_editingis_borderedis_bezeledis_scrollablereservedtext_alignis_selectableallows_mixed_statehas_valid_object_valuetypeimage_positionentry_typeallows_undoline_break_modestatemnemonic_locationcontrol_tintcontrol_sizefocus_ring_typebase_writing_directionsubclass_bool_onesubclass_bool_twosubclass_bool_threesubclass_bool_fourin_editinguses_single_line_modebackground_styleGSCellFlagsType_mouse_down_flags_action_mask_formatterNSFormatter_represented_object_reserved1NSCell_tag_target_actionobjc_selectorSEL_control_viewNSActionCell_altContents_altImage_keyEquivalent_keyEquivalentFont_sound_dataNSData_playbackDeviceIdentifier_channelMapping_onlyReference_source_sink_readLockNSConditionLock_playbackLockNSLock_shouldStop_shouldLoopNSSound_keyEquivalentModifierMask_highlightsByMask_showAltStateMask_delayIntervalfloat_repeatInterval_bezel_styleNSBezelStyle_gradient_typeNSGradientType_backgroundColor_imageScalingNSImageScalingNSButtonCell_menuItem_mnemonicLocation_state_image_onStateImage_offStateImage_mixedStateImage_representedObject_submenu_enabled_changesState_isAlternate_indentationchar_toolTipNSMenuItem_menuView_itemCells_horizontal_pad1_highlightedItemIndex_horizontalEdgePad_stateImageOffset_stateImageWidth_imageAndTitleOffset_imageAndTitleWidth_keyEqOffset_keyEqWidth_needsSizing_pad2_cellSize_items_link_leftBorderOffset_titleViewNSMenuView_mcell_belongs_to_popupbutton_needs_sizing_needs_display_pad_imageWidth_titleWidth_keyEquivalentWidth_menuItemHeight_imageToDisplay_titleToDisplay_imageSizeNSMenuItemCell_selectedItem_pbcFlagspullsDownpreferredEdgeusesItemFromMenualtersStateOfSelectedItemarrowPosition__pbcFlagsNSPopUpButtonCellchangedMessagesEnabledautoenableneedsSizingis_tornofftransienthorizontalmainMenuChangedunusedGSMenuFlags_aWindow_bWindow_oldAttachedMenu_oldHiglightedIndexNSMenuNSRespondersheetParentbackingScaleFactor_minimumSize_maximumSize_increments_autosaveName_wvGSWindowDecorationView_contentView_firstResponder_futureFirstResponder_initialFirstResponder_fieldEditor_lastLeftMouseDownView_lastRightMouseDownView_lastOtherMouseDownView_lastDragView_lastDragOperationMask_windowNum_defaultButtonCell_contextmethodsDPScurrentalpha_DPScurrentcmykcolor____DPScurrentgray_DPScurrenthsbcolor___DPScurrentrgbcolor___DPSsetalpha_DPSsetcmykcolor____DPSsetgray_DPSsethsbcolor___DPSsetrgbcolor___GSSetFillColorspace_NSDictionaryGSSetStrokeColorspace_GSSetFillColor_GSSetStrokeColor_DPSashow___DPSawidthshow______DPScharpath__DPSshow_DPSwidthshow____DPSxshow___DPSxyshow___DPSyshow___GSSetCharacterSpacing_GSSetFont_GSSetFontSize_GSGetTextCTMNSAffineTransformGSGetTextPositionGSSetTextCTM_GSSetTextDrawingMode_GSTextDrawingModeGSSetTextPosition_GSShowText__size_tGSShowGlyphs__NSGlyphGSShowGlyphsWithAdvances__DPSgrestoreDPSgsaveDPSinitgraphicsDPSsetgstate_GSDefineGStateGSUndefineGState_GSReplaceGState_DPScurrentflat_DPScurrentlinecap_DPScurrentlinejoin_DPScurrentlinewidth_DPScurrentmiterlimit_DPScurrentpoint__DPScurrentstrokeadjust_DPSsetdash___DPSsetflat_DPSsethalftonephase__DPSsetlinecap_DPSsetlinejoin_DPSsetlinewidth_DPSsetmiterlimit_DPSsetstrokeadjust_DPSconcat_DPSinitmatrixDPSrotate_DPSscale__DPStranslate__GSCurrentCTMGSSetCTM_GSConcatCTM_DPSarc_____DPSarcn_____DPSarct_____DPSclipDPSclosepathDPScurveto______DPSeoclipDPSeofillDPSfillDPSflattenpathDPSinitclipDPSlineto__DPSmoveto__DPSnewpathDPSpathbbox____DPSrcurveto______DPSrectclip____DPSrectfill____DPSrectstroke____DPSreversepathDPSrlineto__DPSrmoveto__DPSstrokeGSSendBezierPath__windingRuleNSWindingRule_lineCapStyleNSLineCapStyle_lineJoinStyleNSLineJoinStyle_lineWidth_flatness_miterLimit_dash_count_dash_phase_dash_pattern_controlPointBounds_cacheImage_pathElements_cachesBezierPath_shouldRecalculateBounds_flatNSBezierPathGSRectClipList__GSRectFillList__GSCurrentDevice___DPScurrentoffset__GSSetDevice___DPSsetoffset__shortDPScomposite________NSCompositingOperationDPScompositerect_____DPSdissolve________GSDrawImage__DPSPrintf__gp_offsetfp_offsetoverflow_arg_areareg_save_area__va_list_tagDPSWriteData__GSReadRect_NSBeepGSWSetViewIsFlipped_GSWViewIsFlippedNSDrawBitmap___________DPSshfillgsMethodTablecontext_infocontext_dataNSMutableDatafocus_stackusedFontsNSSetNSMutableSet_interpNSImageInterpolation_antialias_patternPhase_graphicsPort_isFlipped_compositingOperationNSGraphicsContext_screen_depthNSWindowDepth_screenNumber_supportedWindowDepths_reservedNSScreen_representedFilename_miniaturizedTitle_miniaturizedImage_windowTitle_lastPoint_backingTypeNSBackingStoreType_styleMask_windowLevel_rectNeedingFlush_rectsBeingDrawn_disableFlushWindow_depthLimit_windowController_window_nib_name_window_nib_path_window_frame_autosave_name_document_window_controllers_file_urlfileURLisFileURLNSURL_file_name_file_type_file_modification_dateNSDate_last_component_file_name_autosaved_file_url_print_info_infoNSMutableDictionaryNSPrintInfo_printOp_delegate_printOp_didRunSelector_save_panel_accessory_spa_button_ignoresMultiClickNSControlNSButtonNSPopUpButton_save_type_undo_managerNSUndoManager_change_count_autosave_change_count_document_index_doc_flagsin_closehas_undo_managerpermanently_modifiedautosave_permanently_modifiedRESERVED__docFlagsNSDocument_top_level_objects_owner_segueMapNSMapTable_storyboard_transformNSStoryboard_wcFlagsshould_close_documentshould_cascadenib_is_loaded___wcFlags_reserved2NSWindowController_counterpart_children_parent_cachedImage_colorSpace_hasAlpha_isOpaque_bitsPerSample_pixelsWide_pixelsHighNSImageRep_rectNSCachedImageRep_cachedImageOrigin_attachedSheet_faccepts_dragis_one_shotneeds_flushis_autodisplayoptimize_drawingdynamic_depth_limitcursor_rects_enabledcursor_rects_validvisibleis_keyis_mainis_editedis_released_when_closedis_miniaturizedmenu_excludehides_on_deactivateaccepts_mouse_movedhas_openedhas_closeddefault_button_cell_key_disabledcan_hidehas_shadowis_opaqueviews_need_displayselectionDirectiondisplays_when_screen_profile_changesis_movable_by_window_backgroundallows_tooltips_when_inactiveshows_toolbar_buttonautorecalculates_keyview_loopignores_mouse_eventspreserves_content_during_live_resizeGSWindowFlagsType_toolbar_configurationDictionary_identifier_selectedItemIdentifier_toolbarViewGSToolbarView_displayModeNSToolbarDisplayMode_sizeModeNSToolbarSizeMode_allowsUserCustomization_autosavesConfiguration_visible_customizationPaletteIsRunning_showsBaselineSeparator_build_interfaceBuilderItemsByIdentifier_interfaceBuilderAllowedItemIdentifiers_interfaceBuilderDefaultItemIdentifiers_interfaceBuilderSelectableItemIdentifiersNSToolbar_reserved_1NSWindowiconpaletteDocumentIBPaletteFormattersPalette-[FormattersPalette init]-[FormattersPalette dealloc]-[FormattersPalette placeFormatter:withImageNamed:atRect:inView:toolTip:]-[FormattersPalette finishInstantiate]NSMakeRect-[FormattersPalette willInspectObject:]-[FormattersPalette acceptsViewResourceFromPasteboard:forObject:atPoint:]-[FormattersPalette depositViewResourceFromPasteboard:onObject:atPoint:]-[FormattersPalette shouldDrawConnectionFrame]-[FormattersPalette viewResourcePasteboardTypes]self_cmdfmimageNameframecontentstooltipvimgpathwhrectnotificationNSNotificationocellformatteridentpbnamechangeCounttargetowneruseHistoryNSPasteboardobjpdataarrayfieldValue%4I?: ; $> I : ;  I8  : ;  I: ;8 2 I: ; < I : ; ( I : ;   I8  : ;   I: ; 8 2  : ;  I: ; I: ; 8  I: ;8  : ;  I: ; 8 I!I7 $ >  : ; I: ; 8 < &I I: ;! : ; " I: ; 8# I: ;8$'%I&I''I: ; (.@d: ; 'I)I4*.@d: ; '+: ; I,4: ; I-.@: ; 'I. /.&m?$ i[# i`=p$+  w   O ) = P c + u         p ' C \ t 7     @  4 M  > d y  '     -     Z   7 O i        . C a r    U q    ) > q$e( 4>( 3=pt3?( 3@(3A(EZQE bdW qW ~W   !9Q_v#OB $ 1  < # \ 4  g  t     # $#E ##$'|$ $$(F&U*H(I9 /p 3 8 A 52x p            \      ? -   p2` P}nL7oLq{ $2BTgs~E   "  "  "  "  "  " # " 4 " B " M " ] 4  Q   U \ W QL " d e gW h $ ;<E >E ? P f b OPE RE S|    , 9 E Q _ l  -   ? ] J Zo  {a xP1 3:@'S W)H*N" .l" 1z" 23E 5E 6E 7E 8E 9 ;<W =} z  } ~ b  ? 4   / / 6 1A OB `L $] '(*)*`pq>  ! U b  24 D4 Qh| M X~p- 3 = W C   B%  1 W J X a n w       G Yp < Tg pPp[ Rd S " T " U W X ?_ bf bnE k "   , 8 E V l            %0<L?Rdq~     \Bp 5$: D`9p- ;<=7[>G" ? @VB^CdD~E" F" GUp npIp $ o V@ w 4 n\=spuvw4 x4 yz { | } ~*" " " "4/CQRS]" TiUU bVo?W/X/Y/Z/[/\/]/^" _ `W ad&?e8f lm45&647E8_9         `p>nJ#`##:" E Sa" l!CH T >!H ( - / 1 3 5   7( 90+ ;878 =@I8 ?H[X BP}X DX F` Hh Np Px R T  V2 X 2 Z2 \# _:\ aE cTr es g i k m o$ q"T s"~ y" ~ {")~ }"9  "G ("V 0"h 8"y @" H" P" X" `" h" p" x" " "5+ "D+ "T "e "w+ "A "~ " " " "r " " "W "W "W "~ "~ "( "9~ ("C~ 0"M~ 8"U~ @"d~ H"p P"| X"~ `" h" p" x" " "~ " " "~ " "6 "G "X "k! #~1! #Q! #s! #! #! #" #5" #T" #c" #o~  #v" $(#" &0#" ,8#X <@$%%*%E $%%*%%%%$%%*%%%$%%*%E $%%*%E %E %E %E =$%%*%E %E %E ]$%%*%nsp!)p$%%*%E %E %$%%*%E %E %?%E %E %$%%*%%?$%%*%$%%*%E %E %?%7$%%*%%R%?WE a$%%*%bw&%%*a"-p& %%*$%%*%$%%*% $%%*% $%%*%% J #.)$%%*%?%DI /Y$%%*%?%t%yW $%%*$%%*%&%%*$%%*%?$%%*%%$%%*%R%%E $%%*%E %E 0$%%*%?F$%%*%R\$%%*%E %E %E %E %E $%%*%E %E %E %E %E %E $%%*%) Jp, MG Nd OE PE QE R SE T U V W X \" ` " a#" b 9 A U + s 1 $%%*% %?  $%%*%!%%!$%%*%%6!$%%*%%?%?V!$%%*%l!%l!x!$%%*%E %E %E %E %%E %E %! 4 k!$%%*%E %E %E %E %!!$%%*%E %E %E %E %%E %E %E "$%%*%%:"$%%*%%P"U"F&8"$%%*%%"&n%%*%"$%%*%" "&" %%*"$%%*%%%%%%%%" %" %%6#;#@#E#- O#=e#$u# $/p +%v#H%,p#%/%0?%1#%2%3 ?m# 4 I A$#&)~&, &- &. &/!$&0/#[&1B#&2I#'&3^#'&4#<'&;|&<#&=$$#'Wp~'Z!'[%!%'\G!']R!'^]!%'_|!'`!%'a!&'b!'c!*'d"'e"=&'f\"'gg"&'h"'i"'j"?'k"&'r|'s%A!(Hp'/!" (7!%u!)<p &!*?p!(&*A-&!!sB&N"h--S&E"h,*d&;"h+/+2 +3("" +4&u".Vp#'l"'m"'n"'o"'p#'q 'S#/?p'u#0+pj#0-#&5#&7#&8#&9#&:'k$h2''e$2*~2+Z$@11p$14= W 15$" 16)$" 173$18B$19N$1:&$$ $!$"$#$$$%%&"%'*%(1%)9%*C%+[%,k%-x%.%/%0%1 %2 %3 %4 %5 %689:&<&=@&>`&?~&B&C&D&EZ*(hMp'nO P'Q+'RSC'T+T^'_+U'j+W'" ['" \'" ]'" ^'" _ (" `(na7([b_([c([dY+P' Pk'= q'E(&V+)()x*]/)p***'V+);)x*]/)p***`(V+9)B)x*]/)p**+h*B+`*C+*D+X*E+P*F,H*H,@+I ,+J*`*=V,)Z)x*]/)p**,h*\-0DV)+xE +pE +h +E +` +E ,u +*0V9-))x*]/)p**+h+b/,`.+.G1b,X0+.1$,P5+.1,H?+(2V-)" )h*]/)`**+XE+w/+P~++p+ *`3V;.'*)h*]/)`**+XE+w/+P~++p+ ,H+,@+.3,5+.4_,+ʂ.5`,+Ђ( 6V/p*" )x*]/)p**(@6<VD/*[)x*]/)p**g/+51p|/q+06pH+6M+?6Y+6`+6f+" 6 /usr/GNUstep/System/Library/Headers/Foundation/usr/GNUstep/System/Library/Headers/AppKit/usr/include/usr/GNUstep/Local/Library/Headers/objc/usr/GNUstep/System/Library/Headers/GNUstepGUI/usr/lib/llvm-9/lib/clang/9.0.1/include../../InterfaceBuilder.FormattersPalette.mNSObject.hNSArray.hNSView.hNSImage.hNSInterfaceStyle.hNSGraphicsContext.hNSToolbar.hNSBezierPath.hNSButtonCell.hNSResponder.hNSString.hNSMenu.hstdint.hNSObjCRuntime.hNSUserInterfaceLayout.hNSGeometry.hruntime.hNSCell.hNSColor.hNSFont.hNSFormatter.hNSActionCell.hNSSound.hNSData.hNSLock.hNSMenuItem.hNSMenuItemCell.hNSMenuView.hNSPopUpButtonCell.hNSWindow.hGSMethodTable.hNSDictionary.hNSAffineTransform.hstddef.hNSSet.hNSScreen.hNSWindowController.hNSDocument.hNSURL.hNSDate.hNSPrintInfo.hNSControl.hNSButton.hNSPopUpButton.hNSUndoManager.hNSMapTable.hNSStoryboard.hNSImageRep.hNSCachedImageRep.hIBPalette.hFormattersPalette.hNSNotification.hNSPasteboard.h &'  5JJVf.5<J&Lq J# 3<J9 J5 55<41!I M2  JK 8KJYJJJJJJJJJ#J?</  8IJfJJJ MJ#5WJ#5WJ#8ZJLSJFZJ?E XKXYXYXY  JKJ~ftJ X K J~ftJXK!J~f-t,JX K#KKBJYY{ 0 J>~ftJ <>~<XC 3#J< K5<J LX~f t J J~fJXM~f <  "JJ! (J ~fX KJX!JJ~X-J~f KJ!JJ~XYYY & %$< < GNUgold 1.16 0c &. 0&A p&W!ic\ &\0``!ib(aHCa`a}b 0D 2 ' `3X `*= & `( 6 @6<H 0qpB %6(`\b8i8 xipi@gP?5Ia>g`=UP7" 9 18,?L 9v7`<7=; 9> > )>=7T7q?4> 0?< 6p9-Y@8X8@=<><#0< J>jY<G>8;5 6&< Q9S 7r p< ~> = 8 8 8& 8F >e > ; 8 < @ > " p>7 =L  >t 7( @@ 07 @ 71 > L &8 g 7 V>  = p8- 96A 7Y *@q = < < `@+ ?*?>BY9 [v>s8 7 8 @9@+ ?M7q= <9gBfhepc(`dNckfpdcde,cIesdeefcf-PcRgff e0e9dcd(0c=dYe@ePfpe`e<`fgfdcd[@cdce@f1eO0fw@d0dd d!fKfudPdPe gpfA f^e{ec0g#`cFfs0h Ph ph h Pg h  60c\P$0c=PgUPgthh(i(i0i0i 8i#8i7piJpigxi xi i_@iii"!i'4!iMY%Vy ! : W      !$!=!X!|!(i!hX!0i!"(" bG" a" }" crtstuff.c__TMC_LIST__deregister_tm_clonesregister_tm_clones__do_global_dtors_auxcompleted.0__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entryFormattersPalette.m._OBJC_METACLASS_FormattersPalette.objc_method_list.objc_protocol_list.objc_protocol_list.9.objc_protocol_method_list.objc_protocol_method_list.6.objc_protocol_method_list.7.objc_protocol_method_list.8NSMakeRect_i_FormattersPalette__acceptsViewResourceFromPasteboard_forObject_atPoint__i_FormattersPalette__dealloc_i_FormattersPalette__depositViewResourceFromPasteboard_onObject_atPoint__i_FormattersPalette__finishInstantiate_i_FormattersPalette__init_i_FormattersPalette__placeFormatter_withImageNamed_atRect_inView_toolTip__i_FormattersPalette__shouldDrawConnectionFrame_i_FormattersPalette__viewResourcePasteboardTypes_i_FormattersPalette__willInspectObject___FRAME_END___init_fini__dso_handle.objc_ctor.objc_init.objc_null_category.objc_null_class_alias.objc_null_protocol_ref.objc_null_selector.objc_sel_name_acceptsViewResourceFromPasteboard:forObject:atPoint:.objc_sel_name_activeDocument.objc_sel_name_addInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:.objc_sel_name_addObserver:selector:name:object:.objc_sel_name_addSubview:.objc_sel_name_alloc.objc_sel_name_arrayWithObject:.objc_sel_name_associateObject:type:with:.objc_sel_name_bundleForClass:.objc_sel_name_cell.objc_sel_name_class.objc_sel_name_containsObject:.objc_sel_name_contentView.objc_sel_name_count.objc_sel_name_dataForType:.objc_sel_name_date.objc_sel_name_dealloc.objc_sel_name_defaultCenter.objc_sel_name_depositViewResourceFromPasteboard:onObject:atPoint:.objc_sel_name_description.objc_sel_name_finishInstantiate.objc_sel_name_formatter.objc_sel_name_init.objc_sel_name_initWithContentRect:styleMask:backing:defer:.objc_sel_name_initWithContentsOfFile:.objc_sel_name_initWithFrame:.objc_sel_name_inspectorClassName.objc_sel_name_isKindOfClass:.objc_sel_name_isMemberOfClass:.objc_sel_name_localizedStringForKey:value:table:.objc_sel_name_mainBundle.objc_sel_name_numberWithFloat:.objc_sel_name_object.objc_sel_name_objectAtIndex:.objc_sel_name_pathForImageResource:.objc_sel_name_placeFormatter:withImageNamed:atRect:inView:toolTip:.objc_sel_name_registerViewResourceDraggingDelegate:.objc_sel_name_release.objc_sel_name_removeObserver:.objc_sel_name_respondsToSelector:.objc_sel_name_retain.objc_sel_name_setFormatter:.objc_sel_name_setImage:.objc_sel_name_setImageAlignment:.objc_sel_name_setImageFrameStyle:.objc_sel_name_setImageScaling:.objc_sel_name_setObjectValue:.objc_sel_name_setStringValue:.objc_sel_name_setTitle:.objc_sel_name_setToolTip:.objc_sel_name_sharedInspectorManager.objc_sel_name_shouldDrawConnectionFrame.objc_sel_name_stringValue.objc_sel_name_touch.objc_sel_name_types.objc_sel_name_unarchiveObjectWithData:.objc_sel_name_unregisterViewResourceDraggingDelegate:.objc_sel_name_viewResourcePasteboardTypes.objc_sel_name_willInspectObject:.objc_sel_types_"NSArray"160:8.objc_sel_types_160:8.objc_sel_types_200:8f16.objc_sel_types_240:816.objc_sel_types_240:8#16.objc_sel_types_240:8Q16.objc_sel_types_400:8162432.objc_sel_types_480:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16.objc_sel_types_680:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16Q48Q56C64.objc_sel_types_#160:8.objc_sel_types_C160:8.objc_sel_types_C240:816.objc_sel_types_C240:8#16.objc_sel_types_C240:8:16.objc_sel_types_C480:8"NSPasteboard"1624{_NSPoint=dd}32.objc_sel_types_C480:81624{_NSPoint=dd}32.objc_sel_types_Q160:8.objc_sel_types_Vv160:8.objc_sel_types_v160:8.objc_sel_types_v200:8i16.objc_sel_types_v240:816.objc_sel_types_v240:8Q16.objc_sel_types_v400:8162432.objc_sel_types_v480:8"NSPasteboard"1624{_NSPoint=dd}32.objc_sel_types_v480:81624{_NSPoint=dd}32.objc_sel_types_v480:816:243240.objc_sel_types_v520:816243240f48.objc_sel_types_v800:81624{_NSRect={_NSPoint=dd}{_NSSize=dd}}326472.objc_selector_acceptsViewResourceFromPasteboard:forObject:atPoint:_C480:81624{_NSPoint=dd}32.objc_selector_activeDocument_160:8.objc_selector_addInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:_v520:816243240f48.objc_selector_addObserver:selector:name:object:_v480:816:243240.objc_selector_addSubview:_v240:816.objc_selector_alloc_160:8.objc_selector_arrayWithObject:_240:816.objc_selector_associateObject:type:with:_v400:8162432.objc_selector_bundleForClass:_240:8#16.objc_selector_cell_.objc_selector_cell_160:8.objc_selector_class_#160:8.objc_selector_containsObject:_C240:816.objc_selector_contentView_160:8.objc_selector_count_Q160:8.objc_selector_dataForType:_240:816.objc_selector_date_160:8.objc_selector_dealloc_.objc_selector_dealloc_v160:8.objc_selector_defaultCenter_160:8.objc_selector_depositViewResourceFromPasteboard:onObject:atPoint:_v480:81624{_NSPoint=dd}32.objc_selector_description_160:8.objc_selector_finishInstantiate_v160:8.objc_selector_formatter_.objc_selector_formatter_160:8.objc_selector_initWithContentRect:styleMask:backing:defer:_680:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16Q48Q56C64.objc_selector_initWithContentsOfFile:_240:816.objc_selector_initWithFrame:_480:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16.objc_selector_init_.objc_selector_init_160:8.objc_selector_inspectorClassName_160:8.objc_selector_isKindOfClass:_C240:8#16.objc_selector_isMemberOfClass:_C240:8#16.objc_selector_localizedStringForKey:value:table:_400:8162432.objc_selector_mainBundle_160:8.objc_selector_numberWithFloat:_200:8f16.objc_selector_objectAtIndex:_240:8Q16.objc_selector_object_160:8.objc_selector_pathForImageResource:_240:816.objc_selector_placeFormatter:withImageNamed:atRect:inView:toolTip:_v800:81624{_NSRect={_NSPoint=dd}{_NSSize=dd}}326472.objc_selector_registerViewResourceDraggingDelegate:_v240:816.objc_selector_release_Vv160:8.objc_selector_removeObserver:_v240:816.objc_selector_respondsToSelector:_C240:8:16.objc_selector_retain_160:8.objc_selector_setFormatter:_.objc_selector_setFormatter:_v240:816.objc_selector_setImage:_v240:816.objc_selector_setImageAlignment:_v200:8i16.objc_selector_setImageFrameStyle:_v200:8i16.objc_selector_setImageScaling:_v240:8Q16.objc_selector_setObjectValue:_v240:816.objc_selector_setStringValue:_v240:816.objc_selector_setTitle:_v240:816.objc_selector_setToolTip:_v240:816.objc_selector_sharedInspectorManager_160:8.objc_selector_shouldDrawConnectionFrame_C160:8.objc_selector_stringValue_160:8.objc_selector_touch_v160:8.objc_selector_types_160:8.objc_selector_unarchiveObjectWithData:_240:816.objc_selector_unregisterViewResourceDraggingDelegate:_v240:816.objc_selector_viewResourcePasteboardTypes_160:8.objc_selector_willInspectObject:_.objc_selector_willInspectObject:_v240:816.objc_str_Byte_Count.objc_str_Date_Components.objc_str_Date_Interval.objc_str_Formatter.objc_str_Formatters.objc_str_Measurement.objcv2_load_function__TMC_END___DYNAMIC__start___objc_selectors__stop___objc_selectors__start___objc_constant_string__stop___objc_constant_string__start___objc_protocols__stop___objc_protocols__start___objc_class_refs__stop___objc_class_refs__start___objc_classes__stop___objc_classes__start___objc_cats__stop___objc_cats__start___objc_protocol_refs__stop___objc_protocol_refs__start___objc_class_aliases__stop___objc_class_aliases_GLOBAL_OFFSET_TABLE__end_edata__bss_start__cxa_finalizepredefinedNumberFormatsobjc_msg_lookup_superobjc_msgSenddefaultNumberFormatIndex__objc_load__objc_ivar_offset_IBPalette.originalWindow.NSStringFromClassNSAppIBWillInspectObjectNotificationIBFormatterPboardType._OBJC_REF_CLASS_NSWindow._OBJC_REF_CLASS_NSView._OBJC_REF_CLASS_NSUnarchiver._OBJC_REF_CLASS_NSPersonNameComponentsFormatter._OBJC_REF_CLASS_NSNumberFormatter._OBJC_REF_CLASS_NSNumber._OBJC_REF_CLASS_NSNotificationCenter._OBJC_REF_CLASS_NSMeasurementFormatter._OBJC_REF_CLASS_NSLengthFormatter._OBJC_REF_CLASS_NSImageView._OBJC_REF_CLASS_NSImage._OBJC_REF_CLASS_NSFormatter._OBJC_REF_CLASS_NSDateIntervalFormatter._OBJC_REF_CLASS_NSDateFormatter._OBJC_REF_CLASS_NSDateComponentsFormatter._OBJC_REF_CLASS_NSDate._OBJC_REF_CLASS_NSByteCountFormatter._OBJC_REF_CLASS_NSBundle._OBJC_REF_CLASS_NSArray._OBJC_REF_CLASS_IBPalette._OBJC_REF_CLASS_IBInspectorManager._OBJC_REF_CLASS_FormattersPalette._OBJC_PROTOCOL_IBViewResourceDraggingDelegates._OBJC_INIT_CLASS_FormattersPalette._OBJC_CLASS_NSConstantString._OBJC_CLASS_IBPalette._OBJC_CLASS_FormattersPalette_ITM_registerTMCloneTable_ITM_deregisterTMCloneTable__gmon_start__.init_array.fini_array.debug_abbrev.text.got.comment.got.plt.rela.plt.init__objc_cats.bss__objc_selectors__objc_protocols__objc_class_refs__objc_protocol_refs__objc_classes__objc_class_aliases.dynstr.debug_str.eh_frame_hdr.gnu.version_r.debug_macinfo.debug_info.rela.dyn.gnu.version.note.gnu.gold-version.dynsym.fini.gnu.hash__objc_constant_string.debug_line.eh_frame.tm_clone_table.note.gnu.build-id.gnu.version_d.dynamic.shstrtab.strtab.symtab.rodata.data$K ((8``MYo H] P'oH H Zo o  (DB%%x N%%I%%`'&&S66 661 p@@ptBtBl \L\L\LP-_O;_O@(`(P0c0Se0c0S cPgPWvhXX(i(Y0i0YT8i8Y8pipYxixY`iY(20YB0Y+dt؇/z4@`*"|gorm-1.3.1/Palettes/5Formatters/obj/0000755000175000017500000000000014327003123016231 5ustar heronherongorm-1.3.1/Palettes/5Formatters/obj/5Formatters.obj/0000755000175000017500000000000014327003123021215 5ustar heronherongorm-1.3.1/Palettes/5Formatters/obj/5Formatters.obj/FormattersPalette.m.o0000644000175000017500000033301014327003123025275 0ustar heronheronELF>I@@UHH@HH H}HuHUHH HUHMHMHHuHH H}HHEHyHH H9HMHHHH H9HH HE1EH5H}LH}HHHEHUHHMHEH@]f.fUHH0HH H}HuH9HMHHHH H9HH HUHHHH HUHH HUHMHMHHuHH H}HH0]UHHHELLH}HuHUHMLELMI;HMH}HLHEH H}HHH HUHHH HHEH:HH HUHHH HHEH:HH HHHEHH $HHHL$HHHL$HHHL$H HEH}HκH1H}HH1H}HHH}HUHHH}HUHHHMHUHHHH HUHuH H}H}HHuHHULEHH}HHHMHHHĐ]DUHHHH H}HuH9HH}WHH1҉E1HHHHELL $LHLL$LHLL$H@HD$HH HH5H}DEJHEDDH0HHHH HUDDH HHH HHEHEH:HHH HH H}HHH HLEHHHHHHLMML$MQLT$MQLT$MILL$LHH HUH9HHH HH H}HHH HLEHHHHHHLMML$MQLT$MQLT$MILL$LHH HUH9HHH HH HhHHH HLEHHHHHHLhML$MQLT$MQLT$MILL$LHH HUH9HHH HH HH(Hx"HH LEHHHHxHHLL $LHLL$LHLL$H@HD$I4@,/HH HUH9HHpH HH H(Wh(hhH`MHH HLEHpHHH`HXHL(ML$MQLT$MQLT$MILL$LXHH HUH9HHPH HH HWH(HHH@jHH LEHPHHH@HLL $LHLL$LHLL$H@HD$I4~vH]UHHEMU]EEGEGEG]f.fUHH`HH}HuHUHMHHH HHEH}H<iHH}HH HHEH}H<+HH}HH HHEH}HH}HHH H}HH<HH}HHH HHEH:HH HHuH}HH}HHuHHEH HE1HHιH H}HHEH HUHHHUHMLEIH`]ÐUHH@HLEMH}HuHUHMH}HLE1DADM@HHMHHH HHHHDAEϊE$H@]f.UHHHLEMH}HuHUHMHMIHHH HHEH:HUHHEH}<HH}HHH1ɉH}HHH5HEH}HuHHU<HH H HHH HHHH}HMHHHH}HH HH}HH}HHHEH H}HH<uHH H9HH HEH}HEH}HHH H}HHHH}HUHHH H}H H}HHH H}HH<nHH H9HH HEH}HEHxHHH HxHHHH}HUHHĐ]fDUH1H}Hu]f.UHHHH HH}HuH:H HHH]X@E@H@b@h@q@o͏?PH=XinitregisterViewResourceDraggingDelegate:v24@0:8@16defaultCenter@16@0:8willInspectObject:addObserver:selector:name:object:v48@0:8@16:24@32@40unregisterViewResourceDraggingDelegate:removeObserver:deallocclass#16@0:8bundleForClass:@24@0:8#16pathForImageResource:@24@0:8@16allocinitWithContentsOfFile:initWithFrame:@48@0:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16setImageFrameStyle:v20@0:8i16setImageScaling:v24@0:8Q16setImageAlignment:setImage:setToolTip:addSubview:associateObject:type:with:v40@0:8@16@24@32releaseVv16@0:8initWithContentRect:styleMask:backing:defer:@68@0:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16Q48Q56C64Formattersbytecount_formatterByte Countdate_comp_formatterDate Componentsdate_interval_formatterDate Intervalenergy_formattermeasurement_formatterMeasurementlength_formatterFormatterFormattersPalette@16@0:8v16@0:8v80@0:8@"NSFormatter"16@"NSString"24{_NSRect={_NSPoint=dd}{_NSSize=dd}}32@"NSView"64@"NSString"72v24@0:8@"NSNotification"16C48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32v48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32C16@0:8@"NSArray"16@0:8IBViewResourceDraggingDelegates setTitle:contentView placeFormatter:withImageNamed:atRect:inView:toolTip:v80@0:8@16@24{_NSRect={_NSPoint=dd}{_NSSize=dd}}32@64@72 objectcellrespondsToSelector:C24@0:8:16formatterisKindOfClass:C24@0:8#16sharedInspectorManagermainBundle localizedStringForKey:value:table:@40@0:8@16@24@32inspectorClassNameaddInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:v52@0:8@16@24@32@40f48setFormatter:typescontainsObject:C24@0:8@16dataForType:unarchiveObjectWithData:countQ16@0:8objectAtIndex:@24@0:8Q16activeDocumenttouchv16@0:8retainisMemberOfClass:numberWithFloat:@20@0:8f16stringValuesetStringValue:setObjectValue:datedescriptionarrayWithObject: finishInstantiateacceptsViewResourceFromPasteboard:forObject:atPoint:C48@0:8@16@24{_NSPoint=dd}32depositViewResourceFromPasteboard:onObject:atPoint:v48@0:8@16@24{_NSPoint=dd}32shouldDrawConnectionFrameC16@0:8viewResourcePasteboardTypesC48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32v48@0:8@"NSPasteboard"16@24{_NSPoint=dd}32@"NSArray"16@0:8clang version 9.0.1-16.1 FormattersPalette.m/home/heron/Development/gnustep/apps-gorm/Palettes/5FormattersdefaultNumberFormatIndexintpredefinedNumberFormatsisaobjc_classClassNSObjectNSArrayunsigned intNSFocusRingTypeDefaultNSFocusRingTypeNoneNSFocusRingTypeExterior_NSFocusRingTypeNSImageCacheDefaultNSImageCacheAlwaysNSImageCacheBySizeNSImageCacheNeverNSNoInterfaceStyleNSNextStepInterfaceStyleNSMacintoshInterfaceStyleNSWindows95InterfaceStyleGSWindowMakerInterfaceStyleGSTextFillGSTextStrokeGSTextClip_GSTextDrawingModeNSImageInterpolationDefaultNSImageInterpolationNoneNSImageInterpolationLowNSImageInterpolationHigh_NSImageInterpolationNSToolbarDisplayModeDefaultNSToolbarDisplayModeIconAndLabelNSToolbarDisplayModeIconOnlyNSToolbarDisplayModeLabelOnlyNSToolbarSizeModeDefaultNSToolbarSizeModeRegularNSToolbarSizeModeSmallNSNonZeroWindingRuleNSEvenOddWindingRuleNSButtLineCapStyleNSRoundLineCapStyleNSSquareLineCapStyleNSMiterLineJoinStyleNSRoundLineJoinStyleNSBevelLineJoinStyleNSRoundedBezelStyleNSRegularSquareBezelStyleNSThickSquareBezelStyleNSThickerSquareBezelStyleNSDisclosureBezelStyleNSShadowlessSquareBezelStyleNSCircularBezelStyleNSTexturedSquareBezelStyleNSHelpButtonBezelStyleNSSmallSquareBezelStyleNSTexturedRoundedBezelStyleNSRoundRectBezelStyleNSRecessedBezelStyleNSRoundedDisclosureBezelStyleNSNeXTBezelStyleNSPushButtonBezelStyleNSSmallIconButtonBezelStyleNSMediumIconButtonBezelStyleNSLargeIconButtonBezelStyle_NSBezelStyleNSGradientNoneNSGradientConcaveWeakNSGradientConcaveStrongNSGradientConvexWeakNSGradientConvexStrong_NSGradientTypeobjc_objectidoriginalWindow_interface_styleNSInterfaceStyle_next_responder_menu_titleNSString_itemsNSMutableArray_viewlayerContentsPlacementlong intintptr_tNSIntegerNSViewLayerContentsPlacementlayerContentsRedrawPolicyNSViewLayerContentsRedrawPolicyuserInterfaceLayoutDirectionNSUserInterfaceLayoutDirection_frameoriginxdoubleCGFloaty_NSPointNSPointsizewidthheight_NSSizeNSSize_NSRectNSRect_bounds_frameMatrix_boundsMatrix_matrixToWindow_matrixFromWindow_coreAnimationData_super_view_sub_views_window_tracking_rects_cursor_rects_invalidRect_visibleRect_gstate_nextKeyView_previousKeyView_alphaValue_rFlagsflipped_viewhas_subviewshas_currectshas_trkrectshas_draginfoopaque_viewvalid_rectsneeds_displayhas_tooltipsignores_backing_rFlagsType_is_rotated_from_baseunsigned charBOOL_is_rotated_or_scaled_from_base_post_frame_changes_post_bounds_changes_autoresizes_subviews_coordinates_valid_allocate_gstate_renew_gstate_is_hidden_in_live_resize_autoresizingMasklong unsigned intuintptr_tNSUInteger_focusRingTypeNSFocusRingType_autoresizingFrameErrorNSView_superMenu_attachedMenu_notifications_delegate_popUpButtonCell_contents_cell_image_name_fileName_size_flagsarchiveByNamescalabledataRetainedflipDrawsizeWasExplicitlySetuseEPSOnResolutionMismatchcolorMatchPreferredmultipleResolutionMatchingcacheSeparatelyunboundedCacheDepthsyncLoad__imageFlags_reps_colorNSColor_lockedView_cacheModeNSImageCacheModeNSImage_fontfontNamematrix__ARRAY_SIZE_TYPE__matrixExplicitlySetscreenFontfontInfo_fontRefrolecachedScreenFontcachedFlippedFontNSFont_object_value_cellcontents_is_attributed_stringis_highlightedis_disabledis_editableis_rich_textimports_graphicsshows_first_responderrefuses_first_respondersends_action_on_end_editingis_borderedis_bezeledis_scrollablereservedtext_alignis_selectableallows_mixed_statehas_valid_object_valuetypeimage_positionentry_typeallows_undoline_break_modestatemnemonic_locationcontrol_tintcontrol_sizefocus_ring_typebase_writing_directionsubclass_bool_onesubclass_bool_twosubclass_bool_threesubclass_bool_fourin_editinguses_single_line_modebackground_styleGSCellFlagsType_mouse_down_flags_action_mask_formatterNSFormatter_represented_object_reserved1NSCell_tag_target_actionobjc_selectorSEL_control_viewNSActionCell_altContents_altImage_keyEquivalent_keyEquivalentFont_sound_dataNSData_playbackDeviceIdentifier_channelMapping_onlyReference_source_sink_readLockNSConditionLock_playbackLockNSLock_shouldStop_shouldLoopNSSound_keyEquivalentModifierMask_highlightsByMask_showAltStateMask_delayIntervalfloat_repeatInterval_bezel_styleNSBezelStyle_gradient_typeNSGradientType_backgroundColor_imageScalingNSImageScalingNSButtonCell_menuItem_mnemonicLocation_state_image_onStateImage_offStateImage_mixedStateImage_representedObject_submenu_enabled_changesState_isAlternate_indentationchar_toolTipNSMenuItem_menuView_itemCells_horizontal_pad1_highlightedItemIndex_horizontalEdgePad_stateImageOffset_stateImageWidth_imageAndTitleOffset_imageAndTitleWidth_keyEqOffset_keyEqWidth_needsSizing_pad2_cellSize_items_link_leftBorderOffset_titleViewNSMenuView_mcell_belongs_to_popupbutton_needs_sizing_needs_display_pad_imageWidth_titleWidth_keyEquivalentWidth_menuItemHeight_imageToDisplay_titleToDisplay_imageSizeNSMenuItemCell_selectedItem_pbcFlagspullsDownpreferredEdgeusesItemFromMenualtersStateOfSelectedItemarrowPosition__pbcFlagsNSPopUpButtonCellchangedMessagesEnabledautoenableneedsSizingis_tornofftransienthorizontalmainMenuChangedunusedGSMenuFlags_aWindow_bWindow_oldAttachedMenu_oldHiglightedIndexNSMenuNSRespondersheetParentbackingScaleFactor_minimumSize_maximumSize_increments_autosaveName_wvGSWindowDecorationView_contentView_firstResponder_futureFirstResponder_initialFirstResponder_fieldEditor_lastLeftMouseDownView_lastRightMouseDownView_lastOtherMouseDownView_lastDragView_lastDragOperationMask_windowNum_defaultButtonCell_contextmethodsDPScurrentalpha_DPScurrentcmykcolor____DPScurrentgray_DPScurrenthsbcolor___DPScurrentrgbcolor___DPSsetalpha_DPSsetcmykcolor____DPSsetgray_DPSsethsbcolor___DPSsetrgbcolor___GSSetFillColorspace_NSDictionaryGSSetStrokeColorspace_GSSetFillColor_GSSetStrokeColor_DPSashow___DPSawidthshow______DPScharpath__DPSshow_DPSwidthshow____DPSxshow___DPSxyshow___DPSyshow___GSSetCharacterSpacing_GSSetFont_GSSetFontSize_GSGetTextCTMNSAffineTransformGSGetTextPositionGSSetTextCTM_GSSetTextDrawingMode_GSTextDrawingModeGSSetTextPosition_GSShowText__size_tGSShowGlyphs__NSGlyphGSShowGlyphsWithAdvances__DPSgrestoreDPSgsaveDPSinitgraphicsDPSsetgstate_GSDefineGStateGSUndefineGState_GSReplaceGState_DPScurrentflat_DPScurrentlinecap_DPScurrentlinejoin_DPScurrentlinewidth_DPScurrentmiterlimit_DPScurrentpoint__DPScurrentstrokeadjust_DPSsetdash___DPSsetflat_DPSsethalftonephase__DPSsetlinecap_DPSsetlinejoin_DPSsetlinewidth_DPSsetmiterlimit_DPSsetstrokeadjust_DPSconcat_DPSinitmatrixDPSrotate_DPSscale__DPStranslate__GSCurrentCTMGSSetCTM_GSConcatCTM_DPSarc_____DPSarcn_____DPSarct_____DPSclipDPSclosepathDPScurveto______DPSeoclipDPSeofillDPSfillDPSflattenpathDPSinitclipDPSlineto__DPSmoveto__DPSnewpathDPSpathbbox____DPSrcurveto______DPSrectclip____DPSrectfill____DPSrectstroke____DPSreversepathDPSrlineto__DPSrmoveto__DPSstrokeGSSendBezierPath__windingRuleNSWindingRule_lineCapStyleNSLineCapStyle_lineJoinStyleNSLineJoinStyle_lineWidth_flatness_miterLimit_dash_count_dash_phase_dash_pattern_controlPointBounds_cacheImage_pathElements_cachesBezierPath_shouldRecalculateBounds_flatNSBezierPathGSRectClipList__GSRectFillList__GSCurrentDevice___DPScurrentoffset__GSSetDevice___DPSsetoffset__shortDPScomposite________NSCompositingOperationDPScompositerect_____DPSdissolve________GSDrawImage__DPSPrintf__gp_offsetfp_offsetoverflow_arg_areareg_save_area__va_list_tagDPSWriteData__GSReadRect_NSBeepGSWSetViewIsFlipped_GSWViewIsFlippedNSDrawBitmap___________DPSshfillgsMethodTablecontext_infocontext_dataNSMutableDatafocus_stackusedFontsNSSetNSMutableSet_interpNSImageInterpolation_antialias_patternPhase_graphicsPort_isFlipped_compositingOperationNSGraphicsContext_screen_depthNSWindowDepth_screenNumber_supportedWindowDepths_reservedNSScreen_representedFilename_miniaturizedTitle_miniaturizedImage_windowTitle_lastPoint_backingTypeNSBackingStoreType_styleMask_windowLevel_rectNeedingFlush_rectsBeingDrawn_disableFlushWindow_depthLimit_windowController_window_nib_name_window_nib_path_window_frame_autosave_name_document_window_controllers_file_urlfileURLisFileURLNSURL_file_name_file_type_file_modification_dateNSDate_last_component_file_name_autosaved_file_url_print_info_infoNSMutableDictionaryNSPrintInfo_printOp_delegate_printOp_didRunSelector_save_panel_accessory_spa_button_ignoresMultiClickNSControlNSButtonNSPopUpButton_save_type_undo_managerNSUndoManager_change_count_autosave_change_count_document_index_doc_flagsin_closehas_undo_managerpermanently_modifiedautosave_permanently_modifiedRESERVED__docFlagsNSDocument_top_level_objects_owner_segueMapNSMapTable_storyboard_transformNSStoryboard_wcFlagsshould_close_documentshould_cascadenib_is_loaded___wcFlags_reserved2NSWindowController_counterpart_children_parent_cachedImage_colorSpace_hasAlpha_isOpaque_bitsPerSample_pixelsWide_pixelsHighNSImageRep_rectNSCachedImageRep_cachedImageOrigin_attachedSheet_faccepts_dragis_one_shotneeds_flushis_autodisplayoptimize_drawingdynamic_depth_limitcursor_rects_enabledcursor_rects_validvisibleis_keyis_mainis_editedis_released_when_closedis_miniaturizedmenu_excludehides_on_deactivateaccepts_mouse_movedhas_openedhas_closeddefault_button_cell_key_disabledcan_hidehas_shadowis_opaqueviews_need_displayselectionDirectiondisplays_when_screen_profile_changesis_movable_by_window_backgroundallows_tooltips_when_inactiveshows_toolbar_buttonautorecalculates_keyview_loopignores_mouse_eventspreserves_content_during_live_resizeGSWindowFlagsType_toolbar_configurationDictionary_identifier_selectedItemIdentifier_toolbarViewGSToolbarView_displayModeNSToolbarDisplayMode_sizeModeNSToolbarSizeMode_allowsUserCustomization_autosavesConfiguration_visible_customizationPaletteIsRunning_showsBaselineSeparator_build_interfaceBuilderItemsByIdentifier_interfaceBuilderAllowedItemIdentifiers_interfaceBuilderDefaultItemIdentifiers_interfaceBuilderSelectableItemIdentifiersNSToolbar_reserved_1NSWindowiconpaletteDocumentIBPaletteFormattersPalette-[FormattersPalette init]-[FormattersPalette dealloc]-[FormattersPalette placeFormatter:withImageNamed:atRect:inView:toolTip:]-[FormattersPalette finishInstantiate]NSMakeRect-[FormattersPalette willInspectObject:]-[FormattersPalette acceptsViewResourceFromPasteboard:forObject:atPoint:]-[FormattersPalette depositViewResourceFromPasteboard:onObject:atPoint:]-[FormattersPalette shouldDrawConnectionFrame]-[FormattersPalette viewResourcePasteboardTypes]self_cmdfmimageNameframecontentstooltipvimgpathwhrectnotificationNSNotificationocellformatteridentpbnamechangeCounttargetowneruseHistoryNSPasteboardobjpdataarrayfieldValue%4I?: ; $> I : ;  I8  : ;  I: ;8 2 I: ; < I : ; ( I : ;   I8  : ;   I: ; 8 2  : ;  I: ; I: ; 8  I: ;8  : ;  I: ; 8 I!I7 $ >  : ; I: ; 8 < &I I: ;! : ; " I: ; 8# I: ;8$'%I&I''I: ; (.@d: ; 'I)I4*.@d: ; '+: ; I,4: ; I-.@: ; 'I. /?$ [# `=p$+  w   O    +        p    7    @    >   '    -    Z                q     $ 4> 3=p3? 3@3AZE bW W W #B  # 4    #$E ' (FU*HI /p 3 8 A 5x p       \     ?   p2`P}nLoL{ E  " " " " " " " " " " 4 Q  U \ W L " d e gW h $ ;<E >E ? P f b OPE RE S -  ? ] J Z {a P1 3:@'S W)*" ." 1" 23E 5E 6E 7E 8E 9 ;<W = z  } ~ b ? 4   / / 6 A B L $] '(*)*`p>  b4 4  X~pW  BWGYp TgpPpRS" T" UWX?_bfbnE   ?     Bp 5$: D`9p;<=[>" ?@BCDE" F" GUp pIp  o V w 4 \spuvw4 x4 yz { | } ~*" " " QS" TUbV?W/X/Y/Z/[/\/]/^" _`W ad?efl456789         `p>nJ#`##"  " !CH T >!H ( - / 1 3 5  7( 90 ;88 =@8 ?HX BPX DX F` Hh Np Px R T  V2 X2 Z2 \ _\ a cr e g i k m o$ q"T s"~ y"~ {"~ }"  " (" 0" 8" @" H" P" X" `" h" p" x" " "+ "+ " " "+ "A "~ " " " "r " " "W "W "W "~ "~ " "~ ("~ 0"~ 8"~ @"~ H" P" X"~ `" h" p" x" " "~ " " "~ " " " " "! #1! #Q! #s! #! #! #" #5" #" #" #~  #" $(#" &0#" ,8#X <@$%%*%E $%%*%%%%$%%*%%%$%%*%E $%%*%E %E %E %E =$%%*%E %E %E ]$%%*%ns!)p$%%*%E %E %$%%*%E %E %?%E %E %$%%*%%?$%%*%$%%*%E %E %?%7$%%*%%R%?WE a$%%*%bw&%%*"-p& %%*$%%*%$%%*% $%%*% $%%*%% J #.)$%%*%?%DI /Y$%%*%?%t%yW $%%*$%%*%&%%*$%%*%?$%%*%%$%%*%R%%E $%%*%E %E 0$%%*%?F$%%*%R\$%%*%E %E %E %E %E $%%*%E %E %E %E %E %E $%%*% Jp M N OE PE QE R SE T U V W X \" `" a" b  A  +  1 $%%*% %?  $%%*%!%%!$%%*%%6!$%%*%%?%?V!$%%*%l!%l!x!$%%*%E %E %E %E %%E %E %! 4 k!$%%*%E %E %E %E %!!$%%*%E %E %E %E %%E %E %E "$%%*%%:"$%%*%%P"U""$%%*%%"&n%%*%"$%%*%" "&" %%*"$%%*%%%%%%%%" %" %%6#;#@#E#- O#=e#$u#$/p +v#H%,p#%/%0?%1#%2%3 ?m# 4 A$&)&,&-&.&/$&0[&1&2'&3'&4<'&;&<&=$'Wp'Z'[%'\']'^%'_'`%'a&'b'c*'d'e=&'f'g&'h'i'j?'k&'r's%(Hp'" (%)<p &*?p(&*A-&!sB&h--S&h,*d&h+/+2+3" +4&.Vp'l'm'n'o'p'q '/?p'0+p0-&5&7&8&9&:'h2''2*2+@11p14W 15" 16" 1718191: !"#$%&'()*+,-./01 2 3 4 5 689:<=>?BCDEZ*hMpnOPQRST+T_+Uj+W" [" \" ]" ^" _" `na[b[c[dY+ P= qE(V+()x]/)p**V+;)x]/)p**V+B)x]/)p*+hB+`C+D+XE+PF,HH,@I ,J*=V,Z)x]/)p*,h\-DV+xE +pE +hE +`E ,u*V9-)x]/)p*+hb/,`.b,X.$,P.,H(V-" )h]/)`*+Xw/+P+p *V;.)h]/)`*+Xw/+P+p ,H,@.,._,ʂ.`,Ђ(V/" )x]/)p*(<VD/[)x]/)p*g/51p|/06p6?666" 6clang version 9.0.1-16.1 zRx AC  <AC  \AC  |=AC 8 DAC  AC  AC  AC  AC N <<AC w \AM /usr/GNUstep/System/Library/Headers/Foundation/usr/GNUstep/System/Library/Headers/AppKit/usr/include/usr/GNUstep/Local/Library/Headers/objc/usr/GNUstep/System/Library/Headers/GNUstepGUI/usr/lib/llvm-9/lib/clang/9.0.1/include../../InterfaceBuilder.FormattersPalette.mNSObject.hNSArray.hNSView.hNSImage.hNSInterfaceStyle.hNSGraphicsContext.hNSToolbar.hNSBezierPath.hNSButtonCell.hNSResponder.hNSString.hNSMenu.hstdint.hNSObjCRuntime.hNSUserInterfaceLayout.hNSGeometry.hruntime.hNSCell.hNSColor.hNSFont.hNSFormatter.hNSActionCell.hNSSound.hNSData.hNSLock.hNSMenuItem.hNSMenuItemCell.hNSMenuView.hNSPopUpButtonCell.hNSWindow.hGSMethodTable.hNSDictionary.hNSAffineTransform.hstddef.hNSSet.hNSScreen.hNSWindowController.hNSDocument.hNSURL.hNSDate.hNSPrintInfo.hNSControl.hNSButton.hNSPopUpButton.hNSUndoManager.hNSMapTable.hNSStoryboard.hNSImageRep.hNSCachedImageRep.hIBPalette.hFormattersPalette.hNSNotification.hNSPasteboard.h '  5JJVf.5<J&Lq J# 3<J9 J5 55<41!I M2  JK 8KJYJJJJJJJJJ#J?</  8IJfJJJ MJ#5WJ#5WJ#8ZJLSJFZJ?E XKXYXYXY  JKJ~ftJ X K J~ftJXK!J~f-t,JX K#KKBJYY{ 0 J>~ftJ <>~<XC 3#J< K5<J LX~f t J J~fJXM~f <  "JJ! (J ~fX KJX!JJ~X-J~f KJ!JJ~XYYY & %$< <   !#%'(*,-/124679;=>@BDEGIKLNPQSUVXZ\]_acdfhjkmoprtuwyz|~   !#%&(*+-/124579:<>?ACEFHJKMOPRTUWYZ\^_acdhikmnpqsuwxz|~W$$e!\!  } ($$ ee eexH` eee D  9   p =| R `<9 0  e e0 %  X j & p = f1X&!!!8!Q !!!s5^!(!UG!#"c!| _ !N!a!!!@s!w!9! z! ,!P! !W" !4!!z4!\ O !kW! !  !-!St!X !p!H!<!# ! !A!=!!p!GQ!5!& !!/!A!7!O!r !m!_^!f!R!M! !w D!) !q !H !-v!!!*(!!!J!!C ^!I !B !# Y$!!Z- !6a!;!!  A! ! "!+_#!u!u! !/!a ! V!h #!D"!+"!|$!%!v!!9#!w!*=!%!' !~!Py!c$!!D !J!<!=,! !!!!Y !6N!h!"!~ !^%!mb !! !!U7!\$ ! !!!\!>z$!!#!E!%!!K!!!!s!1 !,!9!!4!t!o!cq!j!T!O!!y! !f!J!1%!- !?!,b! ! F!pA! ! ! ! ! ! " a% C5XWRr )?  &+  ,?Fdk >} 9  >#* 95<KRY ,~ .% 54;JQX 6gn-4; elx ?DKRY   / ' . 1 Y`g 3} <6=D <Zalt| \& 8<CNV^ |  7 & 1 9 A y   ; V ] d t          4    ! ) 0 7 +F M T .v }          + G V ] d r     =  $ 5 E L S k z          ;   # * :5<W^mt 2 0 ")9  -A \jWI~lVPNhK^_rsqpwJMk]'vR\' '8*@'XN`'xt'''i'>'f'fOmO[[axd'c`Ho|QT}SgG{onbezutUYL0 F (a0 8@H`PX`hp)!&(!X!VZFXy!x !(!0!%% (08@HPX`hpx # " " $ ".+ "m7@ "G "Sa "q "{ " " " " " " " " ") "= "P "c "u " " " " " " "% " 0 "8 "'> "CD "\J "tY "_ "e "k "z " "4 "M "d "y " " " " " " " "  " "7 "O "i " " " " "  "& ", ".2 "C8 "a> "rD "J "P "[ "Uc "i "o "u "){ "> "q "e " "( "( "t "( "( "( "E "Q ") "d6 "qC "~P "] "j "w " " " "  " "  "! "9 "Q "_ "v " " ", ": "OH "V "d " r "$  "1  "<  "\  "g  "t  "  "  "  "  "#  " "#% "#3 "$A "|$O "$] "$j "&x "( "9 " " " " "2 " " "  "  " ( " 6 " D " R "` "n "| "  " "-  " " "  " "7 "q " ", "9 "$F "2S "B` "Tm "gz "s "~ " " " " " " " " " "  "  " - " : " G " T "# a "4 n "B { "M  "]  "  "  " " " " "Q " " " " " "% "- "9 "J "Q "\ "c "k "w " "| " " " " ", "9 "E "Q  "_  "l ' " . " 9 " D " K "o V " b "xr " " " " "H "N "l "z " " " " " ", "9 "F "T "}c "p "} " " "  " " " " " " "1 "O "` ") "6 "C "P "^ "m "q{ " "! "U " " "2 "D "Q " "h "| "M  "- , "3 9 "= F "C S " ` " m "% z " "1 " "J "X "a "n "w " "  "  " $ " 3 " H " \ "< h " w "[  "d  "  "  "  "  "  "  "  "k  "" "  " & " 5 ", D "8 S "E b "V q "l  "  "  "  "  "  "  "  "  "  " "% "%4 "0C "<R "La "Rp "d "q "~ " " " " " " " " "\/ "; "E "T "- a "n "{ "7 "G "  "V "^ "d "~ " " "  "n  "0 "; "$F "@Q "n] "=m "{ " " " " " " " " " " " "# "1 "? "M "[ "i ""w "4 "/ "C "R "] "i "U  "o " " "  " "$ "1 "> "K " X "e "r "& "8 "  "m " "& "4 "E "_ " " "/ "? "O "_ "o " " " " " " " " " " ":  "E "S$ "a1 "lM "Z "f "r "~ " " "  " "+ "7 "I "[ "} " " " " "& "2 "> "J " V "b "#n ":z "E "T "s " " " " " " " "  ") "9 "G( "V5 "hB "yO "\ "i "v " " " " " " "5 "D "T "e "w " " ", "9 "F "S "` "m "z " " " " "( "9 "C "M "U "d "p  "| "# "0 "= "J "W "d "q "~ " " " "6 "G "X "k "~ " " " " "- "; "TI "cW "oe "vs " " "t "p "a " "N " ") ", "G "d " " ") "6 "C "P "] "j "w " " "  "# "9 "U "sm! "! "V" "F^" "j" "v" "&" "8P# "f# "v# " # "%# "# "# "# "# "# "# "# "I $ "#$ "~#$ " 0$ " =$ " J$ "!W$ "/#d$ "B#q$ "I#~$ "^#$ "#$ "|$ "#$ "$#$ "~$ "!$ "%!$ "G!$ "R!% "]!% "|!"% "!/% "!<% "!I% "!V% ""c% ""p% "\"}% "g"% ""% ""% ""% ""% "|% "A!% "/!% "7!% "u! & "!& "!.& "!C& "N"T& "E"e& ";"u& "& " & "("& "u"& "#& ""& ""& ""& ""& "# ' "S# ' "u#/' "j#=' "#E' "#T' "#c' "#r' "#' "k$' "e$' "~' "Z$' "$' "= ' "$' ")$' "3$( "B$( "N$( "&%( "$5( "$E( "$U( "$e( "$u( "$( "$( "%( ""%( "*%( "1%( "9%( "C%( "[%) "k%) "x%%) "%5) "%E) "%U) "%e) "%u) "%) "%) "%) ") ") ") "&) "&) "@&* "`&* "~&%* "&5* "&E* "&[* "(j* "'w* " * "'* "+'* "* "C'* "^'* "'* "'* "'* "'* "'+ "'+ " ( + "(-+ "7(:+ "_(G+ "(Z+ "P'd+ "k'o+ "'v++ ")+ "*+ "*++ ")+ "*+ "*++ "9)+ "*, "*, "* , "*., "*<, "*J, "*X, "*f, "+u, "+,, "), "*, "*, "*, , "), ", ", " +- " +- " +!-0 3- ")=- "*I- "*U- "+c- ".+n- ~- "0+- - "5+- - "?+- - ")- "*- "*- "E+ . "~+. "+#. 5. "'*?. "*K. "*W. "E+e. "~+s. "+. "+. "+.= . "5+... "+.. "+.`/ "p*/ "*/ "*(/:/ "*H/ "*T/ "*h/ "+}/ "q+/ "H+/ "M+/ "Y+/ "`+/ "f+ @` 0   `@`\,>j9WI~lV.PNh5K^6_rsqpwJMk?]'vR/ i1 3 < 8 7 fOm[4a+xdc`Ho|QT=}SgG{n;b:ezut20UY-L &ZFXy ) %(A@EBDC.objc_null_category.rela.init_array._OBJC_REF_CLASS_NSArraydefaultNumberFormatIndex._OBJC_REF_CLASS_NSWindow.rodata..objc_sel_name_contentView._OBJC_REF_CLASS_NSImageView._OBJC_REF_CLASS_NSView.debug_abbrev.rela.text.objc_protocol_list.objc_protocol_method_list.objc_method_list.rodata..objc_sel_name_count.objc_str_Byte_Count.rodata..objc_sel_name_activeDocument.comment.objc_str_Measurement.rodata..objc_sel_name_init.rela.data..objc_init_i_FormattersPalette__init.rodata..objc_sel_name_objectNSMakeRect.objc_str_Date_ComponentspredefinedNumberFormats__start___objc_cats__stop___objc_cats.bss.rodata..objc_sel_name_classNSStringFromClass.rela__objc_selectors__start___objc_selectors__stop___objc_selectors.objc_str_Formatters.rela__objc_protocols__start___objc_protocols__stop___objc_protocols.rela__objc_class_refs__start___objc_class_refs__stop___objc_class_refs__start___objc_protocol_refs__stop___objc_protocol_refs._OBJC_PROTOCOL_IBViewResourceDraggingDelegates.rela__objc_classes__start___objc_classes__stop___objc_classes__start___objc_class_aliases__stop___objc_class_aliases.rodata..objc_sel_name_types.rodata..objc_sel_name_viewResourcePasteboardTypes_i_FormattersPalette__viewResourcePasteboardTypes.objc_null_class_alias.debug_str.objc_null_selector.objc_ctor._OBJC_REF_CLASS_NSUnarchiver.rodata..objc_sel_name_formatter._OBJC_REF_CLASS_NSByteCountFormatter._OBJC_REF_CLASS_NSMeasurementFormatter._OBJC_REF_CLASS_NSDateComponentsFormatter._OBJC_REF_CLASS_NSPersonNameComponentsFormatter._OBJC_REF_CLASS_NSNumberFormatter._OBJC_REF_CLASS_NSDateIntervalFormatter._OBJC_REF_CLASS_NSLengthFormatter._OBJC_REF_CLASS_NSDateFormatter.objc_str_Formatter._OBJC_REF_CLASS_NSFormatter.rodata..objc_sel_name_defaultCenter._OBJC_REF_CLASS_NSNotificationCenterobjc_msg_lookup_super.rodata..objc_sel_name_sharedInspectorManager._OBJC_REF_CLASS_IBInspectorManager._OBJC_REF_CLASS_NSNumber.groupNSApp.debug_macinfo.rela.debug_info.rodata..objc_sel_name_description.rela.text..objcv2_load_functionIBWillInspectObjectNotification.rodata..objc_sel_name_retainFormattersPalette.m.rodata..objc_sel_name_cell.objc_str_Date_Interval.note.GNU-stack.rodata..objc_sel_name_touch.rela__objc_constant_string__start___objc_constant_string__stop___objc_constant_string._OBJC_CLASS_NSConstantString.llvm_addrsig.objc_null_protocol_ref.rodata..objc_sel_name_stringValue._OBJC_INIT_CLASS_FormattersPalette._OBJC_REF_CLASS_FormattersPalette._OBJC_CLASS_FormattersPalette._OBJC_METACLASS_FormattersPalette._OBJC_REF_CLASS_IBPalette._OBJC_CLASS_IBPalette.rodata..objc_sel_name_finishInstantiate_i_FormattersPalette__finishInstantiate.rodata..objc_sel_name_date._OBJC_REF_CLASS_NSDate.rodata..objc_sel_name_releaseIBFormatterPboardType.rela.debug_line.rela.eh_frame.rodata..objc_sel_name_shouldDrawConnectionFrame_i_FormattersPalette__shouldDrawConnectionFrame.rodata..objc_sel_name_inspectorClassName.rodata..objc_sel_name_mainBundle._OBJC_REF_CLASS_NSBundle._OBJC_REF_CLASS_NSImageobjc_msgSend__objc_load.rodata..objc_sel_name_dealloc_i_FormattersPalette__dealloc.rodata..objc_sel_name_alloc.strtab.symtab.rela.data_i_FormattersPalette__acceptsViewResourceFromPasteboard_forObject_atPoint__i_FormattersPalette__depositViewResourceFromPasteboard_onObject_atPoint_.objc_selector_init__i_FormattersPalette__willInspectObject_.objc_selector_formatter__i_FormattersPalette__placeFormatter_withImageNamed_atRect_inView_toolTip_.objc_selector_cell_.objc_selector_dealloc_.objc_selector_willInspectObject:_.objc_selector_setFormatter:_.rodata..objc_sel_name_objectAtIndex:.rodata..objc_sel_name_addSubview:.rodata..objc_sel_name_acceptsViewResourceFromPasteboard:forObject:atPoint:.rodata..objc_sel_name_depositViewResourceFromPasteboard:onObject:atPoint:.rodata..objc_sel_name_setImageAlignment:.rodata..objc_sel_name_addObserver:selector:name:object:.rodata..objc_sel_name_willInspectObject:.rodata..objc_sel_name_containsObject:.rodata..objc_sel_name_arrayWithObject:.rodata..objc_sel_name_numberWithFloat:.rodata..objc_sel_name_bundleForClass:.rodata..objc_sel_name_isMemberOfClass:.rodata..objc_sel_name_isKindOfClass:.rodata..objc_sel_name_respondsToSelector:.rodata..objc_sel_name_removeObserver:.rodata..objc_sel_name_setFormatter:.rodata..objc_sel_name_initWithContentRect:styleMask:backing:defer:.rodata..objc_sel_name_placeFormatter:withImageNamed:atRect:inView:toolTip:.rodata..objc_sel_name_setToolTip:.rodata..objc_sel_name_associateObject:type:with:.rodata..objc_sel_name_addInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:.rodata..objc_sel_name_setImageScaling:.rodata..objc_sel_name_setObjectValue:.rodata..objc_sel_name_setStringValue:.rodata..objc_sel_name_unregisterViewResourceDraggingDelegate:.rodata..objc_sel_name_registerViewResourceDraggingDelegate:.rodata..objc_sel_name_dataForType:.rodata..objc_sel_name_initWithFrame:.rodata..objc_sel_name_setImageFrameStyle:.rodata..objc_sel_name_setTitle:.rodata..objc_sel_name_initWithContentsOfFile:.rodata..objc_sel_name_localizedStringForKey:value:table:.rodata..objc_sel_name_setImage:.rodata..objc_sel_name_pathForImageResource:.rodata..objc_sel_name_unarchiveObjectWithData:.objc_protocol_list.9.rodata.cst8.rodata..objc_sel_types_v160:8.objc_selector_touch_v160:8.objc_selector_finishInstantiate_v160:8.objc_selector_dealloc_v160:8.rodata..objc_sel_types_Vv160:8.objc_selector_release_Vv160:8.objc_selector_count_Q160:8.rodata..objc_sel_types_Q160:8.rodata..objc_sel_types_C160:8.objc_selector_shouldDrawConnectionFrame_C160:8.objc_selector_class_#160:8.rodata..objc_sel_types_#160:8.rodata..objc_sel_types_"NSArray"160:8.objc_selector_contentView_160:8.objc_selector_activeDocument_160:8.objc_selector_init_160:8.objc_selector_object_160:8.objc_selector_types_160:8.rodata..objc_sel_types_160:8.objc_selector_viewResourcePasteboardTypes_160:8.objc_selector_formatter_160:8.objc_selector_defaultCenter_160:8.objc_selector_sharedInspectorManager_160:8.objc_selector_description_160:8.objc_selector_retain_160:8.objc_selector_cell_160:8.objc_selector_stringValue_160:8.objc_selector_date_160:8.objc_selector_inspectorClassName_160:8.objc_selector_mainBundle_160:8.objc_selector_alloc_160:8.rodata..objc_sel_types_v520:816243240f48.objc_selector_addInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:_v520:816243240f48.objc_protocol_method_list.8.objc_protocol_method_list.7.rodata..objc_sel_types_480:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16.objc_selector_initWithFrame:_480:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16.rodata..objc_sel_types_v200:8i16.objc_selector_setImageAlignment:_v200:8i16.objc_selector_setImageFrameStyle:_v200:8i16.rodata..objc_sel_types_200:8f16.objc_selector_numberWithFloat:_200:8f16.rodata..objc_sel_types_v240:8Q16.objc_selector_setImageScaling:_v240:8Q16.rodata..objc_sel_types_240:8Q16.objc_selector_objectAtIndex:_240:8Q16.rodata..objc_sel_types_C240:8:16.objc_selector_respondsToSelector:_C240:8:16.rodata..objc_sel_types_C240:8#16.objc_selector_isMemberOfClass:_C240:8#16.objc_selector_isKindOfClass:_C240:8#16.rodata..objc_sel_types_240:8#16.objc_selector_bundleForClass:_240:8#16.rodata..objc_sel_types_v240:816.objc_selector_addSubview:_v240:816.objc_selector_willInspectObject:_v240:816.objc_selector_removeObserver:_v240:816.objc_selector_setFormatter:_v240:816.objc_selector_setToolTip:_v240:816.objc_selector_setObjectValue:_v240:816.objc_selector_setStringValue:_v240:816.objc_selector_unregisterViewResourceDraggingDelegate:_v240:816.objc_selector_registerViewResourceDraggingDelegate:_v240:816.objc_selector_setTitle:_v240:816.objc_selector_setImage:_v240:816.rodata..objc_sel_types_C240:816.objc_selector_containsObject:_C240:816.rodata..objc_sel_types_240:816.objc_selector_arrayWithObject:_240:816.objc_selector_dataForType:_240:816.objc_selector_initWithContentsOfFile:_240:816.objc_selector_pathForImageResource:_240:816.objc_selector_unarchiveObjectWithData:_240:816.objc_protocol_method_list.6.LCPI3_5.rodata.cst4.LCPI3_4.rodata..objc_sel_types_680:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16Q48Q56C64.objc_selector_initWithContentRect:styleMask:backing:defer:_680:8{_NSRect={_NSPoint=dd}{_NSSize=dd}}16Q48Q56C64.LCPI3_3.LCPI3_2.rodata..objc_sel_types_v800:81624{_NSRect={_NSPoint=dd}{_NSSize=dd}}326472.objc_selector_placeFormatter:withImageNamed:atRect:inView:toolTip:_v800:81624{_NSRect={_NSPoint=dd}{_NSSize=dd}}326472.rodata..objc_sel_types_v480:8"NSPasteboard"1624{_NSPoint=dd}32.rodata..objc_sel_types_C480:8"NSPasteboard"1624{_NSPoint=dd}32.rodata..objc_sel_types_v480:81624{_NSPoint=dd}32.objc_selector_depositViewResourceFromPasteboard:onObject:atPoint:_v480:81624{_NSPoint=dd}32.rodata..objc_sel_types_C480:81624{_NSPoint=dd}32.objc_selector_acceptsViewResourceFromPasteboard:forObject:atPoint:_C480:81624{_NSPoint=dd}32.rodata..objc_sel_types_v400:8162432.objc_selector_associateObject:type:with:_v400:8162432.rodata..objc_sel_types_400:8162432.objc_selector_localizedStringForKey:value:table:_400:8162432.LCPI3_1.rodata.str1.1.LCPI7_0.LCPI5_0.LCPI3_0.rodata..objc_sel_types_v480:816:243240.objc_selector_addObserver:selector:name:object:_v480:816:243240__objc_ivar_offset_IBPalette.originalWindow.t t#%@80 0 @0jP\P X j p&  0,W4B< 00HxP ` \I?"d$@l Xx0'x~p( 0,l 01V  6PoYČ  0=ЌN،   P0Dhh0VF  X0KKW h p0P^$ 0U0_l8-@ 0\LrT \  @0chsV0pNA x Pp0jq` x0opG  0tw  0yJ[ ȍ 00~ԍM܍# (`0k 8m@  P0 ]`- 6 0$2(   04v <  0HRr P P0\ (0 8 h   0tiI 5|n!`9 0   00   `0   0f 0ȎOk(Ў 0܎m@T  `0 p80[O  h 0$ah,9 4 0@x<H 0Td  \ 0h  ( @0tc P#|Q$ p0`  0HU@ X0ohȏ xԏ|n܏ 0Q   H0 TH  x0} 0,S$ 4&< 00Hg5@PO X `0%dGVpl 80*x{ h01 04n9 09b@ 0>ȐeА! ؐ 0(0Ezi @  PX0Ju` p0O t~ 0T U ( 0Y4Y < 0^HLP H0c x xe\  h0hhZG  p  0m|  0pF~ 5W#! 0!0wX@!4"! !(0~y! !ȑ!Б !X0ܑ! "0" "+<"P"+y" )0"Xy"AH&"` A#x @#,E#4B^#8<D#DCY#0#+OtQ/Ḱ|0́ pp   X !C Lo"l| P%gorm-1.3.1/Palettes/5Formatters/obj/5Formatters.obj/FormattersPalette.m.d0000644000175000017500000016302314327003123025267 0ustar heronheronobj/5Formatters.obj/FormattersPalette.m.o: FormattersPalette.m \ /usr/GNUstep/System/Library/Headers/Foundation/Foundation.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/GSVersionMacros.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/GSConfig.h \ /usr/GNUstep/Local/Library/Headers/objc/blocks_runtime.h \ /usr/GNUstep/Local/Library/Headers/objc/objc.h \ /usr/GNUstep/Local/Library/Headers/objc/runtime.h \ /usr/GNUstep/System/Library/Headers/Foundation/FoundationErrors.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSObject.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSObjCRuntime.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/GNUstep.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/GSBlocks.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/GSObjCRuntime.h \ /usr/GNUstep/Local/Library/Headers/objc/objc-api.h \ /usr/GNUstep/Local/Library/Headers/objc/encoding.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSZone.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDate.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSObject+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/FoundationLegacySwiftCompatibility.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDebug.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSDebug+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSProcessInfo.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSProcessInfo+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSAffineTransform.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSGeometry.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSString.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSRange.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSString+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSMutableString+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSAppleEventDescriptor.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSAppleEventManager.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSAppleScript.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSArchiver.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSCoder.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSSet.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSEnumerator.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSArray.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSArray+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSAttributedString.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDictionary.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSAttributedString+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSAutoreleasePool.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSBackgroundActivityScheduler.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSBundle.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSBundle+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSByteCountFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDecimalNumber.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDecimal.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSValue.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSNumber+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSByteOrder.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSCache.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSCalendar.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSCalendarDate.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSCalendarDate+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSCharacterSet.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSClassDescription.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSException.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSComparisonPredicate.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSExpression.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPredicate.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSCompoundPredicate.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSConnection.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSTimer.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSRunLoop.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSMapTable.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPointerFunctions.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSData.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSSerialization.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSData+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDateComponentsFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDateFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDateInterval.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDateIntervalFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDistantObject.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSProxy.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDistributedLock.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSDistributedNotificationCenter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSLock.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSLock+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSNotification.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSEnergyFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSError.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSExtensionContext.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSExtensionItem.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSExtensionRequestHandling.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFileCoordinator.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURL.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLHandle.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSURL+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFileHandle.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSFileHandle+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFileManager.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPathUtilities.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFilePresenter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFileVersion.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSFileWrapper.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSGarbageCollector.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSHashTable.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSHFSFileTypes.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSHost.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSHTTPCookie.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSHTTPCookieStorage.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSIndexPath.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSIndexSet.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSInvocation.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSMethodSignature.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSInvocationOperation.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSOperation.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSISO8601DateFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSItemProvider.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSItemProviderReadingWriting.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSJSONSerialization.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSKeyedArchiver.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPropertyList.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSKeyValueCoding.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSKeyValueObserving.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSLengthFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSLinguisticTagger.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSLocale.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSMeasurement.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSMeasurementFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSMetadata.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSMetadataAttributes.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSNotificationQueue.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSNetServices.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSNetServices+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSNull.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSNumberFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSObjectScripting.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSOrderedSet.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSOrthography.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPersonNameComponents.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPersonNameComponentsFormatter.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPointerArray.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPortCoder.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPortMessage.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPort.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSPortNameServer.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSProgress.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSProtocolChecker.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSRegularExpression.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScanner.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptClassDescription.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptCoercionHandler.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptCommand.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptCommandDescription.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptExecutionContext.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptKeyValueCoding.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptObjectSpecifiers.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptStandardSuiteCommands.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptSuiteRegistry.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSScriptWhoseTests.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSSortDescriptor.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSSpellServer.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSStream.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSStream+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSTask.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSTask+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSTextCheckingResult.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSThread.h \ /usr/GNUstep/System/Library/Headers/GNUstepBase/NSThread+GNUstepBase.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSTimeZone.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUbiquitousKeyValueStore.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUndoManager.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUnit.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUserActivity.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLAuthenticationChallenge.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLCache.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLConnection.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLCredential.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLCredentialStorage.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLDownload.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLError.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLProtectionSpace.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLProtocol.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLRequest.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLResponse.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSURLSession.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUserDefaults.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUserNotification.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSUUID.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSValueTransformer.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLDocument.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLNode.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLNodeOptions.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLDTD.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLDTDNode.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLElement.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXMLParser.h \ /usr/GNUstep/System/Library/Headers/Foundation/NSXPCConnection.h \ /usr/GNUstep/System/Library/Headers/AppKit/AppKit.h \ /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSVersion.h \ /usr/GNUstep/System/Library/Headers/AppKit/AppKitErrors.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGraphics.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGraphicsContext.h \ /usr/GNUstep/System/Library/Headers/AppKit/AppKitDefines.h \ /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSMethodTable.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFont.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibility.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityConstants.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityCustomAction.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityCustomRotor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityProtocols.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityElement.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSActionCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSParagraphStyle.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSText.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSResponder.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSInterfaceStyle.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceLayout.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSpellProtocol.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAnimationContext.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAppearance.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSApplication.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceValidation.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAttributedString.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFontManager.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSBitmapImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSBox.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSBrowser.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSControl.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSBrowserCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSButton.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSButtonCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCachedImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCIImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSClipView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCollectionView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDragging.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSNibDeclarations.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCollectionViewItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSImageView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSImageCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextField.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextFieldCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSViewController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSeguePerforming.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStoryboardSegue.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPopover.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorList.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorPicking.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorWell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSWindow.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorPicker.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCursor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCustomImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDataAsset.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDataLink.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDataLinkManager.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDataLinkPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSEPSImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSEvent.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFontPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSForm.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMatrix.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFormCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSHelpPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSImage.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMenu.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMenuItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMenuItemCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMenuView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSNibLoading.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSOpenPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSavePanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPageLayout.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPasteboard.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPasteboardItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPDFInfo.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPrintInfo.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPDFImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPDFPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPICTImageRep.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPopUpButton.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPopUpButtonCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPrinter.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPrintOperation.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPrintPanel.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSRunningApplication.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSWorkspace.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSScreen.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSScroller.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSScrollView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSScrubber.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSScrubberItemView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSScrubberLayout.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSelection.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSharingService.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSlider.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSliderCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSpellChecker.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSplitView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStatusBar.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStatusBarButton.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStatusItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStringDrawing.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAlert.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAnimation.h \ /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSAnimator.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSAffineTransform.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSArrayController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSObjectController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSBezierPath.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSButtonTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorSampler.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorSpace.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSComboBox.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSComboBoxCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCandidateListTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSClickGestureRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGestureRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSColorPickerTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSCustomTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDatePicker.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDatePickerCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDockTile.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDocument.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDocumentController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSDrawer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFileWrapperExtensions.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFontAssetRequest.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFontCollection.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSFontDescriptor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGlyphGenerator.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGlyphInfo.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGradient.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGridView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSGroupTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSHelpManager.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSInputManager.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSInputServer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSKeyValueBinding.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutAnchor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutConstraint.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutGuide.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceItemIdentification.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutManager.h \ /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSLayoutManager.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextFinder.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextAttachment.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSLevelIndicator.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSLevelIndicatorCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMagnificationGestureRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMediaLibraryBrowserController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMovie.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSMovieView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPageController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPanGestureRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSNib.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSNibControlConnector.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSNibConnector.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSNibOutletConnector.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSOpenGL.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSOpenGLView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSOutlineView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTableView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPersistentDocument.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPathControl.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPathCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPathComponentCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPathControlItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPickerTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPredicateEditor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSRuleEditor.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPredicateEditorRowTemplate.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSProgressIndicator.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPopoverTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSPressGestureRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSRulerMarker.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSRulerView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSRotationGestureRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSearchField.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSearchFieldCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSecureTextField.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSegmentedCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSegmentedControl.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSShadow.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSharingServicePickerToolbarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSToolbarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSharingServicePickerTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSliderTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSound.h \ /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSSoundSource.h \ /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSSoundSink.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSpeechRecognizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSpeechSynthesizer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStackView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStepperTouchBarItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStepper.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStepperCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSStoryboard.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSwitch.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSplitViewController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSSplitViewItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTableColumn.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTableHeaderCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTableHeaderView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTabView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTabViewController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSToolbar.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTabViewItem.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextAlternatives.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextContainer.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextCheckingClient.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextInputClient.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextCheckingController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextInputContext.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextList.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextStorage.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTextTable.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTouch.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTouchBar.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTokenField.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTokenFieldCell.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSToolbarItemGroup.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTrackingArea.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTreeController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSTreeNode.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSUserDefaultsController.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceCompression.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceItemSearching.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSVisualEffectView.h \ /usr/GNUstep/System/Library/Headers/AppKit/NSWindowController.h \ /usr/GNUstep/System/Library/Headers/AppKit/PSOperators.h \ /usr/GNUstep/System/Library/Headers/AppKit/DPSOperators.h \ ../../InterfaceBuilder/InterfaceBuilder.h \ ../../InterfaceBuilder/IBApplicationAdditions.h \ ../../InterfaceBuilder/IBDocuments.h \ ../../InterfaceBuilder/IBEditors.h ../../InterfaceBuilder/IBSystem.h \ ../../InterfaceBuilder/IBConnectors.h \ ../../InterfaceBuilder/IBCellAdditions.h \ ../../InterfaceBuilder/IBCellProtocol.h \ ../../InterfaceBuilder/IBDefines.h \ ../../InterfaceBuilder/IBInspector.h \ ../../InterfaceBuilder/IBObjectProtocol.h \ ../../InterfaceBuilder/IBInspectorManager.h \ ../../InterfaceBuilder/IBInspectorMode.h \ ../../InterfaceBuilder/IBObjectAdditions.h \ ../../InterfaceBuilder/IBPalette.h ../../InterfaceBuilder/IBPlugin.h \ ../../InterfaceBuilder/IBProjectFiles.h \ ../../InterfaceBuilder/IBProjects.h \ ../../InterfaceBuilder/IBResourceManager.h \ ../../InterfaceBuilder/IBViewAdditions.h \ ../../InterfaceBuilder/IBViewProtocol.h \ ../../InterfaceBuilder/IBViewResourceDragging.h FormattersPalette.h /usr/GNUstep/System/Library/Headers/Foundation/Foundation.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/GSVersionMacros.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/GSConfig.h: /usr/GNUstep/Local/Library/Headers/objc/blocks_runtime.h: /usr/GNUstep/Local/Library/Headers/objc/objc.h: /usr/GNUstep/Local/Library/Headers/objc/runtime.h: /usr/GNUstep/System/Library/Headers/Foundation/FoundationErrors.h: /usr/GNUstep/System/Library/Headers/Foundation/NSObject.h: /usr/GNUstep/System/Library/Headers/Foundation/NSObjCRuntime.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/GNUstep.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/GSBlocks.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/GSObjCRuntime.h: /usr/GNUstep/Local/Library/Headers/objc/objc-api.h: /usr/GNUstep/Local/Library/Headers/objc/encoding.h: /usr/GNUstep/System/Library/Headers/Foundation/NSZone.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDate.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSObject+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/FoundationLegacySwiftCompatibility.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDebug.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSDebug+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSProcessInfo.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSProcessInfo+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSAffineTransform.h: /usr/GNUstep/System/Library/Headers/Foundation/NSGeometry.h: /usr/GNUstep/System/Library/Headers/Foundation/NSString.h: /usr/GNUstep/System/Library/Headers/Foundation/NSRange.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSString+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSMutableString+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSAppleEventDescriptor.h: /usr/GNUstep/System/Library/Headers/Foundation/NSAppleEventManager.h: /usr/GNUstep/System/Library/Headers/Foundation/NSAppleScript.h: /usr/GNUstep/System/Library/Headers/Foundation/NSArchiver.h: /usr/GNUstep/System/Library/Headers/Foundation/NSCoder.h: /usr/GNUstep/System/Library/Headers/Foundation/NSSet.h: /usr/GNUstep/System/Library/Headers/Foundation/NSEnumerator.h: /usr/GNUstep/System/Library/Headers/Foundation/NSArray.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSArray+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSAttributedString.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDictionary.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSAttributedString+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSAutoreleasePool.h: /usr/GNUstep/System/Library/Headers/Foundation/NSBackgroundActivityScheduler.h: /usr/GNUstep/System/Library/Headers/Foundation/NSBundle.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSBundle+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSByteCountFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDecimalNumber.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDecimal.h: /usr/GNUstep/System/Library/Headers/Foundation/NSValue.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSNumber+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSByteOrder.h: /usr/GNUstep/System/Library/Headers/Foundation/NSCache.h: /usr/GNUstep/System/Library/Headers/Foundation/NSCalendar.h: /usr/GNUstep/System/Library/Headers/Foundation/NSCalendarDate.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSCalendarDate+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSCharacterSet.h: /usr/GNUstep/System/Library/Headers/Foundation/NSClassDescription.h: /usr/GNUstep/System/Library/Headers/Foundation/NSException.h: /usr/GNUstep/System/Library/Headers/Foundation/NSComparisonPredicate.h: /usr/GNUstep/System/Library/Headers/Foundation/NSExpression.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPredicate.h: /usr/GNUstep/System/Library/Headers/Foundation/NSCompoundPredicate.h: /usr/GNUstep/System/Library/Headers/Foundation/NSConnection.h: /usr/GNUstep/System/Library/Headers/Foundation/NSTimer.h: /usr/GNUstep/System/Library/Headers/Foundation/NSRunLoop.h: /usr/GNUstep/System/Library/Headers/Foundation/NSMapTable.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPointerFunctions.h: /usr/GNUstep/System/Library/Headers/Foundation/NSData.h: /usr/GNUstep/System/Library/Headers/Foundation/NSSerialization.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSData+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDateComponentsFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDateFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDateInterval.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDateIntervalFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDistantObject.h: /usr/GNUstep/System/Library/Headers/Foundation/NSProxy.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDistributedLock.h: /usr/GNUstep/System/Library/Headers/Foundation/NSDistributedNotificationCenter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSLock.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSLock+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSNotification.h: /usr/GNUstep/System/Library/Headers/Foundation/NSEnergyFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSError.h: /usr/GNUstep/System/Library/Headers/Foundation/NSExtensionContext.h: /usr/GNUstep/System/Library/Headers/Foundation/NSExtensionItem.h: /usr/GNUstep/System/Library/Headers/Foundation/NSExtensionRequestHandling.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFileCoordinator.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURL.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLHandle.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSURL+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFileHandle.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSFileHandle+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFileManager.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPathUtilities.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFilePresenter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFileVersion.h: /usr/GNUstep/System/Library/Headers/Foundation/NSFileWrapper.h: /usr/GNUstep/System/Library/Headers/Foundation/NSGarbageCollector.h: /usr/GNUstep/System/Library/Headers/Foundation/NSHashTable.h: /usr/GNUstep/System/Library/Headers/Foundation/NSHFSFileTypes.h: /usr/GNUstep/System/Library/Headers/Foundation/NSHost.h: /usr/GNUstep/System/Library/Headers/Foundation/NSHTTPCookie.h: /usr/GNUstep/System/Library/Headers/Foundation/NSHTTPCookieStorage.h: /usr/GNUstep/System/Library/Headers/Foundation/NSIndexPath.h: /usr/GNUstep/System/Library/Headers/Foundation/NSIndexSet.h: /usr/GNUstep/System/Library/Headers/Foundation/NSInvocation.h: /usr/GNUstep/System/Library/Headers/Foundation/NSMethodSignature.h: /usr/GNUstep/System/Library/Headers/Foundation/NSInvocationOperation.h: /usr/GNUstep/System/Library/Headers/Foundation/NSOperation.h: /usr/GNUstep/System/Library/Headers/Foundation/NSISO8601DateFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSItemProvider.h: /usr/GNUstep/System/Library/Headers/Foundation/NSItemProviderReadingWriting.h: /usr/GNUstep/System/Library/Headers/Foundation/NSJSONSerialization.h: /usr/GNUstep/System/Library/Headers/Foundation/NSKeyedArchiver.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPropertyList.h: /usr/GNUstep/System/Library/Headers/Foundation/NSKeyValueCoding.h: /usr/GNUstep/System/Library/Headers/Foundation/NSKeyValueObserving.h: /usr/GNUstep/System/Library/Headers/Foundation/NSLengthFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSLinguisticTagger.h: /usr/GNUstep/System/Library/Headers/Foundation/NSLocale.h: /usr/GNUstep/System/Library/Headers/Foundation/NSMeasurement.h: /usr/GNUstep/System/Library/Headers/Foundation/NSMeasurementFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSMetadata.h: /usr/GNUstep/System/Library/Headers/Foundation/NSMetadataAttributes.h: /usr/GNUstep/System/Library/Headers/Foundation/NSNotificationQueue.h: /usr/GNUstep/System/Library/Headers/Foundation/NSNetServices.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSNetServices+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSNull.h: /usr/GNUstep/System/Library/Headers/Foundation/NSNumberFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSObjectScripting.h: /usr/GNUstep/System/Library/Headers/Foundation/NSOrderedSet.h: /usr/GNUstep/System/Library/Headers/Foundation/NSOrthography.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPersonNameComponents.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPersonNameComponentsFormatter.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPointerArray.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPortCoder.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPortMessage.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPort.h: /usr/GNUstep/System/Library/Headers/Foundation/NSPortNameServer.h: /usr/GNUstep/System/Library/Headers/Foundation/NSProgress.h: /usr/GNUstep/System/Library/Headers/Foundation/NSProtocolChecker.h: /usr/GNUstep/System/Library/Headers/Foundation/NSRegularExpression.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScanner.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptClassDescription.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptCoercionHandler.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptCommand.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptCommandDescription.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptExecutionContext.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptKeyValueCoding.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptObjectSpecifiers.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptStandardSuiteCommands.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptSuiteRegistry.h: /usr/GNUstep/System/Library/Headers/Foundation/NSScriptWhoseTests.h: /usr/GNUstep/System/Library/Headers/Foundation/NSSortDescriptor.h: /usr/GNUstep/System/Library/Headers/Foundation/NSSpellServer.h: /usr/GNUstep/System/Library/Headers/Foundation/NSStream.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSStream+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSTask.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSTask+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSTextCheckingResult.h: /usr/GNUstep/System/Library/Headers/Foundation/NSThread.h: /usr/GNUstep/System/Library/Headers/GNUstepBase/NSThread+GNUstepBase.h: /usr/GNUstep/System/Library/Headers/Foundation/NSTimeZone.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUbiquitousKeyValueStore.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUndoManager.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUnit.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUserActivity.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLAuthenticationChallenge.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLCache.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLConnection.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLCredential.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLCredentialStorage.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLDownload.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLError.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLProtectionSpace.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLProtocol.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLRequest.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLResponse.h: /usr/GNUstep/System/Library/Headers/Foundation/NSURLSession.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUserDefaults.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUserNotification.h: /usr/GNUstep/System/Library/Headers/Foundation/NSUUID.h: /usr/GNUstep/System/Library/Headers/Foundation/NSValueTransformer.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLDocument.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLNode.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLNodeOptions.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLDTD.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLDTDNode.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLElement.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXMLParser.h: /usr/GNUstep/System/Library/Headers/Foundation/NSXPCConnection.h: /usr/GNUstep/System/Library/Headers/AppKit/AppKit.h: /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSVersion.h: /usr/GNUstep/System/Library/Headers/AppKit/AppKitErrors.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGraphics.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGraphicsContext.h: /usr/GNUstep/System/Library/Headers/AppKit/AppKitDefines.h: /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSMethodTable.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFont.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibility.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityConstants.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityCustomAction.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityCustomRotor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityProtocols.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAccessibilityElement.h: /usr/GNUstep/System/Library/Headers/AppKit/NSActionCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSParagraphStyle.h: /usr/GNUstep/System/Library/Headers/AppKit/NSText.h: /usr/GNUstep/System/Library/Headers/AppKit/NSView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSResponder.h: /usr/GNUstep/System/Library/Headers/AppKit/NSInterfaceStyle.h: /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceLayout.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSpellProtocol.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAnimationContext.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAppearance.h: /usr/GNUstep/System/Library/Headers/AppKit/NSApplication.h: /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceValidation.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAttributedString.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFontManager.h: /usr/GNUstep/System/Library/Headers/AppKit/NSBitmapImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSBox.h: /usr/GNUstep/System/Library/Headers/AppKit/NSBrowser.h: /usr/GNUstep/System/Library/Headers/AppKit/NSControl.h: /usr/GNUstep/System/Library/Headers/AppKit/NSBrowserCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSButton.h: /usr/GNUstep/System/Library/Headers/AppKit/NSButtonCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCachedImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCIImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSClipView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCollectionView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDragging.h: /usr/GNUstep/System/Library/Headers/AppKit/NSNibDeclarations.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCollectionViewItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSImageView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSImageCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextField.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextFieldCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSViewController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSeguePerforming.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStoryboardSegue.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPopover.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorList.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorPicking.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorWell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSWindow.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorPicker.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCursor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCustomImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDataAsset.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDataLink.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDataLinkManager.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDataLinkPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSEPSImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSEvent.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFontPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSForm.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMatrix.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFormCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSHelpPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSImage.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMenu.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMenuItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMenuItemCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMenuView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSNibLoading.h: /usr/GNUstep/System/Library/Headers/AppKit/NSOpenPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSavePanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPageLayout.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPasteboard.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPasteboardItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPDFInfo.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPrintInfo.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPDFImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPDFPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPICTImageRep.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPopUpButton.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPopUpButtonCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPrinter.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPrintOperation.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPrintPanel.h: /usr/GNUstep/System/Library/Headers/AppKit/NSRunningApplication.h: /usr/GNUstep/System/Library/Headers/AppKit/NSWorkspace.h: /usr/GNUstep/System/Library/Headers/AppKit/NSScreen.h: /usr/GNUstep/System/Library/Headers/AppKit/NSScroller.h: /usr/GNUstep/System/Library/Headers/AppKit/NSScrollView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSScrubber.h: /usr/GNUstep/System/Library/Headers/AppKit/NSScrubberItemView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSScrubberLayout.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSelection.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSharingService.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSlider.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSliderCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSpellChecker.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSplitView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStatusBar.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStatusBarButton.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStatusItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStringDrawing.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAlert.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAnimation.h: /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSAnimator.h: /usr/GNUstep/System/Library/Headers/AppKit/NSAffineTransform.h: /usr/GNUstep/System/Library/Headers/AppKit/NSArrayController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSObjectController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSBezierPath.h: /usr/GNUstep/System/Library/Headers/AppKit/NSButtonTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorSampler.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorSpace.h: /usr/GNUstep/System/Library/Headers/AppKit/NSComboBox.h: /usr/GNUstep/System/Library/Headers/AppKit/NSComboBoxCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCandidateListTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSClickGestureRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGestureRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSColorPickerTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSCustomTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDatePicker.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDatePickerCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDockTile.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDocument.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDocumentController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSDrawer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFileWrapperExtensions.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFontAssetRequest.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFontCollection.h: /usr/GNUstep/System/Library/Headers/AppKit/NSFontDescriptor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGlyphGenerator.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGlyphInfo.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGradient.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGridView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSGroupTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSHelpManager.h: /usr/GNUstep/System/Library/Headers/AppKit/NSInputManager.h: /usr/GNUstep/System/Library/Headers/AppKit/NSInputServer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSKeyValueBinding.h: /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutAnchor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutConstraint.h: /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutGuide.h: /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceItemIdentification.h: /usr/GNUstep/System/Library/Headers/AppKit/NSLayoutManager.h: /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSLayoutManager.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextFinder.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextAttachment.h: /usr/GNUstep/System/Library/Headers/AppKit/NSLevelIndicator.h: /usr/GNUstep/System/Library/Headers/AppKit/NSLevelIndicatorCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMagnificationGestureRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMediaLibraryBrowserController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMovie.h: /usr/GNUstep/System/Library/Headers/AppKit/NSMovieView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPageController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPanGestureRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSNib.h: /usr/GNUstep/System/Library/Headers/AppKit/NSNibControlConnector.h: /usr/GNUstep/System/Library/Headers/AppKit/NSNibConnector.h: /usr/GNUstep/System/Library/Headers/AppKit/NSNibOutletConnector.h: /usr/GNUstep/System/Library/Headers/AppKit/NSOpenGL.h: /usr/GNUstep/System/Library/Headers/AppKit/NSOpenGLView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSOutlineView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTableView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPersistentDocument.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPathControl.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPathCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPathComponentCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPathControlItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPickerTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPredicateEditor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSRuleEditor.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPredicateEditorRowTemplate.h: /usr/GNUstep/System/Library/Headers/AppKit/NSProgressIndicator.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPopoverTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSPressGestureRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSRulerMarker.h: /usr/GNUstep/System/Library/Headers/AppKit/NSRulerView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSRotationGestureRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSearchField.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSearchFieldCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSecureTextField.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSegmentedCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSegmentedControl.h: /usr/GNUstep/System/Library/Headers/AppKit/NSShadow.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSharingServicePickerToolbarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSToolbarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSharingServicePickerTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSliderTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSound.h: /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSSoundSource.h: /usr/GNUstep/System/Library/Headers/GNUstepGUI/GSSoundSink.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSpeechRecognizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSpeechSynthesizer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStackView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStepperTouchBarItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStepper.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStepperCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSStoryboard.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSwitch.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSplitViewController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSSplitViewItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTableColumn.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTableHeaderCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTableHeaderView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTabView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTabViewController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSToolbar.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTabViewItem.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextAlternatives.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextContainer.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextCheckingClient.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextInputClient.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextCheckingController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextInputContext.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextList.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextStorage.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTextTable.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTouch.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTouchBar.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTokenField.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTokenFieldCell.h: /usr/GNUstep/System/Library/Headers/AppKit/NSToolbarItemGroup.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTrackingArea.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTreeController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSTreeNode.h: /usr/GNUstep/System/Library/Headers/AppKit/NSUserDefaultsController.h: /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceCompression.h: /usr/GNUstep/System/Library/Headers/AppKit/NSUserInterfaceItemSearching.h: /usr/GNUstep/System/Library/Headers/AppKit/NSVisualEffectView.h: /usr/GNUstep/System/Library/Headers/AppKit/NSWindowController.h: /usr/GNUstep/System/Library/Headers/AppKit/PSOperators.h: /usr/GNUstep/System/Library/Headers/AppKit/DPSOperators.h: ../../InterfaceBuilder/InterfaceBuilder.h: ../../InterfaceBuilder/IBApplicationAdditions.h: ../../InterfaceBuilder/IBDocuments.h: ../../InterfaceBuilder/IBEditors.h: ../../InterfaceBuilder/IBSystem.h: ../../InterfaceBuilder/IBConnectors.h: ../../InterfaceBuilder/IBCellAdditions.h: ../../InterfaceBuilder/IBCellProtocol.h: ../../InterfaceBuilder/IBDefines.h: ../../InterfaceBuilder/IBInspector.h: ../../InterfaceBuilder/IBObjectProtocol.h: ../../InterfaceBuilder/IBInspectorManager.h: ../../InterfaceBuilder/IBInspectorMode.h: ../../InterfaceBuilder/IBObjectAdditions.h: ../../InterfaceBuilder/IBPalette.h: ../../InterfaceBuilder/IBPlugin.h: ../../InterfaceBuilder/IBProjectFiles.h: ../../InterfaceBuilder/IBProjects.h: ../../InterfaceBuilder/IBResourceManager.h: ../../InterfaceBuilder/IBViewAdditions.h: ../../InterfaceBuilder/IBViewProtocol.h: ../../InterfaceBuilder/IBViewResourceDragging.h: FormattersPalette.h: gorm-1.3.1/Version0000644000175000017500000000066214360747012013050 0ustar heronheron # This file is included in various Makefile's to get version information. # Compatible with Bourne shell syntax, so it can included there too. # The minimum gcc version required to compile the library. GNUSTEP_GCC=4.3.0 # GNUstep GUI version required GNUSTEP_CORE_VERSION=0.30.0 # The version number of this release. MAJOR_VERSION=1 MINOR_VERSION=3 SUBMINOR_VERSION=1 VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION} gorm-1.3.1/GormLib/0000755000175000017500000000000014360746517013040 5ustar heronherongorm-1.3.1/GormLib/IBResourceManager.m0000644000175000017500000001267214327003122016500 0ustar heronheron/* IBResourceManager.m * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include NSString *IBResourceManagerRegistryDidChangeNotification = @"IBResourceManagerRegistryDidChangeNotification"; static NSMapTable *_resourceManagers = NULL; @implementation IBResourceManager : NSObject /** * Create the resource manager table. */ + (BOOL) _createTable { if(_resourceManagers == NULL) { _resourceManagers = NSCreateMapTable(NSObjectMapKeyCallBacks, NSObjectMapValueCallBacks, 2); } return (_resourceManagers != NULL); } /** * Add a class to the resourceManager master list of classes. */ + (void) _addClass: (Class)managerClass { if([self _createTable]) { NSMutableArray *list = NSMapGet(_resourceManagers, [NSNull null]); if(list == nil) { list = [NSMutableArray array]; NSMapInsert(_resourceManagers, [NSNull null], list); } if([list containsObject: managerClass] == NO) { [list addObject: managerClass]; } } } + (void) registerResourceManagerClass: (Class)managerClass { [self _addClass: managerClass]; // notify [[NSNotificationCenter defaultCenter] postNotificationName: IBResourceManagerRegistryDidChangeNotification object: managerClass]; } + (void) registerResourceManagerClass: (Class)managerClass forFrameworks: (NSArray *)frameworks { if([self _createTable]) { NSMutableArray *list = nil; if(frameworks == nil) { [self _addClass: managerClass]; } else { NSEnumerator *en = [frameworks objectEnumerator]; NSString *fw = nil; // add it to all of the frameworks. while((fw = [en nextObject]) != nil) { list = NSMapGet(_resourceManagers, fw); if(list == nil) { list = [NSMutableArray array]; NSMapInsert(_resourceManagers, fw, list); } if([list containsObject: managerClass] == NO) { [list addObject: managerClass]; } } // also add it to the master list. [self _addClass: managerClass]; } // notify [[NSNotificationCenter defaultCenter] postNotificationName: IBResourceManagerRegistryDidChangeNotification object: managerClass]; } } + (NSArray *) registeredResourceManagerClassesForFramework: (NSString *)framework { return (NSArray *)(NSMapGet(_resourceManagers, ((framework == nil)?(void *)[NSNull null]:framework))); } - (BOOL) acceptsResourcesFromPasteboard: (NSPasteboard *)pboard { NSArray *types = [pboard types]; NSArray *resourcePbTypes = [self resourcePasteboardTypes]; NSString *type = [types firstObjectCommonWithArray: resourcePbTypes]; return (type != nil); } - (void) addResources: (NSArray *)resourceList { [document attachObjects: resourceList toParent: nil]; } - (void) addResourcesFromPasteboard: (NSPasteboard *)pboard { NSArray *resourcePbTypes = [self resourcePasteboardTypes]; NSString *type = nil; NSEnumerator *en = [resourcePbTypes objectEnumerator]; while((type = [en nextObject]) != nil) { NSData *data = [pboard dataForType: type]; if(data != nil) { NS_DURING { id obj = [NSUnarchiver unarchiveObjectWithData: data]; if(obj != nil) { // the object is an array of objects of this type. [self addResources: obj]; } } NS_HANDLER { NSLog(@"Problem adding resource: %@",[localException reason]); } NS_ENDHANDLER; } } } - (void) application: (NSString *) appName didModifyFileAtPath: (NSString *)path { // does nothing. } - (id) document { return document; } - (id) initWithDocument: (id)doc { if((self = [super init]) != nil) { document = doc; // weak connection. } return self; } /** * Deallocate the object. */ - (void) dealloc { document = nil; [super dealloc]; } - (BOOL) isReadOnly; { return NO; } - (void) project: (id)proj didAddFile: (id)file { } - (void) project: (id)proj didChangeLocalizationOfFile: (id)file { } - (void) project: (id)proj didRemoveFile: (id)file { // does nothing in base implementation. } - (NSArray *) resourceFileTypes { return nil; } - (NSArray *) resourcePasteboardTypes { return [NSArray arrayWithObjects: IBObjectPboardType, nil]; } - (NSArray *) resourcesForObjects: (NSArray *)objs; { return nil; } - (void) writeToDocumentPath: (NSString *)path { // does nothing in base implementation. } @end gorm-1.3.1/GormLib/IBDocuments.m0000644000175000017500000000245314327003122015353 0ustar heronheron/* IBDocuments.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include NSString *IBDidOpenDocumentNotification = @"IBDidOpenDocumentNotification"; NSString *IBWillSaveDocumentNotification = @"IBWillSaveDocumentNotification"; NSString *IBDidSaveDocumentNotification = @"IBDidSaveDocumentNotification"; NSString *IBWillCloseDocumentNotification = @"IBWillCloseDocumentNotification"; gorm-1.3.1/GormLib/IBCellProtocol.h0000644000175000017500000000276714327003122016016 0ustar heronheron/* IBViewProtocol.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBCELLPROTOCOL_H #define INCLUDED_IBCELLPROTOCOL_H #include #include @protocol IBCellProtocol /** * Called when the cell is about to be alt-dragged. */ - (void) cellWillAltDragWithSize: (NSSize)size; /** * Maximum size for the cell. */ - (NSSize) maximumSizeForCellSize: (NSSize)size knobPosition: (IBKnobPosition)position; /** * Minimum size for the cell. */ - (NSSize) minimumSizeForCellSize: (NSSize)size knobPosition: (IBKnobPosition)position; @end #endif gorm-1.3.1/GormLib/IBResourceManager.h0000644000175000017500000000774614327003122016501 0ustar heronheron/* IBResourceManager.h * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBRESOURCEMANAGER_H #define INCLUDED_IBRESOURCEMANAGER_H #include #include #include #include @class NSString, NSPasteboard, NSMutableArray; /** * Notification sent when a resource manager class is added to /removed from * the registry. */ IB_EXTERN NSString *IBResourceManagerRegistryDidChangeNotification; /** * Enumerated type to allow specification of where the resource * lives. */ enum IBResourceLocation { kNibResource = 0, kProjectResource, kPaletteResource, kSystemResource, kUnknownResource }; @interface IBResourceManager : NSObject { id document; } /** * Register the given class as a resource mananger. */ + (void) registerResourceManagerClass: (Class)managerClass; /** * Register the given class as a resource manager for the frameworks in the array. */ + (void) registerResourceManagerClass: (Class)managerClass forFrameworks: (NSArray *)frameworks; /** * Return an array of classes for the given framework. */ + (NSArray *) registeredResourceManagerClassesForFramework: (NSString *)framework; /** * Returns YES, if the pasteboard contains a type the resource * manager can accept. */ - (BOOL) acceptsResourcesFromPasteboard: (NSPasteboard *)pboard; /** * Add a resource. */ - (void) addResources: (NSArray *)resourceList; /** * Add resoures from the pasteboard. Invokes the * acceptsResourcesFromPasteboard: method to determine * if the resources will be added. */ - (void) addResourcesFromPasteboard: (NSPasteboard *)pboard; /** * Called by an external application when a file owned by * the GUI builder is modified. */ - (void) application: (NSString *) appName didModifyFileAtPath: (NSString *)path; /** * Returns the document with which this resource manager is * associated. */ - (id) document; /** * Instantiate the resource manager with the given * document object. */ - (id) initWithDocument: (id)document; /** * Returns YES, if this resource manager is non-modifiable. */ - (BOOL) isReadOnly; /** * Called by an external application when the a file * is added. */ - (void) project: (id)proj didAddFile: (id)file; /** * Called by an external application when the a file * changes localization. */ - (void) project: (id)proj didChangeLocalizationOfFile: (id)file; /** * Called by an external application when a file * is removed. */ - (void) project: (id)proj didRemoveFile: (id)file; /** * Returns a list of resource file types this manager can accept. */ - (NSArray *) resourceFileTypes; /** * Returns a list of pasteboard types this manager can accept. */ - (NSArray *) resourcePasteboardTypes; /** * Returns the associated resources for the objects. */ - (NSArray *) resourcesForObjects: (NSArray *)objs; /** * Writes a resource to the document path. */ - (void) writeToDocumentPath: (NSString *)path; @end #endif gorm-1.3.1/GormLib/COPYING.LIB0000644000175000017500000006350614327003122014467 0ustar heronheron GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! gorm-1.3.1/GormLib/IBInspector.m0000644000175000017500000000463414327003122015363 0ustar heronheron/* IBInspector.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include static NSNotificationCenter *nc = nil; @implementation IBInspector + (void) initialize { if(self == [IBInspector class]) { nc = [NSNotificationCenter defaultCenter]; } } - (id) init { if((self = [super init]) != nil) { [nc addObserver: self selector: @selector(_releaseObject:) name: IBWillCloseDocumentNotification object: nil]; } return self; } - (void) dealloc { [nc removeObserver: self]; RELEASE(object); [super dealloc]; } - (void) _releaseObject: (NSNotification *)notification { id doc = [notification object]; if([doc nameForObject: object] != nil) { [self setObject: nil]; } } - (NSView*) initialFirstResponder { return nil; } - (id) object { return object; } - (void) ok: sender { [self touch: sender]; } - (NSButton*) okButton { return okButton; } - (void) revert: (id)sender { [window setDocumentEdited: NO]; } - (NSButton*) revertButton { return revertButton; } - (void) setObject: (id)anObject { ASSIGN(object, anObject); [self revert: self]; } - (void) textDidBeginEditing: (NSNotification*)aNotification { } - (void) touch: (id)sender { id doc = [(id)NSApp activeDocument]; [doc touch]; } - (BOOL) wantsButtons { return NO; } - (NSWindow*) window { return window; } @end gorm-1.3.1/GormLib/IBPlugin.h0000644000175000017500000000463714327003122014651 0ustar heronheron/* IBPlugin.h * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBPLUGIN_H #define INCLUDED_IBPLUGIN_H #include #include // forward references @class NSString; @class NSArray; @class NSView; @interface IBPlugin : NSObject // Getting the shared plugin... /** * Returns the shared instance of the plugin. */ + (id)sharedInstance; // Loading and unloading plugin resources. /** * Notifies the receiver that the plugin will be loaded. */ - (void) didLoad; /** * Notifies the receiver that the plugin will be unloaded. */ - (void) willUnload; // Getting the plugins nib files. /** * Return the array of custom nib filenames. You are required to override * this method when creating a plugin. */ - (NSArray *) libraryNibNames; // Configuring the plugin /** * Returns the name of the plugin to be displayed. */ - (NSString *) label; /** * The preferences panel/view that should be added to the preferences drop * down and preferences window. */ - (NSView *) preferencesView; /** * Returns the list of frameworks needed to support the plugin. */ - (NSArray *) requiredFrameworks; // Pasteboard notifications... /** * Notifies the receiver that one of it's components will be added to the * document. */ - (NSArray *) pasteboardObjectsForDraggedLibraryView: (NSView *)view; /** * Notifies the receiver that objects were added to the document. */ - (void) document: (id)document didAddDraggedObjects: (NSArray *)roots fromDraggedLibraryView: (NSView *)view; @end #endif gorm-1.3.1/GormLib/IBApplicationAdditions.h0000644000175000017500000000410414327003122017502 0ustar heronheron/* IBApplicationAdditions.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBAPPLICATIONADDITIONS_H #define INCLUDED_IBAPPLICATIONADDITIONS_H #include #include #include IB_EXTERN NSString *IBWillBeginTestingInterfaceNotification; IB_EXTERN NSString *IBDidBeginTestingInterfaceNotification; IB_EXTERN NSString *IBWillEndTestingInterfaceNotification; IB_EXTERN NSString *IBDidEndTestingInterfaceNotification; @protocol IB /** * Returns the document which is currently being edited. */ - (id) activeDocument; /** * Returns YES, if the reciever is in testing mode. */ - (BOOL) isTestingInterface; /** * Returns the current selection owner. */ - (id) selectionOwner; /** * Returns the current selection from the current selection * owner. */ - (id) selectedObject; /** * Returns the document which contains this object. */ - (id) documentForObject: (id)object; @end @interface NSApplication (GormSpecific) /** * Image to be displayed with making a link. */ - (NSImage *) linkImage; /** * Start the connection process. */ - (void) startConnecting; @end #endif gorm-1.3.1/GormLib/IBViewResourceDragging.h0000644000175000017500000000461514327003122017474 0ustar heronheron/* IBViewResourceDragging.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBVIEWRESOURCEDRAGGING_H #define INCLUDED_IBVIEWRESOURCEDRAGGING_H #include @class NSPasteboard; /** * Protocol describing those methods needed to accept resources. */ @protocol IBViewResourceDraggingDelegates /** * Ask if the view accepts the object. */ - (BOOL) acceptsViewResourceFromPasteboard: (NSPasteboard *)pb forObject: (id)obj atPoint: (NSPoint)p; /** * Perform the action of depositing the object. */ - (void) depositViewResourceFromPasteboard: (NSPasteboard *)pb onObject: (id)obj atPoint: (NSPoint)p; /** * Should we draw the connection frame when the resource is * dragged in? */ - (BOOL) shouldDrawConnectionFrame; /** * Types of resources accepted by this view. */ - (NSArray *)viewResourcePasteboardTypes; @end /** * Informal protocol on NSView. */ @interface NSView (IBViewResourceDraggingDelegates) /** * Types accepted by the view. */ + (NSArray *) acceptedViewResourcePasteboardTypes; /** * Return the list of registered delegates. */ + (NSArray *) registeredViewResourceDraggingDelegates; /** * Register a delegate. */ + (void) registerViewResourceDraggingDelegate: (id)delegate; /** * Remove a previously registered delegate. */ + (void) unregisterViewResourceDraggingDelegate: (id)delegate; @end #endif gorm-1.3.1/GormLib/IBDocuments.h0000644000175000017500000001475514327003122015356 0ustar heronheron/* IBDocuments.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBDOCUMENTS_H #define INCLUDED_IBDOCUMENTS_H #include #include #include #include IB_EXTERN NSString *IBDidOpenDocumentNotification; IB_EXTERN NSString *IBWillSaveDocumentNotification; IB_EXTERN NSString *IBDidSaveDocumentNotification; IB_EXTERN NSString *IBWillCloseDocumentNotification; @protocol IBDocuments /** * Add a connection */ - (void) addConnector: (id)aConnector; /** * Returns an array containing all connections for the receiver. */ - (NSArray*) allConnectors; /** * Attach object to document with a specified name. Pass nil to * aName to have Gorm assign a name to it. (GS extension) */ - (void) attachObject: (id)anObject toParent: (id)aParent withName: (NSString *)aName; /** * Attaches an object to the document and makes the association * with the parent. */ - (void) attachObject: (id)anObject toParent: (id)aParent; /** * Iterates over anArray and attaches all objects in it to the * receiver with aParent as the parent. */ - (void) attachObjects: (NSArray*)anArray toParent: (id)aParent; /** * Returns an autoreleased array containing all connections for * the given destination. */ - (NSArray*) connectorsForDestination: (id)destination; /** * Returns an autoreleased array containing all connectors of * the given class for the destination. */ - (NSArray*) connectorsForDestination: (id)destination ofClass: (Class)aConnectorClass; /** * Returns an autoreleased array containing all connections for * the given source. */ - (NSArray*) connectorsForSource: (id)source; /** * Returns an autoreleased array containing all connectors of the * given class for the source. */ - (NSArray*) connectorsForSource: (id)source ofClass: (Class)aConnectorClass; /** * Returns YES, if the receiver contains anObject. */ - (BOOL) containsObject: (id)anObject; /** * Returns YES, if the receiver contains an object with the given name * and parent. */ - (BOOL) containsObjectWithName: (NSString*)aName forParent: (id)parent; /** * Copies anObject to the pasteboard with the aType. */ - (BOOL) copyObject: (id)anObject type: (NSString*)aType toPasteboard: (NSPasteboard*)aPasteboard; /** * Copues an array of objects to aPasteboard with aType. */ - (BOOL) copyObjects: (NSArray*)anArray type: (NSString*)aType toPasteboard: (NSPasteboard*)aPasteboard; /** * Detaches anObject from the receiver. */ - (void) detachObject: (id)anObject; /** * Detaches an object from the receiver, closes editor if asked. GNUstep extension. */ - (void) detachObject: (id)anObject closeEditor: (BOOL)close_editor; /** * Detaches an array of objects from the receiver. */ - (void) detachObjects: (NSArray*)anArray; /** * Detaches an array of objects from the receiver. Closes editor if asked. GNUstep extension. */ - (void) detachObjects: (id)anObject closeEditors: (BOOL)close_editor; /** * The path of the file which represents the document. */ - (NSString*) documentPath; /** * Called when an editor is closed. */ - (void) editor: (id)anEditor didCloseForObject: (id)anObject; /** * Returns the associated editor for anObject, if flag is YES, it will * create an instance of the editor class if one does not already exist * for the given object. */ - (id) editorForObject: (id)anObject create: (BOOL)flag; /** * Returns the associated subeditor for anObject, if flag is YES, it will * create an instance of the editor. */ - (id) editorForObject: (id)anObject inEditor: (id)anEditor create: (BOOL)flag; /** * Returns the name associated with the object. */ - (NSString*) nameForObject: (id)anObject; /** * Returns the object for the given aName. */ - (id) objectForName: (NSString*)aName; /** * Returns all objects in the receiver's name table. */ - (NSArray*) objects; /** * Creates an editor, if necessary using editorForObject:create:, opens it * and brings the window containing the editor to the front. */ - (id) openEditorForObject: (id)anObject; /** * Returns the parent of the given editor. */ - (id) parentEditorForEditor: (id)anEditor; /** * Return the parent of anObject. The File's Owner is the root object in the * hierarchy, if anObject's parent is the Files's Owner, this method should return * nil. */ - (id) parentOfObject: (id)anObject; /** * Pastes the given type from the aPasteboard. */ - (NSArray*) pasteType: (NSString*)aType fromPasteboard: (NSPasteboard*)aPasteboard parent: (id)parent; /** * Remove aConnector from the receiver. */ - (void) removeConnector: (id)aConnector; /** * The current editor wants to give up the selection, this method iterates * over all editors and determines if any editors will take over the selection. * If one is found it is activated. */ - (void) resignSelectionForEditor: (id)editor; /** * Set aName for object in the receiver. This replaces any name the object * may have previously had. */ - (void) setName: (NSString*)aName forObject: (id)object; /** * Sets the currently selected object from the given editor. */ - (void) setSelectionFromEditor: (id)anEditor; /** * Mark document as having been changed. */ - (void) touch; //// PRIVATE /** * Returns a string with the name of the class for the given object. */ - (NSString *) classForObject: (id)obj; - (NSArray *) actionsOfClass: (NSString *)className; - (NSArray *) outletsOfClass: (NSString *)className; @end #endif gorm-1.3.1/GormLib/IBInspectorMode.h0000644000175000017500000000331314327003122016154 0ustar heronheron/* IBInspectorMode * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef IBINSPECTORMODE_H #define IBINSPECTORMODE_H #include @class NSString; @interface IBInspectorMode : NSObject { NSString *identifier; NSString *localizedLabel; NSString *inspectorClassName; id object; float ordering; } - (id) initWithIdentifier: (NSString *)ident forObject: (id)obj localizedLabel: (NSString *)lab inspectorClassName: (NSString *)cn ordering: (float)ord; - (void) setIdentifier: (NSString *)ident; - (NSString *) identifier; - (void) setObject: (id)obj; - (id) object; - (void) setLocalizedLabel: (NSString *)label; - (NSString *) localizedLabel; - (void) setInspectorClassName: (NSString *)className; - (NSString *) inspectorClassName; - (void) setOrdering: (float)ord; - (float) ordering; @end #endif gorm-1.3.1/GormLib/IBCellAdditions.h0000644000175000017500000000217514327003122016124 0ustar heronheron/* IBViewAdditions.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBCELLADDITIONS_H #define INCLUDED_IBCELLADDITIONS_H #include #include @interface NSCell (IBCellAdditions) @end #endif gorm-1.3.1/GormLib/GNUmakefile.postamble0000644000175000017500000000200114327003122017045 0ustar heronheron# # GNUmakefile.postamble # # Copyright (C) 2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # # This file is part of GNUstep # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; see the file COPYING.LIB. # If not, write to the Free Software Foundation, # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. before-all:: after-clean:: rm -rf ../InterfaceBuilder rm -rf ./InterfaceBuilder gorm-1.3.1/GormLib/IBObjectProtocol.h0000644000175000017500000000446614327003122016343 0ustar heronheron/* IBObjectAdditions.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBOBJECTPROTOCOL_H #define INCLUDED_IBOBJECTPROTOCOL_H #include @protocol IBObjectProtocol /** * Returns YES, if receiver can be displayed in * the custom custom class inspector as a potential * class which can be switched to by the receiver. */ + (BOOL)canSubstituteForClass: (Class)origClass; /** * Called immediate after loading the document into * the interface editor application. */ - (void)awakeFromDocument: (id )doc; /** * Returns the NSImage to be used to represent an object * of the receiver's class in the editor. */ - (NSImage *)imageForViewer; /** * Label for the receiver in the model. */ - (NSString *)nibLabel: (NSString *)objectName; /** * Title to display in the inspector. */ - (NSString *)objectNameForInspectorTitle; /** * Name of attributes inspector class. */ - (NSString*) inspectorClassName; /** * Name of connection inspector class. */ - (NSString*) connectInspectorClassName; /** * Name of size inspector. */ - (NSString*) sizeInspectorClassName; /** * Name of help inspector. */ - (NSString*) helpInspectorClassName; /** * Name of class inspector. */ - (NSString*) classInspectorClassName; /** * Name of the editor for the receiver. */ - (NSString*) editorClassName; /** * List of properties not compatible with interface app. */ - (NSArray*) ibIncompatibleProperties; @end #endif gorm-1.3.1/GormLib/IBInspector.h0000644000175000017500000000571214327003122015354 0ustar heronheron/* IBInspector.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBINSPECTOR_H #define INCLUDED_IBINSPECTOR_H #include #include #define IVH 388 /* Standard height of inspector view. */ #define IVW 272 /* Standard width of inspector view. */ #define IVB 40 /* Standard height of buttons area. */ // forward references @class NSWindow; @class NSButton; @class NSString; @class NSView; @class NSNotification; @interface IBInspector : NSObject { id object; NSWindow *window; NSButton *okButton; NSButton *revertButton; } /** * Releases all the instance variables (apart from the window, which is * presumed to release itself when closed) and removes self as an observer * of notifications before destroying self. */ - (void) dealloc; /** * The first view to be selected in the inspector. */ - (NSView*) initialFirstResponder; /** * The object being inspected. */ - (id) object; /** * Action to take when user clicks the OK button */ - (void) ok: (id)sender; /** * Inspector supplied button - the inspectors manager will position this * button for you. */ - (NSButton*) okButton; /** * Action to take when user clicks the revert button */ - (void) revert: (id)sender; /** * Inspector supplied button - the inspectors manager will position this * button for you. */ - (NSButton*) revertButton; /** * Extension - not in NeXTstep - this message is sent to your inspector to * tell it to set its edited object and make any changes to its UI needed. */ - (void) setObject: (id)anObject; /** * Used to take notice of textfields in inspector being updated. */ - (void) textDidBeginEditing: (NSNotification*)aNotification; /** * Method to mark the inspector as needing saving (ok or revert). */ - (void) touch: (id)sender; /** * If this method returns YES, the manager will partition off a section of * the inspector panel for display of 'ok' and 'revert' buttons, which * your inspector must supply. */ - (BOOL) wantsButtons; /** * The window that the UI of the inspector exists in. */ - (NSWindow*) window; @end #endif gorm-1.3.1/GormLib/IBInspectorManager.h0000644000175000017500000000414714327003122016650 0ustar heronheron/* IBInspectorManager.h * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBINSPECTORMANAGER_H #define INCLUDED_IBINSPECTORMANAGER_H #include #include @class NSString, NSMutableArray; /** * Notifications to be sent prior to the action described. */ IB_EXTERN NSString *IBWillInspectObjectNotification; IB_EXTERN NSString *IBWillInspectWithModeNotification; @interface IBInspectorManager : NSObject { NSMutableArray *modes; id currentMode; id selectedObject; } /** * Create a shared instance of the class for the applicaiton. */ + (IBInspectorManager *) sharedInspectorManager; /** * Add an inspector for a given mode. This allows the addition * of inspectors for different aspects of the same object. */ - (void) addInspectorModeWithIdentifier: (NSString *)ident forObject: (id)obj localizedLabel: (NSString *)label inspectorClassName: (NSString *)className ordering: (float)ord; /** * Position in the inspector list that the "mode inspector" * appears. */ - (unsigned int) indexOfModeWithIdentifier: (NSString *)ident; @end #endif gorm-1.3.1/GormLib/IBDefines.h0000644000175000017500000000252314327003122014760 0ustar heronheron/* IBDefines.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBDEFINES_H #define INCLUDED_IBDEFINES_H /* * Positions of handles for resizing items. */ typedef enum { IBBottomLeftKnobPosition = 0, IBMiddleLeftKnobPosition = 1, IBTopLeftKnobPosition = 2, IBTopMiddleKnobPosition = 3, IBTopRightKnobPosition = 4, IBMiddleRightKnobPosition = 5, IBBottomRightKnobPosition = 6, IBBottomMiddleKnobPosition = 7, IBNoneKnobPosition = -1 } IBKnobPosition; #endif gorm-1.3.1/GormLib/README0000644000175000017500000000065014327003122013676 0ustar heronheronGormLib is a clone of the InterfaceBuilder framework. GormLib's primary purpose is to allow the creation of custom palettes and inspectors outside of Gorm. This will also facilitate extension of Gorm since it will allow outside applications to have an interface with which they can interact with the running Gorm application. You must install this library before you can build Gorm. Thanks, Gregory John Casamento gorm-1.3.1/GormLib/IBViewAdditions.h0000644000175000017500000000217514327003122016157 0ustar heronheron/* IBViewAdditions.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBVIEWADDITIONS_H #define INCLUDED_IBVIEWADDITIONS_H #include #include @interface NSView (IBViewAdditions) @end #endif gorm-1.3.1/GormLib/IBInspectorManager.m0000644000175000017500000000656514327003122016663 0ustar heronheron/* IBInspectorManager.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include static IBInspectorManager *_sharedInspectorManager = nil; /** * Notifications to be sent prior to the action described. */ NSString *IBWillInspectObjectNotification = @"IBWillInspectObjectNotification"; NSString *IBWillInspectWithModeNotification = @"IBWillInspectWithModeNotification"; @implementation IBInspectorManager /** * Create a shared instance of the class for the application. * If a subclass of IBInspectorManager uses this message it becomes * the shraredInspectorManager. */ + (IBInspectorManager *) sharedInspectorManager { if(_sharedInspectorManager == nil) { _sharedInspectorManager = [[self alloc] init]; } return _sharedInspectorManager; } - (id) init { if(_sharedInspectorManager == nil) { if((self = [super init]) != nil) { // set the shared instance... modes = [[NSMutableArray alloc] init]; _sharedInspectorManager = self; } } else { RELEASE(self); self = _sharedInspectorManager; } return self; } - (void) dealloc { RELEASE(modes); [super dealloc]; } /** * Add an inspector for a given mode. This allows the addition * of inspectors for different aspects of the same object. */ - (void) addInspectorModeWithIdentifier: (NSString *)ident forObject: (id)obj localizedLabel: (NSString *)label inspectorClassName: (NSString *)className ordering: (float)ord { IBInspectorMode *mode = [[IBInspectorMode alloc] initWithIdentifier: ident forObject: obj localizedLabel: label inspectorClassName: className ordering: ord]; int position = 0; int count = [modes count]; if(ord == -1) { position = count; // last } else { position = (int)ceil((double)ord); if(position > count) { position = count; } } [modes insertObject: mode atIndex: position]; } /** * Position in the inspector list that the "mode inspector" * appears. */ - (unsigned int) indexOfModeWithIdentifier: (NSString *)ident { NSEnumerator *en = [modes objectEnumerator]; int index = 0; id mode = nil; while((mode = [en nextObject]) != nil) { if([[mode identifier] isEqualToString: ident]) { break; } index++; } return index; } @end gorm-1.3.1/GormLib/IBPlugin.m0000644000175000017500000000606014327003122014646 0ustar heronheron/* IBPlugin.m * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include static NSMapTable *instanceMap = 0; @implementation IBPlugin + (void) initialize { if (instanceMap == 0) { instanceMap = NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks, NSObjectMapValueCallBacks, 2); } } // Getting the shared plugin... /** * Returns the shared instance of the plugin. */ + (id)sharedInstance { NSString *className = [self className]; id instance = NSMapGet(instanceMap, className); if(instance == nil) { instance = [[[self class] alloc] init]; NSMapInsert(instanceMap, className, instance); RELEASE(instance); } return instance; } // Loading and unloading plugin resources. /** * Notifies the receiver that the plugin will be loaded. */ - (void) didLoad { // do nothing... will be overridden. } /** * Notifies the receiver that the plugin will be unloaded. */ - (void) willUnload { // do nothing... will be overridden. } // Getting the plugins nib files. /** * Return the array of custom nib filenames. You are required to override * this method when creating a plugin. */ - (NSArray *) libraryNibNames { return nil; } // Configuring the plugin /** * Returns the name of the plugin to be displayed. */ - (NSString *) label { return [self className]; } /** * The preferences panel/view that should be added to the preferences drop * down and preferences window. */ - (NSView *) preferencesView { return nil; } /** * Returns the list of frameworks needed to support the plugin. */ - (NSArray *) requiredFrameworks { return nil; } // Pasteboard notifications... /** * Notifies the receiver that one of it's components will be added to the * document. */ - (NSArray *) pasteboardObjectsForDraggedLibraryView: (NSView *)view { return nil; } /** * Notifies the receiver that objects were added to the document. */ - (void) document: (id)document didAddDraggedObjects: (NSArray *)roots fromDraggedLibraryView: (NSView *)view { // do nothing; } - (void) dealloc { NSMapRemove(instanceMap,[self className]); [super dealloc]; } @end gorm-1.3.1/GormLib/IBEditors.h0000644000175000017500000001131714327003122015015 0ustar heronheron/* IBEditors.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBEDITORS_H #define INCLUDED_IBEDITORS_H #include #include // forward references @class NSString; @class NSArray; @class NSWindow; /* * Notification for editing and inspecting the objects etc. */ IB_EXTERN NSString *IBAttributesChangedNotification; IB_EXTERN NSString *IBInspectorDidModifyObjectNotification; IB_EXTERN NSString *IBSelectionChangedNotification; IB_EXTERN NSString *IBClassNameChangedNotification; /** * The IBSelectionOwners protocol defines the methods that a selection owner * must implement. */ @protocol IBSelectionOwners /** * The number of currently selected objects. */ - (NSUInteger) selectionCount; /** * Return the selection in an array. */ - (NSArray*) selection; /** * Draw the selection. */ - (void) drawSelection; /** * This method is used to draw or remove markup that identifies selected * objects within the object being edited. */ - (void) makeSelectionVisible: (BOOL)flag; /** * This method changes the current selection to those objects in the array. */ - (void) selectObjects: (NSArray*)objects; /** * This method places the current selection from the editor on the pasteboard. */ - (void) copySelection; @end /** * The IBEditors protocol defines the methods an editor must implement. */ @protocol IBEditors /** * Decide whether an editor can accept data from the pasteboard. */ - (BOOL) acceptsTypeFromArray: (NSArray*)types; /** * Activate an editor - inserts it into the view hierarchy or whatever is * needed for the editor to be able to provide its functionality. * This method should be called by the document when an editor is created * or opened. It should be safe to call repeatedly. */ - (BOOL) activate; /** * Initializes the editor with object for the specified document. */ - (id) initWithObject: (id)anObject inDocument: (id/**/)aDocument; /** * Close an editor - this destroys the editor. In this method the editor * should tell its document that it has been closed, so that the document * can remove all its references to the editor. */ - (void) close; /** * Close all subeditors associated with this editor. */ - (void) closeSubeditors; /** * Deactivate an editor - removes it from the view hierarchy so that objects * can be archived without including the editor. * This method should be called automatically by the 'close' method. * It should be safe to call repeatedly. */ - (void) deactivate; /** * This method deletes all the objects in the current selection in the editor. */ - (void) deleteSelection; /** * This method returns the document that owns the object that the editor edits. */ - (id /**/) document; /** * This method returns the object that the editor is editing. */ - (id) editedObject; /** * This method is used to ensure that the editor is visible on screen. */ - (void) orderFront; /** * Opens the subeditor for an object when the object being edited is * double clicked by the user. If there is no sub-editor, return nil, otherwise * method will return the editor for the object. */ - (id) openSubeditorForObject: (id)object; /** * This method is used to add the contents of the pasteboard to the current * selection of objects within the editor. */ - (void) pasteInSelection; /** * Redraws the edited object */ - (void) resetObject: (id)anObject; /** * When an editor resigns the selection ownership, all editors are asked if * they want selection ownership, and the first one to return YES gets made * into the current selection owner. */ - (BOOL) wantsSelection; /** * Causes the editor to select the text being edited in the current text * field. */ - (void) validateEditing; /** * This returns the window in which the editor is drawn. */ - (NSWindow*) window; @end #endif gorm-1.3.1/GormLib/IBEditors.m0000644000175000017500000000243214327003122015020 0ustar heronheron/* IBEditors.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include NSString *IBAttributesChangedNotification = @"IBAttributesChangedNotification"; NSString *IBInspectorDidModifyObjectNotification = @"IBInspectorDidModifyObjectNotification"; NSString *IBSelectionChangedNotification = @"IBSelectionChangedNotification"; NSString *IBClassNameChangedNotification = @"IBClassNameChangedNotification"; gorm-1.3.1/GormLib/IBConnectors.m0000644000175000017500000000300014327003122015514 0ustar heronheron/* IBConnectors.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include NSString *IBWillAddConnectorNotification = @"IBWillAddConnectorNotification"; NSString *IBDidAddConnectorNotification = @"IBDidAddConnectorNotification"; NSString *IBWillRemoveConnectorNotification = @"IBWillRemoveConnectorNotification"; NSString *IBDidRemoveConnectorNotification = @"IBDidRemoveConnectorNotification"; @interface NSObject (IBNibInstantiation) - (id) nibInstantiate; @end @implementation NSObject (IBNibInstantiation) - (id) nibInstantiate { // default implementation of nibInstantiate return self; } @end gorm-1.3.1/GormLib/IBApplicationAdditions.m0000644000175000017500000000252114327003122017510 0ustar heronheron/* IBApplicationAdditions.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include NSString *IBWillBeginTestingInterfaceNotification = @"IBWillBeginTestingInterfaceNotification"; NSString *IBDidBeginTestingInterfaceNotification = @"IBDidBeginTestingInterfaceNotification"; NSString *IBWillEndTestingInterfaceNotification = @"IBWillEndTestingInterfaceNotification"; NSString *IBDidEndTestingInterfaceNotification = @"IBDidEndTestingInterfaceNotification"; gorm-1.3.1/GormLib/IBObjectAdditions.h0000644000175000017500000000223514327003122016450 0ustar heronheron/* IBObjectAdditions.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBOBJECTADDITIONS_H #define INCLUDED_IBOBJECTADDITIONS_H #include // object additions -- object adopts protocol @interface NSObject (IBObjectAdditions) @end #endif gorm-1.3.1/GormLib/IBInspectorMode.m0000644000175000017500000000446214327003122016167 0ustar heronheron/* IBInspectorMode * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include /** * IBInspectorMode is an internal class in the InterfaceBuilder framework. */ @implementation IBInspectorMode - (id) initWithIdentifier: (NSString *)ident forObject: (id)obj localizedLabel: (NSString *)lab inspectorClassName: (NSString *)cn ordering: (float)ord { if((self = [super init]) != nil) { [self setIdentifier: ident]; [self setObject: obj]; [self setLocalizedLabel: lab]; [self setInspectorClassName: cn]; [self setOrdering: ord]; } return self; } - (void) dealloc { RELEASE(identifier); // RELEASE(object); RELEASE(localizedLabel); RELEASE(inspectorClassName); [super dealloc]; } - (void) setIdentifier: (NSString *)ident { ASSIGN(identifier, ident); } - (NSString *) identifier { return identifier; } - (void) setObject: (id)obj { // don't retain the object, since we are not the owner. object = obj; } - (id) object { return object; } - (void) setLocalizedLabel: (NSString *)lab { ASSIGN(localizedLabel, lab); } - (NSString *) localizedLabel { return localizedLabel; } - (void) setInspectorClassName: (NSString *)cn { ASSIGN(inspectorClassName, cn); } - (NSString *) inspectorClassName { return inspectorClassName; } - (void) setOrdering: (float)ord { ordering = ord; } - (float) ordering { return ordering; } @end gorm-1.3.1/GormLib/GNUmakefile0000644000175000017500000000255514327003122015076 0ustar heronheron# # GNUmakefile # Written by Gregory John Casamento # PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make # # Subprojects # # # Library # PACKAGE_NAME=Gorm LIBRARY_VAR=GORM LIBRARY_NAME=libGorm libGorm_HEADER_FILES_DIR=. libGorm_HEADER_FILES_INSTALL_DIR=/InterfaceBuilder ADDITIONAL_INCLUDE_DIRS = -I.. srcdir = . include ./Version # # Additional libraries # libGorm_LIBRARIES_DEPEND_UPON += -lgnustep-gui -l$(FOUNDATION_LIBRARY_NAME) # # Header files # libGorm_HEADER_FILES= \ IBApplicationAdditions.h \ IBCellAdditions.h \ IBCellProtocol.h \ IBConnectors.h \ IBDefines.h \ IBDocuments.h \ IBEditors.h \ IBInspector.h \ IBInspectorManager.h \ IBInspectorMode.h \ IBObjectAdditions.h \ IBObjectProtocol.h \ IBPalette.h \ IBPlugin.h \ IBProjects.h \ IBProjectFiles.h \ IBResourceManager.h \ IBSystem.h \ IBViewAdditions.h \ IBViewProtocol.h \ IBViewResourceDragging.h \ InterfaceBuilder.h # # Class files # libGorm_OBJC_FILES= \ IBApplicationAdditions.m \ IBConnectors.m \ IBDocuments.m \ IBEditors.m \ IBInspector.m \ IBInspectorManager.m \ IBInspectorMode.m \ IBObjectAdditions.m \ IBPalette.m \ IBPlugin.m \ IBResourceManager.m # # C files # libGorm_C_FILES= HEADERS_INSTALL = $(libGorm_HEADER_FILES) -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/library.make -include GNUmakefile.postamble gorm-1.3.1/GormLib/IBConnectors.h0000644000175000017500000000703614327003122015524 0ustar heronheron/* Gorm.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBCONNECTORS_H #define INCLUDED_IBCONNECTORS_H #include #include #include #include // forward declarations @class NSString; IB_EXTERN NSString *IBWillAddConnectorNotification; IB_EXTERN NSString *IBDidAddConnectorNotification; IB_EXTERN NSString *IBWillRemoveConnectorNotification; IB_EXTERN NSString *IBDidRemoveConnectorNotification; /* * Connector objects are used to record connections between nib objects. */ @protocol IBConnectors /** * Destination for the receiver. */ - (id) destination; /** * Establish the connection. */ - (void) establishConnection; /** * The method to which the receiver will be connected. */ - (NSString*) label; /** * Replace anObject with anotherObject. This method looks at * the receiver's source and destination and replaces whichever * one matches anObject with anotherObject. */ - (void) replaceObject: (id)anObject withObject: (id)anotherObject; /** * The source of the receiver. */ - (id) source; /** * Set the receiver's destination to anObject. */ - (void) setDestination: (id)anObject; /** * Set the receiver's label. */ - (void) setLabel: (NSString*)label; /** * Set the receiver's source to anObject. */ - (void) setSource: (id)anObject; /** * Called after the document is loaded on connections. */ - (id) nibInstantiate; @end @interface NSNibConnector (IBConnectorsProtocol) @end @interface NSObject (IBNibInstantiation) /** * Invoked after loading. */ - (id) nibInstantiate; @end @interface NSApplication (IBConnections) /** * [NSApp -connectSource] returns the source object as set by the most recent * [NSApp -displayConnectionBetween:and:] */ - (id) connectSource; /** * [NSApp -connectDestination] returns the target object as set by the most * recent [NSApp -displayConnectionBetween:and:] */ - (id) connectDestination; /** * [NSApp -isConnecting] simply lets you know if a connection is in progress. */ - (BOOL) isConnecting; /** * [NSApp -stopConnecting] terminates the current connection process and * removes the connection marks from the display. */ - (void) stopConnecting; /** * [NSApp -displayConnectionBetween:and:] is used to set the source and target * objects and mark the display appropriately. Setting either source or * target to 'nil' will remove markup from any previous source or target. * NB. This method expects to be able to call the active document to ask it * for the window and rectangle in which to perform markup. */ - (void) displayConnectionBetween: (id)source and: (id)destination; @end #endif gorm-1.3.1/GormLib/IBPalette.h0000644000175000017500000000650114327003122015001 0ustar heronheron/* IBPalette.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBPALETTE_H #define INCLUDED_IBPALETTE_H #include #include #include // forward references @class NSString; @class NSImage; @class NSWindow; @class NSView; /* * Pasteboard types used for DnD when views are dragged out of a palette * window into another window in Gorm (or, in the case of IBWindowPboardType * onto the desktop). */ IB_EXTERN NSString *IBCellPboardType; IB_EXTERN NSString *IBMenuPboardType; IB_EXTERN NSString *IBMenuCellPboardType; IB_EXTERN NSString *IBObjectPboardType; IB_EXTERN NSString *IBViewPboardType; IB_EXTERN NSString *IBWindowPboardType; IB_EXTERN NSString *IBFormatterPboardType; /* * Pasteboard types used for DnD from images or sounds tab * to views or inspector's textfield onto the desktop). * NOTE: These are specific to Gorm... */ IB_EXTERN NSString *GormImagePboardType; IB_EXTERN NSString *GormSoundPboardType; IB_EXTERN NSString *GormLinkPboardType; @interface IBPalette : NSObject { NSWindow *originalWindow; NSImage *icon; id paletteDocument; } /* * For internal use only - these class methods return the information * associated with a particular view. */ + (id) objectForView: (NSView*)aView; + (NSString*) typeForView: (NSView*)aView; /** * Associate a particular object and DnD type with a view - so that * Gorm knows to initiate a DnD session with the specified object * and type rather than an archived copy of the view itsself and * the default type (IBViewPboardType). */ - (void) associateObject: (id)anObject type: (NSString*)aType with: (NSView*)aView; /** * Releases all the instance variables apart from the window (which is * presumed to release itsself when closed) and removes self as an observer * of notifications before destroying self. */ - (void) dealloc; /** * Method called by GUI builder application when a new palette has been created * and its model (nib/gorm) has been loaded. Any palette initialization should * be done here. */ - (void) finishInstantiate; /** * Return the icon representing the palette. */ - (NSImage*) paletteIcon; /** * Return the window containing the views that may be dragged from the * palette. */ - (NSWindow*) originalWindow; /** * Returns an object representing the palette which conforms to the * IBDocuments protocol. */ - (id) paletteDocument; @end #endif gorm-1.3.1/GormLib/InterfaceBuilder.h0000644000175000017500000000430414327003122016376 0ustar heronheron/* InterfaceBuilder.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #import #ifndef GNUSTEP //! Project version number for InterfaceBuilder. FOUNDATION_EXPORT double InterfaceBuilderVersionNumber; //! Project version string for InterfaceBuilder. FOUNDATION_EXPORT const unsigned char InterfaceBuilderVersionString[]; #endif #ifndef INCLUDED_INTERFACEBUILDER_H #define INCLUDED_INTERFACEBUILDER_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif gorm-1.3.1/GormLib/Version0000644000175000017500000000064614327003122014373 0ustar heronheron # This file is included in various Makefile's to get version information. # Compatible with Bourne shell syntax, so it can included there too. # The gcc version required to compile the library. GNUSTEP_GCC=3.1.0 # GNUstep version required GNUSTEP_CORE_VERSION=0.11.0 # The version number of this release. MAJOR_VERSION=1 MINOR_VERSION=1 SUBMINOR_VERSION=0 VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION} gorm-1.3.1/GormLib/IBProjects.h0000644000175000017500000000551314327003122015176 0ustar heronheron/* IBProjects.h * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBPROJECTS_H #define INCLUDED_IBPROJECTS_H #include #include @class NSString, NSArray; @protocol IBProjects /** * Called to retrieve the application icon to be used for the * interface/language combination. */ - (id) applicationIconForInterfaceStyle: (NSInterfaceStyle)style inLanguage: (NSString *)lang; /** * Returns YES, if the file is in the given path. */ - (BOOL) containsFileAtPath: (NSString *)path; /** * Returns an array containing the list of files of that filetype * in the project. */ - (NSArray *) filesForFileType: (NSString *)type; /** * Returns YES, if child is a child of the reciever. */ - (BOOL) isAncestorOfProject: (id) child; /** * Returns YES, if parent is a parent of the receiver. */ - (BOOL) isDescendantOfProject: (id) parent; /** * Is there currently a connection to the project. */ - (BOOL) isLive; /** * Returns the language for the file at the given path. */ - (NSString *) languageForFileAtPath: (NSString *)path; /** * Returns the nib for the interface/style combination. */ - (id) mainNibFileForInterfaceStyle: (NSInterfaceStyle)style inLanguage: (NSString *)lang; /** * Locates and returns the location of filename within the * receiver. */ - (NSString *) pathForFilename: (NSString *)filename; /** * Returns the full path for the project directory. */ - (NSString *) projectDirectory; /** * Returns the project manager object. */ - (id) projectManager; /** * The name of the project. */ - (NSString *) projectName; /** * The topmost project in the project hierarchy containing the receiver. */ - (id) rootProject; /** * Any and all direct subjects of this project. */ - (NSArray *) subprojects; /** * The project which is the direct parent of the receiver. */ - (id) superproject; @end #endif gorm-1.3.1/GormLib/GNUmakefile.preamble0000644000175000017500000000416414327003122016662 0ustar heronheron# GNUmakefile.preamble # # Copyright (C) 2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # # This file is part of GNUstep # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # If you are interested in a warranty or support for this source code, # contact Scott Christley at scottc@net-community.com # # You should have received a copy of the GNU Library General Public # License along with this library; see the file COPYING.LIB. # If not, write to the Free Software Foundation, # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # Makefile.preamble # # Project specific makefile variables, and additional # # Do not put any Makefile rules in this file, instead they should # be put into Makefile.postamble. # # # Flags dealing with compiling and linking # # Additional flags to pass to the preprocessor # ADDITIONAL_CPPFLAGS += -Wall -Werror # Additional flags to pass to the Objective-C compiler # ADDITIONAL_OBJCFLAGS += -Wall -Werror # Additional flags to pass to the C compiler # ADDITIONAL_CFLAGS += -Wall -Werror # Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../InterfaceBuilder # INCLUDE_DIRS = -I../InterfaceBuilder $(INCLUDE_DIRS) # Additional LDFLAGS to pass to the linker #ADDITIONAL_LDFLAGS += # Additional library directories the linker should search ADDITIONAL_LIB_DIRS += ADDITIONAL_TOOL_LIBS += # # Flags dealing with installing and uninstalling # # Additional directories to be created during installation ADDITIONAL_INSTALL_DIRS += # # Local configuration # ifeq ($(GNUSTEP_TARGET_OS),cygwin) libGorm_LIBRARIES_DEPEND_UPON += -lobjc endif gorm-1.3.1/GormLib/IBPalette.m0000644000175000017500000001021514327003122015003 0ustar heronheron/* IBPalette.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include NSString *IBCellPboardType = @"IBCellPboardType"; NSString *IBMenuPboardType = @"IBMenuPboardType"; NSString *IBMenuCellPboardType = @"IBMenuCellPboardType"; NSString *IBObjectPboardType = @"IBObjectPboardType"; NSString *IBViewPboardType = @"IBViewPboardType"; NSString *IBWindowPboardType = @"IBWindowPboardType"; NSString *IBFormatterPboardType = @"IBFormatterPboardType"; // Gorm specific paste board types.. NSString *GormImagePboardType = @"GormImagePboardType"; NSString *GormSoundPboardType = @"GormSoundPboardType"; NSString *GormLinkPboardType = @"GormLinkPboardType"; @implementation IBPalette static NSMapTable *viewToObject = 0; static NSMapTable *viewToType = 0; + (void) initialize { if (self == [IBPalette class]) { viewToObject = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks, NSObjectMapValueCallBacks, 20); viewToType = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks, NSObjectMapValueCallBacks, 20); } } + (id) objectForView: (NSView*)aView { id obj = (id)NSMapGet(viewToObject, (void*)aView); if (obj == nil) { obj = aView; } return obj; } + (NSString*) typeForView: (NSView*)aView { NSString *type = (NSString*)NSMapGet(viewToType, (void*)aView); if (type == nil) { type = IBViewPboardType; } return type; } - (void) associateObject: (id)anObject type: (NSString*)aType with: (NSView*)aView { NSMapInsert(viewToType, (void*)aView, (id)aType); NSMapInsert(viewToObject, (void*)aView, (id)anObject); } - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; RELEASE(icon); RELEASE(paletteDocument); [super dealloc]; } - (void) finishInstantiate { } - (id) init { NSBundle *bundle; NSDictionary *paletteInfo; NSString *fileName; bundle = [NSBundle bundleForClass: [self class]]; // load the palette dictionary... fileName = [bundle pathForResource: @"palette" ofType: @"table"]; paletteInfo = [[NSString stringWithContentsOfFile: fileName] propertyList]; // load the image... fileName = [paletteInfo objectForKey: @"Icon"]; fileName = [bundle pathForImageResource: fileName]; if (fileName == nil) { NSRunAlertPanel(NULL, [NSString stringWithFormat: @"Palette could not load image %@.", fileName], @"OK", NULL, NULL); AUTORELEASE(self); return nil; } icon = [[NSImage alloc] initWithContentsOfFile: fileName]; // load the nibfile... fileName = [paletteInfo objectForKey: @"NibFile"]; if (fileName != nil && [fileName isEqual: @""] == NO) { NSDictionary *context = [NSDictionary dictionaryWithObjectsAndKeys: self, @"NSOwner",nil]; if ([bundle loadNibFile: fileName externalNameTable: context withZone: NSDefaultMallocZone()] == NO) { NSRunAlertPanel(NULL, [NSString stringWithFormat: @"Palette could not load nib/gorm %@.", fileName], @"OK", NULL, NULL); AUTORELEASE(self); return nil; } } return self; } - (NSImage*) paletteIcon { return icon; } - (NSWindow*) originalWindow { return originalWindow; } - (id) paletteDocument { return paletteDocument; } @end gorm-1.3.1/GormLib/IBObjectAdditions.m0000644000175000017500000000411214327003122016451 0ustar heronheron/* IBObjectAdditions.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * g * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include // object additions -- object adopts protocol @implementation NSObject (_IBObjectAdditions) // Return yes if origClass can substitute for current class, otherwise NO. /* NOTE: Some versions of the runtime handle loading of class methods differently and do not replace them with the later loaded version. For this reason, this method is being removed. + (BOOL)canSubstituteForClass: (Class)origClass { return NO; } */ /** This method is called on all objects after they are loaded into the IBDocuments object. */ - (void)awakeFromDocument: (id )doc { // does nothing... } /** Name for the reciever in the name table. */ - (NSString *)nibLabel: (NSString *)objectName { NSString *label = [NSString stringWithFormat: @"%@(%@)", [self className], objectName]; return label; } /** Title to display in the inspector. */ - (NSString *)objectNameForInspectorTitle { return [self className]; } /** Lists all properties if this object not compatible with IB. */ - (NSArray*) ibIncompatibleProperties { return nil; } @end gorm-1.3.1/GormLib/IBProjectFiles.h0000644000175000017500000000276414327003122016003 0ustar heronheron/* IBProjectFiles.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBPROJECTFILES_H #define INCLUDED_IBPROJECTFILES_H #include @class NSString; @protocol IBProjectFiles /** * The file name. */ - (NSString *) fileName; /** * The file type for this file. */ - (NSString *) fileType; /** * Returns YES, if the file is localized, NO if it's simply in Resources. */ - (BOOL) isLocalized; /** * The language */ - (NSString *) language; /** * The path for the file. */ - (NSString *) path; /** * The project to which this file belongs. */ - (id) project; @end #endif gorm-1.3.1/GormLib/IBViewProtocol.h0000644000175000017500000000351014327003122016034 0ustar heronheron/* IBViewProtocol.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBVIEWPROTOCOL_H #define INCLUDED_IBVIEWPROTOCOL_H #include #include // forward references @class NSColor; @protocol IBViewProtocol /** * Returns YES, if color can be set at the given point in the view. */ - (BOOL) acceptsColor: (NSColor*)color atPoint: (NSPoint)point; /** * Returns YES if receiver can be alt-dragged. */ - (BOOL) allowsAltDragging; /** * Sets color at point in the receiver. */ - (void) depositColor: (NSColor*)color atPoint: (NSPoint)point; /** * The maximum size for a knob surrounding the receiver. */ - (NSSize) maximumSizeFromKnobPosition: (IBKnobPosition)knobPosition; /** * The minimum size for a knob surrounding the receiver. */ - (NSSize) minimumSizeFromKnobPosition: (IBKnobPosition)position; /** * Places and resizes the receiver using newFrame. */ - (void) placeView: (NSRect)newFrame; @end #endif gorm-1.3.1/GormLib/IBSystem.h0000644000175000017500000000302314327003122014663 0ustar heronheron/** Platform specific definitions for externs Copyright (C) 2001 Free Software Foundation, Inc. Written by: Gregory John Casamento Based on AppKitDefines.h by: Adam Fedor Date: Dec, 2004 This file is part of GNUstep. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library Lesser General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #ifndef IBSystem_INCLUDE #define IBSystem_INCLUDE #ifdef GNUSTEP_WITH_DLL #if BUILD_libGorm_DLL # if defined(__MINGW32__) /* On Mingw, the compiler will export all symbols automatically, so * __declspec(dllexport) is not needed. */ # define IB_EXTERN extern # else # define IB_EXTERN __declspec(dllexport) # endif #else # define IB_EXTERN extern __declspec(dllimport) #endif #else /* GNUSTEP_WITH[OUT]_DLL */ # define IB_EXTERN extern #endif #endif /* IBSystem_INCLUDE */ gorm-1.3.1/Documentation/0000755000175000017500000000000014360755341014311 5ustar heronherongorm-1.3.1/Documentation/Gorm.cp0000644000175000017500000000152014360755340015536 0ustar heronheron\entry{features}{16}{features} \entry{preferences}{22}{preferences} \entry{defaults}{22}{defaults} \entry{NSOwner}{23}{NSOwner} \entry{NSFirst}{23}{NSFirst} \entry{NSFont}{23}{NSFont} \entry{NSResponder}{23}{NSResponder} \entry{Responder Chain}{23}{Responder Chain} \entry{Creating Classes}{25}{Creating Classes} \entry{Classes Outline View}{25}{Classes Outline View} \entry{Class Edit Inspector}{26}{Class Edit Inspector} \entry{Instantiating}{26}{Instantiating} \entry{Connections}{26}{Connections} \entry{Saving}{27}{Saving} \entry{Setting the NSOwner}{29}{Setting the NSOwner} \entry{Connecting to a Window}{29}{Connecting to a Window} \entry{Name Table}{31}{Name Table} \entry{Custom Class Encoding}{31}{Custom Class Encoding} \entry{Palettes}{32}{Palettes} \entry{Inspectors}{32}{Inspectors} \entry{Editors}{32}{Editors} \entry{FAQ}{34}{FAQ} gorm-1.3.1/Documentation/Gorm.toc0000644000175000017500000001405314360755340015726 0ustar heronheron@unnchapentry{Copying}{10001}{Copying}{1} @unnchapentry{Contributors to Gorm}{10002}{Contributors}{2} @numchapentry{Installing Gorm}{1}{Installation}{3} @numsubsecentry{Required software}{1.0.1}{}{3} @numsubsecentry{Build and Install}{1.0.2}{}{3} @numsubsecentry{Trouble}{1.0.3}{}{3} @numchapentry{News}{2}{News}{4} @numsecentry{Noteworthy changes in version @samp {1.3.1}}{2.1}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.28}}{2.2}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.26}}{2.3}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.24}}{2.4}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.23}}{2.5}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.22}}{2.6}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.20}}{2.7}{}{5} @numsecentry{Noteworthy changes in version @samp {1.2.18}}{2.8}{}{5} @numsecentry{Noteworthy changes in version @samp {1.2.16}}{2.9}{}{5} @numsecentry{Noteworthy changes in version @samp {1.2.12}}{2.10}{}{5} @numsecentry{Noteworthy changes in version @samp {1.2.10}}{2.11}{}{5} @numsecentry{Noteworthy changes in version @samp {1.2.8}}{2.12}{}{5} @numsecentry{Noteworthy changes in version @samp {1.2.6}}{2.13}{}{6} @numsecentry{Noteworthy changes in version @samp {1.2.4}}{2.14}{}{6} @numsecentry{Noteworthy changes in version @samp {1.2.2}}{2.15}{}{6} @numsecentry{Noteworthy changes in version @samp {1.2.1}}{2.16}{}{6} @numsecentry{Noteworthy changes in version @samp {1.2.0}}{2.17}{}{6} @numsecentry{Noteworthy changes in version @samp {1.1.0}}{2.18}{}{7} @numsecentry{Noteworthy changes in version @samp {1.0.8}}{2.19}{}{7} @numsecentry{Noteworthy changes in version @samp {1.0.6}}{2.20}{}{7} @numsecentry{Noteworthy changes in version @samp {1.0.4}}{2.21}{}{7} @numsecentry{Noteworthy changes in version @samp {1.0.2}}{2.22}{}{7} @numsecentry{Noteworthy changes in version @samp {1.0.0}}{2.23}{}{8} @numsecentry{Noteworthy changes in version @samp {0.11.0}}{2.24}{}{8} @numsecentry{Noteworthy changes in version @samp {0.9.10}}{2.25}{}{8} @numsecentry{Noteworthy changes in version @samp {0.9.2}}{2.26}{}{9} @numsecentry{Noteworthy changes in version @samp {0.9.0}}{2.27}{}{9} @numsecentry{Noteworthy changes in version @samp {0.8.0}}{2.28}{}{10} @numsecentry{Noteworthy changes in version @samp {0.7.7}}{2.29}{}{10} @numsecentry{Noteworthy changes in version @samp {0.7.6}}{2.30}{}{11} @numsecentry{Noteworthy changes in version @samp {0.7.5}}{2.31}{}{11} @numsecentry{Noteworthy changes in version @samp {0.6.0}}{2.32}{}{11} @numsecentry{Noteworthy changes in version @samp {0.5.0}}{2.33}{}{11} @numsecentry{Noteworthy changes in version @samp {0.4.0}}{2.34}{}{11} @numsecentry{Noteworthy changes in version @samp {0.3.1}}{2.35}{}{12} @numsecentry{Noteworthy changes in version @samp {0.3.0}}{2.36}{}{12} @numsecentry{Noteworthy changes in version @samp {0.2.5}.}{2.37}{}{12} @numsecentry{Noteworthy changes in version @samp {0.2.0} snapshot.}{2.38}{}{12} @numsecentry{Noteworthy changes in version @samp {0.1.0}}{2.39}{}{13} @numsecentry{Noteworthy changes in version @samp {0.0.3}}{2.40}{}{13} @numsecentry{Noteworthy changes in version @samp {0.0.2}}{2.41}{}{13} @numsecentry{Noteworthy changes in version @samp {0.0.1}}{2.42}{}{13} @numsubsecentry{To Do}{2.42.1}{}{15} @numchapentry{Overview}{3}{Overview}{16} @numsecentry{What You Must Know To Understand This Manual}{3.1}{}{16} @numsubsecentry{Major features}{3.1.1}{}{16} @numsecentry{About this Manual}{3.2}{}{16} @numchapentry{Usage}{4}{Usage}{17} @numchapentry{Implementation}{5}{Implementation}{21} @numsecentry{Notes on implementation}{5.1}{}{21} @numsecentry{Connections}{5.2}{}{21} @numchapentry{Preferences}{6}{Preferences}{22} @numchapentry{Basic Concepts}{7}{}{23} @numsecentry{Getting Started}{7.1}{}{23} @numsecentry{What is NSOwner?}{7.2}{}{23} @numsecentry{What is NSFirst?}{7.3}{}{23} @numsubsecentry{Responders}{7.3.1}{}{23} @numsubsecentry{The Responder Chain}{7.3.2}{}{23} @numsecentry{What is NSFont?}{7.4}{}{24} @numsecentry{The awakeFromNib method}{7.5}{}{24} @numchapentry{Creating an Application}{8}{}{25} @numsecentry{Creating A Class In Gorm}{8.1}{}{25} @numsecentry{Using The Outline View}{8.2}{}{25} @numsubsecentry{Adding Outlets In The Outline View}{8.2.1}{}{25} @numsubsecentry{Adding Actions In the Outline View}{8.2.2}{}{26} @numsecentry{Using The Class Edit Inspector}{8.3}{}{26} @numsubsecentry{Adding Outlets In The Inspector}{8.3.1}{}{26} @numsubsecentry{Adding Actions In the Inspector}{8.3.2}{}{26} @numsecentry{Instantiating The Class}{8.4}{}{26} @numsecentry{Adding Controls from the Palette}{8.5}{}{26} @numsubsecentry{Making Connections}{8.5.1}{}{26} @numsecentry{Saving the gorm file}{8.6}{}{27} @numsecentry{Generating .h and .m files from the class.}{8.7}{}{27} @numchapentry{Another Simple Application}{9}{}{29} @numsecentry{Adding Menu Items}{9.1}{}{29} @numsecentry{Making a Controller-based .gorm file}{9.2}{}{29} @numsubsecentry{Add the init method to WinController}{9.2.1}{}{30} @numsecentry{Running the App}{9.3}{}{30} @numchapentry{Advanced Topics}{10}{}{31} @numsecentry{Gorm file format}{10.1}{}{31} @numsubsecentry{The Name Table}{10.1.1}{}{31} @numsubsecentry{The Custom Class Table}{10.1.2}{}{31} @numsubsecentry{Connections Array}{10.1.3}{}{31} @numsecentry{Custom Class Encoding}{10.2}{}{31} @numsubsecentry{Restrictions On Your Custom Subclasses}{10.2.1}{}{32} @numsecentry{Palettes}{10.3}{}{32} @numsubsecentry{Graphical Objects In A Palette}{10.3.1}{}{32} @numsubsecentry{Non Graphical Objects In A Palette}{10.3.2}{}{33} @numchapentry{Frequently Asked Questions}{11}{}{34} @numsubsecentry{Should I modify the data.classes of file in the .gorm package?}{11.0.1}{}{34} @numsubsecentry{Why does my application crash when I add additional attributes for encoding in encodeWithCoder: or initWithCoder: in my custom class?}{11.0.2}{}{34} @numsubsecentry{Why does Gorm give me a warning when I have bundles specified in GSAppKitUserBundles?}{11.0.3}{}{34} @numsubsecentry{How can I avoid loading GSAppKitUserBundles in Gorm?}{11.0.4}{}{34} @numsubsecentry{How can I change the font for a widget?}{11.0.5}{}{34} @unnchapentry{Concept Index}{10003}{Concept Index}{36} gorm-1.3.1/Documentation/COPYING0000644000175000017500000004312714327003122015335 0ustar heronheron GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. gorm-1.3.1/Documentation/version.texi0000644000175000017500000000011314360747253016667 0ustar heronheron@set GNUSTEP-VERSION 0.30.0 @set GNUSTEP-GCC 4.3.0 @set GORM-VERSION 1.3.1 gorm-1.3.1/Documentation/NEWS0000644000175000017500000006417014360755341015020 0ustar heronheron1 Noteworthy changes in version '1.3.1' ======================================= * Fix issue with cells appearing in top level editor * Make nibs read only since saving is unstable * Add XIB reading so that they can be loaded by Gorm * Add storyboard file to list of supported files so that an icon is displayed, does not support reading yet. * Fix testing model mode * Bug fixes in GormClassManager, GormDocument, etc. 2 Noteworthy changes in version '1.2.28' ======================================== * Improved NSScrollView handling. * Added NSMatrix to Group menu to make it easier to create NSMatrix objects * Improved inspector for NSMatrix. Added ability to add rows/columns * Fixed NSMatrix selection problems when grouped in an NSScrollView * Fixes and other improvements to inspectors. Corrected issue where Gorm's menu stays present during testing mode. 3 Noteworthy changes in version '1.2.26' ======================================== * Refactoring of palettes by Sergii Stoian to correct usability issues in Gorm. * Refactoring of handling and rearrangment of controls in inspectors for usuability. * Stability fixes to make Gorm easier to use. * Autosizing of views corrected in many inspectors * Improvements in error handling. 4 Noteworthy changes in version '1.2.24' ======================================== * Fix for issue where Gorm was referencing private variables. This caused a crash when built with clang. 5 Noteworthy changes in version '1.2.23' ======================================== * Fix for issue where NSPanel was being saved as an NSWindow in some cases. 6 Noteworthy changes in version '1.2.22' ======================================== * Fix for bug#45040: Fix allows Gorm custom class functionality to work normally on OpenBSD/NetBSD/FreeBSD. * Fixes for Solaris * Memory leak fixes. * Objective-C parser improvements. 7 Noteworthy changes in version '1.2.20' ======================================== * Bug fixes #28643, #32827 * Corrected issues with updating document when there is a change. * Add cells as objects to the document so they can be properly edited. * Changes to prevent recursive frame change notifications. 8 Noteworthy changes in version '1.2.18' ======================================== * Code cleanup, removal of warnings when building with clang. * Removal of use of call to objc_poseAs(..) which was preventing building with newer runtimes. * Stability improvements. 9 Noteworthy changes in version '1.2.16' ======================================== * XIB reading. * Bug fixes for standalone views. * Stability changes. 10 Noteworthy changes in version '1.2.12' ========================================= Requires: gnustep-base-1.20.0, gnustep-gui-0.18.0. Reason: Parts of the runtime which Gorm used were refactored and it was necessary to make corresponding changes in Gorm to use it. * Correction for bugs #27295, 28643, 29085. * Added a DO server which allows modification of internal data structures using a simple interface. * Tooltips now show the object name and the object type for informational purposes. * Opens default document when using NSWindows95InterfaceStyle. 11 Noteworthy changes in version '1.2.10' ========================================= * Correction for bug #25401 * Correction for some nib loading issues. * Limited support for standalone views. * Fixes for various bugs. 12 Noteworthy changes in version '1.2.8' ======================================== Requires: gnustep-gui-0.16.0. It will not compile without this version of the library. Reason: Nib and Gorm loading were moved to a more sensible file structure. Additionally, Nib loading was refactored. * Correction for bug#25001. * Correction for bug#25111. * Fixes for nib encoding to use the proper template class instances. * Changes to use new headers. 13 Noteworthy changes in version '1.2.6' ======================================== * Corrections to allow Gorm to build and run properly on the Darwin operating system. * Corrected sizing of Controls Palette. * Added preliminary support for IBPlugin API. * Added preferences panel to add plugins dynamically. * Moved load/save logic for gorm, gmodel, and nib to plugins. This change should allow plugins for virtually any format to be read/written by Gorm. * Correction for bug#24146, bug#23889. 14 Noteworthy changes in version '1.2.4' ======================================== Requires: gnustep-gui-0.13.2. Reason: Due to changes in popupbutton controller logic. * Corrected bug#'s 19640, 21845, 19792, 15637, 17892, 18171. * Added error panel to show the detected inconsistencies in a file. * Added preference setting to turn on or off the gorm file repair logic. * Added capability to repair logic to fix window level issue. * Added ruler switch to scroll view inspector. 15 Noteworthy changes in version '1.2.2' ======================================== Requires: gnustep-gui-0.13.0. * Moved to GPLv3 * Added text field to NSTableColumn inspector to allow editing of table column title. * Corrected issue with selection. * Added button modifiers for special keys to button inspectors. * Corrected issue with loading of older gorm files. * Fix to allow Gorm's menus to be Mac-style, but not the one being edited. * Other miscellaneous bug corrections. 16 Noteworthy changes in version '1.2.1' ======================================== * Minor corrections to previous release. 17 Noteworthy changes in version '1.2.0' ======================================== * Corrections to some editors to not change selection if connection is in progress. * Force menu style to NSNextStepInterfaceStyle for editing purposes. * Correction for memory issue when closing document. * Minor bug fixes. 18 Noteworthy changes in version '1.1.0' ======================================== * Changed Gorm architecture to use NSDocument classes. * Abstracted model loading mechanism. This was done by implementing a set of "Loader" and "Builder" classes which handle filling in the data structures in Gorm and exporting them to external formats. * Implemented GormNibWrapperLoader and GormNibWrapperBuilder for reading and writing Cocoa NIB files. * Implemented GormGormWrapperLoader and GormGormWrapperBuilder for reading and writing GNUstep Gorm files * Implemented GormGModelWrapperLoader for reading GNUstep gmodel files. * Updated icon * A number of bugs have been addressed in this release. 19 Noteworthy changes in version '1.0.8' ======================================== This is a bugfix release. * Correction for bug#16587. * Correction for handling non-string identifiers in tableviews. 20 Noteworthy changes in version '1.0.6' ======================================== This is a bugfix release. * Entirely new icon set, for palettes, gorm, gmodel, nib and the application. * Replaced some of the images for the inspectors. * Corrected the following bugs since the last release: #16049, #16050, #15988, #16049, #15989, #15987, #15817, #15780, #15642, #15556. * Changed formatting in some of the inspectors so that they are easier to navigate. 21 Noteworthy changes in version '1.0.4' ======================================== This is a bugfix release. * Corrected some bug#15236 with window style mask settings. * Corrected bug#15236, which caused window fields in the inspector not to update when the field was being edited and a new window is selected. * Corrected bug #15178. * Corrected problem with standalone views 22 Noteworthy changes in version '1.0.2' ======================================== This is a bugfix release. * Fixed some bugs with table column selection. * Corrected a minor problem in the custom class inspector. 23 Noteworthy changes in version '1.0.0' ======================================== PLEASE NOTE: This version of Gorm requires base 1.11.1 and gui 0.10.1 to be installed (gnustep-startup-0.13.0). * All inspectors are now modeled in .gorm files. * Added autosizing to form attributes inspector. * Utilize and maintain parent/child data structure more pervasively * Reorganized code in palettes for cleaner implementation. * Removed code to check for user bundles, since bugs in Camaelon which prompted those changes were fixed long ago. * Added documentation to GormCore 24 Noteworthy changes in version '0.11.0' ========================================= * Improved implementation of canSubstituteForClass: the default implementation of this method tests the classes to see if initWithCoder: or encodeWithCoder: is implemented on a subclass to determine automatically if that class has the same encoding signature as the original class, if it does, it can be substituted. * Improved handling of classes which use cell classes in the custom class inspector. The inspector now autmatically replaces the cell class with the appropriate one when the user selects a given subclass. * Browser based class editor in document panel. This interface is more like the one on OSX. The user now has a choice in preferences to determine which view they would like to use. * Translation tools. The Document->Translate menu allows the user to export string and import strings in the strings format, so that someone can easily translate just the strings in the file and doesn't need to directly edit anything in Gorm. The strings file can then be loaded back into Gorm and all of the relevant strings are updated. * Alignment tools. In the new Layout menu there are options to align views, center views, bring views to front or push them to the back of the view layers. * Implementation of IBViewResourceDraggingDelegate. This allows updating of the pull down in the inspectors panel dynamically. It requires the developer of a palette to implement some code to enable this, as on OSX. * Lots of bugfixes and usability changes are also included in this release. 25 Noteworthy changes in version '0.9.10' ========================================= * Gorm now has a full implementation of canSubstituteForClass: which is used to determine if a class can be substituted in the custom class inspector. This allows classes added in palettes to say whether or not they can be used as a subsitute for a kit class. * Better separation of Gorm into libraries. As well as the ability to compile on windows with a simple: "make install" * Implementation of IBResourceManager class. This class is used by palettes to register drag types to be considered by the top level editors in the document window: object, sound, image, class. * Gorm now is able to switch views in the document window when you drag a file into it. If it's an image it will switch to the image view, if it's a sound, the sound view, an object the object view etc or if it's a class (a .h file) it will switch to the classes view. * Drag and drop parsing of header files (if you hadn't gathered from the previous item). * Better support for standalone views. while the user cannot instantiate from the classes view (there were too many problems with this approach). They can now drag any view from the palette into the objects view and have it work. * A myriad of bug fixes. 26 Noteworthy changes in version '0.9.2' ======================================== NOTE: This is mainly a bugfix release. * Some improvements to the procedure for removing connections. * Corrected various issues with header parsing. * Now closes windows which were opened during interface testing such as font panels, info panels, etc. * Minor corrections to background color for a number of inspectors. * Improvements to gmodel importation. * Better detection of when the user is utilizing a user bundle. Gorm will now warn the user with a panel. * Various improvements in documentation 27 Noteworthy changes in version '0.9.0' ======================================== * Images/Sounds can now be dragged into a matrix cell. * Fully implemented date and number formatter inspectors (these classes still need work in GUI). * Added warning panel if the user attempts to edit a .gorm file created with a newer version of Gorm * Modified data.classes format so that only those actions specifically added to FirstResponder are listed. * Greatly improved gmodel importation. (experimental) * It's now possible to add methods to classes which are not custom. This allows the user to add actions which may have been added to those classes by categories. * Completely new header parser implemented. * Improved cut/paste. It's now possible to use cut/paste from almost anywhere. The class editor now fully supports it. * Improved implementation of some of the InterfaceBuilder framework classes. * Object editor will now remove all instances of a class that has been deleted from the class editor. * The class inspector and the classes view will now apply stricter rules to names of actions and outlets to ensure that they are properly entered. * All inspectors work perfectly with customized colors. * Fixed a number of bugs. 28 Noteworthy changes in version '0.8.0' ======================================== PLEASE NOTE: It is important for this release that you upgrade to Gorm 0.8.0 when using Gorm with the new GNUstep libraries (base-1.10.0 and gui-0.9.4). This version of Gorm contains some features which are reliant on changes made in those versions of the libraries. It is stated in Gorm's documentation (the Gorm.texi file) that this is required, but I felt it important enough to also mention it here so that it is known beyond a reasonable doubt. * New gorm file version. * Full custom palette support * Palette preferences panel to allow the user to configure palettes to load * Experimental: Standalone views. This feature is to allow the use of a view without the need of a containing window. This allows developers to treat these views as they would any other top level object in the .gorm file. This is experimental functionality. * Improved NSTableColumn inspector. The new inspector allows the user to change the data cell used for a given column. This allows the user to select from a list of cell subclasses and set the appropriate custom or non-custom one they want to appear in that column of the table. * Improved layout of some of the inspectors. * Removed old class parser. The parser was somewhat buggy and was actually causing some issues. A new parser will be available in the next version of Gorm. For now users will need to use the class inspector or the outline view to enter classes into Gorm. * Experimental: "File" section. This is essentially a per-file preference which allows the user to control which version of GNUstep a given file will be compatible with. It also lists the potential compatibility issues with the selected version. * Improved controls palette. New items for some of the standard font replace the old "Title" widget which was a System-14 font. The new widgets use a selection of the standard System font to allow the user to easily build a gui using these and reducing the amount of time the user needs to spend fiddling with the font panel. 29 Noteworthy changes in version '0.7.7' ======================================== * Important bugfixes in editor classes. * Rearranged some of the editor classes to be in the palettes which contain the classes they are responsible for editing (GormButtonEditor & GormTabViewEditor). * Image and Sound editors will now display system default images or sounds if they are available. * Document window now uses an NSToolbar (experimental). * Improved the layout of some of the inspectors. * Corrected some minor issues in the inspectors * Added code to allow NSTableView and NSOutlineView to show some data during testing * Gorm will now show an alert panel when a model fails to load or test properly. 30 Noteworthy changes in version '0.7.6' ======================================== This release is mainly a bugfix release for 0.7.5. * Improved .gmodel support * Corrections to previous repair feature. * Important bugfixes for Menu editing. * Important bugfixes for class inspector. 31 Noteworthy changes in version '0.7.5' ======================================== * The 'reparent' feature in the class inspector. This allows the user to change the class hierarchy from within Gorm. * Some important bugfixes * a property 'GormRepairFileOnLoad' (untested) which should repaire old .gorm files... It is HIGHLY recommended that Gorm not be run with this on constantly and that you back up any files which you want to repair before opening them with this option turned on. * A shelf inspector in prefs that lets you expand the size of the names in the object view.. * Support for NSFontManager * A way to restore a complete NSMenu if it's deleted (a new palette entry for NSMenu, not just an item) 32 Noteworthy changes in version '0.6.0' ======================================== * Several major bugs corrected. * Clarified some of the inspectors * Menu items are now properly enabled/disabled when appropriate * More descriptive title displayed when a class is being edited. 33 Noteworthy changes in version '0.5.0' ======================================== * Enabled defer in NSWindow inspector. * Added code to the connection inspector to prevent erroneous connections. * Added support for upgrading of old .gorm files using the older template mechanism * Grouping with an NSSplitView now operates using the relative positions of the views in the window. * Custom Class inspector now shows all subclasses, not just direct custom subclasses. * Bug fixes, eliminated memory leak, code cleanup, etc. 34 Noteworthy changes in version '0.4.0' ======================================== * New Menu and Menu Item inspectors. * User can now specify the Services and Windows menus in the menu inspector. * User can specify a non-custom subclass as well as a custom one to replace the class when the .gorm is unarchived. This can be used to turn a NSTextField into NSSecureTextField and etc. * New set name panel. * New switch control on the font panel to allow the user to specify if a font is encoded with its default size or not. * Added NSStepper and NSStepperCell to the class list to allow creation of custom subclasses. * Windows and Services menus now function correctly. 35 Noteworthy changes in version '0.3.1' ======================================== * New custom class system. * Images now persist correctly when added to a button or view. * Fixed DND * Various bugfixes 36 Noteworthy changes in version '0.3.0' ======================================== * Preferences added. * User can now enable and disable guidlines for easier editing. * Refactored code into GormLib which is a clone of the InterfaceBuilder framework. This facilitates creating palettes and inspectors outside of Gorm. * Added class inspector for easier editing of classes. This gives the user the option to use either the outline view or the inspector to edit new classes. * Added inspectors for the following: NSScrollView, NSProgressIndicator, NSColorWell, GormImageInspector (for images added to .gorm files). * Improved look of NSTabView inspector. * Removed all warnings from the code. * various bug fixes. 37 Noteworthy changes in version '0.2.5'. ========================================= Many fixes and improvements to make the app work better. * Better parsing of headers * Interface code redone as gorm files. * Re-add multiple selection via mouse drag. 38 Noteworthy changes in version '0.2.0' snapshot. ================================================== Gobs of improvements, mostly due to the hard work of Gregory John Casamento and Pierre-Yves Rivaille. Thanks guys! * Custom class support/translations implemented. * Added NSScrollView, NSPopupButton, NSOutlineView, NSTableView editing. * Improved test mode support. * Improved drag n' drop support on many items. * Intelligent placement hints. * Read gmodel files. * More inspectors. * Sound and Image support. * gorm files were changed to directory wrappers for more flexibility. 39 Noteworthy changes in version '0.1.0' ======================================== * load/parses class files for entry into class list. * Pallete/inspectors for date and number formatters * Pallete/Inspectors for browsers and tableViews * NSStepper, NSForm, NSPopupButton pallete item and inspector * Most inspectors greatly improved and fleshed out. * Custom views added. * Ability to edit cells in a matrix. * Ability to change the font of some objects. 40 Noteworthy changes in version '0.0.3' ======================================== * Create stub .m and .h files from new classes * Works better with ProjectCenter. * Handle Ctrl-Drag and Alt-Drag of objects - automatic conversion to matrices and/or increase decrease rows and cols. * Edit NSForms titles in place. * Edit NSBoxes and add subviews. * Support for custom objects. 41 Noteworthy changes in version '0.0.2' ======================================== * Add popup and pulldown menu controls * Menu support * More inspectors * Some support for connections * Much more fleshed out - too numerous to mention. 42 Noteworthy changes in version '0.0.1' ======================================== * 8th December 1999 * Save/Load 'nib' documents (binary archived data) This works so far as it can be tested - but that's just archives containing windows or panels so far. * Load palettes Loading of palettes works. You can load palettes from the 'Tools' menu. Gorm automatically loads all the palettes from its Resources directory. * Basic framework So far, the app provides a basic framework that needs fleshing out. * It has a palettes manager object that allows you to select a palette and drag items from the palette into your document. * It has a special per-document editor object, which keeps track of a matrix of icons representing the top-level objects in the document. * It has an inspector manager class, which updates the inspector panel when the selected object is changed by an editor. * It has special inspectors for handling an empty selection or a multiple selection. * Palettes Four palettes (three of which are empty at present) are built and installed in the apps Resources directory. The Window palette is more fully fleshed out than the other palettes. It permits windows and panels to be created in Gorm. If provides the start of a window attributes inspector. * 18 December 1999 * You can drag views from a palette into a window or panel. * You can select views in a window by clicking on them, shift-clicking (for multiple selection), or click-drag on the window background to select views in a box. * You can delete/cut/copy/paste views betwen windows. * You can move views in a window by clicking on them and dragging. * You can resize views by clicking on their knobs and dragging. * You can control-drag to mark source and destination views for a connection. * Next task - inspectors. The connection inspector needs to be implemented to complete the process of establishing connections. The size inspector needs to be implemented to set autosizing parameters for a view. Once these are done, the object editor needs to be made to support connections so that we can connect between objects other than views, then we need to write a menu editor. * 22 December 1999 * Connections inspector is now working - but it needs some effort to tidy it up. * Class info (outlets and actions) is specified in 'ClassInformation.plist' and needs to be present so that the app knows what outlets/actions an object has (and therefore what connections can be made). * The view size inspector is working - allowing you to set the size of the subviews within a window. * The attributes inspector for 'FilesOwner' is working, so you can define the class of the files owner (it defaults to NSApplication). * There is a crude panel for setting the name of the selected object. * I've created a couple of new images and got rid of the two NeXT images that were lurking in there. * There is a Testing directory, with a GormTest application that lets you load a nib for testing - it assumes that the nib will set its FilesOwners delegate to point to a window, and makes that window the key window ... * 23 December 1999 Last work before christmas ... Various bits of tidying up plus - Added an evil hack of a generic attributes inspector ... This looks through all the methods of the selected object to find those taking a single argument and beginning with 'set'. It makes all these setting methods (whose argument is a simple scalar type or an object) available for you to invoke from the inspector panel. This makes it possible to set pretty much any attribute of any object, but you do need to have the GNUstep header files to hand, so you can tell what numeric values to enter to achieve a desired result. gorm-1.3.1/Documentation/Makefile.postamble0000644000175000017500000000351714327003122017726 0ustar heronheron# # Makefile.postamble # # Project specific makefile rules # # Uncomment the targets you want. # The double colons (::) are important, do not make them single colons # otherwise the normal makefile rules will not be performed. # include ../Version # Things to do before compiling before-all:: version.texi autogsdoc -MakeFrames YES \ -DocumentationDirectory InterfaceBuilder \ -Declared InterfaceBuilder \ ../GormLib/*.h 2> /dev/null autogsdoc -MakeFrames YES \ -DocumentationDirectory GormCore \ -Declared GormCore \ ../GormCore/*.h 2> /dev/null autogsdoc -MakeFrames YES \ -DocumentationDirectory GormPrefs \ -Declared GormPrefs \ ../GormPrefs/*.h 2> /dev/null autogsdoc -MakeFrames YES \ -DocumentationDirectory GormObjCHeaderParser \ -Declared GormObjCHeaderParser \ ../GormObjCHeaderParser/*.h 2> /dev/null # Things to do after compiling # after-all:: # Things to do before installing # before-install:: # Things to do after installing # after-install:: # Things to do before uninstalling # before-uninstall:: # Things to do after uninstalling # after-uninstall:: # Things to do before cleaning # before-clean:: # Things to do after cleaning after-clean:: rm -f *.bak *.cl *.fns *.pr *.log rm -f version.texi rm -rf InterfaceBuilder rm -rf GormCore rm -rf GormPrefs rm -rf GormObjCHeaderParser # Things to do before distcleaning # before-distclean:: # Things to do after distcleaning # after-distclean:: # Things to do before checking # before-check:: # Things to do after checking # after-check:: version.texi: ../Version rm -f version.texi echo '@set GNUSTEP-VERSION' $(GNUSTEP_CORE_VERSION) \ > version.texi echo '@set GNUSTEP-GCC $(GNUSTEP_GCC)' \ >> version.texi echo '@set GORM-VERSION $(VERSION)' \ >> version.texi regenerate: mv ANNOUNCE README INSTALL NEWS .. gorm-1.3.1/Documentation/INSTALL0000644000175000017500000000114414360755341015342 0ustar heronheron1 Required software ------------------- You need to have the GNUstep core libraries installed in order to compile and use Gorm. The core packages are, at a minimum: * gnustep-make * gnustep-base * gnustep-gui * gnustep-back See for further information. 2 Build and Install ------------------- Steps to build: * make && make install Please note that GormLib must be installed for Gorm.app to run. 3 Trouble --------- Give us feedback! Tell us what you like; tell us what you think could be better. Send bug reports and patches to . gorm-1.3.1/Documentation/.cvsignore0000644000175000017500000000012414327003122016270 0ustar heronheron*.log *.dvi *.ps *.html *.info *.aux *.toc *.cp *.fn *.vr *.tp *.ky *.pg *.ps *.vrs gorm-1.3.1/Documentation/readme.texi0000644000175000017500000000214614327003122016426 0ustar heronheron@c -*-texinfo-*- @ifset TEXT-ONLY @include version.texi @end ifset @section Introduction Read the NEWS file for the latest user visible changes. Read the INSTALL file for installation instructions. Gorm is an acronym for Graphic Object Relationship modeler (or perhaps GNUstep Object Relationship Modeler). Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) `Interface Builder' application for GNUstep. Gorm is part of the GNUstep project, and is copyrighted by the Free Software Foundation. Gorm is released under the GPL - see the file `COPYING' for details. Documentation for Gorm is located in the Documentation directory. It's also available on the wiki at http://wiki.gnustep.org/index.php/Gorm_Manual. @section Status Gorm is usable and stable. Please report bugs to bug-gnustep@@gnu.org Known problems (things to do) - @enumerate @item Support for IB 3.0 functionality. @item More palettes. @end enumerate @section Acknowledgements @enumerate @item Icons - Mostly by Andrew Lindsay. Gorm application icon by Jesse Ross. @item Code - GormViewKnobs.m adapted from code by Gerrit van Dyk. @end enumerate gorm-1.3.1/Documentation/announce.texi0000644000175000017500000000210514360751004017000 0ustar heronheron@c -*- texinfo -*- @chapter ANNOUNCE @ifset TEXT-ONLY @include version.texi @end ifset This is version @value{GORM-VERSION} of Gorm. @section What is Gorm? Gorm is an acronym for Graphic Object Relationship modeler (or perhaps GNUstep Object Relationship Modeler). Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) `Interface Builder' application for GNUstep. @set ANNOUNCE-ONLY @include news.texi @clear ANNOUNCE-ONLY @section How can I get support for this software? You may wish to use the GNUstep discussion mailing list for general questions and discussion. Look at the GNUstep Web Pages for more information regarding GNUstep resources @url{http://www.gnustep.org/} @section Where can you get it? How can you compile it? You can download sources and rpms (for some machines) from @url{ftp://ftp.gnustep.org/pub/gnustep/dev-apps}. @section Where do I send bug reports? Bug reports can be sent to @email{bug-gnustep@@gnu.org}. @section Obtaining GNU Software Check out the GNUstep web site. (@url{http://www.gnustep.org/}), and the GNU web site. (@url{http://www.gnu.org/}) gorm-1.3.1/Documentation/GormObjCHeaderParser/0000755000175000017500000000000014360755340020240 5ustar heronherongorm-1.3.1/Documentation/GormObjCHeaderParser/Untitled.html0000644000175000017500000000263114360755340022720 0ustar heronheron The Untitled Project

The Untitled Project

The index below lists the major components of the Untitled documentation.

Title Index
gorm-1.3.1/Documentation/GormObjCHeaderParser/FunctionsTOC.gsdoc0000644000175000017500000000056714360755340023607 0ustar heronheron Functions gorm-1.3.1/Documentation/GormObjCHeaderParser/NSScanner+OCHeaderParser.html0000644000175000017500000000453514333120704025540 0ustar heronheron NSScanner+OCHeaderParser documentation

NSScanner+OCHeaderParser documentation

Authors

Generated by heron

Software documentation for the NSScanner(OCHeaderParser) category

NSScanner(OCHeaderParser)

Declared in:
GormObjCHeaderParser/NSScanner+OCHeaderParser.h
Description forthcoming.
Method summary

scanUpToAndIncludingCharactersFromSet: intoString: 

- (void) scanUpToAndIncludingCharactersFromSet: (NSCharacterSet*)set intoString: (NSString**)buffer;
Description forthcoming.

scanUpToAndIncludingString: intoString: 

- (void) scanUpToAndIncludingString: (NSString*)string intoString: (NSString**)buffer;
Description forthcoming.


gorm-1.3.1/Documentation/GormObjCHeaderParser/OCIVarDecl.gsdoc0000644000175000017500000000276314333120704023132 0ustar heronheron OCIVarDecl class documentation Software documentation for the OCIVarDecl class GormObjCHeaderParser/OCIVarDecl.h Description forthcoming. Description forthcoming. Description forthcoming. initWithString: string Description forthcoming. ivars Description forthcoming. parse Description forthcoming. gorm-1.3.1/Documentation/GormObjCHeaderParser/OCIVarDecl.html0000644000175000017500000000554614333120704023001 0ustar heronheron OCIVarDecl class documentation

OCIVarDecl class documentation

Authors

Generated by heron

Software documentation for the OCIVarDecl class

OCIVarDecl : NSObject

Declared in:
GormObjCHeaderParser/OCIVarDecl.h
Description forthcoming.

Instance Variables

Method summary

initWithString: 

- (id) initWithString: (NSString*)string;
Description forthcoming.

ivars 

- (NSArray*) ivars;
Description forthcoming.

parse 

- (void) parse;
Description forthcoming.



Instance Variables for OCIVarDecl Class

ivarString

@protected NSString* ivarString;
Description forthcoming.

ivars

@protected NSMutableArray* ivars;
Description forthcoming.





gorm-1.3.1/Documentation/GormObjCHeaderParser/OCMethod.gsdoc0000644000175000017500000000531714333120704022717 0ustar heronheron OCMethod class documentation Software documentation for the OCMethod class GormObjCHeaderParser/OCMethod.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. initWithString: string Description forthcoming. isAction Description forthcoming. isClassMethod Description forthcoming. name Description forthcoming. parse Parse the method. setIsAction: flag Description forthcoming. setIsClassMethod: flag Description forthcoming. setName: aName Description forthcoming. gorm-1.3.1/Documentation/GormObjCHeaderParser/NSScanner+OCHeaderParser.gsdoc0000644000175000017500000000246514333120704025673 0ustar heronheron NSScanner+OCHeaderParser documentation Software documentation for the NSScanner(OCHeaderParser) category GormObjCHeaderParser/NSScanner+OCHeaderParser.h Description forthcoming. scanUpToAndIncludingCharactersFromSet: set intoString: buffer Description forthcoming. scanUpToAndIncludingString: string intoString: buffer Description forthcoming. gorm-1.3.1/Documentation/GormObjCHeaderParser/OCClass.gsdoc0000644000175000017500000001017414333120704022541 0ustar heronheron OCClass class documentation Software documentation for the OCClass class GormObjCHeaderParser/OCClass.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. addIVar: name isOutlet: flag Description forthcoming. addMethod: name isAction: flag Description forthcoming. className Description forthcoming. initWithString: string Description forthcoming. isCategory Description forthcoming. ivars Description forthcoming. methods Description forthcoming. parse Description forthcoming. setClassName: name Description forthcoming. setIsCategory: flag Description forthcoming. setSuperClassName: name Description forthcoming. superClassName Description forthcoming. gorm-1.3.1/Documentation/GormObjCHeaderParser/Untitled.igsdoc0000644000175000017500000002116714360755340023231 0ustar heronheron{ categories = { NSScanner = { OCHeaderParser = "NSScanner+OCHeaderParser"; }; }; category = { "NSScanner(OCHeaderParser)" = "NSScanner+OCHeaderParser"; }; class = { OCClass = OCClass; OCHeaderParser = OCHeaderParser; OCIVar = OCIVar; OCIVarDecl = OCIVarDecl; OCMethod = OCMethod; }; classvars = { OCClass = { className = OCClass; classString = OCClass; isCategory = OCClass; ivars = OCClass; methods = OCClass; protocols = OCClass; superClassName = OCClass; }; OCHeaderParser = { classes = OCHeaderParser; fileData = OCHeaderParser; }; OCIVar = { isOutlet = OCIVar; ivarString = OCIVar; name = OCIVar; }; OCIVarDecl = { ivarString = OCIVarDecl; ivars = OCIVarDecl; }; OCMethod = { isAction = OCMethod; isClassMethod = OCMethod; methodString = OCMethod; name = OCMethod; }; }; function = { lookAhead = ParserFunctions; lookAheadForToken = ParserFunctions; }; ivariable = { className = { OCClass = OCClass; }; classString = { OCClass = OCClass; }; classes = { OCHeaderParser = OCHeaderParser; }; fileData = { OCHeaderParser = OCHeaderParser; }; isAction = { OCMethod = OCMethod; }; isCategory = { OCClass = OCClass; }; isClassMethod = { OCMethod = OCMethod; }; isOutlet = { OCIVar = OCIVar; }; ivarString = { OCIVar = OCIVar; OCIVarDecl = OCIVarDecl; }; ivars = { OCClass = OCClass; OCIVarDecl = OCIVarDecl; }; methodString = { OCMethod = OCMethod; }; methods = { OCClass = OCClass; }; name = { OCIVar = OCIVar; OCMethod = OCMethod; }; protocols = { OCClass = OCClass; }; superClassName = { OCClass = OCClass; }; }; method = { "-addIVar:isOutlet:" = { OCClass = OCClass; }; "-addMethod:isAction:" = { OCClass = OCClass; }; "-className" = { OCClass = OCClass; }; "-classes" = { OCHeaderParser = OCHeaderParser; }; "-initWithContentsOfFile:" = { OCHeaderParser = OCHeaderParser; }; "-initWithString:" = { OCClass = OCClass; OCIVar = OCIVar; OCIVarDecl = OCIVarDecl; OCMethod = OCMethod; }; "-isAction" = { OCMethod = OCMethod; }; "-isCategory" = { OCClass = OCClass; }; "-isClassMethod" = { OCMethod = OCMethod; }; "-isOutlet" = { OCIVar = OCIVar; }; "-ivars" = { OCClass = OCClass; OCIVarDecl = OCIVarDecl; }; "-methods" = { OCClass = OCClass; }; "-name" = { OCIVar = OCIVar; OCMethod = OCMethod; }; "-parse" = { OCClass = OCClass; OCHeaderParser = OCHeaderParser; OCIVar = OCIVar; OCIVarDecl = OCIVarDecl; OCMethod = OCMethod; }; "-scanUpToAndIncludingCharactersFromSet:intoString:" = { "NSScanner(OCHeaderParser)" = "NSScanner+OCHeaderParser"; }; "-scanUpToAndIncludingString:intoString:" = { "NSScanner(OCHeaderParser)" = "NSScanner+OCHeaderParser"; }; "-setClassName:" = { OCClass = OCClass; }; "-setIsAction:" = { OCMethod = OCMethod; }; "-setIsCategory:" = { OCClass = OCClass; }; "-setIsClassMethod:" = { OCMethod = OCMethod; }; "-setIsOutlet:" = { OCIVar = OCIVar; }; "-setName:" = { OCIVar = OCIVar; OCMethod = OCMethod; }; "-setSuperClassName:" = { OCClass = OCClass; }; "-superClassName" = { OCClass = OCClass; }; }; output = { "../GormObjCHeaderParser/GormObjCHeaderParser.h" = ( "GormObjCHeaderParser/GormObjCHeaderParser.gsdoc" ); "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h" = ( "GormObjCHeaderParser/NSScanner+OCHeaderParser.gsdoc" ); "../GormObjCHeaderParser/OCClass.h" = ( "GormObjCHeaderParser/OCClass.gsdoc" ); "../GormObjCHeaderParser/OCHeaderParser.h" = ( "GormObjCHeaderParser/OCHeaderParser.gsdoc" ); "../GormObjCHeaderParser/OCIVar.h" = ( "GormObjCHeaderParser/OCIVar.gsdoc" ); "../GormObjCHeaderParser/OCIVarDecl.h" = ( "GormObjCHeaderParser/OCIVarDecl.gsdoc" ); "../GormObjCHeaderParser/OCMethod.h" = ( "GormObjCHeaderParser/OCMethod.gsdoc" ); "../GormObjCHeaderParser/ParserFunctions.h" = ( "GormObjCHeaderParser/ParserFunctions.gsdoc" ); }; source = { "../GormObjCHeaderParser/GormObjCHeaderParser.h" = ( "../GormObjCHeaderParser/GormObjCHeaderParser.h", "../GormObjCHeaderParser/GormObjCHeaderParser.h", "../GormObjCHeaderParser/GormObjCHeaderParser.h", "../GormObjCHeaderParser/GormObjCHeaderParser.h", "../GormObjCHeaderParser/GormObjCHeaderParser.h", "../GormObjCHeaderParser/GormObjCHeaderParser.h" ); "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h" = ( "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h", "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h", "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h", "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h", "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h", "../GormObjCHeaderParser/NSScanner+OCHeaderParser.m" ); "../GormObjCHeaderParser/OCClass.h" = ( "../GormObjCHeaderParser/OCClass.h", "../GormObjCHeaderParser/OCClass.h", "../GormObjCHeaderParser/OCClass.h", "../GormObjCHeaderParser/OCClass.h", "../GormObjCHeaderParser/OCClass.h", "../GormObjCHeaderParser/OCClass.m" ); "../GormObjCHeaderParser/OCHeaderParser.h" = ( "../GormObjCHeaderParser/OCHeaderParser.h", "../GormObjCHeaderParser/OCHeaderParser.h", "../GormObjCHeaderParser/OCHeaderParser.h", "../GormObjCHeaderParser/OCHeaderParser.h", "../GormObjCHeaderParser/OCHeaderParser.h", "../GormObjCHeaderParser/OCHeaderParser.m" ); "../GormObjCHeaderParser/OCIVar.h" = ( "../GormObjCHeaderParser/OCIVar.h", "../GormObjCHeaderParser/OCIVar.h", "../GormObjCHeaderParser/OCIVar.h", "../GormObjCHeaderParser/OCIVar.h", "../GormObjCHeaderParser/OCIVar.h", "../GormObjCHeaderParser/OCIVar.m" ); "../GormObjCHeaderParser/OCIVarDecl.h" = ( "../GormObjCHeaderParser/OCIVarDecl.h", "../GormObjCHeaderParser/OCIVarDecl.h", "../GormObjCHeaderParser/OCIVarDecl.h", "../GormObjCHeaderParser/OCIVarDecl.h", "../GormObjCHeaderParser/OCIVarDecl.h", "../GormObjCHeaderParser/OCIVarDecl.m" ); "../GormObjCHeaderParser/OCMethod.h" = ( "../GormObjCHeaderParser/OCMethod.h", "../GormObjCHeaderParser/OCMethod.h", "../GormObjCHeaderParser/OCMethod.h", "../GormObjCHeaderParser/OCMethod.h", "../GormObjCHeaderParser/OCMethod.h", "../GormObjCHeaderParser/OCMethod.m" ); "../GormObjCHeaderParser/ParserFunctions.h" = ( "../GormObjCHeaderParser/ParserFunctions.h", "../GormObjCHeaderParser/ParserFunctions.h", "../GormObjCHeaderParser/ParserFunctions.h", "../GormObjCHeaderParser/ParserFunctions.h", "../GormObjCHeaderParser/ParserFunctions.h", "../GormObjCHeaderParser/ParserFunctions.m" ); }; super = { OCClass = NSObject; OCHeaderParser = NSObject; OCIVar = NSObject; OCIVarDecl = NSObject; OCMethod = NSObject; }; title = { "NSScanner+OCHeaderParser" = "NSScanner+OCHeaderParser documentation"; OCClass = "OCClass class documentation"; OCHeaderParser = "OCHeaderParser class documentation"; OCIVar = "OCIVar class documentation"; OCIVarDecl = "OCIVarDecl class documentation"; OCMethod = "OCMethod class documentation"; ParserFunctions = "ParserFunctions documentation"; }; unitmethods = { "NSScanner(OCHeaderParser)" = { "-scanUpToAndIncludingCharactersFromSet:intoString:" = "NSScanner+OCHeaderParser"; "-scanUpToAndIncludingString:intoString:" = "NSScanner+OCHeaderParser"; }; OCClass = { "-addIVar:isOutlet:" = OCClass; "-addMethod:isAction:" = OCClass; "-className" = OCClass; "-initWithString:" = OCClass; "-isCategory" = OCClass; "-ivars" = OCClass; "-methods" = OCClass; "-parse" = OCClass; "-setClassName:" = OCClass; "-setIsCategory:" = OCClass; "-setSuperClassName:" = OCClass; "-superClassName" = OCClass; }; OCHeaderParser = { "-classes" = OCHeaderParser; "-initWithContentsOfFile:" = OCHeaderParser; "-parse" = OCHeaderParser; }; OCIVar = { "-initWithString:" = OCIVar; "-isOutlet" = OCIVar; "-name" = OCIVar; "-parse" = OCIVar; "-setIsOutlet:" = OCIVar; "-setName:" = OCIVar; }; OCIVarDecl = { "-initWithString:" = OCIVarDecl; "-ivars" = OCIVarDecl; "-parse" = OCIVarDecl; }; OCMethod = { "-initWithString:" = OCMethod; "-isAction" = OCMethod; "-isClassMethod" = OCMethod; "-name" = OCMethod; "-parse" = OCMethod; "-setIsAction:" = OCMethod; "-setIsClassMethod:" = OCMethod; "-setName:" = OCMethod; }; }; }gorm-1.3.1/Documentation/GormObjCHeaderParser/ClassesTOC.html0000644000175000017500000000152614360755340023075 0ustar heronheron Classes

Classes

OCClass
OCHeaderParser
OCIVar
OCIVarDecl
OCMethod

gorm-1.3.1/Documentation/GormObjCHeaderParser/index.html0000644000175000017500000000072014360755340022234 0ustar heronheron Autogsdoc-generated Documentation for Untitled gorm-1.3.1/Documentation/GormObjCHeaderParser/ParserFunctions.html0000644000175000017500000000224114333120704024240 0ustar heronheron ParserFunctions documentation

ParserFunctions documentation

Authors

Generated by heron

ParserFunctions functions

lookAhead

BOOL lookAhead(NSString* stringToScan, NSString* stringToFind);
Description forthcoming.

lookAheadForToken

BOOL lookAheadForToken(NSString* stringToScan, NSString* stringToFind);
Description forthcoming.


gorm-1.3.1/Documentation/GormObjCHeaderParser/FunctionsTOC.html0000644000175000017500000000114114360755340023441 0ustar heronheron Functions

Functions

lookAhead
lookAheadForToken

gorm-1.3.1/Documentation/GormObjCHeaderParser/OCHeaderParser.gsdoc0000644000175000017500000000302614333120704024037 0ustar heronheron OCHeaderParser class documentation Software documentation for the OCHeaderParser class GormObjCHeaderParser/OCHeaderParser.h Description forthcoming. Description forthcoming. Description forthcoming. classes Description forthcoming. initWithContentsOfFile: file Description forthcoming. parse Description forthcoming. gorm-1.3.1/Documentation/GormObjCHeaderParser/OCHeaderParser.html0000644000175000017500000000576114333120704023714 0ustar heronheron OCHeaderParser class documentation

OCHeaderParser class documentation

Authors

Generated by heron

Software documentation for the OCHeaderParser class

OCHeaderParser : NSObject

Declared in:
GormObjCHeaderParser/OCHeaderParser.h
Description forthcoming.

Instance Variables

Method summary

classes 

- (NSMutableArray*) classes;
Description forthcoming.

initWithContentsOfFile: 

- (id) initWithContentsOfFile: (NSString*)file;
Description forthcoming.

parse 

- (BOOL) parse;
Description forthcoming.



Instance Variables for OCHeaderParser Class

classes

@protected NSMutableArray* classes;
Description forthcoming.

fileData

@protected NSString* fileData;
Description forthcoming.





gorm-1.3.1/Documentation/GormObjCHeaderParser/Untitled.gsdoc0000644000175000017500000000065314360755340023055 0ustar heronheron The Untitled Project

The index below lists the major components of the Untitled documentation.

gorm-1.3.1/Documentation/GormObjCHeaderParser/OrderedSymbolDeclarations.plist0000644000175000017500000000143414360755340026422 0ustar heronheron{ "NSScanner(OCHeaderParser)" = ( "-scanUpToAndIncludingString:intoString:", "-scanUpToAndIncludingCharactersFromSet:intoString:" ); OCClass = ( "-initWithString:", "-methods", "-addMethod:isAction:", "-ivars", "-addIVar:isOutlet:", "-className", "-setClassName:", "-superClassName", "-setSuperClassName:", "-isCategory", "-setIsCategory:", "-parse" ); OCHeaderParser = ( "-initWithContentsOfFile:", "-classes", "-parse" ); OCIVar = ( "-initWithString:", "-name", "-setName:", "-isOutlet", "-setIsOutlet:", "-parse" ); OCIVarDecl = ( "-initWithString:", "-ivars", "-parse" ); OCMethod = ( "-initWithString:", "-name", "-setName:", "-isAction", "-setIsAction:", "-isClassMethod", "-setIsClassMethod:", "-parse" ); }gorm-1.3.1/Documentation/GormObjCHeaderParser/OCIVar.gsdoc0000644000175000017500000000426314333120704022337 0ustar heronheron OCIVar class documentation Software documentation for the OCIVar class GormObjCHeaderParser/OCIVar.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. initWithString: string Description forthcoming. isOutlet Description forthcoming. name Description forthcoming. parse Description forthcoming. setIsOutlet: flag Description forthcoming. setName: aName Description forthcoming. gorm-1.3.1/Documentation/GormObjCHeaderParser/OCMethod.html0000644000175000017500000001220614333120704022557 0ustar heronheron OCMethod class documentation

OCMethod class documentation

Authors

Generated by heron

Software documentation for the OCMethod class

OCMethod : NSObject

Declared in:
GormObjCHeaderParser/OCMethod.h
Description forthcoming.

Instance Variables

Method summary

initWithString: 

- (id) initWithString: (NSString*)string;
Description forthcoming.

isAction 

- (BOOL) isAction;
Description forthcoming.

isClassMethod 

- (BOOL) isClassMethod;
Description forthcoming.

name 

- (NSString*) name;
Description forthcoming.

parse 

- (void) parse;
Parse the method.

setIsAction: 

- (void) setIsAction: (BOOL)flag;
Description forthcoming.

setIsClassMethod: 

- (void) setIsClassMethod: (BOOL)flag;
Description forthcoming.

setName: 

- (void) setName: (NSString*)aName;
Description forthcoming.



Instance Variables for OCMethod Class

isAction

@protected BOOL isAction;
Description forthcoming.

isClassMethod

@protected BOOL isClassMethod;
Description forthcoming.

methodString

@protected NSString* methodString;
Description forthcoming.

name

@protected NSString* name;
Description forthcoming.





gorm-1.3.1/Documentation/GormObjCHeaderParser/ClassesTOC.gsdoc0000644000175000017500000000056014360755340023225 0ustar heronheron Classes gorm-1.3.1/Documentation/GormObjCHeaderParser/OCClass.html0000644000175000017500000001676514333120704022422 0ustar heronheron OCClass class documentation

OCClass class documentation

Authors

Generated by heron

Software documentation for the OCClass class

OCClass : NSObject

Declared in:
GormObjCHeaderParser/OCClass.h
Description forthcoming.

Instance Variables

Method summary

addIVar: isOutlet: 

- (void) addIVar: (NSString*)name isOutlet: (BOOL)flag;
Description forthcoming.

addMethod: isAction: 

- (void) addMethod: (NSString*)name isAction: (BOOL)flag;
Description forthcoming.

className 

- (NSString*) className;
Description forthcoming.

initWithString: 

- (id) initWithString: (NSString*)string;
Description forthcoming.

isCategory 

- (BOOL) isCategory;
Description forthcoming.

ivars 

- (NSArray*) ivars;
Description forthcoming.

methods 

- (NSArray*) methods;
Description forthcoming.

parse 

- (void) parse;
Description forthcoming.

setClassName: 

- (void) setClassName: (NSString*)name;
Description forthcoming.

setIsCategory: 

- (void) setIsCategory: (BOOL)flag;
Description forthcoming.

setSuperClassName: 

- (void) setSuperClassName: (NSString*)name;
Description forthcoming.

superClassName 

- (NSString*) superClassName;
Description forthcoming.



Instance Variables for OCClass Class

className

@protected NSString* className;
Description forthcoming.

classString

@protected NSString* classString;
Description forthcoming.

isCategory

@protected BOOL isCategory;
Description forthcoming.

ivars

@protected NSMutableArray* ivars;
Description forthcoming.

methods

@protected NSMutableArray* methods;
Description forthcoming.

protocols

@protected NSMutableArray* protocols;
Description forthcoming.

superClassName

@protected NSString* superClassName;
Description forthcoming.





gorm-1.3.1/Documentation/GormObjCHeaderParser/MainIndex.html0000644000175000017500000000063614360755340023007 0ustar heronheron Index

Classes
Functions

(intro)  (unframe)
gorm-1.3.1/Documentation/GormObjCHeaderParser/ParserFunctions.gsdoc0000644000175000017500000000161014333120704024372 0ustar heronheron ParserFunctions documentation ParserFunctions functions

stringToScan stringToFind Description forthcoming. stringToScan stringToFind Description forthcoming.
gorm-1.3.1/Documentation/GormObjCHeaderParser/OCIVar.html0000644000175000017500000001007314333120704022200 0ustar heronheron OCIVar class documentation

OCIVar class documentation

Authors

Generated by heron

Software documentation for the OCIVar class

OCIVar : NSObject

Declared in:
GormObjCHeaderParser/OCIVar.h
Description forthcoming.

Instance Variables

Method summary

initWithString: 

- (id) initWithString: (NSString*)string;
Description forthcoming.

isOutlet 

- (BOOL) isOutlet;
Description forthcoming.

name 

- (NSString*) name;
Description forthcoming.

parse 

- (void) parse;
Description forthcoming.

setIsOutlet: 

- (void) setIsOutlet: (BOOL)flag;
Description forthcoming.

setName: 

- (void) setName: (NSString*)aName;
Description forthcoming.



Instance Variables for OCIVar Class

isOutlet

@protected BOOL isOutlet;
Description forthcoming.

ivarString

@protected NSString* ivarString;
Description forthcoming.

name

@protected NSString* name;
Description forthcoming.





gorm-1.3.1/Documentation/Examples/0000755000175000017500000000000014327003122016051 5ustar heronherongorm-1.3.1/Documentation/Examples/SimpleApp/0000755000175000017500000000000014327003122017743 5ustar heronherongorm-1.3.1/Documentation/Examples/SimpleApp/MyController.m0000644000175000017500000000030114327003122022544 0ustar heronheron/* All rights reserved */ #include #include "MyController.h" @implementation MyController - (void) buttonPressed: (id)sender { [value setStringValue: @"Hello"]; } @end gorm-1.3.1/Documentation/Examples/SimpleApp/MainMenu.gorm/0000755000175000017500000000000014327003122022417 5ustar heronherongorm-1.3.1/Documentation/Examples/SimpleApp/MainMenu.gorm/objects.gorm0000644000175000017500000000522414327003122024741 0ustar heronheronGNUstep archive00002af8:0000001e:00000050:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&%NSOwner0& % NSApplication0&%GSCustomClassMap0&0& % MyController01 GSNibItem  &0 & % NSVisible0 1NSMutableArray1NSArray&0 1 NSWindow1 NSResponder% ? A D C&% C\ D0 1 NSView% ? A D C  D C&0 &01 NSButton1 NSControl% C C B` A  B` A&0&%01 NSButtonCell1 NSActionCell1NSCell0&%Button01NSFont%&&&&&&&&%0&0&&&&01 NSTextField% C CW B` A  B` A&0&%01NSTextFieldCell0&%Text&&&&&&&&0%01NSColor0&%NSNamedColorSpace0&%System0&%textBackgroundColor00& % textColor00 &%System0!&%windowBackgroundColor0"&%Window0#& % My Window# @@ B F@ F@%0$1NSImage0%&%NSApplicationIcon0&& % My Window 0'& % TextField0(&%Button0)&%MenuItem0*1 NSMenuItem0+&%Hide0,&%h&&%0-0.1NSMutableString&% common_2DCheckMark0/00& %  common_2DDash%01& %  MenuItem10203&%Quit04&%q&&%-/%05&%NSMenu061NSMenu07& % Main Menu08&*209&  0:1NSNibConnector&0;&%NSOwner0<5;0=0>&%MenuItem50?1NSNibControlConnector>0@&%NSFirst0A&%hide:0B150C1@0D& % terminate:0E;0F1NSNibOutletConnector;0G&% delegate0H0I&%Button0J0K& % TextField0LK0M&%value0NI0O&% buttonPressed:0P1 GSMutableSet1 NSMutableSet1NSSet& 6gorm-1.3.1/Documentation/Examples/SimpleApp/MainMenu.gorm/data.info0000644000175000017500000000027014327003122024204 0ustar heronheronGNUstep archive00002af8:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Documentation/Examples/SimpleApp/MainMenu.gorm/data.classes0000644000175000017500000000666714327003122024726 0ustar heronheron{ FirstResponder = { Actions = ( "activateContextHelpMode:", "alignCenter:", "alignJustified:", "alignLeft:", "alignRight:", "arrangeInFront:", "cancel:", "capitalizeWord:", "changeColor:", "checkSpelling:", "close:", "complete:", "copy:", "copyFont:", "copyRuler:", "cut:", "delete:", "deleteBackward:", "deleteForward:", "deleteToBeginningOfLine:", "deleteToBeginningOfParagraph:", "deleteToEndOfLine:", "deleteToEndOfParagraph:", "deleteToMark:", "deleteWordBackward:", "deleteWordForward:", "deminiaturize:", "deselectAll:", "fax:", "hide:", "hideOtherApplications:", "indent:", "loosenKerning:", "lowerBaseline:", "lowercaseWord:", "makeKeyAndOrderFront:", "miniaturize:", "miniaturizeAll:", "moveBackward:", "moveBackwardAndModifySelection:", "moveDown:", "moveDownAndModifySelection:", "moveForward:", "moveForwardAndModifySelection:", "moveLeft:", "moveRight:", "moveToBeginningOfDocument:", "moveToBeginningOfLine:", "moveToBeginningOfParagraph:", "moveToEndOfDocument:", "moveToEndOfLine:", "moveToEndOfParagraph:", "moveUp:", "moveUpAndModifySelection:", "moveWordBackward:", "moveWordBackwardAndModifySelection:", "moveWordForward:", "moveWordForwardAndModifySelection:", "newDocument:", "ok:", "open:", "openDocument:", "orderBack:", "orderFront:", "orderFrontColorPanel:", "orderFrontDataLinkPanel:", "orderFrontHelpPanel:", "orderFrontStandardAboutPanel:", "orderFrontStandardInfoPanel:", "orderOut:", "pageDown:", "pageUp:", "paste:", "pasteAsPlainText:", "pasteAsRichText:", "pasteFont:", "pasteRuler:", "performClose:", "performMiniaturize:", "performZoom:", "print:", "raiseBaseline:", "redo:", "revertDocumentToSaved:", "runPageLayout:", "runToolbarCustomizationPalette:", "saveAllDocuments:", "saveDocument:", "saveDocumentAs:", "saveDocumentTo:", "scrollLineDown:", "scrollLineUp:", "scrollPageDown:", "scrollPageUp:", "scrollViaScroller:", "selectAll:", "selectLine:", "selectNextKeyView:", "selectParagraph:", "selectPreviousKeyView:", "selectText:", "selectToMark:", "selectWord:", "showContextHelp:", "showGuessPanel:", "showHelp:", "showWindow:", "stop:", "subscript:", "superscript:", "swapWithMark:", "takeDoubleValueFrom:", "takeFloatValueFrom:", "takeIntValueFrom:", "takeObjectValueFrom:", "takeStringValueFrom:", "terminate:", "tightenKerning:", "toggle:", "toggleContinuousSpellChecking:", "toggleRuler:", "toggleToolbarShown:", "toggleTraditionalCharacterShape:", "transpose:", "transposeWords:", "turnOffKerning:", "turnOffLigatures:", "underline:", "undo:", "unhide:", "unhideAllApplications:", "unscript:", "uppercaseWord:", "useAllLigatures:", "useStandardKerning:", "useStandardLigatures:", "yank:", "zoom:", "buttonPressed:" ); Super = NSObject; }; MyController = { Actions = ( "buttonPressed:" ); Outlets = ( value ); Super = NSObject; }; }gorm-1.3.1/Documentation/Examples/SimpleApp/MyController.h0000644000175000017500000000022314327003122022542 0ustar heronheron/* All Rights reserved */ #include @interface MyController : NSObject { id value; } - (void) buttonPressed: (id)sender; @end gorm-1.3.1/Documentation/Examples/SimpleApp/GNUmakefile0000644000175000017500000000136114327003122022016 0ustar heronheron# # GNUmakefile # # # Put all of your customisations in GNUmakefile.preamble and # GNUmakefile.postamble # include $(GNUSTEP_MAKEFILES)/common.make # # Main application # PACKAGE_NAME=SimpleApp APP_NAME=SimpleApp SimpleApp_MAIN_MODEL_FILE=MainMenu.gorm # # Additional libraries # ADDITIONAL_GUI_LIBS += # # Resource files # SimpleApp_RESOURCE_FILES= \ MainMenu.gorm # # Header files # SimpleApp_HEADERS= \ MyController.h # # Class files # SimpleApp_OBJC_FILES= \ main.m \ MyController.m # # C files # SimpleApp_C_FILES= # # Subprojects # SUBPROJECTS = -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/aggregate.make include $(GNUSTEP_MAKEFILES)/application.make -include GNUmakefile.postamble gorm-1.3.1/Documentation/Examples/SimpleApp/main.m0000644000175000017500000000025414327003122021046 0ustar heronheron#include #define APP_NAME @"GNUstep" /* * Initialise and go! */ int main(int argc, const char *argv[]) { return NSApplicationMain (argc, argv); } gorm-1.3.1/Documentation/Examples/Controller/0000755000175000017500000000000014327003122020174 5ustar heronherongorm-1.3.1/Documentation/Examples/Controller/MyController.m0000644000175000017500000000053414327003122023005 0ustar heronheron/* All rights reserved */ #include #include "MyController.h" @implementation MyController - (void) buttonPressed: (id)sender { [value setStringValue: @"Hello"]; } - (void) openWindow: (id) sender { winController = [[WinController alloc] init]; } - (void) dealloc { [super dealloc]; RELEASE(winController); } @end gorm-1.3.1/Documentation/Examples/Controller/MainMenu.gorm/0000755000175000017500000000000014327003122022650 5ustar heronherongorm-1.3.1/Documentation/Examples/Controller/MainMenu.gorm/objects.gorm0000644000175000017500000000536114327003122025174 0ustar heronheronGNUstep archive00002af8:0000001e:00000054:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&%NSOwner0& % NSApplication0&%GSCustomClassMap0&0& % MyController01 GSNibItem  &0 & % NSVisible0 1NSMutableArray1NSArray&0 1 NSWindow1 NSResponder% ? A D C&% C\ D0 1 NSView% ? A D C  D C&0 &01 NSButton1 NSControl% C C B` A  B` A&0&%01 NSButtonCell1 NSActionCell1NSCell0&%Button01NSFont%&&&&&&&&%0&0&&&&01 NSTextField% C CW B` A  B` A&0&%01NSTextFieldCell0&%Text&&&&&&&&0%01NSColor0&%NSNamedColorSpace0&%System0&%textBackgroundColor00& % textColor00 &%System0!&%windowBackgroundColor0"&%Window0#& % My Window# @@ B F@ F@%0$1NSImage0%&%NSApplicationIcon0&& % My Window 0'& % TextField0(&%Button0)&%MenuItem0*1 NSMenuItem0+&%Hide0,&%h&&%0-0.1NSMutableString&% common_2DCheckMark0/00& %  common_2DDash%01& %  MenuItem10203&%Quit04&%q&&%-/%05&%NSMenu061NSMenu07& % Main Menu08&090:&%Open0;&&&%-/%*20<& %  MenuItem290=&0>1NSNibConnector&0?&%NSOwner0@5?0A)50B1NSNibControlConnector)0C&%NSFirst0D&%hide:0E150F1C0G& % terminate:0H?0I1NSNibOutletConnector?0J&% delegate0K(0L'0M'0N&%value0O(0P&% buttonPressed:0Q<50R #include "WinController.h" @interface MyController : NSObject { id value; WinController *winController; } - (void) buttonPressed: (id)sender; @end gorm-1.3.1/Documentation/Examples/Controller/Controller.gorm/0000755000175000017500000000000014327003122023262 5ustar heronherongorm-1.3.1/Documentation/Examples/Controller/Controller.gorm/objects.gorm0000644000175000017500000000273714327003122025612 0ustar heronheronGNUstep archive00002af8:00000018:00000025:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0& % WinController0&%GSCustomClassMap0&0&%Button01NSButton1 NSControl1NSView1 NSResponder% C B C5 B  C5 B&0 1 NSMutableArray1 NSArray&%0 1 NSButtonCell1 NSActionCell1NSCell0 &%Close0 1NSFont%&&&&&&&&%0 &0&&&&0& % GormNSWindow01NSWindow% ? A C C&% C D>@0% ? A C C  C C&0 &01NSColor0&%NSNamedColorSpace0&%System0&%windowBackgroundColor0&%Window0&%Window0&%Window @@ B F@ F@%01NSImage0&%NSApplicationIcon0 &01NSNibConnector0&%NSOwner01NSNibOutletConnector0 &%window0!0"&%Button0#1NSNibControlConnector"0$& %  closeWindow:0%1 GSMutableSet1 NSMutableSet1NSSet&gorm-1.3.1/Documentation/Examples/Controller/Controller.gorm/data.info0000644000175000017500000000027014327003122025047 0ustar heronheronGNUstep archive00002af8:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0& % Typed Streamgorm-1.3.1/Documentation/Examples/Controller/Controller.gorm/data.classes0000644000175000017500000000666514327003122025567 0ustar heronheron{ FirstResponder = { Actions = ( "activateContextHelpMode:", "alignCenter:", "alignJustified:", "alignLeft:", "alignRight:", "arrangeInFront:", "cancel:", "capitalizeWord:", "changeColor:", "checkSpelling:", "close:", "complete:", "copy:", "copyFont:", "copyRuler:", "cut:", "delete:", "deleteBackward:", "deleteForward:", "deleteToBeginningOfLine:", "deleteToBeginningOfParagraph:", "deleteToEndOfLine:", "deleteToEndOfParagraph:", "deleteToMark:", "deleteWordBackward:", "deleteWordForward:", "deminiaturize:", "deselectAll:", "fax:", "hide:", "hideOtherApplications:", "indent:", "loosenKerning:", "lowerBaseline:", "lowercaseWord:", "makeKeyAndOrderFront:", "miniaturize:", "miniaturizeAll:", "moveBackward:", "moveBackwardAndModifySelection:", "moveDown:", "moveDownAndModifySelection:", "moveForward:", "moveForwardAndModifySelection:", "moveLeft:", "moveRight:", "moveToBeginningOfDocument:", "moveToBeginningOfLine:", "moveToBeginningOfParagraph:", "moveToEndOfDocument:", "moveToEndOfLine:", "moveToEndOfParagraph:", "moveUp:", "moveUpAndModifySelection:", "moveWordBackward:", "moveWordBackwardAndModifySelection:", "moveWordForward:", "moveWordForwardAndModifySelection:", "newDocument:", "ok:", "open:", "openDocument:", "orderBack:", "orderFront:", "orderFrontColorPanel:", "orderFrontDataLinkPanel:", "orderFrontHelpPanel:", "orderFrontStandardAboutPanel:", "orderFrontStandardInfoPanel:", "orderOut:", "pageDown:", "pageUp:", "paste:", "pasteAsPlainText:", "pasteAsRichText:", "pasteFont:", "pasteRuler:", "performClose:", "performMiniaturize:", "performZoom:", "print:", "raiseBaseline:", "redo:", "revertDocumentToSaved:", "runPageLayout:", "runToolbarCustomizationPalette:", "saveAllDocuments:", "saveDocument:", "saveDocumentAs:", "saveDocumentTo:", "scrollLineDown:", "scrollLineUp:", "scrollPageDown:", "scrollPageUp:", "scrollViaScroller:", "selectAll:", "selectLine:", "selectNextKeyView:", "selectParagraph:", "selectPreviousKeyView:", "selectText:", "selectToMark:", "selectWord:", "showContextHelp:", "showGuessPanel:", "showHelp:", "showWindow:", "stop:", "subscript:", "superscript:", "swapWithMark:", "takeDoubleValueFrom:", "takeFloatValueFrom:", "takeIntValueFrom:", "takeObjectValueFrom:", "takeStringValueFrom:", "terminate:", "tightenKerning:", "toggle:", "toggleContinuousSpellChecking:", "toggleRuler:", "toggleToolbarShown:", "toggleTraditionalCharacterShape:", "transpose:", "transposeWords:", "turnOffKerning:", "turnOffLigatures:", "underline:", "undo:", "unhide:", "unhideAllApplications:", "unscript:", "uppercaseWord:", "useAllLigatures:", "useStandardKerning:", "useStandardLigatures:", "yank:", "zoom:", "closeWindow:" ); Super = NSObject; }; WinController = { Actions = ( "closeWindow:" ); Outlets = ( window ); Super = NSObject; }; }gorm-1.3.1/Documentation/Examples/Controller/WinController.m0000644000175000017500000000074614327003122023162 0ustar heronheron/* All rights reserved */ #include #include "WinController.h" @implementation WinController - (id) init { if((self = [super init]) != nil) { if([NSBundle loadNibNamed: @"Controller" owner: self] == NO) { NSLog(@"Problem loading interface"); return nil; } [window makeKeyAndOrderFront: self]; } return self; } - (void) closeWindow: (id) sender { [window close]; } - (void) dealloc { [super dealloc]; RELEASE(window); } @end gorm-1.3.1/Documentation/Examples/Controller/GNUmakefile0000644000175000017500000000145414327003122022252 0ustar heronheron# # GNUmakefile # # # Put all of your customisations in GNUmakefile.preamble and # GNUmakefile.postamble # include $(GNUSTEP_MAKEFILES)/common.make # # Main application # PACKAGE_NAME=Controller APP_NAME=Controller Controller_MAIN_MODEL_FILE=MainMenu.gorm # # Additional libraries # ADDITIONAL_GUI_LIBS += # # Resource files # Controller_RESOURCE_FILES= \ MainMenu.gorm \ Controller.gorm # # Header files # Controller_HEADERS= \ MyController.h \ WinController.h # # Class files # Controller_OBJC_FILES= \ main.m \ MyController.m \ WinController.m # # C files # Controller_C_FILES= # # Subprojects # SUBPROJECTS = -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/aggregate.make include $(GNUSTEP_MAKEFILES)/application.make -include GNUmakefile.postamble gorm-1.3.1/Documentation/Examples/Controller/WinController.h0000644000175000017500000000016114327003122023144 0ustar heronheron/* All Rights reserved */ #include @interface WinController : NSObject { id window; } @end gorm-1.3.1/Documentation/Examples/Controller/main.m0000644000175000017500000000025414327003122021277 0ustar heronheron#include #define APP_NAME @"GNUstep" /* * Initialise and go! */ int main(int argc, const char *argv[]) { return NSApplicationMain (argc, argv); } gorm-1.3.1/Documentation/InterfaceBuilder/0000755000175000017500000000000014360755340017517 5ustar heronherongorm-1.3.1/Documentation/InterfaceBuilder/IBProjectFiles.gsdoc0000644000175000017500000000323114333120703023330 0ustar heronheron IBProjectFiles documentation Software documentation for the IBProjectFiles protocol InterfaceBuilder/IBProjectFiles.h NSObject Description forthcoming. fileName The file name. fileType The file type for this file. isLocalized Returns YES, if the file is localized, NO if it's simply in Resources. language The language path The path for the file. project The project to which this file belongs. gorm-1.3.1/Documentation/InterfaceBuilder/IBCellAdditions.gsdoc0000644000175000017500000000132414333120703023456 0ustar heronheron IBCellAdditions documentation Software documentation for the NSCell(IBCellAdditions) category InterfaceBuilder/IBCellAdditions.h IBCellProtocol Description forthcoming. gorm-1.3.1/Documentation/InterfaceBuilder/TypesTOC.gsdoc0000644000175000017500000000055314360755340022215 0ustar heronheron Types gorm-1.3.1/Documentation/InterfaceBuilder/Untitled.html0000644000175000017500000000613514360755340022202 0ustar heronheron The Untitled Project

The Untitled Project

The index below lists the major components of the Untitled documentation.

Title Index
gorm-1.3.1/Documentation/InterfaceBuilder/IBViewProtocol.gsdoc0000644000175000017500000000433414333120703023400 0ustar heronheron IBViewProtocol documentation Software documentation for the IBViewProtocol protocol InterfaceBuilder/IBViewProtocol.h Description forthcoming. acceptsColor: color atPoint: point Returns YES, if color can be set at the given point in the view. allowsAltDragging Returns YES if receiver can be alt-dragged. depositColor: color atPoint: point Sets color at point in the receiver. maximumSizeFromKnobPosition: knobPosition The maximum size for a knob surrounding the receiver. minimumSizeFromKnobPosition: position The minimum size for a knob surrounding the receiver. placeView: newFrame Places and resizes the receiver using newFrame. gorm-1.3.1/Documentation/InterfaceBuilder/VariablesTOC.gsdoc0000644000175000017500000000056714360755340023026 0ustar heronheron Variables gorm-1.3.1/Documentation/InterfaceBuilder/ProtocolsTOC.gsdoc0000644000175000017500000000056714360755340023102 0ustar heronheron Protocols gorm-1.3.1/Documentation/InterfaceBuilder/IBCellProtocol.gsdoc0000644000175000017500000000271714333120703023350 0ustar heronheron IBCellProtocol documentation Software documentation for the IBCellProtocol protocol InterfaceBuilder/IBCellProtocol.h Description forthcoming. cellWillAltDragWithSize: size Called when the cell is about to be alt-dragged. maximumSizeForCellSize: size knobPosition: position Maximum size for the cell. minimumSizeForCellSize: size knobPosition: position Minimum size for the cell. gorm-1.3.1/Documentation/InterfaceBuilder/IBObjectProtocol.gsdoc0000644000175000017500000000620314333120703023671 0ustar heronheron IBObjectProtocol documentation Software documentation for the IBObjectProtocol protocol InterfaceBuilder/IBObjectProtocol.h Description forthcoming. canSubstituteForClass: origClass Returns YES, if receiver can be displayed in the custom custom class inspector as a potential class which can be switched to by the receiver. awakeFromDocument: doc Called immediate after loading the document into the interface editor application. classInspectorClassName Name of class inspector. connectInspectorClassName Name of connection inspector class. editorClassName Name of the editor for the receiver. helpInspectorClassName Name of help inspector. ibIncompatibleProperties List of properties not compatible with interface app. imageForViewer Returns the NSImage to be used to represent an object of the receiver's class in the editor. inspectorClassName Name of attributes inspector class. nibLabel: objectName Label for the receiver in the model. objectNameForInspectorTitle Title to display in the inspector. sizeInspectorClassName Name of size inspector. gorm-1.3.1/Documentation/InterfaceBuilder/IBInspectorMode.gsdoc0000644000175000017500000000756014333120703023523 0ustar heronheron IBInspectorMode class documentation Software documentation for the IBInspectorMode class InterfaceBuilder/IBInspectorMode.h IBInspectorMode is an internal class in the InterfaceBuilder framework. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. identifier Description forthcoming. initWithIdentifier: ident forObject: obj localizedLabel: lab inspectorClassName: cn ordering: ord Description forthcoming. inspectorClassName Description forthcoming. localizedLabel Description forthcoming. object Description forthcoming. ordering Description forthcoming. setIdentifier: ident Description forthcoming. setInspectorClassName: cn Description forthcoming. setLocalizedLabel: lab Description forthcoming. setObject: obj Description forthcoming. setOrdering: ord Description forthcoming. gorm-1.3.1/Documentation/InterfaceBuilder/IBProjectFiles.html0000644000175000017500000000672514333120703023210 0ustar heronheron IBProjectFiles documentation

IBProjectFiles documentation

Authors

Generated by heron

Software documentation for the IBProjectFiles protocol

IBProjectFiles

Declared in:
InterfaceBuilder/IBProjectFiles.h
Conforms to:
NSObject
Description forthcoming.
Method summary

fileName 

- (NSString*) fileName;
The file name.

fileType 

- (NSString*) fileType;
The file type for this file.

isLocalized 

- (BOOL) isLocalized;
Returns YES, if the file is localized, NO if it's simply in Resources.

language 

- (NSString*) language;
The language

path 

- (NSString*) path;
The path for the file.

project 

- (id<IBProjects>) project;
The project to which this file belongs.


gorm-1.3.1/Documentation/InterfaceBuilder/VariablesTOC.html0000644000175000017500000000100714360755340022661 0ustar heronheron Variables

Variables

enum IBResourceLocation

gorm-1.3.1/Documentation/InterfaceBuilder/IBDefines.html0000644000175000017500000000146414333120703022167 0ustar heronheron IBDefines documentation

IBDefines documentation

Authors

Generated by heron

IBDefines types

IBKnobPosition

typedef enum ... IBKnobPosition;
Description forthcoming.


gorm-1.3.1/Documentation/InterfaceBuilder/IBInspectorManager.html0000644000175000017500000001060314333120703024046 0ustar heronheron IBInspectorManager class documentation

IBInspectorManager class documentation

Authors

Generated by heron

Software documentation for the IBInspectorManager class

IBInspectorManager : NSObject

Declared in:
InterfaceBuilder/IBInspectorManager.h
Description forthcoming.

Instance Variables

Method summary

sharedInspectorManager 

+ (IBInspectorManager*) sharedInspectorManager;
Create a shared instance of the class for the applicaiton.
Create a shared instance of the class for the application. If a subclass of IBInspectorManager uses this message it becomes the shraredInspectorManager.

addInspectorModeWithIdentifier: forObject: localizedLabel: inspectorClassName: ordering: 

- (void) addInspectorModeWithIdentifier: (NSString*)ident forObject: (id)obj localizedLabel: (NSString*)label inspectorClassName: (NSString*)className ordering: (float)ord;
Add an inspector for a given mode. This allows the addition of inspectors for different aspects of the same object.

indexOfModeWithIdentifier: 

- (unsigned int) indexOfModeWithIdentifier: (NSString*)ident;
Position in the inspector list that the "mode inspector" appears.



Instance Variables for IBInspectorManager Class

currentMode

@protected id currentMode;
Description forthcoming.

modes

@protected NSMutableArray* modes;
Description forthcoming.

selectedObject

@protected id selectedObject;
Description forthcoming.





gorm-1.3.1/Documentation/InterfaceBuilder/IBDefines.gsdoc0000644000175000017500000000103414333120703022313 0ustar heronheron IBDefines documentation IBDefines types

Description forthcoming.
gorm-1.3.1/Documentation/InterfaceBuilder/IBPlugin.html0000644000175000017500000001232614333120703022047 0ustar heronheron IBPlugin class documentation

IBPlugin class documentation

Authors

Generated by heron

Software documentation for the IBPlugin class

IBPlugin : NSObject

Declared in:
InterfaceBuilder/IBPlugin.h
Description forthcoming.
Method summary

sharedInstance 

+ (id) sharedInstance;
Returns the shared instance of the plugin.

didLoad 

- (void) didLoad;
Notifies the receiver that the plugin will be loaded.

document: didAddDraggedObjects: fromDraggedLibraryView: 

- (void) document: (id<IBDocuments>)document didAddDraggedObjects: (NSArray*)roots fromDraggedLibraryView: (NSView*)view;
Notifies the receiver that objects were added to the document.

label 

- (NSString*) label;
Returns the name of the plugin to be displayed.

libraryNibNames 

- (NSArray*) libraryNibNames;
Return the array of custom nib filenames. You are required to override this method when creating a plugin.

pasteboardObjectsForDraggedLibraryView: 

- (NSArray*) pasteboardObjectsForDraggedLibraryView: (NSView*)view;
Notifies the receiver that one of it's components will be added to the document.

preferencesView 

- (NSView*) preferencesView;
The preferences panel/view that should be added to the preferences drop down and preferences window.

requiredFrameworks 

- (NSArray*) requiredFrameworks;
Returns the list of frameworks needed to support the plugin.

willUnload 

- (void) willUnload;
Notifies the receiver that the plugin will be unloaded.


gorm-1.3.1/Documentation/InterfaceBuilder/IBResourceManager.html0000644000175000017500000003020514333120703023667 0ustar heronheron IBResourceManager class documentation

IBResourceManager class documentation

Authors

Generated by heron

Software documentation for the IBResourceManager class

IBResourceManager : NSObject

Declared in:
InterfaceBuilder/IBResourceManager.h
Description forthcoming.

Instance Variables

Method summary

registerResourceManagerClass: 

+ (void) registerResourceManagerClass: (Class)managerClass;
Register the given class as a resource mananger.

registerResourceManagerClass: forFrameworks: 

+ (void) registerResourceManagerClass: (Class)managerClass forFrameworks: (NSArray*)frameworks;
Register the given class as a resource manager for the frameworks in the array.

registeredResourceManagerClassesForFramework: 

+ (NSArray*) registeredResourceManagerClassesForFramework: (NSString*)framework;
Return an array of classes for the given framework.

acceptsResourcesFromPasteboard: 

- (BOOL) acceptsResourcesFromPasteboard: (NSPasteboard*)pboard;
Returns YES, if the pasteboard contains a type the resource manager can accept.

addResources: 

- (void) addResources: (NSArray*)resourceList;
Add a resource.

addResourcesFromPasteboard: 

- (void) addResourcesFromPasteboard: (NSPasteboard*)pboard;
Add resoures from the pasteboard. Invokes the acceptsResourcesFromPasteboard: method to determine if the resources will be added.

application: didModifyFileAtPath: 

- (void) application: (NSString*)appName didModifyFileAtPath: (NSString*)path;
Called by an external application when a file owned by the GUI builder is modified.

document 

- (id<IBDocuments>) document;
Returns the document with which this resource manager is associated.

initWithDocument: 

- (id) initWithDocument: (id<IBDocuments>)doc;
Instantiate the resource manager with the given document object.

isReadOnly 

- (BOOL) isReadOnly;
Returns YES, if this resource manager is non-modifiable.

project: didAddFile: 

- (void) project: (id<IBProjects>)proj didAddFile: (id<IBProjectFiles>)file;
Called by an external application when the a file is added.

project: didChangeLocalizationOfFile: 

- (void) project: (id<IBProjects>)proj didChangeLocalizationOfFile: (id<IBProjectFiles>)file;
Called by an external application when the a file changes localization.

project: didRemoveFile: 

- (void) project: (id<IBProjects>)proj didRemoveFile: (id<IBProjectFiles>)file;
Called by an external application when a file is removed.

resourceFileTypes 

- (NSArray*) resourceFileTypes;
Returns a list of resource file types this manager can accept.

resourcePasteboardTypes 

- (NSArray*) resourcePasteboardTypes;
Returns a list of pasteboard types this manager can accept.

resourcesForObjects: 

- (NSArray*) resourcesForObjects: (NSArray*)objs;
Returns the associated resources for the objects.

writeToDocumentPath: 

- (void) writeToDocumentPath: (NSString*)path;
Writes a resource to the document path.



Instance Variables for IBResourceManager Class

document

@protected id document;
Description forthcoming.




IBResourceManager variables

enum IBResourceLocation

enum IBResourceLocation enum IBResourceLocation;
Enumerated type to allow specification of where the resource lives.
kNibResource
kProjectResource
kPaletteResource
kSystemResource
kUnknownResource


gorm-1.3.1/Documentation/InterfaceBuilder/IBCellProtocol.html0000644000175000017500000000536114333120703023213 0ustar heronheron IBCellProtocol documentation

IBCellProtocol documentation

Authors

Generated by heron

Software documentation for the IBCellProtocol protocol

IBCellProtocol

Declared in:
InterfaceBuilder/IBCellProtocol.h
Description forthcoming.
Method summary

cellWillAltDragWithSize: 

- (void) cellWillAltDragWithSize: (NSSize)size;
Called when the cell is about to be alt-dragged.

maximumSizeForCellSize: knobPosition: 

- (NSSize) maximumSizeForCellSize: (NSSize)size knobPosition: (IBKnobPosition)position;
Maximum size for the cell.

minimumSizeForCellSize: knobPosition: 

- (NSSize) minimumSizeForCellSize: (NSSize)size knobPosition: (IBKnobPosition)position;
Minimum size for the cell.


gorm-1.3.1/Documentation/InterfaceBuilder/ProtocolsTOC.html0000644000175000017500000000350714360755340022744 0ustar heronheron Protocols

Protocols

<IB>
<IBCellProtocol>
<IBConnectors>
<IBDocuments>
<IBEditors>
<IBObjectProtocol>
<IBProjectFiles>
<IBProjects>
<IBSelectionOwners>
<IBViewProtocol>
<IBViewResourceDraggingDelegates>
(IBObjectAdditions)

gorm-1.3.1/Documentation/InterfaceBuilder/IBPalette.gsdoc0000644000175000017500000000671414333120703022346 0ustar heronheron IBPalette class documentation Software documentation for the IBPalette class InterfaceBuilder/IBPalette.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. objectForView: aView Description forthcoming. typeForView: aView Description forthcoming. associateObject: anObject type: aType with: aView Associate a particular object and DnD type with a view - so that Gorm knows to initiate a DnD session with the specified object and type rather than an archived copy of the view itsself and the default type (IBViewPboardType). dealloc Releases all the instance variables apart from the window (which is presumed to release itsself when closed) and removes self as an observer of notifications before destroying self. finishInstantiate Method called by GUI builder application when a new palette has been created and its model (nib/gorm) has been loaded. Any palette initialization should be done here. originalWindow Return the window containing the views that may be dragged from the palette. paletteDocument Returns an object representing the palette which conforms to the IBDocuments protocol. paletteIcon Return the icon representing the palette. gorm-1.3.1/Documentation/InterfaceBuilder/Untitled.igsdoc0000644000175000017500000010333114360755340022502 0ustar heronheron{ categories = { NSApplication = { GormSpecific = IBApplicationAdditions; IBConnections = IBConnectors; }; NSCell = { IBCellAdditions = IBCellAdditions; }; NSNibConnector = { IBConnectorsProtocol = IBConnectors; }; NSObject = { IBNibInstantiation = IBConnectors; IBObjectAdditions = IBObjectAdditions; }; NSView = { IBViewAdditions = IBViewAdditions; IBViewResourceDraggingDelegates = IBViewResourceDragging; }; }; category = { "NSApplication(GormSpecific)" = IBApplicationAdditions; "NSApplication(IBConnections)" = IBConnectors; "NSCell(IBCellAdditions)" = IBCellAdditions; "NSNibConnector(IBConnectorsProtocol)" = IBConnectors; "NSObject(IBNibInstantiation)" = IBConnectors; "NSObject(IBObjectAdditions)" = IBObjectAdditions; "NSView(IBViewAdditions)" = IBViewAdditions; "NSView(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; class = { IBInspector = IBInspector; IBInspectorManager = IBInspectorManager; IBInspectorMode = IBInspectorMode; IBPalette = IBPalette; IBPlugin = IBPlugin; IBResourceManager = IBResourceManager; }; classvars = { IBInspector = { object = IBInspector; okButton = IBInspector; revertButton = IBInspector; window = IBInspector; }; IBInspectorManager = { currentMode = IBInspectorManager; modes = IBInspectorManager; selectedObject = IBInspectorManager; }; IBInspectorMode = { identifier = IBInspectorMode; inspectorClassName = IBInspectorMode; localizedLabel = IBInspectorMode; object = IBInspectorMode; ordering = IBInspectorMode; }; IBPalette = { icon = IBPalette; originalWindow = IBPalette; paletteDocument = IBPalette; }; IBResourceManager = { document = IBResourceManager; }; }; ivariable = { currentMode = { IBInspectorManager = IBInspectorManager; }; document = { IBResourceManager = IBResourceManager; }; icon = { IBPalette = IBPalette; }; identifier = { IBInspectorMode = IBInspectorMode; }; inspectorClassName = { IBInspectorMode = IBInspectorMode; }; localizedLabel = { IBInspectorMode = IBInspectorMode; }; modes = { IBInspectorManager = IBInspectorManager; }; object = { IBInspector = IBInspector; IBInspectorMode = IBInspectorMode; }; okButton = { IBInspector = IBInspector; }; ordering = { IBInspectorMode = IBInspectorMode; }; originalWindow = { IBPalette = IBPalette; }; paletteDocument = { IBPalette = IBPalette; }; revertButton = { IBInspector = IBInspector; }; selectedObject = { IBInspectorManager = IBInspectorManager; }; window = { IBInspector = IBInspector; }; }; method = { "+acceptedViewResourcePasteboardTypes" = { "NSView(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "+canSubstituteForClass:" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "+objectForView:" = { IBPalette = IBPalette; }; "+registerResourceManagerClass:" = { IBResourceManager = IBResourceManager; }; "+registerResourceManagerClass:forFrameworks:" = { IBResourceManager = IBResourceManager; }; "+registerViewResourceDraggingDelegate:" = { "NSView(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "+registeredResourceManagerClassesForFramework:" = { IBResourceManager = IBResourceManager; }; "+registeredViewResourceDraggingDelegates" = { "NSView(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "+sharedInspectorManager" = { IBInspectorManager = IBInspectorManager; }; "+sharedInstance" = { IBPlugin = IBPlugin; }; "+typeForView:" = { IBPalette = IBPalette; }; "+unregisterViewResourceDraggingDelegate:" = { "NSView(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "-acceptsColor:atPoint:" = { "(IBViewProtocol)" = IBViewProtocol; }; "-acceptsResourcesFromPasteboard:" = { IBResourceManager = IBResourceManager; }; "-acceptsTypeFromArray:" = { "(IBEditors)" = IBEditors; }; "-acceptsViewResourceFromPasteboard:forObject:atPoint:" = { "(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "-actionsOfClass:" = { "(IBDocuments)" = IBDocuments; }; "-activate" = { "(IBEditors)" = IBEditors; }; "-activeDocument" = { "(IB)" = IBApplicationAdditions; }; "-addConnector:" = { "(IBDocuments)" = IBDocuments; }; "-addInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:" = { IBInspectorManager = IBInspectorManager; }; "-addResources:" = { IBResourceManager = IBResourceManager; }; "-addResourcesFromPasteboard:" = { IBResourceManager = IBResourceManager; }; "-allConnectors" = { "(IBDocuments)" = IBDocuments; }; "-allowsAltDragging" = { "(IBViewProtocol)" = IBViewProtocol; }; "-application:didModifyFileAtPath:" = { IBResourceManager = IBResourceManager; }; "-applicationIconForInterfaceStyle:inLanguage:" = { "(IBProjects)" = IBProjects; }; "-associateObject:type:with:" = { IBPalette = IBPalette; }; "-attachObject:toParent:" = { "(IBDocuments)" = IBDocuments; }; "-attachObject:toParent:withName:" = { "(IBDocuments)" = IBDocuments; }; "-attachObjects:toParent:" = { "(IBDocuments)" = IBDocuments; }; "-awakeFromDocument:" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-cellWillAltDragWithSize:" = { "(IBCellProtocol)" = IBCellProtocol; }; "-classForObject:" = { "(IBDocuments)" = IBDocuments; }; "-classInspectorClassName" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-close" = { "(IBEditors)" = IBEditors; }; "-closeSubeditors" = { "(IBEditors)" = IBEditors; }; "-connectDestination" = { "NSApplication(IBConnections)" = IBConnectors; }; "-connectInspectorClassName" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-connectSource" = { "NSApplication(IBConnections)" = IBConnectors; }; "-connectorsForDestination:" = { "(IBDocuments)" = IBDocuments; }; "-connectorsForDestination:ofClass:" = { "(IBDocuments)" = IBDocuments; }; "-connectorsForSource:" = { "(IBDocuments)" = IBDocuments; }; "-connectorsForSource:ofClass:" = { "(IBDocuments)" = IBDocuments; }; "-containsFileAtPath:" = { "(IBProjects)" = IBProjects; }; "-containsObject:" = { "(IBDocuments)" = IBDocuments; }; "-containsObjectWithName:forParent:" = { "(IBDocuments)" = IBDocuments; }; "-copyObject:type:toPasteboard:" = { "(IBDocuments)" = IBDocuments; }; "-copyObjects:type:toPasteboard:" = { "(IBDocuments)" = IBDocuments; }; "-copySelection" = { "(IBSelectionOwners)" = IBEditors; }; "-deactivate" = { "(IBEditors)" = IBEditors; }; "-dealloc" = { IBInspector = IBInspector; IBPalette = IBPalette; }; "-deleteSelection" = { "(IBEditors)" = IBEditors; }; "-depositColor:atPoint:" = { "(IBViewProtocol)" = IBViewProtocol; }; "-depositViewResourceFromPasteboard:onObject:atPoint:" = { "(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "-destination" = { "(IBConnectors)" = IBConnectors; }; "-detachObject:" = { "(IBDocuments)" = IBDocuments; }; "-detachObject:closeEditor:" = { "(IBDocuments)" = IBDocuments; }; "-detachObjects:" = { "(IBDocuments)" = IBDocuments; }; "-detachObjects:closeEditors:" = { "(IBDocuments)" = IBDocuments; }; "-didLoad" = { IBPlugin = IBPlugin; }; "-displayConnectionBetween:and:" = { "NSApplication(IBConnections)" = IBConnectors; }; "-document" = { "(IBEditors)" = IBEditors; IBResourceManager = IBResourceManager; }; "-document:didAddDraggedObjects:fromDraggedLibraryView:" = { IBPlugin = IBPlugin; }; "-documentForObject:" = { "(IB)" = IBApplicationAdditions; }; "-documentPath" = { "(IBDocuments)" = IBDocuments; }; "-drawSelection" = { "(IBSelectionOwners)" = IBEditors; }; "-editedObject" = { "(IBEditors)" = IBEditors; }; "-editor:didCloseForObject:" = { "(IBDocuments)" = IBDocuments; }; "-editorClassName" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-editorForObject:create:" = { "(IBDocuments)" = IBDocuments; }; "-editorForObject:inEditor:create:" = { "(IBDocuments)" = IBDocuments; }; "-establishConnection" = { "(IBConnectors)" = IBConnectors; }; "-fileName" = { "(IBProjectFiles)" = IBProjectFiles; }; "-fileType" = { "(IBProjectFiles)" = IBProjectFiles; }; "-filesForFileType:" = { "(IBProjects)" = IBProjects; }; "-finishInstantiate" = { IBPalette = IBPalette; }; "-helpInspectorClassName" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-ibIncompatibleProperties" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-identifier" = { IBInspectorMode = IBInspectorMode; }; "-imageForViewer" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-indexOfModeWithIdentifier:" = { IBInspectorManager = IBInspectorManager; }; "-initWithDocument:" = { IBResourceManager = IBResourceManager; }; "-initWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:" = { IBInspectorMode = IBInspectorMode; }; "-initWithObject:inDocument:" = { "(IBEditors)" = IBEditors; }; "-initialFirstResponder" = { IBInspector = IBInspector; }; "-inspectorClassName" = { "(IBObjectProtocol)" = IBObjectProtocol; IBInspectorMode = IBInspectorMode; }; "-isAncestorOfProject:" = { "(IBProjects)" = IBProjects; }; "-isConnecting" = { "NSApplication(IBConnections)" = IBConnectors; }; "-isDescendantOfProject:" = { "(IBProjects)" = IBProjects; }; "-isLive" = { "(IBProjects)" = IBProjects; }; "-isLocalized" = { "(IBProjectFiles)" = IBProjectFiles; }; "-isReadOnly" = { IBResourceManager = IBResourceManager; }; "-isTestingInterface" = { "(IB)" = IBApplicationAdditions; }; "-label" = { "(IBConnectors)" = IBConnectors; IBPlugin = IBPlugin; }; "-language" = { "(IBProjectFiles)" = IBProjectFiles; }; "-languageForFileAtPath:" = { "(IBProjects)" = IBProjects; }; "-libraryNibNames" = { IBPlugin = IBPlugin; }; "-linkImage" = { "NSApplication(GormSpecific)" = IBApplicationAdditions; }; "-localizedLabel" = { IBInspectorMode = IBInspectorMode; }; "-mainNibFileForInterfaceStyle:inLanguage:" = { "(IBProjects)" = IBProjects; }; "-makeSelectionVisible:" = { "(IBSelectionOwners)" = IBEditors; }; "-maximumSizeForCellSize:knobPosition:" = { "(IBCellProtocol)" = IBCellProtocol; }; "-maximumSizeFromKnobPosition:" = { "(IBViewProtocol)" = IBViewProtocol; }; "-minimumSizeForCellSize:knobPosition:" = { "(IBCellProtocol)" = IBCellProtocol; }; "-minimumSizeFromKnobPosition:" = { "(IBViewProtocol)" = IBViewProtocol; }; "-nameForObject:" = { "(IBDocuments)" = IBDocuments; }; "-nibInstantiate" = { "(IBConnectors)" = IBConnectors; "NSObject(IBNibInstantiation)" = IBConnectors; }; "-nibLabel:" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-object" = { IBInspector = IBInspector; IBInspectorMode = IBInspectorMode; }; "-objectForName:" = { "(IBDocuments)" = IBDocuments; }; "-objectNameForInspectorTitle" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-objects" = { "(IBDocuments)" = IBDocuments; }; "-ok:" = { IBInspector = IBInspector; }; "-okButton" = { IBInspector = IBInspector; }; "-openEditorForObject:" = { "(IBDocuments)" = IBDocuments; }; "-openSubeditorForObject:" = { "(IBEditors)" = IBEditors; }; "-orderFront" = { "(IBEditors)" = IBEditors; }; "-ordering" = { IBInspectorMode = IBInspectorMode; }; "-originalWindow" = { IBPalette = IBPalette; }; "-outletsOfClass:" = { "(IBDocuments)" = IBDocuments; }; "-paletteDocument" = { IBPalette = IBPalette; }; "-paletteIcon" = { IBPalette = IBPalette; }; "-parentEditorForEditor:" = { "(IBDocuments)" = IBDocuments; }; "-parentOfObject:" = { "(IBDocuments)" = IBDocuments; }; "-pasteInSelection" = { "(IBEditors)" = IBEditors; }; "-pasteType:fromPasteboard:parent:" = { "(IBDocuments)" = IBDocuments; }; "-pasteboardObjectsForDraggedLibraryView:" = { IBPlugin = IBPlugin; }; "-path" = { "(IBProjectFiles)" = IBProjectFiles; }; "-pathForFilename:" = { "(IBProjects)" = IBProjects; }; "-placeView:" = { "(IBViewProtocol)" = IBViewProtocol; }; "-preferencesView" = { IBPlugin = IBPlugin; }; "-project" = { "(IBProjectFiles)" = IBProjectFiles; }; "-project:didAddFile:" = { IBResourceManager = IBResourceManager; }; "-project:didChangeLocalizationOfFile:" = { IBResourceManager = IBResourceManager; }; "-project:didRemoveFile:" = { IBResourceManager = IBResourceManager; }; "-projectDirectory" = { "(IBProjects)" = IBProjects; }; "-projectManager" = { "(IBProjects)" = IBProjects; }; "-projectName" = { "(IBProjects)" = IBProjects; }; "-removeConnector:" = { "(IBDocuments)" = IBDocuments; }; "-replaceObject:withObject:" = { "(IBConnectors)" = IBConnectors; }; "-requiredFrameworks" = { IBPlugin = IBPlugin; }; "-resetObject:" = { "(IBEditors)" = IBEditors; }; "-resignSelectionForEditor:" = { "(IBDocuments)" = IBDocuments; }; "-resourceFileTypes" = { IBResourceManager = IBResourceManager; }; "-resourcePasteboardTypes" = { IBResourceManager = IBResourceManager; }; "-resourcesForObjects:" = { IBResourceManager = IBResourceManager; }; "-revert:" = { IBInspector = IBInspector; }; "-revertButton" = { IBInspector = IBInspector; }; "-rootProject" = { "(IBProjects)" = IBProjects; }; "-selectObjects:" = { "(IBSelectionOwners)" = IBEditors; }; "-selectedObject" = { "(IB)" = IBApplicationAdditions; }; "-selection" = { "(IBSelectionOwners)" = IBEditors; }; "-selectionCount" = { "(IBSelectionOwners)" = IBEditors; }; "-selectionOwner" = { "(IB)" = IBApplicationAdditions; }; "-setDestination:" = { "(IBConnectors)" = IBConnectors; }; "-setIdentifier:" = { IBInspectorMode = IBInspectorMode; }; "-setInspectorClassName:" = { IBInspectorMode = IBInspectorMode; }; "-setLabel:" = { "(IBConnectors)" = IBConnectors; }; "-setLocalizedLabel:" = { IBInspectorMode = IBInspectorMode; }; "-setName:forObject:" = { "(IBDocuments)" = IBDocuments; }; "-setObject:" = { IBInspector = IBInspector; IBInspectorMode = IBInspectorMode; }; "-setOrdering:" = { IBInspectorMode = IBInspectorMode; }; "-setSelectionFromEditor:" = { "(IBDocuments)" = IBDocuments; }; "-setSource:" = { "(IBConnectors)" = IBConnectors; }; "-shouldDrawConnectionFrame" = { "(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "-sizeInspectorClassName" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-source" = { "(IBConnectors)" = IBConnectors; }; "-startConnecting" = { "NSApplication(GormSpecific)" = IBApplicationAdditions; }; "-stopConnecting" = { "NSApplication(IBConnections)" = IBConnectors; }; "-subprojects" = { "(IBProjects)" = IBProjects; }; "-superproject" = { "(IBProjects)" = IBProjects; }; "-textDidBeginEditing:" = { IBInspector = IBInspector; }; "-touch" = { "(IBDocuments)" = IBDocuments; }; "-touch:" = { IBInspector = IBInspector; }; "-validateEditing" = { "(IBEditors)" = IBEditors; }; "-viewResourcePasteboardTypes" = { "(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "-wantsButtons" = { IBInspector = IBInspector; }; "-wantsSelection" = { "(IBEditors)" = IBEditors; }; "-willUnload" = { IBPlugin = IBPlugin; }; "-window" = { "(IBEditors)" = IBEditors; IBInspector = IBInspector; }; "-writeToDocumentPath:" = { IBResourceManager = IBResourceManager; }; }; output = { "../GormLib/IBApplicationAdditions.h" = ( "InterfaceBuilder/IBApplicationAdditions.gsdoc" ); "../GormLib/IBCellAdditions.h" = ( "InterfaceBuilder/IBCellAdditions.gsdoc" ); "../GormLib/IBCellProtocol.h" = ( "InterfaceBuilder/IBCellProtocol.gsdoc" ); "../GormLib/IBConnectors.h" = ( "InterfaceBuilder/IBConnectors.gsdoc" ); "../GormLib/IBDefines.h" = ( "InterfaceBuilder/IBDefines.gsdoc" ); "../GormLib/IBDocuments.h" = ( "InterfaceBuilder/IBDocuments.gsdoc" ); "../GormLib/IBEditors.h" = ( "InterfaceBuilder/IBEditors.gsdoc" ); "../GormLib/IBInspector.h" = ( "InterfaceBuilder/IBInspector.gsdoc" ); "../GormLib/IBInspectorManager.h" = ( "InterfaceBuilder/IBInspectorManager.gsdoc" ); "../GormLib/IBInspectorMode.h" = ( "InterfaceBuilder/IBInspectorMode.gsdoc" ); "../GormLib/IBObjectAdditions.h" = ( "InterfaceBuilder/IBObjectAdditions.gsdoc" ); "../GormLib/IBObjectProtocol.h" = ( "InterfaceBuilder/IBObjectProtocol.gsdoc" ); "../GormLib/IBPalette.h" = ( "InterfaceBuilder/IBPalette.gsdoc" ); "../GormLib/IBPlugin.h" = ( "InterfaceBuilder/IBPlugin.gsdoc" ); "../GormLib/IBProjectFiles.h" = ( "InterfaceBuilder/IBProjectFiles.gsdoc" ); "../GormLib/IBProjects.h" = ( "InterfaceBuilder/IBProjects.gsdoc" ); "../GormLib/IBResourceManager.h" = ( "InterfaceBuilder/IBResourceManager.gsdoc" ); "../GormLib/IBSystem.h" = ( "InterfaceBuilder/IBSystem.gsdoc" ); "../GormLib/IBViewAdditions.h" = ( "InterfaceBuilder/IBViewAdditions.gsdoc" ); "../GormLib/IBViewProtocol.h" = ( "InterfaceBuilder/IBViewProtocol.gsdoc" ); "../GormLib/IBViewResourceDragging.h" = ( "InterfaceBuilder/IBViewResourceDragging.gsdoc" ); "../GormLib/InterfaceBuilder.h" = ( "InterfaceBuilder/InterfaceBuilder.gsdoc" ); }; protocol = { "(IB)" = IBApplicationAdditions; "(IBCellProtocol)" = IBCellProtocol; "(IBConnectors)" = IBConnectors; "(IBDocuments)" = IBDocuments; "(IBEditors)" = IBEditors; "(IBObjectProtocol)" = IBObjectProtocol; "(IBProjectFiles)" = IBProjectFiles; "(IBProjects)" = IBProjects; "(IBSelectionOwners)" = IBEditors; "(IBViewProtocol)" = IBViewProtocol; "(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; "NSObject(IBObjectAdditions)" = IBObjectAdditions; }; source = { "../GormLib/IBApplicationAdditions.h" = ( "../GormLib/IBApplicationAdditions.h", "../GormLib/IBApplicationAdditions.h", "../GormLib/IBApplicationAdditions.h", "../GormLib/IBApplicationAdditions.h", "../GormLib/IBApplicationAdditions.h", "../GormLib/IBApplicationAdditions.m" ); "../GormLib/IBCellAdditions.h" = ( "../GormLib/IBCellAdditions.h", "../GormLib/IBCellAdditions.h", "../GormLib/IBCellAdditions.h", "../GormLib/IBCellAdditions.h", "../GormLib/IBCellAdditions.h", "../GormLib/IBCellAdditions.h" ); "../GormLib/IBCellProtocol.h" = ( "../GormLib/IBCellProtocol.h", "../GormLib/IBCellProtocol.h", "../GormLib/IBCellProtocol.h", "../GormLib/IBCellProtocol.h", "../GormLib/IBCellProtocol.h", "../GormLib/IBCellProtocol.h" ); "../GormLib/IBConnectors.h" = ( "../GormLib/IBConnectors.h", "../GormLib/IBConnectors.h", "../GormLib/IBConnectors.h", "../GormLib/IBConnectors.h", "../GormLib/IBConnectors.h", "../GormLib/IBConnectors.m" ); "../GormLib/IBDefines.h" = ( "../GormLib/IBDefines.h", "../GormLib/IBDefines.h", "../GormLib/IBDefines.h", "../GormLib/IBDefines.h", "../GormLib/IBDefines.h", "../GormLib/IBDefines.h" ); "../GormLib/IBDocuments.h" = ( "../GormLib/IBDocuments.h", "../GormLib/IBDocuments.h", "../GormLib/IBDocuments.h", "../GormLib/IBDocuments.h", "../GormLib/IBDocuments.h", "../GormLib/IBDocuments.m" ); "../GormLib/IBEditors.h" = ( "../GormLib/IBEditors.h", "../GormLib/IBEditors.h", "../GormLib/IBEditors.h", "../GormLib/IBEditors.h", "../GormLib/IBEditors.h", "../GormLib/IBEditors.m" ); "../GormLib/IBInspector.h" = ( "../GormLib/IBInspector.h", "../GormLib/IBInspector.h", "../GormLib/IBInspector.h", "../GormLib/IBInspector.h", "../GormLib/IBInspector.h", "../GormLib/IBInspector.m" ); "../GormLib/IBInspectorManager.h" = ( "../GormLib/IBInspectorManager.h", "../GormLib/IBInspectorManager.h", "../GormLib/IBInspectorManager.h", "../GormLib/IBInspectorManager.h", "../GormLib/IBInspectorManager.h", "../GormLib/IBInspectorManager.m" ); "../GormLib/IBInspectorMode.h" = ( "../GormLib/IBInspectorMode.h", "../GormLib/IBInspectorMode.h", "../GormLib/IBInspectorMode.h", "../GormLib/IBInspectorMode.h", "../GormLib/IBInspectorMode.h", "../GormLib/IBInspectorMode.m" ); "../GormLib/IBObjectAdditions.h" = ( "../GormLib/IBObjectAdditions.h", "../GormLib/IBObjectAdditions.h", "../GormLib/IBObjectAdditions.h", "../GormLib/IBObjectAdditions.h", "../GormLib/IBObjectAdditions.h", "../GormLib/IBObjectAdditions.m" ); "../GormLib/IBObjectProtocol.h" = ( "../GormLib/IBObjectProtocol.h", "../GormLib/IBObjectProtocol.h", "../GormLib/IBObjectProtocol.h", "../GormLib/IBObjectProtocol.h", "../GormLib/IBObjectProtocol.h", "../GormLib/IBObjectProtocol.h" ); "../GormLib/IBPalette.h" = ( "../GormLib/IBPalette.h", "../GormLib/IBPalette.h", "../GormLib/IBPalette.h", "../GormLib/IBPalette.h", "../GormLib/IBPalette.h", "../GormLib/IBPalette.m" ); "../GormLib/IBPlugin.h" = ( "../GormLib/IBPlugin.h", "../GormLib/IBPlugin.h", "../GormLib/IBPlugin.h", "../GormLib/IBPlugin.h", "../GormLib/IBPlugin.h", "../GormLib/IBPlugin.m" ); "../GormLib/IBProjectFiles.h" = ( "../GormLib/IBProjectFiles.h", "../GormLib/IBProjectFiles.h", "../GormLib/IBProjectFiles.h", "../GormLib/IBProjectFiles.h", "../GormLib/IBProjectFiles.h", "../GormLib/IBProjectFiles.h" ); "../GormLib/IBProjects.h" = ( "../GormLib/IBProjects.h", "../GormLib/IBProjects.h", "../GormLib/IBProjects.h", "../GormLib/IBProjects.h", "../GormLib/IBProjects.h", "../GormLib/IBProjects.h" ); "../GormLib/IBResourceManager.h" = ( "../GormLib/IBResourceManager.h", "../GormLib/IBResourceManager.h", "../GormLib/IBResourceManager.h", "../GormLib/IBResourceManager.h", "../GormLib/IBResourceManager.h", "../GormLib/IBResourceManager.m" ); "../GormLib/IBSystem.h" = ( "../GormLib/IBSystem.h", "../GormLib/IBSystem.h", "../GormLib/IBSystem.h", "../GormLib/IBSystem.h", "../GormLib/IBSystem.h", "../GormLib/IBSystem.h" ); "../GormLib/IBViewAdditions.h" = ( "../GormLib/IBViewAdditions.h", "../GormLib/IBViewAdditions.h", "../GormLib/IBViewAdditions.h", "../GormLib/IBViewAdditions.h", "../GormLib/IBViewAdditions.h", "../GormLib/IBViewAdditions.h" ); "../GormLib/IBViewProtocol.h" = ( "../GormLib/IBViewProtocol.h", "../GormLib/IBViewProtocol.h", "../GormLib/IBViewProtocol.h", "../GormLib/IBViewProtocol.h", "../GormLib/IBViewProtocol.h", "../GormLib/IBViewProtocol.h" ); "../GormLib/IBViewResourceDragging.h" = ( "../GormLib/IBViewResourceDragging.h", "../GormLib/IBViewResourceDragging.h", "../GormLib/IBViewResourceDragging.h", "../GormLib/IBViewResourceDragging.h", "../GormLib/IBViewResourceDragging.h", "../GormLib/IBViewResourceDragging.h" ); "../GormLib/InterfaceBuilder.h" = ( "../GormLib/InterfaceBuilder.h", "../GormLib/InterfaceBuilder.h", "../GormLib/InterfaceBuilder.h", "../GormLib/InterfaceBuilder.h", "../GormLib/InterfaceBuilder.h", "../GormLib/InterfaceBuilder.h" ); }; super = { IBInspector = NSObject; IBInspectorManager = NSObject; IBInspectorMode = NSObject; IBPalette = NSObject; IBPlugin = NSObject; IBResourceManager = NSObject; }; title = { IBApplicationAdditions = "IBApplicationAdditions documentation"; IBCellAdditions = "IBCellAdditions documentation"; IBCellProtocol = "IBCellProtocol documentation"; IBConnectors = "IBConnectors documentation"; IBDefines = "IBDefines documentation"; IBDocuments = "IBDocuments documentation"; IBEditors = "IBEditors documentation"; IBInspector = "IBInspector class documentation"; IBInspectorManager = "IBInspectorManager class documentation"; IBInspectorMode = "IBInspectorMode class documentation"; IBObjectAdditions = "IBObjectAdditions documentation"; IBObjectProtocol = "IBObjectProtocol documentation"; IBPalette = "IBPalette class documentation"; IBPlugin = "IBPlugin class documentation"; IBProjectFiles = "IBProjectFiles documentation"; IBProjects = "IBProjects documentation"; IBResourceManager = "IBResourceManager class documentation"; IBViewAdditions = "IBViewAdditions documentation"; IBViewProtocol = "IBViewProtocol documentation"; IBViewResourceDragging = "IBViewResourceDragging documentation"; }; type = { IBKnobPosition = IBDefines; }; unitmethods = { "(IB)" = { "-activeDocument" = IBApplicationAdditions; "-documentForObject:" = IBApplicationAdditions; "-isTestingInterface" = IBApplicationAdditions; "-selectedObject" = IBApplicationAdditions; "-selectionOwner" = IBApplicationAdditions; }; "(IBCellProtocol)" = { "-cellWillAltDragWithSize:" = IBCellProtocol; "-maximumSizeForCellSize:knobPosition:" = IBCellProtocol; "-minimumSizeForCellSize:knobPosition:" = IBCellProtocol; }; "(IBConnectors)" = { "-destination" = IBConnectors; "-establishConnection" = IBConnectors; "-label" = IBConnectors; "-nibInstantiate" = IBConnectors; "-replaceObject:withObject:" = IBConnectors; "-setDestination:" = IBConnectors; "-setLabel:" = IBConnectors; "-setSource:" = IBConnectors; "-source" = IBConnectors; }; "(IBDocuments)" = { "-actionsOfClass:" = IBDocuments; "-addConnector:" = IBDocuments; "-allConnectors" = IBDocuments; "-attachObject:toParent:" = IBDocuments; "-attachObject:toParent:withName:" = IBDocuments; "-attachObjects:toParent:" = IBDocuments; "-classForObject:" = IBDocuments; "-connectorsForDestination:" = IBDocuments; "-connectorsForDestination:ofClass:" = IBDocuments; "-connectorsForSource:" = IBDocuments; "-connectorsForSource:ofClass:" = IBDocuments; "-containsObject:" = IBDocuments; "-containsObjectWithName:forParent:" = IBDocuments; "-copyObject:type:toPasteboard:" = IBDocuments; "-copyObjects:type:toPasteboard:" = IBDocuments; "-detachObject:" = IBDocuments; "-detachObject:closeEditor:" = IBDocuments; "-detachObjects:" = IBDocuments; "-detachObjects:closeEditors:" = IBDocuments; "-documentPath" = IBDocuments; "-editor:didCloseForObject:" = IBDocuments; "-editorForObject:create:" = IBDocuments; "-editorForObject:inEditor:create:" = IBDocuments; "-nameForObject:" = IBDocuments; "-objectForName:" = IBDocuments; "-objects" = IBDocuments; "-openEditorForObject:" = IBDocuments; "-outletsOfClass:" = IBDocuments; "-parentEditorForEditor:" = IBDocuments; "-parentOfObject:" = IBDocuments; "-pasteType:fromPasteboard:parent:" = IBDocuments; "-removeConnector:" = IBDocuments; "-resignSelectionForEditor:" = IBDocuments; "-setName:forObject:" = IBDocuments; "-setSelectionFromEditor:" = IBDocuments; "-touch" = IBDocuments; }; "(IBEditors)" = { "-acceptsTypeFromArray:" = IBEditors; "-activate" = IBEditors; "-close" = IBEditors; "-closeSubeditors" = IBEditors; "-deactivate" = IBEditors; "-deleteSelection" = IBEditors; "-document" = IBEditors; "-editedObject" = IBEditors; "-initWithObject:inDocument:" = IBEditors; "-openSubeditorForObject:" = IBEditors; "-orderFront" = IBEditors; "-pasteInSelection" = IBEditors; "-resetObject:" = IBEditors; "-validateEditing" = IBEditors; "-wantsSelection" = IBEditors; "-window" = IBEditors; }; "(IBObjectProtocol)" = { "+canSubstituteForClass:" = IBObjectProtocol; "-awakeFromDocument:" = IBObjectProtocol; "-classInspectorClassName" = IBObjectProtocol; "-connectInspectorClassName" = IBObjectProtocol; "-editorClassName" = IBObjectProtocol; "-helpInspectorClassName" = IBObjectProtocol; "-ibIncompatibleProperties" = IBObjectProtocol; "-imageForViewer" = IBObjectProtocol; "-inspectorClassName" = IBObjectProtocol; "-nibLabel:" = IBObjectProtocol; "-objectNameForInspectorTitle" = IBObjectProtocol; "-sizeInspectorClassName" = IBObjectProtocol; }; "(IBProjectFiles)" = { "-fileName" = IBProjectFiles; "-fileType" = IBProjectFiles; "-isLocalized" = IBProjectFiles; "-language" = IBProjectFiles; "-path" = IBProjectFiles; "-project" = IBProjectFiles; }; "(IBProjects)" = { "-applicationIconForInterfaceStyle:inLanguage:" = IBProjects; "-containsFileAtPath:" = IBProjects; "-filesForFileType:" = IBProjects; "-isAncestorOfProject:" = IBProjects; "-isDescendantOfProject:" = IBProjects; "-isLive" = IBProjects; "-languageForFileAtPath:" = IBProjects; "-mainNibFileForInterfaceStyle:inLanguage:" = IBProjects; "-pathForFilename:" = IBProjects; "-projectDirectory" = IBProjects; "-projectManager" = IBProjects; "-projectName" = IBProjects; "-rootProject" = IBProjects; "-subprojects" = IBProjects; "-superproject" = IBProjects; }; "(IBSelectionOwners)" = { "-copySelection" = IBEditors; "-drawSelection" = IBEditors; "-makeSelectionVisible:" = IBEditors; "-selectObjects:" = IBEditors; "-selection" = IBEditors; "-selectionCount" = IBEditors; }; "(IBViewProtocol)" = { "-acceptsColor:atPoint:" = IBViewProtocol; "-allowsAltDragging" = IBViewProtocol; "-depositColor:atPoint:" = IBViewProtocol; "-maximumSizeFromKnobPosition:" = IBViewProtocol; "-minimumSizeFromKnobPosition:" = IBViewProtocol; "-placeView:" = IBViewProtocol; }; "(IBViewResourceDraggingDelegates)" = { "-acceptsViewResourceFromPasteboard:forObject:atPoint:" = IBViewResourceDragging; "-depositViewResourceFromPasteboard:onObject:atPoint:" = IBViewResourceDragging; "-shouldDrawConnectionFrame" = IBViewResourceDragging; "-viewResourcePasteboardTypes" = IBViewResourceDragging; }; IBInspector = { "-dealloc" = IBInspector; "-initialFirstResponder" = IBInspector; "-object" = IBInspector; "-ok:" = IBInspector; "-okButton" = IBInspector; "-revert:" = IBInspector; "-revertButton" = IBInspector; "-setObject:" = IBInspector; "-textDidBeginEditing:" = IBInspector; "-touch:" = IBInspector; "-wantsButtons" = IBInspector; "-window" = IBInspector; }; IBInspectorManager = { "+sharedInspectorManager" = IBInspectorManager; "-addInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:" = IBInspectorManager; "-indexOfModeWithIdentifier:" = IBInspectorManager; }; IBInspectorMode = { "-identifier" = IBInspectorMode; "-initWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:" = IBInspectorMode; "-inspectorClassName" = IBInspectorMode; "-localizedLabel" = IBInspectorMode; "-object" = IBInspectorMode; "-ordering" = IBInspectorMode; "-setIdentifier:" = IBInspectorMode; "-setInspectorClassName:" = IBInspectorMode; "-setLocalizedLabel:" = IBInspectorMode; "-setObject:" = IBInspectorMode; "-setOrdering:" = IBInspectorMode; }; IBPalette = { "+objectForView:" = IBPalette; "+typeForView:" = IBPalette; "-associateObject:type:with:" = IBPalette; "-dealloc" = IBPalette; "-finishInstantiate" = IBPalette; "-originalWindow" = IBPalette; "-paletteDocument" = IBPalette; "-paletteIcon" = IBPalette; }; IBPlugin = { "+sharedInstance" = IBPlugin; "-didLoad" = IBPlugin; "-document:didAddDraggedObjects:fromDraggedLibraryView:" = IBPlugin; "-label" = IBPlugin; "-libraryNibNames" = IBPlugin; "-pasteboardObjectsForDraggedLibraryView:" = IBPlugin; "-preferencesView" = IBPlugin; "-requiredFrameworks" = IBPlugin; "-willUnload" = IBPlugin; }; IBResourceManager = { "+registerResourceManagerClass:" = IBResourceManager; "+registerResourceManagerClass:forFrameworks:" = IBResourceManager; "+registeredResourceManagerClassesForFramework:" = IBResourceManager; "-acceptsResourcesFromPasteboard:" = IBResourceManager; "-addResources:" = IBResourceManager; "-addResourcesFromPasteboard:" = IBResourceManager; "-application:didModifyFileAtPath:" = IBResourceManager; "-document" = IBResourceManager; "-initWithDocument:" = IBResourceManager; "-isReadOnly" = IBResourceManager; "-project:didAddFile:" = IBResourceManager; "-project:didChangeLocalizationOfFile:" = IBResourceManager; "-project:didRemoveFile:" = IBResourceManager; "-resourceFileTypes" = IBResourceManager; "-resourcePasteboardTypes" = IBResourceManager; "-resourcesForObjects:" = IBResourceManager; "-writeToDocumentPath:" = IBResourceManager; }; "NSApplication(GormSpecific)" = { "-linkImage" = IBApplicationAdditions; "-startConnecting" = IBApplicationAdditions; }; "NSApplication(IBConnections)" = { "-connectDestination" = IBConnectors; "-connectSource" = IBConnectors; "-displayConnectionBetween:and:" = IBConnectors; "-isConnecting" = IBConnectors; "-stopConnecting" = IBConnectors; }; "NSObject(IBNibInstantiation)" = { "-nibInstantiate" = IBConnectors; }; "NSView(IBViewResourceDraggingDelegates)" = { "+acceptedViewResourcePasteboardTypes" = IBViewResourceDragging; "+registerViewResourceDraggingDelegate:" = IBViewResourceDragging; "+registeredViewResourceDraggingDelegates" = IBViewResourceDragging; "+unregisterViewResourceDraggingDelegate:" = IBViewResourceDragging; }; }; variable = { "enum IBResourceLocation" = IBResourceManager; }; }gorm-1.3.1/Documentation/InterfaceBuilder/IBViewResourceDragging.html0000644000175000017500000001620414333120703024675 0ustar heronheron IBViewResourceDragging documentation

IBViewResourceDragging documentation

Authors

Generated by heron

Software documentation for the NSView(IBViewResourceDraggingDelegates) category

NSView(IBViewResourceDraggingDelegates)

Declared in:
InterfaceBuilder/IBViewResourceDragging.h
Informal protocol on NSView.
Method summary

acceptedViewResourcePasteboardTypes 

+ (NSArray*) acceptedViewResourcePasteboardTypes;
Types accepted by the view.

registerViewResourceDraggingDelegate: 

+ (void) registerViewResourceDraggingDelegate: (id<IBViewResourceDraggingDelegates>)delegate;
Register a delegate.

registeredViewResourceDraggingDelegates 

+ (NSArray*) registeredViewResourceDraggingDelegates;
Return the list of registered delegates.

unregisterViewResourceDraggingDelegate: 

+ (void) unregisterViewResourceDraggingDelegate: (id<IBViewResourceDraggingDelegates>)delegate;
Remove a previously registered delegate.

Software documentation for the IBViewResourceDraggingDelegates protocol

IBViewResourceDraggingDelegates

Declared in:
InterfaceBuilder/IBViewResourceDragging.h
Protocol describing those methods needed to accept resources.
Method summary

acceptsViewResourceFromPasteboard: forObject: atPoint: 

- (BOOL) acceptsViewResourceFromPasteboard: (NSPasteboard*)pb forObject: (id)obj atPoint: (NSPoint)p;
Ask if the view accepts the object.

depositViewResourceFromPasteboard: onObject: atPoint: 

- (void) depositViewResourceFromPasteboard: (NSPasteboard*)pb onObject: (id)obj atPoint: (NSPoint)p;
Perform the action of depositing the object.

shouldDrawConnectionFrame 

- (BOOL) shouldDrawConnectionFrame;
Should we draw the connection frame when the resource is dragged in?

viewResourcePasteboardTypes 

- (NSArray*) viewResourcePasteboardTypes;
Types of resources accepted by this view.


gorm-1.3.1/Documentation/InterfaceBuilder/IBViewAdditions.html0000644000175000017500000000225714333120703023364 0ustar heronheron IBViewAdditions documentation

IBViewAdditions documentation

Authors

Generated by heron

Software documentation for the NSView(IBViewAdditions) category

NSView(IBViewAdditions)

Declared in:
InterfaceBuilder/IBViewAdditions.h
Conforms to:
IBViewProtocol
Description forthcoming.

gorm-1.3.1/Documentation/InterfaceBuilder/IBProjects.html0000644000175000017500000002033214333120703022376 0ustar heronheron IBProjects documentation

IBProjects documentation

Authors

Generated by heron

Software documentation for the IBProjects protocol

IBProjects

Declared in:
InterfaceBuilder/IBProjects.h
Conforms to:
NSObject
Description forthcoming.
Method summary

applicationIconForInterfaceStyle: inLanguage: 

- (id) applicationIconForInterfaceStyle: (NSInterfaceStyle)style inLanguage: (NSString*)lang;
Called to retrieve the application icon to be used for the interface/language combination.

containsFileAtPath: 

- (BOOL) containsFileAtPath: (NSString*)path;
Returns YES, if the file is in the given path.

filesForFileType: 

- (NSArray*) filesForFileType: (NSString*)type;
Returns an array containing the list of files of that filetype in the project.

isAncestorOfProject: 

- (BOOL) isAncestorOfProject: (id<IBProjects>)child;
Returns YES, if child is a child of the reciever.

isDescendantOfProject: 

- (BOOL) isDescendantOfProject: (id<IBProjects>)parent;
Returns YES, if parent is a parent of the receiver.

isLive 

- (BOOL) isLive;
Is there currently a connection to the project.

languageForFileAtPath: 

- (NSString*) languageForFileAtPath: (NSString*)path;
Returns the language for the file at the given path.

mainNibFileForInterfaceStyle: inLanguage: 

- (id) mainNibFileForInterfaceStyle: (NSInterfaceStyle)style inLanguage: (NSString*)lang;
Returns the nib for the interface/style combination.

pathForFilename: 

- (NSString*) pathForFilename: (NSString*)filename;
Locates and returns the location of filename within the receiver.

projectDirectory 

- (NSString*) projectDirectory;
Returns the full path for the project directory.

projectManager 

- (id) projectManager;
Returns the project manager object.

projectName 

- (NSString*) projectName;
The name of the project.

rootProject 

- (id<IBProjects>) rootProject;
The topmost project in the project hierarchy containing the receiver.

subprojects 

- (NSArray*) subprojects;
Any and all direct subjects of this project.

superproject 

- (id<IBProjects>) superproject;
The project which is the direct parent of the receiver.


gorm-1.3.1/Documentation/InterfaceBuilder/IBViewResourceDragging.gsdoc0000644000175000017500000000633614333120703025035 0ustar heronheron IBViewResourceDragging documentation Software documentation for the NSView(IBViewResourceDraggingDelegates) category InterfaceBuilder/IBViewResourceDragging.h Informal protocol on NSView. acceptedViewResourcePasteboardTypes Types accepted by the view. registerViewResourceDraggingDelegate: delegate Register a delegate. registeredViewResourceDraggingDelegates Return the list of registered delegates. unregisterViewResourceDraggingDelegate: delegate Remove a previously registered delegate. Software documentation for the IBViewResourceDraggingDelegates protocol InterfaceBuilder/IBViewResourceDragging.h Protocol describing those methods needed to accept resources. acceptsViewResourceFromPasteboard: pb forObject: obj atPoint: p Ask if the view accepts the object. depositViewResourceFromPasteboard: pb onObject: obj atPoint: p Perform the action of depositing the object. shouldDrawConnectionFrame Should we draw the connection frame when the resource is dragged in? viewResourcePasteboardTypes Types of resources accepted by this view. gorm-1.3.1/Documentation/InterfaceBuilder/IBInspector.html0000644000175000017500000001675414333120703022570 0ustar heronheron IBInspector class documentation

IBInspector class documentation

Authors

Generated by heron

Software documentation for the IBInspector class

IBInspector : NSObject

Declared in:
InterfaceBuilder/IBInspector.h
Description forthcoming.

Instance Variables

Method summary

dealloc 

- (void) dealloc;
Releases all the instance variables (apart from the window, which is presumed to release itself when closed) and removes self as an observer of notifications before destroying self.

initialFirstResponder 

- (NSView*) initialFirstResponder;
The first view to be selected in the inspector.

object 

- (id) object;
The object being inspected.

ok: 

- (void) ok: (id)sender;
Action to take when user clicks the OK button

okButton 

- (NSButton*) okButton;
Inspector supplied button - the inspectors manager will position this button for you.

revert: 

- (void) revert: (id)sender;
Action to take when user clicks the revert button

revertButton 

- (NSButton*) revertButton;
Inspector supplied button - the inspectors manager will position this button for you.

setObject: 

- (void) setObject: (id)anObject;
Extension - not in NeXTstep - this message is sent to your inspector to tell it to set its edited object and make any changes to its UI needed.

textDidBeginEditing: 

- (void) textDidBeginEditing: (NSNotification*)aNotification;
Used to take notice of textfields in inspector being updated.

touch: 

- (void) touch: (id)sender;
Method to mark the inspector as needing saving (ok or revert).

wantsButtons 

- (BOOL) wantsButtons;
If this method returns YES, the manager will partition off a section of the inspector panel for display of 'ok' and 'revert' buttons, which your inspector must supply.

window 

- (NSWindow*) window;
The window that the UI of the inspector exists in.



Instance Variables for IBInspector Class

object

@protected id object;
Description forthcoming.

okButton

@protected NSButton* okButton;
Description forthcoming.

revertButton

@protected NSButton* revertButton;
Description forthcoming.

window

@protected NSWindow* window;
Description forthcoming.





gorm-1.3.1/Documentation/InterfaceBuilder/IBEditors.gsdoc0000644000175000017500000001544214333120703022357 0ustar heronheron IBEditors documentation Software documentation for the IBEditors protocol InterfaceBuilder/IBEditors.h NSObject The IBEditors protocol defines the methods an editor must implement. acceptsTypeFromArray: types Decide whether an editor can accept data from the pasteboard. activate Activate an editor - inserts it into the view hierarchy or whatever is needed for the editor to be able to provide its functionality. This method should be called by the document when an editor is created or opened. It should be safe to call repeatedly. close Close an editor - this destroys the editor. In this method the editor should tell its document that it has been closed, so that the document can remove all its references to the editor. closeSubeditors Close all subeditors associated with this editor. deactivate Deactivate an editor - removes it from the view hierarchy so that objects can be archived without including the editor. This method should be called automatically by the 'close' method. It should be safe to call repeatedly. deleteSelection This method deletes all the objects in the current selection in the editor. document This method returns the document that owns the object that the editor edits. editedObject This method returns the object that the editor is editing. initWithObject: anObject inDocument: aDocument Initializes the editor with object for the specified document. openSubeditorForObject: object Opens the subeditor for an object when the object being edited is double clicked by the user. If there is no sub-editor, return nil, otherwise method will return the editor for the object. orderFront This method is used to ensure that the editor is visible on screen. pasteInSelection This method is used to add the contents of the pasteboard to the current selection of objects within the editor. resetObject: anObject Redraws the edited object validateEditing Causes the editor to select the text being edited in the current text field. wantsSelection When an editor resigns the selection ownership, all editors are asked if they want selection ownership, and the first one to return YES gets made into the current selection owner. window This returns the window in which the editor is drawn. Software documentation for the IBSelectionOwners protocol InterfaceBuilder/IBEditors.h NSObject The IBSelectionOwners protocol defines the methods that a selection owner must implement. copySelection This method places the current selection from the editor on the pasteboard. drawSelection Draw the selection. makeSelectionVisible: flag This method is used to draw or remove markup that identifies selected objects within the object being edited. selectObjects: objects This method changes the current selection to those objects in the array. selection Return the selection in an array. selectionCount The number of currently selected objects. gorm-1.3.1/Documentation/InterfaceBuilder/ClassesTOC.html0000644000175000017500000000177514360755340022362 0ustar heronheron Classes

Classes

IBInspector
IBInspectorManager
IBInspectorMode
IBPalette
IBPlugin
IBResourceManager

gorm-1.3.1/Documentation/InterfaceBuilder/index.html0000644000175000017500000000072014360755340021513 0ustar heronheron Autogsdoc-generated Documentation for Untitled gorm-1.3.1/Documentation/InterfaceBuilder/IBInspector.gsdoc0000644000175000017500000001023314333120703022705 0ustar heronheron IBInspector class documentation Software documentation for the IBInspector class InterfaceBuilder/IBInspector.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. dealloc Releases all the instance variables (apart from the window, which is presumed to release itself when closed) and removes self as an observer of notifications before destroying self. initialFirstResponder The first view to be selected in the inspector. object The object being inspected. ok: sender Action to take when user clicks the OK button okButton Inspector supplied button - the inspectors manager will position this button for you. revert: sender Action to take when user clicks the revert button revertButton Inspector supplied button - the inspectors manager will position this button for you. setObject: anObject Extension - not in NeXTstep - this message is sent to your inspector to tell it to set its edited object and make any changes to its UI needed. textDidBeginEditing: aNotification Used to take notice of textfields in inspector being updated. touch: sender Method to mark the inspector as needing saving (ok or revert). wantsButtons If this method returns YES, the manager will partition off a section of the inspector panel for display of 'ok' and 'revert' buttons, which your inspector must supply. window The window that the UI of the inspector exists in. gorm-1.3.1/Documentation/InterfaceBuilder/IBResourceManager.gsdoc0000644000175000017500000001431614333120703024027 0ustar heronheron IBResourceManager class documentation Software documentation for the IBResourceManager class InterfaceBuilder/IBResourceManager.h Description forthcoming. Description forthcoming. registerResourceManagerClass: managerClass Register the given class as a resource mananger. registerResourceManagerClass: managerClass forFrameworks: frameworks Register the given class as a resource manager for the frameworks in the array. registeredResourceManagerClassesForFramework: framework Return an array of classes for the given framework. acceptsResourcesFromPasteboard: pboard Returns YES, if the pasteboard contains a type the resource manager can accept. addResources: resourceList Add a resource. addResourcesFromPasteboard: pboard Add resoures from the pasteboard. Invokes the acceptsResourcesFromPasteboard: method to determine if the resources will be added. application: appName didModifyFileAtPath: path Called by an external application when a file owned by the GUI builder is modified. document Returns the document with which this resource manager is associated. initWithDocument: doc Instantiate the resource manager with the given document object. isReadOnly Returns YES, if this resource manager is non-modifiable. project: proj didAddFile: file Called by an external application when the a file is added. project: proj didChangeLocalizationOfFile: file Called by an external application when the a file changes localization. project: proj didRemoveFile: file Called by an external application when a file is removed. resourceFileTypes Returns a list of resource file types this manager can accept. resourcePasteboardTypes Returns a list of pasteboard types this manager can accept. resourcesForObjects: objs Returns the associated resources for the objects. writeToDocumentPath: path Writes a resource to the document path. IBResourceManager variables

Enumerated type to allow specification of where the resource lives. kNibResource kProjectResource kPaletteResource kSystemResource kUnknownResource
gorm-1.3.1/Documentation/InterfaceBuilder/IBConnectors.gsdoc0000644000175000017500000001307514333120703023063 0ustar heronheron IBConnectors documentation Software documentation for the NSApplication(IBConnections) category InterfaceBuilder/IBConnectors.h Description forthcoming. connectDestination [NSApp -connectDestination] returns the target object as set by the most recent [NSApp -displayConnectionBetween:and:] connectSource [NSApp -connectSource] returns the source object as set by the most recent [NSApp -displayConnectionBetween:and:] displayConnectionBetween: source and: destination [NSApp -displayConnectionBetween:and:] is used to set the source and target objects and mark the display appropriately. Setting either source or target to 'nil' will remove markup from any previous source or target. NB. This method expects to be able to call the active document to ask it for the window and rectangle in which to perform markup. isConnecting [NSApp -isConnecting] simply lets you know if a connection is in progress. stopConnecting [NSApp -stopConnecting] terminates the current connection process and removes the connection marks from the display. Software documentation for the NSNibConnector(IBConnectorsProtocol) category InterfaceBuilder/IBConnectors.h IBConnectors Description forthcoming. Software documentation for the NSObject(IBNibInstantiation) category InterfaceBuilder/IBConnectors.h Description forthcoming. nibInstantiate Invoked after loading. Software documentation for the IBConnectors protocol InterfaceBuilder/IBConnectors.h NSObject Description forthcoming. destination Destination for the receiver. establishConnection Establish the connection. label The method to which the receiver will be connected. nibInstantiate Called after the document is loaded on connections. replaceObject: anObject withObject: anotherObject Replace anObject with anotherObject. This method looks at the receiver's source and destination and replaces whichever one matches anObject with anotherObject. setDestination: anObject Set the receiver's destination to anObject. setLabel: label Set the receiver's label. setSource: anObject Set the receiver's source to anObject. source The source of the receiver. gorm-1.3.1/Documentation/InterfaceBuilder/IBCellAdditions.html0000644000175000017500000000225714333120703023331 0ustar heronheron IBCellAdditions documentation

IBCellAdditions documentation

Authors

Generated by heron

Software documentation for the NSCell(IBCellAdditions) category

NSCell(IBCellAdditions)

Declared in:
InterfaceBuilder/IBCellAdditions.h
Conforms to:
IBCellProtocol
Description forthcoming.

gorm-1.3.1/Documentation/InterfaceBuilder/IBObjectAdditions.html0000644000175000017500000000233214333120703023652 0ustar heronheron IBObjectAdditions documentation

IBObjectAdditions documentation

Authors

Generated by heron

Software documentation for the NSObject(IBObjectAdditions) informal protocol

NSObject(IBObjectAdditions)

Declared in:
InterfaceBuilder/IBObjectAdditions.h
Conforms to:
IBObjectProtocol
Description forthcoming.

gorm-1.3.1/Documentation/InterfaceBuilder/IBObjectAdditions.gsdoc0000644000175000017500000000136514333120703024012 0ustar heronheron IBObjectAdditions documentation Software documentation for the NSObject(IBObjectAdditions) informal protocol InterfaceBuilder/IBObjectAdditions.h IBObjectProtocol Description forthcoming. gorm-1.3.1/Documentation/InterfaceBuilder/IBPalette.html0000644000175000017500000001373414333120703022213 0ustar heronheron IBPalette class documentation

IBPalette class documentation

Authors

Generated by heron

Software documentation for the IBPalette class

IBPalette : NSObject

Declared in:
InterfaceBuilder/IBPalette.h
Description forthcoming.

Instance Variables

Method summary

objectForView: 

+ (id) objectForView: (NSView*)aView;
Description forthcoming.

typeForView: 

+ (NSString*) typeForView: (NSView*)aView;
Description forthcoming.

associateObject: type: with: 

- (void) associateObject: (id)anObject type: (NSString*)aType with: (NSView*)aView;
Associate a particular object and DnD type with a view - so that Gorm knows to initiate a DnD session with the specified object and type rather than an archived copy of the view itsself and the default type (IBViewPboardType).

dealloc 

- (void) dealloc;
Releases all the instance variables apart from the window (which is presumed to release itsself when closed) and removes self as an observer of notifications before destroying self.

finishInstantiate 

- (void) finishInstantiate;
Method called by GUI builder application when a new palette has been created and its model (nib/gorm) has been loaded. Any palette initialization should be done here.

originalWindow 

- (NSWindow*) originalWindow;
Return the window containing the views that may be dragged from the palette.

paletteDocument 

- (id<IBDocuments>) paletteDocument;
Returns an object representing the palette which conforms to the IBDocuments protocol.

paletteIcon 

- (NSImage*) paletteIcon;
Return the icon representing the palette.



Instance Variables for IBPalette Class

icon

@protected NSImage* icon;
Description forthcoming.

originalWindow

@protected NSWindow* originalWindow;
Description forthcoming.

paletteDocument

@protected id paletteDocument;
Description forthcoming.





gorm-1.3.1/Documentation/InterfaceBuilder/TypesTOC.html0000644000175000017500000000073514360755340022064 0ustar heronheron Types

Types

IBKnobPosition

gorm-1.3.1/Documentation/InterfaceBuilder/Untitled.gsdoc0000644000175000017500000000065314360755340022334 0ustar heronheron The Untitled Project

The index below lists the major components of the Untitled documentation.

gorm-1.3.1/Documentation/InterfaceBuilder/IBInspectorManager.gsdoc0000644000175000017500000000477514333120703024216 0ustar heronheron IBInspectorManager class documentation Software documentation for the IBInspectorManager class InterfaceBuilder/IBInspectorManager.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. sharedInspectorManager Create a shared instance of the class for the applicaiton.
Create a shared instance of the class for the application. If a subclass of IBInspectorManager uses this message it becomes the shraredInspectorManager.
addInspectorModeWithIdentifier: ident forObject: obj localizedLabel: label inspectorClassName: className ordering: ord Add an inspector for a given mode. This allows the addition of inspectors for different aspects of the same object. indexOfModeWithIdentifier: ident Position in the inspector list that the "mode inspector" appears.
gorm-1.3.1/Documentation/InterfaceBuilder/IBConnectors.html0000644000175000017500000002556714333120703022741 0ustar heronheron IBConnectors documentation

IBConnectors documentation

Authors

Generated by heron

Software documentation for the NSApplication(IBConnections) category

NSApplication(IBConnections)

Declared in:
InterfaceBuilder/IBConnectors.h
Description forthcoming.
Method summary

connectDestination 

- (id) connectDestination;
[NSApp -connectDestination] returns the target object as set by the most recent [NSApp -displayConnectionBetween:and:]

connectSource 

- (id) connectSource;
[NSApp -connectSource] returns the source object as set by the most recent [NSApp -displayConnectionBetween:and:]

displayConnectionBetween: and: 

- (void) displayConnectionBetween: (id)source and: (id)destination;
[NSApp -displayConnectionBetween:and:] is used to set the source and target objects and mark the display appropriately. Setting either source or target to 'nil' will remove markup from any previous source or target. NB. This method expects to be able to call the active document to ask it for the window and rectangle in which to perform markup.

isConnecting 

- (BOOL) isConnecting;
[NSApp -isConnecting] simply lets you know if a connection is in progress.

stopConnecting 

- (void) stopConnecting;
[NSApp -stopConnecting] terminates the current connection process and removes the connection marks from the display.

Software documentation for the NSNibConnector(IBConnectorsProtocol) category

NSNibConnector(IBConnectorsProtocol)

Declared in:
InterfaceBuilder/IBConnectors.h
Conforms to:
IBConnectors
Description forthcoming.

Software documentation for the NSObject(IBNibInstantiation) category

NSObject(IBNibInstantiation)

Declared in:
InterfaceBuilder/IBConnectors.h
Description forthcoming.
Method summary

nibInstantiate 

- (id) nibInstantiate;
Invoked after loading.

Software documentation for the IBConnectors protocol

IBConnectors

Declared in:
InterfaceBuilder/IBConnectors.h
Conforms to:
NSObject
Description forthcoming.
Method summary

destination 

- (id) destination;
Destination for the receiver.

establishConnection 

- (void) establishConnection;
Establish the connection.

label 

- (NSString*) label;
The method to which the receiver will be connected.

nibInstantiate 

- (id) nibInstantiate;
Called after the document is loaded on connections.

replaceObject: withObject: 

- (void) replaceObject: (id)anObject withObject: (id)anotherObject;
Replace anObject with anotherObject. This method looks at the receiver's source and destination and replaces whichever one matches anObject with anotherObject.

setDestination: 

- (void) setDestination: (id)anObject;
Set the receiver's destination to anObject.

setLabel: 

- (void) setLabel: (NSString*)label;
Set the receiver's label.

setSource: 

- (void) setSource: (id)anObject;
Set the receiver's source to anObject.

source 

- (id) source;
The source of the receiver.


gorm-1.3.1/Documentation/InterfaceBuilder/OrderedSymbolDeclarations.plist0000644000175000017500000001253414360755340025704 0ustar heronheron{ "(IB)" = ( "-activeDocument", "-isTestingInterface", "-selectionOwner", "-selectedObject", "-documentForObject:" ); "(IBCellProtocol)" = ( "-cellWillAltDragWithSize:", "-maximumSizeForCellSize:knobPosition:", "-minimumSizeForCellSize:knobPosition:" ); "(IBConnectors)" = ( "-destination", "-establishConnection", "-label", "-replaceObject:withObject:", "-source", "-setDestination:", "-setLabel:", "-setSource:", "-nibInstantiate" ); "(IBDocuments)" = ( "-addConnector:", "-allConnectors", "-attachObject:toParent:withName:", "-attachObject:toParent:", "-attachObjects:toParent:", "-connectorsForDestination:", "-connectorsForDestination:ofClass:", "-connectorsForSource:", "-connectorsForSource:ofClass:", "-containsObject:", "-containsObjectWithName:forParent:", "-copyObject:type:toPasteboard:", "-copyObjects:type:toPasteboard:", "-detachObject:", "-detachObject:closeEditor:", "-detachObjects:", "-detachObjects:closeEditors:", "-documentPath", "-editor:didCloseForObject:", "-editorForObject:create:", "-editorForObject:inEditor:create:", "-nameForObject:", "-objectForName:", "-objects", "-openEditorForObject:", "-parentEditorForEditor:", "-parentOfObject:", "-pasteType:fromPasteboard:parent:", "-removeConnector:", "-resignSelectionForEditor:", "-setName:forObject:", "-setSelectionFromEditor:", "-touch", "-classForObject:", "-actionsOfClass:", "-outletsOfClass:" ); "(IBEditors)" = ( "-acceptsTypeFromArray:", "-activate", "-initWithObject:inDocument:", "-close", "-closeSubeditors", "-deactivate", "-deleteSelection", "-document", "-editedObject", "-orderFront", "-openSubeditorForObject:", "-pasteInSelection", "-resetObject:", "-wantsSelection", "-validateEditing", "-window" ); "(IBObjectProtocol)" = ( "+canSubstituteForClass:", "-awakeFromDocument:", "-imageForViewer", "-nibLabel:", "-objectNameForInspectorTitle", "-inspectorClassName", "-connectInspectorClassName", "-sizeInspectorClassName", "-helpInspectorClassName", "-classInspectorClassName", "-editorClassName", "-ibIncompatibleProperties" ); "(IBProjectFiles)" = ( "-fileName", "-fileType", "-isLocalized", "-language", "-path", "-project" ); "(IBProjects)" = ( "-applicationIconForInterfaceStyle:inLanguage:", "-containsFileAtPath:", "-filesForFileType:", "-isAncestorOfProject:", "-isDescendantOfProject:", "-isLive", "-languageForFileAtPath:", "-mainNibFileForInterfaceStyle:inLanguage:", "-pathForFilename:", "-projectDirectory", "-projectManager", "-projectName", "-rootProject", "-subprojects", "-superproject" ); "(IBSelectionOwners)" = ( "-selectionCount", "-selection", "-drawSelection", "-makeSelectionVisible:", "-selectObjects:", "-copySelection" ); "(IBViewProtocol)" = ( "-acceptsColor:atPoint:", "-allowsAltDragging", "-depositColor:atPoint:", "-maximumSizeFromKnobPosition:", "-minimumSizeFromKnobPosition:", "-placeView:" ); "(IBViewResourceDraggingDelegates)" = ( "-acceptsViewResourceFromPasteboard:forObject:atPoint:", "-depositViewResourceFromPasteboard:onObject:atPoint:", "-shouldDrawConnectionFrame", "-viewResourcePasteboardTypes" ); IBInspector = ( "-dealloc", "-initialFirstResponder", "-object", "-ok:", "-okButton", "-revert:", "-revertButton", "-setObject:", "-textDidBeginEditing:", "-touch:", "-wantsButtons", "-window" ); IBInspectorManager = ( "+sharedInspectorManager", "-addInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:", "-indexOfModeWithIdentifier:" ); IBInspectorMode = ( "-initWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:", "-setIdentifier:", "-identifier", "-setObject:", "-object", "-setLocalizedLabel:", "-localizedLabel", "-setInspectorClassName:", "-inspectorClassName", "-setOrdering:", "-ordering" ); IBPalette = ( "+objectForView:", "+typeForView:", "-associateObject:type:with:", "-dealloc", "-finishInstantiate", "-paletteIcon", "-originalWindow", "-paletteDocument" ); IBPlugin = ( "+sharedInstance", "-didLoad", "-willUnload", "-libraryNibNames", "-label", "-preferencesView", "-requiredFrameworks", "-pasteboardObjectsForDraggedLibraryView:", "-document:didAddDraggedObjects:fromDraggedLibraryView:" ); IBResourceManager = ( "+registerResourceManagerClass:", "+registerResourceManagerClass:forFrameworks:", "+registeredResourceManagerClassesForFramework:", "-acceptsResourcesFromPasteboard:", "-addResources:", "-addResourcesFromPasteboard:", "-application:didModifyFileAtPath:", "-document", "-initWithDocument:", "-isReadOnly", "-project:didAddFile:", "-project:didChangeLocalizationOfFile:", "-project:didRemoveFile:", "-resourceFileTypes", "-resourcePasteboardTypes", "-resourcesForObjects:", "-writeToDocumentPath:" ); "NSApplication(GormSpecific)" = ( "-linkImage", "-startConnecting" ); "NSApplication(IBConnections)" = ( "-connectSource", "-connectDestination", "-isConnecting", "-stopConnecting", "-displayConnectionBetween:and:" ); "NSObject(IBNibInstantiation)" = ( "-nibInstantiate" ); "NSView(IBViewResourceDraggingDelegates)" = ( "+acceptedViewResourcePasteboardTypes", "+registeredViewResourceDraggingDelegates", "+registerViewResourceDraggingDelegate:", "+unregisterViewResourceDraggingDelegate:" ); }gorm-1.3.1/Documentation/InterfaceBuilder/IBInspectorMode.html0000644000175000017500000001670514333120703023371 0ustar heronheron IBInspectorMode class documentation

IBInspectorMode class documentation

Authors

Generated by heron

Software documentation for the IBInspectorMode class

IBInspectorMode : NSObject

Declared in:
InterfaceBuilder/IBInspectorMode.h
IBInspectorMode is an internal class in the InterfaceBuilder framework.

Instance Variables

Method summary

identifier 

- (NSString*) identifier;
Description forthcoming.

initWithIdentifier: forObject: localizedLabel: inspectorClassName: ordering: 

- (id) initWithIdentifier: (NSString*)ident forObject: (id)obj localizedLabel: (NSString*)lab inspectorClassName: (NSString*)cn ordering: (float)ord;
Description forthcoming.

inspectorClassName 

- (NSString*) inspectorClassName;
Description forthcoming.

localizedLabel 

- (NSString*) localizedLabel;
Description forthcoming.

object 

- (id) object;
Description forthcoming.

ordering 

- (float) ordering;
Description forthcoming.

setIdentifier: 

- (void) setIdentifier: (NSString*)ident;
Description forthcoming.

setInspectorClassName: 

- (void) setInspectorClassName: (NSString*)cn;
Description forthcoming.

setLocalizedLabel: 

- (void) setLocalizedLabel: (NSString*)lab;
Description forthcoming.

setObject: 

- (void) setObject: (id)obj;
Description forthcoming.

setOrdering: 

- (void) setOrdering: (float)ord;
Description forthcoming.



Instance Variables for IBInspectorMode Class

identifier

@protected NSString* identifier;
Description forthcoming.

inspectorClassName

@protected NSString* inspectorClassName;
Description forthcoming.

localizedLabel

@protected NSString* localizedLabel;
Description forthcoming.

object

@protected id object;
Description forthcoming.

ordering

@protected float ordering;
Description forthcoming.





gorm-1.3.1/Documentation/InterfaceBuilder/IBViewAdditions.gsdoc0000644000175000017500000000132414333120703023511 0ustar heronheron IBViewAdditions documentation Software documentation for the NSView(IBViewAdditions) category InterfaceBuilder/IBViewAdditions.h IBViewProtocol Description forthcoming. gorm-1.3.1/Documentation/InterfaceBuilder/IBApplicationAdditions.gsdoc0000644000175000017500000000464314333120703025051 0ustar heronheron IBApplicationAdditions documentation Software documentation for the NSApplication(GormSpecific) category InterfaceBuilder/IBApplicationAdditions.h Description forthcoming. linkImage Image to be displayed with making a link. startConnecting Start the connection process. Software documentation for the IB protocol InterfaceBuilder/IBApplicationAdditions.h NSObject Description forthcoming. activeDocument Returns the document which is currently being edited. documentForObject: object Returns the document which contains this object. isTestingInterface Returns YES, if the reciever is in testing mode. selectedObject Returns the current selection from the current selection owner. selectionOwner Returns the current selection owner. gorm-1.3.1/Documentation/InterfaceBuilder/IBObjectProtocol.html0000644000175000017500000001527714333120703023551 0ustar heronheron IBObjectProtocol documentation

IBObjectProtocol documentation

Authors

Generated by heron

Software documentation for the IBObjectProtocol protocol

IBObjectProtocol

Declared in:
InterfaceBuilder/IBObjectProtocol.h
Description forthcoming.
Method summary

canSubstituteForClass: 

+ (BOOL) canSubstituteForClass: (Class)origClass;
Returns YES, if receiver can be displayed in the custom custom class inspector as a potential class which can be switched to by the receiver.

awakeFromDocument: 

- (void) awakeFromDocument: (id<IBDocuments>)doc;
Called immediate after loading the document into the interface editor application.

classInspectorClassName 

- (NSString*) classInspectorClassName;
Name of class inspector.

connectInspectorClassName 

- (NSString*) connectInspectorClassName;
Name of connection inspector class.

editorClassName 

- (NSString*) editorClassName;
Name of the editor for the receiver.

helpInspectorClassName 

- (NSString*) helpInspectorClassName;
Name of help inspector.

ibIncompatibleProperties 

- (NSArray*) ibIncompatibleProperties;
List of properties not compatible with interface app.

imageForViewer 

- (NSImage*) imageForViewer;
Returns the NSImage to be used to represent an object of the receiver's class in the editor.

inspectorClassName 

- (NSString*) inspectorClassName;
Name of attributes inspector class.

nibLabel: 

- (NSString*) nibLabel: (NSString*)objectName;
Label for the receiver in the model.

objectNameForInspectorTitle 

- (NSString*) objectNameForInspectorTitle;
Title to display in the inspector.

sizeInspectorClassName 

- (NSString*) sizeInspectorClassName;
Name of size inspector.


gorm-1.3.1/Documentation/InterfaceBuilder/IBDocuments.gsdoc0000644000175000017500000002723214333120703022707 0ustar heronheron IBDocuments documentation Software documentation for the IBDocuments protocol InterfaceBuilder/IBDocuments.h NSObject Description forthcoming. actionsOfClass: className Description forthcoming. addConnector: aConnector Add a connection allConnectors Returns an array containing all connections for the receiver. attachObject: anObject toParent: aParent Attaches an object to the document and makes the association with the parent. attachObject: anObject toParent: aParent withName: aName Attach object to document with a specified name. Pass nil to aName to have Gorm assign a name to it. (GS extension) attachObjects: anArray toParent: aParent Iterates over anArray and attaches all objects in it to the receiver with aParent as the parent. classForObject: obj Returns a string with the name of the class for the given object. connectorsForDestination: destination Returns an autoreleased array containing all connections for the given destination. connectorsForDestination: destination ofClass: aConnectorClass Returns an autoreleased array containing all connectors of the given class for the destination. connectorsForSource: source Returns an autoreleased array containing all connections for the given source. connectorsForSource: source ofClass: aConnectorClass Returns an autoreleased array containing all connectors of the given class for the source. containsObject: anObject Returns YES, if the receiver contains anObject. containsObjectWithName: aName forParent: parent Returns YES, if the receiver contains an object with the given name and parent. copyObject: anObject type: aType toPasteboard: aPasteboard Copies anObject to the pasteboard with the aType. copyObjects: anArray type: aType toPasteboard: aPasteboard Copues an array of objects to aPasteboard with aType. detachObject: anObject Detaches anObject from the receiver. detachObject: anObject closeEditor: close_editor Detaches an object from the receiver, closes editor if asked. GNUstep extension. detachObjects: anArray Detaches an array of objects from the receiver. detachObjects: anObject closeEditors: close_editor Detaches an array of objects from the receiver. Closes editor if asked. GNUstep extension. documentPath The path of the file which represents the document. editor: anEditor didCloseForObject: anObject Called when an editor is closed. editorForObject: anObject create: flag Returns the associated editor for anObject, if flag is YES, it will create an instance of the editor class if one does not already exist for the given object. editorForObject: anObject inEditor: anEditor create: flag Returns the associated subeditor for anObject, if flag is YES, it will create an instance of the editor. nameForObject: anObject Returns the name associated with the object. objectForName: aName Returns the object for the given aName. objects Returns all objects in the receiver's name table. openEditorForObject: anObject Creates an editor, if necessary using editorForObject:create:, opens it and brings the window containing the editor to the front. outletsOfClass: className Description forthcoming. parentEditorForEditor: anEditor Returns the parent of the given editor. parentOfObject: anObject Return the parent of anObject. The File's Owner is the root object in the hierarchy, if anObject's parent is the Files's Owner, this method should return nil. pasteType: aType fromPasteboard: aPasteboard parent: parent Pastes the given type from the aPasteboard. removeConnector: aConnector Remove aConnector from the receiver. resignSelectionForEditor: editor The current editor wants to give up the selection, this method iterates over all editors and determines if any editors will take over the selection. If one is found it is activated. setName: aName forObject: object Set aName for object in the receiver. This replaces any name the object may have previously had. setSelectionFromEditor: anEditor Sets the currently selected object from the given editor. touch Mark document as having been changed. gorm-1.3.1/Documentation/InterfaceBuilder/IBApplicationAdditions.html0000644000175000017500000001241614333120703024713 0ustar heronheron IBApplicationAdditions documentation

IBApplicationAdditions documentation

Authors

Generated by heron

Software documentation for the NSApplication(GormSpecific) category

NSApplication(GormSpecific)

Declared in:
InterfaceBuilder/IBApplicationAdditions.h
Description forthcoming.
Method summary

linkImage 

- (NSImage*) linkImage;
Image to be displayed with making a link.

startConnecting 

- (void) startConnecting;
Start the connection process.

Software documentation for the IB protocol

IB

Declared in:
InterfaceBuilder/IBApplicationAdditions.h
Conforms to:
NSObject
Description forthcoming.
Method summary

activeDocument 

- (id<IBDocuments>) activeDocument;
Returns the document which is currently being edited.

documentForObject: 

- (id<IBDocuments>) documentForObject: (id)object;
Returns the document which contains this object.

isTestingInterface 

- (BOOL) isTestingInterface;
Returns YES, if the reciever is in testing mode.

selectedObject 

- (id) selectedObject;
Returns the current selection from the current selection owner.

selectionOwner 

- (id<IBSelectionOwners>) selectionOwner;
Returns the current selection owner.


gorm-1.3.1/Documentation/InterfaceBuilder/ClassesTOC.gsdoc0000644000175000017500000000056014360755340022504 0ustar heronheron Classes gorm-1.3.1/Documentation/InterfaceBuilder/IBDocuments.html0000644000175000017500000005071114333120703022552 0ustar heronheron IBDocuments documentation

IBDocuments documentation

Authors

Generated by heron

Software documentation for the IBDocuments protocol

IBDocuments

Declared in:
InterfaceBuilder/IBDocuments.h
Conforms to:
NSObject
Description forthcoming.
Method summary

actionsOfClass: 

- (NSArray*) actionsOfClass: (NSString*)className;
Description forthcoming.

addConnector: 

- (void) addConnector: (id<IBConnectors>)aConnector;
Add a connection

allConnectors 

- (NSArray*) allConnectors;
Returns an array containing all connections for the receiver.

attachObject: toParent: 

- (void) attachObject: (id)anObject toParent: (id)aParent;
Attaches an object to the document and makes the association with the parent.

attachObject: toParent: withName: 

- (void) attachObject: (id)anObject toParent: (id)aParent withName: (NSString*)aName;
Attach object to document with a specified name. Pass nil to aName to have Gorm assign a name to it. (GS extension)

attachObjects: toParent: 

- (void) attachObjects: (NSArray*)anArray toParent: (id)aParent;
Iterates over anArray and attaches all objects in it to the receiver with aParent as the parent.

classForObject: 

- (NSString*) classForObject: (id)obj;
Returns a string with the name of the class for the given object.

connectorsForDestination: 

- (NSArray*) connectorsForDestination: (id)destination;
Returns an autoreleased array containing all connections for the given destination.

connectorsForDestination: ofClass: 

- (NSArray*) connectorsForDestination: (id)destination ofClass: (Class)aConnectorClass;
Returns an autoreleased array containing all connectors of the given class for the destination.

connectorsForSource: 

- (NSArray*) connectorsForSource: (id)source;
Returns an autoreleased array containing all connections for the given source.

connectorsForSource: ofClass: 

- (NSArray*) connectorsForSource: (id)source ofClass: (Class)aConnectorClass;
Returns an autoreleased array containing all connectors of the given class for the source.

containsObject: 

- (BOOL) containsObject: (id)anObject;
Returns YES, if the receiver contains anObject.

containsObjectWithName: forParent: 

- (BOOL) containsObjectWithName: (NSString*)aName forParent: (id)parent;
Returns YES, if the receiver contains an object with the given name and parent.

copyObject: type: toPasteboard: 

- (BOOL) copyObject: (id)anObject type: (NSString*)aType toPasteboard: (NSPasteboard*)aPasteboard;
Copies anObject to the pasteboard with the aType.

copyObjects: type: toPasteboard: 

- (BOOL) copyObjects: (NSArray*)anArray type: (NSString*)aType toPasteboard: (NSPasteboard*)aPasteboard;
Copues an array of objects to aPasteboard with aType.

detachObject: 

- (void) detachObject: (id)anObject;
Detaches anObject from the receiver.

detachObject: closeEditor: 

- (void) detachObject: (id)anObject closeEditor: (BOOL)close_editor;
Detaches an object from the receiver, closes editor if asked. GNUstep extension.

detachObjects: 

- (void) detachObjects: (NSArray*)anArray;
Detaches an array of objects from the receiver.

detachObjects: closeEditors: 

- (void) detachObjects: (id)anObject closeEditors: (BOOL)close_editor;
Detaches an array of objects from the receiver. Closes editor if asked. GNUstep extension.

documentPath 

- (NSString*) documentPath;
The path of the file which represents the document.

editor: didCloseForObject: 

- (void) editor: (id<IBEditors>)anEditor didCloseForObject: (id)anObject;
Called when an editor is closed.

editorForObject: create: 

- (id<IBEditors>) editorForObject: (id)anObject create: (BOOL)flag;
Returns the associated editor for anObject, if flag is YES, it will create an instance of the editor class if one does not already exist for the given object.

editorForObject: inEditor: create: 

- (id<IBEditors>) editorForObject: (id)anObject inEditor: (id<IBEditors>)anEditor create: (BOOL)flag;
Returns the associated subeditor for anObject, if flag is YES, it will create an instance of the editor.

nameForObject: 

- (NSString*) nameForObject: (id)anObject;
Returns the name associated with the object.

objectForName: 

- (id) objectForName: (NSString*)aName;
Returns the object for the given aName.

objects 

- (NSArray*) objects;
Returns all objects in the receiver's name table.

openEditorForObject: 

- (id<IBEditors>) openEditorForObject: (id)anObject;
Creates an editor, if necessary using editorForObject:create:, opens it and brings the window containing the editor to the front.

outletsOfClass: 

- (NSArray*) outletsOfClass: (NSString*)className;
Description forthcoming.

parentEditorForEditor: 

- (id<IBEditors,IBSelectionOwners>) parentEditorForEditor: (id<IBEditors>)anEditor;
Returns the parent of the given editor.

parentOfObject: 

- (id) parentOfObject: (id)anObject;
Return the parent of anObject. The File's Owner is the root object in the hierarchy, if anObject's parent is the Files's Owner, this method should return nil.

pasteType: fromPasteboard: parent: 

- (NSArray*) pasteType: (NSString*)aType fromPasteboard: (NSPasteboard*)aPasteboard parent: (id)parent;
Pastes the given type from the aPasteboard.

removeConnector: 

- (void) removeConnector: (id<IBConnectors>)aConnector;
Remove aConnector from the receiver.

resignSelectionForEditor: 

- (void) resignSelectionForEditor: (id<IBEditors>)editor;
The current editor wants to give up the selection, this method iterates over all editors and determines if any editors will take over the selection. If one is found it is activated.

setName: forObject: 

- (void) setName: (NSString*)aName forObject: (id)object;
Set aName for object in the receiver. This replaces any name the object may have previously had.

setSelectionFromEditor: 

- (void) setSelectionFromEditor: (id<IBEditors>)anEditor;
Sets the currently selected object from the given editor.

touch 

- (void) touch;
Mark document as having been changed.


gorm-1.3.1/Documentation/InterfaceBuilder/IBEditors.html0000644000175000017500000003152114333120703022220 0ustar heronheron IBEditors documentation

IBEditors documentation

Authors

Generated by heron

Software documentation for the IBEditors protocol

IBEditors

Declared in:
InterfaceBuilder/IBEditors.h
Conforms to:
NSObject
The IBEditors protocol defines the methods an editor must implement.
Method summary

acceptsTypeFromArray: 

- (BOOL) acceptsTypeFromArray: (NSArray*)types;
Decide whether an editor can accept data from the pasteboard.

activate 

- (BOOL) activate;
Activate an editor - inserts it into the view hierarchy or whatever is needed for the editor to be able to provide its functionality. This method should be called by the document when an editor is created or opened. It should be safe to call repeatedly.

close 

- (void) close;
Close an editor - this destroys the editor. In this method the editor should tell its document that it has been closed, so that the document can remove all its references to the editor.

closeSubeditors 

- (void) closeSubeditors;
Close all subeditors associated with this editor.

deactivate 

- (void) deactivate;
Deactivate an editor - removes it from the view hierarchy so that objects can be archived without including the editor. This method should be called automatically by the 'close' method. It should be safe to call repeatedly.

deleteSelection 

- (void) deleteSelection;
This method deletes all the objects in the current selection in the editor.

document 

- (id/*<IBDocuments>*/) document;
This method returns the document that owns the object that the editor edits.

editedObject 

- (id) editedObject;
This method returns the object that the editor is editing.

initWithObject: inDocument: 

- (id) initWithObject: (id)anObject inDocument: (id/*<IBDocuments>*/)aDocument;
Initializes the editor with object for the specified document.

openSubeditorForObject: 

- (id<IBEditors>) openSubeditorForObject: (id)object;
Opens the subeditor for an object when the object being edited is double clicked by the user. If there is no sub-editor, return nil, otherwise method will return the editor for the object.

orderFront 

- (void) orderFront;
This method is used to ensure that the editor is visible on screen.

pasteInSelection 

- (void) pasteInSelection;
This method is used to add the contents of the pasteboard to the current selection of objects within the editor.

resetObject: 

- (void) resetObject: (id)anObject;
Redraws the edited object

validateEditing 

- (void) validateEditing;
Causes the editor to select the text being edited in the current text field.

wantsSelection 

- (BOOL) wantsSelection;
When an editor resigns the selection ownership, all editors are asked if they want selection ownership, and the first one to return YES gets made into the current selection owner.

window 

- (NSWindow*) window;
This returns the window in which the editor is drawn.

Software documentation for the IBSelectionOwners protocol

IBSelectionOwners

Declared in:
InterfaceBuilder/IBEditors.h
Conforms to:
NSObject
The IBSelectionOwners protocol defines the methods that a selection owner must implement.
Method summary

copySelection 

- (void) copySelection;
This method places the current selection from the editor on the pasteboard.

drawSelection 

- (void) drawSelection;
Draw the selection.

makeSelectionVisible: 

- (void) makeSelectionVisible: (BOOL)flag;
This method is used to draw or remove markup that identifies selected objects within the object being edited.

selectObjects: 

- (void) selectObjects: (NSArray*)objects;
This method changes the current selection to those objects in the array.

selection 

- (NSArray*) selection;
Return the selection in an array.

selectionCount 

- (NSUInteger) selectionCount;
The number of currently selected objects.


gorm-1.3.1/Documentation/InterfaceBuilder/IBProjects.gsdoc0000644000175000017500000001031414333120703022530 0ustar heronheron IBProjects documentation Software documentation for the IBProjects protocol InterfaceBuilder/IBProjects.h NSObject Description forthcoming. applicationIconForInterfaceStyle: style inLanguage: lang Called to retrieve the application icon to be used for the interface/language combination. containsFileAtPath: path Returns YES, if the file is in the given path. filesForFileType: type Returns an array containing the list of files of that filetype in the project. isAncestorOfProject: child Returns YES, if child is a child of the reciever. isDescendantOfProject: parent Returns YES, if parent is a parent of the receiver. isLive Is there currently a connection to the project. languageForFileAtPath: path Returns the language for the file at the given path. mainNibFileForInterfaceStyle: style inLanguage: lang Returns the nib for the interface/style combination. pathForFilename: filename Locates and returns the location of filename within the receiver. projectDirectory Returns the full path for the project directory. projectManager Returns the project manager object. projectName The name of the project. rootProject The topmost project in the project hierarchy containing the receiver. subprojects Any and all direct subjects of this project. superproject The project which is the direct parent of the receiver. gorm-1.3.1/Documentation/InterfaceBuilder/IBViewProtocol.html0000644000175000017500000001015514333120703023243 0ustar heronheron IBViewProtocol documentation

IBViewProtocol documentation

Authors

Generated by heron

Software documentation for the IBViewProtocol protocol

IBViewProtocol

Declared in:
InterfaceBuilder/IBViewProtocol.h
Description forthcoming.
Method summary

acceptsColor: atPoint: 

- (BOOL) acceptsColor: (NSColor*)color atPoint: (NSPoint)point;
Returns YES, if color can be set at the given point in the view.

allowsAltDragging 

- (BOOL) allowsAltDragging;
Returns YES if receiver can be alt-dragged.

depositColor: atPoint: 

- (void) depositColor: (NSColor*)color atPoint: (NSPoint)point;
Sets color at point in the receiver.

maximumSizeFromKnobPosition: 

- (NSSize) maximumSizeFromKnobPosition: (IBKnobPosition)knobPosition;
The maximum size for a knob surrounding the receiver.

minimumSizeFromKnobPosition: 

- (NSSize) minimumSizeFromKnobPosition: (IBKnobPosition)position;
The minimum size for a knob surrounding the receiver.

placeView: 

- (void) placeView: (NSRect)newFrame;
Places and resizes the receiver using newFrame.


gorm-1.3.1/Documentation/InterfaceBuilder/MainIndex.html0000644000175000017500000000105014360755340022255 0ustar heronheron Index

Classes
Protocols
Types
Variables

(intro)  (unframe)
gorm-1.3.1/Documentation/InterfaceBuilder/IBPlugin.gsdoc0000644000175000017500000000541714333120703022205 0ustar heronheron IBPlugin class documentation Software documentation for the IBPlugin class InterfaceBuilder/IBPlugin.h Description forthcoming. sharedInstance Returns the shared instance of the plugin. didLoad Notifies the receiver that the plugin will be loaded. document: document didAddDraggedObjects: roots fromDraggedLibraryView: view Notifies the receiver that objects were added to the document. label Returns the name of the plugin to be displayed. libraryNibNames Return the array of custom nib filenames. You are required to override this method when creating a plugin. pasteboardObjectsForDraggedLibraryView: view Notifies the receiver that one of it's components will be added to the document. preferencesView The preferences panel/view that should be added to the preferences drop down and preferences window. requiredFrameworks Returns the list of frameworks needed to support the plugin. willUnload Notifies the receiver that the plugin will be unloaded. gorm-1.3.1/Documentation/README0000644000175000017500000000202314360755341015166 0ustar heronheron1 Introduction ============== Read the NEWS file for the latest user visible changes. Read the INSTALL file for installation instructions. Gorm is an acronym for Graphic Object Relationship modeler (or perhaps GNUstep Object Relationship Modeler). Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) 'Interface Builder' application for GNUstep. Gorm is part of the GNUstep project, and is copyrighted by the Free Software Foundation. Gorm is released under the GPL - see the file 'COPYING' for details. Documentation for Gorm is located in the Documentation directory. It's also available on the wiki at http://wiki.gnustep.org/index.php/Gorm_Manual. 2 Status ======== Gorm is usable and stable. Please report bugs to bug-gnustep@gnu.org Known problems (things to do) - 1. Support for IB 3.0 functionality. 2. More palettes. 3 Acknowledgements ================== 1. Icons - Mostly by Andrew Lindsay. Gorm application icon by Jesse Ross. 2. Code - GormViewKnobs.m adapted from code by Gerrit van Dyk. gorm-1.3.1/Documentation/Gorm.texi0000644000175000017500000012635614327003122016107 0ustar heronheron\input texinfo @c -*-texinfo-*- @c %**start of header @settitle Guide to the Gorm application @setfilename Gorm.info @c %**end of header @defcodeindex cl @defcodeindex pr @include version.texi @ifinfo @format START-INFO-DIR-ENTRY * Gorm:: The GNUstep Graphical Object Relationship Modeler END-INFO-DIR-ENTRY @end format @end ifinfo @ifinfo This file documents the features and implementation of the Gorm application. Copyright (C) 1999,2000,2009,2010 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. @ignore Permission is granted to process this file through @TeX{} and print the results, provided the printed document carries copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual). @end ignore Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section entitled ``GNU Library General Public License'' is included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that the section entitled ``GNU Library General Public License'' and this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. @end ifinfo @iftex @finalout @c @smallbook @c @cropmarks @end iftex @titlepage @title Guide to the @title Gorm application @sp 3 @c @subtitle last updated February, 2001 @subtitle Version @value{GORM-VERSION} @subtitle (for use with @samp{gnustep-gui} version @value{GNUSTEP-VERSION}) @subtitle (and with @samp{gnustep-base} version 1.10.0) @author Gregory John Casamento @author Richard Frith-Macdonald @page @vskip 0pt plus 1filll Copyright @copyright{} 1999,2000 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section entitled ``GNU Library General Public License'' is included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that the section entitled ``GNU Library General Public License'' may be included in a translation approved by the author instead of in the original English. @strong{Note: You will be performing a valuable service if you report any bugs you encounter.} @strong{The full gorm manual is available at http://wiki.gnustep.org/index.php/Gorm_Manual.} @end titlepage @contents @node Top, Copying, , @menu * Copying:: GNU Public License says how you can copy and share Gorm. * Contributors:: People who have contributed to Gorm. * Installation:: How to build and install Gorm. * News:: The latest changes to Gorm. * Overview:: Gorm in brief. * Usage:: How Gorm is used. * Implementation:: Implementation notes. * Concept Index:: @end menu @node Copying, Contributors, Top, Top @unnumbered Copying See the file @samp{COPYING}. @node Contributors, Installation, Copying, Top @unnumbered Contributors to Gorm @itemize @bullet @item Gregory John Casamento Is the current maintaner of Gorm. Has implemented lots of new features and rewritten large portions of the existing code. @item Richard Frith-Macdonald wrote the original version of Gorm as part of the GNUstep project. @item Pierre-Yves Rivaille Is also a major contributor to the Gorm application. @end itemize @node Installation, News, Contributors, Top @chapter Installing Gorm @include install.texi @node News, Overview, Installation, Top @chapter News @include news.texi @subsection To Do @itemize @bullet @item Debug and stabilize existing code. @end itemize @node Overview, Usage, News, Top @chapter Overview Gorm is an application for creating the user interface (and possibly entire applications) for a GNUstep application. Initially a close clone of the old NeXTstep 3.3 Interface Builder application, I expect that Gorm will mutate beyond the capabilities of that app. GNUstep is an object-oriented programming framework and a collection of tools developed for or using the GNUstep libraries. You can find out more about GNUstep at @url{http://www.gnustep.org}@* The basic idea behind Gorm is simple - it provides a graphical user interface with which to connect together objects from the GNUstep libraries (as well as custom-written objects) and set their attributes in an easy to use manner. The collection of objects is then saved as a document which can either be re-loaded into Gorm for further editing, or can be loaded into a running GNUstep application in order to provide that application with a user interface or some subsystem. @section What You Must Know To Understand This Manual This manual assumes a working knowledge of Objective-C and C. These are necessary prerequisites to understanding some of the technical details and examples given here. @subsection Major features @cindex features @itemize @bullet @item Drag-and-drop creation of GUI elements from palettes. @item Run-time loading of additional palettes that may be written using an API very similar to that of Apple/NeXTs interface Builder palette API. @item Direct on-screen manipulation of GUI elements @item Manipulation and examination of objects via inspectors. @item Drag-and-drop creation of connections between objects. @item Interactive test mode for interfaces/object-networks under development. @item Saving data in a format loadable by GNUstep applications. @end itemize @section About this Manual This manual is ment to cover basic operation of the Gorm application. It is not meant to be a complete tutorial on GNUstep programming. @node Usage, Implementation, Overview, Top @chapter Usage Here is a description of the menu structure and what each menu does - @itemize @bullet @item Info @* The @samp{Info} menu item produces a submenu ... @itemize @bullet @item Info Panel @* A panel giving very limited information about Gorm @item Preferences @* A panel allowing you to set preferences about how Gorm operates @item Help (not implemented) @* A panel providing general help on using Gorm @end itemize @item Document @* The @samp{Document} menu item produces a submenu ... @itemize @bullet @item Open @* This produces an open panel that lets you open a Gorm document. You use this if you want to use Gorm to edit an exisiting document. @item New Application @* This creates a new application document within Gorm, you may then use the Palettes panel to drag new objects into the document. @item New Module @* Contains a submenu, which also contains: @itemize @bullet @item New Empty @* produces an empty document with only NSFirst and NSOwner. @item New Inspector @* produces a document with NSOwner, NSFirst and a window which is the correct size for an Inspector. @item New Palette @* produces a document which is like the one by @samp{New Inspector}, but it's window is the right size for a Palette. @end itemize @item Save @* This saves the current document @item Save As @* This saves the current document to a new file and changes the document name to match the new name on disk. @item Save All @* This saves all documents currently being edited by Gorm. @item Revert To Saved @* This removes all changes made to the document sunce the last save, or since the document was opened. @item Test Interface @* This provides interactive testing of the active document. To end testing, you need to select the @samp{quit} menu item. @item Translate @* Contains a submenu, which also contains: @itemize @bullet @item Load Strings @* Load a string file. This file contains the strings to translate. @item Export Strings @* Export a strings file. TODO @end itemize @item Miniaturize @* This miniaturises the active document (or whatever panel is currently key). @item Close @* This closes the currenly active document. @item Debug @* Prints some useful internal information. @item Load Sound @* Loads a sound into the .gorm file. @item Image @* Loads an image into the .gorm file. @end itemize @item Edit @* In addition to the usual Cut, Copy, Paste, Delete Select All, this menu also contains: @item Set Name @* This allows the user to set a name for a given object in the Objects view in the main document window. @itemize @bullet @item Group @* Which produces a submenu @itemize @bullet @item In Splitview @* Groups views into an NSSplitView. Gorm does this based on the relative positions of the views being grouped. It determines the orientation and the order of th views and then groups them either vertically or horizontally in the order they appear on the screen. @item In Box @* Simply groups all of the views into one NSBox. @item In ScrollView @* Simply groups all of the views into one NSScrollView. @item Ungroup @* Ungroups the contained views. @end itemize @item Disable Guideline @* This item toggles between Enable Guideline and Disable Guideline. This allows the user to turn on or off the guides which appear when placing views in a window or view in Gorm. @item Font Panel The Font Panel allow you to modify fonts of your views. @end itemize @item Classes @* Contains menus for working with classes. @itemize @bullet @item Create Subclass @* Creates a subclass of the currently selected class in the current document classes view. @item Load Class @* Loads a class from a .h file into the current document. @item Create Class Files @* Generates a .h and .m file from the currently selected class in the current document classes view. @item Instantiate @* Creates an instance of the selected class in the current document classes view. @item Add Outlet/Action @* Adds an outlet or an action depending on what is selected in the document classes view. If the outlet icon is selected, it will add an outlet, if it the action icon is selected it will add an action. @item Remove @* Removes the currently selected outlet, action or class. @end itemize @item Tools @* Contains the inspector and the palette menus @itemize @bullet @item Inspector @* Shows the inspector @item Palette @* Shows the palette @item Load Palette @* Opens a file panel and allows the user to load a palette into Gorm. @end itemize @item Layout @* Contains a menu for working with alignement and layout of you views @itemize @bullet @item Alignement Wich produces a submenu @itemize @bullet @item Center Vertically @* Center Vertically two or more views. TODO :explain what is the reference view @item Center Horizontally @* Center Horizontally two or more views. TODO :explain what is the reference view @item Left Edges @* TODO @item Right Edges @* TODO @item Top Edges @* TODO @item Bottom Edges @* TODO @end itemize @item Bring to Front @* Bring to front the selected view @item Send to Back @* Send to back the selected view @end itemize @item Windows @* Shows currently open windows. @item Services @* Shows currently available services. @item Hide @* Hides the application. @item Quit @* Quits the application. @end itemize @node Implementation, Concept Index, Usage, Top @chapter Implementation @menu * Preferences:: @end menu @section Notes on implementation The IB documentation on how object selection is managed and how editors and inspectors are used is unclear ... so I've gone my own way. 1. When a document is loaded, the document object creates an editor attached to each top-level object in the user interface (NSMenu and NSWindow objects). These editors must be aware of their edited objects being clicked upon, and clicking on one of these should cause the corresponding editor to become the active editor. The active editor is responsible for handling selection of the edited object (and any objects below it in the object hierarchy). Upon change of selection, the editor is responsible for sending an IBSelectionChangedNotification with the selection owner (normally the editor itsself) as the notification owner. The main application watches for these notifications in order to keep track of who has the selection. @section Connections The connection API is the same as that for IB, but with the extension that the document object must implement [-windowAndRect:forObject:] to return the window in which the object is being displayed, and the rectangle enclosing the object (in window base coordinates). This information is needed by Gorm so that it can mark the connection. The editors mananging the drag-and-drop operation for a connection must call @samp{[NSApp -displayConnectionBetween:and:]} to tell Gorm to update its display. This method sets the values currently returned by @samp{[NSApp -connectSource]} and @samp{[NSApp -connectDestination]}. @node Preferences, , Implementation, Implementation @chapter Preferences @cindex preferences @cindex defaults The preferences panel contains a number of useful customizable options which can be used to modify the behavior of Gorm. Some of these defaults can be safely modified from the command line by the user. @itemize @bullet @item PreloadHeaders @* The user can define a set of headers to load when Gorm starts creation of a new .gorm file. This is useful when the user is building a framework or a set of interfaces for a large application. @item ShowInspectors @* Controls whether the inspector shows when Gorm is started. @item ShowPalettes @* Controls whether the palettes window shows when Gorm is started. @item BackupFile @* Determines if the old .gorm is moved to .gorm~ when the modified version is saved. @item AllowUserBundles @* If the user sets this to YES, they will still get a warning, but Gorm won't quit. @end itemize @chapter Basic Concepts This chapter will explain some of the basic things you need to understand before starting work on a new application. @section Getting Started First you need to understand a few basic concepts. Gorm's main window includes a few standard entries which must be explained before we can proceed. They are: @cindex NSOwner @cindex NSFirst @cindex NSFont @itemize @bullet @item NSOwner @item NSFirst @item NSFont @end itemize @section What is NSOwner? NSOwner is the class which ``owns'' the interface. This is, by default, NSApplication, but it can be any class you like. You can change it by selecting NSOwner in the document window and going to the ``Custom Class'' inspector in the inspectors window. From there, you should see all of the classes which the NSOwner can assume. We'll discuss more about this later when we go over how to create a new application @section What is NSFirst? NSFirst is your interface to the responder chain. NSFirst is representative of the current ``first responder'' in the application. When you want a message, such as a changeFont: message, to go to the current first responder from, say, a menu, you connect the menu item to the NSFirst object in the document window. By doing this, it means that whichever object has first responder status at that time in the application will become the reciever of the ``changeFont:'' message. @subsection Responders @cindex NSResponder A responder is any subclass of NSResponder. This includes NSWindow, NSView and all of the NSControl subclasses. @subsection The Responder Chain @cindex Responder Chain The responder chain is a sequence of objects which are called to determine where a message sent to the first responder will go. A message invoked on the first responder will be invoked on the first object in the responder chain which responds to that message. The object which this message will be called on is determined in the method [NSApplication targetForAction:]. The call sequence is as follows, it will only proceed to the next step in each case if the current step fails to respond to the message which was invoked: @itemize @bullet @item The firstResponder of the keyWindow, if one exists. @item Iterates through all responders by pulling each in the linked list of responders for the key window. @item It then tries the keyWindow. @item Then the keyWindow's delegate @item if the application is document based it tries the document controller object for the key window. @item then it tries the mainWindow's list of responders (as above) @item the mainWindow's delegate @item if the app is document based, it tries the document controller for the main window @item and finally, it tries the NSApplication delegate. @end itemize If all of the options in this list are exhausted, it then gives up and returns nil for the object which is to respond. @section What is NSFont? NSFont represents the NSFontManager object for the application. This object is a shared singleton. This means that, for any given app, there should be only one instance of the object. This object is generally added to the document window when another objec, such as a Font menu item, is added to the interface, which, in turn, requires that this object be added to the document. @section The awakeFromNib method This method is called on any custom object which is unarchived from a nib/gorm file. This method is called on all objects after the entire archive has been loaded into memory and all connections have been made. Given all of this, you should not make any assumptions at all about which objects have been called and which have not. You should not release any objects in this method. @chapter Creating an Application If you have ProjectCenter, you need to open it and create an ``Application'' project. Create it with the name ``FirstApp''. From there you can open the MainMenu.gorm by clicking on interfaces and selecting MainMenu.gorm. If Gorm.app is properly installed, you Gorm should start up. If you don't have ProjectCenter, you can create the Gorm file by hand. First you need to start Gorm. You can either do this by doing @samp{gopen -a Gorm.app} from a command line prompt, or you can invoke it from the Dock or from the workspace's file viewer. You then need to select the @samp{Document} menu, and then @samp{New Application}. This should produce a new document window, with a menu and an empty window. This should be the same as with the ProjectCenter gorm file since this is the basic starting point for an application. For the sections below... only do one or the other, not both. @section Creating A Class In Gorm @cindex Creating Classes There are two ways to do this next operation. I will take you through each step by step. First click on the classes icon in the toolbar on the top of the Gorm document window. You should see the view below change to an outline view containing a list of class names. Once this happens we're ready to create a class. Select the class you wish to subclass in the outline view. For our example we will use the simplest: NSObject. Select it by clicking on the class name once. Then go to the Classes menu in the main menu and select Create Subclass (you can also type Alt-Shift-c, which will do this as well. The new class will be created in the list with the name ``NewClass''. @section Using The Outline View @cindex Classes Outline View From here double click on the subclass name to make it editable. Type the name of the class and hit enter. For our example, please use the class name MyController. When you hit enter an alert panel will appear and warn you about breaking connections, simply select OK and continue. This method of inputting the classes was inspired by IB in OPENSTEP 4.2/Mach which had functionality very similar to this. For users of that the transition to Gorm will be seamless. @subsection Adding Outlets In The Outline View Too add an outlet, select the round icon with the two horizontal lines in it (it sort of looks like a wall outlet. This should become depressed. Here you need to go to the Gorm Menu, under Classes select ``Add Outlet/Action''. Each time you press this menu item another outlet will be added with a name similar to newOutlet, as you add more the number at the end will increase. For now add only one outlet. To rename the outlet simply double click it and change it's name like you did the class above to ``value'' for the sake of our example. @subsection Adding Actions In the Outline View The procedure to add on action is precisely the same as adding an outlet, except you must click on the button which looks like a target (a circle with a + inside). Add an action and name it ``buttonPressed:'' for the sake of our example. @section Using The Class Edit Inspector @cindex Class Edit Inspector This way is much more inline with the ``OPENSTEP/GNUstep'' philosophy. For each object there is an inspector, even for Class objects. Once you have created the class as described in the previous section ``Creating a Class In Gorm'', you must skip to this section to use the inspector. In the Gorm main menu select Tools and then select ``Inspectors''. This will make certain that the inspectors window is being displayed. Once the inspectors window is up move the pulldown on the top to ``Attributes'' and select the class you created which should, at this point, have the name ``NewClass''. You'll notice that the ``Class'' field at the top which shows the name's background color has turned white, instead of grey. This indicates that this class name is editable. Erase ``NewClass'' from the text field and type ``MyController''. @subsection Adding Outlets In The Inspector Adding outlets is very intuitive in the inspector. Simply select the ``Outlets'' tab in the tab view and click ``Add'' to add more outlets, and ``Remove'' to remove them. For the sake of our example, add one outlet and name it ``value''. @subsection Adding Actions In the Inspector Very much like above only with the ``Actions'' tab, add an action called button pressed. @section Instantiating The Class @cindex Instantiating In the Classes outline view select the new class you've created, now called MyController and then go to the Gorm menu and select Classes, and then Instantiate. The document window should shift from the classes view to the objects view. Amoung the set of objects should be a new object called MyController. @section Adding Controls from the Palette Go to the Gorm menu and select Tools, then Palettes. This will bring the palette window to the front. The second palette from the left is the ``ControlsPalette''. Select that one and find the button object (it should have the word ``Button'' in it). Drag that to the window and drop it anywhere you like. Repeat this operation with the text field. It's the control with ``Text'' in it. We are now ready to start making connections between different objects in the document. @subsection Making Connections @cindex Connections The type of application we are creating is known as a ``NSApplication delegate'' this means that the MyController object will be set as the delegate of NSApplication. To make this connection click on NSOwner and hold down the Control button, keep it pressed as you drag from the NSOwner object to the MyController object. The inspectors window should change to the Connections inspector and should show two outlets ``delegate'' and ``menu''. Select the ``delegate'', at this point you should see a green S and a purple T on the NSOwner and MyController objects respectively, and press the ``Connect'' button in the inspector. In the ``Connections'' section of the inspector you should see an entry which looks similar to ``delegate (MyController)'' this indicates that the connection has been made. Now we need to make connections from the controller to the textfield and from the controller to the button. Select the MyController object and Control-Drag (as before) from the object to the text field, this will make an outlet connection. You should see the connections inspector again, this time select the ``value'' outlet and hit Connect. Next, control-drag from the button to the controller, this will make an action connection. The connections inspector should again appear. This time you need to select the ``target'' outlet, to get the list of actions. The list should have only one entry, which is ``buttonPressed:'' since this is the one we added earlier. Press Connect. You should see an entry like ``buttonPressed: (MyController'' in the Connections section of the inspector. It is also possible to make this connection to NSFirst, but to keep things simple, make it directly to the object. If you make the connection to buttonPressed: on NSFirst the functionality of the application will be unchanged, but the invocation will take the path described above in the section which describes ``The Responder Chain''. @section Saving the gorm file @cindex Saving At this point you must save the .gorm file. Go to the Gorm menu and click Documents and then select ``Save''. If the document was opened from a pre-existing .gorm, it will save to that same file name. If it is an UNTITLED .gorm file a file dialog will appear and you will need to select the directory where you want to store the .gorm file and type the name of the .gorm file. @section Generating .h and .m files from the class. This is different than saving, some people have gotten this confused with the idea of Gorm generating the code for the gui. Gorm does nothing of the sort (grin). Go to the Classes section in the Document window and select the MyController class yet again. Now go to the Gorm menu and select Classes and the select ``Create Class Files''. This will bring up a file panel and it allow you to select the directory in which to put the files. It will first create the MyController.m file and then the MyController.h file. Simply select the directory in which your app will reside and hit okay for both. You can change the names, but the default ones, which are based on the class name, should be sufficient. When you look at the .m for this class, you should see the @samp{buttonPressed:} method with the commecnt @samp{/* insert your code here */} in it. Delete this comment and add @samp{[value setStringValue: @@``Hello''];}. The class should look like this after you're done: /* All Rights reserved */ #include #include "MyController.h" @@implementation MyController - (void) buttonPressed: (id)sender @{ [value setStringValue: @@''Hello'']; @} @@end You recall, we connected the textfield to the ``value'' variable. The call above causes the method setStringValue to be invoked on the textfield you added to the window. Also, note that the name of the method is ``buttonPressed:''. This is the action which is bound to the button. When it is pressed the text in the textfield should change to ``Hello''. You now need to build the application either by copying in a GNUmakefile and making the appropriate changes or by using ProjectCenter's build capability, depending on if you use it or not. This app is available as ``SimpleApp'' in the Examples directory under the Documentation directory distributed with Gorm. Hopefully this has helped to demonstrate, albeit on a small scale, the capabilities of Gorm. In later chapters we will cover more advanced application architectures and topics. @chapter Another Simple Application This chapter will describe an application, very much like the previous one, but using a slightly different structure. This application builds on the previous application and uses WinController as the NSOwner of the app instead of making it the delegate of NSApplication. @section Adding Menu Items Select the first palette in the palette window, this should be the MenusPalette. The palette will have a bunch of pre-made menu items on it that you can add. We want to keep this simple, so grab the one called ``Item'' and drag it over to the menu in main menu nib (the menu on the screen, not the one in the objects view). As you have this object over the menu, the copy/paste mouse cursor should appear (it looks something like one box over another box at a 45 degree angle). Where you drop the menu determines it's position in the menu. You can always drag it to a new position after you've placed it by simply selecting and dragging up or down. Once you've placed the menu item, double click on the title and change it to ``Open'' You can also change the name in the NSMenuItem attributes inspector. Now you must add openWindow: to MyController and make the connection from the ``Open'' menu item to NSFirst. In the connections inspector, find the ``openWindow:'' action. You could simply make the connection directly, but this is an exaple to show you that this connection will work as well. Whichever object has First Responder status will be tested to see if it responds to this method. The implementation for openWindow: in MyController should simply be: - (void) openWindow: (id) sender @{ winController = [[WinController alloc] init]; @} Also add the winController attribute and an include to allow WinController to be referenced in the MyController.m file. @section Making a Controller-based .gorm file Create a new .gorm file as described in the previous section using the ``New Module'' menu item. Under ``New Module'' select ``New Empty''. This should produce a .gorm file with only NSOwner and NSFirst. From the WindowsPalette (which should be the second palette in the palette window) drag a window to the location where you want it to appear on the screen. In the window add a button called ``Close''. Go through the same steps you went through previously to create MyController, except for adding the outlets/actions, but this time with the name WinController. Add an outlet called window and an action called ``closeWindow:''. @cindex Setting the NSOwner Now, instead of instantiating the class go back to the objects view and select the NSOwner object. After that select the ``Custom Class'' inspector. Look for the entry for WinController and select it. You now must connect the ``window'' outlet to the Window you added previously. @cindex Connecting to a Window Switch back to the objects view, then Control-Drag not to the window on the screen, but to the window's representation in the objects view. In the connection inspector select the window outlet and click Ok. Save the .gorm as using the name Controller.gorm in the project directory. Generate the Controller.h and Controller.h files as described in the previous section. @subsection Add the init method to WinController Add an implementation of the action ``closeWindow:'' to WinController and also an init which loads the gorm/nib file and declares itself as the owner. Here's how: /* All Rights reserved */ #include #include "WinController.h" @@implementation WinController - (id) init @{ if((self = [super init]) != nil) @{ if([NSBundle loadNibNamed: @@"Controller" owner: self] == NO) @{ NSLog(@@"Problem loading interface"); return nil; @} [window makeKeyAndOrderFront: self]; @} return self; @} - (void) closeWindow: (id) sender @{ [window close]; @} - (void) dealloc @{ [super dealloc]; RELEASE(window); @} @@end The Controller gorm will be loaded and the connections will be made to the current instance, i.e. window will point to the window object instantianted in the .gorm file and all actions declared in the .gorm file which are attached to the object NSOwner will be resolved on self. @section Running the App Type the command @samp{open Controller.app} on the command line in the project directory. Once the application has started it should look very much like the first application. Select the ``Open'' button from the Menu and you should see the second window pop up, now choose close, this will call the method ``closeWindow:'' which should cause the window to disappear. @chapter Advanced Topics This section will cover some topics which won't be of general interest to most users. The details in this section pertain to the internal workings of Gorm. @section Gorm file format The current Gorm file format is basically just a set of objects, encoded one after another in a continuous stream with some markers indicating when a new class starts or which class is encoded. @subsection The Name Table @cindex Name Table Each object in the .gorm file has a name assigned to it by the application. This allows Gorm to refer to the objects by a name once they are loaded rather than an address. Each name is associated with it's object in a dictionary which preserves the overall structure of the GUI which has been created. @subsection The Custom Class Table This is only used when the user has associated a custom class with an existing instance in the gorm file. If the user has, for instance, added an NSWindow to the gorm, he/she can use the custom class inspector to select a subclass of NSWindow to change to. @subsection Connections Array This array is used to form the connections after the .gorm file is loaded. The method @samp{[... establishConnection]} is never called on either NSNibControlConnector or NSNibOutletConnector objects while in Gorm. This prevents the connections from having any effect while they are being edited in Gorm itself. Once they are loaded, the establishConnection method is called and the connections are made. @section Custom Class Encoding @cindex Custom Class Encoding Custom objects are an interesting challenge in Gorm. By definition, custom classes are not known to Gorm, unless they are in a palette (covered elsewhere). For classes which are not in a palette instances of these classes in Gorm are encoding in one of three ways: @itemize @bullet @item A Proxy - This is a standin object which takes the place of the custom object. This is usually used when the superclass of the object is a non-graphical object, such as a controller. The init message is called on this object when it's unarchived. @item A Custom View - This is a standin view object similar to the one descrribed above, but it is a subclass of NSView. When this is used the initWithFrame: message is called on the view instance which is created (based on what view subclass the user selects) @item A Template - Probably the most interesting of the three. This is a standin class which uses an existing instance created in Gorm to build a custom subclass from. For instance when a window subclass is created, call it MyWindow, a template class called GSWindowTemplate is used to hold the NSWindow created in Gorm as well as the name of the subclass to be created when the class is unarchived outside of Gorm as well as some additional information. When the classes are unarchived in the running app, the designated initializer for that class will be invoked, except in the case of NSControl subclasses. See the Apple documentation for more information. @end itemize All custom instances have awakeFromNib invoked on them when they are unarchived from the .gorm file. This allows the user to do whatever additional setup that needs to be done, such as setting attribute. Classes which are ``known'' are, of course, directly encoded into the .gorm file. @subsection Restrictions On Your Custom Subclasses The restrictions here are the same as those in Apple's InterfaceBuilder. In general, you cannot have additional information which is expected to be decoded in an initWithCoder: method from a custom class which uses one of the methods in the previous section. This is because, by definition, Gorm doesn't know anything about these classes and allowing you to use them in Gorm in this way is a convenience to make it simpler for the developer. Gorm therefore, must use one of the proxies to encode the class since it cannot encode the class directly. How can you get your classes into Gorm, you say? I'm pleased that you asked me that question. The best way to make your class known to Gorm so that you don't need to worry about the above restriction is to add a palette which contains your class. In this way, because you're literally linking the class into Gorm, you're making the class and it's structure known to Gorm so that it can encode the class directly. With the new palette loaded you can load and save classes containing real instances, not proxies, of your class encoded directly in the .gorm file. How to create a palette is discussed at length in the following section. @section Palettes @cindex Palettes @cindex Inspectors @cindex Editors @subsection Graphical Objects In A Palette You are, by now, familiar with the built in palettes which are provided with Gorm. Palettes are a powerful feature which allows the developer to add his/her own objects to Gorm. It is possible for a developer to write custom inspectors, editors and palettes for use with Gorm. A good example of a custom palette is palettetest in the dev-apps/test in the GNUstep distribution. Assuming you don't have that, however, I will explain precisely what you need to do in order to create a simple palette. The entire process is very short and suprisingly simple. First open Gorm and selection Gorm->Document->New Module->New Palette. This will create a palette sized window. Once that's done go to the classes view in the main document window and find ``IBPalette'' in the class list. Create a subclass of that, the name can be whatever you want. For the purposes of our example we'll call it MyPalette. Drag a custom view to the window and choose the class you would like to add to the palette from one of your custom classes. Once you've done this, generate the code for the classes (discussed in previous chapters). In the code, you'll add a method called ``-(void) finishInstantiate'' leave it empty for now. In the makefile for the palette make sure that the library or framework the view comes from is linked with the palette. Now build the palette. After the palette is built you're ready to load it into Gorm. Go to the preferences panel and go to ``Palettes''. This should bring up a table view. Click on add. You should see a open dialog open. Select the palette bundle with this. If the palette is successfully loaded, you should see the name appear in the list. One thing to note here. Once a palette is loaded, it can't be unloaded until you close and restart Gorm. This is because by loading the palette bundle, the code in the bundle is being linked into Gorm. This can't be undone, once it's done. Now, you should see the palette in the set of palettes in the palette window. Simply scroll over to it and select it's icon. When you do this, you should see the view that you set up using the custom view displayed as an actual instance. Note that we used one of the techniques listed above, it is possible to use any of the three for any object you add to your palette. You can now drag the view from the palette to a new window. @subsection Non Graphical Objects In A Palette You may recall the creation of a method called ``-(void) finishInstantiate'' in the previous section. This section will make full use of that method. Re-open the palette you created before, but this time add an image view to the window. Then add to the image view, the icon you want to represent the non-graphical object. Here you'll need to add an ivar to the MyPalette class in both Gorm and in your source code called, imageView. Once you've done this make the connection between the image view and it's ivar. Assuming that the class is called ``NonUIObject'', in finish instantiate, you'll need to add the following line of code: id obj = [NonUIObject new]; [self associateObject: obj type: IBObjectPboardType with: imageView]; This code has the effect of associating the non-ui object with the ui object you just added to represent it. When you drag and drop the element which prepresents the object to something, it will copy the object, not the ui element, to the destination. Congratulations, you now know how Palettes work. @chapter Frequently Asked Questions @cindex FAQ @subsection Should I modify the data.classes of file in the .gorm package? My advice is never to do this, ever. Some have said that ``they're plain text and I should be able to change them''. My response to this rather loosely pronounced and weak rationale is that if they are modified I cannot and will not guarantee that Gorm will be able to read them or will function correctly if it does. @subsection Why does my application crash when I add additional attributes for encoding in encodeWithCoder: or initWithCoder: in my custom class? If you've selected the custom class by clicking on an existing object and then selecting a subclass in the Custom Class Inspector in Gorm's inspector panel, then when the .gorm file is saved, Gorm must use what is called a template to take the place of the class so that when the .gorm is unarchived in the running application, the template can become the custom subclass you specified. Gorm has no way of knowing about the additional attributes of your subclass, so when it's archived the template depends on the encodeWithCoder: of the existing class. Also, when AppKit loads the .gorm file, the initWithCoder: on the subclass is called to allow the user to do any actions, except for additional encoding, which need to be done at that time. This is particularly true when non-keyed coding is used, since, with keyed coding, it's possible to skip keys that are not present. The application may not crash if keyed coding is used, but Gorm would still not know about the additional attributes and would not be able to persist them anyway. Please see information in previous chapters regarding palettes, if you would like to be able to add your classes to Gorm so that they don't need to be replaced by templates, or proxy objects. @subsection Why does Gorm give me a warning when I have bundles specified in GSAppKitUserBundles? Some bundles may use poseAs: to affect change in the existing behavior of some GNUstep classes. The poseAs: method causes an issue which may cause Gorm to incorrectly encode the class name for the object which was replaced. This makes the resulting .gorm file unusable when another user who is not using the same bundle attempts to load it. @subsection How can I avoid loading GSAppKitUserBundles in Gorm? You need to write to Gorm's defaults like this: @samp{ defaults write Gorm GSAppKitUserBundles '()' } Doing this overrides the settings in NSGlobalDomain for Gorm and forces Gorm not to load any user bundles at all. To eliminate this simply do: @samp{ defaults delete Gorm GSAppKitUserBundles } @subsection How can I change the font for a widget? This is a simple two step process. Select the window the widget is in and then select the widget itself, then bring up the font panel by hitting Command-t (or by choosing the menu item). By doing this you're making the window the main window and by selecting the widget, you're telling the editor for that object to accept changes. Then you can select the font in the panel and hit ``Set''. For some objects, the font panel isn't effective because those objects can't have a font directly set. @node Concept Index, , Implementation, Top @unnumbered Concept Index @printindex cp @bye gorm-1.3.1/Documentation/GormPrefs/0000755000175000017500000000000014360755340016214 5ustar heronherongorm-1.3.1/Documentation/GormPrefs/GormPrefController.html0000644000175000017500000001474514333120703022667 0ustar heronheron GormPrefController class documentation

GormPrefController class documentation

Authors

Generated by heron

Software documentation for the GormPrefController class

GormPrefController : NSObject

Declared in:
GormPrefs/GormPrefController.h
Description forthcoming.

Instance Variables

Method summary

panel 

- (id) panel;
Return the preferences panel.

popupAction: 

- (void) popupAction: (id)sender;
Called when the popup is used to select a pref panel.



Instance Variables for GormPrefController Class

_colorsView

@protected id _colorsView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_generalView

@protected id _generalView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_guidelineView

@protected id _guidelineView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_headersView

@protected id _headersView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_palettesView

@protected id _palettesView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_pluginsView

@protected id _pluginsView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_shelfView

@protected id _shelfView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

panel

@protected id panel;
Description forthcoming.

popup

@protected id popup;
Description forthcoming.

prefBox

@protected id prefBox;
Description forthcoming.





gorm-1.3.1/Documentation/GormPrefs/GormGeneralPref.html0000644000175000017500000001063614333120703022114 0ustar heronheron GormGeneralPref class documentation

GormGeneralPref class documentation

Authors

Generated by heron

Software documentation for the GormGeneralPref class

GormGeneralPref : NSObject

Declared in:
GormPrefs/GormGeneralPref.h
Description forthcoming.

Instance Variables

Method summary

backupAction: 

- (void) backupAction: (id)sender;
Should create a backup file.

classesAction: 

- (void) classesAction: (id)sender;
Show the classes view as a browser or an outline.

consistencyAction: 

- (void) consistencyAction: (id)sender;
Description forthcoming.

view 

- (NSView*) view;
View to be shown.



Instance Variables for GormGeneralPref Class

_view

@protected id _view;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

backupButton

@protected id backupButton;
Description forthcoming.

checkConsistency

@protected id checkConsistency;
Description forthcoming.

interfaceMatrix

@protected id interfaceMatrix;
Description forthcoming.

window

@protected id window;
Description forthcoming.





gorm-1.3.1/Documentation/GormPrefs/TypesTOC.gsdoc0000644000175000017500000000055314360755340020712 0ustar heronheron Types gorm-1.3.1/Documentation/GormPrefs/GormHeadersPref.gsdoc0000644000175000017500000000543614333120703022247 0ustar heronheron GormHeadersPref class documentation Software documentation for the GormHeadersPref class GormPrefs/GormHeadersPref.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. addAction: sender Add a header. preloadAction: sender Called when the "preload" switch is set. removeAction: sender Remove a header. view View to show in prefs panel. gorm-1.3.1/Documentation/GormPrefs/GormPluginsPref.gsdoc0000644000175000017500000000442414333120703022311 0ustar heronheron GormPluginsPref class documentation Software documentation for the GormPluginsPref class GormPrefs/GormPluginsPref.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. addAction: sender Add a palette to the list. removeAction: sender Remove a palette from the list. view View to be shown in the preferences panel. gorm-1.3.1/Documentation/GormPrefs/Untitled.html0000644000175000017500000000275214360755340020700 0ustar heronheron The Untitled Project

The Untitled Project

The index below lists the major components of the Untitled documentation.

Title Index
gorm-1.3.1/Documentation/GormPrefs/GormShelfPref.gsdoc0000644000175000017500000001030414333120703021723 0ustar heronheron GormShelfPref documentation Software documentation for the ArrResizer class GormPrefs/GormShelfPref.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. initForController: acontroller withPosition: pos Description forthcoming. position Description forthcoming. Software documentation for the GormShelfPref class GormPrefs/GormShelfPref.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. selectionChanged: n Called when the selection is changed. setDefaultWidth: sender Set the resizer back to the default width. setNewWidth: w Programmatically set a width. shelfCellsWidth Return the current width. startMouseEvent: event onResizer: resizer Invoked when the resizer widgets are moved. tile Sets the frame for the resize arrows. view The view to display in the prefs panel. GormShelfPref types

Description forthcoming.
gorm-1.3.1/Documentation/GormPrefs/GormGuidelinePref.gsdoc0000644000175000017500000000471114333120703022574 0ustar heronheron GormGuidelinePref class documentation Software documentation for the GormGuidelinePref class GormPrefs/GormGuidelinePref.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. ok: sender Called when the guidline preferences are changed. reset: sender Reset to defaults. view View to show in prefs panel. gorm-1.3.1/Documentation/GormPrefs/GormGeneralPref.gsdoc0000644000175000017500000000476214333120703022252 0ustar heronheron GormGeneralPref class documentation Software documentation for the GormGeneralPref class GormPrefs/GormGeneralPref.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. backupAction: sender Should create a backup file. classesAction: sender Show the classes view as a browser or an outline. consistencyAction: sender Description forthcoming. view View to be shown. gorm-1.3.1/Documentation/GormPrefs/GormShelfPref.html0000644000175000017500000002056414333120704021602 0ustar heronheron GormShelfPref documentation

GormShelfPref documentation

Authors

Generated by heron

Software documentation for the ArrResizer class

ArrResizer : NSView

Declared in:
GormPrefs/GormShelfPref.h
Description forthcoming.

Instance Variables

Method summary

initForController: withPosition: 

- (id) initForController: (id)acontroller withPosition: (ArrowPosition)pos;
Description forthcoming.

position 

- (ArrowPosition) position;
Description forthcoming.



Instance Variables for ArrResizer Class

arrow

@protected NSImage* arrow;
Description forthcoming.

controller

@protected id controller;
Description forthcoming.

position

@protected ArrowPosition position;
Description forthcoming.




Software documentation for the GormShelfPref class

GormShelfPref : NSObject

Declared in:
GormPrefs/GormShelfPref.h
Description forthcoming.

Instance Variables

Method summary

selectionChanged: 

- (void) selectionChanged: (NSNotification*)n;
Called when the selection is changed.

setDefaultWidth: 

- (IBAction) setDefaultWidth: (id)sender;
Set the resizer back to the default width.

setNewWidth: 

- (void) setNewWidth: (int)w;
Programmatically set a width.

shelfCellsWidth 

- (int) shelfCellsWidth;
Return the current width.

startMouseEvent: onResizer: 

- (void) startMouseEvent: (NSEvent*)event onResizer: (ArrResizer*)resizer;
Invoked when the resizer widgets are moved.

tile 

- (void) tile;
Sets the frame for the resize arrows.

view 

- (NSView*) view;
The view to display in the prefs panel.



Instance Variables for GormShelfPref Class

cellsWidth

@protected int cellsWidth;
Description forthcoming.

fname

@protected NSString* fname;
Description forthcoming.

leftResizer

@protected ArrResizer* leftResizer;
Description forthcoming.

rightResizer

@protected ArrResizer* rightResizer;
Description forthcoming.




GormShelfPref types

ArrowPosition

typedef enum ... ArrowPosition;
Description forthcoming.


gorm-1.3.1/Documentation/GormPrefs/GormPluginsPref.html0000644000175000017500000000764714333120703022170 0ustar heronheron GormPluginsPref class documentation

GormPluginsPref class documentation

Authors

Generated by heron

Software documentation for the GormPluginsPref class

GormPluginsPref : NSObject

Declared in:
GormPrefs/GormPluginsPref.h
Description forthcoming.

Instance Variables

Method summary

addAction: 

- (void) addAction: (id)sender;
Add a palette to the list.

removeAction: 

- (void) removeAction: (id)sender;
Remove a palette from the list.

view 

- (NSView*) view;
View to be shown in the preferences panel.



Instance Variables for GormPluginsPref Class

_view

@protected id _view;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

addButton

@protected id addButton;
Description forthcoming.

removeButton

@protected id removeButton;
Description forthcoming.

table

@protected id table;
Description forthcoming.

window

@protected id window;
Description forthcoming.





gorm-1.3.1/Documentation/GormPrefs/GormPrefController.gsdoc0000644000175000017500000001105114333120703023005 0ustar heronheron GormPrefController class documentation Software documentation for the GormPrefController class GormPrefs/GormPrefController.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. panel Return the preferences panel. popupAction: sender Called when the popup is used to select a pref panel. gorm-1.3.1/Documentation/GormPrefs/Untitled.igsdoc0000644000175000017500000002565214360755340021210 0ustar heronheron{ class = { ArrResizer = GormShelfPref; GormGeneralPref = GormGeneralPref; GormGuidelinePref = GormGuidelinePref; GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; GormPrefController = GormPrefController; GormShelfPref = GormShelfPref; }; classvars = { ArrResizer = { arrow = GormShelfPref; controller = GormShelfPref; position = GormShelfPref; }; GormGeneralPref = { "_view" = GormGeneralPref; backupButton = GormGeneralPref; checkConsistency = GormGeneralPref; interfaceMatrix = GormGeneralPref; window = GormGeneralPref; }; GormGuidelinePref = { "_view" = GormGuidelinePref; colorWell = GormGuidelinePref; currentSpacing = GormGuidelinePref; halfSpacing = GormGuidelinePref; spacingSlider = GormGuidelinePref; window = GormGuidelinePref; }; GormHeadersPref = { "_view" = GormHeadersPref; addButton = GormHeadersPref; headers = GormHeadersPref; preloadButton = GormHeadersPref; removeButton = GormHeadersPref; table = GormHeadersPref; window = GormHeadersPref; }; GormPalettesPref = { "_view" = GormPalettesPref; addButton = GormPalettesPref; removeButton = GormPalettesPref; table = GormPalettesPref; window = GormPalettesPref; }; GormPluginsPref = { "_view" = GormPluginsPref; addButton = GormPluginsPref; removeButton = GormPluginsPref; table = GormPluginsPref; window = GormPluginsPref; }; GormPrefController = { "_colorsView" = GormPrefController; "_generalView" = GormPrefController; "_guidelineView" = GormPrefController; "_headersView" = GormPrefController; "_palettesView" = GormPrefController; "_pluginsView" = GormPrefController; "_shelfView" = GormPrefController; panel = GormPrefController; popup = GormPrefController; prefBox = GormPrefController; }; GormShelfPref = { cellsWidth = GormShelfPref; fname = GormShelfPref; leftResizer = GormShelfPref; rightResizer = GormShelfPref; }; }; ivariable = { "_colorsView" = { GormPrefController = GormPrefController; }; "_generalView" = { GormPrefController = GormPrefController; }; "_guidelineView" = { GormPrefController = GormPrefController; }; "_headersView" = { GormPrefController = GormPrefController; }; "_palettesView" = { GormPrefController = GormPrefController; }; "_pluginsView" = { GormPrefController = GormPrefController; }; "_shelfView" = { GormPrefController = GormPrefController; }; "_view" = { GormGeneralPref = GormGeneralPref; GormGuidelinePref = GormGuidelinePref; GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; addButton = { GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; arrow = { ArrResizer = GormShelfPref; }; backupButton = { GormGeneralPref = GormGeneralPref; }; cellsWidth = { GormShelfPref = GormShelfPref; }; checkConsistency = { GormGeneralPref = GormGeneralPref; }; colorWell = { GormGuidelinePref = GormGuidelinePref; }; controller = { ArrResizer = GormShelfPref; }; currentSpacing = { GormGuidelinePref = GormGuidelinePref; }; fname = { GormShelfPref = GormShelfPref; }; halfSpacing = { GormGuidelinePref = GormGuidelinePref; }; headers = { GormHeadersPref = GormHeadersPref; }; interfaceMatrix = { GormGeneralPref = GormGeneralPref; }; leftResizer = { GormShelfPref = GormShelfPref; }; panel = { GormPrefController = GormPrefController; }; popup = { GormPrefController = GormPrefController; }; position = { ArrResizer = GormShelfPref; }; prefBox = { GormPrefController = GormPrefController; }; preloadButton = { GormHeadersPref = GormHeadersPref; }; removeButton = { GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; rightResizer = { GormShelfPref = GormShelfPref; }; spacingSlider = { GormGuidelinePref = GormGuidelinePref; }; table = { GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; window = { GormGeneralPref = GormGeneralPref; GormGuidelinePref = GormGuidelinePref; GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; }; method = { "-addAction:" = { GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; "-backupAction:" = { GormGeneralPref = GormGeneralPref; }; "-classesAction:" = { GormGeneralPref = GormGeneralPref; }; "-consistencyAction:" = { GormGeneralPref = GormGeneralPref; }; "-initForController:withPosition:" = { ArrResizer = GormShelfPref; }; "-ok:" = { GormGuidelinePref = GormGuidelinePref; }; "-panel" = { GormPrefController = GormPrefController; }; "-popupAction:" = { GormPrefController = GormPrefController; }; "-position" = { ArrResizer = GormShelfPref; }; "-preloadAction:" = { GormHeadersPref = GormHeadersPref; }; "-removeAction:" = { GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; "-reset:" = { GormGuidelinePref = GormGuidelinePref; }; "-selectionChanged:" = { GormShelfPref = GormShelfPref; }; "-setDefaultWidth:" = { GormShelfPref = GormShelfPref; }; "-setNewWidth:" = { GormShelfPref = GormShelfPref; }; "-shelfCellsWidth" = { GormShelfPref = GormShelfPref; }; "-startMouseEvent:onResizer:" = { GormShelfPref = GormShelfPref; }; "-tile" = { GormShelfPref = GormShelfPref; }; "-view" = { GormGeneralPref = GormGeneralPref; GormGuidelinePref = GormGuidelinePref; GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; GormShelfPref = GormShelfPref; }; }; output = { "../GormPrefs/GormGeneralPref.h" = ( "GormPrefs/GormGeneralPref.gsdoc" ); "../GormPrefs/GormGuidelinePref.h" = ( "GormPrefs/GormGuidelinePref.gsdoc" ); "../GormPrefs/GormHeadersPref.h" = ( "GormPrefs/GormHeadersPref.gsdoc" ); "../GormPrefs/GormPalettesPref.h" = ( "GormPrefs/GormPalettesPref.gsdoc" ); "../GormPrefs/GormPluginsPref.h" = ( "GormPrefs/GormPluginsPref.gsdoc" ); "../GormPrefs/GormPrefController.h" = ( "GormPrefs/GormPrefController.gsdoc" ); "../GormPrefs/GormPrefs.h" = ( "GormPrefs/GormPrefs.gsdoc" ); "../GormPrefs/GormShelfPref.h" = ( "GormPrefs/GormShelfPref.gsdoc" ); }; source = { "../GormPrefs/GormGeneralPref.h" = ( "../GormPrefs/GormGeneralPref.h", "../GormPrefs/GormGeneralPref.h", "../GormPrefs/GormGeneralPref.h", "../GormPrefs/GormGeneralPref.h", "../GormPrefs/GormGeneralPref.h", "../GormPrefs/GormGeneralPref.m" ); "../GormPrefs/GormGuidelinePref.h" = ( "../GormPrefs/GormGuidelinePref.h", "../GormPrefs/GormGuidelinePref.h", "../GormPrefs/GormGuidelinePref.h", "../GormPrefs/GormGuidelinePref.h", "../GormPrefs/GormGuidelinePref.h", "../GormPrefs/GormGuidelinePref.m" ); "../GormPrefs/GormHeadersPref.h" = ( "../GormPrefs/GormHeadersPref.h", "../GormPrefs/GormHeadersPref.h", "../GormPrefs/GormHeadersPref.h", "../GormPrefs/GormHeadersPref.h", "../GormPrefs/GormHeadersPref.h", "../GormPrefs/GormHeadersPref.m" ); "../GormPrefs/GormPalettesPref.h" = ( "../GormPrefs/GormPalettesPref.h", "../GormPrefs/GormPalettesPref.h", "../GormPrefs/GormPalettesPref.h", "../GormPrefs/GormPalettesPref.h", "../GormPrefs/GormPalettesPref.h", "../GormPrefs/GormPalettesPref.m" ); "../GormPrefs/GormPluginsPref.h" = ( "../GormPrefs/GormPluginsPref.h", "../GormPrefs/GormPluginsPref.h", "../GormPrefs/GormPluginsPref.h", "../GormPrefs/GormPluginsPref.h", "../GormPrefs/GormPluginsPref.h", "../GormPrefs/GormPluginsPref.m" ); "../GormPrefs/GormPrefController.h" = ( "../GormPrefs/GormPrefController.h", "../GormPrefs/GormPrefController.h", "../GormPrefs/GormPrefController.h", "../GormPrefs/GormPrefController.h", "../GormPrefs/GormPrefController.h", "../GormPrefs/GormPrefController.m" ); "../GormPrefs/GormPrefs.h" = ( "../GormPrefs/GormPrefs.h", "../GormPrefs/GormPrefs.h", "../GormPrefs/GormPrefs.h", "../GormPrefs/GormPrefs.h", "../GormPrefs/GormPrefs.h", "../GormPrefs/GormPrefs.h" ); "../GormPrefs/GormShelfPref.h" = ( "../GormPrefs/GormShelfPref.h", "../GormPrefs/GormShelfPref.h", "../GormPrefs/GormShelfPref.h", "../GormPrefs/GormShelfPref.h", "../GormPrefs/GormShelfPref.h", "../GormPrefs/GormShelfPref.m" ); }; super = { ArrResizer = NSView; GormGeneralPref = NSObject; GormGuidelinePref = NSObject; GormHeadersPref = NSObject; GormPalettesPref = NSObject; GormPluginsPref = NSObject; GormPrefController = NSObject; GormShelfPref = NSObject; }; title = { GormGeneralPref = "GormGeneralPref class documentation"; GormGuidelinePref = "GormGuidelinePref class documentation"; GormHeadersPref = "GormHeadersPref class documentation"; GormPalettesPref = "GormPalettesPref class documentation"; GormPluginsPref = "GormPluginsPref class documentation"; GormPrefController = "GormPrefController class documentation"; GormShelfPref = "GormShelfPref documentation"; }; type = { ArrowPosition = GormShelfPref; }; unitmethods = { ArrResizer = { "-initForController:withPosition:" = GormShelfPref; "-position" = GormShelfPref; }; GormGeneralPref = { "-backupAction:" = GormGeneralPref; "-classesAction:" = GormGeneralPref; "-consistencyAction:" = GormGeneralPref; "-view" = GormGeneralPref; }; GormGuidelinePref = { "-ok:" = GormGuidelinePref; "-reset:" = GormGuidelinePref; "-view" = GormGuidelinePref; }; GormHeadersPref = { "-addAction:" = GormHeadersPref; "-preloadAction:" = GormHeadersPref; "-removeAction:" = GormHeadersPref; "-view" = GormHeadersPref; }; GormPalettesPref = { "-addAction:" = GormPalettesPref; "-removeAction:" = GormPalettesPref; "-view" = GormPalettesPref; }; GormPluginsPref = { "-addAction:" = GormPluginsPref; "-removeAction:" = GormPluginsPref; "-view" = GormPluginsPref; }; GormPrefController = { "-panel" = GormPrefController; "-popupAction:" = GormPrefController; }; GormShelfPref = { "-selectionChanged:" = GormShelfPref; "-setDefaultWidth:" = GormShelfPref; "-setNewWidth:" = GormShelfPref; "-shelfCellsWidth" = GormShelfPref; "-startMouseEvent:onResizer:" = GormShelfPref; "-tile" = GormShelfPref; "-view" = GormShelfPref; }; }; }gorm-1.3.1/Documentation/GormPrefs/ClassesTOC.html0000644000175000017500000000240314360755340021044 0ustar heronheron Classes

Classes

ArrResizer
GormGeneralPref
GormGuidelinePref
GormHeadersPref
GormPalettesPref
GormPluginsPref
GormPrefController
GormShelfPref

gorm-1.3.1/Documentation/GormPrefs/index.html0000644000175000017500000000072014360755340020210 0ustar heronheron Autogsdoc-generated Documentation for Untitled gorm-1.3.1/Documentation/GormPrefs/GormHeadersPref.html0000644000175000017500000001146414333120703022112 0ustar heronheron GormHeadersPref class documentation

GormHeadersPref class documentation

Authors

Generated by heron

Software documentation for the GormHeadersPref class

GormHeadersPref : NSObject

Declared in:
GormPrefs/GormHeadersPref.h
Description forthcoming.

Instance Variables

Method summary

addAction: 

- (void) addAction: (id)sender;
Add a header.

preloadAction: 

- (void) preloadAction: (id)sender;
Called when the "preload" switch is set.

removeAction: 

- (void) removeAction: (id)sender;
Remove a header.

view 

- (NSView*) view;
View to show in prefs panel.



Instance Variables for GormHeadersPref Class

_view

@protected id _view;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

addButton

@protected id addButton;
Description forthcoming.

headers

@protected NSMutableArray* headers;
Description forthcoming.

preloadButton

@protected id preloadButton;
Description forthcoming.

removeButton

@protected id removeButton;
Description forthcoming.

table

@protected id table;
Description forthcoming.

window

@protected id window;
Description forthcoming.





gorm-1.3.1/Documentation/GormPrefs/TypesTOC.html0000644000175000017500000000073714360755340020563 0ustar heronheron Types

Types

ArrowPosition

gorm-1.3.1/Documentation/GormPrefs/GormPalettesPref.html0000644000175000017500000000767714333120703022333 0ustar heronheron GormPalettesPref class documentation

GormPalettesPref class documentation

Authors

Generated by heron

Software documentation for the GormPalettesPref class

GormPalettesPref : NSObject

Declared in:
GormPrefs/GormPalettesPref.h
Description forthcoming.

Instance Variables

Method summary

addAction: 

- (void) addAction: (id)sender;
Add a palette to the list.

removeAction: 

- (void) removeAction: (id)sender;
Remove a palette from the list.

view 

- (NSView*) view;
View to be shown in the preferences panel.



Instance Variables for GormPalettesPref Class

_view

@protected id _view;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

addButton

@protected id addButton;
Description forthcoming.

removeButton

@protected id removeButton;
Description forthcoming.

table

@protected id table;
Description forthcoming.

window

@protected id window;
Description forthcoming.





gorm-1.3.1/Documentation/GormPrefs/Untitled.gsdoc0000644000175000017500000000065314360755340021031 0ustar heronheron The Untitled Project

The index below lists the major components of the Untitled documentation.

gorm-1.3.1/Documentation/GormPrefs/OrderedSymbolDeclarations.plist0000644000175000017500000000131514360755340024374 0ustar heronheron{ ArrResizer = ( "-initForController:withPosition:", "-position" ); GormGeneralPref = ( "-view", "-backupAction:", "-classesAction:", "-consistencyAction:" ); GormGuidelinePref = ( "-view", "-ok:", "-reset:" ); GormHeadersPref = ( "-view", "-addAction:", "-removeAction:", "-preloadAction:" ); GormPalettesPref = ( "-view", "-addAction:", "-removeAction:" ); GormPluginsPref = ( "-view", "-addAction:", "-removeAction:" ); GormPrefController = ( "-popupAction:", "-panel" ); GormShelfPref = ( "-tile", "-selectionChanged:", "-startMouseEvent:onResizer:", "-setNewWidth:", "-setDefaultWidth:", "-view", "-shelfCellsWidth" ); }gorm-1.3.1/Documentation/GormPrefs/GormPalettesPref.gsdoc0000644000175000017500000000443114333120703022447 0ustar heronheron GormPalettesPref class documentation Software documentation for the GormPalettesPref class GormPrefs/GormPalettesPref.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. addAction: sender Add a palette to the list. removeAction: sender Remove a palette from the list. view View to be shown in the preferences panel. gorm-1.3.1/Documentation/GormPrefs/ClassesTOC.gsdoc0000644000175000017500000000056014360755340021201 0ustar heronheron Classes gorm-1.3.1/Documentation/GormPrefs/MainIndex.html0000644000175000017500000000062614360755340020762 0ustar heronheron Index

Classes
Types

(intro)  (unframe)
gorm-1.3.1/Documentation/GormPrefs/GormGuidelinePref.html0000644000175000017500000001026314333120703022440 0ustar heronheron GormGuidelinePref class documentation

GormGuidelinePref class documentation

Authors

Generated by heron

Software documentation for the GormGuidelinePref class

GormGuidelinePref : NSObject

Declared in:
GormPrefs/GormGuidelinePref.h
Description forthcoming.

Instance Variables

Method summary

ok: 

- (void) ok: (id)sender;
Called when the guidline preferences are changed.

reset: 

- (void) reset: (id)sender;
Reset to defaults.

view 

- (NSView*) view;
View to show in prefs panel.



Instance Variables for GormGuidelinePref Class

_view

@protected id _view;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

colorWell

@protected id colorWell;
Description forthcoming.

currentSpacing

@protected id currentSpacing;
Description forthcoming.

halfSpacing

@protected id halfSpacing;
Description forthcoming.

spacingSlider

@protected id spacingSlider;
Description forthcoming.

window

@protected NSWindow* window;
Description forthcoming.





gorm-1.3.1/Documentation/news.texi0000644000175000017500000006302514360751523016164 0ustar heronheron@c -*-texinfo-*- @ifset TEXT-ONLY @include version.texi @end ifset @section Noteworthy changes in version @samp{1.3.1} @itemize @bullet @item Fix issue with cells appearing in top level editor @item Make nibs read only since saving is unstable @item Add XIB reading so that they can be loaded by Gorm @item Add storyboard file to list of supported files so that an icon is displayed, does not support reading yet. @item Fix testing model mode @item Bug fixes in GormClassManager, GormDocument, etc. @end itemize @c ==================================================================== @c Keep the next line just below the list of changes in most recent version. @ifclear ANNOUNCE-ONLY @section Noteworthy changes in version @samp{1.2.28} @itemize @bullet @item Improved NSScrollView handling. @item Added NSMatrix to Group menu to make it easier to create NSMatrix objects @item Improved inspector for NSMatrix. Added ability to add rows/columns @item Fixed NSMatrix selection problems when grouped in an NSScrollView @item Fixes and other improvements to inspectors. Corrected issue where Gorm's menu stays present during testing mode. @end itemize @section Noteworthy changes in version @samp{1.2.26} @itemize @bullet @item Refactoring of palettes by Sergii Stoian to correct usability issues in Gorm. @item Refactoring of handling and rearrangment of controls in inspectors for usuability. @item Stability fixes to make Gorm easier to use. @item Autosizing of views corrected in many inspectors @item Improvements in error handling. @end itemize @section Noteworthy changes in version @samp{1.2.24} @itemize @bullet @item Fix for issue where Gorm was referencing private variables. This caused a crash when built with clang. @end itemize @section Noteworthy changes in version @samp{1.2.23} @itemize @bullet @item Fix for issue where NSPanel was being saved as an NSWindow in some cases. @end itemize @section Noteworthy changes in version @samp{1.2.22} @itemize @bullet @item Fix for bug#45040: Fix allows Gorm custom class functionality to work normally on OpenBSD/NetBSD/FreeBSD. @item Fixes for Solaris @item Memory leak fixes. @item Objective-C parser improvements. @end itemize @section Noteworthy changes in version @samp{1.2.20} @itemize @bullet @item Bug fixes #28643, #32827 @item Corrected issues with updating document when there is a change. @item Add cells as objects to the document so they can be properly edited. @item Changes to prevent recursive frame change notifications. @end itemize @section Noteworthy changes in version @samp{1.2.18} @itemize @bullet @item Code cleanup, removal of warnings when building with clang. @item Removal of use of call to objc_poseAs(..) which was preventing building with newer runtimes. @item Stability improvements. @end itemize @section Noteworthy changes in version @samp{1.2.16} @itemize @bullet @item XIB reading. @item Bug fixes for standalone views. @item Stability changes. @end itemize @section Noteworthy changes in version @samp{1.2.12} Requires: gnustep-base-1.20.0, gnustep-gui-0.18.0. Reason: Parts of the runtime which Gorm used were refactored and it was necessary to make corresponding changes in Gorm to use it. @itemize @bullet @item Correction for bugs #27295, 28643, 29085. @item Added a DO server which allows modification of internal data structures using a simple interface. @item Tooltips now show the object name and the object type for informational purposes. @item Opens default document when using NSWindows95InterfaceStyle. @end itemize @section Noteworthy changes in version @samp{1.2.10} @itemize @bullet @item Correction for bug #25401 @item Correction for some nib loading issues. @item Limited support for standalone views. @item Fixes for various bugs. @end itemize @section Noteworthy changes in version @samp{1.2.8} Requires: gnustep-gui-0.16.0. It will not compile without this version of the library. Reason: Nib and Gorm loading were moved to a more sensible file structure. Additionally, Nib loading was refactored. @itemize @bullet @item Correction for bug#25001. @item Correction for bug#25111. @item Fixes for nib encoding to use the proper template class instances. @item Changes to use new headers. @end itemize @section Noteworthy changes in version @samp{1.2.6} @itemize @bullet @item Corrections to allow Gorm to build and run properly on the Darwin operating system. @item Corrected sizing of Controls Palette. @item Added preliminary support for IBPlugin API. @item Added preferences panel to add plugins dynamically. @item Moved load/save logic for gorm, gmodel, and nib to plugins. This change should allow plugins for virtually any format to be read/written by Gorm. @item Correction for bug#24146, bug#23889. @end itemize @section Noteworthy changes in version @samp{1.2.4} Requires: gnustep-gui-0.13.2. Reason: Due to changes in popupbutton controller logic. @itemize @bullet @item Corrected bug#'s 19640, 21845, 19792, 15637, 17892, 18171. @item Added error panel to show the detected inconsistencies in a file. @item Added preference setting to turn on or off the gorm file repair logic. @item Added capability to repair logic to fix window level issue. @item Added ruler switch to scroll view inspector. @end itemize @section Noteworthy changes in version @samp{1.2.2} Requires: gnustep-gui-0.13.0. @itemize @bullet @item Moved to GPLv3 @item Added text field to NSTableColumn inspector to allow editing of table column title. @item Corrected issue with selection. @item Added button modifiers for special keys to button inspectors. @item Corrected issue with loading of older gorm files. @item Fix to allow Gorm's menus to be Mac-style, but not the one being edited. @item Other miscellaneous bug corrections. @end itemize @section Noteworthy changes in version @samp{1.2.1} @itemize @bullet @item Minor corrections to previous release. @end itemize @section Noteworthy changes in version @samp{1.2.0} @itemize @bullet @item Corrections to some editors to not change selection if connection is in progress. @item Force menu style to NSNextStepInterfaceStyle for editing purposes. @item Correction for memory issue when closing document. @item Minor bug fixes. @end itemize @section Noteworthy changes in version @samp{1.1.0} @itemize @bullet @item Changed Gorm architecture to use NSDocument classes. @item Abstracted model loading mechanism. This was done by implementing a set of ``Loader'' and ``Builder'' classes which handle filling in the data structures in Gorm and exporting them to external formats. @item Implemented GormNibWrapperLoader and GormNibWrapperBuilder for reading and writing Cocoa NIB files. @item Implemented GormGormWrapperLoader and GormGormWrapperBuilder for reading and writing GNUstep Gorm files @item Implemented GormGModelWrapperLoader for reading GNUstep gmodel files. @item Updated icon @item A number of bugs have been addressed in this release. @end itemize @section Noteworthy changes in version @samp{1.0.8} This is a bugfix release. @itemize @bullet @item Correction for bug#16587. @item Correction for handling non-string identifiers in tableviews. @end itemize @section Noteworthy changes in version @samp{1.0.6} This is a bugfix release. @itemize @bullet @item Entirely new icon set, for palettes, gorm, gmodel, nib and the application. @item Replaced some of the images for the inspectors. @item Corrected the following bugs since the last release: #16049, #16050, #15988, #16049, #15989, #15987, #15817, #15780, #15642, #15556. @item Changed formatting in some of the inspectors so that they are easier to navigate. @end itemize @section Noteworthy changes in version @samp{1.0.4} This is a bugfix release. @itemize @bullet @item Corrected some bug#15236 with window style mask settings. @item Corrected bug#15236, which caused window fields in the inspector not to update when the field was being edited and a new window is selected. @item Corrected bug #15178. @item Corrected problem with standalone views @end itemize @section Noteworthy changes in version @samp{1.0.2} This is a bugfix release. @itemize @bullet @item Fixed some bugs with table column selection. @item Corrected a minor problem in the custom class inspector. @end itemize @section Noteworthy changes in version @samp{1.0.0} PLEASE NOTE: This version of Gorm requires base 1.11.1 and gui 0.10.1 to be installed (gnustep-startup-0.13.0). @itemize @bullet @item All inspectors are now modeled in .gorm files. @item Added autosizing to form attributes inspector. @item Utilize and maintain parent/child data structure more pervasively @item Reorganized code in palettes for cleaner implementation. @item Removed code to check for user bundles, since bugs in Camaelon which prompted those changes were fixed long ago. @item Added documentation to GormCore @end itemize @section Noteworthy changes in version @samp{0.11.0} @itemize @bullet @item Improved implementation of canSubstituteForClass: the default implementation of this method tests the classes to see if initWithCoder: or encodeWithCoder: is implemented on a subclass to determine automatically if that class has the same encoding signature as the original class, if it does, it can be substituted. @item Improved handling of classes which use cell classes in the custom class inspector. The inspector now autmatically replaces the cell class with the appropriate one when the user selects a given subclass. @item Browser based class editor in document panel. This interface is more like the one on OSX. The user now has a choice in preferences to determine which view they would like to use. @item Translation tools. The Document->Translate menu allows the user to export string and import strings in the strings format, so that someone can easily translate just the strings in the file and doesn't need to directly edit anything in Gorm. The strings file can then be loaded back into Gorm and all of the relevant strings are updated. @item Alignment tools. In the new Layout menu there are options to align views, center views, bring views to front or push them to the back of the view layers. @item Implementation of IBViewResourceDraggingDelegate. This allows updating of the pull down in the inspectors panel dynamically. It requires the developer of a palette to implement some code to enable this, as on OSX. @item Lots of bugfixes and usability changes are also included in this release. @end itemize @section Noteworthy changes in version @samp{0.9.10} @itemize @bullet @item Gorm now has a full implementation of canSubstituteForClass: which is used to determine if a class can be substituted in the custom class inspector. This allows classes added in palettes to say whether or not they can be used as a subsitute for a kit class. @item Better separation of Gorm into libraries. As well as the ability to compile on windows with a simple: "make install" @item Implementation of IBResourceManager class. This class is used by palettes to register drag types to be considered by the top level editors in the document window: object, sound, image, class. @item Gorm now is able to switch views in the document window when you drag a file into it. If it's an image it will switch to the image view, if it's a sound, the sound view, an object the object view etc or if it's a class (a .h file) it will switch to the classes view. @item Drag and drop parsing of header files (if you hadn't gathered from the previous item). @item Better support for standalone views. while the user cannot instantiate from the classes view (there were too many problems with this approach). They can now drag any view from the palette into the objects view and have it work. @item A myriad of bug fixes. @end itemize @section Noteworthy changes in version @samp{0.9.2} NOTE: This is mainly a bugfix release. @itemize @bullet @item Some improvements to the procedure for removing connections. @item Corrected various issues with header parsing. @item Now closes windows which were opened during interface testing such as font panels, info panels, etc. @item Minor corrections to background color for a number of inspectors. @item Improvements to gmodel importation. @item Better detection of when the user is utilizing a user bundle. Gorm will now warn the user with a panel. @item Various improvements in documentation @end itemize @section Noteworthy changes in version @samp{0.9.0} @itemize @bullet @item Images/Sounds can now be dragged into a matrix cell. @item Fully implemented date and number formatter inspectors (these classes still need work in GUI). @item Added warning panel if the user attempts to edit a .gorm file created with a newer version of Gorm @item Modified data.classes format so that only those actions specifically added to FirstResponder are listed. @item Greatly improved gmodel importation. (experimental) @item It's now possible to add methods to classes which are not custom. This allows the user to add actions which may have been added to those classes by categories. @item Completely new header parser implemented. @item Improved cut/paste. It's now possible to use cut/paste from almost anywhere. The class editor now fully supports it. @item Improved implementation of some of the InterfaceBuilder framework classes. @item Object editor will now remove all instances of a class that has been deleted from the class editor. @item The class inspector and the classes view will now apply stricter rules to names of actions and outlets to ensure that they are properly entered. @item All inspectors work perfectly with customized colors. @item Fixed a number of bugs. @end itemize @section Noteworthy changes in version @samp{0.8.0} PLEASE NOTE: It is important for this release that you upgrade to Gorm 0.8.0 when using Gorm with the new GNUstep libraries (base-1.10.0 and gui-0.9.4). This version of Gorm contains some features which are reliant on changes made in those versions of the libraries. It is stated in Gorm's documentation (the Gorm.texi file) that this is required, but I felt it important enough to also mention it here so that it is known beyond a reasonable doubt. @itemize @bullet @item New gorm file version. @item Full custom palette support @item Palette preferences panel to allow the user to configure palettes to load @item Experimental: Standalone views. This feature is to allow the use of a view without the need of a containing window. This allows developers to treat these views as they would any other top level object in the .gorm file. This is experimental functionality. @item Improved NSTableColumn inspector. The new inspector allows the user to change the data cell used for a given column. This allows the user to select from a list of cell subclasses and set the appropriate custom or non-custom one they want to appear in that column of the table. @item Improved layout of some of the inspectors. @item Removed old class parser. The parser was somewhat buggy and was actually causing some issues. A new parser will be available in the next version of Gorm. For now users will need to use the class inspector or the outline view to enter classes into Gorm. @item Experimental: ``File'' section. This is essentially a per-file preference which allows the user to control which version of GNUstep a given file will be compatible with. It also lists the potential compatibility issues with the selected version. @item Improved controls palette. New items for some of the standard font replace the old ``Title'' widget which was a System-14 font. The new widgets use a selection of the standard System font to allow the user to easily build a gui using these and reducing the amount of time the user needs to spend fiddling with the font panel. @end itemize @section Noteworthy changes in version @samp{0.7.7} @itemize @bullet @item Important bugfixes in editor classes. @item Rearranged some of the editor classes to be in the palettes which contain the classes they are responsible for editing (GormButtonEditor & GormTabViewEditor). @item Image and Sound editors will now display system default images or sounds if they are available. @item Document window now uses an NSToolbar (experimental). @item Improved the layout of some of the inspectors. @item Corrected some minor issues in the inspectors @item Added code to allow NSTableView and NSOutlineView to show some data during testing @item Gorm will now show an alert panel when a model fails to load or test properly. @end itemize @section Noteworthy changes in version @samp{0.7.6} This release is mainly a bugfix release for 0.7.5. @itemize @bullet @item Improved .gmodel support @item Corrections to previous repair feature. @item Important bugfixes for Menu editing. @item Important bugfixes for class inspector. @end itemize @section Noteworthy changes in version @samp{0.7.5} @itemize @bullet @item The 'reparent' feature in the class inspector. This allows the user to change the class hierarchy from within Gorm. @item Some important bugfixes @item a property 'GormRepairFileOnLoad' (untested) which should repaire old .gorm files... It is HIGHLY recommended that Gorm not be run with this on constantly and that you back up any files which you want to repair before opening them with this option turned on. @item A shelf inspector in prefs that lets you expand the size of the names in the object view.. @item Support for NSFontManager @item A way to restore a complete NSMenu if it's deleted (a new palette entry for NSMenu, not just an item) @end itemize @section Noteworthy changes in version @samp{0.6.0} @itemize @bullet @item Several major bugs corrected. @item Clarified some of the inspectors @item Menu items are now properly enabled/disabled when appropriate @item More descriptive title displayed when a class is being edited. @end itemize @section Noteworthy changes in version @samp{0.5.0} @itemize @bullet @item Enabled defer in NSWindow inspector. @item Added code to the connection inspector to prevent erroneous connections. @item Added support for upgrading of old .gorm files using the older template mechanism @item Grouping with an NSSplitView now operates using the relative positions of the views in the window. @item Custom Class inspector now shows all subclasses, not just direct custom subclasses. @item Bug fixes, eliminated memory leak, code cleanup, etc. @end itemize @section Noteworthy changes in version @samp{0.4.0} @itemize @bullet @item New Menu and Menu Item inspectors. @item User can now specify the Services and Windows menus in the menu inspector. @item User can specify a non-custom subclass as well as a custom one to replace the class when the .gorm is unarchived. This can be used to turn a NSTextField into NSSecureTextField and etc. @item New set name panel. @item New switch control on the font panel to allow the user to specify if a font is encoded with its default size or not. @item Added NSStepper and NSStepperCell to the class list to allow creation of custom subclasses. @item Windows and Services menus now function correctly. @end itemize @section Noteworthy changes in version @samp{0.3.1} @itemize @bullet @item New custom class system. @item Images now persist correctly when added to a button or view. @item Fixed DND @item Various bugfixes @end itemize @section Noteworthy changes in version @samp{0.3.0} @itemize @bullet @item Preferences added. @item User can now enable and disable guidlines for easier editing. @item Refactored code into GormLib which is a clone of the InterfaceBuilder framework. This facilitates creating palettes and inspectors outside of Gorm. @item Added class inspector for easier editing of classes. This gives the user the option to use either the outline view or the inspector to edit new classes. @item Added inspectors for the following: NSScrollView, NSProgressIndicator, NSColorWell, GormImageInspector (for images added to .gorm files). @item Improved look of NSTabView inspector. @item Removed all warnings from the code. @item various bug fixes. @end itemize @section Noteworthy changes in version @samp{0.2.5}. Many fixes and improvements to make the app work better. @itemize @bullet @item Better parsing of headers @item Interface code redone as gorm files. @item Re-add multiple selection via mouse drag. @end itemize @section Noteworthy changes in version @samp{0.2.0} snapshot. Gobs of improvements, mostly due to the hard work of Gregory John Casamento and Pierre-Yves Rivaille. Thanks guys! @itemize @bullet @item Custom class support/translations implemented. @item Added NSScrollView, NSPopupButton, NSOutlineView, NSTableView editing. @item Improved test mode support. @item Improved drag n' drop support on many items. @item Intelligent placement hints. @item Read gmodel files. @item More inspectors. @item Sound and Image support. @item gorm files were changed to directory wrappers for more flexibility. @end itemize @section Noteworthy changes in version @samp{0.1.0} @itemize @bullet @item load/parses class files for entry into class list. @item Pallete/inspectors for date and number formatters @item Pallete/Inspectors for browsers and tableViews @item NSStepper, NSForm, NSPopupButton pallete item and inspector @item Most inspectors greatly improved and fleshed out. @item Custom views added. @item Ability to edit cells in a matrix. @item Ability to change the font of some objects. @end itemize @section Noteworthy changes in version @samp{0.0.3} @itemize @bullet @item Create stub .m and .h files from new classes @item Works better with ProjectCenter. @item Handle Ctrl-Drag and Alt-Drag of objects - automatic conversion to matrices and/or increase decrease rows and cols. @item Edit NSForms titles in place. @item Edit NSBoxes and add subviews. @item Support for custom objects. @end itemize @section Noteworthy changes in version @samp{0.0.2} @itemize @bullet @item Add popup and pulldown menu controls @item Menu support @item More inspectors @item Some support for connections @item Much more fleshed out - too numerous to mention. @end itemize @section Noteworthy changes in version @samp{0.0.1} @itemize @bullet @item 8th December 1999 @itemize @bullet @item Save/Load 'nib' documents (binary archived data) This works so far as it can be tested - but that's just archives containing windows or panels so far. @item Load palettes Loading of palettes works. You can load palettes from the 'Tools' menu. Gorm automatically loads all the palettes from its Resources directory. @item Basic framework So far, the app provides a basic framework that needs fleshing out. @itemize @bullet @item It has a palettes manager object that allows you to select a palette and drag items from the palette into your document. @item It has a special per-document editor object, which keeps track of a matrix of icons representing the top-level objects in the document. @item It has an inspector manager class, which updates the inspector panel when the selected object is changed by an editor. @item It has special inspectors for handling an empty selection or a multiple selection. @end itemize @item Palettes Four palettes (three of which are empty at present) are built and installed in the apps Resources directory. The Window palette is more fully fleshed out than the other palettes. It permits windows and panels to be created in Gorm. If provides the start of a window attributes inspector. @end itemize @item 18 December 1999 @itemize @bullet @item You can drag views from a palette into a window or panel. @item You can select views in a window by clicking on them, shift-clicking (for multiple selection), or click-drag on the window background to select views in a box. @item You can delete/cut/copy/paste views betwen windows. @item You can move views in a window by clicking on them and dragging. @item You can resize views by clicking on their knobs and dragging. @item You can control-drag to mark source and destination views for a connection. @item Next task - inspectors. The connection inspector needs to be implemented to complete the process of establishing connections. The size inspector needs to be implemented to set autosizing parameters for a view. Once these are done, the object editor needs to be made to support connections so that we can connect between objects other than views, then we need to write a menu editor. @end itemize @item 22 December 1999 @itemize @bullet @item Connections inspector is now working - but it needs some effort to tidy it up. @item Class info (outlets and actions) is specified in 'ClassInformation.plist' and needs to be present so that the app knows what outlets/actions an object has (and therefore what connections can be made). @item The view size inspector is working - allowing you to set the size of the subviews within a window. @item The attributes inspector for 'FilesOwner' is working, so you can define the class of the files owner (it defaults to NSApplication). @item There is a crude panel for setting the name of the selected object. @item I've created a couple of new images and got rid of the two NeXT images that were lurking in there. @item There is a Testing directory, with a GormTest application that lets you load a nib for testing - it assumes that the nib will set its FilesOwners delegate to point to a window, and makes that window the key window ... @end itemize @item 23 December 1999 Last work before christmas ... Various bits of tidying up plus - Added an evil hack of a generic attributes inspector ... This looks through all the methods of the selected object to find those taking a single argument and beginning with 'set'. It makes all these setting methods (whose argument is a simple scalar type or an object) available for you to invoke from the inspector panel. This makes it possible to set pretty much any attribute of any object, but you do need to have the GNUstep header files to hand, so you can tell what numeric values to enter to achieve a desired result. @end itemize @end ifclear gorm-1.3.1/Documentation/GNUmakefile0000644000175000017500000000126014327003122016344 0ustar heronheronPACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make include ../Version # The application to be compiled DOCUMENT_NAME = Gorm DOCUMENT_TEXT_NAME = README NEWS INSTALL ANNOUNCE # The texinfo source files to be used Gorm_TEXI_FILES = install.texi news.texi Gorm.texi announce.texi ANNOUNCE_TEXI_FILES = version.texi ANNOUNCE_TEXT_MAIN = announce.texi README_TEXI_FILES = version.texi README_TEXT_MAIN = readme.texi INSTALL_TEXI_FILES = version.texi INSTALL_TEXT_MAIN = install.texi NEWS_TEXI_FILES = version.texi NEWS_TEXT_MAIN = news.texi -include Makefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/documentation.make -include Makefile.postamble gorm-1.3.1/Documentation/Gorm.cps0000644000175000017500000000122614360755340015724 0ustar heronheron\initial {C} \entry{Class Edit Inspector}{26} \entry{Classes Outline View}{25} \entry{Connecting to a Window}{29} \entry{Connections}{26} \entry{Creating Classes}{25} \entry{Custom Class Encoding}{31} \initial {D} \entry{defaults}{22} \initial {E} \entry{Editors}{32} \initial {F} \entry{FAQ}{34} \entry{features}{16} \initial {I} \entry{Inspectors}{32} \entry{Instantiating}{26} \initial {N} \entry{Name Table}{31} \entry{NSFirst}{23} \entry{NSFont}{23} \entry{NSOwner}{23} \entry{NSResponder}{23} \initial {P} \entry{Palettes}{32} \entry{preferences}{22} \initial {R} \entry{Responder Chain}{23} \initial {S} \entry{Saving}{27} \entry{Setting the NSOwner}{29} gorm-1.3.1/Documentation/install.texi0000644000175000017500000000132414327003122016634 0ustar heronheron@c -*-texinfo-*- @ifset TEXT-ONLY @include version.texi @end ifset @subsection Required software You need to have the GNUstep core libraries installed in order to compile and use Gorm. The core packages are, at a minimum: @itemize @bullet @item gnustep-make @item gnustep-base @item gnustep-gui @item gnustep-back @end itemize See @url{http://www.gnustep.org/} for further information. @subsection Build and Install Steps to build: @itemize @item make && make install @end itemize Please note that GormLib must be installed for Gorm.app to run. @subsection Trouble Give us feedback! Tell us what you like; tell us what you think could be better. Send bug reports and patches to @email{bug-gnustep@@gnu.org}. gorm-1.3.1/Documentation/Gorm.log0000644000175000017500000001347414360755340015730 0ustar heronheronThis is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdfetex 2022.6.11) 15 JAN 2023 05:52 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. %&-line parsing enabled. **\nonstopmode \input ./Gorm.texi \input ./Gorm.texi (./Gorm.texi (/usr/share/texmf/tex/texinfo/texinfo.tex Loading texinfo [version 2019-09-20.22]: \outerhsize=\dimen16 \outervsize=\dimen17 \topandbottommargin=\dimen18 \bindingoffset=\dimen19 \normaloffset=\dimen20 \txipagewidth=\dimen21 \txipageheight=\dimen22 \defaultoutput=\toks13 \headlinebox=\box16 \footlinebox=\box17 \savedtopmark=\toks14 \margin=\insert252 \EMsimple=\toks15 \groupbox=\box18 \groupinvalidhelp=\toks16 \mil=\dimen23 \exdentamount=\skip18 \inmarginspacing=\skip19 \centerpenalty=\count27 pdf, \tempnum=\count28 \lnkcount=\count29 \filename=\toks17 \filenamelength=\count30 \pgn=\count31 \toksA=\toks18 \toksB=\toks19 \toksC=\toks20 \toksD=\toks21 \boxA=\box19 \boxB=\box20 \countA=\count32 \nopdfimagehelp=\toks22 fonts, \textleading=\dimen24 \sffam=\fam8 markup, \fontdepth=\count33 glyphs, \errorbox=\box21 page headings, \titlepagetopglue=\skip20 \titlepagebottomglue=\skip21 \evenheadline=\toks23 \oddheadline=\toks24 \evenfootline=\toks25 \oddfootline=\toks26 tables, \tableindent=\dimen25 \itemindent=\dimen26 \itemmargin=\dimen27 \itemmax=\dimen28 \itemno=\count34 \multitableparskip=\skip22 \multitableparindent=\skip23 \multitablecolspace=\dimen29 \multitablelinespace=\skip24 \colcount=\count35 \everytab=\toks27 conditionals, \doignorecount=\count36 indexing, \dummybox=\box22 \whatsitskip=\skip25 \whatsitpenalty=\count37 \entryrightmargin=\dimen30 \thinshrinkable=\skip26 \partialpage=\box23 \doublecolumnhsize=\dimen31 \balancedcolumns=\box24 sectioning, \unnumberedno=\count38 \chapno=\count39 \secno=\count40 \subsecno=\count41 \subsubsecno=\count42 \appendixno=\count43 \absseclevel=\count44 \secbase=\count45 \chapheadingskip=\skip27 \secheadingskip=\skip28 \subsecheadingskip=\skip29 toc, \tocfile=\write0 \contentsrightmargin=\skip30 \savepageno=\count46 \lastnegativepageno=\count47 \tocindent=\dimen32 environments, \lispnarrowing=\skip31 \envskipamount=\skip32 \lskip=\skip33 \rskip=\skip34 \circthick=\dimen33 \cartouter=\dimen34 \cartinner=\dimen35 \normbskip=\skip35 \normpskip=\skip36 \normlskip=\skip37 \nonfillparindent=\dimen36 \tabw=\dimen37 \verbbox=\box25 defuns, \defbodyindent=\skip38 \defargsindent=\skip39 \deflastargmargin=\skip40 \defunpenalty=\count48 \parencount=\count49 \brackcount=\count50 macros, \paramno=\count51 \macname=\toks28 cross references, \auxfile=\write1 \savesfregister=\count52 \toprefbox=\box26 \printedrefnamebox=\box27 \infofilenamebox=\box28 \printedmanualbox=\box29 insertions, \footnoteno=\count53 \SAVEfootins=\box30 \SAVEmargin=\box31 (/usr/share/texlive/texmf-dist/tex/generic/epsf/epsf.tex This is `epsf.tex' v2.7.4 <14 February 2011> \epsffilein=\read1 \epsfframemargin=\dimen38 \epsfframethickness=\dimen39 \epsfrsize=\dimen40 \epsftmp=\dimen41 \epsftsize=\dimen42 \epsfxsize=\dimen43 \epsfysize=\dimen44 \pspoints=\dimen45 ) \noepsfhelp=\toks29 localization, \nolanghelp=\toks30 \countUTFx=\count54 \countUTFy=\count55 \countUTFz=\count56 formatting, \defaultparindent=\dimen46 and turning on texinfo input format.) texinfo.tex: doing @include of version.texi (/home/heron/Development/gnustep/apps-gorm/Documentation/version.texi) [1{/var/ lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2] (/home/heron/Development/gnustep/apps-gorm/Documentation/Gorm.toc [-1] [-2]) [-3] (/home/heron/Development/gnustep/apps-gorm/Documentation/Gorm.toc) (/home/heron/Development/gnustep/apps-gorm/Documentation/Gorm.toc) (Copying) \openout0 = `Gorm.toc'. (/home/heron/Development/gnustep/apps-gorm/Documentation/Gorm.aux) \openout1 = `Gorm.aux'. (Contributors to Gorm) [1] Chapter 1 [2] texinfo.tex: doing @include of install.texi (/home/heron/Development/gnustep/apps-gorm/Documentation/install.texi) Chapter 2 [3] texinfo.tex: doing @include of news.texi (/home/heron/Development/gnustep/apps-gorm/Documentation/news.texi [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]) Chapter 3 [15] @cpindfile=@write2 \openout2 = `Gorm.cp'. Writing index file Gorm.cp Chapter 4 [16] [17] [18] [19] Chapter 5 [20] Chapter 6 [21] Chapter 7 [22] [23] Chapter 8 [24] [25] [26] [27] Chapter 9 [28] [29] Chapter 10 [30] [31] [32] Chapter 11 [33] [34] (Concept Index) [35] (/home/heron/Development/gnustep/apps-gorm/Documentation/Gorm.cps) [36] ) Here is how much of TeX's memory you used: 3368 strings out of 497013 34825 string characters out of 6205050 81728 words of memory out of 5000000 4431 multiletter control sequences out of 15000+600000 34203 words of font info for 119 fonts, out of 8000000 for 9000 96 hyphenation exceptions out of 8191 16i,6n,16p,1095b,760s stack positions out of 5000i,500n,10000p,200000b,80000s Output written on Gorm.pdf (41 pages, 211315 bytes). PDF statistics: 680 PDF objects out of 1000 (max. 8388607) 617 compressed objects within 7 object streams 48 named destinations out of 1000 (max. 500000) 829 words of extra memory for PDF output out of 10000 (max. 10000000) gorm-1.3.1/Documentation/ANNOUNCE0000644000175000017500000000277114360755341015451 0ustar heronheron1 ANNOUNCE ********** This is version 1.3.1 of Gorm. 1.1 What is Gorm? ================= Gorm is an acronym for Graphic Object Relationship modeler (or perhaps GNUstep Object Relationship Modeler). Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) 'Interface Builder' application for GNUstep. 1.2 Noteworthy changes in version '1.3.1' ========================================= * Fix issue with cells appearing in top level editor * Make nibs read only since saving is unstable * Add XIB reading so that they can be loaded by Gorm * Add storyboard file to list of supported files so that an icon is displayed, does not support reading yet. * Fix testing model mode * Bug fixes in GormClassManager, GormDocument, etc. 1.3 How can I get support for this software? ============================================ You may wish to use the GNUstep discussion mailing list for general questions and discussion. Look at the GNUstep Web Pages for more information regarding GNUstep resources 1.4 Where can you get it? How can you compile it? ================================================= You can download sources and rpms (for some machines) from . 1.5 Where do I send bug reports? ================================ Bug reports can be sent to . 1.6 Obtaining GNU Software ========================== Check out the GNUstep web site. (), and the GNU web site. () gorm-1.3.1/Documentation/Gorm.aux0000644000175000017500000000153514360755340015737 0ustar heronheron@xrdef{Copying-title}{Copying} @xrdef{Copying-snt}{} @xrdef{Copying-pg}{1} @xrdef{Contributors-title}{Contributors to Gorm} @xrdef{Contributors-snt}{} @xrdef{Contributors-pg}{2} @xrdef{Installation-title}{Installing Gorm} @xrdef{Installation-snt}{Chapter@tie 1} @xrdef{Installation-pg}{3} @xrdef{News-title}{News} @xrdef{News-snt}{Chapter@tie 2} @xrdef{News-pg}{4} @xrdef{Overview-title}{Overview} @xrdef{Overview-snt}{Chapter@tie 3} @xrdef{Overview-pg}{16} @xrdef{Usage-title}{Usage} @xrdef{Usage-snt}{Chapter@tie 4} @xrdef{Usage-pg}{17} @xrdef{Implementation-title}{Implementation} @xrdef{Implementation-snt}{Chapter@tie 5} @xrdef{Implementation-pg}{21} @xrdef{Preferences-title}{Preferences} @xrdef{Preferences-snt}{Chapter@tie 6} @xrdef{Preferences-pg}{22} @xrdef{Concept Index-title}{Concept Index} @xrdef{Concept Index-snt}{} @xrdef{Concept Index-pg}{36} gorm-1.3.1/Documentation/GormCore/0000755000175000017500000000000014360755340016025 5ustar heronherongorm-1.3.1/Documentation/GormCore/GormWindowEditor.gsdoc0000644000175000017500000001162514333120703022303 0ustar heronheron GormWindowEditor class documentation Software documentation for the GormWindowEditor class GormCore/GormWindowEditor.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. acceptsTypeFromArray: types Returns YES, if the reciever accepts any of the pasteboard items in types. activate Activates the editor changeFont: sender Change the font. close Close the editor. This will also call the deactivate method. closeSubeditors Close any and all editors which are subordinate to this one. deactivate Deactivate the editor. deleteSelection Delete the current selection. document Return the document which the object the receiver is edited is located in. draggedImage: i endedAt: p deposited: f Call with success or failure of the drag operation. draggingSourceOperationMaskForLocal: flag Returns NSDragOperationNone. initWithObject: anObject inDocument: aDocument Instantiate with anObject in the document aDocument. makeSelectionVisible: flag Make current selection visible. openSubeditorForObject: anObject Description forthcoming. orderFront Order the edited window to the front. pasteInSelection Paste from pasteboard. resetObject: anObject Reset object, redisplays the window. gorm-1.3.1/Documentation/GormCore/GormResourceEditor.gsdoc0000644000175000017500000000412114333120703022614 0ustar heronheron GormResourceEditor class documentation Software documentation for the GormResourceEditor class GormCore/GormResourceEditor.h Description forthcoming. addSystemResources Description forthcoming. draggedImage: i endedAt: p deposited: f Description forthcoming. draggingSourceOperationMaskForLocal: flag Description forthcoming. pbTypes Description forthcoming. placeHolderWithPath: string Description forthcoming. refreshCells Description forthcoming. resourceType Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormViewKnobs.gsdoc0000644000175000017500000000311214333120703021564 0ustar heronheron GormViewKnobs documentation GormViewKnobs functions

aRect Description forthcoming. aRect Description forthcoming. aRect Description forthcoming. aFrame p Description forthcoming. Description forthcoming. aRect aKnob Description forthcoming.
gorm-1.3.1/Documentation/GormCore/GormPlacementInfo.html0000644000175000017500000003123014333120703022250 0ustar heronheron GormPlacementInfo documentation

GormPlacementInfo documentation

Authors

Generated by heron

Software documentation for the GormPlacementHint class

GormPlacementHint : NSObject

Declared in:
GormCore/GormPlacementInfo.h
Description forthcoming.

Instance Variables

Method summary

border 

- (GormHintBorder) border;
Description forthcoming.

distanceToFrame: 

- (int) distanceToFrame: (NSRect)frame;
Description forthcoming.

end 

- (float) end;
Description forthcoming.

frame 

- (NSRect) frame;
Description forthcoming.

initWithBorder: position: validityStart: validityEnd: frame: 

- (id) initWithBorder: (GormHintBorder)border position: (float)position validityStart: (float)start validityEnd: (float)end frame: (NSRect)frame;
Description forthcoming.

position 

- (float) position;
Description forthcoming.

rectWithHalfDistance: 

- (NSRect) rectWithHalfDistance: (int)halfDistance;
Description forthcoming.

start 

- (float) start;
Description forthcoming.



Instance Variables for GormPlacementHint Class

_border

@protected GormHintBorder _border;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_end

@protected float _end;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_frame

@protected NSRect _frame;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_position

@protected float _position;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_start

@protected float _start;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.




Software documentation for the GormPlacementInfo class

GormPlacementInfo : NSObject

Declared in:
GormCore/GormPlacementInfo.h
Description forthcoming.

Instance Variables



Instance Variables for GormPlacementInfo Class

bottomHints

@public NSMutableArray* bottomHints;
Description forthcoming.

firstPass

@public BOOL firstPass;
Description forthcoming.

hintFrame

@public NSRect hintFrame;
Description forthcoming.

hintInitialized

@public BOOL hintInitialized;
Description forthcoming.

knob

@public IBKnobPosition knob;
Description forthcoming.

lastBottomRect

@public NSRect lastBottomRect;
Description forthcoming.

lastFrame

@public NSRect lastFrame;
Description forthcoming.

lastLeftRect

@public NSRect lastLeftRect;
Description forthcoming.

lastRightRect

@public NSRect lastRightRect;
Description forthcoming.

lastTopRect

@public NSRect lastTopRect;
Description forthcoming.

leftHints

@public NSMutableArray* leftHints;
Description forthcoming.

oldRect

@public NSRect oldRect;
Description forthcoming.

resizingIn

@public NSView* resizingIn;
Description forthcoming.

rightHints

@public NSMutableArray* rightHints;
Description forthcoming.

topHints

@public NSMutableArray* topHints;
Description forthcoming.




GormPlacementInfo types

GormHintBorder

typedef enum _GormHintBorder GormHintBorder;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/GormClassEditor.html0000644000175000017500000003260314360747253021764 0ustar heronheron GormClassEditor class documentation

GormClassEditor class documentation

Authors

Generated by heron

Software documentation for the GormClassEditor class

GormClassEditor : NSView

Declared in:
GormCore/GormClassEditor.h
Conforms to:
IBEditors
IBSelectionOwners
Description forthcoming.

Instance Variables

Method summary

classEditorForDocument: 

+ (GormClassEditor*) classEditorForDocument: (GormDocument*)doc;
Description forthcoming.

addAttributeToClass 

- (void) addAttributeToClass;
Description forthcoming.

createClassFiles: 

- (id) createClassFiles: (id)sender;
Create the class files for the selected class.

createSubclass: 

- (id) createSubclass: (id)sender;
Create a subclass from the selected subclass...

currentSelectionIsClass 

- (BOOL) currentSelectionIsClass;
Description forthcoming.

deleteSelection 

- (void) deleteSelection;
Description forthcoming.

editClass 

- (void) editClass;
Description forthcoming.

fileTypes 

- (NSArray*) fileTypes;
Description forthcoming.

initWithDocument: 

- (GormClassEditor*) initWithDocument: (GormDocument*)doc;
Description forthcoming.

instantiateClass: 

- (id) instantiateClass: (id)sender;
Create an instance of a given class.

isEditing 

- (BOOL) isEditing;
Description forthcoming.

loadClass: 

- (id) loadClass: (id)sender;
Parse a header into the classes view.

reloadData 

- (void) reloadData;
Description forthcoming.

removeClass: 

- (id) removeClass: (id)sender;
Remove a class from the classes view

selectClass: 

- (void) selectClass: (NSString*)className;
Description forthcoming.

selectClass: editClass: 

- (void) selectClass: (NSString*)className editClass: (BOOL)flag;
Description forthcoming.

selectClassWithObject: 

- (void) selectClassWithObject: (id)obj;
Description forthcoming.

selectClassWithObject: editClass: 

- (void) selectClassWithObject: (id)object editClass: (BOOL)flag;
Description forthcoming.

selectedClassName 

- (NSString*) selectedClassName;
Description forthcoming.

setSelectedClassName: 

- (void) setSelectedClassName: (NSString*)cn;
Description forthcoming.



Instance Variables for GormClassEditor Class

browserView

@protected NSBrowser* browserView;
Description forthcoming.

classManager

@protected GormClassManager* classManager;
Description forthcoming.

classesView

@protected id classesView;
Description forthcoming.

document

@protected GormDocument* document;
Description forthcoming.

mainView

@protected id mainView;
Description forthcoming.

outlineView

@protected GormOutlineView* outlineView;
Description forthcoming.

scrollView

@protected NSScrollView* scrollView;
Description forthcoming.

selectedClass

@protected NSString* selectedClass;
Description forthcoming.

viewToggle

@protected id viewToggle;
Description forthcoming.




GormClassEditor variables

GormClassPboardType

NSString* GormClassPboardType;
Description forthcoming.

GormSwitchViewPreferencesNotification

NSString* GormSwitchViewPreferencesNotification;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/GormViewWithContentViewEditor.gsdoc0000644000175000017500000000426314333120703024770 0ustar heronheron GormViewWithContentViewEditor class documentation Software documentation for the GormViewWithContentViewEditor class GormCore/GormViewWithContentViewEditor.h Description forthcoming. Description forthcoming. groupSelectionInBox Description forthcoming. groupSelectionInMatrix Description forthcoming. groupSelectionInSplitView Description forthcoming. groupSelectionInView Description forthcoming. pasteInView: view Description forthcoming. postDrawForView: viewEditor Description forthcoming. ungroup Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormProtocol.html0000644000175000017500000002776014333120703021342 0ustar heronheron GormProtocol documentation

GormProtocol documentation

Authors

Generated by heron

Software documentation for the Gorm protocol

Gorm

Declared in:
GormCore/GormProtocol.h
Description forthcoming.
Method summary

classManager 

- (GormClassManager*) classManager;
Description forthcoming.

classMenu 

- (NSMenu*) classMenu;
Description forthcoming.

connectDestination 

- (id) connectDestination;
Description forthcoming.

connectSource 

- (id) connectSource;
Description forthcoming.

copy: 

- (void) copy: (id)sender;
Description forthcoming.

cut: 

- (void) cut: (id)sender;
Description forthcoming.

delete: 

- (void) delete: (id)sender;
Description forthcoming.

displayConnectionBetween: and: 

- (void) displayConnectionBetween: (id)source and: (id)destination;
Description forthcoming.

endTesting: 

- (id) endTesting: (id)sender;
Description forthcoming.

groupSelectionInBox: 

- (void) groupSelectionInBox: (id)sender;
Description forthcoming.

groupSelectionInScrollView: 

- (void) groupSelectionInScrollView: (id)sender;
Description forthcoming.

groupSelectionInSplitView: 

- (void) groupSelectionInSplitView: (id)sender;
Description forthcoming.

inspector: 

- (void) inspector: (id)sender;
Description forthcoming.

inspectorsManager 

- (GormInspectorsManager*) inspectorsManager;
Description forthcoming.

isConnecting 

- (BOOL) isConnecting;
Description forthcoming.

loadImage: 

- (void) loadImage: (id)sender;
Description forthcoming.

loadPalette: 

- (void) loadPalette: (id)sender;
Description forthcoming.

loadSound: 

- (void) loadSound: (id)sender;
Description forthcoming.

palettes: 

- (void) palettes: (id)sender;
Description forthcoming.

palettesManager 

- (GormPalettesManager*) palettesManager;
Description forthcoming.

paste: 

- (void) paste: (id)sender;
Description forthcoming.

pluginManager 

- (GormPluginManager*) pluginManager;
Description forthcoming.

preferencesPanel: 

- (void) preferencesPanel: (id)sender;
Description forthcoming.

selectAllItems: 

- (void) selectAllItems: (id)sender;
Description forthcoming.

setName: 

- (void) setName: (id)sender;
Description forthcoming.

stopConnecting 

- (void) stopConnecting;
Description forthcoming.

testInterface: 

- (void) testInterface: (id)sender;
Description forthcoming.

ungroup: 

- (void) ungroup: (id)sender;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/TypesTOC.gsdoc0000644000175000017500000000055314360755340020523 0ustar heronheron Types gorm-1.3.1/Documentation/GormCore/GormStandaloneViewEditor.html0000644000175000017500000000242014333120703023615 0ustar heronheron GormStandaloneViewEditor class documentation

GormStandaloneViewEditor class documentation

Authors

Generated by heron

Software documentation for the GormStandaloneViewEditor class

GormStandaloneViewEditor : GormViewWithContentViewEditor

Declared in:
GormCore/GormStandaloneViewEditor.h
Conforms to:
IBSelectionOwners
Description forthcoming.

gorm-1.3.1/Documentation/GormCore/GormClassInspector.gsdoc0000644000175000017500000001536214333120703022623 0ustar heronheron GormClassInspector greg_casamento@yahoo.com allow user to select custom classes 2002 Free Software Foundation, Inc. Software documentation for the GormClassInspector class GormCore/GormClassInspector.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. _currentClass Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _refreshView Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. addAction: sender Description forthcoming. addOutlet: sender Description forthcoming. changeClassName: sender Description forthcoming. handleNotification: notification Description forthcoming. removeAction: sender Description forthcoming. removeOutlet: sender Description forthcoming. searchForClass: sender Description forthcoming. select: sender Description forthcoming. selectAction: sender Description forthcoming. selectClass: sender Description forthcoming. selectOutlet: sender Description forthcoming. gorm-1.3.1/Documentation/GormCore/Untitled.html0000644000175000017500000002243414360755340020510 0ustar heronheron The Untitled Project

The Untitled Project

The index below lists the major components of the Untitled documentation.

Title Index
gorm-1.3.1/Documentation/GormCore/GormServer.gsdoc0000644000175000017500000000201214333120703021121 0ustar heronheron GormServer documentation Software documentation for the GormServer protocol GormCore/GormServer.h Description forthcoming. addClass: dict Description forthcoming. deleteClass: className Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormPlugin.html0000644000175000017500000000326014333120703020764 0ustar heronheron GormPlugin class documentation

GormPlugin class documentation

Authors

Generated by heron

Software documentation for the GormPlugin class

GormPlugin : IBPlugin

Declared in:
GormCore/GormPlugin.h
Description forthcoming.
Method summary

registerDocumentTypeName: humanReadableName: forExtensions: 

- (void) registerDocumentTypeName: (NSString*)name humanReadableName: (NSString*)hrName forExtensions: (NSArray*)extensions;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/FunctionsTOC.gsdoc0000644000175000017500000000056714360755340021374 0ustar heronheron Functions gorm-1.3.1/Documentation/GormCore/GormGenericEditor.html0000644000175000017500000004772514360747253022306 0ustar heronheron GormGenericEditor class documentation

GormGenericEditor class documentation

Authors

Generated by heron

Software documentation for the GormGenericEditor class

GormGenericEditor : NSMatrix

Declared in:
GormCore/GormGenericEditor.h
Conforms to:
IBEditors
IBSelectionOwners
Description forthcoming.

Instance Variables

Method summary

editorForDocument: 

+ (id) editorForDocument: (id)aDocument;
Description forthcoming.

setEditor: forDocument: 

+ (void) setEditor: (id)editor forDocument: (id)aDocument;
Description forthcoming.

activate 

- (BOOL) activate;
Description forthcoming.

addObject: 

- (void) addObject: (id)anObject;
Description forthcoming.

close 

- (void) close;
Description forthcoming.

closeSubeditors 

- (void) closeSubeditors;
Description forthcoming.

containsObject: 

- (BOOL) containsObject: (id)object;
Description forthcoming.

copySelection 

- (void) copySelection;
Description forthcoming.

deleteSelection 

- (void) deleteSelection;
Description forthcoming.

document 

- (id) document;
Description forthcoming.

editedObject 

- (id) editedObject;
Description forthcoming.

fileTypes 

- (NSArray*) fileTypes;
Description forthcoming.

initWithObject: inDocument: 

- (id) initWithObject: (id)anObject inDocument: (id)aDocument;
Description forthcoming.

isOpened 

- (BOOL) isOpened;
Description forthcoming.

objects 

- (NSArray*) objects;
Description forthcoming.

openSubeditorForObject: 

- (id) openSubeditorForObject: (id)anObject;
Description forthcoming.

orderFront 

- (void) orderFront;
Description forthcoming.

pasteInSelection 

- (void) pasteInSelection;
Description forthcoming.

rectForObject: 

- (NSRect) rectForObject: (id)anObject;
Description forthcoming.

refreshCells 

- (void) refreshCells;
Description forthcoming.

removeObject: 

- (void) removeObject: (id)anObject;
Description forthcoming.

selectObjects: 

- (void) selectObjects: (NSArray*)anArray;
Description forthcoming.

wantsSelection 

- (BOOL) wantsSelection;
Description forthcoming.

window 

- (NSWindow*) window;
Description forthcoming.



Instance Variables for GormGenericEditor Class

activated

@protected BOOL activated;
Description forthcoming.

closed

@protected BOOL closed;
Description forthcoming.

document

@protected id document;
Description forthcoming.

dragPb

@protected NSPasteboard* dragPb;
Description forthcoming.

dragType

@protected NSString* dragType;
Description forthcoming.

objects

@protected NSMutableArray* objects;
Description forthcoming.

resourceManager

@protected IBResourceManager* resourceManager;
Description forthcoming.

selected

@protected id selected;
Description forthcoming.




Software documentation for the GormGenericEditor(PrivateMethods) category

GormGenericEditor(PrivateMethods)

Declared in:
GormCore/GormGenericEditor.h
Warning this category is private, which means that the methods are for internal use by the package. You should not use them in external code.
Method summary

changeSelection: 

- (id) changeSelection: (id)sender;
Description forthcoming.

groupSelectionInBox 

- (void) groupSelectionInBox;
Description forthcoming.

groupSelectionInMatrix 

- (void) groupSelectionInMatrix;
Description forthcoming.

groupSelectionInScrollView 

- (void) groupSelectionInScrollView;
Description forthcoming.

groupSelectionInSplitView 

- (void) groupSelectionInSplitView;
Description forthcoming.

groupSelectionInView 

- (void) groupSelectionInView;
Description forthcoming.

setEditor: forDocument: 

- (void) setEditor: (id)anEditor forDocument: (id)doc;
Description forthcoming.

ungroup 

- (void) ungroup;
Description forthcoming.

willCloseDocument: 

- (void) willCloseDocument: (NSNotification*)aNotification;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/VariablesTOC.gsdoc0000644000175000017500000000056714360755340021334 0ustar heronheron Variables gorm-1.3.1/Documentation/GormCore/GormViewEditor.gsdoc0000644000175000017500000001650414333120703021747 0ustar heronheron GormViewEditor class documentation Software documentation for the GormViewEditor class GormCore/GormViewEditor.h IBEditors Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. activate Description forthcoming. canBeOpened Description forthcoming. close Description forthcoming. deactivate Description forthcoming. detachSubviews Description forthcoming. document Description forthcoming. editedObject Description forthcoming. frameDidChange: sender Description forthcoming. initWithObject: anObject inDocument: aDocument Description forthcoming. isOpened Description forthcoming. makeSelectionVisible: value Description forthcoming. parent Description forthcoming. postDraw: rect Description forthcoming. selection Description forthcoming. setOpened: value Description forthcoming. Software documentation for the GormViewEditor(EditingAdditions) category GormCore/GormViewEditor.h Description forthcoming. editTextField: view withEvent: theEvent Description forthcoming. Software documentation for the GormViewEditor(IntelligentPlacement) category GormCore/GormViewEditor.h Description forthcoming. initializeResizingInFrame: view withKnob: knob Description forthcoming. updateResizingWithFrame: frame andEvent: theEvent andPlacementInfo: gpi Description forthcoming. validateFrame: frame withEvent: theEvent andPlacementInfo: gpi Description forthcoming. Software documentation for the GormViewEditor(WindowAndRect) category GormCore/GormViewEditor.h Description forthcoming. windowAndRect: prect forObject: object Description forthcoming. gorm-1.3.1/Documentation/GormCore/ProtocolsTOC.gsdoc0000644000175000017500000000056714360755340021410 0ustar heronheron Protocols gorm-1.3.1/Documentation/GormCore/GormViewWindow.html0000644000175000017500000000567114333120703021640 0ustar heronheron GormViewWindow class documentation

GormViewWindow class documentation

Authors

Generated by heron

Software documentation for the GormViewWindow class

GormViewWindow : NSWindow

Declared in:
GormCore/GormViewWindow.h
Description forthcoming.

Instance Variables

Method summary

initWithView: 

- (id) initWithView: (NSView*)view;
Description forthcoming.

setView: 

- (void) setView: (NSView*)view;
Description forthcoming.

view 

- (NSView*) view;
Description forthcoming.



Instance Variables for GormViewWindow Class

_view

@protected NSView* _view;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.





gorm-1.3.1/Documentation/GormCore/VariablesTOC.html0000644000175000017500000000500714360755340021173 0ustar heronheron Variables

Variables

GormClassPboardType
GormDidAddClassNotification
GormDidDeleteClassNotification
GormDidDetachObjectFromDocumentNotification
GormDidModifyClassNotification
GormLinkPboardType
GormResizeCellNotification
GormSwitchViewPreferencesNotification
GormToggleGuidelineNotification
GormWillDetachObjectFromDocumentNotification
typeChar
typeDouble
typeFloat
typeId
typeInt
typeUChar
typeUInt

gorm-1.3.1/Documentation/GormCore/GormScrollViewAttributesInspector.gsdoc0000644000175000017500000000701414333120703025711 0ustar heronheron GormScrollViewAttributesInspector greg_casamento@yahoo.com allow user to edit attributes of a scroll view 2003 Free Software Foundation, Inc. Software documentation for the GormScrollViewAttributesInspector class GormCore/GormScrollViewAttributesInspector.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. borderSelected: sender Description forthcoming. colorSelected: sender Description forthcoming. horizontalRuler: sender Description forthcoming. horizontalSelected: sender Description forthcoming. verticalRuler: sender Description forthcoming. verticalSelected: sender Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormWrapperLoader.html0000644000175000017500000001452714333120703022305 0ustar heronheron GormWrapperLoader documentation

GormWrapperLoader documentation

Authors

Generated by heron

Software documentation for the GormWrapperLoader class

GormWrapperLoader : NSObject

Declared in:
GormCore/GormWrapperLoader.h
Conforms to:
GormWrapperLoader
Description forthcoming.

Instance Variables

Method summary

fileType 

+ (NSString*) fileType;
Description forthcoming.

saveSCMDirectory: 

- (void) saveSCMDirectory: (NSDictionary*)fileWrappers;
Description forthcoming.



Instance Variables for GormWrapperLoader Class

document

@protected GormDocument* document;
Description forthcoming.




Software documentation for the GormWrapperLoaderFactory class

GormWrapperLoaderFactory : NSObject

Declared in:
GormCore/GormWrapperLoader.h
Description forthcoming.
Method summary

registerWrapperLoaderClass: 

+ (void) registerWrapperLoaderClass: (Class)aClass;
Description forthcoming.

sharedWrapperLoaderFactory 

+ (GormWrapperLoaderFactory*) sharedWrapperLoaderFactory;
Description forthcoming.

wrapperLoaderForType: 

- (id<GormWrapperLoader>) wrapperLoaderForType: (NSString*)type;
Description forthcoming.

Software documentation for the GormWrapperLoader protocol

GormWrapperLoader

Declared in:
GormCore/GormWrapperLoader.h
Description forthcoming.
Method summary

loadFileWrapper: withDocument: 

- (BOOL) loadFileWrapper: (NSFileWrapper*)wrapper withDocument: (GormDocument*)document;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/GormMatrixEditor.gsdoc0000644000175000017500000000227414333120703022300 0ustar heronheron GormMatrixEditor class documentation Software documentation for the GormMatrixEditor class GormCore/GormMatrixEditor.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormMatrixEditor.html0000644000175000017500000000416514333120703022146 0ustar heronheron GormMatrixEditor class documentation

GormMatrixEditor class documentation

Authors

Generated by heron

Software documentation for the GormMatrixEditor class

GormMatrixEditor : GormViewWithSubviewsEditor

Declared in:
GormCore/GormMatrixEditor.h
Description forthcoming.

Instance Variables



Instance Variables for GormMatrixEditor Class

selected

@protected NSCell* selected;
Description forthcoming.

selectedCol

@protected NSInteger selectedCol;
Description forthcoming.

selectedRow

@protected NSInteger selectedRow;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormResource.html0000644000175000017500000002555514333120703021330 0ustar heronheron GormResource

GormResource

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
This class is a placeholder for a real resource.

Copyright: (C) 2005 Free Software Foundation, Inc.

Software documentation for the GormResource class

GormResource : NSObject

Declared in:
GormCore/GormResource.h
Conforms to:
IBProjectFiles
Description forthcoming.

Instance Variables

Method summary

resourceForPath: 

+ (GormResource*) resourceForPath: (NSString*)aPath;
Description forthcoming.

resourceForPath: inWrapper: 

+ (GormResource*) resourceForPath: (NSString*)aPath inWrapper: (BOOL)flag;
Description forthcoming.

data 

- (NSData*) data;
Description forthcoming.

initWithData: withFileName: inWrapper: 

- (id) initWithData: (NSData*)aData withFileName: (NSString*)aFileName inWrapper: (BOOL)flag;
Description forthcoming.

initWithName: path: 

- (id) initWithName: (NSString*)aName path: (NSString*)aPath;
Description forthcoming.

initWithName: path: inWrapper: 

- (id) initWithName: (NSString*)aName path: (NSString*)aPath inWrapper: (BOOL)flag;
Designated initializer.

initWithPath: 

- (id) initWithPath: (NSString*)aPath;
Description forthcoming.

initWithPath: inWrapper: 

- (id) initWithPath: (NSString*)aPath inWrapper: (BOOL)flag;
Description forthcoming.

isEqual: 

- (BOOL) isEqual: (id)object;
Description forthcoming.

isInWrapper 

- (BOOL) isInWrapper;
Description forthcoming.

isSystemResource 

- (BOOL) isSystemResource;
Description forthcoming.

name 

- (NSString*) name;
Description forthcoming.

setData: 

- (void) setData: (NSData*)aData;
Description forthcoming.

setInWrapper: 

- (void) setInWrapper: (BOOL)flag;
Description forthcoming.

setName: 

- (void) setName: (NSString*)aName;
Description forthcoming.

setSystemResource: 

- (void) setSystemResource: (BOOL)flag;
Description forthcoming.



Instance Variables for GormResource Class

data

@protected NSData* data;
Description forthcoming.

fileName

@protected NSString* fileName;
Description forthcoming.

fileType

@protected NSString* fileType;
Description forthcoming.

isInWrapper

@protected BOOL isInWrapper;
Description forthcoming.

isLocalized

@protected BOOL isLocalized;
Description forthcoming.

isSystemResource

@protected BOOL isSystemResource;
Description forthcoming.

language

@protected NSString* language;
Description forthcoming.

name

@protected NSString* name;
Description forthcoming.

path

@protected NSString* path;
Description forthcoming.

project

@protected id project;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormCustomClassInspector.html0000644000175000017500000001171314333120703023657 0ustar heronheron GormCustomClassInspector

GormCustomClassInspector

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
allow user to select custom classes

Copyright: (C) 2002 Free Software Foundation, Inc.

Software documentation for the GormCustomClassInspector class

GormCustomClassInspector : IBInspector

Declared in:
GormCore/GormCustomClassInspector.h
Description forthcoming.

Instance Variables

Method summary

select: 

- (void) select: (id)sender;
Description forthcoming.



Instance Variables for GormCustomClassInspector Class

_classManager

@protected GormClassManager* _classManager;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_currentSelectionClassName

@protected NSString* _currentSelectionClassName;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_document

@protected id _document;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_parentClassName

@protected NSString* _parentClassName;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_rowToSelect

@protected NSUInteger _rowToSelect;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

browser

@protected id browser;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormDocumentWindow.html0000644000175000017500000000503314333120703022474 0ustar heronheron GormDocumentWindow class documentation

GormDocumentWindow class documentation

Authors

Generated by heron

Software documentation for the GormDocumentWindow class

GormDocumentWindow : NSWindow

Declared in:
GormCore/GormDocumentWindow.h
Description forthcoming.

Instance Variables

Method summary

setDocument: 

- (void) setDocument: (id)document;
Description forthcoming.



Instance Variables for GormDocumentWindow Class

_document

@protected id _document;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

dragMgr

@protected IBResourceManager* dragMgr;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormSound.gsdoc0000644000175000017500000000345714333120703020761 0ustar heronheron GormSound greg_casamento@yahoo.com A place holder for a sound. 2001 Free Software Foundation, Inc. Software documentation for the GormSound class GormCore/GormSound.h Description forthcoming. soundForData: aData withFileName: aName inWrapper: flag Description forthcoming. soundForPath: aPath Creates a GormSound object using the file at path. soundForPath: aPath inWrapper: flag Creates a GormSound object using the file at path, and marks it as inside or outside of the.gorm/.nib wrapper. gorm-1.3.1/Documentation/GormCore/GormResourceEditor.html0000644000175000017500000001041714333120703022466 0ustar heronheron GormResourceEditor class documentation

GormResourceEditor class documentation

Authors

Generated by heron

Software documentation for the GormResourceEditor class

GormResourceEditor : GormGenericEditor

Declared in:
GormCore/GormResourceEditor.h
Description forthcoming.
Method summary

addSystemResources 

- (void) addSystemResources;
Description forthcoming.

draggedImage: endedAt: deposited: 

- (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f;
Description forthcoming.

draggingSourceOperationMaskForLocal: 

- (unsigned int) draggingSourceOperationMaskForLocal: (BOOL)flag;
Description forthcoming.

pbTypes 

- (NSArray*) pbTypes;
Description forthcoming.

placeHolderWithPath: 

- (id) placeHolderWithPath: (NSString*)string;
Description forthcoming.

refreshCells 

- (void) refreshCells;
Description forthcoming.

resourceType 

- (NSString*) resourceType;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/GormHelpInspector.html0000644000175000017500000000300014333120703022275 0ustar heronheron GormHelpInspector class documentation

GormHelpInspector class documentation

Authors

Generated by heron

Software documentation for the GormHelpInspector class

GormHelpInspector : IBInspector

Declared in:
GormCore/GormHelpInspector.h
Description forthcoming.

Instance Variables



Instance Variables for GormHelpInspector Class

toolTip

@protected id toolTip;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormFilePrefsManager.html0000644000175000017500000003212114360747253022715 0ustar heronheron GormFilePrefsManager

GormFilePrefsManager

Authors

Gregory John Casamento
Sets the information about the.gorm file's version. This allows a file to be saved as an older version of the.gorm format so that older releases can still use.gorm files created by people who have the latest GNUstep and Gorm version.

Copyright: (C) 2003 Free Software Foundation, Inc.

Software documentation for the GormFilePrefsManager class

GormFilePrefsManager : NSObject

Declared in:
GormCore/GormFilePrefsManager.h
Conforms to:
NSCoding
Description forthcoming.

Instance Variables

Method summary

currentVersion 

+ (int) currentVersion;
The current Gorm version.

archiveTypeName 

- (NSString*) archiveTypeName;
Which achive type, by name.

data 

- (NSData*) data;
Saves the encoded file info.

fileTypeName 

- (NSString*) fileTypeName;
return file type.

isLatest 

- (BOOL) isLatest;
Are we set to the latest version? Returns YES, if so.

loadFromData: 

- (BOOL) loadFromData: (NSData*)data;
Loads the encoded file info.

loadFromFile: 

- (BOOL) loadFromFile: (NSString*)path;
Loads the encoded file info.

loadProfile: 

- (void) loadProfile: (NSString*)profileName;
Loads the profile.

nibDataWithOpenItems: 

- (NSData*) nibDataWithOpenItems: (NSArray*)openItems;
Saves the encoded file info.

restoreClassVersions 

- (void) restoreClassVersions;
Restores the versions to the most current.

saveToFile: 

- (BOOL) saveToFile: (NSString*)path;
Saves the encoded file info.

selectArchiveType: 

- (void) selectArchiveType: (id)sender;
Action called when the archive type pulldown is selected.

selectTargetVersion: 

- (void) selectTargetVersion: (id)sender;
Action called when the target version pulldown is selected.

setClassVersions 

- (void) setClassVersions;
Sets the version of the classes.

setFileTypeName: 

- (void) setFileTypeName: (NSString*)ft;
File type name...

showIncompatibilities: 

- (void) showIncompatibilities: (id)sender;
Show incompatibilities in the panel.

targetVersionName 

- (NSString*) targetVersionName;
Which version of the gui library, by name.

version 

- (int) version;
Gorm Version of the current archive.

versionOfClass: 

- (int) versionOfClass: (NSString*)className;
Returns the version of the class in the current profile.



Instance Variables for GormFilePrefsManager Class

archiveType

@protected id archiveType;
Description forthcoming.

archiveTypeName

@protected NSString* archiveTypeName;
Description forthcoming.

currentProfile

@protected NSDictionary* currentProfile;
Description forthcoming.

fileType

@protected id fileType;
Description forthcoming.

gormAppVersion

@protected id gormAppVersion;
Description forthcoming.

itable

@protected id itable;
Description forthcoming.

iwindow

@protected id iwindow;
Description forthcoming.

showIncompatibilities

@protected id showIncompatibilities;
Description forthcoming.

targetVersion

@protected id targetVersion;
Description forthcoming.

targetVersionName

@protected NSString* targetVersionName;
Description forthcoming.

version

@protected NSInteger version;
Description forthcoming.

versionProfiles

@protected NSDictionary* versionProfiles;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormPluginManager.gsdoc0000644000175000017500000000341514333120703022414 0ustar heronheron GormPluginManager class documentation Software documentation for the GormPluginManager class GormCore/GormPluginManager.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. loadPlugin: path Description forthcoming. openPlugin: sender Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormWindowTemplate.gsdoc0000644000175000017500000000345214333120703022627 0ustar heronheron GormWindowTemplate class documentation Software documentation for the GormWindowTemplate class GormCore/GormWindowTemplate.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Software documentation for the NSWindowTemplate(Private) category GormCore/GormWindowTemplate.h Warning this category is private, which means that the methods are for internal use by the package. You should not use them in external code. setBaseWindowClass: clz Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormNSWindow.gsdoc0000644000175000017500000000701014333120703021366 0ustar heronheron GormNSWindow class documentation Software documentation for the GormNSWindow class GormCore/GormNSWindow.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. _isReleasedWhenClosed Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _setReleasedWhenClosed: flag Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _setStyleMask: newStyleMask Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _styleMask Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. autoPositionMask Description forthcoming. setAutoPositionMask: mask Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormOutlineView.html0000644000175000017500000005120214333120703021777 0ustar heronheron GormOutlineView

GormOutlineView

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
The NSOutlineView subclass in gorm which handles outlet/action editing

Copyright: (C) 2001 Free Software Foundation, Inc.

Software documentation for the GormOutletActionHolder class

GormOutletActionHolder : NSObject

Declared in:
GormCore/GormOutlineView.h
Description forthcoming.

Instance Variables

Method summary

getName 

- (NSString*) getName;
Description forthcoming.

initWithName: 

- (id) initWithName: (NSString*)name;
Description forthcoming.

setName: 

- (void) setName: (NSString*)name;
Description forthcoming.



Instance Variables for GormOutletActionHolder Class

_name

@protected NSString* _name;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.




Software documentation for the GormOutlineView class

GormOutlineView : NSOutlineView

Declared in:
GormCore/GormOutlineView.h
Description forthcoming.

Instance Variables

Method summary

actionColumn 

- (NSTableColumn*) actionColumn;
Description forthcoming.

attributeOffset 

- (float) attributeOffset;
Description forthcoming.

editType 

- (GSAttributeType) editType;
Description forthcoming.

isEditing 

- (BOOL) isEditing;
Description forthcoming.

itemBeingEdited 

- (id) itemBeingEdited;
Description forthcoming.

menuItem 

- (NSMenuItem*) menuItem;
Description forthcoming.

outletColumn 

- (NSTableColumn*) outletColumn;
Description forthcoming.

removeItemAtRow: 

- (void) removeItemAtRow: (int)row;
Description forthcoming.

reset 

- (void) reset;
Description forthcoming.

selectRow: 

- (void) selectRow: (int)rowIndex;
Description forthcoming.

setActionColumn: 

- (void) setActionColumn: (NSTableColumn*)ac;
Description forthcoming.

setAttributeOffset: 

- (void) setAttributeOffset: (float)offset;
Description forthcoming.

setIsEditing: 

- (void) setIsEditing: (BOOL)flag;
Description forthcoming.

setItemBeingEdited: 

- (void) setItemBeingEdited: (id)item;
Description forthcoming.

setMenuItem: 

- (void) setMenuItem: (NSMenuItem*)item;
Description forthcoming.

setOutletColumn: 

- (void) setOutletColumn: (NSTableColumn*)oc;
Description forthcoming.



Instance Variables for GormOutlineView Class

_actionColumn

@protected NSTableColumn* _actionColumn;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_attributeOffset

@protected float _attributeOffset;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_edittype

@protected GSAttributeType _edittype;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_isEditing

@protected BOOL _isEditing;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_itemBeingEdited

@protected id _itemBeingEdited;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_menuItem

@protected NSMenuItem* _menuItem;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_outletColumn

@protected NSTableColumn* _outletColumn;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.




Software documentation for the NSObject(GormOutlineViewDataSource) informal protocol

NSObject(GormOutlineViewDataSource)

Declared in:
GormCore/GormOutlineView.h
Description forthcoming.
Method summary

outlineView: actionsForItem: 

- (NSArray*) outlineView: (GormOutlineView*)ov actionsForItem: (id)item;
Description forthcoming.

outlineView: addAction: forClass: 

- (void) outlineView: (NSOutlineView*)anOutlineView addAction: (NSString*)action forClass: (id)item;
Description forthcoming.

outlineView: addNewActionForClass: 

- (NSString*) outlineView: (NSOutlineView*)anOutlineView addNewActionForClass: (id)item;
Description forthcoming.

outlineView: addNewOutletForClass: 

- (NSString*) outlineView: (NSOutlineView*)anOutlineView addNewOutletForClass: (id)item;
Description forthcoming.

outlineView: addOutlet: forClass: 

- (void) outlineView: (NSOutlineView*)anOutlineView addOutlet: (NSString*)outlet forClass: (id)item;
Description forthcoming.

outlineView: outletsForItem: 

- (NSArray*) outlineView: (GormOutlineView*)ov outletsForItem: (id)item;
Description forthcoming.

Software documentation for the NSObject(GormOutlineViewDelegate) informal protocol

NSObject(GormOutlineViewDelegate)

Declared in:
GormCore/GormOutlineView.h
Description forthcoming.
Method summary

outlineView: shouldDeleteItem: 

- (BOOL) outlineView: (GormOutlineView*)ov shouldDeleteItem: (id)item;
Description forthcoming.

GormOutlineView types

GSAttributeType

typedef enum ... GSAttributeType;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/NSColorWell+GormExtensions.gsdoc0000644000175000017500000000174014333120703024160 0ustar heronheron NSColorWell+GormExtensions documentation Software documentation for the NSColorWell(GormExtensions) category GormCore/NSColorWell+GormExtensions.h Description forthcoming. setColorWithoutAction: color Changes the color without sending the action associated with it. gorm-1.3.1/Documentation/GormCore/GormOpenGLView.html0000644000175000017500000000330614333120703021506 0ustar heronheron GormOpenGLView class documentation

GormOpenGLView class documentation

Authors

Generated by heron

Software documentation for the GormOpenGLView class

GormOpenGLView : NSView

Declared in:
GormCore/GormOpenGLView.h
Description forthcoming.

Instance Variables



Instance Variables for GormOpenGLView Class

rtri

@protected float rtri;
Description forthcoming.

timer

@protected NSTimer* timer;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormConnectionInspector.html0000644000175000017500000000661214333120703023520 0ustar heronheron GormConnectionInspector class documentation

GormConnectionInspector class documentation

Authors

Generated by heron

Software documentation for the GormConnectionInspector class

GormConnectionInspector : IBInspector

Declared in:
GormCore/GormConnectionInspector.h
Description forthcoming.

Instance Variables

Method summary

updateButtons 

- (void) updateButtons;
Description forthcoming.



Instance Variables for GormConnectionInspector Class

actions

@protected NSArray* actions;
Description forthcoming.

connectors

@protected NSMutableArray* connectors;
Description forthcoming.

currentConnector

@protected id currentConnector;
Description forthcoming.

newBrowser

@protected NSBrowser* newBrowser;
Description forthcoming.

oldBrowser

@protected NSBrowser* oldBrowser;
Description forthcoming.

outlets

@protected NSArray* outlets;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormSound.html0000644000175000017500000000564414333120703020626 0ustar heronheron GormSound

GormSound

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
A place holder for a sound.

Copyright: (C) 2001 Free Software Foundation, Inc.

Software documentation for the GormSound class

GormSound : GormResource

Declared in:
GormCore/GormSound.h
Description forthcoming.
Method summary

soundForData: withFileName: inWrapper: 

+ (GormSound*) soundForData: (NSData*)aData withFileName: (NSString*)aName inWrapper: (BOOL)flag;
Description forthcoming.

soundForPath: 

+ (GormSound*) soundForPath: (NSString*)aPath;
Creates a GormSound object using the file at path.

soundForPath: inWrapper: 

+ (GormSound*) soundForPath: (NSString*)aPath inWrapper: (BOOL)flag;
Creates a GormSound object using the file at path, and marks it as inside or outside of the.gorm/.nib wrapper.


gorm-1.3.1/Documentation/GormCore/GormClassEditor.gsdoc0000644000175000017500000001517714360747253022126 0ustar heronheron GormClassEditor class documentation Software documentation for the GormClassEditor class GormCore/GormClassEditor.h IBEditors IBSelectionOwners Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. classEditorForDocument: doc Description forthcoming. addAttributeToClass Description forthcoming. createClassFiles: sender Create the class files for the selected class. createSubclass: sender Create a subclass from the selected subclass... currentSelectionIsClass Description forthcoming. deleteSelection Description forthcoming. editClass Description forthcoming. fileTypes Description forthcoming. initWithDocument: doc Description forthcoming. instantiateClass: sender Create an instance of a given class. isEditing Description forthcoming. loadClass: sender Parse a header into the classes view. reloadData Description forthcoming. removeClass: sender Remove a class from the classes view selectClass: className Description forthcoming. selectClass: className editClass: flag Description forthcoming. selectClassWithObject: obj Description forthcoming. selectClassWithObject: object editClass: flag Description forthcoming. selectedClassName Description forthcoming. setSelectedClassName: cn Description forthcoming. GormClassEditor variables

Description forthcoming. Description forthcoming.
gorm-1.3.1/Documentation/GormCore/GormSplitViewEditor.gsdoc0000644000175000017500000000155714333120703022765 0ustar heronheron GormSplitViewEditor class documentation Software documentation for the GormSplitViewEditor class GormCore/GormSplitViewEditor.h Description forthcoming. destroyAndListSubviews Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormImageEditor.html0000644000175000017500000000204614333120703021720 0ustar heronheron GormImageEditor class documentation

GormImageEditor class documentation

Authors

Generated by heron

Software documentation for the GormImageEditor class

GormImageEditor : GormResourceEditor

Declared in:
GormCore/GormImageEditor.h
Description forthcoming.

gorm-1.3.1/Documentation/GormCore/GormSplitViewEditor.html0000644000175000017500000000320114333120703022616 0ustar heronheron GormSplitViewEditor class documentation

GormSplitViewEditor class documentation

Authors

Generated by heron

Software documentation for the GormSplitViewEditor class

GormSplitViewEditor : GormViewWithSubviewsEditor

Declared in:
GormCore/GormSplitViewEditor.h
Description forthcoming.
Method summary

destroyAndListSubviews 

- (NSArray*) destroyAndListSubviews;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/GormBoxEditor.gsdoc0000644000175000017500000000202014333120703021551 0ustar heronheron GormBoxEditor class documentation Software documentation for the GormBoxEditor class GormCore/GormBoxEditor.h Description forthcoming. Description forthcoming. destroyAndListSubviews Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormOpenGLView.gsdoc0000644000175000017500000000173614333120703021646 0ustar heronheron GormOpenGLView class documentation Software documentation for the GormOpenGLView class GormCore/GormOpenGLView.h Description forthcoming. Description forthcoming. Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormWrapperBuilder.gsdoc0000644000175000017500000000560014333120703022610 0ustar heronheron GormWrapperBuilder documentation Software documentation for the GormWrapperBuilder class GormCore/GormWrapperBuilder.h GormWrapperBuilder Description forthcoming. Description forthcoming. fileType Description forthcoming. Software documentation for the GormWrapperBuilderFactory class GormCore/GormWrapperBuilder.h Description forthcoming. registerWrapperBuilderClass: aClass Description forthcoming. sharedWrapperBuilderFactory Description forthcoming. wrapperBuilderForType: type Description forthcoming. Software documentation for the GormWrapperBuilder protocol GormCore/GormWrapperBuilder.h Description forthcoming. buildFileWrapperDictionaryWithDocument: document Description forthcoming. buildFileWrapperWithDocument: document Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormResource.gsdoc0000644000175000017500000001423014333120703021447 0ustar heronheron GormResource greg_casamento@yahoo.com This class is a placeholder for a real resource. 2005 Free Software Foundation, Inc. Software documentation for the GormResource class GormCore/GormResource.h IBProjectFiles Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. resourceForPath: aPath Description forthcoming. resourceForPath: aPath inWrapper: flag Description forthcoming. data Description forthcoming. initWithData: aData withFileName: aFileName inWrapper: flag Description forthcoming. initWithName: aName path: aPath Description forthcoming. initWithName: aName path: aPath inWrapper: flag Designated initializer. initWithPath: aPath Description forthcoming. initWithPath: aPath inWrapper: flag Description forthcoming. isEqual: object Description forthcoming. isInWrapper Description forthcoming. isSystemResource Description forthcoming. name Description forthcoming. setData: aData Description forthcoming. setInWrapper: flag Description forthcoming. setName: aName Description forthcoming. setSystemResource: flag Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormPalettesManager.html0000644000175000017500000002215714333120703022610 0ustar heronheron GormPalettesManager class documentation

GormPalettesManager class documentation

Authors

Generated by heron

Software documentation for the GormPalettesManager class

GormPalettesManager : NSObject

Declared in:
GormCore/GormPalettesManager.h
Description forthcoming.

Instance Variables

Method summary

importClasses: withDictionary: 

- (void) importClasses: (NSArray*)classes withDictionary: (NSDictionary*)dict;
Description forthcoming.

importImages: withBundle: 

- (void) importImages: (NSArray*)images withBundle: (NSBundle*)bundle;
Description forthcoming.

importSounds: withBundle: 

- (void) importSounds: (NSArray*)sounds withBundle: (NSBundle*)bundle;
Description forthcoming.

importedClasses 

- (NSDictionary*) importedClasses;
Description forthcoming.

importedImages 

- (NSArray*) importedImages;
Description forthcoming.

importedSounds 

- (NSArray*) importedSounds;
Description forthcoming.

loadPalette: 

- (BOOL) loadPalette: (NSString*)path;
Description forthcoming.

openPalette: 

- (id) openPalette: (id)sender;
Description forthcoming.

panel 

- (NSPanel*) panel;
Description forthcoming.

setCurrentPalette: 

- (void) setCurrentPalette: (id)anObj;
Description forthcoming.

substituteClasses 

- (NSDictionary*) substituteClasses;
Description forthcoming.



Instance Variables for GormPalettesManager Class

bundles

@protected NSMutableArray* bundles;
Description forthcoming.

current

@protected int current;
Description forthcoming.

dragView

@protected NSView* dragView;
Description forthcoming.

hiddenDuringTest

@protected BOOL hiddenDuringTest;
Description forthcoming.

importedClasses

@protected NSMutableDictionary* importedClasses;
Description forthcoming.

importedImages

@protected NSMutableArray* importedImages;
Description forthcoming.

importedSounds

@protected NSMutableArray* importedSounds;
Description forthcoming.

palettes

@protected NSMutableArray* palettes;
Description forthcoming.

panel

@protected NSPanel* panel;
Description forthcoming.

selectionView

@protected NSMatrix* selectionView;
Description forthcoming.

substituteClasses

@protected NSMutableDictionary* substituteClasses;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormDocumentController.gsdoc0000644000175000017500000000256514333120703023512 0ustar heronheron GormDocumentController class documentation Software documentation for the GormDocumentController class GormCore/GormDocumentController.h Description forthcoming. buildDocumentForType: documentType Description forthcoming. openDocumentWithContentsOfURL: url Description forthcoming. GormDocumentController types

Description forthcoming.
gorm-1.3.1/Documentation/GormCore/GormSetNameController.html0000644000175000017500000000777214333120703023142 0ustar heronheron GormSetNameController class documentation

GormSetNameController class documentation

Authors

Generated by heron

Software documentation for the GormSetNameController class

GormSetNameController : NSObject

Declared in:
GormCore/GormSetNameController.h
Description forthcoming.

Instance Variables

Method summary

cancelHit: 

- (void) cancelHit: (id)sender;
Description forthcoming.

okHit: 

- (void) okHit: (id)sender;
Description forthcoming.

runAsModal 

- (NSInteger) runAsModal;
Description forthcoming.

textField 

- (NSTextField*) textField;
Description forthcoming.



Instance Variables for GormSetNameController Class

cancelButton

@protected NSButton* cancelButton;
Description forthcoming.

okButton

@protected NSButton* okButton;
Description forthcoming.

textField

@protected NSTextField* textField;
Description forthcoming.

window

@protected NSPanel* window;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/ProtocolsTOC.html0000644000175000017500000000237414360755340021253 0ustar heronheron Protocols

Protocols

<Gorm>
<GormServer>
<GormWrapperBuilder>
<GormWrapperLoader>
(GormAdditions)
(GormOutlineViewDataSource)
(GormOutlineViewDelegate)

gorm-1.3.1/Documentation/GormCore/GormResourceManager.gsdoc0000644000175000017500000000126614333120703022747 0ustar heronheron GormResourceManager class documentation Software documentation for the GormResourceManager class GormCore/GormResourceManager.h Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormWindowTemplate.html0000644000175000017500000000650714333120703022500 0ustar heronheron GormWindowTemplate class documentation

GormWindowTemplate class documentation

Authors

Generated by heron

Software documentation for the GormWindowTemplate class

GormWindowTemplate : NSWindowTemplate

Declared in:
GormCore/GormWindowTemplate.h
Description forthcoming.

Instance Variables



Instance Variables for GormWindowTemplate Class

_tempFlag

@protected BOOL _tempFlag;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.




Software documentation for the NSWindowTemplate(Private) category

NSWindowTemplate(Private)

Declared in:
GormCore/GormWindowTemplate.h
Warning this category is private, which means that the methods are for internal use by the package. You should not use them in external code.
Method summary

setBaseWindowClass: 

- (void) setBaseWindowClass: (Class)clz;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/Untitled.igsdoc0000644000175000017500000036420214360755340021016 0ustar heronheron{ categories = { GSClassSwapper = { GormCustomClassAdditions = GormPrivate; }; GSNibItem = { GormAdditions = GormPrivate; }; GormDocument = { MenuValidation = GormDocument; }; GormGenericEditor = { PrivateMethods = GormGenericEditor; }; GormViewEditor = { EditingAdditions = GormViewEditor; IntelligentPlacement = GormViewEditor; WindowAndRect = GormViewEditor; }; IBResourceManager = { GormAdditions = GormPrivate; }; NSCell = { GormAdditions = "NSCell+GormAdditions"; }; NSClassSwapper = { GormCustomClassAdditions = GormPrivate; }; NSColorWell = { GormExtensions = "NSColorWell+GormExtensions"; }; NSDateFormatter = { GormAdditions = GormPrivate; }; NSFontManager = { GormExtensions = "NSFontManager+GormExtensions"; }; NSImage = { GormNSImageAddition = GormImage; }; NSNumberFormatter = { GormAdditions = GormPrivate; }; NSObject = { GormAdditions = GormPrivate; GormOutlineViewDataSource = GormOutlineView; GormOutlineViewDelegate = GormOutlineView; }; NSView = { GormExtensions = "NSView+GormExtensions"; }; NSWindowTemplate = { Private = GormWindowTemplate; }; }; category = { "GSClassSwapper(GormCustomClassAdditions)" = GormPrivate; "GSNibItem(GormAdditions)" = GormPrivate; "GormDocument(MenuValidation)" = GormDocument; "GormGenericEditor(PrivateMethods)" = GormGenericEditor; "GormViewEditor(EditingAdditions)" = GormViewEditor; "GormViewEditor(IntelligentPlacement)" = GormViewEditor; "GormViewEditor(WindowAndRect)" = GormViewEditor; "IBResourceManager(GormAdditions)" = GormPrivate; "NSCell(GormAdditions)" = "NSCell+GormAdditions"; "NSClassSwapper(GormCustomClassAdditions)" = GormPrivate; "NSColorWell(GormExtensions)" = "NSColorWell+GormExtensions"; "NSDateFormatter(GormAdditions)" = GormPrivate; "NSFontManager(GormExtensions)" = "NSFontManager+GormExtensions"; "NSImage(GormNSImageAddition)" = GormImage; "NSNumberFormatter(GormAdditions)" = GormPrivate; "NSObject(GormAdditions)" = GormPrivate; "NSObject(GormOutlineViewDataSource)" = GormOutlineView; "NSObject(GormOutlineViewDelegate)" = GormOutlineView; "NSView(GormExtensions)" = "NSView+GormExtensions"; "NSWindowTemplate(Private)" = GormWindowTemplate; }; class = { GormBoxEditor = GormBoxEditor; GormClassEditor = GormClassEditor; GormClassInspector = GormClassInspector; GormClassManager = GormClassManager; GormClassPanelController = GormClassPanelController; GormClassProxy = GormPrivate; GormConnectionInspector = GormConnectionInspector; GormControlEditor = GormControlEditor; GormCustomClassInspector = GormCustomClassInspector; GormCustomView = GormCustomView; GormDocument = GormDocument; GormDocumentController = GormDocumentController; GormDocumentWindow = GormDocumentWindow; GormEditorToParent = GormDocument; GormFilePrefsManager = GormFilePrefsManager; GormFilesOwner = GormFilesOwner; GormFilesOwnerInspector = GormFilesOwner; GormFirstResponder = GormDocument; GormFontViewController = GormFontViewController; GormGenericEditor = GormGenericEditor; GormHelpInspector = GormHelpInspector; GormImage = GormImage; GormImageEditor = GormImageEditor; GormImageInspector = GormImageInspector; GormInspectorsManager = GormInspectorsManager; GormInternalViewEditor = GormInternalViewEditor; GormMatrixEditor = GormMatrixEditor; GormNSPanel = GormNSPanel; GormNSSplitViewInspector = GormNSSplitViewInspector; GormNSWindow = GormNSWindow; GormObjectEditor = GormObjectEditor; GormObjectInspector = GormObjectInspector; GormObjectProxy = GormPrivate; GormObjectToEditor = GormDocument; GormOpenGLView = GormOpenGLView; GormOutletActionHolder = GormOutlineView; GormOutlineView = GormOutlineView; GormPalettesManager = GormPalettesManager; GormPlacementHint = GormPlacementInfo; GormPlacementInfo = GormPlacementInfo; GormPlugin = GormPlugin; GormPluginManager = GormPluginManager; GormResource = GormResource; GormResourceEditor = GormResourceEditor; GormResourceManager = GormResourceManager; GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; GormSetNameController = GormSetNameController; GormSound = GormSound; GormSoundEditor = GormSoundEditor; GormSoundInspector = GormSoundInspector; GormSoundView = GormSoundView; GormSplitViewEditor = GormSplitViewEditor; GormStandaloneViewEditor = GormStandaloneViewEditor; GormViewEditor = GormViewEditor; GormViewSizeInspector = GormViewSizeInspector; GormViewWindow = GormViewWindow; GormViewWithContentViewEditor = GormViewWithContentViewEditor; GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; GormWindowEditor = GormWindowEditor; GormWindowTemplate = GormWindowTemplate; GormWrapperBuilder = GormWrapperBuilder; GormWrapperBuilderFactory = GormWrapperBuilder; GormWrapperLoader = GormWrapperLoader; GormWrapperLoaderFactory = GormWrapperLoader; }; classvars = { GormBoxEditor = { contentViewEditor = GormBoxEditor; }; GormClassEditor = { browserView = GormClassEditor; classManager = GormClassEditor; classesView = GormClassEditor; document = GormClassEditor; mainView = GormClassEditor; outlineView = GormClassEditor; scrollView = GormClassEditor; selectedClass = GormClassEditor; viewToggle = GormClassEditor; }; GormClassInspector = { actionData = GormClassInspector; actionTable = GormClassInspector; addAction = GormClassInspector; addOutlet = GormClassInspector; classField = GormClassInspector; classManager = GormClassInspector; currentClass = GormClassInspector; outletData = GormClassInspector; outletTable = GormClassInspector; parentClass = GormClassInspector; parentClassData = GormClassInspector; removeAction = GormClassInspector; removeOutlet = GormClassInspector; search = GormClassInspector; searchText = GormClassInspector; selectClass = GormClassInspector; tabView = GormClassInspector; theobject = GormClassInspector; }; GormClassManager = { categoryClasses = GormClassManager; classInformation = GormClassManager; customClassMap = GormClassManager; customClasses = GormClassManager; document = GormClassManager; }; GormClassPanelController = { allClasses = GormClassPanelController; classBrowser = GormClassPanelController; className = GormClassPanelController; classNameForm = GormClassPanelController; okButton = GormClassPanelController; panel = GormClassPanelController; }; GormClassProxy = { name = GormPrivate; t = GormPrivate; }; GormConnectionInspector = { actions = GormConnectionInspector; connectors = GormConnectionInspector; currentConnector = GormConnectionInspector; newBrowser = GormConnectionInspector; oldBrowser = GormConnectionInspector; outlets = GormConnectionInspector; }; GormCustomClassInspector = { "_classManager" = GormCustomClassInspector; "_currentSelectionClassName" = GormCustomClassInspector; "_document" = GormCustomClassInspector; "_parentClassName" = GormCustomClassInspector; "_rowToSelect" = GormCustomClassInspector; browser = GormCustomClassInspector; }; GormCustomView = { className = GormCustomView; }; GormDocument = { classManager = GormDocument; classesScrollView = GormDocument; classesView = GormDocument; connections = GormDocument; deferredWindows = GormDocument; filePrefsManager = GormDocument; filePrefsView = GormDocument; filePrefsWindow = GormDocument; filesOwner = GormDocument; firstResponder = GormDocument; fontManager = GormDocument; hidden = GormDocument; images = GormDocument; imagesScrollView = GormDocument; imagesView = GormDocument; infoData = GormDocument; isActive = GormDocument; isDocumentOpen = GormDocument; isOlderArchive = GormDocument; lastEditor = GormDocument; nameTable = GormDocument; objToName = GormDocument; objectsView = GormDocument; openEditors = GormDocument; quitItem = GormDocument; resourceManagers = GormDocument; savedEditors = GormDocument; savedMenu = GormDocument; scmWrapper = GormDocument; scrollView = GormDocument; selectionBox = GormDocument; sounds = GormDocument; soundsScrollView = GormDocument; soundsView = GormDocument; toolbar = GormDocument; topLevelObjects = GormDocument; visibleWindows = GormDocument; window = GormDocument; }; GormDocumentWindow = { "_document" = GormDocumentWindow; dragMgr = GormDocumentWindow; }; GormFilePrefsManager = { archiveType = GormFilePrefsManager; archiveTypeName = GormFilePrefsManager; currentProfile = GormFilePrefsManager; fileType = GormFilePrefsManager; gormAppVersion = GormFilePrefsManager; itable = GormFilePrefsManager; iwindow = GormFilePrefsManager; showIncompatibilities = GormFilePrefsManager; targetVersion = GormFilePrefsManager; targetVersionName = GormFilePrefsManager; version = GormFilePrefsManager; versionProfiles = GormFilePrefsManager; }; GormFilesOwner = { className = GormFilesOwner; }; GormFilesOwnerInspector = { browser = GormFilesOwner; classes = GormFilesOwner; hasConnections = GormFilesOwner; }; GormFontViewController = { encodeButton = GormFontViewController; fontSelector = GormFontViewController; view = GormFontViewController; }; GormGenericEditor = { activated = GormGenericEditor; closed = GormGenericEditor; document = GormGenericEditor; dragPb = GormGenericEditor; dragType = GormGenericEditor; objects = GormGenericEditor; resourceManager = GormGenericEditor; selected = GormGenericEditor; }; GormHelpInspector = { toolTip = GormHelpInspector; }; GormImage = { image = GormImage; smallImage = GormImage; }; GormImageInspector = { "_currentImage" = GormImageInspector; height = GormImageInspector; imageView = GormImageInspector; name = GormImageInspector; width = GormImageInspector; }; GormInspectorsManager = { buttonView = GormInspectorsManager; cache = GormInspectorsManager; current = GormInspectorsManager; hiddenDuringTest = GormInspectorsManager; oldInspector = GormInspectorsManager; origFrame = GormInspectorsManager; }; GormMatrixEditor = { selected = GormMatrixEditor; selectedCol = GormMatrixEditor; selectedRow = GormMatrixEditor; }; GormNSPanel = { "_gormReleasedWhenClosed" = GormNSPanel; "_gormStyleMask" = GormNSPanel; autoPositionMask = GormNSPanel; }; GormNSSplitViewInspector = { divider = GormNSSplitViewInspector; orientation = GormNSSplitViewInspector; }; GormNSWindow = { "_gormReleasedWhenClosed" = GormNSWindow; "_gormStyleMask" = GormNSWindow; autoPositionMask = GormNSWindow; }; GormObjectInspector = { browser = GormObjectInspector; gets = GormObjectInspector; isString = GormObjectInspector; label = GormObjectInspector; sets = GormObjectInspector; types = GormObjectInspector; value = GormObjectInspector; }; GormOpenGLView = { rtri = GormOpenGLView; timer = GormOpenGLView; }; GormOutletActionHolder = { "_name" = GormOutlineView; }; GormOutlineView = { "_actionColumn" = GormOutlineView; "_attributeOffset" = GormOutlineView; "_edittype" = GormOutlineView; "_isEditing" = GormOutlineView; "_itemBeingEdited" = GormOutlineView; "_menuItem" = GormOutlineView; "_outletColumn" = GormOutlineView; }; GormPalettesManager = { bundles = GormPalettesManager; current = GormPalettesManager; dragView = GormPalettesManager; hiddenDuringTest = GormPalettesManager; importedClasses = GormPalettesManager; importedImages = GormPalettesManager; importedSounds = GormPalettesManager; palettes = GormPalettesManager; panel = GormPalettesManager; selectionView = GormPalettesManager; substituteClasses = GormPalettesManager; }; GormPlacementHint = { "_border" = GormPlacementInfo; "_end" = GormPlacementInfo; "_frame" = GormPlacementInfo; "_position" = GormPlacementInfo; "_start" = GormPlacementInfo; }; GormPlacementInfo = { bottomHints = GormPlacementInfo; firstPass = GormPlacementInfo; hintFrame = GormPlacementInfo; hintInitialized = GormPlacementInfo; knob = GormPlacementInfo; lastBottomRect = GormPlacementInfo; lastFrame = GormPlacementInfo; lastLeftRect = GormPlacementInfo; lastRightRect = GormPlacementInfo; lastTopRect = GormPlacementInfo; leftHints = GormPlacementInfo; oldRect = GormPlacementInfo; resizingIn = GormPlacementInfo; rightHints = GormPlacementInfo; topHints = GormPlacementInfo; }; GormPluginManager = { bundles = GormPluginManager; pluginNames = GormPluginManager; plugins = GormPluginManager; pluginsDict = GormPluginManager; }; GormResource = { data = GormResource; fileName = GormResource; fileType = GormResource; isInWrapper = GormResource; isLocalized = GormResource; isSystemResource = GormResource; language = GormResource; name = GormResource; path = GormResource; project = GormResource; }; GormScrollViewAttributesInspector = { borderMatrix = GormScrollViewAttributesInspector; color = GormScrollViewAttributesInspector; horizontalRuler = GormScrollViewAttributesInspector; horizontalScroll = GormScrollViewAttributesInspector; lineAmount = GormScrollViewAttributesInspector; pageContext = GormScrollViewAttributesInspector; verticalRuler = GormScrollViewAttributesInspector; verticalScroll = GormScrollViewAttributesInspector; }; GormSetNameController = { cancelButton = GormSetNameController; okButton = GormSetNameController; textField = GormSetNameController; window = GormSetNameController; }; GormSoundInspector = { soundView = GormSoundInspector; }; GormSoundView = { "_sound" = GormSoundView; }; GormViewEditor = { "_editedObject" = GormViewEditor; activated = GormViewEditor; closed = GormViewEditor; document = GormViewEditor; parent = GormViewEditor; viewWindow = GormViewEditor; }; GormViewSizeInspector = { bottom = GormViewSizeInspector; height = GormViewSizeInspector; left = GormViewSizeInspector; right = GormViewSizeInspector; sizeForm = GormViewSizeInspector; top = GormViewSizeInspector; width = GormViewSizeInspector; }; GormViewWindow = { "_view" = GormViewWindow; }; GormViewWithContentViewEditor = { contentViewEditor = GormViewWithContentViewEditor; }; GormViewWithSubviewsEditor = { "_displaySelection" = GormViewWithSubviewsEditor; "_followGuideLine" = GormViewWithSubviewsEditor; opened = GormViewWithSubviewsEditor; openedSubeditor = GormViewWithSubviewsEditor; selection = GormViewWithSubviewsEditor; }; GormWindowEditor = { dragPb = GormWindowEditor; dragType = GormWindowEditor; "edit_view" = GormWindowEditor; isLinkSource = GormWindowEditor; subeditors = GormWindowEditor; }; GormWindowTemplate = { "_tempFlag" = GormWindowTemplate; }; GormWrapperBuilder = { document = GormWrapperBuilder; }; GormWrapperLoader = { document = GormWrapperLoader; }; }; function = { GormDrawKnobsForRect = GormViewKnobs; GormDrawOpenKnobsForRect = GormViewKnobs; GormExtBoundsForRect = GormViewKnobs; GormKnobHitInRect = GormViewKnobs; GormShowFastKnobFills = GormViewKnobs; GormShowFrameWithKnob = GormViewKnobs; "_GSObjCMethodNamesForClass" = GormFunctions; "_GSObjCVariableNames" = GormFunctions; allSubviews = GormFunctions; appVersion = GormFunctions; colorFromDict = GormFunctions; colorToDict = GormFunctions; cutFileLabelText = GormFunctions; defaultCellSize = GormFunctions; findAll = GormFunctions; findAllSubmenus = GormFunctions; findAllWithArray = GormFunctions; formatAction = GormFunctions; formatOutlet = GormFunctions; identifierString = GormFunctions; minimalContainerFrame = GormFunctions; promptForClassName = GormFunctions; subviewsForView = GormFunctions; systemImagesList = GormFunctions; systemSoundsList = GormFunctions; }; ivariable = { "_actionColumn" = { GormOutlineView = GormOutlineView; }; "_attributeOffset" = { GormOutlineView = GormOutlineView; }; "_border" = { GormPlacementHint = GormPlacementInfo; }; "_classManager" = { GormCustomClassInspector = GormCustomClassInspector; }; "_currentImage" = { GormImageInspector = GormImageInspector; }; "_currentSelectionClassName" = { GormCustomClassInspector = GormCustomClassInspector; }; "_displaySelection" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "_document" = { GormCustomClassInspector = GormCustomClassInspector; GormDocumentWindow = GormDocumentWindow; }; "_editedObject" = { GormViewEditor = GormViewEditor; }; "_edittype" = { GormOutlineView = GormOutlineView; }; "_end" = { GormPlacementHint = GormPlacementInfo; }; "_followGuideLine" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "_frame" = { GormPlacementHint = GormPlacementInfo; }; "_gormReleasedWhenClosed" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "_gormStyleMask" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "_isEditing" = { GormOutlineView = GormOutlineView; }; "_itemBeingEdited" = { GormOutlineView = GormOutlineView; }; "_menuItem" = { GormOutlineView = GormOutlineView; }; "_name" = { GormOutletActionHolder = GormOutlineView; }; "_outletColumn" = { GormOutlineView = GormOutlineView; }; "_parentClassName" = { GormCustomClassInspector = GormCustomClassInspector; }; "_position" = { GormPlacementHint = GormPlacementInfo; }; "_rowToSelect" = { GormCustomClassInspector = GormCustomClassInspector; }; "_sound" = { GormSoundView = GormSoundView; }; "_start" = { GormPlacementHint = GormPlacementInfo; }; "_tempFlag" = { GormWindowTemplate = GormWindowTemplate; }; "_view" = { GormViewWindow = GormViewWindow; }; actionData = { GormClassInspector = GormClassInspector; }; actionTable = { GormClassInspector = GormClassInspector; }; actions = { GormConnectionInspector = GormConnectionInspector; }; activated = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; }; addAction = { GormClassInspector = GormClassInspector; }; addOutlet = { GormClassInspector = GormClassInspector; }; allClasses = { GormClassPanelController = GormClassPanelController; }; archiveType = { GormFilePrefsManager = GormFilePrefsManager; }; archiveTypeName = { GormFilePrefsManager = GormFilePrefsManager; }; autoPositionMask = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; borderMatrix = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; bottom = { GormViewSizeInspector = GormViewSizeInspector; }; bottomHints = { GormPlacementInfo = GormPlacementInfo; }; browser = { GormCustomClassInspector = GormCustomClassInspector; GormFilesOwnerInspector = GormFilesOwner; GormObjectInspector = GormObjectInspector; }; browserView = { GormClassEditor = GormClassEditor; }; bundles = { GormPalettesManager = GormPalettesManager; GormPluginManager = GormPluginManager; }; buttonView = { GormInspectorsManager = GormInspectorsManager; }; cache = { GormInspectorsManager = GormInspectorsManager; }; cancelButton = { GormSetNameController = GormSetNameController; }; categoryClasses = { GormClassManager = GormClassManager; }; classBrowser = { GormClassPanelController = GormClassPanelController; }; classField = { GormClassInspector = GormClassInspector; }; classInformation = { GormClassManager = GormClassManager; }; classManager = { GormClassEditor = GormClassEditor; GormClassInspector = GormClassInspector; GormDocument = GormDocument; }; className = { GormClassPanelController = GormClassPanelController; GormCustomView = GormCustomView; GormFilesOwner = GormFilesOwner; }; classNameForm = { GormClassPanelController = GormClassPanelController; }; classes = { GormFilesOwnerInspector = GormFilesOwner; }; classesScrollView = { GormDocument = GormDocument; }; classesView = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; closed = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; }; color = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; connections = { GormDocument = GormDocument; }; connectors = { GormConnectionInspector = GormConnectionInspector; }; contentViewEditor = { GormBoxEditor = GormBoxEditor; GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; current = { GormInspectorsManager = GormInspectorsManager; GormPalettesManager = GormPalettesManager; }; currentClass = { GormClassInspector = GormClassInspector; }; currentConnector = { GormConnectionInspector = GormConnectionInspector; }; currentProfile = { GormFilePrefsManager = GormFilePrefsManager; }; customClassMap = { GormClassManager = GormClassManager; }; customClasses = { GormClassManager = GormClassManager; }; data = { GormResource = GormResource; }; deferredWindows = { GormDocument = GormDocument; }; divider = { GormNSSplitViewInspector = GormNSSplitViewInspector; }; document = { GormClassEditor = GormClassEditor; GormClassManager = GormClassManager; GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; GormWrapperBuilder = GormWrapperBuilder; GormWrapperLoader = GormWrapperLoader; }; dragMgr = { GormDocumentWindow = GormDocumentWindow; }; dragPb = { GormGenericEditor = GormGenericEditor; GormWindowEditor = GormWindowEditor; }; dragType = { GormGenericEditor = GormGenericEditor; GormWindowEditor = GormWindowEditor; }; dragView = { GormPalettesManager = GormPalettesManager; }; "edit_view" = { GormWindowEditor = GormWindowEditor; }; encodeButton = { GormFontViewController = GormFontViewController; }; fileName = { GormResource = GormResource; }; filePrefsManager = { GormDocument = GormDocument; }; filePrefsView = { GormDocument = GormDocument; }; filePrefsWindow = { GormDocument = GormDocument; }; fileType = { GormFilePrefsManager = GormFilePrefsManager; GormResource = GormResource; }; filesOwner = { GormDocument = GormDocument; }; firstPass = { GormPlacementInfo = GormPlacementInfo; }; firstResponder = { GormDocument = GormDocument; }; fontManager = { GormDocument = GormDocument; }; fontSelector = { GormFontViewController = GormFontViewController; }; gets = { GormObjectInspector = GormObjectInspector; }; gormAppVersion = { GormFilePrefsManager = GormFilePrefsManager; }; hasConnections = { GormFilesOwnerInspector = GormFilesOwner; }; height = { GormImageInspector = GormImageInspector; GormViewSizeInspector = GormViewSizeInspector; }; hidden = { GormDocument = GormDocument; }; hiddenDuringTest = { GormInspectorsManager = GormInspectorsManager; GormPalettesManager = GormPalettesManager; }; hintFrame = { GormPlacementInfo = GormPlacementInfo; }; hintInitialized = { GormPlacementInfo = GormPlacementInfo; }; horizontalRuler = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; horizontalScroll = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; image = { GormImage = GormImage; }; imageView = { GormImageInspector = GormImageInspector; }; images = { GormDocument = GormDocument; }; imagesScrollView = { GormDocument = GormDocument; }; imagesView = { GormDocument = GormDocument; }; importedClasses = { GormPalettesManager = GormPalettesManager; }; importedImages = { GormPalettesManager = GormPalettesManager; }; importedSounds = { GormPalettesManager = GormPalettesManager; }; infoData = { GormDocument = GormDocument; }; isActive = { GormDocument = GormDocument; }; isDocumentOpen = { GormDocument = GormDocument; }; isInWrapper = { GormResource = GormResource; }; isLinkSource = { GormWindowEditor = GormWindowEditor; }; isLocalized = { GormResource = GormResource; }; isOlderArchive = { GormDocument = GormDocument; }; isString = { GormObjectInspector = GormObjectInspector; }; isSystemResource = { GormResource = GormResource; }; itable = { GormFilePrefsManager = GormFilePrefsManager; }; iwindow = { GormFilePrefsManager = GormFilePrefsManager; }; knob = { GormPlacementInfo = GormPlacementInfo; }; label = { GormObjectInspector = GormObjectInspector; }; language = { GormResource = GormResource; }; lastBottomRect = { GormPlacementInfo = GormPlacementInfo; }; lastEditor = { GormDocument = GormDocument; }; lastFrame = { GormPlacementInfo = GormPlacementInfo; }; lastLeftRect = { GormPlacementInfo = GormPlacementInfo; }; lastRightRect = { GormPlacementInfo = GormPlacementInfo; }; lastTopRect = { GormPlacementInfo = GormPlacementInfo; }; left = { GormViewSizeInspector = GormViewSizeInspector; }; leftHints = { GormPlacementInfo = GormPlacementInfo; }; lineAmount = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; mainView = { GormClassEditor = GormClassEditor; }; name = { GormClassProxy = GormPrivate; GormImageInspector = GormImageInspector; GormResource = GormResource; }; nameTable = { GormDocument = GormDocument; }; newBrowser = { GormConnectionInspector = GormConnectionInspector; }; objToName = { GormDocument = GormDocument; }; objects = { GormGenericEditor = GormGenericEditor; }; objectsView = { GormDocument = GormDocument; }; okButton = { GormClassPanelController = GormClassPanelController; GormSetNameController = GormSetNameController; }; oldBrowser = { GormConnectionInspector = GormConnectionInspector; }; oldInspector = { GormInspectorsManager = GormInspectorsManager; }; oldRect = { GormPlacementInfo = GormPlacementInfo; }; openEditors = { GormDocument = GormDocument; }; opened = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; openedSubeditor = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; orientation = { GormNSSplitViewInspector = GormNSSplitViewInspector; }; origFrame = { GormInspectorsManager = GormInspectorsManager; }; outletData = { GormClassInspector = GormClassInspector; }; outletTable = { GormClassInspector = GormClassInspector; }; outlets = { GormConnectionInspector = GormConnectionInspector; }; outlineView = { GormClassEditor = GormClassEditor; }; pageContext = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; palettes = { GormPalettesManager = GormPalettesManager; }; panel = { GormClassPanelController = GormClassPanelController; GormPalettesManager = GormPalettesManager; }; parent = { GormViewEditor = GormViewEditor; }; parentClass = { GormClassInspector = GormClassInspector; }; parentClassData = { GormClassInspector = GormClassInspector; }; path = { GormResource = GormResource; }; pluginNames = { GormPluginManager = GormPluginManager; }; plugins = { GormPluginManager = GormPluginManager; }; pluginsDict = { GormPluginManager = GormPluginManager; }; project = { GormResource = GormResource; }; quitItem = { GormDocument = GormDocument; }; removeAction = { GormClassInspector = GormClassInspector; }; removeOutlet = { GormClassInspector = GormClassInspector; }; resizingIn = { GormPlacementInfo = GormPlacementInfo; }; resourceManager = { GormGenericEditor = GormGenericEditor; }; resourceManagers = { GormDocument = GormDocument; }; right = { GormViewSizeInspector = GormViewSizeInspector; }; rightHints = { GormPlacementInfo = GormPlacementInfo; }; rtri = { GormOpenGLView = GormOpenGLView; }; savedEditors = { GormDocument = GormDocument; }; savedMenu = { GormDocument = GormDocument; }; scmWrapper = { GormDocument = GormDocument; }; scrollView = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; search = { GormClassInspector = GormClassInspector; }; searchText = { GormClassInspector = GormClassInspector; }; selectClass = { GormClassInspector = GormClassInspector; }; selected = { GormGenericEditor = GormGenericEditor; GormMatrixEditor = GormMatrixEditor; }; selectedClass = { GormClassEditor = GormClassEditor; }; selectedCol = { GormMatrixEditor = GormMatrixEditor; }; selectedRow = { GormMatrixEditor = GormMatrixEditor; }; selection = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; selectionBox = { GormDocument = GormDocument; }; selectionView = { GormPalettesManager = GormPalettesManager; }; sets = { GormObjectInspector = GormObjectInspector; }; showIncompatibilities = { GormFilePrefsManager = GormFilePrefsManager; }; sizeForm = { GormViewSizeInspector = GormViewSizeInspector; }; smallImage = { GormImage = GormImage; }; soundView = { GormSoundInspector = GormSoundInspector; }; sounds = { GormDocument = GormDocument; }; soundsScrollView = { GormDocument = GormDocument; }; soundsView = { GormDocument = GormDocument; }; subeditors = { GormWindowEditor = GormWindowEditor; }; substituteClasses = { GormPalettesManager = GormPalettesManager; }; t = { GormClassProxy = GormPrivate; }; tabView = { GormClassInspector = GormClassInspector; }; targetVersion = { GormFilePrefsManager = GormFilePrefsManager; }; targetVersionName = { GormFilePrefsManager = GormFilePrefsManager; }; textField = { GormSetNameController = GormSetNameController; }; theobject = { GormClassInspector = GormClassInspector; }; timer = { GormOpenGLView = GormOpenGLView; }; toolTip = { GormHelpInspector = GormHelpInspector; }; toolbar = { GormDocument = GormDocument; }; top = { GormViewSizeInspector = GormViewSizeInspector; }; topHints = { GormPlacementInfo = GormPlacementInfo; }; topLevelObjects = { GormDocument = GormDocument; }; types = { GormObjectInspector = GormObjectInspector; }; value = { GormObjectInspector = GormObjectInspector; }; version = { GormFilePrefsManager = GormFilePrefsManager; }; versionProfiles = { GormFilePrefsManager = GormFilePrefsManager; }; verticalRuler = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; verticalScroll = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; view = { GormFontViewController = GormFontViewController; }; viewToggle = { GormClassEditor = GormClassEditor; }; viewWindow = { GormViewEditor = GormViewEditor; }; visibleWindows = { GormDocument = GormDocument; }; width = { GormImageInspector = GormImageInspector; GormViewSizeInspector = GormViewSizeInspector; }; window = { GormDocument = GormDocument; GormSetNameController = GormSetNameController; }; }; method = { "+classEditorForDocument:" = { GormClassEditor = GormClassEditor; }; "+currentVersion" = { GormFilePrefsManager = GormFilePrefsManager; }; "+defaultFormat" = { "NSDateFormatter(GormAdditions)" = GormPrivate; "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+defaultFormatValue" = { "NSDateFormatter(GormAdditions)" = GormPrivate; "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+editorForDocument:" = { GormGenericEditor = GormGenericEditor; }; "+fileType" = { GormWrapperBuilder = GormWrapperBuilder; GormWrapperLoader = GormWrapperLoader; }; "+formatAtIndex:" = { "NSDateFormatter(GormAdditions)" = GormPrivate; "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+formatCount" = { "NSDateFormatter(GormAdditions)" = GormPrivate; "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+imageForData:withFileName:inWrapper:" = { GormImage = GormImage; }; "+imageForPath:" = { GormImage = GormImage; }; "+imageForPath:inWrapper:" = { GormImage = GormImage; }; "+indexOfFormat:" = { "NSDateFormatter(GormAdditions)" = GormPrivate; "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+negativeFormatAtIndex:" = { "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+negativeValueAtIndex:" = { "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+positiveFormatAtIndex:" = { "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+positiveValueAtIndex:" = { "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+registerForAllPboardTypes:inDocument:" = { "IBResourceManager(GormAdditions)" = GormPrivate; }; "+registerWrapperBuilderClass:" = { GormWrapperBuilderFactory = GormWrapperBuilder; }; "+registerWrapperLoaderClass:" = { GormWrapperLoaderFactory = GormWrapperLoader; }; "+resourceForPath:" = { GormResource = GormResource; }; "+resourceForPath:inWrapper:" = { GormResource = GormResource; }; "+setEditor:forDocument:" = { GormGenericEditor = GormGenericEditor; GormObjectEditor = GormObjectEditor; }; "+setIsInInterfaceBuilder:" = { "GSClassSwapper(GormCustomClassAdditions)" = GormPrivate; "NSClassSwapper(GormCustomClassAdditions)" = GormPrivate; }; "+sharedGormFontViewController" = { GormFontViewController = GormFontViewController; }; "+sharedWrapperBuilderFactory" = { GormWrapperBuilderFactory = GormWrapperBuilder; }; "+sharedWrapperLoaderFactory" = { GormWrapperLoaderFactory = GormWrapperLoader; }; "+soundForData:withFileName:inWrapper:" = { GormSound = GormSound; }; "+soundForPath:" = { GormSound = GormSound; }; "+soundForPath:inWrapper:" = { GormSound = GormSound; }; "+zeroFormatAtIndex:" = { "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "-_currentClass" = { GormClassInspector = GormClassInspector; }; "-_isReleasedWhenClosed" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "-_refreshView" = { GormClassInspector = GormClassInspector; }; "-_setReleasedWhenClosed:" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "-_setStyleMask:" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "-_styleMask" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "-acceptsTypeFromArray:" = { GormObjectEditor = GormObjectEditor; GormWindowEditor = GormWindowEditor; }; "-actionColumn" = { GormOutlineView = GormOutlineView; }; "-actionExists:onClassNamed:" = { GormClassManager = GormClassManager; }; "-activate" = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; GormWindowEditor = GormWindowEditor; }; "-addAction:" = { GormClassInspector = GormClassInspector; }; "-addAction:forClassNamed:" = { GormClassManager = GormClassManager; }; "-addAction:forObject:" = { GormClassManager = GormClassManager; }; "-addActions:forClassNamed:" = { GormClassManager = GormClassManager; }; "-addAttributeToClass" = { GormClassEditor = GormClassEditor; }; "-addAttributeToClass:" = { GormDocument = GormDocument; }; "-addClass:" = { "(GormServer)" = GormServer; }; "-addClassNamed:withSuperClassNamed:withActions:withOutlets:" = { GormClassManager = GormClassManager; }; "-addClassNamed:withSuperClassNamed:withActions:withOutlets:isCustom:" = { GormClassManager = GormClassManager; }; "-addClassWithSuperClassName:" = { GormClassManager = GormClassManager; }; "-addConnector:" = { GormDocument = GormDocument; }; "-addNewActionToClassNamed:" = { GormClassManager = GormClassManager; }; "-addNewOutletToClassNamed:" = { GormClassManager = GormClassManager; }; "-addObject:" = { GormGenericEditor = GormGenericEditor; }; "-addOutlet:" = { GormClassInspector = GormClassInspector; }; "-addOutlet:forClassNamed:" = { GormClassManager = GormClassManager; }; "-addOutlet:forObject:" = { GormClassManager = GormClassManager; }; "-addOutlets:forClassNamed:" = { GormClassManager = GormClassManager; }; "-addSystemResources" = { GormResourceEditor = GormResourceEditor; }; "-alignSelectedObjects:" = { GormDocument = GormDocument; }; "-allActionsForClassNamed:" = { GormClassManager = GormClassManager; }; "-allActionsForObject:" = { GormClassManager = GormClassManager; }; "-allClassNames" = { GormClassManager = GormClassManager; }; "-allCustomClassNames" = { GormClassManager = GormClassManager; }; "-allCustomSubclassesOf:" = { GormClassManager = GormClassManager; }; "-allManagedPboardTypes" = { GormDocument = GormDocument; }; "-allOutletsForClassNamed:" = { GormClassManager = GormClassManager; }; "-allOutletsForObject:" = { GormClassManager = GormClassManager; }; "-allSubclassesOf:" = { GormClassManager = GormClassManager; }; "-allSuperClassesOf:" = { GormClassManager = GormClassManager; }; "-allocSubstitute" = { "NSObject(GormAdditions)" = GormPrivate; }; "-archiveByName" = { "NSImage(GormNSImageAddition)" = GormImage; }; "-archiveTypeName" = { GormFilePrefsManager = GormFilePrefsManager; }; "-arrangeSelectedObjects:" = { GormDocument = GormDocument; }; "-attributeOffset" = { GormOutlineView = GormOutlineView; }; "-autoPositionMask" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "-border" = { GormPlacementHint = GormPlacementInfo; }; "-borderSelected:" = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; "-browserAction:" = { GormClassPanelController = GormClassPanelController; }; "-buildDocumentForType:" = { GormDocumentController = GormDocumentController; }; "-buildFileWrapperDictionaryWithDocument:" = { "(GormWrapperBuilder)" = GormWrapperBuilder; }; "-buildFileWrapperWithDocument:" = { "(GormWrapperBuilder)" = GormWrapperBuilder; }; "-canBeOpened" = { GormViewEditor = GormViewEditor; }; "-canInstantiateClassNamed:" = { GormClassManager = GormClassManager; }; "-cancelHit:" = { GormSetNameController = GormSetNameController; }; "-changeClassName:" = { GormClassInspector = GormClassInspector; }; "-changeFont:" = { GormInternalViewEditor = GormInternalViewEditor; GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; GormWindowEditor = GormWindowEditor; }; "-changeSelection:" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; }; "-changeToTopLevelEditorAcceptingTypes:andFileType:" = { GormDocument = GormDocument; }; "-changeToViewWithTag:" = { GormDocument = GormDocument; }; "-classIsSelected" = { GormDocument = GormDocument; }; "-classManager" = { "(Gorm)" = GormProtocol; GormDocument = GormDocument; }; "-classMenu" = { "(Gorm)" = GormProtocol; }; "-className" = { "GSNibItem(GormAdditions)" = GormPrivate; GormClassProxy = GormPrivate; GormCustomView = GormCustomView; GormFilesOwner = GormFilesOwner; }; "-classNameForObject:" = { GormClassManager = GormClassManager; }; "-close" = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; GormWindowEditor = GormWindowEditor; }; "-closeAllEditors" = { GormDocument = GormDocument; }; "-closeSubeditors" = { GormGenericEditor = GormGenericEditor; GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; GormWindowEditor = GormWindowEditor; }; "-colorSelected:" = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; "-connectDestination" = { "(Gorm)" = GormProtocol; }; "-connectInspectorClassName" = { GormClassProxy = GormPrivate; }; "-connectSource" = { "(Gorm)" = GormProtocol; }; "-containsObject:" = { GormGenericEditor = GormGenericEditor; }; "-convertFont:" = { GormFontViewController = GormFontViewController; }; "-copy:" = { "(Gorm)" = GormProtocol; }; "-copySelection" = { GormGenericEditor = GormGenericEditor; GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-createClassFiles:" = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; "-createResourceManagers" = { GormDocument = GormDocument; }; "-createSubclass:" = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; "-currentSelectionIsClass" = { GormClassEditor = GormClassEditor; }; "-customClassForName:" = { GormClassManager = GormClassManager; }; "-customClassForObject:" = { GormClassManager = GormClassManager; }; "-customClassMap" = { GormClassManager = GormClassManager; }; "-customSubClassesOf:" = { GormClassManager = GormClassManager; }; "-cut:" = { "(Gorm)" = GormProtocol; }; "-data" = { GormClassManager = GormClassManager; GormFilePrefsManager = GormFilePrefsManager; GormResource = GormResource; }; "-deactivate" = { GormViewEditor = GormViewEditor; GormWindowEditor = GormWindowEditor; }; "-deactivateEditors" = { GormDocument = GormDocument; }; "-deactivateSubeditors" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-deferredWindows" = { GormDocument = GormDocument; }; "-delete:" = { "(Gorm)" = GormProtocol; }; "-deleteClass:" = { "(GormServer)" = GormServer; }; "-deleteSelection" = { GormClassEditor = GormClassEditor; GormGenericEditor = GormGenericEditor; GormWindowEditor = GormWindowEditor; }; "-destroyAndListSubviews" = { GormBoxEditor = GormBoxEditor; GormInternalViewEditor = GormInternalViewEditor; GormSplitViewEditor = GormSplitViewEditor; }; "-detachSubviews" = { GormViewEditor = GormViewEditor; }; "-dictionaryForClassNamed:" = { GormClassManager = GormClassManager; }; "-displayConnectionBetween:and:" = { "(Gorm)" = GormProtocol; }; "-distanceToFrame:" = { GormPlacementHint = GormPlacementInfo; }; "-document" = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; GormWindowEditor = GormWindowEditor; }; "-draggedImage:endedAt:deposited:" = { GormObjectEditor = GormObjectEditor; GormResourceEditor = GormResourceEditor; GormWindowEditor = GormWindowEditor; }; "-draggingSourceOperationMaskForLocal:" = { GormObjectEditor = GormObjectEditor; GormResourceEditor = GormResourceEditor; GormWindowEditor = GormWindowEditor; }; "-editClass" = { GormClassEditor = GormClassEditor; }; "-editTextField:withEvent:" = { "GormViewEditor(EditingAdditions)" = GormViewEditor; }; "-editType" = { GormOutlineView = GormOutlineView; }; "-editedObject" = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; }; "-end" = { GormPlacementHint = GormPlacementInfo; }; "-endTesting:" = { "(Gorm)" = GormProtocol; }; "-exportStrings:" = { GormDocument = GormDocument; }; "-extraActionsForObject:" = { GormClassManager = GormClassManager; }; "-extraOutletsForObject:" = { GormClassManager = GormClassManager; }; "-filePrefsManager" = { GormDocument = GormDocument; }; "-fileTypeName" = { GormFilePrefsManager = GormFilePrefsManager; }; "-fileTypes" = { GormClassEditor = GormClassEditor; GormGenericEditor = GormGenericEditor; }; "-filesOwner" = { GormDocument = GormDocument; }; "-findClassByName:" = { GormClassManager = GormClassManager; }; "-firstResponder" = { GormDocument = GormDocument; }; "-fontManager" = { GormDocument = GormDocument; }; "-fontMenu" = { GormDocument = GormDocument; }; "-frame" = { GormPlacementHint = GormPlacementInfo; }; "-frameDidChange:" = { GormViewEditor = GormViewEditor; }; "-getName" = { GormOutletActionHolder = GormOutlineView; }; "-groupSelectionInBox" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-groupSelectionInBox:" = { "(Gorm)" = GormProtocol; }; "-groupSelectionInMatrix" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-groupSelectionInScrollView" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; }; "-groupSelectionInScrollView:" = { "(Gorm)" = GormProtocol; }; "-groupSelectionInSplitView" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-groupSelectionInSplitView:" = { "(Gorm)" = GormProtocol; }; "-groupSelectionInView" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-handleMouseOnKnob:ofView:withEvent:" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-handleMouseOnView:withEvent:" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-handleNotification:" = { GormClassInspector = GormClassInspector; GormDocument = GormDocument; }; "-hasSuperviewKindOfClass:" = { "NSView(GormExtensions)" = "NSView+GormExtensions"; }; "-horizontalRuler:" = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; "-horizontalSelected:" = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; "-image" = { GormImage = GormImage; }; "-imageForViewer" = { "NSObject(GormAdditions)" = GormPrivate; }; "-images" = { GormDocument = GormDocument; }; "-importClasses:withDictionary:" = { GormPalettesManager = GormPalettesManager; }; "-importImages:withBundle:" = { GormPalettesManager = GormPalettesManager; }; "-importSounds:withBundle:" = { GormPalettesManager = GormPalettesManager; }; "-importedClasses" = { GormPalettesManager = GormPalettesManager; }; "-importedImages" = { GormPalettesManager = GormPalettesManager; }; "-importedSounds" = { GormPalettesManager = GormPalettesManager; }; "-infoData" = { GormDocument = GormDocument; }; "-initWithBorder:position:validityStart:validityEnd:frame:" = { GormPlacementHint = GormPlacementInfo; }; "-initWithClassName:" = { "GSNibItem(GormAdditions)" = GormPrivate; GormClassProxy = GormPrivate; }; "-initWithClassName:frame:" = { "GSNibItem(GormAdditions)" = GormPrivate; }; "-initWithData:withFileName:inWrapper:" = { GormResource = GormResource; }; "-initWithDocument:" = { GormClassEditor = GormClassEditor; GormClassManager = GormClassManager; }; "-initWithName:" = { GormOutletActionHolder = GormOutlineView; }; "-initWithName:path:" = { GormResource = GormResource; }; "-initWithName:path:inWrapper:" = { GormResource = GormResource; }; "-initWithObject:inDocument:" = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; GormWindowEditor = GormWindowEditor; }; "-initWithPath:" = { GormResource = GormResource; }; "-initWithPath:inWrapper:" = { GormResource = GormResource; }; "-initWithTitle:classList:" = { GormClassPanelController = GormClassPanelController; }; "-initWithView:" = { GormViewWindow = GormViewWindow; }; "-initializeResizingInFrame:withKnob:" = { "GormViewEditor(IntelligentPlacement)" = GormViewEditor; }; "-inspector:" = { "(Gorm)" = GormProtocol; }; "-inspectorClassName" = { GormClassProxy = GormPrivate; }; "-inspectorsManager" = { "(Gorm)" = GormProtocol; }; "-instantiateClass:" = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; "-isAction:ofClass:" = { GormClassManager = GormClassManager; }; "-isAction:onCategoryForClassNamed:" = { GormClassManager = GormClassManager; }; "-isActive" = { GormDocument = GormDocument; }; "-isCategoryForClass:" = { GormClassManager = GormClassManager; }; "-isConnecting" = { "(Gorm)" = GormProtocol; }; "-isCustomClass:" = { GormClassManager = GormClassManager; }; "-isCustomClassMapEmpty" = { GormClassManager = GormClassManager; }; "-isDocumentOpen" = { GormDocument = GormDocument; }; "-isEditing" = { GormClassEditor = GormClassEditor; GormOutlineView = GormOutlineView; }; "-isEditingClasses" = { "GormDocument(MenuValidation)" = GormDocument; }; "-isEditingImages" = { "GormDocument(MenuValidation)" = GormDocument; }; "-isEditingObjects" = { "GormDocument(MenuValidation)" = GormDocument; }; "-isEditingSounds" = { "GormDocument(MenuValidation)" = GormDocument; }; "-isEqual:" = { GormResource = GormResource; }; "-isInInterfaceBuilder" = { "GSClassSwapper(GormCustomClassAdditions)" = GormPrivate; "NSClassSwapper(GormCustomClassAdditions)" = GormPrivate; }; "-isInWrapper" = { GormResource = GormResource; }; "-isKnownClass:" = { GormClassManager = GormClassManager; }; "-isLatest" = { GormFilePrefsManager = GormFilePrefsManager; }; "-isNonCustomClass:" = { GormClassManager = GormClassManager; }; "-isOlderArchive" = { GormDocument = GormDocument; }; "-isOpened" = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; }; "-isOutlet:ofClass:" = { GormClassManager = GormClassManager; }; "-isRootClass:" = { GormClassManager = GormClassManager; }; "-isSuperclass:linkedToClass:" = { GormClassManager = GormClassManager; }; "-isSystemResource" = { GormResource = GormResource; }; "-isTopLevelObject:" = { GormDocument = GormDocument; }; "-itemBeingEdited" = { GormOutlineView = GormOutlineView; }; "-loadClass:" = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; "-loadCustomClasses:" = { GormClassManager = GormClassManager; }; "-loadCustomClassesWithData:" = { GormClassManager = GormClassManager; }; "-loadCustomClassesWithDict:" = { GormClassManager = GormClassManager; }; "-loadFileWrapper:withDocument:" = { "(GormWrapperLoader)" = GormWrapperLoader; }; "-loadFromData:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-loadFromFile:" = { GormClassManager = GormClassManager; GormFilePrefsManager = GormFilePrefsManager; }; "-loadImage:" = { "(Gorm)" = GormProtocol; }; "-loadNibFormatCustomClassesWithData:" = { GormClassManager = GormClassManager; }; "-loadNibFormatCustomClassesWithDict:" = { GormClassManager = GormClassManager; }; "-loadPalette:" = { "(Gorm)" = GormProtocol; GormPalettesManager = GormPalettesManager; }; "-loadPlugin:" = { GormPluginManager = GormPluginManager; }; "-loadProfile:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-loadSound:" = { "(Gorm)" = GormProtocol; }; "-makeSelectionVisible:" = { GormObjectEditor = GormObjectEditor; GormViewEditor = GormViewEditor; GormWindowEditor = GormWindowEditor; }; "-makeSourceAndHeaderFilesForClass:withName:and:" = { GormClassManager = GormClassManager; }; "-makeSubeditorResign" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-menuItem" = { GormOutlineView = GormOutlineView; }; "-moveViewToBack:" = { "NSView(GormExtensions)" = "NSView+GormExtensions"; }; "-moveViewToFront:" = { "NSView(GormExtensions)" = "NSView+GormExtensions"; }; "-name" = { GormResource = GormResource; }; "-nameForObject:" = { GormDocument = GormDocument; }; "-nibData" = { GormClassManager = GormClassManager; }; "-nibDataWithOpenItems:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-nonCustomSuperClassOf:" = { GormClassManager = GormClassManager; }; "-normalImage" = { GormImage = GormImage; }; "-objectForName:" = { GormDocument = GormDocument; }; "-objectIsDeferred:" = { GormDocument = GormDocument; }; "-objectIsVisibleAtLaunch:" = { GormDocument = GormDocument; }; "-objects" = { GormDocument = GormDocument; GormGenericEditor = GormGenericEditor; }; "-okButton:" = { GormClassPanelController = GormClassPanelController; }; "-okHit:" = { GormSetNameController = GormSetNameController; }; "-openDocumentWithContentsOfURL:" = { GormDocumentController = GormDocumentController; }; "-openEditorForObject:withParentObject:" = { GormDocument = GormDocument; }; "-openImage:" = { GormDocument = GormDocument; }; "-openPalette:" = { GormPalettesManager = GormPalettesManager; }; "-openParentEditor" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-openPlugin:" = { GormPluginManager = GormPluginManager; }; "-openSound:" = { GormDocument = GormDocument; }; "-openSubeditorForObject:" = { GormGenericEditor = GormGenericEditor; GormWindowEditor = GormWindowEditor; }; "-orderFront" = { GormGenericEditor = GormGenericEditor; GormWindowEditor = GormWindowEditor; }; "-outletColumn" = { GormOutlineView = GormOutlineView; }; "-outletExists:onClassNamed:" = { GormClassManager = GormClassManager; }; "-outlineView:actionsForItem:" = { "NSObject(GormOutlineViewDataSource)" = GormOutlineView; }; "-outlineView:addAction:forClass:" = { "NSObject(GormOutlineViewDataSource)" = GormOutlineView; }; "-outlineView:addNewActionForClass:" = { "NSObject(GormOutlineViewDataSource)" = GormOutlineView; }; "-outlineView:addNewOutletForClass:" = { "NSObject(GormOutlineViewDataSource)" = GormOutlineView; }; "-outlineView:addOutlet:forClass:" = { "NSObject(GormOutlineViewDataSource)" = GormOutlineView; }; "-outlineView:outletsForItem:" = { "NSObject(GormOutlineViewDataSource)" = GormOutlineView; }; "-outlineView:shouldDeleteItem:" = { "NSObject(GormOutlineViewDelegate)" = GormOutlineView; }; "-palettes:" = { "(Gorm)" = GormProtocol; }; "-palettesManager" = { "(Gorm)" = GormProtocol; }; "-panel" = { GormInspectorsManager = GormInspectorsManager; GormPalettesManager = GormPalettesManager; }; "-parent" = { GormViewEditor = GormViewEditor; }; "-parentOfClass:" = { GormClassManager = GormClassManager; }; "-parseHeader:" = { GormClassManager = GormClassManager; }; "-paste:" = { "(Gorm)" = GormProtocol; }; "-pasteInSelection" = { GormGenericEditor = GormGenericEditor; GormWindowEditor = GormWindowEditor; }; "-pasteInView:" = { GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-pause:" = { GormSoundInspector = GormSoundInspector; }; "-pbTypes" = { GormResourceEditor = GormResourceEditor; }; "-placeHolderWithPath:" = { GormResourceEditor = GormResourceEditor; }; "-play:" = { GormSoundInspector = GormSoundInspector; }; "-pluginManager" = { "(Gorm)" = GormProtocol; }; "-position" = { GormPlacementHint = GormPlacementInfo; }; "-postDraw:" = { GormViewEditor = GormViewEditor; }; "-postDrawForView:" = { GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-preferencesPanel:" = { "(Gorm)" = GormProtocol; }; "-reactivateEditors" = { GormDocument = GormDocument; }; "-rebuildObjToNameMapping" = { GormDocument = GormDocument; }; "-recentDocumentsMenu" = { GormDocument = GormDocument; }; "-record:" = { GormSoundInspector = GormSoundInspector; }; "-rectForObject:" = { GormGenericEditor = GormGenericEditor; }; "-rectWithHalfDistance:" = { GormPlacementHint = GormPlacementInfo; }; "-refreshCells" = { GormGenericEditor = GormGenericEditor; GormResourceEditor = GormResourceEditor; }; "-refreshConnectionsForClassNamed:" = { GormDocument = GormDocument; }; "-registerDocumentTypeName:humanReadableName:forExtensions:" = { GormPlugin = GormPlugin; }; "-reloadData" = { GormClassEditor = GormClassEditor; }; "-remove:" = { GormDocument = GormDocument; }; "-removeAction:" = { GormClassInspector = GormClassInspector; }; "-removeAction:forObject:" = { GormClassManager = GormClassManager; }; "-removeAction:fromClassNamed:" = { GormClassManager = GormClassManager; }; "-removeAllInstancesOfClass:" = { GormDocument = GormDocument; }; "-removeClass:" = { GormClassEditor = GormClassEditor; }; "-removeClassNamed:" = { GormClassManager = GormClassManager; }; "-removeConnectionsForClassNamed:" = { GormDocument = GormDocument; }; "-removeConnectionsWithLabel:forClassNamed:isAction:" = { GormDocument = GormDocument; }; "-removeCustomClassForName:" = { GormClassManager = GormClassManager; }; "-removeItemAtRow:" = { GormOutlineView = GormOutlineView; }; "-removeObject:" = { GormGenericEditor = GormGenericEditor; }; "-removeOutlet:" = { GormClassInspector = GormClassInspector; }; "-removeOutlet:forObject:" = { GormClassManager = GormClassManager; }; "-removeOutlet:fromClassNamed:" = { GormClassManager = GormClassManager; }; "-renameClassNamed:newName:" = { GormClassManager = GormClassManager; }; "-renameConnectionsForClassNamed:toName:" = { GormDocument = GormDocument; }; "-replaceAction:withAction:forClassNamed:" = { GormClassManager = GormClassManager; }; "-replaceOutlet:withOutlet:forClassNamed:" = { GormClassManager = GormClassManager; }; "-reset" = { GormOutlineView = GormOutlineView; }; "-resetObject:" = { GormObjectEditor = GormObjectEditor; GormWindowEditor = GormWindowEditor; }; "-resourceManagerForPasteboard:" = { GormDocument = GormDocument; }; "-resourceManagers" = { GormDocument = GormDocument; }; "-resourceType" = { GormResourceEditor = GormResourceEditor; }; "-restoreClassVersions" = { GormFilePrefsManager = GormFilePrefsManager; }; "-retrieveObjectsForParent:recursively:" = { GormDocument = GormDocument; }; "-runAsModal" = { GormSetNameController = GormSetNameController; }; "-runModal" = { GormClassPanelController = GormClassPanelController; }; "-saveSCMDirectory:" = { GormWrapperLoader = GormWrapperLoader; }; "-saveToFile:" = { GormClassManager = GormClassManager; GormFilePrefsManager = GormFilePrefsManager; }; "-scmWrapper" = { GormDocument = GormDocument; }; "-searchForClass:" = { GormClassInspector = GormClassInspector; }; "-select:" = { GormClassInspector = GormClassInspector; GormCustomClassInspector = GormCustomClassInspector; }; "-selectAction:" = { GormClassInspector = GormClassInspector; }; "-selectAllItems:" = { "(Gorm)" = GormProtocol; }; "-selectArchiveType:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-selectClass:" = { GormClassEditor = GormClassEditor; GormClassInspector = GormClassInspector; GormDocument = GormDocument; }; "-selectClass:editClass:" = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; "-selectClassWithObject:" = { GormClassEditor = GormClassEditor; }; "-selectClassWithObject:editClass:" = { GormClassEditor = GormClassEditor; }; "-selectFont:" = { GormFontViewController = GormFontViewController; }; "-selectObjects:" = { GormGenericEditor = GormGenericEditor; GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-selectOutlet:" = { GormClassInspector = GormClassInspector; }; "-selectRow:" = { GormOutlineView = GormOutlineView; }; "-selectTargetVersion:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-selectedClassName" = { GormClassEditor = GormClassEditor; }; "-selection" = { GormViewEditor = GormViewEditor; }; "-sendAction" = { "NSFontManager(GormExtensions)" = "NSFontManager+GormExtensions"; }; "-servicesMenu" = { GormDocument = GormDocument; }; "-setActionColumn:" = { GormOutlineView = GormOutlineView; }; "-setArchiveByName:" = { "NSImage(GormNSImageAddition)" = GormImage; }; "-setAttributeOffset:" = { GormOutlineView = GormOutlineView; }; "-setAutoPositionMask:" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "-setBaseWindowClass:" = { "NSWindowTemplate(Private)" = GormWindowTemplate; }; "-setClassInspector" = { GormInspectorsManager = GormInspectorsManager; }; "-setClassName:" = { GormCustomView = GormCustomView; GormFilesOwner = GormFilesOwner; GormObjectProxy = GormPrivate; }; "-setClassVersions" = { GormFilePrefsManager = GormFilePrefsManager; }; "-setColorWithoutAction:" = { "NSColorWell(GormExtensions)" = "NSColorWell+GormExtensions"; }; "-setCurrentInspector:" = { GormInspectorsManager = GormInspectorsManager; }; "-setCurrentPalette:" = { GormPalettesManager = GormPalettesManager; }; "-setCustomClass:forName:" = { GormClassManager = GormClassManager; }; "-setCustomClassMap:" = { GormClassManager = GormClassManager; }; "-setData:" = { GormResource = GormResource; }; "-setDocument:" = { GormDocumentWindow = GormDocumentWindow; }; "-setDocumentActive:" = { GormDocument = GormDocument; }; "-setDocumentOpen:" = { GormDocument = GormDocument; }; "-setEditor:forDocument:" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; }; "-setFileTypeName:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-setFontMenu:" = { GormDocument = GormDocument; }; "-setImages:" = { GormDocument = GormDocument; }; "-setInWrapper:" = { GormResource = GormResource; }; "-setInfoData:" = { GormDocument = GormDocument; }; "-setIsEditing:" = { GormOutlineView = GormOutlineView; }; "-setItemBeingEdited:" = { GormOutlineView = GormOutlineView; }; "-setMenuItem:" = { GormOutlineView = GormOutlineView; }; "-setName:" = { "(Gorm)" = GormProtocol; GormOutletActionHolder = GormOutlineView; GormResource = GormResource; }; "-setObject:isDeferred:" = { GormDocument = GormDocument; }; "-setObject:isVisibleAtLaunch:" = { GormDocument = GormDocument; }; "-setOlderArchive:" = { GormDocument = GormDocument; }; "-setOpened:" = { GormViewEditor = GormViewEditor; }; "-setOpenedSubeditor:" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-setOutletColumn:" = { GormOutlineView = GormOutlineView; }; "-setRecentDocumentsMenu:" = { GormDocument = GormDocument; }; "-setSCMWrapper:" = { GormDocument = GormDocument; }; "-setSelectedClassName:" = { GormClassEditor = GormClassEditor; }; "-setServicesMenu:" = { GormDocument = GormDocument; }; "-setSound:" = { GormSoundView = GormSoundView; }; "-setSounds:" = { GormDocument = GormDocument; }; "-setSuperClassNamed:forClassNamed:" = { GormClassManager = GormClassManager; }; "-setSystemResource:" = { GormResource = GormResource; }; "-setUpFieldEditorAttributes:" = { "NSCell(GormAdditions)" = "NSCell+GormAdditions"; }; "-setView:" = { GormViewWindow = GormViewWindow; }; "-setWindowsMenu:" = { GormDocument = GormDocument; }; "-showIncompatibilities:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-silentlyResetSelection" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-sizeInspectorClassName" = { GormClassProxy = GormPrivate; }; "-sound" = { GormSoundView = GormSoundView; }; "-sounds" = { GormDocument = GormDocument; }; "-start" = { GormPlacementHint = GormPlacementInfo; }; "-stop:" = { GormSoundInspector = GormSoundInspector; }; "-stopConnecting" = { "(Gorm)" = GormProtocol; }; "-subClassesOf:" = { GormClassManager = GormClassManager; }; "-substituteClasses" = { GormPalettesManager = GormPalettesManager; }; "-superClassNameForClassNamed:" = { GormClassManager = GormClassManager; }; "-superviews" = { "NSView(GormExtensions)" = "NSView+GormExtensions"; }; "-takeClassFrom:" = { GormFilesOwnerInspector = GormFilesOwner; }; "-targetVersionName" = { GormFilePrefsManager = GormFilePrefsManager; }; "-testInterface:" = { "(Gorm)" = GormProtocol; }; "-textField" = { GormSetNameController = GormSetNameController; }; "-translate:" = { GormDocument = GormDocument; }; "-ungroup" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-ungroup:" = { "(Gorm)" = GormProtocol; }; "-uniqueClassNameFrom:" = { GormClassManager = GormClassManager; }; "-update:" = { GormObjectInspector = GormObjectInspector; }; "-updateButtons" = { GormConnectionInspector = GormConnectionInspector; }; "-updateResizingWithFrame:andEvent:andPlacementInfo:" = { "GormViewEditor(IntelligentPlacement)" = GormViewEditor; }; "-updateSelection" = { GormInspectorsManager = GormInspectorsManager; }; "-validateFrame:withEvent:andPlacementInfo:" = { "GormViewEditor(IntelligentPlacement)" = GormViewEditor; }; "-version" = { GormFilePrefsManager = GormFilePrefsManager; }; "-versionOfClass:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-verticalRuler:" = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; "-verticalSelected:" = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; "-view" = { GormFontViewController = GormFontViewController; GormViewWindow = GormViewWindow; }; "-viewWithTag:" = { GormDocument = GormDocument; }; "-visibleWindows" = { GormDocument = GormDocument; }; "-wantsSelection" = { GormGenericEditor = GormGenericEditor; }; "-willCloseDocument:" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; }; "-window" = { GormDocument = GormDocument; GormGenericEditor = GormGenericEditor; }; "-windowAndRect:forObject:" = { GormDocument = GormDocument; "GormViewEditor(WindowAndRect)" = GormViewEditor; }; "-windowsMenu" = { GormDocument = GormDocument; }; "-wrapperBuilderForType:" = { GormWrapperBuilderFactory = GormWrapperBuilder; }; "-wrapperLoaderForType:" = { GormWrapperLoaderFactory = GormWrapperLoader; }; "-zeroFormat" = { "NSNumberFormatter(GormAdditions)" = GormPrivate; }; }; output = { "../GormCore/GormBoxEditor.h" = ( "GormCore/GormBoxEditor.gsdoc" ); "../GormCore/GormClassEditor.h" = ( "GormCore/GormClassEditor.gsdoc" ); "../GormCore/GormClassInspector.h" = ( "GormCore/GormClassInspector.gsdoc" ); "../GormCore/GormClassManager.h" = ( "GormCore/GormClassManager.gsdoc" ); "../GormCore/GormClassPanelController.h" = ( "GormCore/GormClassPanelController.gsdoc" ); "../GormCore/GormConnectionInspector.h" = ( "GormCore/GormConnectionInspector.gsdoc" ); "../GormCore/GormControlEditor.h" = ( "GormCore/GormControlEditor.gsdoc" ); "../GormCore/GormCore.h" = ( "GormCore/GormCore.gsdoc" ); "../GormCore/GormCustomClassInspector.h" = ( "GormCore/GormCustomClassInspector.gsdoc" ); "../GormCore/GormCustomView.h" = ( "GormCore/GormCustomView.gsdoc" ); "../GormCore/GormDefines.h" = ( "GormCore/GormDefines.gsdoc" ); "../GormCore/GormDocument.h" = ( "GormCore/GormDocument.gsdoc" ); "../GormCore/GormDocumentController.h" = ( "GormCore/GormDocumentController.gsdoc" ); "../GormCore/GormDocumentWindow.h" = ( "GormCore/GormDocumentWindow.gsdoc" ); "../GormCore/GormFilePrefsManager.h" = ( "GormCore/GormFilePrefsManager.gsdoc" ); "../GormCore/GormFilesOwner.h" = ( "GormCore/GormFilesOwner.gsdoc" ); "../GormCore/GormFontViewController.h" = ( "GormCore/GormFontViewController.gsdoc" ); "../GormCore/GormFunctions.h" = ( "GormCore/GormFunctions.gsdoc" ); "../GormCore/GormGenericEditor.h" = ( "GormCore/GormGenericEditor.gsdoc" ); "../GormCore/GormHelpInspector.h" = ( "GormCore/GormHelpInspector.gsdoc" ); "../GormCore/GormImage.h" = ( "GormCore/GormImage.gsdoc" ); "../GormCore/GormImageEditor.h" = ( "GormCore/GormImageEditor.gsdoc" ); "../GormCore/GormImageInspector.h" = ( "GormCore/GormImageInspector.gsdoc" ); "../GormCore/GormInspectorsManager.h" = ( "GormCore/GormInspectorsManager.gsdoc" ); "../GormCore/GormInternalViewEditor.h" = ( "GormCore/GormInternalViewEditor.gsdoc" ); "../GormCore/GormMatrixEditor.h" = ( "GormCore/GormMatrixEditor.gsdoc" ); "../GormCore/GormNSPanel.h" = ( "GormCore/GormNSPanel.gsdoc" ); "../GormCore/GormNSSplitViewInspector.h" = ( "GormCore/GormNSSplitViewInspector.gsdoc" ); "../GormCore/GormNSWindow.h" = ( "GormCore/GormNSWindow.gsdoc" ); "../GormCore/GormObjectEditor.h" = ( "GormCore/GormObjectEditor.gsdoc" ); "../GormCore/GormObjectInspector.h" = ( "GormCore/GormObjectInspector.gsdoc" ); "../GormCore/GormOpenGLView.h" = ( "GormCore/GormOpenGLView.gsdoc" ); "../GormCore/GormOutlineView.h" = ( "GormCore/GormOutlineView.gsdoc" ); "../GormCore/GormPalettesManager.h" = ( "GormCore/GormPalettesManager.gsdoc" ); "../GormCore/GormPlacementInfo.h" = ( "GormCore/GormPlacementInfo.gsdoc" ); "../GormCore/GormPlugin.h" = ( "GormCore/GormPlugin.gsdoc" ); "../GormCore/GormPluginManager.h" = ( "GormCore/GormPluginManager.gsdoc" ); "../GormCore/GormPrivate.h" = ( "GormCore/GormPrivate.gsdoc" ); "../GormCore/GormProtocol.h" = ( "GormCore/GormProtocol.gsdoc" ); "../GormCore/GormResource.h" = ( "GormCore/GormResource.gsdoc" ); "../GormCore/GormResourceEditor.h" = ( "GormCore/GormResourceEditor.gsdoc" ); "../GormCore/GormResourceManager.h" = ( "GormCore/GormResourceManager.gsdoc" ); "../GormCore/GormScrollViewAttributesInspector.h" = ( "GormCore/GormScrollViewAttributesInspector.gsdoc" ); "../GormCore/GormServer.h" = ( "GormCore/GormServer.gsdoc" ); "../GormCore/GormSetNameController.h" = ( "GormCore/GormSetNameController.gsdoc" ); "../GormCore/GormSound.h" = ( "GormCore/GormSound.gsdoc" ); "../GormCore/GormSoundEditor.h" = ( "GormCore/GormSoundEditor.gsdoc" ); "../GormCore/GormSoundInspector.h" = ( "GormCore/GormSoundInspector.gsdoc" ); "../GormCore/GormSoundView.h" = ( "GormCore/GormSoundView.gsdoc" ); "../GormCore/GormSplitViewEditor.h" = ( "GormCore/GormSplitViewEditor.gsdoc" ); "../GormCore/GormStandaloneViewEditor.h" = ( "GormCore/GormStandaloneViewEditor.gsdoc" ); "../GormCore/GormViewEditor.h" = ( "GormCore/GormViewEditor.gsdoc" ); "../GormCore/GormViewKnobs.h" = ( "GormCore/GormViewKnobs.gsdoc" ); "../GormCore/GormViewSizeInspector.h" = ( "GormCore/GormViewSizeInspector.gsdoc" ); "../GormCore/GormViewWindow.h" = ( "GormCore/GormViewWindow.gsdoc" ); "../GormCore/GormViewWithContentViewEditor.h" = ( "GormCore/GormViewWithContentViewEditor.gsdoc" ); "../GormCore/GormViewWithSubviewsEditor.h" = ( "GormCore/GormViewWithSubviewsEditor.gsdoc" ); "../GormCore/GormWindowEditor.h" = ( "GormCore/GormWindowEditor.gsdoc" ); "../GormCore/GormWindowTemplate.h" = ( "GormCore/GormWindowTemplate.gsdoc" ); "../GormCore/GormWrapperBuilder.h" = ( "GormCore/GormWrapperBuilder.gsdoc" ); "../GormCore/GormWrapperLoader.h" = ( "GormCore/GormWrapperLoader.gsdoc" ); "../GormCore/NSCell+GormAdditions.h" = ( "GormCore/NSCell+GormAdditions.gsdoc" ); "../GormCore/NSColorWell+GormExtensions.h" = ( "GormCore/NSColorWell+GormExtensions.gsdoc" ); "../GormCore/NSFontManager+GormExtensions.h" = ( "GormCore/NSFontManager+GormExtensions.gsdoc" ); "../GormCore/NSView+GormExtensions.h" = ( "GormCore/NSView+GormExtensions.gsdoc" ); }; protocol = { "(Gorm)" = GormProtocol; "(GormServer)" = GormServer; "(GormWrapperBuilder)" = GormWrapperBuilder; "(GormWrapperLoader)" = GormWrapperLoader; "NSObject(GormAdditions)" = GormPrivate; "NSObject(GormOutlineViewDataSource)" = GormOutlineView; "NSObject(GormOutlineViewDelegate)" = GormOutlineView; }; source = { "../GormCore/GormBoxEditor.h" = ( "../GormCore/GormBoxEditor.h", "../GormCore/GormBoxEditor.h", "../GormCore/GormBoxEditor.h", "../GormCore/GormBoxEditor.h", "../GormCore/GormBoxEditor.h", "../GormCore/GormBoxEditor.m" ); "../GormCore/GormClassEditor.h" = ( "../GormCore/GormClassEditor.h", "../GormCore/GormClassEditor.h", "../GormCore/GormClassEditor.h", "../GormCore/GormClassEditor.h", "../GormCore/GormClassEditor.m" ); "../GormCore/GormClassInspector.h" = ( "../GormCore/GormClassInspector.h", "../GormCore/GormClassInspector.h", "../GormCore/GormClassInspector.h", "../GormCore/GormClassInspector.h", "../GormCore/GormClassInspector.h", "../GormCore/GormClassInspector.m" ); "../GormCore/GormClassManager.h" = ( "../GormCore/GormClassManager.h", "../GormCore/GormClassManager.h", "../GormCore/GormClassManager.h", "../GormCore/GormClassManager.h", "../GormCore/GormClassManager.h", "../GormCore/GormClassManager.m" ); "../GormCore/GormClassPanelController.h" = ( "../GormCore/GormClassPanelController.h", "../GormCore/GormClassPanelController.h", "../GormCore/GormClassPanelController.h", "../GormCore/GormClassPanelController.h", "../GormCore/GormClassPanelController.h", "../GormCore/GormClassPanelController.m" ); "../GormCore/GormConnectionInspector.h" = ( "../GormCore/GormConnectionInspector.h", "../GormCore/GormConnectionInspector.h", "../GormCore/GormConnectionInspector.h", "../GormCore/GormConnectionInspector.h", "../GormCore/GormConnectionInspector.h", "../GormCore/GormConnectionInspector.m" ); "../GormCore/GormControlEditor.h" = ( "../GormCore/GormControlEditor.h", "../GormCore/GormControlEditor.h", "../GormCore/GormControlEditor.h", "../GormCore/GormControlEditor.h", "../GormCore/GormControlEditor.h", "../GormCore/GormControlEditor.m" ); "../GormCore/GormCore.h" = ( "../GormCore/GormCore.h", "../GormCore/GormCore.h", "../GormCore/GormCore.h", "../GormCore/GormCore.h", "../GormCore/GormCore.h", "../GormCore/GormCore.h" ); "../GormCore/GormCustomClassInspector.h" = ( "../GormCore/GormCustomClassInspector.h", "../GormCore/GormCustomClassInspector.h", "../GormCore/GormCustomClassInspector.h", "../GormCore/GormCustomClassInspector.h", "../GormCore/GormCustomClassInspector.h", "../GormCore/GormCustomClassInspector.m" ); "../GormCore/GormCustomView.h" = ( "../GormCore/GormCustomView.h", "../GormCore/GormCustomView.h", "../GormCore/GormCustomView.h", "../GormCore/GormCustomView.h", "../GormCore/GormCustomView.h", "../GormCore/GormCustomView.m" ); "../GormCore/GormDefines.h" = ( "../GormCore/GormDefines.h", "../GormCore/GormDefines.h", "../GormCore/GormDefines.h", "../GormCore/GormDefines.h", "../GormCore/GormDefines.h", "../GormCore/GormDefines.h" ); "../GormCore/GormDocument.h" = ( "../GormCore/GormDocument.h", "../GormCore/GormDocument.h", "../GormCore/GormDocument.h", "../GormCore/GormDocument.h", "../GormCore/GormDocument.h", "../GormCore/GormDocument.m" ); "../GormCore/GormDocumentController.h" = ( "../GormCore/GormDocumentController.h", "../GormCore/GormDocumentController.h", "../GormCore/GormDocumentController.h", "../GormCore/GormDocumentController.h", "../GormCore/GormDocumentController.h", "../GormCore/GormDocumentController.m" ); "../GormCore/GormDocumentWindow.h" = ( "../GormCore/GormDocumentWindow.h", "../GormCore/GormDocumentWindow.h", "../GormCore/GormDocumentWindow.h", "../GormCore/GormDocumentWindow.h", "../GormCore/GormDocumentWindow.h", "../GormCore/GormDocumentWindow.m" ); "../GormCore/GormFilePrefsManager.h" = ( "../GormCore/GormFilePrefsManager.h", "../GormCore/GormFilePrefsManager.h", "../GormCore/GormFilePrefsManager.h", "../GormCore/GormFilePrefsManager.h", "../GormCore/GormFilePrefsManager.m" ); "../GormCore/GormFilesOwner.h" = ( "../GormCore/GormFilesOwner.h", "../GormCore/GormFilesOwner.h", "../GormCore/GormFilesOwner.h", "../GormCore/GormFilesOwner.h", "../GormCore/GormFilesOwner.h", "../GormCore/GormFilesOwner.m" ); "../GormCore/GormFontViewController.h" = ( "../GormCore/GormFontViewController.h", "../GormCore/GormFontViewController.h", "../GormCore/GormFontViewController.h", "../GormCore/GormFontViewController.h", "../GormCore/GormFontViewController.h", "../GormCore/GormFontViewController.m" ); "../GormCore/GormFunctions.h" = ( "../GormCore/GormFunctions.h", "../GormCore/GormFunctions.h", "../GormCore/GormFunctions.h", "../GormCore/GormFunctions.h", "../GormCore/GormFunctions.h", "../GormCore/GormFunctions.m" ); "../GormCore/GormGenericEditor.h" = ( "../GormCore/GormGenericEditor.h", "../GormCore/GormGenericEditor.h", "../GormCore/GormGenericEditor.h", "../GormCore/GormGenericEditor.h", "../GormCore/GormGenericEditor.m" ); "../GormCore/GormHelpInspector.h" = ( "../GormCore/GormHelpInspector.h", "../GormCore/GormHelpInspector.h", "../GormCore/GormHelpInspector.h", "../GormCore/GormHelpInspector.h", "../GormCore/GormHelpInspector.h", "../GormCore/GormHelpInspector.m" ); "../GormCore/GormImage.h" = ( "../GormCore/GormImage.h", "../GormCore/GormImage.h", "../GormCore/GormImage.h", "../GormCore/GormImage.h", "../GormCore/GormImage.h", "../GormCore/GormImage.m" ); "../GormCore/GormImageEditor.h" = ( "../GormCore/GormImageEditor.h", "../GormCore/GormImageEditor.h", "../GormCore/GormImageEditor.h", "../GormCore/GormImageEditor.h", "../GormCore/GormImageEditor.h", "../GormCore/GormImageEditor.m" ); "../GormCore/GormImageInspector.h" = ( "../GormCore/GormImageInspector.h", "../GormCore/GormImageInspector.h", "../GormCore/GormImageInspector.h", "../GormCore/GormImageInspector.h", "../GormCore/GormImageInspector.h", "../GormCore/GormImageInspector.m" ); "../GormCore/GormInspectorsManager.h" = ( "../GormCore/GormInspectorsManager.h", "../GormCore/GormInspectorsManager.h", "../GormCore/GormInspectorsManager.h", "../GormCore/GormInspectorsManager.h", "../GormCore/GormInspectorsManager.h", "../GormCore/GormInspectorsManager.m" ); "../GormCore/GormInternalViewEditor.h" = ( "../GormCore/GormInternalViewEditor.h", "../GormCore/GormInternalViewEditor.h", "../GormCore/GormInternalViewEditor.h", "../GormCore/GormInternalViewEditor.h", "../GormCore/GormInternalViewEditor.h", "../GormCore/GormInternalViewEditor.m" ); "../GormCore/GormMatrixEditor.h" = ( "../GormCore/GormMatrixEditor.h", "../GormCore/GormMatrixEditor.h", "../GormCore/GormMatrixEditor.h", "../GormCore/GormMatrixEditor.h", "../GormCore/GormMatrixEditor.h", "../GormCore/GormMatrixEditor.m" ); "../GormCore/GormNSPanel.h" = ( "../GormCore/GormNSPanel.h", "../GormCore/GormNSPanel.h", "../GormCore/GormNSPanel.h", "../GormCore/GormNSPanel.h", "../GormCore/GormNSPanel.h", "../GormCore/GormNSPanel.m" ); "../GormCore/GormNSSplitViewInspector.h" = ( "../GormCore/GormNSSplitViewInspector.h", "../GormCore/GormNSSplitViewInspector.h", "../GormCore/GormNSSplitViewInspector.h", "../GormCore/GormNSSplitViewInspector.h", "../GormCore/GormNSSplitViewInspector.h", "../GormCore/GormNSSplitViewInspector.m" ); "../GormCore/GormNSWindow.h" = ( "../GormCore/GormNSWindow.h", "../GormCore/GormNSWindow.h", "../GormCore/GormNSWindow.h", "../GormCore/GormNSWindow.h", "../GormCore/GormNSWindow.h", "../GormCore/GormNSWindow.m" ); "../GormCore/GormObjectEditor.h" = ( "../GormCore/GormObjectEditor.h", "../GormCore/GormObjectEditor.h", "../GormCore/GormObjectEditor.h", "../GormCore/GormObjectEditor.h", "../GormCore/GormObjectEditor.m" ); "../GormCore/GormObjectInspector.h" = ( "../GormCore/GormObjectInspector.h", "../GormCore/GormObjectInspector.h", "../GormCore/GormObjectInspector.h", "../GormCore/GormObjectInspector.h", "../GormCore/GormObjectInspector.h", "../GormCore/GormObjectInspector.m" ); "../GormCore/GormOpenGLView.h" = ( "../GormCore/GormOpenGLView.h", "../GormCore/GormOpenGLView.h", "../GormCore/GormOpenGLView.h", "../GormCore/GormOpenGLView.h", "../GormCore/GormOpenGLView.h", "../GormCore/GormOpenGLView.m" ); "../GormCore/GormOutlineView.h" = ( "../GormCore/GormOutlineView.h", "../GormCore/GormOutlineView.h", "../GormCore/GormOutlineView.h", "../GormCore/GormOutlineView.h", "../GormCore/GormOutlineView.h", "../GormCore/GormOutlineView.m" ); "../GormCore/GormPalettesManager.h" = ( "../GormCore/GormPalettesManager.h", "../GormCore/GormPalettesManager.h", "../GormCore/GormPalettesManager.h", "../GormCore/GormPalettesManager.h", "../GormCore/GormPalettesManager.h", "../GormCore/GormPalettesManager.m" ); "../GormCore/GormPlacementInfo.h" = ( "../GormCore/GormPlacementInfo.h", "../GormCore/GormPlacementInfo.h", "../GormCore/GormPlacementInfo.h", "../GormCore/GormPlacementInfo.h", "../GormCore/GormPlacementInfo.h", "../GormCore/GormPlacementInfo.h" ); "../GormCore/GormPlugin.h" = ( "../GormCore/GormPlugin.h", "../GormCore/GormPlugin.h", "../GormCore/GormPlugin.h", "../GormCore/GormPlugin.h", "../GormCore/GormPlugin.h", "../GormCore/GormPlugin.m" ); "../GormCore/GormPluginManager.h" = ( "../GormCore/GormPluginManager.h", "../GormCore/GormPluginManager.h", "../GormCore/GormPluginManager.h", "../GormCore/GormPluginManager.h", "../GormCore/GormPluginManager.h", "../GormCore/GormPluginManager.m" ); "../GormCore/GormPrivate.h" = ( "../GormCore/GormPrivate.h", "../GormCore/GormPrivate.h", "../GormCore/GormPrivate.h", "../GormCore/GormPrivate.h", "../GormCore/GormPrivate.h", "../GormCore/GormPrivate.m" ); "../GormCore/GormProtocol.h" = ( "../GormCore/GormProtocol.h", "../GormCore/GormProtocol.h", "../GormCore/GormProtocol.h", "../GormCore/GormProtocol.h", "../GormCore/GormProtocol.h", "../GormCore/GormProtocol.h" ); "../GormCore/GormResource.h" = ( "../GormCore/GormResource.h", "../GormCore/GormResource.h", "../GormCore/GormResource.h", "../GormCore/GormResource.h", "../GormCore/GormResource.h", "../GormCore/GormResource.m" ); "../GormCore/GormResourceEditor.h" = ( "../GormCore/GormResourceEditor.h", "../GormCore/GormResourceEditor.h", "../GormCore/GormResourceEditor.h", "../GormCore/GormResourceEditor.h", "../GormCore/GormResourceEditor.h", "../GormCore/GormResourceEditor.m" ); "../GormCore/GormResourceManager.h" = ( "../GormCore/GormResourceManager.h", "../GormCore/GormResourceManager.h", "../GormCore/GormResourceManager.h", "../GormCore/GormResourceManager.h", "../GormCore/GormResourceManager.h", "../GormCore/GormResourceManager.m" ); "../GormCore/GormScrollViewAttributesInspector.h" = ( "../GormCore/GormScrollViewAttributesInspector.h", "../GormCore/GormScrollViewAttributesInspector.h", "../GormCore/GormScrollViewAttributesInspector.h", "../GormCore/GormScrollViewAttributesInspector.h", "../GormCore/GormScrollViewAttributesInspector.h", "../GormCore/GormScrollViewAttributesInspector.m" ); "../GormCore/GormServer.h" = ( "../GormCore/GormServer.h", "../GormCore/GormServer.h", "../GormCore/GormServer.h", "../GormCore/GormServer.h", "../GormCore/GormServer.h", "../GormCore/GormServer.h" ); "../GormCore/GormSetNameController.h" = ( "../GormCore/GormSetNameController.h", "../GormCore/GormSetNameController.h", "../GormCore/GormSetNameController.h", "../GormCore/GormSetNameController.h", "../GormCore/GormSetNameController.h", "../GormCore/GormSetNameController.m" ); "../GormCore/GormSound.h" = ( "../GormCore/GormSound.h", "../GormCore/GormSound.h", "../GormCore/GormSound.h", "../GormCore/GormSound.h", "../GormCore/GormSound.h", "../GormCore/GormSound.m" ); "../GormCore/GormSoundEditor.h" = ( "../GormCore/GormSoundEditor.h", "../GormCore/GormSoundEditor.h", "../GormCore/GormSoundEditor.h", "../GormCore/GormSoundEditor.h", "../GormCore/GormSoundEditor.h", "../GormCore/GormSoundEditor.m" ); "../GormCore/GormSoundInspector.h" = ( "../GormCore/GormSoundInspector.h", "../GormCore/GormSoundInspector.h", "../GormCore/GormSoundInspector.h", "../GormCore/GormSoundInspector.h", "../GormCore/GormSoundInspector.h", "../GormCore/GormSoundInspector.m" ); "../GormCore/GormSoundView.h" = ( "../GormCore/GormSoundView.h", "../GormCore/GormSoundView.h", "../GormCore/GormSoundView.h", "../GormCore/GormSoundView.h", "../GormCore/GormSoundView.h", "../GormCore/GormSoundView.m" ); "../GormCore/GormSplitViewEditor.h" = ( "../GormCore/GormSplitViewEditor.h", "../GormCore/GormSplitViewEditor.h", "../GormCore/GormSplitViewEditor.h", "../GormCore/GormSplitViewEditor.h", "../GormCore/GormSplitViewEditor.h", "../GormCore/GormSplitViewEditor.m" ); "../GormCore/GormStandaloneViewEditor.h" = ( "../GormCore/GormStandaloneViewEditor.h", "../GormCore/GormStandaloneViewEditor.h", "../GormCore/GormStandaloneViewEditor.h", "../GormCore/GormStandaloneViewEditor.h", "../GormCore/GormStandaloneViewEditor.h", "../GormCore/GormStandaloneViewEditor.m" ); "../GormCore/GormViewEditor.h" = ( "../GormCore/GormViewEditor.h", "../GormCore/GormViewEditor.h", "../GormCore/GormViewEditor.h", "../GormCore/GormViewEditor.h", "../GormCore/GormViewEditor.h", "../GormCore/GormViewEditor.m" ); "../GormCore/GormViewKnobs.h" = ( "../GormCore/GormViewKnobs.h", "../GormCore/GormViewKnobs.h", "../GormCore/GormViewKnobs.h", "../GormCore/GormViewKnobs.h", "../GormCore/GormViewKnobs.h", "../GormCore/GormViewKnobs.m" ); "../GormCore/GormViewSizeInspector.h" = ( "../GormCore/GormViewSizeInspector.h", "../GormCore/GormViewSizeInspector.h", "../GormCore/GormViewSizeInspector.h", "../GormCore/GormViewSizeInspector.h", "../GormCore/GormViewSizeInspector.h", "../GormCore/GormViewSizeInspector.m" ); "../GormCore/GormViewWindow.h" = ( "../GormCore/GormViewWindow.h", "../GormCore/GormViewWindow.h", "../GormCore/GormViewWindow.h", "../GormCore/GormViewWindow.h", "../GormCore/GormViewWindow.h", "../GormCore/GormViewWindow.m" ); "../GormCore/GormViewWithContentViewEditor.h" = ( "../GormCore/GormViewWithContentViewEditor.h", "../GormCore/GormViewWithContentViewEditor.h", "../GormCore/GormViewWithContentViewEditor.h", "../GormCore/GormViewWithContentViewEditor.h", "../GormCore/GormViewWithContentViewEditor.h", "../GormCore/GormViewWithContentViewEditor.m" ); "../GormCore/GormViewWithSubviewsEditor.h" = ( "../GormCore/GormViewWithSubviewsEditor.h", "../GormCore/GormViewWithSubviewsEditor.h", "../GormCore/GormViewWithSubviewsEditor.h", "../GormCore/GormViewWithSubviewsEditor.h", "../GormCore/GormViewWithSubviewsEditor.h", "../GormCore/GormViewWithSubviewsEditor.m" ); "../GormCore/GormWindowEditor.h" = ( "../GormCore/GormWindowEditor.h", "../GormCore/GormWindowEditor.h", "../GormCore/GormWindowEditor.h", "../GormCore/GormWindowEditor.h", "../GormCore/GormWindowEditor.h", "../GormCore/GormWindowEditor.m" ); "../GormCore/GormWindowTemplate.h" = ( "../GormCore/GormWindowTemplate.h", "../GormCore/GormWindowTemplate.h", "../GormCore/GormWindowTemplate.h", "../GormCore/GormWindowTemplate.h", "../GormCore/GormWindowTemplate.h", "../GormCore/GormWindowTemplate.m" ); "../GormCore/GormWrapperBuilder.h" = ( "../GormCore/GormWrapperBuilder.h", "../GormCore/GormWrapperBuilder.h", "../GormCore/GormWrapperBuilder.h", "../GormCore/GormWrapperBuilder.h", "../GormCore/GormWrapperBuilder.h", "../GormCore/GormWrapperBuilder.m" ); "../GormCore/GormWrapperLoader.h" = ( "../GormCore/GormWrapperLoader.h", "../GormCore/GormWrapperLoader.h", "../GormCore/GormWrapperLoader.h", "../GormCore/GormWrapperLoader.h", "../GormCore/GormWrapperLoader.h", "../GormCore/GormWrapperLoader.m" ); "../GormCore/NSCell+GormAdditions.h" = ( "../GormCore/NSCell+GormAdditions.h", "../GormCore/NSCell+GormAdditions.h", "../GormCore/NSCell+GormAdditions.h", "../GormCore/NSCell+GormAdditions.h", "../GormCore/NSCell+GormAdditions.h", "../GormCore/NSCell+GormAdditions.m" ); "../GormCore/NSColorWell+GormExtensions.h" = ( "../GormCore/NSColorWell+GormExtensions.h", "../GormCore/NSColorWell+GormExtensions.h", "../GormCore/NSColorWell+GormExtensions.h", "../GormCore/NSColorWell+GormExtensions.h", "../GormCore/NSColorWell+GormExtensions.h", "../GormCore/NSColorWell+GormExtensions.m" ); "../GormCore/NSFontManager+GormExtensions.h" = ( "../GormCore/NSFontManager+GormExtensions.h", "../GormCore/NSFontManager+GormExtensions.h", "../GormCore/NSFontManager+GormExtensions.h", "../GormCore/NSFontManager+GormExtensions.h", "../GormCore/NSFontManager+GormExtensions.h", "../GormCore/NSFontManager+GormExtensions.m" ); "../GormCore/NSView+GormExtensions.h" = ( "../GormCore/NSView+GormExtensions.h", "../GormCore/NSView+GormExtensions.h", "../GormCore/NSView+GormExtensions.h", "../GormCore/NSView+GormExtensions.h", "../GormCore/NSView+GormExtensions.h", "../GormCore/NSView+GormExtensions.m" ); }; super = { GormBoxEditor = GormViewWithSubviewsEditor; GormClassEditor = NSView; GormClassInspector = IBInspector; GormClassManager = NSObject; GormClassPanelController = NSObject; GormClassProxy = NSObject; GormConnectionInspector = IBInspector; GormControlEditor = GormViewEditor; GormCustomClassInspector = IBInspector; GormCustomView = NSTextField; GormDocument = NSDocument; GormDocumentController = NSDocumentController; GormDocumentWindow = NSWindow; GormEditorToParent = NSNibConnector; GormFilePrefsManager = NSObject; GormFilesOwner = NSObject; GormFilesOwnerInspector = IBInspector; GormFirstResponder = NSObject; GormFontViewController = NSObject; GormGenericEditor = NSMatrix; GormHelpInspector = IBInspector; GormImage = GormResource; GormImageEditor = GormResourceEditor; GormImageInspector = IBInspector; GormInspectorsManager = IBInspectorManager; GormInternalViewEditor = GormViewWithContentViewEditor; GormMatrixEditor = GormViewWithSubviewsEditor; GormNSPanel = NSPanel; GormNSSplitViewInspector = IBInspector; GormNSWindow = NSWindow; GormObjectEditor = GormGenericEditor; GormObjectInspector = IBInspector; GormObjectProxy = GSNibItem; GormObjectToEditor = NSNibConnector; GormOpenGLView = NSView; GormOutletActionHolder = NSObject; GormOutlineView = NSOutlineView; GormPalettesManager = NSObject; GormPlacementHint = NSObject; GormPlacementInfo = NSObject; GormPlugin = IBPlugin; GormPluginManager = NSObject; GormResource = NSObject; GormResourceEditor = GormGenericEditor; GormResourceManager = IBResourceManager; GormScrollViewAttributesInspector = IBInspector; GormSetNameController = NSObject; GormSound = GormResource; GormSoundEditor = GormResourceEditor; GormSoundInspector = IBInspector; GormSoundView = NSView; GormSplitViewEditor = GormViewWithSubviewsEditor; GormStandaloneViewEditor = GormViewWithContentViewEditor; GormViewEditor = NSView; GormViewSizeInspector = IBInspector; GormViewWindow = NSWindow; GormViewWithContentViewEditor = GormViewWithSubviewsEditor; GormViewWithSubviewsEditor = GormViewEditor; GormWindowEditor = GormViewWithContentViewEditor; GormWindowTemplate = NSWindowTemplate; GormWrapperBuilder = NSObject; GormWrapperBuilderFactory = NSObject; GormWrapperLoader = NSObject; GormWrapperLoaderFactory = NSObject; }; title = { GormBoxEditor = "GormBoxEditor class documentation"; GormClassEditor = "GormClassEditor class documentation"; GormClassInspector = GormClassInspector; GormClassManager = "GormClassManager class documentation"; GormClassPanelController = "GormClassPanelController class documentation"; GormConnectionInspector = "GormConnectionInspector class documentation"; GormControlEditor = "GormControlEditor class documentation"; GormCustomClassInspector = GormCustomClassInspector; GormCustomView = "GormCustomView class documentation"; GormDocument = "GormDocument documentation"; GormDocumentController = "GormDocumentController class documentation"; GormDocumentWindow = "GormDocumentWindow class documentation"; GormFilePrefsManager = GormFilePrefsManager; GormFilesOwner = "GormFilesOwner documentation"; GormFontViewController = "GormFontViewController class documentation"; GormFunctions = "GormFunctions documentation"; GormGenericEditor = "GormGenericEditor class documentation"; GormHelpInspector = "GormHelpInspector class documentation"; GormImage = GormImage; GormImageEditor = "GormImageEditor class documentation"; GormImageInspector = "GormImageInspector class documentation"; GormInspectorsManager = "GormInspectorsManager class documentation"; GormInternalViewEditor = "GormInternalViewEditor class documentation"; GormMatrixEditor = "GormMatrixEditor class documentation"; GormNSPanel = "GormNSPanel class documentation"; GormNSSplitViewInspector = "GormNSSplitViewInspector class documentation"; GormNSWindow = "GormNSWindow class documentation"; GormObjectEditor = "GormObjectEditor class documentation"; GormObjectInspector = "GormObjectInspector class documentation"; GormOpenGLView = "GormOpenGLView class documentation"; GormOutlineView = GormOutlineView; GormPalettesManager = "GormPalettesManager class documentation"; GormPlacementInfo = "GormPlacementInfo documentation"; GormPlugin = "GormPlugin class documentation"; GormPluginManager = "GormPluginManager class documentation"; GormPrivate = "GormPrivate documentation"; GormProtocol = "GormProtocol documentation"; GormResource = GormResource; GormResourceEditor = "GormResourceEditor class documentation"; GormResourceManager = "GormResourceManager class documentation"; GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; GormServer = "GormServer documentation"; GormSetNameController = "GormSetNameController class documentation"; GormSound = GormSound; GormSoundEditor = "GormSoundEditor class documentation"; GormSoundInspector = GormSoundInspector; GormSoundView = GormSoundView; GormSplitViewEditor = "GormSplitViewEditor class documentation"; GormStandaloneViewEditor = "GormStandaloneViewEditor class documentation"; GormViewEditor = "GormViewEditor class documentation"; GormViewKnobs = "GormViewKnobs documentation"; GormViewSizeInspector = "GormViewSizeInspector class documentation"; GormViewWindow = "GormViewWindow class documentation"; GormViewWithContentViewEditor = "GormViewWithContentViewEditor class documentation"; GormViewWithSubviewsEditor = "GormViewWithSubviewsEditor class documentation"; GormWindowEditor = "GormWindowEditor class documentation"; GormWindowTemplate = "GormWindowTemplate class documentation"; GormWrapperBuilder = "GormWrapperBuilder documentation"; GormWrapperLoader = "GormWrapperLoader documentation"; "NSCell+GormAdditions" = "NSCell+GormAdditions documentation"; "NSColorWell+GormExtensions" = "NSColorWell+GormExtensions documentation"; "NSFontManager+GormExtensions" = "NSFontManager+GormExtensions documentation"; "NSView+GormExtensions" = "NSView+GormExtensions documentation"; }; type = { GSAttributeType = GormOutlineView; GormDocumentType = GormDocumentController; GormHintBorder = GormPlacementInfo; }; unitmethods = { "(Gorm)" = { "-classManager" = GormProtocol; "-classMenu" = GormProtocol; "-connectDestination" = GormProtocol; "-connectSource" = GormProtocol; "-copy:" = GormProtocol; "-cut:" = GormProtocol; "-delete:" = GormProtocol; "-displayConnectionBetween:and:" = GormProtocol; "-endTesting:" = GormProtocol; "-groupSelectionInBox:" = GormProtocol; "-groupSelectionInScrollView:" = GormProtocol; "-groupSelectionInSplitView:" = GormProtocol; "-inspector:" = GormProtocol; "-inspectorsManager" = GormProtocol; "-isConnecting" = GormProtocol; "-loadImage:" = GormProtocol; "-loadPalette:" = GormProtocol; "-loadSound:" = GormProtocol; "-palettes:" = GormProtocol; "-palettesManager" = GormProtocol; "-paste:" = GormProtocol; "-pluginManager" = GormProtocol; "-preferencesPanel:" = GormProtocol; "-selectAllItems:" = GormProtocol; "-setName:" = GormProtocol; "-stopConnecting" = GormProtocol; "-testInterface:" = GormProtocol; "-ungroup:" = GormProtocol; }; "(GormServer)" = { "-addClass:" = GormServer; "-deleteClass:" = GormServer; }; "(GormWrapperBuilder)" = { "-buildFileWrapperDictionaryWithDocument:" = GormWrapperBuilder; "-buildFileWrapperWithDocument:" = GormWrapperBuilder; }; "(GormWrapperLoader)" = { "-loadFileWrapper:withDocument:" = GormWrapperLoader; }; "GSClassSwapper(GormCustomClassAdditions)" = { "+setIsInInterfaceBuilder:" = GormPrivate; "-isInInterfaceBuilder" = GormPrivate; }; "GSNibItem(GormAdditions)" = { "-className" = GormPrivate; "-initWithClassName:" = GormPrivate; "-initWithClassName:frame:" = GormPrivate; }; GormBoxEditor = { "-destroyAndListSubviews" = GormBoxEditor; }; GormClassEditor = { "+classEditorForDocument:" = GormClassEditor; "-addAttributeToClass" = GormClassEditor; "-createClassFiles:" = GormClassEditor; "-createSubclass:" = GormClassEditor; "-currentSelectionIsClass" = GormClassEditor; "-deleteSelection" = GormClassEditor; "-editClass" = GormClassEditor; "-fileTypes" = GormClassEditor; "-initWithDocument:" = GormClassEditor; "-instantiateClass:" = GormClassEditor; "-isEditing" = GormClassEditor; "-loadClass:" = GormClassEditor; "-reloadData" = GormClassEditor; "-removeClass:" = GormClassEditor; "-selectClass:" = GormClassEditor; "-selectClass:editClass:" = GormClassEditor; "-selectClassWithObject:" = GormClassEditor; "-selectClassWithObject:editClass:" = GormClassEditor; "-selectedClassName" = GormClassEditor; "-setSelectedClassName:" = GormClassEditor; }; GormClassInspector = { "-_currentClass" = GormClassInspector; "-_refreshView" = GormClassInspector; "-addAction:" = GormClassInspector; "-addOutlet:" = GormClassInspector; "-changeClassName:" = GormClassInspector; "-handleNotification:" = GormClassInspector; "-removeAction:" = GormClassInspector; "-removeOutlet:" = GormClassInspector; "-searchForClass:" = GormClassInspector; "-select:" = GormClassInspector; "-selectAction:" = GormClassInspector; "-selectClass:" = GormClassInspector; "-selectOutlet:" = GormClassInspector; }; GormClassManager = { "-actionExists:onClassNamed:" = GormClassManager; "-addAction:forClassNamed:" = GormClassManager; "-addAction:forObject:" = GormClassManager; "-addActions:forClassNamed:" = GormClassManager; "-addClassNamed:withSuperClassNamed:withActions:withOutlets:" = GormClassManager; "-addClassNamed:withSuperClassNamed:withActions:withOutlets:isCustom:" = GormClassManager; "-addClassWithSuperClassName:" = GormClassManager; "-addNewActionToClassNamed:" = GormClassManager; "-addNewOutletToClassNamed:" = GormClassManager; "-addOutlet:forClassNamed:" = GormClassManager; "-addOutlet:forObject:" = GormClassManager; "-addOutlets:forClassNamed:" = GormClassManager; "-allActionsForClassNamed:" = GormClassManager; "-allActionsForObject:" = GormClassManager; "-allClassNames" = GormClassManager; "-allCustomClassNames" = GormClassManager; "-allCustomSubclassesOf:" = GormClassManager; "-allOutletsForClassNamed:" = GormClassManager; "-allOutletsForObject:" = GormClassManager; "-allSubclassesOf:" = GormClassManager; "-allSuperClassesOf:" = GormClassManager; "-canInstantiateClassNamed:" = GormClassManager; "-classNameForObject:" = GormClassManager; "-customClassForName:" = GormClassManager; "-customClassForObject:" = GormClassManager; "-customClassMap" = GormClassManager; "-customSubClassesOf:" = GormClassManager; "-data" = GormClassManager; "-dictionaryForClassNamed:" = GormClassManager; "-extraActionsForObject:" = GormClassManager; "-extraOutletsForObject:" = GormClassManager; "-findClassByName:" = GormClassManager; "-initWithDocument:" = GormClassManager; "-isAction:ofClass:" = GormClassManager; "-isAction:onCategoryForClassNamed:" = GormClassManager; "-isCategoryForClass:" = GormClassManager; "-isCustomClass:" = GormClassManager; "-isCustomClassMapEmpty" = GormClassManager; "-isKnownClass:" = GormClassManager; "-isNonCustomClass:" = GormClassManager; "-isOutlet:ofClass:" = GormClassManager; "-isRootClass:" = GormClassManager; "-isSuperclass:linkedToClass:" = GormClassManager; "-loadCustomClasses:" = GormClassManager; "-loadCustomClassesWithData:" = GormClassManager; "-loadCustomClassesWithDict:" = GormClassManager; "-loadFromFile:" = GormClassManager; "-loadNibFormatCustomClassesWithData:" = GormClassManager; "-loadNibFormatCustomClassesWithDict:" = GormClassManager; "-makeSourceAndHeaderFilesForClass:withName:and:" = GormClassManager; "-nibData" = GormClassManager; "-nonCustomSuperClassOf:" = GormClassManager; "-outletExists:onClassNamed:" = GormClassManager; "-parentOfClass:" = GormClassManager; "-parseHeader:" = GormClassManager; "-removeAction:forObject:" = GormClassManager; "-removeAction:fromClassNamed:" = GormClassManager; "-removeClassNamed:" = GormClassManager; "-removeCustomClassForName:" = GormClassManager; "-removeOutlet:forObject:" = GormClassManager; "-removeOutlet:fromClassNamed:" = GormClassManager; "-renameClassNamed:newName:" = GormClassManager; "-replaceAction:withAction:forClassNamed:" = GormClassManager; "-replaceOutlet:withOutlet:forClassNamed:" = GormClassManager; "-saveToFile:" = GormClassManager; "-setCustomClass:forName:" = GormClassManager; "-setCustomClassMap:" = GormClassManager; "-setSuperClassNamed:forClassNamed:" = GormClassManager; "-subClassesOf:" = GormClassManager; "-superClassNameForClassNamed:" = GormClassManager; "-uniqueClassNameFrom:" = GormClassManager; }; GormClassPanelController = { "-browserAction:" = GormClassPanelController; "-initWithTitle:classList:" = GormClassPanelController; "-okButton:" = GormClassPanelController; "-runModal" = GormClassPanelController; }; GormClassProxy = { "-className" = GormPrivate; "-connectInspectorClassName" = GormPrivate; "-initWithClassName:" = GormPrivate; "-inspectorClassName" = GormPrivate; "-sizeInspectorClassName" = GormPrivate; }; GormConnectionInspector = { "-updateButtons" = GormConnectionInspector; }; GormCustomClassInspector = { "-select:" = GormCustomClassInspector; }; GormCustomView = { "-className" = GormCustomView; "-setClassName:" = GormCustomView; }; GormDocument = { "-addAttributeToClass:" = GormDocument; "-addConnector:" = GormDocument; "-alignSelectedObjects:" = GormDocument; "-allManagedPboardTypes" = GormDocument; "-arrangeSelectedObjects:" = GormDocument; "-changeToTopLevelEditorAcceptingTypes:andFileType:" = GormDocument; "-changeToViewWithTag:" = GormDocument; "-classIsSelected" = GormDocument; "-classManager" = GormDocument; "-closeAllEditors" = GormDocument; "-createClassFiles:" = GormDocument; "-createResourceManagers" = GormDocument; "-createSubclass:" = GormDocument; "-deactivateEditors" = GormDocument; "-deferredWindows" = GormDocument; "-exportStrings:" = GormDocument; "-filePrefsManager" = GormDocument; "-filesOwner" = GormDocument; "-firstResponder" = GormDocument; "-fontManager" = GormDocument; "-fontMenu" = GormDocument; "-handleNotification:" = GormDocument; "-images" = GormDocument; "-infoData" = GormDocument; "-instantiateClass:" = GormDocument; "-isActive" = GormDocument; "-isDocumentOpen" = GormDocument; "-isOlderArchive" = GormDocument; "-isTopLevelObject:" = GormDocument; "-loadClass:" = GormDocument; "-nameForObject:" = GormDocument; "-objectForName:" = GormDocument; "-objectIsDeferred:" = GormDocument; "-objectIsVisibleAtLaunch:" = GormDocument; "-objects" = GormDocument; "-openEditorForObject:withParentObject:" = GormDocument; "-openImage:" = GormDocument; "-openSound:" = GormDocument; "-reactivateEditors" = GormDocument; "-rebuildObjToNameMapping" = GormDocument; "-recentDocumentsMenu" = GormDocument; "-refreshConnectionsForClassNamed:" = GormDocument; "-remove:" = GormDocument; "-removeAllInstancesOfClass:" = GormDocument; "-removeConnectionsForClassNamed:" = GormDocument; "-removeConnectionsWithLabel:forClassNamed:isAction:" = GormDocument; "-renameConnectionsForClassNamed:toName:" = GormDocument; "-resourceManagerForPasteboard:" = GormDocument; "-resourceManagers" = GormDocument; "-retrieveObjectsForParent:recursively:" = GormDocument; "-scmWrapper" = GormDocument; "-selectClass:" = GormDocument; "-selectClass:editClass:" = GormDocument; "-servicesMenu" = GormDocument; "-setDocumentActive:" = GormDocument; "-setDocumentOpen:" = GormDocument; "-setFontMenu:" = GormDocument; "-setImages:" = GormDocument; "-setInfoData:" = GormDocument; "-setObject:isDeferred:" = GormDocument; "-setObject:isVisibleAtLaunch:" = GormDocument; "-setOlderArchive:" = GormDocument; "-setRecentDocumentsMenu:" = GormDocument; "-setSCMWrapper:" = GormDocument; "-setServicesMenu:" = GormDocument; "-setSounds:" = GormDocument; "-setWindowsMenu:" = GormDocument; "-sounds" = GormDocument; "-translate:" = GormDocument; "-viewWithTag:" = GormDocument; "-visibleWindows" = GormDocument; "-window" = GormDocument; "-windowAndRect:forObject:" = GormDocument; "-windowsMenu" = GormDocument; }; "GormDocument(MenuValidation)" = { "-isEditingClasses" = GormDocument; "-isEditingImages" = GormDocument; "-isEditingObjects" = GormDocument; "-isEditingSounds" = GormDocument; }; GormDocumentController = { "-buildDocumentForType:" = GormDocumentController; "-openDocumentWithContentsOfURL:" = GormDocumentController; }; GormDocumentWindow = { "-setDocument:" = GormDocumentWindow; }; GormFilePrefsManager = { "+currentVersion" = GormFilePrefsManager; "-archiveTypeName" = GormFilePrefsManager; "-data" = GormFilePrefsManager; "-fileTypeName" = GormFilePrefsManager; "-isLatest" = GormFilePrefsManager; "-loadFromData:" = GormFilePrefsManager; "-loadFromFile:" = GormFilePrefsManager; "-loadProfile:" = GormFilePrefsManager; "-nibDataWithOpenItems:" = GormFilePrefsManager; "-restoreClassVersions" = GormFilePrefsManager; "-saveToFile:" = GormFilePrefsManager; "-selectArchiveType:" = GormFilePrefsManager; "-selectTargetVersion:" = GormFilePrefsManager; "-setClassVersions" = GormFilePrefsManager; "-setFileTypeName:" = GormFilePrefsManager; "-showIncompatibilities:" = GormFilePrefsManager; "-targetVersionName" = GormFilePrefsManager; "-version" = GormFilePrefsManager; "-versionOfClass:" = GormFilePrefsManager; }; GormFilesOwner = { "-className" = GormFilesOwner; "-setClassName:" = GormFilesOwner; }; GormFilesOwnerInspector = { "-takeClassFrom:" = GormFilesOwner; }; GormFontViewController = { "+sharedGormFontViewController" = GormFontViewController; "-convertFont:" = GormFontViewController; "-selectFont:" = GormFontViewController; "-view" = GormFontViewController; }; GormGenericEditor = { "+editorForDocument:" = GormGenericEditor; "+setEditor:forDocument:" = GormGenericEditor; "-activate" = GormGenericEditor; "-addObject:" = GormGenericEditor; "-close" = GormGenericEditor; "-closeSubeditors" = GormGenericEditor; "-containsObject:" = GormGenericEditor; "-copySelection" = GormGenericEditor; "-deleteSelection" = GormGenericEditor; "-document" = GormGenericEditor; "-editedObject" = GormGenericEditor; "-fileTypes" = GormGenericEditor; "-initWithObject:inDocument:" = GormGenericEditor; "-isOpened" = GormGenericEditor; "-objects" = GormGenericEditor; "-openSubeditorForObject:" = GormGenericEditor; "-orderFront" = GormGenericEditor; "-pasteInSelection" = GormGenericEditor; "-rectForObject:" = GormGenericEditor; "-refreshCells" = GormGenericEditor; "-removeObject:" = GormGenericEditor; "-selectObjects:" = GormGenericEditor; "-wantsSelection" = GormGenericEditor; "-window" = GormGenericEditor; }; "GormGenericEditor(PrivateMethods)" = { "-changeSelection:" = GormGenericEditor; "-groupSelectionInBox" = GormGenericEditor; "-groupSelectionInMatrix" = GormGenericEditor; "-groupSelectionInScrollView" = GormGenericEditor; "-groupSelectionInSplitView" = GormGenericEditor; "-groupSelectionInView" = GormGenericEditor; "-setEditor:forDocument:" = GormGenericEditor; "-ungroup" = GormGenericEditor; "-willCloseDocument:" = GormGenericEditor; }; GormImage = { "+imageForData:withFileName:inWrapper:" = GormImage; "+imageForPath:" = GormImage; "+imageForPath:inWrapper:" = GormImage; "-image" = GormImage; "-normalImage" = GormImage; }; GormInspectorsManager = { "-panel" = GormInspectorsManager; "-setClassInspector" = GormInspectorsManager; "-setCurrentInspector:" = GormInspectorsManager; "-updateSelection" = GormInspectorsManager; }; GormInternalViewEditor = { "-changeFont:" = GormInternalViewEditor; "-destroyAndListSubviews" = GormInternalViewEditor; }; GormNSPanel = { "-_isReleasedWhenClosed" = GormNSPanel; "-_setReleasedWhenClosed:" = GormNSPanel; "-_setStyleMask:" = GormNSPanel; "-_styleMask" = GormNSPanel; "-autoPositionMask" = GormNSPanel; "-setAutoPositionMask:" = GormNSPanel; }; GormNSWindow = { "-_isReleasedWhenClosed" = GormNSWindow; "-_setReleasedWhenClosed:" = GormNSWindow; "-_setStyleMask:" = GormNSWindow; "-_styleMask" = GormNSWindow; "-autoPositionMask" = GormNSWindow; "-setAutoPositionMask:" = GormNSWindow; }; GormObjectEditor = { "+setEditor:forDocument:" = GormObjectEditor; "-acceptsTypeFromArray:" = GormObjectEditor; "-draggedImage:endedAt:deposited:" = GormObjectEditor; "-draggingSourceOperationMaskForLocal:" = GormObjectEditor; "-makeSelectionVisible:" = GormObjectEditor; "-resetObject:" = GormObjectEditor; }; GormObjectInspector = { "-update:" = GormObjectInspector; }; GormObjectProxy = { "-setClassName:" = GormPrivate; }; GormOutletActionHolder = { "-getName" = GormOutlineView; "-initWithName:" = GormOutlineView; "-setName:" = GormOutlineView; }; GormOutlineView = { "-actionColumn" = GormOutlineView; "-attributeOffset" = GormOutlineView; "-editType" = GormOutlineView; "-isEditing" = GormOutlineView; "-itemBeingEdited" = GormOutlineView; "-menuItem" = GormOutlineView; "-outletColumn" = GormOutlineView; "-removeItemAtRow:" = GormOutlineView; "-reset" = GormOutlineView; "-selectRow:" = GormOutlineView; "-setActionColumn:" = GormOutlineView; "-setAttributeOffset:" = GormOutlineView; "-setIsEditing:" = GormOutlineView; "-setItemBeingEdited:" = GormOutlineView; "-setMenuItem:" = GormOutlineView; "-setOutletColumn:" = GormOutlineView; }; GormPalettesManager = { "-importClasses:withDictionary:" = GormPalettesManager; "-importImages:withBundle:" = GormPalettesManager; "-importSounds:withBundle:" = GormPalettesManager; "-importedClasses" = GormPalettesManager; "-importedImages" = GormPalettesManager; "-importedSounds" = GormPalettesManager; "-loadPalette:" = GormPalettesManager; "-openPalette:" = GormPalettesManager; "-panel" = GormPalettesManager; "-setCurrentPalette:" = GormPalettesManager; "-substituteClasses" = GormPalettesManager; }; GormPlacementHint = { "-border" = GormPlacementInfo; "-distanceToFrame:" = GormPlacementInfo; "-end" = GormPlacementInfo; "-frame" = GormPlacementInfo; "-initWithBorder:position:validityStart:validityEnd:frame:" = GormPlacementInfo; "-position" = GormPlacementInfo; "-rectWithHalfDistance:" = GormPlacementInfo; "-start" = GormPlacementInfo; }; GormPlugin = { "-registerDocumentTypeName:humanReadableName:forExtensions:" = GormPlugin; }; GormPluginManager = { "-loadPlugin:" = GormPluginManager; "-openPlugin:" = GormPluginManager; }; GormResource = { "+resourceForPath:" = GormResource; "+resourceForPath:inWrapper:" = GormResource; "-data" = GormResource; "-initWithData:withFileName:inWrapper:" = GormResource; "-initWithName:path:" = GormResource; "-initWithName:path:inWrapper:" = GormResource; "-initWithPath:" = GormResource; "-initWithPath:inWrapper:" = GormResource; "-isEqual:" = GormResource; "-isInWrapper" = GormResource; "-isSystemResource" = GormResource; "-name" = GormResource; "-setData:" = GormResource; "-setInWrapper:" = GormResource; "-setName:" = GormResource; "-setSystemResource:" = GormResource; }; GormResourceEditor = { "-addSystemResources" = GormResourceEditor; "-draggedImage:endedAt:deposited:" = GormResourceEditor; "-draggingSourceOperationMaskForLocal:" = GormResourceEditor; "-pbTypes" = GormResourceEditor; "-placeHolderWithPath:" = GormResourceEditor; "-refreshCells" = GormResourceEditor; "-resourceType" = GormResourceEditor; }; GormScrollViewAttributesInspector = { "-borderSelected:" = GormScrollViewAttributesInspector; "-colorSelected:" = GormScrollViewAttributesInspector; "-horizontalRuler:" = GormScrollViewAttributesInspector; "-horizontalSelected:" = GormScrollViewAttributesInspector; "-verticalRuler:" = GormScrollViewAttributesInspector; "-verticalSelected:" = GormScrollViewAttributesInspector; }; GormSetNameController = { "-cancelHit:" = GormSetNameController; "-okHit:" = GormSetNameController; "-runAsModal" = GormSetNameController; "-textField" = GormSetNameController; }; GormSound = { "+soundForData:withFileName:inWrapper:" = GormSound; "+soundForPath:" = GormSound; "+soundForPath:inWrapper:" = GormSound; }; GormSoundInspector = { "-pause:" = GormSoundInspector; "-play:" = GormSoundInspector; "-record:" = GormSoundInspector; "-stop:" = GormSoundInspector; }; GormSoundView = { "-setSound:" = GormSoundView; "-sound" = GormSoundView; }; GormSplitViewEditor = { "-destroyAndListSubviews" = GormSplitViewEditor; }; GormViewEditor = { "-activate" = GormViewEditor; "-canBeOpened" = GormViewEditor; "-close" = GormViewEditor; "-deactivate" = GormViewEditor; "-detachSubviews" = GormViewEditor; "-document" = GormViewEditor; "-editedObject" = GormViewEditor; "-frameDidChange:" = GormViewEditor; "-initWithObject:inDocument:" = GormViewEditor; "-isOpened" = GormViewEditor; "-makeSelectionVisible:" = GormViewEditor; "-parent" = GormViewEditor; "-postDraw:" = GormViewEditor; "-selection" = GormViewEditor; "-setOpened:" = GormViewEditor; }; "GormViewEditor(EditingAdditions)" = { "-editTextField:withEvent:" = GormViewEditor; }; "GormViewEditor(IntelligentPlacement)" = { "-initializeResizingInFrame:withKnob:" = GormViewEditor; "-updateResizingWithFrame:andEvent:andPlacementInfo:" = GormViewEditor; "-validateFrame:withEvent:andPlacementInfo:" = GormViewEditor; }; "GormViewEditor(WindowAndRect)" = { "-windowAndRect:forObject:" = GormViewEditor; }; GormViewWindow = { "-initWithView:" = GormViewWindow; "-setView:" = GormViewWindow; "-view" = GormViewWindow; }; GormViewWithContentViewEditor = { "-groupSelectionInBox" = GormViewWithContentViewEditor; "-groupSelectionInMatrix" = GormViewWithContentViewEditor; "-groupSelectionInSplitView" = GormViewWithContentViewEditor; "-groupSelectionInView" = GormViewWithContentViewEditor; "-pasteInView:" = GormViewWithContentViewEditor; "-postDrawForView:" = GormViewWithContentViewEditor; "-ungroup" = GormViewWithContentViewEditor; }; GormViewWithSubviewsEditor = { "-changeFont:" = GormViewWithSubviewsEditor; "-closeSubeditors" = GormViewWithSubviewsEditor; "-copySelection" = GormViewWithSubviewsEditor; "-deactivateSubeditors" = GormViewWithSubviewsEditor; "-handleMouseOnKnob:ofView:withEvent:" = GormViewWithSubviewsEditor; "-handleMouseOnView:withEvent:" = GormViewWithSubviewsEditor; "-makeSubeditorResign" = GormViewWithSubviewsEditor; "-openParentEditor" = GormViewWithSubviewsEditor; "-selectObjects:" = GormViewWithSubviewsEditor; "-setOpenedSubeditor:" = GormViewWithSubviewsEditor; "-silentlyResetSelection" = GormViewWithSubviewsEditor; }; GormWindowEditor = { "-acceptsTypeFromArray:" = GormWindowEditor; "-activate" = GormWindowEditor; "-changeFont:" = GormWindowEditor; "-close" = GormWindowEditor; "-closeSubeditors" = GormWindowEditor; "-deactivate" = GormWindowEditor; "-deleteSelection" = GormWindowEditor; "-document" = GormWindowEditor; "-draggedImage:endedAt:deposited:" = GormWindowEditor; "-draggingSourceOperationMaskForLocal:" = GormWindowEditor; "-initWithObject:inDocument:" = GormWindowEditor; "-makeSelectionVisible:" = GormWindowEditor; "-openSubeditorForObject:" = GormWindowEditor; "-orderFront" = GormWindowEditor; "-pasteInSelection" = GormWindowEditor; "-resetObject:" = GormWindowEditor; }; GormWrapperBuilder = { "+fileType" = GormWrapperBuilder; }; GormWrapperBuilderFactory = { "+registerWrapperBuilderClass:" = GormWrapperBuilder; "+sharedWrapperBuilderFactory" = GormWrapperBuilder; "-wrapperBuilderForType:" = GormWrapperBuilder; }; GormWrapperLoader = { "+fileType" = GormWrapperLoader; "-saveSCMDirectory:" = GormWrapperLoader; }; GormWrapperLoaderFactory = { "+registerWrapperLoaderClass:" = GormWrapperLoader; "+sharedWrapperLoaderFactory" = GormWrapperLoader; "-wrapperLoaderForType:" = GormWrapperLoader; }; "IBResourceManager(GormAdditions)" = { "+registerForAllPboardTypes:inDocument:" = GormPrivate; }; "NSCell(GormAdditions)" = { "-setUpFieldEditorAttributes:" = "NSCell+GormAdditions"; }; "NSClassSwapper(GormCustomClassAdditions)" = { "+setIsInInterfaceBuilder:" = GormPrivate; "-isInInterfaceBuilder" = GormPrivate; }; "NSColorWell(GormExtensions)" = { "-setColorWithoutAction:" = "NSColorWell+GormExtensions"; }; "NSDateFormatter(GormAdditions)" = { "+defaultFormat" = GormPrivate; "+defaultFormatValue" = GormPrivate; "+formatAtIndex:" = GormPrivate; "+formatCount" = GormPrivate; "+indexOfFormat:" = GormPrivate; }; "NSFontManager(GormExtensions)" = { "-sendAction" = "NSFontManager+GormExtensions"; }; "NSImage(GormNSImageAddition)" = { "-archiveByName" = GormImage; "-setArchiveByName:" = GormImage; }; "NSNumberFormatter(GormAdditions)" = { "+defaultFormat" = GormPrivate; "+defaultFormatValue" = GormPrivate; "+formatAtIndex:" = GormPrivate; "+formatCount" = GormPrivate; "+indexOfFormat:" = GormPrivate; "+negativeFormatAtIndex:" = GormPrivate; "+negativeValueAtIndex:" = GormPrivate; "+positiveFormatAtIndex:" = GormPrivate; "+positiveValueAtIndex:" = GormPrivate; "+zeroFormatAtIndex:" = GormPrivate; "-zeroFormat" = GormPrivate; }; "NSObject(GormAdditions)" = { "-allocSubstitute" = GormPrivate; "-imageForViewer" = GormPrivate; }; "NSObject(GormOutlineViewDataSource)" = { "-outlineView:actionsForItem:" = GormOutlineView; "-outlineView:addAction:forClass:" = GormOutlineView; "-outlineView:addNewActionForClass:" = GormOutlineView; "-outlineView:addNewOutletForClass:" = GormOutlineView; "-outlineView:addOutlet:forClass:" = GormOutlineView; "-outlineView:outletsForItem:" = GormOutlineView; }; "NSObject(GormOutlineViewDelegate)" = { "-outlineView:shouldDeleteItem:" = GormOutlineView; }; "NSView(GormExtensions)" = { "-hasSuperviewKindOfClass:" = "NSView+GormExtensions"; "-moveViewToBack:" = "NSView+GormExtensions"; "-moveViewToFront:" = "NSView+GormExtensions"; "-superviews" = "NSView+GormExtensions"; }; "NSWindowTemplate(Private)" = { "-setBaseWindowClass:" = GormWindowTemplate; }; }; variable = { GormClassPboardType = GormClassEditor; GormDidAddClassNotification = GormPrivate; GormDidDeleteClassNotification = GormPrivate; GormDidDetachObjectFromDocumentNotification = GormPrivate; GormDidModifyClassNotification = GormPrivate; GormLinkPboardType = GormPrivate; GormResizeCellNotification = GormPrivate; GormSwitchViewPreferencesNotification = GormClassEditor; GormToggleGuidelineNotification = GormPrivate; GormWillDetachObjectFromDocumentNotification = GormPrivate; typeChar = GormObjectInspector; typeDouble = GormObjectInspector; typeFloat = GormObjectInspector; typeId = GormObjectInspector; typeInt = GormObjectInspector; typeUChar = GormObjectInspector; typeUInt = GormObjectInspector; }; }gorm-1.3.1/Documentation/GormCore/GormViewWithSubviewsEditor.gsdoc0000644000175000017500000001066614333120703024336 0ustar heronheron GormViewWithSubviewsEditor class documentation Software documentation for the GormViewWithSubviewsEditor class GormCore/GormViewWithSubviewsEditor.h IBSelectionOwners Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. changeFont: sender Description forthcoming. closeSubeditors Description forthcoming. copySelection Description forthcoming. deactivateSubeditors Description forthcoming. handleMouseOnKnob: knob ofView: view withEvent: theEvent Description forthcoming. handleMouseOnView: view withEvent: theEvent Description forthcoming. makeSubeditorResign Description forthcoming. openParentEditor Description forthcoming. selectObjects: objects Description forthcoming. setOpenedSubeditor: newEditor Description forthcoming. silentlyResetSelection Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormImageInspector.html0000644000175000017500000000537514333120703022450 0ustar heronheron GormImageInspector class documentation

GormImageInspector class documentation

Authors

Generated by heron

Software documentation for the GormImageInspector class

GormImageInspector : IBInspector

Declared in:
GormCore/GormImageInspector.h
Description forthcoming.

Instance Variables



Instance Variables for GormImageInspector Class

_currentImage

@protected id _currentImage;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

height

@protected id height;
Description forthcoming.

imageView

@protected id imageView;
Description forthcoming.

name

@protected id name;
Description forthcoming.

width

@protected id width;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/NSCell+GormAdditions.html0000644000175000017500000000342114333120703022557 0ustar heronheron NSCell+GormAdditions documentation

NSCell+GormAdditions documentation

Authors

Generated by heron

Software documentation for the NSCell(GormAdditions) category

NSCell(GormAdditions)

Declared in:
GormCore/NSCell+GormAdditions.h
Description forthcoming.
Method summary

setUpFieldEditorAttributes: 

- (NSText*) setUpFieldEditorAttributes: (NSText*)textObject;
This methods is comes directly from NSCell.m The only additions is [textObject setUsesFontPanel: NO] We do this because we want to have control over the font panel changes.


gorm-1.3.1/Documentation/GormCore/NSView+GormExtensions.html0000644000175000017500000000715114333120703023037 0ustar heronheron NSView+GormExtensions documentation

NSView+GormExtensions documentation

Authors

Generated by heron

Software documentation for the NSView(GormExtensions) category

NSView(GormExtensions)

Declared in:
GormCore/NSView+GormExtensions.h
Description forthcoming.
Method summary

hasSuperviewKindOfClass: 

- (BOOL) hasSuperviewKindOfClass: (Class)cls;
Returns YES if the receiver has an instance of the Class cls as a superview.
Checks for a superview of a give class.

moveViewToBack: 

- (void) moveViewToBack: (NSView*)sv;
Move the subview sv in reciever to the beginning of the reciever's display list. This has the effect of making it appear in back of the other views.
Moves the specified subview to the beginning of the list, so it's displayed behind all of the other views.

moveViewToFront: 

- (void) moveViewToFront: (NSView*)sv;
Move the subview sv in reciever to the end of the reciever's display list. This has the effect of making it appear in front of the other views.
Moves the specified subview to the end of the list, so it's displayed in front of the other views.

superviews 

- (NSArray*) superviews;
All superviews of the receiver.
All superviews of this view


gorm-1.3.1/Documentation/GormCore/NSColorWell+GormExtensions.html0000644000175000017500000000323014333120703024021 0ustar heronheron NSColorWell+GormExtensions documentation

NSColorWell+GormExtensions documentation

Authors

Generated by heron

Software documentation for the NSColorWell(GormExtensions) category

NSColorWell(GormExtensions)

Declared in:
GormCore/NSColorWell+GormExtensions.h
Description forthcoming.
Method summary

setColorWithoutAction: 

- (void) setColorWithoutAction: (NSColor*)color;
Changes the color without sending the action associated with it.


gorm-1.3.1/Documentation/GormCore/ClassesTOC.html0000644000175000017500000001767314360755340020674 0ustar heronheron Classes

Classes

GormBoxEditor
GormClassEditor
GormClassInspector
GormClassManager
GormClassPanelController
GormClassProxy
GormConnectionInspector
GormControlEditor
GormCustomClassInspector
GormCustomView
GormDocument
GormDocumentController
GormDocumentWindow
GormEditorToParent
GormFilePrefsManager
GormFilesOwner
GormFilesOwnerInspector
GormFirstResponder
GormFontViewController
GormGenericEditor
GormHelpInspector
GormImage
GormImageEditor
GormImageInspector
GormInspectorsManager
GormInternalViewEditor
GormMatrixEditor
GormNSPanel
GormNSSplitViewInspector
GormNSWindow
GormObjectEditor
GormObjectInspector
GormObjectProxy
GormObjectToEditor
GormOpenGLView
GormOutletActionHolder
GormOutlineView
GormPalettesManager
GormPlacementHint
GormPlacementInfo
GormPlugin
GormPluginManager
GormResource
GormResourceEditor
GormResourceManager
GormScrollViewAttributesInspector
GormSetNameController
GormSound
GormSoundEditor
GormSoundInspector
GormSoundView
GormSplitViewEditor
GormStandaloneViewEditor
GormViewEditor
GormViewSizeInspector
GormViewWindow
GormViewWithContentViewEditor
GormViewWithSubviewsEditor
GormWindowEditor
GormWindowTemplate
GormWrapperBuilder
GormWrapperBuilderFactory
GormWrapperLoader
GormWrapperLoaderFactory

gorm-1.3.1/Documentation/GormCore/index.html0000644000175000017500000000072014360755340020021 0ustar heronheron Autogsdoc-generated Documentation for Untitled gorm-1.3.1/Documentation/GormCore/GormObjectInspector.html0000644000175000017500000001260714333120703022630 0ustar heronheron GormObjectInspector class documentation

GormObjectInspector class documentation

Authors

Generated by heron

Software documentation for the GormObjectInspector class

GormObjectInspector : IBInspector

Declared in:
GormCore/GormObjectInspector.h
Description forthcoming.

Instance Variables

Method summary

update: 

- (void) update: (id)sender;
Description forthcoming.



Instance Variables for GormObjectInspector Class

browser

@protected NSBrowser* browser;
Description forthcoming.

gets

@protected NSMutableDictionary* gets;
Description forthcoming.

isString

@protected BOOL isString;
Description forthcoming.

label

@protected NSButton* label;
Description forthcoming.

sets

@protected NSMutableArray* sets;
Description forthcoming.

types

@protected NSMutableDictionary* types;
Description forthcoming.

value

@protected NSTextField* value;
Description forthcoming.




GormObjectInspector variables

typeChar

NSString* typeChar;
Description forthcoming.

typeDouble

NSString* typeDouble;
Description forthcoming.

typeFloat

NSString* typeFloat;
Description forthcoming.

typeId

NSString* typeId;
Description forthcoming.

typeInt

NSString* typeInt;
Description forthcoming.

typeUChar

NSString* typeUChar;
Description forthcoming.

typeUInt

NSString* typeUInt;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/GormNSSplitViewInspector.html0000644000175000017500000000353514333120703023611 0ustar heronheron GormNSSplitViewInspector class documentation

GormNSSplitViewInspector class documentation

Authors

Generated by heron

Software documentation for the GormNSSplitViewInspector class

GormNSSplitViewInspector : IBInspector

Declared in:
GormCore/GormNSSplitViewInspector.h
Description forthcoming.

Instance Variables



Instance Variables for GormNSSplitViewInspector Class

divider

@protected id divider;
Description forthcoming.

orientation

@protected id orientation;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormServer.html0000644000175000017500000000341414333120703020775 0ustar heronheron GormServer documentation

GormServer documentation

Authors

Generated by heron

Software documentation for the GormServer protocol

GormServer

Declared in:
GormCore/GormServer.h
Description forthcoming.
Method summary

addClass: 

- (void) addClass: (NSDictionary*)dict;
Description forthcoming.

deleteClass: 

- (void) deleteClass: (NSString*)className;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/GormPalettesManager.gsdoc0000644000175000017500000001161514333120703022740 0ustar heronheron GormPalettesManager class documentation Software documentation for the GormPalettesManager class GormCore/GormPalettesManager.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. importClasses: classes withDictionary: dict Description forthcoming. importImages: images withBundle: bundle Description forthcoming. importSounds: sounds withBundle: bundle Description forthcoming. importedClasses Description forthcoming. importedImages Description forthcoming. importedSounds Description forthcoming. loadPalette: path Description forthcoming. openPalette: sender Description forthcoming. panel Description forthcoming. setCurrentPalette: anObj Description forthcoming. substituteClasses Description forthcoming. gorm-1.3.1/Documentation/GormCore/NSFontManager+GormExtensions.gsdoc0000644000175000017500000000214214333120703024454 0ustar heronheron NSFontManager+GormExtensions documentation Software documentation for the NSFontManager(GormExtensions) category GormCore/NSFontManager+GormExtensions.h Description forthcoming. sendAction Override for sendAction in NSFontManager. This method calls the action on the last edited object if the attempt to send the action to the first responder is unsuccessful. This allows the font to be more easily set. gorm-1.3.1/Documentation/GormCore/GormImage.gsdoc0000644000175000017500000000663014333120703020707 0ustar heronheron GormImage greg_casamento@yahoo.com This class is a placeholder for a real image. 2001 Free Software Foundation, Inc. Software documentation for the GormImage class GormCore/GormImage.h Description forthcoming. Description forthcoming. Description forthcoming. imageForData: aData withFileName: aName inWrapper: flag Initialize with image data. Mark it as in the wrapper depending on the value of flag. imageForPath: aPath Initialize with image data located at path. imageForPath: aPath inWrapper: flag Initialize with image data located at path. Mark it as in the wrapper depending on the value of flag. image A thumbnail of the image. normalImage The full sized image. Software documentation for the NSImage(GormNSImageAddition) category GormCore/GormImage.h Description forthcoming. archiveByName Returns YES, if the image should be archived by name only, NO otherwise. setArchiveByName: archiveByName Set to YES, if the image should be archived by name only, NO otherwise. gorm-1.3.1/Documentation/GormCore/FunctionsTOC.html0000644000175000017500000000634714360755340021243 0ustar heronheron Functions

Functions

GormDrawKnobsForRect
GormDrawOpenKnobsForRect
GormExtBoundsForRect
GormKnobHitInRect
GormShowFastKnobFills
GormShowFrameWithKnob
_GSObjCMethodNamesForClass
_GSObjCVariableNames
allSubviews
appVersion
colorFromDict
colorToDict
cutFileLabelText
defaultCellSize
findAll
findAllSubmenus
findAllWithArray
formatAction
formatOutlet
identifierString
minimalContainerFrame
promptForClassName
subviewsForView
systemImagesList
systemSoundsList

gorm-1.3.1/Documentation/GormCore/GormClassPanelController.html0000644000175000017500000001133114333120703023615 0ustar heronheron GormClassPanelController class documentation

GormClassPanelController class documentation

Authors

Generated by heron

Software documentation for the GormClassPanelController class

GormClassPanelController : NSObject

Declared in:
GormCore/GormClassPanelController.h
Description forthcoming.

Instance Variables

Method summary

browserAction: 

- (void) browserAction: (id)sender;
Description forthcoming.

initWithTitle: classList: 

- (id) initWithTitle: (NSString*)title classList: (NSArray*)classes;
Description forthcoming.

okButton: 

- (void) okButton: (id)sender;
Description forthcoming.

runModal 

- (NSString*) runModal;
Description forthcoming.



Instance Variables for GormClassPanelController Class

allClasses

@protected NSMutableArray* allClasses;
Description forthcoming.

classBrowser

@protected id classBrowser;
Description forthcoming.

className

@protected NSString* className;
Description forthcoming.

classNameForm

@protected id classNameForm;
Description forthcoming.

okButton

@protected id okButton;
Description forthcoming.

panel

@protected id panel;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormWindowEditor.html0000644000175000017500000002335414333120703022152 0ustar heronheron GormWindowEditor class documentation

GormWindowEditor class documentation

Authors

Generated by heron

Software documentation for the GormWindowEditor class

GormWindowEditor : GormViewWithContentViewEditor

Declared in:
GormCore/GormWindowEditor.h
Description forthcoming.

Instance Variables

Method summary

acceptsTypeFromArray: 

- (BOOL) acceptsTypeFromArray: (NSArray*)types;
Returns YES, if the reciever accepts any of the pasteboard items in types.

activate 

- (BOOL) activate;
Activates the editor

changeFont: 

- (void) changeFont: (id)sender;
Change the font.

close 

- (void) close;
Close the editor. This will also call the deactivate method.

closeSubeditors 

- (void) closeSubeditors;
Close any and all editors which are subordinate to this one.

deactivate 

- (void) deactivate;
Deactivate the editor.

deleteSelection 

- (void) deleteSelection;
Delete the current selection.

document 

- (id) document;
Return the document which the object the receiver is edited is located in.

draggedImage: endedAt: deposited: 

- (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f;
Call with success or failure of the drag operation.

draggingSourceOperationMaskForLocal: 

- (NSUInteger) draggingSourceOperationMaskForLocal: (BOOL)flag;
Returns NSDragOperationNone.

initWithObject: inDocument: 

- (id) initWithObject: (id)anObject inDocument: (id)aDocument;
Instantiate with anObject in the document aDocument.

makeSelectionVisible: 

- (void) makeSelectionVisible: (BOOL)flag;
Make current selection visible.

openSubeditorForObject: 

- (id) openSubeditorForObject: (id)anObject;
Description forthcoming.

orderFront 

- (void) orderFront;
Order the edited window to the front.

pasteInSelection 

- (void) pasteInSelection;
Paste from pasteboard.

resetObject: 

- (void) resetObject: (id)anObject;
Reset object, redisplays the window.



Instance Variables for GormWindowEditor Class

dragPb

@protected NSPasteboard* dragPb;
Description forthcoming.

dragType

@protected NSString* dragType;
Description forthcoming.

edit_view

@protected NSView* edit_view;
Description forthcoming.

isLinkSource

@protected BOOL isLinkSource;
Description forthcoming.

subeditors

@protected NSMutableArray* subeditors;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormProtocol.gsdoc0000644000175000017500000001361414333120703021466 0ustar heronheron GormProtocol documentation Software documentation for the Gorm protocol GormCore/GormProtocol.h Description forthcoming. classManager Description forthcoming. classMenu Description forthcoming. connectDestination Description forthcoming. connectSource Description forthcoming. copy: sender Description forthcoming. cut: sender Description forthcoming. delete: sender Description forthcoming. displayConnectionBetween: source and: destination Description forthcoming. endTesting: sender Description forthcoming. groupSelectionInBox: sender Description forthcoming. groupSelectionInScrollView: sender Description forthcoming. groupSelectionInSplitView: sender Description forthcoming. inspector: sender Description forthcoming. inspectorsManager Description forthcoming. isConnecting Description forthcoming. loadImage: sender Description forthcoming. loadPalette: sender Description forthcoming. loadSound: sender Description forthcoming. palettes: sender Description forthcoming. palettesManager Description forthcoming. paste: sender Description forthcoming. pluginManager Description forthcoming. preferencesPanel: sender Description forthcoming. selectAllItems: sender Description forthcoming. setName: sender Description forthcoming. stopConnecting Description forthcoming. testInterface: sender Description forthcoming. ungroup: sender Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormControlEditor.html0000644000175000017500000000205014333120703022311 0ustar heronheron GormControlEditor class documentation

GormControlEditor class documentation

Authors

Generated by heron

Software documentation for the GormControlEditor class

GormControlEditor : GormViewEditor

Declared in:
GormCore/GormControlEditor.h
Description forthcoming.

gorm-1.3.1/Documentation/GormCore/GormViewKnobs.html0000644000175000017500000000431314333120703021435 0ustar heronheron GormViewKnobs documentation

GormViewKnobs documentation

Authors

Generated by heron

GormViewKnobs functions

GormDrawKnobsForRect

void GormDrawKnobsForRect(NSRect aRect);
Description forthcoming.

GormDrawOpenKnobsForRect

void GormDrawOpenKnobsForRect(NSRect aRect);
Description forthcoming.

GormExtBoundsForRect

NSRect GormExtBoundsForRect(NSRect aRect);
Description forthcoming.

GormKnobHitInRect

IBKnobPosition GormKnobHitInRect(NSRect aFrame, NSPoint p);
Description forthcoming.

GormShowFastKnobFills

void GormShowFastKnobFills();
Description forthcoming.

GormShowFrameWithKnob

void GormShowFrameWithKnob(NSRect aRect, IBKnobPosition aKnob);
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/GormControlEditor.gsdoc0000644000175000017500000000124114333120703022445 0ustar heronheron GormControlEditor class documentation Software documentation for the GormControlEditor class GormCore/GormControlEditor.h Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormStandaloneViewEditor.gsdoc0000644000175000017500000000141014333120703023746 0ustar heronheron GormStandaloneViewEditor class documentation Software documentation for the GormStandaloneViewEditor class GormCore/GormStandaloneViewEditor.h IBSelectionOwners Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormDocument.gsdoc0000644000175000017500000007027614333120703021452 0ustar heronheron GormDocument documentation Software documentation for the GormDocument class GormCore/GormDocument.h IBDocuments GSNibContainer NSCoding Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. addAttributeToClass: sender Add an outlet/action to the classes view. addConnector: aConnector Add aConnector to the set of connectors in this document. alignSelectedObjects: sender Aligns selected objects on a given axis.
Align objects to center, left, right, top, bottom.
allManagedPboardTypes Returns all pasteboard types registered for with the IBResourceManager.
Get all pasteboard types managed by the resource manager.
arrangeSelectedObjects: sender Arrages selected objects based on the either in front of or in back of the view stack.
Arrange views in front or in back of one another.
changeToTopLevelEditorAcceptingTypes: types andFileType: fileType Switch to the top level editor responsible for a given type. This allows the document in the view to switch to the view which is appropriate for the resource being dragged in. changeToViewWithTag: tag Switches to the view using the specified tag. They are 0=objects, 1=images, 2=sounds, 3=classes, 4=file prefs. classIsSelected Returns YES, if the current select on the classes view is a class. classManager The class manager. closeAllEditors Forces the closing of all editors in the document. createClassFiles: sender Create the class files for the selected class. createResourceManagers Create resource manager instances for all registered classes. createSubclass: sender Create a subclass of the currently selected class in the classes view. deactivateEditors Deactivate the editors for archiving.. deferredWindows Windows deferred.
All windows marked, deferred.
exportStrings: sender This method is used to export all strings in a document to a file for Language translation. This allows the user to see all of the strings which can be translated and allows the user to provide a translateion for each of them. filePrefsManager File preferences.
Gorm file prefs manager.
filesOwner File's Owner
File's owner...
firstResponder Returns stand-in object for firstResponder
Return first responder stand in.
fontManager Returns stand-in object for fontManager.
Return font manager stand in.
fontMenu Returns the font menu for the document.
Return the object that will be the services menu.
handleNotification: aNotification Handle all notifications. Checks the value of [ aNotification name] against the set of notifications this class responds to and takes appropriate action. images Images infoData return the file info. instantiateClass: sender Create an instance of a given class. isActive Returns YES, if document is active. isDocumentOpen Return the document open flag. isOlderArchive Return YES if this is an older archive. isTopLevelObject: obj Returns YES, if obj is a top level object. loadClass: sender Load a class into the document.
Parse a header into the classes view.
nameForObject: anObject Returns the name for the object...
Returns the name for anObject.
objectForName: name Returns the object for name. objectIsDeferred: anObject Return YES, if anObject is deferred.
Return YES, if the anObject is in the deferred list.
objectIsVisibleAtLaunch: anObject Return YES, if anObject is visible at launch time. objects Returns all names for all objects known to Gorm.
Returns all objects in the document.
openEditorForObject: anObject withParentObject: parentObj Open the editor for anObject, with parent object. openImage: sender Open an image and copy it into the document. openSound: sender Open a sound and load it into the document. reactivateEditors Reactivate all of the editors... rebuildObjToNameMapping Build our reverse mapping information and other initialisation recentDocumentsMenu Returns the menu which will be the recent documents menu for the document.
Return the object that will be the receent documents menu.
refreshConnectionsForClassNamed: className Refresh all connections to any and all instances of className. Checks if the class has the action/outlet present and deletes it, if it doesn't. remove: sender Remove a class from the classes view removeAllInstancesOfClass: className Remove all instances of a given class. removeConnectionsForClassNamed: className Remove all connections to any and all instances of className. removeConnectionsWithLabel: name forClassNamed: className isAction: action Removes all connections given action or outlet with the specified label (paramter name) class name (parameter className). renameConnectionsForClassNamed: className toName: newName Rename connections connected to an instance of on class to another. resourceManagerForPasteboard: pboard Get the resource manager which handles the content on pboard. resourceManagers The list of all resource managers. retrieveObjectsForParent: parent recursively: flag Retrieve all objects which have parent as thier parent. If flag is YES, then retrieve the entire graph of objects starting with the parent.
Pull all of the objects which are under a given parent. Returns an autoreleased array.
scmWrapper Save the SCM directory. selectClass: className Select a class in the classes view selectClass: className editClass: flag Select a class in the classes view servicesMenu Returns the services menu for the document.
Return the object that will be the services menu.
setDocumentActive: flag Marks this document as the currently active document. The active document is the one being edited by the user. setDocumentOpen: flag Set the document open flag. setFontMenu: anObject Set the font menu.
Set the object that will be the font menu in the app.
setImages: imgs Images setInfoData: data Set the file info for this document. setObject: anObject isDeferred: flag Add object to the defferred list.
Add anObject to the deferred list.
setObject: anObject isVisibleAtLaunch: flag Add object to the visible at launch list. setOlderArchive: flag Set the "older archive" flag. setRecentDocumentsMenu: anObject Sets the recent documents menu.
Set the menu that will be the recent documents menu in the app.
setSCMWrapper: wrapper Save the SCM directory. setServicesMenu: anObject Set the services menu.
Set the object that will be the services menu in the app.
setSounds: snds Sounds setWindowsMenu: anObject Sets the windows menu.
Set the windows menu.
sounds Sounds translate: sender This method is used to translate all of the strings in the file from one language into another. This is helpful when attempting to translate an application for use in different locales. viewWithTag: tag returns the view using the specified tag . They are 0=objects, 1=images, 2=sounds, 3=classes, 4=file prefs. visibleWindows Windows visible at launch...
All windows marked, visible at launch.
window The document window. windowAndRect: r forObject: object WindowAndRect:forObject: is called by Gorm to determine where it should draw selection markup
Returns the window and the rect r for object.
windowsMenu Returns the menu which will be the windows menu for the document.
return the windows menu.
Software documentation for the GormEditorToParent class GormCore/GormDocument.h Description forthcoming. Software documentation for the GormFirstResponder class GormCore/GormDocument.h Description forthcoming. Software documentation for the GormObjectToEditor class GormCore/GormDocument.h Description forthcoming. Software documentation for the GormDocument(MenuValidation) category GormCore/GormDocument.h Description forthcoming. isEditingClasses Returns YES if the document is editing classes. isEditingImages Returns YES if the document is editing images. isEditingObjects Returns YES if the document is editing instance/objects. isEditingSounds Returns YES if the document is editing sounds.
gorm-1.3.1/Documentation/GormCore/GormImage.html0000644000175000017500000001460714333120703020557 0ustar heronheron GormImage

GormImage

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
This class is a placeholder for a real image.

Copyright: (C) 2001 Free Software Foundation, Inc.

Software documentation for the GormImage class

GormImage : GormResource

Declared in:
GormCore/GormImage.h
Description forthcoming.

Instance Variables

Method summary

imageForData: withFileName: inWrapper: 

+ (GormImage*) imageForData: (NSData*)aData withFileName: (NSString*)aName inWrapper: (BOOL)flag;
Initialize with image data. Mark it as in the wrapper depending on the value of flag.

imageForPath: 

+ (GormImage*) imageForPath: (NSString*)aPath;
Initialize with image data located at path.

imageForPath: inWrapper: 

+ (GormImage*) imageForPath: (NSString*)aPath inWrapper: (BOOL)flag;
Initialize with image data located at path. Mark it as in the wrapper depending on the value of flag.

image 

- (NSImage*) image;
A thumbnail of the image.

normalImage 

- (NSImage*) normalImage;
The full sized image.



Instance Variables for GormImage Class

image

@protected NSImage* image;
Description forthcoming.

smallImage

@protected NSImage* smallImage;
Description forthcoming.




Software documentation for the NSImage(GormNSImageAddition) category

NSImage(GormNSImageAddition)

Declared in:
GormCore/GormImage.h
Description forthcoming.
Method summary

archiveByName 

- (BOOL) archiveByName;
Returns YES, if the image should be archived by name only, NO otherwise.

setArchiveByName: 

- (void) setArchiveByName: (BOOL)archiveByName;
Set to YES, if the image should be archived by name only, NO otherwise.


gorm-1.3.1/Documentation/GormCore/GormGenericEditor.gsdoc0000644000175000017500000002137614360747253022433 0ustar heronheron GormGenericEditor class documentation Software documentation for the GormGenericEditor class GormCore/GormGenericEditor.h IBEditors IBSelectionOwners Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. editorForDocument: aDocument Description forthcoming. setEditor: editor forDocument: aDocument Description forthcoming. activate Description forthcoming. addObject: anObject Description forthcoming. close Description forthcoming. closeSubeditors Description forthcoming. containsObject: object Description forthcoming. copySelection Description forthcoming. deleteSelection Description forthcoming. document Description forthcoming. editedObject Description forthcoming. fileTypes Description forthcoming. initWithObject: anObject inDocument: aDocument Description forthcoming. isOpened Description forthcoming. objects Description forthcoming. openSubeditorForObject: anObject Description forthcoming. orderFront Description forthcoming. pasteInSelection Description forthcoming. rectForObject: anObject Description forthcoming. refreshCells Description forthcoming. removeObject: anObject Description forthcoming. selectObjects: anArray Description forthcoming. wantsSelection Description forthcoming. window Description forthcoming. Software documentation for the GormGenericEditor(PrivateMethods) category GormCore/GormGenericEditor.h Warning this category is private, which means that the methods are for internal use by the package. You should not use them in external code. changeSelection: sender Description forthcoming. groupSelectionInBox Description forthcoming. groupSelectionInMatrix Description forthcoming. groupSelectionInScrollView Description forthcoming. groupSelectionInSplitView Description forthcoming. groupSelectionInView Description forthcoming. setEditor: anEditor forDocument: doc Description forthcoming. ungroup Description forthcoming. willCloseDocument: aNotification Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormSoundInspector.gsdoc0000644000175000017500000000346014333120703022642 0ustar heronheron GormSoundInspector greg_casamento@yahoo.com allow user to select custom classes 2002 Free Software Foundation, Inc. Software documentation for the GormSoundInspector class GormCore/GormSoundInspector.h Description forthcoming. Description forthcoming. pause: sender Description forthcoming. play: sender Description forthcoming. record: sender Description forthcoming. stop: sender Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormWrapperBuilder.html0000644000175000017500000001510514333120703022456 0ustar heronheron GormWrapperBuilder documentation

GormWrapperBuilder documentation

Authors

Generated by heron

Software documentation for the GormWrapperBuilder class

GormWrapperBuilder : NSObject

Declared in:
GormCore/GormWrapperBuilder.h
Conforms to:
GormWrapperBuilder
Description forthcoming.

Instance Variables

Method summary

fileType 

+ (NSString*) fileType;
Description forthcoming.



Instance Variables for GormWrapperBuilder Class

document

@protected GormDocument* document;
Description forthcoming.




Software documentation for the GormWrapperBuilderFactory class

GormWrapperBuilderFactory : NSObject

Declared in:
GormCore/GormWrapperBuilder.h
Description forthcoming.
Method summary

registerWrapperBuilderClass: 

+ (void) registerWrapperBuilderClass: (Class)aClass;
Description forthcoming.

sharedWrapperBuilderFactory 

+ (GormWrapperBuilderFactory*) sharedWrapperBuilderFactory;
Description forthcoming.

wrapperBuilderForType: 

- (id<GormWrapperBuilder>) wrapperBuilderForType: (NSString*)type;
Description forthcoming.

Software documentation for the GormWrapperBuilder protocol

GormWrapperBuilder

Declared in:
GormCore/GormWrapperBuilder.h
Description forthcoming.
Method summary

buildFileWrapperDictionaryWithDocument: 

- (NSMutableDictionary*) buildFileWrapperDictionaryWithDocument: (GormDocument*)document;
Description forthcoming.

buildFileWrapperWithDocument: 

- (NSFileWrapper*) buildFileWrapperWithDocument: (GormDocument*)document;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/TypesTOC.html0000644000175000017500000000131614360755340020366 0ustar heronheron Types

Types

GSAttributeType
GormDocumentType
GormHintBorder

gorm-1.3.1/Documentation/GormCore/GormSoundEditor.html0000644000175000017500000000204614333120703021766 0ustar heronheron GormSoundEditor class documentation

GormSoundEditor class documentation

Authors

Generated by heron

Software documentation for the GormSoundEditor class

GormSoundEditor : GormResourceEditor

Declared in:
GormCore/GormSoundEditor.h
Description forthcoming.

gorm-1.3.1/Documentation/GormCore/NSView+GormExtensions.gsdoc0000644000175000017500000000432614333120703023173 0ustar heronheron NSView+GormExtensions documentation Software documentation for the NSView(GormExtensions) category GormCore/NSView+GormExtensions.h Description forthcoming. hasSuperviewKindOfClass: cls Returns YES if the receiver has an instance of the Class cls as a superview.
Checks for a superview of a give class.
moveViewToBack: sv Move the subview sv in reciever to the beginning of the reciever's display list. This has the effect of making it appear in back of the other views.
Moves the specified subview to the beginning of the list, so it's displayed behind all of the other views.
moveViewToFront: sv Move the subview sv in reciever to the end of the reciever's display list. This has the effect of making it appear in front of the other views.
Moves the specified subview to the end of the list, so it's displayed in front of the other views.
superviews All superviews of the receiver.
All superviews of this view
gorm-1.3.1/Documentation/GormCore/GormPrivate.html0000644000175000017500000006044014333120703021143 0ustar heronheron GormPrivate documentation

GormPrivate documentation

Authors

Generated by heron

Software documentation for the GormClassProxy class

GormClassProxy : NSObject

Declared in:
GormCore/GormPrivate.h
Description forthcoming.

Instance Variables

Method summary

className 

- (NSString*) className;
Description forthcoming.

connectInspectorClassName 

- (NSString*) connectInspectorClassName;
Description forthcoming.

initWithClassName: 

- (id) initWithClassName: (NSString*)n;
Description forthcoming.

inspectorClassName 

- (NSString*) inspectorClassName;
Description forthcoming.

sizeInspectorClassName 

- (NSString*) sizeInspectorClassName;
Description forthcoming.



Instance Variables for GormClassProxy Class

name

@protected NSString* name;
Description forthcoming.

t

@protected NSInteger t;
Description forthcoming.




Software documentation for the GormObjectProxy class

GormObjectProxy : GSNibItem

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

setClassName: 

- (void) setClassName: (NSString*)className;
Description forthcoming.

Software documentation for the GSClassSwapper(GormCustomClassAdditions) category

GSClassSwapper(GormCustomClassAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

setIsInInterfaceBuilder: 

+ (void) setIsInInterfaceBuilder: (BOOL)flag;
Description forthcoming.

isInInterfaceBuilder 

- (BOOL) isInInterfaceBuilder;
Description forthcoming.

Software documentation for the GSNibItem(GormAdditions) category

GSNibItem(GormAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

className 

- (NSString*) className;
Description forthcoming.

initWithClassName: 

- (id) initWithClassName: (NSString*)className;
Description forthcoming.

initWithClassName: frame: 

- (id) initWithClassName: (NSString*)className frame: (NSRect)frame;
Description forthcoming.

Software documentation for the IBResourceManager(GormAdditions) category

IBResourceManager(GormAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

registerForAllPboardTypes: inDocument: 

+ (void) registerForAllPboardTypes: (id)editor inDocument: (id)doc;
Description forthcoming.

Software documentation for the NSClassSwapper(GormCustomClassAdditions) category

NSClassSwapper(GormCustomClassAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

setIsInInterfaceBuilder: 

+ (void) setIsInInterfaceBuilder: (BOOL)flag;
Description forthcoming.

isInInterfaceBuilder 

- (BOOL) isInInterfaceBuilder;
Description forthcoming.

Software documentation for the NSDateFormatter(GormAdditions) category

NSDateFormatter(GormAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

defaultFormat 

+ (NSString*) defaultFormat;
Description forthcoming.

defaultFormatValue 

+ (id) defaultFormatValue;
Description forthcoming.

formatAtIndex: 

+ (NSString*) formatAtIndex: (int)index;
Description forthcoming.

formatCount 

+ (int) formatCount;
Description forthcoming.

indexOfFormat: 

+ (NSInteger) indexOfFormat: (NSString*)format;
Description forthcoming.

Software documentation for the NSNumberFormatter(GormAdditions) category

NSNumberFormatter(GormAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

defaultFormat 

+ (NSString*) defaultFormat;
Description forthcoming.

defaultFormatValue 

+ (id) defaultFormatValue;
Description forthcoming.

formatAtIndex: 

+ (NSString*) formatAtIndex: (int)index;
Description forthcoming.

formatCount 

+ (int) formatCount;
Description forthcoming.

indexOfFormat: 

+ (NSInteger) indexOfFormat: (NSString*)format;
Description forthcoming.

negativeFormatAtIndex: 

+ (NSString*) negativeFormatAtIndex: (int)index;
Description forthcoming.

negativeValueAtIndex: 

+ (NSDecimalNumber*) negativeValueAtIndex: (int)index;
Description forthcoming.

positiveFormatAtIndex: 

+ (NSString*) positiveFormatAtIndex: (int)index;
Description forthcoming.

positiveValueAtIndex: 

+ (NSDecimalNumber*) positiveValueAtIndex: (int)index;
Description forthcoming.

zeroFormatAtIndex: 

+ (NSString*) zeroFormatAtIndex: (int)index;
Description forthcoming.

zeroFormat 

- (NSString*) zeroFormat;
Description forthcoming.

Software documentation for the NSObject(GormAdditions) informal protocol

NSObject(GormAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

allocSubstitute 

- (id) allocSubstitute;
Description forthcoming.

imageForViewer 

- (NSImage*) imageForViewer;
Description forthcoming.

GormPrivate variables

GormDidAddClassNotification

NSString* GormDidAddClassNotification;
Description forthcoming.

GormDidDeleteClassNotification

NSString* GormDidDeleteClassNotification;
Description forthcoming.

GormDidDetachObjectFromDocumentNotification

NSString* GormDidDetachObjectFromDocumentNotification;
Description forthcoming.

GormDidModifyClassNotification

NSString* GormDidModifyClassNotification;
Description forthcoming.

GormLinkPboardType

NSString* GormLinkPboardType;
Description forthcoming.

GormResizeCellNotification

NSString* GormResizeCellNotification;
Description forthcoming.

GormToggleGuidelineNotification

NSString* GormToggleGuidelineNotification;
Description forthcoming.

GormWillDetachObjectFromDocumentNotification

NSString* GormWillDetachObjectFromDocumentNotification;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/GormViewEditor.html0000644000175000017500000003716314333120703021620 0ustar heronheron GormViewEditor class documentation

GormViewEditor class documentation

Authors

Generated by heron

Software documentation for the GormViewEditor class

GormViewEditor : NSView

Declared in:
GormCore/GormViewEditor.h
Conforms to:
IBEditors
Description forthcoming.

Instance Variables

Method summary

activate 

- (BOOL) activate;
Description forthcoming.

canBeOpened 

- (BOOL) canBeOpened;
Description forthcoming.

close 

- (void) close;
Description forthcoming.

deactivate 

- (void) deactivate;
Description forthcoming.

detachSubviews 

- (void) detachSubviews;
Description forthcoming.

document 

- (id) document;
Description forthcoming.

editedObject 

- (id) editedObject;
Description forthcoming.

frameDidChange: 

- (void) frameDidChange: (id)sender;
Description forthcoming.

initWithObject: inDocument: 

- (id) initWithObject: (id)anObject inDocument: (id)aDocument;
Description forthcoming.

isOpened 

- (BOOL) isOpened;
Description forthcoming.

makeSelectionVisible: 

- (void) makeSelectionVisible: (BOOL)value;
Description forthcoming.

parent 

- (id) parent;
Description forthcoming.

postDraw: 

- (void) postDraw: (NSRect)rect;
Description forthcoming.

selection 

- (NSArray*) selection;
Description forthcoming.

setOpened: 

- (void) setOpened: (BOOL)value;
Description forthcoming.



Instance Variables for GormViewEditor Class

_editedObject

@protected id _editedObject;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

activated

@protected BOOL activated;
Description forthcoming.

closed

@protected BOOL closed;
Description forthcoming.

document

@protected id document;
Description forthcoming.

parent

@protected GormViewWithSubviewsEditor* parent;
Description forthcoming.

viewWindow

@protected GormViewWindow* viewWindow;
Description forthcoming.




Software documentation for the GormViewEditor(EditingAdditions) category

GormViewEditor(EditingAdditions)

Declared in:
GormCore/GormViewEditor.h
Description forthcoming.
Method summary

editTextField: withEvent: 

- (NSEvent*) editTextField: (id)view withEvent: (NSEvent*)theEvent;
Description forthcoming.

Software documentation for the GormViewEditor(IntelligentPlacement) category

GormViewEditor(IntelligentPlacement)

Declared in:
GormCore/GormViewEditor.h
Description forthcoming.
Method summary

initializeResizingInFrame: withKnob: 

- (GormPlacementInfo*) initializeResizingInFrame: (NSView*)view withKnob: (IBKnobPosition)knob;
Description forthcoming.

updateResizingWithFrame: andEvent: andPlacementInfo: 

- (void) updateResizingWithFrame: (NSRect)frame andEvent: (NSEvent*)theEvent andPlacementInfo: (GormPlacementInfo*)gpi;
Description forthcoming.

validateFrame: withEvent: andPlacementInfo: 

- (void) validateFrame: (NSRect)frame withEvent: (NSEvent*)theEvent andPlacementInfo: (GormPlacementInfo*)gpi;
Description forthcoming.

Software documentation for the GormViewEditor(WindowAndRect) category

GormViewEditor(WindowAndRect)

Declared in:
GormCore/GormViewEditor.h
Description forthcoming.
Method summary

windowAndRect: forObject: 

- (NSWindow*) windowAndRect: (NSRect*)prect forObject: (id)object;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/Untitled.gsdoc0000644000175000017500000000065314360755340020642 0ustar heronheron The Untitled Project

The index below lists the major components of the Untitled documentation.

gorm-1.3.1/Documentation/GormCore/GormImageInspector.gsdoc0000644000175000017500000000340114333120703022567 0ustar heronheron GormImageInspector class documentation Software documentation for the GormImageInspector class GormCore/GormImageInspector.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormViewWindow.gsdoc0000644000175000017500000000316114333120703021763 0ustar heronheron GormViewWindow class documentation Software documentation for the GormViewWindow class GormCore/GormViewWindow.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. initWithView: view Description forthcoming. setView: view Description forthcoming. view Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormSoundView.gsdoc0000644000175000017500000000306214333120703021604 0ustar heronheron GormSoundView greg_casamento@yahoo.com 2004 Free Software Foundation, Inc. Software documentation for the GormSoundView class GormCore/GormSoundView.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. setSound: sound Description forthcoming. sound Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormFilesOwner.html0000644000175000017500000001137114333120703021605 0ustar heronheron GormFilesOwner documentation

GormFilesOwner documentation

Authors

Generated by heron

Software documentation for the GormFilesOwner class

GormFilesOwner : NSObject

Declared in:
GormCore/GormFilesOwner.h
Description forthcoming.

Instance Variables

Method summary

className 

- (NSString*) className;
Description forthcoming.

setClassName: 

- (void) setClassName: (NSString*)aName;
Description forthcoming.



Instance Variables for GormFilesOwner Class

className

@protected NSString* className;
Description forthcoming.




Software documentation for the GormFilesOwnerInspector class

GormFilesOwnerInspector : IBInspector

Declared in:
GormCore/GormFilesOwner.h
Description forthcoming.

Instance Variables

Method summary

takeClassFrom: 

- (void) takeClassFrom: (id)sender;
Description forthcoming.



Instance Variables for GormFilesOwnerInspector Class

browser

@protected NSBrowser* browser;
Description forthcoming.

classes

@protected NSMutableArray* classes;
Description forthcoming.

hasConnections

@protected BOOL hasConnections;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/OrderedSymbolDeclarations.plist0000644000175000017500000003462414360755340024216 0ustar heronheron{ "(Gorm)" = ( "-connectSource", "-connectDestination", "-displayConnectionBetween:and:", "-isConnecting", "-stopConnecting", "-preferencesPanel:", "-copy:", "-cut:", "-paste:", "-delete:", "-selectAllItems:", "-setName:", "-inspector:", "-palettes:", "-loadPalette:", "-palettesManager", "-inspectorsManager", "-pluginManager", "-testInterface:", "-endTesting:", "-loadSound:", "-loadImage:", "-groupSelectionInSplitView:", "-groupSelectionInBox:", "-groupSelectionInScrollView:", "-ungroup:", "-classManager", "-classMenu" ); "(GormServer)" = ( "-addClass:", "-deleteClass:" ); "(GormWrapperBuilder)" = ( "-buildFileWrapperDictionaryWithDocument:", "-buildFileWrapperWithDocument:" ); "(GormWrapperLoader)" = ( "-loadFileWrapper:withDocument:" ); "GSClassSwapper(GormCustomClassAdditions)" = ( "+setIsInInterfaceBuilder:", "-isInInterfaceBuilder" ); "GSNibItem(GormAdditions)" = ( "-initWithClassName:", "-initWithClassName:frame:", "-className" ); GormBoxEditor = ( "-destroyAndListSubviews" ); GormClassEditor = ( "-initWithDocument:", "+classEditorForDocument:", "-setSelectedClassName:", "-selectedClassName", "-selectClassWithObject:editClass:", "-selectClassWithObject:", "-selectClass:editClass:", "-selectClass:", "-currentSelectionIsClass", "-editClass", "-addAttributeToClass", "-deleteSelection", "-fileTypes", "-reloadData", "-isEditing", "-instantiateClass:", "-createSubclass:", "-loadClass:", "-createClassFiles:", "-removeClass:" ); GormClassInspector = ( "-addAction:", "-removeAction:", "-addOutlet:", "-removeOutlet:", "-select:", "-searchForClass:", "-selectClass:", "-_currentClass", "-_refreshView", "-handleNotification:", "-changeClassName:", "-selectAction:", "-selectOutlet:" ); GormClassManager = ( "-initWithDocument:", "-addAction:forObject:", "-addOutlet:forObject:", "-allActionsForClassNamed:", "-allActionsForObject:", "-extraActionsForObject:", "-allOutletsForClassNamed:", "-allOutletsForObject:", "-extraOutletsForObject:", "-allClassNames", "-removeAction:forObject:", "-removeOutlet:forObject:", "-removeAction:fromClassNamed:", "-removeOutlet:fromClassNamed:", "-addOutlet:forClassNamed:", "-addAction:forClassNamed:", "-addActions:forClassNamed:", "-addOutlets:forClassNamed:", "-addNewActionToClassNamed:", "-addNewOutletToClassNamed:", "-replaceAction:withAction:forClassNamed:", "-replaceOutlet:withOutlet:forClassNamed:", "-renameClassNamed:newName:", "-removeClassNamed:", "-addClassWithSuperClassName:", "-subClassesOf:", "-allSubclassesOf:", "-customSubClassesOf:", "-allCustomSubclassesOf:", "-allCustomClassNames", "-addClassNamed:withSuperClassNamed:withActions:withOutlets:", "-addClassNamed:withSuperClassNamed:withActions:withOutlets:isCustom:", "-setSuperClassNamed:forClassNamed:", "-parentOfClass:", "-superClassNameForClassNamed:", "-isSuperclass:linkedToClass:", "-dictionaryForClassNamed:", "-uniqueClassNameFrom:", "-isRootClass:", "-outletExists:onClassNamed:", "-actionExists:onClassNamed:", "-isCustomClass:", "-isNonCustomClass:", "-isCategoryForClass:", "-isKnownClass:", "-isAction:ofClass:", "-isOutlet:ofClass:", "-allSuperClassesOf:", "-canInstantiateClassNamed:", "-customClassForObject:", "-customClassForName:", "-setCustomClass:forName:", "-removeCustomClassForName:", "-customClassMap", "-setCustomClassMap:", "-isCustomClassMapEmpty", "-nonCustomSuperClassOf:", "-isAction:onCategoryForClassNamed:", "-classNameForObject:", "-findClassByName:", "-makeSourceAndHeaderFilesForClass:withName:and:", "-parseHeader:", "-saveToFile:", "-data", "-nibData", "-loadFromFile:", "-loadCustomClasses:", "-loadCustomClassesWithData:", "-loadCustomClassesWithDict:", "-loadNibFormatCustomClassesWithData:", "-loadNibFormatCustomClassesWithDict:" ); GormClassPanelController = ( "-initWithTitle:classList:", "-okButton:", "-browserAction:", "-runModal" ); GormClassProxy = ( "-initWithClassName:", "-className", "-inspectorClassName", "-connectInspectorClassName", "-sizeInspectorClassName" ); GormConnectionInspector = ( "-updateButtons" ); GormCustomClassInspector = ( "-select:" ); GormCustomView = ( "-setClassName:", "-className" ); GormDocument = ( "-handleNotification:", "-isActive", "-objectIsVisibleAtLaunch:", "-objectIsDeferred:", "-retrieveObjectsForParent:recursively:", "-setDocumentActive:", "-setObject:isVisibleAtLaunch:", "-setObject:isDeferred:", "-window", "-isTopLevelObject:", "-closeAllEditors", "-createResourceManagers", "-resourceManagers", "-resourceManagerForPasteboard:", "-changeToTopLevelEditorAcceptingTypes:andFileType:", "-changeToViewWithTag:", "-viewWithTag:", "-allManagedPboardTypes", "-openEditorForObject:withParentObject:", "-translate:", "-exportStrings:", "-classManager", "-createSubclass:", "-instantiateClass:", "-createClassFiles:", "-addAttributeToClass:", "-remove:", "-selectClass:", "-selectClass:editClass:", "-classIsSelected", "-removeAllInstancesOfClass:", "-openSound:", "-openImage:", "-rebuildObjToNameMapping", "-removeConnectionsWithLabel:forClassNamed:isAction:", "-removeConnectionsForClassNamed:", "-renameConnectionsForClassNamed:toName:", "-refreshConnectionsForClassNamed:", "-loadClass:", "-setServicesMenu:", "-servicesMenu", "-setFontMenu:", "-fontMenu", "-setWindowsMenu:", "-windowsMenu", "-setRecentDocumentsMenu:", "-recentDocumentsMenu", "-fontManager", "-firstResponder", "-arrangeSelectedObjects:", "-alignSelectedObjects:", "-windowAndRect:forObject:", "-setSCMWrapper:", "-scmWrapper", "-images", "-sounds", "-setImages:", "-setSounds:", "-filesOwner", "-filePrefsManager", "-visibleWindows", "-deferredWindows", "-setDocumentOpen:", "-isDocumentOpen", "-setInfoData:", "-infoData", "-setOlderArchive:", "-isOlderArchive", "-deactivateEditors", "-reactivateEditors", "-nameForObject:", "-objectForName:", "-objects", "-addConnector:" ); "GormDocument(MenuValidation)" = ( "-isEditingObjects", "-isEditingImages", "-isEditingSounds", "-isEditingClasses" ); GormDocumentController = ( "-buildDocumentForType:", "-openDocumentWithContentsOfURL:" ); GormDocumentWindow = ( "-setDocument:" ); GormFilePrefsManager = ( "-showIncompatibilities:", "-selectTargetVersion:", "-selectArchiveType:", "-loadFromData:", "-loadFromFile:", "-data", "-nibDataWithOpenItems:", "-saveToFile:", "-loadProfile:", "-version", "-targetVersionName", "-archiveTypeName", "-isLatest", "-setClassVersions", "-restoreClassVersions", "-versionOfClass:", "-setFileTypeName:", "-fileTypeName", "+currentVersion" ); GormFilesOwner = ( "-className", "-setClassName:" ); GormFilesOwnerInspector = ( "-takeClassFrom:" ); GormFontViewController = ( "+sharedGormFontViewController", "-convertFont:", "-selectFont:", "-view" ); GormGenericEditor = ( "+editorForDocument:", "+setEditor:forDocument:", "-selectObjects:", "-wantsSelection", "-copySelection", "-deleteSelection", "-pasteInSelection", "-refreshCells", "-closeSubeditors", "-window", "-addObject:", "-refreshCells", "-removeObject:", "-activate", "-initWithObject:inDocument:", "-close", "-closeSubeditors", "-containsObject:", "-copySelection", "-deleteSelection", "-document", "-editedObject", "-openSubeditorForObject:", "-orderFront", "-pasteInSelection", "-rectForObject:", "-objects", "-isOpened", "-fileTypes" ); "GormGenericEditor(PrivateMethods)" = ( "-willCloseDocument:", "-groupSelectionInScrollView", "-groupSelectionInSplitView", "-groupSelectionInBox", "-groupSelectionInView", "-groupSelectionInMatrix", "-ungroup", "-setEditor:forDocument:", "-changeSelection:" ); GormImage = ( "+imageForPath:", "+imageForPath:inWrapper:", "+imageForData:withFileName:inWrapper:", "-image", "-normalImage" ); GormInspectorsManager = ( "-panel", "-setClassInspector", "-setCurrentInspector:", "-updateSelection" ); GormInternalViewEditor = ( "-destroyAndListSubviews", "-changeFont:" ); GormNSPanel = ( "-_setStyleMask:", "-_styleMask", "-_setReleasedWhenClosed:", "-_isReleasedWhenClosed", "-autoPositionMask", "-setAutoPositionMask:" ); GormNSWindow = ( "-_setStyleMask:", "-_styleMask", "-_setReleasedWhenClosed:", "-_isReleasedWhenClosed", "-autoPositionMask", "-setAutoPositionMask:" ); GormObjectEditor = ( "+setEditor:forDocument:", "-draggedImage:endedAt:deposited:", "-draggingSourceOperationMaskForLocal:", "-acceptsTypeFromArray:", "-makeSelectionVisible:", "-resetObject:" ); GormObjectInspector = ( "-update:" ); GormObjectProxy = ( "-setClassName:" ); GormOutletActionHolder = ( "-initWithName:", "-getName", "-setName:" ); GormOutlineView = ( "-attributeOffset", "-setAttributeOffset:", "-itemBeingEdited", "-setItemBeingEdited:", "-isEditing", "-setIsEditing:", "-actionColumn", "-setActionColumn:", "-outletColumn", "-setOutletColumn:", "-menuItem", "-setMenuItem:", "-editType", "-removeItemAtRow:", "-reset", "-selectRow:" ); GormPalettesManager = ( "-loadPalette:", "-openPalette:", "-panel", "-setCurrentPalette:", "-importClasses:withDictionary:", "-importedClasses", "-importImages:withBundle:", "-importedImages", "-importSounds:withBundle:", "-importedSounds", "-substituteClasses" ); GormPlacementHint = ( "-initWithBorder:position:validityStart:validityEnd:frame:", "-rectWithHalfDistance:", "-distanceToFrame:", "-position", "-start", "-end", "-frame", "-border" ); GormPlugin = ( "-registerDocumentTypeName:humanReadableName:forExtensions:" ); GormPluginManager = ( "-loadPlugin:", "-openPlugin:" ); GormResource = ( "+resourceForPath:", "+resourceForPath:inWrapper:", "-initWithPath:", "-initWithPath:inWrapper:", "-initWithName:path:", "-initWithName:path:inWrapper:", "-initWithData:withFileName:inWrapper:", "-setName:", "-name", "-setSystemResource:", "-isSystemResource", "-setInWrapper:", "-isInWrapper", "-setData:", "-data", "-isEqual:" ); GormResourceEditor = ( "-draggedImage:endedAt:deposited:", "-draggingSourceOperationMaskForLocal:", "-refreshCells", "-placeHolderWithPath:", "-pbTypes", "-resourceType", "-addSystemResources" ); GormScrollViewAttributesInspector = ( "-colorSelected:", "-verticalSelected:", "-horizontalSelected:", "-verticalRuler:", "-horizontalRuler:", "-borderSelected:" ); GormSetNameController = ( "-runAsModal", "-textField", "-cancelHit:", "-okHit:" ); GormSound = ( "+soundForPath:", "+soundForPath:inWrapper:", "+soundForData:withFileName:inWrapper:" ); GormSoundInspector = ( "-stop:", "-play:", "-pause:", "-record:" ); GormSoundView = ( "-setSound:", "-sound" ); GormSplitViewEditor = ( "-destroyAndListSubviews" ); GormViewEditor = ( "-activate", "-initWithObject:inDocument:", "-close", "-deactivate", "-document", "-editedObject", "-detachSubviews", "-postDraw:", "-parent", "-selection", "-makeSelectionVisible:", "-isOpened", "-canBeOpened", "-setOpened:", "-frameDidChange:" ); "GormViewEditor(EditingAdditions)" = ( "-editTextField:withEvent:" ); "GormViewEditor(IntelligentPlacement)" = ( "-initializeResizingInFrame:withKnob:", "-updateResizingWithFrame:andEvent:andPlacementInfo:", "-validateFrame:withEvent:andPlacementInfo:" ); "GormViewEditor(WindowAndRect)" = ( "-windowAndRect:forObject:" ); GormViewWindow = ( "-initWithView:", "-view", "-setView:" ); GormViewWithContentViewEditor = ( "-postDrawForView:", "-groupSelectionInSplitView", "-groupSelectionInBox", "-groupSelectionInMatrix", "-groupSelectionInView", "-ungroup", "-pasteInView:" ); GormViewWithSubviewsEditor = ( "-handleMouseOnKnob:ofView:withEvent:", "-handleMouseOnView:withEvent:", "-setOpenedSubeditor:", "-openParentEditor", "-makeSubeditorResign", "-silentlyResetSelection", "-selectObjects:", "-copySelection", "-closeSubeditors", "-deactivateSubeditors", "-changeFont:" ); GormWindowEditor = ( "-acceptsTypeFromArray:", "-activate", "-initWithObject:inDocument:", "-changeFont:", "-close", "-closeSubeditors", "-deactivate", "-deleteSelection", "-document", "-draggedImage:endedAt:deposited:", "-draggingSourceOperationMaskForLocal:", "-makeSelectionVisible:", "-openSubeditorForObject:", "-orderFront", "-pasteInSelection", "-resetObject:" ); GormWrapperBuilder = ( "+fileType" ); GormWrapperBuilderFactory = ( "+sharedWrapperBuilderFactory", "+registerWrapperBuilderClass:", "-wrapperBuilderForType:" ); GormWrapperLoader = ( "+fileType", "-saveSCMDirectory:" ); GormWrapperLoaderFactory = ( "+sharedWrapperLoaderFactory", "+registerWrapperLoaderClass:", "-wrapperLoaderForType:" ); "IBResourceManager(GormAdditions)" = ( "+registerForAllPboardTypes:inDocument:" ); "NSCell(GormAdditions)" = ( "-setUpFieldEditorAttributes:" ); "NSClassSwapper(GormCustomClassAdditions)" = ( "+setIsInInterfaceBuilder:", "-isInInterfaceBuilder" ); "NSColorWell(GormExtensions)" = ( "-setColorWithoutAction:" ); "NSDateFormatter(GormAdditions)" = ( "+formatCount", "+formatAtIndex:", "+indexOfFormat:", "+defaultFormat", "+defaultFormatValue" ); "NSFontManager(GormExtensions)" = ( "-sendAction" ); "NSImage(GormNSImageAddition)" = ( "-setArchiveByName:", "-archiveByName" ); "NSNumberFormatter(GormAdditions)" = ( "+formatCount", "+formatAtIndex:", "+positiveFormatAtIndex:", "+zeroFormatAtIndex:", "+negativeFormatAtIndex:", "+positiveValueAtIndex:", "+negativeValueAtIndex:", "+indexOfFormat:", "+defaultFormat", "+defaultFormatValue", "-zeroFormat" ); "NSObject(GormAdditions)" = ( "-allocSubstitute", "-imageForViewer" ); "NSObject(GormOutlineViewDataSource)" = ( "-outlineView:actionsForItem:", "-outlineView:outletsForItem:", "-outlineView:addAction:forClass:", "-outlineView:addOutlet:forClass:", "-outlineView:addNewActionForClass:", "-outlineView:addNewOutletForClass:" ); "NSObject(GormOutlineViewDelegate)" = ( "-outlineView:shouldDeleteItem:" ); "NSView(GormExtensions)" = ( "-superviews", "-hasSuperviewKindOfClass:", "-moveViewToFront:", "-moveViewToBack:" ); "NSWindowTemplate(Private)" = ( "-setBaseWindowClass:" ); }gorm-1.3.1/Documentation/GormCore/GormPrivate.gsdoc0000644000175000017500000002675714333120703021313 0ustar heronheron GormPrivate documentation Software documentation for the GormClassProxy class GormCore/GormPrivate.h Description forthcoming. Description forthcoming. Description forthcoming. className Description forthcoming. connectInspectorClassName Description forthcoming. initWithClassName: n Description forthcoming. inspectorClassName Description forthcoming. sizeInspectorClassName Description forthcoming. Software documentation for the GormObjectProxy class GormCore/GormPrivate.h Description forthcoming. setClassName: className Description forthcoming. Software documentation for the GSClassSwapper(GormCustomClassAdditions) category GormCore/GormPrivate.h Description forthcoming. setIsInInterfaceBuilder: flag Description forthcoming. isInInterfaceBuilder Description forthcoming. Software documentation for the GSNibItem(GormAdditions) category GormCore/GormPrivate.h Description forthcoming. className Description forthcoming. initWithClassName: className Description forthcoming. initWithClassName: className frame: frame Description forthcoming. Software documentation for the IBResourceManager(GormAdditions) category GormCore/GormPrivate.h Description forthcoming. registerForAllPboardTypes: editor inDocument: doc Description forthcoming. Software documentation for the NSClassSwapper(GormCustomClassAdditions) category GormCore/GormPrivate.h Description forthcoming. setIsInInterfaceBuilder: flag Description forthcoming. isInInterfaceBuilder Description forthcoming. Software documentation for the NSDateFormatter(GormAdditions) category GormCore/GormPrivate.h Description forthcoming. defaultFormat Description forthcoming. defaultFormatValue Description forthcoming. formatAtIndex: index Description forthcoming. formatCount Description forthcoming. indexOfFormat: format Description forthcoming. Software documentation for the NSNumberFormatter(GormAdditions) category GormCore/GormPrivate.h Description forthcoming. defaultFormat Description forthcoming. defaultFormatValue Description forthcoming. formatAtIndex: index Description forthcoming. formatCount Description forthcoming. indexOfFormat: format Description forthcoming. negativeFormatAtIndex: index Description forthcoming. negativeValueAtIndex: index Description forthcoming. positiveFormatAtIndex: index Description forthcoming. positiveValueAtIndex: index Description forthcoming. zeroFormatAtIndex: index Description forthcoming. zeroFormat Description forthcoming. Software documentation for the NSObject(GormAdditions) informal protocol GormCore/GormPrivate.h Description forthcoming. allocSubstitute Description forthcoming. imageForViewer Description forthcoming. GormPrivate variables

Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming.
gorm-1.3.1/Documentation/GormCore/GormPlacementInfo.gsdoc0000644000175000017500000001714214333120703022411 0ustar heronheron GormPlacementInfo documentation Software documentation for the GormPlacementHint class GormCore/GormPlacementInfo.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. border Description forthcoming. distanceToFrame: frame Description forthcoming. end Description forthcoming. frame Description forthcoming. initWithBorder: border position: position validityStart: start validityEnd: end frame: frame Description forthcoming. position Description forthcoming. rectWithHalfDistance: halfDistance Description forthcoming. start Description forthcoming. Software documentation for the GormPlacementInfo class GormCore/GormPlacementInfo.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. GormPlacementInfo types

Description forthcoming.
gorm-1.3.1/Documentation/GormCore/GormNSPanel.html0000644000175000017500000001343214333120703021030 0ustar heronheron GormNSPanel class documentation

GormNSPanel class documentation

Authors

Generated by heron

Software documentation for the GormNSPanel class

GormNSPanel : NSPanel

Declared in:
GormCore/GormNSPanel.h
Description forthcoming.

Instance Variables

Method summary

_isReleasedWhenClosed 

- (BOOL) _isReleasedWhenClosed;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_setReleasedWhenClosed: 

- (void) _setReleasedWhenClosed: (BOOL)flag;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_setStyleMask: 

- (void) _setStyleMask: (unsigned int)newStyleMask;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_styleMask 

- (unsigned int) _styleMask;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

autoPositionMask 

- (unsigned int) autoPositionMask;
Description forthcoming.

setAutoPositionMask: 

- (void) setAutoPositionMask: (unsigned int)mask;
Description forthcoming.



Instance Variables for GormNSPanel Class

_gormReleasedWhenClosed

@protected BOOL _gormReleasedWhenClosed;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_gormStyleMask

@protected unsigned int _gormStyleMask;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

autoPositionMask

@protected NSUInteger autoPositionMask;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormClassManager.gsdoc0000644000175000017500000004533114333120703022226 0ustar heronheron GormClassManager class documentation Software documentation for the GormClassManager class GormCore/GormClassManager.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. actionExists: action onClassNamed: className Description forthcoming. addAction: action forClassNamed: className Description forthcoming. addAction: anAction forObject: anObject Description forthcoming. addActions: actions forClassNamed: className Description forthcoming. addClassNamed: className withSuperClassNamed: superClassName withActions: actions withOutlets: outlets Description forthcoming. addClassNamed: className withSuperClassNamed: superClassName withActions: actions withOutlets: outlets isCustom: isCustom Description forthcoming. addClassWithSuperClassName: name Description forthcoming. addNewActionToClassNamed: name Description forthcoming. addNewOutletToClassNamed: name Description forthcoming. addOutlet: outlet forClassNamed: className Description forthcoming. addOutlet: outlet forObject: anObject Description forthcoming. addOutlets: outlets forClassNamed: className Description forthcoming. allActionsForClassNamed: className Description forthcoming. allActionsForObject: obj Description forthcoming. allClassNames Description forthcoming. allCustomClassNames Description forthcoming. allCustomSubclassesOf: superClass Description forthcoming. allOutletsForClassNamed: className Description forthcoming. allOutletsForObject: obj Description forthcoming. allSubclassesOf: superClass Description forthcoming. allSuperClassesOf: className Description forthcoming. canInstantiateClassNamed: className Description forthcoming. classNameForObject: object Description forthcoming. customClassForName: name Description forthcoming. customClassForObject: object Description forthcoming. customClassMap Description forthcoming. customSubClassesOf: superclass Description forthcoming. data Description forthcoming. dictionaryForClassNamed: className Description forthcoming. extraActionsForObject: anObject Description forthcoming. extraOutletsForObject: anObject Description forthcoming. findClassByName: name Description forthcoming. initWithDocument: aDocument Description forthcoming. isAction: name ofClass: className Description forthcoming. isAction: actionName onCategoryForClassNamed: className Description forthcoming. isCategoryForClass: className Description forthcoming. isCustomClass: className Description forthcoming. isCustomClassMapEmpty Description forthcoming. isKnownClass: className Description forthcoming. isNonCustomClass: className Description forthcoming. isOutlet: name ofClass: className Description forthcoming. isRootClass: className Description forthcoming. isSuperclass: superclass linkedToClass: subclass Description forthcoming. loadCustomClasses: path Description forthcoming. loadCustomClassesWithData: data Description forthcoming. loadCustomClassesWithDict: dict Description forthcoming. loadFromFile: path Description forthcoming. loadNibFormatCustomClassesWithData: data Description forthcoming. loadNibFormatCustomClassesWithDict: dict Description forthcoming. makeSourceAndHeaderFilesForClass: className withName: sourcePath and: headerPath Description forthcoming. nibData Description forthcoming. nonCustomSuperClassOf: className Description forthcoming. outletExists: outlet onClassNamed: className Description forthcoming. parentOfClass: aClass Description forthcoming. parseHeader: headerPath Description forthcoming. removeAction: anAction forObject: anObject Description forthcoming. removeAction: anAction fromClassNamed: className Description forthcoming. removeClassNamed: className Description forthcoming. removeCustomClassForName: name Description forthcoming. removeOutlet: anOutlet forObject: anObject Description forthcoming. removeOutlet: anOutlet fromClassNamed: className Description forthcoming. renameClassNamed: oldName newName: newName Description forthcoming. replaceAction: oldAction withAction: aNewAction forClassNamed: className Description forthcoming. replaceOutlet: oldOutlet withOutlet: aNewOutlet forClassNamed: className Description forthcoming. saveToFile: path Description forthcoming. setCustomClass: className forName: name Description forthcoming. setCustomClassMap: dict Description forthcoming. setSuperClassNamed: superclass forClassNamed: subclass Description forthcoming. subClassesOf: superclass Description forthcoming. superClassNameForClassNamed: className Description forthcoming. uniqueClassNameFrom: name Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormOutlineView.gsdoc0000644000175000017500000002646314333120703022145 0ustar heronheron GormOutlineView greg_casamento@yahoo.com The NSOutlineView subclass in gorm which handles outlet/action editing 2001 Free Software Foundation, Inc. Software documentation for the GormOutletActionHolder class GormCore/GormOutlineView.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. getName Description forthcoming. initWithName: name Description forthcoming. setName: name Description forthcoming. Software documentation for the GormOutlineView class GormCore/GormOutlineView.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. actionColumn Description forthcoming. attributeOffset Description forthcoming. editType Description forthcoming. isEditing Description forthcoming. itemBeingEdited Description forthcoming. menuItem Description forthcoming. outletColumn Description forthcoming. removeItemAtRow: row Description forthcoming. reset Description forthcoming. selectRow: rowIndex Description forthcoming. setActionColumn: ac Description forthcoming. setAttributeOffset: offset Description forthcoming. setIsEditing: flag Description forthcoming. setItemBeingEdited: item Description forthcoming. setMenuItem: item Description forthcoming. setOutletColumn: oc Description forthcoming. Software documentation for the NSObject(GormOutlineViewDataSource) informal protocol GormCore/GormOutlineView.h Description forthcoming. outlineView: ov actionsForItem: item Description forthcoming. outlineView: anOutlineView addAction: action forClass: item Description forthcoming. outlineView: anOutlineView addNewActionForClass: item Description forthcoming. outlineView: anOutlineView addNewOutletForClass: item Description forthcoming. outlineView: anOutlineView addOutlet: outlet forClass: item Description forthcoming. outlineView: ov outletsForItem: item Description forthcoming. Software documentation for the NSObject(GormOutlineViewDelegate) informal protocol GormCore/GormOutlineView.h Description forthcoming. outlineView: ov shouldDeleteItem: item Description forthcoming. GormOutlineView types

Description forthcoming.
gorm-1.3.1/Documentation/GormCore/GormWrapperLoader.gsdoc0000644000175000017500000000560414333120703022434 0ustar heronheron GormWrapperLoader documentation Software documentation for the GormWrapperLoader class GormCore/GormWrapperLoader.h GormWrapperLoader Description forthcoming. Description forthcoming. fileType Description forthcoming. saveSCMDirectory: fileWrappers Description forthcoming. Software documentation for the GormWrapperLoaderFactory class GormCore/GormWrapperLoader.h Description forthcoming. registerWrapperLoaderClass: aClass Description forthcoming. sharedWrapperLoaderFactory Description forthcoming. wrapperLoaderForType: type Description forthcoming. Software documentation for the GormWrapperLoader protocol GormCore/GormWrapperLoader.h Description forthcoming. loadFileWrapper: wrapper withDocument: document Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormResourceManager.html0000644000175000017500000000177614333120703022622 0ustar heronheron GormResourceManager class documentation

GormResourceManager class documentation

Authors

Generated by heron

Software documentation for the GormResourceManager class

GormResourceManager : IBResourceManager

Declared in:
GormCore/GormResourceManager.h
Description forthcoming.

gorm-1.3.1/Documentation/GormCore/GormNSWindow.html0000644000175000017500000001347214333120703021244 0ustar heronheron GormNSWindow class documentation

GormNSWindow class documentation

Authors

Generated by heron

Software documentation for the GormNSWindow class

GormNSWindow : NSWindow

Declared in:
GormCore/GormNSWindow.h
Description forthcoming.

Instance Variables

Method summary

_isReleasedWhenClosed 

- (BOOL) _isReleasedWhenClosed;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_setReleasedWhenClosed: 

- (void) _setReleasedWhenClosed: (BOOL)flag;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_setStyleMask: 

- (void) _setStyleMask: (unsigned int)newStyleMask;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_styleMask 

- (unsigned int) _styleMask;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

autoPositionMask 

- (unsigned int) autoPositionMask;
Description forthcoming.

setAutoPositionMask: 

- (void) setAutoPositionMask: (unsigned int)mask;
Description forthcoming.



Instance Variables for GormNSWindow Class

_gormReleasedWhenClosed

@protected BOOL _gormReleasedWhenClosed;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_gormStyleMask

@protected unsigned int _gormStyleMask;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

autoPositionMask

@protected NSUInteger autoPositionMask;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormClassInspector.html0000644000175000017500000002737514333120703022477 0ustar heronheron GormClassInspector

GormClassInspector

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
allow user to select custom classes

Copyright: (C) 2002 Free Software Foundation, Inc.

Software documentation for the GormClassInspector class

GormClassInspector : IBInspector

Declared in:
GormCore/GormClassInspector.h
Description forthcoming.

Instance Variables

Method summary

_currentClass 

- (NSString*) _currentClass;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_refreshView 

- (void) _refreshView;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

addAction: 

- (void) addAction: (id)sender;
Description forthcoming.

addOutlet: 

- (void) addOutlet: (id)sender;
Description forthcoming.

changeClassName: 

- (void) changeClassName: (id)sender;
Description forthcoming.

handleNotification: 

- (void) handleNotification: (NSNotification*)notification;
Description forthcoming.

removeAction: 

- (void) removeAction: (id)sender;
Description forthcoming.

removeOutlet: 

- (void) removeOutlet: (id)sender;
Description forthcoming.

searchForClass: 

- (void) searchForClass: (id)sender;
Description forthcoming.

select: 

- (void) select: (id)sender;
Description forthcoming.

selectAction: 

- (void) selectAction: (id)sender;
Description forthcoming.

selectClass: 

- (void) selectClass: (id)sender;
Description forthcoming.

selectOutlet: 

- (void) selectOutlet: (id)sender;
Description forthcoming.



Instance Variables for GormClassInspector Class

actionData

@protected id actionData;
Description forthcoming.

actionTable

@protected id actionTable;
Description forthcoming.

addAction

@protected id addAction;
Description forthcoming.

addOutlet

@protected id addOutlet;
Description forthcoming.

classField

@protected id classField;
Description forthcoming.

classManager

@protected GormClassManager* classManager;
Description forthcoming.

currentClass

@protected NSString* currentClass;
Description forthcoming.

outletData

@protected id outletData;
Description forthcoming.

outletTable

@protected id outletTable;
Description forthcoming.

parentClass

@protected id parentClass;
Description forthcoming.

parentClassData

@protected id parentClassData;
Description forthcoming.

removeAction

@protected id removeAction;
Description forthcoming.

removeOutlet

@protected id removeOutlet;
Description forthcoming.

search

@protected id search;
Description forthcoming.

searchText

@protected id searchText;
Description forthcoming.

selectClass

@protected id selectClass;
Description forthcoming.

tabView

@protected id tabView;
Description forthcoming.

theobject

@protected id theobject;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormSoundView.html0000644000175000017500000000522414333120703021453 0ustar heronheron GormSoundView

GormSoundView

Authors

Gregory John Casamento (greg_casamento@yahoo.com)

Copyright: (C) 2004 Free Software Foundation, Inc.

Software documentation for the GormSoundView class

GormSoundView : NSView

Declared in:
GormCore/GormSoundView.h
Description forthcoming.

Instance Variables

Method summary

setSound: 

- (void) setSound: (NSSound*)sound;
Description forthcoming.

sound 

- (NSSound*) sound;
Description forthcoming.



Instance Variables for GormSoundView Class

_sound

@protected NSSound* _sound;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.





gorm-1.3.1/Documentation/GormCore/GormViewWithSubviewsEditor.html0000644000175000017500000002165214333120703024200 0ustar heronheron GormViewWithSubviewsEditor class documentation

GormViewWithSubviewsEditor class documentation

Authors

Generated by heron

Software documentation for the GormViewWithSubviewsEditor class

GormViewWithSubviewsEditor : GormViewEditor

Declared in:
GormCore/GormViewWithSubviewsEditor.h
Conforms to:
IBSelectionOwners
Description forthcoming.

Instance Variables

Method summary

changeFont: 

- (void) changeFont: (id)sender;
Description forthcoming.

closeSubeditors 

- (void) closeSubeditors;
Description forthcoming.

copySelection 

- (void) copySelection;
Description forthcoming.

deactivateSubeditors 

- (void) deactivateSubeditors;
Description forthcoming.

handleMouseOnKnob: ofView: withEvent: 

- (void) handleMouseOnKnob: (IBKnobPosition)knob ofView: (GormViewEditor*)view withEvent: (NSEvent*)theEvent;
Description forthcoming.

handleMouseOnView: withEvent: 

- (void) handleMouseOnView: (GormViewEditor*)view withEvent: (NSEvent*)theEvent;
Description forthcoming.

makeSubeditorResign 

- (void) makeSubeditorResign;
Description forthcoming.

openParentEditor 

- (void) openParentEditor;
Description forthcoming.

selectObjects: 

- (void) selectObjects: (NSArray*)objects;
Description forthcoming.

setOpenedSubeditor: 

- (void) setOpenedSubeditor: (GormViewWithSubviewsEditor*)newEditor;
Description forthcoming.

silentlyResetSelection 

- (void) silentlyResetSelection;
Description forthcoming.



Instance Variables for GormViewWithSubviewsEditor Class

_displaySelection

@protected BOOL _displaySelection;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_followGuideLine

@protected BOOL _followGuideLine;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

opened

@protected BOOL opened;
Description forthcoming.

openedSubeditor

@protected GormViewWithSubviewsEditor* openedSubeditor;
Description forthcoming.

selection

@protected NSMutableArray* selection;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormObjectInspector.gsdoc0000644000175000017500000000623014333120703022756 0ustar heronheron GormObjectInspector class documentation Software documentation for the GormObjectInspector class GormCore/GormObjectInspector.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. update: sender Description forthcoming. GormObjectInspector variables

Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming.
gorm-1.3.1/Documentation/GormCore/GormHelpInspector.gsdoc0000644000175000017500000000150614333120703022441 0ustar heronheron GormHelpInspector class documentation Software documentation for the GormHelpInspector class GormCore/GormHelpInspector.h Description forthcoming. Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormImageEditor.gsdoc0000644000175000017500000000123314333120703022050 0ustar heronheron GormImageEditor class documentation Software documentation for the GormImageEditor class GormCore/GormImageEditor.h Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormFontViewController.html0000644000175000017500000000764314333120703023344 0ustar heronheron GormFontViewController class documentation

GormFontViewController class documentation

Authors

Generated by heron

Software documentation for the GormFontViewController class

GormFontViewController : NSObject

Declared in:
GormCore/GormFontViewController.h
Description forthcoming.

Instance Variables

Method summary

sharedGormFontViewController 

+ (GormFontViewController*) sharedGormFontViewController;
Description forthcoming.

convertFont: 

- (NSFont*) convertFont: (NSFont*)aFont;
Description forthcoming.

selectFont: 

- (void) selectFont: (id)sender;
Description forthcoming.

view 

- (id) view;
Description forthcoming.



Instance Variables for GormFontViewController Class

encodeButton

@protected id encodeButton;
Description forthcoming.

fontSelector

@protected id fontSelector;
Description forthcoming.

view

@protected id view;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormDocumentWindow.gsdoc0000644000175000017500000000274014333120703022631 0ustar heronheron GormDocumentWindow class documentation Software documentation for the GormDocumentWindow class GormCore/GormDocumentWindow.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. setDocument: document Description forthcoming. gorm-1.3.1/Documentation/GormCore/ClassesTOC.gsdoc0000644000175000017500000000056014360755340021012 0ustar heronheron Classes gorm-1.3.1/Documentation/GormCore/GormDocumentController.html0000644000175000017500000000547014333120703023355 0ustar heronheron GormDocumentController class documentation

GormDocumentController class documentation

Authors

Generated by heron

Software documentation for the GormDocumentController class

GormDocumentController : NSDocumentController

Declared in:
GormCore/GormDocumentController.h
Description forthcoming.
Method summary

buildDocumentForType: 

- (void) buildDocumentForType: (GormDocumentType)documentType;
Description forthcoming.

openDocumentWithContentsOfURL: 

- (id) openDocumentWithContentsOfURL: (NSURL*)url;
Description forthcoming.

GormDocumentController types

GormDocumentType

typedef enum ... GormDocumentType;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/GormSoundEditor.gsdoc0000644000175000017500000000123314333120703022116 0ustar heronheron GormSoundEditor class documentation Software documentation for the GormSoundEditor class GormCore/GormSoundEditor.h Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormPlugin.gsdoc0000644000175000017500000000177314333120703021126 0ustar heronheron GormPlugin class documentation Software documentation for the GormPlugin class GormCore/GormPlugin.h Description forthcoming. registerDocumentTypeName: name humanReadableName: hrName forExtensions: extensions Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormInspectorsManager.gsdoc0000644000175000017500000000464114333120703023311 0ustar heronheron GormInspectorsManager class documentation Software documentation for the GormInspectorsManager class GormCore/GormInspectorsManager.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. panel Description forthcoming. setClassInspector Description forthcoming. setCurrentInspector: anObj Description forthcoming. updateSelection Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormClassManager.html0000644000175000017500000011075014333120703022071 0ustar heronheron GormClassManager class documentation

GormClassManager class documentation

Authors

Generated by heron

Software documentation for the GormClassManager class

GormClassManager : NSObject

Declared in:
GormCore/GormClassManager.h
Description forthcoming.

Instance Variables

Method summary

actionExists: onClassNamed: 

- (BOOL) actionExists: (NSString*)action onClassNamed: (NSString*)className;
Description forthcoming.

addAction: forClassNamed: 

- (void) addAction: (NSString*)action forClassNamed: (NSString*)className;
Description forthcoming.

addAction: forObject: 

- (void) addAction: (NSString*)anAction forObject: (id)anObject;
Description forthcoming.

addActions: forClassNamed: 

- (void) addActions: (NSArray*)actions forClassNamed: (NSString*)className;
Description forthcoming.

addClassNamed: withSuperClassNamed: withActions: withOutlets: 

- (BOOL) addClassNamed: (NSString*)className withSuperClassNamed: (NSString*)superClassName withActions: (NSArray*)actions withOutlets: (NSArray*)outlets;
Description forthcoming.

addClassNamed: withSuperClassNamed: withActions: withOutlets: isCustom: 

- (BOOL) addClassNamed: (NSString*)className withSuperClassNamed: (NSString*)superClassName withActions: (NSArray*)actions withOutlets: (NSArray*)outlets isCustom: (BOOL)isCustom;
Description forthcoming.

addClassWithSuperClassName: 

- (NSString*) addClassWithSuperClassName: (NSString*)name;
Description forthcoming.

addNewActionToClassNamed: 

- (NSString*) addNewActionToClassNamed: (NSString*)name;
Description forthcoming.

addNewOutletToClassNamed: 

- (NSString*) addNewOutletToClassNamed: (NSString*)name;
Description forthcoming.

addOutlet: forClassNamed: 

- (void) addOutlet: (NSString*)outlet forClassNamed: (NSString*)className;
Description forthcoming.

addOutlet: forObject: 

- (void) addOutlet: (NSString*)outlet forObject: (id)anObject;
Description forthcoming.

addOutlets: forClassNamed: 

- (void) addOutlets: (NSArray*)outlets forClassNamed: (NSString*)className;
Description forthcoming.

allActionsForClassNamed: 

- (NSArray*) allActionsForClassNamed: (NSString*)className;
Description forthcoming.

allActionsForObject: 

- (NSArray*) allActionsForObject: (id)obj;
Description forthcoming.

allClassNames 

- (NSArray*) allClassNames;
Description forthcoming.

allCustomClassNames 

- (NSArray*) allCustomClassNames;
Description forthcoming.

allCustomSubclassesOf: 

- (NSArray*) allCustomSubclassesOf: (NSString*)superClass;
Description forthcoming.

allOutletsForClassNamed: 

- (NSArray*) allOutletsForClassNamed: (NSString*)className;
Description forthcoming.

allOutletsForObject: 

- (NSArray*) allOutletsForObject: (id)obj;
Description forthcoming.

allSubclassesOf: 

- (NSArray*) allSubclassesOf: (NSString*)superClass;
Description forthcoming.

allSuperClassesOf: 

- (NSArray*) allSuperClassesOf: (NSString*)className;
Description forthcoming.

canInstantiateClassNamed: 

- (BOOL) canInstantiateClassNamed: (NSString*)className;
Description forthcoming.

classNameForObject: 

- (NSString*) classNameForObject: (id)object;
Description forthcoming.

customClassForName: 

- (NSString*) customClassForName: (NSString*)name;
Description forthcoming.

customClassForObject: 

- (NSString*) customClassForObject: (id)object;
Description forthcoming.

customClassMap 

- (NSMutableDictionary*) customClassMap;
Description forthcoming.

customSubClassesOf: 

- (NSArray*) customSubClassesOf: (NSString*)superclass;
Description forthcoming.

data 

- (NSData*) data;
Description forthcoming.

dictionaryForClassNamed: 

- (NSDictionary*) dictionaryForClassNamed: (NSString*)className;
Description forthcoming.

extraActionsForObject: 

- (NSArray*) extraActionsForObject: (id)anObject;
Description forthcoming.

extraOutletsForObject: 

- (NSArray*) extraOutletsForObject: (id)anObject;
Description forthcoming.

findClassByName: 

- (NSString*) findClassByName: (NSString*)name;
Description forthcoming.

initWithDocument: 

- (id) initWithDocument: (id)aDocument;
Description forthcoming.

isAction: ofClass: 

- (BOOL) isAction: (NSString*)name ofClass: (NSString*)className;
Description forthcoming.

isAction: onCategoryForClassNamed: 

- (BOOL) isAction: (NSString*)actionName onCategoryForClassNamed: (NSString*)className;
Description forthcoming.

isCategoryForClass: 

- (BOOL) isCategoryForClass: (NSString*)className;
Description forthcoming.

isCustomClass: 

- (BOOL) isCustomClass: (NSString*)className;
Description forthcoming.

isCustomClassMapEmpty 

- (BOOL) isCustomClassMapEmpty;
Description forthcoming.

isKnownClass: 

- (BOOL) isKnownClass: (NSString*)className;
Description forthcoming.

isNonCustomClass: 

- (BOOL) isNonCustomClass: (NSString*)className;
Description forthcoming.

isOutlet: ofClass: 

- (BOOL) isOutlet: (NSString*)name ofClass: (NSString*)className;
Description forthcoming.

isRootClass: 

- (BOOL) isRootClass: (NSString*)className;
Description forthcoming.

isSuperclass: linkedToClass: 

- (BOOL) isSuperclass: (NSString*)superclass linkedToClass: (NSString*)subclass;
Description forthcoming.

loadCustomClasses: 

- (BOOL) loadCustomClasses: (NSString*)path;
Description forthcoming.

loadCustomClassesWithData: 

- (BOOL) loadCustomClassesWithData: (NSData*)data;
Description forthcoming.

loadCustomClassesWithDict: 

- (BOOL) loadCustomClassesWithDict: (NSDictionary*)dict;
Description forthcoming.

loadFromFile: 

- (BOOL) loadFromFile: (NSString*)path;
Description forthcoming.

loadNibFormatCustomClassesWithData: 

- (BOOL) loadNibFormatCustomClassesWithData: (NSData*)data;
Description forthcoming.

loadNibFormatCustomClassesWithDict: 

- (BOOL) loadNibFormatCustomClassesWithDict: (NSDictionary*)dict;
Description forthcoming.

makeSourceAndHeaderFilesForClass: withName: and: 

- (BOOL) makeSourceAndHeaderFilesForClass: (NSString*)className withName: (NSString*)sourcePath and: (NSString*)headerPath;
Description forthcoming.

nibData 

- (NSData*) nibData;
Description forthcoming.

nonCustomSuperClassOf: 

- (NSString*) nonCustomSuperClassOf: (NSString*)className;
Description forthcoming.

outletExists: onClassNamed: 

- (BOOL) outletExists: (NSString*)outlet onClassNamed: (NSString*)className;
Description forthcoming.

parentOfClass: 

- (NSString*) parentOfClass: (NSString*)aClass;
Description forthcoming.

parseHeader: 

- (BOOL) parseHeader: (NSString*)headerPath;
Description forthcoming.

removeAction: forObject: 

- (void) removeAction: (NSString*)anAction forObject: (id)anObject;
Description forthcoming.

removeAction: fromClassNamed: 

- (void) removeAction: (NSString*)anAction fromClassNamed: (NSString*)className;
Description forthcoming.

removeClassNamed: 

- (void) removeClassNamed: (NSString*)className;
Description forthcoming.

removeCustomClassForName: 

- (void) removeCustomClassForName: (NSString*)name;
Description forthcoming.

removeOutlet: forObject: 

- (void) removeOutlet: (NSString*)anOutlet forObject: (id)anObject;
Description forthcoming.

removeOutlet: fromClassNamed: 

- (void) removeOutlet: (NSString*)anOutlet fromClassNamed: (NSString*)className;
Description forthcoming.

renameClassNamed: newName: 

- (BOOL) renameClassNamed: (NSString*)oldName newName: (NSString*)newName;
Description forthcoming.

replaceAction: withAction: forClassNamed: 

- (void) replaceAction: (NSString*)oldAction withAction: (NSString*)aNewAction forClassNamed: (NSString*)className;
Description forthcoming.

replaceOutlet: withOutlet: forClassNamed: 

- (void) replaceOutlet: (NSString*)oldOutlet withOutlet: (NSString*)aNewOutlet forClassNamed: (NSString*)className;
Description forthcoming.

saveToFile: 

- (BOOL) saveToFile: (NSString*)path;
Description forthcoming.

setCustomClass: forName: 

- (void) setCustomClass: (NSString*)className forName: (NSString*)name;
Description forthcoming.

setCustomClassMap: 

- (void) setCustomClassMap: (NSMutableDictionary*)dict;
Description forthcoming.

setSuperClassNamed: forClassNamed: 

- (BOOL) setSuperClassNamed: (NSString*)superclass forClassNamed: (NSString*)subclass;
Description forthcoming.

subClassesOf: 

- (NSArray*) subClassesOf: (NSString*)superclass;
Description forthcoming.

superClassNameForClassNamed: 

- (NSString*) superClassNameForClassNamed: (NSString*)className;
Description forthcoming.

uniqueClassNameFrom: 

- (NSString*) uniqueClassNameFrom: (NSString*)name;
Description forthcoming.



Instance Variables for GormClassManager Class

categoryClasses

@protected NSMutableArray* categoryClasses;
Description forthcoming.

classInformation

@protected NSMutableDictionary* classInformation;
Description forthcoming.

customClassMap

@protected NSMutableDictionary* customClassMap;
Description forthcoming.

customClasses

@protected NSMutableArray* customClasses;
Description forthcoming.

document

@protected id document;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormViewSizeInspector.gsdoc0000644000175000017500000000356514333120703023325 0ustar heronheron GormViewSizeInspector class documentation Software documentation for the GormViewSizeInspector class GormCore/GormViewSizeInspector.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. gorm-1.3.1/Documentation/GormCore/NSCell+GormAdditions.gsdoc0000644000175000017500000000214314333120703022712 0ustar heronheron NSCell+GormAdditions documentation Software documentation for the NSCell(GormAdditions) category GormCore/NSCell+GormAdditions.h Description forthcoming. setUpFieldEditorAttributes: textObject This methods is comes directly from NSCell.m The only additions is [textObject setUsesFontPanel: NO] We do this because we want to have control over the font panel changes. gorm-1.3.1/Documentation/GormCore/GormCustomClassInspector.gsdoc0000644000175000017500000000671614333120703024021 0ustar heronheron GormCustomClassInspector greg_casamento@yahoo.com allow user to select custom classes 2002 Free Software Foundation, Inc. Software documentation for the GormCustomClassInspector class GormCore/GormCustomClassInspector.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. select: sender Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormPluginManager.html0000644000175000017500000000626114333120703022263 0ustar heronheron GormPluginManager class documentation

GormPluginManager class documentation

Authors

Generated by heron

Software documentation for the GormPluginManager class

GormPluginManager : NSObject

Declared in:
GormCore/GormPluginManager.h
Description forthcoming.

Instance Variables

Method summary

loadPlugin: 

- (BOOL) loadPlugin: (NSString*)path;
Description forthcoming.

openPlugin: 

- (id) openPlugin: (id)sender;
Description forthcoming.



Instance Variables for GormPluginManager Class

bundles

@protected NSMutableArray* bundles;
Description forthcoming.

pluginNames

@protected NSMutableArray* pluginNames;
Description forthcoming.

plugins

@protected NSMutableArray* plugins;
Description forthcoming.

pluginsDict

@protected NSMutableDictionary* pluginsDict;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormInspectorsManager.html0000644000175000017500000001116414333120703023154 0ustar heronheron GormInspectorsManager class documentation

GormInspectorsManager class documentation

Authors

Generated by heron

Software documentation for the GormInspectorsManager class

GormInspectorsManager : IBInspectorManager

Declared in:
GormCore/GormInspectorsManager.h
Description forthcoming.

Instance Variables

Method summary

panel 

- (NSPanel*) panel;
Description forthcoming.

setClassInspector 

- (void) setClassInspector;
Description forthcoming.

setCurrentInspector: 

- (void) setCurrentInspector: (id)anObj;
Description forthcoming.

updateSelection 

- (void) updateSelection;
Description forthcoming.



Instance Variables for GormInspectorsManager Class

buttonView

@protected NSView* buttonView;
Description forthcoming.

cache

@protected NSMutableDictionary* cache;
Description forthcoming.

current

@protected int current;
Description forthcoming.

hiddenDuringTest

@protected BOOL hiddenDuringTest;
Description forthcoming.

oldInspector

@protected NSString* oldInspector;
Description forthcoming.

origFrame

@protected NSRect origFrame;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormViewSizeInspector.html0000644000175000017500000000602514333120703023164 0ustar heronheron GormViewSizeInspector class documentation

GormViewSizeInspector class documentation

Authors

Generated by heron

Software documentation for the GormViewSizeInspector class

GormViewSizeInspector : IBInspector

Declared in:
GormCore/GormViewSizeInspector.h
Description forthcoming.

Instance Variables



Instance Variables for GormViewSizeInspector Class

bottom

@protected NSButton* bottom;
Description forthcoming.

height

@protected NSButton* height;
Description forthcoming.

left

@protected NSButton* left;
Description forthcoming.

right

@protected NSButton* right;
Description forthcoming.

sizeForm

@protected NSForm* sizeForm;
Description forthcoming.

top

@protected NSButton* top;
Description forthcoming.

width

@protected NSButton* width;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormObjectEditor.html0000644000175000017500000000774514360747253022136 0ustar heronheron GormObjectEditor class documentation

GormObjectEditor class documentation

Authors

Generated by heron

Software documentation for the GormObjectEditor class

GormObjectEditor : GormGenericEditor

Declared in:
GormCore/GormObjectEditor.h
Description forthcoming.
Method summary

setEditor: forDocument: 

+ (void) setEditor: (id)editor forDocument: (id)aDocument;
Description forthcoming.

acceptsTypeFromArray: 

- (BOOL) acceptsTypeFromArray: (NSArray*)types;
Description forthcoming.

draggedImage: endedAt: deposited: 

- (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f;
Description forthcoming.

draggingSourceOperationMaskForLocal: 

- (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag;
Description forthcoming.

makeSelectionVisible: 

- (void) makeSelectionVisible: (BOOL)flag;
Description forthcoming.

resetObject: 

- (void) resetObject: (id)anObject;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/GormCustomView.gsdoc0000644000175000017500000000226314333120703021770 0ustar heronheron GormCustomView class documentation Software documentation for the GormCustomView class GormCore/GormCustomView.h Description forthcoming. Description forthcoming. className Description forthcoming. setClassName: aName Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormInternalViewEditor.html0000644000175000017500000000411714333120703023306 0ustar heronheron GormInternalViewEditor class documentation

GormInternalViewEditor class documentation

Authors

Generated by heron

Software documentation for the GormInternalViewEditor class

GormInternalViewEditor : GormViewWithContentViewEditor

Declared in:
GormCore/GormInternalViewEditor.h
Description forthcoming.
Method summary

changeFont: 

- (void) changeFont: (id)sender;
Description forthcoming.

destroyAndListSubviews 

- (NSArray*) destroyAndListSubviews;
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/GormFunctions.html0000644000175000017500000001410514333120703021476 0ustar heronheron GormFunctions documentation

GormFunctions documentation

Authors

Generated by heron

GormFunctions functions

_GSObjCMethodNamesForClass

NSArray* _GSObjCMethodNamesForClass(Class class, BOOL collect);
This method returns an array listing the names of all the instance methods available to obj, whether they belong to the class of obj or one of its superclasses.
If obj is a class, this returns the class methods.
Returns nil if obj is nil.

_GSObjCVariableNames

NSArray* _GSObjCVariableNames(Class class, BOOL collect);
This method returns an array listing the names of all the instance variables present in the instance obj, whether they belong to the class of obj or one of its superclasses.
Returns nil if obj is nil.

allSubviews

NSArray* allSubviews(NSView* view);
Description forthcoming.

appVersion

int appVersion(long int a, long int b, long int c);
Description forthcoming.

colorFromDict

NSColor* colorFromDict(NSDictionary* colorString);
Description forthcoming.

colorToDict

NSDictionary* colorToDict(NSColor* color);
Description forthcoming.

cutFileLabelText

NSString* cutFileLabelText(NSString* filename, id label, NSInteger length);
Description forthcoming.

defaultCellSize

NSSize defaultCellSize();
Description forthcoming.

findAll

NSArray* findAll(NSMenu* menu);
Description forthcoming.

findAllSubmenus

NSArray* findAllSubmenus(NSArray* array);
Description forthcoming.

findAllWithArray

void findAllWithArray(id item, NSMutableArray* array);
Description forthcoming.

formatAction

NSString* formatAction(NSString* action);
Description forthcoming.

formatOutlet

NSString* formatOutlet(NSString* outlet);
Description forthcoming.

identifierString

NSString* identifierString(NSString* str);
Description forthcoming.

minimalContainerFrame

NSRect minimalContainerFrame(NSArray* views);
Description forthcoming.

promptForClassName

NSString* promptForClassName(NSString* title, NSArray* classes);
Description forthcoming.

subviewsForView

void subviewsForView(NSView* view, NSMutableArray* array);
Description forthcoming.

systemImagesList

NSArray* systemImagesList();
Description forthcoming.

systemSoundsList

NSArray* systemSoundsList();
Description forthcoming.


gorm-1.3.1/Documentation/GormCore/NSFontManager+GormExtensions.html0000644000175000017500000000341714333120703024327 0ustar heronheron NSFontManager+GormExtensions documentation

NSFontManager+GormExtensions documentation

Authors

Generated by heron

Software documentation for the NSFontManager(GormExtensions) category

NSFontManager(GormExtensions)

Declared in:
GormCore/NSFontManager+GormExtensions.h
Description forthcoming.
Method summary

sendAction 

- (BOOL) sendAction;
Override for sendAction in NSFontManager. This method calls the action on the last edited object if the attempt to send the action to the first responder is unsuccessful. This allows the font to be more easily set.


gorm-1.3.1/Documentation/GormCore/GormSetNameController.gsdoc0000644000175000017500000000412014333120703023255 0ustar heronheron GormSetNameController class documentation Software documentation for the GormSetNameController class GormCore/GormSetNameController.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. cancelHit: sender Description forthcoming. okHit: sender Description forthcoming. runAsModal Description forthcoming. textField Description forthcoming. gorm-1.3.1/Documentation/GormCore/MainIndex.html0000644000175000017500000000116114360755340020566 0ustar heronheron Index

Classes
Protocols
Functions
Types
Variables

(intro)  (unframe)
gorm-1.3.1/Documentation/GormCore/GormViewWithContentViewEditor.html0000644000175000017500000001224214333120703024631 0ustar heronheron GormViewWithContentViewEditor class documentation

GormViewWithContentViewEditor class documentation

Authors

Generated by heron

Software documentation for the GormViewWithContentViewEditor class

GormViewWithContentViewEditor : GormViewWithSubviewsEditor

Declared in:
GormCore/GormViewWithContentViewEditor.h
Description forthcoming.

Instance Variables

Method summary

groupSelectionInBox 

- (void) groupSelectionInBox;
Description forthcoming.

groupSelectionInMatrix 

- (void) groupSelectionInMatrix;
Description forthcoming.

groupSelectionInSplitView 

- (void) groupSelectionInSplitView;
Description forthcoming.

groupSelectionInView 

- (void) groupSelectionInView;
Description forthcoming.

pasteInView: 

- (void) pasteInView: (NSView*)view;
Description forthcoming.

postDrawForView: 

- (void) postDrawForView: (GormViewEditor*)viewEditor;
Description forthcoming.

ungroup 

- (void) ungroup;
Description forthcoming.



Instance Variables for GormViewWithContentViewEditor Class

contentViewEditor

@protected GormInternalViewEditor* contentViewEditor;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormConnectionInspector.gsdoc0000644000175000017500000000362214333120703023651 0ustar heronheron GormConnectionInspector class documentation Software documentation for the GormConnectionInspector class GormCore/GormConnectionInspector.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. updateButtons Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormInternalViewEditor.gsdoc0000644000175000017500000000211014333120703023430 0ustar heronheron GormInternalViewEditor class documentation Software documentation for the GormInternalViewEditor class GormCore/GormInternalViewEditor.h Description forthcoming. changeFont: sender Description forthcoming. destroyAndListSubviews Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormBoxEditor.html0000644000175000017500000000417614333120703021434 0ustar heronheron GormBoxEditor class documentation

GormBoxEditor class documentation

Authors

Generated by heron

Software documentation for the GormBoxEditor class

GormBoxEditor : GormViewWithSubviewsEditor

Declared in:
GormCore/GormBoxEditor.h
Description forthcoming.

Instance Variables

Method summary

destroyAndListSubviews 

- (NSArray*) destroyAndListSubviews;
Description forthcoming.



Instance Variables for GormBoxEditor Class

contentViewEditor

@protected GormInternalViewEditor* contentViewEditor;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormFilesOwner.gsdoc0000644000175000017500000000434714333120703021745 0ustar heronheron GormFilesOwner documentation Software documentation for the GormFilesOwner class GormCore/GormFilesOwner.h Description forthcoming. Description forthcoming. className Description forthcoming. setClassName: aName Description forthcoming. Software documentation for the GormFilesOwnerInspector class GormCore/GormFilesOwner.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. takeClassFrom: sender Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormClassPanelController.gsdoc0000644000175000017500000000504614333120703023756 0ustar heronheron GormClassPanelController class documentation Software documentation for the GormClassPanelController class GormCore/GormClassPanelController.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. browserAction: sender Description forthcoming. initWithTitle: title classList: classes Description forthcoming. okButton: sender Description forthcoming. runModal Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormSoundInspector.html0000644000175000017500000000647514333120703022520 0ustar heronheron GormSoundInspector

GormSoundInspector

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
allow user to select custom classes

Copyright: (C) 2002 Free Software Foundation, Inc.

Software documentation for the GormSoundInspector class

GormSoundInspector : IBInspector

Declared in:
GormCore/GormSoundInspector.h
Description forthcoming.

Instance Variables

Method summary

pause: 

- (void) pause: (id)sender;
Description forthcoming.

play: 

- (void) play: (id)sender;
Description forthcoming.

record: 

- (void) record: (id)sender;
Description forthcoming.

stop: 

- (void) stop: (id)sender;
Description forthcoming.



Instance Variables for GormSoundInspector Class

soundView

@protected GormSoundView* soundView;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormNSPanel.gsdoc0000644000175000017500000000700214333120703021157 0ustar heronheron GormNSPanel class documentation Software documentation for the GormNSPanel class GormCore/GormNSPanel.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. _isReleasedWhenClosed Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _setReleasedWhenClosed: flag Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _setStyleMask: newStyleMask Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _styleMask Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. autoPositionMask Description forthcoming. setAutoPositionMask: mask Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormFilePrefsManager.gsdoc0000644000175000017500000001531414360747253023055 0ustar heronheron GormFilePrefsManager Sets the information about the.gorm file's version. This allows a file to be saved as an older version of the.gorm format so that older releases can still use.gorm files created by people who have the latest GNUstep and Gorm version. 2003 Free Software Foundation, Inc. Software documentation for the GormFilePrefsManager class GormCore/GormFilePrefsManager.h NSCoding Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. currentVersion The current Gorm version. archiveTypeName Which achive type, by name. data Saves the encoded file info. fileTypeName return file type. isLatest Are we set to the latest version? Returns YES, if so. loadFromData: data Loads the encoded file info. loadFromFile: path Loads the encoded file info. loadProfile: profileName Loads the profile. nibDataWithOpenItems: openItems Saves the encoded file info. restoreClassVersions Restores the versions to the most current. saveToFile: path Saves the encoded file info. selectArchiveType: sender Action called when the archive type pulldown is selected. selectTargetVersion: sender Action called when the target version pulldown is selected. setClassVersions Sets the version of the classes. setFileTypeName: ft File type name... showIncompatibilities: sender Show incompatibilities in the panel. targetVersionName Which version of the gui library, by name. version Gorm Version of the current archive. versionOfClass: className Returns the version of the class in the current profile. gorm-1.3.1/Documentation/GormCore/GormCustomView.html0000644000175000017500000000453314333120703021637 0ustar heronheron GormCustomView class documentation

GormCustomView class documentation

Authors

Generated by heron

Software documentation for the GormCustomView class

GormCustomView : NSTextField

Declared in:
GormCore/GormCustomView.h
Description forthcoming.

Instance Variables

Method summary

className 

- (NSString*) className;
Description forthcoming.

setClassName: 

- (void) setClassName: (NSString*)aName;
Description forthcoming.



Instance Variables for GormCustomView Class

className

@protected NSString* className;
Description forthcoming.





gorm-1.3.1/Documentation/GormCore/GormFunctions.gsdoc0000644000175000017500000001136314333120703021634 0ustar heronheron GormFunctions documentation GormFunctions functions

class collect This method returns an array listing the names of all the instance methods available to obj, whether they belong to the class of obj or one of its superclasses.
If obj is a class, this returns the class methods.
Returns nil if obj is nil.
class collect This method returns an array listing the names of all the instance variables present in the instance obj, whether they belong to the class of obj or one of its superclasses.
Returns nil if obj is nil.
view Description forthcoming. a b c Description forthcoming. colorString Description forthcoming. color Description forthcoming. filename label length Description forthcoming. Description forthcoming. menu Description forthcoming. array Description forthcoming. item array Description forthcoming. action Description forthcoming. outlet Description forthcoming. str Description forthcoming. views Description forthcoming. title classes Description forthcoming. view array Description forthcoming. Description forthcoming. Description forthcoming.
gorm-1.3.1/Documentation/GormCore/GormNSSplitViewInspector.gsdoc0000644000175000017500000000203514333120703023736 0ustar heronheron GormNSSplitViewInspector class documentation Software documentation for the GormNSSplitViewInspector class GormCore/GormNSSplitViewInspector.h Description forthcoming. Description forthcoming. Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormDocument.html0000644000175000017500000014650414333120703021315 0ustar heronheron GormDocument documentation

GormDocument documentation

Authors

Generated by heron

Software documentation for the GormDocument class

GormDocument : NSDocument

Declared in:
GormCore/GormDocument.h
Conforms to:
IBDocuments
GSNibContainer
NSCoding
Description forthcoming.

Instance Variables

Method summary

addAttributeToClass: 

- (id) addAttributeToClass: (id)sender;
Add an outlet/action to the classes view.

addConnector: 

- (void) addConnector: (id)aConnector;
Add aConnector to the set of connectors in this document.

alignSelectedObjects: 

- (void) alignSelectedObjects: (id)sender;
Aligns selected objects on a given axis.
Align objects to center, left, right, top, bottom.

allManagedPboardTypes 

- (NSArray*) allManagedPboardTypes;
Returns all pasteboard types registered for with the IBResourceManager.
Get all pasteboard types managed by the resource manager.

arrangeSelectedObjects: 

- (void) arrangeSelectedObjects: (id)sender;
Arrages selected objects based on the either in front of or in back of the view stack.
Arrange views in front or in back of one another.

changeToTopLevelEditorAcceptingTypes: andFileType: 

- (void) changeToTopLevelEditorAcceptingTypes: (NSArray*)types andFileType: (NSString*)fileType;
Switch to the top level editor responsible for a given type. This allows the document in the view to switch to the view which is appropriate for the resource being dragged in.

changeToViewWithTag: 

- (void) changeToViewWithTag: (int)tag;
Switches to the view using the specified tag. They are 0=objects, 1=images, 2=sounds, 3=classes, 4=file prefs.

classIsSelected 

- (BOOL) classIsSelected;
Returns YES, if the current select on the classes view is a class.

classManager 

- (GormClassManager*) classManager;
The class manager.

closeAllEditors 

- (void) closeAllEditors;
Forces the closing of all editors in the document.

createClassFiles: 

- (id) createClassFiles: (id)sender;
Create the class files for the selected class.

createResourceManagers 

- (void) createResourceManagers;
Create resource manager instances for all registered classes.

createSubclass: 

- (id) createSubclass: (id)sender;
Create a subclass of the currently selected class in the classes view.

deactivateEditors 

- (void) deactivateEditors;
Deactivate the editors for archiving..

deferredWindows 

- (NSSet*) deferredWindows;
Windows deferred.
All windows marked, deferred.

exportStrings: 

- (void) exportStrings: (id)sender;
This method is used to export all strings in a document to a file for Language translation. This allows the user to see all of the strings which can be translated and allows the user to provide a translateion for each of them.

filePrefsManager 

- (GormFilePrefsManager*) filePrefsManager;
File preferences.
Gorm file prefs manager.

filesOwner 

- (GormFilesOwner*) filesOwner;
File's Owner
File's owner...

firstResponder 

- (id) firstResponder;
Returns stand-in object for firstResponder
Return first responder stand in.

fontManager 

- (id) fontManager;
Returns stand-in object for fontManager.
Return font manager stand in.

fontMenu 

- (NSMenu*) fontMenu;
Returns the font menu for the document.
Return the object that will be the services menu.

handleNotification: 

- (void) handleNotification: (NSNotification*)aNotification;
Handle all notifications. Checks the value of [ aNotification name] against the set of notifications this class responds to and takes appropriate action.

images 

- (NSArray*) images;
Images

infoData 

- (NSData*) infoData;
return the file info.

instantiateClass: 

- (id) instantiateClass: (id)sender;
Create an instance of a given class.

isActive 

- (BOOL) isActive;
Returns YES, if document is active.

isDocumentOpen 

- (BOOL) isDocumentOpen;
Return the document open flag.

isOlderArchive 

- (BOOL) isOlderArchive;
Return YES if this is an older archive.

isTopLevelObject: 

- (BOOL) isTopLevelObject: (id)obj;
Returns YES, if obj is a top level object.

loadClass: 

- (id) loadClass: (id)sender;
Load a class into the document.
Parse a header into the classes view.

nameForObject: 

- (NSString*) nameForObject: (id)anObject;
Returns the name for the object...
Returns the name for anObject.

objectForName: 

- (id) objectForName: (NSString*)name;
Returns the object for name.

objectIsDeferred: 

- (BOOL) objectIsDeferred: (id)anObject;
Return YES, if anObject is deferred.
Return YES, if the anObject is in the deferred list.

objectIsVisibleAtLaunch: 

- (BOOL) objectIsVisibleAtLaunch: (id)anObject;
Return YES, if anObject is visible at launch time.

objects 

- (NSArray*) objects;
Returns all names for all objects known to Gorm.
Returns all objects in the document.

openEditorForObject: withParentObject: 

- (id) openEditorForObject: (id)anObject withParentObject: (id)parentObj;
Open the editor for anObject, with parent object.

openImage: 

- (id) openImage: (id)sender;
Open an image and copy it into the document.

openSound: 

- (id) openSound: (id)sender;
Open a sound and load it into the document.

reactivateEditors 

- (void) reactivateEditors;
Reactivate all of the editors...

rebuildObjToNameMapping 

- (void) rebuildObjToNameMapping;
Build our reverse mapping information and other initialisation

recentDocumentsMenu 

- (NSMenu*) recentDocumentsMenu;
Returns the menu which will be the recent documents menu for the document.
Return the object that will be the receent documents menu.

refreshConnectionsForClassNamed: 

- (void) refreshConnectionsForClassNamed: (NSString*)className;
Refresh all connections to any and all instances of className. Checks if the class has the action/outlet present and deletes it, if it doesn't.

remove: 

- (id) remove: (id)sender;
Remove a class from the classes view

removeAllInstancesOfClass: 

- (void) removeAllInstancesOfClass: (NSString*)className;
Remove all instances of a given class.

removeConnectionsForClassNamed: 

- (BOOL) removeConnectionsForClassNamed: (NSString*)className;
Remove all connections to any and all instances of className.

removeConnectionsWithLabel: forClassNamed: isAction: 

- (BOOL) removeConnectionsWithLabel: (NSString*)name forClassNamed: (NSString*)className isAction: (BOOL)action;
Removes all connections given action or outlet with the specified label (paramter name) class name (parameter className).

renameConnectionsForClassNamed: toName: 

- (BOOL) renameConnectionsForClassNamed: (NSString*)className toName: (NSString*)newName;
Rename connections connected to an instance of on class to another.

resourceManagerForPasteboard: 

- (IBResourceManager*) resourceManagerForPasteboard: (NSPasteboard*)pboard;
Get the resource manager which handles the content on pboard.

resourceManagers 

- (NSArray*) resourceManagers;
The list of all resource managers.

retrieveObjectsForParent: recursively: 

- (NSArray*) retrieveObjectsForParent: (id)parent recursively: (BOOL)flag;
Retrieve all objects which have parent as thier parent. If flag is YES, then retrieve the entire graph of objects starting with the parent.
Pull all of the objects which are under a given parent. Returns an autoreleased array.

scmWrapper 

- (NSFileWrapper*) scmWrapper;
Save the SCM directory.

selectClass: 

- (void) selectClass: (NSString*)className;
Select a class in the classes view

selectClass: editClass: 

- (void) selectClass: (NSString*)className editClass: (BOOL)flag;
Select a class in the classes view

servicesMenu 

- (NSMenu*) servicesMenu;
Returns the services menu for the document.
Return the object that will be the services menu.

setDocumentActive: 

- (void) setDocumentActive: (BOOL)flag;
Marks this document as the currently active document. The active document is the one being edited by the user.

setDocumentOpen: 

- (void) setDocumentOpen: (BOOL)flag;
Set the document open flag.

setFontMenu: 

- (void) setFontMenu: (NSMenu*)anObject;
Set the font menu.
Set the object that will be the font menu in the app.

setImages: 

- (void) setImages: (NSArray*)imgs;
Images

setInfoData: 

- (void) setInfoData: (NSData*)data;
Set the file info for this document.

setObject: isDeferred: 

- (void) setObject: (id)anObject isDeferred: (BOOL)flag;
Add object to the defferred list.
Add anObject to the deferred list.

setObject: isVisibleAtLaunch: 

- (void) setObject: (id)anObject isVisibleAtLaunch: (BOOL)flag;
Add object to the visible at launch list.

setOlderArchive: 

- (void) setOlderArchive: (BOOL)flag;
Set the "older archive" flag.

setRecentDocumentsMenu: 

- (void) setRecentDocumentsMenu: (NSMenu*)anObject;
Sets the recent documents menu.
Set the menu that will be the recent documents menu in the app.

setSCMWrapper: 

- (void) setSCMWrapper: (NSFileWrapper*)wrapper;
Save the SCM directory.

setServicesMenu: 

- (void) setServicesMenu: (NSMenu*)anObject;
Set the services menu.
Set the object that will be the services menu in the app.

setSounds: 

- (void) setSounds: (NSArray*)snds;
Sounds

setWindowsMenu: 

- (void) setWindowsMenu: (NSMenu*)anObject;
Sets the windows menu.
Set the windows menu.

sounds 

- (NSArray*) sounds;
Sounds

translate: 

- (void) translate: (id)sender;
This method is used to translate all of the strings in the file from one language into another. This is helpful when attempting to translate an application for use in different locales.

viewWithTag: 

- (NSView*) viewWithTag: (int)tag;
returns the view using the specified tag . They are 0=objects, 1=images, 2=sounds, 3=classes, 4=file prefs.

visibleWindows 

- (NSSet*) visibleWindows;
Windows visible at launch...
All windows marked, visible at launch.

window 

- (NSWindow*) window;
The document window.

windowAndRect: forObject: 

- (NSWindow*) windowAndRect: (NSRect*)r forObject: (id)object;
WindowAndRect:forObject: is called by Gorm to determine where it should draw selection markup
Returns the window and the rect r for object.

windowsMenu 

- (NSMenu*) windowsMenu;
Returns the menu which will be the windows menu for the document.
return the windows menu.



Instance Variables for GormDocument Class

classManager

@protected GormClassManager* classManager;
Description forthcoming.

classesScrollView

@protected NSScrollView* classesScrollView;
Description forthcoming.

classesView

@protected id classesView;
Description forthcoming.

connections

@protected NSMutableArray* connections;
Description forthcoming.

deferredWindows

@protected NSMutableSet* deferredWindows;
Description forthcoming.

filePrefsManager

@protected GormFilePrefsManager* filePrefsManager;
Description forthcoming.

filePrefsView

@protected id filePrefsView;
Description forthcoming.

filePrefsWindow

@protected NSWindow* filePrefsWindow;
Description forthcoming.

filesOwner

@protected GormFilesOwner* filesOwner;
Description forthcoming.

firstResponder

@protected GormFirstResponder* firstResponder;
Description forthcoming.

fontManager

@protected GormObjectProxy* fontManager;
Description forthcoming.

hidden

@protected NSMutableArray* hidden;
Description forthcoming.

images

@protected NSMutableArray* images;
Description forthcoming.

imagesScrollView

@protected NSScrollView* imagesScrollView;
Description forthcoming.

imagesView

@protected id imagesView;
Description forthcoming.

infoData

@protected NSData* infoData;
Description forthcoming.

isActive

@protected BOOL isActive;
Description forthcoming.

isDocumentOpen

@protected BOOL isDocumentOpen;
Description forthcoming.

isOlderArchive

@protected BOOL isOlderArchive;
Description forthcoming.

lastEditor

@protected id lastEditor;
Description forthcoming.

nameTable

@protected NSMutableDictionary* nameTable;
Description forthcoming.

objToName

@protected NSMapTable* objToName;
Description forthcoming.

objectsView

@protected id objectsView;
Description forthcoming.

openEditors

@protected NSMutableArray* openEditors;
Description forthcoming.

quitItem

@protected NSMenuItem* quitItem;
Description forthcoming.

resourceManagers

@protected NSMutableArray* resourceManagers;
Description forthcoming.

savedEditors

@protected NSMutableArray* savedEditors;
Description forthcoming.

savedMenu

@protected NSMenu* savedMenu;
Description forthcoming.

scmWrapper

@protected NSFileWrapper* scmWrapper;
Description forthcoming.

scrollView

@protected NSScrollView* scrollView;
Description forthcoming.

selectionBox

@protected NSBox* selectionBox;
Description forthcoming.

sounds

@protected NSMutableArray* sounds;
Description forthcoming.

soundsScrollView

@protected NSScrollView* soundsScrollView;
Description forthcoming.

soundsView

@protected id soundsView;
Description forthcoming.

toolbar

@protected NSToolbar* toolbar;
Description forthcoming.

topLevelObjects

@protected NSMutableSet* topLevelObjects;
Description forthcoming.

visibleWindows

@protected NSMutableSet* visibleWindows;
Description forthcoming.

window

@protected GormDocumentWindow* window;
Description forthcoming.




Software documentation for the GormEditorToParent class

GormEditorToParent : NSNibConnector

Declared in:
GormCore/GormDocument.h
Description forthcoming.

Software documentation for the GormFirstResponder class

GormFirstResponder : NSObject

Declared in:
GormCore/GormDocument.h
Description forthcoming.

Software documentation for the GormObjectToEditor class

GormObjectToEditor : NSNibConnector

Declared in:
GormCore/GormDocument.h
Description forthcoming.

Software documentation for the GormDocument(MenuValidation) category

GormDocument(MenuValidation)

Declared in:
GormCore/GormDocument.h
Description forthcoming.
Method summary

isEditingClasses 

- (BOOL) isEditingClasses;
Returns YES if the document is editing classes.

isEditingImages 

- (BOOL) isEditingImages;
Returns YES if the document is editing images.

isEditingObjects 

- (BOOL) isEditingObjects;
Returns YES if the document is editing instance/objects.

isEditingSounds 

- (BOOL) isEditingSounds;
Returns YES if the document is editing sounds.


gorm-1.3.1/Documentation/GormCore/GormFontViewController.gsdoc0000644000175000017500000000367414333120703023477 0ustar heronheron GormFontViewController class documentation Software documentation for the GormFontViewController class GormCore/GormFontViewController.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. sharedGormFontViewController Description forthcoming. convertFont: aFont Description forthcoming. selectFont: sender Description forthcoming. view Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormObjectEditor.gsdoc0000644000175000017500000000417614360747253022264 0ustar heronheron GormObjectEditor class documentation Software documentation for the GormObjectEditor class GormCore/GormObjectEditor.h Description forthcoming. setEditor: editor forDocument: aDocument Description forthcoming. acceptsTypeFromArray: types Description forthcoming. draggedImage: i endedAt: p deposited: f Description forthcoming. draggingSourceOperationMaskForLocal: flag Description forthcoming. makeSelectionVisible: flag Description forthcoming. resetObject: anObject Description forthcoming. gorm-1.3.1/Documentation/GormCore/GormScrollViewAttributesInspector.html0000644000175000017500000001531014333120703025554 0ustar heronheron GormScrollViewAttributesInspector

GormScrollViewAttributesInspector

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
allow user to edit attributes of a scroll view

Copyright: (C) 2003 Free Software Foundation, Inc.

Software documentation for the GormScrollViewAttributesInspector class

GormScrollViewAttributesInspector : IBInspector

Declared in:
GormCore/GormScrollViewAttributesInspector.h
Description forthcoming.

Instance Variables

Method summary

borderSelected: 

- (void) borderSelected: (id)sender;
Description forthcoming.

colorSelected: 

- (void) colorSelected: (id)sender;
Description forthcoming.

horizontalRuler: 

- (void) horizontalRuler: (id)sender;
Description forthcoming.

horizontalSelected: 

- (void) horizontalSelected: (id)sender;
Description forthcoming.

verticalRuler: 

- (void) verticalRuler: (id)sender;
Description forthcoming.

verticalSelected: 

- (void) verticalSelected: (id)sender;
Description forthcoming.



Instance Variables for GormScrollViewAttributesInspector Class

borderMatrix

@protected id borderMatrix;
Description forthcoming.

color

@protected id color;
Description forthcoming.

horizontalRuler

@protected id horizontalRuler;
Description forthcoming.

horizontalScroll

@protected id horizontalScroll;
Description forthcoming.

lineAmount

@protected id lineAmount;
Description forthcoming.

pageContext

@protected id pageContext;
Description forthcoming.

verticalRuler

@protected id verticalRuler;
Description forthcoming.

verticalScroll

@protected id verticalScroll;
Description forthcoming.





gorm-1.3.1/Documentation/Gorm.pdf0000644000175000017500000063456314360755340015730 0ustar heronheron%PDF-1.5 % 1 0 obj << /Length 587 /Filter /FlateDecode >> stream xmTM@+z&?tBL$d4*.<_fW_wիrc;`GUOV&ʮ[v6W7TvbuYt/N.5=S> stream xmTM@+z&?tBL0d4*.<̿~UfW_uvc;Z̫MfG} I]/ޭmޯo⣩0^'^x]fkn{EK{*ʇupg6;ލ$4;gZ8, M[TPRJGeWxmE7 "/7j;{Yʋ"1tm|oirI ɑc׺>[TқEnn#bBSEV嶭mzsg)gR133w xAb;aGL6K&0+}&"?(Ҧa/ c,!-f3*Ix {asIC%hS7}H=ŤIY(jŧ Z4{SO5Z ekxvKǬ@2a> stream xmSn0+$z"aKU^CvF^p=!94gB˥0pދ s#P~k@hZ+vQڦ(A,Rf5Ħq8>K_X NH3$Ǟ{<0*5c~Pʯ5W42^!0^#rqxƘE3x z)cgl1BҰ?Xq!NAWA*d1)iȧΰО 9璆NVfkVaUJ?%͚5ػbTW=ј52f&p2pjV^cHMcVYxLS7E=1j g endstream endobj 6 0 obj << /Length 557 /Filter /FlateDecode >> stream xڍSMo@Wp`RUEHzhjF*l(4Z޼f`} u|pD~)bjPjuEv]f鮬i1_Қ {!Yo FE#"0)T%x-\E}&*z,wg%i36䳣XVvWl'> yiҞ89gij"]CXiQy^(@edHP4C !oM>>m)EaG' =}N{$҄{ry&:A7LSm;= }!!ٸebɨLFyzJiʀޔYZM2*j( 4*]gƩh> stream x}VK8WP{Uc2Sʦa+AV VyV &[~- /(q e99n{9X)I$̴_mo4#VDEh.˅U-|v$>qc?`ɎIAr%򷷙+pq;).Ƃ"7T\MEz9o9RD}m]y\'P5iV:o/Mɜϛ,e<6qb[PddBVؖ.]#l*bWF~@9C΅˶h^y4y!3-Rވ=+MqpOOer7եOhƹ;cv;ze("A"8/-e[$2xՅ rQfm/ + &Fd9{WGt2ދTzy[CY/Kd ˪{6G{-MJKs.%Jz=?D|#5Tk$ Z%ozQ?pmzJ=DIV-n ؓndLRxILqnEڸV@!@#dbthrEG$ZsEĦnb(L#Bkzyl\%tfg#Pp!^ՃWj6jDDu92cE M{ i6M}-}# lY #la5l6WJvI fЊ|F\z ~"2 dhuoL=5i_}j+ Q@'*ȱDpD+"f0sK"g"SըsKY*Yvw5f/멦3M90z>ceJW }8D1LAj<~hN=f@F[c hNO4F ;0<_qwE?nptM8ݻQkv"-PՀ'Nwn{Շ꿗?BY&x',5# *8ǙI^NsA|] bDz]1+8Mvm endstream endobj 62 0 obj << /Length 1812 /Filter /FlateDecode >> stream xMoG?鼿CR$Hwfvvf n2*~aYͨfΌI;{GfÝ__ܰ4j1Julz;SgVof7WQ#gϘ!)sV&䐶Z89}u^,Qnl~\7MI"aS|gپf2+NX2m}?n~3 Rr"p+02/tfR:d}(QR!s0xRG8#~pbдƴ_7#Reö_ơ.q(zTd.]^b_v=xb"]T》%y顒1GVDRHB)~_<vo no끊'c<;ȡCd7j>EaX?@d%5~5e$.ݦ;iwd~5oǵ!U!]um]ب ̺JHV +}X74Fi-I5Hw~IX;yv-8]kĻ@q`OuRqK66ȬbUΪ|mWO $oտ]=`=qS]n.6z#pbdO'=y է8. =ٓ q9EdOrO=`=qS]n.6z#'7l{P}멌Cr۞p=qFϞtO|O=`=qS]n.6z#'jxތӟ84jV5-2#%(o$NMBcHK8ܦ&dlGfO'.Vzz*㐧ܶ'\lFfOl>I2(P_:)>})T!HumH ̐5c!놔 B*6$\lFfHүYĻCr)T!OumO ̞#TIt'OS<'\lFfOLT${P}멌Cr۞p=QN.TwO|O=`=qS]n.6z#GO:YBE_O|cHO8ܦ'dlGfOFtD'OS<=b'02{:v&OC2y5MO ̞|m s=|P}멌Cr۞p= C(pt Vzz*㐧ܶ'\lFfO\O?q֝t 6?ԀՔ!LUmKH ˒c9λKNڇ4$j- %Ay$ Q*_EEwJ<>TNʵ-M ̞$2pvOO~UwM|;T!HumH ̐ #\H3$wW`!qRj.6B#3$e}*CKS<度'\lFfO>ک6t4b2ym{FO`d$x=G{pt*d,FoA:66%r$03Kb3ள$C̕KJ`%qHRI( ̒"+.I_TVR$խ2֔ˍQzTĺCR )HGe`TWV ѐ > ِRz4`m :1 endstream endobj 120 0 obj << /Length 2420 /Filter /FlateDecode >> stream xs۸W҃Qs/k'Mۙl&Vϖ<@e`sTїŒU5LqNg7/*wtq6ëǝ$|)V:;0T7/g/ŷ$cHI&yV̔9Vq5h2VU5 Me8\/Wc|d6z5K)JL21CL:&@rh= 4C$R% H5#ITFGDgLs$y$Ip$P3d~j"It$'%i HJ]-u$$PRkIb{'w$II8@yqb;zv)5f*ёdmZHK\/uM/BŚALe;6 zl] khpJUAjֶȐ軛[vo{QAE J6IE_<,c8BEp|ݲP)ZK }Z!2 bVN9QXzdAJ43V$X321 z.,(~ZK~J z )q{7Ƨ7݇nӭ.fnnK* .,,%@X!C-$5#MȋCM]^ꦤMVm_Ŝ{R/"1"u"8Ďvrs!{FT~^u}\}w}HJ Y% ]1a_'~tuZ?Prޮ ]cԳ~WA@p`5Ya&K#(vAj2D[tl{͛t(Gg_Hjnv@ueXylZPZHruiczB ~%Fצs qǏ4Q8Jl-puAa7e M)&ȒE'H=PQj' .Bڜ>O=o4R: kFpFYS~buH'=)yy;,u^$ŷ>8G(Ed˅R=Z=4,11b% NױjƼ`R/(\SZ_;,c8AjHԌ8d=Bۋh6snDj*PeAӊsQBį,1B$N!jSI"+I>K tK1xɍ_n,7c8Ma _1 _SECΧfA#G yg,) ߳VM ֎Y/Ʉ63ʖty~]c$5(~ٰ_FN[ endstream endobj 155 0 obj << /Length 1852 /Filter /FlateDecode >> stream xr6~ -Bx$mcu2 -6RӼ}q%! 13q.H昿9 ,f,g) '٬ܞjw;_A` #$qg˛Y?\꺞rUP&<  E\bJ|%y몛/pDWvnˢۆ'a7D3yqh*?Y;19 1~t⇣D;ABPm}} hAB8:_qj(D}K(>#b&{S8-|@/&FMݠ{4r`/`$]TW+nn+!a !q=:\Z Qcksql:LWx~B$>X94Wnc^Xq}Z? oʦPpoto͓R⑕RB ƺ])+ AD.20꽬=ոֳc5U͆ bv"H7q (aey1Ărî5@2-|Mykp_1"+rWS1IhO ܖzE{UlkyF^ !-mA KF#_,rK()J}nU){yq\%*VݳQ dAb`$HT Kb>MUM5yzo5b=WD\g c(LWQ$ #B:njDϚR۬ gݚ&^L\h Qd:(LWP HP}WF;~C/õ`Umedw9"19Y z52tpT/,ET}o7&I Mh(cMaMl @slbb2 K# f=d1`.d91%+jBA} 8@ x5bzy* |%q6.(=6ca>.It FsmUfaoޫW ojQX/ACk{6a.lކjg+ad6Xƍثu{بwcߪ `JilHۛ}ݺ阗quSրZ-[ypi5g#(|:E\@ p=*ʇOǫ9#  >@|'PS]D]DAeuq4os}hVw۔5O ыm_uOY1e #_ 68gp:Ch.'ԯ )yF B"3󎱐QY4R~=;NV[M[jbr܊fs lA(H| ^6/&7uzk{O(6=Il[ߺhnUi347'$yԪ5Em77tk! coabM4O6QE۔ծer '2EttHz\;$#!CjI endstream endobj 11 0 obj << /Type /ObjStm /N 100 /First 828 /Length 2086 /Filter /FlateDecode >> stream xڽMo+xL.Yvc8X}H" " )e`󲋲L0p}H6,4H5O$[IhK1~ɥ'.&D+'"/D)pbKdDB'+%I"XG$xw))@B 7 $]% a,R-jhq+;Z*ƭVZRZ$`VHa) T8LTj%vIK5b< g (*C?+33WGw\wnnkuЀ p9U cj-MaPSutTփ #tC!Qn萄jF:V1j]Rk]^֫'@S1̅Ǹ:p{Ō( ~ H\ʁ0&]`tL8 סC6$ {)7 @И1ƌ2 }̞k1M}VL ٰ1Tcbfhɍ22ސMիݿuw7RK͇o> .槟tUxxoٔ@-zo0mk8?N}޿yHW0t|wC~=i13/cGZC+nh-_b;\mAщ݇Y5DX4 *****************************uQۏؾts}\8rVUzd6Xt}nm:]:Nߏ9rd陋?!gjt I&,Hs]I7$eb]ӊq8ܛ,ʼnd։Ӓ#|?xZ=}<!qYm)Q改8s84q3ZZB3 , cvM)4#g},~|Ñi탓WF\ƚ"WVLi5gcŬ#KqXQfiϱZ &N*qu'φci)x@dѕ4vzиcЗҚŸ8"kq8nm'z.:qؑ5Y3KޖҘ eWMyf_n(#;QL]*=2qͳZ}Z~:pطD8 (Mx ׂńX8\?ģ ""^qWN/bDzGzϝRZk'h^sk^Y_-M%~z)̪ /I>}mbo2s򌗅[b-.z" N)Vʊ0Gp8\YC:qF̎h7\4Rnb);R+[6¹g-kyfp@X `mh?q Q,g:N^疗2! G=<^:+c9 EVb&Ƭ3#vB* %%NAIqvFU}-я̟"^t֟)fgwbb( 3ʹ9AN3i&ZSHwvkyt.nDx ig^<~'P%qgǺb7?2[/N.^܍waBp/ޥxyť9x&w]܍waZp7ޅix]L 7uYeygySӅ_]ۊ=9ez4KhѬYYF̬ͺ5k4+hѬ]YFzf5l4+hѬaYv:2sOUc3C5[gY/V*gva?ij6~`앙cTgf^ŋR⧊˅O+)Z1}ep)FYZ<<ab'Φ endstream endobj 160 0 obj << /Type /ObjStm /N 100 /First 889 /Length 1095 /Filter /FlateDecode >> stream xڵVMo6W^(g E`aɢ[)uFiZX{kXҐ;y3ΐ!xzɆ9)F$LMLL:Mq:_ 9 D`` w[PP`\>1(l@DD"1'υJQgpzP94YY % )(RTU *xa]"6<#G >pE`a` Z{H0Nu0вFֵ 27^#AuOAYa$5peBTZϸr0Df"diaD#;65Lڃ40 y 3+1kI &`Na"B0A B4MeA 'M1QYÚqPHV j@ZF%nJ )($utUx%^(duHj`#qbi?w}ԴWio͍nOi/܀:!9;3i ׃i ˗ Q/x^/zʉl{=)[| mh}#lqV9;bK9ߪ'V$ gЧeMfY'iHHNz\O'{P{&YY,isv}s gv}7-k0hj KӾ|Vli.|/FI{Y(@};wW"5 ^wOfO>?sli\nauW'nfxVjZa,yq]u~Vcwv=Wfal=]?S0ӧGU?vs9ֽ{&YUxpZD"ZD)Q8U"\("U#Ucxb%+P%JJ> stream xڭVMo8WH (Ȧm,u{al&֦ No(vb)q9$R3ǣdYXƙ, q`VaLHU3-֌IA-LXә*H {ʹ0I贂EfLI28XfhYfioXL;R08gDz #^Yf krc,8׊6gY L P8d\, +8΄HtKR (Ԅ'FHYINȌ$`PقZ,U(`ORM-[93zҌڞ#` *4S[TRKaiƀ ,cri}֐(0|M)mM )P&pG4@$m%G2BH  " 4>0 9! ō>8GRG %fQIMQ3R#@R[4#3L\+fF2 BZ4j [Z2cIPildi4hdny}Uӹ ! MY%՘}>L؇b>wBg>H[!q2Vͼ}|+ @9}=.rWoG2Ǐwlݤퟡ% 3]y>sagߪ&ͰuN65d?\SN)`O*>zc,-9O >Lm>3}X}.6ʹ+ҨBow?׺Z״_8]::VE9~OQ*fᚔi9pUӅvI_ >f]$x0y uԪx _ M/6+ܕ>$^2T pK/Vu7noE"w90ʙE~HۺO]Bw\7zϏ7}O=qYtM<힤xھ3W4e3i׿]Ʒ< 7;%lHG`!< qw[i3{SMZwqؿ[]v1~ #wʭk}/aZ{ rq_/'оlw endstream endobj 484 0 obj << /Length 197 /Filter /FlateDecode >> stream xڍ= 0L\>dU蠢YDAkB\mZxxC` Dj)`CL=90z!;6hd0`w0J&naA0\aгMOcA~)5L(G% [*֒{p )3eY !}_6,ʣ}Bv.ҍ'(yjE/<P endstream endobj 487 0 obj << /Length 717 /Filter /FlateDecode >> stream xڭTMo019G *,Tzpn KgI]"=xv, $2c!G.hQgάѹth^ER#JvX>ˤh.kH45ǾC"(%TFEB.Y9a4 |Z|NL PlA5(]71಴,9VdS/gȨ51hT;5V;eo,h40,\R( LCh@RFumƬX?^pvΙ:tǏ\O= "vk|m?0 *4 2tnXq6.׋ 7etA䝮UPorp)ݧ> stream xڵUM0Wʑ۱,T n9 v|438ݦjݙ73c^z4oYMB{ s~87 i̛<D?'{ Iʄ{,ȤR*(fc~ 'm ?$  4&$$Mt4c3Ҭq Nv`$ks`H}A`TD53Θ}HlZw\E:Vm\]ڴyCeSmtPLL2b "ɖ/ KN 3܊T֕ k,K@%$UY|S'!zE5e x&Aly_D_ -3)L).Ϗ x0N;8pGPccP|utѢicB\*By.#4xՌ˔c:[G5WYA 8{rҩ N.;(iyZX@FH渺œSh0+,|T_<:wA | HaCoH,Fbg3if`,mܸd S]VIm齔G &0 J ,|rh=8Ƚ l?)5V l%'S'q.X6}}`>V\ܦ"5$î܋ &떆ʟN<>IP($;Zpi[Xa ɅdS2q j!_C* endstream endobj 496 0 obj << /Length 1443 /Filter /FlateDecode >> stream xXo6_a`Z5%{[ڵ耤Cl%*I%Mݑ'Y^\4-\y0wg6,"M/'boz\0lDyysuM<^lrs;Xg<޻'F|/? eIDHHdLX',(KitIt=H[XxEKx(Ik:58Oh6e*݆EFGB=eT(nCTYƂUQ&r(8'#aUA8yL^aģe踃Uk ێW? |&j)?-WQyo_T鶭=qGzk! ̇f|Ԍ}'9HēnR 64xTqCzH!.2*ň%YR^Ǝ"?Wp#3zr ڼoXWiI಺Ga3`{y+0tp@D#jRRj/*D6k֍w5=©A@Ga0%؞UA=aA n2N=,#:G=GzGg[_UN7NV\:ğۿ kn3&ا σ8>qrB7 CU6qN%z\ -P;Yx94q6`}GEt7J@:D? 'TCH0Z}P'D:#'i"m[> stream xX[o6~ϯ0ЇI@Ŋu[ۭE!ݒ,167]\Qsx(n6Y,^sGE?EE,٢lNB;گ8{}\䋋gxC9_\\.uQ-{/fPDQ䉟@;U[#4ޮUKokիiQz4Su;aWkwm-1ndsHԞ)ΔNg27rEKCKkwMߑT__Ӑ4L9SH]]a!4N˾h\an~%k ;,24{<#Kj2a kqЫÁ+it3EB/f9poe5rvhlah!F1 ED0Kr* fqb_ O? &.B"b"U/O8TD"X+,O\a,zn>qs?Hd `@ lRwmy6O)O,r97@Vߠ2IԠgxI~t5QCԵp+SPOM'eGHٿ޼а@?Ke爔*uqQ=@ܠ= (݋ qطBߏ3iԽ2@aS!!&XFeB8fWB(,,d~ V*Lu"w %=F)@Qȃn&oX!,bO,ʡY&jaψ@U%NS4d<_߱HҖ`ώ̭8yj{:Ģl3RP!Ēث)"Say?h;`O$"/kT劅8ߊAw*7N.z 4![,8,i~,WfFcBQCq7 ut~gLw7G[k2ߣ鎔t”P;]r>ñnXKOlϬi:WAF𕋔ya4y"+<~C@> s:{N8kv }*LX1;n V/QwE5;q o3n\"×=?˼ҟ7ݦzݍnf9v_>A9j-S욍*A22bKnd |V*xZTF=vdfQ)D"K.aÆfd)MXKu{;&IezXn\Fq64UڞZ7l,nʉ Y!gb{sfTm9 hLv>9Q$/:q-B^y|Bp4lc U46}`2m endstream endobj 502 0 obj << /Length 1407 /Filter /FlateDecode >> stream xXێ6}߯0H@KߒMhom-DqÛ.Φ XQ199sf( `F٪l%eJ>BFEozszB9Zmv6Wz_3׋ p8^;7At$~܌H/(NBcN>bmNC['szȡ(t({7BJ9]N?2fP#CZ- a6EX6E~'Zqi]9BVVI?0G<(4^-@^zF 1 ^Sp)Xy sϢifA]*lTF36tz3ڻEL=փ7;# AZ C8048[oi5 Fgn{`!Icϫ 7%]Ƹ~iɎ2m׷P+ڵ w%67zNEU992[%%fsp~P vEF:n(qMJPBNR 7FQ Z:,<3@VQlRnhA=ΔRp,8">H?9m s&;B8*!vPsbxaq`PkpPriu;gO cP? , @ςh[qs:p?dŹ\~ aj]ԝt{@*'?hLlmMx3f)G?AV('vklUq/2(ke|'sc"ʓ80Qi0:$J<͌J3f1+pHh[T3WXNK:2'Ю$)LMh[ϡ|Z71R #7KԺ c}IO١ʢ/!bd,iig=F8.6%y /$BjC>Xq3GgxΟYFcw?EP"7%76nm5m.hdC pE&n}0Elƴ uR1T!?Ljp R6D&ɔ47z=T9%H.c/|ŹבI"-YG͜>?ߒϧ؜27Xu._&VR|(J4]rGI٦^,2D&_`cٖ7 4tI6ӥĞ|bG&h?Ig)\|t?wZhośyO@TS6Pv2m)ZyU/dgCuanFPO1+poXcn-nn42>t{l} #U8g):ҚjK endstream endobj 505 0 obj << /Length 1430 /Filter /FlateDecode >> stream xXK60Ce`Ի&M)=zh P= ^'3Rv|0C7gFb~lQ,"e{af|0'V7/&ɂAlz>jU-^oNaGQ~'޽<(aix7oV& _-?(NqK?IwkyXF]FS6R@#Aսѿ|x+OSJ) X]c{2I)>/tϊq!z>A #="V쉡\Zz?H=Sȍ'rj(TY +S@VzFIy-^- "58zM/XI']lWCS3ZEK=($@HrWQg^8E3 5.j]i _o|bhZPq4a6ѓp d䰕V.$ {܉zL/wS?f__7dBg6[ȽxA tp3> Fޑw+.y}V0L{-<ChNu`hSavAF,AU;(=n{"GUcUkoRzHpGLqqH6\_% u 1a\q Z,zQ |DmzX*?\4cB\:9 ҅Ac.|5 b'zN4'1V?H- 9rΡAggAOaDO 䕥I]Z_<oZw>$1ԕHw6#u#k("KFSEEeT_EES:F .y<=N4RkgڞeSв5u)POV{kD[I \1ԭظm8t*/8miz\"-U#-JQM-|Ca\_tp$EcyiL nɬ8᱓h$9Q{]\q"NE؉Y mVڛ";\a^VwXo }8co&Mޠ:S]cc]kjp!J?Kb{dE Yx3͢:pB / NS]qO{2ݙ0I7q~@PB BʪK1)t0`gqR {WtUX_yCA:*bDcw`TL_aDDdzESt7Ήxm֝e&rۥ$0J+,/H endstream endobj 508 0 obj << /Length 2449 /Filter /FlateDecode >> stream xY۸藓XV>H6ldZ-PڼT|{}g8CK^h5y+VU$ \g >&og/eJDaUbuw?_^59ȣUz$I\o4 >ȋ,(ówM8FiJ2^4LNP?+{Ǘ9 /Gsr˚7 I|0UEٹʤ*S#ELq>*3TWUe6]޶`͒|3BX -Xm![ 禑 FЋ1^U-V U,`{ h;^ 39=t-x蟵=1 \9e4oqG5w~U.K:yNPBZPI(eүwl}0*N}']_ZrƤ Au'?a\9ڋTy#5g7_v mrY&K{@I$XN&ggv_T7i[%(5&/$sʠ9||$! O '9?.|--&RA%an_7! PT 7KkX:4f5RC#A"cTUj;$b+7˚#R1+ nI9A$t¹P>yIT{~=|&3܀_:1A=́~l;nb|iiȤ "MጥhcnxbšYXŒo0,;#K"{z~, 17¨H.~j%K@+Y"h1}N4/_o,LS2NZ@ 5N.8$Dn4c &*}g)sӐuB_Uٞ]~.8؀v!˲pv.սg:JN~}&}WLkV% (hr>_P-x ($/Ɣ4,flHuAUbflld0 @ͭYpoJ6EDy9 qJZB1(nXtm# h2~R{8\ed' WM|Eg:2 'eqة76ܿjˆ3.q^$:|r6Gd+34/ء8k,yuQD|ɖgW tvk==; 53+Oߪ[}Uܮ1g@`4xZO[3wo7i sL`ve'k]3֗wu #=?woнC[tThC~8`rΕ誱Og}Vs }Fq,pVy?Z2-qn_rGɽ%Ghh1[YI0XsYpHkkq<Lu%^vt =bAK:RoEuB2yr),b ~|Ǯb-(9sDR endstream endobj 512 0 obj << /Length 2148 /Filter /FlateDecode >> stream x]6=oX%[}K&^W-hH:_EIpA|8^D/hNӰPEپ:/Wiw˕RYٜ: 忷{v$KR9XFq_x^'a>ھ,2gCcx,a!ε+bc/ōWo<-/!ԞdwB Uʓw%k$ ^ Yigڅ("G{=HwiEm2齩"< yFcR>A@9. 1H1>,WY]:V@93_AxD,q+D#ъNу@~Ha_ ,~;ke ) 0gF@BCVKU_,LktV$v"tPw=+wd0 5w]mm/б759vE#*NGHVi{UvdhKiQn6K4Ku18Z;|e٭F?cd:G>;˳|ٱgwP+IMzV )% \B':`~%Q}^E&ta^+⌬xfĚ JGbSfR[<bŁ<kb~,b*O$s( V|Fu^&t8B8-q\@F L ?|mI4]}iq^b*p `aƉ$KZb/L]$bz=Bh'Dmr(GTン*&ߌ lCFoZ>'ru Z{8ڈ=.2t^THё[ߛ>QܺZ)}@85ѣբ*iKGmz^g$uxSeX&Y`xTB2.x:Ȳ eP^c? ݎbZ +!4XbY_9*ILih``kv:Eu 7ڍ˘m[av4 # %H; p.@XI'c}-L[qtUAmu?wۍ)9bS{kGO^cw3/y%|Fje9)JRl&o/Ň~ບ~A *ANћlwǂ) Y{@M tޠWpw;PqJx˶(?dIC endstream endobj 515 0 obj << /Length 2409 /Filter /FlateDecode >> stream xڽٮ_!!pɼ9" b%/MĹ[TX߳bn=p̙/#gyHl; <+#x+@\0ؼm,LAnQbz.WQyU'ޣ;w1&M<,xK_HbГ Qu&*YrewezM, jロc@Y#"+ h2. h(ڷr)U8_LP?<,Wz=ygPxAz YjZfn]lt 3nl }k iiLsJղ+=L䛄mQ{Q:ՠ{݉Umm[Z` @ ql]~(W H?4/W06c֨J4Or!50Eh˚wudBGdz'guv>;DGLV@ t9I8"CH[ *+3&dqA2̿ZLdzۻB`5Q zѐA톣i,@XCmݧRL\9Tټxwu?OR{,3z>nhQRu C&iHu0d!a?ukoDV @˨-ZSm%Ͱ}x2o YfA`aB 'Bp-R50tf;w]i+ɾ,vC7Gl15pBUOA5:K=u]umkSq>3Ȁj)ewV5xaA?|b[wm9:d 8̿USQq!:hpz D;,A 0.tz*tb$ _<\!t..(Ә#5xF&R :! S4X}ƙd^c$IZC%T5[,HFbWā}be<Љ1=P0 ,x5#2'"`9 "T`htY1sv[UvD41n̳lQJ2)`й,-\:Nm v( TnpN0Rrԫ1'x3-FsEV!4pܣi/B2j mLk2sQhK/L.ꅢR-d[< L2NБ3fahQgѪL^pvW+%i9+݀)uFX?.*]8>8Ҋ'N ݂qUOPSϣ3R労DXdUs M=f% PPԿohFZhK*kJjIg d&0N='eק(/֒n)Ŝhz uOj:Fw`u+3 @G|,Aڦ0#@?(#x,(pk'豶_(6Y}c3+wK-r,AҧC/,iې5:HU.!Q08H(an ݡ$Zw]h{kSh'ˏeLdL'Q><W&fҁ̥o%9j,-Ϲ '4Rx 8Sk5aB\jbQjE AŰLmaz:0ka@-=qQTL o$ JMދ*4zH~eg=Yӓe꧟} ,< L'/7Pv? lEAWc”tm[-*<3ZL( D|3)Ä}rynX/?RN_mNr7F5 ? }3ipqcKK[ K350R,J7QIxZ4pOv$>xX |A'GDz߮e5S Z. }:m0 qAZu{Mo)_wcm7Mۺ RBbX;熾nl_NY ?pJZxJ.bzHȫ?qK29PwCq#yf~.kTͻ%MÕWL$=r_yG{l\Gv6P}o endstream endobj 518 0 obj << /Length 1784 /Filter /FlateDecode >> stream xYmo6 _qb˽4i.zنa0ݩ-C_?J|eADQEIMbceTM%;jC9Z'J|RZ,(6NjES:pB4XAt'}d $fXhުBYX慝 {}_{l'S%ւ1 ;/vaAf{y < $J؋ 슨hֆC~`0UcǏVL[Qm3y8l~! [b%:A#Zww,h4 n@y|p#mttgt' .WӅտ3y7G4Y3G&30;ӡ}Arbc?݉V),w 1N5Z ^w\M6} 8=!g]E>yxj^jFmR+J OEyl8!=W oš؁s?v[h'tuEihu%ʷ4A)V=NҒY~e,)xE:U~\Oj]M_f( i[ fdXL?3eSL2x_^j\_oQ!uKY4,Z5*lyÙjn4/xw CkK]Q ~LTi\Ou4P _HSZ-ʒ3AEjj+&- :Cq"gkWÁqBuD*}#@!D>e&pldDl_*38G |w,;hʱx#@5!TS\Q baVqAÃ<:% JֲZJӃ\%SKR&}{J񎒽gW] 2qnJOL#Xc[ïƇ7j7޹F<8.xSt2N`e벨yx,㩳xZ GF5aApa{$npńuh ~ذ~@Qtq=zB))=lP@s)|ƿxDC:fbzss{$`H\-]ZTuRT4AbWk%^Ѓc b/X> endstream endobj 521 0 obj << /Length 1615 /Filter /FlateDecode >> stream xXmo6_} T-[E- Ű#6I4H*nw#e;1s#u<yd_2ƣIEӼIlj9Շ ab3tv}Q8d4[쪚Gg+6\,˂qEp7$I2)$1ٰJO4g>`U%YN6} .$J4 $5I`ӱSk:Dg) "/ZNU~Բ(ِvYq,pFe$k36NLN^.ICz=a"$bt5`P jP9VaSaEI`K+0I[-r;i9~;G|׆^Xwp7 GݗOӠn$k69vkř:Ʌvcdov OSFhnsj_su'j) -kH0軚6Z*k{bv?^$Li _,(+aQ*NCB6@d+̠b^ni'sI&qpZB& q?d`VF$^t~:MQV_U_\c]2p o-}P;L64=u7ԖCmF xvrsB'z/x ];r9˔sM//I勤t)}+a6=_5#ޱrc.fFtʅδ\- Wx s6-{Ĥ Uf%xdW(,sqAdA)l^`u~ڋfĩ fZ$>ha{[֬f\/Oݨs%4o46l> $PqABrg19ʗ=5M7`bxN@C 8P/L;@8p'o4} Vlܣ;G&}1z(t!zijVH3>@57aǯnחJ.J;R8^#R}št y~_"^hQL amXkАke=D[CuE뙅C7nx1$)`bB<YA6E\GX]o|bP\0> stream xXmo6_oI%Y-M_a 0lFK͎ #TdۚBm HsGYdV&EeUYbg 7Έh|>#I\&%GoՖ4(˲ >|\Bdެ)4LuS,aq>+yLu=! #Xw$42eP3p@.@:"Ri>G1[bYet+G}C7Vz~eȮ9򥑺U.-m7%ּNy}Gs݁βq3d_s.3o2<"$.'UN y&R}?0#\Yolt\cihOIL䔂Y$O'- <2&iIFb!rE, m֚hi06z[pFG# 48J-󠦚*7F5 /5TkTwIw_t-@`Z[͆%^߾5^&%r^Z[`Ms8ЬA[#49*}?wjfsȆ9yO۫^ixcQ4kVO-rz#2nBtᛩT9Kn~|J"ᯒ[y Bחh=ih},;*ݯkqs-vPIr rS2Φ_lrrטzh&\oq"h~!?{]QWn9/M[|¬E%= ąȽ P+HJYfd,Q((,&s p+'#rD{7oy*"Nzh Vkʚuabmw|F^K/LDl Q#]Ik!zmVinjp &_bFF/"dC$m I5']Tㆃ5A:٫.HȽ/YN\HYd/}*?IyadއN{w};Ǫv]Д8%y[~3fG[&\ T.NrمN;`&jqpܯjdeW.۾z:50k W'9b3N8t0fll -5aJ]w<}co[ endstream endobj 527 0 obj << /Length 2074 /Filter /FlateDecode >> stream xڽˎ6me i˽"=E@[=m$*;/ʔ" |p8$=C:X ;.NY'lw\0ЭpP~U,wn/=n Z8s &^/z)IGvM:&A3SOf>Lꋌ?teW*H[FT3'(ն ] S]iO?tIjA ] >`,T )(h# GNQ=r{*1ZՑl f\%ΐ="nP}A34u33w꜁S:HD誷*m+\AQ#t2;9`a fYDgo~P[:Xg*1Atx t 6ֺMhQv9LX㔫tyԢNg@w2iU"q_B j5Ye V!M#n|d{tFqj`b&6l֨>@u±%$̍r'Qhvϡ0'G`݈*A^X%%9!UkD0܈FfZş )m K?/nY9g_ɵ*L?'y7YsP2=ƃӊ)P*`ax<53`0ᅯ| $E΍x}ִx}z냎J1,=Fl/sE:6x`ʣQv60IhP/Mθڏu'p6r@ N=7j)W9cFR){.ёiCۮ:cE|רO_ղ~=gQo8N>Ft\Jc uAݡ5r$n@cU-Esuuվ, {;klVh'Lt}%A}%\R0B Yq !*|0k̶?rT:TMhpWZEbȵ*kwzCt﹂Fc0_08޴|QС"acي)PpY% Ȥ3~`}V0 [Aɒ 1Lvh} $T8o}SIa>Ecv5E4]s68fSϋ/rU $WԧLP`k@(ur%F;N\^ha\ϡB" \^=mMœt%|dϤ 㛼!ݫOZwwBV:@?3?q-|69.E{qiol&YnOԛ_n!3eiA͝&_2vC>>wc֪57p@'d٫P\vp-HT~hd5(Eh6cc芜:΀DÈ7-76wܣts7r.W睽kwܿg8 endstream endobj 532 0 obj << /Length 1074 /Filter /FlateDecode >> stream xڕV[4~?"oJ$Ĺ 8-*o_Q%Kb7 bYzo[7W*&ج5=0,ո6Hzo=> stream xڭXK6 W(TZmGɤδZLd%u @Iz̎$A@'~lYڿfp"u!, '+__\\$V*"I"Uzwֿi=Tĕ\dI㙠Ụ$leIp7@;%ùpt a,e]8UN&Le$yJVSf+*hk05m4$=}deF%,|N \ dQR$tepGV72Sqg2jCҢ :?eE-9<̽USjwgYpC3WPivihv$l==Q XBZrWuKځ"x&sо@0!k8(Ϡ}`إك;#{0Ԣ 0%+42g44%iO BF#zoId亰Q| GOq{ ׆=9;s0Yr8f7XƯ'ˉ)]onsuck{)fwOiD}WuY;IVUU,$/*gjp"KUC{<ֱ%6r`,8D;O7"p2WX<a!`[TmVKTZ|혣&ExLѭ N+=i`dhQS3qT0hӔy ;SH58&*:0Op7#1}`,?- `VqM-P6&t!L6u9ͅ c$0rNlBVYbUBXDe:VB+zRC-r`3BPPVcu-`;pӷj8#ָ\%(IY,.#XX IAϛi(:kY$0}7"q%#j!,- w_v4^Y593$T6 4;UXRb_R`LN(8oW$G^&9A0&3T#< " B8mTS-!d "*}U}qI i#v!">p l *}]H>lf;Fa蒎!зab"r _7jd RBLMp4D:ci0D1פC;e,{@V8-'f|}F^>ɇ}jW3 x*.tZ@lħ}D~ o{S03:;%-Usɡĥ*OI#L.oeg6N ,aOO[NjqO~郇3;wS-:1=MpMdx$AVxx+p1iSO)K$ /+ 4Aߕbqq<*F4b$/gE(_$nS%Zymę:9sdKfx 9t=D9G؉&ȿQ: endstream endobj 539 0 obj << /Length 1443 /Filter /FlateDecode >> stream xڽXYs6~[%H6;S3IHBC*;.vA2q|t ~{bOL$w!t{j=gf@8Q<]N.,WPjMpD@xLAUj: 5K'iһF-+o6|`?wZi4T8mڴmmF*I~lƘdt3Ţ@$栌p22 =R1VxDuQJB<Еy8TzbM7jK]E06%)]:u{3Tc: Wܹ߭ I )E5FŚo4eDM~eۣXG` @u>K%BFFvqPkAt6Į,;C!ў^%K\Q`O@ŖmQ$m-jƮ;`?~Z>(E0YLt1lz9$yͨO5ѓPy\uMXߓ 2$|Oj~1.?Ax1k]5硴) rUF1|I"es9iDeUG_yh}1^P0?{|hlb:j!/mq))zzbHAYw4B^Gc(Qwٗ eYuY#hZt}*bgWP Kʑ~O (Dy &mE) kɞb^DFyOzX"Ex$=53e2 ԆL#'u܁]e^J68z33ݙ/ 2M,9z 1m}N,`I[ʥTiWJ eD=fm9H#Dy`gdF> ޠ|HWOL.ɉT!ss=!@`yK\Z%:DW=&e 9L,\ܐp*fڷn$kD/\Lq ŽWljܝrE Gn$iuTVK> endstream endobj 542 0 obj << /Length 1392 /Filter /FlateDecode >> stream xڵXK6ϯh foNM* l%_<RKu3ߙ : O¸';kyu\{ ɳ/ͣfio|%֕4^^ ZA<{~wlsM4JM@pЏ¨3þꟁ?[f$5ƁgDQf( =?릋0* =AzJñWFIOi ڨ[EJwL+e٢VF)&d]zbi=T+<ͲfM+e/ ѦzIQ-pOۋVAFrPX>G[;r'XJIl !6^ qa=6E!3ZtW&1|BHSG8oylȾd[=^- B Be/EF9KINBd*)qdyt]m:H V [{MKMF;91 66IZ^ 6utq!]@9SZ=kT W/8!Jd*Na0 ee]-JEq*Ѝȟp28l"S=У9.YY2g^y`B{ݢJ0;%d->?#cUa._][`eu!kC:O60IMsOי[#Kj}icRMFuEK)eJuKTmfQ( 1GMI1eEOBZ_I9%;gsIc>[J%|Wfv d.25TpOǛeb,)>Ai Tk׎8YӸ &T"7.og>Jibt}{"?Fk<`>gi+QdPؽ*}5]*-\&COUi{2uGLL$U-Q5E}tjSj/ ɱؽf@=6ʋ#u͝$g^E^-8nr7̂L%R\Q:w%ޫj> m΍dZSڋzF즠(w)kt " G7{n+{ItgLst endstream endobj 546 0 obj << /Length 1143 /Filter /FlateDecode >> stream xڽXݏFG#0vGﮩ"],`xmB.}c4"Qx=;ogL x$-V^Foc N̗OZn+U GA8pg)W D^<8b:8a^+A͎C=7 8]տ cwZ.Y& `k$WDU$>B'!M, ik~L:͇ĩѬTN+ 14@7mB;ޑa$nPR͈4S?\`z~DQ#ߑ6az l@O |j21k+ԫ$ +XVjki>LCczaŪwFn4{[_E5\(pR*1z+i^}QާY+ ޘ?|]}ňOnڽMFC!vj3iy˟-z6 Dm%ҽA5v %€ K]ea>饳^*4;/,6ީV'uodl@By7UqWECG5}Ú/]1"#M=i{0b;-[E ќ" 2WQeG+yfIV{$ہۖ3Oؼ7hI<C.f&=}Lewi\x :2!GZ׸w׽8wV7x3o hDP^iC\2\ӽqRa:xҗAMzW ӹ XQ",78P nZCg3Kom&Ӝ;ضSvS]sv"f}tM@#b1hхb `b[JW@ՠn#j(;47aR} rA#].9A`{*j¾Ueu te~>b(t6qfY뷧>1u4=+gT=iw%UϽFG>owKJh5 endstream endobj 550 0 obj << /Length 284 /Filter /FlateDecode >> stream xڭ;O0 `Gx BRK!NhK;st'ˀ;RfRT%NQ> stream xڍWo6_@շۊ X64#іZ2$i]}x~bU,BrwZj]+|>0 _~O",~JpՃ?~$%Q*DgDD"JsXd'i/<#oTc i+L~ H-F=8\o5$#ǑDT,ĻƯnGWP,X塯OV%]Y#q |SFmuEDeY\F⤧fKc )8f=#GG; VA,I+RLj&/e n^}Co4vLTnΥXc m`Qη|S': 1:sNUzMq--poN^+B4ʴqT%J)Tn}'0o5E:9%tquE | OlL}#Hq~ޗ!r@` &:Hh"%t:~J& &Ñll6rml 7G39afb`Pw^à_^sub}~-AIvRijei.fZ\cȴ><VCZk70"H ?Y#*CrOa]Z^5# ~#2 GF ntzKPKXEĤw **Y ]{lmpxK{6s*Y{nl>BDQ&~2(:JҹjV0]SmL|p,m4R!M`kPj^hKY)4e;~뤤97@\6p &0vW:~L7߰k5\v("rCIDCɻF5GĖWݴppŠv铘>5 ״x<>jS98N_3:-yKa4ѣ15 z yK550Y9vBZXzpϘҁa-WͰo5Bj*e ݃: .z@k, !K8v<$(?ӧ A31,s7!֕C{`Q ۩K`L|P np6[?܎ևUܳOHE EeYn)ݿ\ p{v'g}I6ohvDN^rj|6Ƹpwȃ$}&U8$Q^5`Xg)*{|"հf1O|6Qa )';>B0["1NR}F&. sF1i-%WH*[ endstream endobj 558 0 obj << /Length 860 /Filter /FlateDecode >> stream xڵVn0 +| ,^$;N|\NŚm%vo%҉ XD=QOLY0?`$q.uu1v悑'Ż,`8,XؙײG?// <\cf Ye4fIh2xxMXhe)ײq)f t˭& O.Zj4צ"liS}W)îeףtMk*[44VrUk%oQA±r4XC$ + U>B%r+"*,Ays7Bm3'(~:ǔ@/T'MU)K\]lם<ϑ ]9Sq+SRQ||F QHǭ&C#[4| aEkn/0Za[:] AFclY=aQKT8d'$q `)!ysSPgҊ 23y4/+ g 3lZ +{$i~k\bۺ\D$je U5ƕ^]=XT!E}m+_ezJxCB$?0'Rnwc?%HDot[g>C?U/9<sC'P8U}oJiȰb4y+ ]䲫 -55>徊߮>2Ӻ,s zc^趆&F> stream xڭXK6WT֪(JKM@hP=(m%Wlw^i"Cr "<ED~/qqپ].TQ"U*ġV_X/;)g^ڄJZgItmto.+I][8J&Lټ=lZ\Yp(Np_7 SS-Ohpݎ)@xr75S[~V蟖+7ca8TW:Tb3pje:(Ӛ{ NM]cݵ!:Y.Yֱ5Tlfɰw( ?oW*xWJUgHHF뫏w(;ŨH+ůrN}HA:u[6SeGX(gZB+(k˽yŮX'+Vi9~fk*@L幧r0өRwLczp}1JA6I@-Z4i.8)!+jqp˫]5b]Q4,<%7)p=02bjFY{}rI~i܌s=`RDhbaepxd4% @ڍV/,qhv/ۻ?y 1% NyBD2*Ihw .z(u0`1i` `y yU TĦ*Ǯ%XvGpGg`P^{s3sQ`8tSڨ50Z*J’G?a*Lk/q: `cU3\󍽧r#T0ua7r8,i* &'Ђ~>L7pS|T(9UcBd?|ţPGRʊ8:,L+ \zs*pPr&-K9Y pmO6VzDJ$Bqz&[t`(XRʟbOXc<ī.UV$kl( L$'ҝUpY8+]LxRDG}%Bz &{ aѵ- ˕pS8x)D%Aj t:7z~ܠA2L'HWvvԛ6g@ $TJ)$Ɍ;֔vd6^MC!S/'x5 iw{;:³=ZyMaX9:n\ -L}{Vlw '5Jĕ^sKp`=嵊 oJõɑ&!S~ ɴGץ:8EzU=Kqoefc-[~lGˁ@\"7^e&N7w,1F%]@6rgzxU̅iK댙ݘn.ѯ yqd5-POTx]ҩт7n7> w4za= iQ^C*Zuaqe?㧮[W Jx"e9Mat1(^ݐWi^y endstream endobj 564 0 obj << /Length 1292 /Filter /FlateDecode >> stream xڵWK6`+Dz) Z9遶hK$zdЖnR,y~QĪWYW!oom@q3|}x:IV" anj[^U4qe)=^nOo4"/__~^&QPIx /d2߇"CTD Ik[B+ }wuW\>~7F}T&lFB5!0,{5֦#AlO- wj%khk=,ӹ;if7Mc; fo¹9~a+)B2"z7.xM撽61ZUwJ́N,+uVއI6d]ŜWÓ:A |ayVV⧸UزX{W]/d_ktofVg$aaڤ'@D̝?c (wX80'7Юڶ^R0~ȰdGVNl8gW7$pl6!!j[Hs+V`<=fwԝZ*K{,qU%" YifXg0}_( 8A{<\KL1*z,ІFF[ v`'̂kAz1r^{+M+wVmk)rfޟ yBCf` S12zG+t3A wB+I6(2q @ej`N{3Sz ǡw=w/g9L \*0<wvOgY]>wǸqP7HRlWcc"zkuk3A|5RhH~8\5}ѠHH@ qt?;GpaL"+z3>Pz3I0zJ3$a.mGSC%/\X\!H=|,t!f@@bǨ endstream endobj 453 0 obj << /Type /ObjStm /N 100 /First 864 /Length 1484 /Filter /FlateDecode >> stream x͙vFs.jbBYIY=Q)*J2G.&46m$L̈́@bHsI`K-gL8T1)0 RR<3eʁmv䵓*k clyz={ Xe|DKlOM|#Sz0uؖ˺_c72ˮE^Oq̪h_̊LEוQUsFϳj[zd޴Y7ż˳Z9f`P懾P6YP!f?6g'zr廞}0` ݁ތ=Jq}:BJ?:Mb0_SHu_JL譋kńF2Oh燪~kl/?_󋋋ɼS&M;]bB"nx5坔ղo_m|l`ꀹ06 =vTCF}b3\~FqlWl&eS~fxHvLj4<)Ƅ6ȣj4~HSOM-e|bR&{X6_l.eodfo6AcԭqlS~'~75/&ӯeL||v駟 ^g[.i~z?> stream xڕY[sۺ~ϯ%L$x뛏OǙZmәB"lH I@ʦⲻ. Veʓ$,uDVL%r$ھ)MW* ˨T*U*DIm߃8]c7^SǿqJ|1gT*8'*+tMuo ƺ}Xo< L߫өf|$ SX&.iAw`:˜o}S~-0;-2e~bj۝`j#M+rޚ:&󖹧bF'UT6( xL(&{ *3O" "=..&1u{'VEOh˅-thL5imov`_`8࿘v&9?#˜NY6M:il+v\<sJF#:8eBW^à" +&zGب3D{e6y%.4.Ր/Clm4)י3Z_]eǎI u ݍ ddggK$S+پ^Wʍ[x+3{-:G.]\D[Q A4_~rom?~c7b"^}8Ah[:> l~gZ7T@#px9?& "Q3rez5.J$Uң5 0LHÔ+J`JA80U?~aMt"|W40U%Dߎ&@)}A/P}''9)x9tx-,n NEc-b&dʮ.|a)zzG5-h~A.Ћ(JA2?w EО(.?|;v.vOo@wgݹ ̥#h\츥M~W]>btEƚ_Q1,2 7{>oZ}.meOay$Y |}lQb}dy<ǮelT@9ⱈe3N ۲mJ+|,Ʋg_}@׃wx✯xN`޺mH鼁v)|E%{Nt7 HOZӄ@=T WK)+wBSW}+O/_T C݁,?< endstream endobj 571 0 obj << /Length 2436 /Filter /FlateDecode >> stream xڝYIsFWx1Tc2XI07EKB a}/\]gwN$ (+6 gAAZv Yt.ëE E yl'>ij{ė֖oZPsrE|>}Ԡshi[oVLih"g3EP6|ooʌcGn85h兗+nypAk,GD XO5NYx-Z&Oh=ْP?'da&f,jN7&\5OrcWe]](8,XB +\E%HWgQ푕*vF%BmsiAU8DŽZ2- _ L׏6ecF}U(1]GD23ۂSez-JoAqa1Ftpu/U<{^9ԍ5]qb+Rd \F}|_U99uYC3hTܥ\0G86ym&S,xR=*}2e~)hL>tZv!ƞXI'M bNL<2M?(3h{[/.e9, D hU2i$h (n:d`M΅QKB2v'AZIW/jTsiIa;2uP*Pt"e)X=^)&N z;%Cex?Ee Sdkn-Bk+z/N \:.`pkWZѾn+CxYQ P)Ĩ>Ȅfgu#w = 3j.* u (ChAʂ/vi29ۏ7L?p} ]S%sm*%pU`AYA'd$zA]1gT9dq;Nr9d'ܠaf؄6Q}]౩5uyY^Op{INFMAeqDX-YҞ'$  v@pၖgn̲͋:K_+81X^F]."B;|pe1!;}},p)1UU/r_5PF) D>1!^}&(㔊.#.?)$*ʡQR,TA/G`l՛C kG H;jr7+UWp+SLR 9]{|]03k{w֌ܟ8clJ03[0;(?9# ) jw=g R.GVnU[ _0>92*"hI y9 nw G?bNC:8HGT@2SLjQ<0?v@;VΚ tH,{hHb6l/5,KK`3aԻ>~;cn׏<1L"h'7FeRCH^ŹߖtyAV y 1 JUoH k ,IRQŰ`/<l{_ m&* C8l݁@oWM+SHFT'>!<4mwgLNwzZ0K-k˩7SW%,J#8'mqveO9ۚ!pMJp6(3ӺB#D5ɇ h;4u2=٬"7mīTK`-{mR=.j!6$8 ]3AuY_Ep ~;z8ř&#w/H8wA}gȗLg̙.R Hҹw*^fϠhnRz޷bRsfyz%|c;S:76Cv˩"0u)wμHlAU,"Z؊FXò.);Q`W."ލX*+p endstream endobj 575 0 obj << /Length 2806 /Filter /FlateDecode >> stream xڝkܶ +KnQĵcMk" `U֗)jO~9nx/*L), 谿ĭg/&UEPW;m}P&=lJ)/qt95ݞeWST lߞ}{kYH14P}&ʽ{` -Пۚ&ʼC5ϧ^NW,Mu & xeWKι@9?OFֺr(6T~-x9/>HHBܫ$\aWN62}!B<܉Zh<Zw<é`é<],䫡eB E}}GU(!<2šo[^nMx| @6ڇM{ 8 ;8^D׌uw&8{w6Qf4 dQ'|r@ӺfS=ͅ!j&&w"?4lFxy $HSfZ6|%PeC9)E%Z#b@N,84pi]@蓳^a?2"38 뜩E OAV#K$B[{ ʏC>(ǍV;j<񁐉m YJi[~Y?U 0'aLI0RpYY5G\H@^h7S#aQS9DQ?Eb P*榘kQq zm3 C ⣻R ElS''`EMF;ȊLМ#@;Q.!j {|9U/~qPuWLfh87VQ8Fı򾗴 iad n=PPmcUpy5<,v _/E<{r=6J)~O%["`1auA so(,w .]WS$<ݐjnk l~0|ѽ3%^#t evza2빟DM}4KLix~8KV3eK(0*+i¸N;+QY#N"3)K>0 w ,0~9ɉܕ jYMOVgi$  "*M8wF4nRݥ^-xd?X6"N/#!W2k0)}ͪ`Rn S}sB%e0cqP/@l\_n7<E^+/AW(*Om@1ܞ2 yhΡl °YvHuX|\:goJRgUaP/ąą;[%2XD'qHՖ)z٭AguGl F)E<"Y`̠iҝk$ړ\,X hj]ʔ(␳bp{Wn9Sq̩e3ݑNL0면p 4 f}ppseQx&NlBnŠ>xs Doq6dPI-1l~y @rhN88@+\ rsz`l祷 g H2X<TFN ǔ3֊#qWI6GD1ɸmn d%ZJ,pўڻ|#+qR饙Iu|0E~W]Qa[Jpd9(*2?u0fo{ǿjϟ{%e|~$uh1Jj/iL(&|ЦNKLFw(`c$F jWyY?4]՞k&8d"t^?$FVA|^.+IcYp%0J8O~C/DƬE5}l炏 ޾7DZ|ٮg]t"/ endstream endobj 578 0 obj << /Length 950 /Filter /FlateDecode >> stream xڍVo0_G%n4A!7qWcG=geChlR%Gei:[fjOn"|8An Wgs@ʃ܇8/Pֽኡ UPq^ֿ!ϋO_ R}S} " u!p_v{o0.^v. /XrږwOPgl-$별:/SR'RգU_8aֆv0&([70a>K+^FsKH9]|M+˶Uj$sAqp(PǶ64NYMKxa``. ok`rסԛ^=-nҡn2ch[xװNk˂>P |Ȱʃc|6%D=l=5:-`\ 82Yr<`C}Cv5~ZQϻ\ endstream endobj 582 0 obj << /Length 2472 /Filter /FlateDecode >> stream xڍYo8_aeeӒz^]pIEغʢ!Ru|Qm[p8 3 E/(Zq(o|v&&||C,yx|^$AFI=V^/<ͯ$ rIZ3 A$5M(*ل*Zm[4ñQHZ'fLԭx;_H^LTvUSfVs;\sha(ބ.uIh`UV@78% UJ'Y[<= N;C\I(ken/DFO0 vi D[' Yϰ뾩/8zt#+agk^_0<}ɽ@N?mt'J#@E%EWMI$#N#÷B-3ʢu+<5:n=-tr*ͪuJ}TxQeޮ+HDYc䆅f!S?"o 9]arVq R'dRbgfVaROۋa5rˉN9juC0}(sP\Α iȦtfnxu[]dD>"0V;. Yѝ\) Btk:CM۠[ANRDpL'9r_igeh3,\^ 3b:r/'Y8V]31,dhp)M>JY $HОeXǨM͹YEQ='(H Q$ɅK$/]$$V0>Sm/u2)J[ZW yaD:Lh쎳Jd."~WSKx{R6c H3 6.!.'~ۈ` %-EhEg&Y# "\4@b$4 sJ EØ_-%{mqpCwrWX 5coIK;Z4ԛȆ;d }2pc7YќcSգso*|<}5eA3+xĎ\}@ ŻaVP=P:50ϝ2bEyZM|يLV}~]A vn`>~—Q~nk?aGF{Fz?Zi`s: g+b]6=u#LnDs۝H!zVuW-c:lt 냋 nϵ!ԪUiP8maXtw`QW+oI*.J>?sXLSjq FtNLlCi}Uߨ mq0akm& NFHc%h^CsV}JS;l3Ч-"Nrȫ ~SL`8o@<-h>0HS&?CO^6(m3_aPH\=q Vig@_jhNP%cFKBJ!>z2ӛXVYGFݼCatۻńኙ^09|p'Mފ2wy)R o@hӐ!КXŒ\+FrY\NUD]l"tJ^w y=0 qsZyL&KV˥_@~xrM %aJL . pl cC//f!_X6,n^}Dm8t:4?ōݜu))?ZH×ݻQN{A4`@6t "][y_.ZOad 4@ 3%8YR_#j.zG$*<+eAc < endstream endobj 585 0 obj << /Length 1795 /Filter /FlateDecode >> stream xڭko6{~}\ԊDꙮC6v4ȒGHYRGhLܙYB؋ffQj5O{[⢇|ogcNΗ}RN ι[E٬ Lnv4idYeN`qg~yy'3E'uNYy=V6EĊ=*Qk5] ZWX r#kՉ P 4U/>VɊ` \doexV)FuZ QF.pU}F}o`GeMGV$vbbt(;w-  gԗKiY`Mz ,"RjXE& %EF"hB-؞^ۊfgQ #b^FS鬭e"PV$}\Tʂ; !gٝ @R-'Q*iĈ҈zd uұqW BjL. "&47l5o5L.D=fŬC!!lhYTT7Yp Ȧy d!2$"?%*ԅtw*F &vpyɰ5IOdZv5 --~yPD'l 9سp{/5ҚeWC)_j `(tǾ_em&[[n(ߦEN}/^LbDQCvtSiT&|Gf5Łv8Ɖc|(9w izKL.vK%q4Bp뗷,\Dy.N޷Ef:rD^@(9M]?SRmtT uEV ClV!A+Mwr\&myv@VSW;tﱤ2I'Ѕ7'? MFwVadQ4PM[]yF䯞aí ɵaVOt Y?IHٴzFH :q=WT3Cyj.q7Ӿn i3 ?YԔx\ U4j*7W|oj[SM˖pPa/V|#雺XApO[ڵ[XVDPvjh]vKIB\Z1dtŁ'ڹXQn龒2H&kL 厤V endstream endobj 588 0 obj << /Length 2409 /Filter /FlateDecode >> stream xڭYYF~Л)bؼ7g N! -5bLd~UC7^`abW_u|uMjS,"7M`ӆ?qFɺ+x|ݏIQ_<6R>}UW/RtRx%37*Ct'JWQש`K{)M#O(Km{s]%0,xz)ǺkyR7 6̽/eew255X(Cڷ#O5v7NS(O: !1I.*Q,WeF]7Zeg؛3̵]P _ug(iV0Lwg%c?p~BgH_)i@ōzU0wfsfƷlNrM?΃,39J B&t9#/ʢr>@8@:(W ҵi8d;w}z< Ux'fʆ yMGR5/reݏ/zqFz)ﰶHP8P"A`H`b;| !:G19l:&c"UJu0%y1Zi dm̘*G;eߚ3W'Aє/YHqo#k)7#}m DDB$aVo0,=HEJbeb3SEd\Jb  Gbدo,] -W߷ (p /ܝ]cݚ!U>6sQ9LJz'H5rw˖岟w,o̸Eez*8ʤzͥʼnˑDDf11d̡g(L1A%.) \c.N\~G|H/*LUKKXJ&<\y, 0 NíXp[FT9ZřKǠ%̜7>0, u?UY\H VmD ^ 2r(~x婊5ԯ9*Zf_bqFIfRܼaxY*rxHK0vYl69 9dOol {~ϕی+2E5ɺ4u(Ѻ\B{=PeclM~Y&Ht B~ךLy55BP-b_y*&JUV7Q2A fK\ {?ܩ m짿- endstream endobj 591 0 obj << /Length 2996 /Filter /FlateDecode >> stream xڍYoH~_%2P5wH^baqǺʒo$'GR3!9"b^IZf*@"[r\DjTmuzW$I(aLS\U enEtz/1Y$߷?'sFQ."]EIÛDY0,mjԌohi격2a9v,MS=uӠuG]nq< nC[^*۲(YE?e㓵IW:^aqo!j,SwN떈{DJvVh{Uc{W("~`1+GX0_EnW*x,Nqg[8\5m6,bW?$9PyG:>GF4V >QXyVG46؋0oab7QVU /pv8<6FnVsgZKDk s=rPJW9^Rb`:`xТP3ߗ h_r,v-MwtNU;' vfS B4/4"! $+H;8GvJ vu'MKkiG޵y'$^2n'˥qӱ җ{?W~٣Y-7ݱn*V8!aueC0x7;SlNxLm> 05c(r~=l7< / y{be'+!# \{Vo[R*㣘>e"0MjLR^|e>Q؄zٟҦ<©HDa ]zw_J1a@Oy庣,8#JI`R=¼>Džzg1ODO)^o˓NZNϴmk :~]w?>Gj_ɳ:(Sv3OipȥQ/F܀iqc;ÄZ}YwEgSіFArlT뚣$\PS('jJ2E kFcνfṬaQˆV *<1Kaĺ܃LHhB?6Q#N_ =RHB>ʗXJ1<QO1>i`|c'+E1'pFRܯlsNM+#t2\'͒?W7 3Y;R82F5#r_75e2(.Iw4YM Gf\<~EkCo44$ts Ȫ,>$2y@mq!)鮸 DP0~-RI Ѩ٨;nH@q )4},bgY[ϓ)ORL`%$Ġ,{]b8tp$2?|N0ʁ5]DnEXl(lʚ(ֽ{BR)(h Đs\%='-^zEγ9YMiD9fpƠqՄ Σ}䪉D k/fʛ.DFԠMj&8iW f#ǏKgŚxe~X?#{V0e9=SɕE;]^*j'(QK$ZKȜ{ӃK^*QY?H)] +:M(0g w>&T|.%j:̔ېr=MV/&W\Mbƺ/ ByV3edVK:>Fn$Vhcud"I1~02&ui xn^O\ɢSnrmwtO@*wOhv4\)3~ϲra>_Y'L`xDjjϽGCAZpsV҈SVO*/v&u"31|in}ym2fv24iz͠4tѬ;k JI5׬Rds_0"B^U0fL>Ya endstream endobj 595 0 obj << /Length 1835 /Filter /FlateDecode >> stream xڍXo6~_a%4(V=Śeڢ6 mTʢ'J ~QS#y$}wNUs7 j718ףJ薊ql642F6c}p\1"G#\{@L&I7s'ns9=G)m nPwIq )†2{ЊKBֺޟ0Y< ENd 3`U5#-Fm< [5N{NtȈ0 -aqx2p$.Y,ٜ(Oyrb zߢ4qK&qp4<:W飼Ú ^1q`4*:/}\=$ ?Noi79_Ѷ)xN!^Oפ1oQӥI%teѿm endstream endobj 598 0 obj << /Length 2541 /Filter /FlateDecode >> stream xڕYo/Xu_^/-zhE@ic;/ʒn"p8!n 7yɢD7Pvq~?&& <& CӋDo\9߬W0Uĸ&hc?b^. $Uޏ<:hmz,mzFmzTeG GٰaJ8c%2>n᫼>RpԃJVBǁkcƕ0jv5.ד.p//4ay&;x_@;=]~޳=i;-;m <]r 5:ږNxяpfכNN< L~ab{lڐyuM>[FG<;Կ$# 3 E{Wq¤ajZfM%"N]۴cSi"eUi%eWTJ2EQ E?U{%| 4`E@V`Պ;;07H^MveU̍ZvFk{CGy-0H<,+ڮ3.tn_zJfѫ8zE=".HFư!}:UТNGnY`.˩axW#WCg &Y)PpyR휏0 |GR%;2~ p×PA)? bF1`r;W̭%UP *t/z` >p]Ng,.8\' G*f%C-˛'o-iı=)2'xcެ@řun8$([d _,uta/D~ [??WAW?vm(gjʁn tuQdzP9̍@r+[FeBn}uT^(bNX~_N{?H#h ?XGz՛v2,v"nU.1? 6ja9CwJC7$ͼz-a5jʩަlb]jؽWJo'1`-E ԫt{<'fwEūyM9R@}[נn`>: QRqµ\~ /u45 endstream endobj 601 0 obj << /Length 441 /Filter /FlateDecode >> stream xڍSn0 +]*'ZV_ v|[vPm%HE.O44- tO#lTkrvd^]|}К,kLϬg?Wmq^:ϑdfR\%ƹhjw'QԵ}p~qp<,Of}@\~a;ZKq{=adG+!WJdP[8c@DJ'Qh(s$ܡ!0~g~Rv(Y L# K4jhE&l \foe)?hsSQynIe[Worn$(_y>0" yEҎR5 6=wƤī2 sr#?q endstream endobj 627 0 obj << /Length 1384 /Filter /FlateDecode >> stream xKSF -;wwv Y$J,,f\2eL~~nK&f1}>ݾ2r3gVJn/Y3u .g]jlyiYx٪ϙ4󿖿],Dˠz nyCx(L,s\fFx|&VP>.qSz9gHߔEM-arjȽy8B!Ӝ'Cȹcʚbpn/!W1۷wcSB\Y"o Ɲ~ cɠP+<*͹ uBՠ^-Ǚiά{ G` G18H/D)<6bm9?8f@`ɢЇtss]ۢ= خۺC6`0sJ! TlPSx Mܥ:r>lҝgZ˜0ãO&}]ܭĝ.\|&Arw߫qIS%ɶ6MSE MMݥ``'O0&sؿs*M9Siѹj$ xaF.ID]9Wv\zk2riXS(k4玵 gpLGUw> d}KKR^*&dGw?Ds$Nٸ.IpKW_;%DD+<[HUF*RUmyd9B/YƂ;F·Ek _tEaV|9wfHϔ52T[sGޭz14ŇmD`n1p-p S>2rWɮhsZ[ Ng]*"GdIDh5"":DBؖqK)/%%N2^2 !Z2ؒmB|V*gҞD&' 4DŔcLȮ|\q-):4$G% @ݩ{:ٝv"ЬJFNQ^hh2M ߚ%en+]QަQ wz4 CL* aH@s9k9"z^Svq 峰 MyLLϯ \( l-L9Ds&epq ?#4OMkag%9Ti))v98߻$~qIΪPHiqm,0vu<$:) endstream endobj 640 0 obj << /Length1 1814 /Length2 11421 /Length3 0 /Length 12550 /Filter /FlateDecode >> stream xڍP\-=8iK@p'nAKpwǑ{N{L[c5MI(j6J\YXb,v&6DJJ o3"v-@hj0u}S;V.>Vn> | Sw@ v RAV֮@cN `f3 jt:M]+ vuucf`2wa;[ 2<@5 ha=Θ) `KWSg `2:f9Xeʎ@ `7V&G!ßɦ`{GS/d(K)0z2L,4s曺L^dn U6w{. GW&-2Qu%,@W?I:=|  ?psdt9e%y5!k8YXXX@'ܚ^?_;q;,_,>.@w#DVV`9 [ 3=V _ev7eUSP|bb`O#<Q1M\YK0/ w-%jEnb`) MKHO7͟dwh\_@: khvu5}Q+6"Z\ͭ_v?fTT,,{,s׋UsKJ:-06N."N$Z=0xm` vFup-ɪƉj[s8c_#1jl>9jB5CtQ~rrAUǺ|q8lfKu3z~z/WjtSC]aOP~Ý)-Yᎌ\K)O毂R(ЉEѕale>& JY*m\M>TjX=I‚]f'=3ڝrz괞F@Dђ@N2<50+_. I#f^[lJ6߰ldSc fvjb-Pܞ(բwgaMwFeZMX4kb05/w4^*l{ #f;3r ?(/OniݗZ(<KǷL3FTkpR+I"Jew zln2D | #%[YpFF@枸y#ȭ4 Io1|Qћ%R|K ,٣[F^ = ?HBvm瀛uFC3Bws<,\ X1vPڨ1tuSA u`vKVb\A\Lrs#e~B4­o+5vV\FjCnXw#@Әk]B\szRkݚmY\Q6=*թmSaҶRh263uʚ13AhexU-ʾ1CFn<< T2%ʊݎE9ގxnɕ-U .ثA4GfȽ$H^2R溍4ئwN=^|饋o'Ff5t=bN+ $yPQx.bvAGsI.{ й ]}<h=l/p.01Spw!ٕ>)N3Ea)u&wD{ vTw2>DҘ><~fҝ:/bݵ q,3# Ij~&_ȑu R8^{ k, 0*ԧpHnaKm˯KՓPnve; \7kTa._~C qȏGD&釰VŬݶvY"7aBp߱Z~Ur){0;:hq~ 8ĝKjGںHVC7&&E- H~GiTq4;avAC7_.W(} 9q<r2n$Y]Epl*"wr%S [S;Fy`~fi,ׇ&BΩx1 (^/ęMy#1!3tKVtAʳm_m0\Gtx)[mA2ieP&j;E^,D{jՍT[>ѝX~9 t/ɗxA5M0.6|gaGy%[zq@ `mta)2DCsj>$I+ gfr>>Q̍K{Z]8c7&ffEd*Be0!678pmpܔQ\/z.!5T:g_=&xIRĺT3[/>WӜl\;Vf {4IGdR0F #tVv!'q Z2n"U/GWS0-a}3xOpfJ8.lbbuX2pY6?{S^s{w"]; ԩ|0I{"P TЉoj@FU\NKmei;+)V3bzӺۄN"&:;'ԾϬ4e'=5 l{2ʻdK>R钓7~ҡkbc Y3A!xʟhا@͵6,t`9 n)zE9=߶jsf׋ v)sy]YQ&zNӱL.ٝb H~Fr  HLUQI=cW" f$ wrм;cwVB36^9AHC%TQ?>gq|H9zϰ2B߀T3OӘޥ{HeWIux㤐}2CЫa+4LT'sfd;sjm 5Uz oXNZ6 oih3c;^ʤ ?v ʾ0=kDKӽ to!LCGh)#F@:*Y>ӟs8E$X-8F@yTK--:'|/A} *] 78;6cO—CËaWVnAE[haB]YEg/SWj!.sa'3Z8ru!eOd`|}!|7 j\HeՋby$`,l_*K W2X> 27̑.rC.)}"NSmdhwTA hwG7-|r9~[?W'F,rP FQ#Fb=wR( 4W7XYl J9}ㄬG`C1U꤂K+D }n֡]$X6LҬԘ_O\϶*y" SF CNyGCi.;mJ5UKjyY)&̅t>TM(%3le &4o|Q$Nq}<}ud늂,;`oѰdb쳛k+^`?F2D>òV7xtz*o4dRג^ 3P@/D_l ÿjRo"`֍Sg&2Q|\r$[.snt%mooݑ lg=Oim!I;w n1'(&ToMqu_|<\Nlj)ptnW' xƶ$Cx zq:oXJ-[<`GS4iInLvO櫍"[RƥA%P|Q s6d\ce$3V~,AVfϴb2u7 XU{MK{:͒+Mv̼Z18o#tO"1vIY*QfC䮮`Vt#ć xne)b#MȬt|^O Fu +><杈*CTN$n1#JtrP p`U ktag&Kx0]WCWhbdte齨ԥ;._UFk̑}Ms DHӡN5{ Bo= H8B Z 7;#Q`_ TonJ8\UHZ"ӣq5;}O(^ZQHzG=r,5Rkv q&1OJF<Gjia74tGjtE&)) |l5tŷg4ݼ16@qOxn9yl=!I(J 9~)>0-ك.O^N@㧶 #>rn bLpQ(o`#ÇOKTE6F`@-ak1ųq [7𶶑̸.W Mɪ.Uq%wDz<4[WWȻ|ʏoBuL+VsyQ@ ~ A-@KSy&x} 4e9ŕJ]F@p~$#cl9,)® 5x}kݯwiSXjwCLזG[MoDC7szf  q\E8_(ych>Z,mʲxroR5E޳`i#J9` 6JuQ*ZlQgя@avm%V_is&o~xPn\HB&D==M~K(5 Wu~@l T{"xXpj oߥ_?T 'ߣPTn{A8,xWI=wGY׉d꦳rvt4!M~Q>O /k+f@X:[W4l1sC4Dv{_.ʖ &Z~8m\1JcARN6:~q>.'n uͧ6SX pߣo4EF#BWfCQ_z3*N,Ջ(T4IVL8ZNh:UDD'^O@덳J~Zzz EKŗ~!txMv2v)I=I$W 1goYlwt~=ݟal&&=c"q*Fdh׿F wGKPVВX̊VE|Z؀$&@:Vbq0י!-\8"E6AA$LASR Es{݄3_cwcδ`x*Ϻ.ڜĉfѰ)NFӼ(2-Ҏ7T&x>=*z+ƆŁ~R MHQNMgFe8*ϛD+J#[jq+?.]ɋFYsfr'т!,WR~\x1oHp]jbh&VZr)W$!21>^gQt$)8]kvhW(؅ToB"-n!֏'!eu]bԠ #"`6eG\V% )>.ߠi+3^6R1IN;{1bZ"nqLCWzmQ~E' _L"9 ҉Z~/-0e,8kDigK Om@(I 8/o{AST>B/TQ@*kR+ p֍uh^¶$ͼ4Eӆ s! ̉o\ :#F"YG:L~lg9B$da Q̔zE xKLQS2!wɟ~]CӔIZ. /mCl=d^ECU>hN%\ {[n3l1v1[o;[T+{0H>6O/eHph W6Gs2$O9,LvbtЃtlm;"݈{ *fo%giMM Q}Qb[Q$\FR9$ݭvX&͚^8$;= ?Ts{'JZ,@gh K_F> ^ OgX' A©gcJT۳#LhKU5\US>4`e& [c1Y9(^;wse]mXۭqp?wrsUz<8>z|ż_IP6 % p:JD,U䚷apY1'tӵM[1 Y;2YS%;_ 6Hlq+Z-#/ϼ'qt\h2Fua 5 *CF6pe@Cط<+计,2t=⭎aVp5̏ig'~ kQYh_ߧ;jw Kd1}(!hs'qm띅)Lj>B_ c3B|9 W75N%;ɷ3 _YC1OVp a1y3`ew䄸+b>$0DYc_Qme^'fhM>Юӗ^VD;t?ޖb0 y4W++6Qr<kI3I):ؐ#gvYBۣe-jWj?\xuEhǥ(S@zA 3 Fszڿ"Qׄ=NRyα&RPlI6 =|Te[?N':uuV2Hhf< >7)$82S2Gsg+E]Cx-gqr`Yei{ ^Rf^ӞŤoτ9+l-ReV᭄Box JLNr9+W'йOZw%s@ +z.mEBc% 􈫻q<]4rIz"g>ʤCLGǵr *}>YC&-cKoTlh؜x TGt҅&f.j"=17=V`RoS urAk['v!ғ-BAܦSe7UN zB&Iz]Ĉ?#"^Pׯ)u}]_p**`ӑyVVŻl[&@k9hmZoRnpQlhK:^x?+}V0xL+DbSF^~!2DLݫ7SzyAճ"{ ̧]Y/Ws d̝{ib2tK0fHתNg#Owm)>Nl+dݖ3lƟi*[q;\H>X=??׷~C^* pJ:ݗ'nDAnLn3K2 Fq]De8wUYj>GM|jৰ1Wh{H"Vvti*Ȗb]~WOs83P >W?jIa*Qf4})t] WF.Q/l5@T^9/2:q+O~c仉=эWxM}~'yu%$ǷoW}U]OvlP!~5' n,pCH?0a;e AŇj';_OWl [z+NPϞ7o7\ajcYsW -6~(qB7PڬK5I '^| msJ!􎈠{8p ~7T]O\%@q`vrc˛s|rMTw C)*ǷMܟzD ASR/n`F$p͡wʌBSORHx8HS=p4~kh@eb 21 e莔?{FrT='BQ %`*r>8a2*9%.`ܕRpȸ?3<), #">yu휦C繞Y[,S&m]b;츳ȃޔit|0A!6cGf6#88w4qsRe(~ݞx Сؕj<͉kPCtT!9CeoC;[4h}hJ endstream endobj 642 0 obj << /Length1 2371 /Length2 17785 /Length3 0 /Length 19157 /Filter /FlateDecode >> stream xڌPZր"wwww-8̙߫]+ 8330eԙYLL LL,NVÒ;8B!:}$̬ffN&&  mx"@s# @\#> ܜtrZ;m2@'3c돌@+5sradtuueZ;2:S\͝Ǝ.FZ,9@o+!274qpq12v|d(IHm6ۀ23hnnc 012ȉI3896Fm?.@s+Jݟ#_=2c̢6F¶6N'b`l1ww6Ul흍%Dm!#35v311qrpnf%Pv3/Gޞvv6M?z:]NޞT/23 Ʀ6Mw0wh1}3鯟~0#[+?:bFM U1 _@ `ffp37k?t?s t(}8?tV'_ hhGIL_dǞ/tG01~o_d? ?J~Ѡ?{?6GpG3v}&Ƿ3u{  mM[f?1 ? E.+#۟po!?c"Np?c.2]qH|>\=?连?lcc7cCؕE[AuA\&R=W:k26FvEnz6@%(?{).OcN +zRo$ϵwBG{pw(9_!R>KMۿd< k҉ in5gH2$Ss%qcRű Gu|S0Ykɳ8F2$؄@w hVKܽ[>6=}/\;cC.4rdӅ[Y2ʬWuY5(0ht*#ފ0J00yc'pg!K2AV' {jJ:[FY_y8lFR4[mxݒ,jLbvSla.x%{=er-t ^OcR,Jߵ P+e@l8kJ|JܖPӛ{yɆ0#!x௺a2HSƤ""Yj = ݒ K82#'$AT8C;͚wf#*o5/ d~Lho2Qjv B \Y!;Ʉ7ߗuE(n/vlLv&.H-lV0;,2+?[B3tCf'!k"W@=v"  Crr\T^Mtvs/(yL= 6iNrqq^M3>-/~J^]8ΨA D5JOkRXd(:S88HT6e;-x`횻"Sʻ,s-V8[J+mҺfsgl%QUD&:m^mU*ٮ,)GbQ#AVxhm{v\U puى)U;Ɓ t&0}1Nga"D+l"Ljgc1UY8Ct5O᧭ 7\%}ҭp4bn=~5bewUhIMP{l \`*дا8(8t_}u+AUk|PP7|?qc%УN͇BrS dž>BQq`/oC\ g@~%jF^QCnK&lxYioǷKjn{nZ}@m7Jc.aӡvyG!*L^@qzūv8A?nW\"J6$ C@[0:L/fj#S}7YS s'k(j ov]> %t~}d5 hB*>ORx #{eD PdT{ݏ]}]֢ I7&ank{U3n% <|AW GT4ئbqf)59 zJvA%7ە3bE7eK+L6ʭs3ԏε=δV FZ< C0%!x *]&q_ >D`д!|0??66g,+OEN!vҹʀHTdLs`+<><Ɣy*M\Xs>7fֹm쑟 ^Zj*v MJ'P҃ NbGݳ{)P.Rg|[{rSqLSkkx yTjaVʼnuܜ~B" \5v n?g?H*ekT #goߘ-"_M2P}wA>tE19ʋTda&;^iOycg :mCXy7iA6elޑu27iP1#{P+됀TnZ{93Jp%Ɗb\SI/t5GrL?J;وy ^Y8Ll|~5Kzϴ_d3o/;Mb.*'jp~VgnZ ȧ>Epk$VuHmkoD6Mj br 2iU#>ךeDd9c4n:7D9Nlɪ :{s qr ~շԦ oW`*Z&ߕ9p C1#U>ݛqsMƇ8߶xvp͐&Eυ6sjջo/ҟ^RfiF ɱwhҝCq 8[kLm7Sn9Z]JT3=Ɵjf##3-ꕼgN%C=fC"~El/Z`nxdH{ j(ΚQGx*IJ[f'4R*OLKi b<3A@JcPpP(p}' Ug?3 "/וG1C,@2qs<&~nyߑc#(D_2X+lurگ߻8vUТՌϷomwkmCi!c#j"o W(NPA/A6=K 9OP|KVO#rIβǓW~/E` P?dۦMUz7::Wњ,rt&x"3BY]g EF88X#,%>j[9ѥg_鋫c>DH3Z$nL (piQ?n6OƆ(4az'F>Rj*!WwY!wti3s0+m݂ZF+tp{\.YL5 45vipo}tF~d+{ezEN|[s5^- 3YL srե5]{CG>BbGGeB3R0M"oN9d4EsJ2L"4,w-pN >:]n25OS`9K'û6斺%T0⚶y$K+j{s W1:8=VJ{0intY_'C9iAw+7,nz+_A\GN(aGkc׋I(&B8j&Q] eP!%^TG9s@Fb0),yM4FDjtl6@xsu1f KPuRh ^V9&0,k.ԽY@qĖrK1V{4T| C0jϝ7;m1xmGr2shXJo-Pg?;"$G~E6Oղhߛq:Ԉ.#Px7Ub~Հu!p\^G6x})A􇎵t.ke)HUo CچP@ލnVDGOL,Csa8[kܸY2`uVz݅>Q6W#i)Sb3_>OZ0H & wMt{AG xGBl:YuPh$W?*j}jJ$<8+Y/<.MSu'[92ˋ@63l1T@GA!*2}:0js^7i0G&J4z2 l~_1 u;ЮGVFNw `ZđHzz@d 6 $;O2qJްl4"XǍv{layV!kYF9&fIFX}Ϸ @9p 6[3,&m5qMXiAU4.Tzo"f+Gv=wYY\,17W )pQJ,S:2Mq|GI2%іh})7ZO΅`Lʸ|JMkpR s! (UEsOg$sJR2|Iz?˔@z`".Krif r%iݭ z3]66K~{@ W|#gZ:}j|I1A{&8g xt}vidPuØa*[ȡ=6&1K~k= #ԆJe>P^hsƵ5Tƒ. 2R%z&,}q(sQ(dBm@x/is"'zMQw_d4wܾUA5N`ԇʺ;Ģo}[=]H۩SìJ%+xGspeyewA!oҙ+/u4u[ƕ[G=B p:8!z#uH0r :pl YA(Acn_"\xD`^9.d,И?ںjF0XqFb|͚c&˱Wj;!3 ']c9Yv#c$+^RazPFjx(tE9û@m739w;#mEB$bN/=(ilEz> NU䡩kqMyE\Aü: YOqWMk^֤,A8 km.xȶ^gOTQyeFA7WimKIċK_ζJϳ?\2'rw0psDC#t[6vwͺlLm cXdN<ɐ 4Apx~ ߘsly ΏA$^# HO""˜}c2$eȾe|֐ rڮ[yz}ORž)T2PYQyNK5 1 GDgM5 'K1Vx}?UpAf8?Yʶl1| `ke#~Fr/YSռ{ w3"pI_`v"\'q 4f;j$5(rtؖ *V C.D"f"aBvX~ LʅbK6hU\\\6$nҋ\KmkCHcas gA,%}#V?~ѽi vSIJN]ce$ F"X|5ܮŝf`bQ6(L"Ύye3v6Τ}O;Dj6Gg8-k}g*uQ[cb1^vZS7~JsI =x[#:$<+q8ӄg@1&4Zu`\ xQBİo8b7 PPWک>E+K/?{<@P֭~)KӍ;2rƀ0kcԥ; jY "='~mA|W4F<(h NC'9[>cvhk]۷KZKZЁV>}`bŴ** vJ6jEXE.f.ay}ñ<;*ALmj/\XTJZu{`jMssq^tb?(1zIU~ь Ť6FV"Ǭ!>:IYԛ8[anUq3ew|ߺ-E,bn5|@3%\#m?8Y63E(AX(/dˋ 1Z?qlT*s8Iꨄw61%CK+JQ/6g"(q7za]{AHdg3N Kpt ;FW5"5ھ|thy ~K aUm-}-Ey@lN_9T`o*gq|cQOGbMJV^*{ؠr*y~.7[S>*HctD ǃVC)my߉:8NH \<Ee"bUHrtVhjKudq_/H]y 6%dC uD0QvΤKmPGPĬ!"+Ʊ^ж2I9fՙW]āG{Qݱ̥,.L*@3=d>{WS1;?|g`svr_тz[YOCqї Go(ڹ>*.2^Y=HֵBHIA8_;Y|٘hLҽ PȎC_ʭu4ϏKTm\)miqs`uoiSZ0>-RS8 J} R@O|պZ.T%{-=d]#H76ꞁ+; !Ī~_K)P !؀YF}7Cj1QA&_ &&ܟpvK֊jơhҢܹM7b+ћ' 6Ek;Kgw2麺Gԓ3)h^_! Š%º-V\0n'7tɽIdϣFoqk&>Oo_\~"޶vl$81Wk4nwK?׀_0|Jd 8 C<5)1 i7d`ê$gGi$S|V JCV;?Gi<SJoJQJ'e`uܛ&֧KD{3@ to{4yӗQ ~__9)Fׇ:;}$S ѱ7p"% k S9b ̠] ! A2w+zZ؏jjD2ޒҔ)YHX*4FK̅KޔqUҟ 1鲙#8,X/c}ܥ'7e];(,Ca;= b-f+t>) h dOr %7S[4k=e0XY > 'ϗ^q7bq!%`95mT֓`.WJ%4nFdD2XWm3q:Yy! PlRV|!4I3͙Z_iҒRh+ldO6έȍ.B0UW>w4?a,w85T%ݑd9043B\09)T0D獟 4#W|!b}մn*aUǩD2泫 *fX,u6Lm;&ׯC~9)G,X P2p:!J=篐y o8> 2EdZd~!EJq*ZE8i.' j(=tq4Y/DAV4V= $4*)#1źq*/~l{1(z'jW=K B&I)~RLzύeߩ w3%(DAvGHՓy܆&VV{S(;UL9@hkѿ酭sګ[XĬVQ}[ te6̵'M#|ΰ d~:P"*v-W|Q03 W,׊%r@ ++R7f8ht[ux#Z5 ހ42:}F}DIQ8tg+fYR3vMk1o4]ÒdXvǢ8X: [w0@r|O,8! 8qPh߫L0(PtNlͧVOKcڒMR}wZA^NkrӨ=*zVnAGv..Q8A5TLTZi[LJ͠䏽uoL<1?H=|kBo<0+n$jѼ j2J,qbN}!}WvV6?&ͲTb-{rk/(;M{}:$wM%.w/$q=)}K muDxP#("{1;h9gϱYLLX_P(dn7>S^#`$B)k5 tIc!ݪcO>49>sg ]}WvV ygDȱUV:\[VGߦfkՅܹDn? <Dr 0/&gU{ nP@-&Aeڇ9F3PsEèȼg>#쎠F{ω4ReJ?!?v](-m8?\կRPpkjuz /;XM_Z⦥/= 廛H6Æ=<vܒ(F2j=c&Tj{b!rj UWQlu{ܪWF-njHY&*tZ R,L|MNp5Scfz.]DPhWr.ݺM3="vLI;TFPbد>G ^bjuP˂1Jhwʇ"DXߗXGa$J%ٶOJtI׷ ߔjH(FL0n/R洐)՚ V~TfkLC6%kRI)3G[\ /zNcl zg/嫧]Wх]>:VL>ǁ|=Pܴ5d+j%|-n 4;c<mvaSUGHa<ۅ;t [{B]60{kO. -;{R3e!oEJ}IMJ#+LE9<ʥ_`cG 'qj/-FXrrOH,9>JxR0(saD sXGc37re`" =Q0Pٻ`ZR6ݳɄ^3rZoޖ;$QѻO gW(䤔J-2mc%)-tIK~ ugo\جQ֕>p) 2~}VDypxFYe&rR"+t(XULw=:Lp}L0=mP3AKܒ $)E_Z K]+nApKkM*iB)`s4%i턔O:E^l4:o}ev2wQ0c0NMVFt}j+q,ntI]MNج?Ίzl8HE\HV@ax6|\TH- d0d7U ʾTIx e9.W!֑<5/̝I~vNɁCi^P[%6^*&3bCMkmdP9kjb6>yQBVY,CzzaMh} iqbA.%_5qyKzhJĔqP;K4R6>˥*9sV&ق ERذm1&B聱кnhU`Sm.A5Lqfs1I'{E_-wy5 \X#[J 6M'\ǖD__nH\]P?gCr͝Y['/ͯޅ#\LAn;QUf=I\i5c iCn싛r3ɮEB黔u}`G(ړ4q&k#M>s>IIzm~S`kIޜ >ΐk(Z@|v=6o8I&k/1(~Kb1 Ęrm/(lA&R JZTY*ߊfvJuuJ+!nɤh֢L,jIGwJ_پFS,=?8ӵwF$$iQ%80-!ܘ\)) ]N_"ڢA-04qE1: o31Qvڟ>:~IX _ED F@ & x>02),Zc u;D{s\ (:0Zdݯ^LO'~AQҹFg¦턏K&/~ _thVI.kW'ؕ'=hRػ-ŸM\1p R/q<0YGAI'q@7Jj߻!҂C )4um4 ?Mgܤޥ.p,ig^vkWԻRKw̍oou&P}K@v: 7K\xC5=EY1P~d]E Ww*Բާi54hs,ט H'|ږO]mzg~k3V ' 'պBwVg5CdLʌC<ҞElK/`CД.GI6َp9hec#ޥʏ*jߊL{V&3b46qTeuM7#yp%(nT@ CT~ɔ{ '_qh^9@fn!֭IW&b Gŭck(e"3/I?E_}=vpnʞAhNfm߆iNA ؿxFy)qУUf}OT (& 5V]Zg Ҟw>zgE.cVG3w4N& ڷy]5I;aaEJqI- JDJ-ܢ<' d3(c2NNu-Iဿj7?Ic;r ;a6 fpl<^Z ;Za[_ ڶ_)@u3/k"5$9-oCu֢$ET7qSkB6 9vTi~Ryl8V/Z଺@#D%Q\ y,Vd{xU47y?Art(y9jLP8bo2o'Fx0YᯘޠvG%{6l8c<dVV_L\~~nh`Ftu8#Ĕ2>!p@I$5|aIVTPO. 1$ uz g$bޮ򯁀z*] #/Y]>}L&x57ywyN q&tʰed [/[ v̽ )5> W#%h9cq*n!y <2,>Po^u%:h$jÆw Orlbl$RrSw'-z򤚊"bĥt} ± {"gɺ%%MڰZ9ܝe'f꺛'호l+h10@Zdt7t!toS1\f6%A5|A&]#W?\Z )SY؅GGڊK =⭛KFR~ t׹=K(G^VF.k*?yx_ln`o_`¾sZ@%\ YKȘ6`͜6g i !c M+1{o3dِʻJJ ;ժPjà΃2*7z<H 7jФ`t3зsx<ͤEh{x4@ Bjjxɼ&ݴR駟d0-!h/#=ɽ. Lιj8\kz8ᾔV xM{0']U, <ߍ&;5Ӣ? endstream endobj 644 0 obj << /Length1 1398 /Length2 5888 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xڍwT6 RDJD`Ih"^U@IP )7*(U@t"EEEus]Y+yg3}DH 8!0HA 1aHm, tB]`1 XR|K@0@Ujp,[ q<P> [܁Jp  A 8G+!#4AAp?B:phiOOOa+Vqz"p@c8À-!? o    Gb .H$dh poo } BQht#\@u]aNA΁, \ v!@u%# P  c.=!\ru#qXy} Jwo?uF<>K$ ;Z pskT8Hꖘ{AEzῌs5?4 'C ?,a~>i0; G'e1/%@?0tɚ0 oik i_FeeGHL($*AR[?B_-= x^E]>?ԅyt+JG(+"uw_v߀qExA# ZpwoBX%B`qao= 8o֛/  7Da_6–A ,M,apy. K:ԐP|D%$  I}5~("D.@B~@{p>h )0\Gl;CH˿C(LSupA,fQ.axIg`Nmnٳ}j8j8W8b.&q4=HV.]"2dmT9tpU1DvH~k{eI.#m/qMv;L|r}mΩ#z띦dp;W(NMMU|:Ϝbtz;+s|[K[7xo9&G ʩHTvIC|>ּ# zvXhOw-wzrK__x؇7UL&ɷg52j!j)b*_4};9"H»{>xӼVeI(d }4~f7&XM-4*Z麰[`*+÷J|@(% ~$Y6{8FTh'm7H Q}? NеxgWė${򺨈'~7h*NǛz}Zo- ܗ%.(8 ]}D7h-qtNSNHK-%r·~s`eΔajqfw]ͼ`a?y'Wf5=uA_pb&Lt3ZEوwI[V9\&k۵6ej?ڶ:={y7hjrJ^}J#ICH?z} x"7_^EoϷ+jqI|z2CMa=~+x?.>;B"nL~~{)04I7rE]hzcgrŞ,2 v@ߝۋ}EGL.՚~E}3LY]π7mD(#W^11zm[y+` 8k1WH`8"p!gPdaO|Ln-&텇T}W:UV;Fx^c~VxZe$2Z_,SQ? 7JS"Œ-gSowe?iލA_Wg :NSAcg3Ւ>xa\pѳjJޢ2Ff*hշ2*Dk<ꖼQ!E L1ȯ-6;!tKrJA3q1"< ֍} ӽk~;ٖ 'FyQwuc[ęTe,\L5zçpә1A_k`u +)pF'%Qc X*,rXgH;u|"WQkGb^nހjO"5GSvI ?Vy;Kʯ6yJb]LJМmP!G/3$$ג?=`Z@^ҞYXQlrgmVBnD3_hab؍$2J8aڗ338(3&t<3F]Ck*+&z{c1It×/-tӢ#Ku]j5kkw+Fz\@d)ڤn(Y[9n/G&FWc+ږL$K|f>Rxf"H~DA=45pQB;܋\MXo_V)ۙ*3ǚ2܎Rk".0pLMS^a $Ia/8yM+2Z@*a+s^mF mwܹ=zj7g([f Z˻L1dUOǛ,HСdyAJzKh(ic $U̼{-ǶSr/Ȍ:}: w6D?~ر ynK69i@CqgUjP0|9mR֢(+Ei1 /Wf2BjC,! vf$*~MlEMp ,c-pP܊ZbEsyLMt/|)|up`fTbcχ'~kB?X[_lvIQ&"BLcy˷YG+ [ {R \[ĮT׎n.nr>?hju:#QH9WbiX.JZhVpi2/܀SO >Ɇ&%L8,̑ %2s?~MPJ.=fAH5$`UƳfPRIŐK#7d.=xU{ȞsRA{^\m5Kg5TEx NAu?&u2U:[C393֌ |(%hqX+ƧfOJ݂Hms1JTe fR=]X~4!Zឋs"H`{@8.!.1xU:A7K,Dg'դ[=ՠT 9rZk=$3ڜ_%t,IѬɼ3%jb.ڸX(v[gT]FY[(G옊`N8*6:[zk\J];t?sU֊$39;>|g;VY=Te7 2N %_ivM}ݫRtSU-(t)Fq=vʆ9r,ݤĤq8+R}ydvI9M9Le3.jL=xeAVsE8.U\+JNp{cWz%nP(/zu9˴I8d|9.ҨIE6+]rg ')CXQ-xߧ~܌'aNʓR ! UI_űY>VMh#w(o9KӲ)@@ nK!a,S4X"ϊ˯F'DXwooj90a{` L/L9I`5U-зݼe{/xQez_n7<4mtonzC A9*6's&lxE+T եSkz.޿8U%ha誹ȶuF ~@[ϥLnsIz-qeqCѫ\<^3e~F9_\4 t8Driج}5o$*'?x"T1UsH-~^+%U{p#Ywq&aP⤉%ŲvTh4avgja`6]\+3ݏGwsKt4ljnvEA=d-[StjZ~^fZP3#mq7%-N&FCAx,6fD_ZI>_׊(fF'Q ԋ=|O{xJ_uN+3s0j?oՠjO޳* 2]Z d+_?xD9\WT"ܱeuWKXaC>OSzx'H0%/ ~Ƞ7W gUxkWB=p:6hn?9G$9%jJ tn[(k:b\a1=RZ߭մ)y xe+,t;c"[d4im35DcF5AH%DQtD!|  =Nݔ#0z#qЦ-//hrC~6~;G5ֺFMzIBg#WOU˙i.&?pg6сJV-Lt8<\]p_Ĭos&,yxVF Gͼ/ 9Xh%k?R+3y5;)y0\A=)d-*D/RdL}T16SI"wV$Av3/QQ | 嚟\8ҊA+}hPnչ[|2}u^c(h>H\I-uff[`9£xUCαw6z5tz0#Kiֲx̯0H38MxmL}Gv endstream endobj 646 0 obj << /Length1 1398 /Length2 5888 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xڍuT6("LABa0$[mlAD@;%$DAB:D3~{}?};NV=C~E(FAB a0mp>aH4J!c``ަ hPĥABB@a!!h4P삄h ༏vt ߏ@.7$%%+ !`PC!`{!K9J h \!0,  ;&!C-{$CQP4T:PZ|? ODHԯ`0vpܑ(8ij p|@0 Ǣ`0lj TU qX,猂?YvppXvEy}E?ǀ:; N0u? ń$%D$Ł0' Y ivǀy#ma'00o Hh#Q0g1H7~ , QXPMOQȔq*)݀" $$,?x;bQh|~w.HG!'A rt !1! _!7dwloH{?x," -*;j\?3Hs4~egZk4v/DiўvI f&YwT<kGjDY icx G_ + Ʀm1gj 0DxQt_Tո8(/AZ(iF5,]= 'u%/ &5 d Uy6FOl2:T -_ܛ 7"BPpgt<xGBeRIGЕnlx%l_lq Շ_Yoz.Z\f@n"1b+;4Ij!#] .te& <2?ċB\ITj#$>嗚 7 4U[\ݦROi͌%ZzZT9u+^Br4)O=_?LfԢ]c#UF f}d?f|/s/sU{@Rcs+aU:h;\,iX RRl%ux1d"%qMꒆ|KYff$e7Qk.a+;z TL;߮QVz<D,2N|Ns=:l4`Pxo-Wb.;hi+> ?ɅŶSp.wnCe`aPJ^!M$S|{1K gwY2\ =̀|0Be= ~BFǤY 0GFBџŖLUT}N^4\aAT|~40l3ЗNe n]/a& ,^/+z`[,;_`Dy鲅]sp'JUfԂ)Ʊ'oP^&!`#qNOMUyI+PNqahN23Agc߭]'>)ҧ:Msͣc`D%Lu%K:Z$nD N=^$cUE ^q6Ǝ]9k-! >iV@ے U9](WR(o|@"Δ9K̼k7׾L8>׏ayi0Bڍ OEgKׁTS$< .~us%Ucݝ1Uѵ_t J,j ]⃒p7j]@bpTEFN_t$` gaI 7r׍0oܸeaA5YyPA})~iw6s|_+3<||/Z. !3td#d=?pKTXX-G5L7vp*rP٩NY ┪ůjvONF)_p!*&|Ua\[QV oτE\xAGrUvB=t+bŭHvDfhc_,!B=e>dj?nWɻ\ZKk"g%w f[0^ň|Su_? (51zkEWa|f m-8R JڴR3áDb[.ʖE?hkoAXc\fV^,Ztm^qMY{籨|# $ *߭SR3a20Oh{n7}ѨD$q$)Ԃ;G/9 Rڻ^ *}<9[fsL^`-iwmf,'<@{ +VvF,(*Cdg),VcW 8>S) Gp`VO*>&%Omot g_ra:#2"Ɨ 97cKTܣqa^={rÛ iPJ6F[Zիb&WU=B}k--_= .HF,`ZzWMWK'bV[IK_ica9 ,Jh~$3^Õh֧}RY(3q]Laբ0:wR]@g Dŭ37AZhx*l?T "Q\]|!hΖkAҍM$C$Q>A%~bvs#>bR_7T̿xEǾ6 tk@Ԉ1:cm$i9MU}-@3?nx{W8M H4, CY<V('^u}gw2MlT>8=z]0lFڒZR)-gB(V6ne-1NL{c#lc^ ogeծ~Й;d<ܩfp/#°y=܇Krɝe#cMZ_)GbNrZxYr@zNM_L*o\/iPa T+L,iNUuz6~ ,כX_*YU-\&,X9u{ՋYta)L|@!v3~4Y];-=TLڿ ȭ~)&{%m}܄4dTs*˶A[B=ǯ$ AONwew\rm_v?=yyU?3o$jHI6#d4d]+$?R}Oе`; ԓNp)},츅UG߃NiN3TW$]5Yjcij|ahZ蟅9 lH&n&H } MxHzRk^i>p?qu y*~=/Uѻ2_R˘aG쬶MF6/OnK?}" Q|NeiG4OپASUxtI^¶5fh"s7*=|fJ AȸJ(/BOrgh 55ɌjބI>e,<60)_aU.K/v=PX1,42z3>o$@*~K7}2SxP8ý5ɝmh1>mǫܖ_gy$Y_o(hJ/ȼ=ʢ S ^Y(N6oY~qZZ+"׊ ;"]Pn)lP֒I6djgǼ`̜Yߒ9e!17 xA?PU+ٍDv/G?߰?_j_율u++<3 ϕ-'2ᡟE/ʌTD3mc* &|T-Hyt(u1 6~LnY!O$q׹Z}ngydjDLK~dK$ߘݙP +sXIL|9*_ttV5> stream xڍtT. C "0twH0  13C HKJ*tt#t ){׺wZ|{gww?+g (a(^>@AKKM $P#䯛@B0P@@@(O0#@@ PB@TEP H'jkW ..w:@ A0eqœ9`(\v(?; GJs?CQv$ r``EmP q8B jgX]oBPd wr<0[ QCy@0_@# + w xH0B!FUsJ0kBO1g0;aYՙuq)`\$BP0x7t rc&r;l0C@|6E" Q+-F7揍Y>0b'C/k8?S4P3cp8WPD1/>, m\5 ]=e n?i1r3ysw⿪X )::sa/ZWFZp` }Z-5鿣j(F r0[ yP2b Ep0. qd 1!1jC^/?Pֿ'(B @$c,F(L 3 f13f7p_~"Ss @< ` 8Q}EPI;ڐ$^҉ P3"T҈r~zڌFt3my^J*O#^f [f#xcF :' L]Xw#nXvsPx߫蘊wSUnnn-KӤe7Yy5XAw/s):p5,,Q;UC$νRO_eݶu}(JG„Fs/2?mPyYܒݶ*\N8>Cnw̨$T{';[=l(@!0"QJ?`u2/X^HC բ#f".o ywU\ @4eڟvASe|[)\'F3wbqdNF}֠5,(#NUl`vk,mьH0Zݻ_0+>ʬN@Pف'ooRWHͲhE'B yߘk붲jrճ8Lo6e7:=)hrhԧ'0, 7͔aqݶQ.:2*H%A yoEVd+xEG Ive lyEis蒥ƍ8D'nLv>9QPFF}BI =`b[U|(?LJP=TtM )0y y7{KjnyzCPfEg NC )vFϕQ;݅[ =M ԛN9vy"V`̖#,Z&8E}冷QO -VE\ȮX{8ͪ7MSgtǡd (5&twmx X'+JɣC dY;ƹm@F!7 wy)Fy~ d!$gdNZXPW܏؞BLƷSy:Dvjqc/I/}D`wֱc$;=X7\]8%At| >;5m Q??-z+}R*^pzmx̳!xEVm2ӊR5hZ`]0C8BXKwSP=ͣ6BROLVYEnkD z>rLIsTKX i|OXIz&lCڷgXOʂg'[CCs& w?aIܧ  WEM:&49R#;~WI8aF J*סsncij?UKCJn;.ѭ wga˕Yw.${enj+ɣgnMȖ 76\*=*Aky_cKӟG|#p*GpiK/pIB6˾&g7q1 ̗~z\| ;$.ĵ2TXl+Tk6K ʉظI#P7m\~ycOLmAߢ=>*˝'![0@OS@yLgJ^uBt|P_=BM6ơ:FO{%sQ1݋1U3׃C]%yTR~S˩|بjEwߜxA"FNXJU,)1s9 K( cdBMo[U &6,?PqkhpnuWo62m0z0Et(8MfK75sY |{P+ڴƂNu &՗v Ui27qd{s/^W 侲O,jgaLX~)2e$`yL;oX/*ŦnZT,_"F[|8W&4DIa3Sz.4nr2cx'oٝ¿r<:q+.h$8*T7؜|+R<_ 00oĮ?*-zvSmȃ1^tStw"V?H_ϔs_ &?YSL 9ڇ;RP)39 JH&l7_y_=tK -Ȓ,u~kpShRWk5!)Fm_pʩmTHX]oQ(`ŝl?I~ H/LY 0͓OC}d D4M/jֲv씮bblsy`/hWT~W_~0o"K㳮qx3Ch5_k_+sjWЂ|~^FkdnB˝x\|m goWLHf(Q!X2rqjZAߧrM~91"XZ)"'즶(Ir.P9 .6M?%G"[!VɕҒHNow oR_@7|xj(AٔyZbE ._:tϯc/r+/m6ﬕ)[rShwXWKr*wraƛ(USYʟRg0Pe~꿀JGtb7 ˞X1y&pMO6txɄtͶ\ȥ$i48Nja7gURՇލ7qO<ˎ,f(rc`\6|i86`>r%XU0$r| ]Jeq;M6%ړe$ 5'R~%gxiT4b޴?aG\DGpVȉ@ݧxͥ^O"H$g@K3aO}DL=|OA/5*wv?JToD~2Y" N{Ps7>̹JPַ7Ӊt-B`3/NAv⁧9=?{KPe|sL3rwz(\ >'˖O+JÜ 6 .'v䰐*Ԫ͓Koݸ=revy>.$|N2r!"b~JGJtcD]0@z <7+SOX-۴өbuz[M]I&$O.NGQem㸻b>L7JV%kqT.p|׹J4tfI-i|Л J?'`U+5ܥ2(#Oqeͥ9i7ȑ&CN}Q;cj.g"Vj-eUNok@] o<țY㼏-xɾzBh0[XA7ND_Bv5> |{1H$)QKkZ2u60ҽ#?Sh-`KYTQ@݃z>/Te J6JuUR_])Үb;ùC׻[Gb܊3]nGo9 Tw4hUAF깞;džKYjYf5o"AVΟ%/FU%W$\7Fs/W{sܨ/i$p˖&N~ee/և5_(6t%Ӝ WUzMq:w4qFf_p"9ұRVh5/霃I9UMu1}JOT^#LOi KiPex Ċ'3:Ӟfj˭^L!ŏ'kwؽ6d-e&߭DjiUR$R}.C*V&#»'ϻj?NbZ2&(3炟z+G)QDf󺈓PM?=pYvGW~Dbloe(Qg"CVVɖK0]k+M|*_i)f4ljPF6Z Od9bB]b[fx23JtI3&ckIq.=ot3z\7~0-sޘiBfp.LMa+i}4> stream xڌP\Y.;&[pw{p]  :3s'UU^-ۧTAN(fkDD Ubb02322#PP;Y#PmmPv8d"N =Y[`fdE[n1@ ektDsw075sG /s5 kdE42(゚ɎՕڑjdP:\ƀ_  gF@P13w[lkjVF@G1 PmV[OmLL#s l lmL&V@ --s"?9999;[JPEmm6N;@ewg66sc_I;1ژ;%EQ~LN6FFF.t32c^!/1(oO;[; ( prpz{y_067rMm~{&cPڌc0#hmm_%EEQ1g@`5dQ006&ق?]__r#y2_^oC 9[YuL:;@6[U͝hmL-Xi[kˬm 濮5 ZF4Aߐ6FƿV``j2<@h tk 6N (=o¯F߈ qD~#.迈 1#fo`X Ro"F .rE7qQ@\~#E7qQ@\~#E7qq4 E, Mk;G d8sG1pdir2t00X&h+{=2Z&_ $ֿE? ($P9& ";+?R5 A6&@_7.I0Kh ? ȿA5s3K? V@Pt32"8[GM`$9|a$vA1@/o +?+(__]0: 6NLGϘ@q]7#KG@NA VÂC Nf?FTL'W? @>vA\U*or O@C.7rv鯷-w' h4okhQv_-HJ7abO=sɡ l"MUí`P7(egzؐx֟^OzJS{ǂu}Dt*߽,!IQ;sQøww+] S^.T:MW4Kk9KDG e z+T{(OM9rfNv>#'t([ewEÅ\,ڂ+ǀvWoxf,Թ]a1T<ـR lzwmVI񞽅ʡpw/gjپ(DЍ4 rlߖ bڪ=\T Eopu(fw:ʧ F@=Ur!nAQW3YJ[*)BAU$'}qQW;G/sm=5RZ4EȷzCj/B*yo=6zvHGv=*tX{T:Ԯc *ө N!z?=1{M!ta A F;+ f iI?Z`mLҥh.i w ˤ)*zZaq0)R0O5o&{&;%#J߈-%ĸ^*{U*'#"N|$fb,K}m=>o|XX2X ܨ8khNH:F́NtSee#4q/Þ t3MU < ^©vjxLjBgW;< vޝdK^y]Vw| +YlMO ܄yCP އ;ȄLiMiUiܣ!.ZaiOPa-!vb"7T=3jɕ V?˛q6;qgcCpxң  U!wRxζ>̽q9!Z"u#Mr}/"mD;2qsaTA_={Fص={ypSz@:=t.CSRƸ.\[Ӈɻ_ފoSCX[[mK{6zf#(Bgb08 LoJ;DbŁ26lW%t3UY\GvG$=woR e\欱 ;)dO{+p+W )R=o3ɴjPe&VQa[}ƆQ*%e.ӊsmˢL\X X ҢmZW 'i/[YD=duvd]كWv߲;,8y\L0K,oSwPde&״!_[<&">[>uKUՄbԅh>C*+c7aE @+d@MCik \(T!(p y@ٽ,8|2lwƾx7YO_bCeOu K:{ _]@zUC;`ϵQx E55ܶЙ7Yme'=At>l m>JݫLP󋶢2\6Z#m:(Kz~0`Ud©qm۫4u-OmxvV|'vQ^W"'!+E.)cB/hJec"#&p+ w0/-(;i}*r^sojiL}yr/3O`o4 o-9!(Q0Nּ$\Qd'8AEy5$LkF(2ZGJJ[N' ]s[AwMrl  0[o9InЗXɪcIә5') ֪7AGASM{w["!RAݢf ¸hKŌt@D$Um8ҦŗפNb^ʎqLCM*=Tf7Rll!drᨓjsF&*<6V.t- ׻m|Oe|[1Wo| Ew>XmÔB Z1Fk]j뇒a阆p$8FpꟴgıA4 2uTH1&ҹMބb^yH?ԛ{Kɖ^GpHv 3l uۏ p/xsI+!Kp{b}.!R+lI2]H6JD7 CMX}%r`՟yVĉ1Q51XnؖoI͔i3%s1sH =_782@5)qR}ħ]9/MD2ڽƼ/eТV8BWIHHI۱[^΂f&w-lQpX O?,6rIΎE( }Kw5a$6QF$+? /i^ ,`9$ݜجu!w?8 A $E$Ccb5daDWOK _{vT6!%X}S /4C5!V IT[Y](50x ֊=Dt@ UE*Og{]g?'+ax^~2}BtnĤN/ L=>!e1D2$D+˙r8430܋geq \"bSy9J[_~M1 *`t$I3t\nVsx&O@gQɏ0Lw3-hfoFeJ5}^ %s<\PQJp4#|63b3{D$,BPwVw-OWUNX&W.[P&U_N~1Hohۑ4PL}n;؀qbeՔ]Tp_μ2"vo8!2`Ͳ~u~2zH$;&j٘Vr /脆tLWfŠ4l{K{NyK:/WE@|t(|6[@w(I6 T6RNo/3NXm ՉϮQ۟˵{'2]5X}Zv ; @{A`ͯԧ.1dO7E/D׮G՟}b@LJ bzH=On(տBæل8F0ڼ{ʊ_:"q=iĎNfrOsi}>~}1E~Rڷ!R~]wqXϊ[r&AW:lࣖTXA&^Ӿv*eh*7C)x".)q@bg. Yʶ. l7OD漒[Z4PqUMp!R%(x@ʹIμUi|#v|;Iȓ uGpeU{LTd4q{MrM<]javB$ 7+zA䠶׍f<ᣯU$m~*e1yINb$I' 9ξ+"Fc o9M٦<_;IHY b 2q3-b\(֤0M&b4{mZˋ~ ^[WTjWF\@H<*$Ij-O!Bw3 :dXp,Cλb&KA?6iD?r?dh"Qm tzu^. nB(~5rBl\]uQYd=u*mk%}p0+Ե04X;Ar=8<ƒ ~tpv+ iVwc~tx k{ cTؽ8uӣ̋ ]8UħCtbC袲 ¶>^2S*6iEs8zROB;ש@"0G#[8.1UOovvNTm*vrJEw[ 8҈<NA ߕ7w!k7a,%0"? DB%Oau?, 7J(l!Ҏ1Dڗ fr Fm[6UBt;'mWِԚJ5IʉC+w?5+" QQ8լ`iǦ :r  fXMmwӍmˎi.NHe^J `ң$dTо)q.34jKj$ϔԹء_>ëeAEFABю d()9l0ވVJD;qoNC~n+Lln#8ㄻQZ\+q0(]bqfz{#,R k_8=jFխRY\"vN˿YQS`qQ]9"aH#j3߹Cݦ*x rɵL)v塶x&=84+ 1bgb6|ʅL7.*d\n|O)}-"ԺDthIsغ%VRsK)n,p eO*̘U8!XKz~͠Rr <ߴa V\]L RSRg%]y\a:;*2ʃiaKRvBe7gŖ.xx}u"v 0iړ;z0 e:~:okEQYū__>A#Sn*>ܠLO\LhZuῥD1+{: l\AY;d塞S @%Pyk_9|XPgIz2]田V=ff5%dګY;ssEX8ڇjd~\IS^LO쩆X"Hqw7}-/V~BىsЏc b|R;W& ^M'lq ~{mޥOQ+սb^"Mq<{+"~Y>:l\-1D+Z2./tS0ϕmHA.m*7bH!Ae"bnSa~['X&ɴWphhO:;荍l]oru"Bt1}eߒь\Mgh}6:"ar{o7m9ixC!1t] 3߻HͰV Ǎމ)U;xr:vpRqPwwD.qt2^.\ 0r fӒJx0fE(ԮCpnVO!;ǐOd-.i۪nST_p'׭1Lt` я]5iݗ|Ʊp62%{6?AhiuU?\{Hnvp !4 F_?]]H뙀Wmf-MÈFhPqiOBaF.Fבּ,T(]ni)U@ylb$#b?U3="0oeUPxPq [16V\eC[PwB%8R1lP'L$/֙=d1[2fHd$>` žaks?a|^~*ehkEgvq5hAL _"q[B{&sƘQ TUҴGY%GBTzFw8#8'ZV{0)|EMzf*fsߩp?⌛65l h|9-%r%k#F'8*\1DFFzW6C+eorpCh/־a̚23+dӗQ*0 *UT$15JbL܉]3sOU$F38"D=^&/|ߤ/=&rWHNlG֣6D͢A;aoSڔ/5reuRvZ]MTj<\ N't(HQRʇlFmJίUflW%,a菜v_G+nAg nõ ,h3BV(T8eѾ,qqMW^bQH9 J]&lu7WÞ֪S07uN(5urD^:j{˖5}@#o%6#,&whiCyo1Dyt1C] N"naFق lQj%z25S$k̴" k&j|rb2YkF3{H6YN ɔ0/jS7=o"Fn62?^v":s}OMR7;/Kו"W(ovOkQ[e`bqzz ޵.Nh"t8 N;84o[ -ñW<sFs B՜oi%>fǢ3g򹺩Kǥ8-l|Bźis`g(;ҥ8Cbܿ!)'1sp1BcGqkmZդx>ݹ<YF X@*Gp&*_RUc$z-$[՜a K<=&ʷMվm[43d_j[(<%t_uVtCl+kDA֗޻̨c_uۉ{4G`QVZC炎l1CF2ٵR'_%a9q˘}êJpӄ&WiŃ)s̒i&2D ]ǑQ&oХ+79IL=E,Z>ع;&nHXepxj%ufH#YLmbkP%T!xey$'rw͓Sg*˝NB˲R瑉-k1D/4Dh|C, ː> s:Qm})Gw|ŸZ3ezAL8(0ympO{mqh1~\gnMZa=iH{^Nݤ!rmtƵtE_@w?!ۥ|s6 nj̚6DW\tk7ޭ73ooMofPBo3 ^u_<XASͤ62i-ҀkǺ,h:`@vF6z Dz!̲GG@JoK u.Գi@ 魽ܻ̌M G7-vY?>ȗ]G?(q? T(&}H,G\D^xe4|b*^T̓2|+a`+֖隖 ;QKmw} #J+Ct/ramԛrID'!{< ϟXvO[K"Uc|Ow"J3#F;}emJ"Kf&>w͂sn㉱s=L>D \<ڨ|e]7Zr9S cyaX>k[R*n-̶̭Ƚ8zJ' [ 5<ȯo$z᪀q/@^ܺŰf;J)?ƈc0{{%򫧴MK quH}U̸ dU8kEl;,}yvz,b.E%cTbaKdSSS{ٞ9n Rpt;%u*dF%n]Ɍ2-w!T>圓A[rn&Ҙ} WC{!m2G7$!A^ V3dŷ^K~0MӇ\>̱iYq(^PgNr }ˊ"DB3)DRn`QL7~Nujh'Vl`+Ɋy 82ENnUopc:5WTS([Ʋ#)Z`MG\f'QrD=̗5>3+ÎHA@ӝ}Ğ\}Xmfqąe#ä&vNskv?5:A4O|JE51x<>'0jި3fg2fLg]p8b0$-t3i>wb'$uKk m2]\ZcVnU^ҋ]걾b=өh;E]}9=T+Ꮾsk!J w9S\,xUe%tMni Ƈ Ƽ -6Ksiov끾0nWOsDt^{῎uSa%-%J73YSI,$Qoچ,.q|[g5SlrpOSpt^o IJ PdOTm m|2yb'qL.'1A%JRrʳw!Ip5ϖL;ߠ ָFcjM~r X4Js`F||PX&U `>Q4|*k{*]H `"j1X:Ң\tyôȾ-;l'h>'{Alir'ZhY~蘮=VB鮋V% Dl&Ρjr=7 ӎFBf-1y{!9 5$:~`ƦDV>5aX-rrZt/=;^\&DmTSpQ&D`lf f|$vC҈> 0Б,XUT K5t*qL #\}e5!3P|u%n]V1O~%[ZKy9'M뽘1W8fzcq3fv&!rl\bDgcwؤĹj5L$7lXUuO}9Jca(_ojpײ"3:41{ӄv^p]g%\< ԰j}-"%MK{/ q x\R_ ' BVp\jj. i]\xY]]se15/zB*7h4턐ۑmJ-. 3yz-s=DkM\_&I˸zE>aet? W= | g>)|,=j3>\Kಯ~S~&k$l'a!&\½Ж湫+rBb#YN$ ஸT7/(Qީ8Fa)PCe^l]\Sb}p¢@\4sB{x!Qi21.?\LJVa}BAǁf(mFF [ Nꊌ3"֖-A`vpyBPw%~0mcWx?*먠h.:=^E4kG㏤=`1入|T5W*U`I wjDUu^#+7] 8[!m)J3pCe'z+kzEZ@Q?K?II1b}hP蠿EvbtY6|^q-霶3}YktN£2c"My"잇a(1Ҫ#wJ@sRzG.8ꤰ*B[&;^F*{9[g+HH'GhM-npcXO)+9wМ,c=Z&bd:ة_4i`?xe:w;j-6Me}"m+Dqips?ZSIU2aNyhIc$߻**} WVms%-{Vc+Z)hغqʹY1P5~MeDna._f9c yd\*AسJk:YwM–gbU0l;)(˰kM '|N`PcMCpPD" [is ѧ)z09'Y;Lse>|SiixNB1@I$`X/xrsw{i3ˠO;QF_~ ju ^ܸxjƚD AzN7-윁+fY1~ޒ4-a,X{&r'ʚZ0ClI.&;Q)ٹh8QLi&>4o.,-RMm_fZ`2gD%#C%u' ]|;]99xhNz/CmyO"e憚B~M*]Iܲ^r|:Q|ƴj}lьF**5 |,p!x4W շKEtUgSt,!ϰG "W2*#dpK&-.@v%߇R܂% Ij |x%{sKi􀲓CycANȗ,@I67ZL|C6Bt .Rb- .CFx|{\ Bvof41R/48lXTȚ{]֢uoyYqZi ݴjFe;8`$Z(=N! ROf< V ϟAmۖ?gF/4 8Pڦme)Dv<_0zܿgAs{ D^5eu+7m/]ܯo}P_ՅfS NzhX|6eeƭ _\L|#%3rkzJΡwWw9Ko\hD\CC8E̮^Rl.x$nzZcY?0.Ж(gVŒNV[-_ Aqà5Nx=-<~=^U)1~z r}:۹7R׍%OX_U eZcinEk%ɩf雏RDZWrk[)RG*aҞz.ai&@i;fV4=im?5qLMP$ N0|:L,[HXy;0OّUN_>oB#)ɦVp *)a|ٶ+l'x,1āYX<kU㥇tEꍥNbh2C@Ë+ёA%Cj"j(boto';1+߷Sӄή2U 9iu{2 _ړݍjqx!7flv/8[u,:D8mfv'FC.ρR(5&8K2Kj 1xkS}kNPL wl¦lM TVs4+x]8*i}V6uqϸrm\$}Z%X*sYT1vDW?->MItvҬ IgDr76V6C#ĺ[Z|$90VmjV)mԐncN«T'{mȺ/8<7W_ܯƟB3)vX 7Mt5ﳳ+L1G=N/y0[@.vtVbk@/5Ӎ΍pŠȑ&}k-)Vqk۴Bb_n8X" dAKJ[ ~:log9uX[؂@(wp/45 ͖&p[: eivG" b} >+<8aB ky+l=5D3eg*$+CB^S<ܥ'68@WRa [j%c>mZbV#qK4 ZD"XETOA\^/|޸Q!zhzɺ/A$TO]bP-Fkw);Τ}4Q^{5{jo͡K[0bdsgwv/kGw2dSn@Sl]\0HliY.d4jyƜmUvEG:=[?OMBkgQn{烛)5B &bhMO)05|Ҫ^ta.|({UZd#MɔA H3+(iŸBsby@E*ysȼFX^\[l!Q {:|j)B!_U¯Yܘ]ڳ=YlnZd}ZA+S5l-n1.2>vj<Һ c+ @VGUPʔѕ<݋xiAJ#v+2r$]`C5LNCJyh›%+ ¢ <ɮ|jpPumNg/,Y,8IС2έ*K >*%KyiYcKGiyͶnovRŢT#Q[}=>>% SN Hvʸf/wd ZxRKW[ԁE*&*>C۸7{pR9v*%!Ik偐|UYik_OͿ1q_6ωDW e]yO&/7zQwX_V 41)>½@ Ѣgr+_[.O^ٝz?N +\X2:F9hze}nЛX={H}'bK~lsM)J Ϙ: #x/)N "7~VCGT]H}_fEg/#s}L;쟔$R a1&vu 7YN|:wI);8:SBlc'Џ`޸5VIY;|A#K4nt@ XqߝhCz>;Y">)p20Xr*i5R{ǙȂr{G.)ѡ?$4a"> T7PO!yuMU&7T?1sW>Z,BŅ6OH;10aH/$IҚ+ŷ,(YmCWBP!=>G>+ܦڲ0wJԚKtbosH,#]xg98Ղ/Rq'CCXYbWXxz9ĭ68iCLjIœmE'F,L-pW݀vuΉ#/=`VUD #"/M@F`d\Fwׁ~ No#-?D<[7{5! *IgCn{7iZf8L`&J6 Ɩ0g(-fw&tT^,ln~u&1tr1ҒJ/ >3zG&}}-V<_.ukZ~=}(Nd%)@n/Lr-F'-m<qK:0=l8*Zz6R3P9Ta "s`E A]I*[,OP_tL"`gRd^gTN'&aA\/B</A|<֒PmVUN1 4" ʯ栳4#oآjkI\Eӫ)Q u 鳨|=eY"&$VqcX\1H B|LգiƒU,s&E@_A NvP3)(2P o>xoY'׈OIK! qh5,Z{wehfY Cp 3'|\("WZ+6d[`UKd"] YD( 16)~˴Ob:bԬSMVW=I'-0LAX[Z O UA{, 4fq"8XZU%b!'&w!A6_{Ϯ28GZ m/0*ȁJގxOV~SQ"q=NE]ӂwìܘB *k!K{5aT[-/׏ę@F*S[i R.Iڊ}W=dy׬à "x͞xkז!WSb7e(uz"/՛eP0)cHM(]Zȏr:'$nH ׃I@V@`Ǝ$C\q!bΰ0nK 0L,,azR@vr XlܩISp>_K:nE.CFCR$4XKfTpiY 'cSYEAYQ؁5ޅ׵la6Ӧbq|-m`[ףÿ9qa ټ. ΥY˳8Omh75Z|ԡ U /b$gEbw,b 7UV6ܼ}p/O::Xf먛~ ,+l0 ]}xÅLܚ9Eb"xGT=ռ J:ŏ:U>݃9ĦCcVnWJHޅ멭MeÕy .Y)+ l/?j5ƻM^фwV a~Nk(}eSSDC%z ydq76ڿ/5qxIzM=N,;\)?:h )بĤb,glgH@Bó^Wئy#$H OLB4J3/)_$A4tpYCd:UQn8yT1o/5/vj9|̡Hlg߂L%ɇqB'ܜ k1ɪ ]276MDt#(JQU [o̓r kYC2^<75R 3y! /9H9S 'j>s;TSPwHjByћӠE2F_ z"q~ eٔn/ݾIVsY! +g"V_Snr,CP)٪SgH(9i"ug0{o3-b`K)~Q#]Ll;Ld+OcAmY]Q4\@-v04OwN}ӞGTCdÎh7Ogظ̍GU~c3Uը{*kM+!;8q7TvGץ =0>f94i>?q3e"* jh/6zd^ؕ*ݴ,!3y˻ ahpCO5D_Ѣ९ RDO"Cz>NܨyNlSWaU+tcϴ:8lӳ2I>[ S3@ǚ t4%52uNP ՛74svu#Aڋh\t' K/P *A||q}'š Uwǵ09*tR7Vj?Q]qvi_:j0K z.g5MhT 0{crMbkF 49.e#_s[?;?2YπZ<,^_ םG;YARB퀧:i{ǶpVecTHi  ОNnN90򵿵2[9юѝN5@S"'{DS T{%}J9qx5}?] vi5W`^{:d-ov$(Z})pl~V EP'|j[[}s?ōv0@- ~:A =Q⽵3管 X@{n;Q!iݏMP$+,4i:ܐx4Es%/F읲 w8C뮪ʲ%3#0rtgRZ*М_h-Sii/]^nv.g9@ >sf&jzY 跞~_8o0yMsdTGu}`toy?&lBN> kFjа3NcI7G% [ѕ{GBvO^%3Tl`tEƧi t5O\kQpl~*ՀkսY#ge*6ݽXr /P  ;D|6AE8nǻG@ ^aMΗûcOre'Mku[V#ݾVcrO׭Sutà3hMLخvaCw'-clFNt_ g #c}];fWQ6k?8v{R0T^hW*|b4 Գ<{aljB^{)\%L pP WHS] Zo`l>kXlD@щj(E ߹_EG!/C|9-'5H O%,û[FHHc3s@DuA9?@ LT}P^0'dLp#N}М{ғ5 '"|u4t|v4Wl CذvE3630C^X-RW p߹: P}M[tLϟTh/tOUWڭ~'t:NUr^}.YmkGaW,CeOrc@ah? ~T7:f ۗL['3KZr8g9Poz"7Eswm8^+/O'_P2T,$r-|6'BN'Qqqo=5%O`65 tY"MlwikY2ww5hBf5tkt veHv#i &| w#Ptj>%7 N@W ' t!}++l2'c*yI%\ aC+FbZ-@w06dQp̭r>aR{D3Iv ={&P7 Y$޶;v2aI~&R^D͈0^[4a> stream xڍP۶ӸCpw4и. .]}*{w9P3;]ؘYj|VVfVVv** -_V*- ~qgM=L f `qYY' a2(2.T^ K+U@kF`a; jtM\v+@@W*AՑÃ΅Rr]@s_L7ƌ@аˬ`a lAf@{7{s3}m@h`056fw_@'99{- [ @YJӕ`boW{ =o&)QU{Cʼo/} g{}6>zٛ[Ղ#= (+w%:fV,rd`d|Bq1q\݀~>t7!AfS%Ow3_~ O>X}m},j* 7' `c?wпUɕpK.`>/k)9O,@g?raS*zlmxM@^ϫ+: uUW[gA.R O _/_dTqpB0/2yi.%%]\gg/#~'.54z=f{{{~ gΓ "_`C|+EqXd/E)xTEz8,ujk1CZC0?] .?. !wV߅ߕAwezo}|Ov/6໒d{W_tcp͟v~_xWwn^r=^37gW/w!,: Xׅ?Ԉz0L QhcYqp:3h^H/$*iKlxkjۓQA4Th1<ȡV d xU/J>Gg@xa5e5H>AJL${~6 ]l7(+aN]`" b{#\"pԸ)֯"GŲq%P[E7";Mo*e7q.Xr8ig7w[ q+t; 8UئWt.&/F1%Xe x mx0"L~A@ Jsl RRo*}{B"~\TO~Rўp֤QTe1[,̊Ít,Cg/6"ѮNL .b' r+5dRZaݠRI˨_>mH[3ZM ef Ҍ\vT9@_DP, o3sh'єBWl"YQ/dAXqIޒSh瀲hGj~4QCE)$J(_eg%5d„Di'}@#eD͗zfiST1lD-c$aXǪb+R16|b lUN+hU(YӖj 8*)N x}w.ȣN], )9XyoY'pQlXGt#7S jSr8 Zrk;g-(36cfLƵmB?ng˒b;0&jAq)yXv{! C^Z3JW- F\"]Ay F.Y'9 B 7 A~ȟdoBCN-2n.UK4C cjJBe(Hʨo=MG~J"Φg(n|s2debf9hPj2Hh>|X ÔXbd$OS1t#v'mMZ:)$'F\m ?̑#퍳V,hDpq5*aHS6Wˆ~J! S]Q]2b寭$c,,AЖ3vPRʄh=G c2%'M%p7떎:Fd|҄sWTD"u cLȎofFK%fo pĆqxJ\g$1f=LvNB-?KP~xE{PJQi3b{Ҁܩr~/vqF_Anv!tf]Oe 򧚼9|Q/^wJI y &?e#K5;=8{Sh'wv뗫8!?hw@ øVNO(L-H&B0Ϋaoe%&(XjX G݌_rvroDg^|e2  EpDbYpMb9$ PP? _Ηщ(~AQ-Z.kCoHꓪz@b֐ aucDUH=EGf9E&G9[|0-A}E2 漅TFCl6iD1.'^ ,^Jbs@0yc҈ƟG0&X*8Xe=_cHe3s`\eU~ 5s @YMo!ʾp@4PZ# Q-=NO'E'>Ƙq8)1Mm&*Gg M/kR#nCLGU+12- Z,}u!^-`A`N,: EJjKm.NNc,q"0.7(#ā8o{8]Y3/<JaLDql8i*N%Jreп\}ĜtG 4Zꊭ:F]:nգa{r ⵐ^ʭ̇ r A%UKlLu&hR:_>U4thMH kgcD""6:k c\ʐ^CsfDB%~5B &k*$~Կm.6 ".DH!4kѰuB h5Qazq ݃FgBX92Ծ<eD9ZU,uý|~:kj;EOw%2M))I ÎKq)Ck33o9!ذ`6Mi }]wL_"& |KԴ)ѭc~{T rZ+ci﯑]"3k@OvX5+axnJC(6`fQYioZ{*dzxkG 9'2naqEQ;>tgjo+m:`]&Zĵmط!HJ 58;_̟A ~K8n$!I\nhVu}%ү*@LoՅT$>Zu?- Sl 4@q] #.۴5vVW)C$HM6mхϿJy m2,`wD7kۂ2m mfoAD nAluI:m#cPF{;pGŜֹJtߍOlu?ɫ]$dCۿiE}&h>$O_O[|搚hD_)%o)W v]EWq,L~=dDp]N OA.x^qΡ- J&[RF`HlK@o"~YxI$/a6btc#Z,-uZy{å36PVۜ7tsMhyXj9.sWњ^p8Į: F!+-vI=v7ۓt#"! &ǐO $py7vKx]r)“t?󨘶kU"]FRh65J,**Z*ni=2y;'U$骀l5 wcN{ {,AQIYrAg2 ^/]q;[B iUrӽ*:BgjQWFg,&8tZp Je6—LеJ}~}=W9I<<ֆ slJ9?DT`-n Rgm`: E^bdPkJ/h2^%щ py$-ٚt#8IL CS~C1Sje4aE ⃛㬾BU 7\"Zkws釽?t:D+SY<[<0''ٔ9e֙}+3pq@vo Yh4*o4ؘR鼏b+Ҵ25pנsyeʴFbuX KWΈyY#rOʁVvFB?JC i+o)_<#ޅVOtQu%\`,ҝ~jO+/*3'#$:$^yX}YH 唩2pךBaC#Ӿ[; F~He'z NmfY\,vKü;xcS10kH6ó)a?TK_Q#4O38kfe92kk۷Yi>& \!I0JބQ:݇Ibe㋪uWkͨ߷ۯSPP.cxvGs%Asհ˨K;KJ)X$h#VN>Q=M4>p(m ^?Ό q} CK1=c_r긙BxenF|3`cz*~=O3-C*_n^P5mAm}Whѻ-:ՓY\ l ]g+I(%88?ȓHGl ]2Ҁ.m7'}uٵ2vg!VP^̰whs>%;u\Cͮp""ڊp6,o۱g;Q\ni`~VV]sݸS1i5nQyBS8ȇٜDΉ K ewlͶo%ް'7ϳ1slFɝ,! xQx .*22xORjD;sC<_4EQHK SxԔɟp6S/z")q̖$6-vW$iê)֓#%;?񭟪hhH}Ct+K%y XȈɚUv{y1jff2~ _:Ĺ~@G:g_tl-1U gK#)%ZmTDy×K&\ JߎimqdNBTr&:PF)@d'Oq(D3|v\TKR Īd&Hޔ8m[4buxS $qz,h»wDѤ80O?g v%F83W`֮Vz>aЌ2H[18+>!N#%aJ垮%cHWVr*ZD`|1 |1TA.Ek`(=(Ai OM~ӵp:wȐQ4x?#]ybk/IoÆ 3}ͅSnjT?튅RWdxO/ŕm$- o՘_csolI':,DO&Or7g1 ql\{1!g`~0~+}t ̳Oe_7}ÇՙU})0SMlkt&G-Y*E!&l?)N$VGduuur3&Izp?_y߲nX/u?Jj9cB qo!زi9K3#r`("yT~vceۀ%XDzvC:saQAt̮;ض3m1Ln҅{(=1]6 Iynm3R0kmOQ `Q=wkݛNՓHk-<}}dg,"y. $EE6VFN,aO%n\Q ޝ!lM/ Ud@y\yExT-B|- >A$45d&[~"3xXyXuRe9J p] 3v\rOzb*Ve)`l6&N),t^yp:.Č6ɖC6Ez^wdh{R,N $auvuUpp {,HnZͩP2#1Gif+ <ѹ{f/"9Fx\ԁVB:NFmcrOІnmQEBqT#w.FM֩4LA}I f-hm/o]{7{-`5@0*^azܩԳأ?':IƯtD*G'",J=x.5'aY˼`t{x$̏= eH ?}2CC$6K亩|BdG8@ KP)(8_7"vJ4G6߱ Rw H% i7ADAF4s0(|VPx)`~LX%o@U9)9*?0|HhO'>zϰ-&v,/=F #tO3: CyۛM"iAF73_̲v%JooYufPdef<3*2TGl@#ƚҥQd#8pd%Jd)wj|+r6ێ Yj%*C ,x0jrm-)9NEE~zV𷀥X:2+bC=BwX<06 bfl9h0A_;،kdXr)8ȨQa\Ey6oMCO¡HۦM㦰{?faV4KN`0)%ǀQ>Aʮ46[62 -u:3,JGte̶qj^۟t *C \TKGaW׈)S]VXS6|0tDPa6 :iXqVM.n6 y?؝.t] ▰1p[SZ6H%yr؈g n>ͽ|1~4 .nbj}:J(zیvcM]y5qe 5_$-K 3p8zfäquB<,ǎءl;Nґ͙́ 2 +@[f2*cvͣ6Ubg$mwI x&Xu5P6Hg5 e_T B&\(ۘz\:PsvdHDGTR |<%hLrU$q4 ;^fz$y?xw6OyUl)! ?C}&UD,BÂ0w綍yQv1T8J9Ct!w^WdY[A44GhJ2rD(êɵ.,^A1Aٌ@b|3F8f@db%}oc~󙷗{>ezA` ݔSߍ(fS4TQLoL8fcmT$֖d?!*'h/(k66_ґIրAG駗芷c.]^BJH3νwG $!2V;;f5ܶ}a8T+'#~J^yS$b|G|iqAldBE(ɧܡ-ɯe,(^ :URX.8q@+qRMgJ-Е9+`=aۈB{`{Zk9*#fbhC?fi<|[#`5hHMj;BNcvW0I4ev/;i˶̆% oLZ鰢zbŽhN@aMy86Y'vpfWK$^DذW55c /gVbgC !쮲njEotB폊W%Bmc0&Mڳ*2"ɂE AY;th5]YPs;O)L:K-/79;d0]a]qKz2I579ts# U$xo4yXxW (!4&r ʼndܥy!˸`;:V3^_w;>AU#}tu" >Rt!+/NҰRL3ymu3fncWY99[IةplVϜq^Tapߜ{[NWڹX' 3Kb}~NfPh8EhxG #ԧ6Zo9icC]_D~ e6˃٢'FvR!:EB"mB 8J`K5>[R8AI#nk ?eY=; |YwcWqW&[p{f2#}D^M[<5Q4 Г+ =&12؀pmhHvf{(\;Nu.mk:܏cEgtxȱ֚ZO_ǻogߜ endstream endobj 654 0 obj << /Length1 1453 /Length2 6547 /Length3 0 /Length 7532 /Filter /FlateDecode >> stream xڍT?t{twww1`06b4Ht Ht H"o[99y׽Ͻ}g;ce7UpD8@Tp$/O@cd ⱲC0?8)KC B0eEA>0PI $!"$ _#@CX^Pg$j`NPBB;@ `(_!8]HI~~???>7YE !/_#W];oi|xc P Q.>pG;HC!k!W޿A῝A`0NP͇G@p_D0;u@UBU>o W18W~P/uGY9ANp7C=} 9(ߘ3  ?؅0  U$A}y|!$$? P0qCQP~dR# 7w4/"+(@Q 胠_  ']9_ pNE p["`Y]T+U ܡ r})AfT3ȟՁ8B}תAR4/PO@VCHM~ #nPCvC"(i6AP3_&(" yyPFDA@T:BG Q.T!'ޯ^ 0qB/\ za1W`//ֿo[]B\G\5*~zj1'd[~䢍6hj"G:fn)jz0|#[2x[2lqˉ&9N3'´b0[ڭXvk)pT\3e"Y0l"-{Ykܢ?&_*$R ضJ__U82#tZ5 ,,Ph"}%S:oT.<9, h B!L Vsߛ: ʪK mD쇑BgӀ6Y20OEa Nfk7YRVR} ]&M<|_Ck3:^ƞ XS{_k\&1RE6i-#8SRB 0Ԥ,%VfSLJIwruq-$ IݎD'Dtd <|3{rG i෻^'8Z}.HTh~'Eb&vU'=o=.6Whgχn=I}1{0˞z}yB0&9UmKRZ!7iwx N:Z]J {~j=^㩨 Oľ-!L'M"?4T}lkũ o&FQo#Zbn_s4|Q*W_{~s=W 6f:Xq*b:HJ-R'KUNo;=Fg){|Wf*y) 2sa?)CI ] E_*̈́plo9p|N3T:!09:0F3Pú651;įQZ5zcL/V01hf U϶L7f(uE"sv 6g2Je6Lٮf֖O9gxxP)k@pAގhb>ElWAJ9o5QcL=Ѝ|)=!a,hD_)Hkzʛ&hʢw eƪ C6^~zdL} }dͧoB}yFXZ]L*uΛ63<| )eCՈ2tElO?4;uh *b#;8Z>γFF]>%=;s;kK\z4(/oK1kbo)jYVhB A< N#IV܍ Z%@z[Ϻ>BG7y\b8VkLX+,lNmHaY);ޝlQQ[[L^7Vg7){KR>eآ)*ʐ)3y4=wYMjÏ5772&_.Jx nYxTC[vIsyS"bChd?:">B,S/wЮdDCw Kg@2SȎ ~I2Ezz6 ÕX8+ybeS^$ Y/cԔ=%4Qnc{לc*V>; }l%O; `O}"e6̋$Y l.@[u"ܯ؞EoYSwHt&oy囱bҲ4^T#ʈ֛1I9"-"_^隵Z8T]Ҝ٭;C[Vbtniϰ`H«jaj]ϢJg2?~ZV2S*F2 z}J4ƍ:$?fU_峯.h~vqM+D2Eb&wn#Nw jUu0-'Z3 bCjA51: ~c@mCQwFym z%X]w)n5ڤ^PEoKЌuJZ@ )N}h~nkT W@N1(sqʏ!S9hg#岎?]‡ZMG?lR{VN:+Sʿ#xqF(KîܘzEG%C Rג.>\+n`/C0ecK 6}^8紗]z֢EX,ȥ" 1K"9;FF*n3lSD]ׄ׼ʧ!NS ד< |K qMysN@Mذ1WاvWCBiv<^\ '3cc{G`Os~HWj\rVq*.uLp]-š R֨o2zƷ샪 >F-Pi>\1/)Bj{ʇ ~*A} \U_6r}b{e$N\ _veG{%6Чȇ$@RAk CZ\{ZoLW-&8qG3{2IRhO#?>l 8~Cp نIupZo"QNs& {!72?QgE>yK|dHG3 Z+(B4!Vu?85g83j-X@i6Ұp+BCOqzholiw0*Te@_!ˉJiE #9@A~wD.U+})8P|d݋9Vز#`kܺ3%bힻtO*|6}O<TcYLU7R9}o2LT^&)?-BـF>,]?]򫫏 Cl9EOe͙^gAO(~2ϛ*z,ڍr1tU({wbR2&MA&R(ͨOUx+MDV^"[m2h Xhꆭ},XpYea{5ܙ`gam%L>Kx0W}a-Pk9޼+K>\5զ>L\V$PnU0LF*N>)ȓCyUӣ)+V[@Y AVMY~/m* tG~ԛy$|,䦛.4‹@777rSGuqYw90'16==3SǴ@'5x]+9-PJz+t *69CѲ_ ;ŭy)Rv1GZНhb鼳0ks*v=ZP -q%SC!;s]ZEG*skzZtIOYYːѼX.ssd--r鄨 }./Rr|{wˣHz[JBCGf_n)Ygwypb>QhǘORٴy]PzOG 9sėaR!]6mKf?c}4 +GܼU9jhk1OMȃEu))v\N'Lwb,E֊KCLq0%cy']\ě;¨oe&{:}!.QZuUɖS) )&8xws\)Gߏ,`C"/|}8?7K]58Y_3?]YԄQ@v B5B~MIQuGEaPRӭf:g/nM#뗪Gv?6.NTQr2zI,2ɒܘڟ0k]fgE(gK;WJde;RiaI3h48wBħNp (gsҮ>`}|FBB*$Z'1xCr$wMj'̠Y=lzT>и.`f 7 y_jG90#0-Re";T[L" &qnީ/; w>PݕDfbMG]ܭɆ]VO7G>?($"6|F\{P8V?-͗9$y#XӉNcxаi{cX{#_i|Y`Yd_`CxcSyXLUA5UHbssbUs)E[ o\#},4F~aA~ؿcey>"W܀efHX|c ~{v{sWS#ܘHF¦8j͒ze:i +X14sC:"?4>I:eTg^ !cjvT 3W|v'î};n;ÜyYZ hՎlvT2dbۤ1}^15[l# j9&4IjN>i>vdύ3j:pج߳n?W"Wbæu*pq0͛ }THAȷwtKwM/>^㎍ u2w fY0!7n"9 A2wdOvdv?4ټ(8(D:@AurW:qc ^=k)̹>GLo $Q<]Ϥ\ jKl[$6l!i1`Oy6m趻yVpr(ٔh|w`b/ëM]K~PV.lh<it%+}!'~ѫ5T>x*t+ޕ48dM_s:<9?i4/vRbRom=d# %+IڽپPن ΓP"H9x5$iLV:dǀq˯2 ̺D~K 8sgZݼ{2Cr'/v?ӂ*|\jBdB& țE'IaVJLy?x[U_!{UN.۝32V?d{s_0|&6DH]3>(5`\P9 bǾgv3](cKm_/61|%"| [!&GKX +@<_7JS;h¦defѶ?I<[ѺxqSI{Lt)-UX#l2˼~BI6c |D_<-`Üb9*%MO 2/C‹OVIL¸EL\\n5p(Mmp U:El>q:׻S{J+{+ykMg~(hXZ\iV7 ND/3UC.Denc7Gn0rw=SO$Ɏ\³W 3ST'L)$>~G.'b"14G6%*}1qC"z0S™QO\ riUo+ZkHu*I[UেP[wNe2BlZ`MJ{yV)?1X]ۙS@- 7j/CAIq(z@)~fbGW!X sF2< r#ew*Sybn70+MװY|SVwzgZW99G. p 1jHux){LTBey&~I2tLj-\JҦB؇UkZPpے74l32Tx!Qr՛5\$O_yM?͏ endstream endobj 656 0 obj << /Length1 2431 /Length2 16688 /Length3 0 /Length 18118 /Filter /FlateDecode >> stream xڌPXN5{{=kpw A2Mf{mY[9%)Pޕ `aagbaaCT'G:e! 4q}I*:lV.>Vn> & s"@@) r}3Z+//7ßQ;3hj{hfb Ps0]CA#`dbl)DZT.@gw9J&vKcB[\R9Xz8o[ xPU(;2VˀwsLOg33;G{/%d (K)0z2L04uqx7q7ٚ @J=¿s1s90l6Kڛ;]]O 4{õwٛ[Q#= (+͛ daaag@O3+?{9T!~`Vd|Bq1q\݀~>V!AfS%7h~3~?>2x0s{[YF^Z\QQ9x|9lNvn/,*&dߺ-\Jo{ ^s}N?O;ߌlme7zmnog@$_S-_WhrZYW joiO#A.R O K9U\@,FV{;\f6oJF7s0㐱qrLMX6v́.1VᏑrqEb7Y70KYҿFf-oƢA<,fE7zcXtAoYXLM\@o=5#`C6f9ބr5*6u61bGײxKFf`6R{7[ M>V-~ŵL,Wud]y법Y@ou|+7|qm+w7grv~#s|{3ֿm?[opuWo8?Nn@s%ݕ oQohpatW9H\ޮ~kտ߲bevrkZ/71 eC;7/>fno}wx|@Oʢu]HQƽI9=4ZFNdښ >IkUgذ폾OF3{8CSǢD"NA6rNn<(*wҞCp#>2FkDS~^#qe$8Dșz%G;f/d_^Tgs#"SZ!B1>H;MOOAyWz¯9H >kOؑe CJ:_xp8 6ܙ\=VgkZZgݔ6<6Zغs" >OoufEOԉ羧ZP/7tT4Œ&nʑZL}vS0x^ZU)oLN/?ux=<le9M1IbWBG0$r.ݑ}3i:P ;5*{4G'{8l!t59$9U0B+BSyuG@nGa^`"8D$Un,bǏ]T<+Gp%,Jы>aKtzOqjs*-=Ez+_uzuF=kjiQIeRa4-T1^f2z]!i\ߏ6<SlkYשN:YCfrìsa89op\e;5tW* }<]Z nWg;wDR VGeqBEpԹEUP"cdFAڵ~u wXփ:גKn$_ʼnvoEprwFsˤ/p {tdd}fsMY-jJh1z[!D0*2|D/,86Wct8Sm<$W23s#5w/1H5gs|&|Ll)ڴam\+kTlzL~ .+~Ap }N8!YQtl=yŹ9-"_xͰ~jfL? ֡n.= 2 b\Y4t7=4G ,+׫/f|b1l(2q1QtNLLCSP7Q񢶯̤x=!خg# [(uni7nq +ur\U( όTڧ~Lǻ)~B;a\ͥQтL30_ܢ*vLqH$Fz2 ElP 9a\=/4yG"` -`B,}EgT}И&j.QU~{Z(=KrSEOO4*~Φ0ق!v4uR8LNViз:9&+J%UUW0FXr۩H.AI`U=#|ZN!4x|L' ynOAFLmɧyO#Nܕm[Nj1u'&r<[JJаNn_k z-͙!!`~ t`luvX9ʃФvQ!2#e7b\daaή4-LS=@@4՘>uh( 97>K@ ]b,-,SK81 dӯ%C$ñܨʮMzg,C/<ZiN 1>k?=|B^~PwR|ZK_V,.܌E/QpIKftCICᓸPvg^ W^y-xUMc| -CXY$K=LnbҦOLZzqll}`y-,-m}+:gPM )n>u5 pkL7VQ7C`ٷ(NOFek}x-]y\C*KSr}]EFF{@. B FqP3J4}!+ Ҭ(Ju)bRL#0;"Nx+kӡzX-J4Ƴԑ\0A*UrodOByOBw.PD'>bH\^ǝ)C IE9Up.=FuY3^:`Ԋ4Up5?G1+TDɇ,,Ƞ/%T ]_ JB΅hyƱL,>ܤ$ⶱ75+ FBj{wnPpQ`7=i lZ)8j_e { yn8_5J6쨍M0%vİ~E4ĉ@~9* 3b9xފ #M!lX8sb͎X7m2HC[0fl5$ړ0X|[){h88”3ɖ!j@=G?m 5G.ko8 ucoT=('G0FBpAȬjGjW`x{:>U] -AGNF7@S0V<˴4͖I4cC>"dH,tt. 2}_pU#ip cN.#0,I6iZ2¬yz.ǹQ?45SF~J0HmA$0sAe3z {b-rFpmr7 9/r5mtҞ}MF+7~O!'A^8]\mw>ǦEsf6*pCA`,y}w;sU!Z"U)KOslQI֧}Rи:H]^`o t裝 ?x |  M)%ȑ0h۰s:|/ɤnڨꟁn ?C,nl !T.5FWK>hZF~Dd?l\`4I+2$f 7֝LQ`8piۚWIV:m3jaQ?1~WtRٞ{i|(5?GV@Nhh5t,o4P}V$=Au&vₕ6m=?u4taeC/tb(d<޶ḂYSN~(xLANpՇ Kt/J3?4؄/,a"wDӑ  g蚻M;UU'U j%!oN*' e؎ި鳨#NS*" C$:|Q8kHnE^~/d'd oUڛt^ÉUqԖ Po6TAT|ӎ!zɘ /YUp4`%[6@~= ]rv7FPw}庎>}0|[zƅs,M'n S뇣n6S1a9oS>r]lDĚF+QzwcaKn|E T%=s:[˱#aeXnF%x,xEFv?6ޟ_ջY\m#S+Ao `:Y"gg7b|!vn/㢒N]svø s~iNSa)m7P_rc(}wSAX"]KE37qjƆzkخÏ,mz@_k;^ED@2iZh W(#oplebW.L׷ B|Xo<8Kv X5W4[jKF vYPf4Mn$2T]Y|;G#ldg0Y֞o B,ׯh$mj}W.~lQ>Ei=jo`ݢT1!38M}{ME>夿+RОW:xdF0#?hn/%n>籌fH~W4>*5KX~ʽ%H#6c >´pM<Ӹ &<+PNqh x,nnG6HOҵ)`'e+T@FzXS 8Y)ۄ>"&0~јGnnK[=aqr> s0|#ָ86MB nkkx➸UkY2 I5}YQGyCRbV/ Ie^pdgaJH^ h2kC/^Ҳ7URqK7Ulr806TupX%,ͩ0k 鏻SOhix"!-2mfBY2-g$\`r Y:Oì7 /^f`̵}!s'c9#MbyCL$Rt _O2MSM|L3eg4BZ<,.z}U*Pd5`-#6tNC ^8 kJxrR4pl-'bX6!l6UbJgK,^Fqa,Hu,57_ AhjƠ!@ֽKj/[C^ȬfkV#=b(/M$Vh(^8@ݻw=Д,1&k Ї_dc&2ɑ x%#}Wk!‰׎(^ "I@~xy^3yVݭ/+T#r!@SS_x7#{(|W9ps.=63e{fa?pM83@Vi2f1pB5JAJp-IoOVh;^= Ki^z9/HF& i=*0a'1^ = [ &ʻutxԀg"hOlj&GTb Z߇-[WL??K\w> FոE Y+/ OM}\LԶIkK&Q߽:P:OX/ '0z|to Y-KwS\.yH6 ɷ; jTx14M4n@7W.3?_ݠl1j?a<4'"J&?u^G,X*™ Z_A'{U!y1\(<P"WQ~T^8~ekO:Q$PUc DH`cm ımBPx{ԥtg>}lۭHA붔R&M+%|#Pȟ(\,빦؊\Yѩ4b ΝG٪ "i~GS;?Nh~Lqj)dYrgzq]\Uz׸u4z8$;Tbw?φ(M̹E~SZ;Uw;C`-owMہ0[ta5c=,7 ϝ]득35'}+%r"U=eVYBd\:jX*Kf駖L:K鵼@<#"IA\9\l)3`͛5A҉ڳi.ru˧trkO8ylu;JSҌP`"8qf tN)qӐLJ=€ [fP]k0Q !0᭱=MNWK'@!ٚ™Adif*{+!3ƈ Z*g,n~(D{*O"Qz:%^]Nqd/xr̈u&r'7r=}A6te,6fq M1Eh}n#27fKȍ;vud~ǃz c#b7 ʅ!;4ʻϭp0 w4d9)*p2̤~Nנ$gTýTT7W5BfSB_9E^wtD^0F|+̡J!HtWrj V뗛۵$O^ΘOٝHPz ^5"̀iց^ʐm; u&A?={ʓ;C0218B3#(N7 !^X>7}--ʾՎMFʭ"GͯR<<ؒjͶZ=1h>Jl@6x@G)#R7MUw@ݓShkj]kE!jP&^F+7GICߛ;;Y/L9㻇%_A^*x:P5c ?{= ScHĺ܆$oaA:M$vRwtYao)Y;S:9AEƓn \%Wb+*  @k5])uO< o/&iG79!Yɵ1.咴@Y6:z8#^)O- (d3{ywWin+]0 m`k!XHyI2ʌ#lY{!Ɉ"ɑ%oŒuʧ/K NjèTsq8/HS@~} M8zE2]\+◼ٮWx Le3|k]vBr:'xz;.bi5y?T95sVM`Q\ i~oЕێ(sz#Hi  ?Ղ:{jw4Vyɯ HfcՉFJ[=u@ A0F(.DZ1^,(ϖ[É._g̉ش0)u C7Ţz9|*, #9#ȧq@k(ohivb4kE*v-}_p'M)7ߩg0m)ę8"UO +l~w'cX竼9SNt]g M;PHAĮk?$G8P(TESaY;a(Y?CM ǼNŕ:.ђzU7߉P VןE:XYRs~W/E}J)Pޅ|a`n{|Ry[ Po{`TJޓ^ @<"b74IiVK3yAuq6OѳU% H;Z^{¹p~׸K}|6 'P"?E/3P }f~NG``_&*W3lC ^=Ԕew'5y]+U*$ wfVi;5]7/h,BTq=iYfP_x>31ujD<, EqԖsGΧ*ޝ9niE}klD!ȢyЕ&1&E#7bX:DTd-d9GTŁ*@*=BR%A].v]Vm شx 痷{\i1NvJJV*?P.sisaFDQ6 w.\zU*D,Z3{8Հ|d6bY];iR^^"~{"W ؃`%%TڥA;h0}f,'8 .wAFtmX*?T4 )'Y fgfҕ8.K'BM"Xb{OzuTFwJƶwtRknFgkHa FG@?W~`UU^Ci70g f8J`]' (z&_:Y)x6U8N֫{@Әvb7#=GTc<#Fa\KnVFN5:Q&"xՙDw^[ޘK\|@aZIp0R $p.s9x1K: )(T>m( wYRh31R 3kr%Ӓ9.8~+@#ޯŁ>x% uPt=b/ ۹ura_J@Uv-Ҷ}Y H[p OD+Taۨ<\Q*"P Cy-]8,XLqc,$&[:f5|ҠB05cن/ۈ:tpg|b.B8ǤhsG]EH׽/Ǡ g{JfSmNZ g8 ]1u;Df/'e>\4PNnVhKƑcfUWL;X!y8nՇoV\\uGw tk+b~ѧzzx1Oh&HQԲE$o8@;8Erۗ t!52d=ٓ^ȼ]ʝK:B3$Vzy Hd#snNJ8^s7ğdy_؅yƆomKGm/*K/}jq˦娃CuJ5OlP+.9Kj轵Jp=͐" H:L@CQT5,Veqa;!`ً[P%6H- :8|VPS4|Cl5b ~hWWzY@E3~|:rˬ. 쾧{·_0łS|(.95 C]/1_lH#g#FNdCC{*H/`|i**ٌ*vn=B^68iJx,>5 C6Ć i πQas6E0ܣjH5k!klD&Ut6k5&H}**(E]-rtAgս؞ފsce]4Eees;գ !NW\Ee-\s=Af%G*sG+Lgaڻ}̬h+jIe ;aC->*I4?QZ &,mSPI5`iml49>{FU[BRZj]qT_ށfü֟VbL=cx? m<1eKV<8l ߩsCnB|9X~({gd{kR'%A_e Wr19aMt誠mb(S]7-; Q!ȑSX)2Mu`NfdvRLyp6AW+ v탋2 e;*)ِ_VպehE"ׂNdB3*1G֋Q.ןoe`c|*_A1 ? 'U5ߙ~ 0ڮC4;:R[jyH92e&dk+w4>sٞ #vQv{yZH 06er#I %p0ϑ|5i}{Xmj4ZNTMDwlܕ{] i[{~d:Q Yo`tɁ_:(~F3tkHMq~y>"/L2|,0nft8F{|?*%pԄmMGcj z{{Ske쀱Rl tpG}f0u"!'zȼIac? <0P=>jhCE,B-KKh2}wddY,J/9Sz7SS/-$0Ic(D2S으4%jqnx5hb9lj9Dh(% <8Oof!@W&E_Î)|QәrDz,;;߅6lz S9l4؇pLhSs;ޜ}(`Ɵ$vE V"klř%ÜV5!ѦA06Ӭގ#aGMԦ-4LP!VD\^^y1Pބܾw?/[/!5BR;3 l\m:YX s1eZGdSTl7>۠kkPvr~^|%"%! $K X1!S'wډAT7ūI>q??\3cf>Jj|b |o )u);|0,vЖ/t`XhT`]Ō8D1SXN~ۮhd*ug90K)$.?-uzpх@ƿTFA;.i+128!6GP/Ucb꽨wQtE'F֢MqUOɩF~^T 4C̻ڜ=}=8U ./&KZ1#FڅCp"t`؇EA5Y!PUw`**R'w[!}WRBDV@]JI=Nwᵨ'XK}E\2@. ?WyС@no9psU5A?_KŽC+5^4ہӌLoff5muq~bsHeh7- b~ 8L:P$+(1tt4|KoP|O$݀A^#tt ׼N@l;FLW[R{=6kJf{: Ѧu/z?\zf2ĠS,8Pg#y-vU!{DLN 6=D@MmΔG-0d~{m!0qpImD8Ǥ$dcc]:`fwJe٘d^c47juNGh#]TRieoUN3}_}^Eړ9,w`53n_[1T|& WyZI g7䘍w1=s0zvv7`9tG6PRͼǽBd|x )^QrTsԻFܤ#X1mp+?*3zBTI1lMa up?Ck#^Gz~V6aaoiT< K;1s#&jF#7P[%MH=tVEFa/m!hMÈ;W'v U 3PT`*2sYj<Ʋ}I\kXeͦ(BpLF5H/wVh)FdZ+ކMK gKyqDRh4ŅE(ђj endstream endobj 658 0 obj << /Length1 1580 /Length2 2947 /Length3 0 /Length 3946 /Filter /FlateDecode >> stream xڍT 8߶AIH'} 3cA;1; cfbFBRJ"!Q(I$(:8ﻮfGF^MM2B 8x;#s $SpDC2B 9Z   &q pwG" pހ `A$C")Bu1 B[F8 8 X`TD B^חJ%!a0:>: ؁z#Gh*<2/i'bt4 À B#xd؛[$ll-@ ~ۊ^O#l1b M|,&*TU @x Gqx:0Ahh­(2DPpai5  JYG1ރa[O !OX>7s$iі|@*õ0_z`aD a!$" Bca8,PA @%_ x^3;3tdpCCϏü|O+v295(#eU5u@CU~bmuiNf-}o8h[P~u @_77B7g?iLhx]~8|[ҀR߮MZ8ZT4c8 z nlŽ: [Ye/$.?zP Jn@H;W4&`"Sd2:1IUCA@j$`*" ,̳~Pls"D D > `FD`h6#z* h0 =9?u`T_2KwPa*3; 7V{fh2@ OK"F'^T?(1h:o\<ƢAmO.1nĿB5_z'Y'aiHZ{gz˟)4ձ# .joJV~qS]N!WEe[׹?DvEա2 z^ԛKS&/i2]UceP7&61K:29q(S#πM"+OFE{Q:l.:=G WN`Rq87`iU\=BV`#_l,s1ﰔ3E?<ĩaVn>g jaA I^x,FTN)Gl$e^ۆW3F8SiDsr^_(~w*wYct"|@#b5]/C7n7y Art% kZ(x1*]loXs:=3 f2zbVFtRb$ UZP# ɤ80 n[8eZi4몗X&2JZyҗ}9RF3L=ɌwtTdRǂGmp|颱KHfyGzʻvmHc)g}PE)%/:iZZ\?rHLs!^_j{Ⓣm#Z8`[yw#wQ?yu2lay;l?L}a^P/[*39%JԟEכ^cO ^_[o0ݏb]vvGK>υǮg䇝JYfIUKL| }d8] sC/MGuDtwpխ3;o~>AZe8$ߊ&g0kT){~K-lGv{Ep &]%+/tGD?rYc¿ZE^%(Ur+84/ˍF B[z ;W$rTrv6&hSٖz8xGDqs+8w1j!3?E.uvS6-ENޣx5łzԓ&@Ղ}_h Hgxu]pU˂O'\ͼ sxv_idp~;? [mkJ>/Y/䀡u빟EI#łA7Eؒe*4LcB޺֖l <ۃ{N9aɃ1 {#0K9 %Mܾl-'~t]gKfwsrڱ&"Z#\zKvIdpVjY.8EuF2KפMlK"}S4숊p7 ?z%KkIkQf1Q[=.U>[4fns 01춻c^uN J[hl|!|`Z^Y\5KƩsg*4#H)߸\:g~̺ao>'xK!njP"?tSJ{ xK:Q>"}GWZT= yfDq뼺B\;__s$۪ci\Az jMƹq"ĺd+ .q|aiWi}>M<ݱ"ϑȞ9ӯ|^[0=Y4qcdq> stream x[Ys7~㦶<@+Ud+-ű-M,)R&__7@rx"Ea$ FE-x\PJ euB-h*$Mhiv#JpuA0v!ދpQPrjM 5*s\ruD nAlBWZF-\㤌s= 5D'0 @-`j<0%ةj%< Z 4LIh,ݻPw|!9?t~i{W3KW|95^ȗf0c@3׎|݌fc5W2kHtGx&ž ;33>5+֤YV ƭXmj5FgW^!ֻ<sV,`q_V-l1YVS\fK+j&57MX w6Ϡ^ kxѢz[kv[eiY`0']h\}r1~rZO~%>_ ?UO~Ӆa;:;ptڌ2cRE-LjM+yW{#!>?n.P*a?]_/IfLUzi?21Z2k[aKrb^@SH*XV+h*ZFI"Mz?"m+f+k4i}UTI2dPˏLk*lT{ [0Ue֪UlU]Wi^gԭNtTK7Q2fy =ɫ]e1397{R MgۦUc .yo6(`}5EnE %h4a0UOO"O@TAC\inPv@=bHS;&W@fؾ 2jQɄB&bEt2YV'3LUx66NϹDiԙriXaf7Ô\En_qLX:7oi3\KSfs#u%`SsV@q1|<:qE8bx҇ѱAxH4$CԈц*U<3%4(T)0 Sה-r}N$Kß_'c+QpSG.˚LLYp/B|o[-^,[F\}|qj垉i]pDȷ*1 hA4@,d}#DZEo.1t䀫q+Fmⷢ'l/.x6%{~Hz}\CkCۉdԻ Gy{{ã_>gU~XLp_ w4Bh.h|B߱݋'Mn}wuNɽ~#hҜؑoCqў|&cNvGy"O@F)?3ٓe_ˁ yьzS9c9wgr"/_oU~)qЃhoa7[׃ S(i#(}@>z"/W|)_&d ; /`91g.ΚP Ao!_f<ݗ7NrmĜ_4}&gsw7O6>y/O?On T3 TsO(;J-vJf"E_{~6[!ʌZ,n+6|u [ =nePƠׯ^=:^o9$bPnb,ќiD6s0NewLu9gfPy$۱⯡KfG(ӱxO!%rP%@]|~T\WgjwYLW\b+g*]9Cvݙ"#G$8W[sMFNVܝ+Pn2/ZbKr*%C-(Gʧ'gˡxͼq?3=N6E endstream endobj 663 0 obj << /Type /ObjStm /N 100 /First 883 /Length 1850 /Filter /FlateDecode >> stream x}YM%5_? /UJ "QTĝ!Q{rowWWoRNurʩ֒TR9TZMIbeIR[*>JI*|+nXSJm^z iˊ(3 eE$bT%pņ=z 2"' w -'yId$Q+<3M+skX=qт ETqh=IMpQ7*<}xNI&䱄(.XG +IRҹƒ`Ȇ mpx/|>+L^k >eA6 St+7UTFQg>7,u馲51Yģ$=) =j qcJ eK:ˈ@ .FikNZQ8i )c3hΤeSSoTݫx\:_LAqqouIUG (Xm$B6Djo@F6D-Q6(T#$~6%7Ecڝz J=(TSPVk}zM/??3:w{OlLۻwaO1m캽|wc,wPW,c+t?.|[3q#`yZ_i*K|Ŋ㲬@QK .ÊrjXĢ+ņWX굯y,N,mkߦk\\ wOH6#b(`4G{&IG&ĜN5O&&;IytH^g6&\sИܔIn{%?)w$uŔ:EG`{i7b3Hu>"F{hώ%`ȹX漋_O^}Qw,ʎBˎI Eu0';zTxtA9}w=;$;'7cW\ԞLjoƺ*GTI Xa|$<o.H KX>a%5# r{sXQV]bհdu}QNXlXyպ 4s%:,a%QxD9aaf4:gk_bU6W}]^yD9aF{]^k{5x_#ޫ^w'G^/,y_5⽩3.K޴%rH)7%ݙG̏e{wȑ$c;dYޝQNX{^%⽝1/yώ󘗼g{xog}K޻#JeBi{wёcrxi9㥖c8rlZZH˱i9^j9vZ#-Ǧhhsqmuxi9;du=EGydGy=n0Tz]~%]:?Yz³O˾ҧ>:#Syԗ_yN呩DרR endstream endobj 679 0 obj << /Producer (pdfTeX-1.40.21) /Creator (TeX) /CreationDate (D:20230115055216-05'00') /ModDate (D:20230115055216-05'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) kpathsea version 6.3.2) >> endobj 665 0 obj << /Type /ObjStm /N 17 /First 139 /Length 638 /Filter /FlateDecode >> stream x}TMo0 WX_lKa=u=xH vߏ|)IHHJRwiPAt(h`%8h Zq*(-k "aAidÁ2֐A4&Z%bݍ&nIG QF/dYbޛTz XS,u%, a?rW!꿯fג?l?f: DtxeޮT՛f HcgMUl$mߘ <16F690BB684E69E7861A5878462ED609>] /Length 1567 /Filter /FlateDecode >> stream x%KLUW 렼䈀" *"B5MtԤIN@i˝M:kҡI;|?/}97^XBQŐ @&K?d.]7mn]}@BEuJP @9`/@5`?h h@38 Z 6:1 @7 }` !p[Mt[]+`G@;8 e# (W8gY0 ΁)0 fy0 .90.K2XWU5c\+`7- wmoa\;]NI0 .+6 OdMpl`dps'z1z9ssXϱu[_h}\, kUA388 f's]z-cMiAkeL+ʮ3?#LL.g{3t0;$[ݙ>69n6$[X[w"92ލx/rxSr B ~_g{C}vwY$t,O#c~?N;1y$wd$p*RKHrZu&Wu7Z\VrH:HݛΜr2!K=G2PĤ ǩRU(GQOQU@HKKj@-rj?CE&?OL@#h4Фu@@ 觢&bȣ@1&D1:&(t(ŠJ)VtRiT :%MT ڨ㊁VQ Dg~駉bB5m P h }7Q s@1`r_'ЩNk(@G ^ &P D1iցb;@16bj (6P *AۈAT pq$Q1("Q1DŠJc>A fa}F$ ~db4"6Z#^@#&e,L c%h챰"IbI<gz..iCv+81XxcIZAچ$֋^(y$^SEV[xo\,|pS\ѯO$x(.[xu ܰxQcz5G, # Date: 2003 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 # USA. # # ADDITIONAL_OBJCFLAGS += -Wall -Werror ADDITIONAL_GUI_LIBS += \ -lGormCore \ -lGorm \ -lGormObjCHeaderParser \ -lGormPrefs ADDITIONAL_INCLUDE_DIRS += \ -IInterfaceBuilder \ -IGormObjCHeaderParser \ -IGormPrefs \ -IGormCore ADDITIONAL_LIB_DIRS += \ -LGormLib/$(GNUSTEP_OBJ_DIR) \ -LGormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -LGormPrefs/$(GNUSTEP_OBJ_DIR) \ -LGormCore/$(GNUSTEP_OBJ_DIR) gorm-1.3.1/ANNOUNCE0000644000175000017500000000277114360755444012644 0ustar heronheron1 ANNOUNCE ********** This is version 1.3.1 of Gorm. 1.1 What is Gorm? ================= Gorm is an acronym for Graphic Object Relationship modeler (or perhaps GNUstep Object Relationship Modeler). Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) 'Interface Builder' application for GNUstep. 1.2 Noteworthy changes in version '1.3.1' ========================================= * Fix issue with cells appearing in top level editor * Make nibs read only since saving is unstable * Add XIB reading so that they can be loaded by Gorm * Add storyboard file to list of supported files so that an icon is displayed, does not support reading yet. * Fix testing model mode * Bug fixes in GormClassManager, GormDocument, etc. 1.3 How can I get support for this software? ============================================ You may wish to use the GNUstep discussion mailing list for general questions and discussion. Look at the GNUstep Web Pages for more information regarding GNUstep resources 1.4 Where can you get it? How can you compile it? ================================================= You can download sources and rpms (for some machines) from . 1.5 Where do I send bug reports? ================================ Bug reports can be sent to . 1.6 Obtaining GNU Software ========================== Check out the GNUstep web site. (), and the GNU web site. () gorm-1.3.1/main.m0000644000175000017500000000177414327003122012575 0ustar heronheron/* main.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 * USA. */ #include int main(int argc, const char *argv[]) { return NSApplicationMain(argc, argv); } gorm-1.3.1/GormCore/0000755000175000017500000000000014360747170013216 5ustar heronherongorm-1.3.1/GormCore/GormInspectorsManager.h0000644000175000017500000000341414327003122017623 0ustar heronheron/* GormInspectorsManager.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormInspectorsManager_h #define INCLUDED_GormInspectorsManager_h #include #include @class NSPanel; @class NSMutableDictionary; @class NSPopUpButton; @class NSView; @class NSBox; @class IBInspector; @interface GormInspectorsManager : IBInspectorManager { IBOutlet NSPanel *panel; NSMutableDictionary *cache; IBOutlet NSPopUpButton *popup; IBOutlet NSBox *selectionView; IBOutlet NSBox *inspectorView; NSView *buttonView; NSString *oldInspector; IBOutlet IBInspector *inspector; int current; BOOL hiddenDuringTest; NSRect origFrame; } - (NSPanel*) panel; - (void) setClassInspector; - (void) setCurrentInspector: (id)anObject; - (void) updateSelection; @end #endif gorm-1.3.1/GormCore/NSCell+GormAdditions.h0000644000175000017500000000253514327003122017234 0ustar heronheron/* NSCell+GormAdditions.h * * Copyright (C) 1999, 2003, 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2003, 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_NSCellGormAdditions_h #define INCLUDED_NSCellGormAdditions_h #include @class NSText; @interface NSCell (GormAdditions) /** * This methods is comes directly from NSCell.m * The only additions is [textObject setUsesFontPanel: NO] * We do this because we want to have control over the font * panel changes. */ - (NSText *)setUpFieldEditorAttributes:(NSText *)textObject; @end #endif gorm-1.3.1/GormCore/GormControlEditor.h0000644000175000017500000000207314327003122016766 0ustar heronheron/* GormControlEditor.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormControlEditor_h #define INCLUDED_GormControlEditor_h #include @interface GormControlEditor : GormViewEditor @end #endif gorm-1.3.1/GormCore/GormClassManager.h0000644000175000017500000001464014327003122016542 0ustar heronheron/* GormClassManager.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #ifndef INCLUDED_GormClassManager_h #define INCLUDED_GormClassManager_h // The custom classes and category arrays will hold only those things which // will be persisted to the .classes file. Since the overall list of classes will // not change it seems that the only thing that we should save is the "delta" // that being the custom classes. Once loaded they can be "merged" in with the // list of base classes, in gui, to form the full list of classes. @interface GormClassManager : NSObject { NSMutableDictionary *classInformation; NSMutableArray *customClasses; NSMutableDictionary *customClassMap; NSMutableArray *categoryClasses; id document; } - (id) initWithDocument: (id)aDocument; /* Managing actions and outlets */ - (void) addAction: (NSString *)anAction forObject: (id)anObject; - (void) addOutlet: (NSString *)anOutlet forObject: (id)anObject; - (NSArray *) allActionsForClassNamed: (NSString *)className; - (NSArray *) allActionsForObject: (id)anObject; - (NSArray *) extraActionsForObject: (id)anObject; - (NSArray *) allOutletsForClassNamed: (NSString *)className; - (NSArray *) allOutletsForObject: (id)anObject; - (NSArray *) extraOutletsForObject: (id)anObject; - (NSArray *) allClassNames; - (void) removeAction: (NSString *)anAction forObject: (id)anObject; - (void) removeOutlet: (NSString *)anOutlet forObject: (id)anObject; - (void) removeAction: (NSString *)anAction fromClassNamed: (NSString *)anObject; - (void) removeOutlet: (NSString *)anOutlet fromClassNamed: (NSString *)anObject; - (void) addOutlet: (NSString *)anOutlet forClassNamed: (NSString *)className; - (void) addAction: (NSString *)anAction forClassNamed: (NSString *)className; - (void) addActions: (NSArray *)actions forClassNamed: (NSString *)className; - (void) addOutlets: (NSArray *)outlets forClassNamed: (NSString *)className; - (NSString *) addNewActionToClassNamed: (NSString *)name; - (NSString *) addNewOutletToClassNamed: (NSString *)name; - (void) replaceAction: (NSString *)oldAction withAction: (NSString *)newAction forClassNamed: (NSString *)className; - (void) replaceOutlet: (NSString *)oldOutlet withOutlet: (NSString *)newOutlet forClassNamed: (NSString *)className; /* Managing classes and subclasses */ - (BOOL) renameClassNamed: (NSString *)oldName newName: (NSString *)name; - (void) removeClassNamed: (NSString *)className; - (NSString *) addClassWithSuperClassName: (NSString *)name; - (NSArray *) subClassesOf: (NSString *)superclass; - (NSArray *) allSubclassesOf: (NSString *)superClass; - (NSArray *) customSubClassesOf: (NSString *)superclass; - (NSArray *) allCustomSubclassesOf: (NSString *)superclass; - (NSArray *) allCustomClassNames; - (BOOL) addClassNamed: (NSString *)className withSuperClassNamed: (NSString *)superClassName withActions: (NSArray *)actions withOutlets: (NSArray *)outlets; - (BOOL) addClassNamed: (NSString *)class_name withSuperClassNamed: (NSString *)super_class_name withActions: (NSArray *)_actions withOutlets: (NSArray *)_outlets isCustom: (BOOL) isCustom; - (BOOL) setSuperClassNamed: (NSString *)superclass forClassNamed: (NSString *)subclass; - (NSString *)parentOfClass: (NSString *)aClass; - (NSString *) superClassNameForClassNamed: (NSString *)className; - (BOOL) isSuperclass: (NSString *)superclass linkedToClass: (NSString *)subclass; - (NSDictionary *) dictionaryForClassNamed: (NSString *)className; - (NSString *) uniqueClassNameFrom: (NSString *)name; - (BOOL) isRootClass: (NSString *)className; - (BOOL) outletExists: (NSString *)outlet onClassNamed: (NSString *)className; - (BOOL) actionExists: (NSString *)action onClassNamed: (NSString *)className; /* Managing custom classes */ - (BOOL) isCustomClass: (NSString *)className; - (BOOL) isNonCustomClass: (NSString *)className; - (BOOL) isCategoryForClass: (NSString *)className; - (BOOL) isKnownClass: (NSString *)className; - (BOOL) isAction: (NSString *)actionName ofClass: (NSString *)className; - (BOOL) isOutlet: (NSString *)outletName ofClass: (NSString *)className; - (NSArray *) allSuperClassesOf: (NSString *)className; - (BOOL) canInstantiateClassNamed: (NSString *)className; - (NSString *) customClassForObject: (id)object; - (NSString *) customClassForName: (NSString *)name; - (void) setCustomClass: (NSString *)className forName: (NSString *)name; - (void) removeCustomClassForName: (NSString *)name; - (NSMutableDictionary *) customClassMap; - (void) setCustomClassMap: (NSMutableDictionary *)dict; - (BOOL) isCustomClassMapEmpty; - (NSString *) nonCustomSuperClassOf: (NSString *)className; - (BOOL) isAction: (NSString *)actionName onCategoryForClassNamed: (NSString *)className; - (NSString *) classNameForObject: (id)object; - (NSString *) findClassByName: (NSString *)name; /* Parsing and creating classes */ - (BOOL) makeSourceAndHeaderFilesForClass: (NSString *)className withName: (NSString *)sourcePath and: (NSString *)headerPath; - (BOOL) parseHeader: (NSString *)headerPath; /* Loading and saving */ - (BOOL) saveToFile: (NSString *)path; - (NSData *) data; - (NSData *) nibData; - (BOOL) loadFromFile: (NSString *)path; - (BOOL) loadCustomClasses: (NSString *)path; - (BOOL) loadCustomClassesWithData: (NSData *)data; - (BOOL) loadCustomClassesWithDict: (NSDictionary *)dict; - (BOOL) loadNibFormatCustomClassesWithData: (NSData *)data; - (BOOL) loadNibFormatCustomClassesWithDict: (NSDictionary *)dict; @end #endif gorm-1.3.1/GormCore/GormImageEditor.h0000644000175000017500000000222214327003122016364 0ustar heronheron/* GormImageEditor.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2003, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormImageEditor_h #define INCLUDED_GormImageEditor_h #include "GormResourceEditor.h" @interface GormImageEditor : GormResourceEditor // + (GormImageEditor*) editorForDocument: (id)aDocument; @end #endif gorm-1.3.1/GormCore/GormPrivate.m0000644000175000017500000001651014327003122015617 0ustar heronheron/* GormPrivate.m * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ // for templates... #include #include #include #include "GormPrivate.h" #include "GormFontViewController.h" #include "GormSetNameController.h" NSString *GormToggleGuidelineNotification = @"GormToggleGuidelineNotification"; NSString *GormDidModifyClassNotification = @"GormDidModifyClassNotification"; NSString *GormDidAddClassNotification = @"GormDidAddClassNotification"; NSString *GormDidDeleteClassNotification = @"GormDidDeleteClassNotification"; NSString *GormWillDetachObjectFromDocumentNotification = @"GormWillDetachObjectFromDocumentNotification"; NSString *GormDidDetachObjectFromDocumentNotification = @"GormDidDetachObjectFromDocumentNotification"; NSString *GormResizeCellNotification = @"GormResizeCellNotification"; // Private, and soon to be deprecated, notification string... NSString *GSInternalNibItemAddedNotification = @"_GSInternalNibItemAddedNotification"; // Define this as "NO" initially. We only want to turn this on while loading or testing. static BOOL _isInInterfaceBuilder = NO; @class InfoPanel; // we had this include for grouping/ungrouping selectors #include "GormViewWithContentViewEditor.h" @implementation GSNibItem (GormAdditions) - (id) initWithClassName: (NSString*)className frame: (NSRect)frame { if((self = [super init]) != nil) { theClass = [className copy]; theFrame = frame; } return self; } - (id) initWithClassName: (NSString*)className { return [self initWithClassName: className frame: NSMakeRect(0,0,0,0)]; } - (NSString*) className { return theClass; } @end @interface NSObject (GormPrivate) // + (void) poseAsClass: (Class)aClassObject; + (BOOL) canSubstituteForClass: (Class)origClass; @end @implementation NSObject (GormPrivate) /* + (void) poseAsClass: (Class)aClassObject { // disable poseAs: while in Gorm. class_pose_as(self, aClassObject); NSLog(@"WARNING: poseAs: called in Gorm."); } */ + (BOOL) canSubstituteForClass: (Class)origClass { if(self == origClass) { return YES; } else if([self isSubclassOfClass: origClass]) { Class cls = self; while(cls != nil && cls != origClass) { if(GSGetMethod(cls, @selector(initWithCoder:), YES, NO) != NULL && GSGetMethod(cls, @selector(encodeWithCoder:), YES, NO) != NULL) { return NO; } cls = GSObjCSuper(cls); // get super class } return YES; } return NO; } @end @implementation GormObjectProxy /* * Perhaps this would be better to have a dummy initProxyWithCoder * in GSNibItem class, so that we are not dependent on actual coding * order of the ivars ? */ - (id) initWithCoder: (NSCoder*)aCoder { if([aCoder allowsKeyedCoding]) { ASSIGN(theClass, [aCoder decodeObjectForKey: @"NSClassName"]); theFrame = NSZeroRect; return self; } else { NSUInteger version = [aCoder versionForClassName: NSStringFromClass([GSNibItem class])]; NSInteger cv = [aCoder versionForClassName: NSStringFromClass([GSNibContainer class])]; if (version == NSNotFound) { NSLog(@"no GSNibItem"); version = [aCoder versionForClassName: NSStringFromClass([GormObjectProxy class])]; } // add to the top level items during unarchiving, if the container is old. if (cv == 0) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc postNotificationName: GSInternalNibItemAddedNotification object: self]; } if (version == 0) { // do not decode super (it would try to morph into theClass ! ) [aCoder decodeValueOfObjCType: @encode(id) at: &theClass]; theFrame = [aCoder decodeRect]; RETAIN(theClass); // release in dealloc of GSNibItem... return self; } else if (version == 1) { // do not decode super (it would try to morph into theClass ! ) [aCoder decodeValueOfObjCType: @encode(id) at: &theClass]; theFrame = [aCoder decodeRect]; [aCoder decodeValueOfObjCType: @encode(unsigned int) at: &autoresizingMask]; RETAIN(theClass); // release in dealloc of GSNibItem... return self; } else { NSLog(@"no initWithCoder for version %d", (int)version); RELEASE(self); return nil; } } return nil; } - (void) encodeWithCoder: (NSCoder *)coder { if([coder allowsKeyedCoding]) { [coder encodeObject: theClass forKey: @"NSClassName"]; } else { [super encodeWithCoder: coder]; } } - (NSString*) inspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) classInspectorClassName { return @"GormNotApplicableInspector"; } - (void) setClassName: (NSString *)className { ASSIGNCOPY(theClass, className); } - (NSImage *) imageForViewer { NSImage *image = [super imageForViewer]; if([theClass isEqual: @"NSFontManager"]) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormFontManager"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } - (NSString *) description { NSString *desc = [super description]; return [NSString stringWithFormat: @"<%@, className = %@>", desc, theClass]; } @end // define the class proxy... @implementation GormClassProxy - (id) initWithClassName: (NSString *)n { self = [super init]; if (self != nil) { if([n isKindOfClass: [NSString class]]) { // create a copy. ASSIGNCOPY(name, n); } else { NSLog(@"Attempt to add a class proxy with className = %@",n); } } return self; } - (void) dealloc { RELEASE(name); [super dealloc]; } - (NSString*) className { return name; } - (NSString*) inspectorClassName { return @"GormClassInspector"; } - (NSString*) classInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) connectInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) sizeInspectorClassName { return @"GormNotApplicableInspector"; } @end // custom class additions... @implementation GSClassSwapper (GormCustomClassAdditions) + (void) setIsInInterfaceBuilder: (BOOL)flag { _isInInterfaceBuilder = flag; } - (BOOL) isInInterfaceBuilder { return _isInInterfaceBuilder; } @end @implementation IBResourceManager (GormAdditions) + (void) registerForAllPboardTypes: (id)editor inDocument: (id)doc { NSArray *allTypes = [doc allManagedPboardTypes]; [editor registerForDraggedTypes: allTypes]; } @end gorm-1.3.1/GormCore/GormResourceEditor.m0000644000175000017500000002243314327003122017144 0ustar heronheron/* GormResourceEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormDocument.h" #include "GormPrivate.h" #include "GormResourceEditor.h" #include "GormFunctions.h" #include "GormPalettesManager.h" #include "GormResource.h" @implementation GormResourceEditor - (BOOL) acceptsTypeFromArray: (NSArray*)types { return [types containsObject: NSFilenamesPboardType]; } - (NSArray *) fileTypes { return nil; } - (NSArray *) pbTypes { return nil; } /* * Dragging source protocol implementation */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f { } - (unsigned int) draggingSourceOperationMaskForLocal: (BOOL)flag { return NSDragOperationCopy; } - (id) placeHolderWithPath: (NSString *)string { return nil; } - (void) drawSelection { } - (id) document { return document; } - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if([name isEqual: GormResizeCellNotification]) { NSDebugLog(@"Received notification"); [self setCellSize: defaultCellSize()]; } } - (void) addSystemResources { // NSMutableArray *list = [NSMutableArray array]; // do nothing... this is the parent class. } /* * Initialisation */ - (id) initWithObject: (id)anObject inDocument: (id)aDocument { if ((self = [super initWithObject: anObject inDocument: aDocument]) != nil) { NSButtonCell *proto; [self setAutosizesCells: NO]; [self setCellSize: NSMakeSize(72,72)]; [self setIntercellSpacing: NSMakeSize(8,8)]; [self setAutoresizingMask: NSViewMinYMargin|NSViewWidthSizable]; [self setMode: NSRadioModeMatrix]; /* * Send mouse click actions to self, so we can handle selection. */ [self setAction: @selector(changeSelection:)]; [self setDoubleAction: @selector(raiseSelection:)]; [self setTarget: self]; objects = [[NSMutableArray alloc] init]; proto = [[NSButtonCell alloc] init]; [proto setBordered: NO]; [proto setAlignment: NSCenterTextAlignment]; [proto setImagePosition: NSImageAbove]; [proto setSelectable: NO]; [proto setEditable: NO]; [self setPrototype: proto]; RELEASE(proto); // do not insert it if it's nil. if(anObject != nil) { [self addObject: anObject]; } // add any initial objects [self addSystemResources]; // set up the notification... [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: GormResizeCellNotification object: nil]; } return self; } - (void) close { [super close]; [[NSNotificationCenter defaultCenter] removeObserver: self]; } - (NSString *) resourceType { return @"resource"; } - (void) addObject: (id)anObject { if([objects containsObject: anObject] == NO) { [super addObject: anObject]; } else { NSString *type = [self resourceType]; NSString *msg = [NSString stringWithFormat: _(@"Problem adding %@"), type]; NSRunAlertPanel(msg, _(@"A resource with the same name exists, remove it first."), _(@"OK"), nil, nil); } } - (void) makeSelectionVisible: (BOOL)flag { if (flag == YES && selected != nil) { unsigned pos = [objects indexOfObjectIdenticalTo: selected]; int r = pos / [self numberOfColumns]; int c = pos % [self numberOfColumns]; [self selectCellAtRow: r column: c]; } else { [self deselectAllCells]; } [self displayIfNeeded]; [[self window] flushWindow]; } - (void) mouseDown: (NSEvent*)theEvent { NSInteger row, column; NSInteger newRow, newColumn; unsigned eventMask = NSLeftMouseUpMask | NSLeftMouseDownMask | NSMouseMovedMask | NSLeftMouseDraggedMask | NSPeriodicMask; NSPoint lastLocation = [theEvent locationInWindow]; NSEvent* lastEvent = theEvent; NSPoint initialLocation; /* * Pathological case -- ignore mouse down */ if ((_numRows == 0) || (_numCols == 0)) { [super mouseDown: theEvent]; return; } lastLocation = [self convertPoint: lastLocation fromView: nil]; initialLocation = lastLocation; // If mouse down was on a selectable cell, start editing/selecting. if ([self getRow: &row column: &column forPoint: lastLocation]) { if ([_cells[row][column] isEnabled]) { if ((_mode == NSRadioModeMatrix) && _selectedCell != nil) { [_selectedCell setState: NSOffState]; [self drawCellAtRow: _selectedRow column: _selectedColumn]; _selectedCells[_selectedRow][_selectedColumn] = NO; _selectedCell = nil; _selectedRow = _selectedColumn = -1; } [_cells[row][column] setState: NSOnState]; [self drawCellAtRow: row column: column]; [_window flushWindow]; _selectedCells[row][column] = YES; _selectedCell = _cells[row][column]; _selectedRow = row; _selectedColumn = column; } } else { return; } lastEvent = [NSApp nextEventMatchingMask: eventMask untilDate: [NSDate distantFuture] inMode: NSEventTrackingRunLoopMode dequeue: YES]; lastLocation = [self convertPoint: [lastEvent locationInWindow] fromView: nil]; while ([lastEvent type] != NSLeftMouseUp) { if((![self getRow: &newRow column: &newColumn forPoint: lastLocation]) || (row != newRow) || (column != newColumn) || ((lastLocation.x - initialLocation.x) * (lastLocation.x - initialLocation.x) + (lastLocation.y - initialLocation.y) * (lastLocation.y - initialLocation.y) >= 25)) { NSPasteboard *pb; NSInteger pos; pos = row * [self numberOfColumns] + column; // don't allow the user to drag empty resources. if(pos < [objects count]) { pb = [NSPasteboard pasteboardWithName: NSDragPboard]; [pb declareTypes: [self pbTypes] owner: self]; [pb setString: [(GormResource *)[objects objectAtIndex: pos] name] forType: [[self pbTypes] objectAtIndex: 0]]; [self dragImage: [[objects objectAtIndex: pos] imageForViewer] at: lastLocation offset: NSZeroSize event: theEvent pasteboard: pb source: self slideBack: YES]; } return; } lastEvent = [NSApp nextEventMatchingMask: eventMask untilDate: [NSDate distantFuture] inMode: NSEventTrackingRunLoopMode dequeue: YES]; lastLocation = [self convertPoint: [lastEvent locationInWindow] fromView: nil]; } [self changeSelection: self]; } - (void) pasteInSelection { } - (void) deleteSelection { if(![selected isSystemResource]) { if([selected isInWrapper]) { NSFileManager *mgr = [NSFileManager defaultManager]; NSString *path = [selected path]; BOOL removed = [mgr removeFileAtPath: path handler: nil]; if(!removed) { NSString *msg = [NSString stringWithFormat: @"Could not delete file %@", path]; NSLog(@"%@",msg); } } [super deleteSelection]; } } - (id) raiseSelection: (id)sender { id obj = [self changeSelection: sender]; id e; e = [document editorForObject: obj create: YES]; [e orderFront]; [e resetObject: obj]; return self; } - (void) refreshCells { unsigned count = [objects count]; unsigned index; int cols = 0; int rows; int width; // return if the superview is not available. if(![self superview]) { return; } width = [[self superview] bounds].size.width; while (width >= 72) { width -= (72 + 8); cols++; } if (cols == 0) { cols = 1; } rows = count / cols; if (rows == 0 || rows * cols != count) { rows++; } [self renewRows: rows columns: cols]; for (index = 0; index < count; index++) { id obj = [objects objectAtIndex: index]; NSButtonCell *but = [self cellAtRow: index/cols column: index%cols]; NSString *name = [(GormResource *)obj name]; [but setImage: [obj imageForViewer]]; [but setTitle: name]; [but setShowsStateBy: NSChangeGrayCellMask]; [but setHighlightsBy: NSChangeGrayCellMask]; } while (index < rows * cols) { NSButtonCell *but = [self cellAtRow: index/cols column: index%cols]; [but setImage: nil]; [but setTitle: @""]; [but setShowsStateBy: NSNoCellMask]; [but setHighlightsBy: NSNoCellMask]; index++; } [self setIntercellSpacing: NSMakeSize(8,8)]; [self sizeToCells]; [self setNeedsDisplay: YES]; } @end gorm-1.3.1/GormCore/GormServer.h0000644000175000017500000000205314327003122015443 0ustar heronheron/* GormServer.h * * Copyright (C) 2010 Free Software Foundation, Inc. * * Author: Gregory Casamento * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormServer_h #define INCLUDED_GormServer_h @protocol GormServer - (void) addClass: (NSDictionary *)dict; - (void) deleteClass: (NSString *)className; @end #endif gorm-1.3.1/GormCore/GormObjectEditor.m0000644000175000017500000003364014333743132016576 0ustar heronheron/* GormObjectEditor.m * * Copyright (C) 1999,2002,2003,2004,2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2002,2003,2004,2005 * Author: Richard Frith-Macdonald * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormObjectEditor.h" #include "GormFunctions.h" #include "GormDocument.h" #include "GormClassManager.h" /* * Method to return the image that should be used to display objects within * the matrix containing the objects in a document. */ @interface NSObject (GormObjectAdditions) @end @implementation NSObject (GormObjectAdditions) - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormUnknown"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } - (NSString*) inspectorClassName { return @"GormObjectInspector"; } - (NSString*) connectInspectorClassName { return @"GormConnectionInspector"; } - (NSString*) sizeInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) helpInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) classInspectorClassName { return @"GormCustomClassInspector"; } - (NSString*) editorClassName { return @"GormObjectEditor"; } @end @implementation NSView (GormObjectAdditions) - (NSString*) helpInspectorClassName { return @"GormHelpInspector"; } @end @implementation GormObjectEditor static NSMapTable *docMap = 0; + (void) initialize { if (self == [GormObjectEditor class]) { docMap = NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks, NSNonRetainedObjectMapValueCallBacks, 2); } } + (id) editorForDocument: (id)aDocument { id editor = NSMapGet(docMap, (void*)aDocument); if (editor == nil) { editor = [[self alloc] initWithObject: nil inDocument: aDocument]; AUTORELEASE(editor); } return editor; } + (void) setEditor: (id)editor forDocument: (id)aDocument { NSMapInsert(docMap, (void*)aDocument, (void*)editor); } - (BOOL) acceptsTypeFromArray: (NSArray*)types { return ([[(GormDocument *)document allManagedPboardTypes] firstObjectCommonWithArray: types] != nil); } - (void) pasteInSelection { NSPasteboard *pb = [NSPasteboard generalPasteboard]; NSString *type = [[(GormDocument *)document allManagedPboardTypes] firstObjectCommonWithArray: [pb types]]; if(type != nil) { // paste the object in. [document pasteType: type fromPasteboard: pb parent: nil]; } } - (void) copySelection { NSArray *sel = [self selection]; if([sel count] > 0) { NSString *type = nil; id obj = [sel objectAtIndex: 0]; if([obj isKindOfClass: [NSWindow class]]) { type = IBWindowPboardType; } else if([obj isKindOfClass: [NSView class]]) { type = IBViewPboardType; } else { type = IBObjectPboardType; } [document copyObjects: sel type: type toPasteboard: [NSPasteboard generalPasteboard]]; } } - (void) deleteSelection { if (selected != nil && [[document nameForObject: selected] isEqualToString: @"NSOwner"] == NO && [[document nameForObject: selected] isEqualToString: @"NSFirst"] == NO) { if ([selected isKindOfClass: [NSMenu class]] && [[document nameForObject: selected] isEqual: @"NSMenu"] == YES) { NSString *title = _(@"Removing Main Menu"); NSString *msg = _(@"Are you sure you want to do this?"); NSInteger retval = NSRunAlertPanel(title, msg,_(@"OK"),_(@"Cancel"), nil, nil); // if the user *really* wants to delete the menu, do it. if(retval != NSAlertDefaultReturn) return; } [document detachObject: selected]; if ([selected isKindOfClass: [NSWindow class]] == YES) { NSArray *subviews = allSubviews([(NSWindow *)selected contentView]); [document detachObjects: subviews]; [selected close]; } if ([selected isKindOfClass: [NSMenu class]] == YES) { NSArray *items = findAll( selected ); NSEnumerator *en = [items objectEnumerator]; id obj = nil; while((obj = [en nextObject]) != nil) { [document detachObject: obj]; } } [objects removeObjectIdenticalTo: selected]; [self selectObjects: [NSArray array]]; [self refreshCells]; } } /* * Dragging source protocol implementation */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f { } - (NSDragOperation) draggingEntered: (id)sender { NSArray *pbTypes = nil; // Get the resource manager first, if nil don't bother calling the rest... dragPb = [sender draggingPasteboard]; pbTypes = [dragPb types]; if ([pbTypes containsObject: GormLinkPboardType] == YES) { dragType = GormLinkPboardType; } else { dragType = nil; } return [self draggingUpdated: sender]; } - (NSDragOperation) draggingUpdated: (id)sender { if (dragType == GormLinkPboardType) { NSPoint loc = [sender draggingLocation]; NSInteger r, c; int pos; id obj = nil; loc = [self convertPoint: loc fromView: nil]; [self getRow: &r column: &c forPoint: loc]; pos = r * [self numberOfColumns] + c; if (pos >= 0 && pos < [objects count]) { obj = [objects objectAtIndex: pos]; } if (obj == [NSApp connectSource]) { return NSDragOperationNone; /* Can't drag an object onto itsself */ } [NSApp displayConnectionBetween: [NSApp connectSource] and: obj]; if (obj != nil) { return NSDragOperationLink; } return NSDragOperationNone; } return NSDragOperationNone; } /** * Used for autoscrolling when you connect IBActions. * FIXME: Maybye there is a better way to do it. */ - (void)draggingExited:(id < NSDraggingInfo >)sender { if (dragType == GormLinkPboardType) { NSRect documentVisibleRect; NSRect documentRect; NSPoint loc = [sender draggingLocation]; loc = [self convertPoint:loc fromView:nil]; documentVisibleRect = [(NSClipView *)[self superview] documentVisibleRect]; documentRect = [(NSClipView *)[self superview] documentRect]; /* Down */ if ( (loc.y >= documentVisibleRect.size.height) && ( ! NSEqualRects(documentVisibleRect,documentRect) ) ) { loc.x = 0; loc.y = documentRect.origin.y + [self cellSize].height; [(NSClipView*) [self superview] scrollToPoint:loc]; } /* up */ else if ( (loc.y + 10 >= documentVisibleRect.origin.y ) && ( ! NSEqualRects(documentVisibleRect,documentRect) ) ) { loc.x = 0; loc.y = documentRect.origin.y - [self cellSize].height; [(NSClipView*) [self superview] scrollToPoint:loc]; } } } - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag { return NSDragOperationLink; } - (void) drawSelection { } - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if([name isEqual: GormResizeCellNotification]) { NSDebugLog(@"Received notification"); [self setCellSize: defaultCellSize()]; } } /* * Initialisation - register to receive DnD with our own types. */ - (id) initWithObject: (id)anObject inDocument: (id)aDocument { id old = NSMapGet(docMap, (void*)aDocument); if (old != nil) { RELEASE(self); self = RETAIN(old); [self addObject: anObject]; return self; } self = [super initWithObject: anObject inDocument: aDocument]; if (self != nil) { NSButtonCell *proto; NSColor *color = [NSColor colorWithCalibratedRed: 0.850980 green: 0.737255 blue: 0.576471 alpha: 0.0 ]; document = aDocument; [self registerForDraggedTypes:[NSArray arrayWithObject:GormLinkPboardType]]; [self setAutosizesCells: NO]; [self setCellSize: defaultCellSize()]; [self setIntercellSpacing: NSMakeSize(8,8)]; [self setAutoresizingMask: NSViewMinYMargin|NSViewWidthSizable]; [self setMode: NSRadioModeMatrix]; /* * Send mouse click actions to self, so we can handle selection. */ [self setAction: @selector(changeSelection:)]; [self setDoubleAction: @selector(raiseSelection:)]; [self setTarget: self]; // set the background color. [self setBackgroundColor: color]; objects = [[NSMutableArray alloc] init]; proto = [[NSButtonCell alloc] init]; [proto setBordered: NO]; [proto setAlignment: NSCenterTextAlignment]; [proto setImagePosition: NSImageAbove]; [proto setSelectable: NO]; [proto setEditable: NO]; [self setPrototype: proto]; RELEASE(proto); [self setEditor: self forDocument: aDocument]; [self addObject: anObject]; // set up the notification... [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: GormResizeCellNotification object: nil]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: IBResourceManagerRegistryDidChangeNotification object: nil]; } return self; } - (void) willCloseDocument: (NSNotification *)aNotification { NSMapRemove(docMap,document); [super willCloseDocument: aNotification]; } - (void) close { [super close]; [[NSNotificationCenter defaultCenter] removeObserver: self]; NSMapRemove(docMap,document); } - (void) makeSelectionVisible: (BOOL)flag { if (flag == YES && selected != nil) { unsigned pos = [objects indexOfObjectIdenticalTo: selected]; int r = pos / [self numberOfColumns]; int c = pos % [self numberOfColumns]; [self selectCellAtRow: r column: c]; } else { [self deselectAllCells]; } [self displayIfNeeded]; [[self window] flushWindow]; } - (void) mouseDown: (NSEvent*)theEvent { if ([theEvent modifierFlags] & NSControlKeyMask) { NSPoint loc = [theEvent locationInWindow]; NSString *name; NSInteger r = 0, c = 0; int pos = 0; id obj = nil; loc = [self convertPoint: loc fromView: nil]; [self getRow: &r column: &c forPoint: loc]; pos = r * [self numberOfColumns] + c; if (pos >= 0 && pos < [objects count]) { obj = [objects objectAtIndex: pos]; } if (obj != nil && obj != selected) { [self selectObjects: [NSArray arrayWithObject: obj]]; [self makeSelectionVisible: YES]; } name = [document nameForObject: obj]; if ([name isEqualToString: @"NSFirst"] == NO && name != nil) { NSPasteboard *pb; pb = [NSPasteboard pasteboardWithName: NSDragPboard]; [pb declareTypes: [NSArray arrayWithObject: GormLinkPboardType] owner: self]; [pb setString: name forType: GormLinkPboardType]; [NSApp displayConnectionBetween: obj and: nil]; [NSApp startConnecting]; [self dragImage: [NSApp linkImage] at: loc offset: NSZeroSize event: theEvent pasteboard: pb source: self slideBack: YES]; [self makeSelectionVisible: YES]; return; } } [super mouseDown: theEvent]; } - (BOOL) performDragOperation: (id)sender { if (dragType == GormLinkPboardType) { NSPoint loc = [sender draggingLocation]; NSInteger r, c; int pos; id obj = nil; loc = [self convertPoint: loc fromView: nil]; [self getRow: &r column: &c forPoint: loc]; pos = r * [self numberOfColumns] + c; if (pos >= 0 && pos < [objects count]) { obj = [objects objectAtIndex: pos]; } if (obj == nil) { return NO; } else { [NSApp displayConnectionBetween: [NSApp connectSource] and: obj]; [NSApp startConnecting]; return YES; } } else { NSLog(@"Drop with unrecognized type!"); return NO; } } - (BOOL) prepareForDragOperation: (id)sender { /* * Tell the source that we will accept the drop if we can. */ if (dragType == GormLinkPboardType) { NSPoint loc = [sender draggingLocation]; NSInteger r, c; int pos; id obj = nil; loc = [self convertPoint: loc fromView: nil]; [self getRow: &r column: &c forPoint: loc]; pos = r * [self numberOfColumns] + c; if (pos >= 0 && pos < [objects count]) { obj = [objects objectAtIndex: pos]; } if (obj != nil) { return YES; } } return NO; } - (id) raiseSelection: (id)sender { id obj = [self changeSelection: sender]; id e; if(obj != nil) { e = [document editorForObject: obj create: YES]; [e orderFront]; [e resetObject: obj]; } return self; } - (void) resetObject: (id)anObject { NSString *name = [document nameForObject: anObject]; GormInspectorsManager *mgr = [(id)NSApp inspectorsManager]; if ([name isEqual: @"NSOwner"] == YES) { [mgr setClassInspector]; } if ([name isEqual: @"NSFirst"] == YES) { [mgr setClassInspector]; } } - (void) addObject:(id)anObject { [super addObject:anObject]; /* we need to do this for palettes which can drop top level objects */ [(GormDocument *)document changeToViewWithTag:0]; } @end gorm-1.3.1/GormCore/GormSplitViewEditor.h0000644000175000017500000000221114327003122017266 0ustar heronheron/* GormSplitViewEditor.h - Editor for splitviews. * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: Aug 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormSplitViewEditor_h #define INCLUDED_GormSplitViewEditor_h #include @interface GormSplitViewEditor : GormViewWithSubviewsEditor { } - (NSArray *)destroyAndListSubviews; @end #endif gorm-1.3.1/GormCore/GormResourceManager.m0000644000175000017500000001217514327003122017272 0ustar heronheron/* GormViewResourceManager.m * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormSound.h" #include "GormImage.h" #include "GormClassManager.h" #include "GormResourceManager.h" #include "GormGenericEditor.h" #include "GormDocument.h" #include "GormObjectEditor.h" @implementation GormResourceManager - (NSArray *) resourcePasteboardTypes { return [NSArray arrayWithObjects: IBWindowPboardType, IBViewPboardType, IBMenuPboardType, NSFilenamesPboardType, GormLinkPboardType, nil]; } - (BOOL) acceptsResourcesFromPasteboard:(NSPasteboard *)pb { NSArray *types = [pb types]; NSArray *acceptedTypes = [self resourcePasteboardTypes]; BOOL flag = YES; NSInteger i; NSInteger c = [types count]; if (c == 0) return NO; flag = ([acceptedTypes firstObjectCommonWithArray:types] != nil); for (i = 0; flag && i < c; i++) { id type = [types objectAtIndex:i]; if ([type isEqual:NSFilenamesPboardType]) { NSArray *files = [pb propertyListForType:type]; NSArray *acceptedFiles = [self resourceFileTypes]; NSInteger j, d; if (!files) { files = [NSUnarchiver unarchiveObjectWithData: [pb dataForType: NSFilenamesPboardType]]; } for (j = 0, d = [files count]; j < d; j++) { NSString *ext = [[files objectAtIndex:j] pathExtension]; flag = [acceptedFiles containsObject:ext]; } } else if ([type isEqual:GormLinkPboardType]) { [(GormDocument *)document changeToViewWithTag:0]; return NO; } } return flag; } - (void) addResourcesFromPasteboard:(NSPasteboard *)pb { NSArray *types = [pb types]; NSArray *soundTypes = [NSSound soundUnfilteredFileTypes]; NSArray *imageTypes = [NSImage imageFileTypes]; NSInteger i; NSInteger c = [types count]; BOOL found = NO; for (i = 0; i < c; i++) { id type = [types objectAtIndex:i]; if ([type isEqual:NSFilenamesPboardType]) { NSInteger j, d; NSArray *files = [pb propertyListForType:type]; found = YES; if (!files) { files = [NSUnarchiver unarchiveObjectWithData: [pb dataForType: NSFilenamesPboardType]]; } for (j = 0, d = [files count]; j < d; j++) { NSString *file = [files objectAtIndex:j]; NSString *ext = [file pathExtension]; if ([ext isEqual:@"h"]) { GormDocument *doc = (GormDocument *)document; GormClassManager *classManager = [doc classManager]; NS_DURING { if (![classManager parseHeader: file]) { NSString *fileName = [file lastPathComponent]; NSString *message; message = [NSString stringWithFormat: _(@"Unable to parse class in %@"), fileName]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } [doc changeToViewWithTag:3]; } NS_HANDLER { NSString *message = [localException reason]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } NS_ENDHANDLER; } else if ([imageTypes containsObject:ext]) { GormDocument *doc = (GormDocument *)document; [(GormGenericEditor *)[doc viewWithTag:1] addObject:[GormImage imageForPath:file]]; [doc changeToViewWithTag:1]; } else if ([soundTypes containsObject:ext]) { GormDocument *doc = (GormDocument *)document; [(GormGenericEditor *)[doc viewWithTag:2] addObject:[GormSound soundForPath:file]]; [doc changeToViewWithTag:2]; } } } } if (!found) { [super addResourcesFromPasteboard:pb]; } } - (NSArray *) resourceFileTypes { NSArray *types = [NSSound soundUnfilteredFileTypes]; types = [types arrayByAddingObjectsFromArray:[NSImage imageFileTypes]]; types = [types arrayByAddingObject:@"h"]; return types; } @end gorm-1.3.1/GormCore/NSFontManager+GormExtensions.h0000644000175000017500000000254214327003122020775 0ustar heronheron/* NSFontManager+GormExtensions.h * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_NSFontManager_GormExtensions_h #define INCLUDED_NSFontManager_GormExtensions_h #include @interface NSFontManager (GormExtensions) /** * Override for sendAction in NSFontManager. This method calls the action on the * last edited object if the attempt to send the action to the first responder is * unsuccessful. This allows the font to be more easily set. */ - (BOOL) sendAction; @end #endif gorm-1.3.1/GormCore/GormViewWithContentViewEditor.m0000644000175000017500000004524214327003122021314 0ustar heronheron/* GormViewWithContentViewEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormPrivate.h" #include "GormViewWithContentViewEditor.h" #include "GormPlacementInfo.h" #include "GormSplitViewEditor.h" #include "GormViewKnobs.h" #include "GormInternalViewEditor.h" @interface GormViewEditor (Private) - (NSRect) _displayMovingFrameWithHint: (NSRect) frame andPlacementInfo: (GormPlacementInfo *)gpi; @end @implementation GormViewWithContentViewEditor - (id) initWithObject: (id) anObject inDocument: (id)aDocument { _displaySelection = YES; //GuideLine [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(guideline:) name: GormToggleGuidelineNotification object:nil]; _followGuideLine = YES; self = [super initWithObject: anObject inDocument: aDocument]; return self; } -(void) guideline:(NSNotification *)notification { if ( _followGuideLine ) _followGuideLine = NO; else _followGuideLine = YES; } - (void) moveSelectionByX: (float)x andY: (float)y { NSInteger i; NSInteger count = [selection count]; for (i = 0; i < count; i++) { id v = [selection objectAtIndex: i]; NSRect f = [v frame]; f.origin.x += x; f.origin.y += y; [v setFrameOrigin: f.origin]; } } - (void) resizeSelectionByX: (float)x andY: (float)y { NSInteger i; NSInteger count = [selection count]; for (i = 0; i < count; i++) { id v = [selection objectAtIndex: i]; NSRect f = [v frame]; f.size.width += x; f.size.height += y; [v setFrameSize: f.size]; } } - (void) keyDown: (NSEvent *)theEvent { NSString *characters = [theEvent characters]; unichar character = 0; float moveBy = 1.0; if ([characters length] > 0) { character = [characters characterAtIndex: 0]; } if (([theEvent modifierFlags] & NSShiftKeyMask) == NSShiftKeyMask) { if (([theEvent modifierFlags] & NSAlternateKeyMask) == NSAlternateKeyMask) { moveBy = 10.0; } if ([selection count] == 1) { switch (character) { case NSUpArrowFunctionKey: [self resizeSelectionByX: 0 andY: 1*moveBy]; [self setNeedsDisplay: YES]; return; case NSDownArrowFunctionKey: [self resizeSelectionByX: 0 andY: -1*moveBy]; [self setNeedsDisplay: YES]; return; case NSLeftArrowFunctionKey: [self resizeSelectionByX: -1*moveBy andY: 0]; [self setNeedsDisplay: YES]; return; case NSRightArrowFunctionKey: [self resizeSelectionByX: 1*moveBy andY: 0]; [self setNeedsDisplay: YES]; return; } } } else { if (([theEvent modifierFlags] & NSAlternateKeyMask) == NSAlternateKeyMask) { moveBy = 10.0; } if ([selection count] > 0) { switch (character) { case NSUpArrowFunctionKey: [self moveSelectionByX: 0 andY: 1*moveBy]; [self setNeedsDisplay: YES]; return; case NSDownArrowFunctionKey: [self moveSelectionByX: 0 andY: -1*moveBy]; [self setNeedsDisplay: YES]; return; case NSLeftArrowFunctionKey: [self moveSelectionByX: -1*moveBy andY: 0]; [self setNeedsDisplay: YES]; return; case NSRightArrowFunctionKey: [self moveSelectionByX: 1*moveBy andY: 0]; [self setNeedsDisplay: YES]; return; } } } [super keyDown: theEvent]; } - (BOOL) acceptsTypeFromArray: (NSArray*)types { if ([super acceptsTypeFromArray: types]) { return YES; } else { return [types containsObject: IBViewPboardType]; } } - (void) postDrawForView: (GormViewEditor *) viewEditor { if (_displaySelection == NO) { return; } if (((id)openedSubeditor == (id)viewEditor) && (openedSubeditor != nil) && ![openedSubeditor isKindOfClass: [GormInternalViewEditor class]]) { GormDrawOpenKnobsForRect([viewEditor bounds]); GormShowFastKnobFills(); } else if ([selection containsObject: viewEditor]) { GormDrawKnobsForRect([viewEditor bounds]); GormShowFastKnobFills(); } } - (void) postDraw: (NSRect) rect { [super postDraw: rect]; if (openedSubeditor && ![openedSubeditor isKindOfClass: [GormInternalViewEditor class]]) { GormDrawOpenKnobsForRect( [self convertRect: [openedSubeditor bounds] fromView: openedSubeditor]); GormShowFastKnobFills(); } else if (_displaySelection) { NSInteger i; NSInteger count = [selection count]; for ( i = 0; i < count ; i++ ) { GormDrawKnobsForRect([self convertRect: [[selection objectAtIndex: i] bounds] fromView: [selection objectAtIndex: i]]); GormShowFastKnobFills(); } } } #undef MAX #undef MIN #define MAX(A,B) ((A)>(B)?(A):(B)) #define MIN(A,B) ((A)<(B)?(A):(B)) NSComparisonResult _sortViews(id view1, id view2, void *context) { BOOL isVertical = *((BOOL *)context); NSInteger order = NSOrderedSame; NSRect rect1 = [[view1 editedObject] frame]; NSRect rect2 = [[view2 editedObject] frame]; if(!isVertical) { float y1 = rect1.origin.y; float y2 = rect2.origin.y; if(y1 == y2) order = NSOrderedSame; else order = (y1 > y2)?NSOrderedAscending:NSOrderedDescending; } else { float x1 = rect1.origin.x; float x2 = rect2.origin.x; if(x1 == x2) order = NSOrderedSame; else order = (x1 < x2)?NSOrderedAscending:NSOrderedDescending; } return order; } - (NSArray *) _sortByPosition: (NSArray *)subviews isVertical: (BOOL)isVertical { NSMutableArray *array = [subviews mutableCopy]; NSArray *result = [array sortedArrayUsingFunction: _sortViews context: &isVertical]; return result; } - (BOOL) _shouldBeVertical: (NSArray *)subviews { BOOL vertical = NO; NSEnumerator *enumerator = [subviews objectEnumerator]; GormViewEditor *editor = nil; NSRect prevRect = NSZeroRect; NSRect currRect = NSZeroRect; NSInteger count = 0; // iterate over the list of views... while((editor = [enumerator nextObject]) != nil) { NSView *subview = [editor editedObject]; currRect = [subview frame]; if(!NSEqualRects(prevRect,NSZeroRect)) { float x1 = prevRect.origin.x, // pull these for convenience. x2 = currRect.origin.x, y1 = prevRect.origin.y, y2 = currRect.origin.y, h1 = prevRect.size.height, w1 = prevRect.size.width; if((x1 < x2 || x1 > x2) && ((y2 >= y1 && y2 <= (y1 + h1)) || (y2 <= y1 && y2 >= (y1 - h1)))) { count++; } if((y1 < y2 || y1 > y2) && ((x2 >= x1 && x2 <= (x1 + w1)) || (x2 <= x1 && x2 >= (x1 - w1)))) { count--; } } prevRect = currRect; } NSDebugLog(@"The vote is %ld",(long int)count); if(count >= 0) vertical = YES; else vertical = NO; // return the result... return vertical; } - (void) groupSelectionInSplitView { NSEnumerator *enumerator = nil; GormViewEditor *subview = nil; NSSplitView *splitView = nil; NSRect rect = NSZeroRect; GormViewEditor *editor = nil; NSView *superview = nil; NSArray *sortedviews = nil; BOOL vertical = NO; if ([selection count] < 2) { return; } enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { superview = [subview superview]; rect = NSUnionRect(rect, [subview frame]); [subview deactivate]; } splitView = [[NSSplitView alloc] initWithFrame: rect]; [document attachObject: splitView toParent: _editedObject]; [superview addSubview: splitView]; // positionally determine orientation vertical = [self _shouldBeVertical: selection]; sortedviews = [self _sortByPosition: selection isVertical: vertical]; [splitView setVertical: vertical]; enumerator = [sortedviews objectEnumerator]; editor = (GormViewEditor *)[document editorForObject: splitView inEditor: self create: YES]; while ((subview = [enumerator nextObject]) != nil) { id eO = [subview editedObject]; [splitView addSubview: [subview editedObject]]; [document attachObject: [subview editedObject] toParent: splitView]; [subview close]; [document editorForObject: eO inEditor: editor create: YES]; } [self selectObjects: [NSArray arrayWithObject: editor]]; } - (void) groupSelectionInBox { NSEnumerator *enumerator = nil; GormViewEditor *subview = nil; NSBox *box = nil; NSRect rect = NSZeroRect; GormViewEditor *editor = nil; NSView *superview = nil; if ([selection count] < 1) { return; } enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { superview = [subview superview]; rect = NSUnionRect(rect, [subview frame]); [subview deactivate]; } box = [[NSBox alloc] initWithFrame: NSZeroRect]; [box setFrameFromContentFrame: rect]; [document attachObject: box toParent: _editedObject]; [superview addSubview: box]; enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { NSPoint frameOrigin; [box addSubview: [subview editedObject]]; frameOrigin = [[subview editedObject] frame].origin; frameOrigin.x -= rect.origin.x; frameOrigin.y -= rect.origin.y; [[subview editedObject] setFrameOrigin: frameOrigin]; [document attachObject: [subview editedObject] toParent: box]; [subview close]; } editor = (GormViewEditor *)[document editorForObject: box inEditor: self create: YES]; [self selectObjects: [NSArray arrayWithObject: editor]]; } - (void) groupSelectionInView { NSEnumerator *enumerator = nil; GormViewEditor *subview = nil; NSView *view = nil; NSRect rect = NSZeroRect; GormViewEditor *editor = nil; NSView *superview = nil; if ([selection count] < 1) { return; } enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { superview = [subview superview]; rect = NSUnionRect(rect, [subview frame]); [subview deactivate]; } view = [[NSView alloc] initWithFrame: NSZeroRect]; [view setFrame: rect]; [superview addSubview: view]; [document attachObject: view toParent: _editedObject]; enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { NSPoint frameOrigin; [view addSubview: [subview editedObject]]; frameOrigin = [[subview editedObject] frame].origin; frameOrigin.x -= rect.origin.x; frameOrigin.y -= rect.origin.y; [[subview editedObject] setFrameOrigin: frameOrigin]; [document attachObject: [subview editedObject] toParent: view]; [subview close]; } editor = (GormViewEditor *)[document editorForObject: view inEditor: self create: YES]; [self selectObjects: [NSArray arrayWithObject: editor]]; } - (void) groupSelectionInMatrix { GormViewEditor *editor = nil; NSMatrix *matrix = nil; if ([selection count] < 1) { return; } // For an NSMatrix there can only be one prototype cell. if ([selection count] == 1) { GormViewEditor *s = [selection objectAtIndex: 0]; id editedObject = [s editedObject]; NSCell *cell = [editedObject cell]; NSRect rect = [editedObject frame]; NSView *superview = [s superview]; // Create the matrix matrix = [[NSMatrix alloc] initWithFrame: rect mode: NSRadioModeMatrix prototype: cell numberOfRows: 1 numberOfColumns: 1]; rect = NSUnionRect(rect, [s frame]); [s deactivate]; NSLog(@"editedObject = %@,\n\nsuperview = %@,\n\nmatrix = %@",editedObject, superview, matrix); [matrix setPrototype: cell]; NSLog(@"cell = %@", cell); NSLog(@"prototype = %@", [matrix prototype]); [editedObject removeFromSuperview]; [document attachObject: matrix toParent: _editedObject]; [superview addSubview: matrix]; } editor = (GormViewEditor *)[document editorForObject: matrix inEditor: self create: YES]; [self selectObjects: [NSArray arrayWithObject: editor]]; } - (void) groupSelectionInScrollView { NSEnumerator *enumerator = nil; GormViewEditor *subview = nil; NSView *view = nil; NSScrollView *scrollView = nil; NSRect rect = NSZeroRect; GormViewEditor *editor = nil; NSView *superview = nil; if ([selection count] < 1) { return; } // if there is more than one view we must join them together. if([selection count] > 1) { // deactivate the editor for each subview. enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { superview = [subview superview]; rect = NSUnionRect(rect, [subview frame]); [subview deactivate]; } // create the containing view. view = [[NSView alloc] initWithFrame: NSMakeRect(0, 0, rect.size.width, rect.size.height)]; // create scroll view now. scrollView = [[NSScrollView alloc] initWithFrame: rect]; [scrollView setHasHorizontalScroller: YES]; [scrollView setHasVerticalScroller: YES]; [scrollView setBorderType: NSBezelBorder]; // attach the scroll view... [document attachObject: scrollView toParent: _editedObject]; [superview addSubview: scrollView]; [scrollView setDocumentView: view]; // add the views. enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { NSPoint frameOrigin; [view addSubview: [subview editedObject]]; frameOrigin = [[subview editedObject] frame].origin; frameOrigin.x -= rect.origin.x; frameOrigin.y -= rect.origin.y; [[subview editedObject] setFrameOrigin: frameOrigin]; [document attachObject: [subview editedObject] toParent: scrollView]; [subview close]; } } else if([selection count] == 1) { NSPoint frameOrigin; id v = nil; // since we have one view, it will be used as the document view. subview = [selection objectAtIndex: 0]; superview = [subview superview]; rect = NSUnionRect(rect, [subview frame]); [subview deactivate]; // create scroll view now. scrollView = [[NSScrollView alloc] initWithFrame: rect]; [scrollView setHasHorizontalScroller: YES]; [scrollView setHasVerticalScroller: YES]; [scrollView setBorderType: NSBezelBorder]; // attach the scroll view... [document attachObject: scrollView toParent: _editedObject]; [superview addSubview: scrollView]; // add the view v = [subview editedObject]; [scrollView setDocumentView: v]; // set the origin.. frameOrigin = [v frame].origin; frameOrigin.x -= rect.origin.x; frameOrigin.y -= rect.origin.y; [v setFrameOrigin: frameOrigin]; [subview close]; } editor = (GormViewEditor *)[document editorForObject: scrollView inEditor: self create: YES]; [self selectObjects: [NSArray arrayWithObject: editor]]; } @class GormBoxEditor; @class GormSplitViewEditor; @class GormScrollViewEditor; - (void) _addViewToDocument: (NSView *)view { NSView *par = [view superview]; if([par isKindOfClass: [GormViewEditor class]]) { par = [(GormViewEditor *)par editedObject]; } [document attachObject: view toParent: par]; } - (void) ungroup { NSView *toUngroup; if ([selection count] != 1) return; NSDebugLog(@"ungroup called"); toUngroup = [selection objectAtIndex: 0]; NSDebugLog(@"toUngroup = %@",[toUngroup description]); if ([toUngroup respondsToSelector: @selector(destroyAndListSubviews)]) { id contentView = toUngroup; id eo = [contentView editedObject]; NSMutableArray *newSelection = [NSMutableArray array]; NSArray *views; NSInteger i; views = [contentView destroyAndListSubviews]; for (i = 0; i < [views count]; i++) { id v = [views objectAtIndex: i]; [_editedObject addSubview: v]; [self _addViewToDocument: v]; [newSelection addObject: [document editorForObject: v inEditor: self create: YES]]; } [contentView close]; [self selectObjects: newSelection]; [document detachObject: eo]; [eo removeFromSuperview]; } } - (void) pasteInView: (NSView *)view { NSPasteboard *pb = [NSPasteboard generalPasteboard]; NSMutableArray *array = [NSMutableArray array]; NSArray *views; NSEnumerator *enumerator; NSView *sub; /* * Ask the document to get the copied views from the pasteboard and add * them to it's collection of known objects. */ views = [document pasteType: IBViewPboardType fromPasteboard: pb parent: _editedObject]; /* * Now make all the views subviews of ourself. */ enumerator = [views objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { if ([sub isKindOfClass: [NSView class]] == YES) { // // Correct the frame if it is outside of the containing view. // this prevents issues where the subview is placed outside the // viewable region of the superview. // if(NSContainsRect([view frame], [sub frame]) == NO) { NSRect newFrame = [sub frame]; newFrame.origin.x = 0; newFrame.origin.y = 0; [sub setFrame: newFrame]; } [view addSubview: sub]; [self _addViewToDocument: sub]; [array addObject: [document editorForObject: sub inEditor: self create: YES]]; } } [self selectObjects: array]; } @end gorm-1.3.1/GormCore/GormPluginManager.h0000644000175000017500000000277314327003122016737 0ustar heronheron/* GormPluginManager.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Author: Richard Frith-Macdonald * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormPluginManager_h #define INCLUDED_GormPluginManager_h #include @class NSMutableArray, NSMutableDictionary, NSDictionary, NSArray, NSBundle; @class NSPanel, NSMatrix, NSView; @interface GormPluginManager : NSObject { NSMutableArray *bundles; NSMutableDictionary *pluginsDict; NSMutableArray *plugins; NSMutableArray *pluginNames; } // methods for loading and display the palette panels - (BOOL) loadPlugin: (NSString*)path; - (id) openPlugin: (id) sender; @end #endif gorm-1.3.1/GormCore/GormOpenGLView.h0000644000175000017500000000226714327003122016163 0ustar heronheron/* GormOpenGLView.h - Demo view for show when displaying a NSOpenGLView during * testing only. * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormOpenGLView_h #define INCLUDED_GormOpenGLView_h #include @class NSTimer; @interface GormOpenGLView : NSView { float rtri; NSTimer *timer; } @end #endif gorm-1.3.1/GormCore/GormClassEditor.h0000644000175000017500000000471414327003122016417 0ustar heronheron/* GormClassEditor.h * * Copyright (C) 1999, 2003, 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2003, 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormClassEditor_h #define INCLUDED_GormClassEditor_h #include #include #include @class NSString, NSArray, GormDocument, GormClassManager, NSBrowser; extern NSString *GormClassPboardType; extern NSString *GormSwitchViewPreferencesNotification; @interface GormClassEditor : NSView { GormDocument *document; GormClassManager *classManager; NSString *selectedClass; NSScrollView *scrollView; GormOutlineView *outlineView; NSBrowser *browserView; id classesView; id mainView; id viewToggle; } - (GormClassEditor*) initWithDocument: (GormDocument*)doc; + (GormClassEditor*) classEditorForDocument: (GormDocument*)doc; - (void) setSelectedClassName: (NSString*)cn; - (NSString *) selectedClassName; - (void) selectClassWithObject: (id)obj editClass: (BOOL)flag; - (void) selectClassWithObject: (id)obj; - (void) selectClass: (NSString *)className editClass: (BOOL)flag; - (void) selectClass: (NSString *)className; - (BOOL) currentSelectionIsClass; - (void) editClass; // - (void) createSubclass; - (void) addAttributeToClass; - (void) deleteSelection; - (NSArray *) fileTypes; - (void) reloadData; - (BOOL) isEditing; - (id) instantiateClass: (id)sender; - (id) createSubclass: (id)sender; - (id) loadClass: (id)sender; - (id) createClassFiles: (id)sender; - (id) removeClass: (id)sender; @end #endif gorm-1.3.1/GormCore/GormInternalViewEditor.m0000644000175000017500000004430014327003122017761 0ustar heronheron/* GormInternalViewEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormInternalViewEditor.h" #include "GormFontViewController.h" #include "GormViewKnobs.h" #include "GormDefines.h" @class GormEditorToParent; static NSImage *verticalImage; static NSImage *horizontalImage; @implementation NSView (IBObjectAdditions) - (NSString*) editorClassName { // using NSBox gets rid of compiler warning, should be safe for all classes. if ([self superview] && (([[self superview] respondsToSelector: @selector(contentView)] && [(NSBox *)[self superview] contentView] == self) || [[self superview] isKindOfClass: [NSTabView class]] || [[[self superview] window] contentView] == self || [[self superview] isKindOfClass: [NSClipView class]])) { return @"GormInternalViewEditor"; } else if ([self class] == [NSView class]) { return @"GormStandaloneViewEditor"; } else { return @"GormViewWithSubviewsEditor"; } } - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormView"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } - (NSString*) sizeInspectorClassName { return @"GormViewSizeInspector"; } - (NSString*) customClassInspector { return @"GormCustomClassInspector"; } @end @implementation GormInternalViewEditor + (void)initialize { horizontalImage = nil; verticalImage = nil; } - (void) dealloc { RELEASE(selection); [super dealloc]; } - (BOOL) activate { if (activated == NO) { NSEnumerator *enumerator; NSView *sub; id superview = [_editedObject superview]; [self setFrame: [_editedObject frame]]; [self setBounds: [self frame]]; if ([superview isKindOfClass: [NSBox class]]) { NSBox *boxSuperview = (NSBox *) superview; [boxSuperview setContentView: self]; } else if ([superview isKindOfClass: [NSTabView class]]) { NSTabView *tabSuperview = (NSTabView *) superview; [tabSuperview removeSubview: [[tabSuperview selectedTabViewItem] view]]; [[tabSuperview selectedTabViewItem] setView: self]; [tabSuperview addSubview: self]; [self setFrame: [tabSuperview contentRect]]; [self setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable]; } else if ([[superview window] contentView] == _editedObject) { [[superview window] setContentView: self]; } else if ([superview isKindOfClass: [NSClipView class]]) { [superview setDocumentView: self]; } [self addSubview: _editedObject]; [_editedObject setPostsFrameChangedNotifications: YES]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(editedObjectFrameDidChange:) name: NSViewFrameDidChangeNotification object: _editedObject]; [self setPostsFrameChangedNotifications: YES]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(frameDidChange:) name: NSViewFrameDidChangeNotification object: self]; parent = (GormViewWithSubviewsEditor *)[document parentEditorForEditor: self]; if ([parent isKindOfClass: [GormViewEditor class]]) [parent setNeedsDisplay: YES]; else [self setNeedsDisplay: YES]; activated = YES; enumerator = [[NSArray arrayWithArray: [_editedObject subviews]] objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { if ([sub isKindOfClass: [GormViewEditor class]] == NO) { [document editorForObject: sub inEditor: self create: YES]; } } return YES; } return NO; } - (void) deactivate { if (activated == YES) { id superview = [self superview]; // NSView *superview = [self superview]; [self deactivateSubeditors]; if ([superview isKindOfClass: [NSBox class]]) { NSBox *boxSuperview = (NSBox *) superview; [self removeSubview: _editedObject]; [boxSuperview setContentView: _editedObject]; } else if ([superview isKindOfClass: [NSTabView class]]) { NSTabView *tabSuperview = (NSTabView *) superview; [tabSuperview removeSubview: self]; [[tabSuperview selectedTabViewItem] setView: _editedObject]; [tabSuperview addSubview: [[tabSuperview selectedTabViewItem] view]]; [[[tabSuperview selectedTabViewItem] view] setFrame: [tabSuperview contentRect]]; } else if ([[superview window] contentView] == self) { [self removeSubview: _editedObject]; [[superview window] setContentView: _editedObject]; } else if ([superview isKindOfClass: [NSClipView class]]) { [superview setDocumentView: _editedObject]; } [[NSNotificationCenter defaultCenter] removeObserver: self]; } activated = NO; } - (id) initWithObject: (id)anObject inDocument: (id)aDocument { NSMutableArray *types = [NSMutableArray arrayWithObjects: IBViewPboardType, GormLinkPboardType, nil]; opened = NO; openedSubeditor = nil; if ((self = [super initWithObject: anObject inDocument: aDocument]) == nil) return nil; selection = [[NSMutableArray alloc] initWithCapacity: 5]; [self registerForDraggedTypes: types]; if (horizontalImage == nil) { NSCachedImageRep *rep; horizontalImage = [[NSImage allocWithZone:(NSZone *)[(NSObject *)self zone]] initWithSize: NSMakeSize(3000, 2)]; rep = [[NSCachedImageRep allocWithZone: (NSZone *)[(NSObject *)self zone]] initWithSize:NSMakeSize(3000, 2) depth:[NSWindow defaultDepthLimit] separate:YES alpha:YES]; [horizontalImage addRepresentation: rep]; RELEASE(rep); verticalImage = [[NSImage allocWithZone:(NSZone *)[(NSObject *)self zone]] initWithSize: NSMakeSize(2, 3000)]; rep = [[NSCachedImageRep allocWithZone: (NSZone *)[(NSObject *)self zone]] initWithSize:NSMakeSize(2, 3000) depth:[NSWindow defaultDepthLimit] separate:YES alpha:YES]; [verticalImage addRepresentation: rep]; RELEASE(rep); } return self; } - (void) makeSelectionVisible: (BOOL) value { } - (NSArray*) selection { NSInteger i; NSInteger count = [selection count]; NSMutableArray *result = [NSMutableArray arrayWithCapacity: count]; if (count != 0) { for (i = 0; i < count; i++) { [result addObject: [[selection objectAtIndex: i] editedObject]]; } } else { return [parent selection]; } return result; } - (void) deleteSelection { NSInteger i; NSArray *sel = [selection copy]; NSInteger count = [sel count]; for (i = count - 1; i >= 0; i--) { id ed = [sel objectAtIndex: i]; id temp = [ed editedObject]; [ed detachSubviews]; [document detachObject: temp]; } } - (void) mouseDown: (NSEvent *) theEvent { BOOL onKnob = NO; if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _editedObject]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (parent) return [parent mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } if ([parent isOpened] == NO) { NSDebugLog(@"md %@ calling my parent %@", self, parent); [parent mouseDown: theEvent]; return; } // are we on the knob of a selected view ? { NSInteger count = [selection count]; NSInteger i; GormViewEditor *knobView = nil; IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint; for ( i = 0; i < count; i++ ) { mouseDownPoint = [[[selection objectAtIndex: i] superview] convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([[selection objectAtIndex: i] frame], mouseDownPoint); if (knob != IBNoneKnobPosition) { knobView = [selection objectAtIndex: i]; [self selectObjects: [NSMutableArray arrayWithObject: knobView]]; // we should set knobView as the only view selected break; } } if ( openedSubeditor != nil ) { mouseDownPoint = [[openedSubeditor superview] convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([openedSubeditor frame], mouseDownPoint); if (knob != IBNoneKnobPosition) { knobView = openedSubeditor; // we should take back the selection // we should select openedSubeditor only [self selectObjects: [NSMutableArray arrayWithObject: knobView]]; [[self window] disableFlushWindow]; [self display]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } } if (knobView != nil) { [self handleMouseOnKnob: knob ofView: knobView withEvent: theEvent]; [self setNeedsDisplay: YES]; return; } } { GormViewEditor *editorView; // get the view we are on { NSPoint mouseDownPoint; NSView *result = nil; GormViewEditor *theParent = nil; mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; result = [_editedObject hitTest: mouseDownPoint]; // we should get a result which is a direct subeditor { id temp = result; if ([temp isKindOfClass: [GormViewEditor class]]) theParent = [(GormViewEditor *)temp parent]; while ((temp != nil) && (theParent != self) && (temp != self)) { temp = [temp superview]; while (![temp isKindOfClass: [GormViewEditor class]]) { temp = [temp superview]; } theParent = [(GormViewEditor *)temp parent]; } if (temp != nil) { result = temp; } else { NSDebugLog(@"WARNING -- strange case"); result = self; } } if ([result isKindOfClass: [GormViewEditor class]]) { } else { result = nil; } // this is the direct subeditor the mouse was clicked on // (or self) editorView = (GormViewEditor *)result; } if (([theEvent clickCount] == 2) && [editorView isKindOfClass: [GormViewWithSubviewsEditor class]] && ([(id)editorView canBeOpened] == YES) && (editorView != self)) // Let's open a subeditor { [(GormViewWithSubviewsEditor *) editorView setOpened: YES]; [self silentlyResetSelection]; openedSubeditor = (GormViewWithSubviewsEditor *) editorView; [self setNeedsDisplay: YES]; return; } if (editorView != self) { [self handleMouseOnView: editorView withEvent: theEvent]; } else // editorView == self { NSEvent *e; unsigned eventMask; NSDate *future = [NSDate distantFuture]; NSRect oldRect = NSZeroRect; NSPoint p, oldp; NSRect r = NSZeroRect; float x, y, w, h; oldp = [self convertPoint: [theEvent locationInWindow] fromView: nil]; eventMask = NSLeftMouseUpMask | NSLeftMouseDraggedMask; if (!([theEvent modifierFlags] & NSShiftKeyMask)) [self selectObjects: [NSMutableArray array]]; [[self window] disableFlushWindow]; [self setNeedsDisplay: YES]; [self displayIfNeeded]; [[self window] enableFlushWindow]; [[self window] flushWindowIfNeeded]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; [self lockFocus]; while ([e type] != NSLeftMouseUp) { p = [self convertPoint: [e locationInWindow] fromView: nil]; x = (p.x >= oldp.x) ? oldp.x : p.x; y = (p.y >= oldp.y) ? oldp.y : p.y; w = max(p.x, oldp.x) - min(p.x, oldp.x); w = (w == 0) ? 1 : w; h = max(p.y, oldp.y) - min(p.y, oldp.y); h = (h == 0) ? 1 : h; r = NSMakeRect(x, y, w, h); if (NSEqualRects(oldRect, NSZeroRect) == NO) { [verticalImage compositeToPoint: NSMakePoint(NSMinX(oldRect), NSMinY(oldRect)) fromRect: NSMakeRect(0.0, 0.0, 1.0, oldRect.size.height) operation: NSCompositeCopy]; [verticalImage compositeToPoint: NSMakePoint(NSMaxX(oldRect)-1, NSMinY(oldRect)) fromRect: NSMakeRect(1.0, 0.0, 1.0, oldRect.size.height) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(oldRect), NSMinY(oldRect)) fromRect: NSMakeRect(0.0, 0.0, oldRect.size.width, 1.0) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(oldRect), NSMaxY(oldRect)-1) fromRect: NSMakeRect(0.0, 1.0, oldRect.size.width, 1.0) operation: NSCompositeCopy]; } { NSRect wr; wr = [self convertRect: r toView: nil]; [verticalImage lockFocus]; NSCopyBits([[self window] gState], NSMakeRect(NSMinX(wr), NSMinY(wr), 1.0, r.size.height), NSMakePoint(0.0, 0.0)); NSCopyBits([[self window] gState], NSMakeRect(NSMaxX(wr)-1, NSMinY(wr), 1.0, r.size.height), NSMakePoint(1.0, 0.0)); [verticalImage unlockFocus]; [horizontalImage lockFocus]; NSCopyBits([[self window] gState], NSMakeRect(NSMinX(wr), NSMinY(wr), r.size.width, 1.0), NSMakePoint(0.0, 0.0)); NSCopyBits([[self window] gState], NSMakeRect(NSMinX(wr), NSMaxY(wr)-1, r.size.width, 1.0), NSMakePoint(0.0, 1.0)); [horizontalImage unlockFocus]; } [[NSColor darkGrayColor] set]; NSFrameRect(r); oldRect = r; [[self window] enableFlushWindow]; [[self window] flushWindow]; [[self window] disableFlushWindow]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; } if (NSEqualRects(r, NSZeroRect) == NO) { [verticalImage compositeToPoint: NSMakePoint(NSMinX(r), NSMinY(r)) fromRect: NSMakeRect(0.0, 0.0, 1.0, r.size.height) operation: NSCompositeCopy]; [verticalImage compositeToPoint: NSMakePoint(NSMaxX(r)-1, NSMinY(r)) fromRect: NSMakeRect(1.0, 0.0, 1.0, r.size.height) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(r), NSMinY(r)) fromRect: NSMakeRect(0.0, 0.0, r.size.width, 1.0) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(r), NSMaxY(r)-1) fromRect: NSMakeRect(0.0, 1.0, r.size.width, 1.0) operation: NSCompositeCopy]; } { NSMutableArray *array; NSEnumerator *enumerator; NSView *subview; if ([theEvent modifierFlags] & NSShiftKeyMask) array = [NSMutableArray arrayWithArray: selection]; else array = [NSMutableArray arrayWithCapacity: 8]; enumerator = [[_editedObject subviews] objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { if ((NSIntersectsRect(r, [subview frame]) == YES) && [subview isKindOfClass: [GormViewEditor class]]) { [array addObject: subview]; } } if ([array count] > 0) { [self selectObjects: array]; } [self displayIfNeeded]; [self unlockFocus]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } } } } - (void) pasteInSelection { [self pasteInView: _editedObject]; } @class GormBoxEditor; @class GormSplitViewEditor; - (NSArray *)destroyAndListSubviews { NSEnumerator *enumerator = [[_editedObject subviews] objectEnumerator]; GormViewEditor *subview; NSMutableArray *newSelection = [NSMutableArray array]; [[parent parent] makeSubeditorResign]; while ((subview = [enumerator nextObject]) != nil) { id v; NSRect frame; v = [subview editedObject]; frame = [v frame]; frame = [[parent parent] convertRect: frame fromView: _editedObject]; [subview deactivate]; [v setFrame: frame]; [newSelection addObject: v]; } [parent close]; return newSelection; } - (void) deleteSelection: (id) sender { [self deleteSelection]; } - (void) changeFont: (id)sender { NSEnumerator *enumerator = [[self selection] objectEnumerator]; id anObject; NSFont *newFont; NSUInteger count = 0; NSDebugLog(@"In %@ changing font for %@",[self className],[self selection]); while ((anObject = [enumerator nextObject])) { if([anObject respondsToSelector: @selector(setTitleFont:)] && [anObject respondsToSelector: @selector(setTextFont:)]) { count++; newFont = [sender convertFont: [anObject font]]; newFont = [[GormFontViewController sharedGormFontViewController] convertFont: newFont]; [anObject setTitleFont: newFont]; [anObject setTextFont: newFont]; } else if ([anObject respondsToSelector: @selector(font)] && [anObject respondsToSelector: @selector(setFont:)]) { count++; newFont = [sender convertFont: [anObject font]]; newFont = [[GormFontViewController sharedGormFontViewController] convertFont: newFont]; [anObject setFont: newFont]; } } // if the font was changed, mark us as altered... if(count > 0) { [[self document] touch]; } return; } @end gorm-1.3.1/GormCore/GormNSPanel.h0000644000175000017500000000260414327003122015477 0ustar heronheron/* GormNSPanel.h Copyright (C) 2003 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2003 Adapted from GormNSWindow.h This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNSPanel_h #define INCLUDED_GormNSPanel_h #include @interface GormNSPanel : NSPanel { unsigned _gormStyleMask; BOOL _gormReleasedWhenClosed; NSUInteger autoPositionMask; } - (void) _setStyleMask: (unsigned int)newStyleMask; - (unsigned int) _styleMask; - (void) _setReleasedWhenClosed: (BOOL) flag; - (BOOL) _isReleasedWhenClosed; - (unsigned int) autoPositionMask; - (void) setAutoPositionMask: (unsigned int)mask; @end #endif gorm-1.3.1/GormCore/GormPlugin.m0000644000175000017500000000506414327003122015445 0ustar heronheron/* GormNibModule.m * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include #include #include @interface NSDocumentController (GormPrivate) - (NSArray *) types; - (void) setTypes: (NSArray *)types; - (BOOL) containsDocumentTypeName: (NSString *)tname; @end static Ivar types_ivar(void) { static Ivar iv; if (iv == NULL) { iv = class_getInstanceVariable([NSDocumentController class], "_types"); NSCAssert(iv, @"Unable to find _types instance variable of NSDocumentController"); } return iv; } @implementation NSDocumentController (GormPrivate) - (NSArray *) types { return object_getIvar(self, types_ivar()); } - (void) setTypes: (NSArray *)types { object_setIvar(self, types_ivar(), types); } - (BOOL) containsDocumentTypeName: (NSString *)tname { NSEnumerator *en = [object_getIvar(self, types_ivar()) objectEnumerator]; id obj = nil; while ((obj = [en nextObject]) != nil) { NSString *name = [obj objectForKey: @"NSName"]; if([tname isEqualToString: name]) { return YES; } } return NO; } @end @implementation GormPlugin - (void) registerDocumentTypeName: (NSString *)name humanReadableName: (NSString *)hrName forExtensions: (NSArray *)extensions { NSDocumentController *controller = [NSDocumentController sharedDocumentController]; NSMutableArray *types = [[controller types] mutableCopy]; if([controller containsDocumentTypeName: name] == NO) { NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys: name, @"NSName", hrName, @"NSHumanReadableName", extensions, @"NSUnixExtensions", nil]; [types addObject: dict]; [controller setTypes: types]; } } @end gorm-1.3.1/GormCore/GormHelpInspector.h0000644000175000017500000000025114327003122016752 0ustar heronheron/* All Rights reserved */ #include #include @interface GormHelpInspector : IBInspector { id toolTip; } @end gorm-1.3.1/GormCore/GormDocumentController.h0000644000175000017500000000276514327003122020031 0ustar heronheron/* GormDocumentController.m * * This class contains Gorm specific implementation of the IBDocuments * protocol plus additional methods which are useful for managing the * contents of the document. * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormDocumentController_h #define INCLUDED_GormDocumentController_h #include typedef enum { GormApplication = 0, GormEmpty = 1, GormInspector = 2, GormPalette = 3 } GormDocumentType; @interface GormDocumentController : NSDocumentController { } - (void) buildDocumentForType: (GormDocumentType)documentType; - (id) openDocumentWithContentsOfURL:(NSURL *)url; @end #endif gorm-1.3.1/GormCore/NSColorWell+GormExtensions.h0000644000175000017500000000232114327003122020471 0ustar heronheron/* NSColor+GormExtensions.h * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_NSColorWell_GormExtensions_h #define INCLUDED_NSColorWell_GormExtensions_h #include @interface NSColorWell (GormExtensions) /** * Changes the color without sending the action associated with it. */ - (void) setColorWithoutAction: (NSColor *)color; @end #endif gorm-1.3.1/GormCore/GormFilesOwner.h0000644000175000017500000000312714327003122016255 0ustar heronheron/* GormFilesOwner.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormFilesOwner_h #define INCLUDED_GormFilesOwner_h #include #include @class NSMutableArray, NSBrowser, NSString; /* * Each document has a GormFilesOwner object that is used as a placeholder * for the owner of the document. */ @interface GormFilesOwner : NSObject { NSString *className; } - (NSString*) className; - (void) setClassName: (NSString*)aName; @end @interface GormFilesOwnerInspector : IBInspector { NSBrowser *browser; NSMutableArray *classes; BOOL hasConnections; } - (void) takeClassFrom: (id)sender; @end #endif gorm-1.3.1/GormCore/GormViewWindow.h0000644000175000017500000000222414327003122016277 0ustar heronheron/* GormViewWindow.h * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormViewWindow_h #define INCLUDED_GormViewWindow_h #include @interface GormViewWindow : NSWindow { NSView *_view; } - (id) initWithView: (NSView *)view; - (NSView *)view; - (void) setView: (NSView *)view; @end #endif gorm-1.3.1/GormCore/GormOutlineView.m0000644000175000017500000004741314327003122016465 0ustar heronheron/** GormOutlineView The NSOutlineView subclass in gorm which handles outlet/action editing Copyright (C) 2001 Free Software Foundation, Inc. Author: Gregory John Casamento Date: July 2002 This file is part of the GNUstep GUI Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include "GormOutlineView.h" static NSNotificationCenter *nc = nil; static const NSInteger current_version = 1; // Cache the arrow images... static NSImage *collapsed = nil; static NSImage *expanded = nil; static NSImage *unexpandable = nil; static NSImage *action = nil; static NSImage *outlet = nil; static NSImage *actionSelected = nil; static NSImage *outletSelected = nil; // some common colors which will be used to indicate state in the outline // view. static NSColor *salmonColor = nil; static NSColor *darkSalmonColor = nil; static NSColor *lightGreyBlueColor = nil; static NSColor *darkGreyBlueColor = nil; @implementation GormOutletActionHolder - init { [super init]; _name = nil; return self; } - initWithName: (NSString *)name { [self init]; ASSIGN(_name,name); return self; } - (NSString *)getName { return _name; } - (void)setName: (NSString *)name { ASSIGN(_name,name); } @end @implementation GormOutlineView // Initialize the class when it is loaded + (void) initialize { if (self == [GormOutlineView class]) { // initialize images [self setVersion: current_version]; nc = [NSNotificationCenter defaultCenter]; collapsed = [NSImage imageNamed: @"common_outlineCollapsed"]; expanded = [NSImage imageNamed: @"common_outlineExpanded"]; unexpandable = [NSImage imageNamed: @"common_outlineUnexpandable"]; action = [NSImage imageNamed: @"GormAction"]; outlet = [NSImage imageNamed: @"GormOutlet"]; actionSelected = [NSImage imageNamed: @"GormActionSelected"]; outletSelected = [NSImage imageNamed: @"GormOutletSelected"]; // initialize colors salmonColor = RETAIN([NSColor colorWithCalibratedRed: 0.850980 green: 0.737255 blue: 0.576471 alpha: 1.0 ]); darkSalmonColor = RETAIN([NSColor colorWithCalibratedRed: 0.568627 green: 0.494118 blue: 0.384314 alpha: 1.0 ]); lightGreyBlueColor = RETAIN([NSColor colorWithCalibratedRed: 0.450980 green: 0.450980 blue: 0.521569 alpha: 1.0 ]); darkGreyBlueColor = RETAIN([NSColor colorWithCalibratedRed: 0.333333 green: 0.333333 blue: 0.384314 alpha: 1.0 ]); } } - (void) _handleDoubleClick: (id)sender { NSDebugLog(@"Double clicked"); } - init { if((self = [super init]) != nil) { _actionColumn = nil; _outletColumn = nil; _isEditing = NO; _attributeOffset = 0.0; _edittype = None; _menuItem = nil; [self setDoubleAction: @selector(_handleDoubleClick:)]; [self setTarget: self]; } return self; } - (void) collapseItem: (id)item collapseChildren: (BOOL)collapseChildren; { if (!_isEditing) { // [self deselectAll: self]; [super collapseItem: item collapseChildren: collapseChildren]; } } - (void) expandItem: (id)item expandChildren: (BOOL)expandChildren { if (!_isEditing) { // [self deselectAll: self]; [super expandItem: item expandChildren: expandChildren]; } } - (BOOL) _isOutletOrActionOfItemBeingEdited: (NSString *)name { NSArray *array = nil; array = [_dataSource outlineView: self actionsForItem: _itemBeingEdited]; if ([array containsObject: name]) return YES; array = [_dataSource outlineView: self outletsForItem: _itemBeingEdited]; if ([array containsObject: name]) return YES; return NO; } - (void) _addNewActionToObject: (id)item { NSUInteger insertionPoint = 0; NSString *name = nil; GormOutletActionHolder *holder = [[GormOutletActionHolder alloc] init]; name = [_dataSource outlineView: self addNewActionForClass: _itemBeingEdited]; if (name != nil) { _numberOfRows += 1; [holder setName: name]; insertionPoint = [_items indexOfObject: item]; [_items insertObject: holder atIndex: insertionPoint + 1]; [self setNeedsDisplay: YES]; [self noteNumberOfRowsChanged]; } } - (void) _addNewOutletToObject: (id)item { NSUInteger insertionPoint = 0; GormOutletActionHolder *holder = [[GormOutletActionHolder alloc] init]; NSString *name = nil; _numberOfRows += 1; name = [_dataSource outlineView: self addNewOutletForClass: _itemBeingEdited]; if (name != nil) { [holder setName: name]; insertionPoint = [_items indexOfObject: item]; [_items insertObject: holder atIndex: insertionPoint + 1]; [self setNeedsDisplay: YES]; [self noteNumberOfRowsChanged]; } } - (void) removeItemAtRow: (int)row { [_items removeObjectAtIndex: row]; _numberOfRows -= 1; [self setNeedsDisplay: YES]; [self noteNumberOfRowsChanged]; } - (void)_openActions: (id)item { NSInteger numchildren = 0; NSInteger i = 0; NSUInteger insertionPoint = 0; id object = nil; id sitem = (item == nil)?((id)[NSNull null]):((id)item); object = [_dataSource outlineView: self actionsForItem: sitem]; numchildren = [object count]; _numberOfRows += numchildren; // open the item... if (item != nil) { [self setItemBeingEdited: item]; [self setIsEditing: YES]; } insertionPoint = [_items indexOfObject: item]; if (insertionPoint == NSNotFound) { insertionPoint = 0; } else { insertionPoint++; } [self setNeedsDisplay: YES]; for (i = numchildren - 1; i >= 0; i--) { id child = [object objectAtIndex: i]; // Add all of the children... GormOutletActionHolder *holder; holder = [[GormOutletActionHolder alloc] initWithName: child]; [_items insertObject: holder atIndex: insertionPoint]; } [self noteNumberOfRowsChanged]; } - (void) _openOutlets: (id)item { NSInteger numchildren = 0; NSInteger i = 0; NSInteger insertionPoint = 0; id object = nil; id sitem = (item == nil)?((id)[NSNull null]):((id)item); object = [_dataSource outlineView: self outletsForItem: sitem]; numchildren = [object count]; _numberOfRows += numchildren; // open the item... if (item != nil) { [self setItemBeingEdited: item]; [self setIsEditing: YES]; } insertionPoint = [_items indexOfObject: item]; if (insertionPoint == NSNotFound) { insertionPoint = 0; } else { insertionPoint++; } [self setNeedsDisplay: YES]; for (i = numchildren - 1; i >= 0; i--) { id child = [object objectAtIndex: i]; // Add all of the children... GormOutletActionHolder *holder; holder = [[GormOutletActionHolder alloc] initWithName: child]; [_items insertObject: holder atIndex: insertionPoint]; } [self noteNumberOfRowsChanged]; } - (void) drawRow: (NSInteger)rowIndex clipRect: (NSRect)aRect { NSInteger startingColumn; NSInteger endingColumn; NSTableColumn *tb; NSRect drawingRect; NSCell *cell; NSCell *imageCell = nil; NSRect imageRect; NSInteger i; float x_pos; if (_dataSource == nil) { return; } /* Using columnAtPoint: here would make it called twice per row per drawn rect - so we avoid it and do it natively */ if (rowIndex >= _numberOfRows) { return; } /* Determine starting column as fast as possible */ x_pos = NSMinX (aRect); i = 0; while ((x_pos > _columnOrigins[i]) && (i < _numberOfColumns)) { i++; } startingColumn = (i - 1); if (startingColumn == -1) startingColumn = 0; /* Determine ending column as fast as possible */ x_pos = NSMaxX (aRect); // Nota Bene: we do *not* reset i while ((x_pos > _columnOrigins[i]) && (i < _numberOfColumns)) { i++; } endingColumn = (i - 1); if (endingColumn == -1) endingColumn = _numberOfColumns - 1; /* Draw the row between startingColumn and endingColumn */ for (i = startingColumn; i <= endingColumn; i++) { if (i != _editedColumn || rowIndex != _editedRow) { id item = [self itemAtRow: rowIndex]; id value = nil, valueforcell = nil; BOOL isOutletAction = NO; tb = [_tableColumns objectAtIndex: i]; cell = [tb dataCellForRow: rowIndex]; value = [_dataSource outlineView: self objectValueForTableColumn: tb byItem: item]; if ([value isKindOfClass: [GormOutletActionHolder class]]) { valueforcell = [value getName]; isOutletAction = YES; } else { valueforcell = value; isOutletAction = NO; } if ([_delegate respondsToSelector: @selector(outlineView:willDisplayCell:forTableColumn:item:)]) { [_delegate outlineView: self willDisplayCell: cell forTableColumn: tb item: item]; } [cell setObjectValue: valueforcell]; drawingRect = [self frameOfCellAtColumn: i row: rowIndex]; if (isOutletAction) { drawingRect.origin.x += _attributeOffset; drawingRect.size.width -= _attributeOffset; } if (tb == _outlineTableColumn && !isOutletAction) { NSImage *image = nil; NSInteger level = 0; float indentationFactor = 0.0; // display the correct arrow... if ([self isItemExpanded: item]) { image = expanded; } else { image = collapsed; } if (![self isExpandable: item]) { image = unexpandable; } level = [self levelForItem: item]; indentationFactor = _indentationPerLevel * level; imageCell = [[NSCell alloc] initImageCell: image]; if (_indentationMarkerFollowsCell) { imageRect.origin.x = drawingRect.origin.x + indentationFactor; imageRect.origin.y = drawingRect.origin.y; } else { imageRect.origin.x = drawingRect.origin.x; imageRect.origin.y = drawingRect.origin.y; } imageRect.size.width = [image size].width; imageRect.size.height = [image size].height; [imageCell drawWithFrame: imageRect inView: self]; drawingRect.origin.x += indentationFactor + [image size].width + 5; drawingRect.size.width -= indentationFactor + [image size].width + 5; // [cell drawWithFrame: drawingRect inView: self]; } else if ((tb == _actionColumn || tb == _outletColumn) && isOutletAction == NO) { NSImage *image = nil; if (item == _itemBeingEdited && tb == _actionColumn && _edittype == Actions) image = actionSelected; else if (item == _itemBeingEdited && tb == _outletColumn && _edittype == Outlets) image = outletSelected; else image = (tb == _actionColumn)?action:outlet; // Prepare image cell... imageCell = [[NSCell alloc] initImageCell: image]; imageRect.origin.x = drawingRect.origin.x; imageRect.origin.y = drawingRect.origin.y; imageRect.size.width = [image size].width; imageRect.size.height = [image size].height; [imageCell drawWithFrame: imageRect inView: self]; // Adjust drawing rect of cell being displayed... drawingRect.origin.x += [image size].width + 5; drawingRect.size.width -= [image size].width + 5; // [cell drawWithFrame: drawingRect inView: self]; } if (((tb != _outletColumn || tb != _actionColumn) && !isOutletAction) || (tb == _outlineTableColumn)) { [cell drawWithFrame: drawingRect inView: self]; } } } } - (void) reset { [self setItemBeingEdited: nil]; [self setIsEditing: NO]; [self setBackgroundColor: salmonColor]; [self reloadData]; } - (void) mouseDown: (NSEvent *)theEvent { NSPoint location = [theEvent locationInWindow]; NSTableColumn *tb; NSImage *image = nil; id _clickedItem = nil; BOOL isActionOrOutlet = NO; location = [self convertPoint: location fromView: nil]; _clickedRow = [self rowAtPoint: location]; _clickedColumn = [self columnAtPoint: location]; _clickedItem = [self itemAtRow: _clickedRow]; isActionOrOutlet = [_clickedItem isKindOfClass: [GormOutletActionHolder class]]; tb = [_tableColumns objectAtIndex: _clickedColumn]; if (tb == _actionColumn) { image = action; } else if (tb == _outletColumn) { image = outlet; } if ((tb == _actionColumn || tb == _outletColumn) && !_isEditing) { NSInteger position = 0; position += _columnOrigins[_clickedColumn] + 5; if (location.x >= position && location.x <= position + [image size].width + 5) { [self setItemBeingEdited: _clickedItem]; [self setIsEditing: YES]; // [self setBackgroundColor: darkSalmonColor]; // for later if (tb == _actionColumn) { _edittype = Actions; [self _openActions: _clickedItem]; } else if (tb == _outletColumn) { _edittype = Outlets; [self _openOutlets: _clickedItem]; } } [super mouseDown: theEvent]; } else if (_isEditing && !isActionOrOutlet) { if (_clickedItem != [self itemBeingEdited] && !isActionOrOutlet) { [self reset]; } else if (tb == _actionColumn) { if (_edittype != Actions) { [self reset]; _edittype = Actions; [self _openActions: _clickedItem]; } } else /* tb == _outletColumn */ { if (_edittype != Outlets) { [self reset]; _edittype = Outlets; [self _openOutlets: _clickedItem]; } } } else { [super mouseDown: theEvent]; } } // additional methods for subclass - (void) setAttributeOffset: (float)offset { _attributeOffset = offset; } - (float) attributeOffset { return _attributeOffset; } - (void) setItemBeingEdited: (id)item { _itemBeingEdited = item; } - (id) itemBeingEdited { return _itemBeingEdited; } - (void) setIsEditing: (BOOL)flag { _isEditing = flag; } - (BOOL) isEditing { return _isEditing; } - (void)setActionColumn: (NSTableColumn *)ac { ASSIGN(_actionColumn,ac); } - (NSTableColumn *)actionColumn { return _actionColumn; } - (void)setOutletColumn: (NSTableColumn *)oc { ASSIGN(_outletColumn,oc); } - (NSTableColumn *)outletColumn { return _outletColumn; } - (void)setMenuItem: (NSMenuItem *)item { ASSIGN(_menuItem, item); } - (NSMenuItem *)menuItem { return _menuItem; } - (GSAttributeType)editType { return _edittype; } - (void) editColumn: (NSInteger) columnIndex row: (NSInteger) rowIndex withEvent: (NSEvent *) theEvent select: (BOOL) flag { NSText *t; NSTableColumn *tb; NSRect drawingRect, imageRect; unsigned length = 0; id item = nil; NSInteger level = 0; float indentationFactor = 0.0; NSImage *image = nil; NSCell *imageCell = nil; id value = nil; BOOL isOutletOrAction = NO; // We refuse to edit cells if the delegate can not accept results // of editing. if (_dataSource_editable == NO) { return; } [self scrollRowToVisible: rowIndex]; [self scrollColumnToVisible: columnIndex]; if (rowIndex < 0 || rowIndex >= _numberOfRows || columnIndex < 0 || columnIndex >= _numberOfColumns) { [NSException raise: NSInvalidArgumentException format: @"Row/column out of index in edit"]; } if (_textObject != nil) { [self validateEditing]; [self abortEditing]; } // Now (_textObject == nil) t = [_window fieldEditor: YES forObject: self]; if ([t superview] != nil) { if ([t resignFirstResponder] == NO) { return; } } _editedRow = rowIndex; _editedColumn = columnIndex; item = [self itemAtRow: _editedRow]; // Prepare the cell tb = [_tableColumns objectAtIndex: columnIndex]; // NB: need to be released when no longer used _editedCell = [[tb dataCellForRow: rowIndex] copy]; value = [_dataSource outlineView: self objectValueForTableColumn: tb byItem: item]; if ([value isKindOfClass: [GormOutletActionHolder class]]) { isOutletOrAction = YES; value = [value getName]; } [_editedCell setEditable: YES]; [_editedCell setObjectValue: value]; // We really want the correct background color! if ([_editedCell respondsToSelector: @selector(setBackgroundColor:)]) { [(NSTextFieldCell *)_editedCell setBackgroundColor: _backgroundColor]; } else { [t setBackgroundColor: _backgroundColor]; } // But of course the delegate can mess it up if it wants if (_del_responds) { [_delegate outlineView: self willDisplayCell: _editedCell forTableColumn: tb item: [self itemAtRow: rowIndex]]; } /* Please note the important point - calling stringValue normally causes the _editedCell to call the validateEditing method of its control view ... which happens to be this object :-) but we don't want any spurious validateEditing to be performed before the actual editing is started (otherwise you easily end up with the table view picking up the string stored in the field editor, which is likely to be the string resulting from the last edit somewhere else ... getting into the bug that when you TAB from one cell to another one, the string is copied!), so we must call stringValue when _textObject is still nil. */ if (flag) { length = [[_editedCell stringValue] length]; } _textObject = [_editedCell setUpFieldEditorAttributes: t]; // determine which image to use... if ([self isItemExpanded: item]) { image = expanded; } else { image = collapsed; } if (![self isExpandable: item]) { image = unexpandable; } // move the drawing rect over like in the drawRow routine... level = [self levelForItem: item]; indentationFactor = _indentationPerLevel * level; drawingRect = [self frameOfCellAtColumn: columnIndex row: rowIndex]; if (isOutletOrAction) { drawingRect.origin.x += _attributeOffset; drawingRect.size.width -= _attributeOffset; } else { drawingRect.origin.x += indentationFactor + 5 + [image size].width; drawingRect.size.width -= indentationFactor + 5 + [image size].width; } // create the image cell.. imageCell = [[NSCell alloc] initImageCell: image]; if (_indentationMarkerFollowsCell) { imageRect.origin.x = drawingRect.origin.x + indentationFactor; imageRect.origin.y = drawingRect.origin.y; } else { imageRect.origin.x = drawingRect.origin.x; imageRect.origin.y = drawingRect.origin.y; } // draw... imageRect.size.width = [image size].width; imageRect.size.height = [image size].height; [imageCell drawWithFrame: imageRect inView: self]; if (flag) { [_editedCell selectWithFrame: drawingRect inView: self editor: _textObject delegate: self start: 0 length: length]; } else { [_editedCell editWithFrame: drawingRect inView: self editor: _textObject delegate: self event: theEvent]; } return; } - (void) selectRow: (int)rowIndex { [self setNeedsDisplayInRect: [self rectOfRow: rowIndex]]; [_selectedRows addIndex: rowIndex]; _selectedRow = rowIndex; } @end /* implementation of GormOutlineView */ gorm-1.3.1/GormCore/GormBoxEditor.m0000644000175000017500000001164614327003122016111 0ustar heronheron/* GormBoxEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormBoxEditor.h" #include "GormInternalViewEditor.h" #include "GormViewKnobs.h" #define _EO ((NSBox *)_editedObject) @class GormWindowEditor; @implementation NSBox (IBObjectAdditions) - (NSString*) editorClassName { return @"GormBoxEditor"; } - (NSFont *) font { return [self titleFont]; } - (void) setFont: (NSFont *)aFont { [self setTitleFont: aFont]; } @end @implementation GormBoxEditor - (void) setOpened: (BOOL) flag { [super setOpened: flag]; if (flag == YES) { [document setSelectionFromEditor: contentViewEditor]; } } - (void) dealloc { RELEASE(selection); [super dealloc]; } - (BOOL) activate { if ([super activate]) { NSView *contentView = [_EO contentView]; contentViewEditor = (GormInternalViewEditor *)[document editorForObject: contentView inEditor: self create: YES]; return YES; } return NO; } - (void) deactivate { if (activated == YES) { [self deactivateSubeditors]; [super deactivate]; } } - (void) makeSelectionVisible: (BOOL) value { // not implemented here. } - (void) deleteSelection { NSInteger i = 0; NSInteger count = [selection count]; id temp = nil; for (i = count - 1; i >= 0; i--) { temp = [[selection objectAtIndex: i] editedObject]; [[selection objectAtIndex: i] detachSubviews]; [document detachObject: temp]; [[selection objectAtIndex: i] close]; [temp removeFromSuperview]; [selection removeObjectAtIndex: i]; } [self selectObjects: [NSArray array]]; } - (void) mouseDown: (NSEvent *) theEvent { BOOL onKnob = NO; // if we are on one of our own knob, then this event should be processed // by our parent (cause this is a resizing event) if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _EO]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (parent) return [parent mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } if (opened == NO) { [super mouseDown: theEvent]; return; } if ([[_EO hitTest: [theEvent locationInWindow]] isDescendantOf: contentViewEditor]) { if ([contentViewEditor isOpened] == NO) { [contentViewEditor setOpened: YES]; } [contentViewEditor mouseDown: theEvent]; } else { if ([contentViewEditor isOpened] == YES) { [contentViewEditor setOpened: NO]; } if ((NSMouseInRect([_EO convertPoint: [theEvent locationInWindow] fromView: nil], [_EO titleRect], NO) == YES) && ([theEvent clickCount] == 2)) { NSTextField *tf = [[NSTextField alloc] initWithFrame: [self convertRect: [_EO titleRect] fromView: _EO]]; NSRect frame = [tf frame]; frame.origin.x = [self bounds].origin.x + 3; frame.size.width = [self bounds].size.width - 6; frame.origin.y -= 3; frame.size.height += 4; [tf setBordered: YES]; [tf setEditable: YES]; [tf setBezeled: NO]; [tf setAlignment: NSCenterTextAlignment]; [tf setFrame: frame]; [self addSubview: tf]; [tf setStringValue: [_EO title]]; [self editTextField: tf withEvent: theEvent]; [_EO setTitle: [tf stringValue]]; [tf removeFromSuperview]; RELEASE(tf); [[NSNotificationCenter defaultCenter] postNotificationName: IBSelectionChangedNotification object: self]; } } } - (NSArray *)destroyAndListSubviews { if (contentViewEditor) { if([contentViewEditor respondsToSelector: @selector(destroyAndListSubviews)]) { return [contentViewEditor destroyAndListSubviews]; } else { return nil; } } else { return nil; } } @end gorm-1.3.1/GormCore/GormWindowTemplate.m0000644000175000017500000000320514327003122017145 0ustar heronheron/* GormWindowTemplate * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormWindowTemplate.h" #include "GormNSWindow.h" #include "GormNSPanel.h" // @class GormNSWindow; // @class GormNSPanel; @interface NSWindow (Private) - (void) _setReleasedWhenClosed: (BOOL)flags; @end @implementation NSWindowTemplate (Private) - (void) setBaseWindowClass: (Class) clz { _baseWindowClass = clz; } @end @implementation GormWindowTemplate - (id) nibInstantiate { id object = [super nibInstantiate]; BOOL flag = [object isReleasedWhenClosed]; [object setReleasedWhenClosed: NO]; [object _setReleasedWhenClosed: flag]; return object; } - (Class) baseWindowClass { if([_windowClass isEqualToString:@"NSPanel"]) { return [GormNSPanel class]; } return [GormNSWindow class]; } @end gorm-1.3.1/GormCore/GormViewWithSubviewsEditor.m0000644000175000017500000006474214327003122020664 0ustar heronheron/* GormViewWithSubviewsEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include @class GormEditorToParent; @interface GormViewEditor (Private) - (NSRect) _displayMovingFrameWithHint: (NSRect) frame andPlacementInfo: (GormPlacementInfo *)gpi; @end @implementation GormViewWithSubviewsEditor - (id) initWithObject: (id)anObject inDocument: (id)aDocument { opened = NO; openedSubeditor = nil; if ((self = [super initWithObject: anObject inDocument: aDocument]) == nil) { return nil; } selection = [[NSMutableArray alloc] initWithCapacity: 5]; [self registerForDraggedTypes: [NSArray arrayWithObjects: IBViewPboardType, GormLinkPboardType, IBFormatterPboardType, nil]]; return self; } - (void) close { if (closed == NO) { [self deactivate]; [self closeSubeditors]; [document editor: self didCloseForObject: _editedObject]; closed = YES; } else { NSDebugLog(@"%@ close but already closed", self); } } - (void) deactivateSubeditors { NSArray *subeditorConnections = [NSArray arrayWithArray: [document connectorsForDestination: self ofClass: [GormEditorToParent class]]]; NSInteger count = [subeditorConnections count]; NSInteger i = 0; for ( i = 0; i < count; i ++ ) { [[[subeditorConnections objectAtIndex: i] source] deactivate]; } } - (void) closeSubeditors { NSArray *subeditorConnections = [NSArray arrayWithArray: [document connectorsForDestination: self ofClass: [GormEditorToParent class]]]; NSInteger count = [subeditorConnections count]; NSInteger i = 0; for ( i = 0; i < count; i ++ ) { [[[subeditorConnections objectAtIndex: i] source] close]; } } - (BOOL) canBeOpened { return YES; } - (BOOL) isOpened { return opened; } - (void) setOpened: (BOOL) value { opened = value; if (value == YES) { [self silentlyResetSelection]; // [document setSelectionFromEditor: self]; } else { if (openedSubeditor != nil) { [self makeSubeditorResign]; [self silentlyResetSelection]; } else { [self silentlyResetSelection]; } [self setNeedsDisplay: YES]; } } /* * */ - (void) openParentEditor { if ([parent respondsToSelector: @selector(setOpenedSubeditor:)]) { [parent setOpenedSubeditor: self]; } } - (void) setOpenedSubeditor: (GormViewWithSubviewsEditor *) newEditor { [self silentlyResetSelection]; if (opened == NO) { [self openParentEditor]; } opened = YES; if (newEditor != openedSubeditor) { [self makeSubeditorResign]; } openedSubeditor = newEditor; [self setNeedsDisplay: YES]; } /* * take the selection from the subeditors */ - (void) makeSubeditorResign { if (openedSubeditor != nil) { [openedSubeditor makeSubeditorResign]; [openedSubeditor setOpened: NO]; openedSubeditor = nil; } } - (void) makeSelectionVisible: (BOOL) value { } - (void) changeFont: (id)sender { NSEnumerator *enumerator = [[self selection] objectEnumerator]; id anObject; NSFont *newFont; while ((anObject = [enumerator nextObject])) { if ([anObject respondsToSelector: @selector(font)] && [anObject respondsToSelector: @selector(setFont:)]) { newFont = [sender convertFont: [anObject font]]; newFont = [[GormFontViewController sharedGormFontViewController] convertFont: newFont]; [anObject setFont: newFont]; } } return; } - (NSArray*) selection { NSInteger i; NSInteger count = [selection count]; NSMutableArray *result = [NSMutableArray arrayWithCapacity: count]; if (count != 0) { for (i = 0; i < count; i++) { if ([[selection objectAtIndex: i] respondsToSelector: @selector(editedObject)]) [result addObject: [[selection objectAtIndex: i] editedObject]]; else [result addObject: [selection objectAtIndex: i]]; } } else { if ([self respondsToSelector: @selector(editedObject)]) [result addObject: [self editedObject]]; else [result addObject: self]; } return result; } - (void) selectObjects: (NSArray *) objects { NSInteger i; NSInteger count = [objects count]; TEST_RELEASE(selection); selection = [[NSMutableArray alloc] initWithCapacity: [objects count]]; for (i = 0; i < count; i++) { [selection addObject: [objects objectAtIndex: i]]; } [self makeSubeditorResign]; opened = YES; [self openParentEditor]; [document setSelectionFromEditor: self]; [self setNeedsDisplay: YES]; } - (void) silentlyResetSelection { TEST_RELEASE(selection); selection = [[NSMutableArray alloc] initWithCapacity: 5]; } - (void) copySelection { if ([selection count] > 0) { [document copyObjects: [self selection] type: IBViewPboardType toPasteboard: [NSPasteboard generalPasteboard]]; } } - (BOOL) acceptsFirstResponder { return YES; } - (void) drawSelection { // doesn nothing. } - (NSUInteger) selectionCount { return [selection count]; } - (NSDragOperation) draggingEntered: (id)sender { NSRect rect = [_editedObject bounds]; NSPoint loc = [sender draggingLocation]; NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; loc = [_editedObject convertPoint: loc fromView: nil]; if ([types containsObject: GormLinkPboardType] == YES) { return [super draggingEntered: sender]; } if (NSMouseInRect(loc, [_editedObject bounds], NO) == NO) { return NSDragOperationNone; } else { rect.origin.x += 3; rect.origin.y += 2; rect.size.width -= 5; rect.size.height -= 5; [_editedObject lockFocus]; [[NSColor darkGrayColor] set]; NSFrameRectWithWidth(rect, 2); [_editedObject unlockFocus]; [[self window] flushWindow]; return NSDragOperationCopy; } } - (void) draggingExited: (id)sender { NSPasteboard *dragPb; NSArray *types; NSRect rect; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { [super draggingExited: sender]; return; } rect = [_editedObject bounds]; rect.origin.x += 3; rect.origin.y += 2; rect.size.width -= 5; rect.size.height -= 5; rect.origin.x --; rect.size.width ++; rect.size.height ++; [[self window] disableFlushWindow]; [self displayRect: [_editedObject convertRect: rect toView: self]]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } - (NSDragOperation) draggingUpdated: (id)sender { NSPoint loc = [sender draggingLocation]; NSRect rect = [_editedObject bounds]; NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; loc = [_editedObject convertPoint: loc fromView: nil]; if ([types containsObject: GormLinkPboardType] == YES) { return [super draggingUpdated: sender]; } rect.origin.x += 3; rect.origin.y += 2; rect.size.width -= 5; rect.size.height -= 5; if (NSMouseInRect(loc, [_editedObject bounds], NO) == NO) { [[self window] disableFlushWindow]; rect.origin.x --; rect.size.width ++; rect.size.height ++; [self displayRect: [_editedObject convertRect: rect toView: self]]; [[self window] enableFlushWindow]; [[self window] flushWindow]; return NSDragOperationNone; } else { [_editedObject lockFocus]; [[NSColor darkGrayColor] set]; NSFrameRectWithWidth(rect, 2); [_editedObject unlockFocus]; [[self window] flushWindow]; return NSDragOperationCopy; } } - (BOOL) prepareForDragOperation: (id)sender { NSString *dragType; NSArray *types; NSPasteboard *dragPb; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: IBViewPboardType] == YES) { dragType = IBViewPboardType; } else if ([types containsObject: GormLinkPboardType] == YES) { dragType = GormLinkPboardType; return [super prepareForDragOperation: sender]; } else { dragType = nil; } if (dragType == IBViewPboardType) { /* * We can accept views dropped anywhere. */ NSPoint loc = [sender draggingLocation]; loc = [_editedObject convertPoint: loc fromView: nil]; if (NSMouseInRect(loc, [_editedObject bounds], NO) == NO) { return NO; } return YES; } return NO; } - (BOOL) performDragOperation: (id)sender { NSString *dragType; NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: IBViewPboardType] == YES) { dragType = IBViewPboardType; } else if ([types containsObject: GormLinkPboardType] == YES) { dragType = GormLinkPboardType; } else { dragType = nil; } if (dragType == IBViewPboardType) { NSPoint loc = [sender draggingLocation]; NSArray *views; NSEnumerator *enumerator; NSView *sub; /* * Ask the document to get the dragged views from the pasteboard and add * them to it's collection of known objects. */ views = [document pasteType: IBViewPboardType fromPasteboard: dragPb parent: _editedObject]; /* * Now make all the views subviews of ourself, setting their origin to * be the point at which they were dropped (converted from window * coordinates to our own coordinates). */ loc = [_editedObject convertPoint: loc fromView: nil]; if (NSMouseInRect(loc, [_editedObject bounds], NO) == NO) { // Dropped outside our view frame NSLog(@"Dropped outside current edit view"); dragType = nil; return NO; } enumerator = [views objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { NSRect rect = [sub frame]; rect.origin = [_editedObject convertPoint: [sender draggedImageLocation] fromView: nil]; rect.origin.x = (int) rect.origin.x; rect.origin.y = (int) rect.origin.y; rect.size.width = (int) rect.size.width; rect.size.height = (int) rect.size.height; [sub setFrame: rect]; [_editedObject addSubview: sub]; { id editor; editor = [document editorForObject: sub inEditor: self create: YES]; [self selectObjects: [NSArray arrayWithObject: editor]]; } } } return YES; } - (void) handleMouseOnKnob: (IBKnobPosition) knob ofView: (GormViewEditor *) view withEvent: (NSEvent *) theEvent { NSPoint mouseDownPoint = [[view superview] convertPoint: [theEvent locationInWindow] fromView: nil]; NSDate *future = [NSDate distantFuture]; BOOL acceptsMouseMoved; unsigned eventMask; NSEvent *e; NSEventType eType; NSRect r = [view frame]; NSPoint maxMouse; NSPoint minMouse; NSRect firstRect = [view frame]; NSRect lastRect = [view frame]; NSPoint lastPoint = mouseDownPoint; NSPoint point = mouseDownPoint; NSView *superview; GormPlacementInfo *gpi; eventMask = NSLeftMouseUpMask | NSLeftMouseDraggedMask | NSMouseMovedMask | NSPeriodicMask; // Save window state info. acceptsMouseMoved = [[self window] acceptsMouseMovedEvents]; [[self window] setAcceptsMouseMovedEvents: YES]; superview = [view superview]; [superview lockFocus]; _displaySelection = NO; /* * Get size limits for resizing or moving and calculate maximum * and minimum mouse positions that won't cause us to exceed * those limits. */ { NSSize max = [view maximumSizeFromKnobPosition: knob]; NSSize min = [view minimumSizeFromKnobPosition: knob]; r = [superview frame]; minMouse = NSMakePoint(NSMinX(r), NSMinY(r)); maxMouse = NSMakePoint(NSMaxX(r), NSMaxY(r)); r = [view frame]; switch (knob) { case IBBottomLeftKnobPosition: maxMouse.x = NSMaxX(r) - min.width; minMouse.x = NSMaxX(r) - max.width; maxMouse.y = NSMaxY(r) - min.height; minMouse.y = NSMaxY(r) - max.height; break; case IBMiddleLeftKnobPosition: maxMouse.x = NSMaxX(r) - min.width; minMouse.x = NSMaxX(r) - max.width; break; case IBTopLeftKnobPosition: maxMouse.x = NSMaxX(r) - min.width; minMouse.x = NSMaxX(r) - max.width; maxMouse.y = NSMinY(r) + max.height; minMouse.y = NSMinY(r) + min.height; break; case IBTopMiddleKnobPosition: maxMouse.y = NSMinY(r) + max.height; minMouse.y = NSMinY(r) + min.height; break; case IBTopRightKnobPosition: maxMouse.x = NSMinX(r) + max.width; minMouse.x = NSMinX(r) + min.width; maxMouse.y = NSMinY(r) + max.height; minMouse.y = NSMinY(r) + min.height; break; case IBMiddleRightKnobPosition: maxMouse.x = NSMinX(r) + max.width; minMouse.x = NSMinX(r) + min.width; break; case IBBottomRightKnobPosition: maxMouse.x = NSMinX(r) + max.width; minMouse.x = NSMinX(r) + min.width; maxMouse.y = NSMaxY(r) - min.height; minMouse.y = NSMaxY(r) - max.height; break; case IBBottomMiddleKnobPosition: maxMouse.y = NSMaxY(r) - min.height; minMouse.y = NSMaxY(r) - max.height; break; case IBNoneKnobPosition: break; /* NOT REACHED */ } } /* Set the arrows cursor in case it might be something else */ [[NSCursor arrowCursor] push]; /* * Track mouse movements until left mouse up. * While we keep track of all mouse movements, we only act on a * movement when a periodic event arives (every 20th of a second) * in order to avoid excessive amounts of drawing. */ [NSEvent startPeriodicEventsAfterDelay: 0.1 withPeriod: 0.05]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; if ([view respondsToSelector: @selector(initializeResizingInFrame:withKnob:)]) { gpi = [(id)view initializeResizingInFrame: superview withKnob: knob]; } else { gpi = nil; } while (eType != NSLeftMouseUp) { if (eType != NSPeriodic) { point = [superview convertPoint: [e locationInWindow] fromView: nil]; /* if (edit_view != self) point = _constrainPointToBounds(point, [edit_view bounds]); */ } else if (NSEqualPoints(point, lastPoint) == NO) { [[self window] disableFlushWindow]; { float xDiff; float yDiff; if (point.x < minMouse.x) point.x = minMouse.x; if (point.y < minMouse.y) point.y = minMouse.y; if (point.x > maxMouse.x) point.x = maxMouse.x; if (point.y > maxMouse.y) point.y = maxMouse.y; xDiff = point.x - lastPoint.x; yDiff = point.y - lastPoint.y; lastPoint = point; { r = GormExtBoundsForRect(r/*constrainRect*/); r.origin.x--; r.origin.y--; r.size.width += 2; r.size.height += 2; // [superview displayRect: r]; r = lastRect; switch (knob) { case IBBottomLeftKnobPosition: r.origin.x += xDiff; r.origin.y += yDiff; r.size.width -= xDiff; r.size.height -= yDiff; break; case IBMiddleLeftKnobPosition: r.origin.x += xDiff; r.size.width -= xDiff; break; case IBTopLeftKnobPosition: r.origin.x += xDiff; r.size.width -= xDiff; r.size.height += yDiff; break; case IBTopMiddleKnobPosition: r.size.height += yDiff; break; case IBTopRightKnobPosition: r.size.width += xDiff; r.size.height += yDiff; break; case IBMiddleRightKnobPosition: r.size.width += xDiff; break; case IBBottomRightKnobPosition: r.origin.y += yDiff; r.size.width += xDiff; r.size.height -= yDiff; break; case IBBottomMiddleKnobPosition: r.origin.y += yDiff; r.size.height -= yDiff; break; case IBNoneKnobPosition: break; /* NOT REACHED */ } lastRect = r; if ([view respondsToSelector: @selector(updateResizingWithFrame:andEvent:andPlacementInfo:)]) { [view updateResizingWithFrame: r andEvent: theEvent andPlacementInfo: gpi]; } } /* * Flush any drawing performed for this event. */ [[self window] enableFlushWindow]; [[self window] flushWindow]; } } e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; } [NSEvent stopPeriodicEvents]; [NSCursor pop]; /* Typically after a view has been dragged in a window, NSWindow sends a spurious moustEntered event. Sending the mouseUp event back to the NSWindow resets the NSWindow's idea of the last mouse point so it doesn't think that the mouse has entered the view (since it was always there, it's just that the view moved). */ [[self window] postEvent: e atStart: NO]; { NSRect redrawRect = NSZeroRect; /* * This was a subview resize, so we must clean up by removing * the highlighted knob and the wireframe around the view. */ [view updateResizingWithFrame: r andEvent: theEvent andPlacementInfo: gpi]; [view validateFrame: r withEvent: theEvent andPlacementInfo: gpi]; r = GormExtBoundsForRect(lastRect); r.origin.x--; r.origin.y--; r.size.width += 2; r.size.height += 2; /* * If this was a simple resize, we must redraw the union of * the original frame, and the final frame, and the area * where we were drawing the wireframe and handles. */ redrawRect = NSUnionRect(r, redrawRect); redrawRect = NSUnionRect(firstRect, redrawRect); } if (NSEqualPoints(point, mouseDownPoint) == NO) { /* * A subview was moved or resized, so we must mark the * doucment as edited. */ [document touch]; } [superview unlockFocus]; _displaySelection = YES; [self setNeedsDisplay: YES]; /* * Restore state to what it was on entry. */ [[self window] setAcceptsMouseMovedEvents: acceptsMouseMoved]; } - (void) handleMouseOnView: (GormViewEditor *) view withEvent: (NSEvent *) theEvent { NSPoint mouseDownPoint = [[view superview] convertPoint: [theEvent locationInWindow] fromView: nil]; NSDate *future = [NSDate distantFuture]; NSView *subview; BOOL acceptsMouseMoved; BOOL dragStarted = NO; unsigned eventMask; NSEvent *e; NSEventType eType; NSRect r; NSPoint maxMouse; NSPoint minMouse; NSPoint lastPoint = mouseDownPoint; NSPoint point = mouseDownPoint; NSView *superview; NSEnumerator *enumerator; NSRect oldMovingFrame; NSRect suggestedFrame; GormPlacementInfo *gpi = nil; BOOL shouldUpdateSelection = YES; BOOL mouseDidMove = NO; eventMask = NSLeftMouseUpMask | NSLeftMouseDraggedMask | NSMouseMovedMask | NSPeriodicMask; // Save window state info. acceptsMouseMoved = [[self window] acceptsMouseMovedEvents]; [[self window] setAcceptsMouseMovedEvents: YES]; if (view == nil) { return; } if ([theEvent modifierFlags] & NSShiftKeyMask) { if ([selection containsObject: view]) { NSMutableArray *newSelection = [selection mutableCopy]; [newSelection removeObjectIdenticalTo: view]; [self selectObjects: newSelection]; RELEASE(newSelection); return; } else { NSArray *newSelection; newSelection = [selection arrayByAddingObject: view]; [self selectObjects: newSelection]; } shouldUpdateSelection = NO; } else { if ([selection containsObject: view]) { if ([selection count] == 1) shouldUpdateSelection = NO; } else { shouldUpdateSelection = NO; [self selectObjects: [NSArray arrayWithObject: view]]; } } superview = [view superview]; [superview lockFocus]; { NSRect vf = [view frame]; NSRect sf = [superview bounds]; NSPoint tr = NSMakePoint(NSMaxX(vf), NSMaxY(vf)); NSPoint bl = NSMakePoint(NSMinX(vf), NSMinY(vf)); enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { if (subview != view) { float tmp; vf = [subview frame]; tmp = NSMaxX(vf); if (tmp > tr.x) tr.x = tmp; tmp = NSMaxY(vf); if (tmp > tr.y) tr.y = tmp; tmp = NSMinX(vf); if (tmp < bl.x) bl.x = tmp; tmp = NSMinY(vf); if (tmp < bl.y) bl.y = tmp; } } minMouse.x = point.x - bl.x; minMouse.y = point.y - bl.y; maxMouse.x = NSMaxX(sf) - tr.x + point.x; maxMouse.y = NSMaxY(sf) - tr.y + point.y; } if ([selection count] == 1) { oldMovingFrame = [[selection objectAtIndex: 0] frame]; gpi = [[selection objectAtIndex: 0] initializeResizingInFrame: [self superview] withKnob: IBNoneKnobPosition]; suggestedFrame = oldMovingFrame; } // Set the arrows cursor in case it might be something else [[NSCursor arrowCursor] push]; // Track mouse movements until left mouse up. // While we keep track of all mouse movements, we only act on a // movement when a periodic event arives (every 20th of a second) // in order to avoid excessive amounts of drawing. [NSEvent startPeriodicEventsAfterDelay: 0.1 withPeriod: 0.05]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; { while ((eType != NSLeftMouseUp) && !mouseDidMove) { if (eType != NSPeriodic) { point = [superview convertPoint: [e locationInWindow] fromView: nil]; if (NSEqualPoints(mouseDownPoint, point) == NO) mouseDidMove = YES; } e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; } } while (eType != NSLeftMouseUp) { if (eType != NSPeriodic) { point = [superview convertPoint: [e locationInWindow] fromView: nil]; } else if (NSEqualPoints(point, lastPoint) == NO) { [[self window] disableFlushWindow]; { float xDiff; float yDiff; if (point.x < minMouse.x) point.x = minMouse.x; if (point.y < minMouse.y) point.y = minMouse.y; if (point.x > maxMouse.x) point.x = maxMouse.x; if (point.y > maxMouse.y) point.y = maxMouse.y; xDiff = point.x - lastPoint.x; yDiff = point.y - lastPoint.y; lastPoint = point; if (dragStarted == NO) { // Remove selection knobs before moving selection. dragStarted = YES; _displaySelection = NO; [self setNeedsDisplay: YES]; } if ([selection count] == 1) { id obj = [selection objectAtIndex: 0]; if([obj isKindOfClass: [NSView class]]) { [[selection objectAtIndex: 0] setFrameOrigin: NSMakePoint(NSMaxX([self bounds]), NSMaxY([self bounds]))]; [superview display]; r = oldMovingFrame; r.origin.x += xDiff; r.origin.y += yDiff; r.origin.x = (int) r.origin.x; r.origin.y = (int) r.origin.y; r.size.width = (int) r.size.width; r.size.height = (int) r.size.height; oldMovingFrame = r; //case guideLine if ( _followGuideLine ) { suggestedFrame = [obj _displayMovingFrameWithHint: r andPlacementInfo: gpi]; } else { suggestedFrame = NSMakeRect (NSMinX(r), NSMinY(r), NSMaxX(r) - NSMinX(r), NSMaxY(r) - NSMinY(r)); } [obj setFrame: suggestedFrame]; [obj setNeedsDisplay: YES]; } } else { enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { NSRect oldFrame = [subview frame]; r = oldFrame; r.origin.x += xDiff; r.origin.y += yDiff; r.origin.x = (int) r.origin.x; r.origin.y = (int) r.origin.y; r.size.width = (int) r.size.width; r.size.height = (int) r.size.height; [subview setFrame: r]; [superview setNeedsDisplayInRect: oldFrame]; [subview setNeedsDisplay: YES]; } } /* * Flush any drawing performed for this event. */ [[self window] displayIfNeeded]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } } e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; } _displaySelection = YES; if ([selection count] == 1) [[selection objectAtIndex: 0] setFrame: suggestedFrame]; if (mouseDidMove == NO && shouldUpdateSelection == YES) { [self selectObjects: [NSArray arrayWithObject: view]]; } [self setNeedsDisplay: YES]; [NSEvent stopPeriodicEvents]; [NSCursor pop]; /* Typically after a view has been dragged in a window, NSWindow sends a spurious mouseEntered event. Sending the mouseUp event back to the NSWindow resets the NSWindow's idea of the last mouse point so it doesn't think that the mouse has entered the view (since it was always there, it's just that the view moved). */ [[self window] postEvent: e atStart: NO]; if (NSEqualPoints(point, mouseDownPoint) == NO) { // A subview was moved or resized, so we must mark the doucment as edited. [document touch]; } [superview unlockFocus]; // Restore window state to what it was when entering the method. [[self window] setAcceptsMouseMovedEvents: acceptsMouseMoved]; } @end gorm-1.3.1/GormCore/GormWindowTemplate.h0000644000175000017500000000225114327003122017140 0ustar heronheron/* GormWindowTemplate * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include @interface NSWindowTemplate (Private) - (void) setBaseWindowClass: (Class) clz; @end @interface GormWindowTemplate : NSWindowTemplate { BOOL _tempFlag; } @end gorm-1.3.1/GormCore/GormDocumentController.m0000644000175000017500000001242614327003122020031 0ustar heronheron/* GormDocumentController.m * * This class is a subclass of the NSDocumentController * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormPrivate.h" #include #include @implementation GormDocumentController - (id) currentDocument { NSArray *documents = [self documents]; unsigned i = [documents count]; id result = nil; if (i > 0) { while (i-- > 0) { id doc = [documents objectAtIndex: i]; if ([doc isActive] == YES) { result = doc; break; } } } return result; } - (void) buildDocumentForType: (GormDocumentType)documentType { GormDocument *doc = nil; NSDebugLog(@"In gorm document controller..."); doc = (GormDocument *)[[self documents] lastObject]; // get the latest document... switch (documentType) { case GormApplication: { NSMenu *aMenu; NSWindow *aWindow; NSRect frame = [[NSScreen mainScreen] frame]; unsigned style = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSMiniaturizableWindowMask; if ([NSMenu respondsToSelector: @selector(allocSubstitute)]) { aMenu = [[NSMenu allocSubstitute] init]; } else { aMenu = [[NSMenu alloc] init]; } if ([NSWindow respondsToSelector: @selector(allocSubstitute)]) { aWindow = [[NSWindow allocSubstitute] initWithContentRect: NSMakeRect(0,0,600, 400) styleMask: style backing: NSBackingStoreBuffered defer: NO]; } else { aWindow = [[NSWindow alloc] initWithContentRect: NSMakeRect(0,0,600, 400) styleMask: style backing: NSBackingStoreBuffered defer: NO]; } [aWindow setFrameTopLeftPoint: NSMakePoint(230, frame.size.height-100)]; [aWindow setTitle: _(@"My Window")]; [doc setName: @"My Window" forObject: aWindow]; [doc attachObject: aWindow toParent: nil]; [doc setObject: aWindow isVisibleAtLaunch: YES]; [aMenu setTitle: _(@"Main Menu")]; [aMenu addItemWithTitle: _(@"Hide") action: @selector(hide:) keyEquivalent: @"h"]; [aMenu addItemWithTitle: _(@"Quit") action: @selector(terminate:) keyEquivalent: @"q"]; // the first menu attached becomes the main menu. [doc attachObject: aMenu toParent: nil]; } break; case GormInspector: { NSPanel *aWindow; NSRect frame = [[NSScreen mainScreen] frame]; unsigned style = NSTitledWindowMask | NSClosableWindowMask; if ([NSPanel respondsToSelector: @selector(allocSubstitute)]) { aWindow = [[NSPanel allocSubstitute] initWithContentRect: NSMakeRect(0,0, IVW, IVH) styleMask: style backing: NSBackingStoreBuffered defer: NO]; } else { aWindow = [[NSPanel alloc] initWithContentRect: NSMakeRect(0,0, IVW, IVH) styleMask: style backing: NSBackingStoreBuffered defer: NO]; } [aWindow setFrameTopLeftPoint: NSMakePoint(230, frame.size.height-100)]; [aWindow setTitle: _(@"Inspector Window")]; [doc setName: @"InspectorWin" forObject: aWindow]; [doc attachObject: aWindow toParent: nil]; } break; case GormPalette: { NSPanel *aWindow; NSRect frame = [[NSScreen mainScreen] frame]; unsigned style = NSTitledWindowMask | NSClosableWindowMask; if ([NSPanel respondsToSelector: @selector(allocSubstitute)]) { aWindow = [[NSPanel allocSubstitute] initWithContentRect: NSMakeRect(0,0,272,160) styleMask: style backing: NSBackingStoreBuffered defer: NO]; } else { aWindow = [[NSPanel alloc] initWithContentRect: NSMakeRect(0,0,272,160) styleMask: style backing: NSBackingStoreBuffered defer: NO]; } [aWindow setFrameTopLeftPoint: NSMakePoint(230, frame.size.height-100)]; [aWindow setTitle: _(@"Palette Window")]; [doc setName: @"PaletteWin" forObject: aWindow]; [doc attachObject: aWindow toParent: nil]; } break; case GormEmpty: { // nothing to do... } break; default: { NSLog(@"Unknown document type..."); } } // set the filetype and touch the document. [doc setFileType: @"GSGormFileType"]; } - (void) newDocument: (id)sender { GormDocumentType documentType = GormApplication; if([sender respondsToSelector: @selector(tag)]) { documentType = (GormDocumentType)[sender tag]; } [super newDocument: sender]; [self buildDocumentForType: documentType]; } - (id) openDocumentWithContentsOfURL:(NSURL *)url { return [self openDocumentWithContentsOfURL:url display:YES]; } @end gorm-1.3.1/GormCore/GormPrivate.h0000644000175000017500000000766714327003122015627 0ustar heronheron/* GormPrivate.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormPrivate_h #define INCLUDED_GormPrivate_h #include #include #include #include #include #include #include #include #include #include extern NSString *GormLinkPboardType; extern NSString *GormToggleGuidelineNotification; extern NSString *GormDidModifyClassNotification; extern NSString *GormDidAddClassNotification; extern NSString *GormDidDeleteClassNotification; extern NSString *GormWillDetachObjectFromDocumentNotification; extern NSString *GormDidDetachObjectFromDocumentNotification; extern NSString *GormResizeCellNotification; @class GormDocument; @class GormInspectorsManager; @class GormPalettesManager; // templates @interface GSNibItem (GormAdditions) - (id) initWithClassName: (NSString*)className; - (id) initWithClassName: (NSString*)className frame: (NSRect)frame; - (NSString*) className; @end @interface GSClassSwapper (GormCustomClassAdditions) + (void) setIsInInterfaceBuilder: (BOOL)flag; - (BOOL) isInInterfaceBuilder; @end @interface NSClassSwapper (GormCustomClassAdditions) + (void) setIsInInterfaceBuilder: (BOOL)flag; - (BOOL) isInInterfaceBuilder; @end @interface GormObjectProxy : GSNibItem /* * Use a GormObjectProxy in Gorm, but encode a GSNibItem in the archive. * This is done so that we can provide our own decoding method * (GSNibItem tries to morph into the actual class) */ - (void) setClassName: (NSString *)className; @end @interface GormClassProxy : NSObject { NSString *name; NSInteger t; } - initWithClassName: (NSString*)n; - (NSString*) className; - (NSString*) inspectorClassName; - (NSString*) connectInspectorClassName; - (NSString*) sizeInspectorClassName; @end /* * NSDateFormatter and NSNumberFormatter extensions * for Gorm Formatters used in the Data Palette */ @interface NSDateFormatter (GormAdditions) + (int) formatCount; + (NSString *) formatAtIndex: (int)index; + (NSInteger) indexOfFormat: (NSString *) format; + (NSString *) defaultFormat; + (id) defaultFormatValue; @end @interface NSNumberFormatter (GormAdditions) + (int) formatCount; + (NSString *) formatAtIndex: (int)index; + (NSString *) positiveFormatAtIndex: (int)index; + (NSString *) zeroFormatAtIndex: (int)index; + (NSString *) negativeFormatAtIndex: (int)index; + (NSDecimalNumber *) positiveValueAtIndex: (int)index; + (NSDecimalNumber *) negativeValueAtIndex: (int)index; + (NSInteger) indexOfFormat: (NSString *)format; + (NSString *) defaultFormat; + (id) defaultFormatValue; - (NSString *) zeroFormat; @end @interface NSObject (GormAdditions) - (id) allocSubstitute; - (NSImage *) imageForViewer; @end @interface IBResourceManager (GormAdditions) + (void) registerForAllPboardTypes: (id)editor inDocument: (id)document; @end #endif gorm-1.3.1/GormCore/GormViewWithSubviewsEditor.h0000644000175000017500000000362314327003122020646 0ustar heronheron/* GormViewWithSubviewsEditor.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormViewWithSubviewsEditor_h #define INCLUDED_GormViewWithSubviewsEditor_h #include @interface GormViewWithSubviewsEditor : GormViewEditor { BOOL _displaySelection; GormViewWithSubviewsEditor *openedSubeditor; NSMutableArray *selection; BOOL opened; BOOL _followGuideLine; } /* * Handle mouse click on knob. */ - (void) handleMouseOnKnob: (IBKnobPosition) knob ofView: (GormViewEditor *) view withEvent: (NSEvent *) theEvent; /* * Handle mouse click on view. */ - (void) handleMouseOnView: (GormViewEditor *) view withEvent: (NSEvent *) theEvent; - (void) setOpenedSubeditor: (GormViewWithSubviewsEditor *) newEditor; - (void) openParentEditor; - (void) makeSubeditorResign; - (void) silentlyResetSelection; - (void) selectObjects: (NSArray *) objects; - (void) copySelection; /* * Close subeditors of this editor. */ - (void) closeSubeditors; - (void) deactivateSubeditors; - (void) changeFont: (id)sender; @end #endif gorm-1.3.1/GormCore/GormStandaloneViewEditor.m0000644000175000017500000002313614327003122020301 0ustar heronheron/* GormStandaloneViewEditor.m * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include static NSImage *verticalImage; static NSImage *horizontalImage; @class GormEditorToParent; @implementation GormStandaloneViewEditor - (void) mouseDown: (NSEvent *) theEvent { BOOL onKnob = NO; if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _editedObject]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (parent) return [parent mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } if ([parent isOpened] == NO) { NSDebugLog(@"md %@ calling my parent %@", self, parent); [parent mouseDown: theEvent]; return; } // are we on the knob of a selected view ? { NSInteger count = [selection count]; NSInteger i; GormViewEditor *knobView = nil; IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint; for ( i = 0; i < count; i++ ) { mouseDownPoint = [[[selection objectAtIndex: i] superview] convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([[selection objectAtIndex: i] frame], mouseDownPoint); if (knob != IBNoneKnobPosition) { knobView = [selection objectAtIndex: i]; [self selectObjects: [NSMutableArray arrayWithObject: knobView]]; // we should set knobView as the only view selected break; } } if ( openedSubeditor != nil ) { mouseDownPoint = [[openedSubeditor superview] convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([openedSubeditor frame], mouseDownPoint); if (knob != IBNoneKnobPosition) { knobView = openedSubeditor; // we should take back the selection // we should select openedSubeditor only [self selectObjects: [NSMutableArray arrayWithObject: knobView]]; [[self window] disableFlushWindow]; [self display]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } } if (knobView != nil) { [self handleMouseOnKnob: knob ofView: knobView withEvent: theEvent]; [self setNeedsDisplay: YES]; return; } } // get the view we are on { GormViewEditor *editorView; { NSPoint mouseDownPoint; NSView *result = nil; GormViewEditor *theParent = nil; mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; result = [_editedObject hitTest: mouseDownPoint]; // we should get a result which is a direct subeditor { id temp = result; if ([temp isKindOfClass: [GormViewEditor class]]) theParent = [(GormViewEditor *)temp parent]; while ((temp != nil) && (theParent != self) && (temp != self)) { temp = [temp superview]; while (![temp isKindOfClass: [GormViewEditor class]]) { temp = [temp superview]; } theParent = [(GormViewEditor *)temp parent]; } if (temp != nil) { result = temp; } else { NSDebugLog(@"WARNING -- strange case"); result = self; } } if ([result isKindOfClass: [GormViewEditor class]]) { } else { result = nil; } // this is the direct subeditor the mouse was clicked on // (or self) editorView = (GormViewEditor *)result; } if (([theEvent clickCount] == 2) && [editorView isKindOfClass: [GormViewWithSubviewsEditor class]] && ([(id)editorView canBeOpened] == YES) && (editorView != self)) // Let's open a subeditor { [(GormViewWithSubviewsEditor *) editorView setOpened: YES]; [self silentlyResetSelection]; openedSubeditor = (GormViewWithSubviewsEditor *) editorView; [self setNeedsDisplay: YES]; return; } if (editorView != self) { [self handleMouseOnView: editorView withEvent: theEvent]; } else // editorView == self { NSEvent *e; unsigned eventMask; NSDate *future = [NSDate distantFuture]; NSRect oldRect = NSZeroRect; NSPoint p, oldp; NSRect r = NSZeroRect; float x, y, w, h; oldp = [self convertPoint: [theEvent locationInWindow] fromView: nil]; eventMask = NSLeftMouseUpMask | NSLeftMouseDraggedMask; if (!([theEvent modifierFlags] & NSShiftKeyMask)) [self selectObjects: [NSMutableArray array]]; [[self window] disableFlushWindow]; [self setNeedsDisplay: YES]; [self displayIfNeeded]; [[self window] enableFlushWindow]; [[self window] flushWindowIfNeeded]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; [self lockFocus]; while ([e type] != NSLeftMouseUp) { p = [self convertPoint: [e locationInWindow] fromView: nil]; x = (p.x >= oldp.x) ? oldp.x : p.x; y = (p.y >= oldp.y) ? oldp.y : p.y; w = max(p.x, oldp.x) - min(p.x, oldp.x); w = (w == 0) ? 1 : w; h = max(p.y, oldp.y) - min(p.y, oldp.y); h = (h == 0) ? 1 : h; r = NSMakeRect(x, y, w, h); if (NSEqualRects(oldRect, NSZeroRect) == NO) { [verticalImage compositeToPoint: NSMakePoint(NSMinX(oldRect), NSMinY(oldRect)) fromRect: NSMakeRect(0.0, 0.0, 1.0, oldRect.size.height) operation: NSCompositeCopy]; [verticalImage compositeToPoint: NSMakePoint(NSMaxX(oldRect)-1, NSMinY(oldRect)) fromRect: NSMakeRect(1.0, 0.0, 1.0, oldRect.size.height) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(oldRect), NSMinY(oldRect)) fromRect: NSMakeRect(0.0, 0.0, oldRect.size.width, 1.0) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(oldRect), NSMaxY(oldRect)-1) fromRect: NSMakeRect(0.0, 1.0, oldRect.size.width, 1.0) operation: NSCompositeCopy]; } { NSRect wr; wr = [self convertRect: r toView: nil]; [verticalImage lockFocus]; NSCopyBits([[self window] gState], NSMakeRect(NSMinX(wr), NSMinY(wr), 1.0, r.size.height), NSMakePoint(0.0, 0.0)); NSCopyBits([[self window] gState], NSMakeRect(NSMaxX(wr)-1, NSMinY(wr), 1.0, r.size.height), NSMakePoint(1.0, 0.0)); [verticalImage unlockFocus]; [horizontalImage lockFocus]; NSCopyBits([[self window] gState], NSMakeRect(NSMinX(wr), NSMinY(wr), r.size.width, 1.0), NSMakePoint(0.0, 0.0)); NSCopyBits([[self window] gState], NSMakeRect(NSMinX(wr), NSMaxY(wr)-1, r.size.width, 1.0), NSMakePoint(0.0, 1.0)); [horizontalImage unlockFocus]; } [[NSColor darkGrayColor] set]; NSFrameRect(r); oldRect = r; [[self window] enableFlushWindow]; [[self window] flushWindow]; [[self window] disableFlushWindow]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; } if (NSEqualRects(r, NSZeroRect) == NO) { [verticalImage compositeToPoint: NSMakePoint(NSMinX(r), NSMinY(r)) fromRect: NSMakeRect(0.0, 0.0, 1.0, r.size.height) operation: NSCompositeCopy]; [verticalImage compositeToPoint: NSMakePoint(NSMaxX(r)-1, NSMinY(r)) fromRect: NSMakeRect(1.0, 0.0, 1.0, r.size.height) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(r), NSMinY(r)) fromRect: NSMakeRect(0.0, 0.0, r.size.width, 1.0) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(r), NSMaxY(r)-1) fromRect: NSMakeRect(0.0, 1.0, r.size.width, 1.0) operation: NSCompositeCopy]; } { NSMutableArray *array; NSEnumerator *enumerator; NSView *subview; if ([theEvent modifierFlags] & NSShiftKeyMask) array = [NSMutableArray arrayWithArray: selection]; else array = [NSMutableArray arrayWithCapacity: 8]; enumerator = [[_editedObject subviews] objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { if ((NSIntersectsRect(r, [subview frame]) == YES) && [subview isKindOfClass: [GormViewEditor class]]) { [array addObject: subview]; } } if ([array count] > 0) { [self selectObjects: array]; } [self displayIfNeeded]; [self unlockFocus]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } } } } @end gorm-1.3.1/GormCore/GormGenericEditor.h0000644000175000017500000000553114327003122016724 0ustar heronheron/* GormGenericEditor.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormGenericEditor_h #define INCLUDED_GormGenericEditor_h #include #include #include @interface GormGenericEditor : NSMatrix { NSMutableArray *objects; id document; id selected; NSPasteboard *dragPb; NSString *dragType; BOOL closed; BOOL activated; IBResourceManager *resourceManager; } // class methods... + (id) editorForDocument: (id)aDocument; + (void) setEditor: (id)editor forDocument: (id)aDocument; // selection methods... - (void) selectObjects: (NSArray*)objects; - (BOOL) wantsSelection; - (void) copySelection; - (void) deleteSelection; - (void) pasteInSelection; - (void) refreshCells; - (void) closeSubeditors; - (NSWindow*) window; - (void) addObject: (id)anObject; - (void) refreshCells; - (void) removeObject: (id)anObject; - (BOOL) activate; - (id) initWithObject: (id)anObject inDocument: (id)aDocument; - (void) close; - (void) closeSubeditors; - (BOOL) containsObject: (id)anObject; - (void) copySelection; - (void) deleteSelection; - (id) document; - (id) editedObject; - (id) openSubeditorForObject: (id)anObject; - (void) orderFront; - (void) pasteInSelection; - (NSRect) rectForObject: (id)anObject; - (NSArray *) objects; - (BOOL) isOpened; - (NSArray *) fileTypes; @end // private methods... @interface GormGenericEditor (PrivateMethods) - (void) willCloseDocument: (NSNotification *) aNotification; - (void) groupSelectionInScrollView; - (void) groupSelectionInSplitView; - (void) groupSelectionInBox; - (void) groupSelectionInView; - (void) groupSelectionInMatrix; - (void) ungroup; - (void) setEditor: (id)anEditor forDocument: (id)doc; - (id) changeSelection: (id)sender; @end #endif gorm-1.3.1/GormCore/GormMatrixEditor.h0000644000175000017500000000223414327003122016611 0ustar heronheron/* GormMatrixEditor.h - Editor for matrices. * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: Aug 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormMatrixEditor_h #define INCLUDED_GormMatrixEditor_h #include @interface GormMatrixEditor : GormViewWithSubviewsEditor { NSCell* selected; NSInteger selectedRow; NSInteger selectedCol; } @end #endif gorm-1.3.1/GormCore/GormViewWindow.m0000644000175000017500000001201114327003122016277 0ustar heronheron/* GormViewWindow.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormViewWindow.h" #include "GormFunctions.h" @interface GormViewWindowDelegate : NSObject { NSView *_view; } - (id) initWithView: (NSView *)view; - (void) initialResize; @end @implementation GormViewWindowDelegate - (id) initWithView: (NSView *)view; { if((self = [super init]) != nil) { _view = view; [self initialResize]; } return self; } - (void) initialResize { NSWindow *window = [_view window]; NSRect windowFrame = [window frame]; // if the view is uninitialized, // it's new... give it size. if(NSIsEmptyRect([_view frame])) { NSArray *subs = [_view subviews]; NSRect newFrame; if([subs count] > 0) { newFrame = minimalContainerFrame(subs); newFrame.size.height += 70; newFrame.size.width += 40; [window setFrame: newFrame display: YES]; [_view setPostsFrameChangedNotifications: YES]; } else { newFrame = windowFrame; newFrame.origin.x = 10; newFrame.origin.y = 20; newFrame.size.height -= 70; newFrame.size.width -= 20; } [_view setPostsFrameChangedNotifications: NO]; [_view setFrame: newFrame]; [_view setPostsFrameChangedNotifications: YES]; } else // otherwise take size from it. { NSRect newFrame = [_view frame]; newFrame.origin.x = windowFrame.origin.x+10; newFrame.origin.y = windowFrame.origin.y+20; newFrame.size.height += 100; newFrame.size.width += 20; [_view setPostsFrameChangedNotifications: NO]; [_view setFrame: newFrame]; [_view setPostsFrameChangedNotifications: YES]; [window setFrame: newFrame display: YES]; } [window center]; } - (void) windowDidResize: (NSNotification *)notification { NSWindow *window = [_view window]; NSRect windowFrame = [window frame]; NSRect newFrame = windowFrame; NSRect viewFrame = [_view frame]; newFrame.origin.x = 10; newFrame.origin.y = 20; newFrame.size.height -= 70; newFrame.size.width -= 20; if(NSIsEmptyRect(viewFrame)) { [_view setPostsFrameChangedNotifications: NO]; [_view setFrame: newFrame]; [_view setPostsFrameChangedNotifications: YES]; } else { [_view setFrame: newFrame]; [_view setNeedsDisplay: YES]; } } @end @implementation GormViewWindow - (id) initWithView: (NSView *)view { if((self = [super init]) != nil) { NSString *className = NSStringFromClass([view class]); NSString *objectName = [[(id)NSApp activeDocument] nameForObject: view]; NSString *title = [NSString stringWithFormat: @"Standalone View Window: (%@, %@)", className, objectName]; NSColor *color = [NSColor lightGrayColor]; [self setTitle: title]; [self setFrame: NSMakeRect(0,0,400,300) display: YES]; [self setBackgroundColor: color]; [self setReleasedWhenClosed: NO]; [self setView: view]; } return self; } - (void) setView: (NSView *)view { if(_view != nil) { [_view removeFromSuperviewWithoutNeedingDisplay]; } _view = view; [[self contentView] addSubview: _view]; RELEASE([self delegate]); [self setDelegate: [[GormViewWindowDelegate alloc] initWithView: _view]]; } - (NSView *) view { return _view; } - (void) activateEditorForView { id editor = [[(id)NSApp activeDocument] editorForObject: _view create: YES]; // NSArray *subviews = [_view subviews]; // NSEnumerator *en = [subviews objectEnumerator]; // id sub = nil; // activate the parent and all subview editors... [(id)editor activate]; /* while((sub = [en nextObject]) != nil) { editor = [[(id)NSApp activeDocument] editorForObject: sub create: YES]; [editor activate]; } */ } - (void) encodeWithCoder: (NSCoder *)coder { [NSException raise: NSInternalInconsistencyException format: @"Cannot encode a GormViewWindow"]; } - (void) orderFront: (id)sender { [super orderFront: sender]; [self activateEditorForView]; } - (void) dealloc { RELEASE([self delegate]); [self setDelegate: nil]; [super dealloc]; } @end gorm-1.3.1/GormCore/GormObjectInspector.m0000644000175000017500000002400514327003122017300 0ustar heronheron/* GormObjectInspector.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormObjectInspector.h" @implementation GormObjectInspector - (id) init { self = [super init]; if (self != nil) { if([NSBundle loadNibNamed: @"GormObjectInspector" owner: self] == NO) { NSLog(@"Couldn't load GormObjectInsector"); return nil; } else { sets = [[NSMutableArray alloc] init]; gets = [[NSMutableDictionary alloc] init]; types = [[NSMutableDictionary alloc] init]; okButton = [[NSButton alloc] initWithFrame: NSMakeRect(0,0,90,20)]; [okButton setAutoresizingMask: NSViewMaxYMargin | NSViewMinXMargin]; [okButton setAction: @selector(ok:)]; [okButton setTarget: self]; [okButton setTitle: _(@"OK")]; [okButton setEnabled: NO]; revertButton = nil; } } return self; } - (NSInteger) browser: (NSBrowser*)sender numberOfRowsInColumn: (NSInteger)column { return [sets count]; } - (BOOL) browser: (NSBrowser*)sender selectCellWithString: (NSString*)title inColumn: (NSInteger)col { [self update: self]; return YES; } - (NSString*) browser: (NSBrowser*)sender titleOfColumn: (NSInteger)col { return @"Attribute setters"; } - (void) browser: (NSBrowser*)sender willDisplayCell: (id)aCell atRow: (NSInteger)row column: (NSInteger)col { if (row >= 0 && row < [sets count]) { [aCell setStringValue: [sets objectAtIndex: row]]; [aCell setEnabled: YES]; } else { [aCell setStringValue: @""]; [aCell setEnabled: NO]; } [aCell setLeaf: YES]; } - (void) dealloc { RELEASE(gets); RELEASE(sets); RELEASE(types); RELEASE(okButton); [super dealloc]; } - (void) ok: (id)sender { NSString *name = [[browser selectedCell] stringValue]; NSUInteger pos; if (name == nil || (pos = [sets indexOfObject: name]) == NSNotFound) { [label setTitle: _(@"No Type")]; [value setStringValue: @""]; [okButton setEnabled: NO]; } else { SEL set = NSSelectorFromString(name); NSString *type = [types objectForKey: name]; [super ok: sender]; if (type == typeChar) { char v = [value intValue]; void (*imp)(id,SEL,char); imp = (void (*)(id,SEL,char))[object methodForSelector: set]; (*imp)(object, set, v); } else if (type == typeUChar) { unsigned char v = [value intValue]; void (*imp)(id,SEL,unsigned char); imp = (void (*)(id,SEL,unsigned char))[object methodForSelector: set]; (*imp)(object, set, v); } else if (type == typeInt) { int v = [value intValue]; void (*imp)(id,SEL,int); imp = (void (*)(id,SEL,int))[object methodForSelector: set]; (*imp)(object, set, v); } else if (type == typeUInt) { unsigned int v = [value intValue]; void (*imp)(id,SEL,unsigned int); imp = (void (*)(id,SEL,unsigned int))[object methodForSelector: set]; (*imp)(object, set, v); } else if (type == typeFloat) { float v = [value floatValue]; void (*imp)(id,SEL,float); imp = (void (*)(id,SEL,float))[object methodForSelector: set]; (*imp)(object, set, v); } else if (type == typeDouble) { float v = [value doubleValue]; void (*imp)(id,SEL,double); imp = (void (*)(id,SEL,double))[object methodForSelector: set]; (*imp)(object, set, v); } else { id v = [value stringValue]; IMP imp = [object methodForSelector: set]; if (isString == YES) { (*imp)(object, set, v); } else { int result; v = [v stringByTrimmingSpaces]; result = NSRunAlertPanel(_(@"Settings"), [NSString stringWithFormat: _(@"Set object using '%@' as"), v], _(@"Object name"),_( @"String"), _(@"Class name")); if (result == NSAlertAlternateReturn) { (*imp)(object, set, v); } else if (result == NSAlertOtherReturn) { Class c = NSClassFromString(v); if (c != 0) { (*imp)(object, set, [[c alloc] init]); } } else { id o = [[(id)NSApp activeDocument] objectForName: v]; if (o != nil) { (*imp)(object, set, o); } } } } [self update: self]; } } - (void) setObject: (id)anObject { if (anObject != nil && anObject != object) { Class c = [anObject class]; ASSIGN(object, anObject); [sets removeAllObjects]; [gets removeAllObjects]; [types removeAllObjects]; while (c != nil && c != [NSObject class]) { unsigned int count; Method *methods = class_copyMethodList(c, &count); int i; for (i = 0; i < count; i++) { SEL sSel = method_getName(methods[i]); NSString *set = NSStringFromSelector(sSel); /* * We are interested in methods that set values - they have * a 'set' prefic and a colon as the last character. * we ignore duplicates from superclasses. */ if ([set hasPrefix: @"set"] == YES && [set rangeOfString: @":"].location == [set length] - 1 && [sets containsObject: set] == NO) { char tmp[[set cStringLength]+1]; const char *tInfo = method_getTypeEncoding(methods[i]); NSString *type = nil; NSString *get; SEL gSel; /* * see if we can find an appropriate method to get the * current value for an attribute we want to set. */ [set getCString: tmp]; tmp[3] = tolower(tmp[3]); tmp[strlen(tmp)-1] = '\0'; get = [NSString stringWithCString: &tmp[3]]; gSel = NSSelectorFromString(get); if (gSel == 0 || [object respondsToSelector: gSel] == NO) { get = nil; } /* * Skip the return type and the receiver and * selector specifications to the first (only) arg. */ tInfo = objc_skip_typespec(tInfo); if (*tInfo == '+') { tInfo++; } while (isdigit(*tInfo)) { tInfo++; } tInfo = objc_skip_argspec(tInfo); tInfo = objc_skip_argspec(tInfo); /* * Now find arguments whose types we can reasonably * deal with. */ switch (*tInfo) { case _C_ID: type = typeId; break; case _C_CHR: type = typeChar; break; case _C_UCHR: type = typeUChar; break; case _C_INT: type = typeInt; break; case _C_UINT: type = typeUInt; break; case _C_FLT: type = typeFloat; break; case _C_DBL: type = typeDouble; break; default: type = nil; break; } if (type != nil) { [sets addObject: set]; if (get != nil) { [gets setObject: get forKey: set]; } [types setObject: type forKey: set]; } } } free(methods); c = [c superclass]; } [sets sortUsingSelector: @selector(compare:)]; [browser loadColumnZero]; [self update: self]; } } - (void) update: (id)sender { NSString *name = [[browser selectedCell] stringValue]; NSUInteger pos; isString = NO; if (name == nil || (pos = [sets indexOfObject: name]) == NSNotFound) { [label setTitle: _(@"No Type")]; [value setStringValue: @""]; [okButton setEnabled: NO]; } else if ([gets objectForKey: name] != nil) { SEL get = NSSelectorFromString([gets objectForKey: name]); NSString *type = [types objectForKey: name]; [label setTitle: type]; if (type == typeChar) { char v; char (*imp)(); imp = (char (*)())[object methodForSelector: get]; v = (*imp)(object, get); [value setStringValue: [NSString stringWithFormat: @"%d", v]]; } else if (type == typeUChar) { unsigned char v; unsigned char (*imp)(); imp = (unsigned char (*)())[object methodForSelector: get]; v = (*imp)(object, get); [value setStringValue: [NSString stringWithFormat: @"%d", v]]; } else if (type == typeInt) { int v; int (*imp)(); imp = (int (*)())[object methodForSelector: get]; v = (*imp)(object, get); [value setStringValue: [NSString stringWithFormat: @"%d", v]]; } else if (type == typeUInt) { unsigned v; unsigned (*imp)(); imp = (unsigned (*)()) [object methodForSelector: get]; v = (*imp)(object, get); [value setStringValue: [NSString stringWithFormat: @"%u", v]]; } else if (type == typeFloat) { float v; float (*imp)(); imp = (float (*)())[object methodForSelector: get]; v = (*imp)(object, get); [value setStringValue: [NSString stringWithFormat: @"%f", v]]; } else if (type == typeDouble) { double v; double (*imp)(); imp = (double (*)())[object methodForSelector: get]; v = (*imp)(object, get); [value setStringValue: [NSString stringWithFormat: @"%g", v]]; } else { id v; IMP imp = [object methodForSelector: get]; v = (*imp)(object, get); if (v != nil && [v isKindOfClass: [NSString class]] == YES) { isString = YES; /* Existing value is a string. */ } [value setStringValue: [v description]]; } [okButton setEnabled: YES]; } else { [label setTitle: [NSString stringWithFormat: _(@"%@ - value unknown"), [types objectForKey: name]]]; [value setStringValue: @""]; [okButton setEnabled: YES]; } } - (BOOL) wantsButtons { return YES; } @end gorm-1.3.1/GormCore/GormFilesOwner.m0000644000175000017500000001546314327003122016270 0ustar heronheron/* GormFilesOwner.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormCustomView.h" // @class GormCustomView; @implementation GormFilesOwner - (NSString*) className { return className; } - (void) dealloc { RELEASE(className); [super dealloc]; } - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormFilesOwner"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } - (id) init { self = [super init]; [self setClassName: @"NSApplication"]; return self; } - (NSString*) inspectorClassName { return @"GormFilesOwnerInspector"; } - (NSString*) classInspectorClassName { return @"GormFilesOwnerInspector"; } - (void) setClassName: (NSString*)aName { ASSIGN(className, aName); } - (void) encodeWithCoder: (NSCoder *)coder { if([coder allowsKeyedCoding]) { [coder encodeObject: className forKey: @"NSClassName"]; } } /* - (id) initWithCoder: (NSCoder *)coder { [NSException raise: NSInvalidArgumentException format: @"Keyed coding not implemented for %@.", NSStringFromClass([self class])]; return nil; // never reached, but keeps gcc happy. } */ @end @implementation GormFilesOwnerInspector - (NSInteger) browser: (NSBrowser*)sender numberOfRowsInColumn: (NSInteger)column { return [classes count]; } - (NSString*) browser: (NSBrowser*)sender titleOfColumn: (NSInteger)column { return @"Class"; } - (void) browser: (NSBrowser*)sender willDisplayCell: (id)aCell atRow: (NSInteger)row column: (NSInteger)col { if (row >= 0 && row < [classes count]) { [aCell setStringValue: [classes objectAtIndex: row]]; [aCell setEnabled: YES]; } else { [aCell setStringValue: @""]; [aCell setEnabled: NO]; } [aCell setLeaf: YES]; } - (void) dealloc { RELEASE(classes); [super dealloc]; } - (void) _classAdded: (NSNotification *)notification { [self setObject: object]; } - (void) _classDeleted: (NSNotification *)notification { [self setObject: object]; } - (id) init { self = [super init]; if (self != nil) { NSView *contents; NSRect rect; NSRect browserRect; rect = NSMakeRect(0, 0, IVW, IVH); window = [[NSWindow alloc] initWithContentRect: rect styleMask: NSBorderlessWindowMask backing: NSBackingStoreRetained defer: NO]; contents = [window contentView]; browserRect = NSMakeRect(31,56,203,299); browser = [[NSBrowser alloc] initWithFrame: browserRect]; [browser setAutoresizingMask: NSViewWidthSizable|NSViewHeightSizable]; [browser setMaxVisibleColumns: 1]; [browser setAllowsMultipleSelection: NO]; [browser setHasHorizontalScroller: NO]; [browser setDelegate: self]; [browser setTarget: self]; [browser setAction: @selector(takeClassFrom:)]; [contents addSubview: browser]; RELEASE(browser); // add observers for relavent notifications. [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(_classAdded:) name: GormDidAddClassNotification object: [(id)NSApp classManager]]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(_classDeleted:) name: GormDidDeleteClassNotification object: [(id)NSApp classManager]]; } return self; } - (void) setObject: (id)anObject { // filter the classes to view only when a custom view is selected. if([anObject isKindOfClass: [GormCustomView class]]) { ASSIGN(classes, AUTORELEASE([[[(id)NSApp classManager] allSubclassesOf: @"NSView"] mutableCopy])); } else { ASSIGN(classes, AUTORELEASE([[[(id)NSApp classManager] allClassNames] mutableCopy])); } // remove the first responder, since we don't want the user to choose this. [classes removeObject: @"FirstResponder"]; if (anObject != nil) { NSArray *array; NSUInteger pos; ASSIGN(object, anObject); hasConnections = NO; /* * Create list of existing connections for selected object. */ array = [[(id)NSApp activeDocument] connectorsForSource: object ofClass: [NSNibOutletConnector class]]; if ([array count] > 0) hasConnections = YES; array = [[(id)NSApp activeDocument] connectorsForDestination: object ofClass: [NSNibControlConnector class]]; if ([array count] > 0) hasConnections = YES; [browser loadColumnZero]; pos = [classes indexOfObject: [object className]]; if (pos != NSNotFound) { [browser selectRow: pos inColumn: 0]; } } } - (void) takeClassFrom: (id)sender { NSString *title = [[browser selectedCell] stringValue]; NSDebugLog(@"Selected %d, %@", (int)[browser selectedRowInColumn: 0], title); if (hasConnections > 0 && [title isEqual: [object className]] == NO) { if (NSRunAlertPanel(nil, _(@"This operation will break existing connection"), _(@"OK"), _(@"Cancel"), nil) != NSAlertDefaultReturn) { unsigned pos = [classes indexOfObject: [object className]]; [browser selectRow: pos inColumn: 0]; return; } else { NSArray *array; id doc = [(id)NSApp activeDocument]; unsigned i; array = [doc connectorsForSource: object ofClass: [NSNibOutletConnector class]]; for (i = 0; i < [array count]; i++) { id con = [array objectAtIndex: i]; [doc removeConnector: con]; } array = [doc connectorsForDestination: object ofClass: [NSNibControlConnector class]]; for (i = 0; i < [array count]; i++) { id con = [array objectAtIndex: i]; [doc removeConnector: con]; } hasConnections = NO; } } [super ok: sender]; [object setClassName: title]; } @end gorm-1.3.1/GormCore/GormCore.h0000644000175000017500000000732514327003122015074 0ustar heronheron/* GormCore.h * * Copyright (C) 2019 Free Software Foundation, Inc. * * Author: Lars Sonchocky-Helldorf * Date: 01.11.19 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #import #ifndef GNUSTEP //! Project version number for GormCore. FOUNDATION_EXPORT double GormCoreVersionNumber; //! Project version string for GormCore. FOUNDATION_EXPORT const unsigned char GormCoreVersionString[]; #endif #ifndef INCLUDED_GORMCORE_H #define INCLUDED_GORMCORE_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif gorm-1.3.1/GormCore/GormHelpInspector.m0000644000175000017500000000345314327003122016766 0ustar heronheron/* All rights reserved */ #include #include #include "GormHelpInspector.h" @implementation GormHelpInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormHelpInspector" owner: self] == NO) { NSLog(@"Could not gorm GormHelpInspector"); return nil; } return self; } - (void) ok: (id)sender { id document = [(id)NSApp activeDocument]; NSArray *cons = [document connectorsForDestination: object ofClass: [NSIBHelpConnector class]]; NSIBHelpConnector *con = nil; if([cons count] > 0) { NSEnumerator *en = [cons objectEnumerator]; NSString *val = [sender stringValue]; if([val isEqualToString: @""] == NO) { while((con = [en nextObject]) != nil) { [con setMarker: [sender stringValue]]; } } else { while((con = [en nextObject]) != nil) { [document removeConnector: con]; } } } else { con = [[NSIBHelpConnector alloc] init]; [con setFile: @"NSToolTipHelpKey"]; [con setMarker: [sender stringValue]]; [con setDestination: object]; [document addConnector: con]; } [super ok: sender]; } - (void) revert: (id)sender { id document = [(id)NSApp activeDocument]; NSArray *cons = [document connectorsForDestination: object ofClass: [NSIBHelpConnector class]]; if([cons count] > 0) { NSIBHelpConnector *con = [cons objectAtIndex: 0]; NSString *val = [con marker]; [toolTip setStringValue: val]; } else { [toolTip setStringValue: @""]; } [super revert: sender]; } -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok: [aNotification object]]; } @end gorm-1.3.1/GormCore/GormInternalViewEditor.h0000644000175000017500000000226514327003122017760 0ustar heronheron/* GormInternalViewEditor.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormInternalViewEditor_h #define INCLUDED_GormInternalViewEditor_h #include @interface GormInternalViewEditor: GormViewWithContentViewEditor { } - (NSArray*) destroyAndListSubviews; - (void) changeFont: (id)sender; @end #endif gorm-1.3.1/GormCore/GormViewEditor.m0000644000175000017500000012667414327003122016303 0ustar heronheron/* GormViewEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormGenericEditor.h" #include "GormViewEditor.h" #include "GormViewWithSubviewsEditor.h" #include "GormPlacementInfo.h" #include "GormFunctions.h" #include "GormViewWindow.h" #include "GormViewKnobs.h" #include "GormClassManager.h" #include "GormDocument.h" #include #include @implementation GormPlacementInfo @end @implementation GormPlacementHint - (float) position { return _position; } - (float) start { return _start; } - (float) end { return _end; } - (NSRect) frame { return _frame; } - (GormHintBorder) border { return _border; } - (NSString *) description { switch (_border) { case Left: return [NSString stringWithFormat: @"Left %f (%f-%f)", _position, _start, _end]; case Right: return [NSString stringWithFormat: @"Right %f (%f-%f)", _position, _start, _end]; case Top: return [NSString stringWithFormat: @"Top %f (%f-%f)", _position, _start, _end]; default: return [NSString stringWithFormat: @"Bottom %f (%f-%f)", _position, _start, _end]; } } - (id) initWithBorder: (GormHintBorder) border position: (float) position validityStart: (float) start validityEnd: (float) end frame: (NSRect) frame { _border = border; _start = start; _end = end; _position = position; _frame = frame; return self; } - (NSRect) rectWithHalfDistance: (int) halfHeight { switch (_border) { case Top: case Bottom: return NSMakeRect(_start, _position - halfHeight, _end - _start, 2 * halfHeight); case Left: case Right: return NSMakeRect(_position - halfHeight, _start, 2 * halfHeight, _end - _start); default: return NSZeroRect; } } - (int) distanceToFrame: (NSRect) frame { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSInteger guideSpacing = [userDefaults integerForKey: @"GuideSpacing"]; NSInteger halfSpacing = guideSpacing / 2; NSRect rect = [self rectWithHalfDistance: (halfSpacing + 1)]; if (NSIntersectsRect(frame, rect) == NO) return guideSpacing; switch (_border) { case Top: return (int) fabs (_position - NSMaxY(frame)); case Bottom: return (int) fabs (_position - NSMinY(frame)); case Left: return (int) fabs (_position - NSMinX(frame)); case Right: return (int) fabs (_position - NSMaxX(frame)); default: return guideSpacing; } } @end static BOOL currently_displaying = NO; @implementation GormViewEditor - (void) encodeWithCoder: (NSCoder*)aCoder { [NSException raise: NSInternalInconsistencyException format: @"Cannot encode a GormViewEditor."]; } - (id) initWithCoder: (NSCoder*)aCoder { [NSException raise: NSInternalInconsistencyException format: @"Cannot decode a GormViewEditor."]; return nil; } - (id) document { return document; } - (id) editedObject { return _editedObject; } - (BOOL) activate { if (activated == NO) { NSView *superview; NSString *name = [document nameForObject: _editedObject]; GormClassManager *cm = [(GormDocument *)document classManager]; // if the view window is not nil, it's a standalone view... if(viewWindow != nil) { if([viewWindow view] != _editedObject) { [viewWindow setView: _editedObject]; } } superview = [_editedObject superview]; [self setFrame: [_editedObject frame]]; [self setBounds: [self frame]]; [superview replaceSubview: _editedObject with: self]; [self setAutoresizingMask: NSViewMaxXMargin | NSViewMinYMargin]; // we want autoresizing for standalone views... if(viewWindow == nil) { [self setAutoresizesSubviews: NO]; [_editedObject setPostsFrameChangedNotifications: YES]; } else { [self setAutoresizesSubviews: YES]; } [self addSubview: _editedObject]; [self setToolTip: [NSString stringWithFormat: @"%@,%@", name, [cm classNameForObject: _editedObject]]]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(editedObjectFrameDidChange:) name: NSViewFrameDidChangeNotification object: _editedObject]; [self setPostsFrameChangedNotifications: YES]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(frameDidChange:) name: NSViewFrameDidChangeNotification object: self]; parent = (GormViewWithSubviewsEditor *)[document parentEditorForEditor: self]; if ([parent isKindOfClass: [GormViewEditor class]]) { [parent setNeedsDisplay: YES]; } else { [self setNeedsDisplay: YES]; } activated = YES; return activated; } return NO; } - (id) parent { return parent; } - (void) detachSubviews { NSArray *subviews = allSubviews([self editedObject]); [document detachObjects: subviews]; } - (void) close { if (closed == NO) { [self deactivate]; if(viewWindow != nil) { [viewWindow close]; } [document editor: self didCloseForObject: _editedObject]; closed = YES; } else { NSDebugLog(@"%@ close but already closed", self); } } - (void) deactivate { if (activated == YES) { NSView *superview = [self superview]; [self removeSubview: _editedObject]; [superview replaceSubview: self with: _editedObject]; [[NSNotificationCenter defaultCenter] removeObserver: self]; // make sure the view isn't in the window after deactivation. if(viewWindow != nil) { [_editedObject removeFromSuperview]; // WithoutNeedingDisplay]; [viewWindow orderOut: self]; } activated = NO; } } - (void) dealloc { if (closed == NO) [self close]; [super dealloc]; } - (id) initWithObject: (id)anObject inDocument: (id)aDocument { NSMutableArray *draggedTypes; ASSIGN(_editedObject, (NSView*)anObject); if ((self = [super initWithFrame: [_editedObject frame]]) != nil) { // we do not retain the document... document = aDocument; draggedTypes = [NSMutableArray arrayWithObject: GormLinkPboardType]; // in addition to the link, any other types accepted by dragging delegates. [draggedTypes addObjectsFromArray: [NSView acceptedViewResourcePasteboardTypes]]; [self registerForDraggedTypes: draggedTypes]; activated = NO; closed = NO; // if this window is nil when the editor is created, we know it's a // standalone view. if([anObject window] == nil && [anObject superview] == nil) { NSDebugLog(@"#### Stand alone view: %@",_editedObject); [document attachObject: _editedObject toParent: nil]; // [document openEditorForObject: _editedObject]; viewWindow = [[GormViewWindow alloc] initWithView: _editedObject]; } } return self; } - (void) editedObjectFrameDidChange: (id) sender { NSArray *allViews = allSubviews(self); NSEnumerator *en = [allViews objectEnumerator]; id v = nil; // Set all views under this view to not post changes... while((v = [en nextObject]) != nil) { [v setPostsFrameChangedNotifications:NO]; [v setPostsBoundsChangedNotifications:NO]; } // Set the frame and the bounds... [self setFrame: [_editedObject frame]]; [self setBounds: [_editedObject frame]]; // Reset all views to post changes as expected... en = [allViews objectEnumerator]; while((v = [en nextObject]) != nil) { [v setPostsFrameChangedNotifications:YES]; [v setPostsBoundsChangedNotifications:YES]; } } - (void) frameDidChange: (id) sender { [self setBounds: [self frame]]; [_editedObject setFrame: [self frame]]; } - (GormPlacementInfo *) initializeResizingInFrame: (NSView *)view withKnob: (IBKnobPosition) knob { GormPlacementInfo *gip; gip = [[GormPlacementInfo alloc] init]; gip->resizingIn = view; gip->firstPass = YES; gip->hintInitialized = NO; gip->leftHints = nil; gip->rightHints = nil; gip->topHints = nil; gip->bottomHints = nil; gip->knob = knob; return gip; } - (void) _displayFrame: (NSRect) frame withPlacementInfo: (GormPlacementInfo*) gpi { if (gpi->firstPass == NO) [gpi->resizingIn displayRect: gpi->oldRect]; else gpi->firstPass = NO; GormShowFrameWithKnob(frame, gpi->knob); gpi->oldRect = GormExtBoundsForRect(frame); gpi->oldRect.origin.x--; gpi->oldRect.origin.y--; gpi->oldRect.size.width += 2; gpi->oldRect.size.height += 2; } - (void) _initializeHintWithInfo: (GormPlacementInfo*) gpi { NSInteger i; NSArray *subviews = [[self superview] subviews]; NSInteger count = [subviews count]; NSView *v; NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSInteger guideSpacing = [userDefaults integerForKey: @"GuideSpacing"]; NSInteger halfSpacing = guideSpacing / 2; gpi->lastLeftRect = NSZeroRect; gpi->lastRightRect = NSZeroRect; gpi->lastTopRect = NSZeroRect; gpi->lastBottomRect = NSZeroRect; gpi->hintInitialized = YES; gpi->leftHints = [[NSMutableArray alloc] initWithCapacity: 2 * count]; gpi->rightHints = [[NSMutableArray alloc] initWithCapacity: 2 * count]; gpi->topHints = [[NSMutableArray alloc] initWithCapacity: 2 * count]; gpi->bottomHints = [[NSMutableArray alloc] initWithCapacity: 2 * count]; [gpi->leftHints addObject: [[GormPlacementHint alloc] initWithBorder: Left position: NSMinX([[self superview] bounds]) validityStart: NSMinY([[self superview] bounds]) validityEnd: NSMaxY([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->leftHints addObject: [[GormPlacementHint alloc] initWithBorder: Left position: NSMinX([[self superview] bounds]) + guideSpacing validityStart: NSMinY([[self superview] bounds]) validityEnd: NSMaxY([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->rightHints addObject: [[GormPlacementHint alloc] initWithBorder: Right position: NSMaxX([[self superview] bounds]) validityStart: NSMinY([[self superview] bounds]) validityEnd: NSMaxY([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->rightHints addObject: [[GormPlacementHint alloc] initWithBorder: Right position: NSMaxX([[self superview] bounds]) - guideSpacing validityStart: NSMinY([[self superview] bounds]) validityEnd: NSMaxY([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->topHints addObject: [[GormPlacementHint alloc] initWithBorder: Top position: NSMaxY([[self superview] bounds]) validityStart: NSMinX([[self superview] bounds]) validityEnd: NSMaxX([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->topHints addObject: [[GormPlacementHint alloc] initWithBorder: Top position: NSMaxY([[self superview] bounds]) - guideSpacing validityStart: NSMinX([[self superview] bounds]) validityEnd: NSMaxX([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->bottomHints addObject: [[GormPlacementHint alloc] initWithBorder: Bottom position: NSMinY([[self superview] bounds]) validityStart: NSMinX([[self superview] bounds]) validityEnd: NSMaxX([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->bottomHints addObject: [[GormPlacementHint alloc] initWithBorder: Bottom position: NSMinY([[self superview] bounds]) + guideSpacing validityStart: NSMinX([[self superview] bounds]) validityEnd: NSMaxX([[self superview] bounds]) frame: [[self superview] bounds]]]; for ( i = 0; i < count; i++ ) { v = [subviews objectAtIndex: i]; if (v == self) continue; [gpi->leftHints addObject: [[GormPlacementHint alloc] initWithBorder: Left position: NSMinX([v frame]) validityStart: NSMinY([[self superview] bounds]) validityEnd: NSMaxY([[self superview] bounds]) frame: [v frame]]]; [gpi->leftHints addObject: [[GormPlacementHint alloc] initWithBorder: Left position: NSMaxX([v frame]) validityStart: NSMinY([v frame]) validityEnd: NSMaxY([v frame]) frame: [v frame]]]; [gpi->leftHints addObject: [[GormPlacementHint alloc] initWithBorder: Left position: NSMaxX([v frame]) + halfSpacing validityStart: NSMinY([v frame]) - guideSpacing validityEnd: NSMaxY([v frame]) + guideSpacing frame: [v frame]]]; [gpi->rightHints addObject: [[GormPlacementHint alloc] initWithBorder: Right position: NSMaxX([v frame]) validityStart: NSMinY([[self superview] bounds]) validityEnd: NSMaxY([[self superview] bounds]) frame: [v frame]]]; [gpi->rightHints addObject: [[GormPlacementHint alloc] initWithBorder: Right position: NSMinX([v frame]) validityStart: NSMinY([v frame]) validityEnd: NSMaxY([v frame]) frame: [v frame]]]; [gpi->rightHints addObject: [[GormPlacementHint alloc] initWithBorder: Right position: NSMinX([v frame]) - halfSpacing validityStart: NSMinY([v frame]) - guideSpacing validityEnd: NSMaxY([v frame]) + guideSpacing frame: [v frame]]]; [gpi->topHints addObject: [[GormPlacementHint alloc] initWithBorder: Top position: NSMaxY([v frame]) validityStart: NSMinX([[self superview] bounds]) validityEnd: NSMaxX([[self superview] bounds]) frame: [v frame]]]; [gpi->topHints addObject: [[GormPlacementHint alloc] initWithBorder: Top position: NSMinY([v frame]) validityStart: NSMinX([v frame]) validityEnd: NSMaxX([v frame]) frame: [v frame]]]; [gpi->topHints addObject: [[GormPlacementHint alloc] initWithBorder: Top position: NSMinY([v frame]) - halfSpacing validityStart: NSMinX([v frame]) - guideSpacing validityEnd: NSMaxX([v frame]) + guideSpacing frame: [v frame]]]; [gpi->bottomHints addObject: [[GormPlacementHint alloc] initWithBorder: Bottom position: NSMinY([v frame]) validityStart: NSMinX([[self superview] bounds]) validityEnd: NSMaxX([[self superview] bounds]) frame: [v frame]]]; [gpi->bottomHints addObject: [[GormPlacementHint alloc] initWithBorder: Bottom position: NSMaxY([v frame]) validityStart: NSMinX([v frame]) validityEnd: NSMaxX([v frame]) frame: [v frame]]]; [gpi->bottomHints addObject: [[GormPlacementHint alloc] initWithBorder: Bottom position: NSMaxY([v frame]) + halfSpacing validityStart: NSMinX([v frame]) - guideSpacing validityEnd: NSMaxX([v frame]) + guideSpacing frame: [v frame]]]; } } #undef MIN #undef MAX #define MIN(a,b) (a>b?b:a) #define MAX(a,b) (a>b?a:b) - (void) _displayFrameWithHint: (NSRect) frame withPlacementInfo: (GormPlacementInfo*)gpi { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSInteger guideSpacing = [userDefaults integerForKey: @"GuideSpacing"]; NSInteger halfSpacing = guideSpacing / 2; float leftOfFrame = NSMinX(frame); float rightOfFrame = NSMaxX(frame); float topOfFrame = NSMaxY(frame); float bottomOfFrame = NSMinY(frame); NSInteger i; NSInteger count; NSInteger lastDistance; NSInteger minimum = guideSpacing; BOOL leftEmpty = YES; BOOL rightEmpty = YES; BOOL topEmpty = YES; BOOL bottomEmpty = YES; float bestLeftPosition = 0; float bestRightPosition = 0; float bestTopPosition = 0; float bestBottomPosition = 0; float leftStart = 0; float rightStart = 0; float topStart = 0; float bottomStart = 0; float leftEnd = 0; float rightEnd = 0; float topEnd = 0; float bottomEnd = 0; NSMutableArray *bests; if (gpi->hintInitialized == NO) { [self _initializeHintWithInfo: gpi]; } { if (gpi->firstPass == NO) [gpi->resizingIn displayRect: gpi->oldRect]; else gpi->firstPass = NO; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastLeftRect]; [[self window] displayIfNeeded]; gpi->lastLeftRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastRightRect]; [[self window] displayIfNeeded]; gpi->lastRightRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastTopRect]; [[self window] displayIfNeeded]; gpi->lastTopRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastBottomRect]; [[self window] displayIfNeeded]; gpi->lastBottomRect = NSZeroRect; } if (gpi->knob == IBTopLeftKnobPosition || gpi->knob == IBMiddleLeftKnobPosition || gpi->knob == IBBottomLeftKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = (halfSpacing + 1); count = [gpi->leftHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->leftHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->leftHints objectAtIndex: i]]; minimum = lastDistance; bestLeftPosition = [[gpi->leftHints objectAtIndex: i] position]; leftEmpty = NO; } else if ((lastDistance == minimum) && (leftEmpty == NO) && ([[gpi->leftHints objectAtIndex: i] position] == bestLeftPosition)) [bests addObject: [gpi->leftHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { leftStart = NSMinY([[bests objectAtIndex: 0] frame]); leftEnd = NSMaxY([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { leftStart = MIN(NSMinY([[bests objectAtIndex: i] frame]), leftStart); leftEnd = MAX(NSMaxY([[bests objectAtIndex: i] frame]), leftEnd); } leftOfFrame = bestLeftPosition; } } if (gpi->knob == IBTopRightKnobPosition || gpi->knob == IBMiddleRightKnobPosition || gpi->knob == IBBottomRightKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = (halfSpacing + 1); count = [gpi->rightHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->rightHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->rightHints objectAtIndex: i]]; minimum = lastDistance; bestRightPosition = [[gpi->rightHints objectAtIndex: i] position]; rightEmpty = NO; } else if ((lastDistance == minimum) && (rightEmpty == NO) && ([[gpi->rightHints objectAtIndex: i] position] == bestRightPosition)) [bests addObject: [gpi->rightHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { rightStart = NSMinY([[bests objectAtIndex: 0] frame]); rightEnd = NSMaxY([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { rightStart = MIN(NSMinY([[bests objectAtIndex: i] frame]), rightStart); rightEnd = MAX(NSMaxY([[bests objectAtIndex: i] frame]), rightEnd); } rightOfFrame = bestRightPosition; } } if (gpi->knob == IBTopRightKnobPosition || gpi->knob == IBTopLeftKnobPosition || gpi->knob == IBTopMiddleKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = (halfSpacing + 1); count = [gpi->topHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->topHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->topHints objectAtIndex: i]]; minimum = lastDistance; bestTopPosition = [[gpi->topHints objectAtIndex: i] position]; topEmpty = NO; } else if ((lastDistance == minimum) && (topEmpty == NO) && ([[gpi->topHints objectAtIndex: i] position] == bestTopPosition)) [bests addObject: [gpi->topHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { topStart = NSMinX([[bests objectAtIndex: 0] frame]); topEnd = NSMaxX([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { topStart = MIN(NSMinX([[bests objectAtIndex: i] frame]), topStart); topEnd = MAX(NSMaxX([[bests objectAtIndex: i] frame]), topEnd); } topOfFrame = bestTopPosition; } } if (gpi->knob == IBBottomRightKnobPosition || gpi->knob == IBBottomLeftKnobPosition || gpi->knob == IBBottomMiddleKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = (halfSpacing + 1); count = [gpi->bottomHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->bottomHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->bottomHints objectAtIndex: i]]; minimum = lastDistance; bestBottomPosition = [[gpi->bottomHints objectAtIndex: i] position]; bottomEmpty = NO; } else if ((lastDistance == minimum) && (bottomEmpty == NO) && ([[gpi->bottomHints objectAtIndex: i] position] == bestBottomPosition)) [bests addObject: [gpi->bottomHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { bottomStart = NSMinX([[bests objectAtIndex: 0] frame]); bottomEnd = NSMaxX([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { bottomStart = MIN(NSMinX([[bests objectAtIndex: i] frame]), bottomStart); bottomEnd = MAX(NSMaxX([[bests objectAtIndex: i] frame]), bottomEnd); } bottomOfFrame = bestBottomPosition; } } gpi->hintFrame = NSMakeRect (leftOfFrame, bottomOfFrame, rightOfFrame - leftOfFrame, topOfFrame - bottomOfFrame); { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSColor *aColor = colorFromDict([defaults objectForKey: @"GuideColor"]); // default to the right color... if(aColor == nil) { aColor = [NSColor redColor]; } [aColor set]; if (!leftEmpty) { leftStart = MIN(NSMinY(gpi->hintFrame), leftStart); leftEnd = MAX(NSMaxY(gpi->hintFrame), leftEnd); gpi->lastLeftRect = NSMakeRect(bestLeftPosition - 1, leftStart, 2, leftEnd - leftStart); NSRectFill(gpi->lastLeftRect); } if (!rightEmpty) { rightStart = MIN(NSMinY(gpi->hintFrame), rightStart); rightEnd = MAX(NSMaxY(gpi->hintFrame), rightEnd); gpi->lastRightRect = NSMakeRect(bestRightPosition - 1, rightStart, 2, rightEnd - rightStart); NSRectFill(gpi->lastRightRect); } if (!topEmpty) { topStart = MIN(NSMinX(gpi->hintFrame), topStart); topEnd = MAX(NSMaxX(gpi->hintFrame), topEnd); gpi->lastTopRect = NSMakeRect(topStart, bestTopPosition - 1, topEnd - topStart, 2); NSRectFill(gpi->lastTopRect); } if (!bottomEmpty) { bottomStart = MIN(NSMinX(gpi->hintFrame), bottomStart); bottomEnd = MAX(NSMaxX(gpi->hintFrame), bottomEnd); gpi->lastBottomRect = NSMakeRect(bottomStart, bestBottomPosition - 1, bottomEnd - bottomStart, 2); NSRectFill(gpi->lastBottomRect); } } GormShowFrameWithKnob(gpi->hintFrame, gpi->knob); gpi->oldRect = GormExtBoundsForRect(gpi->hintFrame); gpi->oldRect.origin.x--; gpi->oldRect.origin.y--; gpi->oldRect.size.width += 2; gpi->oldRect.size.height += 2; } - (void) updateResizingWithFrame: (NSRect) frame andEvent: (NSEvent *)theEvent andPlacementInfo: (GormPlacementInfo*) gpi { if ([theEvent modifierFlags] & NSShiftKeyMask) { [self _displayFrame: frame withPlacementInfo: gpi]; } else [self _displayFrameWithHint: frame withPlacementInfo: gpi]; } - (void) validateFrame: (NSRect) frame withEvent: (NSEvent *) theEvent andPlacementInfo: (GormPlacementInfo*)gpi { if (gpi->leftHints) { RELEASE(gpi->leftHints); RELEASE(gpi->rightHints); [self setFrame: gpi->hintFrame]; } else { [self setFrame: frame]; } } - (NSRect) _displayMovingFrameWithHint: (NSRect) frame andPlacementInfo: (GormPlacementInfo*)gpi { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSInteger guideSpacing = [userDefaults integerForKey: @"GuideSpacing"]; NSInteger halfSpacing = guideSpacing / 2; float leftOfFrame = NSMinX(frame); float rightOfFrame = NSMaxX(frame); float topOfFrame = NSMaxY(frame); float bottomOfFrame = NSMinY(frame); float widthOfFrame = frame.size.width; float heightOfFrame = frame.size.height; NSInteger i; NSInteger count; NSInteger lastDistance; NSInteger minimum = guideSpacing; BOOL leftEmpty = YES; BOOL rightEmpty = YES; BOOL topEmpty = YES; BOOL bottomEmpty = YES; float leftStart = 0; float rightStart = 0; float topStart = 0; float bottomStart = 0; float leftEnd = 0; float rightEnd = 0; float topEnd = 0; float bottomEnd = 0; if (gpi->hintInitialized == NO) { [self _initializeHintWithInfo: gpi]; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastLeftRect]; [[self window] displayIfNeeded]; gpi->lastLeftRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastRightRect]; [[self window] displayIfNeeded]; gpi->lastRightRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastTopRect]; [[self window] displayIfNeeded]; gpi->lastTopRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastBottomRect]; [[self window] displayIfNeeded]; gpi->lastBottomRect = NSZeroRect; } { BOOL empty = YES; float bestPosition = 0; NSMutableArray *leftBests; NSMutableArray *rightBests; minimum = (halfSpacing + 1); count = [gpi->leftHints count]; leftBests = [NSMutableArray arrayWithCapacity: 4]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->leftHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { leftBests = [NSMutableArray arrayWithCapacity: 4]; [leftBests addObject: [gpi->leftHints objectAtIndex: i]]; minimum = lastDistance; bestPosition = [[gpi->leftHints objectAtIndex: i] position]; empty = NO; } else if ((lastDistance == minimum) && (empty == NO) && ([[gpi->leftHints objectAtIndex: i] position] == bestPosition)) [leftBests addObject: [gpi->leftHints objectAtIndex: i]]; } count = [gpi->rightHints count]; rightBests = [NSMutableArray arrayWithCapacity: 4]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->rightHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { rightBests = [NSMutableArray arrayWithCapacity: 4]; leftBests = [NSMutableArray arrayWithCapacity: 4]; [rightBests addObject: [gpi->rightHints objectAtIndex: i]]; minimum = lastDistance; bestPosition = [[gpi->rightHints objectAtIndex: i] position] - widthOfFrame; empty = NO; } else if ((lastDistance == minimum) && (empty == NO) && ([[gpi->rightHints objectAtIndex: i] position] - bestPosition == widthOfFrame)) [rightBests addObject: [gpi->rightHints objectAtIndex: i]]; } count = [leftBests count]; if (count >= 1) { float position; leftEmpty = NO; position = [[leftBests objectAtIndex: 0] position]; leftStart = NSMinY([[leftBests objectAtIndex: 0] frame]); leftEnd = NSMaxY([[leftBests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { leftStart = MIN(NSMinY([[leftBests objectAtIndex: i] frame]), leftStart); leftEnd = MAX(NSMaxY([[leftBests objectAtIndex: i] frame]), leftEnd); } leftOfFrame = position; rightOfFrame = position + widthOfFrame; } count = [rightBests count]; if (count >= 1) { float position; rightEmpty = NO; position = [[rightBests objectAtIndex: 0] position]; rightStart = NSMinY([[rightBests objectAtIndex: 0] frame]); rightEnd = NSMaxY([[rightBests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { rightStart = MIN(NSMinY([[rightBests objectAtIndex: i] frame]), rightStart); rightEnd = MAX(NSMaxY([[rightBests objectAtIndex: i] frame]), rightEnd); } rightOfFrame = position; leftOfFrame = position - widthOfFrame; } } { BOOL empty = YES; float bestPosition = 0; NSMutableArray *bottomBests; NSMutableArray *topBests; minimum = (halfSpacing + 1); count = [gpi->bottomHints count]; bottomBests = [NSMutableArray arrayWithCapacity: 4]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->bottomHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { bottomBests = [NSMutableArray arrayWithCapacity: 4]; [bottomBests addObject: [gpi->bottomHints objectAtIndex: i]]; minimum = lastDistance; bestPosition = [[gpi->bottomHints objectAtIndex: i] position]; empty = NO; } else if ((lastDistance == minimum) && (empty == NO) && ([[gpi->bottomHints objectAtIndex: i] position] == bestPosition)) [bottomBests addObject: [gpi->bottomHints objectAtIndex: i]]; } count = [gpi->topHints count]; topBests = [NSMutableArray arrayWithCapacity: 4]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->topHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { topBests = [NSMutableArray arrayWithCapacity: 4]; bottomBests = [NSMutableArray arrayWithCapacity: 4]; [topBests addObject: [gpi->topHints objectAtIndex: i]]; minimum = lastDistance; bestPosition = [[gpi->topHints objectAtIndex: i] position] - heightOfFrame; empty = NO; } else if (lastDistance == minimum && (empty == NO) && ([[gpi->topHints objectAtIndex: i] position] - bestPosition == heightOfFrame)) [topBests addObject: [gpi->topHints objectAtIndex: i]]; } count = [bottomBests count]; if (count >= 1) { float position; bottomEmpty = NO; position = [[bottomBests objectAtIndex: 0] position]; bottomStart = NSMinX([[bottomBests objectAtIndex: 0] frame]); bottomEnd = NSMaxX([[bottomBests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { bottomStart = MIN(NSMinX([[bottomBests objectAtIndex: i] frame]), bottomStart); bottomEnd = MAX(NSMaxX([[bottomBests objectAtIndex: i] frame]), bottomEnd); } bottomOfFrame = position; topOfFrame = position + heightOfFrame; } count = [topBests count]; if (count >= 1) { float position; topEmpty = NO; position = [[topBests objectAtIndex: 0] position]; topStart = NSMinX([[topBests objectAtIndex: 0] frame]); topEnd = NSMaxX([[topBests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { topStart = MIN(NSMinX([[topBests objectAtIndex: i] frame]), topStart); topEnd = MAX(NSMaxX([[topBests objectAtIndex: i] frame]), topEnd); } topOfFrame = position; bottomOfFrame = position - heightOfFrame; } } gpi->hintFrame = NSMakeRect (leftOfFrame, bottomOfFrame, rightOfFrame - leftOfFrame, topOfFrame - bottomOfFrame); { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSColor *aColor = colorFromDict([defaults objectForKey: @"GuideColor"]); // default to the right color... if(aColor == nil) { aColor = [NSColor redColor]; } [aColor set]; if (!leftEmpty) { leftStart = MIN(NSMinY(gpi->hintFrame), leftStart); leftEnd = MAX(NSMaxY(gpi->hintFrame), leftEnd); gpi->lastLeftRect = NSMakeRect(leftOfFrame - 1, leftStart, 2, leftEnd - leftStart); NSRectFill(gpi->lastLeftRect); } if (!rightEmpty) { rightStart = MIN(NSMinY(gpi->hintFrame), rightStart); rightEnd = MAX(NSMaxY(gpi->hintFrame), rightEnd); gpi->lastRightRect = NSMakeRect(rightOfFrame - 1, rightStart, 2, rightEnd - rightStart); NSRectFill(gpi->lastRightRect); } if (!topEmpty) { topStart = MIN(NSMinX(gpi->hintFrame), topStart); topEnd = MAX(NSMaxX(gpi->hintFrame), topEnd); gpi->lastTopRect = NSMakeRect(topStart, topOfFrame - 1, topEnd - topStart, 2); NSRectFill(gpi->lastTopRect); } if (!bottomEmpty) { bottomStart = MIN(NSMinX(gpi->hintFrame), bottomStart); bottomEnd = MAX(NSMaxX(gpi->hintFrame), bottomEnd); gpi->lastBottomRect = NSMakeRect(bottomStart, bottomOfFrame - 1, bottomEnd - bottomStart, 2); NSRectFill(gpi->lastBottomRect); } } return gpi->hintFrame; } - (NSView *)hitTest: (NSPoint)loc { id result; result = [super hitTest: loc]; if ((result != nil) && [result isKindOfClass: [GormViewEditor class]]) { return result; } else if (result != nil) { return self; } return nil; } - (NSWindow*) windowAndRect: (NSRect *)rect forObject: (id) anObject { if (anObject != _editedObject) { return nil; } else { *rect = [_editedObject convertRect:[_editedObject visibleRect] toView: nil]; return _window; } } - (void) startConnectingObject: (id) anObject withEvent: (NSEvent *)theEvent { NSPasteboard *pb; NSString *name = [document nameForObject: anObject]; NSPoint dragPoint = [theEvent locationInWindow]; if(name != nil) { pb = [NSPasteboard pasteboardWithName: NSDragPboard]; [pb declareTypes: [NSArray arrayWithObject: GormLinkPboardType] owner: self]; [pb setString: name forType: GormLinkPboardType]; [NSApp displayConnectionBetween: anObject and: nil]; [NSApp startConnecting]; [self dragImage: [NSApp linkImage] at: dragPoint offset: NSZeroSize event: theEvent pasteboard: pb source: self slideBack: YES]; } } - (NSDragOperation) draggingEntered: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { [NSApp displayConnectionBetween: [NSApp connectSource] and: _editedObject]; return NSDragOperationLink; } else if ([types firstObjectCommonWithArray: [NSView acceptedViewResourcePasteboardTypes]] != nil) { return NSDragOperationCopy; } else { return NSDragOperationNone; } } - (NSDragOperation) draggingUpdated: (id)sender { return [self draggingEntered: sender]; } - (void) draggingExited: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { [NSApp displayConnectionBetween: [NSApp connectSource] and: nil]; } } - (void) mouseDown: (NSEvent*)theEvent { if ([theEvent modifierFlags] & NSControlKeyMask) // start a action/outlet connection { // first we need to select ourself // to do so we need to find our first ancestor that can handle a selection NSView *view = [self superview]; while ((view != nil) && ([view respondsToSelector: @selector(selectObjects:)] == NO)) { view = [view superview]; } if (view != nil) [(id)view selectObjects: [NSArray arrayWithObject: self]]; // now we can start the connection process [self startConnectingObject: _editedObject withEvent: theEvent]; } else // just send the event to our parent { if (parent) { // TODO: We should find a better test than this, but it will do // for now... if([parent isKindOfClass: [GormGenericEditor class]] == NO) { [parent mouseDown: theEvent]; } } else return [self noResponderFor: @selector(mouseDown:)]; } } - (id) _selectDelegate: (id)sender { NSEnumerator *en = [[NSView registeredViewResourceDraggingDelegates] objectEnumerator]; id delegate = nil; id selectedDelegate = nil; NSPasteboard *pb = [sender draggingPasteboard]; NSPoint point = [sender draggingLocation]; while((delegate = [en nextObject]) != nil) { if([delegate respondsToSelector: @selector(acceptsViewResourceFromPasteboard:forObject:atPoint:)]) { if([delegate acceptsViewResourceFromPasteboard: pb forObject: _editedObject atPoint: point]) { selectedDelegate = delegate; break; } } } return selectedDelegate; } - (BOOL) prepareForDragOperation: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { return YES; } else if ([types firstObjectCommonWithArray: [NSView acceptedViewResourcePasteboardTypes]] != nil) { return YES; } else { return NO; } } - (BOOL) performDragOperation: (id)sender { NSPasteboard *dragPb; NSArray *types; id delegate = nil; NSPoint point = [sender draggingLocation]; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType]) { [NSApp displayConnectionBetween: [NSApp connectSource] and: _editedObject]; [NSApp startConnecting]; } else if ((delegate = [self _selectDelegate: sender]) != nil) { if([delegate respondsToSelector: @selector(shouldDrawConnectionFrame)]) { if([delegate shouldDrawConnectionFrame]) { [NSApp displayConnectionBetween: [NSApp connectSource] and: _editedObject]; } } if([delegate respondsToSelector: @selector(depositViewResourceFromPasteboard:onObject:atPoint:)]) { [delegate depositViewResourceFromPasteboard: dragPb onObject: _editedObject atPoint: point]; // refresh the selection... [document setSelectionFromEditor: self]; // return success. return YES; } } return NO; } - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL) flag { return NSDragOperationLink; } - (BOOL) wantsSelection { return YES; } - (void) resetObject: (id)anObject { NS_DURING { // display the view, if it's standalone. if(viewWindow != nil) { [viewWindow orderFront: self]; } } NS_HANDLER { NSLog(@"Exception while trying to display standalone view: %@",[localException reason]); } NS_ENDHANDLER } - (void) orderFront { [[self window] orderFront: self]; } - (NSWindow *) window { return [super window]; } /* * Drawing additions */ - (void) postDraw: (NSRect) rect { if ([parent respondsToSelector: @selector(postDrawForView:)]) [parent performSelector: @selector(postDrawForView:) withObject: self]; } - (void) drawRect: (NSRect) rect { if (currently_displaying == NO) { [[self window] disableFlushWindow]; currently_displaying = YES; [super drawRect: rect]; [self lockFocus]; [self postDraw: rect]; [self unlockFocus]; [[self window] enableFlushWindow]; [[self window] flushWindow]; currently_displaying = NO; } else { [super drawRect: rect]; [self lockFocus]; [self postDraw: rect]; [self unlockFocus]; } } - (BOOL) acceptsTypeFromArray: (NSArray*)types { return NO; } - (NSArray*) selection { NSMutableArray *result = [NSMutableArray arrayWithCapacity: 1]; // add self to the result... if ([self respondsToSelector: @selector(editedObject)]) [result addObject: [self editedObject]]; else [result addObject: self]; return result; } - (void) makeSelectionVisible: (BOOL) value { } - (BOOL) canBeOpened { return NO; } - (BOOL) isOpened { return NO; } - (void) setOpened: (BOOL) value { if (value == YES) { [document setSelectionFromEditor: self]; } else { [self setNeedsDisplay: YES]; } } // stubs for the remainder of the IBEditors protocol not implemented in this class. - (void) deleteSelection { // NSLog(@"deleteSelection should be defined in a subclass"); } - (void) validateEditing { // NSLog(@"validateEditing should be defined in a subclass"); } - (void) pasteInSelection { // NSLog(@"deleteSelection should be defined in a subclass"); } - (id) openSubeditorForObject: (id) object { return nil; } - (void) closeSubeditors { // NSLog(@"closeSubeditors should be defined in a subclass"); } @end @implementation GormViewEditor (ResponderAdditions) - (BOOL) acceptsFirstMouse: (NSEvent*)theEvent { return YES; } - (BOOL) acceptsFirstResponder { return NO; } @end static BOOL done_editing; @implementation GormViewEditor (EditingAdditions) - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: NSControlTextDidEndEditingNotification] == YES) { done_editing = YES; [[self document] touch]; } } /* Edit a textfield. If it's not already editable, make it so, then edit it */ - (NSEvent *) editTextField: view withEvent: (NSEvent *)theEvent { unsigned eventMask; BOOL wasEditable; BOOL didDrawBackground; NSTextField *editField; NSRect frame; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSDate *future = [NSDate distantFuture]; NSEvent *e; editField = view; frame = [editField frame]; wasEditable = [editField isEditable]; [editField setEditable: YES]; didDrawBackground = [editField drawsBackground]; [editField setDrawsBackground: YES]; [nc addObserver: self selector: @selector(handleNotification:) name: NSControlTextDidEndEditingNotification object: nil]; /* Do some modal editing */ [editField selectText: self]; eventMask = NSLeftMouseDownMask | NSLeftMouseUpMask | NSKeyDownMask | NSKeyUpMask | NSFlagsChangedMask; done_editing = NO; while (!done_editing) { NSEventType eType; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; switch (eType) { case NSLeftMouseDown: { NSPoint dp = [self convertPoint: [e locationInWindow] fromView: nil]; if (NSMouseInRect(dp, frame, NO) == NO) { done_editing = YES; break; } } [[editField currentEditor] mouseDown: e]; break; case NSLeftMouseUp: [[editField currentEditor] mouseUp: e]; break; case NSLeftMouseDragged: [[editField currentEditor] mouseDragged: e]; break; case NSKeyDown: [[editField currentEditor] keyDown: e]; break; case NSKeyUp: [[editField currentEditor] keyUp: e]; break; case NSFlagsChanged: [[editField currentEditor] flagsChanged: e]; break; default: NSLog(@"Internal Error: Unhandled event during editing: %@", e); break; } } [editField setEditable: wasEditable]; [editField setDrawsBackground: didDrawBackground]; [nc removeObserver: self name: NSControlTextDidEndEditingNotification object: nil]; [[editField currentEditor] resignFirstResponder]; [self setNeedsDisplay: YES]; return e; } @end gorm-1.3.1/GormCore/GormOpenGLView.m0000644000175000017500000000350514327003122016164 0ustar heronheron/* GormOpenGLView.h - Demo view for show when displaying a NSOpenGLView during * testing only. * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include // #include // #include @implementation GormOpenGLView - (id) initWithFrame: (NSRect)rect { if((self = [super initWithFrame: rect]) != nil) { /* rtri = 0.0f; timer = [NSTimer scheduledTimerWithTimeInterval: 0.05 target: self selector: @selector(oneStep) userInfo: nil repeats: YES]; */ } return self; } - (void) dealloc { // [timer invalidate]; [super dealloc]; } - (void) oneStep { // rotate. // rtri -= 0.2f; rtri = 0.5f; [self setNeedsDisplay: YES]; } - (void) drawRect: (NSRect)rect { // do nothing for now... [[NSColor blackColor] set]; PSrectfill(NSMinX(rect), NSMinY(rect), NSWidth(rect), NSHeight(rect)); } @end gorm-1.3.1/GormCore/GormResource.m0000644000175000017500000000752314327003122016000 0ustar heronheron/* GormResource.m * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormResource.h" // resource proxy object... @implementation GormResource + (GormResource*)resourceForPath: (NSString *)aPath { return [GormResource resourceForPath: aPath inWrapper: NO]; } + (GormResource*)resourceForPath: (NSString *)aPath inWrapper: (BOOL)flag { return AUTORELEASE([[GormResource alloc] initWithPath: aPath inWrapper: flag]); } - (id) initWithPath: (NSString *)aPath { return [self initWithPath: aPath inWrapper: NO]; } - (id) initWithPath: (NSString *)aPath inWrapper: (BOOL)flag { NSString *aName = [[aPath lastPathComponent] stringByDeletingPathExtension]; return [self initWithName: aName path: aPath inWrapper: flag]; } - (id) initWithData: (NSData *)aData withFileName: (NSString *)aFileName inWrapper: (BOOL)flag { if((self = [self init])) { ASSIGN(path, nil); ASSIGN(fileName, aFileName); ASSIGN(name, [fileName stringByDeletingPathExtension]); ASSIGN(fileType, [fileName pathExtension]); ASSIGN(data, aData); language = nil; isLocalized = NO; isSystemResource = NO; isInWrapper = flag; project = nil; } return self; } - (id) initWithName: (NSString *)aName path: (NSString *)aPath { return [self initWithName: aName path: aPath inWrapper: NO]; } /** * Designated initializer. */ - (id) initWithName: (NSString *)aName path: (NSString *)aPath inWrapper: (BOOL)flag { if((self = [super init])) { ASSIGN(path, aPath); ASSIGN(name, aName); ASSIGN(fileName, [aPath lastPathComponent]); ASSIGN(fileType, [fileName pathExtension]); language = nil; isLocalized = NO; isSystemResource = NO; isInWrapper = flag; project = nil; } return self; } - (void) dealloc { RELEASE(name); RELEASE(path); RELEASE(fileName); RELEASE(fileType); RELEASE(data); [super dealloc]; } - (void) setName: (NSString *)aName { ASSIGN(name, aName); } - (NSString *) name { return name; } - (void) setPath: (NSString *)aPath { ASSIGN(path, aPath); } - (void) setSystemResource: (BOOL)flag { isSystemResource = flag; } - (BOOL) isSystemResource { return isSystemResource; } - (void) setInWrapper: (BOOL)flag { isInWrapper = flag; } - (BOOL) isInWrapper { return isInWrapper; } - (void) setData: (NSData *)aData { ASSIGN(data, aData); } - (NSData *) data { return data; } - (BOOL) isEqual: (id)object { BOOL result = NO; if(object == self) result = YES; else if([object isKindOfClass: [self class]] == NO) result = NO; else if([[self name] isEqual: [(GormResource *)object name]]) result = YES; return result; } // IBProjectFiles methods. - (NSString *) fileName { return fileName; } - (NSString *) fileType { return fileType; } - (BOOL) isLocalized { return isLocalized; } - (NSString *) language { return language; } - (NSString *) path { return path; } - (id) project { return project; } @end gorm-1.3.1/GormCore/GormDocument.m0000644000175000017500000027767214333116000016002 0ustar heronheron/* GormDocument.m * * This class contains Gorm specific implementation of the IBDocuments * protocol plus additional methods which are useful for managing the * contents of the document. * * Copyright (C) 1999,2002,2003,2004,2005,2020,2021 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2002,2003,2004,2005,2020,2021 * Author: Richard Frith-Macdonald * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include "GormPrivate.h" #include "GormClassManager.h" #include "GormCustomView.h" #include "GormOutlineView.h" #include "GormFunctions.h" #include "GormFilePrefsManager.h" #include "GormViewWindow.h" #include "NSView+GormExtensions.h" #include "GormSound.h" #include "GormImage.h" #include "GormResourceManager.h" #include "GormClassEditor.h" #include "GormSoundEditor.h" #include "GormImageEditor.h" #include "GormObjectEditor.h" #include "GormWrapperBuilder.h" #include "GormWrapperLoader.h" #include "GormDocumentWindow.h" #include "GormDocumentController.h" @interface GormDisplayCell : NSButtonCell @end @implementation GormDisplayCell - (void) setShowsFirstResponder: (BOOL)flag { [super setShowsFirstResponder: NO]; // Never show ugly frame round button } @end @interface NSDocument (GormPrivate) - (NSWindow *) _docWindow; @end @implementation NSDocument (GormPrivate) - (NSWindow *) _docWindow { static Ivar iv; if (!iv) { iv = class_getInstanceVariable([NSDocument class], "_window"); NSAssert(iv, @"Unable to find _window ivar in NSDocument class"); } return object_getIvar(self, iv); } @end @implementation GormFirstResponder - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormFirstResponder"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } - (NSString*) inspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) connectInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) sizeInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) classInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) className { return @"FirstResponder"; } @end // // Implementation of trivial classes. // @implementation GormObjectToEditor @end @implementation GormEditorToParent @end @implementation GormDocument static NSImage *objectsImage = nil; static NSImage *imagesImage = nil; static NSImage *soundsImage = nil; static NSImage *classesImage = nil; static NSImage *fileImage = nil; /** * Initialize the class. */ + (void) initialize { if (self == [GormDocument class]) { NSBundle *bundle; NSString *path; bundle = [NSBundle mainBundle]; path = [bundle pathForImageResource: @"GormObject"]; if (path != nil) { objectsImage = [[NSImage alloc] initWithContentsOfFile: path]; } path = [bundle pathForImageResource: @"GormImage"]; if (path != nil) { imagesImage = [[NSImage alloc] initWithContentsOfFile: path]; } path = [bundle pathForImageResource: @"GormSound"]; if (path != nil) { soundsImage = [[NSImage alloc] initWithContentsOfFile: path]; } path = [bundle pathForImageResource: @"GormClass"]; if (path != nil) { classesImage = [[NSImage alloc] initWithContentsOfFile: path]; } path = [bundle pathForImageResource: @"Gorm"]; if (path != nil) { fileImage = [[NSImage alloc] initWithContentsOfFile: path]; } // register the resource managers... [IBResourceManager registerResourceManagerClass: [IBResourceManager class]]; [IBResourceManager registerResourceManagerClass: [GormResourceManager class]]; [self setVersion: GNUSTEP_NIB_VERSION]; } } /** * Initialize the new GormDocument object. */ - (id) init { self = [super init]; if (self != nil) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // initialize... openEditors = [[NSMutableArray alloc] init]; classManager = [(GormClassManager *)[GormClassManager alloc] initWithDocument: self]; /* * NB. We must retain the map values (object names) as the nameTable * may not hold identical name objects, but merely equal strings. */ objToName = NSCreateMapTableWithZone(NSObjectMapKeyCallBacks, NSObjectMapValueCallBacks, 128, [self zone]); // for saving the editors when the gorm file is persisted. savedEditors = [[NSMutableArray alloc] init]; // observe certain notifications... [nc addObserver: self selector: @selector(handleNotification:) name: IBClassNameChangedNotification object: classManager]; [nc addObserver: self selector: @selector(handleNotification:) name: IBInspectorDidModifyObjectNotification object: classManager]; [nc addObserver: self selector: @selector(handleNotification:) name: GormDidModifyClassNotification object: classManager]; [nc addObserver: self selector: @selector(handleNotification:) name: GormDidAddClassNotification object: classManager]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillBeginTestingInterfaceNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillEndTestingInterfaceNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: IBResourceManagerRegistryDidChangeNotification object: nil]; // load resource managers [self createResourceManagers]; /* * Set up container data.... */ nameTable = [[NSMutableDictionary alloc] init]; connections = [[NSMutableArray alloc] init]; topLevelObjects = [[NSMutableSet alloc] init]; visibleWindows = [[NSMutableSet alloc] init]; deferredWindows = [[NSMutableSet alloc] init]; filesOwner = [[GormFilesOwner alloc] init]; [self setName: @"NSOwner" forObject: filesOwner]; firstResponder = [[GormFirstResponder alloc] init]; [self setName: @"NSFirst" forObject: firstResponder]; // preload headers... if ([defaults boolForKey: @"PreloadHeaders"]) { NSArray *headerList = [defaults arrayForKey: @"HeaderList"]; NSEnumerator *en = [headerList objectEnumerator]; id obj = nil; while ((obj = [en nextObject]) != nil) { NSString *header = (NSString *)obj; NSDebugLog(@"Preloading %@", header); NS_DURING { if(![classManager parseHeader: header]) { NSString *file = [header lastPathComponent]; NSString *message = [NSString stringWithFormat: _(@"Unable to parse class in %@"),file]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } } NS_HANDLER { NSString *message = [localException reason]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } NS_ENDHANDLER; } } // are we upgrading an archive? isOlderArchive = NO; // document is open... isDocumentOpen = YES; } return self; } /** * Perform any additional setup which needs to happen. */ - (void) awakeFromNib { NSRect scrollRect = {{0, 0}, {340, 188}}; NSRect mainRect = {{20, 0}, {320, 188}}; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSMenu *mainMenu = nil; NSEnumerator *en = nil; id o = nil; // get the window and cache it... window = (GormDocumentWindow *)[self _docWindow]; [IBResourceManager registerForAllPboardTypes:window inDocument:self]; [window setDocument: self]; // set up the toolbar... toolbar = [(NSToolbar *)[NSToolbar alloc] initWithIdentifier: @"GormToolbar"]; [toolbar setAllowsUserCustomization: NO]; // [toolbar setSizeMode: NSToolbarSizeModeSmall]; [toolbar setDelegate: self]; [window setToolbar: toolbar]; RELEASE(toolbar); [toolbar setSelectedItemIdentifier: @"ObjectsItem"]; // set initial selection. // set up notifications for window. [nc addObserver: self selector: @selector(handleNotification:) name: NSWindowWillCloseNotification object: window]; [nc addObserver: self selector: @selector(handleNotification:) name: NSWindowDidBecomeKeyNotification object: window]; [nc addObserver: self selector: @selector(handleNotification:) name: NSWindowWillMiniaturizeNotification object: window]; [nc addObserver: self selector: @selector(handleNotification:) name: NSWindowDidDeminiaturizeNotification object: window]; // objects... mainRect.origin = NSMakePoint(0,0); scrollView = [[NSScrollView alloc] initWithFrame: scrollRect]; [scrollView setHasVerticalScroller: YES]; [scrollView setHasHorizontalScroller: YES]; [scrollView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [scrollView setBorderType: NSBezelBorder]; objectsView = [[GormObjectEditor alloc] initWithObject: nil inDocument: self]; [objectsView setFrame: mainRect]; [objectsView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [scrollView setDocumentView: objectsView]; RELEASE(objectsView); // images... mainRect.origin = NSMakePoint(0,0); imagesScrollView = [[NSScrollView alloc] initWithFrame: scrollRect]; [imagesScrollView setHasVerticalScroller: YES]; [imagesScrollView setHasHorizontalScroller: YES]; [imagesScrollView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [imagesScrollView setBorderType: NSBezelBorder]; imagesView = [[GormImageEditor alloc] initWithObject: nil inDocument: self]; [imagesView setFrame: mainRect]; [imagesView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [imagesScrollView setDocumentView: imagesView]; RELEASE(imagesView); // sounds... mainRect.origin = NSMakePoint(0,0); soundsScrollView = [[NSScrollView alloc] initWithFrame: scrollRect]; [soundsScrollView setHasVerticalScroller: YES]; [soundsScrollView setHasHorizontalScroller: YES]; [soundsScrollView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [soundsScrollView setBorderType: NSBezelBorder]; soundsView = [[GormSoundEditor alloc] initWithObject: nil inDocument: self]; [soundsView setFrame: mainRect]; [soundsView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [soundsScrollView setDocumentView: soundsView]; RELEASE(soundsView); /* classes view */ mainRect.origin = NSMakePoint(0,0); classesView = [(GormClassEditor *)[GormClassEditor alloc] initWithDocument: self]; // [classesView setFrame: mainRect]; /* * Set the objects view as the initial view the user's see on startup. */ [selectionBox setContentView: scrollView]; // add to the objects view... [objectsView addObject: filesOwner]; [objectsView addObject: firstResponder]; /* * Set image for this miniwindow. */ [window setMiniwindowImage: [(id)filesOwner imageForViewer]]; hidden = [[NSMutableArray alloc] init]; // reposition the loaded menu appropriately... mainMenu = [nameTable objectForKey: @"NSMenu"]; if(mainMenu != nil) { NSRect frame = [window frame]; NSPoint origin = frame.origin; NSRect screen = [[NSScreen mainScreen] frame]; // account for the height of the menu we're loading. origin.y = (screen.size.height - 100); // place the main menu appropriately... [[mainMenu window] setFrameTopLeftPoint: origin]; } // load the file preferences.... if(infoData != nil) { if([filePrefsManager loadFromData: infoData]) { NSInteger version = [filePrefsManager version]; NSInteger currentVersion = [GormFilePrefsManager currentVersion]; if(version > currentVersion) { NSInteger retval = NSRunAlertPanel(_(@"Gorm Build Mismatch"), _(@"The file being loaded was created with a newer build, continue?"), _(@"OK"), _(@"Cancel"), nil, nil); if(retval != NSAlertDefaultReturn) { // close the document, if the user says "NO." [self close]; } } DESTROY(infoData); } else { NSLog(@"Loading gorm without data.info file. Default settings will be assumed."); } } // load the images and sounds... en = [images objectEnumerator]; while((o = [en nextObject]) != nil) { [imagesView addObject: o]; } DESTROY(images); en = [images objectEnumerator]; while((o = [en nextObject]) != nil) { [soundsView addObject: o]; } DESTROY(sounds); // // Retain the file prefs view... // RETAIN(filePrefsView); // // All of the entries in the items array are "top level items" // which should be visible in the object's view. // en = [topLevelObjects objectEnumerator]; while((o = [en nextObject]) != nil) { [objectsView addObject: o]; } // set the file type in the prefs manager... [filePrefsManager setFileTypeName: [self fileType]]; } /** * Add aConnector to the set of connectors in this document. */ - (void) addConnector: (id)aConnector { if ([connections indexOfObjectIdenticalTo: aConnector] == NSNotFound) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc postNotificationName: IBWillAddConnectorNotification object: aConnector]; [connections addObject: aConnector]; [nc postNotificationName: IBDidAddConnectorNotification object: aConnector]; } } /** * Returns all connectors. */ - (NSArray*) allConnectors { return [NSArray arrayWithArray: connections]; } /** * Creates the proxy font manager. */ - (void) _instantiateFontManager { GSNibItem *item = nil; NSMenu *fontMenu = nil; item = [[GormObjectProxy alloc] initWithClassName: @"NSFontManager"]; [self setName: @"NSFont" forObject: item]; [self attachObject: item toParent: nil]; RELEASE(item); // set the holder in the document. fontManager = (GormObjectProxy *)item; [self changeToViewWithTag: 0]; // Add the connection to the menu from the font manager, if the NSFontMenu exists... fontMenu = [self fontMenu]; if (fontMenu != nil) { NSNibOutletConnector *con = [[NSNibOutletConnector alloc] init]; [con setSource: item]; [con setDestination: fontMenu]; [con setLabel: @"menu"]; [self addConnector: con]; } } /** * Attach anObject to the document with aParent specifying the name. To allow * Gorm to generate the name pass in nil for aName parameter */ - (void) attachObject: (id)anObject toParent: (id)aParent withName: (NSString *)aName { NSArray *old; BOOL newObject = NO; // Modify the document whenever something is added... [self touch]; /* * Create a connector that links this object to its parent. * A nil parent is the root of the hierarchy so we use a dummy object for it. */ if (aParent == nil) { aParent = filesOwner; } old = [self connectorsForSource: anObject ofClass: [NSNibConnector class]]; if ([old count] > 0) { [[old objectAtIndex: 0] setDestination: aParent]; } else { NSNibConnector *con = [[NSNibConnector alloc] init]; [con setSource: anObject]; [con setDestination: aParent]; [self addConnector: (id)con]; RELEASE(con); } /* * Make sure that there is a name for this object. */ if ([self nameForObject: anObject] == nil) { newObject = YES; [self setName: aName forObject: anObject]; } /* * Add top-level objects to objectsView and open their editors. */ if ([anObject isKindOfClass: [NSWindow class]] || [anObject isKindOfClass: [GSNibItem class]]) { [objectsView addObject: anObject]; [topLevelObjects addObject: anObject]; if ([anObject isKindOfClass: [NSWindow class]]) { NSWindow *win = (NSWindow *)anObject; NSView *contentView = [win contentView]; NSArray *subviews = [contentView subviews]; // Turn off the release when closed flag, add the content view. [anObject setReleasedWhenClosed: NO]; [self attachObject: contentView toParent: anObject]; // Add all subviews from the window, if any. [self attachObjects: subviews toParent: win]; } [[self openEditorForObject: anObject] activate]; } /* * Determine what should be a top level object. */ else if((aParent == filesOwner || aParent == nil) && [anObject isKindOfClass: [NSMenu class]] == NO) { if([anObject isKindOfClass: [NSObject class]] && [anObject isKindOfClass: [NSView class]] == NO) { [objectsView addObject: anObject]; [topLevelObjects addObject: anObject]; } else if([anObject isKindOfClass: [NSView class]] && [anObject superview] == nil) { [objectsView addObject: anObject]; [topLevelObjects addObject: anObject]; } } /* * Check if it's a font manager. */ else if([anObject isKindOfClass: [NSFontManager class]]) { // If someone tries to attach a font manager, we must attach // the proxy instead. [self _instantiateFontManager]; } /* * Add the menu items from the popup. */ else if([anObject isKindOfClass: [NSPopUpButton class]]) { NSPopUpButton *button = (NSPopUpButton *)anObject; // add all of the items in the popup.. [self attachObjects: [button itemArray] toParent: button]; } /* * Add the menu item. */ else if([anObject isKindOfClass: [NSMenuItem class]]) { NSMenu *menu = [(NSMenuItem *)anObject submenu]; if(menu != nil) { [self attachObject: menu toParent: anObject]; } } /* * Add the current menu and any submenus. */ else if ([anObject isKindOfClass: [NSMenu class]]) { BOOL isMainMenu = NO; NSMenu *menu = (NSMenu *)anObject; // If there is no main menu and a menu gets added, it // will become the main menu. if([self objectForName: @"NSMenu"] == nil) { [self setName: @"NSMenu" forObject: menu]; [objectsView addObject: menu]; [topLevelObjects addObject: menu]; isMainMenu = YES; } else { if([[menu title] isEqual: @"Services"] && [self servicesMenu] == nil) { [self setServicesMenu: menu]; } else if([[menu title] isEqual: @"Windows"] && [self windowsMenu] == nil) { [self setWindowsMenu: menu]; } else if([[menu title] isEqual: @"Open Recent"] && [self recentDocumentsMenu] == nil) { [self setRecentDocumentsMenu: menu]; } if([[menu title] isEqual: @"Font"] && [self fontMenu] == nil) { [self setFontMenu: menu]; } // if it doesn't have a supermenu and it's owned by the file's owner, then it's a top level menu.... else if([menu supermenu] == nil && aParent == filesOwner) { [objectsView addObject: menu]; [topLevelObjects addObject: menu]; isMainMenu = NO; } } // add all of the items in the menu. [self attachObjects: [menu itemArray] toParent: menu]; // activate the editor... [[self openEditorForObject: menu] activate]; // If it's the main menu... locate it appropriately... if(isMainMenu && [self isActive]) { NSRect frame = [[self window] frame]; NSPoint origin = frame.origin; NSRect screen = [[NSScreen mainScreen] frame]; origin.y = (screen.size.height - 100); // Place the main menu appropriately... [[menu window] setFrameTopLeftPoint: origin]; } } /* * If this a scrollview, it is interesting to add its contentview. */ else if (([anObject isKindOfClass: [NSScrollView class]]) && ([(NSScrollView *)anObject documentView] != nil)) { if ([[anObject documentView] isKindOfClass: [NSTableView class]]) { id tv = [anObject documentView]; [self attachObject: tv toParent: anObject]; [self attachObjects: [tv tableColumns] toParent: tv]; } else // if ([[anObject documentView] isKindOfClass: [NSTextView class]]) { [self attachObject: [anObject documentView] toParent: anObject]; } } /* * If it's a tab view, then we want the tab items. */ else if ([anObject isKindOfClass: [NSTabView class]]) { [self attachObjects: [anObject tabViewItems] toParent: anObject]; } /* * If it's a tab view item, then we attach the view. */ else if ([anObject isKindOfClass: [NSTabViewItem class]]) { NSTabViewItem *ti = (NSTabViewItem *)anObject; id v = [ti view]; [self attachObject: v toParent: ti]; } /* * If it's a matrix, add the elements of the matrix. */ else if ([anObject isKindOfClass: [NSMatrix class]]) { // add all of the cells.... if ([[anObject cells] count] > 0) // && [anObject prototype] != nil) { [self attachObjects: [anObject cells] toParent: anObject]; } if ([anObject prototype] != nil) { [self attachObject: [anObject prototype] toParent: anObject]; } } /* * If it's a simple NSView, add it and all of it's subviews. */ else if ([anObject isKindOfClass: [NSView class]]) { NSView *view = (NSView *)anObject; // Add all subviews from the window, if any. [self attachObjects: [view subviews] toParent: view]; } /* * Add columns to document hierarchy... */ else if ([anObject isKindOfClass: [NSTableView class]]) // this should include outline view { NSTableView *tblView = (NSTableView *)anObject; NSArray *cols = [tblView tableColumns]; [self attachObjects: cols toParent: tblView]; } else if ([anObject isKindOfClass: [NSSplitView class]]) { NSSplitView *sp = (NSSplitView *)anObject; [self attachObjects: [sp subviews] toParent: sp]; } /* * Detect and add any connection the object might have. * This is done so that any palette items which have predefined connections will be * shown in the connections list. */ if([anObject respondsToSelector: @selector(action)] && [anObject respondsToSelector: @selector(target)] && newObject) { SEL sel = [anObject action]; if(sel != NULL) { NSString *label = NSStringFromSelector(sel); id source = anObject; NSNibControlConnector *con = [[NSNibControlConnector alloc] init]; id destination = [(NSControl *)anObject target]; NSArray *sourceConnections = [self connectorsForSource: source]; // if it's a menu item we want to connect it to it's parent... if([anObject isKindOfClass: [NSMenuItem class]] && [label isEqual: @"submenuAction:"]) { destination = aParent; } // if the connection needs to be made with the font manager, replace // it with our proxy object and proceed with creating the connection. if((destination == nil || destination == [NSFontManager sharedFontManager]) && [classManager isAction: label ofClass: @"NSFontManager"]) { if(!fontManager) { // initialize font manager... [self _instantiateFontManager]; } // set the destination... destination = fontManager; } // if the destination is still nil, back off to the first responder. if(destination == nil) { destination = firstResponder; } // build the connection [con setSource: source]; [con setDestination: destination]; [con setLabel: label]; // don't duplicate the connection if it already exists. // if([sourceConnections indexOfObjectIdenticalTo: con] == NSNotFound) if([sourceConnections containsObject: con] == NO) { // add it to our connections set. [self addConnector: (id)con]; } // destroy the connection in the object to // prevent any conflict. The connections are restored when the // .gorm is loaded, so there's no need for it anymore. [anObject setTarget: nil]; [anObject setAction: NULL]; // release the connection. RELEASE(con); } } /* * Attach the cell of an item to the document so that it has a name and * can be addressed. Do this last so that all other considerations are taken care * of prior to adding the cell to the document. */ if ([anObject respondsToSelector: @selector(cell)]) { [self openEditorForObject: [anObject cell] withParentObject: anObject]; [self attachObject: [anObject cell] toParent: anObject]; } } /** * Attach an object to parent object in document letting Gorm generate the name */ - (void) attachObject: (id)object toParent: (id)parent { [self attachObject: object toParent: parent withName: nil]; } /** * Attach an object to parent object in document letting Gorm generate the name * this method will add a top level object. */ - (void) attachObject: (id)object { [self attachObject: object toParent: nil withName: nil]; } /** * Attach all objects in anArray to the document with aParent. */ - (void) attachObjects: (NSArray*)anArray toParent: (id)aParent { NSEnumerator *enumerator = [anArray objectEnumerator]; NSObject *obj; while ((obj = [enumerator nextObject]) != nil) { [self attachObject: obj toParent: aParent]; } } - (void) changeToViewWithTag: (int)tag { switch (tag) { case 0: // objects { [selectionBox setContentView: scrollView]; [toolbar setSelectedItemIdentifier: @"ObjectsItem"]; if (![NSApp isConnecting]) [self setSelectionFromEditor: objectsView]; } break; case 1: // images { [selectionBox setContentView: imagesScrollView]; [toolbar setSelectedItemIdentifier: @"ImagesItem"]; [self setSelectionFromEditor: imagesView]; } break; case 2: // sounds { [selectionBox setContentView: soundsScrollView]; [toolbar setSelectedItemIdentifier: @"SoundsItem"]; [self setSelectionFromEditor: soundsView]; } break; case 3: // classes { NSArray *selection = [[(id)NSApp selectionOwner] selection]; [selectionBox setContentView: classesView]; // if something is selected, in the object view. // show the equivalent class in the classes view. if ([selection count] > 0) { id obj = [selection objectAtIndex: 0]; [classesView selectClassWithObject: obj]; } [toolbar setSelectedItemIdentifier: @"ClassesItem"]; [self setSelectionFromEditor: classesView]; } break; case 4: // file prefs { [toolbar setSelectedItemIdentifier: @"FileItem"]; [selectionBox setContentView: filePrefsView]; } break; } } - (NSView *) viewWithTag:(int)tag { switch (tag) { case 0: // objects return objectsView; case 1: // images return imagesView; case 2: // sounds return soundsView; case 3: // classes return classesView; case 4: // file prefs return filePrefsView; default: return nil; } } - (void) changeToTopLevelEditorAcceptingTypes: (NSArray *)types andFileType: (NSString *)fileType { // NSToolbar *toolbar = [_window toolbar]; if([objectsView acceptsTypeFromArray: types] && fileType == nil) { [self changeToViewWithTag: 0]; } else if([imagesView acceptsTypeFromArray: types] && [[imagesView fileTypes] containsObject: fileType]) { [self changeToViewWithTag: 1]; } else if([soundsView acceptsTypeFromArray: types] && [[soundsView fileTypes] containsObject: fileType]) { [self changeToViewWithTag: 2]; } else if([classesView acceptsTypeFromArray: types] && [[classesView fileTypes] containsObject: fileType]) { [self changeToViewWithTag: 3]; } } /** * Change the view in the document window. */ - (void) changeView: (id)sender { [self changeToViewWithTag: [sender tag]]; } /** * The class manager. */ - (GormClassManager*) classManager { return classManager; } /** * Returns all connectors to destination. */ - (NSArray*) connectorsForDestination: (id)destination { return [self connectorsForDestination: destination ofClass: 0]; } /** * Returns all connectors to destination of class aConnectorClass. */ - (NSArray*) connectorsForDestination: (id)destination ofClass: (Class)aConnectorClass { NSMutableArray *array = [NSMutableArray arrayWithCapacity: 16]; NSEnumerator *enumerator = [connections objectEnumerator]; id c; while ((c = [enumerator nextObject]) != nil) { if ([c destination] == destination && (aConnectorClass == 0 || aConnectorClass == [c class])) { [array addObject: c]; } } return array; } /** * Returns all connectors to source. */ - (NSArray*) connectorsForSource: (id)source { return [self connectorsForSource: source ofClass: 0]; } /** * Returns all connectors to a given source where the * connectors are of aConnectorClass. */ - (NSArray*) connectorsForSource: (id)source ofClass: (Class)aConnectorClass { NSMutableArray *array = [NSMutableArray arrayWithCapacity: 16]; NSEnumerator *enumerator = [connections objectEnumerator]; id c; while ((c = [enumerator nextObject]) != nil) { if ([c source] == source && (aConnectorClass == 0 || aConnectorClass == [c class])) { [array addObject: c]; } } return array; } /** * Returns YES, if the document contains anObject. */ - (BOOL) containsObject: (id)anObject { if ([self nameForObject: anObject] == nil) { return NO; } return YES; } /** * Returns YES, if the document contains an object with aName and * parent. */ - (BOOL) containsObjectWithName: (NSString*)aName forParent: (id)parent { id obj = [nameTable objectForKey: aName]; if (obj == nil) { return NO; } return YES; } /** * Copy anObject to aPasteboard using aType. Returns YES, if * successful. */ - (BOOL) copyObject: (id)anObject type: (NSString*)aType toPasteboard: (NSPasteboard*)aPasteboard { return [self copyObjects: [NSArray arrayWithObject: anObject] type: aType toPasteboard: aPasteboard]; } /** * Copy all objects in anArray to aPasteboard using aType. Returns YES, * if successful. */ - (BOOL) copyObjects: (NSArray*)anArray type: (NSString*)aType toPasteboard: (NSPasteboard*)aPasteboard { NSEnumerator *enumerator; NSMutableSet *editorSet; id obj; NSMutableData *data; NSArchiver *archiver; /* * Remove all editors from the selected objects before archiving * and restore them afterwards. */ editorSet = [[NSMutableSet alloc] init]; enumerator = [anArray objectEnumerator]; while ((obj = [enumerator nextObject]) != nil) { id editor = [self editorForObject: obj create: NO]; if (editor != nil) { [editorSet addObject: editor]; [editor deactivate]; } // Windows are a special case. Check the content view and see if it's an active editor. /** if([obj isKindOfClass: [NSWindow class]]) { id contentView = [obj contentView]; if([contentView conformsToProtocol: @protocol(IBEditors)]) { [contentView deactivate]; [editorSet addObject: contentView]; } } */ } // encode the data data = [NSMutableData dataWithCapacity: 0]; archiver = [[NSArchiver alloc] initForWritingWithMutableData: data]; [archiver encodeClassName: @"GormCustomView" intoClassName: @"GSCustomView"]; [archiver encodeRootObject: anArray]; // reactivate enumerator = [editorSet objectEnumerator]; while ((obj = [enumerator nextObject]) != nil) { [obj activate]; } RELEASE(editorSet); [aPasteboard declareTypes: [NSArray arrayWithObject: aType] owner: self]; return [aPasteboard setData: data forType: aType]; } /** * The given pasteboard chaned ownership. */ - (void) pasteboardChangedOwner: (NSPasteboard *)sender { NSDebugLog(@"Owner changed for %@", sender); } /** * Dealloc all things owned by a GormDocument object. */ - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; ASSIGN(lastEditor, (id)nil); // [filePrefsWindow close]; // Get rid of the selection box. // [selectionBox removeFromSuperviewWithoutNeedingDisplay]; RELEASE(classManager); RELEASE(filePrefsManager); RELEASE(filePrefsView); RELEASE(hidden); if (objToName != 0) { NSFreeMapTable(objToName); } RELEASE(scrollView); RELEASE(classesView); RELEASE(soundsScrollView); RELEASE(imagesScrollView); // RELEASE(filePrefsWindow); // FIXME: Causes NIB to crash... RELEASE(resourceManagers); RELEASE(nameTable); RELEASE(connections); RELEASE(topLevelObjects); RELEASE(visibleWindows); RELEASE(deferredWindows); DESTROY(savedEditors); DESTROY(openEditors); TEST_RELEASE(scmWrapper); [super dealloc]; } /** * Pull all objects which are under the given parent, into array. */ - (void) _retrieveObjectsForParent: (id)parent intoArray: (NSMutableArray *)array recursively: (BOOL)flag { NSArray *cons = [self connectorsForDestination: parent ofClass: [NSNibConnector class]]; NSEnumerator *en = [cons objectEnumerator]; id con = nil; while((con = [en nextObject]) != nil) { id obj = [con source]; if(obj != nil) { [array addObject: obj]; if(flag) { [self _retrieveObjectsForParent: obj intoArray: array recursively: flag]; } } } } /** * Pull all of the objects which are under a given parent. Returns an * autoreleased array. */ - (NSArray *) retrieveObjectsForParent: (id)parent recursively: (BOOL)flag { NSMutableArray *result = [NSMutableArray array]; // If parent is nil, use file's owner. if(parent == nil) { parent = filesOwner; } [self _retrieveObjectsForParent: parent intoArray: result recursively: flag]; return result; } /** * Detach anObject from the document. Optionally close the editor */ - (void) detachObject: (id)anObject closeEditor: (BOOL)close_editor { if([self containsObject: anObject]) { NSString *name = RETAIN([self nameForObject: anObject]); // released at end of method... unsigned count; NSArray *objs = [self retrieveObjectsForParent: anObject recursively: NO]; id editor = [self editorForObject: anObject create: NO]; id parent = [self parentEditorForEditor: editor]; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; RETAIN(anObject); // prevent release of object during notifications... [nc postNotificationName: GormWillDetachObjectFromDocumentNotification object: anObject userInfo: nil]; // close the editor... if (close_editor) { [editor close]; } if([parent respondsToSelector: @selector(selectObjects:)]) { [parent selectObjects: [NSArray array]]; } count = [connections count]; while (count-- > 0) { id con = [connections objectAtIndex: count]; if ([con destination] == anObject || [con source] == anObject) { [connections removeObjectAtIndex: count]; } } // if the font manager is being reset, zero out the instance variable. if([name isEqual: @"NSFont"]) { fontManager = nil; } if ([anObject isKindOfClass: [NSWindow class]] || [anObject isKindOfClass: [NSMenu class]] || [topLevelObjects containsObject: anObject]) { [objectsView removeObject: anObject]; } // if it's in the top level items array, remove it. if([topLevelObjects containsObject: anObject]) { [topLevelObjects removeObject: anObject]; } // eliminate it from being the windows/services menu, if it's being detached. if ([anObject isKindOfClass: [NSMenu class]]) { if([self windowsMenu] == anObject) { [self setWindowsMenu: nil]; } else if([self servicesMenu] == anObject) { [self setServicesMenu: nil]; } else if([self recentDocumentsMenu] == anObject) { [self setRecentDocumentsMenu: nil]; } } /* * Make sure this window isn't in the list of objects to be made visible * on nib loading. */ if([anObject isKindOfClass: [NSWindow class]]) { [self setObject: anObject isVisibleAtLaunch: NO]; } // some objects are given a name, some are not. The only ones we need // to worry about are those that have names. if(name != nil) { // remove from custom class map... NSDebugLog(@"Delete from custom class map -> %@",name); [classManager removeCustomClassForName: name]; if([anObject isKindOfClass: [NSScrollView class]]) { NSView *subview = [anObject documentView]; NSString *objName = [self nameForObject: subview]; NSDebugLog(@"Delete from custom class map -> %@",objName); [classManager removeCustomClassForName: objName]; } else if([anObject isKindOfClass: [NSWindow class]]) { [anObject setReleasedWhenClosed: YES]; [anObject close]; } // make certain it's not displayed, if it's being detached. if([anObject isKindOfClass: [NSView class]]) { [anObject removeFromSuperview]; } [nameTable removeObjectForKey: name]; // free... NSMapRemove(objToName, (void*)anObject); } // iterate over the list and remove any subordinate objects. [self detachObjects: objs closeEditors: close_editor]; if (close_editor) { [self setSelectionFromEditor: nil]; // clear the selection. } RELEASE(name); // retained at beginning of method... [self touch]; // set the document as modified [nc postNotificationName: GormDidDetachObjectFromDocumentNotification object: anObject userInfo: nil]; RELEASE(anObject); // release since notifications are done. } } /** * Detach object from document. */ - (void) detachObject: (id)object { [self detachObject: object closeEditor: YES]; } /** * Detach every object in anArray from the document. Optionally closing editors. */ - (void) detachObjects: (NSArray*)anArray closeEditors: (BOOL)close_editors { NSEnumerator *enumerator = [anArray objectEnumerator]; NSObject *obj; while ((obj = [enumerator nextObject]) != nil) { [self detachObject: obj closeEditor: close_editors]; } } /** * Detach all objects in array from the document. */ - (void) detachObjects: (NSArray *)array { [self detachObjects: array closeEditors: YES]; } /** * The path to where the .gorm file is saved. */ - (NSString*) documentPath { return [self fileName]; } /** * Create a subclass of the currently selected class in the classes view. */ - (id) createSubclass: (id)sender { return [classesView createSubclass: sender]; } /** * Add an outlet/action to the classes view. */ - (id) addAttributeToClass: (id)sender { [classesView addAttributeToClass]; return self; } /** * Create an instance of a given class. */ - (id) instantiateClass: (id)sender { return [classesView instantiateClass: sender]; } /** * Remove a class from the classes view */ - (id) remove: (id)sender { return [classesView removeClass: sender]; } /** * Parse a header into the classes view. */ - (id) loadClass: (id)sender { return [classesView loadClass: sender]; } /** * Create the class files for the selected class. */ - (id) createClassFiles: (id)sender { return [classesView createClassFiles: sender]; } /** * Close anEditor for anObject. */ - (void) editor: (id)anEditor didCloseForObject: (id)anObject { NSArray *links; /* * If there is a link from this editor to a parent, remove it. */ links = [self connectorsForSource: anEditor ofClass: [GormEditorToParent class]]; NSAssert([links count] < 2, NSInternalInconsistencyException); if ([links count] == 1) { [connections removeObjectIdenticalTo: [links objectAtIndex: 0]]; } /* * Remove the connection linking the object to this editor */ links = [self connectorsForSource: anObject ofClass: [GormObjectToEditor class]]; NSAssert([links count] < 2, NSInternalInconsistencyException); if ([links count] == 1) { [connections removeObjectIdenticalTo: [links objectAtIndex: 0]]; } /* * Add to the master list of editors for this document */ [openEditors removeObjectIdenticalTo: anEditor]; /* * Make sure that this editor is not the selection owner. */ if ([(id)NSApp selectionOwner] == (id)anEditor) { [self resignSelectionForEditor: anEditor]; } } /** * Returns an editor for anObject, if flag is YES, it creates a new * editor, if one doesn't currently exist. */ - (id) editorForObject: (id)anObject create: (BOOL)flag { return [self editorForObject: anObject inEditor: nil create: flag]; } /** * Returns the editor for anObject, in the editor anEditor. If flag is * YES, an editor is created if one doesn't already exist. */ - (id) editorForObject: (id)anObject inEditor: (id)anEditor create: (BOOL)flag { NSArray *links; /* * Look up the editor links for the object to see if it already has an * editor. If it does return it, otherwise create a new editor and a * link to it if the flag is set. */ links = [self connectorsForSource: anObject ofClass: [GormObjectToEditor class]]; if ([links count] == 0 && flag) { Class eClass = NSClassFromString([anObject editorClassName]); id editor; id link; editor = [[eClass alloc] initWithObject: anObject inDocument: self]; link = AUTORELEASE([[GormObjectToEditor alloc] init]); [link setSource: anObject]; [link setDestination: editor]; [connections addObject: link]; if(![openEditors containsObject: editor] && editor != nil) { [openEditors addObject: editor]; } if (anEditor == nil) { /* * By default all editors are owned by the top-level editor of * the document. */ anEditor = objectsView; } if (anEditor != editor) { /* * Link to the parent of the editor. */ link = AUTORELEASE([[GormEditorToParent alloc] init]); [link setSource: editor]; [link setDestination: anEditor]; [connections addObject: link]; } else { NSDebugLog(@"WARNING anEditor = editor"); } [editor activate]; RELEASE((NSObject *)editor); return editor; } else if ([links count] == 0) { return nil; } else { [(id)[[links lastObject] destination] activate]; return [[links lastObject] destination]; } } /** * Forces the closing of all editors in the document. */ - (void) closeAllEditors { NSEnumerator *enumerator; id con; NSMutableArray *editors = [NSMutableArray array]; // remove the editor connections from the connection array... enumerator = [connections objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { if ([con isKindOfClass: [GormObjectToEditor class]]) { [editors addObject: con]; } else if ([con isKindOfClass: [GormEditorToParent class]]) { [editors addObject: con]; } } [connections removeObjectsInArray: editors]; [editors removeAllObjects]; // Close all of the editors & get all of the objects out. // copy the array, since the close method calls editor:didCloseForObject: // and would effect the array during the execution of // makeObjectsPerformSelector:. [editors addObjectsFromArray: openEditors]; [editors makeObjectsPerformSelector: @selector(close)]; [openEditors removeAllObjects]; [editors removeAllObjects]; } static void _real_close(GormDocument *self, NSEnumerator *enumerator) { id obj; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; while ((obj = [enumerator nextObject]) != nil) { if ([obj isKindOfClass: [NSWindow class]]) { [obj setReleasedWhenClosed: YES]; [obj close]; } } // deactivate the document... [self setDocumentActive: NO]; [self closeAllEditors]; // shut down all of the editors.. [nc postNotificationName: IBWillCloseDocumentNotification object: self]; [nc removeObserver: self]; // stop listening to all notifications. } /** * Close the document and all windows associated. Mark this document as closed. */ - (void) close { isDocumentOpen = NO; _real_close(self, [nameTable objectEnumerator]); [super close]; } /** * Handle all notifications. Checks the value of [aNotification name] * against the set of notifications this class responds to and takes * appropriate action. */ - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: NSWindowWillCloseNotification] && isDocumentOpen) { _real_close(self, [nameTable objectEnumerator]); isDocumentOpen = NO; } else if ([name isEqual: NSWindowDidBecomeKeyNotification] && isDocumentOpen) { [self setDocumentActive: YES]; } else if ([name isEqual: NSWindowWillMiniaturizeNotification] && isDocumentOpen) { [self setDocumentActive: NO]; } else if ([name isEqual: NSWindowDidDeminiaturizeNotification] && isDocumentOpen) { [self setDocumentActive: YES]; } else if ([name isEqual: IBWillBeginTestingInterfaceNotification] && isDocumentOpen) { if ([(id)NSApp activeDocument] == self) { NSEnumerator *enumerator; id obj; if ([[self window] isVisible]) { [hidden addObject: [self window]]; [[self window] setExcludedFromWindowsMenu: YES]; [[self window] orderOut: self]; } [[NSApp mainMenu] close]; // close the menu during test... enumerator = [nameTable objectEnumerator]; while ((obj = [enumerator nextObject]) != nil) { if ([obj isKindOfClass: [NSMenu class]]) { if ([[obj window] isVisible]) { [hidden addObject: obj]; [obj close]; } } else if ([obj isKindOfClass: [NSWindow class]]) { if ([obj isVisible]) { [hidden addObject: obj]; [obj orderOut: self]; } } } } } else if ([name isEqual: IBWillEndTestingInterfaceNotification] && isDocumentOpen) { if ([hidden count] > 0) { NSEnumerator *enumerator; id obj; [[NSApp mainMenu] display]; // bring the menu back... enumerator = [hidden objectEnumerator]; while ((obj = [enumerator nextObject]) != nil) { if ([obj isKindOfClass: [NSMenu class]]) { [obj display]; } else if ([obj isKindOfClass: [NSWindow class]]) { [obj orderFront: self]; } } [hidden removeAllObjects]; [[self window] setExcludedFromWindowsMenu: NO]; } } else if ([name isEqual: IBClassNameChangedNotification] && isDocumentOpen) { [classesView reloadData]; [self setSelectionFromEditor: nil]; [self touch]; } else if ([name isEqual: IBInspectorDidModifyObjectNotification] && isDocumentOpen) { [classesView reloadData]; [self touch]; } else if (([name isEqual: GormDidModifyClassNotification] || [name isEqual: GormDidDeleteClassNotification]) && isDocumentOpen) { if ([classesView isEditing] == NO) { [classesView reloadData]; [self touch]; } } else if ([name isEqual: GormDidAddClassNotification] && isDocumentOpen) { NSArray *customClasses = [classManager allCustomClassNames]; NSString *newClass = [customClasses lastObject]; // go to the class which was just loaded in the classes view... [classesView reloadData]; [self changeToViewWithTag: 3]; if(newClass != nil) { [classesView selectClass: newClass]; } } else if([name isEqual: IBResourceManagerRegistryDidChangeNotification] && isDocumentOpen) { if(resourceManagers != nil) { Class cls = [aNotification object]; id mgr = [(IBResourceManager *)[cls alloc] initWithDocument: self]; [resourceManagers addObject: mgr]; [IBResourceManager registerForAllPboardTypes:window inDocument:self]; } } } /** * Returns YES, if document is active. */ - (BOOL) isActive { return isActive; } /** * Returns the name for anObject. */ - (NSString*) nameForObject: (id)anObject { return (NSString*)NSMapGet(objToName, (void*)anObject); } /** * Returns the object for name. */ - (id) objectForName: (NSString*)name { return [nameTable objectForKey: name]; } /** * Returns all objects in the document. */ - (NSArray*) objects { return [nameTable allValues]; } /** * Returns YES, if the current select on the classes view is a class. */ - (BOOL) classIsSelected { return [classesView currentSelectionIsClass]; } /** * Remove all instances of a given class. */ - (void) removeAllInstancesOfClass: (NSString *)className { NSMutableArray *removedObjects = [NSMutableArray array]; NSEnumerator *en = [[self objects] objectEnumerator]; id object = nil; // locate objects for removal while((object = [en nextObject]) != nil) { NSString *clsForObj = [classManager classNameForObject: object]; if([className isEqual: clsForObj]) { [removedObjects addObject: object]; } } // remove the objects [self detachObjects: removedObjects]; } /** * Select a class in the classes view */ - (void) selectClass: (NSString *)className { [classesView selectClass: className]; } /** * Select a class in the classes view */ - (void) selectClass: (NSString *)className editClass: (BOOL)flag { [classesView selectClass: className editClass: flag]; } /** * Build our reverse mapping information and other initialisation */ - (void) rebuildObjToNameMapping { NSEnumerator *enumerator; NSString *name; NSDebugLog(@"------ Rebuilding object to name mapping..."); NSResetMapTable(objToName); NSMapInsert(objToName, (void*)filesOwner, (void*)@"NSOwner"); NSMapInsert(objToName, (void*)firstResponder, (void*)@"NSFirst"); enumerator = [[nameTable allKeys] objectEnumerator]; while ((name = [enumerator nextObject]) != nil) { id obj = [nameTable objectForKey: name]; NSDebugLog(@"%@ --> %@",name, obj); NSMapInsert(objToName, (void*)obj, (void*)name); if (([obj isKindOfClass: [NSMenu class]] && [name isEqual: @"NSMenu"]) || [obj isKindOfClass: [NSWindow class]]) { [[self openEditorForObject: obj] activate]; } } NSDebugLog(@"------ Done rebuilding object to name mapping..."); } /** * Open the editor for anObject, with parent object. */ - (id) openEditorForObject: (id)anObject withParentObject: (id)parentObj { BOOL f = ([anObject isKindOfClass: [NSCell class]] == NO); id pe = [self editorForObject: parentObj create: NO]; id e = [self editorForObject: anObject inEditor: pe create: f]; id p = (parentObj == nil) ? [self parentEditorForEditor: e] : pe; if (p != nil && p != objectsView) { [self openEditorForObject: [p editedObject]]; } // prevent bringing front of menus before they've been properly sized. if([anObject isKindOfClass: [NSMenu class]] == NO) { [e orderFront]; [[e window] makeKeyAndOrderFront: self]; } return e; } /** * Open the editor for anObject. */ - (id) openEditorForObject: (id)anObject { return [self openEditorForObject: anObject withParentObject: nil]; } /** * Return the parent editor for anEditor. */ - (id) parentEditorForEditor: (id)anEditor { NSArray *links; GormObjectToEditor *con; links = [self connectorsForSource: anEditor ofClass: [GormEditorToParent class]]; con = [links lastObject]; return [con destination]; } /** * Return the parent of anObject. The File's Owner is the root object in the * hierarchy, if anObject's parent is the Files's Owner, this method should return * nil. */ - (id) parentOfObject: (id)anObject { NSArray *old; id con; old = [self connectorsForSource: anObject ofClass: [NSNibConnector class]]; con = [old lastObject]; if ([con destination] != filesOwner && [con destination] != firstResponder) { return [con destination]; } return nil; } /** * Paste objects of aType into the document from aPasteboard * with parent as the parent of the objects. */ - (NSArray*) pasteType: (NSString*)aType fromPasteboard: (NSPasteboard*)aPasteboard parent: (id)parent { NSData *data; NSArray *objects; NSEnumerator *enumerator; NSPoint filePoint; NSPoint screenPoint; NSUnarchiver *u; data = [aPasteboard dataForType: aType]; if (data == nil) { NSDebugLog(@"Pasteboard %@ doesn't contain data of %@", aPasteboard, aType); return nil; } u = AUTORELEASE([[NSUnarchiver alloc] initForReadingWithData: data]); [u decodeClassName: @"GSCustomView" asClassName: @"GormCustomView"]; objects = [u decodeObject]; enumerator = [objects objectEnumerator]; filePoint = [[self window] mouseLocationOutsideOfEventStream]; screenPoint = [[self window] convertBaseToScreen: filePoint]; /* * Windows and panels are a special case - for a multiple window paste, * the windows need to be positioned so they are not on top of each other. */ if ([aType isEqualToString: IBWindowPboardType]) { NSWindow *win; while ((win = [enumerator nextObject]) != nil) { [win setFrameTopLeftPoint: screenPoint]; screenPoint.x += 10; screenPoint.y -= 10; } } else if([aType isEqualToString: IBViewPboardType]) { NSEnumerator *enumerator = [objects objectEnumerator]; NSRect frame; id obj; while ((obj = [enumerator nextObject]) != nil) { // check to see if the object has a frame. If so, then // modify it. If not, simply iterate to the next object if([obj respondsToSelector: @selector(frame)] && [obj respondsToSelector: @selector(setFrame:)]) { frame = [obj frame]; frame.origin.x -= 6; frame.origin.y -= 6; [obj setFrame: frame]; RETAIN(obj); } } } // attach the objects to the parent and touch the document. [self attachObjects: objects toParent: parent]; [self touch]; return objects; } /** * Remove aConnector from the connections array and send the * notifications. */ - (void) removeConnector: (id)aConnector { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; RETAIN(aConnector); // prevent it from being dealloc'd until the notification is done. // issue pre notification.. [nc postNotificationName: IBWillRemoveConnectorNotification object: aConnector]; // mark the document as changed. [self touch]; [connections removeObjectIdenticalTo: aConnector]; // issue post notification.. [nc postNotificationName: IBDidRemoveConnectorNotification object: aConnector]; RELEASE(aConnector); // NOW we can dealloc it. } /** * The editor wants to give up the selection. Go through all the known * editors (with links in the connections array) and try to find one * that wants to take over the selection. Activate whatever editor we * find (if any). */ - (void) resignSelectionForEditor: (id)editor { NSEnumerator *enumerator = [connections objectEnumerator]; Class editClass = [GormObjectToEditor class]; id c; while ((c = [enumerator nextObject]) != nil) { if ([c class] == editClass) { id e = [c destination]; if (e != editor && [e wantsSelection]) { [e activate]; [self setSelectionFromEditor: e]; return; } } } /* * No editor available to take the selection - set a nil owner. */ [self setSelectionFromEditor: nil]; } /** * Set aName for object in the document. If aName is nil, * a name is automatically created for object. */ - (void) setName: (NSString*)aName forObject: (id)object { id oldObject = nil; NSString *oldName = nil; NSMutableDictionary *cc = [classManager customClassMap]; NSString *className = nil; if (object == nil) { NSDebugLog(@"Attempt to set name for nil object"); return; } if (aName == nil) { /* * No name given - so we must generate one unless we already have one. */ oldName = [self nameForObject: object]; if (oldName == nil) { NSString *base; unsigned i = 0; /* * Generate a sensible name for the object based on its class. */ if ([object isKindOfClass: [GSNibItem class]]) { // use the actual class name for proxies base = [(id)object className]; } else { base = NSStringFromClass([object class]); } // pare down the name, if we're generating it. if ([base hasPrefix: @"Gorm"]) { base = [base substringFromIndex: 4]; } if ([base hasPrefix: @"NS"] || [base hasPrefix: @"GS"]) { base = [base substringFromIndex: 2]; } aName = [base stringByAppendingFormat: @"(%u)", i]; while ([nameTable objectForKey: aName] != nil) { aName = [base stringByAppendingFormat: @"(%u)", ++i]; } } else { return; /* Already named ... nothing to do */ } } else // user supplied a name... { oldObject = [nameTable objectForKey: aName]; if (oldObject != nil) { NSDebugLog(@"Attempt to re-use name '%@'", aName); return; } oldName = [self nameForObject: object]; if (oldName != nil) { if ([oldName isEqual: aName]) { return; /* Already have this name ... nothing to do */ } [nameTable removeObjectForKey: oldName]; NSMapRemove(objToName, (void*)object); } } // add it to the dictionary. [nameTable setObject: object forKey: aName]; NSMapInsert(objToName, (void*)object, (void*)aName); if (oldName != nil) { RETAIN(oldName); // hold on to this temporarily... [nameTable removeObjectForKey: oldName]; } if ([objectsView containsObject: object]) { [objectsView refreshCells]; } // check the custom classes map and replace the appropriate // object, if a mapping exists. if (cc != nil) { className = [cc objectForKey: oldName]; if (className != nil) { RETAIN(className); [cc removeObjectForKey: oldName]; [cc setObject: className forKey: aName]; RELEASE(className); } } // release oldName, if we get to this point. if(oldName != nil) { RELEASE(oldName); } // touch the document... [self touch]; } /** * Add object to the visible at launch list. */ - (void) setObject: (id)anObject isVisibleAtLaunch: (BOOL)flag { if (flag) { [visibleWindows addObject: anObject]; } else { [visibleWindows removeObject: anObject]; } } /** * Return YES, if anObject is visible at launch time. */ - (BOOL) objectIsVisibleAtLaunch: (id)anObject { return [visibleWindows containsObject: anObject]; } /** * Add anObject to the deferred list. */ - (void) setObject: (id)anObject isDeferred: (BOOL)flag { if (flag) { [deferredWindows addObject: anObject]; } else { [deferredWindows removeObject: anObject]; } } /** * Return YES, if the anObject is in the deferred list. */ - (BOOL) objectIsDeferred: (id)anObject { return [deferredWindows containsObject: anObject]; } // windows / services menus... /** * Set the windows menu. */ - (void) setWindowsMenu: (NSMenu *)anObject { if(anObject != nil) { [nameTable setObject: anObject forKey: @"NSWindowsMenu"]; } else { [nameTable removeObjectForKey: @"NSWindowsMenu"]; } } /** * return the windows menu. */ - (NSMenu *) windowsMenu { return [nameTable objectForKey: @"NSWindowsMenu"]; } /** * Set the object that will be the services menu in the app. */ - (void) setServicesMenu: (NSMenu *)anObject { if(anObject != nil) { [nameTable setObject: anObject forKey: @"NSServicesMenu"]; } else { [nameTable removeObjectForKey: @"NSServicesMenu"]; } } /** * Return the object that will be the services menu. */ - (NSMenu *) servicesMenu { return [nameTable objectForKey: @"NSServicesMenu"]; } /** * Set the object that will be the font menu in the app. */ - (void) setFontMenu: (NSMenu *)anObject { if(anObject != nil) { [nameTable setObject: anObject forKey: @"NSFontMenu"]; } else { [nameTable removeObjectForKey: @"NSFontMenu"]; } } /** * Return the object that will be the services menu. */ - (NSMenu *) fontMenu { return [nameTable objectForKey: @"NSFontMenu"]; } /** * Set the menu that will be the recent documents menu in the app. */ - (void) setRecentDocumentsMenu: (NSMenu *)anObject { if(anObject != nil) { [nameTable setObject: anObject forKey: @"NSRecentDocumentsMenu"]; } else { [nameTable removeObjectForKey: @"NSRecentDocumentsMenu"]; } } /** * Return the object that will be the receent documents menu. */ - (NSMenu *) recentDocumentsMenu { return [nameTable objectForKey: @"NSRecentDocumentsMenu"]; } /** * Marks this document as the currently active document. The active document is * the one being edited by the user. */ - (void) setDocumentActive: (BOOL)flag { if (flag != isActive && isDocumentOpen) { NSEnumerator *enumerator; id obj; // stop all connection activities. [(id)NSApp stopConnecting]; enumerator = [nameTable objectEnumerator]; if (flag) { GormDocument *document = (GormDocument*)[(id)NSApp activeDocument]; // set the current document active and unset the old one. [document setDocumentActive: NO]; isActive = YES; // display everything. while ((obj = [enumerator nextObject]) != nil) { NSString *name = [document nameForObject: obj]; if ([obj isKindOfClass: [NSWindow class]]) { [obj orderFront: self]; } else if ([obj isKindOfClass: [NSMenu class]] && [name isEqual: @"NSMenu"]) { [obj display]; } } // // Reset the selection to the current selection held by the current // selection owner of this document when the document becomes active. // This allows the app to switch to the correct inspector when the new // document is selected. // [self setSelectionFromEditor: lastEditor]; } else { isActive = NO; while ((obj = [enumerator nextObject]) != nil) { if ([obj isKindOfClass: [NSWindow class]]) { [obj orderOut: self]; } else if ([obj isKindOfClass: [NSMenu class]] && [[self nameForObject: obj] isEqual: @"NSMenu"]) { [obj close]; } } [self setSelectionFromEditor: nil]; } } } /** * Sets the current selection from the given editor. This method * causes the inspector to refresh with the proper object. */ - (void) setSelectionFromEditor: (id)anEditor { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSDebugLog(@"setSelectionFromEditor %@", anEditor); ASSIGN(lastEditor, anEditor); [(id)NSApp stopConnecting]; // cease any connection if ([(NSObject *)anEditor respondsToSelector: @selector(window)]) { [[anEditor window] makeKeyWindow]; [[anEditor window] makeFirstResponder: (id)anEditor]; } [nc postNotificationName: IBSelectionChangedNotification object: anEditor]; } /** * Mark the document as modified. */ - (void) touch { [self updateChangeCount: NSChangeDone]; } /** * Returns the window and the rect r for object. */ - (NSWindow*) windowAndRect: (NSRect*)r forObject: (id)object { /* * Get the window and rectangle for which link markup should be drawn. */ if ([objectsView containsObject: object]) { /* * objects that exist in the document objects view must have their link * markup drawn there, so we ask the view for the required rectangle. */ *r = [objectsView rectForObject: object]; return [objectsView window]; } else if ([object isKindOfClass: [NSMenuItem class]]) { NSArray *links; NSMenu *menu; id editor; /* * Menu items must have their markup drawn in the window of the * editor of the parent menu. */ links = [self connectorsForSource: object ofClass: [NSNibConnector class]]; menu = [[links lastObject] destination]; editor = [self editorForObject: menu create: NO]; *r = [editor rectForObject: object]; return [editor window]; } else if ([object isKindOfClass: [NSView class]]) { /* * Normal view objects just get link markup drawn on them. */ id temp = object; id editor = [self editorForObject: temp create: NO]; while ((temp != nil) && (editor == nil)) { temp = [temp superview]; editor = [self editorForObject: temp create: NO]; } if (temp == nil) { *r = [object convertRect: [object bounds] toView: nil]; } else if ([editor respondsToSelector: @selector(windowAndRect:forObject:)]) { return [editor windowAndRect: r forObject: object]; } } else if ([object isKindOfClass: [NSTableColumn class]]) { NSTableView *tv = (NSTableView *)[[(NSTableColumn*)object dataCell] controlView]; NSTableHeaderView *th = [tv headerView]; NSUInteger index; if (th == nil || tv == nil) { NSDebugLog(@"fail 1 %@ %@ %@", [(NSTableColumn*)object headerCell], th, tv); *r = NSZeroRect; return nil; } index = [[tv tableColumns] indexOfObject: object]; if (index == NSNotFound) { NSDebugLog(@"fail 2"); *r = NSZeroRect; return nil; } *r = [th convertRect: [th headerRectOfColumn: index] toView: nil]; return [th window]; } else if([object isKindOfClass: [NSCell class]]) { NSCell *cell = object; NSView *control = [cell controlView]; if ([control isKindOfClass: [NSMatrix class]]) { NSInteger row, col; NSMatrix *matrix = (NSMatrix *)control; if ([matrix getRow: &row column: &col ofCell: cell]) { NSRect cellFrame = [matrix cellFrameAtRow: row column: col]; *r = [control convertRect: cellFrame toView: nil]; return [control window]; } } } // if we get here, then it wasn't any of the above. *r = NSZeroRect; return nil; } /** * The document window. */ - (NSWindow*) window { NSWindowController *winController = [[self windowControllers] objectAtIndex: 0]; return [winController window]; } /** * Removes all connections given action or outlet with the specified label * (paramter name) class name (parameter className). */ - (BOOL) removeConnectionsWithLabel: (NSString *)name forClassNamed: (NSString *)className isAction: (BOOL)action { NSEnumerator *en = [connections objectEnumerator]; NSMutableArray *removedConnections = [NSMutableArray array]; id c = nil; BOOL removed = YES; BOOL prompted = NO; // find connectors to be removed. while ((c = [en nextObject]) != nil) { id proxy = nil; NSString *proxyClass = nil; NSString *label = [c label]; if(label == nil) continue; if (action) { if (![label hasSuffix: @":"]) continue; if (![classManager isAction: label ofClass: className]) continue; proxy = [c destination]; } else { if ([label hasSuffix: @":"]) continue; if (![classManager isOutlet: label ofClass: className]) continue; proxy = [c source]; } // get the class for the current connectors object proxyClass = [proxy className]; if ([label isEqualToString: name] && ([proxyClass isEqualToString: className] || [classManager isSuperclass: className linkedToClass: proxyClass])) { NSString *title; NSString *msg; NSInteger retval; if(prompted == NO) { title = [NSString stringWithFormat: @"Modifying %@",(action==YES?@"Action":@"Outlet")]; msg = [NSString stringWithFormat: _(@"This will break all connections to '%@'. Continue?"), name]; retval = NSRunAlertPanel(title, msg,_(@"OK"),_(@"Cancel"), nil, nil); prompted = YES; } else { removed = NO; break; } if (retval == NSAlertDefaultReturn) { removed = YES; [removedConnections addObject: c]; } else { removed = NO; break; } } } // actually remove the connections. if(removed) { en = [removedConnections objectEnumerator]; while((c = [en nextObject]) != nil) { [self removeConnector: c]; } } // done... NSDebugLog(@"Removed references to %@ on %@", name, className); return removed; } /** * Remove all connections to any and all instances of className. */ - (BOOL) removeConnectionsForClassNamed: (NSString *)className { NSEnumerator *en = nil; id c = nil; BOOL removed = YES; NSInteger retval = -1; NSString *title = [NSString stringWithFormat: @"%@",_(@"Modifying Class")]; NSString *msg; NSString *msgFormat = _(@"This will break all connections to " @"actions/outlets to instances of class '%@' and it's subclasses. Continue?"); msg = [NSString stringWithFormat: msgFormat, className]; // ask the user if he/she wants to continue... retval = NSRunAlertPanel(title, msg,_(@"OK"),_(@"Cancel"), nil, nil); if (retval == NSAlertDefaultReturn) { removed = YES; } else { removed = NO; } // remove all. if(removed) { NSMutableArray *removedConnections = [NSMutableArray array]; // first find all of the connections... en = [connections objectEnumerator]; while ((c = [en nextObject]) != nil) { NSString *srcClass = [[c source] className]; NSString *dstClass = [[c destination] className]; if ([srcClass isEqualToString: className] || [classManager isSuperclass: className linkedToClass: srcClass] || [dstClass isEqualToString: className] || [classManager isSuperclass: className linkedToClass: dstClass]) { [removedConnections addObject: c]; } } // then remove them. en = [removedConnections objectEnumerator]; while((c = [en nextObject]) != nil) { [self removeConnector: c]; } } // done... NSDebugLog(@"Removed references to actions/outlets for objects of %@", className); return removed; } /** * Refresh all connections to any and all instances of className. Checks if * the class has the action/outlet present and deletes it, if it doesn't. */ - (void) refreshConnectionsForClassNamed: (NSString *)className { NSEnumerator *en = [connections objectEnumerator]; NSMutableArray *removedConnections = [NSMutableArray array]; id c = nil; // first find all of the connections... while ((c = [en nextObject]) != nil) { NSString *srcClass = [[c source] className]; NSString *dstClass = [[c destination] className]; NSString *label = [c label]; if ([srcClass isEqualToString: className] || [classManager isSuperclass: className linkedToClass: srcClass]) { if([c isKindOfClass: [NSNibOutletConnector class]]) { if([classManager outletExists: label onClassNamed: className] == NO) { [removedConnections addObject: c]; } } } else if([dstClass isEqualToString: className] || [classManager isSuperclass: className linkedToClass: dstClass]) { if([c isKindOfClass: [NSNibControlConnector class]]) { if([classManager actionExists: label onClassNamed: className] == NO) { [removedConnections addObject: c]; } } } } // then remove them. en = [removedConnections objectEnumerator]; while((c = [en nextObject]) != nil) { [self removeConnector: c]; } } /** * Rename connections connected to an instance of on class to another. */ - (BOOL) renameConnectionsForClassNamed: (NSString *)className toName: (NSString *)newName { NSEnumerator *en = [connections objectEnumerator]; id c = nil; BOOL renamed = YES; NSInteger retval = -1; NSString *title = [NSString stringWithFormat: @"%@", _(@"Modifying Class")]; NSString *msgFormat = _(@"Change class name '%@' to '%@'. Continue?"); NSString *msg = [NSString stringWithFormat: msgFormat, className, newName]; // ask the user if he/she wants to continue... retval = NSRunAlertPanel(title, msg,_(@"OK"),_(@"Cancel"), nil, nil); if (retval == NSAlertDefaultReturn) { renamed = YES; } else { renamed = NO; } // remove all. if(renamed) { while ((c = [en nextObject]) != nil) { id source = [c source]; id destination = [c destination]; // check both... if ([[[c source] className] isEqualToString: className]) { [source setClassName: newName]; NSDebugLog(@"Found matching source"); } else if ([[[c destination] className] isEqualToString: className]) { [destination setClassName: newName]; NSDebugLog(@"Found matching destination"); } } } // done... NSDebugLog(@"Changed references to actions/outlets for objects of %@", className); return renamed; } /** * Print out all editors for debugging purposes. */ - (void) printAllEditors { NSMutableSet *set = [NSMutableSet setWithCapacity: 16]; NSEnumerator *enumerator = [connections objectEnumerator]; id c; while ((c = [enumerator nextObject]) != nil) { if ([GormObjectToEditor class] == [c class]) { [set addObject: [c destination]]; } } NSLog(@"all editors %@", set); } /** * Open a sound and load it into the document. */ - (id) openSound: (id)sender { NSArray *fileTypes = [NSSound soundUnfilteredFileTypes]; NSArray *filenames; NSString *filename; NSOpenPanel *oPanel = [NSOpenPanel openPanel]; int result; int i; [oPanel setAllowsMultipleSelection: YES]; [oPanel setCanChooseFiles: YES]; [oPanel setCanChooseDirectories: NO]; result = [oPanel runModalForDirectory: nil file: nil types: fileTypes]; if (result == NSOKButton) { filenames = [oPanel filenames]; for (i=0; i<[filenames count]; i++) { filename = [filenames objectAtIndex:i]; NSDebugLog(@"Loading sound file: %@",filenames); [soundsView addObject: [GormSound soundForPath: filename]]; } return self; } return nil; } /** * Open an image and copy it into the document. */ - (id) openImage: (id)sender { NSArray *fileTypes = [NSImage imageFileTypes]; NSArray *filenames; NSOpenPanel *oPanel = [NSOpenPanel openPanel]; NSString *filename; int result; int i; [oPanel setAllowsMultipleSelection: YES]; [oPanel setCanChooseFiles: YES]; [oPanel setCanChooseDirectories: NO]; result = [oPanel runModalForDirectory: nil file: nil types: fileTypes]; if (result == NSOKButton) { filenames = [oPanel filenames]; for (i=0; i<[filenames count]; i++) { filename = [filenames objectAtIndex:i]; NSDebugLog(@"Loading image file: %@",filename); [imagesView addObject: [GormImage imageForPath: filename]]; } return self; } return nil; } /** * Return a text description of the document. */ - (NSString *) description { return [NSString stringWithFormat: @"<%s: %lx> = <>", GSClassNameFromObject(self), (unsigned long)self, nameTable, connections]; } /** * Returns YES, if obj is a top level object. */ - (BOOL) isTopLevelObject: (id)obj { return [topLevelObjects containsObject: obj]; } /** * Return first responder stand in. */ - (id) firstResponder { return firstResponder; } /** * Return font manager stand in. */ - (id) fontManager { return fontManager; } /** * Create resource manager instances for all registered classes. */ - (void) createResourceManagers { NSArray *resourceClasses = [IBResourceManager registeredResourceManagerClassesForFramework: nil]; NSEnumerator *en = [resourceClasses objectEnumerator]; Class cls = nil; if(resourceManagers != nil) { // refresh... DESTROY(resourceManagers); } resourceManagers = [[NSMutableArray alloc] init]; while((cls = [en nextObject]) != nil) { id mgr = AUTORELEASE([(IBResourceManager *)[cls alloc] initWithDocument: self]); [resourceManagers addObject: mgr]; } } /** * The list of all resource managers. */ - (NSArray *) resourceManagers { return resourceManagers; } /** * Get the resource manager which handles the content on pboard. */ - (IBResourceManager *) resourceManagerForPasteboard: (NSPasteboard *)pboard { NSEnumerator *en = [resourceManagers objectEnumerator]; IBResourceManager *mgr = nil, *result = nil; while((mgr = [en nextObject]) != nil) { if([mgr acceptsResourcesFromPasteboard: pboard]) { result = mgr; break; } } return result; } /** * Get all pasteboard types managed by the resource manager. */ - (NSArray *) allManagedPboardTypes { NSMutableArray *allTypes = [[NSMutableArray alloc] initWithObjects: NSFilenamesPboardType, GormLinkPboardType, nil]; NSArray *mgrs = [self resourceManagers]; NSEnumerator *en = [mgrs objectEnumerator]; IBResourceManager *mgr = nil; AUTORELEASE(allTypes); while((mgr = [en nextObject]) != nil) { NSArray *pbTypes = [mgr resourcePasteboardTypes]; [allTypes addObjectsFromArray: pbTypes]; } return allTypes; } /** * This method collects all of the objects in the document. */ - (NSMutableArray *) _collectAllObjects { NSMutableArray *allObjects = [NSMutableArray arrayWithArray: [topLevelObjects allObjects]]; NSEnumerator *en = [topLevelObjects objectEnumerator]; NSMutableArray *removeObjects = [NSMutableArray array]; id obj = nil; // collect all subviews/menus/etc. while((obj = [en nextObject]) != nil) { if([obj isKindOfClass: [NSWindow class]]) { NSMutableArray *views = [NSMutableArray array]; NSEnumerator *ven = [views objectEnumerator]; id vobj = nil; subviewsForView([(NSWindow *)obj contentView], views); [allObjects addObjectsFromArray: views]; while((vobj = [ven nextObject])) { if([vobj isKindOfClass: [GormCustomView class]]) { [removeObjects addObject: vobj]; } else if([vobj isKindOfClass: [NSMatrix class]]) { [allObjects addObjectsFromArray: [vobj cells]]; } else if([vobj isKindOfClass: [NSPopUpButton class]]) { [allObjects addObjectsFromArray: [vobj itemArray]]; } else if([vobj isKindOfClass: [NSTabView class]]) { [allObjects addObjectsFromArray: [vobj tabViewItems]]; } } } else if([obj isKindOfClass: [NSMenu class]]) { [allObjects addObjectsFromArray: findAll(obj)]; } } // take out objects which shouldn't be considered. [allObjects removeObjectsInArray: removeObjects]; return allObjects; } /** * This method is used to translate all of the strings in the file from one language * into another. This is helpful when attempting to translate an application for use * in different locales. */ - (void) translate: (id)sender { NSArray *fileTypes = [NSArray arrayWithObjects: @"strings", nil]; NSOpenPanel *oPanel = [NSOpenPanel openPanel]; int result; [oPanel setAllowsMultipleSelection: NO]; [oPanel setCanChooseFiles: YES]; [oPanel setCanChooseDirectories: NO]; result = [oPanel runModalForDirectory: nil file: nil types: fileTypes]; if (result == NSOKButton) { NSMutableArray *allObjects = [self _collectAllObjects]; NSString *filename = [oPanel filename]; NSDictionary *dictionary = nil; NSEnumerator *en = nil; id obj = nil; NS_DURING { dictionary = [[NSString stringWithContentsOfFile: filename] propertyListFromStringsFileFormat]; } NS_HANDLER { NSString *message = [localException reason]; NSRunAlertPanel(_(@"Problem loading strings"), message, nil, nil, nil); } NS_ENDHANDLER // change to translated values. en = [allObjects objectEnumerator]; while((obj = [en nextObject]) != nil) { NSString *translation = nil; if([obj respondsToSelector: @selector(setTitle:)] && [obj respondsToSelector: @selector(title)]) { translation = [dictionary objectForKey: [obj title]]; if(translation != nil) { [obj setTitle: translation]; } } else if([obj respondsToSelector: @selector(setStringValue:)] && [obj respondsToSelector: @selector(stringValue)]) { translation = [dictionary objectForKey: [obj stringValue]]; if(translation != nil) { [obj setStringValue: translation]; } } else if([obj respondsToSelector: @selector(setLabel:)] && [obj respondsToSelector: @selector(label)]) { translation = [dictionary objectForKey: [obj label]]; if(translation != nil) { [obj setLabel: translation]; } } if(translation != nil) { if([obj isKindOfClass: [NSView class]]) { [obj setNeedsDisplay: YES]; } [self touch]; } // redisplay/flush, if the object is a window. if([obj isKindOfClass: [NSWindow class]]) { NSWindow *w = (NSWindow *)obj; [w setViewsNeedDisplay: YES]; [w disableFlushWindow]; [[w contentView] setNeedsDisplay: YES]; [[w contentView] displayIfNeeded]; [w enableFlushWindow]; [w flushWindowIfNeeded]; } } } } /** * This method is used to export all strings in a document to a file for Language * translation. This allows the user to see all of the strings which can be translated * and allows the user to provide a translateion for each of them. */ - (void) exportStrings: (id)sender { NSSavePanel *sp = [NSSavePanel savePanel]; int result; [sp setRequiredFileType: @"strings"]; [sp setTitle: _(@"Save strings file as...")]; result = [sp runModalForDirectory: NSHomeDirectory() file: nil]; if (result == NSOKButton) { NSMutableArray *allObjects = [self _collectAllObjects]; NSString *filename = [sp filename]; NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; NSEnumerator *en = [allObjects objectEnumerator]; id obj = nil; BOOL touched = NO; // change to translated values. while((obj = [en nextObject]) != nil) { NSString *string = nil; if([obj respondsToSelector: @selector(setTitle:)] && [obj respondsToSelector: @selector(title)]) { string = [obj title]; } else if([obj respondsToSelector: @selector(setStringValue:)] && [obj respondsToSelector: @selector(stringValue)]) { string = [obj stringValue]; } else if([obj respondsToSelector: @selector(setLabel:)] && [obj respondsToSelector: @selector(label)]) { string = [obj label]; } if(string != nil) { [dictionary setObject: string forKey: string]; touched = YES; } } if(touched) { NSString *stringToWrite = @"/* TRANSLATORS: Make sure to quote all translated strings if\n" @" they contain spaces or non-ASCII characters. */\n\n"; stringToWrite = [stringToWrite stringByAppendingString: [dictionary descriptionInStringsFileFormat]]; [stringToWrite writeToFile: filename atomically: YES]; } } } /** * Arrange views in front or in back of one another. */ - (void) arrangeSelectedObjects: (id)sender { NSArray *selection = [[(id)NSApp selectionOwner] selection]; NSInteger tag = [sender tag]; NSEnumerator *en = [selection objectEnumerator]; id v = nil; while((v = [en nextObject]) != nil) { if([v isKindOfClass: [NSView class]]) { id editor = [self editorForObject: v create: NO]; if([editor respondsToSelector: @selector(superview)]) { id superview = [editor superview]; if(tag == 0) // bring to front... { [superview moveViewToFront: editor]; } else if(tag == 1) // send to back { [superview moveViewToBack: editor]; } [superview setNeedsDisplay: YES]; } } } } /** * Align objects to center, left, right, top, bottom. */ - (void) alignSelectedObjects: (id)sender { NSArray *selection = [[(id)NSApp selectionOwner] selection]; NSInteger tag = [sender tag]; NSEnumerator *en = [selection objectEnumerator]; id v = nil; id prev = nil; // Mark the document modified. [self touch]; // Iterate over all in the selection and align them... while((v = [en nextObject]) != nil) { if([v isKindOfClass: [NSView class]]) { id editor = [self editorForObject: v create: NO]; if(prev != nil) { NSRect r = [prev frame]; NSRect e = [editor frame]; if(tag == 0) // center vertically { float center = (r.origin.x + (r.size.width / 2)); e.origin.x = (center - (e.size.width / 2)); } else if(tag == 1) // center horizontally { float center = (r.origin.y + (r.size.height / 2)); e.origin.y = (center - (e.size.height / 2)); } else if(tag == 2) // align left { e.origin.x = r.origin.x; } else if(tag == 3) // align right { float right = (r.origin.x + r.size.width); e.origin.x = (right - e.size.width); } else if(tag == 4) // align top { float top = (r.origin.y + r.size.height); e.origin.y = (top - e.size.height); } else if(tag == 5) // align bottom { e.origin.y = r.origin.y; } [editor setFrame: e]; [[editor superview] setNeedsDisplay: YES]; } prev = editor; } } } /** * The window nib for the document class... */ - (NSString *) windowNibName { return @"GormDocument"; } /** * Call the builder and create the file wrapper to save the appropriate format. */ - (NSFileWrapper *)fileWrapperRepresentationOfType: (NSString *)type { id builder = [[GormWrapperBuilderFactory sharedWrapperBuilderFactory] wrapperBuilderForType: type]; NSFileWrapper *result = nil; /* * Warn the user, if we are about to upgrade the package. */ if(isOlderArchive && [filePrefsManager isLatest]) { NSInteger retval = NSRunAlertPanel(_(@"Compatibility Warning"), _(@"Saving will update this gorm to the latest version \n" @"which may not be compatible with some previous versions \n" @"of GNUstep."), _(@"Save"), _(@"Don't Save"), nil, nil); if (retval != NSAlertDefaultReturn) { return nil; } else { // we're saving anyway... set to new value. isOlderArchive = NO; } } /* * Notify the world that we are saving... */ [[NSNotificationCenter defaultCenter] postNotificationName: IBWillSaveDocumentNotification object: self]; // build the archive... [self deactivateEditors]; result = [builder buildFileWrapperWithDocument: self]; [self reactivateEditors]; if(result) { /* * This is the last thing we should do... */ [[NSNotificationCenter defaultCenter] postNotificationName: IBDidSaveDocumentNotification object: self]; } return result; } - (BOOL)loadFileWrapperRepresentation: (NSFileWrapper *)wrapper ofType: (NSString *)type { id loader = [[GormWrapperLoaderFactory sharedWrapperLoaderFactory] wrapperLoaderForType: type]; BOOL result = [loader loadFileWrapper: wrapper withDocument: self]; if(result) { // this is the last thing we should do... [[NSNotificationCenter defaultCenter] postNotificationName: IBDidOpenDocumentNotification object: self]; // make sure that the newly loaded document does not // mark itself as modified. [self updateChangeCount: NSChangeCleared]; } return result; } - (BOOL) keepBackupFile { return ([[NSUserDefaults standardUserDefaults] integerForKey: @"BackupFile"] == 1); } - (NSString *)displayName { if ([self fileName] != nil) { return [[self fileName] lastPathComponent]; } else { return [super displayName]; } } /** * All of the objects and corresponding names. */ - (NSMutableDictionary *) nameTable { return nameTable; } /** * All of the connections... */ - (NSMutableArray *) connections { return connections; } /** * All top level objects. */ - (NSMutableSet *) topLevelObjects { return topLevelObjects; } /** * All windows marked, visible at launch. */ - (NSSet *) visibleWindows { return visibleWindows; } /** * All windows marked, deferred. */ - (NSSet *) deferredWindows { return deferredWindows; } - (NSFileWrapper *) scmWrapper { return scmWrapper; } - (void) setSCMWrapper: (NSFileWrapper *)wrapper { ASSIGN(scmWrapper, wrapper); } /** * Images */ - (NSArray *) images { return [imagesView objects]; } /** * Sounds */ - (NSArray *) sounds { return [soundsView objects]; } /** * Sounds */ - (void) setSounds: (NSArray *)snds { ASSIGN(sounds,[snds mutableCopy]); } /** * Images */ - (void) setImages: (NSArray *)imgs { ASSIGN(images,[imgs mutableCopy]); } /** * File's owner... */ - (GormFilesOwner *) filesOwner { return filesOwner; } /** * Gorm file prefs manager. */ - (GormFilePrefsManager *) filePrefsManager { return filePrefsManager; } - (void) setDocumentOpen: (BOOL) flag { isDocumentOpen = flag; } - (BOOL) isDocumentOpen { return isDocumentOpen; } - (void) setInfoData: (NSData *)data { ASSIGN(infoData, data); } - (NSData *) infoData { return infoData; } - (void) setOlderArchive: (BOOL)flag { isOlderArchive = flag; } - (BOOL) isOlderArchive { return isOlderArchive; } // // Encoding is here for testing the interface. This allows // Gorm to encode the interface and then run it like a regular // app. It needs to act like a container in order to do this. // - (void) encodeWithCoder: (NSCoder *)coder { [coder encodeObject: topLevelObjects]; [coder encodeObject: nameTable]; [coder encodeObject: visibleWindows]; [coder encodeObject: connections]; } - (id) initWithCoder: (NSCoder *)coder { ASSIGN(topLevelObjects, [coder decodeObject]); ASSIGN(nameTable, [coder decodeObject]); ASSIGN(visibleWindows, [coder decodeObject]); ASSIGN(connections, [coder decodeObject]); return self; } - (void) awakeWithContext: (NSDictionary *)context { NSEnumerator *en = [connections objectEnumerator]; id o = nil; while((o = [en nextObject]) != nil) { id val = nil; if ([o destination] == firstResponder) { val = nil; } else { val = [nameTable objectForKey: [o destination]]; } if ([[o label] isEqualToString: @"terminate:"]) { [o setLabel: @"deferredEndTesting:"]; } [o setDestination: val]; [o establishConnection]; } en = [visibleWindows objectEnumerator]; o = nil; while((o = [en nextObject]) != nil) { [o orderFront: self]; } } /* End of testInterface support code */ /** * Deactivate the editors for archiving.. */ - (void) deactivateEditors { NSEnumerator *enumerator; id con; /* * Map all connector sources and destinations to their name strings. * Deactivate editors so they won't be archived. */ enumerator = [connections objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { if ([con isKindOfClass: [GormObjectToEditor class]]) { [savedEditors addObject: con]; [[con destination] deactivate]; } else if ([con isKindOfClass: [GormEditorToParent class]]) { [savedEditors addObject: con]; } } [connections removeObjectsInArray: savedEditors]; } /** * Reactivate all of the editors... */ - (void) reactivateEditors { NSEnumerator *enumerator; id con; /* * Restore editor links and reactivate the editors. */ [connections addObjectsFromArray: savedEditors]; enumerator = [savedEditors objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { if ([[con source] isKindOfClass: [NSView class]] == NO) [(id)[con destination] activate]; } [savedEditors removeAllObjects]; } - (void) setFileType: (NSString *)type { [super setFileType: type]; [filePrefsManager setFileTypeName: type]; } - (BOOL) revertToContentsOfURL: (NSURL *)url ofType: (NSString *)type error: (NSError **)error { GormDocumentController *dc = [NSDocumentController sharedDocumentController]; // [dc performSelector:@selector(openDocumentWithContentsOfURL:) withObject:url afterDelay:2]; [self close]; [dc openDocumentWithContentsOfURL:url]; return YES; } //// PRIVATE METHODS... - (NSString *) classForObject: (id)obj { return [classManager classNameForObject: obj]; } - (NSArray *) actionsOfClass: (NSString *)className { return [classManager allActionsForClassNamed: className]; } - (NSArray *) outletsOfClass: (NSString *)className { return [classManager allOutletsForClassNamed: className]; } @end @implementation GormDocument (MenuValidation) - (BOOL) isEditingObjects { return ([selectionBox contentView] == scrollView); } - (BOOL) isEditingImages { return ([selectionBox contentView] == imagesScrollView); } - (BOOL) isEditingSounds { return ([selectionBox contentView] == soundsScrollView); } - (BOOL) isEditingClasses { return ([selectionBox contentView] == classesView); } @end @implementation GormDocument (NSToolbarDelegate) - (NSToolbarItem*)toolbar: (NSToolbar*)toolbar itemForItemIdentifier: (NSString*)itemIdentifier willBeInsertedIntoToolbar: (BOOL)flag { NSToolbarItem *toolbarItem = AUTORELEASE([[NSToolbarItem alloc] initWithItemIdentifier: itemIdentifier]); if([itemIdentifier isEqual: @"ObjectsItem"]) { [toolbarItem setLabel: @"Objects"]; [toolbarItem setImage: objectsImage]; [toolbarItem setTarget: self]; [toolbarItem setAction: @selector(changeView:)]; [toolbarItem setTag: 0]; } else if([itemIdentifier isEqual: @"ImagesItem"]) { [toolbarItem setLabel: @"Images"]; [toolbarItem setImage: imagesImage]; [toolbarItem setTarget: self]; [toolbarItem setAction: @selector(changeView:)]; [toolbarItem setTag: 1]; } else if([itemIdentifier isEqual: @"SoundsItem"]) { [toolbarItem setLabel: @"Sounds"]; [toolbarItem setImage: soundsImage]; [toolbarItem setTarget: self]; [toolbarItem setAction: @selector(changeView:)]; [toolbarItem setTag: 2]; } else if([itemIdentifier isEqual: @"ClassesItem"]) { [toolbarItem setLabel: @"Classes"]; [toolbarItem setImage: classesImage]; [toolbarItem setTarget: self]; [toolbarItem setAction: @selector(changeView:)]; [toolbarItem setTag: 3]; } else if([itemIdentifier isEqual: @"FileItem"]) { [toolbarItem setLabel: @"File"]; [toolbarItem setImage: fileImage]; [toolbarItem setTarget: self]; [toolbarItem setAction: @selector(changeView:)]; [toolbarItem setTag: 4]; } return toolbarItem; } - (NSArray*) toolbarAllowedItemIdentifiers: (NSToolbar*)toolbar { return [NSArray arrayWithObjects: @"ObjectsItem", @"ImagesItem", @"SoundsItem", @"ClassesItem", @"FileItem", nil]; } - (NSArray*) toolbarDefaultItemIdentifiers: (NSToolbar*)toolbar { return [NSArray arrayWithObjects: @"ObjectsItem", @"ImagesItem", @"SoundsItem", @"ClassesItem", @"FileItem", nil]; } - (NSArray*) toolbarSelectableItemIdentifiers: (NSToolbar*)toolbar { return [NSArray arrayWithObjects: @"ObjectsItem", @"ImagesItem", @"SoundsItem", @"ClassesItem", @"FileItem", nil]; } @end gorm-1.3.1/GormCore/GormClassPanelController.h0000644000175000017500000000247414327003123020276 0ustar heronheron/* GormClassPanelController.h * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* All Rights reserved */ #include @class NSMutableArray; @interface GormClassPanelController : NSObject { id okButton; id classBrowser; id panel; id classNameForm; NSString *className; NSMutableArray *allClasses; } - (id) initWithTitle: (NSString *)title classList: (NSArray *)classes; - (void) okButton: (id)sender; - (void) browserAction: (id)sender; - (NSString *)runModal; @end gorm-1.3.1/GormCore/GormViewEditor.h0000644000175000017500000000505314327003122016261 0ustar heronheron/* GormViewEditor.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #ifndef INCLUDED_GormViewEditor_h #define INCLUDED_GormViewEditor_h @class GormViewWithSubviewsEditor; @class GormPlacementInfo; @class GormViewWindow; @interface GormViewEditor : NSView { id document; id _editedObject; BOOL activated; BOOL closed; GormViewWithSubviewsEditor *parent; GormViewWindow *viewWindow; } - (BOOL) activate; - (id) initWithObject: (id)anObject inDocument: (id)aDocument; - (void) close; - (void) deactivate; - (id) document; - (id) editedObject; - (void) detachSubviews; - (void) postDraw: (NSRect) rect; - (id) parent; - (NSArray *) selection; - (void) makeSelectionVisible: (BOOL) value; - (BOOL) isOpened; - (BOOL) canBeOpened; - (void) setOpened: (BOOL) value; - (void) frameDidChange: (id) sender; @end @interface GormViewEditor (EditingAdditions) - (NSEvent *) editTextField: view withEvent: (NSEvent *)theEvent; @end @interface GormViewEditor (IntelligentPlacement) - (GormPlacementInfo *) initializeResizingInFrame: (NSView *)view withKnob: (IBKnobPosition) knob; - (void) updateResizingWithFrame: (NSRect) frame andEvent: (NSEvent *)theEvent andPlacementInfo: (GormPlacementInfo*) gpi; - (void) validateFrame: (NSRect) frame withEvent: (NSEvent *) theEvent andPlacementInfo: (GormPlacementInfo*)gpi; @end @interface GormViewEditor (WindowAndRect) /* * Pull the window object and it's rect. */ - (NSWindow *)windowAndRect: (NSRect *)prect forObject: (id) object; @end #endif gorm-1.3.1/GormCore/GormWrapperLoader.m0000644000175000017500000001133114327003122016750 0ustar heronheron/* GormWrapperLoader * * These classes handle loading different formats into the * document's data structures. * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include static NSMutableDictionary *_wrapperLoaderMap = nil; static GormWrapperLoaderFactory *_sharedWrapperLoaderFactory = nil; @implementation GormWrapperLoader + (NSString *) fileType { [self subclassResponsibility: _cmd]; return nil; } - (void) saveSCMDirectory: (NSDictionary *) fileWrappers { [document setSCMWrapper: [fileWrappers objectForKey: @".svn"]]; if([document scmWrapper] == nil) { [document setSCMWrapper: [fileWrappers objectForKey: @"CVS"]]; } } - (BOOL) loadFileWrapper: (NSFileWrapper *)wrapper withDocument: (GormDocument *)doc { NS_DURING { NSMutableArray *images = [NSMutableArray array]; NSMutableArray *sounds = [NSMutableArray array]; NSArray *imageFileTypes = [NSImage imageFileTypes]; NSArray *soundFileTypes = [NSSound soundUnfilteredFileTypes]; document = doc; // don't retain... if ([wrapper isDirectory]) { NSDictionary *fileWrappers = nil; NSString *key = nil; NSEnumerator *enumerator = nil; key = nil; fileWrappers = [wrapper fileWrappers]; [self saveSCMDirectory: fileWrappers]; enumerator = [fileWrappers keyEnumerator]; while((key = [enumerator nextObject]) != nil) { NSFileWrapper *fw = [fileWrappers objectForKey: key]; // // Images with .info can be loaded, but we have a file // called data.info which is metadata for Gorm. Don't load it. // if ( [key isEqualToString: @"data.info"] == YES ) { continue; } if([fw isRegularFile]) { NSData *fileData = [fw regularFileContents]; if ([imageFileTypes containsObject: [key pathExtension]]) { [images addObject: [GormImage imageForData: fileData withFileName: key inWrapper: YES]]; } else if ([soundFileTypes containsObject: [key pathExtension]]) { [sounds addObject: [GormSound soundForData: fileData withFileName: key inWrapper: YES]]; } } } } else if ([wrapper isRegularFile]) // handle wrappers which are just plain files... { } else { NSLog(@"Unsupported wrapper type"); } // fill in the images and sounds arrays... [document setSounds: sounds]; [document setImages: images]; } NS_HANDLER { return NO; } NS_ENDHANDLER; return YES; } @end @implementation GormWrapperLoaderFactory + (void) initialize { NSArray *classes = GSObjCAllSubclassesOfClass([GormWrapperLoader class]); NSEnumerator *en = [classes objectEnumerator]; Class cls = nil; while((cls = [en nextObject]) != nil) { [self registerWrapperLoaderClass: cls]; } } + (void) registerWrapperLoaderClass: (Class)aClass { if(_wrapperLoaderMap == nil) { _wrapperLoaderMap = [[NSMutableDictionary alloc] initWithCapacity: 5]; } [_wrapperLoaderMap setObject: aClass forKey: (NSString *)[aClass fileType]]; } + (GormWrapperLoaderFactory *) sharedWrapperLoaderFactory { if(_sharedWrapperLoaderFactory == nil) { _sharedWrapperLoaderFactory = [[self alloc] init]; } return _sharedWrapperLoaderFactory; } - (id) init { if((self = [super init]) != nil) { if(_sharedWrapperLoaderFactory == nil) { _sharedWrapperLoaderFactory = self; } } return self; } - (id) wrapperLoaderForType: (NSString *) type { Class cls = [_wrapperLoaderMap objectForKey: type]; id obj = AUTORELEASE([[cls alloc] init]); return obj; } @end gorm-1.3.1/GormCore/GormPalettesManager.h0000644000175000017500000000424414327003122017255 0ustar heronheron/* GormPalettesManager.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Author: Richard Frith-Macdonald * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormPalettesManager_h #define INCLUDED_GormPalettesManager_h #include @class NSMutableArray, NSMutableDictionary, NSDictionary, NSArray, NSBundle; @class NSPanel, NSMatrix, NSView; @interface GormPalettesManager : NSObject { NSPanel *panel; NSMatrix *selectionView; NSView *dragView; NSMutableArray *bundles; NSMutableArray *palettes; int current; BOOL hiddenDuringTest; NSMutableDictionary *importedClasses; NSMutableArray *importedImages; NSMutableArray *importedSounds; NSMutableDictionary *substituteClasses; } // methods for loading and display the palette panels - (BOOL) loadPalette: (NSString*)path; - (id) openPalette: (id) sender; - (NSPanel*) panel; - (void) setCurrentPalette: (id)anObject; // methods for importing stuff from palettes - (void) importClasses: (NSArray *)classes withDictionary: (NSDictionary *)dict; - (NSDictionary *) importedClasses; - (void) importImages: (NSArray *)images withBundle: (NSBundle *) bundle; - (NSArray *) importedImages; - (void) importSounds: (NSArray *)sounds withBundle: (NSBundle *) bundle; - (NSArray *) importedSounds; - (NSDictionary *) substituteClasses; @end #endif gorm-1.3.1/GormCore/GormInspectorsManager.m0000644000175000017500000003045614327003122017636 0ustar heronheron/* GormInspectorsManager.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormPrivate.h" #include "GormImage.h" #include "GormSound.h" #define NUM_DEFAULT_INSPECTORS 5 @interface GormDummyInspector : IBInspector { NSButton *button; } - (NSString *)title; @end @implementation GormDummyInspector - (id) init { self = [super init]; if (self != nil) { if([NSBundle loadNibNamed: @"GormDummyInspector" owner: self]) { [button setStringValue: [self title]]; } } return self; } - (NSString *)title { return nil; } @end; /* * The GormEmptyInspector is a placeholder for an empty selection. */ @interface GormEmptyInspector : GormDummyInspector @end @implementation GormEmptyInspector - (NSString *)title { return _(@"Empty Selection"); } @end /* * The GormMultipleInspector is a placeholder for a multiple selection. */ @interface GormMultipleInspector : GormDummyInspector @end @implementation GormMultipleInspector - (NSString *)title { return _(@"Multiple Selection"); } @end /* * The GormNotApplicableInspector is a uitility for odd objects. */ @interface GormNotApplicableInspector : GormDummyInspector @end @implementation GormNotApplicableInspector - (NSString *)title { return _(@"Not Applicable"); } @end @implementation GormInspectorsManager - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; RELEASE(oldInspector); RELEASE(cache); RELEASE(panel); [super dealloc]; } - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: IBWillBeginTestingInterfaceNotification] == YES) { if ([panel isVisible] == YES) { hiddenDuringTest = YES; [panel orderOut: self]; } } else if ([name isEqual: IBWillEndTestingInterfaceNotification] == YES) { if (hiddenDuringTest == YES) { hiddenDuringTest = NO; [panel orderFront: self]; } } } - (id) init { if((self = [super init]) != nil) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; if([NSBundle loadNibNamed: @"GormInspectorPanel" owner: self]) { // initialized the cache... cache = [[NSMutableDictionary alloc] init]; // set the name under which this panel saves it's dimensions. [panel setFrameUsingName: @"Inspector"]; [panel setFrameAutosaveName: @"Inspector"]; // reset current tag indicator. current = -1; inspector = [[GormEmptyInspector alloc] init]; [cache setObject: inspector forKey: @"GormEmptyInspector"]; RELEASE(inspector); inspector = [[GormMultipleInspector alloc] init]; [cache setObject: inspector forKey: @"GormMultipleInspector"]; DESTROY(inspector); [self setCurrentInspector: 0]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillBeginTestingInterfaceNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillEndTestingInterfaceNotification object: nil]; } } return self; } - (NSPanel*) panel { return panel; } - (void) updateSelection { if ([NSApp isConnecting] == YES) { [popup selectItemAtIndex: 1]; [popup setNeedsDisplay: YES]; [panel makeKeyAndOrderFront: self]; current = 1; } else if (current >= [popup numberOfItems]) { current = 1; } [self setCurrentInspector: self]; } - (void) setClassInspector { current = 4; [self setCurrentInspector: self]; } - (void) _addDefaultModes { // remove all items... clear out current state [modes removeAllObjects]; currentMode = nil; // Attributes inspector... [self addInspectorModeWithIdentifier: @"AttributesInspector" forObject: selectedObject localizedLabel: _(@"Attributes") inspectorClassName: [selectedObject inspectorClassName] ordering: 0.0]; // Connection inspector... [self addInspectorModeWithIdentifier: @"ConnectionInspector" forObject: selectedObject localizedLabel: _(@"Connections") inspectorClassName: [selectedObject connectInspectorClassName] ordering: 1.0]; // Size inspector... [self addInspectorModeWithIdentifier: @"SizeInspector" forObject: selectedObject localizedLabel: _(@"Size") inspectorClassName: [selectedObject sizeInspectorClassName] ordering: 2.0]; // Help inspector... [self addInspectorModeWithIdentifier: @"HelpInspector" forObject: selectedObject localizedLabel: _(@"Help") inspectorClassName: [selectedObject helpInspectorClassName] ordering: 3.0]; // Custom class inspector... [self addInspectorModeWithIdentifier: @"CustomClassInspector" forObject: selectedObject localizedLabel: _(@"Custom Class") inspectorClassName: [selectedObject classInspectorClassName] ordering: 4.0]; } - (void) _refreshPopUp { NSEnumerator *en = [modes objectEnumerator]; NSInteger index = 0; id obj = nil; [[popup menu] setMenuChangedMessagesEnabled: NO]; [popup removeAllItems]; while((obj = [en nextObject]) != nil) { NSInteger tag = index + 1; NSMenuItem *item; [popup addItemWithTitle: [obj localizedLabel]]; item = (NSMenuItem *)[popup itemAtIndex: index]; [item setTarget: self]; [item setAction: @selector(setCurrentInspector:)]; [item setKeyEquivalent: [NSString stringWithFormat: @"%ld",(long)tag]]; [item setTag: tag]; index++; } [[popup menu] setMenuChangedMessagesEnabled: YES]; } - (void) setCurrentInspector: (id)anObj { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSArray *selection = [[(id)NSApp selectionOwner] selection]; unsigned count = [selection count]; id obj = [selection lastObject]; id document = [(id)NSApp activeDocument]; NSView *newView = nil; NSView *oldView = nil; NSString *newInspector = nil; NSInteger tag = 0; if (anObj != self) { tag = [anObj tag]; current = ((tag > 0)?(tag - 1):tag); } // reset current under certain conditions. if(current < 0) { current = 0; } NSDebugLog(@"current %i",current); // refresh object. selectedObject = obj; // remove any items beyond the original items on the list.. [self _addDefaultModes]; // inform the world that the object is about to be inspected. [nc postNotificationName: IBWillInspectObjectNotification object: obj]; // set key equivalent [self _refreshPopUp]; if([modes count] == NUM_DEFAULT_INSPECTORS) { if(current > (NUM_DEFAULT_INSPECTORS - 1)) { current = 0; } } if (count == 0) { newInspector = @"GormEmptyInspector"; } else if (count > 1) { newInspector = @"GormMultipleInspector"; } else { currentMode = [modes objectAtIndex: current]; newInspector = [currentMode inspectorClassName]; } /* * Set panel title for the type of object being inspected. */ if (selectedObject == nil) { [panel setTitle: _(@"Inspector")]; } else if([selectedObject isKindOfClass: [GormClassProxy class]]) { [panel setTitle: [NSString stringWithFormat: @"Class Edit Inspector:%@", [selectedObject className]]]; } else { NSString *newTitle = [selectedObject objectNameForInspectorTitle]; NSString *objName = [document nameForObject: selectedObject]; [panel setTitle: [NSString stringWithFormat:_(@"%@ (%@) Inspector"), newTitle,objName]]; } if (newInspector == nil) { newInspector = @"GormNotApplicableInspector"; } if ([oldInspector isEqual: newInspector] == NO) { id prevInspector = nil; /* * Return the inspector view to its original window and release the old * inspector. */ if(inspector != nil) { [[inspector okButton] removeFromSuperview]; [[inspector revertButton] removeFromSuperview]; } ASSIGN(oldInspector, newInspector); prevInspector = inspector; inspector = [cache objectForKey: newInspector]; if (inspector == nil) { Class c = NSClassFromString(newInspector); inspector = [[c alloc] init]; /* Try to gracefully handle an inspector creation error */ while (inspector == nil && (obj = [obj superclass]) && current == 0) { NSDebugLog(@"Error loading %@ inspector", newInspector); newInspector = [obj inspectorClassName]; inspector = [[NSClassFromString(newInspector) alloc] init]; } [cache setObject: inspector forKey: newInspector]; RELEASE(inspector); } oldView = [inspectorView contentView]; newView = [[inspector window] contentView]; if (newView != nil && newView != oldView) { id initialResponder = [[inspector window] initialFirstResponder]; NSView *outer = [panel contentView]; NSRect rect = [panel frame]; /* We should compute the delta between the heights of the old inspector view and the new one. The delta will be used to compute the size of the inspector panel. Is is needed because subsequent changes of object selection lead to the cluttered inspector's UI otherwise. */ CGFloat delta = [newView frame].size.height - [oldView frame].size.height; rect.size.height += delta; if (delta > 0) { rect.origin.y = [panel frame].origin.y - delta; [panel setFrame: rect display: YES]; } rect.size.width = [panel minSize].width; [panel setMinSize: rect.size]; rect = [outer bounds]; /* Set initialFirstResponder */ if (buttonView != nil) { [buttonView removeFromSuperview]; buttonView = nil; } rect.size.height = [newView frame].size.height; if ([inspector wantsButtons] == YES) { NSRect buttonsRect; NSRect bRect = NSMakeRect(0, 0, 60, 20); NSButton *ok; NSButton *revert; rect.size.height = [selectionView frame].origin.y; buttonsRect = NSMakeRect(0,0,rect.size.width,IVB); rect.origin.y += IVB; rect.size.height -= (IVB + 3); buttonView = [[NSView alloc] initWithFrame: buttonsRect]; [buttonView setAutoresizingMask: NSViewWidthSizable]; [outer addSubview: buttonView]; RELEASE(buttonView); ok = [inspector okButton]; if (ok != nil) { bRect = [ok frame]; bRect.origin.y = 10; bRect.origin.x = buttonsRect.size.width-10-bRect.size.width; [ok setFrame: bRect]; [buttonView addSubview: ok]; } revert = [inspector revertButton]; if (revert != nil) { bRect = [revert frame]; bRect.origin.y = 10; bRect.origin.x = 10; [revert setFrame: bRect]; [buttonView addSubview: revert]; } } else { rect.size.height = [newView frame].size.height; [buttonView removeFromSuperview]; } /* * Make the inspector view the correct size for the viewable panel, * and set the frame size for the new contents before adding them. */ // [inspectorView setFrame: rect]; // rect.origin = NSZeroPoint; // [newView setFrame: rect]; RETAIN(oldView); [inspectorView setContentView: newView]; [[prevInspector window] setContentView: oldView]; [outer setNeedsDisplay: YES]; RELEASE(oldView); /* Set the default First responder to the new View */ if ( initialResponder ) { [panel setInitialFirstResponder:initialResponder]; } } } // reset the popup.. [popup selectItemAtIndex: current]; // inspect the object. [inspector setObject: [currentMode object]]; } @end gorm-1.3.1/GormCore/GormCustomClassInspector.h0000644000175000017500000000272414327003122020331 0ustar heronheron/** GormCustomClassInspector allow user to select custom classes Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: September 2002 This file is part of GNUstep. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormCustomClassInspector_h #define INCLUDED_GormCustomClassInspector_h #include #include @class GormClassManager; @interface GormCustomClassInspector : IBInspector { id browser; id _document; GormClassManager *_classManager; NSString *_currentSelectionClassName; NSString *_parentClassName; NSUInteger _rowToSelect; } - (void) select: (id)sender; @end #endif gorm-1.3.1/GormCore/GormFunctions.m0000644000175000017500000002341514327003122016157 0ustar heronheron/* GormFunctions.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormFunctions.h" #include "GormViewEditor.h" #include "GormClassPanelController.h" // find all subitems for the given items... void findAllWithArray(id item, NSMutableArray *array) { [array addObject: item]; if([item isKindOfClass: [NSMenuItem class]]) { if([item hasSubmenu]) { NSMenu *submenu = [item submenu]; NSArray *items = [submenu itemArray]; NSEnumerator *e = [items objectEnumerator]; id i = nil; [array addObject: submenu]; while((i = [e nextObject]) != nil) { findAllWithArray(i, array); } } } } // find all sub items for the selections... NSArray* findAllSubmenus(NSArray *array) { NSEnumerator *e = [array objectEnumerator]; id i = nil; NSMutableArray *results = [[NSMutableArray alloc] init]; while((i = [e nextObject]) != nil) { findAllWithArray(i, results); } return results; } NSArray* findAll(NSMenu *menu) { NSArray *items = [menu itemArray]; return findAllSubmenus(items); } void subviewsForView(NSView *view, NSMutableArray *array) { if(view != nil) { NSArray *subviews = [view subviews]; NSEnumerator *en = [subviews objectEnumerator]; NSView *aView = nil; // if it's not me and it's not and editor, include it in the list of // things to be deleted from the document. if(![view isKindOfClass: [GormViewEditor class]]) { [array addObject: view]; } while((aView = [en nextObject]) != nil) { subviewsForView( aView, array ); } } } NSArray *allSubviews(NSView *view) { NSMutableArray *views = [NSMutableArray array]; subviewsForView( view, views ); [views removeObject: view]; return views; } // cut the text... code taken from GWorkspace, by Enrico Sersale static inline NSString *cutText(NSString *filename, id label, NSInteger lenght) { NSString *cutname = nil; NSString *reststr = nil; NSString *dots; NSFont *labfont; NSDictionary *attr; float w, cw, dotslenght; NSInteger i; cw = 0; labfont = [label font]; attr = [NSDictionary dictionaryWithObjectsAndKeys: labfont, NSFontAttributeName, nil]; dots = @"..."; dotslenght = [dots sizeWithAttributes: attr].width; w = [filename sizeWithAttributes: attr].width; if (w > lenght) { i = 0; while (cw <= (lenght - dotslenght)) { if (i == [filename cStringLength]) { break; } cutname = [filename substringToIndex: i]; reststr = [filename substringFromIndex: i]; cw = [cutname sizeWithAttributes: attr].width; i++; } if ([cutname isEqual: filename] == NO) { if ([reststr cStringLength] <= 3) { return filename; } else { cutname = [cutname stringByAppendingString: dots]; } } else { return filename; } } else { return filename; } return cutname; } NSString *cutFileLabelText(NSString *filename, id label, NSInteger length) { if (length > 0) { return cutText(filename, label, length); } return filename; } NSSize defaultCellSize() { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSInteger width = [defaults integerForKey: @"CellSizeWidth"]; NSSize size = NSMakeSize(width, 72); return size; } NSColor *colorFromDict(NSDictionary *dict) { if(dict != nil) { return [NSColor colorWithCalibratedRed: [[dict objectForKey: @"red"] floatValue] green: [[dict objectForKey: @"green"] floatValue] blue: [[dict objectForKey: @"blue"] floatValue] alpha: [[dict objectForKey: @"alpha"] floatValue]]; } return nil; } NSDictionary *colorToDict(NSColor *color) { if(color != nil) { NSMutableDictionary *dict = [NSMutableDictionary dictionary]; CGFloat red, green, blue, alpha; NSNumber *fred = nil; NSNumber *fgreen = nil; NSNumber *fblue = nil; NSNumber *falpha = nil; [color getRed: &red green: &green blue: &blue alpha: &alpha]; fred = [NSNumber numberWithFloat: red]; fgreen = [NSNumber numberWithFloat: green]; fblue = [NSNumber numberWithFloat: blue]; falpha = [NSNumber numberWithFloat: alpha]; [dict setObject: fred forKey: @"red"]; [dict setObject: fgreen forKey: @"green"]; [dict setObject: fblue forKey: @"blue"]; [dict setObject: falpha forKey: @"alpha"]; return dict; } return nil; } NSArray *systemImagesList() { NSString *lib = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSSystemDomainMask, YES) lastObject]; NSString *path = [lib stringByAppendingPathComponent: @"Images"]; NSArray *contents = [[NSFileManager defaultManager] directoryContentsAtPath: path]; NSEnumerator *en = [contents objectEnumerator]; NSMutableArray *result = [NSMutableArray array]; id obj; NSArray *fileTypes = [NSImage imageFileTypes]; while((obj = [en nextObject]) != nil) { if([fileTypes containsObject: [obj pathExtension]]) { NSString *pathString = [path stringByAppendingPathComponent: obj]; [result addObject: pathString]; } } return result; } NSArray *systemSoundsList() { NSString *lib = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSSystemDomainMask, YES) lastObject]; NSString *path = [lib stringByAppendingPathComponent: @"Sounds"]; NSArray *contents = [[NSFileManager defaultManager] directoryContentsAtPath: path]; NSEnumerator *en = [contents objectEnumerator]; NSMutableArray *result = [NSMutableArray array]; id obj; NSArray *fileTypes = [NSSound soundUnfilteredFileTypes]; while((obj = [en nextObject]) != nil) { if([fileTypes containsObject: [obj pathExtension]]) { NSString *pathString = [path stringByAppendingPathComponent: obj]; [result addObject: pathString]; } } return result; } int appVersion(long a, long b, long c) { return (((a) << 16)+((b) << 8) + (c)); } NSString *promptForClassName(NSString *title, NSArray *classes) { GormClassPanelController *cpc = AUTORELEASE([[GormClassPanelController alloc] initWithTitle: title classList: classes]); return [cpc runModal]; } NSString *identifierString(NSString *str) { NSCharacterSet *illegal = [[NSCharacterSet characterSetWithCharactersInString: @"_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"] invertedSet]; NSCharacterSet *numeric = [NSCharacterSet characterSetWithCharactersInString: @"0123456789"]; NSCharacterSet *white = [NSCharacterSet whitespaceAndNewlineCharacterSet]; NSRange r; NSMutableString *result; if (str == nil) { return nil; } result = [NSMutableString stringWithString: str]; r = [result rangeOfCharacterFromSet: illegal]; while (r.length > 0) { [result deleteCharactersInRange: r]; r = [result rangeOfCharacterFromSet: illegal]; } r = [result rangeOfCharacterFromSet: numeric]; while (r.length > 0 && r.location == 0) { [result deleteCharactersInRange: r]; r = [result rangeOfCharacterFromSet: numeric]; } r = [result rangeOfCharacterFromSet: white]; while (r.length > 0 && r.location == 0) { [result deleteCharactersInRange: r]; r = [result rangeOfCharacterFromSet: white]; } // check the result's length. if([result length] == 0) { result = [@"dummyIdentifier" mutableCopy]; } return result; } NSString *formatAction(NSString *action) { NSString *temp = identifierString(action); NSString *identifier = [temp stringByAppendingString: @":"]; return identifier; } NSString *formatOutlet(NSString *outlet) { NSString *identifier = identifierString(outlet); return identifier; } /** * This method returns an array listing the names of all the * instance methods available to obj, whether they * belong to the class of obj or one of its superclasses.
* If obj is a class, this returns the class methods.
* Returns nil if obj is nil. */ NSArray *_GSObjCMethodNamesForClass(Class class, BOOL collect) { if (class == nil) { return nil; } return GSObjCMethodNames((id)&class, collect); } /** * This method returns an array listing the names of all the * instance variables present in the instance obj, whether they * belong to the class of obj or one of its superclasses.
* Returns nil if obj is nil. */ NSArray *_GSObjCVariableNames(Class class, BOOL collect) { if (class == nil) { return nil; } return GSObjCVariableNames((id)&class, collect); } NSRect minimalContainerFrame(NSArray *views) { NSEnumerator *en = [views objectEnumerator]; id o = nil; float w = 0.0; float h = 0.0; while((o = [en nextObject]) != nil) { NSRect frame = [o frame]; float nw = frame.origin.x + frame.size.width; float nh = frame.origin.y + frame.size.height; if(nw > w) w = nw; if(nh > h) h = nh; } return NSMakeRect(0,0,w,h); } gorm-1.3.1/GormCore/GormFunctions.h0000644000175000017500000000470214327003122016150 0ustar heronheron/* GormFunctions.h * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormFunctions_h #define INCLUDED_GormFunctions_h #include #include // find all subitems for the given items... void findAllWithArray(id item, NSMutableArray *array); // find all sub items for the selections... NSArray* findAllSubmenus(NSArray *array); // find all items in the menu... NSArray* findAll(NSMenu *menu); // all subviews for the view provided void subviewsForView(NSView *view, NSMutableArray *array); // all subviews NSArray *allSubviews(NSView *view); // cut the file label to the appropriate length... NSString *cutFileLabelText(NSString *filename, id label, NSInteger length); // get the cell size for all editors NSSize defaultCellSize(); // color from string NSColor *colorFromDict(NSDictionary *colorString); // color to string NSDictionary *colorToDict(NSColor *color); // get the list of images... NSArray *systemImagesList(); // get the list of images... NSArray *systemSoundsList(); // compute the gorm version int appVersion(long a, long b, long c); // prompt for a class name. Used mainly for gmodel loading... NSString *promptForClassName(NSString *title, NSArray *classes); // format an identifier.. NSString *identifierString(NSString *str); // format an action.. NSString *formatAction(NSString *action); // format an outlet NSString *formatOutlet(NSString *outlet); // get information about class. NSArray *_GSObjCMethodNamesForClass(Class class, BOOL collect); NSArray *_GSObjCVariableNames(Class class, BOOL collect); NSRect minimalContainerFrame(NSArray *views); #endif gorm-1.3.1/GormCore/GormConnectionInspector.h0000644000175000017500000000264714327003122020174 0ustar heronheron/* GormConnectionInspector.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * Author: Gregory John Casamento * Date: 2003,2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormConnectionInspector_h #define INCLUDED_GormConnectionInspector_h #include #include @class NSBrowser, NSArray, NSMutableArray; @interface GormConnectionInspector : IBInspector { id currentConnector; NSMutableArray *connectors; NSArray *actions; NSArray *outlets; NSBrowser *newBrowser; NSBrowser *oldBrowser; } - (void) updateButtons; @end #endif gorm-1.3.1/GormCore/GormWindowEditor.m0000644000175000017500000001677314327003122016636 0ustar heronheron/* GormWindowEditor.m * * Copyright (C) 1999,2004,2005 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * Author: Gregory John Casamento * Date: 2004,2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormPrivate.h" #include "GormViewWithContentViewEditor.h" #include "GormInternalViewEditor.h" #include "GormViewKnobs.h" #include "GormWindowEditor.h" #include #define _EO ((NSWindow *)_editedObject) /* * Default implementations of methods used for updating a view by * direct action through an editor. */ @implementation NSView (IBViewAdditions) - (BOOL) acceptsColor: (NSColor*)color atPoint: (NSPoint)point { return NO; /* Can the view accept a color drag-and-drop? */ } - (BOOL) allowsAltDragging { return NO; /* Can the view be dragged into a matrix? */ } - (void) depositColor: (NSColor*)color atPoint: (NSPoint)point { /* Handle color drop in view. */ } - (NSSize) maximumSizeFromKnobPosition: (IBKnobPosition)knobPosition { NSView *s = [self superview]; NSRect r = (s != nil) ? [s bounds] : [self bounds]; return r.size; /* maximum resize permitted */ } - (NSSize) minimumSizeFromKnobPosition: (IBKnobPosition)position { return NSMakeSize(5, 5); /* Minimum resize permitted */ } - (void) placeView: (NSRect)newFrame { [self setFrame: newFrame]; /* View changed by editor. */ } @end @interface NSWindow (GormWindowEditorAdditions) - (void) unsetInitialFirstResponder; @end @implementation NSWindow (GormWindowEditorAdditions) /* * The setFirstResponder method is used in this editor to allow it to * respond to messages forwarded to the window appropriately. * Unfortunately, once it's set to something, it cannot be set to nil. * This method allows us to set it to nil, thus preventing a memory leak. */ - (void) unsetInitialFirstResponder { if(_firstResponder == _initialFirstResponder) { _firstResponder = nil; } _initialFirstResponder = nil; } @end @implementation GormWindowEditor - (id) initWithObject: (id)anObject inDocument: (id)aDocument { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; if ((self = [super initWithFrame: NSZeroRect]) == nil) return nil; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillCloseDocumentNotification object: aDocument]; _displaySelection = YES; ASSIGN(_editedObject, anObject); // we don't retain the document... document = aDocument; [self registerForDraggedTypes: [NSArray arrayWithObjects: GormLinkPboardType, IBViewPboardType, nil]]; selection = [[NSMutableArray alloc] init]; subeditors = [[NSMutableArray alloc] init]; activated = NO; closed = NO; [self activate]; return self; } - (void) dealloc { if (closed == NO) [self close]; RELEASE(selection); RELEASE(subeditors); [super dealloc]; } - (BOOL) acceptsFirstMouse: (NSEvent*)theEvent { NSDebugLog(@"acceptsFirstMouse"); return YES; } - (BOOL) acceptsFirstResponder { NSDebugLog(@"acceptsFirstResponder"); return YES; } - (void) encodeWithCoder: (NSCoder*)aCoder { [NSException raise: NSInternalInconsistencyException format: @"Argh - encoding window editor"]; } - (BOOL) acceptsTypeFromArray: (NSArray*)types { /* * A window editor can accept views pasted in to the window. */ return [types containsObject: IBViewPboardType]; } - (BOOL) activate { if (activated == NO) { NSView *contentView = [_EO contentView]; contentViewEditor = (GormInternalViewEditor *)[document editorForObject: contentView inEditor: self create: YES]; [_EO setInitialFirstResponder: self]; [self setOpened: YES]; activated = YES; return YES; } return NO; } - (void) deactivate { if (activated == YES) { [contentViewEditor deactivate]; [_EO unsetInitialFirstResponder]; activated = NO; } return; } - (void) changeFont: (id)sender { NSDebugLog(@"changeFont"); } - (void) close { NSAssert(closed == NO, NSInternalInconsistencyException); closed = YES; [[NSNotificationCenter defaultCenter] removeObserver: self]; [self makeSelectionVisible: NO]; if ([(id)NSApp selectionOwner] == self) { [document resignSelectionForEditor: self]; } [self closeSubeditors]; [self deactivate]; [document editor: self didCloseForObject: _EO]; } - (void) closeSubeditors { while ([subeditors count] > 0) { id sub = [subeditors lastObject]; [sub close]; [subeditors removeObjectIdenticalTo: sub]; } } - (void) copySelection { NSLog(@"copySelection"); } - (void) deleteSelection { NSLog(@"deleteSelection"); } - (void) drawSelection { NSDebugLog(@"drawSelection"); } - (id) document { return document; } - (void) makeSelectionVisible: (BOOL)flag { if (flag == NO) { if ([selection count] > 0) { NSEnumerator *enumerator = [selection objectEnumerator]; NSView *view; [[self window] disableFlushWindow]; while ((view = [enumerator nextObject]) != nil) { NSRect rect = GormExtBoundsForRect([view frame]); [edit_view displayRect: rect]; } [[self window] enableFlushWindow]; [[self window] flushWindowIfNeeded]; } } else { [self drawSelection]; [[self window] flushWindow]; } } - (id) openSubeditorForObject: (id)anObject { NSDebugLog(@"openSubeditorForObject"); return nil; } - (void) orderFront { [_EO orderFront: self]; } - (void) pasteInSelection { NSLog(@"pasteInSelection"); } - (BOOL) performDragOperation: (id)sender { NSDebugLog(@"performDragOperation"); return NO; } - (BOOL) prepareForDragOperation: (id)sender { return NO; } - (void) resetObject: (id)anObject { [[self window] makeKeyAndOrderFront: self]; } - (id) selectAllItems: (id)sender { NSDebugLog(@"selectAllItems"); return nil; } - (NSUInteger) selectionCount { NSDebugLog(@"selectionCount"); return 0; } - (void) validateEditing { NSDebugLog(@"validateEditing"); } /* * Dragging source protocol implementation */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f { /* * Notification that a drag failed/succeeded. */ NSDebugLog(@"draggedImage"); if(f == NO) { NSRunAlertPanel(nil, _(@"Window drag failed."), _(@"OK"), nil, nil); } } - (NSUInteger) draggingSourceOperationMaskForLocal: (BOOL)flag { NSDebugLog(@"draggingSourceOperationMaskForLocal"); return NSDragOperationNone; } - (NSDragOperation) draggingEntered: (id)sender { return NSDragOperationNone; } - (NSDragOperation) draggingUpdated: (id)sender { return NSDragOperationNone; } @end gorm-1.3.1/GormCore/GormImageInspector.m0000644000175000017500000000246314327003122017120 0ustar heronheron/* All rights reserved */ #include #include "GormImageInspector.h" #include "GormPrivate.h" #include "GormImage.h" @implementation GormImageInspector + (void) initialize { if (self == [GormImageInspector class]) { } } - (id) init { self = [super init]; if (self != nil) { // load the gui... if (![NSBundle loadNibNamed: @"GormImageInspector" owner: self]) { NSLog(@"Could not open gorm GormImageInspector"); return nil; } else { [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: IBSelectionChangedNotification object: nil]; } } return self; } - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; [super dealloc]; } - (void) handleNotification: (NSNotification*)aNotification { } - (void) setObject: (id)anObject { NSImage *image = [anObject normalImage]; NSSize size = [image size]; [super setObject: anObject]; [imageView setImageAlignment: NSImageAlignCenter]; [imageView setImageFrameStyle: NSImageFrameGrayBezel]; [imageView setImageScaling: NSScaleNone]; [imageView setImage: [anObject image]]; [name setStringValue: [image name]]; [width setDoubleValue: size.width]; [height setDoubleValue: size.height]; } @end gorm-1.3.1/GormCore/GormSoundView.h0000644000175000017500000000223414327003122016121 0ustar heronheron/** GormSoundView Visualizes a sound. Copyright (C) 2004 Free Software Foundation, Inc. Author: Gregory John Casamento Date: May 2004 This file is part of GNUstep. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All Rights reserved */ #include @interface GormSoundView : NSView { NSSound *_sound; } - (void)setSound: (NSSound *)sound; - (NSSound *)sound; @end gorm-1.3.1/GormCore/GormObjectEditor.h0000644000175000017500000000274614333743126016577 0ustar heronheron/* GormObjectEditor.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormObjectEditor_h #define INCLUDED_GormObjectEditor_h #include "GormGenericEditor.h" @interface GormObjectEditor : GormGenericEditor { } + (void) setEditor: (id)editor forDocument: (id)aDocument; - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f; - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag; - (BOOL) acceptsTypeFromArray: (NSArray*)types; - (void) makeSelectionVisible: (BOOL)flag; - (void) resetObject: (id)anObject; @end #endif gorm-1.3.1/GormCore/GormFilePrefsManager.m0000644000175000017500000002230414360747170017374 0ustar heronheron/** GormFilePrefsManager Sets the information about the .gorm file's version. This allows a file to be saved as an older version of the .gorm format so that older releases can still use .gorm files created by people who have the latest GNUstep and Gorm version. Copyright (C) 2003 Free Software Foundation, Inc. Author: Gregory John Casamento Date: July 2003. This file is part of the GNUstep GUI Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All rights reserved */ #include #include #include #include #include #include "GormFilePrefsManager.h" #include "GormFunctions.h" #include "GormDocument.h" NSString *formatVersion(NSInteger version) { NSInteger bit16 = 65536; NSInteger bit8 = 256; NSInteger maj = 0; NSInteger min = 0; NSInteger pch = 0; NSInteger v = version; // pull the version fromt the number maj = (int)((float)v / (float)bit16); v -= (bit16 * maj); min = (int)((float)v / (float)bit8); v -= (bit8 * min); pch = v; return [NSString stringWithFormat: @"%ld.%ld.%ld / %ld",(long)maj,(long)min,(long)pch,(long)version]; } @implementation GormFilePrefsManager // initializers... - (id) init { if((self = [super init]) != nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForResource: @"VersionProfiles" ofType: @"plist"]; versionProfiles = RETAIN([[NSString stringWithContentsOfFile: path] propertyList]); } return self; } - (void) dealloc { NSDebugLog(@"Deallocating..."); [iwindow performClose: self]; RELEASE(iwindow); RELEASE(versionProfiles); [super dealloc]; } + (int) currentVersion { return appVersion(1,3,1); } - (void) awakeFromNib { version = [GormFilePrefsManager currentVersion]; [gormAppVersion setStringValue: formatVersion(version)]; ASSIGN(targetVersionName, [[targetVersion selectedItem] title]); ASSIGN(archiveTypeName, [[archiveType selectedItem] title]); [self selectTargetVersion: targetVersion]; } // set class versions - (void) setClassVersions { NSEnumerator *en = [currentProfile keyEnumerator]; id className = nil; NSDebugLog(@"set the class versions to the profile selected... %@",targetVersionName); while((className = [en nextObject]) != nil) { Class cls = NSClassFromString(className); NSDictionary *info = [currentProfile objectForKey: className]; NSInteger v = [[info objectForKey: @"version"] intValue]; NSDebugLog(@"Setting version %ld for class %@",(long)v,className); [cls setVersion: v]; } } - (void) restoreClassVersions { NSDictionary *latestVersion = [versionProfiles objectForKey: @"Latest Version"]; NSEnumerator *en = [latestVersion keyEnumerator]; id className = nil; // The "Latest Version" key must always exist. NSDebugLog(@"restore the class versions to the latest version..."); while((className = [en nextObject]) != nil) { Class cls = NSClassFromString(className); NSDictionary *info = [latestVersion objectForKey: className]; NSInteger v = [[info objectForKey: @"version"] intValue]; NSDebugLog(@"Setting version %ld for class %@",(long)v,className); [cls setVersion: v]; } } // class profile - (void) loadProfile: (NSString *)profileName { NSDebugLog(@"Loading profile %@",profileName); currentProfile = [versionProfiles objectForKey: targetVersionName]; } // actions... - (void) showIncompatibilities: (id)sender { [itable reloadData]; [iwindow orderFront: self]; [iwindow center]; } - (void) selectTargetVersion: (id)sender { ASSIGN(targetVersionName, [[sender selectedItem] title]); [self loadProfile: targetVersionName]; [itable reloadData]; } - (void) selectArchiveType: (id)sender { ASSIGN(archiveTypeName, [[sender selectedItem] title]); NSDebugLog(@"Set Archive type... %@",sender); } // Loading and saving the file. - (BOOL) saveToFile: (NSString *)path { return [[self data] writeToFile: path atomically: YES]; } // Loading and saving the file. - (NSData *) data { // upon saving, update to the latest. version = [GormFilePrefsManager currentVersion]; [gormAppVersion setStringValue: formatVersion(version)]; // return the data... return [NSArchiver archivedDataWithRootObject: self]; } - (NSData *) nibDataWithOpenItems: (NSArray *)openItems { NSMutableDictionary *dict = [NSMutableDictionary dictionary]; NSRect docLocation = [[(GormDocument *)[(id)NSApp activeDocument] window] frame]; NSRect screenRect = [[NSScreen mainScreen] frame]; NSString *stringRect = [NSString stringWithFormat: @"%d %d %d %d %d %d %d %d", (int)docLocation.origin.x, (int)docLocation.origin.y, (int)docLocation.size.width, (int)docLocation.size.height, (int)screenRect.origin.x, (int)screenRect.origin.y, (int)screenRect.size.width, (int)screenRect.size.height]; // upon saving, update to the latest. version = [GormFilePrefsManager currentVersion]; [gormAppVersion setStringValue: formatVersion(version)]; [dict setObject: stringRect forKey: @"IBDocumentLocation"]; [dict setObject: @"437.0" forKey: @"IBFramework Version"]; [dict setObject: @"8I127" forKey: @"IBSystem Version"]; [dict setObject: [NSNumber numberWithBool: YES] forKey: @"IBUsesTextArchiving"]; // for now. [dict setObject: openItems forKey: @"IBOpenItems"]; return [NSPropertyListSerialization dataFromPropertyList: dict format: NSPropertyListXMLFormat_v1_0 errorDescription: NULL]; } - (int) versionOfClass: (NSString *)className { NSInteger result = -1; NSDictionary *clsProfile = [currentProfile objectForKey: className]; if(clsProfile != nil) { NSString *versionString = [clsProfile objectForKey: @"version"]; if(versionString != nil) { result = [versionString intValue]; } } return result; } - (BOOL) loadFromFile: (NSString *)path { return [self loadFromData: [NSData dataWithContentsOfFile: path]]; } - (BOOL) loadFromData: (NSData *)data { BOOL result = YES; NS_DURING { GormFilePrefsManager *object = (GormFilePrefsManager *) [NSUnarchiver unarchiveObjectWithData: data]; [gormAppVersion setStringValue: formatVersion([object version])]; version = [object version]; [targetVersion selectItemWithTitle: [object targetVersionName]]; ASSIGN(targetVersionName,[object targetVersionName]); [archiveType selectItemWithTitle: [object archiveTypeName]]; ASSIGN(archiveTypeName, [object archiveTypeName]); [self selectTargetVersion: targetVersion]; result = YES; } NS_HANDLER { NSLog(@"Problem loading info file: %@",[localException reason]); result = NO; } NS_ENDHANDLER; return result; } // encoding... - (void) encodeWithCoder: (NSCoder *)coder { [coder encodeValueOfObjCType: @encode(int) at: &version]; [coder encodeObject: targetVersionName]; [coder encodeObject: archiveTypeName]; } - (id) initWithCoder: (NSCoder *)coder { if((self = [super init]) != nil) { [coder decodeValueOfObjCType: @encode(int) at: &version]; targetVersionName = [coder decodeObject]; archiveTypeName = [coder decodeObject]; } return self; } // accessors - (int) version { return version; } - (NSString *)targetVersionName { return targetVersionName; } - (NSString *)archiveTypeName { return archiveTypeName; } - (BOOL) isLatest { return ([targetVersionName isEqual: @"Latest Version"]); } - (void) setFileTypeName: (NSString *)ft { [fileType setStringValue: ft]; } - (NSString *) fileTypeName { return [fileType stringValue]; } // Data Source - (NSInteger) numberOfRowsInTableView: (NSTableView *)aTableView { return [currentProfile count]; } - (id) tableView: (NSTableView *)aTableView objectValueForTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { id obj = nil; if([[aTableColumn identifier] isEqual: @"item"]) { obj = [NSString stringWithFormat: @"#%ld",(long int)rowIndex+1]; } else if([[aTableColumn identifier] isEqual: @"description"]) { NSArray *keys = [currentProfile allKeys]; NSString *key = [keys objectAtIndex: rowIndex]; NSDictionary *info = [currentProfile objectForKey: key]; obj = [info objectForKey: @"comment"]; } return obj; } - (void) tableView: (NSTableView *)aTableView setObjectValue: (id)anObject forTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { } @end gorm-1.3.1/GormCore/GormScrollViewAttributesInspector.h0000644000175000017500000000310614327003122022224 0ustar heronheron/** GormScrollViewAttributesInspector allow user to edit attributes of a scroll view Copyright (C) 2003 Free Software Foundation, Inc. Author: Gregory John Casamento Date: June 2003 This file is part of GNUstep. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All Rights reserved */ #include #include @interface GormScrollViewAttributesInspector : IBInspector { id pageContext; id lineAmount; id color; id verticalScroll; id horizontalScroll; id verticalRuler; id horizontalRuler; id borderMatrix; } - (void) colorSelected: (id)sender; - (void) verticalSelected: (id)sender; - (void) horizontalSelected: (id)sender; - (void) verticalRuler: (id)sender; - (void) horizontalRuler: (id)sender; - (void) borderSelected: (id)sender; @end gorm-1.3.1/GormCore/GormScrollViewAttributesInspector.m0000644000175000017500000000634614327003122022242 0ustar heronheron/** GormScrollViewAttributesInspector allow user to edit attributes of a scroll view Copyright (C) 2003 Free Software Foundation, Inc. Author: Gregory John Casamento Date: June 2003 This file is part of GNUstep. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All rights reserved */ #include #include "GormScrollViewAttributesInspector.h" @implementation GormScrollViewAttributesInspector - init { self = [super init]; if (self != nil) { if ([NSBundle loadNibNamed: @"GormScrollViewAttributesInspector" owner: self] == NO) { NSDictionary *table; NSBundle *bundle; table = [NSDictionary dictionaryWithObject: self forKey: @"NSOwner"]; bundle = [NSBundle mainBundle]; if ([bundle loadNibFile: @"GormScrollViewAttributesInspector" externalNameTable: table withZone: [self zone]] == NO) { NSLog(@"Could not open gorm GormScrollViewAttributesInspector"); NSLog(@"self %@", self); return nil; } } } return self; } - (void) _getValuesFromObject { [color setColor: [object backgroundColor]]; [horizontalScroll setState: [object hasHorizontalScroller]?NSOnState:NSOffState]; [verticalScroll setState: [object hasVerticalScroller]?NSOnState:NSOffState]; [horizontalRuler setState: [object hasHorizontalRuler]?NSOnState:NSOffState]; [verticalRuler setState: [object hasVerticalRuler]?NSOnState:NSOffState]; } - (void) setObject: (id)anObject { [super setObject: anObject]; [self _getValuesFromObject]; } - (void) colorSelected: (id)sender { /* insert your code here */ [super ok: sender]; [object setBackgroundColor: [color color]]; } - (void) verticalSelected: (id)sender { /* insert your code here */ [super ok: sender]; [object setHasVerticalScroller: ([verticalScroll state] == NSOnState)]; } - (void) horizontalSelected: (id)sender { /* insert your code here */ [super ok: sender]; [object setHasHorizontalScroller: ([horizontalScroll state] == NSOnState)]; } - (void) verticalRuler: (id)sender { /* insert your code here */ [super ok: sender]; [object setHasVerticalRuler: ([verticalRuler state] == NSOnState)]; } - (void) horizontalRuler: (id)sender { /* insert your code here */ [super ok: sender]; [object setHasHorizontalRuler: ([horizontalRuler state] == NSOnState)]; } - (void) borderSelected: (id)sender { /* insert your code here */ [super ok: sender]; [object setBorderType: [[borderMatrix selectedCell] tag]]; } @end gorm-1.3.1/GormCore/NSView+GormExtensions.m0000644000175000017500000001156014327003122017513 0ustar heronheron/* NSView+GormExtensions.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "NSView+GormExtensions.h" static Ivar subviews_ivar(void) { static Ivar iv; if (iv == NULL) { iv = class_getInstanceVariable([NSView class], "_sub_views"); NSCAssert(iv, @"Unable to get NSView's _sub_views instance variable"); } return iv; } @implementation NSView (GormExtensions) /** * All superviews of this view */ - (NSArray *) superviews { NSMutableArray *result = [NSMutableArray array]; NSView *currentView = nil; for(currentView = self; currentView != nil; currentView = [currentView superview]) { [result addObject: currentView]; } return result; } /** * Checks for a superview of a give class. */ - (BOOL) hasSuperviewKindOfClass: (Class)cls { NSEnumerator *en = [[self superviews] objectEnumerator]; NSView *v = nil; BOOL result = NO; while(((v = [en nextObject]) != nil) && result == NO) { result = [v isKindOfClass: cls]; } return result; } /** * Moves the specified subview to the end of the list, so it's displayed * in front of the other views. */ - (void) moveViewToFront: (NSView *)sv { NSDebugLog(@"move to front %@", sv); NSMutableArray *sub_views = object_getIvar(self, subviews_ivar()); if([sub_views containsObject: sv]) { RETAIN(sv); // make sure it doesn't deallocate the view. [sub_views removeObject: sv]; [sub_views addObject: sv]; // add it to the end. RELEASE(sv); } } /** * Moves the specified subview to the beginning of the list, so it's * displayed behind all of the other views. */ - (void) moveViewToBack: (NSView *)sv { NSDebugLog(@"move to back %@", sv); NSMutableArray *sub_views = object_getIvar(self, subviews_ivar()); if([sub_views containsObject: sv]) { RETAIN(sv); // make sure it doesn't deallocate the view. [sub_views removeObject: sv]; if([sub_views count] > 0) { [sub_views insertObject: sv atIndex: 0]; // add it to the end. } else { [sub_views addObject: sv]; } RELEASE(sv); } } @end /** * Registry of delegates. This allows the implementation of the protocol * to select from the list of delegates to determine which one should be called. */ static NSMutableArray *_registeredViewResourceDraggingDelegates = nil; /** * IBViewResourceDraggingDelegates implementation. These methods * make it possible to declare types in palettes and dynamically select the * appropriate delegate to handle the addition of an object to the document. */ @implementation NSView (IBViewResourceDraggingDelegates) /** * Types accepted by the view. */ + (NSArray *) acceptedViewResourcePasteboardTypes { NSMutableArray *result = nil; if([_registeredViewResourceDraggingDelegates count] > 0) { NSEnumerator *en = [_registeredViewResourceDraggingDelegates objectEnumerator]; id delegate = nil; result = [NSMutableArray array]; while((delegate = [en nextObject]) != nil) { if([delegate respondsToSelector: @selector(viewResourcePasteboardTypes)]) { [result addObjectsFromArray: [delegate viewResourcePasteboardTypes]]; } } } return result; } /** * Return the list of registered delegates. */ + (NSArray *) registeredViewResourceDraggingDelegates { return _registeredViewResourceDraggingDelegates; } /** * Register a delegate. */ + (void) registerViewResourceDraggingDelegate: (id)delegate { if(_registeredViewResourceDraggingDelegates == nil) { _registeredViewResourceDraggingDelegates = [[NSMutableArray alloc] init]; } [_registeredViewResourceDraggingDelegates addObject: delegate]; } /** * Remove a previously registered delegate. */ + (void) unregisterViewResourceDraggingDelegate: (id)delegate { if(_registeredViewResourceDraggingDelegates != nil) { [_registeredViewResourceDraggingDelegates removeObject: delegate]; } } @end gorm-1.3.1/GormCore/GormSoundEditor.m0000644000175000017500000000620414327003122016443 0ustar heronheron/* GormSoundEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormSoundEditor.h" #include "GormProtocol.h" #include "GormFunctions.h" #include "GormPalettesManager.h" #include "GormSound.h" @implementation GormSoundEditor static NSMapTable *docMap = 0; + (void) initialize { if (self == [GormSoundEditor class]) { docMap = NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks, NSNonRetainedObjectMapValueCallBacks, 2); } } + (GormSoundEditor*) editorForDocument: (id)aDocument { id editor = NSMapGet(docMap, (void*)aDocument); if (editor == nil) { editor = [[self alloc] initWithObject: nil inDocument: aDocument]; AUTORELEASE(editor); } return editor; } - (NSArray *) fileTypes { return [NSSound soundUnfilteredFileTypes]; } - (NSArray *)pbTypes { return [NSArray arrayWithObject: GormSoundPboardType]; } - (NSString *) resourceType { return @"sound"; } - (id) placeHolderWithPath: (NSString *)string { return [GormSound soundForPath: string]; } - (void) addSystemResources { NSMutableArray *list = [NSMutableArray array]; NSEnumerator *en; id obj; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; // add all of the system objects... [list addObjectsFromArray: systemSoundsList()]; [list addObjectsFromArray: [palettesManager importedSounds]]; en = [list objectEnumerator]; while((obj = [en nextObject]) != nil) { GormSound *sound = [GormSound soundForPath: obj]; [sound setSystemResource: YES]; [self addObject: sound]; } } /* * Initialisation - register to receive DnD with our own types. */ - (id) initWithObject: (id)anObject inDocument: (id)aDocument { id old = NSMapGet(docMap, (void*)aDocument); if (old != nil) { RELEASE(self); self = RETAIN(old); [self addObject: anObject]; return self; } if ((self = [super initWithObject: anObject inDocument: aDocument]) != nil) { NSMapInsert(docMap, (void*)aDocument, (void*)self); } return self; } - (void) willCloseDocument: (NSNotification *)aNotification { NSMapRemove(docMap,document); [super willCloseDocument: aNotification]; } - (void) close { [super close]; NSMapRemove(docMap,document); } @end gorm-1.3.1/GormCore/GormClassEditor.m0000644000175000017500000010460514334122437016435 0ustar heronheron/* GormClassEditor.m * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormClassEditor.h" #include "GormClassManager.h" #include "GormFunctions.h" #include "GormDocument.h" #include "GormProtocol.h" #include "GormPrivate.h" NSString *GormClassPboardType = @"GormClassPboardType"; NSString *GormSwitchViewPreferencesNotification = @"GormSwitchViewPreferencesNotification"; NSImage *outlineImage = nil; NSImage *browserImage = nil; @interface GormOutlineView (PrivateMethods) - (void) _addNewActionToObject: (id)item; - (void) _addNewOutletToObject: (id)item; @end @interface GormClassEditor (PrivateMethods) - (void) browserClick: (id)sender; - (void) toggleView: (id) sender; - (void) switchViewToDefault; - (void) handleNotification: (NSNotification *)notification; @end @implementation GormClassEditor + (void) initialize { if(self == [GormClassEditor class]) { outlineImage = [NSImage imageNamed: @"outlineView"]; browserImage = [NSImage imageNamed: @"browserView"]; } } - (GormClassEditor*) initWithDocument: (GormDocument*)doc { self = [super init]; if (self != nil) { if([NSBundle loadNibNamed: @"GormClassEditor" owner: self]) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSRect scrollRect = [classesView frame]; // = {{0, 0}, {340, 188}}; NSRect mainRect = NSMakeRect(20,0,scrollRect.size.width-20, scrollRect.size.height); NSColor *color = [NSColor colorWithCalibratedRed: 0.850980 green: 0.737255 blue: 0.576471 alpha: 1.0 ]; NSTableColumn *tableColumn; // setup the view... [self setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [self setFrame: [mainView frame]]; [self addSubview: mainView]; // set up the scroll view. scrollView = [[NSScrollView alloc] initWithFrame: scrollRect]; [scrollView setHasVerticalScroller: YES]; [scrollView setHasHorizontalScroller: NO]; [scrollView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [scrollView setBorderType: NSBezelBorder]; // allocate the outline view. outlineView = [[GormOutlineView alloc] init]; [outlineView setFrame: scrollRect]; [outlineView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [scrollView setDocumentView: outlineView]; // [outlineView sizeToFit]; RELEASE(outlineView); // weak connections... document = doc; classManager = [doc classManager]; // set up the outline view... [outlineView setDataSource: self]; [outlineView setDelegate: self]; [outlineView setAutoresizesAllColumnsToFit: YES]; [outlineView setAllowsColumnResizing: NO]; [outlineView setDrawsGrid: NO]; [outlineView setIndentationMarkerFollowsCell: YES]; [outlineView setAutoresizesOutlineColumn: YES]; [outlineView setIndentationPerLevel: 10]; [outlineView setAttributeOffset: 30]; [outlineView setRowHeight: 18]; [outlineView setMenu: [(id)NSApp classMenu]]; [outlineView setBackgroundColor: color]; // add the table columns... tableColumn = [(NSTableColumn *)[NSTableColumn alloc] initWithIdentifier: @"classes"]; [[tableColumn headerCell] setStringValue: _(@"Classes")]; [tableColumn setMinWidth: 190]; [tableColumn setResizable: YES]; [tableColumn setEditable: YES]; [outlineView addTableColumn: tableColumn]; [outlineView setOutlineTableColumn: tableColumn]; RELEASE(tableColumn); tableColumn = [(NSTableColumn *)[NSTableColumn alloc] initWithIdentifier: @"outlets"]; [[tableColumn headerCell] setStringValue: _(@"Outlet")]; [tableColumn setWidth: 50]; [tableColumn setResizable: NO]; [tableColumn setEditable: NO]; [outlineView addTableColumn: tableColumn]; [outlineView setOutletColumn: tableColumn]; RELEASE(tableColumn); tableColumn = [(NSTableColumn *)[NSTableColumn alloc] initWithIdentifier: @"actions"]; [[tableColumn headerCell] setStringValue: _(@"Action")]; [tableColumn setWidth: 50]; [tableColumn setResizable: NO]; [tableColumn setEditable: NO]; [outlineView addTableColumn: tableColumn]; [outlineView setActionColumn: tableColumn]; RELEASE(tableColumn); // expand all of the items in the classesView... [outlineView expandItem: @"NSObject"]; [outlineView setFrame: scrollRect]; // allocate the NSBrowser view. browserView = [[NSBrowser alloc] initWithFrame: mainRect]; [browserView setRefusesFirstResponder:YES]; [browserView setAutoresizingMask: NSViewWidthSizable | NSViewMinYMargin]; [browserView setTitled:NO]; [browserView setMaxVisibleColumns:3]; [browserView setSeparatesColumns:NO]; [browserView setAllowsMultipleSelection:YES]; [browserView setDelegate:self]; [browserView setTarget:self]; [browserView setAction: @selector(browserClick:)]; // [browserView setDoubleAction: nil]; // @selector(doubleClick:)]; [browserView setRefusesFirstResponder:YES]; [browserView loadColumnZero]; // observe certain notifications... [nc addObserver: self selector: @selector(handleNotification:) name: GormSwitchViewPreferencesNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: GormDidAddClassNotification object: nil]; // kludge to prevent it from having resize issues. [classesView setContentView: scrollView]; [classesView sizeToFit]; // switch... [self switchViewToDefault]; } else { return nil; } } return self; } + (GormClassEditor*) classEditorForDocument: (GormDocument*)doc { return AUTORELEASE([(GormClassEditor *)[self alloc] initWithDocument: doc]); } - (void) toggleView: (id) sender { id contentView = [classesView contentView]; if(contentView == browserView) { NSRect rect = [classesView frame]; [classesView setContentView: scrollView]; [outlineView setFrame: rect]; [outlineView sizeToFit]; [viewToggle setImage: browserImage]; } else if(contentView == scrollView) { [classesView setContentView: browserView]; [viewToggle setImage: outlineImage]; } [self setSelectedClassName: selectedClass]; } - (void) switchViewToDefault { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; NSString *viewType = [ud stringForKey: @"ClassViewType"]; if([viewType isEqual: @"Outline"] || viewType == nil) { NSRect rect = [classesView frame]; [classesView setContentView: scrollView]; [outlineView setFrame: rect]; [outlineView sizeToFit]; [viewToggle setImage: browserImage]; } else if([viewType isEqual: @"Browser"]) { [classesView setContentView: browserView]; [viewToggle setImage: outlineImage]; } [self setSelectedClassName: selectedClass]; } - (void) handleNotification: (NSNotification *)notification { if([[notification name] isEqualToString: GormSwitchViewPreferencesNotification]) { [self switchViewToDefault]; } } - (void) browserClick: (id)sender { NSString *className = [[sender selectedCell] stringValue]; ASSIGN(selectedClass, className); [document setSelectionFromEditor: (id)self]; } - (void) dealloc { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc removeObserver: self]; RELEASE(scrollView); RELEASE(browserView); RELEASE(selectedClass); [super dealloc]; } - (void) setSelectedClassName: (NSString*)cn { [self selectClass: cn]; } - (NSString *)selectedClassName { id className = nil; NS_DURING { if([classesView contentView] == scrollView) { NSInteger row = [outlineView selectedRow]; if ( row == -1 ) { row = 0; } className = [outlineView itemAtRow: row]; if ([className isKindOfClass: [GormOutletActionHolder class]]) { className = [outlineView itemBeingEdited]; } } else if([classesView contentView] == browserView) { className = [[browserView selectedCell] stringValue]; } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; return className; } - (void) selectClass: (NSString *)className { [self selectClass: className editClass: YES]; } // class selection... - (void) selectClass: (NSString *)className editClass: (BOOL)flag { NS_DURING { NSString *currentClass = nil; NSArray *classes, *subclasses; NSMutableArray *subClassesArray = [NSMutableArray array]; NSEnumerator *en; int row = 0; NSInteger col = 0; if ( ( className != nil ) && ( [className isEqual: @"CustomView"] == NO ) && ( [className isEqual: @"GormSound"] == NO ) && ( [className isEqual: @"GormImage"] == NO ) && ( [outlineView isEditing] == NO ) ) { classes = [classManager allSuperClassesOf: className]; en = [classes objectEnumerator]; // open the items... while ((currentClass = [en nextObject]) != nil) { [outlineView expandItem: currentClass]; } // select the item in the outline view... row = [outlineView rowForItem: className]; if (row != -1) { [outlineView selectRow: row byExtendingSelection: NO]; [outlineView scrollRowToVisible: row]; } // select class in browser... subClassesArray = [NSMutableArray arrayWithArray: [classManager allSuperClassesOf: className]]; if ((subClassesArray != nil && [subClassesArray count] != 0) || [classManager isRootClass: className] == YES) { [subClassesArray addObject: className]; // include in the list. // Get the super class position in the browser. Passing "nil" to subClassesOf causes it // to get all of the root classes. col = 0; row = [[classManager subClassesOf: nil] indexOfObject: [subClassesArray objectAtIndex: 0]]; // reset the enumerator... currentClass = nil; [browserView reloadColumn:col]; // if row is not NSNotFound, then we found something. if(row != -1) { [browserView selectRow: row inColumn: col]; en = [subClassesArray objectEnumerator]; [en nextObject]; // skip the first one. while((currentClass = [en nextObject]) != nil) { NSString *prevClass = [[browserView selectedCellInColumn: col] stringValue]; subclasses = [classManager subClassesOf: prevClass]; row = [subclasses indexOfObject: currentClass]; col++; [browserView selectRow:row inColumn:col]; } } ASSIGN(selectedClass, className); if(flag) { // set the editor... [document setSelectionFromEditor: (id)self]; } } } } NS_HANDLER { NSDebugLog(@"%@",[localException reason]); } NS_ENDHANDLER; } - (void) selectClassWithObject: (id)obj { [self selectClassWithObject: obj editClass: YES]; } - (void) selectClassWithObject: (id)object editClass: (BOOL)flag { id obj = object; NSString *customClass = nil; // if it's a scrollview focus on it's contents. if([obj isKindOfClass: [NSScrollView class]]) { id newobj = nil; newobj = [obj documentView]; if(newobj != nil) { obj = newobj; } } // check for a custom class. customClass = [classManager customClassForObject: obj]; if(customClass != nil) { [self selectClass: customClass editClass: flag]; } else if ([obj respondsToSelector: @selector(className)]) { [self selectClass: [obj className] editClass: flag]; } } - (BOOL) currentSelectionIsClass { BOOL result = NO; if([classesView contentView] == scrollView) { NSInteger i = [outlineView selectedRow]; if (i >= 0 && i <= ([outlineView numberOfRows] - 1)) { NS_DURING { id object = [outlineView itemAtRow: i]; if([object isKindOfClass: [NSString class]]) { result = YES; } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } } else if([classesView contentView] == browserView) { result = YES; } return result; } - (void) editClass { int row = [outlineView selectedRow]; if (row >= 0) { ASSIGN(selectedClass, [self selectedClassName]); [document setSelectionFromEditor: (id)self]; } } //--- IBSelectionOwners protocol --- - (NSUInteger) selectionCount { return ([outlineView selectedRow] == -1)?0:1; } - (NSArray*) selection { // when asked for a selection, it returns a class proxy if (selectedClass != nil) { NSArray *array; GormClassProxy *classProxy; NSString *sc = [NSString stringWithString: selectedClass]; classProxy = [[GormClassProxy alloc] initWithClassName: sc]; array = [NSArray arrayWithObject: classProxy]; RELEASE(classProxy); return array; } else { return [NSArray array]; } } - (void) drawSelection { } - (void) makeSelectionVisible: (BOOL)flag { } - (void) selectObjects: (NSArray*)objects { id obj = [objects objectAtIndex: 0]; [self selectClassWithObject: obj]; } - (void) deleteSelection { id anitem; NSInteger i = [outlineView selectedRow]; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; // if no selection, then return. if (i == -1) { return; } // get the item, and catch the exception, if there's a problem. if([classesView contentView] == outlineView) { NS_DURING { anitem = [outlineView itemAtRow: i]; } NS_HANDLER { anitem = nil; } NS_ENDHANDLER; } else { anitem = [[browserView selectedCell] stringValue]; } if(anitem == nil) return; if ([anitem isKindOfClass: [GormOutletActionHolder class]]) { id itemBeingEdited = [outlineView itemBeingEdited]; NSString *name = [anitem getName]; // if the class being edited is a custom class or a category, // then allow the deletion... if ([classManager isCustomClass: itemBeingEdited] || [classManager isAction: name onCategoryForClassNamed: itemBeingEdited]) { if ([outlineView editType] == Actions) { // if this action is an action on the class, not it's superclass // allow the deletion... if ([classManager isAction: name ofClass: itemBeingEdited]) { BOOL removed = [document removeConnectionsWithLabel: name forClassNamed: itemBeingEdited isAction: YES]; if (removed) { [classManager removeAction: name fromClassNamed: itemBeingEdited]; [outlineView removeItemAtRow: i]; [nc postNotificationName: GormDidModifyClassNotification object: classManager]; } } } else if ([outlineView editType] == Outlets) { // if this outlet is an outlet on the class, not it's superclass // allow the deletion... if ([classManager isOutlet: name ofClass: itemBeingEdited]) { BOOL removed = [document removeConnectionsWithLabel: name forClassNamed: itemBeingEdited isAction: NO]; if (removed) { [classManager removeOutlet: name fromClassNamed: itemBeingEdited]; [outlineView removeItemAtRow: i]; [nc postNotificationName: GormDidModifyClassNotification object: classManager]; } } } } } else { NSArray *subclasses = [classManager subClassesOf: anitem]; // if the class has no subclasses, then delete. if ([subclasses count] == 0) { // if the class being edited is a custom class, then allow the deletion... if ([classManager isCustomClass: anitem]) { BOOL removed = [document removeConnectionsForClassNamed: anitem]; if (removed) { [self copySelection]; [document removeAllInstancesOfClass: anitem]; [classManager removeClassNamed: anitem]; [self reloadData]; [nc postNotificationName: GormDidModifyClassNotification object: classManager]; ASSIGN(selectedClass, (id)nil); // don't keep the class we're pointing to. } } } else { NSString *message = [NSString stringWithFormat: _(@"The class %@ has subclasses which must be removed"), anitem]; NSRunAlertPanel(_(@"Problem removing class"), message, nil, nil, nil); } } } - (void) copySelection { if(selectedClass != nil) { if([selectedClass isEqual: @"FirstResponder"] == NO) { NSPasteboard *pb = [NSPasteboard generalPasteboard]; NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys: [classManager dictionaryForClassNamed: selectedClass], selectedClass, nil]; id classPlist = [[dict description] propertyList]; if(classPlist != nil) { [pb declareTypes: [NSArray arrayWithObject: GormClassPboardType] owner: self]; [pb setPropertyList: classPlist forType: GormClassPboardType]; } } } } - (void) pasteInSelection { if(selectedClass != nil) { if([selectedClass isEqual: @"FirstResponder"] == NO) { NSPasteboard *pb = [NSPasteboard generalPasteboard]; NSArray *types = [pb types]; if([types containsObject: GormClassPboardType]) { id classPlist = [pb propertyListForType: GormClassPboardType]; NSDictionary *classesDict = [NSDictionary dictionaryWithDictionary: classPlist]; id name = nil; NSEnumerator *en = [classesDict keyEnumerator]; while((name = [en nextObject]) != nil) { NSDictionary *classDict = [classesDict objectForKey: name]; NSString *className = [classManager uniqueClassNameFrom: name]; BOOL added = [classManager addClassNamed: className withSuperClassNamed: selectedClass withActions: [classDict objectForKey: @"Actions"] withOutlets: [classDict objectForKey: @"Outlets"]]; if(!added) { NSString *message = [NSString stringWithFormat: @"Addition of %@ with superclass %@ failed.", className, selectedClass]; NSRunAlertPanel(_(@"Problem pasting class"), message, nil, nil, nil); } } } } else { NSRunAlertPanel(_(@"Problem pasting class"), _(@"FirstResponder cannot have subclasses."), nil, nil, nil); } } } - (void) addAttributeToClass { id edited = [outlineView itemBeingEdited]; if ([outlineView isEditing] == YES) { if ([outlineView editType] == Actions) { [outlineView _addNewActionToObject: edited]; } if ([outlineView editType] == Outlets) { if([classManager isCustomClass: edited]) { [outlineView _addNewOutletToObject: edited]; } } } } - (void) reloadData { [outlineView reloadData]; [browserView loadColumnZero]; } - (BOOL) isEditing { return [outlineView isEditing]; } /* * Dragging source protocol implementation */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f { // no image. } // IBEditor protocol - (BOOL) acceptsTypeFromArray: (NSArray*)types { return [types containsObject: NSFilenamesPboardType]; } - (BOOL) activate { return YES; } - (id) initWithObject: (id)anObject inDocument: (id/**/)aDocument { return [self initWithDocument: aDocument]; } - (void) close { // does nothing. } - (void) closeSubeditors { // does nothing. } - (void) deactivate { // does nothing. } - (id /**/) document { return document; } - (id) editedObject { return selectedClass; } - (void) orderFront { [[self window] orderFront: self]; } - (id) openSubeditorForObject: (id)object { return nil; } - (void) resetObject: (id)anObject { [outlineView reset]; [outlineView expandItem: anObject]; [outlineView collapseItem: anObject collapseChildren: YES]; } - (BOOL) wantsSelection { return NO; } - (void) validateEditing { // does nothing. } - (NSWindow *) window { return [super window]; } - (NSArray *) fileTypes { return [NSArray arrayWithObject: @"h"]; } /** * Create a subclass from the selected subclass... */ - (id) createSubclass: (id)sender { if (![outlineView isEditing]) { NSString *itemSelected = [self selectedClassName]; if(itemSelected != nil) { NSString *newClassName; newClassName = [classManager addClassWithSuperClassName: itemSelected]; if(newClassName != nil) { NSInteger i = 0; if([classesView contentView] == scrollView) { [outlineView reloadData]; [outlineView expandItem: itemSelected]; i = [outlineView rowForItem: newClassName]; [outlineView selectRow: i byExtendingSelection: NO]; [outlineView scrollRowToVisible: i]; } else if([classesView contentView] == browserView) { [self selectClass: newClassName editClass: NO]; } } else { // inform the user of this error. NSRunAlertPanel(_(@"Cannot instantiate"), _(@"FirstResponder cannot be instantiated."), nil, nil, nil); } } } return self; } /** * Create an instance of a given class. */ - (id) instantiateClass: (id)sender { NSString *object = [self selectedClassName]; GSNibItem *item = nil; if([object isEqualToString: @"FirstResponder"]) { return nil; } if([classManager canInstantiateClassNamed: object] == NO) { return nil; } if([classManager isSuperclass: @"NSView" linkedToClass: object] || [object isEqual: @"NSView"]) { Class cls; NSString *className = object; BOOL isCustom = [classManager isCustomClass: object]; id instance; if(isCustom) { className = [classManager nonCustomSuperClassOf: object]; } // instantiate the object or it's substitute... cls = NSClassFromString(className); if([cls respondsToSelector: @selector(allocSubstitute)]) { instance = [cls allocSubstitute]; } else { instance = [cls alloc]; } // give it some initial dimensions... if([instance respondsToSelector: @selector(initWithFrame:)]) { instance = [instance initWithFrame: NSMakeRect(10,10,380,280)]; } else { instance = [instance init]; } // add it to the top level objects... [document attachObject: instance toParent: nil]; // we want to record if it's custom or not and act appropriately... if(isCustom) { NSString *name = [document nameForObject: instance]; [classManager setCustomClass: object forName: name]; } [document changeToViewWithTag: 0]; NSLog(@"Instantiate NSView subclass %@",object); } else { item = [[GormObjectProxy alloc] initWithClassName: object]; [document attachObject: item toParent: nil]; [document changeToViewWithTag: 0]; } return self; } /** * Remove a class from the classes view */ - (id) removeClass: (id)sender { [self deleteSelection]; return self; } /** * Parse a header into the classes view. */ - (id) loadClass: (id)sender { NSArray *fileTypes = [NSArray arrayWithObjects: @"h", @"H", nil]; NSOpenPanel *oPanel = [NSOpenPanel openPanel]; int result; [oPanel setAllowsMultipleSelection: NO]; [oPanel setCanChooseFiles: YES]; [oPanel setCanChooseDirectories: NO]; result = [oPanel runModalForDirectory: nil file: nil types: fileTypes]; if (result == NSOKButton) { NSString *filename = [oPanel filename]; NS_DURING { if(![classManager parseHeader: filename]) { NSString *file = [filename lastPathComponent]; NSString *message = [NSString stringWithFormat: _(@"Unable to parse class in %@"),file]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } else { return self; } } NS_HANDLER { NSString *message = [localException reason]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } NS_ENDHANDLER } return nil; } /** * Create the class files for the selected class. */ - (id) createClassFiles: (id)sender { NSSavePanel *sp; NSString *className = [self selectedClassName]; int result; sp = [NSSavePanel savePanel]; [sp setRequiredFileType: @"m"]; [sp setTitle: _(@"Save source file as...")]; if ([document fileName] == nil) { result = [sp runModalForDirectory: NSHomeDirectory() file: [className stringByAppendingPathExtension: @"m"]]; } else { result = [sp runModalForDirectory: [[document fileName] stringByDeletingLastPathComponent] file: [className stringByAppendingPathExtension: @"m"]]; } if (result == NSOKButton) { NSString *sourceName = [sp filename]; NSString *headerName; [sp setRequiredFileType: @"h"]; [sp setTitle: _(@"Save header file as...")]; result = [sp runModalForDirectory: [sourceName stringByDeletingLastPathComponent] file: [[[sourceName lastPathComponent] stringByDeletingPathExtension] stringByAppendingString: @".h"]]; if (result == NSOKButton) { headerName = [sp filename]; NSDebugLog(@"Saving %@", className); if (![classManager makeSourceAndHeaderFilesForClass: className withName: sourceName and: headerName]) { NSRunAlertPanel(_(@"Alert"), _(@"Could not create the class's file"), nil, nil, nil); } return self; } } return nil; } - (void)controlTextDidChange:(NSNotification *)aNotification { id object = [aNotification object]; NSString *className = [classManager findClassByName: [object stringValue]]; [self selectClass: className]; } @end @implementation GormClassEditor (NSOutlineViewDataSource) // --- NSOutlineView dataSource --- - (id) outlineView: (NSOutlineView *)anOutlineView objectValueForTableColumn: (NSTableColumn *)aTableColumn byItem: item { id identifier = [aTableColumn identifier]; id className = item; if([item isKindOfClass: [GormOutletActionHolder class]]) return item; if ([identifier isEqualToString: @"classes"]) { return className; } else if ([identifier isEqualToString: @"outlets"]) { return [NSString stringWithFormat: @"%"PRIuPTR, [[classManager allOutletsForClassNamed: className] count]]; } else if ([identifier isEqualToString: @"actions"]) { return [NSString stringWithFormat: @"%"PRIuPTR, [[classManager allActionsForClassNamed: className] count]]; } return @""; } - (void) outlineView: (NSOutlineView *)anOutlineView setObjectValue: (id)anObject forTableColumn: (NSTableColumn *)aTableColumn byItem: (id)item { GormOutlineView *gov = (GormOutlineView *)anOutlineView; // ignore object values which come in as nil... if(anObject == nil) return; if ([item isKindOfClass: [GormOutletActionHolder class]]) { if (![anObject isEqualToString: @""] && ![anObject isEqualToString: [item getName]]) { NSString *name = [item getName]; // retain the name and add the action/outlet... if ([gov editType] == Actions) { NSString *formattedAction = formatAction( (NSString *)anObject ); if (![classManager isAction: formattedAction ofClass: [gov itemBeingEdited]]) { BOOL removed; removed = [document removeConnectionsWithLabel: name forClassNamed: [gov itemBeingEdited] isAction: YES]; if (removed) { [classManager replaceAction: name withAction: formattedAction forClassNamed: [gov itemBeingEdited]]; [(GormOutletActionHolder *)item setName: formattedAction]; } } else { NSString *message; message = [NSString stringWithFormat: _(@"The class %@ already has an action named %@"), [gov itemBeingEdited], formattedAction]; NSRunAlertPanel(_(@"Problem Adding Action"), message, nil, nil, nil); } } else if ([gov editType] == Outlets) { NSString *formattedOutlet = formatOutlet( (NSString *)anObject ); if (![classManager isOutlet: formattedOutlet ofClass: [gov itemBeingEdited]]) { BOOL removed; removed = [document removeConnectionsWithLabel: name forClassNamed: [gov itemBeingEdited] isAction: NO]; if (removed) { [classManager replaceOutlet: name withOutlet: formattedOutlet forClassNamed: [gov itemBeingEdited]]; [(GormOutletActionHolder *)item setName: formattedOutlet]; } } else { NSString *message; message = [NSString stringWithFormat: _(@"The class %@ already has an outlet named %@"), [gov itemBeingEdited], formattedOutlet]; NSRunAlertPanel(_(@"Problem Adding Outlet"), message, nil, nil, nil); } } } } else { if((![anObject isEqualToString: @""]) && (![anObject isEqualToString:item])) { BOOL rename; rename = [document renameConnectionsForClassNamed: item toName: anObject]; if (rename) { NSInteger row = 0; [classManager renameClassNamed: item newName: anObject]; [gov reloadData]; row = [gov rowForItem: anObject]; // make sure that item is collapsed... [gov expandItem: anObject]; [gov collapseItem: anObject]; // scroll to the item.. [gov scrollRowToVisible: row]; [gov selectRow: row]; } } } [gov setNeedsDisplay: YES]; } - (NSInteger) outlineView: (NSOutlineView *)anOutlineView numberOfChildrenOfItem: (id)item { NSArray *subclasses = [classManager subClassesOf: item]; return [subclasses count]; } - (BOOL) outlineView: (NSOutlineView *)anOutlineView isItemExpandable: (id)item { NSArray *subclasses = nil; if (item == nil) return YES; subclasses = [classManager subClassesOf: item]; if ([subclasses count] > 0) return YES; return NO; } - (id) outlineView: (NSOutlineView *)anOutlineView child: (NSInteger)index ofItem: (id)item { NSArray *subclasses = [classManager subClassesOf: item]; return [subclasses objectAtIndex: index]; } // GormOutlineView data source methods... - (NSArray *)outlineView: (NSOutlineView *)anOutlineView actionsForItem: (id)item { NSArray *actions = [classManager allActionsForClassNamed: item]; return actions; } - (NSArray *)outlineView: (NSOutlineView *)anOutlineView outletsForItem: (id)item { NSArray *outlets = [classManager allOutletsForClassNamed: item]; return outlets; } - (NSString *)outlineView: (NSOutlineView *)anOutlineView addNewActionForClass: (id)item { // removed the restriction, since it's now possible to add // actions for kit classes. return [classManager addNewActionToClassNamed: item]; } - (NSString *)outlineView: (NSOutlineView *)anOutlineView addNewOutletForClass: (id)item { GormOutlineView *gov = (GormOutlineView *)anOutlineView; if (![classManager isCustomClass: [gov itemBeingEdited]]) { return nil; } if([item isEqualToString: @"FirstResponder"]) return nil; return [classManager addNewOutletToClassNamed: item]; } // Delegate methods - (BOOL) outlineView: (NSOutlineView *)outline shouldEditTableColumn: (NSTableColumn *)tableColumn item: (id)item { BOOL result = NO; GormOutlineView *gov = (GormOutlineView *)outline; NSDebugLog(@"in the delegate %@", [tableColumn identifier]); if (tableColumn == [gov outlineTableColumn]) { NSDebugLog(@"outline table col"); if (![item isKindOfClass: [GormOutletActionHolder class]] && ![item isEqualToString: @"FirstResponder"]) { result = [classManager isCustomClass: item]; [self editClass]; } else { id itemBeingEdited = [gov itemBeingEdited]; if ([classManager isCustomClass: itemBeingEdited]) { if ([gov editType] == Actions) { result = [classManager isAction: [item getName] ofClass: itemBeingEdited]; } else if ([gov editType] == Outlets) { result = [classManager isOutlet: [item getName] ofClass: itemBeingEdited]; } } else if ([classManager isCategoryForClass: itemBeingEdited]) { if ([gov editType] == Actions) { result = [classManager isAction: [item getName] ofClass: itemBeingEdited]; } } } } return result; } - (void) outlineViewSelectionDidChange: (NSNotification *)notification { id object = [notification object]; NSInteger row = [object selectedRow]; if(row != -1) { NS_DURING { id item = [object itemAtRow: [object selectedRow]]; if ([item isKindOfClass: [GormOutletActionHolder class]] == NO && [classesView contentView] == scrollView) { [self editClass]; } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } } @end // end of data source @implementation GormClassEditor (NSBrowserDelegate) - (void) browser:(NSBrowser *)sender createRowsForColumn: (NSInteger)column inMatrix: (NSMatrix *)matrix { NSArray *classes = nil; NSEnumerator *en = nil; NSString *className = nil; NSInteger i = 0; if (sender != browserView || !matrix || ![matrix isKindOfClass:[NSMatrix class]]) { return; } if(column == 0) { classes = [classManager subClassesOf: nil]; } else { className = [[sender selectedCellInColumn: column - 1] stringValue]; classes = [classManager subClassesOf: className]; } en = [classes objectEnumerator]; for(i = 0; ((className = [en nextObject]) != nil); i++) { id cell; NSArray *sub = [classManager subClassesOf: className]; [matrix insertRow:i]; cell = [matrix cellAtRow:i column:0]; [cell setStringValue: className]; [cell setLeaf: ([sub count] == 0)]; } } @end gorm-1.3.1/GormCore/GormViewSizeInspector.h0000644000175000017500000000257114327003122017636 0ustar heronheron/* GormViewSizeInspector.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * Author: Gregory John Casamento * Separated out into header. * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormViewSizeInspector_h #define INCLUDED_GormViewSizeInspector_h #include @class NSButton, NSForm; @interface GormViewSizeInspector : IBInspector { NSButton *top; NSButton *bottom; NSButton *left; NSButton *right; NSButton *width; NSButton *height; NSForm *sizeForm; } @end #endif gorm-1.3.1/GormCore/GormSetNameController.m0000644000175000017500000000145414327003122017606 0ustar heronheron// Author: Andrew E. Ruder // Copyright (C) 2003 by Free Software Foundation, Inc #include #include "GormSetNameController.h" @implementation GormSetNameController : NSObject - (NSInteger)runAsModal { NSInteger result; if (!window) { if (![NSBundle loadNibNamed: @"GormSetName" owner: self]) { return NSAlertAlternateReturn; } } [window makeKeyAndOrderFront: nil]; [window makeFirstResponder: textField]; result = [NSApp runModalForWindow: window]; return result; } - (NSTextField *) textField { return textField; } - (void) cancelHit: (id)sender { [window close]; [NSApp stopModalWithCode: NSAlertAlternateReturn]; } - (void) okHit: (id)sender { [window close]; [NSApp stopModalWithCode: NSAlertDefaultReturn]; } @end gorm-1.3.1/GormCore/GormPalettesManager.m0000644000175000017500000005604314327003122017266 0ustar heronheron/* GormPalettesManager.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormPrivate.h" #include "GormFunctions.h" #define BUILTIN_PALETTES @"BuiltinPalettes" #define USER_PALETTES @"UserPalettes" @interface GormPalettePanel : NSPanel @end @implementation GormPalettePanel /* - (BOOL) canBecomeKeyWindow { return NO; } - (BOOL) canBecomeMainWindow { return YES; } */ @end @interface GormPaletteView : NSView { NSPasteboard *dragPb; } - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f; - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag; @end @implementation GormPaletteView static NSImage *dragImage = nil; + (void) initialize { if (self == [GormPaletteView class]) { // nothing to do... } } - (BOOL) acceptsFirstMouse: (NSEvent*)theEvent { return YES; /* Ensure we get initial mouse down event. */ } /* * Initialisation - register to receive DnD with our own types. */ - (id) initWithFrame: (NSRect)aFrame { self = [super initWithFrame: aFrame]; if (self != nil) { [self registerForDraggedTypes: [NSArray arrayWithObjects: IBCellPboardType, IBMenuPboardType, IBMenuCellPboardType, IBObjectPboardType, IBViewPboardType, IBWindowPboardType, IBFormatterPboardType,nil]]; [self setAutoresizingMask: NSViewMinXMargin|NSViewMinYMargin|NSViewMaxXMargin|NSViewMaxYMargin]; } return self; } - (void) dealloc { DESTROY(dragPb); [super dealloc]; } - (void) resizeWithOldSuperviewSize: (NSSize)oldSize { NSSize newSize = [[self superview] frame].size; NSRect frame = [self frame]; frame.origin.x -= floorf((oldSize.width - newSize.width) / 2); frame.origin.y -= floorf((oldSize.height - newSize.height) / 2); [self setFrameOrigin: frame.origin]; } /* * Dragging source protocol implementation */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f { NSString *type = [[dragPb types] lastObject]; /* * Windows and Menus are an exception to the normal DnD mechanism - * we create them if they are dropped anywhere except back in the \ * pallettes view ie. if they are dragged, but the drop fails. */ if (f == NO && ([type isEqual: IBWindowPboardType] == YES || [type isEqual: IBMenuPboardType] == YES)) { id active = [(id)NSApp activeDocument]; if (active != nil) { /* if([active objectForName: @"NSMenu"] != nil && [type isEqual: IBMenuPboardType] == YES) return; */ [active pasteType: type fromPasteboard: dragPb parent: nil]; } } } - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag { return NSDragOperationCopy; } /* * Dragging destination protocol implementation * * We actually don't handle anything being dropped on the palette, * but we pretend to accept drops from ourself, so that the drag * session quietly terminates - and it looks like the drop has * been successful - this stops windows being created when they are * dropped back on the palette (a window is normally created if the * dnd drop is refused). */ - (NSDragOperation) draggingEntered: (id)sender { return NSDragOperationCopy;; } - (BOOL) performDragOperation: (id)sender { return YES; } - (BOOL) prepareForDragOperation: (id)sender { return YES; } /* * Intercepting events in the view and handling them */ - (NSView*) hitTest: (NSPoint)loc { /* * Stop the subviews receiving events - we grab them all. */ if ([super hitTest: loc] != nil) return self; return nil; } - (void) mouseDown: (NSEvent*)theEvent { NSPoint dragPoint = [theEvent locationInWindow]; NSWindow *w = [self window]; NSView *view; GormDocument *active = (GormDocument *)[(id)NSApp activeDocument]; NSRect rect; NSString *type; id obj; NSPasteboard *pb; NSImageRep *rep; NSMenu *menu; if ([self superview] != nil) { dragPoint = [[self superview] convertPoint: dragPoint fromView: nil]; } view = [super hitTest: dragPoint]; if (view == self || view == nil) { return; // No subview to drag. } /* Make sure we're dragging the proper control and not a subview of a control (like the contentView of an NSBox) */ while (view != nil && [view superview] != self) view = [view superview]; // this will always get the correct coordinates... rect = [[view superview] convertRect: [view frame] toView: nil]; if (active == nil) { NSRunAlertPanel (nil, _(@"No document is currently active"), _(@"OK"), nil, nil); return; } RELEASE(dragImage); dragImage = [[NSImage alloc] init]; [dragImage setSize: rect.size]; rep = [[NSCachedImageRep alloc] initWithSize: rect.size depth: [w depthLimit] separate: YES alpha: [w alphaValue]>0.0 ? YES : NO]; [dragImage addRepresentation: rep]; RELEASE(rep); /* Copy the contents of the clicked view from our window into the * cached image representation. * NB. We use lockFocusOnRepresentation: for this because it sets * up cached image representation information in the image, and if * that's not done before our copy, the image will overwrite our * copied data when asked to draw the representation. */ [dragImage lockFocusOnRepresentation: rep]; NSCopyBits([w gState], rect, NSZeroPoint); [dragImage unlockFocus]; type = [IBPalette typeForView: view]; obj = [IBPalette objectForView: view]; pb = [NSPasteboard pasteboardWithName: NSDragPboard]; ASSIGN(dragPb, pb); [active copyObject: obj type: type toPasteboard: pb]; NSDebugLog(@"type: %@, obj: %@,", type, obj); menu = [active objectForName: @"NSMenu"]; [self dragImage: dragImage at: [view frame].origin offset: NSMakeSize(0,0) event: theEvent pasteboard: pb source: self slideBack: ([type isEqual: IBWindowPboardType] || ([type isEqual: IBMenuPboardType] && menu == nil)) ? NO : YES]; // Temporary fix for the art backend. This is harmless, and // shouldn't effect users of xlib, but it's necessary for now // so that users can work. [self setNeedsDisplay: YES]; } @end @implementation GormPalettesManager - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; RELEASE(panel); RELEASE(bundles); RELEASE(palettes); RELEASE(importedClasses); RELEASE(importedImages); RELEASE(importedSounds); RELEASE(substituteClasses); [super dealloc]; } - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: IBWillBeginTestingInterfaceNotification] == YES) { if ([panel isVisible] == YES) { hiddenDuringTest = YES; [panel orderOut: self]; } } else if ([name isEqual: IBWillEndTestingInterfaceNotification] == YES) { if (hiddenDuringTest == YES) { hiddenDuringTest = NO; [panel orderFront: self]; } } } - (id) init { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSScrollView *scrollView; NSArray *array; NSRect contentRect = {{0, 0}, {272, 266}}; NSRect selectionRect = {{0, 0}, {52, 52}}; NSRect scrollRect = {{-2, 192}, {276, 76}}; NSRect dragRect = {{0, 0}, {272, 200}}; unsigned int style = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *userPalettes = [defaults arrayForKey: USER_PALETTES]; panel = [[GormPalettePanel alloc] initWithContentRect: contentRect styleMask: style backing: NSBackingStoreRetained defer: NO]; [panel setTitle: _(@"Palettes")]; [panel setMinSize: [panel frame].size]; // allocate arrays and dictionaries. bundles = [[NSMutableArray alloc] init]; palettes = [[NSMutableArray alloc] init]; importedClasses = [[NSMutableDictionary alloc] init]; importedImages = [[NSMutableArray alloc] init]; importedSounds = [[NSMutableArray alloc] init]; substituteClasses = [[NSMutableDictionary alloc] init]; scrollView = [[NSScrollView alloc] initWithFrame: scrollRect]; [scrollView setHasHorizontalScroller: YES]; [scrollView setHasVerticalScroller: NO]; [scrollView setAutoresizingMask: NSViewMinYMargin | NSViewWidthSizable]; [scrollView setBorderType: NSGrooveBorder]; [[scrollView horizontalScroller] setArrowsPosition: NSScrollerArrowsNone]; [scrollView setAutohidesScrollers: YES]; selectionView = [[NSMatrix alloc] initWithFrame: selectionRect mode: NSRadioModeMatrix cellClass: [NSButtonCell class] numberOfRows: 1 numberOfColumns: 0]; [selectionView setTarget: self]; [selectionView setAction: @selector(setCurrentPalette:)]; [selectionView setCellSize: NSMakeSize(52,52)]; [selectionView setIntercellSpacing: NSMakeSize(15, 0)]; [scrollView setDocumentView: selectionView]; RELEASE(selectionView); [[panel contentView] addSubview: scrollView]; RELEASE(scrollView); dragView = [[GormPaletteView alloc] initWithFrame: dragRect]; [dragView setAutoresizingMask: 0]; [[panel contentView] addSubview: dragView]; RELEASE(dragView); [panel setFrameUsingName: @"Palettes"]; [panel setFrameAutosaveName: @"Palettes"]; current = -1; array = [[NSBundle mainBundle] pathsForResourcesOfType: @"palette" inDirectory: nil]; if ([array count] > 0) { unsigned index; array = [array sortedArrayUsingSelector: @selector(compare:)]; for (index = 0; index < [array count]; index++) { [self loadPalette: [array objectAtIndex: index]]; } } // if we have any user palettes load them as well. if(userPalettes != nil) { NSEnumerator *en = [userPalettes objectEnumerator]; id paletteName = nil; while((paletteName = [en nextObject]) != nil) { [self loadPalette: paletteName]; } } /* * Select initial palette - this should be the standard controls palette. */ [selectionView selectCellAtRow: 0 column: 2]; [self setCurrentPalette: selectionView]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillBeginTestingInterfaceNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillEndTestingInterfaceNotification object: nil]; return self; } - (BOOL) bundlePathIsLoaded: (NSString *)path { int col = 0; NSBundle *bundle; for (col = 0; col < [bundles count]; col++) { bundle = [bundles objectAtIndex: col]; if ([path isEqualToString: [bundle bundlePath]] == YES) { return YES; } } return NO; } - (BOOL) loadPalette: (NSString*)path { NSBundle *bundle; NSWindow *window; Class paletteClass; NSDictionary *paletteInfo; NSString *className; NSArray *exportClasses; NSArray *exportSounds; NSArray *exportImages; NSDictionary *subClasses; IBPalette *palette; NSButtonCell *cell; int col; if([self bundlePathIsLoaded: path]) { NSRunAlertPanel (nil, _(@"Palette has already been loaded"), _(@"OK"), nil, nil); return NO; } bundle = [NSBundle bundleWithPath: path]; if (bundle == nil) { NSRunAlertPanel(nil, _(@"Could not load Palette"), _(@"OK"), nil, nil); return NO; } path = [bundle pathForResource: @"palette" ofType: @"table"]; if (path == nil) { NSRunAlertPanel(nil, _(@"File 'palette.table' missing"), _(@"OK"), nil, nil); return NO; } // attempt to load the palette table in either the strings or plist format. NS_DURING { paletteInfo = [[NSString stringWithContentsOfFile: path] propertyList]; if (paletteInfo == nil) { paletteInfo = [[NSString stringWithContentsOfFile: path] propertyListFromStringsFileFormat]; if(paletteInfo == nil) { NSRunAlertPanel(_(@"Problem Loading Palette"), _(@"Failed to load 'palette.table' using strings or property list format."), _(@"OK"), nil, nil); return NO; } } } NS_HANDLER { NSString *message = [NSString stringWithFormat: _(@"Encountered exception %@ attempting to load 'palette.table'."), [localException reason]]; NSRunAlertPanel(_(@"Problem Loading Palette"), message, _(@"OK"), nil, nil); return NO; } NS_ENDHANDLER className = [paletteInfo objectForKey: @"Class"]; if (className == nil) { NSRunAlertPanel(nil, _(@"No palette class in 'palette.table'"), _(@"OK"), nil, nil); return NO; } paletteClass = [bundle classNamed: className]; if (paletteClass == 0) { NSRunAlertPanel (nil, _(@"Could not load palette class"), _(@"OK"), nil, nil); return NO; } palette = [[paletteClass alloc] init]; if ([palette isKindOfClass: [IBPalette class]] == NO) { NSRunAlertPanel (nil, _(@"Palette contains wrong type of class"), _(@"OK"), nil, nil); RELEASE(palette); return NO; } // add to the bundles list... [bundles addObject: bundle]; exportClasses = [paletteInfo objectForKey: @"ExportClasses"]; if(exportClasses != nil) { [self importClasses: exportClasses withDictionary: nil]; } exportImages = [paletteInfo objectForKey: @"ExportImages"]; if(exportImages != nil) { [self importImages: exportImages withBundle: bundle]; } exportSounds = [paletteInfo objectForKey: @"ExportSounds"]; if(exportSounds != nil) { [self importSounds: exportSounds withBundle: bundle]; } subClasses = [paletteInfo objectForKey: @"SubstituteClasses"]; if(subClasses != nil) { [substituteClasses addEntriesFromDictionary: subClasses]; } [palette finishInstantiate]; window = [palette originalWindow]; [window setExcludedFromWindowsMenu: YES]; // Resize the window appropriately so that we don't have issues // with scrolling. // if([window styleMask] & NSBorderlessWindowMask) // { // [window setFrame: NSMakeRect(0,0,272,160) display: NO]; // } // else // { // [window setFrame: NSMakeRect(0,0,272,224) display: NO]; // } [palettes addObject: palette]; [selectionView addColumn]; [[palette paletteIcon] setBackgroundColor: [selectionView backgroundColor]]; col = [selectionView numberOfColumns] - 1; cell = [selectionView cellAtRow: 0 column: col]; [cell setButtonType: NSOnOffButton]; [cell setRefusesFirstResponder: YES]; [cell setImage: [palette paletteIcon]]; [selectionView sizeToCells]; [selectionView selectCellAtRow: 0 column: col]; [self setCurrentPalette: selectionView]; RELEASE(palette); return YES; } - (id) openPalette: (id) sender { NSArray *fileTypes = [NSArray arrayWithObject: @"palette"]; NSOpenPanel *oPanel = [NSOpenPanel openPanel]; int result; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *userPalettes = [defaults arrayForKey: USER_PALETTES]; NSMutableArray *newUserPalettes = (userPalettes == nil)?[NSMutableArray array]:[NSMutableArray arrayWithArray: userPalettes]; [oPanel setAllowsMultipleSelection: YES]; [oPanel setCanChooseFiles: YES]; [oPanel setCanChooseDirectories: NO]; result = [oPanel runModalForDirectory: NSHomeDirectory() file: nil types: fileTypes]; if (result == NSOKButton) { NSArray *filesToOpen = [oPanel filenames]; unsigned count = [filesToOpen count]; unsigned i; for (i = 0; i < count; i++) { NSString *aFile = [filesToOpen objectAtIndex: i]; if([self bundlePathIsLoaded: aFile] == YES && [userPalettes containsObject: aFile] == NO) { // This is done here so that, if we try to reload a palette // that has previously been deleted during this session that // the palette manager won't fail, but it will simply add // the palette back in. If this returns NO, then we should // flag a problem otherwise it's successful if the palette is // already in the bundles array. This is to address bug#15989. [newUserPalettes addObject: aFile]; } else if([self loadPalette: aFile] == NO) { return nil; } else { [newUserPalettes addObject: aFile]; } } // reset the defaults to include the new palette. [defaults setObject: newUserPalettes forKey: USER_PALETTES]; return self; } return nil; } - (NSPanel*) panel { return panel; } - (void) setCurrentPalette: (id)anObj { NSView *wv; NSView *sv; NSEnumerator *enumerator; if (current >= 0) { /* * Move the views in the drag view back to the content view of the * window they originally came from. */ wv = [[[palettes objectAtIndex: current] originalWindow] contentView]; enumerator = [[dragView subviews] objectEnumerator]; while ((sv = [enumerator nextObject]) != nil) { RETAIN(sv); [sv removeFromSuperview]; [wv addSubview: sv]; RELEASE(sv); } } current = [anObj selectedColumn]; if (current >= 0 && current < [palettes count]) { id palette = [palettes objectAtIndex: current]; /* * Set the window title to reflect the palette selection. */ [panel setTitle: [[palette originalWindow] title]]; /* * Move the views from their original window into our drag view. * Resize our drag view to the right size fitrst. */ wv = [[palette originalWindow] contentView]; if (wv) [dragView setFrameSize: [wv frame].size]; enumerator = [[wv subviews] objectEnumerator]; while ((sv = [enumerator nextObject]) != nil) { RETAIN(sv); [sv removeFromSuperview]; [dragView addSubview: sv]; RELEASE(sv); } } else { NSLog(@"Bad palette selection - %d", (int)[anObj selectedColumn]); current = -1; } [dragView setNeedsDisplay: YES]; } - (NSMutableArray *) actionsForClass: (Class) cls { NSArray *methodArray = _GSObjCMethodNamesForClass(cls, NO); NSEnumerator *en = [methodArray objectEnumerator]; NSMethodSignature *actionSig = [NSMethodSignature signatureWithObjCTypes: "v12@0:4@8"]; NSMutableArray *actionsArray = [NSMutableArray array]; NSString *methodName = nil; NSRange setRange = NSMakeRange(0,3); while((methodName = [en nextObject]) != nil) { SEL sel = NSSelectorFromString(methodName); NSMethodSignature *signature = [cls instanceMethodSignatureForSelector: sel]; if([signature numberOfArguments] == 3) { if([actionSig isEqual: signature] && NSEqualRanges([methodName rangeOfString: @"set"], setRange) == NO && [methodName isEqual: @"encodeWithCoder:"] == NO && [methodName isEqual: @"mouseDown:"] == NO) { [actionsArray addObject: methodName]; } } } return actionsArray; } - (NSMutableArray *) outletsForClass: (Class) cls { NSArray *methodArray = _GSObjCMethodNamesForClass(cls, NO); NSEnumerator *en = [methodArray objectEnumerator]; NSMethodSignature *outletSig = [NSMethodSignature signatureWithObjCTypes: "v12@0:4@8"]; NSMutableArray *outletsArray = [NSMutableArray array]; NSString *methodName = nil; NSRange setRange = NSMakeRange(0,3); while((methodName = [en nextObject]) != nil) { SEL sel = NSSelectorFromString(methodName); NSMethodSignature *signature = [cls instanceMethodSignatureForSelector: sel]; if([signature numberOfArguments] == 3) { if([outletSig isEqual: signature] && NSEqualRanges([methodName rangeOfString: @"set"], setRange) == YES && [methodName isEqual: @"encodeWithCoder:"] == NO && [methodName isEqual: @"mouseDown:"] == NO) { NSRange range = NSMakeRange(3,([methodName length] - 4)); NSString *outletMethod = [[methodName substringWithRange: range] lowercaseString]; if([methodArray containsObject: outletMethod]) { [outletsArray addObject: outletMethod]; } } } } return outletsArray; } - (void) importClasses: (NSArray *)classes withDictionary: (NSDictionary *)dict { NSEnumerator *en = [classes objectEnumerator]; id className = nil; NSMutableDictionary *masterDict = [NSMutableDictionary dictionary]; // import the classes. while((className = [en nextObject]) != nil) { NSMutableDictionary *classDict = [NSMutableDictionary dictionary]; Class cls = NSClassFromString(className); Class supercls = [cls superclass]; NSString *superClassName = NSStringFromClass(supercls); NSMutableArray *actions = [self actionsForClass: cls]; NSMutableArray *outlets = [self outletsForClass: cls]; // if the superclass is defined, set it. if not, don't since // this might be a palette which adds a root class. if(superClassName != nil) { [classDict setObject: superClassName forKey: @"Super"]; } // set the action/outlet keys if(actions != nil) { [classDict setObject: actions forKey: @"Actions"]; } if(outlets != nil) { [classDict setObject: outlets forKey: @"Outlets"]; } [masterDict setObject: classDict forKey: className]; } // override any elements needed, if it's present. if(dict != nil) { [masterDict addEntriesFromDictionary: dict]; } // add the classes to the dictionary... [importedClasses addEntriesFromDictionary: masterDict]; } - (NSDictionary *) importedClasses { return importedClasses; } - (void) importImages: (NSArray *)images withBundle: (NSBundle *) bundle { NSEnumerator *en = [images objectEnumerator]; id name = nil; NSMutableArray *paths = [NSMutableArray array]; while((name = [en nextObject]) != nil) { NSString *path = [bundle pathForImageResource: name]; [paths addObject: path]; } [importedImages addObjectsFromArray: paths]; } - (NSArray *) importedImages { return importedImages; } - (void) importSounds: (NSArray *)sounds withBundle: (NSBundle *) bundle { NSEnumerator *en = [sounds objectEnumerator]; id name = nil; NSMutableArray *paths = [NSMutableArray array]; while((name = [en nextObject]) != nil) { NSString *path = [bundle pathForSoundResource: name]; [paths addObject: path]; } [importedSounds addObjectsFromArray: paths]; } - (NSArray *) importedSounds { return importedSounds; } - (NSDictionary *) substituteClasses { return substituteClasses; } @end gorm-1.3.1/GormCore/GormDocumentWindow.h0000644000175000017500000000223414327003122017144 0ustar heronheron#ifndef __INCLUDED_GormDocumentWindow_h /* GormDocumentWindow.h * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Matt Rice * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include @interface GormDocumentWindow : NSWindow { id _document; IBResourceManager *dragMgr; } - (void) setDocument:(id)document; @end #define __INCLUDED_GormDocumentWindow_h #endif gorm-1.3.1/GormCore/GormGenericEditor.m0000644000175000017500000001751714334122437016751 0ustar heronheron/* GormGenericEditor.m * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Author: Gregory John Casamento * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormGenericEditor.h" @implementation GormGenericEditor + (id) editorForDocument: (id)aDocument { // does nothing here, the subclass must define this. return nil; } - (id) editorForDocument: (id)aDocument { return [[self class] editorForDocument: aDocument]; } + (void) setEditor: (id)editor forDocument: (id)aDocument { // does nothing, defined by subclass. } - (void) setEditor: (id)editor forDocument: (id)aDocument { [[self class] setEditor: editor forDocument: aDocument]; } - (BOOL) acceptsFirstMouse: (NSEvent*)theEvent { return YES; /* Ensure we get initial mouse down event. */ } - (BOOL) activate { activated = YES; [[self window] makeKeyAndOrderFront: self]; return YES; } - (void) addObject: (id)anObject { if (anObject != nil && [objects indexOfObjectIdenticalTo: anObject] == NSNotFound) { [objects addObject: anObject]; [self refreshCells]; } } - (void) mouseDown: (NSEvent*)theEvent { if ([theEvent modifierFlags] & NSControlKeyMask) { NSPoint loc = [theEvent locationInWindow]; NSInteger r = 0, c = 0; int pos = 0; id obj = nil; loc = [self convertPoint: loc fromView: nil]; [self getRow: &r column: &c forPoint: loc]; pos = r * [self numberOfColumns] + c; if (pos >= 0 && pos < [objects count]) { obj = [objects objectAtIndex: pos]; } if (obj != nil && obj != selected) { [self selectObjects: [NSArray arrayWithObject: obj]]; [self makeSelectionVisible: YES]; } } [super mouseDown: theEvent]; } - (id) changeSelection: (id)sender { int row = [self selectedRow]; int col = [self selectedColumn]; int index = row * [self numberOfColumns] + col; id obj = nil; if (index >= 0 && index < [objects count]) { obj = [objects objectAtIndex: index]; [self selectObjects: [NSArray arrayWithObject: obj]]; } return obj; } - (BOOL) containsObject: (id)object { if ([objects indexOfObjectIdenticalTo: object] == NSNotFound) return NO; return YES; } - (void) willCloseDocument: (NSNotification *)aNotification { document = nil; } - (void) close { if(closed == NO) { closed = YES; [document editor: self didCloseForObject: [self editedObject]]; [self deactivate]; [self closeSubeditors]; } } // Stubbed out methods... Since this is an abstract class, some methods need to be // provided so that compilation will occur cleanly and to give a warning if called. - (void) closeSubeditors { } - (void) resetObject: (id)object { } - (id) initWithObject: (id)anObject inDocument: (id)aDocument { if((self = [super init]) != nil) { /* don't retain the document... */ document = aDocument; closed = NO; activated = NO; resourceManager = nil; /* since we don't retain the document handle its close notifications */ [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(willCloseDocument:) name: IBWillCloseDocumentNotification object: document]; } return self; } - (BOOL) acceptsTypeFromArray: (NSArray*)types { return NO; } - (void) makeSelectionVisible: (BOOL)flag { } - (void) deactivate { activated = NO; } - (void) copySelection { } - (void) pasteInSelection { } // end of stubbed methods... - (void) dealloc { if(closed == NO) [self close]; // The resource manager is a weak connection and is not retained, // no need to release it here. RELEASE(objects); // Remove self from any and all notifications. [[NSNotificationCenter defaultCenter] removeObserver: self]; [super dealloc]; } - (void) deleteSelection { if (selected != nil) { [document detachObject: selected]; [objects removeObjectIdenticalTo: selected]; [self selectObjects: [NSArray array]]; [self refreshCells]; } } - (id) document { return document; } - (id) editedObject { return selected; } - (id) openSubeditorForObject: (id)anObject { return nil; } - (void) orderFront { [[self window] orderFront: self]; } /* * Return the rectangle in which an objects image will be displayed. * (use window coordinates) */ - (NSRect) rectForObject: (id)anObject { NSUInteger pos = [objects indexOfObjectIdenticalTo: anObject]; NSRect rect; int r; int c; if (pos == NSNotFound) return NSZeroRect; r = pos / [self numberOfColumns]; c = pos % [self numberOfColumns]; rect = [self cellFrameAtRow: r column: c]; /* * Adjust to image area. */ rect.size.height -= 15; rect = [self convertRect: rect toView: nil]; return rect; } - (void) refreshCells { NSUInteger count = [objects count]; NSUInteger index = 0; int cols = 0; int rows = 0; int width = 0; if ([self superview]) width = [[self superview] bounds].size.width; while (width >= 72) { width -= (72 + 8); cols++; } if (cols == 0) { cols = 1; } rows = count / cols; if (rows == 0 || rows * cols != count) { rows++; } [self renewRows: rows columns: cols]; for (index = 0; index < count; index++) { id obj = [objects objectAtIndex: index]; NSButtonCell *but = [self cellAtRow: index/cols column: index%cols]; [but setImage: [obj imageForViewer]]; [but setTitle: [document nameForObject: obj]]; [but setShowsStateBy: NSChangeGrayCellMask]; [but setHighlightsBy: NSChangeGrayCellMask]; } while (index < rows * cols) { NSButtonCell *but = [self cellAtRow: index/cols column: index%cols]; [but setImage: nil]; [but setTitle: @""]; [but setShowsStateBy: NSNoCellMask]; [but setHighlightsBy: NSNoCellMask]; index++; } [self setIntercellSpacing: NSMakeSize(8,8)]; [self sizeToCells]; [self setNeedsDisplay: YES]; } - (void) removeObject: (id)anObject { NSUInteger pos; pos = [objects indexOfObjectIdenticalTo: anObject]; if (pos == NSNotFound) { return; } [objects removeObjectAtIndex: pos]; [self refreshCells]; } - (void) resizeWithOldSuperviewSize: (NSSize)oldSize { [self refreshCells]; } - (NSArray*) selection { if (selected == nil) return [NSArray array]; else return [NSArray arrayWithObject: selected]; } - (NSUInteger) selectionCount { return (selected == nil) ? 0 : 1; } - (BOOL) wantsSelection { return NO; } - (NSWindow*) window { return [super window]; } - (void) selectObjects: (NSArray*)anArray { id obj = [anArray lastObject]; selected = obj; [document setSelectionFromEditor: self]; [self makeSelectionVisible: YES]; } - (NSArray *) objects { return objects; } - (BOOL) isOpened { return (closed == NO); } // stubs for protocol methods not implemented in this editor. - (void) validateEditing { // does nothing. } - (void) drawSelection { // does nothing. } - (NSArray *)fileTypes { return nil; } @end gorm-1.3.1/GormCore/GormNSWindow.h0000644000175000017500000000254514327003122015713 0ustar heronheron/* GormWindow.h Copyright (C) 2001 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNSWindow_h #define INCLUDED_GormNSWindow_h #include @interface GormNSWindow : NSWindow { unsigned _gormStyleMask; BOOL _gormReleasedWhenClosed; NSUInteger autoPositionMask; } - (void) _setStyleMask: (unsigned int)newStyleMask; - (unsigned int) _styleMask; - (void) _setReleasedWhenClosed: (BOOL) flag; - (BOOL) _isReleasedWhenClosed; - (unsigned int) autoPositionMask; - (void) setAutoPositionMask: (unsigned int)mask; @end #endif gorm-1.3.1/GormCore/NSFontManager+GormExtensions.m0000644000175000017500000000450314327003122021001 0ustar heronheron/* NSFontManager+GormExtensions.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "NSFontManager+GormExtensions.h" #include "GormDocument.h" @interface GormDocument (FontManagerMethod) - (id) lastEditor; @end @implementation GormDocument (FontManagerMethod) /** * Get the last editor selected by the document. */ - (id) lastEditor { return lastEditor; } @end @implementation NSFontManager (GormExtensions) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wobjc-protocol-method-implementation" /** * Override for sendAction in NSFontManager. This method calls the action on the * last edited object if the attempt to send the action to the first responder is * unsuccessful. This allows the font to be more easily set. */ - (BOOL) sendAction { NSApplication *theApp = [NSApplication sharedApplication]; BOOL result = NO; if (_action) result = [theApp sendAction: _action to: nil from: self]; if(result == NO) { id object = [(GormDocument *)[(id)NSApp activeDocument] lastEditor]; NS_DURING { if(object != nil) { if([object respondsToSelector: _action]) { [object performSelector: _action withObject: self]; result = YES; } } } NS_HANDLER { NSDebugLog(@"Couldn't set font on %@: %@", object, [localException reason]); result = NO; // just to be sure. } NS_ENDHANDLER } return result; } #pragma GCC diagnostic pop @end gorm-1.3.1/GormCore/GormObjectInspector.h0000644000175000017500000000310414327003122017270 0ustar heronheron/* GormObjectInspector.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormObjectInspector_h #define INCLUDED_GormObjectInspector_h #include "GormPrivate.h" static NSString *typeId = @"Object"; static NSString *typeChar = @"Character or Boolean"; static NSString *typeUChar = @"Unsigned character/bool"; static NSString *typeInt = @"Integer"; static NSString *typeUInt = @"Unsigned integer"; static NSString *typeFloat = @"Float"; static NSString *typeDouble = @"Double"; @interface GormObjectInspector : IBInspector { NSBrowser *browser; NSMutableArray *sets; NSMutableDictionary *gets; NSMutableDictionary *types; NSButton *label; NSTextField *value; BOOL isString; } - (void) update: (id)sender; @end #endif gorm-1.3.1/GormCore/GormResource.h0000644000175000017500000000465314327003122015774 0ustar heronheron/** GormResource This class is a placeholder for a real resource. Copyright (C) 2005 Free Software Foundation, Inc. Author: Gregory John Casamento Date: Mar 2005 This file is part of the GNUstep GUI Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormResource_h #define INCLUDED_GormResource_h #include #include @class NSString, NSData; @interface GormResource : NSObject { NSString *name; NSString *fileName; NSString *fileType; BOOL isLocalized; NSString *language; NSString *path; id project; BOOL isSystemResource; BOOL isInWrapper; NSData *data; } // factory methods + (GormResource *) resourceForPath: (NSString *)path; + (GormResource *) resourceForPath: (NSString *)path inWrapper: (BOOL)flag; // initialization methods - (id) initWithPath: (NSString *)aPath; - (id) initWithPath: (NSString *)aPath inWrapper: (BOOL)flag; - (id) initWithName: (NSString *)aName path: (NSString *)aPath; - (id) initWithName: (NSString *)aName path: (NSString *)aPath inWrapper: (BOOL)flag; - (id) initWithData: (NSData *)aData withFileName: (NSString *)aFileName inWrapper: (BOOL)flag; // instances methods - (void) setName: (NSString *)aName; - (NSString *) name; - (void) setSystemResource: (BOOL)flag; - (BOOL) isSystemResource; - (void) setInWrapper: (BOOL)flag; - (BOOL) isInWrapper; - (void) setData: (NSData *)data; - (NSData *) data; - (BOOL) isEqual: (id)object; @end #endif gorm-1.3.1/GormCore/GormPluginManager.m0000644000175000017500000001276114327003122016742 0ustar heronheron/* GormPluginManager.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2004, 2008 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormPrivate.h" #include "GormFunctions.h" #include "GormPluginManager.h" #define BUILTIN_PLUGINS @"BuiltinPlugins" #define USER_PLUGINS @"UserPlugins" @implementation GormPluginManager - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; RELEASE(bundles); RELEASE(plugins); RELEASE(pluginsDict); [super dealloc]; } - (id) init { NSArray *array; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *userPlugins = [defaults arrayForKey: USER_PLUGINS]; self = [super init]; if (self == nil) { return nil; } // // Initialize dictionary // pluginsDict = [[NSMutableDictionary alloc] init]; plugins = [[NSMutableArray alloc] init]; pluginNames = [[NSMutableArray alloc] init]; array = [[NSBundle mainBundle] pathsForResourcesOfType: @"plugin" inDirectory: nil]; if ([array count] > 0) { unsigned index; array = [array sortedArrayUsingSelector: @selector(compare:)]; for (index = 0; index < [array count]; index++) { [self loadPlugin: [array objectAtIndex: index]]; } } // if we have any user plugins load them as well. if(userPlugins != nil) { NSEnumerator *en = [userPlugins objectEnumerator]; id pluginName = nil; while((pluginName = [en nextObject]) != nil) { [self loadPlugin: pluginName]; } } return self; } - (BOOL) bundlePathIsLoaded: (NSString *)path { int col = 0; NSBundle *bundle; for (col = 0; col < [bundles count]; col++) { bundle = [bundles objectAtIndex: col]; if ([path isEqualToString: [bundle bundlePath]] == YES) { return YES; } } return NO; } - (BOOL) loadPlugin: (NSString*)path { NSBundle *bundle; NSString *className; IBPlugin *plugin; Class pluginClass; if([self bundlePathIsLoaded: path]) { NSRunAlertPanel (nil, _(@"Plugin has already been loaded"), _(@"OK"), nil, nil); return NO; } bundle = [NSBundle bundleWithPath: path]; if (bundle == nil) { NSRunAlertPanel(nil, _(@"Could not load Plugin"), _(@"OK"), nil, nil); return NO; } className = [[bundle infoDictionary] objectForKey: @"NSPrincipalClass"]; if (className == nil) { NSRunAlertPanel(nil, _(@"No plugin class in plist"), _(@"OK"), nil, nil); return NO; } pluginClass = [bundle classNamed: className]; if (pluginClass == 0) { NSRunAlertPanel (nil, _(@"Could not load plugin class"), _(@"OK"), nil, nil); return NO; } plugin = [[pluginClass alloc] init]; if ([plugin isKindOfClass: [IBPlugin class]] == NO) { NSRunAlertPanel (nil, _(@"Plugin contains wrong type of class"), _(@"OK"), nil, nil); RELEASE(plugin); return NO; } // add to the bundles list... [bundles addObject: bundle]; [plugin didLoad]; // manage plugin data. [pluginsDict setObject: plugin forKey: className]; [plugins addObject: plugin]; [pluginNames addObject: className]; RELEASE(plugin); return YES; } - (id) openPlugin: (id) sender { NSArray *fileTypes = [NSArray arrayWithObject: @"plugin"]; NSOpenPanel *oPanel = [NSOpenPanel openPanel]; int result; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *userPlugins = [defaults arrayForKey: USER_PLUGINS]; NSMutableArray *newUserPlugins = (userPlugins == nil)?[NSMutableArray array]:[NSMutableArray arrayWithArray: userPlugins]; [oPanel setAllowsMultipleSelection: YES]; [oPanel setCanChooseFiles: YES]; [oPanel setCanChooseDirectories: NO]; result = [oPanel runModalForDirectory: NSHomeDirectory() file: nil types: fileTypes]; if (result == NSOKButton) { NSArray *filesToOpen = [oPanel filenames]; unsigned count = [filesToOpen count]; unsigned i; for (i = 0; i < count; i++) { NSString *aFile = [filesToOpen objectAtIndex: i]; if([self bundlePathIsLoaded: aFile] == YES && [userPlugins containsObject: aFile] == NO) { [newUserPlugins addObject: aFile]; } else if([self loadPlugin: aFile] == NO) { return nil; } else { [newUserPlugins addObject: aFile]; } } // reset the defaults to include the new plugin. [defaults setObject: newUserPlugins forKey: USER_PLUGINS]; return self; } return nil; } @end gorm-1.3.1/GormCore/GormWrapperBuilder.m0000644000175000017500000001131314327003122017130 0ustar heronheron/* GormWrapperBuilder * * These classes handle loading different formats into the * document's data structures. * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include static NSMutableDictionary *_wrapperBuilderMap = nil; static GormWrapperBuilderFactory *_sharedWrapperBuilderFactory = nil; @implementation GormWrapperBuilder + (NSString *) fileType { [self subclassResponsibility: _cmd]; return nil; } - (NSFileWrapper *) buildFileWrapperWithDocument: (GormDocument *)doc { NSFileWrapper *result = nil; NSDictionary *wrappers = [self buildFileWrapperDictionaryWithDocument: doc]; if(wrappers != nil) { result = [[NSFileWrapper alloc] initDirectoryWithFileWrappers: wrappers]; } return result; } - (NSMutableDictionary *) buildFileWrapperDictionaryWithDocument: (GormDocument *)doc { NSMutableDictionary *fileWrappers = [NSMutableDictionary dictionary]; NSFileWrapper *scmDirWrapper = nil; NSArray *resources; id object; NSEnumerator *en; // Assign document and don't retain... document = doc; // // Add the SCM wrapper to the wrapper, if it's present. // scmDirWrapper = [document scmWrapper]; if(scmDirWrapper != nil) { NSString *name = [[scmDirWrapper filename] lastPathComponent]; [fileWrappers setObject: scmDirWrapper forKey: name]; } // // Copy resources into the new folder... // Gorm doesn't copy these into the folder right away since the folder may // not yet exist. This allows the user to add/delete resources as they see fit // but only those which they end up with will actually be put into the wrapper // when the model/document is saved. // resources = [[document sounds] arrayByAddingObjectsFromArray: [document images]]; object = nil; en = [resources objectEnumerator]; while ((object = [en nextObject]) != nil) { if([object isSystemResource] == NO) { NSString *path = [object path]; NSString *resName = nil; NSData *resData = nil; NSFileWrapper *fileWrapper = nil; if([object isInWrapper]) { resName = [object fileName]; resData = [object data]; } else { resName = [path lastPathComponent]; resData = [NSData dataWithContentsOfFile: path]; [object setData: resData]; [object setInWrapper: YES]; } fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: resData]; [fileWrappers setObject: fileWrapper forKey: resName]; RELEASE(fileWrapper); } } return fileWrappers; } @end @implementation GormWrapperBuilderFactory + (void) initialize { NSArray *classes = GSObjCAllSubclassesOfClass([GormWrapperBuilder class]); NSEnumerator *en = [classes objectEnumerator]; Class cls = nil; while((cls = [en nextObject]) != nil) { [self registerWrapperBuilderClass: cls]; } } + (void) registerWrapperBuilderClass: (Class)aClass { if(_wrapperBuilderMap == nil) { _wrapperBuilderMap = [[NSMutableDictionary alloc] initWithCapacity: 5]; } [_wrapperBuilderMap setObject: aClass forKey: (NSString *)[aClass fileType]]; } + (GormWrapperBuilderFactory *) sharedWrapperBuilderFactory { if(_sharedWrapperBuilderFactory == nil) { _sharedWrapperBuilderFactory = [[self alloc] init]; } return _sharedWrapperBuilderFactory; } - (id) init { if((self = [super init]) != nil) { if(_sharedWrapperBuilderFactory == nil) { _sharedWrapperBuilderFactory = self; } } return self; } - (id) wrapperBuilderForType: (NSString *) type { Class cls = [_wrapperBuilderMap objectForKey: type]; id obj = AUTORELEASE([[cls alloc] init]); return obj; } @end gorm-1.3.1/GormCore/GormConnectionInspector.m0000644000175000017500000004120014327003122020165 0ustar heronheron/* GormInspectorsManager.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * Author: Gregory John Casamento * Date: 2003,2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormConnectionInspector.h" @interface GormConnectionCell : NSBrowserCell { BOOL isOutletConnected; } @end @implementation GormConnectionCell : NSBrowserCell - (void) setIsOutletConnected:(BOOL)yn { isOutletConnected = yn; } - (void) drawInteriorWithFrame: (NSRect)cellFrame inView: (NSView *)controlView { if (isOutletConnected != NO) { NSImage *dimple_image = [NSImage imageNamed: @"common_Dimple"]; NSRect title_rect = cellFrame; NSRect imgRect; if ([self isHighlighted] != NO) { [[self highlightColorInView: controlView] setFill]; NSRectFill(cellFrame); } imgRect.size = [dimple_image size]; imgRect.origin.x = MAX(NSMaxX(title_rect) - imgRect.size.width - 4.0, 0.); imgRect.origin.y = MAX(NSMidY(title_rect) - (imgRect.size.height/2.), 0.); title_rect.size.width -= imgRect.size.width + 8; [super drawInteriorWithFrame: title_rect inView: controlView]; if (controlView != nil) { imgRect = [controlView centerScanRect: imgRect]; } [dimple_image drawInRect: imgRect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction: 1.0 respectFlipped: YES hints: nil]; } else { [super drawInteriorWithFrame: cellFrame inView: controlView]; } } @end @implementation GormConnectionInspector - (id) init { if ((self = [super init]) != nil) { if([NSBundle loadNibNamed: @"GormConnectionInspector" owner: self] == NO) { NSLog(@"Couldn't load GormConnectionInsector"); return nil; } // Create the okay and revert buttons, programmatically, since we shouldn't // add them to the view. The wantsButtons handling code will do that. okButton = [[NSButton alloc] initWithFrame: NSMakeRect(0,0,80,20)]; [okButton setAutoresizingMask: NSViewMinXMargin]; [okButton setAction: @selector(ok:)]; [okButton setTarget: self]; [okButton setTitle: _(@"Connect")]; [okButton setEnabled: NO]; revertButton = [[NSButton alloc] initWithFrame: NSMakeRect(0,0,80,20)]; [revertButton setAutoresizingMask: NSViewMaxXMargin]; [revertButton setAction: @selector(revert:)]; [revertButton setTarget: self]; [revertButton setTitle: _(@"Revert")]; [revertButton setEnabled: NO]; } return self; } - (void) awakeFromNib { [newBrowser setCellClass: [GormConnectionCell class]]; [newBrowser setDoubleAction: @selector(ok:)]; } - (NSInteger) browser: (NSBrowser*)sender numberOfRowsInColumn: (NSInteger)column { NSInteger rows = 0; if (sender == newBrowser) { if (column == 0) { rows = [outlets count]; } else { NSString *name = [[sender selectedCellInColumn: 0] stringValue]; if ([name isEqual: @"target"]) { rows = [actions count]; } } } else { rows = [connectors count]; } return rows; } - (NSString*) browser: (NSBrowser*)sender titleOfColumn: (NSInteger)column { if (sender == newBrowser) { if (column == 0) { return @"Outlets"; } else { NSString *name = [[sender selectedCellInColumn: 0] stringValue]; if ([name isEqual: @"target"]) { return @"Actions"; } else { return @""; } } } else { return @"Connections"; } } - (void) _selectAction: (NSString *)action { /* * Ensure that the actions are displayed in column one, * and select the action for the current connection (if any). */ [newBrowser reloadColumn: 1]; if (action != nil) { [newBrowser selectRow: [actions indexOfObject: action] inColumn: 1]; } } - (void) _internalCall: (NSBrowser *)sender { unsigned numConnectors = [connectors count]; unsigned index = 0; NSBrowserCell *cell = [sender selectedCell]; NSString *title = [cell stringValue]; NSInteger col = [sender selectedColumn]; if (sender == newBrowser) { if (col == 0) { if ([title isEqual: @"target"]) { id con = nil; for (index = 0; index < numConnectors; index++) { con = [connectors objectAtIndex: index]; if ([con isKindOfClass: [NSNibControlConnector class]] == YES) { RELEASE(actions); actions = RETAIN([[(id)NSApp classManager] allActionsForObject: [con destination]]); break; } else { con = nil; } } if (con == nil) // && [actions containsObject: [currentConnector label]] == NO) { RELEASE(actions); actions = RETAIN([[(id)NSApp classManager] allActionsForObject: [NSApp connectDestination]]); if ([actions count] > 0) { con = [[NSNibControlConnector alloc] init]; [con setSource: object]; [con setDestination: [NSApp connectDestination]]; [con setLabel: [actions objectAtIndex: 0]]; AUTORELEASE(con); } } // if we changed the current connector, update to the new one... if (currentConnector != con) { ASSIGN(currentConnector, con); } /* * Ensure that the actions are displayed in column one, * and select the action for the current connection (if any). */ [self _selectAction: [con label]]; } else { BOOL found = NO; /* * See if there already exists a connector for this outlet. */ for (index = 0; index < numConnectors; index++) { id con = [connectors objectAtIndex: index]; if ([con label] == nil || [[con label] isEqual: title] == YES) { ASSIGN(currentConnector, con); found = YES; break; } } /* * if there was no connector, make one. */ if (found == NO) { RELEASE(currentConnector); currentConnector = [[NSNibOutletConnector alloc] init]; [currentConnector setSource: object]; [currentConnector setDestination: [NSApp connectDestination]]; [currentConnector setLabel: title]; } } /* * Update the bottom browser. */ [oldBrowser loadColumnZero]; [oldBrowser selectRow: index inColumn: 0]; [NSApp displayConnectionBetween: object and: [currentConnector destination]]; } else { BOOL found = NO; for (index = 0; index < numConnectors; index++) { id con = [connectors objectAtIndex: index]; if ([con isKindOfClass: [NSNibControlConnector class]] == YES) { NSString *action = [con label]; if ([action isEqual: title] == YES) { ASSIGN(currentConnector, con); found = YES; break; } } } if (found == NO) { RELEASE(currentConnector); currentConnector = [[NSNibControlConnector alloc] init]; [currentConnector setSource: object]; [currentConnector setDestination: [NSApp connectDestination]]; [currentConnector setLabel: title]; [oldBrowser loadColumnZero]; } [oldBrowser selectRow: index inColumn: 0]; } } else { for (index = 0; index < numConnectors; index++) { id con = [connectors objectAtIndex: index]; NSString *label = [con label]; if ([title hasPrefix: label] == YES) { NSString *name; id dest = [NSApp connectDestination]; dest = [con destination]; name = [[(id)NSApp activeDocument] nameForObject: dest]; name = [label stringByAppendingFormat: @" (%@)", name]; if ([title isEqual: name] == YES) { NSString *path = label; ASSIGN(currentConnector, con); /* * Update the main browser to reflect selected connection */ path = [@"/" stringByAppendingString: label]; if ([con isKindOfClass: [NSNibControlConnector class]] == YES) { path = [@"/target" stringByAppendingString: path]; } [newBrowser setPath: path]; [NSApp displayConnectionBetween: object and: [con destination]]; break; } } } } // if it's a control connection select target, if not, don't // if([currentConnector isKindOfClass: [NSNib [self updateButtons]; } - (BOOL) browser: (NSBrowser*)sender selectCellWithString: (NSString*)title inColumn: (NSInteger)col { NSMatrix *matrix = [sender matrixInColumn: col]; NSInteger rows = [matrix numberOfRows]; NSInteger i; for (i = 0; i < rows; i++) { NSBrowserCell *cell = [matrix cellAtRow: i column: 0]; if ([[cell stringValue] isEqual: title] == YES) { [matrix selectCellAtRow: i column: 0]; return YES; } } return NO; } - (void) browser: (NSBrowser*)sender willDisplayCell: (id)aCell atRow: (NSInteger)row column: (NSInteger)col { [aCell setRefusesFirstResponder: YES]; if (sender == newBrowser) { NSString *name; if (col == 0) { if (row >= 0 && row < [outlets count]) { name = [outlets objectAtIndex: row]; [aCell setStringValue: name]; if ([name isEqual: @"target"]) { [aCell setLeaf: NO]; } else { [aCell setLeaf: YES]; } [aCell setEnabled: YES]; // Draws dimple for connected outlets NSEnumerator *en = [connectors objectEnumerator]; id conn = nil; while ((conn = [en nextObject]) != nil) { if ([name isEqualToString: [conn label]]) { [aCell setIsOutletConnected: YES]; break; } } } else { [aCell setStringValue: @""]; [aCell setLeaf: YES]; [aCell setEnabled: NO]; } } else { name = [[sender selectedCellInColumn: 0] stringValue]; if ([name isEqual: @"target"] == NO) { NSDebugLog(@"cell selected in actions column without target"); } if (row >= 0 && row < [actions count]) { [aCell setStringValue: [actions objectAtIndex: row]]; [aCell setEnabled: YES]; } else { [aCell setStringValue: @""]; [aCell setEnabled: NO]; } [aCell setLeaf: YES]; } } else { if (row >= 0 && row < [connectors count]) { NSString *label; NSString *name; id dest = [NSApp connectDestination]; label = [[connectors objectAtIndex: row] label]; dest = [[connectors objectAtIndex: row] destination]; name = [[(id)NSApp activeDocument] nameForObject: dest]; name = [label stringByAppendingFormat: @" (%@)", name]; [aCell setStringValue: name]; [aCell setEnabled: YES]; } else { [aCell setStringValue: @""]; [aCell setEnabled: NO]; } [aCell setLeaf: YES]; } } - (void) dealloc { RELEASE(currentConnector); RELEASE(connectors); RELEASE(actions); RELEASE(outlets); RELEASE(okButton); RELEASE(revertButton); [super dealloc]; } - (void) handleNotification: (NSNotification *)notification { // got the notification... since we only subscribe to one, just do what // needs to be done. [self setObject: object]; // resets the browser... } - (void) ok: (id)sender { if([currentConnector destination] == nil || [currentConnector source] == nil) { NSRunAlertPanel(_(@"Problem making connection"), _(@"Please select a valid destination."), _(@"OK"), nil, nil, nil); return; } else if ([connectors containsObject: currentConnector] == YES) { id con = currentConnector; [[(id)NSApp activeDocument] removeConnector: con]; [connectors removeObject: con]; [oldBrowser loadColumnZero]; } else { NSString *path; id dest; /* * Establishing a target/action type connection will automatically * remove any previous target/action connection. */ if ([currentConnector isKindOfClass: [NSNibControlConnector class]]) { NSEnumerator *enumerator = [connectors objectEnumerator]; id con; while ((con = [enumerator nextObject]) != nil) { if ([con isKindOfClass: [NSNibControlConnector class]]) { [[(id)NSApp activeDocument] removeConnector: con]; [connectors removeObjectIdenticalTo: con]; break; } } // select the new action from the list... [self _selectAction: [currentConnector label]]; } [connectors addObject: currentConnector]; [[(id)NSApp activeDocument] addConnector: currentConnector]; /* * When we establish a connection, we want to highlight it in * the browser so the user can see it has been done. */ dest = [currentConnector destination]; path = [[(id)NSApp activeDocument] nameForObject: dest]; path = [[currentConnector label] stringByAppendingFormat: @" (%@)", path]; path = [@"/" stringByAppendingString: path]; [oldBrowser loadColumnZero]; [oldBrowser setPath: path]; } // Update image marker in "Outlets" browser NSString *newPath = [newBrowser path]; [newBrowser loadColumnZero]; [newBrowser setPath:newPath]; // mark as edited. [super ok: sender]; [self updateButtons]; } - (void) setObject: (id)anObject { if (anObject != nil) { NSArray *array; [super setObject: anObject]; RELEASE(connectors); /* * Create list of existing connections for selected object. */ connectors = [[NSMutableArray alloc] init]; array = [[(id)NSApp activeDocument] connectorsForSource: object ofClass: [NSNibControlConnector class]]; [connectors addObjectsFromArray: array]; array = [[(id)NSApp activeDocument] connectorsForSource: object ofClass: [NSNibOutletConnector class]]; [connectors addObjectsFromArray: array]; RELEASE(outlets); outlets = RETAIN([[(id)NSApp classManager] allOutletsForObject: object]); DESTROY(actions); [oldBrowser loadColumnZero]; /* * See if we can do initial selection based on pre-existing connections. */ if ([NSApp isConnecting] == YES) { id dest = [currentConnector destination]; unsigned row; for (row = 0; row < [connectors count]; row++) { id con = [connectors objectAtIndex: row]; if ([con destination] == dest) { ASSIGN(currentConnector, con); [oldBrowser selectRow: row inColumn: 0]; break; } } } [newBrowser loadColumnZero]; if (currentConnector == nil) { if ([connectors count] > 0) { currentConnector = RETAIN([connectors objectAtIndex: 0]); } else if ([outlets count] == 1) { [newBrowser selectRow: 0 inColumn: 0]; [newBrowser sendAction]; } } if ([currentConnector isKindOfClass: [NSNibControlConnector class]] == YES && [NSApp isConnecting] == NO) { [newBrowser setPath: @"/target"]; [newBrowser sendAction]; } [self updateButtons]; } } - (void) updateButtons { if (currentConnector == nil) { [okButton setEnabled: NO]; } else { GormDocument *active = (GormDocument *)[(id)NSApp activeDocument]; id src = [currentConnector source]; id dest = [currentConnector destination]; // highlight or unhiglight the connection depending on // the object being connected to. if((src == nil || src == [active firstResponder]) || ((dest == nil || dest == [active firstResponder]) && [currentConnector isKindOfClass: [NSNibOutletConnector class]] == YES)) { [okButton setEnabled: NO]; } else { [okButton setEnabled: YES]; if ([connectors containsObject: currentConnector] == YES) { [okButton setTitle: _(@"Disconnect")]; } else { [okButton setTitle: _(@"Connect")]; } } } } - (BOOL) wantsButtons { return YES; } @end gorm-1.3.1/GormCore/GormSoundEditor.h0000644000175000017500000000222214327003123016433 0ustar heronheron/* GormSoundEditor.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2003, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormSoundEditor_h #define INCLUDED_GormSoundEditor_h #include "GormResourceEditor.h" @interface GormSoundEditor : GormResourceEditor // + (GormSoundEditor*) editorForDocument: (id)aDocument; @end #endif gorm-1.3.1/GormCore/GormClassInspector.m0000644000175000017500000005303214327003122017141 0ustar heronheron/** GormClassInspector allow user to select custom classes Copyright (C) 2003 Free Software Foundation, Inc. Author: Gregory John Casamento Date: March 2003 This file is part of GNUstep. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All rights reserved */ #include #include #include "GormClassInspector.h" #include "GormClassManager.h" #include "GormDocument.h" #include "GormFunctions.h" #include "GormPrivate.h" #include "GormProtocol.h" NSNotificationCenter *nc = nil; // interfaces @interface GormDocument (GormClassInspectorAdditions) - (void) collapseClass: (NSString *)className; - (void) reloadClasses; @end // the data source classes for each of the tables... @interface GormOutletDataSource : NSObject { id inspector; } - (void) setInspector: (id)ins; @end @interface GormActionDataSource : NSObject { id inspector; } - (void) setInspector: (id)ins; @end @interface GormClassesDataSource : NSObject { id inspector; } - (void) setInspector: (id)ins; @end // implementation @implementation GormDocument (GormClassInspectorAdditions) - (void) collapseClass: (NSString *)className { NSDebugLog(@"%@",className); [classesView resetObject: className]; } - (void) reloadClasses { [classesView reloadData]; } @end @implementation GormOutletDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSArray *list = [[(id)NSApp classManager] allOutletsForClassNamed: [inspector _currentClass]]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSArray *list = [[(id)NSApp classManager] allOutletsForClassNamed: [inspector _currentClass]]; id value = nil; if([list count] > 0) { value = [list objectAtIndex: rowIndex]; } return value; } - (void) tableView: (NSTableView *)tv setObjectValue: (id)anObject forTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { id classManager = [(id)NSApp classManager]; NSString *currentClass = [inspector _currentClass]; NSArray *list = [classManager allOutletsForClassNamed: currentClass]; NSString *name = [list objectAtIndex: rowIndex]; NSString *formattedOutlet = formatOutlet( (NSString *)anObject ); GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; if(![name isEqual: formattedOutlet]) { BOOL removed = [document removeConnectionsWithLabel: name forClassNamed: currentClass isAction: NO]; if(removed) { [classManager replaceOutlet: name withOutlet: formattedOutlet forClassNamed: currentClass]; // collapse the class in question if it's being edited and make // certain that names in the list are kept in sync. [document collapseClass: currentClass]; [document reloadClasses]; [document selectClass: currentClass editClass: NO]; } } } // set methods - (void) setInspector: (id)ins { ASSIGN(inspector, ins); } @end @implementation GormActionDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSArray *list = [[(id)NSApp classManager] allActionsForClassNamed: [inspector _currentClass]]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSArray *list = [[(id)NSApp classManager] allActionsForClassNamed: [inspector _currentClass]]; return [list objectAtIndex: rowIndex]; } - (void) tableView: (NSTableView *)tv setObjectValue: (id)anObject forTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { id classManager = [(id)NSApp classManager]; NSString *currentClass = [inspector _currentClass]; NSArray *list = [classManager allActionsForClassNamed: currentClass]; NSString *name = [list objectAtIndex: rowIndex]; NSString *formattedAction = formatAction( (NSString *)anObject ); GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; if(![name isEqual: formattedAction]) { BOOL removed = [document removeConnectionsWithLabel: name forClassNamed: currentClass isAction: YES]; if(removed) { [classManager replaceAction: name withAction: formattedAction forClassNamed: currentClass]; // collapse the class in question if it's being edited and make // certain that names in the list are kept in sync. [document collapseClass: currentClass]; [document reloadClasses]; [document selectClass: currentClass editClass: NO]; } } } // set method - (void) setInspector: (id)ins { ASSIGN(inspector, ins); } @end @implementation GormClassesDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSArray *list = [[(id)NSApp classManager] allClassNames]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSArray *list = [[(id)NSApp classManager] allClassNames]; id value = nil; if([list count] > 0) { value = [list objectAtIndex: rowIndex]; } return value; } - (void) tableView: (NSTableView *)tv setObjectValue: (id)anObject forTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { // cannot replace any values for this data source... } // set methods - (void) setInspector: (id)ins { ASSIGN(inspector, ins); } @end @implementation GormClassInspector + (void) initialize { if (self == [GormClassInspector class]) { nc = [NSNotificationCenter defaultCenter]; } } - (id) init { self = [super init]; if (self != nil) { // initialize all member variables... actionTable = nil; addAction = nil; addOutlet = nil; classField = nil; outletTable = nil; removeAction = nil; removeOutlet = nil; tabView = nil; currentClass = nil; actionData = nil; outletData = nil; parentClassData = nil; // load the gui... if (![NSBundle loadNibNamed: @"GormClassInspector" owner: self]) { NSLog(@"Could not open gorm GormClassInspector"); return nil; } [nc addObserver: self selector: @selector(handleNotification:) name: GormDidModifyClassNotification object: nil]; } return self; } - (void) awakeFromNib { // instantiate.. actionData = [[GormActionDataSource alloc] init]; outletData = [[GormOutletDataSource alloc] init]; parentClassData = [[GormClassesDataSource alloc] init]; // initialize.. [actionData setInspector: self]; [outletData setInspector: self]; [parentClassData setInspector: self]; // use.. [actionTable setDataSource: actionData]; [outletTable setDataSource: outletData]; [parentClass setDataSource: parentClassData]; [parentClass setDoubleAction: @selector(selectClass:)]; [parentClass setTarget: self]; // delegate... [actionTable setDelegate: self]; [outletTable setDelegate: self]; [parentClass setDelegate: self]; } - (void) _refreshView { id addActionCell = [addAction cell]; id removeActionCell = [removeAction cell]; id addOutletCell = [addOutlet cell]; id removeOutletCell = [removeOutlet cell]; id selectClassCell = [selectClass cell]; id searchCell = [search cell]; BOOL isEditable = [classManager isCustomClass: [self _currentClass]]; BOOL isFirstResponder = [[self _currentClass] isEqualToString: @"FirstResponder"]; NSArray *list = [classManager allClassNames]; NSString *superClass = [classManager parentOfClass: [self _currentClass]]; NSUInteger index = [list indexOfObject: superClass]; [classField setStringValue: [self _currentClass]]; [outletTable reloadData]; [actionTable reloadData]; [parentClass reloadData]; // [outletTable deselectAll: self]; // [actionTable deselectAll: self]; // activate for actions... [addActionCell setEnabled: YES]; [removeActionCell setEnabled: NO]; // YES]; // activate for outlet... [addOutletCell setEnabled: (isEditable && !isFirstResponder)]; [removeOutletCell setEnabled: NO]; // (isEditable && !isFirstResponder)]; // activate select class... [selectClassCell setEnabled: (isEditable && !isFirstResponder)]; [parentClass setEnabled: (isEditable && !isFirstResponder)]; [searchCell setEnabled: (isEditable && !isFirstResponder)]; [classField setEditable: (isEditable && !isFirstResponder)]; [classField setBackgroundColor: ((isEditable && !isFirstResponder)?[NSColor whiteColor]:[NSColor lightGrayColor])]; // select the parent class if(index != NSNotFound && list != nil) { [parentClass selectRow: index byExtendingSelection: NO]; [parentClass scrollRowToVisible: index]; } } - (void) addAction: (id)sender { NS_DURING { GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; if(document != nil) { NSString *className = [self _currentClass]; NSString *newAction = [classManager addNewActionToClassNamed: className]; NSArray *list = [classManager allActionsForClassNamed: className]; NSInteger row = [list indexOfObject: newAction]; [document collapseClass: className]; [document reloadClasses]; [nc postNotificationName: IBInspectorDidModifyObjectNotification object: classManager]; [actionTable reloadData]; [actionTable scrollRowToVisible: row]; [actionTable selectRow: row byExtendingSelection: NO]; [document selectClass: className]; [super ok: sender]; } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } - (void) addOutlet: (id)sender { NS_DURING { GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; if(document != nil) { NSString *className = [self _currentClass]; NSString *newOutlet = [classManager addNewOutletToClassNamed: className]; NSArray *list = [classManager allOutletsForClassNamed: className]; NSInteger row = [list indexOfObject: newOutlet]; [document collapseClass: className]; [document reloadClasses]; [nc postNotificationName: IBInspectorDidModifyObjectNotification object: classManager]; [outletTable reloadData]; [outletTable scrollRowToVisible: row]; [outletTable selectRow: row byExtendingSelection: NO]; [document selectClass: className]; [super ok: sender]; } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } - (void) removeAction: (id)sender { NS_DURING { NSInteger i = [actionTable selectedRow]; NSString *className = [self _currentClass]; NSArray *list = [classManager allActionsForClassNamed: className]; BOOL removed = NO; BOOL isCustom = [classManager isCustomClass: className]; NSString *name = nil; GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; if(document != nil) { // check the count... if(isCustom || [classManager isCategoryForClass: className]) { if([list count] > 0 && i >= 0 && i < [list count]) { [actionTable deselectAll: self]; name = [list objectAtIndex: i]; if(isCustom || [classManager isAction: name onCategoryForClassNamed: className]) { removed = [document removeConnectionsWithLabel: name forClassNamed: currentClass isAction: YES]; } } if(removed) { [super ok: sender]; [document collapseClass: className]; [document reloadClasses]; [classManager removeAction: name fromClassNamed: className]; [nc postNotificationName: IBInspectorDidModifyObjectNotification object: classManager]; [actionTable reloadData]; [document selectClass: className]; } } } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } - (void) removeOutlet: (id)sender { NS_DURING { NSInteger i = [outletTable selectedRow]; NSString *className = [self _currentClass]; NSArray *list = [classManager allOutletsForClassNamed: className]; BOOL removed = NO; NSString *name = nil; GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; if(document != nil) { // check the count... if([list count] > 0 && i >= 0 && i < [list count]) { [outletTable deselectAll: self]; name = [list objectAtIndex: i]; removed = [document removeConnectionsWithLabel: name forClassNamed: currentClass isAction: NO]; } if(removed) { [super ok: sender]; [document collapseClass: className]; [document reloadClasses]; [classManager removeOutlet: name fromClassNamed: className]; [nc postNotificationName: IBInspectorDidModifyObjectNotification object: classManager]; [outletTable reloadData]; [document selectClass: className]; } } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } - (void) select: (id)sender { NSLog(@"select..."); } - (void) searchForClass: (id)sender { NSArray *list = [classManager allClassNames]; NSString *stringValue = [searchText stringValue]; NSInteger index = [list indexOfObject: stringValue]; NSLog(@"Search... %@",[searchText stringValue]); if(index != NSNotFound && list != nil && [stringValue isEqualToString: @"FirstResponder"] == NO) { // select the parent class [parentClass selectRow: index byExtendingSelection: NO]; [parentClass scrollRowToVisible: index]; } } - (void) selectClass: (id)sender { NSArray *list = [classManager allClassNames]; NSInteger row = [parentClass selectedRow]; NS_DURING { if(row >= 0) { NSString *newParent = [list objectAtIndex: row]; NSString *name = [self _currentClass]; GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; // if it's a custom class, let it go, if not do nothing. if(document != nil) { if([classManager isCustomClass: name]) { NSString *title = _(@"Modifying/Reparenting Class"); NSString *msg = [NSString stringWithFormat: _(@"This action may break existing connections " @"to instances of class '%@'" @"and it's subclasses. Continue?"), name]; NSInteger retval = -1; BOOL removed = NO; [super ok: sender]; // ask the user if he/she wants to continue... retval = NSRunAlertPanel(title, msg,_(@"OK"),_(@"Cancel"), nil, nil); if (retval == NSAlertDefaultReturn) { removed = YES; } else { removed = NO; } // if removed, move the class and notify... if(removed) { NSString *oldSuper = [classManager superClassNameForClassNamed: name]; [classManager setSuperClassNamed: newParent forClassNamed: name]; [document refreshConnectionsForClassNamed: name]; [nc postNotificationName: IBInspectorDidModifyObjectNotification object: classManager]; [document collapseClass: oldSuper]; [document collapseClass: name]; [document reloadClasses]; [document selectClass: name]; } } } } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } - (void) changeClassName: (id)sender { NSString *name = [self _currentClass]; NSString *newName = [sender stringValue]; GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; BOOL flag = NO; // check to see if the user wants to do this and rename the connections. flag = [document renameConnectionsForClassNamed: name toName: newName]; if(flag) { [document collapseClass: name]; [classManager renameClassNamed: name newName: newName]; [nc postNotificationName: IBInspectorDidModifyObjectNotification object: classManager]; [document reloadClasses]; [document selectClass: newName]; [super ok: sender]; } } - (void) selectAction: (id)sender { NSInteger row = [sender selectedRow]; NSArray *actions = [classManager allActionsForClassNamed: currentClass]; if(row <= [actions count]) { BOOL isCustom = [classManager isCustomClass: currentClass]; id cell = [removeAction cell]; NSString *action = [actions objectAtIndex: row]; BOOL isAction = [classManager isAction: action ofClass: currentClass]; BOOL isActionOnCategory = [classManager isAction: action onCategoryForClassNamed: currentClass]; [cell setEnabled: ((isCustom && isAction) || isActionOnCategory)]; } } - (void) selectOutlet: (id)sender { NSInteger row = [sender selectedRow]; NSArray *outlets = [classManager allOutletsForClassNamed: currentClass]; if(row <= [outlets count]) { BOOL isCustom = [classManager isCustomClass: currentClass]; BOOL isFirstResponder = [currentClass isEqualToString: @"FirstResponder"]; id cell = [removeOutlet cell]; NSString *outlet = [outlets objectAtIndex: row]; BOOL isOutlet = [classManager isOutlet: outlet ofClass: currentClass]; [cell setEnabled: (isOutlet && isCustom && !isFirstResponder)]; } } - (void) clickOnClass: (id)sender { NSLog(@"Click on class %@",sender); } - (void) setObject: (id)anObject { NSInteger outletsCount = 0; NSInteger actionsCount = 0; NSTabViewItem *item = nil; if([anObject isKindOfClass: [GormClassProxy class]]) { [super setObject: anObject]; ASSIGN(classManager, [(id)NSApp classManager]); ASSIGN(currentClass, [object className]); outletsCount = [[classManager allOutletsForClassNamed: currentClass] count]; actionsCount = [[classManager allActionsForClassNamed: currentClass] count]; item = [tabView tabViewItemAtIndex: 1]; // actions; [item setLabel: [NSString stringWithFormat: @"Actions (%ld)",(long)actionsCount]]; item = [tabView tabViewItemAtIndex: 0]; // outlets; [item setLabel: [NSString stringWithFormat: @"Outlets (%ld)",(long)outletsCount]]; [tabView setNeedsDisplay: YES]; [self _refreshView]; } else { NSLog(@"Got %@ set to class edit inspector",anObject); } } - (NSString *) _currentClass { return AUTORELEASE([[object className] copy]); } - (void) handleNotification: (NSNotification *)notification { if([notification object] == classManager && [(id)NSApp activeDocument] != nil) { [self _refreshView]; } } // table delegate/data source methods... - (BOOL) tableView: (NSTableView *)tableView shouldEditTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { BOOL result = NO; if(tableView != parentClass) { NSArray *list = nil; NSString *name = nil; NSString *className = [self _currentClass]; if(tableView == actionTable) { list = [classManager allActionsForClassNamed: className]; name = [list objectAtIndex: rowIndex]; } else if(tableView == outletTable) { list = [classManager allOutletsForClassNamed: className]; name = [list objectAtIndex: rowIndex]; } if([classManager isCustomClass: className]) { if(tableView == actionTable) { result = [classManager isAction: name ofClass: className]; } else if(tableView == outletTable) { result = [classManager isOutlet: name ofClass: className]; } } else { result = [classManager isAction: name onCategoryForClassNamed: className]; } } return result; } - (void) tableView: (NSTableView *)tableView willDisplayCell: (id)aCell forTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { /* NSString *name = [aCell stringValue]; NSString *className = [self _currentClass]; if(tableView == actionTable) { if(([classManager isCustomClass: className] && [classManager isAction: name ofClass: className]) || [classManager isAction: name onCategoryForClassNamed: className]) { [aCell setTextColor: [NSColor blackColor]]; } else { [aCell setTextColor: [NSColor darkGrayColor]]; } } else if(tableView == outletTable) { if([classManager isCustomClass: className] && [classManager isOutlet: name ofClass: className]) { [aCell setTextColor: [NSColor blackColor]]; } else { [aCell setTextColor: [NSColor darkGrayColor]]; } } */ [(NSTextFieldCell *)aCell setScrollable: YES]; } - (BOOL) tableView: (NSTableView *)tv shouldSelectRow: (NSInteger)rowIndex { BOOL result = YES; if(tv == parentClass) { NSArray *list = [classManager allClassNames]; NSString *className = [list objectAtIndex: rowIndex]; NSString *name = [self _currentClass]; BOOL isFirstResponder = [className isEqualToString: @"FirstResponder"]; BOOL isCurrentClass = [className isEqualToString: name]; BOOL isSubClass = [classManager isSuperclass: name linkedToClass: className]; if(isFirstResponder || isCurrentClass || isSubClass) { NSBeep(); result = NO; } } return result; } @end gorm-1.3.1/GormCore/GormViewWithContentViewEditor.h0000644000175000017500000000270714327003122021306 0ustar heronheron/* GormViewWithContentViewEditor.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormViewWithContentViewEditor_h #define INCLUDED_GormViewWithContentViewEditor_h #include @class GormInternalViewEditor; @interface GormViewWithContentViewEditor : GormViewWithSubviewsEditor { GormInternalViewEditor *contentViewEditor; } - (void) postDrawForView: (GormViewEditor *) viewEditor; - (void) groupSelectionInSplitView; - (void) groupSelectionInBox; - (void) groupSelectionInMatrix; - (void) groupSelectionInView; - (void) ungroup; - (void) pasteInView: (NSView *)view; @end #endif gorm-1.3.1/GormCore/GormDocumentWindow.m0000644000175000017500000000471514327003122017157 0ustar heronheron/* GormDocumentWindow.m * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Matt Rice * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormDocumentWindow.h" #include "GormPrivate.h" @implementation GormDocumentWindow /* - (BOOL) canBecomeMainWindow { return NO; } */ - (void) setDocument:(id)document { _document = document; } - (NSDragOperation)draggingEntered:(id )sender; { NSPasteboard *pb = [sender draggingPasteboard]; NSUInteger mask = [sender draggingSourceOperationMask]; NSUInteger oper = NSDragOperationNone; dragMgr = [_document resourceManagerForPasteboard:pb]; if (dragMgr) { if (mask & NSDragOperationCopy) { oper = NSDragOperationCopy; } else if (mask & NSDragOperationLink) { oper = NSDragOperationLink; } else if (mask & NSDragOperationMove) { oper = NSDragOperationMove; } else if (mask & NSDragOperationGeneric) { oper = NSDragOperationGeneric; } else if (mask & NSDragOperationPrivate) { oper = NSDragOperationPrivate; } } return oper; } - (void)draggingExited:(id )sender; { dragMgr = nil; } - (BOOL)prepareForDragOperation:(id )sender; { return !(dragMgr == nil); } - (BOOL)performDragOperation:(id )sender; { [dragMgr addResourcesFromPasteboard:[sender draggingPasteboard]]; return !(dragMgr == nil); } - (void)concludeDragOperation:(id )sender; { dragMgr = nil; } - (void)draggingEnded: (id )sender; { dragMgr = nil; } - (void) awakeFromNib { [self setAcceptsMouseMovedEvents: YES]; } @end gorm-1.3.1/GormCore/GNUmakefile0000644000175000017500000001063314327003122015254 0ustar heronheron# GNUmakefile: main makefile for GNUstep Object Relationship Modeller # # Copyright (C) 1999,2002,2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # Date: 2003 # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA # PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make PACKAGE_NAME=GormCore LIBRARY_VAR=GORMCORE LIBRARY_NAME=GormCore GormCore_HEADER_FILES_DIR=. GormCore_HEADER_FILES_INSTALL_DIR=/GormCore ADDITIONAL_INCLUDE_DIRS = -I.. srcdir = . include ../Version GormCore_HEADER_FILES = \ GormCore.h \ GormBoxEditor.h \ GormClassEditor.h \ GormClassInspector.h \ GormClassManager.h \ GormClassPanelController.h \ GormConnectionInspector.h \ GormControlEditor.h \ GormCustomClassInspector.h \ GormCustomView.h \ GormDocument.h \ GormDocumentController.h \ GormDocumentWindow.h \ GormFilePrefsManager.h \ GormFilesOwner.h \ GormFontViewController.h \ GormFunctions.h \ GormGenericEditor.h \ GormHelpInspector.h \ GormImage.h \ GormImageEditor.h \ GormImageInspector.h \ GormInspectorsManager.h \ GormInternalViewEditor.h \ GormMatrixEditor.h \ GormNSPanel.h \ GormNSSplitViewInspector.h \ GormNSWindow.h \ GormObjectEditor.h \ GormObjectInspector.h \ GormOpenGLView.h \ GormOutlineView.h \ GormPalettesManager.h \ GormPlacementInfo.h \ GormPlugin.h \ GormPluginManager.h \ GormPrivate.h \ GormProtocol.h \ GormResource.h \ GormResourceEditor.h \ GormResourceManager.h \ GormScrollViewAttributesInspector.h \ GormServer.h \ GormSetNameController.h \ GormSound.h \ GormSoundEditor.h \ GormSoundInspector.h \ GormSoundView.h \ GormSplitViewEditor.h \ GormStandaloneViewEditor.h \ GormViewEditor.h \ GormViewKnobs.h \ GormViewSizeInspector.h \ GormViewWindow.h \ GormViewWithContentViewEditor.h \ GormViewWithSubviewsEditor.h \ GormWindowEditor.h \ GormWindowTemplate.h \ GormWrapperBuilder.h \ GormWrapperLoader.h \ NSCell+GormAdditions.h \ NSColorWell+GormExtensions.h \ NSFontManager+GormExtensions.h \ NSView+GormExtensions.h GormCore_OBJC_FILES = \ GormBoxEditor.m \ GormClassEditor.m \ GormClassInspector.m \ GormClassManager.m \ GormClassPanelController.m \ GormConnectionInspector.m \ GormControlEditor.m \ GormCustomClassInspector.m \ GormCustomView.m \ GormDocument.m \ GormDocumentController.m \ GormDocumentWindow.m \ GormFilePrefsManager.m \ GormFilesOwner.m \ GormFontViewController.m \ GormFunctions.m \ GormGenericEditor.m \ GormHelpInspector.m \ GormImage.m \ GormImageEditor.m \ GormImageInspector.m \ GormInspectorsManager.m \ GormInternalViewEditor.m \ GormMatrixEditor.m \ GormNSPanel.m \ GormNSSplitViewInspector.m \ GormNSWindow.m \ GormObjectEditor.m \ GormObjectInspector.m \ GormOpenGLView.m \ GormOutlineView.m \ GormPalettesManager.m \ GormPlugin.m \ GormPluginManager.m \ GormResource.m \ GormResourceEditor.m \ GormResourceManager.m \ GormScrollViewAttributesInspector.m \ GormScrollViewEditor.m \ GormSetNameController.m \ GormSound.m \ GormSoundEditor.m \ GormSoundInspector.m \ GormSoundView.m \ GormSplitViewEditor.m \ GormStandaloneViewEditor.m \ GormViewEditor.m \ GormViewKnobs.m \ GormViewSizeInspector.m \ GormViewWindow.m \ GormViewWithContentViewEditor.m \ GormViewWithSubviewsEditor.m \ GormWindowEditor.m \ GormWindowTemplate.m \ GormWrapperBuilder.m \ GormWrapperLoader.m \ NSCell+GormAdditions.m \ NSColorWell+GormExtensions.m \ NSFontManager+GormExtensions.m \ NSView+GormExtensions.m \ GormPrivate.m -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/aggregate.make include $(GNUSTEP_MAKEFILES)/library.make -include GNUmakefile.postamble gorm-1.3.1/GormCore/GormWrapperLoader.h0000644000175000017500000000322614327003122016747 0ustar heronheron/* GormWrapperLoader * * This class is a subclass of the NSDocumentController * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormWrapperLoader_h #define INCLUDED_GormWrapperLoader_h #include @class NSFileWrapper, GormDocument, NSString; @protocol GormWrapperLoader - (BOOL) loadFileWrapper: (NSFileWrapper *)wrapper withDocument: (GormDocument *)document; @end @interface GormWrapperLoader : NSObject { GormDocument *document; } + (NSString *) fileType; - (void) saveSCMDirectory: (NSDictionary *) fileWrappers; @end @interface GormWrapperLoaderFactory : NSObject + (GormWrapperLoaderFactory *) sharedWrapperLoaderFactory; + (void) registerWrapperLoaderClass: (Class) aClass; - (id) wrapperLoaderForType: (NSString *) type; @end #endif gorm-1.3.1/GormCore/GormControlEditor.m0000644000175000017500000004166114327003122017001 0ustar heronheron/* GormControlEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormPrivate.h" #include "GormViewWithSubviewsEditor.h" #include "GormControlEditor.h" #include "GormPlacementInfo.h" #include "GormViewKnobs.h" #define _EO ((NSControl *)_editedObject) @class GormWindowEditor; @implementation NSControl (IBObjectAdditions) - (NSString*) editorClassName { return @"GormControlEditor"; } @end @interface GormViewEditor (Private) - (void) _displayFrameWithHint: (NSRect) frame withPlacementInfo: (GormPlacementInfo*)gpi; - (void) _initializeHintWithInfo: (GormPlacementInfo*) gpi; @end @interface GormControlEditor (IntelligentPlacement) - (void) _altDisplayFrame: (NSRect) frame withPlacementInfo: (GormPlacementInfo*)gpi; - (void) _displayFrame: (NSRect) frame withPlacementInfo: (GormPlacementInfo*) gpi; @end @implementation GormControlEditor - (void) _altDisplayFrame: (NSRect) frame withPlacementInfo: (GormPlacementInfo*)gpi { NSSize size = [self frame].size; NSSize constrainedSize; NSInteger col; NSInteger row; if (gpi->firstPass == NO) [gpi->resizingIn displayRect: gpi->oldRect]; else gpi->firstPass = NO; col = frame.size.width / size.width; row = frame.size.height / size.height; if (col < 1) col = 1; if (row < 1) row = 1; constrainedSize.width = col * size.width; constrainedSize.height = row * size.height; switch (gpi->knob) { case IBBottomLeftKnobPosition: case IBMiddleLeftKnobPosition: case IBTopLeftKnobPosition: frame.origin.x = NSMaxX(frame) - constrainedSize.width; frame.size.width = constrainedSize.width; break; case IBTopRightKnobPosition: case IBMiddleRightKnobPosition: case IBBottomRightKnobPosition: frame.size.width = constrainedSize.width; break; case IBTopMiddleKnobPosition: case IBBottomMiddleKnobPosition: case IBNoneKnobPosition: break; } switch (gpi->knob) { case IBBottomLeftKnobPosition: case IBBottomRightKnobPosition: case IBBottomMiddleKnobPosition: frame.origin.y = NSMaxY(frame) - constrainedSize.height; frame.size.height = constrainedSize.height; break; case IBTopMiddleKnobPosition: case IBTopRightKnobPosition: case IBTopLeftKnobPosition: frame.size.height = constrainedSize.height; break; case IBMiddleLeftKnobPosition: case IBMiddleRightKnobPosition: case IBNoneKnobPosition: break; } GormShowFrameWithKnob(frame, gpi->knob); gpi->lastFrame = frame; gpi->oldRect = GormExtBoundsForRect(frame); gpi->oldRect.origin.x--; gpi->oldRect.origin.y--; gpi->oldRect.size.width += 2; gpi->oldRect.size.height += 2; } - (void) _displayFrame: (NSRect) frame withPlacementInfo: (GormPlacementInfo*) gpi { NSSize minSize; if (gpi->firstPass == NO) [gpi->resizingIn displayRect: gpi->oldRect]; else gpi->firstPass = NO; minSize = [[_EO cell] cellSize]; if (frame.size.width < minSize.width) { switch (gpi->knob) { case IBBottomLeftKnobPosition: case IBMiddleLeftKnobPosition: case IBTopLeftKnobPosition: frame.origin.x = NSMaxX([self frame]) - minSize.width; frame.size.width = minSize.width; break; case IBTopRightKnobPosition: case IBMiddleRightKnobPosition: case IBBottomRightKnobPosition: frame.size.width = minSize.width; break; case IBTopMiddleKnobPosition: case IBBottomMiddleKnobPosition: case IBNoneKnobPosition: break; } } if (frame.size.height < minSize.height) { switch (gpi->knob) { case IBBottomLeftKnobPosition: case IBBottomRightKnobPosition: case IBBottomMiddleKnobPosition: frame.origin.y = NSMaxY([self frame]) - minSize.height; frame.size.height = minSize.height; break; case IBTopMiddleKnobPosition: case IBTopRightKnobPosition: case IBTopLeftKnobPosition: frame.size.height = minSize.height; break; case IBMiddleLeftKnobPosition: case IBMiddleRightKnobPosition: case IBNoneKnobPosition: break; } } GormShowFrameWithKnob(frame, gpi->knob); gpi->lastFrame = frame; gpi->oldRect = GormExtBoundsForRect(frame); gpi->oldRect.origin.x--; gpi->oldRect.origin.y--; gpi->oldRect.size.width += 2; gpi->oldRect.size.height += 2; } #undef MIN #undef MAX #define MIN(a,b) (a>b?b:a) #define MAX(a,b) (a>b?a:b) - (void) _displayFrameWithHint: (NSRect) frame withPlacementInfo: (GormPlacementInfo*)gpi { float leftOfFrame; float rightOfFrame; float topOfFrame; float bottomOfFrame; NSInteger i; NSInteger count; NSInteger lastDistance; NSInteger minimum = 10; BOOL leftEmpty = YES; BOOL rightEmpty = YES; BOOL topEmpty = YES; BOOL bottomEmpty = YES; float bestLeftPosition = 0; float bestRightPosition = 0; float bestTopPosition = 0; float bestBottomPosition = 0; float leftStart = 0; float rightStart = 0; float topStart = 0; float bottomStart = 0; float leftEnd = 0; float rightEnd = 0; float topEnd = 0; float bottomEnd = 0; NSSize minSize; NSMutableArray *bests; minSize = [[_EO cell] cellSize]; if (gpi->hintInitialized == NO) { [self _initializeHintWithInfo: gpi]; } { if (gpi->firstPass == NO) [gpi->resizingIn displayRect: gpi->oldRect]; else gpi->firstPass = NO; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastLeftRect]; [[self window] displayIfNeeded]; gpi->lastLeftRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastRightRect]; [[self window] displayIfNeeded]; gpi->lastRightRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastTopRect]; [[self window] displayIfNeeded]; gpi->lastTopRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastBottomRect]; [[self window] displayIfNeeded]; gpi->lastBottomRect = NSZeroRect; } if (frame.size.width < minSize.width) { switch (gpi->knob) { case IBBottomLeftKnobPosition: case IBMiddleLeftKnobPosition: case IBTopLeftKnobPosition: frame.origin.x = NSMaxX([self frame]) - minSize.width; frame.size.width = minSize.width; break; case IBTopRightKnobPosition: case IBMiddleRightKnobPosition: case IBBottomRightKnobPosition: frame.size.width = minSize.width; break; case IBTopMiddleKnobPosition: case IBBottomMiddleKnobPosition: case IBNoneKnobPosition: break; } } if (frame.size.height < minSize.height) { switch (gpi->knob) { case IBBottomLeftKnobPosition: case IBBottomRightKnobPosition: case IBBottomMiddleKnobPosition: frame.origin.y = NSMaxY([self frame]) - minSize.height; frame.size.height = minSize.height; break; case IBTopMiddleKnobPosition: case IBTopRightKnobPosition: case IBTopLeftKnobPosition: frame.size.height = minSize.height; break; case IBMiddleLeftKnobPosition: case IBMiddleRightKnobPosition: case IBNoneKnobPosition: break; } } leftOfFrame = NSMinX(frame); rightOfFrame = NSMaxX(frame); topOfFrame = NSMaxY(frame); bottomOfFrame = NSMinY(frame); if (gpi->knob == IBTopLeftKnobPosition || gpi->knob == IBMiddleLeftKnobPosition || gpi->knob == IBBottomLeftKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = 6; count = [gpi->leftHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->leftHints objectAtIndex: i] distanceToFrame: frame]; if ((lastDistance < minimum) && (rightOfFrame - [[gpi->leftHints objectAtIndex: i] position] >= minSize.width)) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->leftHints objectAtIndex: i]]; minimum = lastDistance; bestLeftPosition = [[gpi->leftHints objectAtIndex: i] position]; leftEmpty = NO; } else if ((lastDistance == minimum) && (leftEmpty == NO) && ([[gpi->leftHints objectAtIndex: i] position] == bestLeftPosition)) [bests addObject: [gpi->leftHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { leftStart = NSMinY([[bests objectAtIndex: 0] frame]); leftEnd = NSMaxY([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { leftStart = MIN(NSMinY([[bests objectAtIndex: i] frame]), leftStart); leftEnd = MAX(NSMaxY([[bests objectAtIndex: i] frame]), leftEnd); } leftOfFrame = bestLeftPosition; } } if (gpi->knob == IBTopRightKnobPosition || gpi->knob == IBMiddleRightKnobPosition || gpi->knob == IBBottomRightKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = 6; count = [gpi->rightHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->rightHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum && ([[gpi->rightHints objectAtIndex: i] position] - leftOfFrame >= minSize.width)) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->rightHints objectAtIndex: i]]; minimum = lastDistance; bestRightPosition = [[gpi->rightHints objectAtIndex: i] position]; rightEmpty = NO; } else if ((lastDistance == minimum) && (rightEmpty == NO) && ([[gpi->rightHints objectAtIndex: i] position] == bestRightPosition)) [bests addObject: [gpi->rightHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { rightStart = NSMinY([[bests objectAtIndex: 0] frame]); rightEnd = NSMaxY([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { rightStart = MIN(NSMinY([[bests objectAtIndex: i] frame]), rightStart); rightEnd = MAX(NSMaxY([[bests objectAtIndex: i] frame]), rightEnd); } rightOfFrame = bestRightPosition; } } if (gpi->knob == IBTopRightKnobPosition || gpi->knob == IBTopLeftKnobPosition || gpi->knob == IBTopMiddleKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = 6; count = [gpi->topHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->topHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum && ([[gpi->topHints objectAtIndex: i] position] - bottomOfFrame >= minSize.height)) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->topHints objectAtIndex: i]]; minimum = lastDistance; bestTopPosition = [[gpi->topHints objectAtIndex: i] position]; topEmpty = NO; } else if ((lastDistance == minimum) && (topEmpty == NO) && ([[gpi->topHints objectAtIndex: i] position] == bestTopPosition)) [bests addObject: [gpi->topHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { topStart = NSMinX([[bests objectAtIndex: 0] frame]); topEnd = NSMaxX([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { topStart = MIN(NSMinX([[bests objectAtIndex: i] frame]), topStart); topEnd = MAX(NSMaxX([[bests objectAtIndex: i] frame]), topEnd); } topOfFrame = bestTopPosition; } } if (gpi->knob == IBBottomRightKnobPosition || gpi->knob == IBBottomLeftKnobPosition || gpi->knob == IBBottomMiddleKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = 6; count = [gpi->bottomHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->bottomHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum && (topOfFrame - [[gpi->bottomHints objectAtIndex: i] position] >= minSize.height)) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->bottomHints objectAtIndex: i]]; minimum = lastDistance; bestBottomPosition = [[gpi->bottomHints objectAtIndex: i] position]; bottomEmpty = NO; } else if ((lastDistance == minimum) && (bottomEmpty == NO) && ([[gpi->bottomHints objectAtIndex: i] position] == bestBottomPosition)) [bests addObject: [gpi->bottomHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { bottomStart = NSMinX([[bests objectAtIndex: 0] frame]); bottomEnd = NSMaxX([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { bottomStart = MIN(NSMinX([[bests objectAtIndex: i] frame]), bottomStart); bottomEnd = MAX(NSMaxX([[bests objectAtIndex: i] frame]), bottomEnd); } bottomOfFrame = bestBottomPosition; } } gpi->hintFrame = NSMakeRect (leftOfFrame, bottomOfFrame, rightOfFrame - leftOfFrame, topOfFrame - bottomOfFrame); { [[NSColor redColor] set]; if (!leftEmpty) { leftStart = MIN(NSMinY(gpi->hintFrame), leftStart); leftEnd = MAX(NSMaxY(gpi->hintFrame), leftEnd); gpi->lastLeftRect = NSMakeRect(bestLeftPosition - 1, leftStart, 2, leftEnd - leftStart); NSRectFill(gpi->lastLeftRect); } if (!rightEmpty) { rightStart = MIN(NSMinY(gpi->hintFrame), rightStart); rightEnd = MAX(NSMaxY(gpi->hintFrame), rightEnd); gpi->lastRightRect = NSMakeRect(bestRightPosition - 1, rightStart, 2, rightEnd - rightStart); NSRectFill(gpi->lastRightRect); } if (!topEmpty) { topStart = MIN(NSMinX(gpi->hintFrame), topStart); topEnd = MAX(NSMaxX(gpi->hintFrame), topEnd); gpi->lastTopRect = NSMakeRect(topStart, bestTopPosition - 1, topEnd - topStart, 2); NSRectFill(gpi->lastTopRect); } if (!bottomEmpty) { bottomStart = MIN(NSMinX(gpi->hintFrame), bottomStart); bottomEnd = MAX(NSMaxX(gpi->hintFrame), bottomEnd); gpi->lastBottomRect = NSMakeRect(bottomStart, bestBottomPosition - 1, bottomEnd - bottomStart, 2); NSRectFill(gpi->lastBottomRect); } } GormShowFrameWithKnob(gpi->hintFrame, gpi->knob); gpi->oldRect = GormExtBoundsForRect(gpi->hintFrame); gpi->oldRect.origin.x--; gpi->oldRect.origin.y--; gpi->oldRect.size.width += 2; gpi->oldRect.size.height += 2; } - (void) updateResizingWithFrame: (NSRect) frame andEvent: (NSEvent *)theEvent andPlacementInfo: (GormPlacementInfo*) gpi { if ([theEvent modifierFlags] & NSAlternateKeyMask) [self _altDisplayFrame: frame withPlacementInfo: gpi]; else if ([theEvent modifierFlags] & NSShiftKeyMask) [self _displayFrame: frame withPlacementInfo: gpi]; else [self _displayFrameWithHint: frame withPlacementInfo: gpi]; } - (void) validateFrame: (NSRect) frame withEvent: (NSEvent *) theEvent andPlacementInfo: (GormPlacementInfo*)gpi { frame = gpi->lastFrame; if ([theEvent modifierFlags] & NSAlternateKeyMask) { NSSize cellSize = [self frame].size; id editor; NSInteger col; NSInteger row; NSMatrix *matrix; col = gpi->lastFrame.size.width / cellSize.width; row = gpi->lastFrame.size.height / cellSize.height; // let's morph into a matrix matrix = [[NSMatrix alloc] initWithFrame: gpi->lastFrame mode: NSRadioModeMatrix prototype: [_EO cell] numberOfRows: row numberOfColumns: col]; [matrix setIntercellSpacing: NSMakeSize(0, 0)]; [matrix setFrame: gpi->lastFrame]; RETAIN(self); [[self superview] addSubview: matrix]; [parent selectObjects: [NSArray arrayWithObject: self]]; [parent deleteSelection]; [document attachObject: matrix toParent: _EO]; editor = [document editorForObject: matrix inEditor: parent create: YES]; [parent selectObjects: [NSArray arrayWithObject: editor]]; RELEASE(self); } else if ([theEvent modifierFlags] & NSShiftKeyMask) { [self setFrame: frame]; } else { [super validateFrame: frame withEvent: theEvent andPlacementInfo: gpi]; } } @end @implementation NSTextField (IBObjectAdditions) - (NSString*) editorClassName { return @"GormTextFieldEditor"; } @end @interface GormTextFieldEditor : GormControlEditor @end @implementation GormTextFieldEditor - (void) mouseDown: (NSEvent*)theEvent { // double-clicked -> let's edit if (([theEvent clickCount] == 2) && [parent isOpened]) { [self editTextField: _editedObject withEvent: theEvent]; [[NSNotificationCenter defaultCenter] postNotificationName: IBSelectionChangedNotification object: parent]; } else { [super mouseDown: theEvent]; } } @end gorm-1.3.1/GormCore/GormFontViewController.h0000644000175000017500000000053014327003122020000 0ustar heronheron/* All Rights reserved */ #include @interface GormFontViewController : NSObject { id fontSelector; id view; id encodeButton; } + (GormFontViewController *) sharedGormFontViewController; - (NSFont *) convertFont: (NSFont *)oldFont; - (void) selectFont: (id)sender; - (id) view; // - (void) changeFont: (id)sender; @end gorm-1.3.1/GormCore/GormResourceManager.h0000644000175000017500000000214214327003122017256 0ustar heronheron/* GormViewResourceManager.h * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GORMVIEWRESOURCEMANAGER_H #define INCLUDED_GORMVIEWRESOURCEMANAGER_H #include @interface GormResourceManager : IBResourceManager @end #endif gorm-1.3.1/GormCore/GormNSSplitViewInspector.h0000644000175000017500000000030214327003122020246 0ustar heronheron/* All Rights reserved */ #include #include @interface GormNSSplitViewInspector : IBInspector { id orientation; id divider; } @end gorm-1.3.1/GormCore/GormViewSizeInspector.m0000644000175000017500000002014314327003122017636 0ustar heronheron/* GormViewSizeInspector.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormPrivate.h" #include "GormViewKnobs.h" #include "GormViewSizeInspector.h" #include "GormViewWindow.h" @implementation GormViewSizeInspector NSImage *eHCoil = nil; NSImage *eVCoil = nil; NSImage *eHLine = nil; NSImage *eVLine = nil; NSImage *mHCoil = nil; NSImage *mVCoil = nil; NSImage *mHLine = nil; NSImage *mVLine = nil; + (void) initialize { if (self == [GormViewSizeInspector class]) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path; path = [bundle pathForImageResource: @"GormEHCoil"]; eHCoil = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormEVCoil"]; eVCoil = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormEHLine"]; eHLine = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormEVLine"]; eVLine = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormMHCoil"]; mHCoil = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormMVCoil"]; mVCoil = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormMHLine"]; mHLine = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormMVLine"]; mVLine = [[NSImage alloc] initWithContentsOfFile: path]; } } - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; RELEASE(window); [super dealloc]; } - (id) init { self = [super init]; if (self != nil) { if ([NSBundle loadNibNamed: @"GormViewSizeInspector" owner: self] == NO) { NSDictionary *table; NSBundle *bundle; table = [NSDictionary dictionaryWithObject: self forKey: @"NSOwner"]; bundle = [NSBundle mainBundle]; if ( [bundle loadNibFile: @"GormViewSizeInspector" externalNameTable: table withZone: [self zone]] == NO) { NSLog(@"Could not open gorm GormViewSizeInspector"); NSLog(@"self %@", self); return nil; } } // set the tags... [top setTag: NSViewMaxYMargin]; [bottom setTag: NSViewMinYMargin]; [right setTag: NSViewMaxXMargin]; [left setTag: NSViewMinXMargin]; [width setTag: NSViewWidthSizable]; [height setTag: NSViewHeightSizable]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(viewFrameChangeNotification:) name: NSViewFrameDidChangeNotification object: nil]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(controlTextDidEndEditing:) name: NSControlTextDidEndEditingNotification object: nil]; } return self; } - (void) _setValuesFromControl: control { if (control == sizeForm) { id document = [(id)NSApp activeDocument]; NSRect rect; // Update the document as edited... [document touch]; rect = NSMakeRect([[control cellAtIndex: 0] floatValue], [[control cellAtIndex: 1] floatValue], [[control cellAtIndex: 2] floatValue], [[control cellAtIndex: 3] floatValue]); if (NSEqualRects(rect, [object frame]) == NO) { NSRect oldFrame = [object frame]; [object setFrame: rect]; [object display]; if ([object superview]) [[object superview] displayRect: GormExtBoundsForRect(oldFrame)]; [[object superview] lockFocus]; GormDrawKnobsForRect([object frame]); GormShowFastKnobFills(); [[object superview] unlockFocus]; [[object window] flushWindow]; } } } - (void) _getValuesFromObject: anObject { NSRect frame; if (anObject != object) return; /* if([[anObject window] isKindOfClass: [GormViewWindow class]]) { [sizeForm setEnabled: NO]; } else */ { [sizeForm setEnabled: YES]; } // stop editing so that the new values can be populated. [sizeForm abortEditing]; frame = [anObject frame]; [[sizeForm cellAtIndex: 0] setFloatValue: NSMinX(frame)]; [[sizeForm cellAtIndex: 1] setFloatValue: NSMinY(frame)]; [[sizeForm cellAtIndex: 2] setFloatValue: NSWidth(frame)]; [[sizeForm cellAtIndex: 3] setFloatValue: NSHeight(frame)]; } - (void) controlTextDidEndEditing: (NSNotification*)aNotification { id notifier = [aNotification object]; [super ok: notifier]; [self _setValuesFromControl: notifier]; } - (void) viewFrameChangeNotification: (NSNotification*)aNotification { id notifier = [aNotification object]; [self _getValuesFromObject: notifier]; } - (void) setAutosize: (id)sender { unsigned mask = [sender tag]; id document = [(id)NSApp activeDocument]; [document touch]; if ([sender state] == NSOnState) { mask = [object autoresizingMask] | mask; } else { mask = [object autoresizingMask] & ~mask; } [object setAutoresizingMask: mask]; } - (void) setObject: (id)anObject { if ((object != nil) && (anObject != object)) [object setPostsFrameChangedNotifications: NO]; if (anObject != nil && anObject != object) { NSRect frame; unsigned mask = [anObject autoresizingMask]; ASSIGN(object, anObject); if (mask & NSViewMaxYMargin) [top setState: NSOnState]; else [top setState: NSOffState]; if (mask & NSViewMinYMargin) [bottom setState: NSOnState]; else [bottom setState: NSOffState]; if (mask & NSViewMaxXMargin) [right setState: NSOnState]; else [right setState: NSOffState]; if (mask & NSViewMinXMargin) [left setState: NSOnState]; else [left setState: NSOffState]; if (mask & NSViewWidthSizable) [width setState: NSOnState]; else [width setState: NSOffState]; if (mask & NSViewHeightSizable) [height setState: NSOnState]; else [height setState: NSOffState]; frame = [anObject frame]; [[sizeForm cellAtIndex: 0] setFloatValue: NSMinX(frame)]; [[sizeForm cellAtIndex: 1] setFloatValue: NSMinY(frame)]; [[sizeForm cellAtIndex: 2] setFloatValue: NSWidth(frame)]; [[sizeForm cellAtIndex: 3] setFloatValue: NSHeight(frame)]; [anObject setPostsFrameChangedNotifications: YES]; /* if([[anObject window] isKindOfClass: [GormViewWindow class]] || [anObject window] == nil) { [[sizeForm cellAtIndex: 0] setEnabled: NO]; [[sizeForm cellAtIndex: 1] setEnabled: NO]; [[sizeForm cellAtIndex: 2] setEnabled: NO]; [[sizeForm cellAtIndex: 3] setEnabled: NO]; [[sizeForm cellAtIndex: 0] setEditable: NO]; [[sizeForm cellAtIndex: 1] setEditable: NO]; [[sizeForm cellAtIndex: 2] setEditable: NO]; [[sizeForm cellAtIndex: 3] setEditable: NO]; } else */ { [[sizeForm cellAtIndex: 0] setEnabled: YES]; [[sizeForm cellAtIndex: 1] setEnabled: YES]; [[sizeForm cellAtIndex: 2] setEnabled: YES]; [[sizeForm cellAtIndex: 3] setEnabled: YES]; [[sizeForm cellAtIndex: 0] setEditable: YES]; [[sizeForm cellAtIndex: 1] setEditable: YES]; [[sizeForm cellAtIndex: 2] setEditable: YES]; [[sizeForm cellAtIndex: 3] setEditable: YES]; } } } @end gorm-1.3.1/GormCore/GormNSSplitViewInspector.m0000644000175000017500000000372214327003122020264 0ustar heronheron/* All rights reserved */ #include #include "GormNSSplitViewInspector.h" @implementation NSSplitView (IBObjectAdditions) - (NSString *) inspectorClassName { return @"GormNSSplitViewInspector"; } - (NSString*) editorClassName { return @"GormSplitViewEditor"; } @end @implementation GormNSSplitViewInspector - init { self = [super init]; if (self != nil) { if ([NSBundle loadNibNamed: @"GormNSSplitViewInspector" owner: self] == NO) { NSDictionary *table = nil; NSBundle *bundle = nil; BOOL loaded = NO; table = [NSDictionary dictionaryWithObject: self forKey: @"NSOwner"]; bundle = [NSBundle mainBundle]; loaded = [bundle loadNibFile: @"GormNSSplitViewInspector" externalNameTable: table withZone: [self zone]]; if (!loaded) { NSLog(@"Could not open gorm GormNSSplitViewInspector"); NSLog(@"self %@", self); return nil; } } } return self; } - (void)awakeFromNib { } - (void) _getValuesFromObject { BOOL state = [(NSSplitView *)object isVertical]; NSUInteger dividerStyle = [(NSSplitView *)object dividerStyle]; // get the values from the object if(state == NO) { [orientation selectCellAtRow: 0 column: 0]; } else { [orientation selectCellAtRow: 1 column: 0]; } [divider selectItemWithTag: dividerStyle]; } - (void) setObject: (id)anObject { [super setObject: anObject]; [self _getValuesFromObject]; } - (void) ok: (id)sender { id cell = nil; BOOL state = NO; NSUInteger styleTag = 0; // horizontal switch.. if it's active/inactive we // know what the selection is. [super ok: sender]; cell = [orientation cellAtRow: 0 column: 0]; state = ([cell state] == NSOnState)?NO:YES; styleTag = [divider selectedTag]; [object setVertical: state]; [object adjustSubviews]; [object setDividerStyle: styleTag]; } @end gorm-1.3.1/GormCore/GormDefines.h0000644000175000017500000000212714327003122015554 0ustar heronheron/* GormDefines.h * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormDefines_h #define INCLUDED_GormDefines_h #ifndef max #define max(a,b) ((a) >= (b) ? (a):(b)) #endif #ifndef min #define min(a,b) ((a) <= (b) ? (a):(b)) #endif #endif // GormDefines gorm-1.3.1/GormCore/GormClassPanelController.m0000644000175000017500000000503614327003122020277 0ustar heronheron/* GormClassPanelController.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* All rights reserved */ #include #include "GormClassPanelController.h" #include "GormPrivate.h" @implementation GormClassPanelController - (id) initWithTitle: (NSString *)title classList: (NSArray *)classes { self = [super init]; if(self != nil) { if ( ![NSBundle loadNibNamed:@"GormClassPanel" owner:self] ) { NSLog(@"Can not load bundle GormClassPanel"); return nil; } } ASSIGN(allClasses, [classes mutableCopy]); [allClasses removeObject: @"FirstResponder"]; [panel setTitle: title]; [classBrowser loadColumnZero]; return self; } - (NSString *)runModal { [NSApp runModalForWindow: panel]; [panel orderOut: self]; return className; } - (void) dealloc { RELEASE(allClasses); RELEASE(className); RELEASE(panel); [super dealloc]; } - (void) okButton: (id)sender { ASSIGN(className, [[classNameForm cellAtIndex: 0] stringValue]); [NSApp stopModal]; } - (void) browserAction: (id)sender { [[classNameForm cellAtIndex: 0] setStringValue: [[classBrowser selectedCell] stringValue]]; } - (NSInteger) browser: (NSBrowser*)sender numberOfRowsInColumn: (NSInteger)column { return [allClasses count]; } - (NSString*) browser: (NSBrowser*)sender titleOfColumn: (NSInteger)column { return @"Class"; } - (void) browser: (NSBrowser*)sender willDisplayCell: (id)aCell atRow: (NSInteger)row column: (NSInteger)col { if (row >= 0 && row < [allClasses count]) { [aCell setStringValue: [allClasses objectAtIndex: row]]; [aCell setEnabled: YES]; } else { [aCell setStringValue: @""]; [aCell setEnabled: NO]; } [aCell setLeaf: YES]; } @end gorm-1.3.1/GormCore/GormDocument.h0000644000175000017500000002605214333112567015773 0ustar heronheron/* GormDocument.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormDocument_h #define INCLUDED_GormDocument_h #include #include #include #include @class GormClassManager, GormClassEditor, GormObjectProxy, GormFilesOwner, GormFilePrefsManager, GormDocumentWindow; /* * Trivial classes for connections from objects to their editors, and from * child editors to their parents. This does nothing special, but we can * use the fact that it's a different class to search for it in the connections * array. */ @interface GormObjectToEditor : NSNibConnector @end @interface GormEditorToParent : NSNibConnector @end /* * Each document has a GormFirstResponder object that is used as a placeholder * for the first responder at any instant. */ @interface GormFirstResponder : NSObject { } @end @interface GormDocument : NSDocument { GormClassManager *classManager; GormFilesOwner *filesOwner; GormFirstResponder *firstResponder; GormObjectProxy *fontManager; NSMapTable *objToName; GormDocumentWindow *window; NSBox *selectionBox; NSScrollView *scrollView; NSScrollView *classesScrollView; NSScrollView *soundsScrollView; NSScrollView *imagesScrollView; id classesView; id objectsView; id soundsView; id imagesView; BOOL isActive; BOOL isDocumentOpen; NSMenu *savedMenu; NSMenuItem *quitItem; /* Replaced during test-mode */ NSMutableArray *savedEditors; NSMutableArray *hidden; NSMutableArray *openEditors; NSToolbar *toolbar; id lastEditor; BOOL isOlderArchive; id filePrefsView; GormFilePrefsManager *filePrefsManager; NSWindow *filePrefsWindow; NSMutableArray *resourceManagers; NSData *infoData; /* data.info contents */ NSMutableArray *images; /* temporary storage for images. */ NSMutableArray *sounds; /* temporary storage for sounds. */ NSFileWrapper *scmWrapper; // container data structures NSMutableDictionary *nameTable; NSMutableArray *connections; NSMutableSet *topLevelObjects; NSMutableSet *visibleWindows; NSMutableSet *deferredWindows; } /* Handle notifications */ /** * Handle all notifications. Checks the value of [aNotification name] * against the set of notifications this class responds to and takes * appropriate action. */ - (void) handleNotification: (NSNotification*)aNotification; /* Document management */ /** * Returns YES, if document is active. */ - (BOOL) isActive; /** * Return YES, if anObject is visible at launch time. */ - (BOOL) objectIsVisibleAtLaunch: (id)anObject; /** * Return YES, if anObject is deferred. */ - (BOOL) objectIsDeferred: (id)anObject; /** * Retrieve all objects which have parent as thier parent. If flag is YES, * then retrieve the entire graph of objects starting with the parent. */ - (NSArray *) retrieveObjectsForParent: (id)parent recursively: (BOOL)flag; /** * Marks this document as the currently active document. The active document is * the one being edited by the user. */ - (void) setDocumentActive: (BOOL)flag; /** * Add object to the visible at launch list. */ - (void) setObject: (id)anObject isVisibleAtLaunch: (BOOL)flag; /** * Add object to the defferred list. */ - (void) setObject: (id)anObject isDeferred: (BOOL)flag; /** * The document window. */ - (NSWindow*) window; /** * Returns YES, if obj is a top level object. */ - (BOOL) isTopLevelObject: (id)obj; /** * Forces the closing of all editors in the document. */ - (void) closeAllEditors; /** * Create resource manager instances for all registered classes. */ - (void) createResourceManagers; /** * The list of all resource managers. */ - (NSArray *) resourceManagers; /** * Get the resource manager which handles the content on pboard. */ - (IBResourceManager *) resourceManagerForPasteboard: (NSPasteboard *)pboard; /** * Switch to the top level editor responsible for a given type. This allows the * document in the view to switch to the view which is appropriate for the resource * being dragged in. */ - (void) changeToTopLevelEditorAcceptingTypes: (NSArray *)types andFileType: (NSString *)fileType; /** * Switches to the view using the specified tag. * They are 0=objects, 1=images, 2=sounds, 3=classes, 4=file prefs. */ - (void) changeToViewWithTag: (int)tag; /** * returns the view using the specified tag. * They are 0=objects, 1=images, 2=sounds, 3=classes, 4=file prefs. */ - (NSView *)viewWithTag:(int)tag; /** * Returns all pasteboard types registered for with the IBResourceManager. */ - (NSArray *) allManagedPboardTypes; /** * Open the editor for anObject, with parent object. */ - (id) openEditorForObject: (id)anObject withParentObject: (id)parentObj; /* Language translation */ - (void) translate: (id)sender; - (void) exportStrings: (id)sender; /* Managing classes */ - (GormClassManager*) classManager; - (id) createSubclass: (id)sender; - (id) instantiateClass: (id)sender; - (id) createClassFiles: (id)sender; - (id) addAttributeToClass: (id)sender; - (id) remove: (id)sender; - (void) selectClass: (NSString *)className; - (void) selectClass: (NSString *)className editClass: (BOOL)flag; - (BOOL) classIsSelected; - (void) removeAllInstancesOfClass: (NSString *)classNamed; /* Sound & Image support */ /** * Open a sound and load it into the document. */ - (id) openSound: (id)sender; /** * Open an image and copy it into the document. */ - (id) openImage: (id)sender; /* Connections */ /** * Build our reverse mapping information and other initialisation */ - (void) rebuildObjToNameMapping; /** * Removes all connections given action or outlet with the specified label * (paramter name) class name (parameter className). */ - (BOOL) removeConnectionsWithLabel: (NSString *)name forClassNamed: (NSString *)className isAction: (BOOL)action; /** * Remove all connections to any and all instances of className. */ - (BOOL) removeConnectionsForClassNamed: (NSString *)name; /** * Rename connections connected to an instance of on class to another. */ - (BOOL) renameConnectionsForClassNamed: (NSString *)name toName: (NSString *)newName; /** * Refresh all connections to any and all instances of className. Checks if * the class has the action/outlet present and deletes it, if it doesn't. */ - (void) refreshConnectionsForClassNamed: (NSString *)className; /* class loading */ /** * Load a class into the document. */ - (id) loadClass: (id)sender; /*** services/windows menus... ***/ /** * Set the services menu. */ - (void) setServicesMenu: (NSMenu *)menu; /** * Returns the services menu for the document. */ - (NSMenu *) servicesMenu; /** * Set the font menu. */ - (void) setFontMenu: (NSMenu *)menu; /** * Returns the font menu for the document. */ - (NSMenu *) fontMenu; /** * Sets the windows menu. */ - (void) setWindowsMenu: (NSMenu *)menu; /** * Returns the menu which will be the windows menu for the document. */ - (NSMenu *) windowsMenu; /** * Sets the recent documents menu. */ - (void) setRecentDocumentsMenu: (NSMenu *)menu; /** * Returns the menu which will be the recent documents menu for the document. */ - (NSMenu *) recentDocumentsMenu; /*** first responder/font manager ***/ /** * Returns stand-in object for fontManager. */ - (id) fontManager; /** * Returns stand-in object for firstResponder */ - (id) firstResponder; /* Layout */ /** * Arrages selected objects based on the either in front of or in * back of the view stack. */ - (void) arrangeSelectedObjects: (id)sender; /** * Aligns selected objects on a given axis. */ - (void) alignSelectedObjects: (id)sender; /** * WindowAndRect:forObject: is called by Gorm to determine where it should * draw selection markup */ - (NSWindow*) windowAndRect: (NSRect*)r forObject: (id)object; /** * Save the SCM directory. */ - (void) setSCMWrapper: (NSFileWrapper *) wrapper; /** * Save the SCM directory. */ - (NSFileWrapper *) scmWrapper; /** * Images */ - (NSArray *) images; /** * Sounds */ - (NSArray *) sounds; /** * Images */ - (void) setImages: (NSArray *) imgs; /** * Sounds */ - (void) setSounds: (NSArray *) snds; /** * File's Owner */ - (GormFilesOwner *) filesOwner; /** * File preferences. */ - (GormFilePrefsManager *) filePrefsManager; /** * Windows visible at launch... */ - (NSSet *) visibleWindows; /** * Windows deferred. */ - (NSSet *) deferredWindows; /** * Set the document open flag. */ - (void) setDocumentOpen: (BOOL) flag; /** * Return the document open flag. */ - (BOOL) isDocumentOpen; /** * Set the file info for this document. */ - (void) setInfoData: (NSData *)data; /** * return the file info. */ - (NSData *) infoData; /** * Set the "older archive" flag. */ - (void) setOlderArchive: (BOOL)flag; /** * Return YES if this is an older archive. */ - (BOOL) isOlderArchive; /** * Deactivate the editors for archiving.. */ - (void) deactivateEditors; /** * Reactivate all of the editors... */ - (void) reactivateEditors; /** * Returns the name for the object... */ - (NSString*) nameForObject: (id)anObject; /** * Returns the object for name. */ - (id) objectForName: (NSString*)name; /** * Returns all names for all objects known to Gorm. */ - (NSArray *) objects; /** * Add aConnector to the set of connectors in this document. */ - (void) addConnector: (id)aConnector; @end @interface GormDocument (MenuValidation) /** * Returns YES if the document is editing instance/objects. */ - (BOOL) isEditingObjects; /** * Returns YES if the document is editing images. */ - (BOOL) isEditingImages; /** * Returns YES if the document is editing sounds. */ - (BOOL) isEditingSounds; /** * Returns YES if the document is editing classes. */ - (BOOL) isEditingClasses; @end #endif gorm-1.3.1/GormCore/NSColorWell+GormExtensions.m0000644000175000017500000000255214327003122020504 0ustar heronheron/* NSColor+GormExtensions.m * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "NSColorWell+GormExtensions.h" @implementation NSColorWell (GormExtensions) /** * Changes the color without sending the action associated with it. */ - (void) setColorWithoutAction: (NSColor *)color { ASSIGN(_the_color, color); if ([self isActive]) { NSColorPanel *colorPanel = [NSColorPanel sharedColorPanel]; [colorPanel setColor: _the_color]; } [self setNeedsDisplay: YES]; } @end gorm-1.3.1/GormCore/GormResourceEditor.h0000644000175000017500000000254514327003122017141 0ustar heronheron/* GormResourceEditor.h * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormResourceEditor_h #define INCLUDED_GormResourceEditor_h #include "GormGenericEditor.h" @interface GormResourceEditor : GormGenericEditor - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f; - (unsigned int) draggingSourceOperationMaskForLocal: (BOOL)flag; - (void) refreshCells; - (id) placeHolderWithPath: (NSString *)path; - (NSArray *) pbTypes; - (NSString *) resourceType; - (void) addSystemResources; @end #endif gorm-1.3.1/GormCore/NSView+GormExtensions.h0000644000175000017500000000330014327003122017477 0ustar heronheron/* NSView+GormExtensions.h * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_NSView_GormExtensions_h #define INCLUDED_NSView_GormExtensions_h #include @class NSArray; @interface NSView (GormExtensions) /** * All superviews of the receiver. */ - (NSArray *) superviews; /** * Returns YES if the receiver has an instance of the Class cls * as a superview. */ - (BOOL) hasSuperviewKindOfClass: (Class)cls; /** * Move the subview sv in reciever to the end of the reciever's * display list. This has the effect of making it appear in front * of the other views. */ - (void) moveViewToFront: (NSView *)sv; /** * Move the subview sv in reciever to the beginning of the reciever's * display list. This has the effect of making it appear in back * of the other views. */ - (void) moveViewToBack: (NSView *)sv; @end #endif gorm-1.3.1/GormCore/GormPlacementInfo.h0000644000175000017500000000406014327003122016721 0ustar heronheron/* GormPlacementInfo.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormPlacementInfo_h #define INCLUDED_GormPlacementInfo_h #include #include @class NSView, NSMutableArray; @interface GormPlacementInfo : NSObject { @public NSView *resizingIn; NSRect oldRect; BOOL firstPass; BOOL hintInitialized; NSMutableArray *leftHints; NSMutableArray *rightHints; NSMutableArray *topHints; NSMutableArray *bottomHints; NSRect lastLeftRect; NSRect lastRightRect; NSRect lastTopRect; NSRect lastBottomRect; NSRect hintFrame; NSRect lastFrame; IBKnobPosition knob; } @end typedef enum _GormHintBorder { Top, Bottom, Left, Right } GormHintBorder; @interface GormPlacementHint : NSObject { GormHintBorder _border; float _position; float _start; float _end; NSRect _frame; } - (id) initWithBorder: (GormHintBorder) border position: (float) position validityStart: (float) start validityEnd: (float) end frame: (NSRect) frame; - (NSRect) rectWithHalfDistance: (int) halfDistance; - (int) distanceToFrame: (NSRect) frame; - (float) position; - (float) start; - (float) end; - (NSRect) frame; - (GormHintBorder) border; @end #endif gorm-1.3.1/GormCore/GormSetNameController.h0000644000175000017500000000102214327003122017570 0ustar heronheron// Author: Andrew E. Ruder // Copyright (C) 2003 by Free Software Foundation, Inc @class GormSetNameController; #ifndef GORM_SET_NAME_CONTROLLER_H #define GORM_SET_NAME_CONTROLLER_H #include @class NSButton, NSPanel, NSTextField; @interface GormSetNameController : NSObject { NSPanel *window; NSTextField *textField; NSButton *okButton; NSButton *cancelButton; } - (NSInteger)runAsModal; - (NSTextField *) textField; - (void) cancelHit: (id)sender; - (void) okHit: (id)sender; @end #endif gorm-1.3.1/GormCore/GormFontViewController.m0000644000175000017500000000545014327003122020013 0ustar heronheron/* All rights reserved */ #include #include "GormFontViewController.h" static GormFontViewController *gorm_font_cont = nil; @implementation GormFontViewController + (GormFontViewController *) sharedGormFontViewController { if (gorm_font_cont == nil) { gorm_font_cont = [[self alloc] init]; } return gorm_font_cont; } - (id) init { self = [super init]; if (self != nil) { // load the gui... if (![NSBundle loadNibNamed: @"GormFontView" owner: self]) { NSLog(@"Could not open gorm GormFontView"); return nil; } [[NSFontManager sharedFontManager] setDelegate: self]; } return self; } - (NSFont *) convertFont: (NSFont *)aFont { float size; NSFont *font; // If aFont isn't nil and the button is off then set the size // to the size of the passed in font. size = (aFont && [encodeButton state] == NSOffState) ? [aFont pointSize] : 0.0; switch([fontSelector indexOfSelectedItem]) { default: case 0: // selected font font = (aFont) ? aFont : [[NSFontManager sharedFontManager] selectedFont]; if (!font) font = [NSFont userFontOfSize: size]; break; case 1: // bold system font font = [NSFont boldSystemFontOfSize: size]; break; case 2: // system font font = [NSFont systemFontOfSize: size]; break; case 3: // user fixed font font = [NSFont userFixedPitchFontOfSize: size]; break; case 4: // user font font = [NSFont userFontOfSize: size]; break; case 5: // title bar font font = [NSFont titleBarFontOfSize: size]; break; case 6: // menu font font = [NSFont menuFontOfSize: size]; break; case 7: // message font font = [NSFont messageFontOfSize: size]; break; case 8: // palette font font = [NSFont paletteFontOfSize: size]; break; case 9: // tooltops font font = [NSFont toolTipsFontOfSize: size]; break; case 10: // control content font font = [NSFont controlContentFontOfSize: size]; break; case 11: font = [NSFont labelFontOfSize: size]; break; } return font; } - (void) selectFont: (id)sender { NSFontManager *fontManager = [NSFontManager sharedFontManager]; NSFont *font; font = [self convertFont: nil]; [fontManager setSelectedFont: font isMultiple: NO]; if ([fontSelector indexOfSelectedItem] == 0) { [encodeButton setEnabled: NO]; [encodeButton setState: NSOffState]; } else { [encodeButton setEnabled: YES]; [encodeButton setState: NSOffState]; } } - (id) view { return view; } - (void) mouseDragged: (NSEvent *)event { // here to make certain we don't crash.. } - (void) flagsChanged: (NSEvent *)event { // here to make certain we don't crash.. } @end gorm-1.3.1/GormCore/GormImage.m0000644000175000017500000001020314327003122015220 0ustar heronheron/* GormImageEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormImage.h" // implementation of category on NSImage. @implementation NSImage (GormNSImageAddition) - (void) setArchiveByName: (BOOL) archiveByName { _flags.archiveByName = archiveByName; } - (BOOL) archiveByName { return _flags.archiveByName; } @end // image proxy object... @implementation GormImage + (GormImage*)imageForPath: (NSString *)aPath { return [GormImage imageForPath: aPath inWrapper: NO]; } + (GormImage*)imageForPath: (NSString *)aPath inWrapper: (BOOL)flag { return AUTORELEASE([[GormImage alloc] initWithPath: aPath inWrapper: flag]); } + (GormImage*)imageForData: (NSData *)aData withFileName: (NSString *)aName inWrapper: (BOOL)flag { return AUTORELEASE([[GormImage alloc] initWithData: aData withFileName: aName inWrapper: flag]); } - (void) _resizeSmallImage { NSSize originalSize; CGFloat ratioH; CGFloat ratioW; originalSize = [smallImage size]; ratioW = originalSize.width / 70; ratioH = originalSize.height / 55; if (ratioH > 1 || ratioW > 1) { [smallImage setScalesWhenResized: YES]; if (ratioH > ratioW) { [smallImage setSize: NSMakeSize(originalSize.width / ratioH, 55)]; } else { [smallImage setSize: NSMakeSize(70, originalSize.height / ratioW)]; } } } - (id) initWithData: (NSData *)aData withFileName: (NSString *)aName inWrapper: (BOOL)flag { if ((self = [super initWithData: aData withFileName: aName inWrapper: flag]) != nil) { // FIXME: Why not make one a copy of the other? image = [[NSImage alloc] initWithData: aData]; smallImage = [[NSImage alloc] initWithData: aData]; if (smallImage == nil) { RELEASE(self); return nil; } [image setName: aName]; // FIXME: Not needed [image setArchiveByName: NO]; [smallImage setArchiveByName: NO]; [self _resizeSmallImage]; } return self; } - (id) initWithName: (NSString *)aName path: (NSString *)aPath inWrapper: (BOOL)flag { if ((self = [super initWithName: aName path: aPath inWrapper: flag]) != nil) { image = [[NSImage alloc] initByReferencingFile: aPath]; smallImage = [[NSImage alloc] initWithContentsOfFile: aPath]; if (smallImage == nil) { RELEASE(self); return nil; } [image setName: aName]; [image setArchiveByName: NO]; [smallImage setArchiveByName: NO]; [self _resizeSmallImage]; } return self; } - (void) dealloc { RELEASE(image); RELEASE(smallImage); [super dealloc]; } - (NSImage *) normalImage { return image; } - (NSImage *) image { return smallImage; } - (void) setSystemResource: (BOOL)flag { [super setSystemResource: flag]; [image setArchiveByName: flag]; [smallImage setArchiveByName: flag]; } @end @implementation GormImage (IBObjectAdditions) - (NSString *)inspectorClassName { return @"GormImageInspector"; } - (NSString *) classInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString *) connectInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString *) objectNameForInspectorTitle { return @"Image"; } - (NSImage *) imageForViewer { return [self image]; } @end gorm-1.3.1/GormCore/GormPlugin.h0000644000175000017500000000222314327003122015432 0ustar heronheron/* GormNibModule.m * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_GORMPLUGIN #define GORM_GORMPLUGIN #include @class NSString, NSArray; @interface GormPlugin : IBPlugin - (void) registerDocumentTypeName: (NSString *)name humanReadableName: (NSString *)hrName forExtensions: (NSArray *)extensions; @end #endif gorm-1.3.1/GormCore/GormSound.h0000644000175000017500000000315514327003122015271 0ustar heronheron/** GormSound A place holder for a sound. Copyright (C) 2001 Free Software Foundation, Inc. Author: Gregory John Casamento Date: Dec 2004 This file is part of the GNUstep GUI Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormSound_h #define INCLUDED_GormSound_h #include #include @class NSString; @interface GormSound : GormResource /** * Creates a GormSound object using the file at path. */ + (GormSound*) soundForPath: (NSString *)path; /** * Creates a GormSound object using the file at path, and marks it as * inside or outside of the .gorm/.nib wrapper. */ + (GormSound*) soundForPath: (NSString *)path inWrapper: (BOOL)flag; + (GormSound*) soundForData: (NSData *)aData withFileName: (NSString *)aName inWrapper: (BOOL)flag; @end #endif gorm-1.3.1/GormCore/NSCell+GormAdditions.m0000644000175000017500000000433714327003122017243 0ustar heronheron/* NSCell+GormAdditions.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "NSCell+GormAdditions.h" @implementation NSCell (GormAdditions) // This is category-smashing... #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wobjc-protocol-method-implementation" /* * this methods is directly coming from NSCell.m * The only additions is [textObject setUsesFontPanel: NO] * We do this because we want to have control over the font panel changes */ - (NSText *)setUpFieldEditorAttributes:(NSText *)textObject { [textObject setUsesFontPanel: NO]; [textObject setTextColor: [self textColor]]; if (_cell.contents_is_attributed_string == NO) { /* TODO: Manage scrollable attribute */ [textObject setFont: _font]; [textObject setAlignment: _cell.text_align]; } else { /* TODO: What do we do if we are an attributed string. Think about what happens when the user ends editing. Allows editing text attributes... Formatter. */ } [textObject setEditable: _cell.is_editable]; [textObject setSelectable: _cell.is_selectable || _cell.is_editable]; [textObject setRichText: _cell.is_rich_text]; [textObject setImportsGraphics: _cell.imports_graphics]; [textObject setSelectedRange: NSMakeRange(0, 0)]; return textObject; } #pragma GCC diagnostic pop @end gorm-1.3.1/GormCore/GormOutlineView.h0000644000175000017500000000635614327003122016461 0ustar heronheron/* GormOutlineView.h The outline class. Copyright (C) 2001 Free Software Foundation, Inc. Author: Gregory John Casamento Date: July 2002 This file is part of the GNUstep GUI Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormOutlineView_h #define INCLUDED_GormOutlineView_h #include #include @class NSTableColumn; @class NSMenuItem; typedef enum {None, Outlets, Actions} GSAttributeType; @interface GormOutlineView : NSOutlineView { float _attributeOffset; BOOL _isEditing; id _itemBeingEdited; NSTableColumn *_actionColumn; NSTableColumn *_outletColumn; GSAttributeType _edittype; NSMenuItem *_menuItem; } // Instance methods - (float)attributeOffset; - (void)setAttributeOffset: (float)offset; - (id) itemBeingEdited; - (void) setItemBeingEdited: (id)item; - (BOOL) isEditing; - (void) setIsEditing: (BOOL)flag; - (NSTableColumn *)actionColumn; - (void) setActionColumn: (NSTableColumn *)ac; - (NSTableColumn *)outletColumn; - (void) setOutletColumn: (NSTableColumn *)oc; - (NSMenuItem *)menuItem; - (void) setMenuItem: (NSMenuItem *)item; - (GSAttributeType)editType; - (void) removeItemAtRow: (int)row; - (void) reset; - (void) selectRow: (int)rowIndex; @end /* interface of GormOutlineView */ // informal protocol to define necessary methods on // GormOutlineView's data source to make information // about the class which was selected... @interface NSObject (GormOutlineViewDataSource) - (NSArray *) outlineView: (GormOutlineView *)ov actionsForItem: (id)item; - (NSArray *) outlineView: (GormOutlineView *)ov outletsForItem: (id)item; - (void)outlineView: (NSOutlineView *)anOutlineView addAction: (NSString *)action forClass: (id)item; - (void)outlineView: (NSOutlineView *)anOutlineView addOutlet: (NSString *)outlet forClass: (id)item; - (NSString *)outlineView: (NSOutlineView *)anOutlineView addNewActionForClass: (id)item; - (NSString *)outlineView: (NSOutlineView *)anOutlineView addNewOutletForClass: (id)item; @end @interface NSObject (GormOutlineViewDelegate) - (BOOL) outlineView: (GormOutlineView *)ov shouldDeleteItem: (id)item; @end // a class to hold the outlet/actions so that the // draw row method will know how to render them on // the display... @interface GormOutletActionHolder : NSObject { NSString *_name; } - initWithName: (NSString *)name; - (NSString *)getName; - (void)setName: (NSString *)name; @end #endif /* _GNUstep_H_GormOutlineView */ gorm-1.3.1/GormCore/GormProtocol.h0000644000175000017500000000437414327003122016006 0ustar heronheron/* GormProtocol.h * * Copyright (C) 1999, 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormProtocol_h #define INCLUDED_GormProtocol_h #include @class GormClassManager, GormPalettesManager, GormInspectorsManager, NSString, NSMenu, GormPluginManager; @protocol Gorm // Connections - (id) connectSource; - (id) connectDestination; - (void) displayConnectionBetween: (id)source and: (id)destination; - (BOOL) isConnecting; - (void) stopConnecting; // preferences - (void) preferencesPanel: (id) sender; // Cut/Paste operations - (void) copy: (id)sender; - (void) cut: (id)sender; - (void) paste: (id)sender; - (void) delete: (id)sender; - (void) selectAllItems: (id)sender; - (void) setName: (id)sender; // palettes/inspectors. - (void) inspector: (id) sender; - (void) palettes: (id) sender; - (void) loadPalette: (id) sender; - (GormPalettesManager*) palettesManager; - (GormInspectorsManager*) inspectorsManager; - (GormPluginManager*) pluginManager; // testing the interface - (void) testInterface: (id)sender; - (id) endTesting: (id)sender; // sound & images - (void) loadSound: (id) sender; - (void) loadImage: (id) sender; // grouping/layout - (void) groupSelectionInSplitView: (id)sender; - (void) groupSelectionInBox: (id)sender; - (void) groupSelectionInScrollView: (id)sender; - (void) ungroup: (id)sender; // added for classes support - (GormClassManager*) classManager; - (NSMenu*) classMenu; @end #endif gorm-1.3.1/GormCore/GormSoundView.m0000644000175000017500000000517414327003123016135 0ustar heronheron/** GormSoundView Visualizes a sound. Copyright (C) 2004 Free Software Foundation, Inc. Author: Gregory John Casamento Date: May 2004 This file is part of GNUstep. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All rights reserved */ #include #include #include "GormSoundView.h" // add a data method to the NSSound class... @interface NSSound (SoundView) - (NSData *)data; @end @implementation NSSound (SoundView) - (NSData *)data { return _data; } @end /* static float findMax(NSData *data) { float max = 0.0; NSInteger index = 0; float *array = (float *)[data bytes]; NSInteger len = [data length]; // find the maximum... for(index = 0; index < len; index++) { float d = array[index]; if(d > max) { max = d; } } return max; } */ @implementation GormSoundView - (void) setSound: (NSSound *)sound { NSLog(@"Set sound..."); ASSIGN(_sound,sound); [self setNeedsDisplay: YES]; } - (NSSound *)sound { return _sound; } /* - (void) drawRect: (NSRect)aRect { float w = aRect.size.width; float h = aRect.size.height; float offset = (h/2); NSData *soundData = [_sound data]; float *data = 0; float x1 = 0, x2 = 0, y1 = offset, y2 = offset; float max = findMax(soundData); float multiplier = h/max; NSInteger length = [soundData length]; NSInteger index = 0; NSInteger step = (length/(int)w); [super drawRect: aRect]; PSsetrgbcolor(1.0,0,0); // red data = (float *)[soundData bytes]; if( length > 2 ) { x1 = (data[0] * multiplier); y1 = offset; for(index = step; index < w; index+=step) { NSInteger i = (int)index; float d = data[i]; // calc new position... x2 = d * multiplier; y2 = index + offset; PSmoveto(x1,y1); PSlineto(x2,y2); // move to old vars... x1 = x2; y1 = y2; } } } */ @end gorm-1.3.1/GormCore/GormViewKnobs.h0000644000175000017500000000264214327003122016110 0ustar heronheron/* GormViewKnobs.h Copyright (C) 1999 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2004 This file is part of the GNUstep Interface Modeller Application. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormViewKnobs_h #define INCLUDED_GormViewKnobs_h #include #include #include void GormShowFastKnobFills(void); void GormShowFrameWithKnob(NSRect aRect, IBKnobPosition aKnob); void GormDrawKnobsForRect(NSRect aRect); void GormDrawOpenKnobsForRect(NSRect aRect); IBKnobPosition GormKnobHitInRect(NSRect aFrame, NSPoint p); NSRect GormExtBoundsForRect(NSRect aRect); #endif gorm-1.3.1/GormCore/GormWindowEditor.h0000644000175000017500000000547714327003122016630 0ustar heronheron/* GormWindowEditor.h * * Copyright (C) 1999,2004,2005 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * Author: Gregory John Casamento * Date: 2004,2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormWindowEditor_h #define INCLUDED_GormWindowEditor_h #include #include @class NSMutableArray, NSString, NSView, NSPasteboard; @interface GormWindowEditor : GormViewWithContentViewEditor { NSView *edit_view; NSMutableArray *subeditors; BOOL isLinkSource; NSPasteboard *dragPb; NSString *dragType; } /** * Returns YES, if the reciever accepts any of the pasteboard items in types. */ - (BOOL) acceptsTypeFromArray: (NSArray*)types; /** * Activates the editor */ - (BOOL) activate; /** * Instantiate with anObject in the document aDocument. */ - (id) initWithObject: (id)anObject inDocument: (id)aDocument; /** * Change the font. */ - (void) changeFont: (id) sender; /** * Close the editor. This will also call the deactivate method. */ - (void) close; /** * Close any and all editors which are subordinate to this one. */ - (void) closeSubeditors; /** * Deactivate the editor. */ - (void) deactivate; /** * Delete the current selection. */ - (void) deleteSelection; /** * Return the document which the object the receiver is edited is located in. */ - (id) document; /** * Call with success or failure of the drag operation. */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f; /** * Returns NSDragOperationNone. */ - (NSUInteger) draggingSourceOperationMaskForLocal: (BOOL)flag; /** * Make current selection visible. */ - (void) makeSelectionVisible: (BOOL)flag; - (id) openSubeditorForObject: (id)anObject; /** * Order the edited window to the front. */ - (void) orderFront; /** * Paste from pasteboard. */ - (void) pasteInSelection; /** * Reset object, redisplays the window. */ - (void) resetObject: (id)anObject; @end #endif gorm-1.3.1/GormCore/GNUmakefile.preamble0000644000175000017500000000255014327003122017041 0ustar heronheron# GNUmakefile: main makefile for GNUstep Object Relationship Modeller # # Copyright (C) 2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # Date: 2003 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA # # ADDITIONAL_OBJCFLAGS += -Wall -Werror ADDITIONAL_GUI_LIBS += \ -lGorm \ -lGormObjCHeaderParser ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) else ADDITIONAL_LIB_DIRS += \ -L../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) endif GormCore_LIBRARIES_DEPEND_UPON += -lGormObjCHeaderParser gorm-1.3.1/GormCore/GormStandaloneViewEditor.h0000644000175000017500000000221114327003122020263 0ustar heronheron/* GormStandaloneViewEditor.h * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormStandaloneViewEditor_h #define INCLUDED_GormStandaloneViewEditor_h #include @interface GormStandaloneViewEditor : GormViewWithContentViewEditor @end #endif gorm-1.3.1/GormCore/GormImageInspector.h0000644000175000017500000000034414327003122017107 0ustar heronheron/* All Rights reserved */ #include #include @interface GormImageInspector : IBInspector { id name; id imageView; id width; id height; id _currentImage; } @end gorm-1.3.1/GormCore/GormNSWindow.m0000644000175000017500000000751114327003122015716 0ustar heronheron/* GormWindow.m Copyright (C) 2001 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNSWindow.h" // the default style mask we start with. static NSUInteger defaultStyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSMiniaturizableWindowMask; @implementation GormNSWindow - (void) encodeWithCoder: (NSCoder*)aCoder { unsigned oldStyleMask; // save the old values... oldStyleMask = _styleMask; // set the values we wish to save.. after save restore. _styleMask = _gormStyleMask; [self setReleasedWhenClosed: _gormReleasedWhenClosed]; [super encodeWithCoder: aCoder]; _styleMask = oldStyleMask; [self setReleasedWhenClosed: NO]; } - (id) initWithCoder: (NSCoder *)coder { self = [super initWithCoder: coder]; if (self == nil) { return nil; } // preserve the setting and set the actual window to NO. _gormReleasedWhenClosed = [self isReleasedWhenClosed]; [self setReleasedWhenClosed: NO]; return self; } - (id) initWithContentRect: (NSRect)contentRect styleMask: (NSUInteger)aStyle backing: (NSBackingStoreType)bufferingType defer: (BOOL)flag { _gormStyleMask = aStyle; self = [super initWithContentRect: contentRect styleMask: defaultStyleMask backing: bufferingType defer: NO]; // always no, because this isn't recorded here... if(self != nil) { // Don't release when the window is closed, a window being edited may // be periodically opened and closed. [self setReleasedWhenClosed: NO]; // remove the default icon... [self setMiniwindowImage: nil]; // set the default position mask; autoPositionMask = GSWindowMaxXMargin | GSWindowMinYMargin; } return self; } - (void) _setStyleMask: (unsigned int)newStyleMask { _gormStyleMask = newStyleMask; } - (unsigned int) _styleMask { return _gormStyleMask; } - (BOOL) canBecomeMainWindow { return NO; } - (BOOL) canBecomeKeyWindow { return YES; } - (NSString *) className { return @"NSWindow"; } - (void) _setReleasedWhenClosed: (BOOL) flag { _gormReleasedWhenClosed = flag; } - (BOOL) _isReleasedWhenClosed { return _gormReleasedWhenClosed; } - (unsigned int) autoPositionMask { return autoPositionMask; } - (void) setAutoPositionMask: (unsigned int)mask { autoPositionMask = mask; } - (void) orderWindow: (NSWindowOrderingMode)place relativeTo: (NSInteger)otherWin { id document = [(id)NSApp documentForObject: self]; [super orderWindow: place relativeTo: otherWin]; if([NSApp isConnecting] == NO) { id editor = [document editorForObject: self create: NO]; // select myself. if([editor respondsToSelector: @selector(selectObjects:)]) { [editor selectObjects: [NSArray arrayWithObject: self]]; } [document setSelectionFromEditor: editor]; [editor makeSelectionVisible: YES]; } } - (void) saveFrameUsingName: (NSString*)name { // do nothing... } @end gorm-1.3.1/GormCore/GormImage.h0000644000175000017500000000442514327003122015224 0ustar heronheron/** GormImage This class is a placeholder for a real image. Copyright (C) 2001 Free Software Foundation, Inc. Author: Gregory John Casamento Date: Dec 2004 This file is part of the GNUstep GUI Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormImage_h #define INCLUDED_GormImage_h #include #include @class NSString, NSImage; @interface GormImage : GormResource { NSImage *image; NSImage *smallImage; } /** * Initialize with image data located at path. */ + (GormImage *) imageForPath: (NSString *)path; /** * Initialize with image data located at path. Mark it as in the * wrapper depending on the value of flag. */ + (GormImage *) imageForPath: (NSString *)path inWrapper: (BOOL)flag; /** * Initialize with image data. Mark it as in the * wrapper depending on the value of flag. */ + (GormImage*)imageForData: (NSData *)aData withFileName: (NSString *)aName inWrapper: (BOOL)flag; /** * A thumbnail of the image. */ - (NSImage *)image; /** * The full sized image. */ - (NSImage *)normalImage; @end /* * A category which will allow us to set whether or not * an image is archived by reference, or directly. */ @interface NSImage (GormNSImageAddition) /** * Set to YES, if the image should be archived by name only, NO otherwise. */ - (void) setArchiveByName: (BOOL) archiveByName; /** * Returns YES, if the image should be archived by name only, NO otherwise. */ - (BOOL) archiveByName; @end #endif gorm-1.3.1/GormCore/GormSplitViewEditor.m0000644000175000017500000002143014327003122017277 0ustar heronheron/* GormSplitViewEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormSplitViewEditor.h" #include "GormInternalViewEditor.h" #include "GormBoxEditor.h" #include "GormViewKnobs.h" #define _EO ((NSSplitView *)_editedObject) @implementation GormSplitViewEditor - (id) initWithObject: (id) anObject inDocument: (id) aDocument { opened = NO; _displaySelection = YES; self = [super initWithObject: anObject inDocument: aDocument]; [self registerForDraggedTypes: [NSArray arrayWithObjects: IBViewPboardType, GormLinkPboardType, IBFormatterPboardType, nil]]; return self; } - (BOOL) activate { if ([super activate]) { NSEnumerator *enumerator; NSView *sub; NSDebugLog(@"activating %@ GormSplitViewEditor %@", self, _EO); [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(splitViewDidResizeSubviews:) name: NSSplitViewDidResizeSubviewsNotification object: _EO]; enumerator = [[NSArray arrayWithArray: [_EO subviews]] objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { NSDebugLog(@"ac %@ editorForObject: %@", self, sub); if ([sub isKindOfClass: [GormViewEditor class]] == NO) { NSDebugLog(@"ac %@ yes", self); [document editorForObject: sub inEditor: self create: YES]; } } return YES; } return NO; } - (void) deactivate { if (activated == YES) { [self deactivateSubeditors]; openedSubeditor = nil; [[NSNotificationCenter defaultCenter] removeObserver: self]; [super deactivate]; } } - (void) validateFrame: (NSRect) frame withEvent: (NSEvent *) theEvent andPlacementInfo: (GormPlacementInfo *) gpi { [super validateFrame: frame withEvent: theEvent andPlacementInfo: gpi]; [_EO adjustSubviews]; } - (BOOL) acceptsTypeFromArray: (NSArray*)types { if ([super acceptsTypeFromArray: types]) { return YES; } else { return [types containsObject: IBViewPboardType]; } } - (NSDragOperation) draggingEntered: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { [NSApp displayConnectionBetween: [NSApp connectSource] and: _EO]; return NSDragOperationLink; } else if ([types containsObject: IBViewPboardType] == YES) { return NSDragOperationCopy; } else { return NSDragOperationNone; } } - (BOOL) prepareForDragOperation: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { return YES; } else if ([types containsObject: IBViewPboardType] == YES) { return YES; } else { return NO; } } - (NSDragOperation) draggingUpdated: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { [NSApp displayConnectionBetween: [NSApp connectSource] and: _EO]; return NSDragOperationLink; } else if ([types containsObject: IBViewPboardType] == YES) { return NSDragOperationCopy; } else { return NSDragOperationNone; } } - (BOOL) performDragOperation: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType]) { [NSApp displayConnectionBetween: [NSApp connectSource] and: _EO]; [NSApp startConnecting]; } else if ([types containsObject: IBViewPboardType] == YES) { NSArray *views; NSEnumerator *enumerator; NSView *sub; views = [document pasteType: IBViewPboardType fromPasteboard: dragPb parent: _EO]; enumerator = [views objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { [_EO addSubview: sub]; [document editorForObject: sub inEditor: self create: YES]; } [_EO adjustSubviews]; [_EO setNeedsDisplay: YES]; } return YES; } - (void) mouseDown: (NSEvent *) theEvent { BOOL onKnob = NO; NSView *clickedSubview; { if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _EO]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (parent) return [parent mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } } if (opened == NO) { [super mouseDown: theEvent]; return; } { NSInteger i; NSArray *subs = [_EO subviews]; NSInteger count = [subs count]; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; clickedSubview = [_EO hitTest: mouseDownPoint]; for ( i = 0; i < count; i++ ) { if ([clickedSubview isDescendantOf: [subs objectAtIndex: i]]) { break; } } if (i < count) clickedSubview = [subs objectAtIndex: i]; else { clickedSubview = nil; } } if (clickedSubview == nil) { if (openedSubeditor) [openedSubeditor deactivate]; [_EO mouseDown: theEvent]; } else { [self selectObjects: [NSArray arrayWithObject: clickedSubview]]; [self setNeedsDisplay: YES]; if ([theEvent clickCount] == 2 && [clickedSubview isKindOfClass: [GormViewWithSubviewsEditor class]] && ([(GormViewWithSubviewsEditor *) clickedSubview canBeOpened] == YES) && (clickedSubview != self)) { if ((openedSubeditor != (GormViewWithSubviewsEditor *)clickedSubview) && openedSubeditor) [openedSubeditor deactivate]; [self setOpenedSubeditor: (GormViewWithSubviewsEditor *)clickedSubview]; if ([(GormViewWithSubviewsEditor *) clickedSubview isOpened] == NO) [(GormViewWithSubviewsEditor *)clickedSubview setOpened: YES]; [clickedSubview mouseDown: theEvent]; } } } - (void) splitViewDidResizeSubviews: (NSNotification *)aNotification { [self setNeedsDisplay: YES]; } - (void) ungroup { NSView *toUngroup; if ([selection count] != 1) return; toUngroup = [selection objectAtIndex: 0]; if ([toUngroup isKindOfClass: [GormBoxEditor class]] || [toUngroup isKindOfClass: [GormSplitViewEditor class]]) { id contentView = toUngroup; NSMutableArray *newSelection = [NSMutableArray array]; NSArray *views; NSInteger i; views = [contentView destroyAndListSubviews]; for (i = 0; i < [views count]; i++) { [_editedObject addSubview: [views objectAtIndex: i]]; [newSelection addObject: [document editorForObject: [views objectAtIndex: i] inEditor: self create: YES]]; } [[contentView editedObject] removeFromSuperview]; [_EO adjustSubviews]; [self setNeedsDisplay: YES]; } } - (NSArray *)destroyAndListSubviews { NSEnumerator *enumerator = [[_EO subviews] objectEnumerator]; GormViewEditor *subview; NSMutableArray *newSelection = [NSMutableArray array]; [parent makeSubeditorResign]; while ((subview = [enumerator nextObject]) != nil) { id v; NSRect frame; v = [subview editedObject]; frame = [v frame]; frame = [parent convertRect: frame fromView: _EO]; [subview deactivate]; [v setFrame: frame]; [newSelection addObject: v]; } [self close]; [document detachObject: self]; return newSelection; } @end gorm-1.3.1/GormCore/GormBoxEditor.h0000644000175000017500000000231014327003122016070 0ustar heronheron/* GormBoxEditor.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormBoxEditor_h #define INCLUDED_GormBoxEditor_h #include #include @interface GormBoxEditor : GormViewWithSubviewsEditor { GormInternalViewEditor *contentViewEditor; } - (NSArray *)destroyAndListSubviews; @end #endif gorm-1.3.1/GormCore/GormClassInspector.h0000644000175000017500000000402014327003122017125 0ustar heronheron/** GormClassInspector allow user to select custom classes Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: September 2002 This file is part of GNUstep. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All Rights reserved */ #include #include @class GormClassManager; @interface GormClassInspector : IBInspector { // outlets id actionTable; id addAction; id addOutlet; id classField; id outletTable; id parentClass; id removeAction; id removeOutlet; id selectClass; id search; id searchText; id tabView; // internal vars NSString *currentClass; id theobject; id actionData; id outletData; id parentClassData; // class manager.. GormClassManager *classManager; } - (void) addAction: (id)sender; - (void) removeAction: (id)sender; - (void) addOutlet: (id)sender; - (void) removeOutlet: (id)sender; - (void) select: (id)sender; - (void) searchForClass: (id)sender; - (void) selectClass: (id)sender; - (NSString *) _currentClass; - (void) _refreshView; - (void) handleNotification: (NSNotification *)notification; - (void) changeClassName: (id)sender; - (void) selectAction: (id)sender; - (void) selectOutlet: (id)sender; @end gorm-1.3.1/GormCore/GormSoundInspector.m0000644000175000017500000000475014327003122017167 0ustar heronheron/** GormSoundInspector allow user to select custom classes Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: September 2002 This file is part of GNUstep. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All rights reserved */ #include #include "GormSoundInspector.h" #include "GormPrivate.h" #include "GormClassManager.h" #include "GormDocument.h" #include "GormPrivate.h" #include "GormSoundView.h" #include "GormSound.h" @implementation GormSoundInspector + (void) initialize { if (self == [GormSoundInspector class]) { // TBD } } - (id) init { self = [super init]; if (self != nil) { // load the gui... if (![NSBundle loadNibNamed: @"GormSoundInspector" owner: self]) { NSLog(@"Could not open gorm GormSoundInspector"); return nil; } } return self; } - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; [super dealloc]; } - (void) setObject: (id)anObject { // if its not nil, load it... if(anObject != nil) { if([anObject isKindOfClass: [GormSound class]]) { id snd; NSDebugLog(@"Sound inspector notified: %@",anObject); snd = AUTORELEASE([[NSSound alloc] initWithContentsOfFile: [anObject path] byReference: YES]); [super setObject: snd]; [soundView setSound: snd]; NSDebugLog(@"Loaded sound"); } } } - (void) stop: (id)sender { NSDebugLog(@"Stop"); [(NSSound *)object stop]; } - (void) play: (id)sender { NSDebugLog(@"Play"); [(NSSound *)object play]; } - (void) pause: (id)sender { NSDebugLog(@"Pause"); [(NSSound *)object pause]; } - (void) record: (id)sender { NSDebugLog(@"Record"); // [object record]; } @end gorm-1.3.1/GormCore/GormCustomView.h0000644000175000017500000000224614327003122016306 0ustar heronheron/* GormCustomView.h - Visual representation of a custom view placeholder * * Copyright (C) 2001 Free Software Foundation, Inc. * * Author: Adam Fedor * Date: 2001 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormCustomView_h #define INCLUDED_GormCustomView_h #include @interface GormCustomView : NSTextField { NSString *className; } - (void) setClassName: (NSString *)aName; - (NSString *) className; @end #endif gorm-1.3.1/GormCore/GormClassManager.m0000644000175000017500000017361314327003122016555 0ustar heronheron/* GormClassManager.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormPrivate.h" #include "GormCustomView.h" #include "GormDocument.h" #include "GormFilesOwner.h" #include "GormPalettesManager.h" /** * Just a few definitions to start things out. To increase efficiency, * so that Gorm doesn't need to constantly derive the method list for * each class, it is necessary to cache some information. Here is the * way it works. * * Actions = All actions on that class, excluding superclass methods. * AllActions = All actions on that class including superclass methods. * ExtraActions = All actions added during this session. * * Outlets = All actions on that class, excluding superclass methods. * AllOutlets = All actions on that class including superclass methods. * ExtraOutlets = All actions added during this session. */ /** Private methods not accesible from outside */ @interface GormClassManager (Private) - (NSMutableDictionary*) classInfoForClassName: (NSString*)className; - (NSMutableDictionary*) classInfoForObject: (id)anObject; - (void) touch; - (void) convertDictionary: (NSMutableDictionary *)dict; @end @interface NSMutableArray (Private) - (void) mergeObject: (id)object; - (void) mergeObjectsFromArray: (NSArray *)array; @end @implementation NSMutableArray (Private) - (void) mergeObject: (id)object { if ([self containsObject: object] == NO) { [self addObject: object]; [self sortUsingSelector: @selector(compare:)]; } } - (void) mergeObjectsFromArray: (NSArray *)array { id obj = nil; if(array != nil) { NSEnumerator *enumerator = [array objectEnumerator]; while ((obj = [enumerator nextObject]) != nil) { [self mergeObject: obj]; } } } @end @implementation GormClassManager - (id) initWithDocument: (id)aDocument { self = [super init]; if (self != nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path; document = aDocument; // the document retains us, this is for convenience path = [bundle pathForResource: @"ClassInformation" ofType: @"plist"]; if (path == nil) { NSLog(@"ClassInformation.plist missing from resources"); } else { GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; NSDictionary *importedClasses = [palettesManager importedClasses]; NSEnumerator *en = [importedClasses objectEnumerator]; NSDictionary *description = nil; // load the classes, initialize the custom class array and map.. if([self loadFromFile: path]) { NSMutableDictionary *classDict = [classInformation objectForKey: @"FirstResponder"]; NSMutableArray *firstResponderActions = [classDict objectForKey: @"Actions"]; customClasses = [[NSMutableArray alloc] initWithCapacity: 1]; customClassMap = [[NSMutableDictionary alloc] initWithCapacity: 10]; categoryClasses = [[NSMutableArray alloc] initWithCapacity: 1]; // add the imported classes to the class information list... [classInformation addEntriesFromDictionary: importedClasses]; // add all of the actions to the FirstResponder while((description = [en nextObject]) != nil) { NSArray *actions = [description objectForKey: @"Actions"]; NSEnumerator *aen = [actions objectEnumerator]; NSString *actionName = nil; // add the actions to the first responder... while((actionName = [aen nextObject]) != nil) { if(![firstResponderActions containsObject: actionName]) { [firstResponderActions addObject: [actionName copy]]; } } } // incorporate the added actions into the list and sort. [self allActionsForClassNamed: @"FirstResponder"]; } } } return self; } - (void) touch { [[NSNotificationCenter defaultCenter] postNotificationName: GormDidModifyClassNotification object: self]; [document touch]; } - (void) convertDictionary: (NSMutableDictionary *)dict { [dict removeObjectsForKeys: [classInformation allKeys]]; } - (NSString *) uniqueClassNameFrom: (NSString *)name { NSString *search = [NSString stringWithString: name]; NSInteger i = 1; while([classInformation objectForKey: search]) { search = [name stringByAppendingString: [NSString stringWithFormat: @"%ld",(long)i++]]; } return search; } - (NSString *) addClassWithSuperClassName: (NSString*)name { if (([self isRootClass: name] || [classInformation objectForKey: name] != nil) && [name isEqual: @"FirstResponder"] == NO) { NSMutableDictionary *classInfo; NSMutableArray *outlets; NSMutableArray *actions; NSString *className = [self uniqueClassNameFrom: @"NewClass"]; classInfo = [[NSMutableDictionary alloc] initWithCapacity: 3]; outlets = [[NSMutableArray alloc] initWithCapacity: 0]; actions = [[NSMutableArray alloc] initWithCapacity: 0]; [classInfo setObject: outlets forKey: @"Outlets"]; [classInfo setObject: actions forKey: @"Actions"]; [classInfo setObject: name forKey: @"Super"]; [classInformation setObject: classInfo forKey: className]; [customClasses addObject: className]; [self touch]; [[NSNotificationCenter defaultCenter] postNotificationName: GormDidAddClassNotification object: self]; return className; } return nil; } - (NSString *) addNewActionToClassNamed: (NSString *)name { NSArray *combined = [self allActionsForClassNamed: name]; NSString *newAction = @"newAction"; NSString *search = [newAction stringByAppendingString: @":"]; NSString *new = nil; NSInteger i = 1; while ([combined containsObject: search]) { new = [newAction stringByAppendingFormat: @"%ld", (long)i++]; search = [new stringByAppendingString: @":"]; } [self addAction: search forClassNamed: name]; return search; } - (NSString *) addNewOutletToClassNamed: (NSString *)name { NSArray *combined = [self allOutletsForClassNamed: name]; NSString *newOutlet = @"newOutlet"; NSString *new = newOutlet; NSInteger i = 1; while ([combined containsObject: new]) { new = [newOutlet stringByAppendingFormat: @"%ld", (long)i++]; } [self addOutlet: new forClassNamed: name]; return new; } - (BOOL) addClassNamed: (NSString *)className withSuperClassNamed: (NSString *)superClassName withActions: (NSArray *)actions withOutlets: (NSArray *)outlets { return [self addClassNamed: className withSuperClassNamed: superClassName withActions: actions withOutlets: outlets isCustom: YES]; } - (BOOL) addClassNamed: (NSString *)className withSuperClassNamed: (NSString *)superClassName withActions: (NSArray *)actions withOutlets: (NSArray *)outlets isCustom: (BOOL) isCustom { BOOL result = NO; NSString *classNameCopy = [NSString stringWithString: className]; NSString *superClassNameCopy = (superClassName != nil)?[NSString stringWithString: superClassName]:nil; NSMutableArray *actionsCopy = (actions != nil)?[NSMutableArray arrayWithArray: actions]:[NSMutableArray array]; NSMutableArray *outletsCopy = (outlets != nil)?[NSMutableArray arrayWithArray: outlets]:[NSMutableArray array]; // We make an autoreleased copy of all of the inputs. This prevents changes // to the original objects from reflecting here. GJC if ([self isRootClass: superClassNameCopy] || ([classInformation objectForKey: superClassNameCopy] != nil && [superClassNameCopy isEqualToString: @"FirstResponder"] == NO)) { NSMutableDictionary *classInfo; if (![classInformation objectForKey: classNameCopy]) { NSEnumerator *e = [actionsCopy objectEnumerator]; id action = nil; NSArray *superActions = [self allActionsForClassNamed: superClassNameCopy]; NSArray *superOutlets = [self allOutletsForClassNamed: superClassNameCopy]; [self touch]; classInfo = [[NSMutableDictionary alloc] initWithCapacity: 3]; // if an outlet/action is defined on the superclass before this // class is added, the superclass' entry takes precedence. [actionsCopy removeObjectsInArray: superActions]; [outletsCopy removeObjectsInArray: superOutlets]; [classInfo setObject: outletsCopy forKey: @"Outlets"]; [classInfo setObject: actionsCopy forKey: @"Actions"]; if(superClassNameCopy != nil) { [classInfo setObject: superClassNameCopy forKey: @"Super"]; } [classInformation setObject: classInfo forKey: classNameCopy]; // if it's a custom class add it to the list. if(isCustom) { [customClasses addObject: classNameCopy]; } // copy all actions from the class imported to the first responder while((action = [e nextObject])) { [self addAction: action forClassNamed: @"FirstResponder"]; } result = YES; // post the notification [[NSNotificationCenter defaultCenter] postNotificationName: GormDidAddClassNotification object: self]; } else { NSDebugLog(@"Class already exists"); result = NO; } } return result; } - (void) addAction: (NSString *)anAction forObject: (id)anObject { [self addAction: anAction forClassNamed: [anObject className]]; } - (void) addAction: (NSString *)action forClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSMutableArray *extraActions = [info objectForKey: @"ExtraActions"]; NSMutableArray *allActions = [info objectForKey: @"AllActions"]; NSString *anAction = [action copy]; NSArray *subClasses = [self allSubclassesOf: className]; NSEnumerator *en = [subClasses objectEnumerator]; NSString *subclassName = nil; // check all if ([allActions containsObject: anAction]) { return; } if ([self isNonCustomClass: className]) { if([categoryClasses containsObject: className] == NO) { [categoryClasses addObject: className]; } } if (extraActions == nil) { extraActions = [[NSMutableArray alloc] initWithCapacity: 1]; [info setObject: extraActions forKey: @"ExtraActions"]; } [extraActions mergeObject: anAction]; [allActions mergeObject: anAction]; if(![className isEqualToString: @"FirstResponder"]) { [self addAction: anAction forClassNamed: @"FirstResponder"]; } while((subclassName = [en nextObject]) != nil) { NSDictionary *subInfo = [classInformation objectForKey: subclassName]; NSMutableArray *subAll = [subInfo objectForKey: @"AllActions"]; [subAll mergeObject: anAction]; } [self touch]; } - (void) addOutlet: (NSString *)outlet forObject: (id)anObject { [self addOutlet: outlet forClassNamed: [anObject className]]; } - (void) addOutlet: (NSString *)outlet forClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSMutableArray *extraOutlets = [info objectForKey: @"ExtraOutlets"]; NSMutableArray *allOutlets = [info objectForKey: @"AllOutlets"]; NSString *anOutlet = [outlet copy]; NSArray *subClasses = [self allSubclassesOf: className]; NSEnumerator *en = [subClasses objectEnumerator]; NSString *subclassName = nil; // check all if ([allOutlets containsObject: anOutlet]) { return; } if (extraOutlets == nil) { extraOutlets = [[NSMutableArray alloc] initWithCapacity: 1]; [info setObject: extraOutlets forKey: @"ExtraOutlets"]; } [extraOutlets mergeObject: anOutlet]; [allOutlets mergeObject: anOutlet]; while((subclassName = [en nextObject]) != nil) { NSDictionary *subInfo = [classInformation objectForKey: subclassName]; NSMutableArray *subAll = [subInfo objectForKey: @"AllOutlets"]; [subAll mergeObject: anOutlet]; } [self touch]; } - (void) replaceAction: (NSString *)oldAction withAction: (NSString *)aNewAction forClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSMutableArray *extraActions = [info objectForKey: @"ExtraActions"]; NSMutableArray *actions = [info objectForKey: @"Actions"]; NSMutableArray *allActions = [info objectForKey: @"AllActions"]; NSString *newAction = AUTORELEASE([aNewAction copy]); NSEnumerator *en = [[self subClassesOf: className] objectEnumerator]; NSString *subclassName = nil; if ([allActions containsObject: newAction] || [extraActions containsObject: newAction]) { return; } // replace the action in the appropriate places. if ([extraActions containsObject: oldAction]) { NSInteger extra_index = [extraActions indexOfObject: oldAction]; [extraActions replaceObjectAtIndex: extra_index withObject: newAction]; } if ([actions containsObject: oldAction]) { NSInteger actions_index = [actions indexOfObject: oldAction]; [actions replaceObjectAtIndex: actions_index withObject: newAction]; } if ([allActions containsObject: oldAction]) { NSInteger all_index = [allActions indexOfObject: oldAction]; [allActions replaceObjectAtIndex: all_index withObject: newAction]; } [self touch]; // add the action to all of the subclasses, in the "AllActions" section... while((subclassName = [en nextObject]) != nil) { [self replaceAction: oldAction withAction: newAction forClassNamed: subclassName]; } if(![className isEqualToString: @"FirstResponder"]) { [self replaceAction: oldAction withAction: newAction forClassNamed: @"FirstResponder"]; } } - (void) replaceOutlet: (NSString *)oldOutlet withOutlet: (NSString *)aNewOutlet forClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSMutableArray *extraOutlets = [info objectForKey: @"ExtraOutlets"]; NSMutableArray *outlets = [info objectForKey: @"Outlets"]; NSMutableArray *allOutlets = [info objectForKey: @"AllOutlets"]; NSString *newOutlet = AUTORELEASE([aNewOutlet copy]); NSEnumerator *en = [[self subClassesOf: className] objectEnumerator]; NSString *subclassName = nil; if ([allOutlets containsObject: newOutlet] || [extraOutlets containsObject: newOutlet]) { return; } // replace outlets in appropriate places... if ([extraOutlets containsObject: oldOutlet]) { NSInteger extraIndex = [extraOutlets indexOfObject: oldOutlet]; [extraOutlets replaceObjectAtIndex: extraIndex withObject: newOutlet]; } if ([outlets containsObject: oldOutlet]) { NSInteger outletsIndex = [outlets indexOfObject: oldOutlet]; [outlets replaceObjectAtIndex: outletsIndex withObject: newOutlet]; } if ([allOutlets containsObject: oldOutlet]) { NSInteger allIndex = [allOutlets indexOfObject: oldOutlet]; [allOutlets replaceObjectAtIndex: allIndex withObject: newOutlet]; } [self touch]; // add the action to all of the subclasses, in the "AllActions" section... while((subclassName = [en nextObject]) != nil) { [self replaceOutlet: oldOutlet withOutlet: newOutlet forClassNamed: subclassName]; } } - (void) removeAction: (NSString *)anAction forObject: (id)anObject { [self removeAction: anAction fromClassNamed: [anObject className]]; } - (void) removeAction: (NSString *)anAction fromClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSMutableArray *extraActions = [info objectForKey: @"ExtraActions"]; NSMutableArray *allActions = [info objectForKey: @"AllActions"]; NSEnumerator *en = [[self subClassesOf: className] objectEnumerator]; NSString *subclassName = nil; if ([extraActions containsObject: anAction] == YES || [allActions containsObject: anAction] == YES) { NSString *superName = [info objectForKey: @"Super"]; if (superName != nil) { NSArray *superActions; /* * If this action is new in this class (ie not overriding an * action in a parent) then we remove it from the list of all * actions that the object responds to. */ superActions = [self allActionsForClassNamed: superName]; if ([superActions containsObject: anAction] == NO) { NSMutableArray *array = [info objectForKey: @"AllActions"]; NSMutableArray *actions = [info objectForKey: @"Actions"]; [array removeObject: anAction]; [actions removeObject: anAction]; } } else { NSMutableArray *array = [info objectForKey: @"AllActions"]; NSMutableArray *actions = [info objectForKey: @"Actions"]; [array removeObject: anAction]; [actions removeObject: anAction]; } [extraActions removeObject: anAction]; [self touch]; } if([categoryClasses containsObject: className] && [extraActions count] == 0) { [categoryClasses removeObject: className]; } if(![className isEqualToString: @"FirstResponder"]) { [self removeAction: anAction fromClassNamed: @"FirstResponder"]; } while((subclassName = [en nextObject]) != nil) { [self removeAction: anAction fromClassNamed: subclassName]; } } - (void) removeOutlet: (NSString *)anOutlet forObject: (id)anObject { [self removeOutlet: anOutlet fromClassNamed: [anObject className]]; } - (void) removeOutlet: (NSString *)anOutlet fromClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSMutableArray *extraOutlets = [info objectForKey: @"ExtraOutlets"]; NSMutableArray *allOutlets = [info objectForKey: @"AllOutlets"]; NSEnumerator *en = [[self subClassesOf: className] objectEnumerator]; NSString *subclassName = nil; if ([extraOutlets containsObject: anOutlet] == YES || [allOutlets containsObject: anOutlet] == YES) { NSString *superName = [info objectForKey: @"Super"]; if (superName != nil) { NSArray *superOutlets; // remove the outlet from the other arrays... superOutlets = [self allOutletsForClassNamed: superName]; if ([superOutlets containsObject: anOutlet] == NO) { NSMutableArray *array = [info objectForKey: @"AllOutlets"]; NSMutableArray *actions = [info objectForKey: @"Outlets"]; [array removeObject: anOutlet]; [actions removeObject: anOutlet]; } } else { NSMutableArray *array = [info objectForKey: @"AllOutlets"]; NSMutableArray *actions = [info objectForKey: @"Outlets"]; [array removeObject: anOutlet]; [actions removeObject: anOutlet]; } [extraOutlets removeObject: anOutlet]; [self touch]; } while((subclassName = [en nextObject]) != nil) { [self removeOutlet: anOutlet fromClassNamed: subclassName]; } } - (NSArray *) allActionsForObject: (id)obj { NSString *className; NSArray *actions; Class theClass = [obj class]; NSString *customClassName = [self customClassForObject: obj]; NSDebugLog(@"** ACTIONS"); NSDebugLog(@"Object: %@",obj); NSDebugLog(@"Custom class: %@",customClassName); if (customClassName != nil) { // if the object has been mapped to a custom class, then // get the information for it. className = customClassName; } else if (theClass == [GormFirstResponder class]) { className = @"FirstResponder"; } else if (theClass == [GormFilesOwner class]) { className = [(GormFilesOwner*)obj className]; } else if ([obj isKindOfClass: [GSNibItem class]] == YES) { // this adds support for custom objects className = [obj className]; } else if ([obj isKindOfClass: [GormClassProxy class]] == YES) { // this adds support for class proxies className = [obj className]; } else if ([obj isKindOfClass: [GormCustomView class]] == YES) { // this adds support for custom views className = [obj className]; } else { className = NSStringFromClass(theClass); } if (className == nil) { // NSLog(@"attempt to get actions for non-existent class (%@)", // [obj class]); return nil; } actions = [self allActionsForClassNamed: className]; while (actions == nil && (theClass = class_getSuperclass(theClass)) != nil && theClass != [NSObject class]) { className = NSStringFromClass(theClass); actions = [self allActionsForClassNamed: className]; } NSDebugLog(@"class=%@ actions=%@",className,actions); return actions; } - (NSArray *) allActionsForClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; if (info != nil) { NSMutableArray *allActions = [info objectForKey: @"AllActions"]; if (allActions == nil) { NSString *superName = [info objectForKey: @"Super"]; NSArray *actions = [info objectForKey: @"Actions"]; NSArray *extraActions = [info objectForKey: @"ExtraActions"]; NSArray *superActions; if (superName == nil || [className isEqual: @"FirstResponder"]) { superActions = nil; } else { superActions = [self allActionsForClassNamed: superName]; } if (superActions == nil) { if (actions == nil) { allActions = [[NSMutableArray alloc] init]; } else { allActions = [actions mutableCopy]; } [allActions mergeObjectsFromArray: extraActions]; } else { allActions = [superActions mutableCopy]; [allActions mergeObjectsFromArray: actions]; [allActions mergeObjectsFromArray: extraActions]; } [info setObject: allActions forKey: @"AllActions"]; RELEASE(allActions); } return AUTORELEASE([allActions copy]); } return nil; } - (NSArray *) allCustomClassNames { // return [customClassMap allKeys]; return customClasses; } - (NSArray *) allClassNames { return [[classInformation allKeys] sortedArrayUsingSelector: @selector(compare:)]; } - (NSArray *) allOutletsForObject: (id)obj { NSString *className; NSArray *outlets; Class theClass = [obj class]; NSString *customClassName = [self customClassForObject: obj]; if (customClassName != nil) { // if the object has been mapped to a custom class, then // get the information for it. className = customClassName; } else if (theClass == [GormFirstResponder class]) { return nil; } else if (theClass == [GormFilesOwner class]) { className = [(GormFilesOwner*)obj className]; } else if ([obj isKindOfClass: [GSNibItem class]] == YES) { // this adds support for custom objects className = [(id)obj className]; } else if ([obj isKindOfClass: [GormClassProxy class]] == YES) { // this adds support for class proxies className = [(id)obj className]; } else if ([obj isKindOfClass: [GormCustomView class]] == YES) { // this adds support for custom views className = [(id)obj className]; } else { className = NSStringFromClass(theClass); } if (className == nil) { NSLog(@"attempt to get outlets for non-existent class (%@)", [obj class]); return nil; } outlets = [self allOutletsForClassNamed: className]; while (outlets == nil && (theClass = class_getSuperclass(theClass)) != nil && theClass != [NSObject class]) { className = NSStringFromClass(theClass); outlets = [self allOutletsForClassNamed: className]; } return outlets; } - (NSArray *) allOutletsForClassNamed: (NSString *)className; { NSMutableDictionary *info = [classInformation objectForKey: className]; if (info != nil) { NSMutableArray *allOutlets = [info objectForKey: @"AllOutlets"]; if (allOutlets == nil) { NSString *superName = [info objectForKey: @"Super"]; NSArray *outlets = [info objectForKey: @"Outlets"]; NSArray *extraOutlets = [info objectForKey: @"ExtraOutlets"]; NSArray *superOutlets; if (superName == nil) { superOutlets = nil; } else { superOutlets = [self allOutletsForClassNamed: superName]; } if (superOutlets == nil) { if (outlets == nil) { allOutlets = [[NSMutableArray alloc] init]; } else { allOutlets = [outlets mutableCopy]; } [allOutlets mergeObjectsFromArray: extraOutlets]; } else { allOutlets = [superOutlets mutableCopy]; [allOutlets mergeObjectsFromArray: outlets]; [allOutlets mergeObjectsFromArray: extraOutlets]; } [info setObject: allOutlets forKey: @"AllOutlets"]; RELEASE(allOutlets); } return AUTORELEASE([allOutlets copy]); } return nil; } - (NSMutableDictionary*) classInfoForClassName: (NSString *)className { NSMutableDictionary *info; info = [classInformation objectForKey: className]; if (info == nil) { Class theClass = NSClassFromString(className); if (theClass != nil) { theClass = class_getSuperclass(theClass); if (theClass != nil && theClass != [NSObject class]) { NSString *name; NSMutableDictionary *dict; name = NSStringFromClass(theClass); dict = [self classInfoForClassName: name]; if (dict != nil) { id o; info = [[NSMutableDictionary alloc] initWithCapacity: 3]; [info setObject: name forKey: @"Super"]; o = [[self allActionsForClassNamed: name] mutableCopy]; [info setObject: o forKey: @"AllActions"]; o = [[self allOutletsForClassNamed: name] mutableCopy]; [info setObject: o forKey: @"AllOutlets"]; [classInformation setObject: info forKey: className]; } } } } return info; } - (NSMutableDictionary*) classInfoForObject: (id)obj { NSString *className; Class theClass = [obj class]; if (theClass == [GormFilesOwner class]) { className = [(GormFilesOwner*)obj className]; } else if ([obj isKindOfClass: [GSNibItem class]] == YES) { // this adds support for custom objects className = [(id)obj className]; } else if ([obj isKindOfClass: [GormClassProxy class]] == YES) { // this adds support for class proxies className = [(id)obj className]; } else if ([obj isKindOfClass: [GormCustomView class]] == YES) { // this adds support for custom views className = [(id)obj className]; } else { className = NSStringFromClass(theClass); } if (className == nil) { NSLog(@"attempt to get outlets for non-existent class (%@)", [obj class]); return nil; } return [self classInfoForClassName: className]; } - (BOOL) actionExists: (NSString *)action onClassNamed: (NSString *)className { NSArray *actions = [self allActionsForClassNamed: className]; return [actions containsObject: action]; } - (BOOL) outletExists: (NSString *)outlet onClassNamed: (NSString *)className { NSArray *outlets = [self allOutletsForClassNamed: className]; return [outlets containsObject: outlet]; } - (void) dealloc { RELEASE(classInformation); RELEASE(customClassMap); [super dealloc]; } - (NSArray *) extraActionsForObject: (id)anObject { NSMutableDictionary *info = [self classInfoForObject: anObject]; return [info objectForKey: @"ExtraActions"]; } - (NSArray *) extraOutletsForObject: (id)anObject { NSMutableDictionary *info = [self classInfoForObject: anObject]; return [info objectForKey: @"ExtraOutlets"]; } - (void) allSubclassesOf: (NSString *)superclass referenceClassList: (NSArray *)classList intoArray: (NSMutableArray *)array { NSEnumerator *cen = [classList objectEnumerator]; id object = nil; while ((object = [cen nextObject])) { NSDictionary *dictForClass = [classInformation objectForKey: object]; NSString *superClassName = [dictForClass objectForKey: @"Super"]; if ([superClassName isEqual: superclass] || (superClassName == nil && superclass == nil)) { [array addObject: object]; [self allSubclassesOf: object referenceClassList: classList intoArray: array]; } } } - (NSArray *) allSubclassesOf: (NSString *)superClass { NSMutableArray *array = [NSMutableArray array]; [self allSubclassesOf: superClass referenceClassList: [classInformation allKeys] intoArray: array]; return [array sortedArrayUsingSelector: @selector(caseInsensitiveCompare:)]; } - (NSArray *) allCustomSubclassesOf: (NSString *)superClass { NSMutableArray *array = [NSMutableArray array]; [self allSubclassesOf: superClass referenceClassList: customClasses intoArray: array]; return [array sortedArrayUsingSelector: @selector(caseInsensitiveCompare:)]; } - (NSArray *) customSubClassesOf: (NSString *)superclass { NSEnumerator *cen = [customClasses objectEnumerator]; id object = nil; NSMutableArray *subclasses = [NSMutableArray array]; while ((object = [cen nextObject])) { NSDictionary *dictForClass = [classInformation objectForKey: object]; if ([[dictForClass objectForKey: @"Super"] isEqual: superclass]) { [subclasses addObject: object]; } } return subclasses; } - (NSArray *) subClassesOf: (NSString *)superclass { NSArray *allClasses = [classInformation allKeys]; NSEnumerator *cen = [allClasses objectEnumerator]; id object = nil; NSMutableArray *subclasses = [NSMutableArray array]; while ((object = [cen nextObject])) { NSDictionary *dictForClass = [classInformation objectForKey: object]; NSString *superClassName = [dictForClass objectForKey: @"Super"]; if ([superClassName isEqual: superclass] || (superClassName == nil && superclass == nil)) { [subclasses addObject: object]; } } return [subclasses sortedArrayUsingSelector: @selector(caseInsensitiveCompare:)]; } - (void) removeClassNamed: (NSString *)className { if ([customClasses containsObject: className]) { NSEnumerator *en = [customClassMap keyEnumerator]; id object = nil; id owner = nil; [customClasses removeObject: className]; while((object = [en nextObject]) != nil) { id customClassName = [customClassMap objectForKey: object]; if(customClassName != nil) { if([className isEqualToString: customClassName]) { NSDebugLog(@"Deleting object -> customClass association %@ -> %@",object,customClassName); [customClassMap removeObjectForKey: object]; } } } // get the owner and reset the class name to NSApplication. owner = [document objectForName: @"NSOwner"]; if([className isEqual: [owner className]]) { [owner setClassName: @"NSApplication"]; } } [classInformation removeObjectForKey: className]; [self touch]; [[NSNotificationCenter defaultCenter] postNotificationName: GormDidDeleteClassNotification object: self]; } - (BOOL) renameClassNamed: (NSString *)oldName newName: (NSString *)newName { id classInfo = [classInformation objectForKey: oldName]; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSString *name = [newName copy]; NSDebugLog(@"Old name %@, new name %@",oldName,name); if (classInfo != nil && [classInformation objectForKey: name] == nil) { NSUInteger index = 0; NSArray *subclasses = [self subClassesOf: oldName]; RETAIN(classInfo); // prevent loss of the information... [classInformation removeObjectForKey: oldName]; [classInformation setObject: classInfo forKey: name]; RELEASE(classInfo); // release our hold on it. if ((index = [customClasses indexOfObject: oldName]) != NSNotFound) { NSEnumerator *en = [customClassMap keyEnumerator]; NSEnumerator *cen = [subclasses objectEnumerator]; id sc = nil; id object = nil; NSDebugLog(@"replacing object with %@, %@",name, customClasses); [customClasses replaceObjectAtIndex: index withObject: name]; NSDebugLog(@"replaced object with %@, %@",name, customClasses); // show the class map before... NSDebugLog(@"customClassMap = %@",customClassMap); while((object = [en nextObject]) != nil) { id customClassName = [customClassMap objectForKey: object]; if(customClassName != nil) { if([oldName isEqualToString: customClassName]) { NSDebugLog(@"Replacing object -> customClass association %@ -> %@",object,customClassName); [customClassMap setObject: name forKey: object]; } } } NSDebugLog(@"New customClassMap = %@",customClassMap); // and after // Iterate over the list of subclasses and replace their referece with the new // name. while((sc = [cen nextObject]) != nil) { [self setSuperClassNamed: name forClassNamed: sc]; } [self touch]; } else NSLog(@"customClass not found %@",oldName); [nc postNotificationName: IBClassNameChangedNotification object: self]; return YES; } else return NO; } - (NSString *)parentOfClass: (NSString *)aClass { NSDictionary *dictForClass = [classInformation objectForKey: aClass]; return [dictForClass objectForKey: @"Super"]; } - (NSData *) nibData { NSMutableDictionary *dict = nil; NSMutableArray *classes = nil; NSEnumerator *enumerator = nil; NSMutableArray *cats = [NSMutableArray arrayWithArray: categoryClasses]; id name = nil; // save all custom classes.... dict = [NSMutableDictionary dictionary]; [dict setObject: @"1" forKey: @"IBVersion"]; classes = [NSMutableArray array]; // build IBClasses... enumerator = [customClasses objectEnumerator]; while ((name = [enumerator nextObject]) != nil) { NSDictionary *classInfo; NSMutableDictionary *newInfo; id obj; id extraObj; // get the info... classInfo = [classInformation objectForKey: name]; newInfo = [[NSMutableDictionary alloc] init]; [newInfo setObject: name forKey: @"CLASS"]; // superclass... obj = [classInfo objectForKey: @"Super"]; if (obj != nil) { [newInfo setObject: obj forKey: @"SUPERCLASS"]; } // outlets... obj = [classInfo objectForKey: @"Outlets"]; extraObj = [classInfo objectForKey: @"ExtraOutlets"]; if (obj && extraObj) { obj = [obj arrayByAddingObjectsFromArray: extraObj]; } else if (extraObj) { obj = extraObj; } if (obj != nil && [obj count] > 0) { NSMutableDictionary *outletDict = [NSMutableDictionary dictionary]; NSEnumerator *oen = [obj objectEnumerator]; id outlet = nil; while((outlet = [oen nextObject]) != nil) { [outletDict setObject: @"id" forKey: outlet]; } [newInfo setObject: outletDict forKey: @"OUTLETS"]; } // actions... obj = [classInfo objectForKey: @"Actions"]; extraObj = [classInfo objectForKey: @"ExtraActions"]; if (obj && extraObj) { obj = [obj arrayByAddingObjectsFromArray: extraObj]; } else if (extraObj) { obj = extraObj; } if (obj != nil && [obj count] > 0) { NSMutableDictionary *actionDict = [NSMutableDictionary dictionary]; NSEnumerator *aen = [obj objectEnumerator]; id action = nil; while((action = [aen nextObject]) != nil) { NSString *actionName = nil; NSScanner *scanner = [NSScanner scannerWithString: action]; if ([scanner scanUpToString: @":" intoString: &actionName]) [actionDict setObject: @"id" forKey: actionName]; } [newInfo setObject: actionDict forKey: @"ACTIONS"]; } [newInfo setObject: @"ObjC" forKey: @"LANGUAGE"]; [classes addObject: newInfo]; } // Save all categories on existing, non-custom classes.... // Always save the FirstResponder.... if([cats containsObject: @"FirstResponder"] == NO) { [cats addObject: @"FirstResponder"]; } enumerator = [cats objectEnumerator]; while((name = [enumerator nextObject]) != nil) { NSDictionary *classInfo; NSMutableDictionary *newInfo; id obj; // get the info... classInfo = [classInformation objectForKey: name]; newInfo = [NSMutableDictionary dictionary]; [newInfo setObject: name forKey: @"CLASS"]; // superclass... obj = [classInfo objectForKey: @"Super"]; if (obj != nil) { [newInfo setObject: obj forKey: @"SUPERCLASS"]; } // actions... obj = [classInfo objectForKey: @"ExtraActions"]; if (obj != nil && [obj count] > 0) { NSMutableDictionary *actionDict = [NSMutableDictionary dictionary]; NSEnumerator *aen = [obj objectEnumerator]; id action = nil; while((action = [aen nextObject]) != nil) { NSString *actionName = nil; NSScanner *scanner = [NSScanner scannerWithString: action]; if ([scanner scanUpToString: @":" intoString: &actionName]) [actionDict setObject: @"id" forKey: actionName]; } [newInfo setObject: actionDict forKey: @"ACTIONS"]; } [newInfo setObject: @"ObjC" forKey: @"LANGUAGE"]; [classes addObject: newInfo]; } [dict setObject: classes forKey: @"IBClasses"]; return [NSPropertyListSerialization dataFromPropertyList: dict format: NSPropertyListOpenStepFormat errorDescription: NULL]; } - (NSData *) data { NSMutableDictionary *ci = nil; NSEnumerator *enumerator = nil; id key = nil; // save all custom classes.... ci = [NSMutableDictionary dictionary]; enumerator = [customClasses objectEnumerator]; while ((key = [enumerator nextObject]) != nil) { NSDictionary *classInfo; NSMutableDictionary *newInfo; id obj; id extraObj; // get the info... classInfo = [classInformation objectForKey: key]; newInfo = [[NSMutableDictionary alloc] init]; [ci setObject: newInfo forKey: key]; // superclass... obj = [classInfo objectForKey: @"Super"]; if (obj != nil) { [newInfo setObject: obj forKey: @"Super"]; } // outlets... obj = [classInfo objectForKey: @"Outlets"]; extraObj = [classInfo objectForKey: @"ExtraOutlets"]; if (obj && extraObj) { obj = [obj arrayByAddingObjectsFromArray: extraObj]; } else if (extraObj) { obj = extraObj; } if (obj != nil) { [newInfo setObject: obj forKey: @"Outlets"]; } // actions... obj = [classInfo objectForKey: @"Actions"]; extraObj = [classInfo objectForKey: @"ExtraActions"]; if (obj && extraObj) { obj = [obj arrayByAddingObjectsFromArray: extraObj]; } else if (extraObj) { obj = extraObj; } if (obj != nil) { [newInfo setObject: obj forKey: @"Actions"]; } } // save all categories on existing, non-custom classes.... enumerator = [categoryClasses objectEnumerator]; while((key = [enumerator nextObject]) != nil) { NSDictionary *classInfo; NSMutableDictionary *newInfo; id obj; // get the info... classInfo = [classInformation objectForKey: key]; newInfo = [NSMutableDictionary dictionary]; [ci setObject: newInfo forKey: key]; // superclass... obj = [classInfo objectForKey: @"Super"]; if (obj != nil) { [newInfo setObject: obj forKey: @"Super"]; } // actions... obj = [classInfo objectForKey: @"ExtraActions"]; if (obj != nil) { [newInfo setObject: obj forKey: @"Actions"]; } } // add the extras... [ci setObject: @"Do NOT change this file, Gorm maintains it" forKey: @"## Comment"]; return [NSPropertyListSerialization dataFromPropertyList: ci format: NSPropertyListOpenStepFormat errorDescription: NULL]; } - (BOOL) saveToFile: (NSString *)path { return [[self data] writeToFile: path atomically: YES]; } - (BOOL) loadFromFile: (NSString *)path { NSDictionary *dict; NSEnumerator *enumerator; NSString *key; NSDebugLog(@"Load from file %@",path); dict = [NSDictionary dictionaryWithContentsOfFile: path]; if (dict == nil) { NSLog(@"Could not load classes dictionary"); return NO; } /* * Convert property-list data into a mutable structure. */ ASSIGN(classInformation, [[NSMutableDictionary alloc] init]); // iterate over all entries.. enumerator = [dict keyEnumerator]; while ((key = [enumerator nextObject]) != nil) { NSDictionary *classInfo = [dict objectForKey: key]; NSMutableDictionary *newInfo; id obj; newInfo = [[NSMutableDictionary alloc] init]; [classInformation setObject: newInfo forKey: key]; // superclass obj = [classInfo objectForKey: @"Super"]; if (obj != nil) { [newInfo setObject: obj forKey: @"Super"]; } // outlets obj = [classInfo objectForKey: @"Outlets"]; if (obj != nil) { obj = [obj mutableCopy]; [obj sortUsingSelector: @selector(compare:)]; [newInfo setObject: obj forKey: @"Outlets"]; RELEASE(obj); } // actions obj = [classInfo objectForKey: @"Actions"]; if (obj != nil) { obj = [obj mutableCopy]; [obj sortUsingSelector: @selector(compare:)]; [newInfo setObject: obj forKey: @"Actions"]; RELEASE(obj); } } return YES; } - (BOOL) loadNibFormatCustomClassesWithDict: (NSDictionary *)dict { NSArray *classes = [dict objectForKey: @"IBClasses"]; NSEnumerator *en = [classes objectEnumerator]; BOOL result = NO; id cls = nil; // If there are no classes to add, return gracefully. if([classes count] == 0) { return YES; } while((cls = [en nextObject]) != nil) { NSString *className = [cls objectForKey: @"CLASS"]; NSString *superClass = [cls objectForKey: @"SUPERCLASS"]; NSDictionary *actionDict = [cls objectForKey: @"ACTIONS"]; NSDictionary *outletDict = [cls objectForKey: @"OUTLETS"]; NSMutableArray *actions = [NSMutableArray array]; NSArray *outlets = [outletDict allKeys]; NSEnumerator *aen = [actionDict keyEnumerator]; id action = nil; // // Convert action format. // while((action = [aen nextObject]) != nil) { NSString *aname = [action stringByAppendingString: @":"]; [actions addObject: aname]; } // // If the class is known, add the actions/outlets, if it's // not, then add all of the information. // if([self isKnownClass: className]) { [self addActions: actions forClassNamed: className]; [self addOutlets: outlets forClassNamed: className]; result = YES; } else { result = [self addClassNamed: className withSuperClassNamed: superClass withActions: actions withOutlets: outlets]; } } return result; } - (BOOL) loadNibFormatCustomClassesWithData: (NSData *)data { NSString *dictString = AUTORELEASE([[NSString alloc] initWithData: data encoding: NSASCIIStringEncoding]); NSDictionary *dict = [dictString propertyList]; return [self loadNibFormatCustomClassesWithDict: dict]; } // this method will load the custom classes and merge them with the // Class information loaded at initialization time. - (BOOL) loadCustomClasses: (NSString *)path { NSMutableDictionary *dict; BOOL result = NO; NSDebugLog(@"Load custom classes from file %@",path); dict = [NSMutableDictionary dictionaryWithContentsOfFile: path]; if (dict == nil) { NSLog(@"Could not load custom classes dictionary"); return NO; } if (classInformation == nil) { NSLog(@"Default classes file not loaded"); return NO; } if([path isEqualToString: @"data.classes"]) { result = [self loadCustomClassesWithDict: dict]; } else if([path isEqualToString: @"classes.nib"]) { result = [self loadNibFormatCustomClassesWithDict: dict]; } return result; } - (BOOL) loadCustomClassesWithData: (NSData *)data { NSString *dictString = AUTORELEASE([[NSString alloc] initWithData: data encoding: NSASCIIStringEncoding]); NSDictionary *dict = [dictString propertyList]; return [self loadCustomClassesWithDict: dict]; } - (BOOL) loadCustomClassesWithDict: (NSDictionary *)dict { NSEnumerator *en = nil; id key = nil; // Iterate over the set of classes, if it's in the classInformation // list, it's a category, if it's not it's a custom class. en = [dict keyEnumerator]; while((key = [en nextObject]) != nil) { id class_dict = [dict objectForKey: key]; // Class information is always a dictionary, other information, such as // comments or version numbers, will appear as strings. if([class_dict isKindOfClass: [NSDictionary class]]) { NSMutableDictionary *classDict = (NSMutableDictionary *)class_dict; NSMutableDictionary *info = [classInformation objectForKey: key]; if(info == nil) { [customClasses addObject: key]; [classInformation setObject: classDict forKey: key]; } else { NSMutableArray *actions = [classDict objectForKey: @"Actions"]; NSMutableArray *origActions = [info objectForKey: @"Actions"]; NSMutableArray *allActions = nil; // remove any duplicate actions... if(origActions != nil) { allActions = [NSMutableArray arrayWithArray: origActions]; [actions removeObjectsInArray: origActions]; [allActions addObjectsFromArray: actions]; [info setObject: allActions forKey: @"AllActions"]; } // if there are any action methods left after the process above, // add it, otherwise don't. if([actions count] > 0) { [categoryClasses addObject: key]; [info setObject: actions forKey: @"ExtraActions"]; } } } } return YES; } - (BOOL) isCustomClass: (NSString *)className { return ([customClasses indexOfObject: className] != NSNotFound); } - (BOOL) isNonCustomClass: (NSString *)className { return !([self isCustomClass: className]); } - (BOOL) isCategoryForClass: (NSString *)className { return ([categoryClasses indexOfObject: className] != NSNotFound); } - (BOOL) isAction: (NSString *)actionName onCategoryForClassNamed: (NSString *)className { NSDictionary *info = [classInformation objectForKey: className]; BOOL result = NO; if([self isCategoryForClass: className]) { if(info != nil) { NSArray *extra = [info objectForKey: @"ExtraActions"]; if(extra != nil) { result = [extra containsObject: actionName]; } } } return result; } - (BOOL) isKnownClass: (NSString *)className { return ([classInformation objectForKey: className] != nil); } - (BOOL) setSuperClassNamed: (NSString *)superclass forClassNamed: (NSString *)subclass { NSArray *cn = [self allClassNames]; if (superclass != nil && subclass != nil && [cn containsObject: subclass] && ([cn containsObject: superclass] || [self isRootClass: superclass]) && [self isSuperclass: subclass linkedToClass: superclass] == NO) { NSMutableDictionary *info; info = [classInformation objectForKey: subclass]; if (info != nil) { // remove actions/outlets inherited from superclasses... [info removeObjectForKey: @"AllActions"]; [info removeObjectForKey: @"AllOutlets"]; // change the parent of the class... [info setObject: superclass forKey: @"Super"]; // recalculate the actions/outlets... [self allActionsForClassNamed: subclass]; [self allOutletsForClassNamed: subclass]; // return success. return YES; } else { return NO; } } return NO; } - (NSString *) superClassNameForClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSString *superName = nil; if (info != nil) { superName = [info objectForKey: @"Super"]; } return superName; } - (BOOL) isSuperclass: (NSString *)superclass linkedToClass: (NSString *)subclass { NSString *ssclass; if (superclass == nil || subclass == nil) { return NO; } ssclass = [self superClassNameForClassNamed: subclass]; if ([superclass isEqualToString: ssclass]) { return YES; } return [self isSuperclass: superclass linkedToClass: ssclass]; } - (NSDictionary *) dictionaryForClassNamed: (NSString *)className { NSMutableDictionary *info = [NSMutableDictionary dictionaryWithDictionary: [classInformation objectForKey: className]]; if(info != nil) { [info removeObjectForKey: @"AllActions"]; [info removeObjectForKey: @"AllOutlets"]; } return info; } /* * create .m & .h files for a class */ - (BOOL) makeSourceAndHeaderFilesForClass: (NSString *)className withName: (NSString *)sourcePath and: (NSString *)headerPath { NSMutableString *headerFile; NSMutableString *sourceFile; NSData *headerData; NSData *sourceData; NSMutableArray *outlets; NSMutableArray *actions; NSString *actionName; int i; int n; NSDictionary *classInfo = [classInformation objectForKey: className]; headerFile = [NSMutableString stringWithCapacity: 200]; sourceFile = [NSMutableString stringWithCapacity: 200]; // add all outlets and actions for the current class to the list... outlets = [[classInfo objectForKey: @"Outlets"] mutableCopy]; [outlets addObjectsFromArray: [classInfo objectForKey: @"ExtraOutlets"]]; actions = [[classInfo objectForKey: @"Actions"] mutableCopy]; [actions addObjectsFromArray: [classInfo objectForKey: @"ExtraActions"]]; // header file comments... [headerFile appendString: @"/* All rights reserved */\n\n"]; [sourceFile appendString: @"/* All rights reserved */\n\n"]; [headerFile appendString: @"#import \n\n"]; [sourceFile appendString: @"#import \n"]; if ([[headerPath stringByDeletingLastPathComponent] isEqualToString: [sourcePath stringByDeletingLastPathComponent]]) { [sourceFile appendFormat: @"#import \"%@\"\n\n", [headerPath lastPathComponent]]; } else { [sourceFile appendFormat: @"#import \"%@\"\n\n", headerPath]; } [headerFile appendFormat: @"@interface %@ : %@\n{\n", className, [self superClassNameForClassNamed: className]]; [sourceFile appendFormat: @"@implementation %@\n\n", className]; n = [outlets count]; for (i = 0; i < n; i++) { [headerFile appendFormat: @" IBOutlet id %@;\n", [outlets objectAtIndex: i]]; } [headerFile appendFormat: @"}\n"]; n = [actions count]; for (i = 0; i < n; i++) { actionName = [actions objectAtIndex: i]; [headerFile appendFormat: @"- (IBAction) %@ (id)sender;\n", actionName]; [sourceFile appendFormat: @"\n" @"- (IBAction) %@ (id)sender\n" @"{\n" @"}\n" @"\n" , [actions objectAtIndex: i]]; } [headerFile appendFormat: @"\n@end\n"]; [sourceFile appendFormat: @"@end\n"]; headerData = [headerFile dataUsingEncoding: [NSString defaultCStringEncoding]]; sourceData = [sourceFile dataUsingEncoding: [NSString defaultCStringEncoding]]; [headerData writeToFile: headerPath atomically: NO]; [[NSDistributedNotificationCenter defaultCenter] postNotificationName: @"GormCreateFileNotification" object: headerPath]; [sourceData writeToFile: sourcePath atomically: NO]; [[NSDistributedNotificationCenter defaultCenter] postNotificationName: @"GormCreateFileNotification" object: sourcePath]; return YES; } - (BOOL) parseHeader: (NSString *)headerPath { OCHeaderParser *ochp = AUTORELEASE([[OCHeaderParser alloc] initWithContentsOfFile: headerPath]); BOOL result = NO; if(ochp != nil) { result = [ochp parse]; if(result) { NSArray *classes = [ochp classes]; NSEnumerator *en = [classes objectEnumerator]; OCClass *cls = nil; while((cls = (OCClass *)[en nextObject]) != nil) { NSArray *methods = [cls methods]; NSArray *ivars = [cls ivars]; NSString *superClass = [cls superClassName]; NSString *className = [cls className]; NSEnumerator *ien = [ivars objectEnumerator]; NSEnumerator *men = [methods objectEnumerator]; OCMethod *method = nil; OCIVar *ivar = nil; NSMutableArray *actions = [NSMutableArray array]; NSMutableArray *outlets = [NSMutableArray array]; // skip it, if it's category... for now. TODO: make categories work... while((method = (OCMethod *)[men nextObject]) != nil) { if([method isAction]) { [actions addObject: [method name]]; } } while((ivar = (OCIVar *)[ien nextObject]) != nil) { if([ivar isOutlet]) { [outlets addObject: [ivar name]]; } } if(([self isKnownClass: superClass] || superClass == nil) && [cls isCategory] == NO) { if([self isKnownClass: className]) { NSString *title = [NSString stringWithFormat: @"%@", _(@"Reparsing Class")]; NSString *messageFormat = _(@"This may break connections to " @"actions/outlets to instances of class '%@' " @"and it's subclasses. Continue?"); NSString *msg = [NSString stringWithFormat: messageFormat, className]; NSInteger retval = NSRunAlertPanel(title, msg,_(@"OK"),_(@"Cancel"), nil, nil); if (retval == NSAlertDefaultReturn) { // get the owner and reset the class name to NSApplication. GormFilesOwner *owner = [document objectForName: @"NSOwner"]; NSString *ownerClassName = [owner className]; // Retain this, in case we're dealing with the NSOwner... RETAIN(ownerClassName); // delete the class.. [self removeClassNamed: className]; // re-add it. [self addClassNamed: className withSuperClassNamed: superClass withActions: actions withOutlets: outlets]; // Set the owner back to the class name, if needed. if([className isEqualToString: ownerClassName]) { [owner setClassName: className]; } // refresh the connections. [document refreshConnectionsForClassNamed: className]; // Release the owner classname... RELEASE(ownerClassName); } } else { [self addClassNamed: className withSuperClassNamed: superClass withActions: actions withOutlets: outlets]; } } else if([cls isCategory] && [self isKnownClass: className]) { [self addActions: actions forClassNamed: className]; } else if(superClass != nil && [self isKnownClass: superClass] == NO) { result = NO; [NSException raise: NSGenericException format: @"The superclass %@ of class %@ is not known, please parse it.", superClass, className]; } } } } return result; } - (BOOL) isAction: (NSString *)name ofClass: (NSString *)className { BOOL result = NO; NSDictionary *classInfo = [classInformation objectForKey: className]; if (classInfo != nil) { NSArray *array = [classInfo objectForKey: @"Actions"]; NSArray *extra_array = [classInfo objectForKey: @"ExtraActions"]; NSMutableArray *combined = [NSMutableArray array]; [combined addObjectsFromArray: array]; [combined addObjectsFromArray: extra_array]; result = ([combined indexOfObject: name] != NSNotFound); } return result; } - (BOOL) isOutlet: (NSString *)name ofClass: (NSString *)className { BOOL result = NO; NSDictionary *classInfo = [classInformation objectForKey: className]; if (classInfo != nil) { NSArray *array = [classInfo objectForKey: @"Outlets"]; NSArray *extra_array = [classInfo objectForKey: @"ExtraOutlets"]; NSMutableArray *combined = [NSMutableArray array]; [combined addObjectsFromArray: array]; [combined addObjectsFromArray: extra_array]; result = ([combined indexOfObject: name] != NSNotFound); } return result; } // custom class support... - (NSString *) customClassForName: (NSString *)name { NSString *result = [customClassMap objectForKey: name]; return result; } - (NSString *) customClassForObject: (id)object { NSString *name = [document nameForObject: object]; NSString *result = [self customClassForName: name]; NSDebugLog(@"in customClassForObject: object = %@, name = %@, result = %@, customClassMap = %@", object, name, result, customClassMap); return result; } - (NSString *) classNameForObject: (id)object { NSString *className = [self customClassForObject: object]; if(className == nil) { className = [object className]; } return className; } - (void) setCustomClass: (NSString *)className forName: (NSString *)name { [customClassMap setObject: className forKey: name]; } - (void) removeCustomClassForName: (NSString *)name { [customClassMap removeObjectForKey: name]; } - (NSMutableDictionary *) customClassMap { return customClassMap; } - (void) setCustomClassMap: (NSMutableDictionary *)dict { // copy the dictionary.. NSDebugLog(@"dictionary = %@",dict); ASSIGN(customClassMap, [dict mutableCopy]); RETAIN(customClassMap); // released in dealloc } - (BOOL) isCustomClassMapEmpty { return ([customClassMap count] == 0); } - (BOOL) isRootClass: (NSString *)className { return ([self superClassNameForClassNamed: className] == nil); } - (NSString *) nonCustomSuperClassOf: (NSString *)className { NSString *result = className; if(![self isCustomClass: className] && ![self isRootClass: className]) { result = [self superClassNameForClassNamed: result]; } else { // iterate up the chain until a non-custom superclass is found... while ([self isCustomClass: result]) { NSDebugLog(@"result = %@",result); result = [self superClassNameForClassNamed: result]; } } return result; } - (NSArray *) allSuperClassesOf: (NSString *)className { NSMutableArray *classes = [NSMutableArray array]; while (![self isRootClass: className] && className != nil) { NSDictionary *dict = [self classInfoForClassName: className]; if(dict != nil) { className = [dict objectForKey: @"Super"]; if(className != nil) { [classes insertObject: className atIndex: 0]; } } else { NSLog(@"Unable to find class named (%@), check that all palettes properly export classes to Gorm.",className); break; } } return classes; } - (void) addActions: (NSArray *)actions forClassNamed: (NSString *)className { id action = nil; NSEnumerator *e = [actions objectEnumerator]; while((action = [e nextObject])) { [self addAction: action forClassNamed: className]; } } - (void) addOutlets: (NSArray *)outlets forClassNamed: (NSString *)className { id action = nil; NSEnumerator *e = [outlets objectEnumerator]; while((action = [e nextObject])) { [self addOutlet: action forClassNamed: className]; } } // There are some classes which can't be instantiated directly // in Gorm. These are they.. (GJC) - (BOOL) canInstantiateClassNamed: (NSString *)className { if([self isSuperclass: @"NSApplication" linkedToClass: className] || [className isEqualToString: @"NSApplication"]) { return NO; } else if([self isSuperclass: @"NSCell" linkedToClass: className] || [className isEqualToString: @"NSCell"]) { return NO; } else if([className isEqualToString: @"NSDocument"]) { return NO; } else if([className isEqualToString: @"NSDocumentController"]) { return NO; } else if([className isEqualToString: @"NSFontManager"]) { return NO; } else if([className isEqualToString: @"NSHelpManager"]) { return NO; } else if([className isEqualToString: @"NSImage"]) { return NO; } else if([self isSuperclass: @"NSMenuItem" linkedToClass: className] || [className isEqualToString: @"NSMenuItem"]) { return NO; } else if([className isEqualToString: @"NSResponder"]) { return NO; } else if([self isSuperclass: @"NSSound" linkedToClass: className] || [className isEqualToString: @"NSSound"]) { return NO; } else if([self isSuperclass: @"NSTableColumn" linkedToClass: className] || [className isEqualToString: @"NSTableColumn"]) { return NO; } else if([self isSuperclass: @"NSTableViewItem" linkedToClass: className] || [className isEqualToString: @"NSTableViewItem"]) { return NO; } else if([self isSuperclass: @"NSView" linkedToClass: className] || [className isEqualToString: @"NSView"]) { return NO; } else if([self isSuperclass: @"NSWindow" linkedToClass: className] || [className isEqualToString: @"NSWindow"]) { return NO; } else if([self isSuperclass: @"FirstResponder" linkedToClass: className] || [className isEqualToString: @"FirstResponder"]) { // special case, FirstResponder. return NO; } return YES; } - (NSString *) findClassByName: (NSString *)name { NSArray *classNames = [self allClassNames]; NSEnumerator *en = [classNames objectEnumerator]; NSString *className = nil; NSInteger namelen = [name length]; while((className = [en nextObject]) != nil) { NSInteger classlen = [className length]; if(namelen < classlen) { NSComparisonResult result = [className compare: name options: NSCaseInsensitiveSearch range: ((NSRange){0, namelen})]; if(result == NSOrderedSame) { break; } } else if(namelen == classlen) { if([className caseInsensitiveCompare: name] == NSOrderedSame) { break; } } } return className; } - (NSString *) description { return [NSString stringWithFormat: @"<%s: %lx> = %@", GSClassNameFromObject(self), (unsigned long)self, customClassMap]; } /** Helpful for debugging */ - (NSString *) dumpClassInformation { return [classInformation description]; } @end gorm-1.3.1/GormCore/GormFilePrefsManager.h0000644000175000017500000000402114327003122017344 0ustar heronheron/* All Rights reserved */ #include @interface GormFilePrefsManager : NSObject { id showIncompatibilities; id targetVersion; id gormAppVersion; id archiveType; id iwindow; id itable; id fileType; // encoded ivars... NSInteger version; NSString *targetVersionName; NSString *archiveTypeName; // version profiles... NSDictionary *versionProfiles; NSDictionary *currentProfile; } /** * Show incompatibilities in the panel. */ - (void) showIncompatibilities: (id)sender; /** * Action called when the target version pulldown is selected. */ - (void) selectTargetVersion: (id)sender; /** * Action called when the archive type pulldown is selected. */ - (void) selectArchiveType: (id)sender; /** * Loads the encoded file info. */ - (BOOL) loadFromData: (NSData *)data; /** * Loads the encoded file info. */ - (BOOL) loadFromFile: (NSString *)path; /** * Saves the encoded file info. */ - (NSData *) data; /** * Saves the encoded file info. */ - (NSData *) nibDataWithOpenItems: (NSArray *)openItems; /** * Saves the encoded file info. */ - (BOOL) saveToFile: (NSString *)path; /** * Loads the profile. */ - (void) loadProfile: (NSString *)version; // accessors... /** * Gorm Version of the current archive. */ - (int) version; /** * Which version of the gui library, by name. */ - (NSString *)targetVersionName; /** * Which achive type, by name. */ - (NSString *)archiveTypeName; /** * Are we set to the latest version? Returns YES, if so. */ - (BOOL) isLatest; // set class versions /** * Sets the version of the classes. */ - (void) setClassVersions; /** * Restores the versions to the most current. */ - (void) restoreClassVersions; /** * Returns the version of the class in the current profile. */ - (int) versionOfClass: (NSString *)className; // file type... /** * File type name... */ - (void) setFileTypeName: (NSString *)ft; /** * return file type. */ - (NSString *) fileTypeName; /** * The current Gorm version. */ + (int) currentVersion; @end gorm-1.3.1/GormCore/GormImageEditor.m0000644000175000017500000000675714327003122016412 0ustar heronheron/* GormImageEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormImageEditor.h" #include "GormProtocol.h" #include "GormFunctions.h" #include "GormPalettesManager.h" #include "GormImage.h" @implementation GormImageEditor static NSMapTable *docMap = 0; + (void) initialize { if (self == [GormImageEditor class]) { docMap = NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks, NSNonRetainedObjectMapValueCallBacks, 2); } } + (GormImageEditor*) editorForDocument: (id)aDocument { id editor = NSMapGet(docMap, (void*)aDocument); if (editor == nil) { editor = [[self alloc] initWithObject: nil inDocument: aDocument]; AUTORELEASE(editor); } return editor; } - (NSArray *) fileTypes { return [NSImage imageFileTypes]; } - (NSArray *)pbTypes { return [NSArray arrayWithObject: GormImagePboardType]; } - (NSString *) resourceType { return @"image"; } - (id) placeHolderWithPath: (NSString *)string { return [GormImage imageForPath: string]; } - (void) addSystemResources { NSMutableArray *list = [NSMutableArray array]; NSEnumerator *en; id obj; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; // add all of the system objects... [list addObjectsFromArray: systemImagesList()]; [list addObjectsFromArray: [palettesManager importedImages]]; en = [list objectEnumerator]; while((obj = [en nextObject]) != nil) { GormImage *image = [GormImage imageForPath: obj]; [image setSystemResource: YES]; [self addObject: image]; } } /* * Initialisation - register to receive DnD with our own types. */ - (id) initWithObject: (id)anObject inDocument: (id)aDocument { id old = NSMapGet(docMap, (void*)aDocument); if (old != nil) { RELEASE(self); self = RETAIN(old); [self addObject: anObject]; return self; } if ((self = [super initWithObject: anObject inDocument: aDocument]) != nil) { NSMapInsert(docMap, (void*)aDocument, (void*)self); } return self; } - (void) dealloc { if(closed == NO) [self close]; // It is not necessary to call super dealloc here. // images are cached throughout the lifetime of the app. // Once loaded, they are in the cache permanently and // are release on app termination. // RELEASE(objects); NSDebugLog(@"Released image editor..."); // GSNOSUPERDEALLOC; [super dealloc]; } - (void) willCloseDocument: (NSNotification *)aNotification { NSMapRemove(docMap,document); [super willCloseDocument: aNotification]; } - (void) close { [super close]; NSMapRemove(docMap,document); } @end gorm-1.3.1/GormCore/GormCustomView.m0000644000175000017500000001716214327003122016316 0ustar heronheron/* GormCustomView - Visual representation of a custom view placeholder * * Copyright (C) 2001 Free Software Foundation, Inc. * * Author: Adam Fedor * Date: 2001 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include @class GSCustomView; @interface CustomView : NSView @end @implementation CustomView - (id) initWithFrame: (NSRect)frame { if((self = [super initWithFrame: frame]) != nil) { // Replace the CustomView with an NSView of the same dimensions. self = (id)[[NSView alloc] initWithFrame: frame]; } return self; } @end @implementation GormCustomView - (id)initWithFrame:(NSRect)frameRect { self = [super initWithFrame: frameRect]; if(self != nil) { [self setBackgroundColor: [NSColor darkGrayColor]]; [self setTextColor: [NSColor whiteColor]]; [self setDrawsBackground: YES]; [self setAlignment: NSCenterTextAlignment]; [self setFont: [NSFont boldSystemFontOfSize: 0]]; [self setEditable: NO]; [self setSelectable: NO]; [self setClassName: @"CustomView"]; } return self; } - (void) dealloc { RELEASE(className); [super dealloc]; } - (NSString*) inspectorClassName { return @"GormFilesOwnerInspector"; } - (NSString*) classInspectorClassName { return @"GormFilesOwnerInspector"; } - (void) setClassName: (NSString *)aName { ASSIGN(className, aName); [self setStringValue: aName]; } - (NSString *) className { return className; } - (Class) bestPossibleSuperClass { Class cls = [NSView class]; GormClassManager *classManager = [(id)NSApp classManager]; if([classManager isSuperclass: @"NSView" linkedToClass: className]) { NSString *superClass = [classManager nonCustomSuperClassOf: className]; // get the superclass if one exists... if(superClass != nil) { cls = NSClassFromString(superClass); if(cls == nil) { cls = [NSView class]; } } } return cls; } /* * This needs to be coded like a GSNibItem. How do we make sure this * tracks changes in GSNibItem coding? */ - (void) encodeWithCoder: (NSCoder*)aCoder { if([aCoder allowsKeyedCoding]) { GormClassManager *classManager = [(id)NSApp classManager]; NSString *extension = nil; ASSIGNCOPY(extension,[classManager nonCustomSuperClassOf: className]); [aCoder encodeObject: className forKey: @"NSClassName"]; [aCoder encodeRect: [self frame] forKey: @"NSFrame"]; if(extension != nil) { [aCoder encodeObject: extension forKey: @"NSExtension"]; } if([self nextResponder] != nil) { [aCoder encodeObject: [self nextResponder] forKey: @"NSNextResponder"]; } if([self superview] != nil) { [aCoder encodeObject: [self superview] forKey: @"NSSuperview"]; } RELEASE(extension); } else { [aCoder encodeObject: [self stringValue]]; [aCoder encodeRect: _frame]; [aCoder encodeValueOfObjCType: @encode(unsigned int) at: &_autoresizingMask]; } } - (id) initWithCoder: (NSCoder*)aCoder { if([aCoder allowsKeyedCoding]) { NSCustomView *customView = [[NSCustomView alloc] initWithCoder: aCoder]; NSArray *subviews = [customView subviews]; // if the custom view has subviews.... if(subviews != nil && [subviews count] > 0) { Class cls = [self bestPossibleSuperClass]; id replacementView = [[cls alloc] initWithFrame: [customView frame]]; NSEnumerator *en = [[customView subviews] objectEnumerator]; id v = nil; [replacementView setAutoresizingMask: [customView autoresizingMask]]; while((v = [en nextObject]) != nil) { [replacementView addSubview: v]; } return replacementView; } else { [self initWithFrame: [customView frame]]; _autoresizingMask = [customView autoresizingMask]; } // get the classname... [self setClassName: [customView className]]; // _super_view = [customView superview]; // _window = [customView window]; RELEASE(customView); return self; } else { NSInteger version = [aCoder versionForClassName: NSStringFromClass([GSCustomView class])]; if (version == 1) { NSString *string; // do not decode super. We need to maintain mapping to NibItems string = [aCoder decodeObject]; _frame = [aCoder decodeRect]; [self initWithFrame: _frame]; [aCoder decodeValueOfObjCType: @encode(unsigned int) at: &_autoresizingMask]; [self setClassName: string]; return self; } else if (version == 0) { NSString *string; // do not decode super. We need to maintain mapping to NibItems string = [aCoder decodeObject]; _frame = [aCoder decodeRect]; [self initWithFrame: _frame]; [self setClassName: string]; return self; } else { NSLog(@"no initWithCoder for version"); RELEASE(self); return nil; } } return nil; } @end @interface GormTestCustomView : GSNibItem { } @end @implementation GormTestCustomView - (Class) bestPossibleSuperClass { Class cls = [NSView class]; GormClassManager *classManager = [(id)NSApp classManager]; if([classManager isSuperclass: @"NSOpenGLView" linkedToClass: theClass] || [theClass isEqual: @"NSOpenGLView"]) { cls = [GormOpenGLView class]; } else if([classManager isSuperclass: @"NSView" linkedToClass: theClass]) { NSString *superClass = [classManager nonCustomSuperClassOf: theClass]; // get the superclass if one exists... if(superClass != nil) { cls = NSClassFromString(superClass); if(cls == nil) { cls = [NSView class]; } } } return cls; } - (id) initWithCoder: (NSCoder*)aCoder { id obj; Class cls; NSUInteger mask; GormClassManager *classManager = [(id)NSApp classManager]; [aCoder decodeValueOfObjCType: @encode(id) at: &theClass]; theFrame = [aCoder decodeRect]; [aCoder decodeValueOfObjCType: @encode(NSUInteger) at: &mask]; cls = NSClassFromString(theClass); if([classManager isSuperclass: @"NSOpenGLView" linkedToClass: theClass] || [theClass isEqual: @"NSOpenGLView"] || cls == nil) { cls = [self bestPossibleSuperClass]; } obj = [cls allocWithZone: [self zone]]; if (theFrame.size.height > 0 && theFrame.size.width > 0) obj = [obj initWithFrame: theFrame]; else obj = [obj init]; if ([obj respondsToSelector: @selector(setAutoresizingMask:)]) { [obj setAutoresizingMask: mask]; } /* if (![self isKindOfClass: [GSCustomView class]]) { RETAIN(obj); } */ RELEASE(self); return obj; } - (void) encodeWithCoder: (NSCoder *)coder { // nothing to do. This is a class for testing custom views only. GJC } @end gorm-1.3.1/GormCore/GormViewKnobs.m0000644000175000017500000002431014327003122016111 0ustar heronheron/* GormViewKnobs.m Copyright (C) 1999 Free Software Foundation, Inc. Author: Gerrit van Dyk Date: 1999 Modified and extended by: Richard Frith-Macdonald This file is part of the GNUstep Interface Modeller Application. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "GormViewKnobs.h" #include static NSInteger KNOB_WIDTH = 0.0; static NSInteger KNOB_HEIGHT = 0.0; #define MINSIZE 5.0 static NSRect *blackRectList = NULL; static int blackRectSize = 0; static int blackRectCount = 0; static NSRect *fgcolorRectList= NULL; static int fgcolorRectSize = 0; static int fgcolorRectCount= 0; static void _fastKnobFill(NSRect aRect,BOOL isBlack); static void _drawKnobsForRect(NSRect aRect,BOOL isBlack); static void calcKnobSize(void) { NSString *value; float w = 2.0; float h = 2.0; value = [[NSUserDefaults standardUserDefaults] objectForKey: @"KnobWidth"]; if (value != nil) { w = floor([value floatValue] / 2.0); } value = [[NSUserDefaults standardUserDefaults] objectForKey: @"KnobHeight"]; if (value != nil) { h = floor([value floatValue] / 2.0); } w = MAX(w, 1.0); h = MAX(h, 1.0); KNOB_WIDTH = w * 2.0 + 1.0; // Size must be odd */ KNOB_HEIGHT = h * 2.0 + 1.0; } void GormShowFastKnobFills(void) { if (blackRectCount) { [[NSColor blackColor] set]; NSRectFillList(blackRectList, blackRectCount); } if (fgcolorRectCount) { [[NSColor redColor] set]; NSRectFillList(fgcolorRectList, fgcolorRectCount); } blackRectCount = 0; fgcolorRectCount = 0; } static void _showLitKnobForRect(NSRect frame, IBKnobPosition aKnob) { float dx, dy; BOOL oddx, oddy; NSRect r; if (!KNOB_WIDTH) { calcKnobSize(); } dx = NSWidth(frame) / 2.0; dy = NSHeight(frame) / 2.0; oddx = (floor(dx) != dx); oddy = (floor(dy) != dy); frame.size.width = KNOB_WIDTH; frame.size.height = KNOB_HEIGHT; frame.origin.x -= ((KNOB_WIDTH - 1.0) / 2.0); frame.origin.y -= ((KNOB_HEIGHT - 1.0) / 2.0); // Initialize r to keep the compiler happy r = frame; if (aKnob == IBBottomLeftKnobPosition) r = frame; frame.origin.y += dy; if (oddy) frame.origin.y -= 0.5; if (aKnob == IBMiddleLeftKnobPosition) r = frame; frame.origin.y += dy; if (oddy) frame.origin.y += 0.5; if (aKnob == IBTopLeftKnobPosition) r = frame; frame.origin.x += dx; if (oddx) frame.origin.x -= 0.5; if (aKnob == IBTopMiddleKnobPosition) r = frame; frame.origin.x += dx; if (oddx) frame.origin.x += 0.5; if (aKnob == IBTopRightKnobPosition) r = frame; frame.origin.y -= dy; if (oddy) frame.origin.y -= 0.5; if (aKnob == IBMiddleRightKnobPosition) r = frame; frame.origin.y -= dy; if (oddy) frame.origin.y += 0.5; if (aKnob == IBBottomRightKnobPosition) r = frame; frame.origin.x -= dx; if (oddx) frame.origin.x += 0.5; if (aKnob == IBBottomMiddleKnobPosition) r = frame; r.origin.x += 1.0; r.origin.y -= 1.0; [[NSColor blackColor] set]; [NSBezierPath fillRect: r]; r.origin.x -= 1.0; r.origin.y += 1.0; [[NSColor whiteColor] set]; [NSBezierPath fillRect: r]; } void GormShowFrameWithKnob(NSRect aRect, IBKnobPosition aKnob) { NSRect r = aRect; /* * We draw a wire-frame around the rectangle. */ r.origin.x -= 0.5; r.origin.y -= 0.5; r.size.width += 1.0; r.size.height += 1.0; [[NSColor blackColor] set]; [NSBezierPath strokeRect: r]; if (aKnob != IBNoneKnobPosition) { /* * NB. we use the internal rectangle for calculating the knob position. */ _showLitKnobForRect(aRect, aKnob); } } void GormDrawKnobsForRect(NSRect aRect) { NSRect r; r.origin.x = floor(NSMinX(aRect)); r.origin.y = floor(NSMinY(aRect)); r.size.width = floor(NSMaxX(aRect) + 0.99) - NSMinX(r); r.size.height = floor(NSMaxY(aRect) + 0.99) - NSMinY(r); r.origin.x += 1.0; r.origin.y -= 1.0; _drawKnobsForRect(r, YES); r.origin.x = floor(NSMinX(aRect)); r.origin.y = floor(NSMinY(aRect)); r.size.width = floor(NSMaxX(aRect) + 0.99) - NSMinX(r); r.size.height = floor(NSMaxY(aRect) + 0.99) - NSMinY(r); _drawKnobsForRect(r, NO); } /* Draw these around an NSBox whose contents are being edited. */ void GormDrawOpenKnobsForRect(NSRect aRect) { NSRect r; r.origin.x = floor(NSMinX(aRect)); r.origin.y = floor(NSMinY(aRect)); r.size.width = floor(NSMaxX(aRect) + 0.99) - NSMinX(r); r.size.height = floor(NSMaxY(aRect) + 0.99) - NSMinY(r); _drawKnobsForRect(r, YES); } IBKnobPosition GormKnobHitInRect(NSRect aFrame, NSPoint p) { NSRect eb; NSRect knob; float dx, dy; BOOL oddx, oddy; eb = GormExtBoundsForRect(aFrame); if (!NSMouseInRect(p, eb, NO)) { return IBNoneKnobPosition; } knob = aFrame; dx = NSWidth(knob) / 2.0; dy = NSHeight(knob) / 2.0; oddx = (floor(dx) != dx); oddy = (floor(dy) != dy); knob.size.width = KNOB_WIDTH; knob.size.height = KNOB_HEIGHT; knob.origin.x -= ((KNOB_WIDTH - 1.0) / 2.0); knob.origin.y -= ((KNOB_HEIGHT - 1.0) / 2.0); if (NSMouseInRect(p, knob, NO)) { return(IBBottomLeftKnobPosition); } knob.origin.y += dy; if (oddy) { knob.origin.y -= 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBMiddleLeftKnobPosition); } knob.origin.y += dy; if (oddy) { knob.origin.y += 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBTopLeftKnobPosition); } knob.origin.x += dx; if (oddx) { knob.origin.x -= 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBTopMiddleKnobPosition); } knob.origin.x += dx; if (oddx) { knob.origin.x += 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBTopRightKnobPosition); } knob.origin.y -= dy; if (oddy) { knob.origin.y -= 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBMiddleRightKnobPosition); } knob.origin.y -= dy; if (oddy) { knob.origin.y += 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBBottomRightKnobPosition); } knob.origin.x -= dx; if (oddx) { knob.origin.x += 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBBottomMiddleKnobPosition); } return IBNoneKnobPosition; } NSRect GormExtBoundsForRect(NSRect aRect) { NSRect returnRect; if (NSWidth(aRect) < 0.0) { returnRect.origin.x = NSMaxX(aRect); returnRect.size.width = - NSWidth(aRect); } else { returnRect.origin.x = NSMinX(aRect); returnRect.size.width = NSWidth(aRect); } if (aRect.size.height < 0.0) { returnRect.origin.y = NSMaxY(aRect); returnRect.size.height = - NSHeight(aRect); } else { returnRect.origin.y = NSMinY(aRect); returnRect.size.height = NSHeight(aRect); } returnRect.size.width = MAX(1.0, NSWidth(returnRect)); returnRect.size.height = MAX(1.0, NSHeight(returnRect)); returnRect = NSInsetRect(returnRect, - ((KNOB_WIDTH - 1.0) + 1.0), - ((KNOB_HEIGHT - 1.0) + 1.0)); return NSIntegralRect(returnRect); } static void _fastKnobFill(NSRect aRect, BOOL isBlack) { if (isBlack) { if (!blackRectList) { blackRectSize = 16; blackRectList = NSZoneMalloc(NSDefaultMallocZone(), blackRectSize * sizeof(NSRect)); } else { if (blackRectCount >= blackRectSize) { while (blackRectCount >= blackRectSize) { blackRectSize <<= 1; } blackRectList = NSZoneRealloc(NSDefaultMallocZone(), blackRectList, blackRectSize * sizeof(NSRect)); } } blackRectList[blackRectCount++] = aRect; } else { if (!fgcolorRectList) { fgcolorRectSize = 16; fgcolorRectList = NSZoneMalloc(NSDefaultMallocZone(), fgcolorRectSize * sizeof(NSRect)); } else { if (fgcolorRectCount >= fgcolorRectSize) { while (fgcolorRectCount >= fgcolorRectSize) { fgcolorRectSize <<= 1; } fgcolorRectList = NSZoneRealloc(NSDefaultMallocZone(), fgcolorRectList, fgcolorRectSize * sizeof(NSRect)); } } fgcolorRectList[fgcolorRectCount++] = aRect; } } static void _drawKnobsForRect(NSRect knob, BOOL isBlack) { float dx, dy; BOOL oddx, oddy; if (!KNOB_WIDTH) { calcKnobSize(); } dx = NSWidth(knob) / 2.0; dy = NSHeight(knob) / 2.0; oddx = (floor(dx) != dx); oddy = (floor(dy) != dy); knob.size.width = KNOB_WIDTH; knob.size.height = KNOB_HEIGHT; knob.origin.x -= ((KNOB_WIDTH - 1.0) / 2.0); knob.origin.y -= ((KNOB_HEIGHT - 1.0) / 2.0); _fastKnobFill(knob, isBlack); knob.origin.y += dy; if (oddy) { knob.origin.y -= 0.5; } _fastKnobFill(knob, isBlack); knob.origin.y += dy; if (oddy) { knob.origin.y += 0.5; } _fastKnobFill(knob, isBlack); knob.origin.x += dx; if (oddx) { knob.origin.x -= 0.5; } _fastKnobFill(knob, isBlack); knob.origin.x += dx; if (oddx) { knob.origin.x += 0.5; } _fastKnobFill(knob, isBlack); knob.origin.y -= dy; if (oddy) { knob.origin.y -= 0.5; } _fastKnobFill(knob, isBlack); knob.origin.y -= dy; if (oddy) { knob.origin.y += 0.5; } _fastKnobFill(knob, isBlack); knob.origin.x -= dx; if (oddx) { knob.origin.x += 0.5; } _fastKnobFill(knob, isBlack); } gorm-1.3.1/GormCore/GormScrollViewEditor.m0000644000175000017500000001277114327003122017452 0ustar heronheron/* GormScrollViewEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Author: Gregory John Casamento * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormBoxEditor.h" #include "GormViewKnobs.h" @implementation NSScrollView (IBObjectAdditions) - (NSString *) inspectorClassName { return @"GormScrollViewAttributesInspector"; } - (NSString*) editorClassName { return @"GormScrollViewEditor"; } @end #define _EO ((NSScrollView *)_editedObject) @interface GormScrollViewEditor : GormViewWithSubviewsEditor { GormInternalViewEditor *documentViewEditor; } @end @implementation GormScrollViewEditor - (void) setOpened: (BOOL) flag { [super setOpened: flag]; if (flag == YES) { [document setSelectionFromEditor: documentViewEditor]; } } - (BOOL) activate { if ([super activate]) { NSView *documentView = [_EO documentView]; NSDebugLog(@"documentView %@", documentView); documentViewEditor = (GormInternalViewEditor *)[document editorForObject: documentView inEditor: self create: YES]; return YES; } return NO; } - (void) deactivate { if (activated == YES) { [self deactivateSubeditors]; [super deactivate]; } } - (void) close { [self setOpened: NO]; [super close]; } - (void) mouseDown: (NSEvent *) theEvent { BOOL onKnob = NO; if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _EO]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) { onKnob = YES; } } if (onKnob == YES) { if (parent) { return [parent mouseDown: theEvent]; } else { return [self noResponderFor: @selector(mouseDown:)]; } } // Open the scrollview, if it's not opened... if (opened == NO) { [super mouseDown: theEvent]; // return; } if ([[_EO hitTest: [theEvent locationInWindow]] isDescendantOf: documentViewEditor]) { if (([self isOpened] == YES) && ([documentViewEditor isOpened] == NO)) { [documentViewEditor setOpened: YES]; } if ([documentViewEditor isOpened]) { [documentViewEditor mouseDown: theEvent]; } } else { NSView *v = [_EO hitTest: [theEvent locationInWindow]]; id r = [v nextResponder]; if([v respondsToSelector: @selector(setNextResponder:)]) { // this is done to prevent a responder loop. [v setNextResponder: nil]; [v mouseDown: theEvent]; [v setNextResponder: r]; } else { [v mouseDown: theEvent]; } } opened = NO; } - (void) dealloc { RELEASE(selection); [super dealloc]; } - (id) initWithObject: (id)anObject inDocument: (id)aDocument { opened = NO; openedSubeditor = nil; if ((self = [super initWithObject: anObject inDocument: aDocument]) == nil) { return nil; } selection = [[NSMutableArray alloc] initWithCapacity: 5]; [self registerForDraggedTypes: [NSArray arrayWithObjects: IBViewPboardType, GormLinkPboardType, IBFormatterPboardType, nil]]; return self; } - (NSArray *)destroyAndListSubviews { id documentView = [_EO documentView]; NSArray *subviews = [documentView subviews]; NSMutableArray *newSelection = [NSMutableArray array]; if([documentView conformsToProtocol: @protocol(IBEditors)] == YES) { id internalView = [subviews objectAtIndex: 0]; NSEnumerator *enumerator = [[internalView subviews] objectEnumerator]; GormViewEditor *subview; if([[documentView editedObject] isKindOfClass: [NSTextView class]]) return newSelection; [parent makeSubeditorResign]; while ((subview = [enumerator nextObject]) != nil) { id v; NSRect frame; v = [subview editedObject]; frame = [v frame]; frame = [parent convertRect: frame fromView: _EO]; [subview deactivate]; [v setFrame: frame]; [newSelection addObject: v]; } } else { NSRect frame = [documentView frame]; if([documentView isKindOfClass: [NSTextView class]]) return newSelection; // In this case the view editor is the documentView and // we need to add the internal view back into the superview frame = [parent convertRect: frame fromView: _EO]; [documentView setFrame: frame]; [newSelection addObject: documentView]; [_EO setDocumentView: nil]; } [self close]; return newSelection; } @end gorm-1.3.1/GormCore/GormSoundInspector.h0000644000175000017500000000264114327003122017157 0ustar heronheron/** GormSoundInspector allow user to inspect sound files in Gorm Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: September 2002 This file is part of GNUstep. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormSoundInspector_h #define INCLUDED_GormSoundInspector_h #include #include @class GormClassManager; @class GormSoundView; @interface GormSoundInspector : IBInspector { GormSoundView *soundView; } - (void) stop: (id)sender; - (void) play: (id)sender; - (void) pause: (id)sender; - (void) record: (id)sender; @end #endif gorm-1.3.1/GormCore/GormSound.m0000644000175000017500000000550614327003122015300 0ustar heronheron/* GormSound.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: Dec 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormSound.h" // sound proxy object... @implementation GormSound + (GormSound*) soundForPath: (NSString *)aPath { return [GormSound soundForPath: aPath inWrapper: NO]; } + (GormSound*) soundForPath: (NSString *)aPath inWrapper: (BOOL)flag { return AUTORELEASE([[GormSound alloc] initWithPath: aPath inWrapper: flag]); } + (GormSound*)soundForData: (NSData *)aData withFileName: (NSString *)aName inWrapper: (BOOL)flag { return AUTORELEASE([[GormSound alloc] initWithData: aData withFileName: aName inWrapper: flag]); } - (id) initWithData: (NSData *)aData withFileName: (NSString *)aName inWrapper: (BOOL)flag { if((self = [super initWithData: aData withFileName: aName inWrapper: flag])) { // ASSIGN(sound, AUTORELEASE([[NSImage alloc] initWithData: aData])); } return self; } - (id) initWithName: (NSString *)aName path: (NSString *)aPath inWrapper: (BOOL)flag { if((self = [super initWithName: aName path: aPath inWrapper: flag]) != nil) { NSSound *sound = [[NSSound alloc] initWithContentsOfFile: aPath byReference: YES]; [(NSSound *)sound setName: aName]; // cache the sound under the given name. } return self; } @end @implementation GormSound (IBObjectAdditions) - (NSString *)inspectorClassName { return @"GormSoundInspector"; } - (NSString *) classInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString *) connectInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString *) objectNameForInspectorTitle { return @"Sound"; } - (NSImage *) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *bpath = [bundle pathForImageResource: @"GormSound"]; image = [[NSImage alloc] initWithContentsOfFile: bpath]; } return image; } @end gorm-1.3.1/GormCore/GormNSPanel.m0000644000175000017500000000733014327003122015505 0ustar heronheron/* GormNSPanel.m Copyright (C) 2003 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2003 (Adapted from GormNSWindow.m) This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNSPanel.h" // the default style mask we start with. static NSUInteger defaultStyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSMiniaturizableWindowMask; @implementation GormNSPanel - (void)encodeWithCoder: (NSCoder*) aCoder { unsigned oldStyleMask; // save the old values... oldStyleMask = _styleMask; // set the values we wish to save.. after save restore. _styleMask = _gormStyleMask; [self setReleasedWhenClosed: _gormReleasedWhenClosed]; [super encodeWithCoder: aCoder]; _styleMask = oldStyleMask; [self setReleasedWhenClosed: NO]; } - (id) initWithCoder: (NSCoder *)coder { self = [super initWithCoder: coder]; if (self == nil) { return nil; } // preserve the setting and set the actual window to NO. _gormReleasedWhenClosed = [self isReleasedWhenClosed]; [self setReleasedWhenClosed: NO]; return self; } - (id) initWithContentRect: (NSRect)contentRect styleMask: (NSUInteger)aStyle backing: (NSBackingStoreType)bufferingType defer: (BOOL)flag { _gormStyleMask = aStyle; self = [super initWithContentRect: contentRect styleMask: defaultStyleMask backing: bufferingType defer: flag]; if(self != nil) { // Don't release when the window is closed, a window being edited may // be periodically opened and closed. [self setReleasedWhenClosed: NO]; // remove the default icon... [self setMiniwindowImage: nil]; // set the default position mask; autoPositionMask = GSWindowMaxXMargin | GSWindowMaxYMargin; } return self; } - (void) _setStyleMask: (unsigned int) newStyleMask { _gormStyleMask = newStyleMask; } - (unsigned int) _styleMask { return _gormStyleMask; } - (NSString *) className { return @"NSPanel"; } - (void) _setReleasedWhenClosed: (BOOL) flag { _gormReleasedWhenClosed = flag; } - (BOOL) _isReleasedWhenClosed { return _gormReleasedWhenClosed; } - (unsigned int) autoPositionMask { return autoPositionMask; } - (void) setAutoPositionMask: (unsigned int)mask { autoPositionMask = mask; } - (void) orderWindow: (NSWindowOrderingMode)place relativeTo: (NSInteger)otherWin { id document = [(id)NSApp documentForObject: self]; [super orderWindow: place relativeTo: otherWin]; if([NSApp isConnecting] == NO) { id editor = [document editorForObject: self create: NO]; // select myself. if([editor respondsToSelector: @selector(selectObjects:)]) { [editor selectObjects: [NSArray arrayWithObject: self]]; } [document setSelectionFromEditor: editor]; [editor makeSelectionVisible: YES]; } } - (void) saveFrameUsingName: (NSString*)name { // do nothing... } @end gorm-1.3.1/GormCore/GormWrapperBuilder.h0000644000175000017500000000331214327003122017123 0ustar heronheron/* GormWrapperBuilder * * This class is a subclass of the NSDocumentController * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormWrapperBuilder_h #define INCLUDED_GormWrapperBuilder_h #include @class NSFileWrapper, GormDocument, NSString, NSMutableDictionary; @protocol GormWrapperBuilder - (NSMutableDictionary *) buildFileWrapperDictionaryWithDocument: (GormDocument *)document; - (NSFileWrapper *) buildFileWrapperWithDocument: (GormDocument *)document; @end @interface GormWrapperBuilder : NSObject { GormDocument *document; } + (NSString *) fileType; @end @interface GormWrapperBuilderFactory : NSObject + (GormWrapperBuilderFactory *) sharedWrapperBuilderFactory; + (void) registerWrapperBuilderClass: (Class) aClass; - (id) wrapperBuilderForType: (NSString *) type; @end #endif gorm-1.3.1/GormCore/GormMatrixEditor.m0000644000175000017500000005013014327003122016614 0ustar heronheron/* GormMatrixEditor.m - Editor for matrices. * * Copyright (C) 2001 Free Software Foundation, Inc. * * Authors: Adam Fedor * Pierre-Yves Rivaille * Date: Sep 2001 * Aug 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormImage.h" #include "GormViewEditor.h" #include "GormMatrixEditor.h" #include "GormViewWithSubviewsEditor.h" #include "GormPlacementInfo.h" #include "GormFontViewController.h" #include "GormViewKnobs.h" #define _EO ((NSMatrix*)_editedObject) @interface GormViewEditor (Private) - (void) _displayFrame: (NSRect) frame withPlacementInfo: (GormPlacementInfo*)gpi; @end @implementation NSMatrix (IBObjectAdditions) - (NSString*) editorClassName { return @"GormMatrixEditor"; } @end @interface NSForm (GormAdditions) - (CGFloat) titleWidth; @end @implementation NSForm (GormAdditions) - (CGFloat)titleWidth { NSInteger i, count = [self numberOfRows]; float new_title_width = 0; float candidate_title_width = 0; // Compute max of title width in the cells for (i = 0; i < count; i++) { candidate_title_width = [_cells[i][0] titleWidth]; if (candidate_title_width > new_title_width) new_title_width = candidate_title_width; } return new_title_width; } @end @implementation GormMatrixEditor - (void) copySelection { if (selected != nil) { [document copyObjects: [self selection] type: IBViewPboardType toPasteboard: [NSPasteboard generalPasteboard]]; } } - (void) deleteSelection { NSDebugLog(@"Cannot delete Matrix cell\n"); } static BOOL done_editing; - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: NSControlTextDidEndEditingNotification] == YES) { done_editing = YES; } else NSLog(@"GormMatrixEditor got unhandled notification %@", name); } /* * Initialisation */ - (id) initWithObject: (id)anObject inDocument: (id)aDocument { NSMutableArray *draggedTypes = [NSMutableArray array]; opened = NO; selected = nil; selectedCol = -1; selectedRow = -1; _displaySelection = YES; self = [super initWithObject: anObject inDocument: aDocument]; // dragged types... [draggedTypes addObject: GormImagePboardType]; [draggedTypes addObject: GormLinkPboardType]; [draggedTypes addObject: GormSoundPboardType]; // register... [self registerForDraggedTypes: draggedTypes]; return self; } /* Called when we double-click on a text/editable cell or form. Overlay a text field so the user can edit the title. */ - (void) editTitleWithEvent: (NSEvent *)theEvent { NSInteger row, col; unsigned eventMask; id edit_view; BOOL isForm; NSRect frame; NSTextField *editField; NSDate *future = [NSDate distantFuture]; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; isForm = [_EO isKindOfClass: [NSForm class]]; if (isForm == NO && [selected type] != NSTextCellType) return; // get the superview we are to edit from. edit_view = [_EO superview]; [_EO getRow: &row column: &col ofCell: selected]; frame = [_EO cellFrameAtRow: row column: col]; frame.origin.x += NSMinX([_EO frame]); if (isForm) frame.size.width = [(NSForm *)_EO titleWidth]; else frame = [selected titleRectForBounds: frame]; if ([_EO isFlipped]) { frame.origin.y = NSMaxY([_EO frame]) - NSMaxY(frame); } else { frame.origin.y = NSMinY([_EO frame]) + NSMinY(frame); } /* Now create an edit field and allow the user to edit the text */ editField = [[NSTextField alloc] initWithFrame: frame]; [editField setEditable: YES]; [editField setSelectable: YES]; [editField setBezeled: NO]; [editField setEnabled: YES]; if (isForm) [editField setStringValue: [(NSFormCell *)selected title]]; else [editField setStringValue: [selected stringValue]]; [edit_view addSubview: editField]; // [edit_view displayRect: frame]; [edit_view display]; [[edit_view window] flushWindow]; [nc addObserver: self selector: @selector(handleNotification:) name: NSControlTextDidEndEditingNotification object: nil]; /* Do some modal editing */ [editField selectText: self]; eventMask = NSLeftMouseDownMask | NSLeftMouseUpMask | NSKeyDownMask | NSKeyUpMask | NSFlagsChangedMask; done_editing = NO; while (!done_editing) { NSEvent *e; NSEventType eType; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; switch (eType) { case NSLeftMouseDown: { NSPoint dp = [edit_view convertPoint: [e locationInWindow] fromView: nil]; if (NSMouseInRect(dp, frame, NO) == NO) { done_editing = YES; break; } } [[editField currentEditor] mouseDown: e]; break; case NSLeftMouseUp: [[editField currentEditor] mouseUp: e]; break; case NSLeftMouseDragged: [[editField currentEditor] mouseDragged: e]; break; case NSKeyDown: [[editField currentEditor] keyDown: e]; break; case NSKeyUp: [[editField currentEditor] keyUp: e]; break; case NSFlagsChanged: [[editField currentEditor] flagsChanged: e]; break; default: NSLog(@"Internal Error: Unhandled event during editing: %@", e); break; } } [nc removeObserver: self name: NSControlTextDidEndEditingNotification object: nil]; [self makeSelectionVisible: NO]; if (isForm) { /* Set the new title and resize the form to match the titles */ CGFloat oldTitleWidth, titleWidth; NSRect oldFrame; oldTitleWidth = [(NSForm *)_EO titleWidth]; [(NSFormCell *)selected setTitle: [editField stringValue]]; [(NSForm *)_EO calcSize]; titleWidth = [(NSForm *)_EO titleWidth]; oldFrame = frame = [_EO frame]; frame.origin.x -= (titleWidth - oldTitleWidth); frame.size.width += (titleWidth - oldTitleWidth); [(NSForm *)_EO setEntryWidth: NSWidth(frame)]; [(NSForm *)_EO setFrame: frame]; frame = NSUnionRect(frame, oldFrame); } else [selected setStringValue: [editField stringValue]]; [edit_view removeSubview: editField]; [edit_view displayRect: frame]; [self makeSelectionVisible: YES]; RELEASE(editField); } - (BOOL) canBeOpened { return YES; } - (void) setOpened: (BOOL) value { if (value) { opened = YES; } else { opened = NO; selected = nil; selectedCol = -1; selectedRow = -1; } } - (void) mouseDown: (NSEvent *)theEvent { BOOL onKnob = NO; { if ([[parent selection] containsObject: _EO]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (_next_responder) return [_next_responder mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } } if (opened == NO) { [super mouseDown: theEvent]; return; } { NSInteger row, col; NSPoint mouseDownPoint = [_EO convertPoint: [theEvent locationInWindow] fromView: nil]; if ([_EO getRow: &row column: &col forPoint: mouseDownPoint] == YES) { selectedRow = row; selectedCol = col; selected = [_EO cellAtRow: row column: col]; [document setSelectionFromEditor: self]; if (selected != nil && ([theEvent clickCount] == 2) ) { [self editTitleWithEvent: theEvent]; return; } [self setNeedsDisplay: YES]; } else { selected = nil; selectedRow = -1; selectedCol = -1; [document setSelectionFromEditor: self]; } } } - (void) makeSelectionVisible: (BOOL)flag { if (selected != nil) { NSInteger row, col; if ([_EO getRow: &row column: &col ofCell: selected]) { NSRect frame = [_EO cellFrameAtRow: row column: col]; if (flag == YES) [_EO selectCellAtRow: row column: col]; [_EO lockFocus]; [[NSColor controlShadowColor] set]; NSHighlightRect(frame); [_EO unlockFocus]; } } else { [_EO deselectAllCells]; } [_EO display]; [[_EO window] flushWindow]; } - (void) selectObjects: (NSArray*)anArray { id obj = [anArray lastObject]; [self makeSelectionVisible: NO]; selected = obj; [document setSelectionFromEditor: self]; [self makeSelectionVisible: YES]; } - (NSArray*) selection { if (selected == nil) return [NSArray arrayWithObject: _EO]; else return [NSArray arrayWithObject: selected]; } - (BOOL) acceptsTypeFromArray: (NSArray*)types { return ([types containsObject: IBObjectPboardType] || [types containsObject: GormImagePboardType]); } - (void) postDraw: (NSRect) rect { if (_displaySelection) { if ((selectedRow != -1) && (selectedCol != -1)) { NSDebugLog(@"highlighting %@", NSStringFromRect([_EO cellFrameAtRow: selectedRow column: selectedCol])); [[NSColor blackColor] set]; NSHighlightRect([_EO convertRect: [_EO cellFrameAtRow: selectedRow column: selectedCol] toView: self]); } } } - (NSRect) _constrainedFrame: (NSRect) frame withEvent: (NSEvent *)theEvent andKnob: (IBKnobPosition) knob { NSInteger width; NSInteger height; if ([theEvent modifierFlags] & NSAlternateKeyMask) { NSInteger rows = [_EO numberOfRows]; NSInteger cols = [_EO numberOfColumns]; NSSize interSize = [_EO intercellSpacing]; NSInteger colWidth = ([_EO frame].size.width - (cols - 1) * interSize.width) / cols; NSInteger rowHeight = ([_EO frame].size.height - (rows - 1) * interSize.height) / rows; NSInteger widthIncrement = colWidth + interSize.width; NSInteger heightIncrement = rowHeight + interSize.height; if (frame.size.width < colWidth) { width = colWidth; rows = 1; } else { width = frame.size.width - [_EO frame].size.width; rows = width / widthIncrement; width = rows * widthIncrement + [_EO frame].size.width; } if (frame.size.height < rowHeight) { height = rowHeight; cols = 1; } else { height = frame.size.height - [_EO frame].size.height; cols = height / heightIncrement; height = cols * heightIncrement + [_EO frame].size.height; } } else if ([theEvent modifierFlags] & NSControlKeyMask) { NSInteger rows = [_EO numberOfRows]; NSInteger cols = [_EO numberOfColumns]; NSSize cellSize = [_EO cellSize]; height = width = 0; if (cols > 1) width = ( frame.size.width - cellSize.width * cols) / (cols - 1); if (rows > 1) height = ( frame.size.height - cellSize.height * rows ) / (rows - 1); width *= (cols - 1); width += cellSize.width * cols; height *= (rows - 1); height += cellSize.height * rows; } else { NSInteger rows = [_EO numberOfRows]; NSInteger cols = [_EO numberOfColumns]; NSSize interSize = [_EO intercellSpacing]; width = ( frame.size.width - interSize.width * (cols - 1) ) / cols; width *= cols; width += (interSize.width * (cols - 1)); height = ( frame.size.height - interSize.height * (rows - 1) ) / rows; height *= rows; height += (interSize.height * (rows - 1)); } switch (knob) { case IBBottomLeftKnobPosition: case IBMiddleLeftKnobPosition: case IBTopLeftKnobPosition: frame.origin.x = NSMaxX(frame) - width; frame.size.width = width; break; case IBTopRightKnobPosition: case IBMiddleRightKnobPosition: case IBBottomRightKnobPosition: frame.size.width = width; break; case IBTopMiddleKnobPosition: case IBBottomMiddleKnobPosition: case IBNoneKnobPosition: break; } switch (knob) { case IBBottomLeftKnobPosition: case IBBottomRightKnobPosition: case IBBottomMiddleKnobPosition: frame.origin.y = NSMaxY(frame) - height; frame.size.height = height; break; case IBTopMiddleKnobPosition: case IBTopRightKnobPosition: case IBTopLeftKnobPosition: frame.size.height = height; break; case IBMiddleLeftKnobPosition: case IBMiddleRightKnobPosition: case IBNoneKnobPosition: break; } return frame; } - (void) updateResizingWithFrame: (NSRect) frame andEvent: (NSEvent *)theEvent andPlacementInfo: (GormPlacementInfo*) gpi { gpi->lastFrame = [self _constrainedFrame: frame withEvent: theEvent andKnob: gpi->knob]; [self _displayFrame: gpi->lastFrame withPlacementInfo: gpi]; } - (void) validateFrame: (NSRect) frame withEvent: (NSEvent *) theEvent andPlacementInfo: (GormPlacementInfo*)gpi { frame = gpi->lastFrame; if ([theEvent modifierFlags] & (NSControlKeyMask | NSShiftKeyMask)) { NSInteger rows = [_EO numberOfRows]; NSInteger cols = [_EO numberOfColumns]; NSSize interSize = [_EO intercellSpacing]; NSInteger colWidth = ([_EO frame].size.width - (cols - 1) * interSize.width) / cols; NSInteger rowHeight = ([_EO frame].size.height - (rows - 1) * interSize.height) / rows; NSInteger widthIncrement = colWidth + interSize.width; NSInteger heightIncrement = rowHeight + interSize.height; NSInteger newCols = (frame.size.width - [_EO frame].size.width) / widthIncrement; NSInteger newRows = (frame.size.height - [_EO frame].size.height) / heightIncrement; NSInteger i, j; if (newCols > 0) { for (j = cols; j < cols + newCols; j++) { [_EO addColumn]; for (i = 0; i < rows; i++) { [document attachObject: [_EO cellAtRow: i column: j] toParent: _EO]; } } } else if (newCols < 0) { for (j = cols - 1; j >= cols - newCols; j--) { for (i = 0; i < rows; i++) { [document detachObject: [_EO cellAtRow: i column: j]]; } [_EO removeColumn: j]; } } if (newRows > 0) { for (i = rows; i < rows + newRows; i++) { [_EO addRow]; for (j = 0; j < cols + newCols; j++) { [document attachObject: [_EO cellAtRow: i column: j] toParent: _EO]; } } } else if (newRows < 0) { for (i = rows - 1; i >= rows + newRows; i--) { for (j = 0; j < cols + newCols; j++) { [document detachObject: [_EO cellAtRow: i column: j]]; } [_EO removeRow: i]; } } [_EO setFrame: frame]; } else if ([theEvent modifierFlags] & NSControlKeyMask) { NSInteger width; NSInteger height; NSInteger rows = [_EO numberOfRows]; NSInteger cols = [_EO numberOfColumns]; NSSize cellSize = [_EO cellSize]; [self setFrame: frame]; height = width = 0; if (cols > 1) width = ( frame.size.width - cellSize.width * cols) / (cols - 1); if (rows > 1) height = ( frame.size.height - cellSize.height * rows ) / (rows - 1); [_EO setIntercellSpacing: NSMakeSize(width, height)]; } else { NSInteger width; NSInteger height; NSInteger rows = [_EO numberOfRows]; NSInteger cols = [_EO numberOfColumns]; NSSize interSize = [_EO intercellSpacing]; [self setFrame: frame]; width = ( frame.size.width - interSize.width * (cols - 1) ) / cols; height = ( frame.size.height - interSize.height * (rows - 1) ) / rows; [_EO setCellSize: NSMakeSize(width, height)]; } } - (void) changeFont: (id)sender { NSEnumerator *enumerator = [[self selection] objectEnumerator]; id anObject; NSFont *newFont; NSDebugLog(@"In %@ changing font for %@",[self className],[self selection]); while ((anObject = [enumerator nextObject])) { if([anObject respondsToSelector: @selector(setTitleFont:)] && [anObject respondsToSelector: @selector(setTextFont:)]) { newFont = [sender convertFont: [anObject font]]; newFont = [[GormFontViewController sharedGormFontViewController] convertFont: newFont]; [anObject setTitleFont: newFont]; [anObject setTextFont: newFont]; } else if ([anObject respondsToSelector: @selector(font)] && [anObject respondsToSelector: @selector(setFont:)]) { newFont = [sender convertFont: [anObject font]]; newFont = [[GormFontViewController sharedGormFontViewController] convertFont: newFont]; [anObject setFont: newFont]; } } return; } - (id) connectTargetAtPoint: (NSPoint)mouseLoc { NSInteger row, col; if ([_EO getRow: &row column: &col forPoint: mouseLoc] == YES) { /* If a matrix has small intercell spacing (less than 1 pixel), it becomes impossible to make connections to the whole matrix, since -getRow:column:forPoint: returns YES for every location within the matrix's bounds. Therefore, we accept connection to matrix cells only if the mouse is strictly inside the cell. */ NSRect cellFrame = [_EO cellFrameAtRow: row column: col]; if (mouseLoc.x != NSMinX(cellFrame) && mouseLoc.x != NSMaxX(cellFrame) && mouseLoc.y != NSMinY(cellFrame) && mouseLoc.y != NSMaxY(cellFrame)) { return [_EO cellAtRow: row column: col]; } } return _EO; } - (NSDragOperation) draggingEntered: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { NSPoint loc = [sender draggingLocation]; NSPoint mouseDownPoint = [_EO convertPoint: loc fromView: nil]; [NSApp displayConnectionBetween: [NSApp connectSource] and: [self connectTargetAtPoint: mouseDownPoint]]; return NSDragOperationLink; } return [super draggingEntered: sender]; } - (BOOL) performDragOperation: (id)sender { NSPasteboard *dragPb; NSArray *types; NSPoint dropPoint = [sender draggedImageLocation]; NSPoint mouseDownPoint = [_EO convertPoint: dropPoint fromView: nil]; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType]) { [NSApp displayConnectionBetween: [NSApp connectSource] and: [self connectTargetAtPoint: mouseDownPoint]]; [NSApp startConnecting]; } else if ([types containsObject: GormImagePboardType] == YES || [types containsObject: GormSoundPboardType] == YES) { NSInteger row, col; if ([_EO getRow: &row column: &col forPoint: mouseDownPoint] == YES) { id object = [_EO cellAtRow: row column: col]; if ([types containsObject: GormImagePboardType] == YES) { NSString *name = [dragPb stringForType: GormImagePboardType]; NSImage *image = [NSImage imageNamed: name]; [image setArchiveByName: NO]; if ([object respondsToSelector: @selector(setSound:)]) { [object setImage: image]; } else { return NO; } return YES; } else if ([types containsObject: GormSoundPboardType] == YES) { NSString *name; name = [dragPb stringForType: GormSoundPboardType]; if ([object respondsToSelector: @selector(setSound:)]) { [object setSound: [NSSound soundNamed: name]]; } else { return NO; } return YES; } } } return NO; } @end gorm-1.3.1/GormCore/GormCustomClassInspector.m0000644000175000017500000002623014327003122020334 0ustar heronheron/** GormCustomClassInspector allow user to select custom classes Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: September 2002 This file is part of GNUstep. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All rights reserved */ #include #include "GormCustomClassInspector.h" #include "GormPrivate.h" #include "GormClassManager.h" #include "GormDocument.h" #include "GormPrivate.h" #include "GormViewEditor.h" @implementation GormCustomClassInspector + (void) initialize { if (self == [GormCustomClassInspector class]) { } } - (id) init { self = [super init]; if (self != nil) { // initialize all member variables... _classManager = nil; _currentSelectionClassName = nil; _rowToSelect = 0; // load the gui... if (![NSBundle loadNibNamed: @"GormCustomClassInspector" owner: self]) { NSLog(@"Could not open gorm GormCustomClassInspector"); return nil; } } return self; } - (void) _setCurrentSelectionClassName: (id)anobject { NSString *className; className = [_classManager customClassForObject: anobject]; if ([className isEqualToString: @""] || className == nil) { className = [anobject className]; } ASSIGN(_currentSelectionClassName, className); ASSIGN(_parentClassName, [anobject className]); } - (NSMutableArray *) _generateClassList { NSMutableArray *classes = [NSMutableArray arrayWithObject: _parentClassName]; NSArray *subclasses = [_classManager allSubclassesOf: _parentClassName]; NSEnumerator *en = [subclasses objectEnumerator]; NSString *className = nil; Class parentClass = NSClassFromString(_parentClassName); while((className = [en nextObject]) != nil) { if([_classManager isCustomClass: className] == YES) { NSString *superClass = [_classManager nonCustomSuperClassOf: className]; Class cls = NSClassFromString(superClass); if(cls != nil) { if([cls respondsToSelector: @selector(canSubstituteForClass:)]) { if([cls canSubstituteForClass: parentClass]) { [classes addObject: className]; } } } } else if(parentClass != nil) { Class cls = NSClassFromString(className); if(cls != nil) { if([cls respondsToSelector: @selector(canSubstituteForClass:)]) { if([cls canSubstituteForClass: parentClass]) { [classes addObject: className]; } } } } } return classes; } - (void) setObject: (id)anObject { if(anObject != nil) { NSMutableArray *classes = nil; [super setObject: anObject]; _document = [(id)NSApp activeDocument]; _classManager = [(id)NSApp classManager]; // get the information... NSDebugLog(@"Current selection %@", [self object]); [self _setCurrentSelectionClassName: [self object]]; // load the array... [browser loadColumnZero]; // get a list of all of the classes allowed and the class to be shown // and select the appropriate row in the inspector... classes = [self _generateClassList]; // [NSMutableArray arrayWithObject: _parentClassName]; // [classes addObjectsFromArray: [_classManager allCustomSubclassesOf: _parentClassName]]; _rowToSelect = [classes indexOfObject: _currentSelectionClassName]; _rowToSelect = (_rowToSelect != NSNotFound)?_rowToSelect:0; if(_rowToSelect != NSNotFound) { [browser selectRow: _rowToSelect inColumn: 0]; } } } - (void) awakeFromNib { [browser setTarget: self]; [browser setAction: @selector(select:)]; [browser setMaxVisibleColumns: 1]; } - (void) _replaceWithCellClassForClassName: (NSString *)name { NSString *className = name; if([[object class] respondsToSelector: @selector(cellClass)]) { if([_classManager customClassForObject: object]) { if([_classManager isCustomClass: className]) { className = [_classManager nonCustomSuperClassOf: name]; } } if(className != nil) { Class cls = NSClassFromString(className); if(cls != nil) { Class cellClass = [cls cellClass]; if(cellClass != [[object cell] class]) { id newCell = [[cellClass alloc] init]; id cell = RETAIN([object cell]); // retain the old cell for now... BOOL drawsBackground = NO; if([object respondsToSelector: @selector(drawsBackground)]) { drawsBackground = [object drawsBackground]; } // TODO: Need to find a more generic way to handle this. Perhaps using // encoding, kv-copying or @defs(...). // set the new cell.. [object setCell: newCell]; // general state... if([newCell respondsToSelector: @selector(setFont:)] && [cell respondsToSelector: @selector(font)]) { [newCell setFont: [cell font]]; } if([newCell respondsToSelector: @selector(setEnabled:)] && [cell respondsToSelector: @selector(isEnabled)]) { [newCell setEnabled: [cell isEnabled]]; } if([newCell respondsToSelector: @selector(setEditable:)] && [cell respondsToSelector: @selector(isEditable)]) { [newCell setEditable: [cell isEditable]]; } if([newCell respondsToSelector: @selector(setImportsGraphics:)] && [cell respondsToSelector: @selector(importsGraphics)]) { [newCell setImportsGraphics: [cell importsGraphics]]; } if([newCell respondsToSelector: @selector(setShowsFirstResponder:)] && [cell respondsToSelector: @selector(showsFirstResponder)]) { [newCell setShowsFirstResponder: [cell showsFirstResponder]]; } if([newCell respondsToSelector: @selector(setRefusesFirstResponder:)] && [cell respondsToSelector: @selector(refusesFirstResponder)]) { [newCell setRefusesFirstResponder: [cell refusesFirstResponder]]; } if([newCell respondsToSelector: @selector(setBordered:)] && [cell respondsToSelector: @selector(isBordered)]) { [newCell setBordered: [cell isBordered]]; } if([newCell respondsToSelector: @selector(setBezeled:)] && [cell respondsToSelector: @selector(isBezeled)]) { [newCell setBezeled: [cell isBezeled]]; } if([newCell respondsToSelector: @selector(setScrollable:)] && [cell respondsToSelector: @selector(isScrollable)]) { [newCell setScrollable: [cell isScrollable]]; } if([newCell respondsToSelector: @selector(setSelectable:)] && [cell respondsToSelector: @selector(isSelectable)]) { [newCell setSelectable: [cell isSelectable]]; } if([newCell respondsToSelector: @selector(setState:)] && [cell respondsToSelector: @selector(state)]) { [newCell setState: [cell state]]; } if([(NSCell *)cell type] == NSTextCellType) { // title... if([newCell respondsToSelector: @selector(setStringValue:)] && [cell respondsToSelector: @selector(stringValue)]) { [newCell setStringValue: [cell stringValue]]; } if([newCell respondsToSelector: @selector(setTitle:)] && [cell respondsToSelector: @selector(title)]) { [newCell setTitle: [cell title]]; } if([newCell respondsToSelector: @selector(setAlternateTitle:)] && [cell respondsToSelector: @selector(alternateTitle)]) { [newCell setAlternateTitle: [cell alternateTitle]]; } } else if([(NSCell *)cell type] == NSImageCellType) { // images... if([newCell respondsToSelector: @selector(setAlternateImage:)] && [cell respondsToSelector: @selector(alternateImage)]) { [newCell setAlternateImage: [cell alternateImage]]; } if([newCell respondsToSelector: @selector(setImage:)] && [cell respondsToSelector: @selector(image)]) { [newCell setImage: [cell image]]; } if([newCell respondsToSelector: @selector(setImagePosition:)] && [cell respondsToSelector: @selector(imagePosition)]) { [newCell setImagePosition: [cell imagePosition]]; } } // set attributes of textfield. if([object respondsToSelector: @selector(setDrawsBackground:)]) { [object setDrawsBackground: drawsBackground]; } [object setNeedsDisplay: YES]; RELEASE(cell); } } } } } - (void) select: (id)sender { NSCell *cell = [browser selectedCellInColumn: 0]; NSString *stringValue = [NSString stringWithString: [cell stringValue]]; NSString *nameForObject = [_document nameForObject: [self object]]; NSString *classForObject = [[self object] className]; GormViewEditor *gve = (GormViewEditor *)[_document editorForObject: [self object] create: NO]; NSDebugLog(@"selected = %@, class = %@",stringValue,nameForObject); /* add or remove the mapping as necessary. */ if(nameForObject != nil) { [super ok: sender]; if (![stringValue isEqualToString: classForObject]) { [_classManager setCustomClass: stringValue forName: nameForObject]; } else { [_classManager removeCustomClassForName: nameForObject]; } [gve setToolTip: [NSString stringWithFormat: @"%@,%@", nameForObject, stringValue]]; [self _replaceWithCellClassForClassName: stringValue]; } else { NSLog(@"name for object %@ returned as nil",[self object]); } } // Browser delegate - (void) browser: (NSBrowser *)sender createRowsForColumn: (NSInteger)column inMatrix: (NSMatrix *)matrix { if (_parentClassName != nil) { NSMutableArray *classes; NSEnumerator *e = nil; NSString *class = nil; NSBrowserCell *cell = nil; NSInteger i = 0; classes = [self _generateClassList]; // enumerate through the classes... e = [classes objectEnumerator]; while ((class = [e nextObject]) != nil) { if ([class isEqualToString: _currentSelectionClassName]) { _rowToSelect = i; } [matrix insertRow: i withCells: nil]; cell = [matrix cellAtRow: i column: 0]; [cell setLeaf: YES]; i++; [cell setStringValue: class]; } } } - (NSString*) browser: (NSBrowser*)sender titleOfColumn: (NSInteger)column { NSDebugLog(@"Delegate called"); return @"Class"; } - (void) browser: (NSBrowser *)sender willDisplayCell: (id)cell atRow: (NSInteger)row column: (NSInteger)column { } - (BOOL) browser: (NSBrowser *)sender isColumnValid: (NSInteger)column { return YES; } @end gorm-1.3.1/CODEOWNERS0000644000175000017500000000034414327003123013057 0ustar heronheron# These owners will be the default owners for everything in # the repo. Unless a later match takes precedence, # @global-owner1 and @global-owner2 will be requested for # review when someone opens a pull request. * @gcasa

i%ӵ%}}oR6z䏇JY ӄtxKn 6ͿGhCXO'׏dZ^D\!. IF< . P:*+3jB:䬲1 ʻS^[%#/NA :? 圌󨜑 ~Xܖej޷Z)6J|8¿guM/ގu~LJG}~ e~<%/7BkxIj0D:7$k4!'eINBN''"yU+"lI:I)LN| ҁAL\e謉8OѹyVG g_ si|P'x\ Nmd(^@ɝYK$ZzY#{;&Bi/Cq5:Bi{hIwxkm3vadzy;[ǃhlz=(tsxKn ӀF\ L3Vdlr89AyU鍖3MAG.(!t6FLr1k^Kg9-Aw.VS&1-."ђB񋧕a^@d0 `.f+xB(02Hڷm#O:D)`uӋ_w/J ʏR>qt^ƒ9B f?xKn0C:ۣm)(\$Hrz=A>*EەF +x= T*ٱB5Qυ#G(c1ruqQ + R\as~ B/`8A[j#Yw\BJ<\~>GԃaOqTJͥgSGWm Wx{c" !&g&ֆNxċre ]t ɤi)Dcw ﶕ+_fv$AHpAZ,lzJbOȥm>6y*>Cl{clݛ_Y;nqnX3Z6:G<::v󥕗e"+oԒxKn0D>EG@7Q4Ø6fr09AMի 76wlx6D=g:~`С5~dGv䭶ʟ s㷞%l1@8VV*I[7tVD\gWTH۶gs1ya *j^˚Z)5R^ܛz}}YGi攷F=[U? rxMn #<0DUUopPclz=AI#"( Ĺ^8Z\z2Pn`t{4QzIR&[jw-y:u|D͎.ƠlVo(2(…a~[؃m 'UI9z{:k kgj=g-upR: KV|F`V֡#./7rMtߘxOn!ܣ*R,DחS-yHYόרB9\pƅ O,m)JiӰX>,r!rf,im b}-Foo?pU3FؙI;ӲPڜN _-F>J{*B)-}!MCoax5nH1r<BbS{) xhm`ǘsq9ͽUpK% 4řxj0z ݃clRZEVI-i }:0we "A;c$/yVIJ g/цyP(BQ8"ݷ_}X0_ BZ;"tb TRTƺ( @ZV(OMۺ.DV֗h7D[9#'+96yy~nTs?{sTJ0Fξ2{ xIn0 E:b(MQPr_(o_ݙ%3DRL8>E1fJ Kvњd(f"Rt}{Hˇ|C UACT0hP>Q~zgPJ@yjKo9̟-ߎj|AvXpz'`Am[J5ZJ4Fp2j 6p,^9Jb,B$j]PF :rA "@=zxFK+Hg [xJs49jj)^|u궭cY#oF~{G#m}"u5[;Meǩgx6>ڹ?ѿ\#m_xOKn!s 7"ec(]Ԓe -Fl K;}Jg) \@N8a[,G jdbE;/ȞYv?~gbUa gdu HJl '\h_u߷1Gm-Ղ{}~̼B(oBpS/?oNw^koOs9imu\/2ox;n {NA*Z)'E p>$'HiffF 7F ˽vG1e  ڴBm l}J7My%1]Uikjnמ3dc Ⱥ"1zemrFk#7BG#Oz7r-8·sI-K¹+! xםIK*v-0M#Ԟgv'gs'd\pvxKn Dc(FIh[d HmޫMF#i]pQaC!y)xb ZXف eRFKdɠ4ID;_܍!֓'jJ)*cbW / 1AoKȌڮ\?T⍟i\s>8ͣ=]}rxKj0D:Ejɒ! BOKcF}<9A+PFΥ'FMvJE)8wFG%5 9&ў+3ftHh59[mŤu7#ww㪋1(3(π(2\)u]Z^Bo[Y_u~u'߶ҧ36l~ۜBKcii]pR: SV)>}ʑ?n *KzӜxKN0D>EQ_F w3Nd;=kԦjQ&%0X֪`7A[9NSlg`{vȏOte0*?vu 6ʱeGiiwF *kÓ<%v9šΡwJ|߬x[c*g~QnPBkm#5kO,;[Q*{-߻~UP_n/T{xKn DȆgEH9I12Cr,Rh=U+1R~V)Hu   9ܨFcjRs lA}@NjQh Xc5fp]=t7zXYOI xB[%z=$F>%bi +HI[+|ow:)x,嫶x2 d(#H'BpNSX)& <ۜ29P`)):.~23al%LqF49jsOs.vvlse[]Bed|U'c{RzT^~:-3ԟ砥~ϗ`-# Hi>xKn0D>#ݸfE#$im"!s,RVEtid=D8xDyީ#d٪F`4΢eL`7F#B"T8szNãd@lh854]\Qi_ץV6,ʨk[yKz)V)5/)_[w}Vu=ϿY]8{^Ʊ٦~4BlxOKn s L j.L2Q@]ԋӳ%sPK2IBCHNQ11:{+iYj릫Ԭ.*# <+l/gv~ Jfvu6Z}Rz1FÛ#B>95Y9"&URTfLW@(p. y]EV\ = 'B=cl^ZW[+zi>LJy;j}p^9uh>nFK&5oxKn0 D:-Q7(7Faٰ䞿jNE3%' h4*,D5B1KȁgJN{K^8#z ^lHo<.֓'.Os5n1JR鍏!a߶?iw /zѵQ}R>:No 5~_pt0<~nWz КӿT#?mx=n0{}Pm6ml ُ=Ȟ E>G5%[pjҐuy6E0I ;|M;qSLV]^gIK|yAhdgT]Γ2F!qP4WX,۶r呶Kq*|icJ]{:֖QkJQ:?&R7AܿZ9sxMn hDm V=@泼~ R@^N" 'K!Z#^wҩ3Zˈ6't(m^TR󬒊1ptN <@q`.f9O:/I9Jq7DRݶw'왖}м~b!Y(l⭵>z~:c6~%юeɐm2xOKn s $~3xd*!2/tQol˒eBy0J0i$gHg;x^HEB"P(M]c.[OqFY5}j:Rhe_=onxMn # QTeӃ*R* ^Ebk<Ok7A=|Gmqkn0xH} gxKn Dh4"c p''"y5%N[z6 $jCΰ3;y6E,ZGSL>Mgԁף!kJj0+i|0-pZs8#Ca?o5žm+ud 7O!6QO\Sy6^ľkxPn WIdUUO1Q7~i/P˒=dY".G5 т!~#Aqz CjR|5-Iٳ= B b@'cPd6J+3`lO{ \wό*GlߴKkGp]/>nݘˑY:rlS;~q}6v~xIj0D:75XSӄD÷lҖ$'׏dڼ(fjq(0 `A0BzrCdaցz qKI~^L;Z*/3ʍRetft0aY -9{Ƹ*K$}zY#V #88j/k+-' ׹6Bև-⭵>MSvcO)1hS*uz=Ǔ3--sxMN0>œX$S!TnZ4vdo3'ͧ^CF`F"jƥFkLtrG+PjF~] XV^kdZ*l4orQ`V9XL1[!I1Z 8qȕ}OZ\O%CU_ǘV^!G-?W gcdKB[S{)3 =v=/p\˖קּc1і}.H/k=}!xIn E} UE0y?NNEDT|<0$y^"*mmC3f(JEO PX8ko"HtLd rrQ꩔jwʨoK.cGΔ[mӒCu u;Cm9ľixN0D{UBh;DpG6DODO4s4#ib(3 qL`AEoD!<ٰܨ 1`Ғ1Qn%kNJn8u8;&9TRP:ag9(E/̭Y#oιnѷZx9}|oBu3ws/ޯpP?e2 ~4ᙐ bYE8K0h%ocY#Gt#ENoкRw!$owa[Ӌ_w/7繜}_sm;,_O@|i xMr! } 흞F\)o|5{@Ƿf"l= 3LW+yL,>Zu񛙻LcyV;IȄf\qZ<;k*p8/jT,KoQmPfSs~^YO@hp2Υ ֽE>كK{TCЮ i{g*-B"$Io%}Ug^(>C \!pMNtÑ7bI!EyK"St]w_>z}Q#%㮇#dn(Ώ[v,ZxMn }d(1?UnOEg}H xiCkEX!5&F Qo^{$5̃B- !"$&*,qxFSp/Fj=Y~z7eV%eh7~r?k󨭼qd^1fBHyڷ;xug9e7~|Z;Kl3=hX_ol,x=n {NA*6RD9 ?*HiD:d0!)D9)  -E?p &QO1N;Mat[.tvZ 3 F@t!x2ƇAH%4={#B^?OtbNz 1r(yw[b VS4'|2{ꢿУO.}yNp~e[ו3$ |5xKn D#|mEH9I3 ʀ-ljr,RVR=hD\0:Dz$6^j =Q{]r҄Ei^~p[ׂs3HfN-FWB*e. uˁ`cA_35'T,> '/=tژ*랾}Jh=ln[ҺG}Iq Y̾$txOn Wy DUS!X~ ;;NAjk8*G#z~Zm4zlsb4$6haL'Lϙ5e+_t0Xcƌo)X{(7~K?kLT*`a.k )/+Нni[>źĝ Epڔ{lpJP]Riܶռx~MxAn ER# QU)wDӐLOE²03EtA֣Z& qc\3Kvq>2 .l#6c0LEE10~dX_ܜFrB5K5~V\8:?>6Xm-\TǾo\v$Pb@Jx!Sa2a'X*w[B㥔[DݑW,Ϟγgz4ZTox=n {NAyUmS587CrfF3@-]P1ᄷH9Al§E*9(5xaFh@::bvυ8R =v PLJp|]d/>iQ%TGBȺ>Ӱ+z2ݸ&;xp0{쬕38 _֑o[mExOKj0o?$72şLS 6BD0pV`6Fɜљh^%Sya ,=+7%,* yسsjn3ʵa tatЎ! 6ck0p}Zi#Βh+?l>Yߞ6/nm_i:_j_qMve}iMgmxL8Oƙ2@{xN0D{WY m@؞֏koD'Ls4 :GPQ4*LFZq7CT\IQaAej)cYjGKW#8Vq6r6ԐsR:i: yzY#7y_>0L)SGtm_(=\?/8-u:ԯFf^?+k/7jnx;n0{!s?2'KqI "G R53ԝYRIw6cw`bd9#6y۾&: :se|imz@I)QkoP8'uZM:ɕڡ(\" ~ E5W&..sNҌf2Gg{k,֘ zXgYKBHi5 B5mg"ትn g< B!l[NR=z7ԏWغҰt^j}ƱuMxeqMgmtxu\sVyB[y}PfRDxE=@@@L4zvvw~ [z@쌥1n %v'3T:`*%cNj9Ϲ4*xT⊣U 2N!!/[e=6!d\l&VxIj0D:lCB!7e%#ɝ HmރF2kmA, L^Hk)$"φ9A8e'x`Z8J}F0LPA)  @!6D=~pF՚8FQbU$礌u(1c[΄FX}g }^_p ׺O_sՔq6!m*dKw|z˦祜}1R>v3eU br!xAn D}dcCUU[sFY"d>&դHLц5@d'ʍ#IM(7vN9k^C$0 7<r^a]YӋQbxX7F4 Lē|zԢRdSެ"F zeg ju.ɱHp`t4 9ONo7 ڬ/g7et!xKn DGQ49 "c ?NNEjުT5: m Dlbr:,El್NN X)G%85'29^[5#_<Do@Γ '?K3A9gu]Ơic9SyKz=cڝ1V1_mZ_!e}Em1hqQD0NLbi^x-˻ 1 PqHv>6h$):"YIJ$DOl{I@̮'h/A&c F];`I#߲I {Z#ir=!2x܏aχ n&FxKn0D>EG`FQ4w h3(FdڼRIU!|O4k֎8އl7iHi;eC6 yCfdk6Ji烠>SeBרt\3eP5ll}?tj|D=R7uILiZ)\N_T'G}iBeMyfpV.%RRyW%M|χF8Rq?x=n {NAfVI?fQdCrf>Miz DRowh\0T(-EkȝG!4(ftygZPm=zWKRitؐ>~JrӚ۬Pl߽ZgU(z6R(z#ĕHRkp=L񰥯@SnJ!1u>3KNGZ{94ŌSyWxR?V/7n!xAN0 E=$&! b\MN6O[ϖK"+Qq혱Q8$G;$d0Q(`Pi'yԃF$=*^.1l0#G%8ZvljYY'6bj8bG{c5՗BCkh_daϕ8.BzT-_9ߘ3X-f:Sue![KRW~Z :xyz>l \[zۡiٗ6|uU怇B[ۖw%( g5?xx1n {NAYEў!7`^)9} E^3S^Q[TĜ܄`dɹf+Nhh!S:  pFϾJ/xXqdN -faXJ)k@R) 5ʾo剑Z4ղӣbj4|ְ e=3^9lXJ]~/lԝzHK qxKn kTUS$dQ ][$5%j`2Dr  <GL@'ȉ5NU4N{38cHvqg &X!TlH~aü  sl]V+NT @y&H(DZ|Ę"%\x}/yH={kW!Ylw:HӖq*u|Wxo+Jj/[7CqZxO;N0} OIOq MvX(v8p} '`bfv".5Q!v@fIO6,GBrD0z (YE O"L32 _g8?)) RLhOt˂QKԨ D;6}7j[|U5~㐐b`͆sckwv}}.t`J%h_zo~wxKn C5Q4RNMcEp9} Mժz%%Z07udpmCb-;R c3j"1d98ّd !KgϘZ_<GEĘT\ Nj@p_ץw{k%R[Nm`KsK^w)/- {\:2G^W}<58_oӢlx9n0C{B,hG| 'k $9珓džkΜҤ4e2}1D6)whIvR{*,ɹvQӆ@/GsF/08'FPPd}QmkQk='N$d'G^_d@MaڹB):mIFCvvqfoQ{4),<* %,h [ )O(ΥTJMV+opm]K?k죬BȑvH5j#c,>:֞w!.s v.¾7c8CI3- T@k ?xEɽ @`$Xp{La%E˻{E7pGrvv|[㺔[IJE%2(1kb)Y`əRk*&nR4$z@DZ_? 8}n/~X)sxMn {@UH= ?&!=3=AǨU0f^"hQ#i LHВbkT:O!Ig0`䯉K\ez;6;γX I'ce&Qa7Bݶw7Y[Zx*ca`嵋㻈5xJC.n-ytGǘk8I~mj@"xPAn0 ^KZ۲ȥ(z*șh[Z2$=T8 5%iN˱Ja'jGՒv gqvL ث!?8I{GJ'h0 *l Ō<2>xNϘ hˀeⱬ~w,~Ka`hn݃Qzݰ^ =KUU/u>C\r^atY^bZY‘ {n>)ϊC/1Vޫ`'x=o0 Wpnb˶,$h萭e9K;$>rܡZRT ̠ԪUkH[mdJsTMG.6CadzDVC]k L2e91%8m`gE۳ m387 \|뺤F˗*vL}ɇwx^K}n?2sKa.\&qfP՟-RӇ{/3ٸ #aX{z-eOh1/-Rj76 8젿?TB%e Ҭə҇itʬ5i^JS8׃൨_|crxAr E}a08GAOc]oF.x$ZRԋs> ۱R)V(ڏR-d#0Z}}oC*uz=]yE 8pxAj0z kȖFK{o[`r@Cu(%F͂ .\i!1$v%$I0x`O-.!HHְ\~1_{\Hc:0 雔SGxsཾ3jXe5ߢz_ZI%Jiy/I)u-S>mo,m-G#_ΨoiiWxKj0D: Ac?CkI֘`r@Ezӏ{C9"X-2v(CZdžd. g0sɩy  @ٟ[N >- 'Ƶ'nh4oT)jzcHu/Wrx[kc/wO~:;6ncgz T\_γolw 9xE 0$(\0~MA)wPE,6`FbH;quQ5A:.@JBL#$JE1Y =IUT>yU$m hi: ֛9W/(xMn #_UUN;dz~ff5iZ!ɠ`FThDA m?B)i`ӓpf0A '6!0jk.>~njI1uHэyCJ~JZ "N1gl}ꚏ 6s<S} ض!_ V-•1p/7t]沼3_ҫ6ڹʗ\WzܕMt/g7_gxIn } 3O(3 ڊ--qr,6UқKù3[Sޚ,MEbuVY3I#thK=xR&.*)F)Qd |FoxXpY$LqF\du^Z-;\pc5m[d|6|q~ :x5;xy8cк~χKOhxIn } fjEQK9 w[i8珓dZ9SgE1ĄNjVj ʸƑ{.MsB@ 0E ARgt# 5s pfW 1)c4J; p_#6F8r V ;[#Wm"`Wa[Ӌxi-~}y-1r}kǼ־ϣ!`q!O%o>xKn E笂yDx`c ; VcG]~ݮɹ 5rR0ibrJJhdw ˠT2y%NQ0y."h h;Yfxf<(RTI+)ީRH#NPm'|V_)~>kkɴ7p;?^ !y [㍞q~k.Z[<ܹsm(H}!o xn D|+ 6,*R{j !U?_C2oh) is&3*+{7YTA":vf5# q dQ³ q %h4޹n8w8j[W䧁o# ^I-y߷Z=( 9BH[.yEŏ-ŋR*n+ _J_%pg>gr8J|[;rW}s'xKN0>v>;Q q{'`TJ"Lҳx/$,]F: !kL ###'rŁ%!ŤYۡ3/E~o7_5+ )ږeUJL\4=㚥UJ6smf닷Rwc.k?nz*^Lގ\Q54jxKn GU\=Q'!7 7eYGKjdE <PAk9\K 8kDcUZe9X/i!h ;Ah,τ/9*(w 0K}5M\"n:F5qD7R֗wJJ&BHY_;[^s~nx^tpw6>ڹ>/7Boj:xKr D}"0W*3cdU"Yoݽ2KApce )q A. h9 FQEA~/U.ɷ߸:)MʀM] 1|QC"m[{i''Y%Z92ϱRڧܧ5]ȗytZv:8ڼͽ>+AIo֘xIj0D: F !'4?NNEjSoQ<9v~Iq8$3tN-2,و%)ʥ he! &Sٟ[5AA3FxPApAM4Y絝>8eT,slsk-Ǟg}kgX8V1;vϻ uake]ϣ]Ҿnm0r}h=xMn }ǟ!Hݷ8/ lh4Vrth]q^0ziCIIN(gM A 뽠Asd>-\gk׉Fsb j2VL+F">y˥o^{J+>zl~{3!$-m۰ ~vN\ғǴ>^ǔ:rl_WRK o xPN0s'B'!DElu"#㣠`i4)H':!Ck擠IdM{l(4LI1%Q:99Ĩt US{Qp&0'ΦzbuΪQR)5טY01 b}U+==cŗۡZR"SaÅj/RZŠ57 ε%\˗+ FZf e}igh=CŇ箫8<4y7=:ܶ]W>.l|tw<-HyJjlG'Hz@ ZÕ zAHg`#!wʥ\kg&gjZ`Rz !HR{gJ/Ɛ/\C`Fpa eBzR#Ed WR[$OsL{)]Z>q\/>*| ѫ`_ ZK%g^K+|\>^16.&J/Iy:x]rniq]w9/[};]q}lx=N0{bJ* qή `4MރB ]:n@=Cnt9gd5٧ fJxVZΕV {ˬ:4lu^2|_8kuJ5=RP,8Rw=ג# 2ĎTÁCcE< C qakV]ݵ;qCp u)Ԧ\SP|j۝S2%O?Ni+կYNKm[<3_!;~ |x10 N\Ѹkw 3$D/ woLǴz@݌g HZ3)r!4`-PH7gCdօ.oRxtw U]/}:̛"?,6x1o w~{Da0UUݺV`F/:NtsAK'Td.-f@FpWH&F-!7<I~l8KnP!{e+f] U&H 0GFcfP+JKnui[Z薾+ۣƒ3d\M BhNԯLZ sOs>j ;^鼕re q!xAo >ۤ4d!eeUŏ_eDL^IEj4RY+bͨQf\8j)1Q([>Ͱ#&IZ(pfF <<~}1+1]|pk!+)T)W9}#f%sVj5pm@d|s1]mw e'XR~!SiK{6*ݹw1ܹpB{;Wt%8Iw5o%txAn "kf VQ}@>a3xQb!RC%uk[!dX 6,=!iͤ^ hW(5)dZ(B282wg.H靿}Fh,e`fz _D[.JԢ|R#'?kީRc[lCJC7R6[r\tF莣[.ʙ>RR tNxMn =`9f` "u T j- =袳yiz%q€JN0{mUt4ilTLdT:e`}%aj NEb61UK`AA xNZIxG 5?X5NurmwjV"Uؒоːyj~C祸Vǥ#~׾c8TW;r--r< gJVVcFmkݦ~gb_6orxMn Q&@U Dm "?/z.?=璽0^KwVPG~©7\T& 6XWňDA)YQ8픒Jfϲ W_8R-k DZAɱGTMN?k%.XMiR%a:x_,.q -)v04{lVw/DZڶuϣ~s=mK>띸+b/rdxMn 'yG&jLOE-Y^Pz6 t.ʢ7N9b4$zFʨP)P@RBEIK0R0R^f%ߩf^71Dr{?kԊkK=+ҴDwf{ӑ֞wM[|Wxr8ƷR?Jc_l*xIn } jE-$i[ TJo4D@s 6FFP1Ie47hgruP+C\뤒{ Xk=`ɐphNJü@ `.uRQ!$84HڷS#{k.~"*EQj! ?++˝^s~ٔkzyG;S 7 m0xn D|.ƀJ?e ` Hu=t.3H70KPpN1&cܤ)]ލةpn͠i0"HgmO[yϞγok~_%G5_z xMn #@*g X l[̌W"&8 mRi%'Z˔۱R A "x惓DʡFi , gKgW.p=4ij)>AɭfOXmg}V^BIFP b0V})ycX &xf>W_Z{ZqG봏mK^B 9~xXxn D{bD' )`Ib5i5FAzk4H' zᓴFKwƏS=`йhQi.zphrw痘.Z fE)ȩ\i Jk%"c^ץɵ"q_i-9e-5#\?#׵{&K=%ӶΌufsڷ slQe"PJ~s,x;n0D{As4U uJ QEQ E׼Fij26i9c(Sh)V-6dGl))mKC.}1)Afk1T/\BP~D@H bYQ3T'8,slm}1ƦU\.Ӿ/Rtj@~\809D= dj 9 'k%a0l.Xse(7)@D>qNJȬ@M\-הOxs;1YgFP ƊA8 k X Һ.[$Tצʒ"^w|@ᒚ梿R>hf%K-xv~=Q8GwLy~0c݋ߨ۶)oK/_;nx%1 0 @::[eu`YXJGB'-d:?y]- pP̢ K]{C &d$AD)%ĦQ=V7~ 4NώGwlj%x=O0wKTuZ4Nd=F0p w驙hJId QA)rL1I˵ѻ"m^!gV/k"7xպ9NJPu!xe8%p.HauYb,.[^PBL_>S]O1Be[o]J 5Eiv"]=cl+ER.oۯy~NRiݶ~^|KG%' tO x;@l踀VZ;>Q LB\ ރ埳9@$.3m01Z gnKp=tM) F [tʄ|>d=mɝZ'G'+yww:w~ZL^L|/xm0Db]~D0 Hq) E\TCe 3ehlLFR|2vѺ`}Č#kI12ȠG{쫇/VJ7D:Ԅ hnRH"H(1kmgM|rOۚ7rSZo~ǵ !uukK0/sY~|X6uXry ]&[oŗxMN0 9mm3Bh'TL*IAܞ\|Ozz~[F8j3 )T|4DJ2%3/lŧGZdmp!43)Q"fQch\ Z]5<:LS7wg;u!85΄@N3"}ãthHW+E x;n0D{b{C֒?2@ ä@)2<`i8$ihIN#ImT =G x($Q;֣ nhk./uJrtD(su7Q[7 V+ R*P;8com a(TWx 䔎# ,XկmGj]/}yIte~Ixikr[yU-sxAn C?HFU5g C2Q]ԛeהyT,*O(@[ $wܹ,ΤiZZN %t.1g|%<)5Y+f )(%nsDׄR[G+Eʞx<|OJΉVrcE{e;xkyrÚP!q4^Ph*r֠ ^HFĵ)qnvI"$@$C1*hgvߨt>+g"*d&$ %?kKo0AX 2F |$8f~K,m[{ickž“E[>_eXӝ_~;}.ږr1-mSog|0cnxO;n0u 'Y?AǐlHr޾nOС\ȁ$VxpbIP#DQ %aXwAbѝ֨hMaF%st7MxBHPJ~,n:F}j^o)Hu%x=n {NA~1ms ~؊-9HN"hѧ\TB6IB5\ҩSXZW5(%Aiyǣw4}YWf9x f<(RTXsR"1zϗ* Ѵjxj1D{}zޒ I"k"8)2900h1`e&O%CQF BqTr)õXhh S:,1Y%AH, {6u/?jF&KqPP̂rJ)Hm,גW! '|[j~+~QCWՕ; o +.v&mLL[^R!mjbuE( Gb9Քl{nK%LYB=va@S);/ќS^~}[xKků+gTGq?xPn0 :$-?$9(7c )Ò :x0D VӶ]oHٳjł+qR-7(k-&7YltM%" V-Ft-(UUa|v6}Z~od]k*a}J?isB R/'{WD bBѧ"޸w1NDz02:>y9-%.K,ǰeZ7j4-VxAn Ebcx*= X$Qo_' J"br.LHk|{m̤BRto̡CȑG}[->~q5nкQNQ6$ FeO@Q!J-$ugM|y< [\9 l/˛.̮7,lg!DkS[3 IH8!9N>iN+X)78'!& hQXcBhL10QD򋇕 3f A([R:?[-nNa56>,xx櫌Syb#J[ם82֭ Wx睷OSq8ui٨LX9GݧV0˾ܛr`xKj0>c~{(e'{B'NiOE@B猃KH܈X$-l ,6 *6Vi!i.N) ȟw\a80n&X L#60EJI\%8c΂U%m[>q|ecAuȚm-e1Aq Z @|AEfxOK0OV|HQ0Wx@HQ!AI\`-[䚽KGHY=8xD(v>VВ Ґ$Qj);au1==e#nF |hB؁f'mF D8+$6m[jƾPJM{9 CB,)e]>)1ڔWlϥ=%D޺ YۣTڐ@ :xxKn E笂yDt]NR#Yݮ9+*PBL!%mTѐ c{v#NF`$g(d=y~*Sl6P(JxTV|pV[/K۲Iyu^uy=Z]}or"{=֯41 lܖxn0D{~,އa%+ؤ@c#H"Ӽ)f3H/64qe昼Nഝe\&#dǤΣW9#TiKĎpIvOׂ~fd)@]0Y8],}%ra7 T!}5s->;:ǎeaM'yzږ蔷Kmڣ|\P<_ oByОxON0+;Bqڱݨߏ ?ރTNKo8B2*26 ^)tfdݧ c RhG̎rEtQoy kWZy \x)+>pd3Sa6d1K`& s7<'|PHBoaS]L> ;P9{ߏuG.ό/%X#R[2 Y.p2G;/%k[~ncܶ>.#|^P_7vwxOn V@?<7jK[C}F݊@p^)5ͽ3k9nBZ'Q%BPRQɁŧ\v3¡ ԘfnbIәٞ@XPQyX5P9ˤ$g/ӒMNp'Luö6.dm}aWB;aO?C)wwBچݠm;Ƅ\c:kLjQǘ>rg' xn <#Je A>J:h&M9ed.BK3[0I`نr@:H;MEe{4 ý?J!\rRpie> >;Uzf2J '~ se]S?i{,19zܞ V:*[KCʰ/JP %<1#\1Swq<9f<_~youu_7)ixMn ( ?yFU5=ʃG2M{.gْ^cA9)\ Yu1wN >0;`vAH;dxg| ؐa.0+NPK),Ւ%ʾHW=1դzR1><$֞iܸeK~xLxmJݧ^PR99˾8Csx=N0{* E.gg#%^OP07ӌFӶy2X #G&J*&h1$Vrmt0Lo H]~qZI뢒V.$ ])>DAG!OyZƞ2q$ڴTS-6=痞16Nۿk7љ<,bl݋W뺋hmq`/+WozxMn! j2%z3]mg-pk%7)JJڑ'ܲZ(.ih$K$qh]3IFFq F#U"w_Oj+Zi@DJs o}FjA\ W*HDkNe zpTT[z9{ai:4v/_bEHxxMn }a~T) "c p_^fFI3_1b!]03m>9#, (2Up5x[aV3'L0R/h%m"w^q9c7́qEG@FQ4' $dE=բT5Vj JN/N%kNn88TXGw숼ѡi G[Ϻą7FJu3:T<{e%Ƞj%1۶gM|o`s(8y(l|´pB֦|fwVrﺋژs|qYj8:>=o]g|H/2nxn D|.0QUűc pu=t.3H3f d5GV @ǤI¹IJ'ְ>Eh<83*)BI{+[s 5ȷݝBPG:"tKvFDDNϚ bJh˖\|p!̙eBKW/>np~Ρ9>}üuhȟwhV qÔxMn F*`BQUԓ DLtNEy[|lj092LR;EMB#]B`3s aF7"ጁO!ZzZk\w]K > >հ,QicZIBrc7~ u26U!bí>AT b(z @y[[vX4grɷ8vI]jK>rt}<}Lm#|ݥJ_c?l^'xOKn0o?^jVGZez.ꍽ-f"1z5H4.B@+ADeNv)Uސx9nBqŃ7V  sG] sp/=tϱ7J5opQjc=ιBTp ,lkico {(S u!؎eͱ6LMpuj-O({-]Gze/St xA D;*3t2'( `{qT-*R5Z5!ڎ'28KTOzf+p;9iAOG? T&R*uMPR6ry-ݨԫ (EnӶZh+Ls%{NE :YwʚC|Rr5\[Bm;6[).Ѵ)/?[Q*-)o]G|>\`ߵ%{AxO[j0)vGRz?&Nhb\ޞ P͈0+#5zz~1QQ$R?Yt0c;(j'%Uc{fYj=#"uD92g_z*(Rv#TtӠgRkFvĥ}_ki#_ fuA8KoNX/lN;37@:F׊mL)X֮b4<{rx>ijT >8,Q[7+BN@Bw4Yjגi/r.gAtͭöeݰ}awzםK)Xjzk: Tz=S VsxMn }*ROA lF͌HgC.$/}:kIA`MNI+S&GhXu8cTx" bJFԜsFK =/VA,L [f9'mWVK`K$۶F>0LtNֿ+[ӝ^s~0=/󲷍v֯.k58hAxAn C'UH= IڐH_^za{'_&gcv@49xu`mwON_Bn܁֋ʙ1: @b0FE< OiaΠE6) _9"NzBoŖc߷/nˉ| |(oۑXښYlKېL-ҟge+W~_ޱ/_kxNIn #aTU#%:ȼt^C}eٖGje!i/T^jU(2arHi[,XtQʥ\FJ MH^4B9`7=4J!CCDPVG$J)H%R*bF x#LjjkяClߠMWl}&@ꯂpoowZrKmW\>yvk;hW~0J  ~qxMn # QUec >؅!FҳujRBOFrcO1_m=OZ^ m(BkNuJ`嫅ze핇npmtM<|mȟw)y!xN }9j[Ж1{ (;Pח֋Gr 3#"tmK4oHFN-3AFբ" t P=vl(A͙c -WZ"XC.=vdKR#1W@)TJ6Hx"U:̳VQg<2qMNOK{y xuRfL< !<^[vv:{ޚp'||ŰE?5-̇U׽_$jxʺ\ ERMSzu ~MF-Kjls.ҡ+xOn ^J=촏xQNߏ v/VČA4#ډQ0ʼnŒVrb;bDa ʿ#$%Z=-*ۋ.Z yL \"N!E铙(zB8򶭭ic#GBr)޵5'h>rٮE_~a]P<]cc.W1=kH^kV~zLf?v.xn D|fQTEꗬa~~A˛hfZa`r&dő[#pr~ $*7IFk7Fua7D.Ym"AЫ-9P%yjN^"L5V%(ohq 0jfMBVT854,a&XT'äF 1A9MNQ%QjnA laBmFo hF#_#.o[l&޷'{.d9[?csVZ̉}]kl]}.*YyS'b ft^F; :pĜmmM|q Ge,kj*_Ƀ)pW!IJ>SKk.K:j㽧}rv=]I2x=xn D|#ǀQUE꡷j`1c% p}Ie0W8g'ȒVA"KR4)ޏlD6ndb0:a3]Ʊw r 3ӯ\ahFm{cjwJJgBRJs8zl뺔B>Tb"o/t:% q/=ƴ厅{j!T وAK. =Gؼ&CT=|9mu919vmI{e__Ǔxn <#DQO6kb5 H}:F+fZa$tRZe6CDl«瀬8pj0YiV9.L\VQ0 Ns9^ЫsR%ڭ_2Ia^-X7{Vo5dXM2㑿 @)tuOwqoCL.T219cL8syMi+rPxj0zZY$McHrU=t; ,35p#JXq,zQrQLi`q㠹]KGJӀF̝uI䊃=@.݈w\"窛砌~"J$\xҶ|c)g*pp䟴Z(N˺G' ֚rpw WX\kW^{45r|sT:zw)o} a?,{xOIn0s/kAQOKcY(@RW z(/$@K+̠4Zi0Z(٘h*qj_pQTxo]ԲYʘyd!G[)P%xPNΘPnzXW'ާ&)hx"ۖ[I1r53rv@[B"H {rAZ8vuI;]^zL6>Ztmlݧ y!~bzkxKn D( Am<Qd[իVxR1b 8gLv0eIXhoh;^8}[ølvLwVzӐwXNYe>&[χ}jyxMn G &UH=#$D@7 7$[[ rNLjƼm,O=3 kxO;n0u(ҥG.%CNOС\ȁ$V-ȝ )EaS3'Ίkm)HvS|jwrG e~MB PFbvk_!gi4sGGF;5Sم$*-Pr J%… 6o[lOyihM`ͺBP}5_`x{Rn1<1'Xs{B[W '_j_TLÒ>}Ò6rgLLG}~xKn D#i>hV?c,VONEzѥ^CљJ= =u11K.(d75:ǬB>/c0kTֻ#ER!: S1LO0#HmKg$w@DA%D\ٶ{4򑾡k8_E~ R#taeWM[_[_}BbC;.>{^j|z먍mȟOyix/xKn <2:$~ӞZ?,#X)n]4h ˤSG Ƞ]Ahp{gtY$G6#8 -KГSDT %oY#{nS"=EQJ} [gLl wzՆ5!5m)#}>/7m 5x=1 0PEp&pŹ;n}#rSk{)E^i Q簪k.RxN0~ ߫4^B\ ٵq")}|90i?fj!9gzI(4z% q %/<}\&eF1":jeiZz O_< dgmsA4] =hX?P+78n4rqbo3k{?1, xrl-Sܦ.Ҧm-k$T/S'2]~%xN0 >w6Io9!$ /4N^T110(q#֕q5QR mWuZي.FURiMƑ ں䬐dHjUh2l0wgxJm~䢖"O~Mm:}4=H)SV׍V/c=Ok)],솣{ǀ0Q?y*^Gπ!,W;nodqGs{pW{2D>k7 \GOmX >{|S \"˲ǜ[Hy-˔ÌŲ G^Α2A\m˸CJ_<ixOj0+t/^ vbHJ_%{,;N+D/d0E8Y H&FX('v`80z& BhZ8A@֮5`Ef) Bud57. 3}XF>(EޮCNB_b}.oRn۲l[N>o^hwzuOukCagy;; O>V#G\[@a?gg~x;n {NA¼aEx4Th9c͘q('rc ^G ʹo8V :_-Ha5R_Yޢ3a!@4Yפ:9%sΥqJ1olrl㨭rQK Bh鯓'o?ζl_J~:Ϋ\ӭv1 - iSxKn }rޱ p_t̬-%`HA0k"HS7!fN1p&gaHLsVFF'%,"bkx}]gZO^q՝g_Km:u|=T/76mxIn D} 3ɭ(J{?$'"yoUU"RCV!Y'lHAi(cʨ 9ީ 4^8*O^Zma19t2<*-з_}oVj{=畏lRD|XxKn D (&Gi6ce?NNEVU t#wؘmLn6h 68d2B`c1F}^ٞ{yJ7 {F=Fpj! KD .i_ץ56'..[Ӌj !TԒ[ϻuyn/utU罬s|D/7QhxMn }d(r N{.:FjJzʘ,8Tc"Cjڈ&cD``A(Y8Q*ch~HFS'rFQ@FˋbYׅ(/KB FYAD"DZ^*ncB]ܺKkg-ί,hvUP=17sxKn }yWTUz ?j 4lf40"@8i\I[ Ad๵@oPvhֳL;W qs=D.CV6 mh`,s9AZTTjDYFTF("E($ӣHDGc󬹔ଳV$rY1zdx-&Xf݇^ӌ W7vY;AR U#x=b{)?[8S|,>+SO Bub" QWr\)u/M~'~yv=iz\yn)t%]׽BXaa?~/~HxIn0 E:Ez@eh, \Nz.{O~b ד*Upڻi`C`%3+R\ *-jT'YL9!Tj\s]s΄պ9:6pىnYfe(8璟[%7vy7?ikw\k5$"-=|":[x旗y?zBHܰkmN^(=ƧӘPWJ1םb=,aFKp}2xm0DflwCF'I 돒 ry .) F5:IcW19@h *,F/I,^%|gM)9^{5AKoׂO>r3A9#B(u]y#o̴aϖτiwzםìngx08V6ڹ}=/_7pkxn {dc0S]&oxᬋ63SV)x1Z;Ps f߳CiWZ Ar؂Q&X ;XrvXV=#H%q=jdT!5~}ZY#Ľ?cۖ 5M6b !qkCJö^iK+cݍ11YLgmx0{\vʙ7-/4px;n0D{b,.?e/,ɥ$8v'HiL3x04Q #H!$ֳ2ةpnz!vhGP'%4VD.G[sJuT(nB;iPvKۥ&=ZJ 'yD~_[y{'nib^8*Tzr< !u5^G;ϙ[{?Gmﵟr[y b+~`sxKn E笂yg l x|cUିnWA-% J ٨MN. ,gc0Rfk3lg1ZևTQH,Bk+xo$Գ要Ȓ cI1<2 /g)-wpyԬaVRCrRp ̦Z$~P׶ ^ Brߛ"ԍd `<@ym [ڕgvwƗR[7u]#^S^tƳT:z<ү)3~1_~o@|xKN0D>#Oğgq"G1pԢ*^D` ]10Ȁ8ke+om8UI@Z{ j艹.G)ˏ=DF)aA8jc{=J|hdo*~&m[kYco9a֏t1ZE'V2u]K{~.Wtv$ H_0LH,:'}z󔳐$Ud:k|D@6As)@v)כL*l RtE&F $TV1X~z?sݝBXs4_׽r]ݮ\s(g !iCp}.Sc釧>}oS*uz=烡Q |woxMn `TU#$0QƖ, :%HEE+SJ N(WЫ$oX { y1IiPuf?dz6H. sY4[פuh)ީ .HF>jkV  _[=;]!y ҝ^zyrS.~-{G繶vχg9NxlxIn D}fjEQor m-9 Mj(u2&;l^&Y4\% 9:tr-[rD\- h!A` RR oћ#Ͻт{zr PSQQS~r7Bp߶u?k>}i8W !eS睱RԳt0ml~>8/o7%g7xN;n0ud)(\ sgK-7=~t(u#nwjV`RP+(*rd+n+p6^h][i z/ |:J5sOucУm cSp ̗eIt>RHP";T~dJ9GmbͩvwR@Ӿ/}yx.\ۑWɝsx;n0wB{"SY_Z6$ܠC98*lT>p¨٠'X:E>j=/ p,2ɅVZk *H9qg앖v|L3-4{SJQyV JRRI/0D¾mw-0\ݨ?ge%OL9Kkckq׽Ofk9[ǃhlz=]9) h}xNKn!s x*d@] ۲dHEx|0#hQ F&$-ݑjJ <.d\!)-^|3 8XYp?q%d=iY";K >PJ"Hz$lZzOE>OYLwLcJm}k;VBH.}ju*BZ_;oG~{3dx #;%mxMn b1Jf nllܪ/A3Oym2X΍1bJ!BDD4. dړoX~ЖkN2iG &Dnb2F8n׉=e+agnq(SQ)EmF TÅuXej q*\/v(Z1B-t7!$O_N}_yk\:u݇\ehQ^rs/xn {S]WHa`N EHE(c0K? +E?BpsƎ"=#j`1<wG4'_g%ư2R0 b z4k%_@*zCė}Ot􃁮g )odr(ߍWf)Kk烮[vR'-q4^qWbKixKj0D:E<זfcHVCbXdޢ)hG(k&QX+ :mozcU`1hiCF;kVJs-yin\ڮkZnqNFOUJsΫؐu!Ic_l8P-W|DH| 4#$"|e9cEz)c ^k9{{w_|0ƦrOPڶ.SOnt­V)kKo;%//_V}xMN09L NJ HIZAӪMNoc˒-dR^(~GJQ)}6`l ;Q:HΐQkcA0(,٦u2#ӯ<(1;v.rN:ą4W l\engD *}A? m"x]m=c̭;>k7;\z;RCRϣö\m?$z/7@%kPxOIn  #1(FK0d8~H^CRu讥U"@!DDp@4>ZPĈlJqB9%"(M"kcf-Ego䯿t3 X1K1X/cPƺ@qн-l[qc[4 |ʿrt@\c8#c,6e;_~TpjS* VשճnynPlė~לB}a W8:G;l[M>e1m9Ʌ4EXYtܜxAN0E]E?ז1qƁ}-C!m틮wrNr[!#554ΆZȳF%ijP6Q-0bF[$m0h$~#w\Q ~3lu.gLeپ{|DP<Keoc,E(fw'/9O׺> -C i~/LJ1q!%!dߌoxKn E笂yD';U,^ݮ9;{J8`EIFKJ9arh=Չ&hiA@i΄sN2Joc^v/[/?NK=L;>hi}řuvf^ ]x ̡0tWTa0q]ABm궑ހwgܿVkN\Re" ΟPREpqG'#.V xd2!goT01eaNS+lnؽ3-{uU<+xAn0 E».F Ij=Lp -$( MQE__O߲s$"W]KfVX+cQwF*bՎ|ΔФ{%N*5تQRjBCRRTx%D &SL()kXZAv իq2 ri^&Ha#0a"x,,C^ʢ~A`3Aryp?eHB`0;?| kUUunPrk⮳kofL{9ĭw/慨Hr =xEƱ 0@%oI)쏝( 0ڭzŪb#X!e&r_F$ EN\a(>xQ u- [f\߷Culf\)xO;n 9 *EkE ?ޜ E=%sPRn]bAΕwa`R 42:|Oub%F8nJ6d1MXȟ:.?~a8n&A @WeFqcpk+ .}3Ojܯ/~nm?z{ 6xUw|mK-ִstPw:Yr/HkxAn "`暼`lfX+2X8yAKR[a֓ ba/ ,#:BP;NM B8#E,ֹ2 ^ўP%hwnv"~FkU#" }3j۶Yhi),mG>RֳWT\[WR>yyӮ15}LGm﵏l}+G|P}ogxN0E{(Z D_0I&YĎlg /ihG$"0ti]c`0azeqf;& 4@ťSG)ʼn#W#IaG r 3\:)mCõM?pdީHBp5Ƹm{/p[} UcX| :0Mtx^s== n8+ "%kLE[|i-4~:CՇ維i xi\hoqsTP[>.Z_`_zߖؓxMn }yCTUUݦ'X篓^fhzE]Rch #jtV wʒ-V\;!c*Ad|)h䨼>Y"qRiNE򴋓#- q>(gxB@p 3H*2FKLDJ]ޗ?5!_涏+m 乳vZ9?hkJy[Ǎmk<k}HRӿ'?>?yx;n E{VA?(%K?cM- EnsNut{M k.