<?xml version = '1.0' encoding = 'UTF-8'?>
<!--
  Copyright 2006 The Apache Software Foundation.

  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.
-->
<jpr:project xmlns:jpr="http://xmlns.oracle.com/ide/project">
  <hash n="component-versions">
    <value n="oracle.adf.dt.migration.ProjectMigrator" v="10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.adfdt.controller.jsf.addin.JSFProjectMigrator" v="10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.adfdt.controller.struts.addin.db.ADFStrutsProjectMigrator" v="10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.adfdt.controller.struts.addin.StrutsProjectMigrator" v="10.1.3.0.2;10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.bm.commonIde.ProjectUpgrader" v="10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.ide.model.Project" v="10.1.3.0.2;10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.ide.model.ResourcePathsMigrator" v="10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.jbo.dt.jclient.migrator.JCProjectMigrator" v="10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.jbo.dt.jdevx.ui.appnav.APProjectMigrator" v="10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.jdeveloper.dbmodeler.migration.ProjectMigratorHelper" v="10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.jdeveloper.offlinedb.migration.OfflineDBProjectMigrator" v="10.1.3.0.2;10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.jdevimpl.jsp.JspMigrator" v="10.1.3.0.2;10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.jdevimpl.runner.RunConfigurationsMigrator" v="10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.jdevimpl.webservices.WebServicesMigratorHelper" v="10.1.3.0.2;10.1.3.0.3;10.1.3.0.4"/>
    <value n="oracle.toplink.addin.migration.TopLinkProjectMigrator" v="10.1.3.0.3;10.1.3.0.4"/>
  </hash>
  <list n="contentSets">
    <string v="oracle.jdeveloper.model.PathsConfiguration/javaContentSet"/>
    <string v="oracle.jdeveloper.model.J2eeSettings/webContentSet"/>
    <string v="oracle.ide.model.ResourcePaths/resourcesContentSet"/>
    <string v="oracle.jdeveloper.offlinedb.model.OfflineDBProjectSettings/offlineDBContentSet"/>
    <string v="oracle.toplink.addin.TopLinkProjectSettings/toplinkContentSet"/>
    <string v="oracle.bm.commonIde.data.project.ModelerProjectSettings/modelersContentSet"/>
  </list>
  <hash n="oracle.bm.commonIde.data.project.ModelerProjectSettings">
    <hash n="modelersContentSet">
      <list n="pattern-filters">
        <string v="+**"/>
      </list>
      <list n="url-path">
        <url path="model/"/>
      </list>
    </hash>
    <value n="modelersVersion" v="10.13"/>
  </hash>
  <hash n="oracle.ide.model.DependencyConfiguration">
    <list n="dependencyList"/>
  </hash>
  <hash n="oracle.ide.model.ResourcePaths">
    <hash n="resourcesContentSet">
      <list n="pattern-filters">
        <string v="+**"/>
      </list>
      <list n="url-path" />
    </hash>
  </hash>
  <hash n="oracle.jdeveloper.compiler.OjcConfiguration">
    <value n="internalEncoding" v="Default"/>
  </hash>
  <hash n="oracle.jdeveloper.model.J2eeSettings">
    <value n="j2eeWebAppName" v="maven-generated-webapp"/>
    <value n="j2eeWebContextRoot" v="maven-generated-context-root"/>
    <hash n="webContentSet">
      <list n="url-path" />
    </hash>
  </hash>
  <hash n="oracle.jdeveloper.model.PathsConfiguration">
    <hash n="javaContentSet">
      <list n="pattern-filters">
        <string v="+**"/>
      </list>
      <list n="url-path" />
    </hash>
  </hash>
  <hash n="oracle.jdeveloper.offlinedb.model.OfflineDBProjectSettings">
    <hash n="offlineDBContentSet">
      <list n="pattern-filters">
        <string v="+**"/>
      </list>
      <list n="url-path">
        <url path="database/"/>
      </list>
    </hash>
  </hash>
  <hash n="oracle.jdeveloper.runner.RunConfigurations">
    <hash n="runConfigurationDefinitions">
      <hash n="Default">
        <value n="custom" v="false"/>
        <value n="name" v="Default"/>
      </hash>
    </hash>
    <list n="runConfigurationList">
      <string v="Default"/>
    </list>
  </hash>
  <hash n="oracle.jdevimpl.config.JProjectLibraries">
    <list n="exportedReferences"/>
    <hash n="internalDefinitions">
      <list n="libraryDefinitions" />
    </hash>
    <list n="libraryReferences" />
  </hash>
  <hash n="oracle.jdevimpl.config.JProjectPaths">
    <url n="outputDirectory" />
  </hash>
  <hash n="oracle.jdevimpl.webapp.jsp.libraries.model.ProjectTagLibraries">
    <hash n="libraries"/>
  </hash>
  <hash n="oracle.toplink.addin.TopLinkProjectSettings">
    <hash n="toplinkContentSet">
      <list n="pattern-filters">
        <string v="+**"/>
      </list>
      <list n="url-path">
        <url path="toplink/"/>
      </list>
    </hash>
  </hash>
</jpr:project>
