Lighthouse3d.com

Title: Terrain Generator

Latest Version: 1.2.5

Author: António Ramires Fernandes

Downloads:

  • Win32 exe: tgwin.zip (89K)
  • Sources (win32 and linux) : tgsource.zip (30K)
  • Example TGA images: tgimages.zip (122K)
  • Requirements: GLUI v2 (only to build the sources), GLUT, OpenGL.

    Note: you may need to edit the makefile in Linux to set the paths for your system.

    Features:

    Version 1.2.5:

  • Terrain smoothing with matrix filters
  • Version 1.2:

  • Particle deposition algorithm for terrain generation
  • Terrain smoothing
  • simple water plane
  • Version 1.1:

  • Added the mid point displacement algorithm for terrain generation
  • Version 1.0:

  • Algorithms for terrain generation: Fault and Circles
  • GLUI interface.
  • Full control over the parameters.
  • Two navigation modes: Examine and Fly.
  • OpenGL window grabber.
  • Save the height map as a TGA image.
  • Load a TGA image (non-compressed, and no index colors) and build the height map.
  • Very Short Users Manual (for more information see the Terrain Tutorial):

    Terrain Module:

  • Image: input the file name of a non-compressed RGB(A) or Greyscale TGA image. A height map will be built using the image data.
  • Generate: takes a width and height and generates a flat terrain
  • Surface Type: Choose between Triangles and Quads.
  • Surface Mode: Wireframe or Solid
  • Surface Lighting: OpenGL, Simulated, or Off
  • Surface Normals: if checked normals will be generated for the height map
  • Scale Heights: set the minimum and maximum height for the surface.
  • Scale Heights Apply: Apply the height scale.
  • Scale Heights Reset: Set the minimum height to 0 and the maximum height to 20
  • Show water plane: shows a blue horizontal plane.
  • Height: set the height of the water plane
  • Screen Shot: Grabs the OpenGL and saves it as a TGA image. Filenames are given sequentially, 3dtechscreenxxx, where xxx starts at 0.
  • Save as TGA: Convert the height field to a TGA image
  • Iterate
  • Function: select the function for terrain generation
  • Random Seed: random seeds only take effect when a new terrain is generated
  • Max. Disp: Selects the maximum displacement, i.e. the displacement for the first iteration
  • Min. Disp: Select the mimimum displacement
  • Interval: The displacement will decrease from max disp to min disp over a number of iterations, this field specifies that number of iterations. After the number of iterations is reached the displacement will be equal to the minimum displacement
  • Wave Size: Only valid for Fault-Sine and Fault-Cosine. It is the amplitude of the function. The larger the smoother the terrain.
  • Circle Size: Only valid for the circles algorithm. It is the radius of the circle
  • Sticking Particles: sets the particle mode. If checked the particles will stick where they are deposited, otherwise they will roll to form a smoother surface
  • Add. iterations: input here a number of iterations to add to the current total
  • it done: displays the number of iterations to date
  • Show: if checked it will show every iteration, otherwise you'll only see the results in the end.
  • Start: adds the number of iterations in "Add. iterations" to the total counter and starts iterating
  • Stop: stops the terrain generation
  • Roughness: determines the general look of the terrain, 1 is the default value. Higher values create rougher terrains.
  • Steps: The number of steps for the midpoint displacement algorithm. This determines the size of the terrain, so if the step is n, the terrain will be 2^n+1. For instance for n = 7, will end up with a terrain 129x129.
  • Roughness: sets the roughness of the surface for the midpoint displacement algorithm. Use higher values for rougher surfaces, smaller values will provide a smoother terrain
  • Steps: the number of iterations for the midpoint displacement algorithm. The terrain will be a square with ((2^n)+1) x ((2^n)+1), where n is the number of steps.
  • k: smoothing constant. Varies between 0 and 1. Higher values provide smoother surfaces.
  • Show Filter Options: Opens the Filter Options window
  • Navigation:

  • Examine: Use the GLUI controls
  • Fly: arrows move and rotate the camera, the mouse (button pressed) also changes the orientation. (note: if the mouse button is pressed and you press either up or down you'll move much faster than without the mouse button pressed)
  • Filter Options:

  • Filter: Select one of the predefined filters
  • Go For It!: Apply the filter defined in the matrix
  • Close Me: Close this window
  • The entries in the Matrix panel show the filter to apply. You can edit these values to create your own filters.

  • ‹ì}{—Û6²çßö9û`yÆ–‘Í—žíî¬Ó±3¹cO¼n'¹{¯EBjÚ”È!©~¤§÷ìwØo¸Ÿd«�%H"©Î½'»ö£[ … …ªÂƒÐóGßÿtöþ¿¿}I.²yxúð9þ"¡»˜�´èBûù¼…iÔõO>x>§™K¼ 7IivÒúùý+mØÂô,ÈBzúÖ�Q²ˆ22�– Ÿ‹¢YuÍæî $Ÿ#(J·Ü0£ÉÂÍh‹d71 rã8 <7 ¢ÅQ’¦ß\ÏCÈÂ&Ÿ´ÖeAž$î?—Ñ1yE©ßâu·.²,NÇA¸Vàh „G­?ÃY4ŸƒÓê`£düxà†?=Þ’¯iÉl26-«kt-ËdØFA̹\ºI{ ‡/Cý vž»¸tSMÕcß÷9‰ëÏAå² :§98ÃxwK6ÇftMËéšÃþ6*ßM¾ÐD3 dן¸æ^‚±1èš}Cïí)a1Ö=w8ØK˜³w»Ä—«;·ÅÚ4ò–騂¡ú_ç 9—´‘$¡i.Ñ`�Í‘åÇAçVêÜ­lL½ŒîpÒ�¢1Ò&Ë,‹·Þ2IAÌqÖ‚&wŒÑ/ ƒ@áo4fË´YâÞHÆ[t»ž0~L)Ýà€í®ÌÀ6ñï.¼d¥úJ¤ ÎÁeà%ÿíݸÐ[‘HcO“pI‘�0iP%ÔcbnRPµ¡?}:ë‚&øÆÐ�ßý‘MíŽ\k¼Lât"Y¦MÙÛµ(°w–9��žñ×îcwbúSZªêÂýÅqµhZÏÔu=wØ}컾A½ït9ñ—0¾£0¸l,¦©;u©Ù}ܸý�YâïfÑ——PwÞ˜½ïF.ö†ãöF%ö T(t�±Û¶1êƒllÓó½i‰ù<ð¹Â6Ò˰‡ k8p¦¹ØùÇ ‚J †5°EG­i‹(™»áØìÇ×Ç[‰.–3:vК0ˆ �-!P\QÜŸÆàÕ8‹$Õ4–Þ·z9 ¤+œÂvàÎÖg�¥ƒŒ^gÜ7kE[v»Jó” Â�N3™ Ÿ7ˆìK™Š%p²i�1ÒÛ«‹ £Z»/¢«Ä�Wþî1 àƒßÝ Œ}áSê¡¿ÍC ŒîtV…h€‚~Œ!⿸Ó�ý<Õ>/Ó,˜0ðtþx£‰˜~< )DE™›d›Ïõ"¹dÖÉy«•@k6éYÓµ Í®Àžn”+åÞé©Ç¬. ntTL€"Ô3޽0ˆµØ… bWšµÁºuŽE8g‚Š‹0MÃÏXüi!àEàûtqœÇWÆq¥ó’î„9LzÌã>,uUiØEc®�RO)��™Uø* ZV`±÷ŽEŽã8Çy¯²hè¸4ºòÖ`°}Œý8ç|ÌÂ5‘ÃqÍ1!ŸX6ïP2Uô©%læÂ«Î¢˜±áÍd¬‡ Ч×cÓÀ?wlÆ:¾º  m3åqÑDðˆs 2 üR‰,ãÙ‰ ƒêxÁ�EILªXš)×zyžX‘ ðë,DjE(úu,­by&ê�M$·V²¶äÖÊ7‘Ü‹’[ã°Sr0éûà…nš>ã3M\°€¢ò@À• 1F ã¯w¢à4˜-Ú¹£æf8s+ërQ•î ð¾Ütäp8�ŠÁÝ­è¢éŒËʹl’rl]˜+wòœâ.|Æ ¸}œOC[î NÎïnN·Mï¶Í™¸!„âsÕÔüèÙ#òþ"HÉ4À2)a³ÿ]P0,ÔGÆzQ1Ÿ.|ú„«)yL=�N�1¼elï8×Mn`2‚?`�¤Y;·Z*S–›=˜l{m½ßǹø7b—aI¦nÛv‘&ÛVÝäQI�[ö铘êÈ3NRjˆ Êú¼ü•wá…KŸ¦G Ä£’�S:UßÑ%³0šà⚢/T1ž›Æ"h �¦¥ÿ\º óx•£ÙcâÙ;‰lÍûÈÙCd!‘µ“ÈÂê¬=Õ™}m¸ûG£�d# “Ñ‘Ù_#3ýIý7&�™73Ô4ùÌ-à“« w'“¡·P�³¨ h¦ì�š&v!d‹Aë‘n0ôÝ�šŽOê�7µ`†¦¦ — %Ñ2Ÿ‚º-fC´­YkeÜùWÅO½Éö"b’Ïn�|0ñ½Ioú9ŸÄîJ1Mâ!õÍ©·‹·LÍçÅ»¨ù4HG“žI·õ6ŒüÄM³1áv<îì&GÅ.Ь}Eì�"ö–"7¥91~ÞA¶Ÿv‘Ú%Òm•»Æó9)Z'-f¥«ÅH.ý-3Ôd6i÷»¦3èZÖ CŒ¿²³×ë´ղœA¾½ÞuÝ\U,+àŽÊq1Ò²Œ®94Šê�®e »¦mì­]1˜Á–�¹†Õ³B¯»a� Lƒ¥ÔÁ+[É�™‘�5õä5ƒ®Ó‡ûj^_Pƒ:7­æ®ªíaWü_u}‚pºæ¨·¯z/ŠB¬óÊM ÜDûŸ,ç;+8P—ƒý-©šÙ5-ìñQ‡X²°C@Nž@‡kE¿è#“Énø‡ETà »ƒ½â1�”¸ü* ì(ËèC úz@ÙôÎ^5áµ±PÊ]^ï© šÍ2û=I�®Óƒ¶HÈ*)ݾUYAýeú¥Bí®iZ«&ŽFh Ì‘µª¹æaˆƒt_Õ̹DÝcX½«{Uï Ø%Sªû»?Å0÷ÕLCÔGˆç )Mw×nXLcLK¦Í:Û´öªQ¾F¸»Ž.HÕü°x&èRoKïI céÜ Cºì]‹‚8«ÁÁg»¨Ø2 „‚;ׯs2\c\#Ãňç5Ü$!†î8 �o#±I°ƒÄsG~óõÞŠ>PXºµ‹d$¶nw� �¤§} ›áhÚÂÍ–‰ Ý¢cÿa D #]pVDüÓ7¼~^Ú§4†–X¸ìƒ?z†¢´³­4üNâUͪ²[kŽ–j¥_.®Ùœx$ÿÑéDÜ 3ÞÛ8{I�n¢Z•º“&С{@4\rìÜÎÜfw*šYøešIäß�5.ÅJ+Á§ã»õl¶¸ÉÖ þ<æË¿l¡sLø:éF!rJpWþY—øÁe±LAŒMˆq…ŸJÌ0a;³¼ÉÅÄâ½å|‘ªådÉRÚQD›ºH¥¸¾=ÌU×eêV¯VY©Ò¼,_�Äé]iÏŽl.ýËSÁ޼‡Îy¬2Ù­SpæëûÕØ1Z�b&Y‘OA¯àU„‰yô ^êX´_eÙýuð »Q¬¨ª†õIEEîkŶʺ6çõbÛ4b5ÿª¡E¡­xë²]+µ•o¾�]ƒ)/¢àÈÇüþs÷` ©¤²}8¤’ýVãîÕlÉ!5Ô·0‡Ôv�ݹNJ+[£ƒêl`£ïÊ:–ë`Õ¬cÏoZe+wxUûlŸ´{+?Ü‹ÍkÀ¼º­kÀ¼‚�kÀµ¢mkÀ¹�MkPËa¶ìð «Û°&u5±]�»ª–ÍjªjµlUã¦T·Q�«Øj›öl ì;ئ¨·ò¦C=Tl©JUÇã¶�„ÃÖ©©²­’wîž‚½JÇöïC¦gûù«|¨j{â JŽÊx`}cá j7Ùm­3ß^¸‡úrV»t7îGÝ�Ó6;ÏöªfÅFQGy§à zʬuU=O¼³–œ‰‚?Û+Pž½Up\ßcPáeÛ ò‚*ÝÁ½… Y9¿ëƯU<×N m;æS:$½—ö”S^Pš=åç„Ä,΂�ïÛí|Íì*ÖÄyÛ#~é(g„ I�@»hÆÏ-ÍÝ`‘ŸVú,剭÷uó)açÜNžB¿>]{Km Séð.uoÎŒÊ'ä´Õ9�;÷VÎÈ,@òúq,àK¬ºhÀ¶³÷ôˆÛ%zÊæ#àuðØ¦¸:?òyÊl�ŽÐîe0cüÉf�ì,Ú�;¾ÀSÆÀ“Æ®——ôvK“VU¢8âOŸ‚Å‚…dì}:šÜJ'-<;(Ž4³”ùYH–�¬NG/g^[ìÏqé\ËãÞ 7èr¢=~<±à/GbgSO ü{\œAy<L‡ÓÑqqÒduJœ'ylÒ� ä·Š ä•À a¨ ìŸTWbcí¨5nK¡ºµoeeïªßÞZ¨výk¬XmÖÌ�mV­mKq•Œó­ ®S›’…J¦ù�'q­úÖXpÕVÔW¡Mâªõ,t<Ú=qU¯ºõmü+�@ÅW îíÖn‘ŠÛ ü ùÌ ^°öÊ�›¿Ü‚–žJÜ7�«Å§©—1{}eë˜ÑçÑ$W1§‹%Ï�@7Vcš€ýÅÔ,šÍBÚ­L)lquzn²Y �%Šò|ò˜5gåtžîo p}óܰ 1®Šw7ÜÊ2„»C*V$ ƒ0`^n“Fá¶lð‹xRëc·"��@féEì´¿gY.o^G¥¾IÉ–’[¤Q{˜2ÓGc—…ÀE(Õâ >Õ\¼€�C%U~ÐQwQŒoÅp$ÑBÊEâãŽÒx,I2F8‰ñ~ST ®·*h‰j‡Ëàž€Sãu$;ˆ*ú7bãÍö#�‚{æ¯a¹â ½uzfëƒÅ4ÚK*«0N ``ÈIÔ'\K[&ë)1 Q|Õp-¹jåJÖK/–¸È‰X?Óš”-lé‘=�ViY¸¤Õ›McUÑ`Ek¶"}ÕxEæšUØ„"=‡ÈÊ…"¹hvÚÔú*àb>É^ò’qñôµ¾cËëݾœÌL,榮znÊœšrsÈ�µ`p3šìášãng+Z‘¯À¬ÈÉ‘‹¬ɵ‰~Ø^áf�æ*Ô#¯�gæ�ÕÅ–»©ZeTS È·ö‘=u gp|çêÅb áâ0Äö[BNˆ6Ù_Ý!�õÉ‚šQÑOÊÌ-o3—ëêoÖ•¯?Ìbáç!’öÝP›Ì”&t“�-¯¨Çæ&1¶ ÄìY9üæðÐ]—¢‹)ƒþßÃüƒ>i�UzÕ{Ã1²@K›Ð0ºWQ‹pËÒ´Ej²‹G.îjoÎå¶xß7Äq[vÖ[øBdIö.WålQ²Rð‘—b:ÇêÌø›Æc�ƒGbÙ’ðÛ ;!�ÂEE>Úx%‹ :DY`º Ã[yMcX¹ZðWF ã¯ä2Ä7u¥7�7óîô$ … hlõæ"}ˆ³‰î'QìGW M 勦²ªE»8—=Áî–ZPÝrž| �3Ý®òÿ±‘iåðs-„MQêS§¹ªÙ�•T”¼óÕ—²4mYY§•K•Áì+ÄÃO&¾"t••¿TPÁKŒ‡­üËQîf“ï¥ÑòU„\±ñÐðµÕ÷¿cøöÅðUéW¡M%ê,Y¤»£gäåÂ'žë]PŸœ�Ÿ“gGx|]\²À[rËØÆ_Å!~vù�"OÖy>‰Ãé:*‹  Y]g–¯›‰‘@,l1‘?æWhqèzô" A›;·å ITSà.F šÄsc9‹wh å_etxŽX=ëH–î”1®¼§pkÀâ™Ð¤õµQm^Y§t—_ô�/ñQ0ïJ4üÑîëlÄž¢²y»V* °ìm”ÕË'ìÝ“]<ËfŠôƒ„ß&aÚÕñÚ�Fuxs¦ÂÚÔè7¢¿ e÷wáOÃÈÍØè 5xñ«€LFãúÖê¶]Èò• Û·Vã$HçXà�ØUeÌ‹-US7tcsKuui^­ú•%³£J·‰ Ïi´`÷ˆJÜ^úAöó»ÕW›ú¥«Mß�_©&(“Äž_Äß‹Öú�²BQ"]*û+ôÝ[” éë#ݬT溟ü=ÈÈä†üÀ®’%¦n,ÝÀâþ<çÛ ÄÅ[%Išx+à>¸¾%î …|_´šµ€ç}†nòÓÉ 'Ò?§ßz!‹8ñ\-^N´‘i�cØ7Mk`š½~ë¿<Äj‰—Di�í Q0*7sOë4�:t "Ó½Uø‘W¨-ù.\Â�èšœ³ÍôgG+=¼°}Ðå ¹]%âŸÍcÆ�©=µ¦þñ�¸ Õ„È>Å[wÈãIŸšÓ�’Ž{WÒ[[æ¨ÿÊ>F°ï/Ôl•´„ÿw—âmTkìó7Õø,C]·¸†8¥óÚ¶-åÜ­>–„zæ²}'•4A�š'²×ÊŽp\‰Ka'à·`€Îï�­· '�áF ˜Á…)à"�F P,Ѿ{0>V à§L }ÈÞ?ÝhpnÅò'~©ôÃçì}B¶îÒ¢I%Žá�+¼(vBÙírq~á’b¿ó§d§H)~!+ãÌ=£*¦¾€9qã)&@lÝ"8{á'�)ÄMs—™³_é/»æT©ÅoÁvóVlÞµFÒ/A¬¡MËíÓca% Ûu$‹rëÑ:]Kx~äž>xð\ÌšóšV[£d›j¡hÍa�„-â&�«…îm+Z¨ÙÓØ·c”[ Püà2ÇQòܤ<]o1êyé\‹ÈŠ8Ï_mÛòJcèÀܱyyx[ß>)šCÁÍ»È]�î(ÎaæG€÷ôÁs õdTRø¶#2ßE wÃFHÞóþˆøêñÝÌÅZ…ÔVõ· \«ÈY°•Axî¹Ë¶(K‘I¯c<|S7LEuÏ!ò[ä g± ‚?´|å½Cz9#xá:ý“^YÖ3-ü/8óË OZY²$àd)ïÑ7W6S(Ë0Œ#`Õ"ü¦ö–Iç0,˜ ã§ÏñêAßdÔ÷ Í´u«×#¦¡œžf9Äràç…Ów<‘e@’È',?ÕŠ'^ào–ãåŒ HÒ nðï÷¹A̾ñÿZU,–Baÿ§tÞBEkDø/o¤Û[ßàÖ{ý‘x°m}äXÄxmõúIJ >ê�B³ÇJiì·½¿0á�ŒŽÈt�Åi^[Ãü6 TÃÙÛDÔâí-¬IyšÈãeô¼ŠPŒ‰€¿¿8oŽ&µ3§3´? â2ÕpôÑÀôö—–UáGûiiÌoú¬Öéú‚ "7HèéŽÀ q³±Ã<¦2ãÁ1·ˆ&L¶‚o¹­Úç�Ðgý£`ñ’ßú]Á9IДJ6º÷hY¿ÚÖ¯¶õ«mýÿÚ¶JqàšQ-™ÕE˜Œ¦²l_Öl¬Ú–¡l©H:uð2 ò\\-ø„’°M ¶3c�2U  ÝI´ÌŽZ§/ð7ÌÏ�€­÷ìbo:D½ TµÚl™E0vª~ŸæbŒ'1p£Lx)VícµN·[`&œW*ëkÛÆ<€m£§�L&£�n {ž�W7õûš©›¶M}h‚¡Ñ‡ð¹¯÷L絉j9²žÞ�Ú›ú€ÀÍÑ-H- I{üsªqŒÏ`ü@×ûºÑûfØÀhıÿœ²j+vNŠ,Æ­/WšŽnö-�ý²=Î¥?ÐFI¤zyû@¶ á픇¦iê6ÔÁÄo�–j`MÞ¬!ÝÊ™!%+¤(8Â¥»Ÿ(£Íù/˜-®ÝÓ\¥Ÿî =gØ»·ñ0w¿à~O4…‘ñ†}&Ñ”}Ý–m!_GÈòyÐtˆ  ønP‘GSÕ°(¾�î]A¶reà„—øÕwUüšÕÜßHž…i¨å�û‡×ç¯Iîì ÈgQB¿ë¯ÃúO9¬­¾i:0â ¦¸ðkÛ[ÇÈ[ABÚ?ÅtñÃkè «ÈIÐÞNåøÕê•#äm¸ñ›õ(ÿ^šl…þ £"猪¾þÁr…)F€çH5Üë�O›íòÍIÉ AZ©ÝsŒC‘fj C¾ë» ã{‰¨†­á¡èf4šS<þ³§§tuûÚ¶ \ãNŒ½vçqÈœe%°ä¥(Pµm9‡¢ÆÃ§4 ~çgcÜ…¯±oó‹£=ªðN.Ǿ×äG¹\ í°–ü4qgì‹ ·hÇÿù_ÿ›¼4õ­€Ó;_J³e¼U’Âvž#Q X½ƒÅ†ß�—alçîVg‚’¸õÅwøÀb8Á‚jqÍw^æ[NZçð`cϺ9ö[A²~ÎÇzõ¡><|¨gI´œà‘¦(bÝž]ð›a4ÛnñËeÆ ÁHg…j€·.~¡ÝQïIg‚†ü\} ÙÎààñÍ6�q7e»­ÿHÈ{$©ŽlÐ;Øo¦0‡¡â�6˜öérÁŽúmÇy^`6ýU^ 2jÇ™£^N@í@ßvô|ESc�›£ƒõ0šÏ— qPL“ŽÊíµ¡rAòbU�œœÖ¶ª½ÁÁ q³, &K0¬—8�ìŠT^ä´ä—œ¶Æ3óAnx:ªÒŸ9e#œ£ƒƒè';(½äwŒ¬†56U,¸Ë#Ô’.oEËâ:‹�R‘êFÁ¬ìà47cs/½Úe-³`om f<�.…ÐZ�¦Ë`Kq3áÄ5ÐöÖÚÐY¨¥_hH³Š Õœ®ÆÃCü ˜vFÚU”„þV|Cò+ÒTÇfYk&¿s_Üw†Tµã>Ç÷1B‹¶B{-j ìä‹÷Ü�ß5¸#xZ‘r¬)ÁëZIJÎ�ÕaÃ4ÿþak€E QAдuZÑû„ÏZ×tû*ù–¼ÅB5ÐÆØ}Jó‰Îêèã`ãŸÆQ¶ÛyARYop°ÜðÌÙ2ÁƒÚQâ ˆô·C|ÏiÁl´Õ±öíƒg.+Nø®‚ì‚ïï>´8õCjò#£®±~z+”øäE Ý<‰…v·˜T¾Hšm“õîïøÃnZûd¦n�¿n�}ÝûSn�™Ã¦SeyDädìz TW#ÅŽØO"­úÑ­QS/#c1GœD0¿I#\zÑÄÛ<©úŠ‚Ñt!#*âeLÅÊ{Tý¦Á¹Œ*Ÿß°åY˜xkHÀøJ,$´vÕA5ŽÈePªÅ÷–ÙMØL«¥öCÕÏdTå~“æYåþ+|jí¥uó>ús÷âúÆ2ú{±ŒþºÎ2ºÕtù§ÔÉ¥…ôFKæ£{ÁQZHÍÇ(S{ŒóÊË¥béAËWJkÄ¢Æ}è j²ùR£cÞ‡Õ ¸‡,Õ:��ȸV»!l±N·ÚaksM6ÝH*Y”í»"‡ï4žœ—\»›Üà•…÷ Ok"µÆI%©mkhznÁé߇Œ¤%A°´¹S—I°¨çÙ�þ½xv¶¸rêlݯ¦?wúMªJáX6‚J;S¯xBm4�—J2›d|)ò}q µŸ&؆WîR¶J¿†I>=†uÖ‡÷¶(ùò"YB cod”÷á…Ô² öK³ÒÑ}ôº´ ^{Á»×ø¨bÉ3n®º¢œëªÕeÓk|Hq²mÐj`³ïcš»�­´T½�°Ášt¯ñþTi‰`µ*]B(-D“·õ±ÝKL†kÒ h¸}²ûi€±ƒ&–¦KÈןk ¹�>„ì ®òä+åù‚Ÿ�`V±0þMq¤°:Æ{‰ÃæË0 $�½aϵåÕ¿½ÂYî&A04Ù¦<.wãÔö,�o¾_×Àtö‚ãÉO´›ïÿ�“É�õ¶Ù{ýûè¹|Cà€Uÿ¾aÜã²ÿ2+¯ùÿüþëzÿ×õþ?÷z÷6ä¡ÀWñFB/-Ö¿c�•-Fß<F°² 0YÌnÈ Õ¡4ÛÝ”¡€ˆÝ$_×¼C]±%Y¯»pctDos"vH˜±åY—¢ê�›Ed2dwÌsÁ½È?Wà4Z �|¡7“ÈMð¼ÒßÅÇÊ՚͸UÕç 6Ú<ºdkûün@Ö�â8U/_É“7Œ–õã™;§‰[ùÁ‚sýKwáQ_+š0¥.7l}Sd’ô+‘YâÁC³ªpù,ª‚|ëL«ͶUdüЋðÚæH›º‰ˆÚÎ …œGä•[}mhÐ콉u0x9&0Þàçêš�'’°Êµx™±�›/ÀÅïÝ�Q@†²a€Ô�V£×šíšìè5±Tî¸:Š4l¶7Rr Q ®CÀ”Muá‰àý+ÕGãÐ8ØÔç÷`1g½œÔ`ÞƒùÁô†ïœ"¦3" ¼¿�¦2œÃåqåÆ1¢)„"êJƺ—±]VYµÎÖPÚfïÉ &A6wcöݼ(�ïØ#y…�Õa8U²¹T‰æ—’9’,¶7%PnÆÖÞâ$úL‹�2Yhl«ì§‚Ï ä”5äÙhî_Rû,‰¾Ð¢[ÏÙcÝnmö¢‚ cš€sàçiS 3_ŸŸ��4¶ÈvÎÒªjöžç.=S©Y -;,­a³WúÖE¸:ÒÍ¿N‚ÃD÷(|bº¾zº:éÏ ð —®±†^6{e¥¼Žtð²³90­{[wÆÕ_mš,Ól9×¼eòMÙ_ ™¼âÉäŒ']…þº ý§\…6‡MÆ­rdl¾ûGlƒ8M @NLµ<2�‡+³vƒãO{ÔÌA“­JŒâò�ÀÃWò“Èõ.4z�%ø%žbѼ›¸O 'Å—ð©tt8/ÂVyÞ²"5šÓä¼CÕæ°mñynw·ãÇm�4­«6 £)ë vN‚Ï.Óø‚&û:å=/Ç_èãsÍs^®FÚœU¨Û°It]µ-ß!iøÿýÂà‹7X+¶ Îb£9è5˜$Um„˜íÆ/du ß—ü½0ˆ5þp{ ÕÐò« îßR5™ÄWnPÙTi>ÍÜ Ü×¢²Í"ßóB5šÔdº¤lRâú0ýØb·pΉùûìTà÷åwç#»özúÉþKøo öÆÎ®É©Ò:r_y·=R¯íÎ]S_æ;Ufm¼ÖQ™¡ù ղؼ‘6YÍRBNÁ5i‹(¯ÇÄQš“�jQœsq´ƒ­ùÒñ…AG~’éê4ྴ}ºLp_´—¸yr _ xÖ½©„|Kõ»ï¢vMn‡+^8 ù.ˆ|ÈN¼Éö6ðØýÙÅq»ê/ß59ŠÎ}b[“å„ò)šä+WÒ«U&ùiRo•Êî7¹�LÈÉÍ¢9Är^´Ä›�$D/XŒTžQãz4«9Ð^Pî.ir³BòÉÃÄê:m[£{üF‚ì‚_»¿¿®Š}]ûs®Š9Mv©¸î_‚AŠð{h³ì‚]u€Ïä5{®1(í泄€}³/®üûK�½€Ï¸°�Ïu€4˜Sr Áb�/q¾�²õ7¹×¸$ˆÕ�€Uw¬¶þk i²ÅÍ‘°+90ŒJÜ›”½Øµàû,ïโ&¯[rl¶ŽGŸðw� âI^#4UL-øUÝiÑÐh�Ï%ø¥‚iíž6ÖID•A¸P%®÷"¯)²QƒÅ#ŽÌs³9ĆZÍAn¨18hEâ»hÓ/LÜ ÖøâÃ1tø—ï�ç¯D…Á$åWºÜñRÔ3ò¿ºÿ¯îÿOù]ýêËá2Í¿_59»øÞÈH\µÿrž·ŒùÕãb$ß½ðšª>·0«ŸõQ4b2xx(m4Ì« ÆQe¦€¥ÍBvYÍšhÅ”³þà~Í®¯ÙÒ1múqU[TãàFõ×/­ ¹�_G³mø «¶ˆÍÑÁß0§À:çXq^· ,æh¿Úþ¯¶ÿO9õUÿò9õ0ÁxÑ‹›‡•ù¸À{^^ÔŒ'GÕoàÛ�&�©LW¨ˆÎåŒfK�–5<ôÈ•yÌÍ LÓ¦AH·Y‘ýÕè|5:j£cè�8"Ù�’Ñ‘†F»€*o¼ï´nwdP÷`zlcTy‘L�,îÇÛZÊá$dð º"›Ç>øD¶F?yn�X¸ú=jøåVøòDã�HÜŠ_&¨oöj\:¡nFºL¦ ½\o&ãy�h MºŒÂe)°?‡ÜwôRnÎ9/€_öú®(P/ UûQÑq ÖFCŠä¢;ĵXÛ:c•]oÒ7êU^·VÍG4tŽaäúlAçüÙkò}ž a¨>@G½Coñð�Š˜ßopö9Ï–ÓéW7ÿÕÍÿוÌþ oÃ�¿�R\qÉ_=÷[~_ÇÇŸ1 6�ê‘Ä–‘ VmøË¯µÒz"ouHÂÖmò ßÑ£¦Æ%µvåX} Ht¨ì%üÿ¾¶3(]j¾º3í5§$00Ùw…�W>ãÆ¡tÝyÝ+ÕÌ~õMª--€°!JZÛçQrÊ¿ÿ*…<| $§ ö÷<6Nùwž¼` þAõå�ò«(ùR|A ûê“b½X»º†äeç‹~åt&û¡00úõßɯŒ®º”{våXl…#1-»p3¼—å‹6Ã^æÀ9f¶w??Z¸ŠÄ Šá9~õ…Ô¼…)´ :$€Ñ�Ó ì›óOSJý |.Šç»^ž—Í óF[®Ld�w¦®àš€9Inñó9TZâ‹ œŽ}â�—ø‹4À×EaÔz<|ˆò¦æ4PÌxZŽÿÂ,çfAÅ vo �t*�ãÎ5à(N‘÷¨»(⹋'IúÏetœ‘ %S¼”HñšÌ,äR~¸Öp^ÍJLEEh7yããÓ3FÑ—”„ÁJQvÁ†¶›òZ@€$ÈŽø „NÞ¸7€÷ÚRê&Òûü(>}ÎnÏŸSÐE�Ø€"Žâtx¿0|åe� #ºç¡;¡\åäˆ+@0ÓesEÞ”sVÞM6ÞK‹x èobšCØ@Ð4-a6|…Àð¤%x=Áëȃø¸E.Ýp ZdáΑS‹°ž+(±V†÷(ü|²Ì²h±VYºœÌƒLÄ€Œ4g±+¦L Šõ Ê?0¨œxÄb‰í¤—tù> /ˆ×Ó0ø´Œ!q†ž6ê6Æd`­ fßvØGøŸòG"óÿÚ*)Ï­QŸ±p†„3ýý��ŸÎ 2²uÓêå¿X*1Rü)’ð#ü‡Ð×êdžú ÏJô ‚t œs @¶Fºa9!uúЂðÐvtÃz#V/üŒðgø9zoÐÓ€ºa²>ŽE6F¤,›Ój"i_Ûö@·ì!±†>ÎlÂCBíÑF{}!ìÄ ¿Eð#Ì,ˆ¢�ªø‘«|ÀÅ4�Y\ÿ’íEã%çÉ–úÆ'³ˆ�ÙÄMH�j »PX$pXN:}¨²„4ž»øÄ°¯ÎÕ¬V¹j"޼¹¾Ï# LüÄhQOÑž@c›S‰[æÎ>ya´ô5»Ç‚¸^XkÍçøô½;#gH–Ô:•Û¥óÂÕN*¹³#Û/�£“Xi8Xø/ñƒÓ�âs�ÿÁ¥;³EÒì‡Þ}’ý�ŽÉ0ÎŽËÆÆÕñ<Ò6™…ï´NKé|^¾ F.Jâ €’îG?4è-ú‘>8}g0lËm´E®—´-Ö”Ú"§×n Ìß+L0›Í°«u ^‹$~‘Rmq½å>¼–JêŽ ®9Ðû}s40‡¶1öR•ü¡$sévÍZMÈÍ ®xľfØ*Õï5S©â²öHu[#fhûš1PõF_Ù–Îð;6ë”MUb5’v¯À¿šÖ> Ù:û‘;=òA“øŽW)‹^$ÕÄîU°9 ÐÃ&â>“%}Vh´LRZÁDš–©Y5à±&`ˆ,–,JÏVAVzÓ}ÊÁj”„%Ô†=…8õù75T2Цa©Ú ô©›Î(¯�äJni#¯vc.ƒ°‚9T©»©t¦ûôý{zùãkYÛYB]؉{�­0RmU`ªýêäy¥2ø<­&þÕêÑ>ü}e(©t¨ûðçËS2~yɪ~v7 ]ÌØ1ýýÆRå’L¥7ÝÔ~võàKV•¤÷Rjè©fU�ü@…º‘'euÊÆ’%Ôξ:mo©Ôwµ+…™«c �ž10kS_ØAæ¨ó¯i«ºŠ’;Jó¢v§0'7{ÎÈ⪮� >�0×WîJŽT5.­FŽô‡·?˺�50“ª2G*�¶*ÎKƒ·X‰4yBM¨ŸÓ*s!ÓRùK«ÑôßÎú‡,^|® ú X¯Š«¢XKé%÷¡þ;«RÆÍSj"/$ïUf•�¶ÔNÒÔóð æŸæpV#i;n–Pö�[aΠT’FsÍ7P¡,l|®‹™íòUÐmå TO-ûº=4¬¡Ù¦£�5ßXl›+ΓjBÇí#¯‚o±UfÚRzÄ}f·¥Î^ˆš§4@>«€\å-¥S´,%ÖkÏ*�ý¡X­Êür¤�j‡¸g@ ô/ÏåAY$ÖlB|qÿng¯ÀU °•îqߤMÔ)OÛDR]ðALÃJk_¥è¶ÒQî³,y¥²uÉÓjã¿v+,YŽ ¼ÒwîÓ�·X£¬7,¡.l~ì¹òžÊ ÛêYæ>¥•–´F¤ÕÇ?KÜù÷Ú+LFª[íKmݱ¬žÝ³LÓêo†\Rͤݗۑ'×lJB]~uJ…XFÙêyçž¾(j•;£H¬Ýq•x•UeWTœw®î,_…¼EZMÐüt³é(Ç®ÚÃtðÜ~Q' _iŽH«‹>¦UL¾i¨"[ée÷YM|=¢4af 5q‹ƒd•&û¦Ò_©,¯¶—å‰u›�ß’P¥ ÕB©ÓÈçõÊC¶H¬ÙˆË*릡R}G½Ì»Çn²³û’ÁÄçÚ˜§@U‹N£iê/ç¯^Ë �ϵ1Ç0�T±°Óh)÷—󷥕\|®�™Û$ö^Ë~Q�RGé[÷Ë›¿e‚ï ”Ä^$×lÉ�T™‰˜Êm^µ_ݳÏû+�à´DÚãe)ü¬;’ŸµxP<çÇFÊÏ7ŽáM£(˹=ç¥|¼l`ÍdCr‹0(üpV.±Ô» s—�Súõí+Η#ö`F´í ^QËÚ‰Bqînýì °ºá'VòÓ*ÖN˜­Ó'øù˜X†Õçß«-õ¥8ŽCžL–axL¾[¡8_º¡ 3 xÜŒâ[)–•Oã-“o8æo‘û¥t’R>SÉE,�Ä|ø<õ’ .Nº�ÿ[†lÿ�j¥ÐÄ[|½aJ3ï¢5þpÛâﯵÆ-?ò–xãg«ÛºÂ[†ZãÛ–»ð6àÓÜ…2ÀbÜ:zÖºëÞ¶Q†DåÌ­£«X{¦Ç1pÂÏ®!'áOââÑ2æ¯L­§¯?Çár}»‘ž�vÀ”¸$LNôì·ß¾mëßtZï$”ü¾Æ(‘šá~Hhø?O~’i†ÑÕo­�­=eôE¤åòëù‰¸Pöã]·EÝMÈmJ“Kè€KÚ‚\:¼NøSî,töG×ø]ÛŸÝklé4˜µ8%¾|þoîµþ·åD?cí[–�  %Æd•„‚αä˜|øðô/ ôúi÷é_ž~ì’Oû­ ¿ýÖyúñc·TP|]̪ä_°TQì+öq£h°Í~™znLÓ1ÁÓ‡Áût×9æ WŠÁMoIo5X<ñ ZÄiè&”ÙMË} YA\¢Žr!}N¿åÂ;yOÿ]{óæµöâͧ³¿½óºuª®9`‡T¹*i®iâqàGø5:8rÚ�Û t0µIàe­ã`Ún±+$Ï…~€ñ!ùðyò¤åúþËKŠwÀ¤òÄlþ-A�ÛK˜Ó“œXŸDþÍ1Õ×K´[ìZgšà G­n[B@Ä”X¬ ÈØ—¢)juî:ÝÛ«\Òñ#žT¼¿Ð›Ý|:�.éÖwwmèÌ•8•¢dïJ}Nµ �F �Æö—Æ,~i!9!·-þF®0Qÿ|9a_fØ£u[¸&Ò^£Û€‘…„øUP&°Iéͦ­ˆîŽ=&ÜâýüîõɘŠF•tRéË÷™&�¾0ñt*ÓÁ$¢š^ÒäÄÖûºÙRÊMV×?Jœé<Çaê†ngâÓ9 D I Ð’Ï�¼ðž„fVÌ�ã0y·m˜Ë™¸)ý9Á>)Ü»~Å|;{—_”Iècxñ‹¡[Gëz³°§×Þx1ƒ‡ôrV“”8â_rFxà¹[ø½[´Ñ—•‘øn“l°ðÂ¥O™ø €¡ÐB¹WûúzõîN¡L\NóÈ_²7Žžáéþ %ì-øí„IË»Ì'ÏŽ¢óx‚›Pzì&)m&dF³—ü®îïn~{°Ù1=ËW‰N7:isk¤ºŠé¹ Ð�Þ„G¦h ¸¢ô’«A×íܦ{ƒš@<˜\oÇ¢õ ký¶ô‡¶?§Sû·å”Óß––aøð³ïxJk+Ù¤DÖùö‘9~TfëÓáêó´ßZÏâL$‚Γ'�Ö‘9ðsâðÓë¤Ï–ô¹'}¦júÁZKœ¢z‰x-ÅÚHém¤Ðý| jPcìa`E¯¹EK�‰9u½!Dy×®ztºêQT’DŒ0a Ì•>�B„ë·� M�¦ßF¤Éa4qÃsœ'>yAüBa0? OIò-Ž®Ÿ¦Sþ.ÑSè¶m]³gtÆ…�e¯šRajÛ-®ø­N5›ÙVÐù–å·º·W0ÞQוPYxÃc±ô¤1SüÈCsù#˜%E:ÎÞOZ}_÷ˆ¯É \.FwÅ€…q%/]4|'§·)Œƒ“ Ì#e¢AÖ+‘%h¹Þ†�û!è˜LÇhD¬³�'�ŒnQ_$ÓÁ™Ó…†/#ÃXºsuaØÓ“[fAØ bкîêéåµGãì 8lu…û6‰æø¬ °c7.N¤À3÷Tönka–;„N‡EßüzûÖIÞíÐÍ­År>�X{•¦^çÉ•Ûy.Q|Ó7œ¡a› ÖºìË:EÈ©’OÊMÌ2 1>°�À-!æ­Ú •*òÖRMAì“'ðCt0¿ØŸ%ª¨¿�ï¬ÄÝÂ/}‚ ·[ßLõ,:gž¶Ýù¦ ÖœoÚé.%š®'?ÄÒÃGý3Ì^Ú`s€ôX«Ë=ÖßÕíÞ" 1Ÿï~v¡u\ïr‡—0r.�¶¢ymæ"øÞÂì²ä¡ÊjØ\F�ßNôh1çÍ<ÁÑ´Ñ1ØM`<&µwhø]LRo"é´�v—]¯CìÁ tˆªl ¢óâ�øÒ,í¬ȇÅÇ ?º«$}5HN”©Ož”Êw¹ÛBï¬,±ljŽ«ü5ÞÜ1gÇs}$Q \u{ÿõ¯6Œ~ÈbQ÷¿þ¦M—âîo“v&?wÆ™.bÓ'O2=»ÛH'ž óÚU:§³>½kÊãªMD$/ïð'ë¸øy‘ÍÃÓ‡ÿÿÿ¸±B³ú-