<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
	<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<head>
		<style type="text/css">
				table {border-collapse: collapse; empty-cells: show;}
		</style>
		<!--[if gte IE 5.5000]>
		   <script language="JavaScript"> var ie55up = true </script>
		<![endif]-->
		<script language="JavaScript">
		   function fixPNG(myImage) // correctly handle PNG transparency in Win IE 5.5 or higher.
		      {
		      if (window.ie55up)
		         {
		         var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
		         var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
		         var imgTitle = (myImage.title) ? "title='" + myImage.title + "' " : "title='" + myImage.alt + "' "
		         var imgStyle = "display:inline-block;" + myImage.style.cssText
		         var strNewHTML = "<span " + imgID + imgClass + imgTitle
		         strNewHTML += " style=\"" + "width:" + myImage.width + "px; height:" + myImage.height + "px;" + imgStyle + ";"
		         strNewHTML += "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
		         strNewHTML += "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
		         myImage.outerHTML = strNewHTML
		         }
		      }
		</script>
	</head>
	<body>
		<table style=" width: 100%;">
			<col>
			<col>
			<tbody>
				<tr>
					<td>
						<img src="http://www.eclipse.org/birt/phoenix/tutorial/basic/multichip-4.jpg" style="display: block;">
					</td>
					<td>
						<div>
								Hello, world!
						</div>
					</td>
				</tr>
			</tbody>
		</table>
	</body>
</html>