<?xml version="1.0" encoding="UTF-8"?>
<!--***********************************************************
 * 
 * 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.
 * 
 ***********************************************************-->
<description xmlns="http://openoffice.org/extensions/description/2006" xmlns:d="http://openoffice.org/extensions/description/2006" 
    xmlns:xlink="http://www.w3.org/1999/xlink">

    <identifier value="UPDATED_IDENTIFIER"/>
    <version value="#VERSION#" />    
    <platform value="UPDATED_SUPPORTED_PLATFORM" />
    <registration>
        <simple-license accept-by="admin" default-license-id="lic-en-US" suppress-if-required="true" >
            <license-text xlink:href="licensefile" lang="isocode" license-id="lic-isocode"/>
        </simple-license>
    </registration>
    <display-name>
        <name lang="en-US">#TITLE#</name>
    </display-name>
    <dependencies>
         <OpenOffice.org-minimal-version value="3.1" d:name="OpenOffice.org 3.1"/>
    </dependencies>
    <publisher>
        <name xlink:href="http://www.oracle.com/us/products/applications/open-office" lang="en">Oracle</name>
    </publisher>
    <icon>
        <default xlink:href="images/extension_32.png" />
        <high-contrast xlink:href="images/extension_32_h.png" />
    </icon>
    <extension-description>
        <src lang="#LANG#" xlink:href="description/description_#LANG#.txt"/>
    </extension-description>
</description> 
