diff --git a/readme.html b/readme.html
new file mode 100644
index 0000000..137efdd
--- /dev/null
+++ b/readme.html
@@ -0,0 +1,436 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+	<title>Liferay Portal 6.2 Community Edition</title>
+	<style type="text/css" media="screen">
+		body {
+			background: #EEF4F9;
+			color: #474A4B;
+			font: 12px/16px 'Helvetica', Arial, sans-serif;
+			margin: 0;
+		}
+
+		blockquote {
+			margin: 1em 2.5em;
+		}
+
+		h1,
+		h2,
+		h3,
+		h4,
+		h5,
+		h6 {
+			clear: both;
+			display: block;
+			margin: 0 0 0.75em;
+
+		}
+
+		h1 {
+			font-size: 2.22em;
+			font-weight: normal;
+			line-height: 1;
+			margin: 0.75em 0 0.5em;
+		}
+
+		h2 {
+			font-size: 2em;
+			margin-bottom: 0.75em;
+		}
+
+		h3 {
+			font-size: 1.5em;
+			line-height: 1;
+			margin-bottom: 1em;
+		}
+
+		h4 {
+			font-size: 1.2em;
+			line-height: 1.25;
+			margin-bottom: 1.25em;
+		}
+
+		h5 {
+			font-size: 1em;
+			font-weight: bold;
+			margin-bottom: .5em;
+		}
+
+		h6 {
+			font-size: 1em;
+			font-weight: bold;
+		}
+
+		hr {
+			border: 0 solid #BFBFBF;
+			border-width: 0 0 1px;
+			height: 0;
+		}
+
+		ol,
+		ul {
+			padding: 0 0 0 2.5em;
+		}
+
+		ol,
+		p,
+		pre,
+		ul {
+			margin: 1em 0;
+		}
+
+		abbr {
+			border-bottom: 1px dotted #000;
+			border-bottom-color: inherit;
+		}
+
+		img {
+			border: 0;
+			vertical-align: text-bottom;
+		}
+
+		table {
+			border-collapse: collapse;
+		}
+
+		p {
+			margin: 0 0 1.5em;
+		}
+
+		blockquote {
+			margin: 1.5em;
+			font-style: italic;
+		}
+
+		strong {
+			font-weight: bold;
+		}
+
+		em,
+		dfn {
+			font-style: italic;
+		}
+
+		abbr {
+			border-bottom: 1px dotted #666;
+		}
+
+		code {
+			font: 1em 'andale mono', 'lucida console', monospace;
+			line-height: 1.5;
+		}
+
+		a {
+			border-bottom: 1px dotted #446D77;
+			color: #446D77;
+			outline: none;
+			text-decoration: none;
+		}
+
+		a:hover {
+			color: #CD171D;
+		}
+
+		p,
+		ul,
+		blockquote {
+			padding: 0 15px;
+		}
+
+		li {
+			line-height: 20px;
+		}
+
+		#wrapper {
+			margin: 0 auto 20px;
+			padding: 20px;
+			width: 550px;
+		}
+
+		.header a {
+			border: none;
+		}
+
+		.contents {
+			background: #FFF;
+			border: 1px solid #AAA;
+			border-radius: 5px;
+			-moz-border-radius: 5px;
+			-webkit-border-radius: 5px;
+			margin: 2em 0;
+			padding: 15px 15px 0;
+		}
+
+		.contents li ul,
+		.contents li ol {
+			margin: 0 10px;
+			padding: 0 10px;
+		}
+
+		.features li ol li {
+			list-style-type: lower-alpha;
+			padding: 0;
+		}
+
+		.image-left {
+			float: left;
+			margin-right: 10px;
+		}
+
+		.image-right {
+			float: right;
+			margin-left: 10px;
+		}
+
+		.note {
+			font-family: 'Trebuche MS', Verdana, sans-serif;
+			font-style: italic;
+		}
+
+		hr,
+		.hr {
+			border-top: 1px solid #FFF;
+			border-bottom: 1px solid #BABEC2;
+			margin: 2em 0;
+		}
+
+	</style>
+
+</head>
+
+<body>
+
+<div id="wrapper">
+	<div class="header">
+		<a href="http://www.liferay.com"><img src="http://cdn.www.liferay.com/osb-community-theme/images/custom/heading.png" alt="www.liferay.com"></a>
+	</div>
+
+	<h1 id="top">Liferay 6.2 Community Edition</h1>
+
+	<p>
+		Thank you for choosing Liferay Portal. This release further expands Liferay's ability to be used in an extremely broad range of applications for web sites, portals, and collaboration services. Remember Liferay Portal is built by and for a very large open community. Be sure to participate by contributing back to the <a href="http://liferay.org">Liferay Community</a>.
+	</p>
+
+	<div class="contents">
+		<h3>Contents</h3>
+
+		<ol type="I">
+			<li>
+				<a href="#features">New Features</a>
+			</li>
+			<li>
+				<a href="#resources">Community Resources</a>
+
+				<ol>
+					<li>
+						<a href="#install">Installation and Documentation</a>
+					</li>
+					<li>
+						<a href="#collab">Liferay's Open Source Community</a>
+					</li>
+					<li>
+						<a href="#bugs">Bug Reporting</a>
+					</li>
+					<li>
+						<a href="#ideas">Have an Idea?</a>
+					</li>
+					<li>
+						<a href="#marketplace">Liferay Marketplace</a>
+					</li>
+				</ol>
+			</li>
+			<li>
+				<a href="#enterprise">Enterprise and Mission Critical Deployments</a>
+			</li>
+			<li>
+				<a href="#devteam">The Liferay Development Team</a>
+				<ol>
+					<li>
+						<a href="#communitycontrib">Community Contributors</a>
+					</li>
+				</ol>
+			</li>
+			<li>
+				<a href="#license">Licensing and Trademark</a>
+			</li>
+		</ol>
+	</div>
+
+	<hr/>
+
+	<h2 id="features">I. New Features</h2>
+
+	<p>
+		Liferay Portal 6.2 includes many new features targeting end users (power users), systems administrators and developers for enterprise deployments. Each area includes multiple features designed to support the most complex deployments. Liferay includes a web content management and document repository with multiple collaboration services all wrapped up in a portal framework. These features combine to allow Liferay to support an extremely broad range of use cases. See the full list of new features here on the <a href="http://www.liferay.com/community/wiki/-/wiki/Main/New+Features+in+Liferay+Portal+v6.2">Liferay 6.2 New Features Wiki Page</a>.
+	</p>
+
+	<h2 id="resources">II. Community Resources</h2>
+
+	<p>
+		Find information, participate in discussions and contribute back to the community at: <a href="http://liferay.org">Liferay.org</a>. Be sure to "Like" Liferay on <a href="https://www.facebook.com/liferay">Facebook</a> to collaborate with others and to find people in your field or specialty who are also using Liferay. Also be sure to "Follow" us and the community on <a href="https://twitter.com/#!/liferay">Twitter</a> which uses <a href="http://tweetray.com">TweetRay</a> to repost all tweets from the community who use the tag #Liferay.
+	</p>
+
+	<ol type="a">
+		<li id="install">
+			Documentation and Installation
+		</li>
+		<ol type="I">
+			<a href="http://www.liferay.com/documentation/"><img alt="Liferay Portal Administration Guide" class="image-right" src="http://www.manning.com/sezov/sezov_cover150.jpg" width="100"></a>
+
+			<li>
+				A <a href="http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Quick%20Installation%20Instructions">quick installation																															guide</a> is available on the Liferay Wiki.
+			</li>
+			<li>
+				<a href="http://www.liferay.com/documentation">Official Documentation</a> for Liferay is available on liferay.com as well as from online publishers.
+			</li>
+			<li>
+				<a href="http://www.manning.com/sezov/">Liferay in Action</a> is available from Manning Publications and includes a definitive review of many Liferay features and capabilities.
+			</li>
+		</ol>
+		<li id="collab">
+			Liferay's Open Source Community
+		</li>
+		<ol type="I">
+			<li>
+				Go to <a href="http://liferay.org">liferay.org</a> to search for answers within the forums, to post answers for others, and to find online reference materials in the Wiki section.
+			</li>
+		</ol>
+		<li id="bugs">
+			Bug Reporting
+		</li>
+		<ol type="I">
+			<li>
+				While the Liferay Community cannot ensure all reported bugs will get fixed or receive a response right away, contributing bug information to Liferay supports everyone and is one of the most valuable ways you can contribute back to the Liferay Community. If you find a bug, please log as much information as possible into a new ticket at: <a href="http://issues.liferay.com">http://issues.liferay.com</a>.
+			</li>
+		</ol>
+		<li id="ideas">
+			Suggesting New Features
+		</li>
+		<ol type="I">
+			<li>
+				The Liferay open source project relies on its community for many of the evolutionary and revolutionary ideas that eventually find their way into a release. Liferay strongly believes in empowering the community not only to be able to create change through feature requests but also to feel responsible for socializing, recommending, and implementing their own and others' ideas. If you have a great idea for Liferay, check out the <a href="http://liferay.com/community/ideas">Feature Request Dashboard</a>, which provides an easy way to create, view, and recommend feature requests, and help steer the direction of Liferay!
+			</li>
+		</ol>
+		<li id="marketplace">
+			Liferay Marketplace
+		</li>
+		<ol type="I">
+			<li>
+                <a href="http://liferay.com/marketplace">The Liferay Marketplace</a> is an exciting new hub for sharing, browsing and downloading Liferay-compatible applications. As enterprises look for ways to build and enhance their existing platforms, developers and software vendors are searching for new avenues to reach this market. Marketplace leverages the entire Liferay ecosystem to release and share apps in a user-friendly, one-stop site. Browse the available apps, or visit the <a href="http://www.liferay.com/marketplace-help">developer resources pages</a> to learn how to build your own apps! 
+			</li>
+		</ol>
+	</ol>
+
+	<h2 id="enterprise">III. Enterprise and Mission Critical Deployments</h2>
+
+	<ol type="a">
+		<li>
+			Preparing for Production
+		</li>
+		<ol type="i">
+			<li>
+				Liferay can be used in a variety of mission critical deployments. While Liferay CE meets many of the most demanding requirements, the following should be considered and evaluated prior to deployment.
+			</li>
+			<ol>
+				<li>
+					Review the following <a href="http://www.liferay.com/documentation/additional-resources/whitepapers">white papers</a>:
+				</li>
+				<ol type="a">
+					<li>
+						Advanced Liferay Architecture: Clustering and High Availability
+					</li>
+					<li>
+						Liferay EE Reference Architecture & Hardware Requirements
+					</li>
+					<li>
+						LPEE 6.2 Deployment Checklist
+					</li>
+					<li>
+						Liferay Application Integration Strategies
+					</li>
+					<li>
+						Identity Management in Liferay – Overview and Best Practices
+					</li>
+				</ol>
+				<li>
+					Request a review of Liferay's deployment services:
+				</li>
+				<ol type="a">
+					<li>
+						Liferay Quickstart Program
+					</li>
+					<li>
+						Liferay GoLive Program
+					</li>
+				</ol>
+				<li>
+					Liferay Enterprise Support Program
+				</li>
+				<ol type="a">
+					<li>
+						Review <a href="http://www.liferay.com/products/liferay-portal/get-it-now">Liferay's Enterprise support program</a>, which provides access to LESA (online support system).
+					</li>
+				</ol>
+				<li>
+					Liferay Professional Support Program
+				</li>
+				<ol type="a">
+					<li>
+						As Liferay Portal is used in an extremely broad range of use cases, Liferay provides professional services engagements for Liferay Portal EE to support many services such as, installation, customization, application development, integration, life-cycle management and more. Find out more on <a href="http://liferay.com">liferay.com</a>.
+					</li>
+				</ol>
+			</ol>
+		</ol>
+	</ol>
+
+	<h2 id="devteam">IV. The Liferay Development Team</h2>
+
+	<p>
+		This release was produced by Liferay's worldwide <a href="https://www.liferay.com/community/liferay-projects/liferay-portal/overview">portal engineering team</a>, and involved many hours of development, testing, writing documentation, and working with the wider Liferay community of customers, partners, and open source developers. We are glad you have chosen to use Liferay, and hope that it meets or exceeds your expectations!
+	</p>
+
+	<ol type="a">
+		<li id="communitycontrib">
+			Community Contributors
+		</li>
+
+		<p>
+			In addition to Liferay's engineering staff, a special thanks goes to the many open source developers who volunteered their time and energy to help with the release, whether it was bugfixing, idea generation, documentation, translations, or other contribution that helped to improve this release. Check out the <a href="http://www.liferay.com/community/wiki/-/wiki/Main/Community+Contributor+Hall+of+Fame">Community Contributor Hall of Fame</a> and be sure to thank them if you run across them in the community!
+		</p>
+    </ol>
+
+	<h2 id="license">V. Licensing and Trademark</h2>
+
+	<ol type="a">
+		<li>
+			Liferay is licensed under the <a href="http://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License (LGPL)</a> which defines the conditions for its use and extension. The Liferay Community supports the use of this license to ensure the further advancement of this technology for the betterment of the entire community. We strongly recommend all members of the community who use or support Liferay deployments to contribute back to the community itself through any of the available programs at <a href="http://liferay.org">Liferay.org</a>. This can include everything from answering questions on the forums to contributing code to the community or Liferay Marketplace to purchasing Liferay EE. Each has a value that benefits the entire community.
+		</li>
+		<li>
+			The Liferay Trademark includes the logo and name Liferay. Its use is governed by the Trademark policy posted at: <a href="http://liferay.com/trademark">liferay.com/Trademark</a>. When using Liferay in any form, this policy should be reviewed to understand if your use requires permission from the Liferay community manager.
+		</li>
+		<li>
+			License Declaration:
+
+			<blockquote>
+				<p>
+					This library, Liferay Portal Community Edition, is free software ("Licensed Software"); you can redistribute it and/or modify it under the terms of the <a href="http://www.gnu.org/licenses/lgpl-2.1.html">GNU Lesser General Public License</a> as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
+				</p>
+
+				<p>
+					This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; including but not limited to, the implied warranty of MERCHANTABILITY, NONINFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+				</p>
+
+				<p>
+					You should have received a copy of the <a href="http://www.gnu.org/licenses/lgpl-2.1.html">GNU Lesser General Public License</a> along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+				</p>
+			</blockquote>
+		</li>
+	</ol>
+
+	<a href="#top">Top</a>
+</div>
+
+</body>
+
+</html>
\ No newline at end of file
