<div dir="ltr"><div style>Hi Vito,</div><div style><br></div><div>> The ZEN Plugin for ImageJ is now out with ZEN 1.1A 2012 release</div><div><br></div><div style>Great news, glad to hear it.</div><div style><br></div><div style>
<div>> I have opened an issue on GitHub, connected with "CZI files with</div><div>> bitdepths 12/14/36/42 can not be loaded",</div><div>> (<a href="https://github.com/openmicroscopy/bioformats/issues/309">https://github.com/openmicroscopy/bioformats/issues/309</a>)</div>
<div><br></div><div style>Looks like this issue is now taken care of. Please let us know of any further problems.</div></div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">> My apologies in case I am adressing you on a subject that may not be</div>
<div class="gmail_extra">> your turf. Feel free to redirect me resp. pass this on, where it is</div><div class="gmail_extra">> needed.</div><div><br></div><div style>No worries. It's just that writing me a private mail is dangerous because I might be too busy, or about to go on vacation for two weeks (which is what happened this time; sorry for that). As you discovered, filing a GitHub issue, or writing to a mailing list (ome-devel, imagej-devel, etc.) will net you faster results because there are more involved developers who can pounce on it.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">> Regards and wish you a Merry Xmas and a successfull 2013</div><div><br></div><div style>A belated happy new year to you as well!</div>
<div style><br></div><div style>Regards,</div><div style>Curtis</div><div style><br></div></div><br><div class="gmail_quote">On Wed, Dec 19, 2012 at 9:08 AM, Vito Smolej <span dir="ltr"><<a href="mailto:vito.smolej@zeiss.com" target="_blank">vito.smolej@zeiss.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><p><font face="Small Fonts">Hi Curtis:</font><font size="3" face="serif"> </font><br>
<br><br><font face="Small Fonts">The ZEN Plugin for ImageJ is now out with ZEN 1.1A 2012 release and I have opened an issue on GitHub, connected with "</font><font face="serif"><b>CZI files with bitdepths 12/14/36/42 can not be loaded"</b></font><font face="Small Fonts">, (</font><a href="https://github.com/openmicroscopy/bioformats/issues/309" target="_blank"><font color="#0000ff" face="Small Fonts"><u>https://github.com/openmicroscopy/bioformats/issues/309</u></font></a><font face="Small Fonts">) something that would be great to see fixed in the next step. </font><font size="3" face="serif"> </font><br>
<br><font face="Small Fonts">As I could not load the two CZI files discussed there into the issue tracker, I am enclosing them in this post.</font><br><br><br><br><font face="Small Fonts">My apologies in case I am adressing you on a subject that may not be your turf. Feel free to redirect me resp. pass this on, where it is needed.</font><font size="3" face="serif"> </font><br>
<br><font face="Small Fonts">Regards and wish you a Merry Xmas and a successfull 2013</font><br><br><font face="Small Fonts">Vito</font><font size="3" face="serif"> </font><br><br><font face="Small Fonts">PS: as regards are past contacts - On Nov 13th I started to write the following feedback mail</font><font size="3" face="serif"> </font><br>
<font face="Small Fonts"><i>"</i></font><font size="3" face="serif"> </font><br><font face="Small Fonts"><i>Hi Curtis:</i></font><font size="3" face="serif"> </font><br><font face="Small Fonts"><i>I instantly cc-d your mail to my colleagues who are involved with the ZEN plugin. Much obliged! See my comments below...</i></font><font size="3" face="serif"> </font><br>
<font face="Small Fonts">"</font><font size="3" face="serif"> </font><br><font face="Small Fonts">... and then stopped after a day or two. I will spare you details, because they were basically a string of Yesses and Thought so's. See it as a hint that now and again you and your help were on our minds. </font><font size="3" face="serif"> </font><br>
<br><font face="Small Fonts">_________________________________________ </font><br><font face="Small Fonts">Carl Zeiss Microscopy GmbH</font><br><font face="Small Fonts">Geschäftsbereich BioSciences / BioSciences Division</font><br>
<font face="Small Fonts">Imaging Software München</font><br><font face="Small Fonts">Vorentwicklung / Advanced Development</font><br><br><font face="Small Fonts">P r o f . D r . V i t o S m o l e j</font><br><br><font face="Small Fonts">Kistlerhofstrasse 75, 81379 München</font><br>
<font face="Small Fonts">Telefon/ Phone: <a href="tel:%2B49%2089%2090%209000-306" value="+4989909000306" target="_blank">+49 89 90 9000-306</a></font><br><font face="Small Fonts">Fax: <a href="tel:%2B49%2089%2090%209000-555" value="+4989909000555" target="_blank">+49 89 90 9000-555</a></font><br>
<a href="mailto:smolej@zeiss.de" target="_blank"><font color="#0000ff" face="Small Fonts"><u>mailto:smolej@zeiss.de</u></font></a><br><a href="http://www.zeiss.com/microscopy" target="_blank"><font color="#0000ff" face="Small Fonts"><u>www.zeiss.com/microscopy</u></font></a><br>
<br><font face="Small Fonts">_________________________________________________ </font><br><br><font face="Small Fonts">Carl Zeiss Microscopy GmbH</font><br><font face="Small Fonts">Vorsitzender des Aufsichtsrates: Dr. Michael Kaschke</font><br>
<font face="Small Fonts">Geschäftsführung: Dr. Ulrich Simon, Wilhelm Nörthemann, Dr. Bernhard Ohnesorge, Dr. Frank Stietz</font><br><font face="Small Fonts">Sitz der Gesellschaft: 07740 Jena, Deutschland</font><br><font face="Small Fonts">Amtsgericht Jena, HRB 210.536, USt-IdNr: DE 814 503 774</font><font size="3" face="serif"> </font><br>
<br><br><br>
</p><table width="100%" border="0" cellspacing="0" cellpadding="0"><tbody><tr valign="top"><td width="41%"><font size="1" face="Small Fonts"><b>Curtis Rueden <<a href="mailto:ctrueden@wisc.edu" target="_blank">ctrueden@wisc.edu</a>></b></font><br>
<font size="1" face="Small Fonts">Gesendet von: <a href="mailto:ctrueden.wisc@gmail.com" target="_blank">ctrueden.wisc@gmail.com</a></font><font size="3" face="serif"> </font><br><br><font size="1" face="Small Fonts">13.11.2012 23:54</font><font size="3" face="serif"> </font></td>
<td width="60%"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tbody><tr valign="top"><td width="12%"><div align="right"><font size="1" face="Small Fonts">An</font></div></td><td width="57%"><font size="1" face="Small Fonts">Vito Smolej <<a href="mailto:vito.smolej@zeiss.com" target="_blank">vito.smolej@zeiss.com</a>></font><font size="3" face="serif"> </font></td>
</tr>
<tr valign="top"><td width="12%"><div align="right"><font size="1" face="Small Fonts">Kopie</font></div></td><td width="57%"><font size="1" face="Small Fonts">ImageJ Developers <<a href="mailto:imagej-devel@imagej.net" target="_blank">imagej-devel@imagej.net</a>></font><font size="3" face="serif"> </font></td>
</tr>
<tr valign="top"><td width="12%"><div align="right"><font size="1" face="Small Fonts">Thema</font></div></td><td width="57%"><font size="1" face="Small Fonts">Re: Nice to get connected!</font></td></tr></tbody></table>
<table width="100%" border="0" cellspacing="0" cellpadding="0"><tbody><tr valign="top"><td width="0%"><img width="1" height="1" src="cid:2__=4EBBF025DFBF37C38f9e8a93df@dejen.krz.org" border="0" alt=""></td><td width="0%">
<img width="1" height="1" src="cid:2__=4EBBF025DFBF37C38f9e8a93df@dejen.krz.org" border="0" alt=""></td></tr></tbody></table></td></tr></tbody></table><font size="3" face="serif">Hi Vito,</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="serif">Good seeing you at the ImageJ conference, and my sincere apologies for taking so long to reply to your questions. To give you an idea of how busy things have been, I have had a total of 10 minutes coding time on ImageJ2 since returning from the conference!</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="serif">> The idea is to copycat the ImageJ (or fiji or any ImageJexecutable as</font><font size="3" face="serif"> </font><br><font size="3" face="serif">> we call it) folder in the analysis tab in ZEN</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="serif">Great, I think this integration will be very nice for ZEN users.</font><font size="3" face="serif"> </font><br><font size="3" face="Small Fonts">It should allow a much easier and direct access to plugins people are using. A short summary:</font><br>
<ul type="disc" style="padding-left:18pt"><li><font size="3" face="Small Fonts">send current image from ZEN to ImageJ (button)</font></li><li><font size="3" face="Small Fonts">Receive current image from IMageJ to ZEN (button)</font></li>
<li><font size="3" face="Small Fonts">Apply <something>, which is actually an ImageJ primitive, bracketed by the functions above</font></li></ul><br><br><font size="3" face="serif">> Question 1: while the majority of executable functions are macros</font><font size="3" face="serif"> </font><br>
<font size="3" face="serif">> (*.txt, *.ijm etc), I have included also jar and class files. I guess,</font><br><font size="3" face="serif">> however, it is much safer to allow only macros, i.e. request the users</font><br>
<font size="3" face="serif">> package the desired functions into macros. A jar may be missing a run</font><font size="3" face="serif"> </font><br><font size="3" face="serif">> entry of something similar, so who needs jars anyhow in this list. Can</font><br>
<font size="3" face="serif">> you comment on that?</font><font size="3" face="serif"> </font><br><br><font size="3" face="serif">Since Fiji has a "--run" flag for launching a particular plugin, why not use that? I think it makes sense to allow any ImageJ code to be run, as long as supporting it is not overly burdensome.</font><br>
<br><font size="3" face="serif">If you have any users asking for this functionality, perhaps you could ask them directly what they need?</font><font size="3" face="serif"> </font><br><br><font size="3" face="serif">> Question 2: we scan the "usual suspects" in the system (program files,</font><font size="3" face="serif"> </font><br>
<font size="3" face="serif">> desktop etc) for possible ImageJexecutables. I would not mind at all</font><font size="3" face="serif"> </font><br><font size="3" face="serif">> to limit it to ImageJ20 . but I guess this would be too assuming and</font><font size="3" face="serif"> </font><br>
<font size="3" face="serif">> aggressive. What do you suggest?</font><font size="3" face="serif"> </font><br><br><font size="3" face="serif">IMO it is too early to limit support to only ImageJ2. I think it makes sense to support at least Fiji with ImageJ1 (the Fiji launcher has more features than the vanilla ImageJ one), if not also vanilla ImageJ installations.</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="serif">As for scanning the system, that is fine, but you could also require the user to configure the desired path in an options dialog somewhere. Most users will be very happy to do this once, if it means a working ImageJ integration as a reward. It gives the user more control over which ImageJ gets used, and makes your job easier since there is less harm done if your detection algorithm fails.</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="Small Fonts"> The scan is done first-ever-time-only and theres a [...] entry, for adding entries later</font><font size="3" face="serif"> </font><br><br><font size="3" face="serif">> Question 3: in ImageJ (1.46r) we check explicitely if LOCI has been</font><font size="3" face="serif"> </font><br>
<font size="3" face="serif">> installed - because without it , multidimensional image shuttling is</font><font size="3" face="serif"> </font><br><font size="3" face="serif">> not possible. Do we need to check in ImageJ2.0 (and, if you can answer</font><font size="3" face="serif"> </font><br>
<font size="3" face="serif">> this question) and in Fiji. If we need to check, any descrete way to</font><font size="3" face="serif"> </font><br><font size="3" face="serif">> do it? Fiji keeps track of versions... May looking for *LOCI*.jar?</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="serif">Fiji ships with Bio-Formats. ImageJ2 currently ships with only SCIFIO (the core of Bio-Formats) for licensing reasons. Zeiss file formats (LSM, ZVI, etc.) are not supported in SCIFIO core, only in Bio-Formats.</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="serif">For the time being, one easy way to check is to look for plugins/loci_tools.jar or plugins/loci_plugins.jar in the installation. You can tell which version by looking in the JAR manifest, if that matters to you.</font><font size="3" face="serif"> </font><br>
<font size="3" face="Small Fonts">LOCI is of no more concern. And we are strictly on 1.47<something> and the latest snapshot of Fiji. The idea is, even if we warn against it, the users will update anyhow. We may require a given stable version later on, but right now it is a fall-back case and not yet requested.</font><font size="3" face="serif"> </font><br>
<br><br><font size="3" face="serif">> Question 4: how to assure syncronicity of commands? The macros that do</font><br><font size="3" face="serif">> something useful, have a form send image from ZEN to ImageJ process it</font><br>
<font size="3" face="serif">> send the resulting image from ImageJ to ZEN</font><font size="3" face="serif"> </font><br><br><font size="3" face="serif">My initial thought would be to instruct ImageJ to run not just the requested macro, but an appended version of it that invokes some sort of callback mechanism upon conclusion. I haven't experimented in detail, but perhaps emitting something to stdout when the macro/script/plugin concludes would be sufficient. Then ZEN could block until it receives that callback. At worst, you could poll a temporary file (or use the OS's notification API), though there is likely a cleaner option.</font><font size="3" face="serif"> </font><br>
<font size="3" face="Small Fonts">This is where the bug I placed in dev bugzille kicks in. The problem is the receive side: if SaveAs decides to save somewhere else as prescribed, the code can watch for the expected image file until the hell freezes over. </font><font size="3" face="serif"> </font><br>
<br><br><font size="3" face="serif">> Question 5: I would very much appreciate your help. i.e. hints, as</font><font size="3" face="serif"> </font><br><font size="3" face="serif">> regards getting the communication run the other direction as well i.e.</font><font size="3" face="serif"> </font><br>
<font size="3" face="serif">> from ImageJ to ZEN), I remember the original TCP/IP layer - the code</font><font size="3" face="serif"> </font><br><font size="3" face="serif">> looked so simple and elegant. ZEN can communicate on TCP/IP and</font><font size="3" face="serif"> </font><br>
<font size="3" face="serif">> letting macros both side of the river communicate with each other via</font><font size="3" face="serif"> </font><br><font size="3" face="serif">> socket comm layer would be the simplest for the user. I understand it</font><font size="3" face="serif"> </font><br>
<font size="3" face="serif">> was security concerns that caused the abrupt change. I would like to</font><font size="3" face="serif"> </font><br><font size="3" face="serif">> hear about them (after all, my PayPal account runs on TCPIP as well)</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="serif">I am likely to blame for this debacle, since I believe Wayne got the idea of the socket listener from me and my VisBio application (which suffers from the same security problems). The issue is not with TCP/IP itself of course, but rather how it was being used.</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="serif">When ImageJ opened its socket listener, there was no security to limit incoming connections to only other instances of ImageJ, or only processes of the same user, or even only processes from localhost! So someone (even remotely) could control another user's already-running ImageJ instance by launching macros & scripts which would then run with the permissions of that user.</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="serif">Conversely, the RMI-based OtherInstance intentionally only allows connections from another ImageJ running as the same user.</font><font size="3" face="serif"> </font><br><br><font size="3" face="serif">For further details, see Johannes's original commit [1].</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="serif">Regarding how to get two-way communication working, I think pipes and files are simple and proven ways to go. To use pipes, you might need to initially launch ImageJ from ZEN (not sure how to get a handle on its stdout if the user launched it externally). But to use files there is no such restriction. Just make sure every piece of code (macro, plugin, whatever) you ask ImageJ to execute ends by appending some information to a temporary file, which ZEN either polls or receives notifications about (via e.g. the FindFirstChangeNotification function [2]).</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="serif">Perhaps ImageJ could be improved in the future to make this sort of two-way communication easier. If you have any suggestions along those lines, feel free to suggest on the ImageJ mailing list [3].</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="serif">HTH,</font><font size="3" face="serif"> </font><br><font size="3" face="serif">Curtis</font><br><br><font size="3" face="serif">[1] </font><a href="https://github.com/fiji/ImageJA/commit/06848874d990aeea2a0ad1df75311e9ca51b00dc" target="_blank"><font size="3" color="#0000ff" face="serif"><u>https://github.com/fiji/ImageJA/commit/06848874d990aeea2a0ad1df75311e9ca51b00dc</u></font></a><br>
<font size="3" face="serif">[2] </font><a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa364417(v=vs.85).aspx" target="_blank"><font size="3" color="#0000ff" face="serif"><u>http://msdn.microsoft.com/en-us/library/windows/desktop/aa364417(v=vs.85).aspx</u></font></a><font size="3" face="serif"> </font><br>
<font size="3" face="serif">[3] </font><a href="http://imagej.nih.gov/ij/list.html" target="_blank"><font size="3" color="#0000ff" face="serif"><u>http://imagej.nih.gov/ij/list.html</u></font></a><br><br><font size="3" face="serif"> </font><br>
<font size="3" face="serif">On Fri, Oct 26, 2012 at 3:50 AM, Vito Smolej <</font><a href="mailto:vito.smolej@zeiss.com" target="_blank"><font size="3" color="#0000ff" face="serif"><u>vito.smolej@zeiss.com</u></font></a><font size="3" face="serif">> wrote:</font><font size="3" face="serif"> </font><br>
<br><font size="3" face="Small Fonts">Hi Curtis:</font><br><br><font size="3" face="Small Fonts"> Thank you first for your cooperative attitude! Much appreciated. </font><br><br><font size="3" face="Small Fonts">So right away I'll bombard you with a few simple questions, regarding the ImageJ plugin for ZEN. The idea is to copycat the ImageJ (or fiji or any ImageJexecutable as we call it) folder in the analysis tab in ZEN like this</font><br>
<br><br><br><font size="3" face="Small Fonts">the leave nodes are always something that gets executed in ImageJ, possibly requiring activeImage input and/or producing activeImage output (input and output properties of the local function nodes tree).</font><br>
<br><font size="3" face="Small Fonts"><b>Question 1: </b></font><font size="3" face="Small Fonts">while the majority of executable functions are macros (*.txt, *.ijm etc), I have included also jar and class files. I guess, however, it is much safer to allow only macros, i.e. request the users package the desired functions into macros. A jar may be missing a run entry of something similar, so who needs jars anyhow in this list. Can you comment on that? </font><br>
<br><font size="3" face="Small Fonts"><b>Question 2: </b></font><font size="3" face="Small Fonts">we scan the "usual suspects" in the system (program files, desktop etc) for possible ImageJexecutables. I would not mind at all to limit it to ImageJ20 . but I guess this would be too assuming and aggressive. What do you suggest?</font><br>
<br><font size="3" face="Small Fonts"><b>Question 3: </b></font><font size="3" face="Small Fonts">in ImageJ (1.46r) we check explicitely if LOCI has been installed - because without it , multidimensional image shuttling is not possible. Do we need to check in ImageJ2.0 (and, if you can answer this question) and in Fiji. If we need to check, any descrete way to do it? Fiji keeps track of versions... May looking for *LOCI*.jar?</font><br>
<br><font size="3" face="Small Fonts"><b>Question 4:</b></font><font size="3" face="Small Fonts"> </font><font size="3" face="Small Fonts">how to assure syncronicity of commands? The macros that do something useful, have a form </font><font size="3" face="serif"> </font><br>
<ul type="disc" style="padding-left:18pt"><li><font size="3" face="Small Fonts">send image from ZEN to ImageJ</font><font size="3" face="serif"> </font></li><li><font size="3" face="Small Fonts">process it</font><font size="3" face="serif"> </font></li>
<li><font size="3" face="Small Fonts">send the resulting image from ImageJ to ZEN</font></li></ul><br><br><font size="3" face="Small Fonts">We got again and again tons of "save as" dialogs before realizing that saveAs in the third line may occur before the "process it" in the second creates its output. he Identical problem with "unique instance" listener - if the exe file has not yet started all the threads, the new call for ImageJexecutable will just spawn another instance into the system.</font><br>
<br><font size="3" face="Small Fonts"><b>Question 5: </b></font><font size="3" face="Small Fonts">I would very much appreciate your help. i.e. hints, as regards getting the communication run the other direction as well i.e. from ImageJ to ZEN), I remember the original TCP/IP layer - the code looked so simple and elegant. ZEN can communicate on TCP/IP and letting macros both side of the river communicate with each other via socket comm layer would be the simplest for the user. I understand it was security concerns that caused the abrupt change. I would like to hear about them (after all, my PayPal account runs on TCPIP as well)</font><br>
<br><font size="3" face="Small Fonts">Now, maybe you yourself would have a question or two (g). Please feel free to ask. And thank you in advance.</font><br><br><font size="3" face="Small Fonts">Regards</font><br><br><font size="3" face="Small Fonts">Vito.</font><br>
<br><br><font size="3" face="Small Fonts">_________________________________________________ </font><br><font size="3" face="Small Fonts">Carl Zeiss Microscopy GmbH</font><br><font size="3" face="Small Fonts">Geschäftsbereich BioSciences / BioSciences Division</font><br>
<font size="3" face="Small Fonts">Imaging Software München</font><br><font size="3" face="Small Fonts">Vorentwicklung / Advanced Development</font><br><br><font size="3" face="Small Fonts">P r o f . D r . V i t o S m o l e j</font><br>
<br><font size="3" face="Small Fonts">Kistlerhofstrasse 75, 81379 München</font><br><font size="3" face="Small Fonts">Telefon/ Phone: </font><a href="tel:%2B49%2089%2090%209000-306" target="_blank"><font size="3" color="#0000ff" face="Small Fonts"><u>+49 89 90 9000-306</u></font></a><br>
<font size="3" face="Small Fonts">Fax: </font><a href="tel:%2B49%2089%2090%209000-555" target="_blank"><font size="3" color="#0000ff" face="Small Fonts"><u>+49 89 90 9000-555</u></font></a><br><font size="3" face="Small Fonts">mailto:</font><a href="mailto:smolej@zeiss.de" target="_blank"><font size="3" color="#0000ff" face="Small Fonts"><u>smolej@zeiss.de</u></font></a><br>
<a href="http://www.zeiss.com/microscopy" target="_blank"><font size="3" color="#0000ff" face="Small Fonts"><u>www.zeiss.com/microscopy</u></font></a><br><br><font size="3" face="Small Fonts">_________________________________________________ </font><br>
<br><font size="3" face="Small Fonts">Carl Zeiss Microscopy GmbH</font><br><font size="3" face="Small Fonts">Vorsitzender des Aufsichtsrates: Dr. Michael Kaschke</font><br><font size="3" face="Small Fonts">Geschäftsführung: Dr. Ulrich Simon, Wilhelm Nörthemann, Dr. Bernhard Ohnesorge, Dr. Frank Stietz</font><br>
<font size="3" face="Small Fonts">Sitz der Gesellschaft: 07740 Jena, Deutschland</font><br><font size="3" face="Small Fonts">Amtsgericht Jena, HRB 210.536, USt-IdNr: DE 814 503 774</font><font size="1" face="Times New Roman"> </font><br>
<br><font size="1" face="Times New Roman">----------------------------------------</font><br><font size="1" face="Times New Roman">This message is intended for a particular addressee only and may contain business or company secrets. If you have received this email in error, please contact the sender and delete the message immediately. Any use of this email, including saving, publishing, copying, replication or forwarding of the message or the contents is not permitted. </font><br>
<font size="3" face="serif"> </font><br><br><i>(See attached file: 36bits issue.zip)</i><font face="sans-serif"><font size="1" face="Times New Roman">
<br><br>----------------------------------------<br>
This message is intended for a particular addressee only and may contain business or company secrets. If you have received this email in error, please contact the sender and delete the message immediately. Any use of this email, including saving, publishing, copying, replication or forwarding of the message or the contents is not permitted. <br>
<br></font></font>
<p></p></div>
</blockquote></div><br></div></div>