<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <title>OFBiz, The Apache OFBiz Project - Open Source E-Business / E-Commerce, ERP, CRM</title>
    <link rel="stylesheet" href="/ofbiz/images/ofbws.css" type="text/css"/>
    <meta name="keywords" content="Open Source ERP,Open Source CRM,Open Source E-Commerce,Open Source eCommerce,Open Source SCM,Open Source MRP,Open Source CMMS,Open Source EAM,web services,workflow,ebusiness,e-business,ecommerce,e-commerce,automation,enterprise software,open source,entity engine,service engine,erp,crm,party,accounting,facility,supply,chain,management,catalog,order,project,task,work effort,financial,ledger,content management,customer,inventory"/>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <link rel="shortcut icon" href="/ofbiz/images/ofbiz.ico"/>
</head>

<body>

<!-- start header -->
<div class="headerboxoutside">
    <div class="headerboxtop">
        <div class="left">
            <a href="http://ofbiz.apache.org/"><img src="/ofbiz/images/ofbiz_logo.gif" border="0" alt="The Apache OFBiz Project"/></a>
        </div>
        <div class="right">
            <a href="http://ofbiz.apache.org/"><img class="main-logo" src="/ofbiz/images/ofbiz_powered.gif" alt="Powered By Apache OFBiz"/></a>

            <a href="http://www.apache.org/"><img class="main-logo" src="/ofbiz/images/apache-feather.png" alt="Apache Software Foundation"/></a>
        </div>
        <div class="endcolumns"><span>&nbsp;</span></div>
    </div>
</div>
<!-- end header -->

<div class="centerarea">
  <div class="contentarea">
