|
/**
* Une applet realisée pour NCorps
* video betasp (demo 35 minutes)
* systeme : installation multimédia.
* @author Sylvain MARGA
* @version Mars 1998
*/
import java.awt.*;
import java.awt.image.*;
import java.applet.Applet;
import java.applet.AudioClip;
import java.util.Vector;
import java.util.Hashtable;
import java.util.Enumeration;
import java.util.Random;
import java.net.URL;
import java.net.MalformedURLException;
public class NPAnimator extends Applet implements Runnable {
Vector images = null;
Hashtable durations = null;
Hashtable sounds = null;
Hashtable positions = null;
static final int STARTUP_ID = 0;
static final int BACKGROUND_ID = 1;
static final int ANIMATION_ID = 2;
URL startUpImageURL = null;
Image startUpImage = null;
URL backgroundImageURL = null;
Image backgroundImage = null;
Color backgroundColor = getBackground() ;
URL soundtrackURL = null;
AudioClip soundtrack = null;
URL hrefURL = null;
int appWidth = 0;
int appHeight = 0;
boolean imageLoadError = false;
URL imageSource = null;
URL soundSource = null;
Thread engine = null;
int frameNum;
Integer frameNumKey;
int xPos = 0;
int yPos = 0;
int nbImageDef = 1;
public static final int defaultPause = 3900;
int globalPause = defaultPause;
boolean userPause = false;
boolean repeat;
Image offScrImage;
Graphics offScrGC;
MediaTracker tracker;
boolean loaded = false;
boolean error = false;
static final String imageLabel = "image";
static final String soundLabel = "sound";
boolean chargement = true;
int numImageChargee;
public String getAppletInfo() {
return "NPAnim for None Production\n For Jack";
}
public String getParameter(String key) {
String result = super.getParameter(key);
return result;
}
final int setFrameNum(int newFrameNum) {
frameNumKey = new Integer(frameNum = newFrameNum);
return frameNum;
}
Vector parseImages(String attr, String pattern)
throws MalformedURLException {
if (pattern == null) {
pattern = "T%N.gif";
}
Vector result = new Vector(10);
for (int i = 0; i < attr.length(); ) {
int next = attr.indexOf('|', i);
if (next == -1) next = attr.length();
String file = attr.substring(i, next);
result.addElement(new URL(imageSource, doSubst(pattern, file)));
i = next + 1;
}
return result;
}
boolean fetchImages(Vector images) {
int i;
int size = images.size();
int[] pix = new int[appWidth * appHeight];
chargement = true;
for (i = 0; i < size; i++) {
Object o = images.elementAt(i);
if (o instanceof URL) {
URL url = (URL)o;
tellLoadingMsg(url, imageLabel);
Image im = getImage(url);
tracker.addImage(im, ANIMATION_ID);
pix = handlepixels(im,0,0,appWidth,appHeight);
Image imFinale = createImage(new MemoryImageSource(appWidth, appHeight,
pix, 0, appWidth));
images.setElementAt(imFinale, i);
numImageChargee= i;
repaint();
}
chargement = false;
}
try {
tracker.waitForID(ANIMATION_ID);
} catch (InterruptedException e) {}
if (tracker.isErrorID(ANIMATION_ID)) {
return false;
}
return true;
}
public int[] handlepixels(Image img, int x, int y, int w, int h) {
int[] pixels = new int[w * h];
int tailleDecal, locDecal;
int[] pixelDecal = new int[w*h];
int i,j,bitDecal;
Random nbHazard = new Random();
PixelGrabber pg = new PixelGrabber(img, x, y, w, h, pixels, 0, w);
try {
pg.grabPixels();
} catch (InterruptedException e) {
System.err.println("interrupted waiting for pixels!");
return pixels;
}
if ((pg.status() & ImageObserver.ABORT) != 0) {
System.err.println("image fetch aborted or errored");
return pixels;
}
if ((int)((nbHazard.nextFloat()*nbImageDef)) == 0)
{
if ((int)(2.01*nbHazard.nextFloat()) == 0)
{
tailleDecal = (int)(nbHazard.nextFloat()*(float)(w*h));
System.out.println("decal"+w*h+","+tailleDecal);
for (i=0; i< tailleDecal ;i++)
pixelDecal[i] = pixels[i];
for (i=tailleDecal;i<w*h;i++)
pixels[i-tailleDecal] = pixels[i];
bitDecal = (int)((nbHazard.nextFloat()*4)+1);
for (i=0; i< tailleDecal ;i++)
pixels[i+w*h-tailleDecal] = pixelDecal[i]>>>bitDecal;
}
else
{
locDecal = (int)(nbHazard.nextFloat()*(float)((w*h)-(w*h/10)));
tailleDecal = (int)(nbHazard.nextFloat()*(float)(w*h/10));
System.out.println("Black
Line:"+w*h+",tailleDecal:"+tailleDecal+","+locDecal);
for (i=w*h-1;i>=locDecal+tailleDecal;i--)
pixels[i] = pixels[i-tailleDecal];
for (i=locDecal;i<locDecal+tailleDecal;i++)
pixels[i] = 0;//0x00F0F0F0;
}
}
return pixels;
}
Hashtable parseSounds(String attr, Vector images)
throws MalformedURLException {
Hashtable result = new Hashtable();
int imageNum = 0;
int numImages = images.size();
for (int i = 0; i < attr.length(); ) {
if (imageNum >= numImages) break;
int next = attr.indexOf('|', i);
if (next == -1) next = attr.length();
String sound = attr.substring(i, next);
if (sound.length() != 0) {
result.put(new Integer(imageNum),
new URL(soundSource, sound));
}
i = next + 1;
imageNum++;
}
return result;
}
URL fetchSounds(Hashtable sounds) {
for (Enumeration e = sounds.keys() ; e.hasMoreElements() ;) {
Integer num = (Integer)e.nextElement();
Object o = sounds.get(num);
if (o instanceof URL) {
URL file = (URL)o;
tellLoadingMsg(file, soundLabel);
try {
sounds.put(num, getAudioClip(file));
} catch (Exception ex) {
return file;
}
}
}
return null;
}
Hashtable parseDurations(String attr, Vector images) {
Hashtable result = new Hashtable();
int imageNum = 0;
int numImages = images.size();
for (int i = 0; i < attr.length(); ) {
if (imageNum >= numImages) break;
int next = attr.indexOf('|', i);
if (next == -1) next = attr.length();
if (i != next) {
int duration = Integer.parseInt(attr.substring(i, next));
result.put(new Integer(imageNum), new Integer(duration));
} else {
result.put(new Integer(imageNum),
new Integer(globalPause));
}
i = next + 1;
imageNum++;
}
return result;
}
Point parsePoint(String s) throws ParseException {
int atPos = s.indexOf('@');
if (atPos == -1) throw new ParseException("Illegal position: "+s);
return new Point(Integer.parseInt(s.substring(0, atPos)),
Integer.parseInt(s.substring(atPos + 1)));
}
Hashtable parsePositions(String param, Vector images)
throws ParseException {
Hashtable result = new Hashtable();
int imageNum = 0;
int numImages = images.size();
for (int i = 0; i < param.length(); ) {
if (imageNum >= numImages) break;
int next = param.indexOf('|', i);
if (next == -1) next = param.length();
if (i != next) {
result.put(new Integer(imageNum),
parsePoint(param.substring(i, next)));
}
i = next + 1;
imageNum++;
}
return result;
}
Dimension getImageDimensions(Image im) {
return new Dimension(im.getWidth(null), im.getHeight(null));
}
String doSubst(String inStr, String theInt) {
String padStr = "0000000000";
int length = inStr.length();
StringBuffer result = new StringBuffer(length);
for (int i = 0; i < length;) {
char ch = inStr.charAt(i);
if (ch == '%') {
i++;
if (i == length) {
result.append(ch);
} else {
ch = inStr.charAt(i);
if (ch == 'N') {
// just stick in the number, unmolested
result.append(theInt);
i++;
} else {
int pad;
if ((pad = Character.digit(ch, 10)) != -1) {
// we've got a width value
String numStr = theInt;
String scr = padStr+numStr;
result.append(scr.substring(scr.length() - pad));
i++;
} else {
result.append(ch);
i++;
}
}
}
} else {
result.append(ch);
i++;
}
}
return result.toString();
}
Vector prepareImageRange(int startImage, int endImage, String pattern)
throws MalformedURLException {
Vector result = new Vector(Math.abs(endImage - startImage) + 1);
if (pattern == null) {
pattern = "T%N.gif";
}
if (startImage > endImage) {
for (int i = startImage; i >= endImage; i--) {
result.addElement(new URL(imageSource, doSubst(pattern, i+"")));
}
} else {
for (int i = startImage; i <= endImage; i++) {
result.addElement(new URL(imageSource, doSubst(pattern, i+"")));
}
}
return result;
}
public void init() {
tracker = new MediaTracker(this);
appWidth = size().width;
appHeight = size().height;
setBackground(Color.black);
try {
String param = getParameter("IMAGESOURCE");
imageSource = (param == null) ? getDocumentBase() : new
URL(getDocumentBase(), param + "/");
String href = getParameter("HREF");
if (href != null) {
try {
hrefURL = new URL(getDocumentBase(), href);
} catch (MalformedURLException e) {
showParseError(e);
}
}
param = getParameter("PAUSE");
globalPause =
(param != null) ? Integer.parseInt(param) : defaultPause;
param = getParameter("REPEAT");
repeat = (param == null) ? true : (param.equalsIgnoreCase("yes") ||
param.equalsIgnoreCase("true"));
int startImage = 1;
int endImage = 1;
param = getParameter("ENDIMAGE");
if (param != null) {
endImage = Integer.parseInt(param);
param = getParameter("STARTIMAGE");
if (param != null) {
startImage = Integer.parseInt(param);
}
param = getParameter("NAMEPATTERN");
images = prepareImageRange(startImage, endImage, param);
} else {
param = getParameter("STARTIMAGE");
if (param != null) {
startImage = Integer.parseInt(param);
param = getParameter("NAMEPATTERN");
images = prepareImageRange(startImage, endImage, param);
} else {
param = getParameter("IMAGES");
if (param == null) {
showStatus("No legal IMAGES, STARTIMAGE, or ENDIMAGE "+
"specified.");
return;
} else {
images = parseImages(param,
getParameter("NAMEPATTERN"));
}
}
}
param = getParameter("BACKGROUND");
if (param != null) {
backgroundImageURL = new URL(imageSource, param);
}
param = getParameter("pcimagedef");
if (Integer.parseInt(param) >= 1) {
nbImageDef = Integer.parseInt(param);
}
// REMIND implement this!
param = getParameter("BACKGROUNDCOLOR");
if (param != null) {
backgroundColor = decodeColor(param);
}
param = getParameter("STARTUP");
if (param != null) {
startUpImageURL = new URL(imageSource, param);
}
param = getParameter("SOUNDSOURCE");
soundSource = (param == null) ? imageSource : new
URL(getDocumentBase(), param + "/");
param = getParameter("SOUNDS");
if (param != null) {
sounds = parseSounds(param, images);
}
param = getParameter("PAUSES");
if (param != null) {
durations = parseDurations(param, images);
}
param = getParameter("POSITIONS");
if (param != null) {
positions = parsePositions(param, images);
}
param = getParameter("SOUNDTRACK");
if (param != null) {
soundtrackURL = new URL(soundSource, param);
}
} catch (MalformedURLException e) {
showParseError(e);
} catch (ParseException e) {
showParseError(e);
}
setFrameNum(0);
}
Color decodeColor(String s) {
int val = 0;
try {
if (s.startsWith("0x")) {
val = Integer.parseInt(s.substring(2), 16);
} else if (s.startsWith("#")) {
val = Integer.parseInt(s.substring(1), 16);
} else if (s.startsWith("0") && s.length() > 1) {
val = Integer.parseInt(s.substring(1), 8);
} else {
val = Integer.parseInt(s, 10);
}
return new Color(val);
} catch (NumberFormatException e) {
return null;
}
}
void tellLoadingMsg(String file, String fileType) {
showStatus("Animator: loading "+fileType+" "+file);
}
void tellLoadingMsg(URL url, String fileType) {
tellLoadingMsg(url.toExternalForm(), fileType);
}
void clearLoadingMessage() {
showStatus("");
}
void loadError(String fileName, String fileType) {
String errorMsg = "Animator: Couldn't load "+fileType+" "+
fileName;
showStatus(errorMsg);
System.err.println(errorMsg);
error = true;
repaint();
}
void loadError(URL badURL, String fileType) {
loadError(badURL.toExternalForm(), fileType);
}
void showParseError(Exception e) {
String errorMsg = "Animator: Parse error: "+e;
showStatus(errorMsg);
System.err.println(errorMsg);
error = true;
repaint();
}
void startPlaying() {
if (soundtrack != null) {
soundtrack.loop();
}
}
void stopPlaying() {
if (soundtrack != null) {
soundtrack.stop();
}
}
public void run() {
Thread me = Thread.currentThread();
URL badURL;
me.setPriority(Thread.MIN_PRIORITY);
if (! loaded) {
try {
// ... to do a bunch of loading.
if (startUpImageURL != null) {
tellLoadingMsg(startUpImageURL, imageLabel);
startUpImage = getImage(startUpImageURL);
tracker.addImage(startUpImage, STARTUP_ID);
tracker.waitForID(STARTUP_ID);
if (tracker.isErrorID(STARTUP_ID)) {
loadError(startUpImageURL, "start-up image");
}
repaint();
}
if (backgroundImageURL != null) {
tellLoadingMsg(backgroundImageURL, imageLabel);
backgroundImage = getImage(backgroundImageURL);
tracker.addImage(backgroundImage, BACKGROUND_ID);
tracker.waitForID(BACKGROUND_ID);
if (tracker.isErrorID(BACKGROUND_ID)) {
loadError(backgroundImageURL, "background image");
}
repaint();
}
// Fetch the animation frames
if (!fetchImages(images)) {
Object errors[] = tracker.getErrorsAny();
Image im = (Image)errors[0];
// Need to get some kind of readable name here
loadError(im+"", imageLabel);
return;
}
if (soundtrackURL != null && soundtrack == null) {
tellLoadingMsg(soundtrackURL, imageLabel);
soundtrack = getAudioClip(soundtrackURL);
if (soundtrack == null) {
loadError(soundtrackURL, "soundtrack");
return;
}
}
if (sounds != null) {
badURL = fetchSounds(sounds);
if (badURL != null) {
loadError(badURL, soundLabel);
return;
}
}
clearLoadingMessage();
offScrImage = createImage(appWidth, appHeight);
offScrGC = offScrImage.getGraphics();
offScrGC.setColor(Color.lightGray);
loaded = true;
error = false;
} catch (Exception e) {
error = true;
e.printStackTrace();
}
}
if (userPause) {
return;
}
if (repeat || frameNum < images.size()) {
startPlaying();
}
try {
if (images.size() > 1) {
while (appWidth > 0 && appHeight > 0 && engine == me) {
if (frameNum >= images.size()) {
if (!repeat) {
return;
}
setFrameNum(0);
}
repaint();
if (sounds != null) {
AudioClip clip =
(AudioClip)sounds.get(frameNumKey);
if (clip != null) {
clip.play();
}
}
try {
Integer pause = null;
if (durations != null) {
pause = (Integer)durations.get(frameNumKey);
}
if (pause == null) {
Thread.sleep(globalPause);
} else {
Thread.sleep(pause.intValue());
}
} catch (InterruptedException e) {
// Should we do anything?
}
setFrameNum(frameNum+1);
}
}
} finally {
stopPlaying();
}
}
public void paint(Graphics g) {
if (chargement)
{
System.out.println("numImageChargee:"+numImageChargee);
if(images.elementAt(numImageChargee)!=null)
g.drawImage((Image)images.elementAt(numImageChargee), 0, 0, this);
g.fillArc(20,25,15,20,0,numImageChargee*360/images.size());
}
else
if (error || !loaded) {
if (startUpImage != null) {
if (tracker.checkID(STARTUP_ID)) {
g.drawImage(startUpImage, 0, 0, this);
}
} else {
if (backgroundImage != null) {
if (tracker.checkID(BACKGROUND_ID)) {
g.drawImage(backgroundImage, 0, 0, this);
}
} else {
g.clearRect(0, 0, appWidth, appHeight);
}
}
} else {
if ((images != null) && (images.size() > 0) &&
tracker.checkID(ANIMATION_ID)) {
if (frameNum < images.size()) {
if (backgroundImage == null) {
offScrGC.clearRect(0, 0, appWidth, appHeight);
} else {
offScrGC.drawImage(backgroundImage, 0, 0, this);
}
Image image = (Image)images.elementAt(frameNum);
Point pos = null;
if (positions != null) {
pos = (Point)positions.get(frameNumKey);
}
if (pos != null) {
xPos = pos.x;
yPos = pos.y;
}
if (backgroundColor != null) {
offScrGC.setColor(backgroundColor);
offScrGC.fillRect(0, 0, appWidth, appHeight);
offScrGC.drawImage(image, xPos, yPos, backgroundColor, this);
} else {
offScrGC.drawImage(image, xPos, yPos, this);
}
g.drawImage(offScrImage, 0, 0, this);
} else {
// no more animation, but need to draw something
if (backgroundImage == null) {
g.fillRect(0, 0, appWidth, appHeight);
} else {
g.drawImage(backgroundImage, 0, 0, this);
}
g.drawImage((Image)images.lastElement(), 0, 0, this);
g.copyArea(50,50,200,200,100,100);
}
}
}
}
public void start() {
if (engine == null) {
engine = new Thread(this);
engine.start();
}
showStatus(getAppletInfo());
}
public void stop() {
if (engine != null && engine.isAlive()) {
engine.stop();
}
engine = null;
}
}
class ParseException extends Exception {
ParseException(String s) {
super(s);
}
}
|
|
This. version 3 from
? c??ps
back to technart.net = ?
must use ie.4.sorry
``~``
'~~
` '$!!~'` `'!!~` `'''
''
`` ` ` `S$**~~` ``` `` `''~'
`
` ```` `` `*$$**!~`` '!'` ` `'`'`
'~~~ `
``` '` ``S&$j&%*~``` `*!~` '~'`
````
` `` `!!!'`'SUAAAU%&!````'!j$$~` `` `~``````
``
```` '!*$$'`!ARAAU&$~`````'!j&U~`'`` '```' `
`~
`` `'*$$S&~'UARUS$j!~'``''`'~!*%!`~' ``
``~
` ``*$&S&*'*AA&$j**!!~'''````'!jj*j!` ` `
~''
````` ` ``` `'*&%%$&j$*AUS$$jjjjj*~``````'*UU&*`'`` ```
`
` ```` ``!j&%&&%S%%U&$&UAU%&&*!'``````'&AA%!~'` ```````
`
`'$!j$&%$&UAUAAUU%%US&&j*~~````'SAR*!j~'!`` `
'`
`` 'j!jjjUS**UAUARRRRA%&$&&&&$*'!``ARRA&$j$~`````
````
`*jj!&URU'!*%%&&%AAAA%$*~$S%S%AU'%RRA&!$$'```` ''` ``
` `'jj!*$RR&`j$U&$$&&S&$j~` *UAAU&U%URR*$~*~`` ````
` `
'``` '!*!*S%RR!~*jj&&jj****'`` '&ARRRARRA$!'`j''`` ```
```''`~'`
```` ` ``!!j&**URR*$$!&S&j*j&j!`````!$S%UUARR~```*~'``
'~~~!'``
` ``'***S`!SRA%Aj*$&*$$&Sj$**~'`~!j$$&UU*```**!` `
`'~~~~'
`~!*S$!%RRRAAUUUS&&$j$&SS%&!''!!!*'&%**`**~!`` ``` `'~~''
`'
`~!!&*&AAARRAAR%%%%&$$SUUS~`'$~'$!*SAUUSj'`! ` ``~'
``''
`` ````` ` `~!!~jUA&&UARRRRAUARMRAAA%``*!!*%&$SR%ARUj!~*`
`*!~'***!!
```````~'''jSUUS$&ARAMRRRUUUAUARAARRj*%AUUURR%RRA!!~*````'***j*!!*!!!~
`
````~~''j!US$$!&RRRMMRRAAUARAAAUARMRRAARMMA$MRRRU$&'~````!!!!```'~!!
`''~``*`SRRRS'&RMMMMMMAA%%URRRRAARRRARRMR&AM$RMRUSU!''`'''`'``*!!*~
````'~'''`SRU**`!UMRMMMMMRU%U%%*&ARRRRMMMMR%&&%RRR&'U'''`*j*$****!~'~
```''~```%*j!`'~URRMRMMMMRRAAUSURRMAMMMMRRS*j!URU$$&~'''**j**$$$~```
''*'!`'~`$!!*!'`URRRMRMMMMMRMRRMMMMMMMMMAAS~j$$$j'!S$'~!~j*!*j&j!*'`'
```!!~*$*!!&j$*!`!RMRRRRMRS&RMMMMMMMR'MMRUAj*j%&A%&S$URS~'~**!!j$!!~*j'
``
``~~~*jj$S~'$&S~~!&AMRMRRARMRRRRMMMMMMR*RRRR%S&$j&RARAS$RU''~j!!!**~*~U&`
`'!**!!$%j'`*&j!!*$A!*!$ARRMRRRMMMRMMMMMMMRRR%RMAAA%ARA$''%'`~'~!*!~`!**!!
`'~!*j**A*!'`*!!*j*Uj~''$ARMARMMMRRMMMMMMMMMRMMMMMRRMMRj!`$S''''`!!!!!**!!!
'~!*j$**%$~`~!~&~``$*&*$RRMMMMMMMMRMMMMMMMRMMMMMMMMMMMRU*RR!''``'~~~!!*!!'`
`'!***!j~&!``$!!'```&!&*$%RRRRRRRRRRMRMMMMMMMMMMMUMMRMR%`RU!`` ``~
~$&&$*'`
`~!!**!!j*'`***$~'``UARR$ARRAMUAURRMMMMMMMMMMMMMMMMMMRj`!A$``
`'```$&&&j!~``
`'~!**j~$j~~j~S$*$!'&RARRU%UA&S$S%AARRMRMMMMMMMMMMMMRRAj'`U~```'
``*$&$$'`!!!
``~~**jj!**~!~jS&$!$UMMMMMM$`!UU*S%%UARRRMMMMMMMMMMMRRAj~~`%%&!~''~~'~jj*
'!$
``'~!!**j*!*!~!!j$$*&MMMMMMMURR$jj*&S%UURRMMMMMMMRMMMRAS~!`'`&S&~~`
``!**!``~!
`'!!***!**$&'!*~*UAMMMMMMMR%RU$'$jj&&S%RRMMMMMMMMMU&UAS$S*```jj~~`
`!!j$jj!'
`~!!*j*j!!$j'*''*UURMRMMMUARRMAR$~$S&&URMMMMMMMRAS&ARRA&j!~`~!'`'`
``!*j*j**
'~!***jj*!$%!UU*$AURRMAAAMMMMMUS&AAA$&UMMMMMMMRARRRMMRRAA**&j$j```
`*j*'''
'~!******!*&UURRAU$$&RAMRMMRMMMMA&MA&$AMMMAMRRRRMMMMRRAU%U&%$$j!~~~~ '~``
`*!
`~!**j***j*$UARMMR%'!%RMRMR!RMMMMMMA$&AMMMRRRRRMMRR%URRU%U&%$j~!~'`
'*~`'~~'
'~!*jj**!*&%UARMMMMMMMMMMAAS~RMMMMMRMRSRMMMRRMRARMARAMRA*A%S%&j!' ``!!`
`'!*
`~!*jj*!!*&%UURMMMMMMMMMMM%RRARMMMMRMMMMMMMMMMMMRRMRMRAU*U%UUj*!!!'``~!!'***
!*
`~!**j*!!*$%UURMMMMMMMMMMMRAMARRRRMRMRMMMMMMMMMMMMRMRM&A%%SA$&!*~!~~!!!~!*!~
!'
`'!*jj*!!*$S%%AMMMMRMMMMMMMRRRUARAjRRRMMMRMMMMMMMR$AMRMRR$U%j!!*''``
`'!*~!`
~!!jj*!!*$S&SUMMMMMMMMMMMRMRRAAAARARRMMMMMMMMMMMMMMMMRARUS&$*!!``
`!!`
'~!*j*!!*$&&&UMMMMMMMRMMMMRRRRUAAAARRMMMMMMMMMMR%MMMM%A&$A&U*!!`
!!~
'~!*j*!!*$&&&URMMMMMMMMMRMMRMMRRRAAARRMMMMMMAAAUS%&$!$j&%&RA!!!` `
`~
`~!**!!!j$&&&URMMMMMMMMMMMMMMRMRRRRRRMMRMMRMMMMR*!'!j!!jU~~!$!~
!!!
~!***!**j&$&URRMMRRMMMMMMMMMMMMMMRMMMMRR&MMMU!!URRMRAUjAUUUA!!
````
'!**!!!j&$$&URMMMMMMMMMMMMMMMMMMMRMMMRA*!&RRR$RRMRMUMRARM&jA*!`
`~!!!!!j$$$$%ARMMMMMMMMMMMMMMMMMMMRMR&$$!$RRRMMMMMMMSMMR$SUAj`
`!*~ `
~!!!!*j$$$$SRMMMMMMMRMMMMMMMMMMMMMRARRAUAMMMMMMMMMMRMR!M&RR``
~~!~
''!!********j!!UAARMMMM%!'!%RRMMRR%~AMMMMMMMMMU$$SARMMMRRMRRRMRMMRAUAARAAAUU
&
'~!***j*****j&SUUARMMMMRMARRRMMMRARj!UMMMMMMMMRR&&URMMMRMRRRRARMMR%U%RRRA*US
%
'~!!*****!!*j&SUUARMMMMMMMMMMMMMRA&RSSSRMMMMMMRMMMRAMMMMRRMMMRARRRRRRRARASSU
U
'~!!*jj**!!*j$&%UARMMMMMMMMRMMMMMRURMAARRRRMMMMMMMMMMMMMMMMMMMMMRRRMRR%R&*AU
%
'~!!*jj**!!*j&SU%UAMMMMMMMMMMMMMMMRARRAARRRRMMRMMMMMMMMMMMMMMMMMMRMRMMRSA&A%
%
`~!!**$j*!!!*$SS%UARMMMMMMRRMMMRMMRARRRAARRRUURRRMMMMMMMMMMMMMMMM&%RMMMMMASS
U
`~!!*jjj*!!!*$&SS%AMMMMMMMRMMMMMMRMRARAAUUARUjARRMMRMMMMRRMMMMMMRURARMRRU!jU
U
`'~!*jjj*!!**$S&&SURMMMMMRMMMMMMMMMMRRRRAUAAARARRRMMMMMMRMMMMMMMMMMMMMRRAAAU
%
'~!*****!!**$&&&&URMMMMMMRMRMMMMMRMRRRRAUAAAAARRRMMMMMMMMRMMMRMUMMMMMUAUS&SA
'~!**j**!!**$&&&&URMMMMMMMRRMMMRMRMRRRRMRAAAARRRRRRMMMMMMR%RRRAA&RSR&j%j*&U$
`~!****!!!**$&$&&%AMMMMMMMMMMMRRMMRMRRMMRRRARRRRRMRMMMMMMMMRRAU&!!!!!!*j&$&A
`~!!***!!!**&&&&&UAMMMMMMMMRRMMMRMMMMRMRMMRRRRARMRRRRMMRUMMMMM%~~!~j*!!j%R%'
'~*****!!*j$$$&&UARMMMMMMMMMMMMMRMMMMMMRRMMMRMMMRMRRU&RRMMR!~!ARRRMRARS**RA
'~!***!!!*j$$$$&UAMMMMMMMMMMMMMRMMMMRMMRMMMMMMMMMMR%!!S%MMR!*URRRMRRURj$&MR
`~!*!!!!!*j&$$$$%AMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMR%S$!$!&RMRRRMRMMMMRMRMMRjR
'!!!!!!!*j$$$$$%ARMRMMMMMMRRRMMMMMRMMMMMMMMMRMMAS%%*!%%MRMMMMMRMMMMRRRRAR&
`!!!!!!**j$j$$$SUMMMMRMMMMRRMMMMMMMMMMMMMMMRMMRARRAUURMRMMMMMRMMMMMMMMM&*M
P H A S E 1.0
la lumière qui va du modèle à la caméra, de la caméra à sa restitution … de
sa restitution à son interprétation. Générations technologiques. t o F I X
T H E TIME sur l'image. Ce temps qui est figé sur l'image est un temps du
médium
Friday, February 13, 1998 12:31:20PM
TraceRoute to host technart.home.ml.org
# Address Host Name Response Time
1 147.210.90.254 b26a1.montaigne.u-bordeaux.fr 3 ms
2 147.210.96.254 b26a1.msha.u-bordeaux.f 1 ms
3 147.210.254.253 b9a1.u-bordeaux.fr 1 ms
4 193.51.10.1 aquarel-reaumur.u-bordeaux.fr 4 ms
5 193.55.249.105 bordeaux1.aquarel.ft.net 14 ms
6 193.55.249.242 bordeaux.renater.ft.net 48 ms
7 195.220.180.161 stamand1.renater.ft.net 66 ms
8 195.220.180.50 rbs1.renater.ft.net 59 ms
9 195.220.180.217 raspail.renater.ft.net 73 ms
10 No response from this hop
11 193.55.152.82 Unavailable 472 ms
12 194.206.207.50 sl-stockton-hssi.eurogate.net 508 ms
13 144.232.4.5 sl-bb10-stk-1-3.sprintlink.net 477 ms
14 144.232.4.46 sl-bb5-stk-0-0-0-155M.sprintlink.net 311 ms
15 144.232.8.94 sl-bb1-chi-1-1-0.sprintlink.net 343 ms
16 No response from this hop
17 144.228.252.13 Unavailable 170 ms
18 144.228.18.82 sl-dnetch-1--T3.sprintlink.net 175 ms
19 209.44.21.182 pairnet-1.PitbPA.savvis.net 182 ms
20 209.68.0.1 technart.home.ml.org 188 ms
total :3095 ms
` `*` ``` '``*S&jjj**!```~~M*~!MMR~` `~M````` ~~`
`A
`*` ``` `!!! ` '`` ``!`~$$$$$$jjj***!&A!*j%MR` `RA```
`~M
'~'`` ` `!!!**!*'```'!&A!~~~~&$$$$**$j*!!'``&****$M$ `*M''j`
`''!M
`'`` `~**!*j*!' ```'~!'```*jjjjjj$%*!'`` ``!` ~`'R`!M~!****`
````*&
`` !!***$!!'`````'~''`'!*jj*%UMMMMAS$! `' !A$~'MM*`~~~~``'`
``'&&
` !j!~!*~~` ``''~~*j$!!jj*!''~$S!` $~~`'!&M$` ````
`'jA!''
'` ``'!*!~j!~~'` `~*$&&%~`!```````` ` `~*~~!~~'UM* ```` `
````
`` ````~'`!*!!'`` `!j&&&SSS` ` ` ```'!*&!!!~~*'%R``!j&*`
~`
' ``'~~''``` ``' ` ```*&S&$&&S%%````'` `~```` `~~MA*!!AS` `! `
''!*!''
` '~!~!'` ` ` $$&&$&$&&%S` ``~` ` `'''` `*j!M*!**$*` `!% '
`~'~~!
~ ''!!'` ``` ``~&&&$&S&&&&&&~`````j!``~~``'~~''`'*'!~~'` `!U` ```
`U&*
~~ '~~`` ``` ```*S&$%&&&SS&&&' ``j&&$*~~'``**~~~**A*!!~'
'~M~`~*`'MS%
!!'`````'!~'` `~~~&S%S&%S%&&&$!~~`!$$j*~!'``!********M%!!~~`
`!Mj'~~`M$!
!!'```'~~!~` ~~~!*$&SU%&&S&&$**&&*$j!'~!$j*jjj*!******&!~!~'
`'M``~*A%*
'``````'~~' ~'~!!~!$&%%$$$$*~~''**j~``*$$j$*jj!****!!!!S!~~' ``
~&M!!!~!'
*~!~` '~*!`' '~~``
'!*!*!jS!!~~`jj!``'$$jj*j***j!!*!''!!!!`''``'``!~jMMj'`
&j*!` ``'**`` ''~```'~RM!&jj!*jSjj*jj*!'`!**j**~` `'!&S!'**jA*j``
~~*$MM*
SS$&&j*``j%S!!!***jMUAM*'%*!*j$$RMS%$j'``'`!j***j$jU~'!$$&$jj!**``
'~!*jRM!~
&$$!j~'!jj*!!jjj*$SUUUR!~$*j**AM&$&$S%S*```*!*~~~!***U!~*!~`~*'$~```
```'!'!MM*
*!` `` ``*!!!*jjjSSS&$U*~**!~!*!~~$~'Sj$*!&$*~~`!!~!*&S&&*!~!~ !`
`````'jj!**$MM
'```~` ``'!!*!~*%&!'S!~!*!!*'`**!*SU&~*&!*'`~**''$!j**j*!~~* ```
```!!`'~~!jjM
j*!~`` `````~%%S!`&!~!''!!**$S$SSS$~`'`''`$SUA$**j$**!***~`` `
``!~~```'~**$
`'!!` ````~&&&&&*!*~~!!*j&jjj**jj***!*MRMMUAMR&A$**jj*$$&'!'
`'~~!j*$$j'`'
''~~~~'` '~
``~j$$$&%**!!'''``j$$*j**j&$$ASjSR&$j$*j**$$UMMMMMMMMMUUMMRjj$$*jAM
``~~!~~''~!``
`~`'jRU***'``**``~`'```'`~%U%jj*j*jAMAMMMA&j&jj!~~~!jS!j&*`'```~*M
***j*~'```` ````!j!jj%MM*`!%S&&*!!*%M&$MMMMMM&jSMU$AA&$S&&&*!!!!!*$&&j*~`
'*
*!~''`'''``
``~j%RMM%&S$~'jU%!`~SM%$$**j$&$j*j*$j*$j!~~*j*j!!*!***$$$$&'!!'`'!~
**&Sj$j$jj$!%&!*~!~!$$j*S%SUURARRS%AR%S&**$%$$$&$j!~```'$$&S$'~$&S$jj*j*'~j*
!!*!
*&S&S%%%&$A!*MM'``~*SRUU%&%SU&*$AUAAUUSS&****&%&&$j!``~*jj$&SS%SS%$&&$j$&$$S
$'~~
$$S%%%SM''~j&M$$%'~SMMM%$$R&'```!*$&%%S&***j&$&$jj**%MU$$$&SSS!`'jS$Sj$&&&$'
``
!jMMAj~&' !AUSAMA``'!Sjj!~!````
*~'~j&$j*!**$jj$*j**jj*$$*$S%$'~!'~!~!&&&&````~A
~'~~'''USjA&$&~''&!`'j*****!*!~~`''~~**$*jjj$$jj*j***j**j!''*''*~~*$j''~~'`
`&M
j~```''SS*~*$'```~$!SUS$'~`````'!!~'
```*j$$$$jj*!''`~j*$$!``~j!!!***!~'~````$MM
%S``'~%M~*%Sj!&* `!UASSMj!*j$S&S$'````
`~**j*!!~''~```'*&RS!~j*```!*$&&&&&R*'MR%
%$UMM$~'`*$SSS$%$*&*'``'*&AAUS&&j`` ``!'' *S&S%SS$!`''%Aj*j**`
`'!j&&S%UAAURMM
U*''~$%U&$SSS&$$&*jj&&&&SUA&```'$$&j'`*!'
``%S%$j**!''*&j&j!!*!```jj$&S%UUASS%UU
S~j!'*~~!!!~****jRj*j*&&&U$```!&&&$~'j%&''j&&S&*!!!~j'!j**!****!'~*j&UUUUARM
MMMR
S%jSj!`'''~*$S&&$Aj!!*j&**j$&&S!Sj'`'&Uj~'*$$!'```'!$j~***!******j&RARMMMMRM
MMMM
j'%j!''*!~!j&$j%%%S'!jj$$&S$j*~~~'`~!&SSS```!!~!~!'~&SS&&*!!*!**!*j%MRAMMMMM
MMMM
P H A S E 1.2
Le corps n'est plus qu'une information que l'on peut traiter et déformer. On
est libre de choisir la chair qui va le recouvrir, il devient corps-vidéo ou
corps-numérique
"Je parlerai de corps changés en formes nouvelles",
Ovide, Métamorphoses I,1.
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMM
AARRAAAAAAAAAAAAU%U%UU%UUAAAAARRRMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRRAAUUUU%S!$%
%%U%
AAAAAAAAAAAAAAAAUUUUUU%UAAARRAARMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRAAU%UUAU$$&
$&%%
AAAAAAAARAAAAAAAUUU%U%%UARRMMRRMMMMMRMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMAAAUUAUU
UUAU
AAAAAAAAAAAAAAAAUUU%UAARRRRMRRMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRAAAUUUA
AAAA
UAAAAAAAAAAAAAAAAAAUUAARRMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRAUUAAA
AARA
%UUARAAARRAAAAARAAAAUAARMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRAAAAAA
AAAR
SUUURAAARRAARRARRAAAAAARMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRAAAAA
AAAA
%%%UAAAAARAARRARRAAAAAARMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRAAAAA
ARRA
%UUUAAAAAAAARRARARRAAAARMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRRARR
AAAR
UAAARRAUAAAARRARRRAAAAARMMMMMMMMMMMMMMMMMMMMMMRRMMMMMMMMMMMMMMMMMMMMMMMRRRRR
RAAR
AAAAAAAAAAAARRAAARARAAAARRRRMMMMMMMMMMMMMMMMRRRRRMMMMMMMMMMMMMMMMMMMMMRMRAAR
ARRR
AAAAAAAAAAAAARAARRAAUAARRRAAMMMRRMMMMRRRRRRRUUUAARRRRRMMMMMMMMMMMMMMMRRARRAA
ARRR
AAAAAAAARRRRRAAAARAAU%UUUUUUARMRUAARRAU&&SSUS$SS%%%$&SUARMMMMMRRMMMMRRRRRRRR
RRAR
AARAARAAARRARRAAAU%%SSSSS%S*ARRAS&&SS$j*!!~!**!!!''`'~*$&UARRAARMR%SRRRRRRRR
RRRR
RRRRRRRRRAARRRAAAUU%&&SS$&S&SRMU&$$$$j*~'''!` '`
``'!j&SS$$%RMM*$ARAAAAAAAAAA
ARRRRRRAAAAAAAAUAA%U%$$$$&S&$RUU$j$*j**'```` ``
``'`!!*!!j$SRMUSS%UUAAUAAAARR
RRRRRRRRAAAAAAUUU%%%%%S&jjj$*UU%&**!*!~' `
`~`~~~*jSAU!*&$SS%%%UUARRR
RMRRRRRRAAAUUUUUUS&&SS%S$$$j$S%%S**!*!!` ` ``
``'*j$%*j$S$&SS%%UURRRR
ARRRRRRAAAAAUUUUU&**$$$&$$$j!$S%Sj!~!~~ `'*$$U
*j&$&&SUUUARRRR
UURRMRRAAAAAAUUU%S*~!**j******&%U&$!*~`` `
`'j&&&jjj&&$&&UAAAARRR
UUURMRRAUUAAUUUU%Sj~!*!*!!*!**jS&AA$!~``
```~&S$*!*j$**j&UAARRRRR
%S&URMRRAAAAUUUUUSj~~!~!~~!'!*!&jj$$AR%'
~jjS&*$j!***!!*!SUARRRRR
%&&&ARRRRAAAAAUU%%$~!~~~''~''!'&$!**'''*&!
'*&SUA%&*!j*!''~!!!!*SUARARRR
USS&UAAAARRMRRRAUS&!!!~!~''''~'j$!~&Sj!*jj$!` !*!'
`!j*~~j!!'`~!**j$%UARARRR
%&SAMMMMU$&S&&SUU%S!*!*!!~!~'~'~$*!!~!!*jj$$*'`~!*!*AS%SU*!!!****~!!j&S%UAAR
RRRR
%&UMMMMRRRMR%&$$$S&!*!!*!~~~`'`'!*!''~'~*j$S*'
**!~~!~!~!~!!!!!**!!!*&S%%UAAARRR
SUMMASS&$&S%%AAAU%j~!*!!!!!~````~~!~
```*j&&*''j!~~`'```'!!!'~!*****jjj&%UAARARR
%URRRRMA$*!~!!j&SAS~~!!!!!!~` `~~'~ '!&SS!`'**~`
'`'`'~!!!!!*****j&&%%UAARRRA
ARRMMARAUUAAU&j***j!~!~!!!~!``` ~~''```~*UU%*!!$&!`
'`'''!!*!~!!j**!*$$S%AAARRR
ARRAS$*!!!***$&%U%j'!~~~!~~!````!~~~ `!j$%S!!!&S'`
~~~!~!!*!!!!j**!*$$SUAAARRRR
RRAS$%AAAUUUS$jjjj$!~!~~!!!!'`` ~!~!` ~jj*$
`'*!'~`~*!!!!!*!!!!jj***$&UAARRRRRR
AU%ARRAU%S&SS&S&$$S!~~~~!!!!''``~!~!'
``*!$S*!!j&~'`!!*!~!~!!!*!*j*jj$SARRRRRRRR
RRMRA%%&$$&S&$$$j$&*~~~'!!~!'`'`~!!!'`'`~!!*!!~'!!~'~!!*''!!*!!!*$jj*$%RRM&A
RRRR
RMRAS$$%RRRRUS&&j$$*!!!~!*!*~'~'~~!!~'~'~!~~` `'!~~`'!~!''!!*!!!*$jj*$%R'
%MMMMR
AAU%$$SUARMMMRAA&$&j*!!~**!!!!~~~!~!!'~''~~~`
``!!~'`~~!~'~~***!*jj$j&%RRRMMMMRM
UAU%&$&%%UUAARAA%SS$*!!!**!**!!!'~~!!~!''~~!'`'`!!~~'~~!~'!~j****$j$j$URRRMR
AAU%
AARMUS&$&&&S%UUU%%S&***!**!**!!!'~'!*!!'`~'~'`'`!*!!'~!*!~!!jjj**$j&j$%ARSj
$%UR
RMMMMAS$$$$$&SS%%%%Sjjj********!'~~!*!~~'~~!!'~'!***~!!**!*!jj$j*$$&$&&*j&&A
RRRA
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRRRRMAAAAARA%U%%%SS&%%SS&S&SSSUARRRU
%%S&
P H A S E 2.0
Ses séquences informatiques sont placées sur un serveur http.
Elles sont consultables par le biais de connexions internet.
Le nombre d'utilisateurs simultannés est illimité.
Ces séquences sont constitiuées de suites d'images fixes
répertoriées dans de micro bases de données elle mêmes
stockées sur le serveur.
Ces images sont rassemblées en une suite unique
ordonnée qui comporte toutes les instructions
utiles à son exécution via un réseau.
Les bandes son proviennent de samples réalisés à partir de
bruits divers.
(sample +reverb)
des séquences animées sur un serveur web et
refilmées lors de connexions http. Des images
fixes animées par un moteur virtuel dans un
espace distant de leur origine.
Des images figées ré animées par une routine, redisposées
selon des méthodes de hasard dans un mouvement
séquentiel et répétitif. Un mouvement altéré à
son tour par des algorythmes interprétés
par le navigateur.
Ces images proviennent de micro bases de données formées
par des suites d'images vidéos souvent marquées
par des stigmates numériques, traces du temps
que le médium à laissé lors de la capture.
Le dispositif d'installation qui les refilme et
les interprète les transforme à nouveau et
ce suivant des procédés numériques et
analogiques prédéfinis dans la
configuration du matériel
utilisé.
Le serveur http réagit à chque connexion en
initialisant les class java qui vont déformer,
fragmenter et découper les images
ordonnées en suites numériques.
Ces class, suites d'algorythmes programmées
et étudiées à ces fins auront une incidence
importante sur le résultat.
les performances de la séquence active
dépendent de l'état d'occupation et
des capacités du système client.
Les séquences ont besoin de temps afin de parvenir
au poste client, elles y arrivent image par image
avant d'être stockées virtuellement dans
l'espace 'mémoire' alloué par la
machine réceptrice.
Une fois en place, la séquence peut durer
le temps que l'utilisateur lui permettra.
Les séquences ne comportent pas de limites
temporelles, toute rupture de l'action est
due soit au système (coupure réseau,
manque de ressources machine),
soit à la volonté de l'utilisateur.
Les solicitations réseaux du serveur démultiplient
le nombre des temps possibles aux séquences.
La représentation numérique permet de ne
jamais altérer la réalité informationnelle
de l'image.
On produit une multiplicité de déformations
suivant un même schéma de principes.
L'information qui constitue les images que l'on peut
deviner par le biais de leurs déformations est
stockée dans sa forme la plus simple,
réduite à des valeurs
sans approximation.
RRRAUURRMMMMMMMRUSS&$*!!*!~S~''~~'`'~'`
'~*j~``''~~~~!~******!*ARMMMMMMMMRR%S&S$
RRMMRRMMMMMMMMRSARRMM$j!!**!&*` '~!!` `!*jUA*
`'~~~~'`!jS&$S%UMMMMMMMMMMMRRAU%S
RRRRMMMMMMMMMMRRRMMMR$jj*j*!*j!!!*URRRRAAUS$$&!`'!!!!~~~*U%&ARMMMMMMMMMMMRRR
RAU*
RMMMMMMMMMMMMMMRRRM!
!*jj*!%&j***j$&&&&&$j*!!``~!!~!!~j%%jSRMMMMMMMMMMMMMMRRASj
MMMMMMMMMMMMMMMMRRRRj&*!*j*!USj*jjj**!!*!**~~'`'!!!!~~~&$j$UMMMMMMMMMMMMMMMR
RAU&
MMMMMMMMMMMMMMMMRRRA%*~!jj**!$j!*****'
*!`'!!!!*!!!*$**&AMMMMMMMMMMMMMMMMRRRU
P H A S E 3.0
end
Let the tones be brushed into existence.
99.*' séquences ouvrent les dernières phrases des corps numériques.
Une toute dernière séquence nommée 00.000.0 viendra définitivement éteindre
le flux entrant.
end of des dépôts de trames,
la fin du texte.
This. histoire. F r o m .premiers pas vers l'image, de l'image à
l'information, de l'information au modèle...
des souvenirs, des images qui se détachent de leurs contextes, partiellement
réintégrées dans des temporalités dont le flux est altéré par les médiums
qu'elles ont connues, qu'elles ont fréquenté et qui les ont marqués de
stigmates qui les racontent.
Elles se déploient si bien.
Time is a space _ picture is a m e m o r y se rapportant au réel, à
l'irréel, aux deux, on voit en elle une certaine manifestation du temps avec
ses nappes et ses plans...
Ces images là, ces corps se détachent de leurs supports et traversent le
temps. Ils n'existent que quand on les regarde. Ils ne se déplacent que
quand on y pense.
De la chair à la matière. De la matière au pixel. Du pixel au model. Du
modèle au souvenir.
De l'image à moi hier à celle qui me tient maintenant.
Le flux temporel qui porte l'image numérique est confus.
Il est une suite d'instants figés dans le moment ou ils apparaissent, mais
il est possible de naviguer (de se déplacer dans le travail que l'on visite)
aussi bien vers le présent que vers le passé, il n'y a pas de chronicité
fixe _
référentiel (durée) qui est absolu [calcul sur une échelle numérique (dont
la base est la seconde)], les temps relatifs vécus dans l'expérience
physique de l'œuvre visitée ne sont pas à la même échelle que les temps
déployés par l'œuvre elle-même.
Œuvre qui nécessite des millions de calculs à la seconde, qui se déploie
dans des lieux inimaginables.
L'échelle de temps perceptible est relative au niveau de la perception que
l'on a de l'interface.
La temporalité de l'expérience est relative à la qualité de l'objet.
L'objet dont nous parlons est numérique. uchronique.
Le temps s'étale dans toutes les directions et les images le traversent sans
que rien ne se passe à notre échelle.
Je les aime.
23.04.99. 5.10.a.m. /alpha/
AA &*!~`'! !~~~~' ~~~ ~'``~!j$S!ARMMMMMRR* $j*!!!!!
AU%&&j$%& ~! ! 'j~~!SRR R`*&US $` ~ ~ `` ` ` ` ~ ` ` '~
$~URMMMMMMRRj*$j*'`'!
AUAUAAS** !* ~ 'j~~U'RM U`*S%% S` ` ' ~'
!~~!*$&S$jSUAAAAAARRRMMMRRRRRRRRRj!~`''~'''```'`'''~!**MMMMMMMMMMMMMMMMMMMMM
RRAR
*~~~*j$S$&S%%%%UUAAARRRRRRRAAAAA%$*!~'``'''`''~'''~~!*$ARRMMMMMMMMMMMMMMMMMR
RAAj
$*!!*jj&&SSS&&SS%%%UUAAAAAARAAU%S&$*!!~~''``''''''!!*j$S%ARRMMMMMMMMMRRRRRRR
RRAA
&j*!*jj&SSSS&$&S&SSSSUUUAAUUU%S&&$j*!!!~
~''`'''''~~!**j&S%UAARRRRRRRRRAAAAAAAAAA
&****jjSSSSS&&&&S&&&S%%%%%UU%SS&$j***!!~~'''''~'~~~!**j&&SSUUUUUUAAAAAAAUUUU
UUUU
&jj*j$$S%SS&&&SSSSSSS%%U%SS%S&&&$$jj**!~~'''
''~~~!!!*jj$&&&&S%%%%%%UU%%%%SSS%%%%
%&&$$&S%SSS&&&SSSS&S%%%SSSSS&&&&&$jjj**!!~~!!!!!!**jj$$$&&SS%%%%%%SS%SSSS$$&
&SSS
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRRRRAAAAAAUUUUUUUUUUUUUUUU%U%%S%%%SSS&&
&&&S
Now _______ http://147.210.91.148/nc3/
After http://www.technart.net/
Jacques perconte.
http://groups.yahoo.com/group/info-ouar/post?protectID=189056211003175198025199066140172222071026057192
http://groups.yahoo.com/group/info-ouar/post?protectID=189056211003018132184168004026249208078143038
|