<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 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.
-->
<project name="RNG"
    xmlns="http://maven.apache.org/DECORATION/1.6.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/DECORATION/1.6.0 http://maven.apache.org/xsd/decoration-1.6.0.xsd">
  <bannerRight>
    <name>Apache Commons RNG</name>
    <!-- Use a full URL allows a correct banner for the modules. -->
    <src>https://commons.apache.org/proper/commons-rng/images/commons_rng.small.png</src>
    <href>https://commons.apache.org/proper/commons-rng/index.html</href>
  </bannerRight>

  <skin>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-skin</artifactId>
    <version>4.2</version>
  </skin>

  <body>
    <head>
      <![CDATA[<script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js">
      </script>]]>
    </head>

    <menu name="RNG">
      <item name="Overview" href="/index.html"/>
      <item name="Downloads" href="https://commons.apache.org/rng/download_rng.cgi"/>
      <item name="Issue Tracking" href="/issue-tracking.html"/>
      <item name="Source Repository (current)"
         href="http://gitbox.apache.org/repos/asf/commons-rng.git"/>
      <!-- <item name="Wiki"   -->
      <!--       href="http://wiki.apache.org/commons/RNG"/> -->
      <item name="Developers Guide" href="/developers.html"/>
      <item name="Release History" href="/release-history.html" />
    </menu>

    <menu name="User Guide">
      <item name="Contents" href="/userguide/index.html"/>
    </menu>
  </body>

  <custom>
    <!-- Custom properties controlling the commons-skin template. -->
    <commonsSkin>
      <!-- 
        Convert preformatted source section tags to prettyprint:
          <div class="source"><pre> to <div class="source"><pre class="prettyprint">
      -->
      <prettyPrintSourcePreTags>true</prettyPrintSourcePreTags>

      <!-- Add the "linenums" class to the prettyprint enabled source tags -->
      <prettyPrintLineNumbersEnabled>false</prettyPrintLineNumbersEnabled>
    </commonsSkin>
  </custom>
</project>
