• Main Page
  • Data Structures
  • Files
  • File List
  • Globals

/home/dko/Projects/mobilec/src/agent_task.c

Go to the documentation of this file.
00001 /* SVN FILE INFO
00002  * $Revision: 517 $ : Last Committed Revision
00003  * $Date: 2010-06-11 12:06:47 -0700 (Fri, 11 Jun 2010) $ : Last Committed Date */
00004 /*[
00005  * Copyright (c) 2007 Integration Engineering Laboratory
00006                       University of California, Davis
00007  *
00008  * Permission to use, copy, and distribute this software and its
00009  * documentation for any purpose with or without fee is hereby granted,
00010  * provided that the above copyright notice appear in all copies and
00011  * that both that copyright notice and this permission notice appear
00012  * in supporting documentation.
00013  *
00014  * Permission to modify the software is granted, but not the right to
00015  * distribute the complete modified source code.  Modifications are to
00016  * be distributed as patches to the released version.  Permission to
00017  * distribute binaries produced by compiling modified sources is granted,
00018  * provided you
00019  *   1. distribute the corresponding source modifications from the
00020  *    released version in the form of a patch file along with the binaries,
00021  *   2. add special version identification to distinguish your version
00022  *    in addition to the base release version number,
00023  *   3. provide your name and address as the primary contact for the
00024  *    support of your modified version, and
00025  *   4. retain our contact information in regard to use of the base
00026  *    software.
00027  * Permission to distribute the released version of the source code along
00028  * with corresponding source modifications in the form of a patch file is
00029  * granted with same provisions 2 through 4 for binary distributions.
00030  *
00031  * This software is provided "as is" without express or implied warranty
00032  * to the extent permitted by applicable law.
00033 ]*/
00034 
00035 #ifndef _WIN32
00036 #include "config.h"
00037 #else
00038 #include "winconfig.h"
00039 #endif
00040 
00041 #include <stdio.h>
00042 #include <stdlib.h>
00043 #include <string.h>
00044 #include "include/agent_task.h"
00045 #include "include/mc_error.h"
00046 
00047 agent_task_p
00048 agent_task_New(void)
00049 {
00050   agent_task_p task;
00051   task = (agent_task_p)malloc(sizeof(agent_task_t));
00052   if(task == NULL) {
00053     fprintf(stderr, "Memory Error. %s:%d\n", __FILE__, __LINE__);
00054   } else {
00055     memset(task, 0, sizeof(agent_task_t)); 
00056   }
00057   task->agent_variable_list = agent_variable_list_New();
00058 
00059   task->saved_variables = NULL;
00060   task->num_saved_variables = 0;
00061 
00062   return task;
00063 }
00064 
00065 agent_task_p 
00066 agent_task_Copy(agent_task_p task)
00067 {
00068         int i;
00069         interpreter_variable_data_t* interp_data;
00070         agent_task_p cp_task;
00071         cp_task = (agent_task_p)malloc(sizeof(agent_task_t));
00072 
00073         cp_task->number_of_elements = task->number_of_elements;
00074         cp_task->size_of_element_array = task->size_of_element_array;
00075         cp_task->persistent = task->persistent;
00076         cp_task->init_agent_status = task->init_agent_status;
00077 
00078         cp_task->var_name = (char*)malloc
00079                 (
00080                  sizeof(char) * 
00081                  (strlen(task->var_name) + 1)
00082                 );
00083         strcpy(cp_task->var_name, task->var_name);
00084 
00085         cp_task->server_name = (char*)malloc
00086                 (
00087                  sizeof(char) * 
00088                  (strlen(task->server_name) + 1)
00089                 );
00090         strcpy(cp_task->server_name, task->server_name);
00091 
00092         if (task->code_id != NULL) {
00093                 cp_task->code_id = (char*)malloc
00094                         (
00095                          sizeof(char) * 
00096                          (strlen(task->code_id) + 1)
00097                         );
00098                 strcpy(cp_task->code_id, task->code_id);
00099         } else {
00100                 cp_task->code_id = NULL;
00101         }
00102 
00103         if(task->agent_return_data != NULL) {
00104                 cp_task->agent_return_data = interpreter_variable_data_Copy(task->agent_return_data);
00105         }
00106 
00107         /* Copy the agent variable list */
00108         cp_task->agent_variable_list = agent_variable_list_New();
00109         for(i = 0; i < task->agent_variable_list->size; i++) {
00110                 interp_data = (interpreter_variable_data_t*)ListSearch(
00111                                 (list_p)task->agent_variable_list,
00112                                 i );
00113                 if (interp_data == NULL) { continue; }
00114                 interp_data = interpreter_variable_data_Copy(interp_data);
00115                 ListAdd(
00116                                 (list_p)cp_task->agent_variable_list,
00117                                 interp_data
00118                                 );
00119         }
00120 
00121         cp_task->saved_variables = (char**)malloc(sizeof(char*) * (task->num_saved_variables+1));
00122         for(i = 0; i < task->num_saved_variables; i++) {
00123                 cp_task->saved_variables[i] = strdup(task->sæÜ;]wÿžûq÷¾{ò	×yæÞñÑÑýÎM]¶½¯î"¾éßÙé]ØÞ¼UÜ›÷Ýw~^×ß—»®¾/wÝ|_îº)ø¾ÜuKð}¹ë¶àûr×Á÷å®»‚ïË]÷øîÚUKð}¹ë¾à_¹¾/w=|_nd	¾/7²ß—•ß—•ß—Uß—Uß—ÕxÌU[ð}¹Q]ð}¹QCð}¹QSð}¹QKð}¹Q[ð}¹QGð}¹QWðZD=þn®:üÍ\uù{¹êñ·rÕçïäjÀßÈÕ�¿�«þ6Úü]ô,þ&z6½½2½
½*ÿ¼û¼:¿Û†×à÷’ðšü]ÏØ)Ákñûxm¾ËÝëð­á^Fk¸—Ñîe´†{­á^Fk¸—Ñî[ágÁ^2ß^°—Ì/-ØKæ—ì%ó+v.~uÁ^2¿¶`/™__°—Ìo,ØKæ7ü%kñ>¢âò—¬íò—¬ãò—¬Ëg~Ïå/Yßå/ÙÀå/ÙÐå/Ù�Ë^²ÀrÙKؼë¬.ÙK”–ì%ÊKö’•%{É‚*¿iSPã÷l
êü–MAƒß±)hò6-~¿¦ ÍG”¿[SÐá7k
ºü^MA�ߪ)èó;5~£¦`ÈïÓðÛ4…¿KShó›4…%>ÐÖù-šÂ2¿CSXá7h
«üþLa�ßž)¬ó»3…
~s¦°ÉïͶø­™Â6¿3SØáó�¿/SØå·e
{ü®LaŸß”)ð{2…C~K¦µÅïÈ´¶ù
™Ö%~?¦u™ßŽ	WUmûÖmýÿ.kÞÿBï‡Ý?uÞßy¶ýõÖÍ¿4ÞÓøhýkµŸTÿ\y_åÙ²,ýØþÓSüÖ•¾¶ÏZo>àñÁ͹O[OÝl¼ûà¦Ë"þhºxü)8?¥Nއ7Uù™›î‰pÛ+Â;íÖÕ¶¤ž�Ù£nŒÃTã×!5~©3êÖø…õ†õ}øº°^°·�(Én¶Ç	´K/Û6 ÃÐáСhfh—¶m@wS@w7€îê€#@»ô­m©�]óÌüÊϬ׬køzYE™AÙ¥OmEmä)¡C™AÙ¥/mEmÜš¥Pf:”±”]úÐ6QÔ¶q'…âèPFFPvé‚ßDQÛħ)”©åÐÊ.]ï·(NÂKMS~qT
'Û�Ý5´K¯û6 I
h²4É2‘	äÉ’S§`Æ0ãG0oZ?½ùu‹¬ç­Ú-Œ‰, Oàh“U#ÆD�'þ;Ú„FÕÈ„1ýóÄ~G›Ì¨™0&âžèïd&2ÉÑ[Œ×­ÁŸýß	±?Oäw2“˜äh&†‰¸Ÿ'ê;™	Lr4ÃDÌÏñ�Ìä%9š‰a&ÞÁØ–¸$G30lûs‰úÿÃýzßì¾Õùkû½í§[_i~¯ñûú°~ZûjõµÊ˽òGJŸ·×ÿ¹ê}l$Ì�s:¡MAT
‘•‚Œ�„ºq®`'´iˆª¡2îÆ¹žÐ¦"ª†ÈDÈç
zB›Ž¨ Áoœ+ü	mJ¢jh€Ì„Á<�Pd¦%ÉQ‘U3Ž�„Âq®`(2S“ä¨ÅD8ç
ˆ"3=IŽjPL¾ã\…¯ÈLQ’£™(##Eï(WÙ+2Ó”ä¨ÅD.0*¸ð=J9æÑÆÂ÷H·ð=2’Œ
.|�RŽy´±ð=Ò-|�Œä»m»m%žŠ4ó�•ü¹ÈD.°Û¦±Û€D
Hl	�‰\`·­b·ÍR@³
 ™ÈD.°Û±Û€œ�³äè€ÌÇÅĹUdUCd"/Øm3Øm@ÛK8UCd";ØmØm@ÛK8U#HWÿ¿]o×ÝÚ—ª¯þ7êÿ©‘9Í"çÚk­j̳~y¦FBä4WˆœkËeUCdf…8OˆœkËeUCd"DNs…ȹ¶\V54@&Bä4Wˆœg–ËÉÑyV	05§¹‚ã<³\NŽjPL„Åi®°8Ï,—“£qš+ Î3Ëåäh&ÊÄH¹<ÉU.Ï3Ëåä¨ÅD¹<)¸tÎ}
³ª‘¹ì71’L
.�sŸ½¬jh€Lä“‚Kç£T.0ÚX:é–Î'Fr�IÁ¥sn…FÕЙù¿q±¥sn…FÕЙÈ&—ιUCd"#˜\@çVhT

�‰¼`Rp�[¡Q54@&²ƒIÁÅtn…FÕÐüûÉDŽ0.¸¤Î­Ð¨"«þZSÿWë“ÚÃê·+¿*ÿ£ô�ÒÇìg…?3g¹‚ Žð™°:Ž?áÕ|Ýz¾”_�™‘ 8˓ޖ«ãZ ApV° æ>„EÕÈ,ˆgF‚à¬`AÌ}ôŠª¡2gËbîWT

�‰ 8+Xs³¢jh€LÁYÁy”r
£�2y”(”·9F‚ S°P¥‚àh£X%ÊeÈD¹ìä*—çÚrYÕЙ(—�‚Kç\¹¬jh€Ì=Äp	Aša®_Á•+WJDAñcå2›p«ª§µ»nBVâZÁUDÉÆAÁ½K[¯1ýûéSï+Ç	æö,î활§ævÍïyûÉyDY§C§ü5‚¬¥
e,½)EOùkDY”±ô¦ŒSTûûâç¡:ÛJ|ùâTÕþþYAaøú‘ÿÿÔôK“'ã7Gþmð‰Áçúßëý¼ûÛΟÛãv¹õƒ¨ÿ¡]ô§µKÊm›ÔÝEB?ÃÐïý7×;‡¿¢_~½u˜bp¼YJk·”Û½Ü4À?ÃðO”¦³eÊmÏ”=6B@ÃP�6WÚ=9w¼§›hŠÒt¶PÎïë¦
†‚¢4�}”sÇ;¼i€ƒ†á (Mg3åÜÑEšHhŠÒt6UÎ�¤i€…†a¡(MgsåÜÑMšhhŠÒt6YÎ¥ðÐXxø¾¨·ƒ_ý“wßä¢t8dîÍ!§ÑXˆ(ŠÒÚvåK §“šÆJjŠ¢ô6\ú‰:�Ö4VZ󬨕ҖK_‰òšü5â'¼±òv‘(µÉ_#ÊÒ`�•·—DÙMþQ–g¬¼ÏªQ‚“¿F”¥Á+ï³j”ãä¯9++¿äÿŸ›>œ|süúè×Ã?ZƒOö¯{ßê�ß´ß‹/ãÏ´¾ý4üÅ3vù:Ë™Œãz¦»3‰aưÉyÒYÖd×5Ùc#†MÊÒtü¢Ûú&{lİ	cXQšŽ_t[ät<öi†M,†MΓ‘Î*'ã¸ÌéxèÓ›X+ŠÒñˆn�އ>Ͱ‰Å°¢(wè¶Ôé˜Q1ò†|Fzgé¸C·õNÇccì3ûDiZ½¾£Ÿaè'JÓqŠn+Ÿì±þ†¢4öp[þd��Ð0�áuØÃ­)É#
FŠÒtØÃ­3É…#
GŠÒtØÃ­=É$
HŠÒtÄ­GÉ…$
IŠÒt8Ä­WÉ%
JŠÒthÄ­gÉ…%
KŠÒthÄ­wÉ>bG�IÓg¤ÅáǺ¯yì7þõüÜ_
ƒ`vxŠ‚àêðÔ»ûÊÇOqü8°¾ùŸ_9ýrøØ/ÿ{½ÿv¼ÿûÇ�^}aôøúå—­?ûâ£/¾ôøúáÕ篮¯^þâÕâÑÃ<¸á–ú—Ôßô߃å’mZàû-pƒ}—°[ói�°\óéa Ü®9 ®×Ò÷k..ØÓ7lN_ÙáKûtJøw>�á«wA¸1~®Œß†„;ã·áÒøm‹pkü6&\¿mî�ßv°Ì›!áæøm—puü¶G¸;~Û'\¿n�ßÂWoD¸?~;&\ ¿�n�ßN	WÈogøçàfD¸D~{A¸E~®‘ß…„{äwá"ù]‹p“ü.&\%¿kî’ßu—ÉﺄÛäw=üF¹î“ßõ	Êï„åwC•ò»áNùÝa |õ&„[åwSµò»á^ùÝábù}€ï$7ÂÕòû�p·ü>"\.¿on—ßÇ„ëå÷mÂýòûá‚ù}—pÃü¾G¸b~ß'Ü1¿à[íÍ”pËü~H¸f~?"Ü3¿.šßO7Íïá«7#Ü5¿¿ \6_„Ûæë�pÝ|á‹nf„çëáÆù:&\9_·	wÎ×Â¥óu—pë|Ý#\;_÷	÷Î×ÂÅóõ�pó|=ÂÿXß\DŽËçë	áöùzJ¸~¾žÁ«wn ¿
	WÐßF„;èo[„KèocL37—fBÌ2E€Q¦1É™¢…9¦ˆ1ÆmL1ECLÑÅSô0Â}L0˜b€ù¥b|)F˜^Š1†—b‚Ù¥˜bt)f˜\Š.Å%æ–2ÀØÒâV!þ‡?ŒÃw;¯1ïÏütg§Ï=…ÿ¶õçžzwö[xºúÀûŸ{j0UÔhªÙ½ÿÇ<[†gËÓlÙÂ0[ƘeË6FÙ²ƒI¶ìb�-{˜cË>ÆØr€)6Æ[1Ö#Œ°ål9Á[N1¿–3Œ¯å¦×òÃk`v­BŒ®mL®U„Áµjan­bŒ­USkÕÁÐZu1³V=Œ¬Uk5ÀÀZ
1¯v0®V#L«ÕÃj5Á¬ZM1ªV3LªÕÕêsê&À˜º	1¥n"©]̨›FÔMŒ	uÓÆ€ºé`>Ýt1žnz˜N7}§›fÓÍ£éf„É´·Æ—l¼Æ—l²Æ—lºÆ—l¶Æ—ìb�Opƒ5>À
×øü6ZããÛÖŸÞÆ…Ïî÷�ûÇýãþñÑ|„á×äÿÿwâç[_ˆ¾nþ§i�#ãØctÉÅéÖ„¥[…ܸNŸ‘ql4:§[–n¥éd·Üº�ì±Qº5aéVQšNvË­åÈ¥[–n¥éd·ÜúŽì±Qº5aéVQšNvË­ùÈ¥[–n¥é$ÉÝ:�ì±Qº5aéVQšN’Ü­
É¥[–n¥é$ÉÝz‘ì±Qº5aéVAšN?’qlH²ÇFéÖ„¥[Ei:4’zÓN·&,Ý*JÓ¡‘Ô›Fpº5aéVQš�¤Þ4‚÷B%l/”(M‡FRoÁ{¡¶J”¦C#©7�à½P	Û%JÓ¡‘Ô›Fð^¨„í…¥éÐHêM#x/TÂöB‰Òth$õ¦¼*a{¡ÎHÃoùÿ积LžŒ÷£ß
ÿ2˜²þWz?ì¾Ñy§ý×ø2^¶¾ý$|ë™ýŸÿ:@ƱèÎñKŸ2ˆOÏÿléTÇ2 {lñ)ƒxQšÎ}Ü­ÈA|Ê ^”¦sw+²ÇFŸ2ˆ¥éÜÇݪ‚ì±ħâEi:÷q·Ò {lñ)ƒxQšŽ«t«:C|Ê ^�¦S#d‹„ì±ħâEi:®Ò­RÈA|Ê ^”¦ã*sGW™6€ø”A¼(M‡FroÁŸ2ˆ¥éÐHîM#âSñ¢4ɽiC|Ê ^”¦C#¹7�àÅX)[Œ%JÓ¡‘Ü›Fðb¬”-Æ¥éÐHîM#x1VÊc‰Òth$÷¦‘Ó‹±Rk1Vz~ÝR¦Ä!™7‡œ^Œ•Z‹±Îˆ
ÃoœüüÿÝAðéþãÞw»?ë¼Ý~/ŦõJô$Ü?ç¯Ó¦cœût²n$cn$;ÿ&ÑiÔ1Î�:Y7’17"JÓ¹k»öêd
ÜHÆÜˆ(Mç®íÚ­“5p#s#¢4�»¶k¿NÖÀ�dÌ�ÒtvŒsÇNÖÀ�dÌ�ˆÒt<¤kÏNÖÀ�dÌ�ˆÒt<¤kãNÖÀ�dÌ�ˆÒt<äÒÑCf
ÜHÆÜˆ(MÇC.=dÖÀ�dÌ�ˆÒthdéM#Ø�dÌ�ˆÒthdéM#Ø�dÌ�ˆÒthdéM#§ÝHf¹‘ì¼Y*qÈÒÛ=âxlÊⱩô÷¥Ã!Ko÷ˆã±)‹ÇŠÇô:²ðö�8›²x¬(M‡CÞgÙ8›²x¬(M‡CÞgÙ8›²xlzîóÿoþ?QêÒIœ»tòF+gF+?÷ó”(5ê$Î�:y£•3£%JÓ¸w'ν:y£•3£•Ÿ¿èôëç†�¼�ÑʙѥéÜ»][vòF+gFK”¦sïvmÚÉ­œ-QšŽ‡tmÛÉ­œ-QšŽ‡tmÜÉ­œ-QšŽ‡\9zȼ�ÑʙѥéxÈ•·‡Äž$cž$“¤éxÈ•·‡Äž$cžD”¦ã$WÞ'ÚØ“dÌ“ˆÒtœäÊûD{’Œyñ°^‡FÈûD{’ŒyQš��û‰ößG•èin€CKí]Io-Gn;oÊH�"oØ_Ñ5WY)ð	AHÈê‰@¤ ¡DŠ@bÄŠ}`ËbP@bÃ/H~?Ó>õ�sÛÝU®òõ5!Òí+¿gßéëšÎð�S§šÙ¾v‘íÛlÚíX#qgF»žíkپͦݎ5wf´ëÙ¾v‘íÛlÚíX#qgF»žíkÙ¾öªúÿ_¾Ãþÿ§Ÿ?­ëÿËîw•ù?î+óÿag™ÿ;Ëü?ØÃa7/*øáç¨þÿ¡<ò¡<ò¡<ò¡<ògX9Ö«Ð�Þ�õ2t§÷b½ÝéýX/Dwú Ö+Ñ�>ë¥èNŸŠõZt§OÇz1ºÓgb½Ýé³±^Žîô¹]H×Oi9ýÂIý”–ÓçOê§´œ~ñ¤~JËÙ„YíØ³éf«{v|R?¥å쉓ú)-gwNê§´œÝ=©ŸÒrvïÊÛõSZÎîŸÔOi9{pR?¾äìÉ“úégO�ÔŸ8{úPóûPó»¿æ÷¡ÀÙá:\‡ëŠú¸Ëþÿ3Õøÿ¡Ÿ×á:\‡ëÿéº/äîþsm®{â®ë·ºE¸µ‘Ft;'îêkŸ¸ë:­nnm6ívòÚÔÎymõp«[„[›M»�¼6µs^[=ÜêáÖfÓn'¯Míœ×V·ºE¸µ™²w‘dþÞÝšV·ºE¸µÙ´Ûˆ$ó÷îÖ´Z¸Õ-­ͦÝF$™¿w·¦Õ­nnm6í6"Éü½»5­nu‹pk³i·IæïÝ­iµíÌn±�¹Ù´Û±FÆ�­‘úvf·ØÎÜlÚíX#ãÎÖH};³[lgvWåÿß^{ãå×þ=¾;
/dÃòÏÃðÒðúðîð«éCoïM·üóáÃ×§g¿?|0¼?5ðâïw¦¿~2ürz_~åýéÙ÷¦¿_~<|mø
n-RÂe¤ò”–äš¡GšÞñâð½sÛŒíÑÊ	dzzÏW;Pra C–Š¥lÈ8CÙvU Ũ†k âëÙƒaiOl6""ìØ±€‘K¨æŒLKƒé¨ÞH†¡Iä)s:Í¹ÈÆ]c8êÍHÉãšÚëè·Œ\‹-R±9GhñÒˆ0†§oÏ&³§vYz®�é^<õSNM²¸»%F¤]tAªÜä÷†.OÕ“=ý$œVоÑQ�KK×Q{\†¦‘ˆØÅÐsk�]œ
c¦éÞzú*o!4š÷—
ã‘kEG${ijO.؃aÑn‡Ôõ¼.×yº#�UxÑ·mOß›s#=6Œ%êå%F¾ûH‚p¤Vizô`XYß¹`B6Ý×QÆ ‹Ó¼šLF–WŽfdžõ�ž_bd¥`ÒäÙg©¯{0ræo–\žzÙÚ¡ÑGšV“Åû4I„†…Š(ªq†ÆÃ@ªmÇÎPÛÚ+"@Þ9ê=UÀp¨OïIî&ØP=óJÓ¼òôî¼ÚõÂÓ¬ôØéé¡szÖ –<&�ٲĈÐM†ÆÂcnôŒ¹ÂŽ˜ý	Úd‰a¨Ÿ4aeœH½×ƒ1B»æœI¾W]ÀÈÛ‚Z”ÇuÌ«€÷r‘OßãëÃ`ää»C¿¶Ç#`&TÄËy»®ˆ‘5¬ÂŠr´}‡LؘîÀœhê§Xì+)¨w³–Vt7-7Ø`/TÖÒ¾€°ÔSòö¬� cœµB¦ Êó*B"Œ8)¯Ž¶Lhµ‡äHº\è”5F‚Æà2ï;Úš¾_CK;Ì•5F>ÂÃÓ;}¿§^kË« «Üš‡-40òú‹Ð–Ü¿=c>âG’D¡¯J-
ÐÏuéZ^îÌ‚ˆÌ’Å0,z*W¿wÐü¶#à³Y2XhDWÀp4C´ð…ÍÛ^Fž{x¬ô•Ǽ±;�G¨�Á2*림^J6\¶îs{
f_ì’W5êGä’'h¬Òx°,Ó¤5õUߘs½	
û5kUÀH4v|ð“Añþž¾!
ƒ8¡‘dñáÕ’ÐPËlG;õi¶y5Vy®Å¶ÆÈgµiø7¬›ÛòʉôñЊ’x�¡!õs–ì
ù]ë0Ï#´3o³UC3ÃcnxÂmyåHžè¶¼^,}W	ƒ½;+Ðê¿
ƒýÊ`ÿÿ/Ãÿ›?iámd½”h„c#‘„S°ÿ-°z0xÍ𮪄Y´Ä°¨œlHbx;Ô^7޾?`·s–ÆÚb�aDÎeíÕ·þlÔ¼SÝ£U¾`K8Èí„•À©g<¸üKöDIW�ù’ÌŠao÷`hHA…Õg0’K'v���©�1Âv6�
V~	Ã’ô6°å3J�Œa­dÀBŒðJKAtÛ2}íqWšÒu—ƒìÎ÷îá3ÄŽyea×iH´[U1´©Áüˆ]¾¨Å^‹
Ô-QE¶<,l³¼–ÚmÏÜŸ‡ýUZlJ’;]þ®¥^
Љ
348'~ÑŠÝ¡0z04´ª7ça…¬1t£…|ÈŒa#3ëày’\kŒþ2ÁŽÏ’½½ÎÙ²U(#�õ«/Ϋ^.aIJ'Óö}¬0I#fKö9]#Û