Page 1 sur 1

Décomposer une image puis la reconstituer...

Posté : 29 sept. 2009, 22:23
par NewDeveloppeur
Bonjour, je cherche à détourné la protection des hébergeurs comme Free, où le chmod est désactivé...

Ainsi les utilisateurs pourront uploader des images sur le serveur... Et c'est possible sans pour autant mettre les images dans la base de donnée. Parcontre je sais pas si cela à déjà été réalisé...

Le principe est simple, les images seront stocké dans un fichier " image.php " créer grâce à la fonction fopen()... Je ne suis pas venu ici les mains vide, je me suis pencher sur le problème mais il me manque quelques éléments...

Pour cela j'ai besoin de décomposer une image pour par la suite la reconstituer, c'est à dire :

Étape 1 : Passer l'image sous forme de texte/code traitable en PHP, par exemple le binaire (voir ligne 80 du code ci-dessous)

Étape 2 : La stocker dans un fichier, par exemple image.php, avec pour entête :
header (\"Content-type: image/".$extension_utile."\");
Étape 3 : Mettre dans ce même fichier un code permettant l'afficher... (voir ligne 87 du code ci-dessous)

La ligne 80 est peut être fausse. C'est celle là :
$fp = fopen("UPLOAD/IMAGE/".$identifiant."/".$nom_image.".php","w");
<?php

//-->> DEMARRAGE D'UNE SESSION
session_start();

//-->>INCLUDE
include('mysql.php');

$identifiant = "administrateur";

//-->> VERIFIACTION ET ENCODAGE DE L'IMAGE
if(!is_uploaded_file($_FILES['image']['tmp_name']))
{
	//-->> MISE EN SESSION
	$_SESSION['details_erreur'] = "Un problème est survenu durant l'opération. Veuillez réessayer !";
	
	//-->> REDIRECTION
	header('location:erreur.php');
}
else
{
	$extensions = array('/png', '/gif', '/jpg', '/jpeg');
	
	$extension = strrchr($_FILES['image']['type'], '/');
	
	if(!in_array($extension, $extensions))
	{
		//-->> MISE EN SESSION
		$_SESSION['details_erreur'] = "Vous devez uploader un fichier de type png, gif, jpg, jpeg";
		
		//-->> REDIRECTION
		header('location:erreur.php');
	}
	else
	{
		define('MAXSIZE', 307200);  
		
		if($_FILES['image']['size'] > MAXSIZE)
		{
			//-->> MISE EN SESSION
			$_SESSION['details_erreur'] = "Votre image est supérieure à la taille maximale de 300 Ko";
			
			//-->> REDIRECTION
			header('location:erreur.php');
		}
		else
		{
			$extension_utile = str_replace("/","",$extension);
			if($extension_utile == "jpeg"){$extension_utile = "jpg";}
			$nom_image = str_replace(".".$extension_utile,"",$_FILES['image']['name']);
			
			//-->> VERIFICATION DE L'EXISTANCE D'UN FICHIER
			if(file_exists($nom_image.".php"))
			{
				//-->> MISE EN SESSION
				$_SESSION['details_erreur'] = "vous avez déjà uploadé une image de ce nom";
				
				//-->> REDIRECTION
				header('location:erreur.php');
			}
			else
			{
				//-->> CREATION D'UN DOSSIER
				if(is_dir('UPLOAD/IMAGE/'.$identifiant.'') == true)
				{
					
				}
				else
				{
					mkdir("UPLOAD/IMAGE/".$identifiant);
				}
				
				//-->> CREATION DU FICHIER
				touch("UPLOAD/IMAGE/".$identifiant."/".$nom_image.".php");
								
				//-->> DECOMPOSER L'IMAGE SOUS FORME DE TEXTE
				$image = file_get_contents($_FILES['image']['tmp_name']);
				
				//-->> REMPLISSAGE DU FICHIER
				$fp = fopen("UPLOAD/IMAGE/".$identifiant."/".$nom_image.".php","w");
				
				$code_image = "
				<?php
				
				header (\"Content-type: image/".$extension_utile."\");
				
				// recompser l'image à partir de sa décomposition, soit $image
				
				?>
				";
				
				fwrite($fp,$code_image);
			}
		}
	}
}

?>
Bon voilà, je vous remercie pour votre participation, ça me sera très utile. Si il vous manquent des informations quelconque ou si vous voulez que je fasse des test avec de nouveau script, je suis toute oui.

Re: Décomposer une image puis la reconstituer...

Posté : 29 sept. 2009, 22:45
par NewDeveloppeur
Ha oui j'aillai oublier, je me suis inspirer de ces tutoriels :

http://www.siteduzero.com/tutoriel-3-32 ... mysql.html
http://www.siteduzero.com/tutoriel-3-14 ... n-php.html

Je me suis trompé, la ligne 80 est en fait celle-ci :
$image = file_get_contents($_FILES['image']['tmp_name']);
Et en voici le résultat quand je fait un echo de $image :
...ÿØÿà�JFIF��`�`��ÿáâExif��MM�*������������������b�������j(�������1�������r2�������†‡i�������œ���È���`������`���Adobe Photoshop 7.0�2007:10:23 12:55:01���� ����ÿÿ�� ������à ��������������������������������(�������������&������´�������H������H���ÿØÿà�JFIF��H�H��ÿí�Adobe_CM�ÿî�Adobe�d€���ÿÛ�„� ÿÀ��I�€"�ÿÝ��ÿÄ?���������� ��������� �3�!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷�5�!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ���?�çÚ ÐˆÕX°­Cj+P()XØXŽÄÒ´¶+VkU«åZ¨L&¥ÔéEÈip“¨lø®’¿L³¨\Î.s€Yº|,g5€Øw2¤Ã{S& v¦tÔZ'CòGaŸ$à´ÍMÃZ†`)O~ЪÙs¤èm ê|•@ÜHÐ(sHÝ ]ôcË#t á;œHÕ'P'E±£ÖÿÐÀj+PÚˆÕY+QX„ÔVÒ‚™ˆõ‚SâaݐðÚÚ\O‚ÞÆè˜ô4?2ÐÓϦÞS% ´—.ªœâ¶KºÒÓ0¬³3†cÐîv¤•7õ¬–?c™°ø+rìatæPÐ]®›ko´>sôçdä&ðZøµíp“ãæ¤„ÀÐ2ƒåˆm²N¥5Ú6{§{ŽÉod¸¹§Ç¥œ€‰Ø]"�¤6;²zN†PíÏÚ9Ewµ¡¿z§l˳XHÙ—eÜíT P'T‰Ñ0ÊÊÓ7ÿÑÂj#PÚˆÕY#D­,/T‡ØvÖ9=ÏÁTŬ9À»Qà¶ëu4PÛmçóY⣑ì²E¿UìÄÇýQTAyúNø,ëú“žâ+Ð~ñÕÅSÉ̲÷îyøÀy(ÔÒâDkR´ Ý·Cìõ`>àd0µZ-Èx¶íL ’«‡\5ì»qn`Ì-¹@ßDltÚ}áÑÂÞcX$AóTºu@1ªµ²’9<•.(ðÄ̋вâ12auàˆï þÒO`«úÀ4¶žè•ƒé—8NîŠ`”§;ðû ËèÁ >·ï}�‡m»tüãÊžM†ûŒÚxo`³ÅÆI™MËQ!(Û'ߢª,Oêh ¦ÿÒÂj+ڏK78ÇuU®[¸a­«þ‹xóK#%Ö¼¸Ÿ <l¦ËX×6'D\.—“—ïl2¾7»ƒýQùɵª+VÇFÄ£.÷2ã0Ùk&']uþB¶ÌZªÉ{+;Ú××y)Wõ~ö‰cÚÿ�-AüUì�lmvKI1Ç)v¤Kµ2ÄxªÚÜD†at4šïnÖ{‹¼B«_Cx2ñ…¥öf@Ö%ÉÐÇ!¡Ð„º¹ÕâÕæ³g«ì×Äx«'ÛݺÃ�ø¤F..¾£üRD~Œc°](ÈÑùb6a‰Šû½â*ÆUõÐÂÖ}(‰ðUŸ›cA±ú5¿š8ø,¬¾¨×“´><%ÅF†åob(nŽÛÞû\dÎ¥0zª,“'ºz¬Xí°ôûÕ`ôûôB–ÓÿÓÄ­¤­6§6#P{¡SÙ^ÿ��?¬ª–¹e‹Ž×=¡Üªè(¹­€€y,Lo¦…| /¢ƒ¿†ãcƒX7Ø+¶`_akv‘£§ºÏèŸÒñ]OóNù'zkÔŸMz‘´ÛV[dî. ‘ÌJƒ«imŽÜf~JMþeŸùçüJ’WC‡·àÊ:Wn¨²óƒÐU¼¶²­ÀK´‘á>*?Ò›ñT³~ŽGÇû”B謟<œ÷ZÍ“ æ;•žçËŠ~Ê'蟊†Wzµå¾¬ÃԃЂMZ”=>ô$è)ÿÙÿínPhotoshop 3.0�8BIM%���������������������8BIMí������`�����`����8BIM&���������������?€��8BIM ��������8BIM��������8BIMó����� ���������8BIM �������8BIM'����� ��������8BIMõ�����H�/ff��lff�������/ff��¡™š�������2����Z���������5����-��������8BIMø�����p��ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè����ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè����ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè����ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè��8BIM����������@��@����8BIM���������8BIM����9���������������à����1�4��������������������������������à����������������������������������������������null������boundsObjc���������Rct1�������Top long��������Leftlong��������Btomlong������Rghtlong��à���slicesVlLs���Objc��������slice������sliceIDlong�������groupIDlong�������originenum���ESliceOrigin��� autoGenerated����Typeenum��� ESliceType����Img ���boundsObjc���������Rct1�������Top long��������Leftlong��������Btomlong������Rghtlong��à���urlTEXT���������nullTEXT���������MsgeTEXT��������altTagTEXT��������cellTextIsHTMLbool���cellTextTEXT�������� horzAlignenum���ESliceHorzAlign���default��� vertAlignenum���ESliceVertAlign���default���bgColorTypeenum���ESliceBGColorType����None��� topOutsetlong������� leftOutsetlong�������bottomOutsetlong�������rightOutsetlong�����8BIM������8BIM��������8BIM����Ð������€���I��€��m€��´��ÿØÿà�JFIF��H�H��ÿí�Adobe_CM�ÿî�Adobe�d€���ÿÛ�„� ÿÀ��I�€"�ÿÝ��ÿÄ?���������� ��������� �3�!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷�5�!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ���?�çÚ ÐˆÕX°­Cj+P()XØXŽÄÒ´¶+VkU«åZ¨L&¥ÔéEÈip“¨lø®’¿L³¨\Î.s€Yº|,g5€Øw2¤Ã{S& v¦tÔZ'CòGaŸ$à´ÍMÃZ†`)O~ЪÙs¤èm ê|•@ÜHÐ(sHÝ ]ôcË#t á;œHÕ'P'E±£ÖÿÐÀj+PÚˆÕY+QX„ÔVÒ‚™ˆõ‚SâaݐðÚÚ\O‚ÞÆè˜ô4?2ÐÓϦÞS% ´—.ªœâ¶KºÒÓ0¬³3†cÐîv¤•7õ¬–?c™°ø+rìatæPÐ]®›ko´>sôçdä&ðZøµíp“ãæ¤„ÀÐ2ƒåˆm²N¥5Ú6{§{ŽÉod¸¹§Ç¥œ€‰Ø]"�¤6;²zN†PíÏÚ9Ewµ¡¿z§l˳XHÙ—eÜíT P'T‰Ñ0ÊÊÓ7ÿÑÂj#PÚˆÕY#D­,/T‡ØvÖ9=ÏÁTŬ9À»Qà¶ëu4PÛmçóY⣑ì²E¿UìÄÇýQTAyúNø,ëú“žâ+Ð~ñÕÅSÉ̲÷îyøÀy(ÔÒâDkR´ Ý·Cìõ`>àd0µZ-Èx¶íL ’«‡\5ì»qn`Ì-¹@ßDltÚ}áÑÂÞcX$AóTºu@1ªµ²’9<•.(ðÄ̋вâ12auàˆï þÒO`«úÀ4¶žè•ƒé—8NîŠ`”§;ðû ËèÁ >·ï}�‡m»tüãÊžM†ûŒÚxo`³ÅÆI™MËQ!(Û'ߢª,Oêh ¦ÿÒÂj+ڏK78ÇuU®[¸a­«þ‹xóK#%Ö¼¸Ÿ <l¦ËX×6'D\.—“—ïl2¾7»ƒýQùɵª+VÇFÄ£.÷2ã0Ùk&']uþB¶ÌZªÉ{+;Ú××y)Wõ~ö‰cÚÿ�-AüUì�lmvKI1Ç)v¤Kµ2ÄxªÚÜD†at4šïnÖ{‹¼B«_Cx2ñ…¥öf@Ö%ÉÐÇ!¡Ð„º¹ÕâÕæ³g«ì×Äx«'ÛݺÃ�ø¤F..¾£üRD~Œc°](ÈÑùb6a‰Šû½â*ÆUõÐÂÖ}(‰ðUŸ›cA±ú5¿š8ø,¬¾¨×“´><%ÅF†åob(nŽÛÞû\dÎ¥0zª,“'ºz¬Xí°ôûÕ`ôûôB–ÓÿÓÄ­¤­6§6#P{¡SÙ^ÿ��?¬ª–¹e‹Ž×=¡Üªè(¹­€€y,Lo¦…| /¢ƒ¿†ãcƒX7Ø+¶`_akv‘£§ºÏèŸÒñ]OóNù'zkÔŸMz‘´ÛV[dî. ‘ÌJƒ«imŽÜf~JMþeŸùçüJ’WC‡·àÊ:Wn¨²óƒÐU¼¶²­ÀK´‘á>*?Ò›ñT³~ŽGÇû”B謟<œ÷ZÍ“ æ;•žçËŠ~Ê'蟊†Wzµå¾¬ÃԃЂMZ”=>ô$è)ÿÙ8BIM!�����U�������A�d�o�b�e� �P�h�o�t�o�s�h�o�p����A�d�o�b�e� �P�h�o�t�o�s�h�o�p� �7�.�0����8BIM����������ÿáHhttp://ns.adobe.com/xap/1.0/� adobe:docid:photoshop:d57b69af-81a1-11dc-b1b5-a1883f1439d0 ÿî�Adobe�d@���ÿÛ�„� ÿÀ�à�ÿÝ��<ÿÄ¢������������ ��������� �s�!1AQa"q2‘¡±B#ÁRÑá3bð$r‚ñ%C4S’¢²csÂ5D'“£³6TdtÃÒâ&ƒ „”EF¤´VÓU(òãóÄÔäôeu…•¥µÅÕåõfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷8HXhxˆ˜¨¸ÈØèø)9IYiy‰™©¹ÉÙéù*:JZjzŠšªºÊÚêú�m�!1AQa"q‘2¡±ðÁÑá#BRbrñ3$4C‚’S%¢c²ÂsÒ5âDƒT“ &6E'dtU7ò£³Ã()Óã󄔤´ÄÔäôeu…•¥µÅÕåõFVfv†–¦¶ÆÖæöGWgw‡—§·Ç×ç÷8HXhxˆ˜¨¸ÈØèø9IYiy‰™©¹ÉÙéù*:JZjzŠšªºÊÚêúÿÚ���?�ãÛåšWVyªUpÀUQp*¨®ªõȱTª¢âªƒª.,UWUEÀ‚ª£*‹‘Jªâªª2,U“|UU1UeÈ¡Z< É×b®¹Wb¬˜]2,Q Š«¦D±D&*‰¶EQ1Œ‹Œw²f>XÓVw3Ê+tÛÄœÊÃÝ¿ovonÉøz*Ž‚™²ŒmÎLc·M2Á|(È­ê*Ù`‹0KeÉÁÀö=ÁÀq‚` XÖœ£ÔÐæ$ ã/ŠÞ*ý°O†WÀp„ÆÞÅ7ÉB!2`_†ø€‰EP+\ÈŒ@r"ñÇ±É l ã¦Ý3$и o%ÉV×"f\\¹,3 êpxñbd„œ09[À¡ñ9“S³T²ì–Í?*Ó5rÛ¯œí͘2.1+j2»E·‚ÒÚí“!Ž3cXrÁl¶M¡e`ÌOlÂÉ+.<”<ÿ�ÜÉþ«~¬ƒ�ÿ�ÿÐã(>òÍ+¬<×®…P2,WŽØªñÓlm…ŠªäPUxñÅU—늪ŒPU"¥Qqbª;dRª˜ ª®*ÉኪŒUYr(V\,—"ªëUdȱWLU]r,Q Šº`TD}²*‰LUl‹µ^nïùb=Ëî±Û(´IcøÏÄh9˜Î̾ÎZ(CökZøflK—›D ™xmضØå˜^ÍCA·¾%%-¿€I0!·eýY‹–6\l‘² –Žm¶cøe§€¦–ÊÈÿ�FX €R9[Äe€¶ª%O³Ó'âMÂAp`68™‚ˆ‰‰9“Šd·ÅV¹•lÜNW)*ÒsRJ„˜²›\ŠIi˜ÒÈâJHw—*9yI ,µÛ1ç‘ÆœÐìõÌyI¤Éa5ʉcnÅWYë’ \ކ™1"ƒKŒ„õ5ÂfJñ,­r6‹R›û™?Õ?«"ÍÿÑãIÐf•Õžké튪ƒAН±UØPUA ‹ŠªŠª.*ƒTT\UTvÅ‚ªäJUUeÀÅYqUuß"ª‘à,U— U“tðÈVN£"Å]ptÀ…tÀŸ™DG€ª&<‰`SK¥¼6ÉE1e~^¹E_‰°ù6db“~2Ìl¦ �ôýYåħ¶òUNÇ2b[ÁL#›Ä}Ùh“eª†Ôa´¡Ü,Ó¶ G¶Tw-gr‹Š1ÌE°¨0˜'…s'·\ªq ÀƐä09… CR´LMé“„º7ÀÚ::¶l1òs"«™š9\ŠT©˜s(% +æË‰9 ¤|Ä‘pç$;>Rdã!Yêk˜ÆN16Õr6‹o¶0†K†M“°²ur6ÅÕÁl\UdßÝIþ«~¬P9¿ÿÒãIöFi«<Õ6ª€dX¯ªõÈ¥z⪀bÁz⪫U*ƒ¶ª‹PXª®E*‹Š«‹D銫®*¬™UQ‰bª¸«¦Dª²àUuȱV\UÓBdX«§LQ Q ‹JdPS;Ul1HLtéä·•eŒÑ—¯š,¢ižiW°Ý(àxÉÞ3×ûsaŽ@¹,ŽÙˆþ™•äÊ6&žx-ËÌõ"8Iذè>X8º_@‹Ž. e 3€ƒ¶I’->R2cfCeÄÜŒ‰‚-I¢úFcÏYŠÐœNc˜S0)¦_fø•pÙ—68Šå†6ª/=阒ÂÂHYããî3.*qr¾U#§ÝšÙća+mOÙq&T2¦†Æ,—Y. •ݲLÚ'"‹j¸¡uqdìUJcû©?ÕoÕŠƒ»ÿÓãIÐf•ÕžjöAŠñН\¸Aš Å‚ñÛU\ ¨¸±T8ª È ªXª®E*ª1UUÈ–*«Šª®*®¹U\Pª™ÁY0WL ¬™*é‘b®˜ªºdX¢UtðÀ¨„È¡ÅS-žŸÍúñ œQ•c¾eIݐ¡l["Él®.¨ÊÔù×2¡"äD”úÕ&šœÙ›ØœÉ—" ”öÖÄ€m™pÆäF ’Ä£µs&›iUTØR¼P‚OLUiØŠt9YæÅuJbC*i’¶Ê¥ Zh eiƒ˜%•ªs§LÈã¤ÚÖ~C¥l Cºžßdæ,¢~ 2"¼êNÇß0xmÅ"Ò˯†B½Ç\Ôç*uÙv*CK†*¼@f¨Z`s`*VWß PìuqWbªss'ú§õb‘ÍÿÔãiÐfº³ÍTvȱT±Uàb«—AT°!xÅUT\UW^0U\ ‹‹AÛ"•TÀUUp1U\UUqUuÈ¡UqUeÈ– Ë‘Uhð*ˁ]r(WLU^>¹(„ÅUÐdX¢tȥ⩌ Ò˜¥;¶Q*€vq“æÌn›ÙÂä€Fù0Ø*Óm ¡¦eÀ9P‹,Óí‚P‘›aÌ„S˜ã ÌȆúTà2i¥§Ã"X•Ê6úqB¢¨8@dî#'ÂÊœV¸mHYÀåF×ÁÀQNôÛ¿LZ-ú{³xT®$Ž(›‘ùeY§Çv¼’ŠS-äH¤¦ät¦ž¦1:éf�l”»—bÌjI©Í4¤dlºÉJ͸`B¢FÏÐd£y6F6‰Kzu?veGxÆÙ„xœ‘Æð©:÷ÌyFš¤)O)kj¸««Šº¸ªœÇ÷2ªß«ŽoÿÕãª6£.¨óT®*¿Ã ñB ÅWŽØª¢âªƒ¶*‹€ª íQqb¨;dRª¸ªªâª«‘bª¸ª²äUUqB²äPª»ŒKdȪ²â…eȱ*é‘(WLU]?‹DcTTc£"\Š£¡¦IS;xI¦ dycjÌA| ±‹.Ól9Ӑ£xæT#nT ËtûEˆ‡øæv1NdcIô�fl€AFd�ÍkPabT«ñeDµª)’‹(ª-Z‡3m€È©*Wµ¨ðÌS–@µ™r9+bfy‚¶Zõäéß#ãMew®QyH@gŒ@²ž: 潑Àh;Áɪ‘äãO1<3Ìò}£\×åÈeÍÂÉ2Rù›¶kre_|©¥^$.À}ç'ñØFÊ9( fÆ1g0 Tú2ÊmZÙ\˜9&¢T\wÊ$Šr¶.®*êâ«&?¹“ýSú°¨æÿ�ÿÖã©Ð|³Jê5QÛ …àb«×"•àbÁxÅU*¨¸Qqb¼vÅU"¥PX*®E*‹Š«.,U"ªËŠª®*ª¹+‹ª›aB²ä]|r,U“VL‹tÅQ1Œ‹Lk¾*‰2*‚,U4¶¶-JY€È,4æb*0€ß2½;LM²ø‡*0döViA™1TbŸ[C@*3.-à&´—ÍR´’IÍrk%O`s–’W£Q¾y8ËvQ*¤öq-¶¸t¡Â(H´Ì\‘iCZ3·Óá˜^!‰iâ§5Ðãð¯ÅødŽ VÃt›!$™˜ÕN`Ï)'wS%A¤ÊÚ”ë”JM’F«Ä™ÝÄ‘²°duªÑ+Üæ~µ¹¸†È¥˜7L%‘QvÌy–¢Tæ9j%aÊˤr¦²ÕqWWÚɏîdÿ�Tþ¬)ßÿ×ãÉÐ|³Jê5UÈ!±€ª ÀÅPb«ÇlUz⪃ª.,U*¨2( ‹‹AŠª¦@¥Up1U\UUF*¬¹T\X•eÂÅU2²ªËU£ÀX«®WA‘b‰EÅQq&FÅ4ÅS{rÔÛ€œÚX¦Ùf"É,4ѵFH"0eM²À¨Á’YX¶Ìˆ‡&0O-íB¶dD7£‘)™1lU•.c—±*LÀe3“L¤¡Î¬3Ëv›²¬[MÊ«SJöË£e˜V ÌŠ ªr(ʧ }ÂÐûÕf8sF$×ÈÓŒJ‘jìr£&²PîÙA-*ô)”œy19ŒKŒKc$cXÀÍ–¥ÏÅÉ»ÌÉ\Ó!"ÆE혒.9*DåD°µ¤åd±%Hò²×mW"¶êâ«&?º“ýSú±´ŽoÿÐãËöFhÝQ檝p!R˜ªáÛ"Årâª«Š¯T\UlUPx⪋‘`½qUUÈ¥QqUQBªáBªâª«‘B²âª©‚ªdJ« 8]¾EŠ&4®*ŠŽ3‘bŒŠqT|äÓl‰ZMmlêFز<³°é¶-‚,’ÃMcJ.èÅ”iúKmQ“ÊŒ5žš ò؇20Má·Û/¸Eª\Rú™bV™fTÉCÉp+±Á<”Ñ)©ym˜rÉn1®OÇ�exÁ4éËà-¾!P»f]€Ýt¸ädߎ”àâ6èsYªáåÙ.s\ÔIÁ%晍&™l¦E ”4­˜ó.,ʍr¶•Ë’Â>ͪ8Ÿ£6:sÑÍÂz#ºÎsPò¾cÎN<ŠŽb’ÐJ™l¨–$­-%++•Ûj¸n®)S˜þæOõOêÅAÝÿÑãè6,Ѻ£ÍP`B ÅWÙ+Æ*¼mŠª®^,UT\Šª.(*ƒ¶,U"•Q‹UȪ¢âª«Šª®E ËŠ«(ÀÁ‰Š¢c+*‹ŠáŠ6+sá‘Tt6¤öÅS+{b(¹:³Ò&r(‡@2]?Ë“½*§ÑU§ùkˆ†"8Ù-žTÛ&‘Rq¬qÒƒ,@Õ(¹6ð»ÖAß- µxƒ¾X$4š‚ËâZe‘BKê(�îrrÉAÆžU‘ÈϹÌ9d·ÎÑH ÄnÎ!ŸÙ?NeÃûœ¨ÂH¤‘h:÷ÌÈã 9$ÄoÜŒ#O T N§,¦@6ƃ%-‚J_xÕFjµFÜ<Å,sšyEí˜Ò.<ŠÛ(%Ç‘BÈÕ'1¤wq¤V‘Tå±â€¡ï›bœìb‘- §¾d™ìÞd†vÌ9EA›(%¨•…²²X°¶VKj¹[«ŠÛ«ŠÚɏî¤ÿ�Tþ¬RïÿÒä Ð|³Fê5ö,FÓjƒŽØªñŠª.T±TªõȰT\UTb«×"•eÅŠõȪ²âª‹Š«¨È¡]R¹%G¦„lP…ª>Bi¶b™ÛéÒ=(§§¶^_¸š”C÷dm“%Óü¡+вí‘%@e>PŠ:-°EZè¶ð°·�™Æ–Ѐ�&Àˆp§Jdƒ`+¿H èrVØ$ïÒ‹ã’˜šÖÕ€ý¬˜,¼D4šÊÚÃÄÖr¡W.h§&'mÊè®ÚG¥}ÎLMÇ9-o·OU#~•ð]™šìË’cNÀŠ‘�ÝF&÷N­âXÐç©÷ÍÞ(‡oŽ�ff¹ lüv?†S)ÓiHÎ+ßõeg+Y›¾°)ý¸<ÜIÈ dl×H¸r(glÆ‘qäPîÔå2.<ŠžYŽãÚa ¨‘̬q·#m̀ѰCJù‹’M’‰vñÌs"ÕÄVÊ̘,' Kj¾ù[uqVë†Ón®6¶²cû™?Õ?«H;¿ÿÓä ÐfÕj˜±+× …늯±U@+Нª®*¼bª‹‘AT±^¹ªŒXª®A*ƒ¶+ ÅUÑ+‘B*(‰Èۏ‚ÜžÙP™ÛÙ3AS¶6ŸXhW‘Åݐ2E²Ý3ɲ½®VfÆÙ†Ÿå+x@.@ɐOaÓì­@Øm‚Ùv¼µ„Qh2M¨y5¸×`FJ’ M|6I—üÀ?›$¼JGÌù±OßÓßåaOˆÑ×Iý¬x—ÄSmeÛö°q09Z[éejôãÅmG":ÝÉ¥Ï%ÇMfií”DEËö›¦:L¨'úîˆÃ†tYa–éÜjJô=n¢´@(¨—€�µ@限̹1ˆä3#‰¶Ð÷­tîs1­ÃVMnÕ=sGgEbÉðäö`%²Õ—|€È5³€W–C(±hŸ$¶VÍ\ˁ"…vÌb\Y<­Û(™q¦To•€Ö©äeÑ ‘ ¥´{TæË†8ªLÔÉä4ÎfNjsEÃ%IŽRX¦NTKY+y{`E·\VÝ\ uGŽ·Txâ¶²cû©?Õ?«wÿÔä)¸,Ѻ£ÍP`BáÛ"ÅPvÅWŒUz⪃¶*ƒÇT]ñUã"ÁQqUEÈ¥QqUUÀX« À¨¨ã©Èª2I¦ÙZÓKk6b�ÊÉE²m/Ë×%h†™Y›Y“<Ñüš£‹H¹,Œ™•–‹ih ñe|D±´s]ZÛ†‚˜Ó0—\ëè• rÀ„šëÌD֍“±)Ÿ^sûY0hÖ$cö²T›R:”͸'µ'Ž(h_9ï‘bd¬—Ž{ämHˆîX÷ÀK$u»4†ƒ§s‚ØÚqh”�˜nJ}alde_ÛeÂŠŽŠ0HÙ¦Gr˜CL¾rñÁ1ÊlzfÇC>‘©"ÓÛ6P˜rD•ƒ ÓÇ2D‡&Ës¨e#Äc(ØL…„®à2žj3­ÉaA$ޝëÌhËv¨É§%NFFŠ ¥D~KÇÃ-Œ¬S0l%×C‰>­Í.].Ù„\ÒüT²“¹i;•5jœ€GZ¡f™Š\¬p´Ù@EÍ•Psê‚i+˜y‹2 Nb©1ʤÖTIÊIj%ÕÈÚ-ÕÆÓn®[n¸¥Ø¡dÇ÷RªVŽoÿÕä)Ð|³FêeÍPvÈ%xÅ‚ñ㊯ªñ×U¯±Uë‘UUÅ‚ñŠªŠUTWVA‘b‹Š:â‹Lmà&›eD±%?Ó4y®™B®ÙT§MFOBм¡²³¥OË1¥6£6se¥[Y¨¨�Œ –²m&¥ol´R6ÄH Eç˜á[,l$¹Õäs±9h’Ù¯$mËd€J]=ò¯VÉ�Í/“QMQzJ¶¡{¹4V?ËE”ÇrôX4Û8â”­(Iæor¸Có˜–3«Ã´RnÌL±á.>AI&¹Œ\rUâ'#l-1¶¤>ÜàBsl€PAŸXÅÊ›dm‰,»Iµâ„lJ#«(꫾Y¹8àŽŽ:f\bçÂ*ÀS/¶—r#-‘hˆ”³¯ZwÌìq$†ø(ñÌÓÍÊKoYPo@+MóY© sp3{ƒQÔšêp©{ ­pÈXdVűÈãæÆ*WkÉIî2¼ñ°Õ˜XIf~5ÍI°„´¿&¯Ž@ºVˆa—F6ݧ–pñPNmqc ìq‚¤ÒPPaÉ$Ì ™ªk˜2q ÒÙLšJ‹¿lÅ™h‘S®RÕn®+n®+n®,›®(·Wµ“ÝIþ©ýXBAÝÿÖä)Ð|³FêO5EÛb¨;dUp튪.*¼`b¨¸ª¢à*¼vÀ«Æ,TQ÷dRˆp(¸£®FÕ3µµi®@–²YމåÇ™•vÌiäh”Þ‘¤h–öª¥” f¦KA•²Hu+K%*hŽOïe’êïªìc4SÓ Žì«tš[Ù¥&„ä€eHgj ÈÙ6ImÖ§U�Ôä€eI%ήîHSA–S$Ý3š“\PZII8¡;ÐïōôW º©£|Žš6Ê&‹Õ-u9¡$ÉÀŠÖ£lÍWb¾cÔ¢¾¸Xà<¢‹n]‰9‡š`œl’²’„$×1mÆ%ml\Ô쟯hcâ�ƒ KH÷Y,%Ób©3H¸Âˆç2!©É„vMa¶?íf|0—c9-O}¾y3˜1ªR®\4ÅŸ†½-¶þÙ‘ 8ÙAª«öE3$DMÀ�µ79A4Çïe25O‰ ÎsS“ˆº<Óâ(x¥1ŸÜf&bZa*DÆáûó.°ßm¨£÷aˆÝ@ÝdÛŠxã1ld-Žß¥«ß¦j²F‹®œi/r ÀLì-ËÇ3ðãs1cMÙ„iLÏ;4ì2IÈæÍ¸’6¦NRCQ R=cÌ´H¡Œ•=s¸¥Åò¶°ã"†ùUºû䕺äVÝ\Sk&?º“ýSú°…wÿ×äKöFhÝIæ¸vÅŠªäxÅWŽØª¢àb¼bªƒ^¹AÛ*Š1UhÅr)FEr,S‹'`�Û*”©¬–u¢è(œYÆbÎn<¤ÍmDˆ)@FcÜsºùµcN(i€E æYŽÄœ´×H¤;d• y©[Û) EplÀcWÚÛÊHS¶\"Î’yn™É$ä©’‰ð«jøªºTî2,QðV£"Å5·cJWo(´l`œ,IGÛÚ–£0ø{X&qÅJPm။Š=Æ„ÚÒ-ÆVÅ“éPòt8f” Ùd©JöÌøHçã4S›I©�o\Üéæ§o†B‘¨^§6QÊS,d¢×/S•± g Dá·;d|KcâZWw¨r,ˆKЦÑŶD°(”#hDÃL*œYÃR 2Y^“>>Àe˜ÆöÎ;€Tüó&¹xÂgj¬£6˜"x­ÙbÓTÛéÍÌ]€jFgžˆ‘B2'.M¿…zfˆ».1š_{~�1B}‹f¿Q©L\,ÚŽ,gÍA“­2X[*%¶�)zµj2Ø–`£Ò5ùfÆHr£É-Ôe+ÅFÕÜœ†SцBýY½26=>y{šD74›Çj¨œˆÜf|qÐsD)q?쌢riœÂ¬k˜õmÛ£|dºæãzÁË'$FO|Â.)h>@±^® ïŠsÅWzƒ"‡rÉ%w,ŠåoÝ?ú§õa ïÿÑäIÐfÔžj£¶,WŠ®ªñÛT°1T±UãT\‹dª*$­2Jw§X,6Ê¥&©[cnA˜Ò-$¦«=B˜R¬|åm±Bycb(^™L‹Y*—ú­½„eTŽCÄ”Æ6ÁõMv[§`á̸œHdœ±Üå”Ú¢d®Yꚪ)®AQ 2, 2$­2% „äÎÚH�o•–²ŸÙYð£0«~¬ ›ÃÈ–%‰Šº-vÅQÐES¶*žXÃR6ÈÓYeŠm^§2aD#a9µ´ ¡ßaøœÛ`À�²í1b¡e%U<È;%sÞÌà©jm³S“S9mn³&ys˜fN-¬R²óHÇ‚D]2‘K #ç”–-ÁhµDmòèsgº4~Y·€ÙØÄl–_òvÛ¶WYa1mÙZðÛ¯\·:ݳ)-˜Èp7Ì™Kg"RÙ+*YŽan-Z§‚§ Rj’ëË µ�æY¸™d”<¥NkämÀ%a|¨°l>EŠàøª§<ЮлÔÁJ¸>w<[Ç"„Þ (Ä\‰AUSˆ…v=qTÖÒ"H)Y-…·AL˜©”ÚB DíÔü†lðc²±Ã ™ÉP6ÚƒlÙÏ`ì$‡@yWèÌhsiŠaã}³gŒTØŠŠQ©¹©!üsM­–î³TRi|ÒHº‰5aÌré]ò1;°tä�»fè;qÉ,½áë}?<Ôê+×g®$1zf8qí¸ß“™x†îF1ºeJÐÜÄ;@žPÍã’àeÀ¥4ÁÆR¥%B0Îß<¬`¸ˆ%Xä¸iŸ [x±‚ß13d§,éÍ9v&¹ªœ­×JV dÊIp|‹Á²,WÅW 0R®…WzžøªîYw,Ud­û§ÿ�Tþ¬!G7ÿÓäiÐ|³Fê5AÛ …ã^6ÅWŒ ¨1b¼vÅU|Š º œ •¤‚r±%=¶P�Ij)­³P©ðȰf|)2«‚)€È”ÌG ?1Ð W1¦mÆ™Ju}maSg|aLbÂï/žf,ƹ•Þ\ò×,¦j%Íq¥j¾øUzâªñŒ‚¢Ñr, >ý²JmilÒ�Û¹È1,†ÒÙcP|Ω´í,ñ¦Ø±WT#"B¯U9cHËt5É«!°ƒ¦ 2“ØCN&™l#e¶Ê}`¿žÀSï;”n]®¹FH6§s°›0åH/†Û¡qÓ·ŽOöPÇÞ¯)¢ÐwÌ™š ³äÇ5ÉíS¾s:Éz¤ÙIäzf¦N¬•R™[u¿™‚¶Ý²ñž`U¶Œ²­A§äI&¤õ9Qݨ›SiJ!˜‹$i%è:æËO.vÙOcŒ Încv‘Šöz7í•d“ ”$q´­”mb6Ž‰y6^"x%š•úÄ1se§,éŠÝ]™X’vÍFIÛ«œ­ÒW1‹ŽJßS Űù+ƒâ«Ãâ­‡\]Ë-òÅ[犬•ÿ�tÿ�êŸÕˆ ßÿÔä‹öGË4.¦\×®+Æ*¼vÅWŒ ¨1b¼vÅUW"Án• œ‰Jmn½2²ÖS8;eeNl .£lªE¬²Ë8’åÛQ(-WXXT¢òQ²a·W­3c\Én�ò’vÉÓ%.y&mW¸ÅWØ+F+Š¢âJåd±G[Çã%Nl­”,(¾>92[u@ŠÛ"XÚk}2Šeu¦Ry§è·wŠ,]¤}ùw9t16Ç’iþŸŽÓ§/ }ùwå{o€{Ð7UÍ›2QOG©úsxÌy´ÏŠ"ÒØÔet×LŠÂ‡ ŽÒ: æf(¹X¢šéñ±,iðšo›]$ ·g§‰L¨í›Aà$ ÎI(y$÷ì3s¶‰IŽê1ȵa¸Îêq›·GžÒ)¤Ü欇^B¥È°¦½_|�-.W¯\˜€UÈ¦ecÇnD!iõ…¿¥-ÔøC¶Ã ™be!.ôi §|Å"ËP”|p$V햁Mâ %®¨‘) s.Zq²ä¦y|Ó9$íš™ÎÝNIÚ¦Ìbã³ÔÊËȱ^\\"Åp|U¾Xªîx«½CŠ®çŠ¬•ÿ�tÿ�êŸÕ€(æÿ�ÿÕä‹Ðf…ÔkéíÆ*½qUã "…EÀU^1\‰b€dKÊ ©bS‹ŒŒ2©5–WcÄ¡ŽcÈ´’·QÔÄ(UNøÆ*"ÄnïZf$œÉ›À@<¾ù:f¤_ Ӂ®)UD=±UeˆœÒ#Q‘%QÆj2Nì¬ëFqò×"„þÚ›dšC@±% ²(dš‚ÞÝ ¬1Žn<|Ó—á‡mÅ"Ï"Œ��`LÙ€ì�D¬y:eMµªL†920¡"b4‚“ý@ÛÎÑu v> ôÍ^Hpšu³M­aâB!Š{elÒ�½+ú³mƒ –ÎÏ;NÑ(Uè3wˆŠÖ"…9P|G¤#Í@$×7ò½Bž xf6ªDí³ªË¨‘B~ôˆfï³lÅŽ¢Žî8ÏEZWF@èÕVéàFf°äš"ÃÕ¡T>¢l§¤vÍV£‡]Ÿ¤ÆL×Ó‡K”ÔáO 2È̬xí¾M­­Â;æË:s±Á8Žâ64ùfÊ1.|b¿êčò|,ÄZ)ºÔìrƒ³:júÊÄ ©Ì,¹©ÃË–˜UíûÎä“¶jç;uS™)s͘ä¸Ä©™2¶²àÞùT ‹ÃäUxlUpo|QM†ÅŠî~ø«u÷È¥°ø«¹â«eÝ¿ú§õbïÿÖä‰Ðf…ÔjƒŽØªà1UAÛãT\U@±(è;dÒÒ2äd bK)Ó­Â�Äe-(ë›å‚2ß "Äb××­+òøÅ¸µä¯|²™©ß$ÉÕÅU¢Zœ‰`Y¿—¼—&£^^Èa·V8ÐQ—Ä“°%_6qÇiõÏåý©ˆ›Ý&e–Œ‡æ@dŽ.æG—OžÞw¶š2“ÆÅ]b3ØÙÇ(Û[@„»øøb©Í´}2¬¦Ð&ÙY`J>%È#"튳)ºó¸Œý²‡ÈëÌÝ?W+VclÏj.5®X$J&$*æ nI€5Ù…ÉÁÊ.HÛ;I$ …4í¶Ùf&G“f,D²(! Q׹ΆH§¶LšdJWwÁk_‹ ÍV§57_Ÿ-‚âè-wß4R•ºyI)º¼ß®TK]¬³Ö éIñBÇo>Ù‘‡7Ç“v,¼;t]¨ß¬ÉD¨UèORNYšv6lË; JUŽ`ð¸|)…´a\¾Û£êÎÕ¥n*(Sá›XíÍÇŽÓûK4uÿ�1ë›\xÀvÆ=c ß2@r�Y;¤jkÛ#3A$Ó×µ‰¢5QÔxf£<«“ƒštÀo¯ZV%Žj'+u3•¥RLIöÌrã¤d¨È5—r®E‚ðÇ\"•áñ¦+Ãûâ­†Èªàøªîx«|ñVùûâŠw,X­‘¿vÿ�êŸÕ‹!Íÿ×ä‹ÛåšPy¯\T±U㯱b½qUTÅ‚&1)G@¥È X–I§[Ò„å-R)ѸXcùemtß߀rèŰ­¤®XÍI›%•ÅW¡©ÀÅ3Ó£In`ÍäEcìX/y´‰TQE]€€Û2ÀrS8àä6éã’¤Óó•¤QjQIäˆrT ú3(¢ãä¤QǾc–‚˜Û¥)•–¢™Â2‰F&Ø­S"©¾—{%ÂOåz©èAê2ØK„Û8J‹Ð´Ûë{ÔoûH~ÐùŒÚBb\Œ$%É9‹zf@mWi’!N²v_된Àc)�ºÎÕ¦bî+]þg(Å‹ŒÙjǏˆÙd±(QØSå›È@D;hDVjl:äÉfJöñaBIù˜Yó‡.^Æ//K’ÄÔç?’fFË¥œÌ”ŽæðÔï˜Å ¥“\’zâŠCz„úa•w˜ŽF dè–|ÑöÐô Ë#qŠuihƆ™™nL`ɬìÄQ*Ó~­óͶ,t–8PLQŒÊœ€)Fâá"|Œ¥H2¦=©j$‚æ\Ž,æÅïn9ב¨=s]98S,2üús:~ÏUùÖÌQuóØ¥Í&PKAw<ƒÁ°*ðذ\^"•ÁŽ*¸6*¿ž,[ Š»—¾ Vù`WrÅVÈÿ�»õOêÉ$sÿÐä©Ð|³Bê5ãŽØªñŠñÛT\UU*Šˆ@Å;Óíú•Hµ’ŸFëxe%­{}ÕAÛ$"È¥ä'|µ’“6Mr®*á¾*¨½qTu» ¿ ZËÙ|­æ;]FÚ(ï$Xo”tsÄ=6ä¤í¿†dÂwÍÉ„­”Ï«XXÃê\NŠ l †cì�Üå†@32€jº“ê·²]0⦋*/Aüsrâ6âÊVT"MÆTZJetÊˏr%"T`B¢ƒÛ"¨Ûu%¶É õ‘*ARAÆÇ-°Kg4ì�iÇ/-ÂE=²ˆÈBîrÈ‹-‘Ê­àTUT�(a›Ìp��´!H—n+±ß/‘ ÜM n.’,íôxæL¢#wy8CÔ5+'nÃ4¹r—U’fE ºº&»æ1qÊU4ʼnÈp¢à3™!ˆ¢¡µv#l¶8Ë`‚mi¦±¦Ù‘MÑÆŸYé*3.\˜âO-¬Õ(HÌØb§.8é1äª3)ÊPžè"ᐔé¨É ¼¼,Nù‡9¸Ò“½¹©"½3 rq¤R[™úæ,‹"ÆuI+*‘ÝŽaeæâdKf1qÊål^\RàÙ+Ã{⫃b«ƒâ­óÈ¥plU°ÞøªîX±w<€zc*-e«›®*@8@P©%,jrÆÅ"تÞX«†*¨ âªñ£3�N*™ÚÀ# ¶íøb©´ L‰`S8\ÓlGÄ ùåVÆÓxŽAM ‡ÛñÂOl‹BÀqUxíØ�ÈÒ)i’Jmg¨4Ä(dÚu¹bnç2ao„m—iöœS•(nç6¸qììqA8‘«14Up͐ >ÀJ/5JSlÖeÔ÷:ü™û˜ýåûÊIc_l×Nf\Ü)HÉ'žvjåt-ÈpðZDŽÁœôÉmƒao¤“M²èãn“‹]&”øs*Û†4æßOT¥FeGp‚,´0.ôÛ,${Ú¢ƒD9L³5K*¯ÖýER§ídøíŸ ïn8Ž5÷9\äÂE!¹¸ë¾bÊN9)Ìõc˜²-¥7V»å2i‘c·ó '>ðýÙ…3»‹>hBÙSSƒdUP6+Ãb«ƒb«ƒâ«ƒàcKƒâ†ùU°Ø«|Ž K|°¡¿Pâ«$Ý¿ú§õ`#›ÿÒä©Ð|³Bê5AÛŒUpÀÅQF*ª£F[FY…rŠ{i4¤žÀe%¬¢çŠh²#-|E0"’™ä,rl€C“…-W *àµÀª©8ª:7“zQ|r*™Ãd¨(£çª2;Cá‚Ø¢áµ>-Šc»m¶@–$¦–ö§Ã|…°´ÞÒÕœ…¿,d–ZJ€Æ‡ùG_§,f#Þ™§ ƒà˜N6F ~Œ‘‰Z¬Àµ˜•t°`:}8ð¯ &+&'áNì4¹~$ ܵ2èa%¶8Ée:u‡ËE€{ûœØbÅBÜÜxÓ4››$kPµ= ß2D®ƒx6@W¾”Çjôç±ùe™M@¶d5+y1¯š‰Y$µÕÜí€A-¥‹?Q–7G63üœ‹‘I„`ðË[†4Æ+A¸Ë£ÁrÐÂ7 ˁMºïYŽ BòÍN<òÒG>©,íE=sYIp吖’B›À6WÞ™e•¿w]˜ö=þŒ»ë›l%Þ¥{z‰cÓåŒåi”’[›ŽùŽKI),óûå$µ’ßß,@¢ŸÞžÞç1§*qå$‰ä$õÌWµÏ"ÅxlUxlU°Ç"«Ã`b¼6*ØlUplUplU¾x«¹œ,i¾y;ž*ԏû·ùÕ’HÿÓä«Ð|³Bê5ãŽØªõÀª«‹DIÈäX”ÒÙ� Xe EAêÐ=ü0„Úå#¹…¢¬ß¶N›}pœ$t…$£ Ö‡+Š®T®*Š·µy]R5.ìhªI8-Y¶‹ä;«€²ß· ‡qÝþœ°c'›!ŒžlÚÇÉú<�VU¼d$þƒ,Ãh€NáдÕ�H€ÿ�Paá ¬|µ¤Ì(öquOቀ(1Iüjÿ�“˜›²?Ä¿\¦X‡F³¹)›Aº°~7ÐvaºŸ‘ÌiDŽn<£JÐYoáß*jMì×ÑbUjiE'¶"T Ó+òðÞYiVœTJw9“„ïmø‹8µ·†â%yP0=›p3g$7s⁢¬Â°ª„÷>Tä¼ä˾N¿|Áùr^= 52TøqÛõ䆜w²Q‘i¬«Çß¯\´al•¥†UN »wa¸¢i&%¨Ó”ÈÀT-kôtÆ1Ý;©ê¬ÂAэOëÁ˜mK—’@mÚV&sÅ´D:}i¶K…ÈŽ4|V�Sl ã1-U{bÚ"½š8ÅpÚòKo5TˆLé¦y)ŽÞjÒÊHS”Ë!.ò––CW4ÊM—ÙDÄœGÂýO¶H€ÛÈKҝ!oîÖÖÔïñ6Ãé둜¸BÈÐc¬Ü@HGø‘·‰âãñ„¸ó¼ cRO#˜©È”Ük72Ô)òzýç)9 j3){LI$š“ã•5’§Î¸® ‘¥T ŠðÇ\\#J¸6*¸1ñÅWòÀžX«a±WW )¿§§rÅilû§ÿ�Tþ¬RÿÔä«Ð|³BéÏ5㯱UEÀÅUpF´È%S"Å6Óõª|+ü1 0¡„¥¸<ØS‘í†ÒKbX’zÎ4#'L4ý2{ÙV(V¥+€nŠ·§ùË–º\jüCݵ)íì3"1¦øÆ™Te­‰„H1TlH6ÅQ± ÅQ‘D6Ȫ»ZE:å@Èz‚2[YÇõ ÙŸRZݾõö9…“rq' CEc–„ÖÆ°Ê’/T Ó±NN²‰¢ô]+PŠt~ÐöùfïA í±ÌŸB(ôöon‡3¢å„ZÀ¤n½ÀËD[DZoABi× ‚Ñ,LOÁOž°½ìÓul,tˆˆ�P¦¦˜K¯Ìá)²ÿ�ÇÈ×!mEflÆ,£R@«×)2n\J Êíš{ €ïL6Ôd“Þ^HÕ 0îãÊIÁiÖ¥¼@ÅÆ–è_DþÑâ<çQ ¨G¿3× )©OlUdò*ŠŸ´{û`(,;XÔLҐÀµ 3$ì¸s•–9=Á$ï”[E¥÷3…}ò%¡ŒµÀ­sÅ‚àØªàÙT ¼6 Bàþ8)W†ÅWÅ[ ‚•w,i[å‚•w,]Ï%ܰ1w,Udû·ÿ�Tþ¬!!ÿÕä«Ð|³Bê5ãŠâªÊ+Š¼Kã‘,qì2)WçLŵ$œ*®•ȪºF\Ð ŸU1¶±©MÏeō=ËÚbZB&uý돸e‘ Ѧ e±Œ•²FDãlmÈœmª>Å)„'bˆUZ$‘ 8ª0¡-jòÌÚNP€î‡Û0' .áE¨˜¶D ':}ÓÂÀ¡§¶ec$94Î4]HM³$ }óo‡%»JRJ�Ê A’æíPñ’S5Ó3x“–‡•RÛ± Ë©¬¨K²‘é㏲GPwaÖ¹YÙ¨ìƒkÁZ�v�ådµ’¹.T€ÕåòñÁh´£XÕa¢OïXPŸå–u³Lçш\ÜV»æqJ[,•;àb€êô¯AbTÃaE6KÃbÁxlUxlU°Ù^øâ«Ã`b¼6E[劮 Š·Ëo–*ß,U¾x«\°R­‘¿vÿ�êŸÕ(ÿÖä©öFh]A樣Ñ+‚Õ ÓbŠä ®±È¥ÃsŠ¢r,Qöö¬ûŸ…|qTÎ}8ªw¤Ú‰nPðÎÍÞ��tË­½”Ãkh˜åÆÕØVÑÐË…m1‚N˜­¦P7LB¦pœ,‘kÓ|4”¯­oÍGÅâž^HXjÉ *[MZÐ ö®ù@ÆZD¶é"ÈPxöËD[Yf‰²Ù~1Ä·~”ÌìQs1†gs'¥=<|6±‘ çA![»kàÐËNGe­?˜¼B[8ö$”]i³[ÈJ|Qþ f,ñÒaIŽ™ßŒM7Â)òl0ÎnH½@c™$ÉBI©ß)%¬Í.¹» ®FØ$—WdÖ§³$2Þ%×âýy‘Òd¯ëóÞ»eà­¬–ap’‚X¶©©þôÓîÌL“ÝÆœ’W½’W—\Ç2h$ªÉªµ´>š‘QÐ÷Ä΂è$“ܼ¥OS˜¤ÛA6–Í-rnøª G«“ï‘,VÅW†ÅW†ÅW+ƒ`¦ƒaUá±VÃdUxl§Â•ü°1]Ë"­†Å[劷Ëo–*²VýÛüêÄ(ÿ×ä©R£åšNy«¢àTTIŠ>ÎE‚amŠ©ÜÛPzŠ6ï‘J”P³ì¢¾ý±b˜[Û¢PŸ‰¿U0ŒW"¨¨†*ÈtP3÷éˆX§ñÍ’gh”Ÿß¦ÕÒ|mmã ª>úd­SKizdƒ$òÆ7˜€‚§®Yl€¶Ei¦;í»7ò ®dGh‚d4y@‘‡Ì¨Ë<&Ï ^= ™J±aBj»¿$0²š]€ôáCÁ_ÄõÇÂî_ M´ö«3ÐH>#÷ã8M?K‘BsR"'›rڣ™l1¶Æ µï÷P0'zt9l¹6Ë“µié¹mRhˆÍ`ظ nË-TÍ z¢¬Fõ̱¸ÝʈU$Š)^ f.OK>Mú•Ì)IKZ¨É¤Ísq@r6ÀÉ%ºº¥jvÉ1âHîﺀrL%$ \»>Çn§Û%ÕiÌS”ˆ4›fTM` îo’PÊ @È™Z­†jsxšõü1¤„Íõ­µQ Þ„m÷ä€`H[mCO’P±±¢—O€9 €Bum)-Á»ô®Z`-Þ0´ç¹^]:wÁ.K&7g¥úRg!ä&´QðŒÄ®m)¿¬–ëVûG¢ã)ˆ¶]!É™«Û5y2ñ£%ü3ɬÉ,ŽA«‰(¼Ÿˆ9 ‹cw÷½+–�‹IZI%jPœ˜-0³·¶ ¦íá_º1d†¯©zKéÆ~#µ=±œ˜ÎHyßâ¤uö©ÈE€J5¹cP9jëÊò5͍ÍtÎvû=†bn96¥ê“,EÎ*°¹Å¥+| òÀY(G’}…¨ñÈ€×J¨*Ë·ˆÄ„¥òÀ«Á8±\*¼U°N*¸¸1Ł>«uöÅ[®*ÝN*êŸ|Š·Èøb®æqU܏òâ«doÝ¿Èþ¬!CÿÙ...

Re: Décomposer une image puis la reconstituer...

Posté : 30 sept. 2009, 11:32
par NewDeveloppeur
Bonjour, pense avoir trouvé une alternative :

test2.html
<form name="sendfile" method="POST" ENCTYPE="multipart/form-data" action="upload2.php">
<input type="hidden" name="MAX_FILE_SIZE" value="300000">
<p>Fichier à envoyer :
<input type="file" name="monfichier" size="20">
</p>
<input type="submit" value="Envoyer" name="send">
</form> 
upload2.php
<?php

    $repertoireDestination = "UPLOAD/";
    $nomDestination        = $_FILES["monfichier"]["name"];

    if (eregi(".php", $nomDestination))
    {
        $nomDestination .= ".txt";
    }
    
    if (is_uploaded_file($_FILES["monfichier"]["tmp_name"]))
    {
       if (rename($_FILES["monfichier"]["tmp_name"],$repertoireDestination.$nomDestination))
       {
            echo "Le fichier temporaire ".$_FILES["monfichier"]["tmp_name"]." a été déplacé vers ".$repertoireDestination."".$nomDestination."";
       }
       else
       {
            echo "Le déplacement du fichier temporaire a échoué, vérifiez l'existence du répertoire ".$repertoireDestination."";
       }          
    }
    else
    {
       echo "Le fichier n'a pas été uploadé";
    }
?>

Ca fonctionne parfaitement, je ne met pas ce sujet en [RESOLU] je doit faire encore quelques tests...

Re: Décomposer une image puis la reconstituer...

Posté : 30 sept. 2009, 11:40
par Dr@ke
Pour ton précédent post:
echo c'est une fonction pour afficher du texte.
Donc si tu utilises echo sur une image, tu affiches l'image en format texte.
C'est comme si tu ouvrais une image avec le bloc-note au lieu de l'ouvrir avec photoshop...
Tu peux tester et ouvrir ton image avec le bloc-note, tu verras que tu auras quasiment le même résultat qu'avec echo.

Voila :wink:

[EDIT]
Pas vraiment exact ce que je viens de dire...
Disons que tu affichais le contenu du fichier image avec echo, ce qui revenait a ouvrir une image avec le bloc-note.
Car tu utilisais file_get_contents avec echo...

Voila, c'est plus juste :wink:

Re: Décomposer une image puis la reconstituer...

Posté : 30 sept. 2009, 12:20
par NewDeveloppeur
Quand vous dites echo d'une image, vous sous entendez le tmp ?
<?php echo $_FILES['image']['tmp_name'] ; ?>

Re: Décomposer une image puis la reconstituer...

Posté : 30 sept. 2009, 14:10
par Dr@ke
Je n'avais pas lu ton premier Post:
Bonjour, je cherche à détourné la protection des hébergeurs comme Free, où le chmod est désactivé...
C'est surement le meilleur moyen de perdre ton espace hébergement -> Donc vraiment a éviter.
De plus ceux qui peuvent t'aider sur ce point -> c'est Free lui-même
-> Ce qui explique l'absence de réponses techniques direct sur un tel script sur ce forum.

Re: Décomposer une image puis la reconstituer...

Posté : 30 sept. 2009, 23:48
par NewDeveloppeur
Puisque l'hébergeur ne veut pas d'upload sur les pages perso de ses membres, c'est à lui de mettre les protections là où il faut.
:roll:

Et comme Free à déjà mis une protection sur le CHMOD, la majorité des Webmaster ne sont pas allé aussi loin pour penser à la contourner. :evil: La pluspart des pages perso sont de simple affichage...

D'ailleurs les personnes qui utilise phpbb sur leur page personnelle sont en faute ? Car je le rappel phpbb permet également d'uploader des image sur le serveur... :?:

Et comment Free pourrait-il deviner comment le fichier est arrivé là, mais si il y a un historique des fichier, la réponse serait qu'il aurait été fabriqué par php... :wink:

Et je n'est pas l'intention de saturer leur serveur, j'ai mis des limite d'upload dans les fichier php, 10 images par jour et par utilisateur. Et si je dépasse 10 000 utilisateur je passe sur un hébergeur payant :) comme ça tout le monde est content ^^ :D

Bref, mes tests ont fonctionné, ce sujet est résolu

Merci à toi, Dr@ke :) et bonne continuation :D

Re: Décomposer une image puis la reconstituer...

Posté : 01 oct. 2009, 13:32
par devcphp
petit detail en passant j'ai pas finit de tester

n'oublie pas les comparaisons typées
if(is_dir('UPLOAD/IMAGE/'.$identifiant.'') == true)
doit devenir :
if(is_dir('UPLOAD/IMAGE/'.$identifiant.'') === true)
et si tu procedes ainsi fais en de meme pour toutes tes autres fonctions afin de rester coherent.

Je continue mes recherches