 


  <!doctype html>
<!--
 Generated by Apache Maven Doxia  at 2021-03-09  Rendered using Reflow Maven Skin 2.3.0 (http://devacfr.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">
        <head>
    <meta charset="UTF-8" />
    <title>Apache OpenMeetings Project &#x2013; Project Licenses</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="description" content="" />
      <meta http-equiv="content-language" content="en" />
                                                        <link href="./css/themes/cerulean/bootstrap.min.css" rel="stylesheet" />
    <link href="./css/fontawesome/all.min.css" rel="stylesheet" />
    <link href="./css/reflow-skin.css" rel="stylesheet" />
    
    <link rel="stylesheet" href="./js/styles/github.min.css" />

    <link href="./css/lightbox.css" rel="stylesheet" />
    <link href="./css/site.css" rel="stylesheet" />
    <link href="./css/print.css" rel="stylesheet" media="print" />
<link rel="stylesheet" href="./css/site.css"/>
        </head> <!-- end : head -->
<body class="page-licenses project-openmeetings-server anchorjs-enabled scrolltop-smooth-enabled m-toc-sidebar-enabled m-toc-sidebar-expanded m-toc-sidebar-autoexpandable toc-sidebar-fixed">
    <nav id="m-top-navbar" class="navbar navbar-expand-lg fixed-top navbar-dark bg-primary">
<div class="container">            <a class="navbar-brand mb-0 h1" href="index.html">
            <span class="color-highlight">Apache</span> OpenMeetings
            </a>
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#top-navbar-collapse-1" aria-controls="top-navbar-collapse-1" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="top-navbar-collapse-1">
                <ul class="nav navbar-nav ml-auto">
                    <li class="nav-item " ><a  href="demo.html"  title="Demo"  class="nav-link" >Demo</a></li>
                    <li class="nav-item " ><a  href="downloads.html"  title="Download"  class="nav-link" >Download</a></li>
                    <li class="nav-item " ><a  href="https://cwiki.apache.org/confluence/display/OPENMEETINGS"  title="Wiki"   class="externalLink nav-link" >Wiki</a></li>
                    <li class="nav-item dropdown">
                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">General <b class="caret"></b></a>
                        <div class="dropdown-menu">
                            <a href="index.html" title="Home"  class="dropdown-item ">Home</a>
                            <a href="https://www.apache.org/licenses/" title="License"  class="dropdown-item ">License</a>
                            <a href="https://www.apache.org/" title="ASF"  class="dropdown-item ">ASF</a>
                            <a href="https://www.apache.org/foundation/sponsorship" title="Sponsorship"  class="dropdown-item ">Sponsorship</a>
                            <a href="https://www.apache.org/foundation/thanks" title="Thanks"  class="dropdown-item ">Thanks</a>
                            <a href="CallForLogo.html" title="Call For Logo"  class="dropdown-item ">Call For Logo</a>
                            <a href="NewsArchive.html" title="News archive"  class="dropdown-item ">News archive</a>
                            <a href="security.html" title="Security"  class="dropdown-item ">Security</a>
                            <a href="commercial-support.html" title="Commercial Support"  class="dropdown-item ">Commercial Support</a>
                        </div>
                    </li>
                    <li class="nav-item dropdown">
                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Installation <b class="caret"></b></a>
                        <div class="dropdown-menu">
                            <a href="installation.html" title="Installation"  class="dropdown-item ">Installation</a>
                            <a href="Upgrade.html" title="Upgrade"  class="dropdown-item ">Upgrade</a>
                            <a href="InstallMediaServer.html" title="Media Server Installation"  class="dropdown-item ">Media Server Installation</a>
                            <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" title="Tutorials"  class="dropdown-item ">Tutorials</a>
                            <a href="CommandLineAdmin.html" title="Command Line Admin"  class="dropdown-item ">Command Line Admin</a>
                        </div>
                    </li>
                    <li class="nav-item dropdown">
                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Community <b class="caret"></b></a>
                        <div class="dropdown-menu">
                            <a href="get-involved.html" title="Get Involved"  class="dropdown-item ">Get Involved</a>
                            <a href="team.html" title="Committers"  class="dropdown-item ">Committers</a>
                            <a href="OurUsers.html" title="Our Users"  class="dropdown-item ">Our Users</a>
                            <a href="mailing-lists.html" title="Mailing Lists"  class="dropdown-item ">Mailing Lists</a>
                            <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/" title="Wiki"  class="dropdown-item ">Wiki</a>
                        </div>
                    </li>
                    <li class="nav-item dropdown">
                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Configuration <b class="caret"></b></a>
                        <div class="dropdown-menu">
                            <div class="dropdown-submenu">
                                <a  href="licenses.html#integration"  title="Integration"  class="dropdown-item" >Integration</a>                                <div class="dropdown-menu">
                                    <a href="openmeetings-webservice/apidocs/index.html" title="SOAP/REST API" target="_blank" class="dropdown-item ">SOAP/REST API</a>
                                    <a href="RestAPISample.html" title="REST API Sample"  class="dropdown-item ">REST API Sample</a>
                                    <a href="LdapAndADS.html" title="Ldap and ADS"  class="dropdown-item ">Ldap and ADS</a>
                                    <a href="oauth2.html" title="OAuth2"  class="dropdown-item ">OAuth2</a>
                                    <a href="AsteriskIntegration.html" title="VoIP and SIP"  class="dropdown-item ">VoIP and SIP</a>
                                    <a href="errorvalues.html" title="Errors table"  class="dropdown-item ">Errors table</a>
                                    <a href="CalDAVandGCal.html" title="CalDAV and Google Calendar integration"  class="dropdown-item ">CalDAV and Google Calendar integration</a>
                                    <a href="ExternalVideo.html" title="External Video/Camera"  class="dropdown-item ">External Video/Camera</a>
                                </div>
                            </div>
                            <div class="dropdown-submenu">
                                <a  href="licenses.html#plugins"  title="Plugins"  class="dropdown-item" >Plugins</a>                                <div class="dropdown-menu">
                                    <a href="MoodlePlugin.html" title="Moodle Plugin"  class="dropdown-item ">Moodle Plugin</a>
                                    <a href="SakaiPlugin.html" title="Sakai Plugin"  class="dropdown-item ">Sakai Plugin</a>
                                    <a href="JiraPlugin.html" title="Jira Plugin"  class="dropdown-item ">Jira Plugin</a>
                                    <a href="JoomlaPlugin.html" title="Joomla Plugin"  class="dropdown-item ">Joomla Plugin</a>
                                    <a href="DrupalPlugin.html" title="Drupal Plugin"  class="dropdown-item ">Drupal Plugin</a>
                                    <a href="BitrixPlugin.html" title="Bitrix Plugin"  class="dropdown-item ">Bitrix Plugin</a>
                                    <a href="ConfluencePlugin.html" title="Confluence Plugin"  class="dropdown-item ">Confluence Plugin</a>
                                    <a href="SugarCRMPlugin.html" title="SugarCRM Plugin"  class="dropdown-item ">SugarCRM Plugin</a>
                                    <a href="RedminePlugin.html" title="Redmine Plugin"  class="dropdown-item ">Redmine Plugin</a>
                                </div>
                            </div>
                            <div class="dropdown-submenu">
                                <a  href="licenses.html#db"  title="DB Sample Configurations"  class="dropdown-item" >DB Sample Configurations</a>                                <div class="dropdown-menu">
                                    <a href="H2Config.html" title="H2"  class="dropdown-item ">H2</a>
                                    <a href="IBMDB2Config.html" title="IBM DB2"  class="dropdown-item ">IBM DB2</a>
                                    <a href="OracleConfig.html" title="Oracle"  class="dropdown-item ">Oracle</a>
                                    <a href="MySQLConfig.html" title="MySQL"  class="dropdown-item ">MySQL</a>
                                    <a href="PostgresConfig.html" title="Postgres"  class="dropdown-item ">Postgres</a>
                                    <a href="MSSQLConfig.html" title="MSSQL"  class="dropdown-item ">MSSQL</a>
                                </div>
                            </div>
                            <div class="dropdown-submenu">
                                <a  href="licenses.html#localization"  title="Localization and languages"  class="dropdown-item" >Localization and languages</a>                                <div class="dropdown-menu">
                                    <a href="Internationalisation.html" title="Internationalisation"  class="dropdown-item ">Internationalisation</a>
                                    <a href="LanguageEditor.html" title="LanguageEditor"  class="dropdown-item ">LanguageEditor</a>
                                    <a href="TimeZoneHandling.html" title="TimeZoneHandling"  class="dropdown-item ">TimeZoneHandling</a>
                                    <a href="EditTemplates.html" title="EditTemplates"  class="dropdown-item ">EditTemplates</a>
                                </div>
                            </div>
                            <div class="dropdown-submenu">
                                <a  href="licenses.html#port"  title="NAT Port Settings"  class="dropdown-item" >NAT Port Settings</a>                                <div class="dropdown-menu">
                                    <a href="PortSettings.html" title="Port settings"  class="dropdown-item ">Port settings</a>
                                </div>
                            </div>
                            <div class="dropdown-submenu">
                                <a  href="licenses.html#performance"  title="Performance"  class="dropdown-item" >Performance</a>                                <div class="dropdown-menu">
                                    <a href="JVMPerformanceTuning.html" title="JVM performance tuning"  class="dropdown-item ">JVM performance tuning</a>
                                    <a href="NetworkCalculator.html" title="Network bandwidth calculator"  class="dropdown-item ">Network bandwidth calculator</a>
                                </div>
                            </div>
                            <div class="dropdown-submenu">
                                <a  href="licenses.html#interface"  title="User Interface"  class="dropdown-item" >User Interface</a>                                <div class="dropdown-menu">
                                    <a href="themes-and-branding.html" title="Themes"  class="dropdown-item ">Themes</a>
                                    <a href="Dashboard.html" title="Dashboard"  class="dropdown-item ">Dashboard</a>
                                    <a href="WebcamResolutions.html" title="Webcam resolutions"  class="dropdown-item ">Webcam resolutions</a>
                                    <a href="ConferenceRoomLayoutOptions.html" title="Room layout options"  class="dropdown-item ">Room layout options</a>
                                    <a href="HotKeys.html" title="Hot Keys"  class="dropdown-item ">Hot Keys</a>
                                </div>
                            </div>
                            <div class="dropdown-submenu">
                                <a  href="licenses.html#customize"  title="Customization"  class="dropdown-item" >Customization</a>                                <div class="dropdown-menu">
                                    <a href="WebappNamePath.html" title="Webapp name/path"  class="dropdown-item ">Webapp name/path</a>
                                    <a href="CalendarAndTimezone.html" title="Calendar and timezone"  class="dropdown-item ">Calendar and timezone</a>
                                    <a href="CustomRoomTypeHowTo.html" title="Custom room type"  class="dropdown-item ">Custom room type</a>
                                    <a href="CustomCryptMechanism.html" title="Custom crypt mechanism"  class="dropdown-item ">Custom crypt mechanism</a>
                                    <a href="GeneralConfiguration.html" title="General Configuration"  class="dropdown-item ">General Configuration</a>
                                    <a href="PrivacyStatement.html" title="Privacy Statement"  class="dropdown-item ">Privacy Statement</a>
                                </div>
                            </div>
                            <div class="dropdown-submenu">
                                <a  href="licenses.html#security"  title="Security"  class="dropdown-item" >Security</a>                                <div class="dropdown-menu">
                                    <a href="RestrictedAccess.html" title="Restricted Access"  class="dropdown-item ">Restricted Access</a>
                                    <a href="HTTPS.html" title="HTTPS"  class="dropdown-item ">HTTPS</a>
                                </div>
                            </div>
                            <div class="dropdown-submenu">
                                <a  href="licenses.html#convert"  title="Converters"  class="dropdown-item" >Converters</a>                                <div class="dropdown-menu">
                                    <a href="OpenOfficeConverter.html" title="OpenOffice Converter"  class="dropdown-item ">OpenOffice Converter</a>
                                </div>
                            </div>
                            <div class="dropdown-submenu">
                                <a  href="licenses.html#cluster"  title="Clustering"  class="dropdown-item" >Clustering</a>                                <div class="dropdown-menu">
                                    <a href="Clustering.html" title="Clustering"  class="dropdown-item ">Clustering</a>
                                </div>
                            </div>
                            <div class="dropdown-submenu">
                                <a  href="licenses.html#misc"  title="Misc"  class="dropdown-item" >Misc</a>                                <div class="dropdown-menu">
                                    <a href="GetVersionInfo.html" title="Get version info"  class="dropdown-item ">Get version info</a>
                                </div>
                            </div>
                        </div>
                    </li>
                    <li class="nav-item dropdown">
                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Development <b class="caret"></b></a>
                        <div class="dropdown-menu">
                            <a href="scm.html" title="Source Code"  class="dropdown-item ">Source Code</a>
                            <a href="issue-management.html" title="Bugs / Issues"  class="dropdown-item ">Bugs / Issues</a>
                            <a href="dependencies.html" title="Dependencies"  class="dropdown-item ">Dependencies</a>
                            <a href="ci-management.html" title="Continuous Integration"  class="dropdown-item ">Continuous Integration</a>
                            <a href="BuildInstructions.html" title="Build Instructions"  class="dropdown-item ">Build Instructions</a>
                            <a href="JUnitTesting.html" title="JUnit Testing"  class="dropdown-item ">JUnit Testing</a>
                            <a href="ManualTesting.html" title="Manual Testing"  class="dropdown-item ">Manual Testing</a>
                            <a href="ReleaseGuide.html" title="Release Guide"  class="dropdown-item ">Release Guide</a>
                            <a href="WebsiteGuide.html" title="Website Guide"  class="dropdown-item ">Website Guide</a>
                        </div>
                    </li>
                </ul><!--/ul.navbar-nav -->
            </div><!--/.nav-collapse -->
</div> <!--/.container -->    </nav> <!--/.navbar -->
    <div class="main-body">
    <div class="header text-light bg-secondary" role="main">
        <div class="container container-fluid">
    <div id="banner" class="header--banner">
        <div class="row m-1">
          <div class="col-md-12">
            <div class="float-left header--banner--left bannerLeft">
                    <a href="index.html">
            <img class="float-left m-2 img-fluid" src="images/logo.png" alt="Apache OpenMeetings" />
            </a>
            </div>
            <div class="float-right header--banner--right bannerRight">
                    <a href="https://apache.org">
            <img class="float-left m-2 img-fluid" src="https://apache.org/img/asf_logo.png" alt="Apache" />
            </a>
            </div>
          </div>
        </div>
    </div>
        </div>
    </div> <!-- end : header -->
    <div class="row mt-5">
        <div class="d-xs-none d-sm-none d-md-none d-lg-block col-lg-2">
        </div>
        <main class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-8" role="main">
    <nav aria-label="breadcrumb">
        <ol class="breadcrumb">
            <li class="publishDate version-date">    Last Published: 2021-03-09</li>
        </ol>
    </nav>
        <section> 
 <h2 id="overview1">Overview</h2> 
 <a name="Overview"></a> 
 <p>Typically the licenses listed for the project are that of the project itself, and not of dependencies.</p> 
</section> 
<section> 
 <h2 id="project-licenses">Project Licenses</h2> 
 <a name="Project_Licenses"></a> 
 <section> 
  <h3 id="the-apache-software-license-version-20">The Apache Software License, Version 2.0</h3> 
  <a name="The_Apache_Software_License.2C_Version_2.0"></a> 
  <a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0">[Original text]</a> 
  <p>Copy of the license follows:</p> 
  <!-- Navigation --> 
  <header> 
   <nav class="navbar navbar-inverse navbar-fixed-top mainmenu"> 
    <div class="container"> 
     <div class="navbar-header"> 
      <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#mainnav-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> 
     </div> 
     <div class="collapse navbar-collapse" id="mainnav-collapse"> 
      <ul class="nav navbar-nav navbar-justified"> 
       <li> 
        <form class="visible-xs"> 
         <div class="input-group" style="width: 100%;"> 
          <script>
                    (function() {
                    var cx = '005703438322411770421:5mgshgrgx2u';
                    var gcse = document.createElement('script');
                    gcse.type = 'text/javascript';
                    gcse.async = true;
                    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
                    '//cse.google.com/cse.js?cx=' + cx;
                    var s = document.getElementsByTagName('script')[0];
                    s.parentNode.insertBefore(gcse, s);
                    })();
                  </script> 
          <gcse:searchbox-only></gcse:searchbox-only> 
         </div> 
        </form> </li> 
       <li><a href="https://www.apache.org/index.html#news">News</a></li> 
       <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">About&nbsp;<span class="caret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a href="https://www.apache.org/foundation">Overview</a></li> 
         <li><a href="https://www.apache.org/foundation/how-it-works.html">Process</a></li> 
         <li><a href="https://www.apache.org/foundation/governance/">Governance</a></li> 
         <li><a href="https://www.apache.org/theapacheway/index.html">The Apache Way</a></li> 
         <li><a href="https://www.apache.org/foundation/governance/members.html">Membership</a></li> 
         <li><a href="https://community.apache.org/">Community</a></li> 
         <li><a href="https://diversity.apache.org/">Diversity &amp; Inclusion</a></li> 
         <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> 
         <li><a href="https://www.apache.org/foundation/glossary.html">Glossary</a></li> 
         <li><a href="https://www.apache.org/apache-name">About Our Name</a></li> 
         <li><a href="https://www.apache.org/foundation/preFAQ.html">FAQ</a></li> 
         <li><a href="https://www.apache.org/foundation/contributing.html">Support Apache</a></li> 
         <li><a href="https://www.apache.org/press/">Media/Analysts</a></li> 
         <li><a href="https://www.apache.org/foundation/contact.html">Contact</a></li> 
        </ul> </li> 
       <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">Make a Donation&nbsp;<span class="caret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a href="https://www.apache.org/foundation/contributing.html">Donate Now</a></li> 
         <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via Credit Card</a></li> 
         <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via ACH</a></li> 
         <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via PayPal</a></li> 
         <li><a href="https://www.apache.org/foundation/contributing.html#Bitcoin">&nbsp;&nbsp;Using Bitcoin</a></li> 
         <li><a href="https://www.redbubble.com/people/comdev">Buy Swag</a></li> 
         <li><a href="https://smile.amazon.com/gp/chpf/homepage/ref=smi_se_scyc_srch_stsr?q=apache+software+foundation&amp;orig=%2F">Shop smile.amazon.com</a></li> 
         <li><a href="https://www.apache.org/foundation/sponsorship.html">ASF Sponsorship</a></li> 
         <li><a href="https://www.apache.org/foundation/thanks#targeted-sponsors">Targeted Sponsorship</a></li> 
         <li><a href="https://www.apache.org/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li> 
        </ul> </li> 
       <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdopwn-toggle" data-toggle="dropdown">The Apache Way&nbsp;<span class="caret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a href="https://www.apache.org/theapacheway/index.html">The Apache Way</a></li> 
         <li><a href="https://s.apache.org/GhnI">Sustainable Open Source</a></li> 
         <li><a href="https://www.apache.org/foundation/how-it-works.html">How it Works</a></li> 
         <li><a href="https://www.apache.org/foundation/how-it-works.html#meritocracy">Merit</a></li> 
         <li><a href="https://blogs.apache.org/foundation/category/SuccessAtApache">Success at Apache</a></li> 
        </ul> </li> 
       <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdopwn-toggle" data-toggle="dropdown">Join Us&nbsp;<span class="caret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a href="https://community.apache.org/gettingStarted/101.html">Getting Started</a></li> 
         <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li> 
         <li><a href="https://www.apachecon.com/">ApacheCon</a></li> 
         <li><a href="http://community.apache.org/calendars/">Community Events</a></li> 
         <li><a href="https://www.apache.org/travel/">Travel Assistance</a></li> 
         <li><a href="https://community.apache.org/gsoc.html">Summer of Code</a></li> 
         <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> 
         <li><a href="https://community.apache.org/contributors/etiquette">Etiquette</a></li> 
         <li class="dropdown dropdown-submenu visible-xs"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">Projects&nbsp;<span class="caret"></span></a> 
          <ul class="dropdown-menu" role="menu"> 
           <li><a href="https://www.apache.org/index.html#projects-list">Project List</a></li> 
           <li><a href="https://www.apache.org/foundation/how-it-works.html#management">How they work</a></li> 
           <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li> 
           <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li> 
           <li><a href="https://projects.apache.org/projects.html?name">Names</a></li> 
           <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li> 
           <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li> 
           <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li> 
           <li><a href="https://incubator.apache.org/">Apache Incubator</a></li> 
           <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li> 
           <li><a href="https://www.apache.org/foundation/marks/">Brand Management</a></li> 
          </ul> </li> 
         <li class="drowpdown dropdown-submenu visible-xs"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">People&nbsp;<span class="caret"></span></a> 
          <ul class="dropdown-menu" role="menu"> 
           <li><a href="https://www.apache.org/foundation/how-it-works.html#roles">Roles</a></li> 
           <li><a href="https://www.apache.org/foundation/members.html">Members</a></li> 
           <li><a href="https://community.apache.org/contributors/">Committers</a></li> 
           <li><a href="https://www.apache.org/foundation/#who-runs-the-asf">Board of Directors</a></li> 
           <li><a href="https://www.apache.org/foundation/#who-runs-the-asf">Officers &amp; Project VPs</a></li> 
           <li><a href="https://community.zones.apache.org/map.html">Location Map</a></li> 
           <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> 
           <li><a href="https://people.apache.org/">Committer Directory</a></li> 
          </ul> </li> 
         <li class="drowpdown dropdown-submenu visible-xs"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">Community&nbsp;<span class="caret"></span></a> 
          <ul class="dropdown-menu" role="menu"> 
           <li><a href="https://community.apache.org/about/">Community Development</a></li> 
           <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> 
           <li><a href="https://community.apache.org/">Get Involved</a></li> 
           <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li> 
           <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li> 
           <li><a href="https://community.apache.org/calendars/">Community Events</a></li> 
           <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li> 
           <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li> 
          </ul> </li> 
         <li class="drowpdown dropdown-submenu visible-xs"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">License&nbsp;<span class="caret"></span></a> 
          <ul class="dropdown-menu" role="menu"> 
           <li><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a></li> 
           <li><a href="https://www.apache.org/foundation/license-faq.html">Licensing FAQ</a></li> 
           <li><a href="https://www.apache.org/licenses/contributor-agreements.html">Contributor License Agreements</a></li> 
           <li><a href="https://www.apache.org/licenses/contributor-agreements.html#grants">Software Grants</a></li> 
           <li><a href="https://www.apache.org/foundation/marks/list/">Trademarks</a></li> 
          </ul> </li> 
         <li class="drowpdown dropdown-submenu visible-xs"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">Sponsors&nbsp;<span class="caret"></span></a> 
          <ul class="dropdown-menu" role="menu"> 
           <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsor the ASF</a></li> 
           <li><a href="https://www.apache.org/foundation/thanks">Sponsor Thanks</a></li> 
           <li><a href="https://www.apache.org/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li> 
           <li><a href="https://www.apache.org/foundation/contributing.html">Individual Donations</a></li> 
           <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li> 
          </ul> </li> 
        </ul> </li> 
       <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">Downloads&nbsp;<span class="caret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a href="https://www.apache.org/dist/">Distribution</a></li> 
         <li><a href="https://projects.apache.org/releases.html">Releases</a></li> 
         <li><a href="https://www.apache.org/dyn/closer.cgi">Mirrors</a></li> 
         <li><a href="https://status.apache.org/">Infrastructure Status</a></li> 
         <li><a href="https://www.apache.org/uptime/">Infrastructure Statistics</a></li> 
        </ul> </li> 
       <li class="dropdown hidden-xs"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-search" aria-hidden="true"></span><span class="sr-only">Search</span></a> 
        <ul class="dropdown-menu search-form" role="search"> 
         <li> 
          <div class="input-group" style="width: 100%; padding: 0 5px;"> 
           <script>
                      (function() {
                      var cx = '005703438322411770421:5mgshgrgx2u';
                      var gcse = document.createElement('script');
                      gcse.type = 'text/javascript';
                      gcse.async = true;
                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
                      '//cse.google.com/cse.js?cx=' + cx;
                      var s = document.getElementsByTagName('script')[0];
                      s.parentNode.insertBefore(gcse, s);
                      })();
                    </script> 
           <gcse:searchbox-only></gcse:searchbox-only> 
          </div> </li> 
        </ul> </li> 
      </ul> 
     </div> 
    </div> 
   </nav> 
  </header> 
  <!-- / Navigation --> 
  <header id="main-header" class="container"> 
   <div class="sideImg"> 
    <a class="visible-home" href="http://apachecon.com/"><img class="img-responsive img-fluid" src="https://www.apache.org/img/ApacheCon-PROMO-2019.gif" alt="ApacheCon is Coming 9-12 Sept. 2019 - Las Vegas"></a> 
    <a class="hidden-home" href="https://www.apache.org/"><img class="img-responsive img-fluid" src="https://www.apache.org/img/ASF20thAnniversary.jpg" alt="The Apache Software Foundation"></a> 
   </div> 
   <div class="main"> 
    <img class="img-responsive center-block visible-home img-fluid" src="https://www.apache.org/img/ASF20thAnniversary.jpg" alt="Apache 20th Anniversary Logo"> 
    <h2 class="text-center" id="community-led-development-the-apache-way">Community-led development "The&nbsp;Apache&nbsp;Way"</h2> 
    <ul class="nav navbar-nav navbar-justified"> 
     <li class="drowpdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">Projects&nbsp;<span class="caret hidden-sm"></span></a> 
      <ul class="dropdown-menu" role="menu"> 
       <li><a href="https://www.apache.org/index.html#projects-list">Project List</a></li> 
       <li><a href="https://www.apache.org/foundation/how-it-works.html#management">How they work</a></li> 
       <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li> 
       <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li> 
       <li><a href="https://projects.apache.org/projects.html?name">Names</a></li> 
       <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li> 
       <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li> 
       <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li> 
       <li><a href="https://incubator.apache.org/">Apache Incubator</a></li> 
       <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li> 
       <li><a href="https://www.apache.org/foundation/marks/">Brand Management</a></li> 
       <li><a href="https://www.apache.org/foundation/glossary.html">Glossary of Terms</a></li> 
      </ul> </li> 
     <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">People&nbsp;<span class="caret hidden-sm"></span></a> 
      <ul class="dropdown-menu" role="menu"> 
       <li><a href="https://www.apache.org/foundation/how-it-works.html#roles">Roles</a></li> 
       <li><a href="https://www.apache.org/foundation/members.html">Members</a></li> 
       <li><a href="https://community.apache.org/contributors/">Committers</a></li> 
       <li><a href="https://www.apache.org/foundation/#who-runs-the-asf">Board of Directors</a></li> 
       <li><a href="https://www.apache.org/foundation/#who-runs-the-asf">Officers &amp; Project VPs</a></li> 
       <li><a href="https://diversity.apache.org/">Diversity &amp; Inclusion</a></li> 
       <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> 
       <li><a href="https://people.apache.org/">Committer Directory</a></li> 
       <li><a href="https://community.zones.apache.org/map.html">Heat Map</a></li> 
      </ul> </li> 
     <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">Community&nbsp;<span class="caret hidden-sm"></span></a> 
      <ul class="dropdown-menu" role="menu"> 
       <li><a href="https://community.apache.org/about/">Community Development</a></li> 
       <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> 
       <li><a href="https://community.apache.org/">Get Involved</a></li> 
       <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li> 
       <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li> 
       <li><a href="https://community.apache.org/calendars/">Community Events</a></li> 
       <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li> 
       <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li> 
      </ul> </li> 
     <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">License&nbsp;<span class="caret hidden-sm"></span></a> 
      <ul class="dropdown-menu" role="menu"> 
       <li><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a></li> 
       <li><a href="https://www.apache.org/foundation/license-faq.html">Licensing FAQ</a></li> 
       <li><a href="https://www.apache.org/licenses/contributor-agreements.html">Contributor License Agreements</a></li> 
       <li><a href="https://www.apache.org/licenses/contributor-agreements.html#grants">Software Grants</a></li> 
       <li><a href="https://www.apache.org/foundation/marks/list/">Trademarks</a></li> 
      </ul> </li> 
     <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown">Sponsors&nbsp;<span class="caret hidden-sm"></span></a> 
      <ul class="dropdown-menu" role="menu"> 
       <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsor the ASF</a></li> 
       <li><a href="https://www.apache.org/foundation/thanks">Sponsor Thanks</a></li> 
       <li><a href="https://www.apache.org/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li> 
       <li><a href="https://www.apache.org/foundation/contributing.html">Individual Donations</a></li> 
       <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li> 
      </ul> </li> 
    </ul> 
   </div> 
   <div class="sideImg"> 
    <a href="https://www.apache.org/foundation/contributing.html"><img class="img-responsive img-fluid" src="https://www.apache.org/img/support-apache.jpg" alt="Apache Support Logo"></a> 
   </div> 
  </header> 
  <div class="container"> 
   <style type="text/css">
/* The following code is added by mdx_elementid.py
   It was originally lifted from http://subversion.apache.org/style/site.css */
/*
 * Hide class="elementid-permalink", except when an enclosing heading
 * has the :hover property.
 */
.headerlink, .elementid-permalink {
  visibility: hidden;
}
h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> 
   <h3 id="apache-license-version-201">Apache License, Version 2.0<a class="headerlink" href="https://www.apache.org/licenses/#apache-license-version-20" title="Permanent link">¶</a></h3> 
   <ul> 
    <li>Text version: <a href="https://www.apache.org/licenses/LICENSE-2.0.txt">https://www.apache.org/licenses/LICENSE-2.0.txt</a></li> 
    <li>SPDX short identifier: <a href="https://spdx.org/licenses/Apache-2.0.html">Apache-2.0</a></li> 
    <li>OSI Approved License: <a href="https://opensource.org/licenses/Apache-2.0">https://opensource.org/licenses/Apache-2.0</a></li> 
   </ul> 
   <p>The 2.0 version of the Apache License, approved by the ASF in 2004, helps us achieve our goal of providing reliable and long-lived software products through collaborative open source software development. </p> 
   <p>All packages produced by the ASF are implicitly licensed under the Apache License, Version 2.0, unless otherwise explicitly stated. </p> 
   <div style="margin: 3em 10%; font-family:serif;text-align:justify; border: 1px solid black; padding: 2em;   box-shadow: 4px 8px #888888;"> 
    <p style="text-align:center"> <strong>Apache License<br><br>Version 2.0, January 2004<br><br></strong> <strong><a href="http://www.apache.org/licenses/">http://www.apache.org/licenses/</a></strong> </p> 
    <p>TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION</p> 
    <p><strong><a name="definitions">1. Definitions</a></strong>.</p> 
    <div style="margin-left: 1em;"> 
     <p>"<strong>License</strong>" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.</p> 
     <p>"<strong>Licensor</strong>" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.</p> 
     <p>"<strong>Legal Entity</strong>" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "<strong>control</strong>" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.</p> 
     <p>"<strong>You</strong>" (or "<strong>Your</strong>") shall mean an individual or Legal Entity exercising permissions granted by this License.</p> 
     <p>"<strong>Source</strong>" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.</p> 
     <p>"<strong>Object</strong>" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.</p> 
     <p>"<strong>Work</strong>" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).</p> 
     <p>"<strong>Derivative Works</strong>" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.</p> 
     <p>"<strong>Contribution</strong>" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "<strong>submitted</strong>" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "<strong>Not a Contribution.</strong>"</p> 
     <p>"<strong>Contributor</strong>" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.</p> 
    </div> 
    <p><strong><a name="copyright">2. Grant of Copyright License</a></strong>. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.</p> 
    <p><strong><a name="patent">3. Grant of Patent License</a></strong>. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.</p> 
    <p><strong><a name="redistribution">4. Redistribution</a></strong>. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:</p> 
    <ol style="list-style: lower-latin;"> 
     <li>You must give any other recipients of the Work or Derivative Works a copy of this License; and</li> 
     <li>You must cause any modified files to carry prominent notices stating that You changed the files; and</li> 
     <li>You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and</li> 
     <li>If the Work includes a "<strong>NOTICE</strong>" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. <br> <br> You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. </li> 
    </ol> 
    <p><strong><a name="contributions">5. Submission of Contributions</a></strong>. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.</p> 
    <p><strong><a name="trademarks">6. Trademarks</a></strong>. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.</p> 
    <p><strong><a name="no-warranty">7. Disclaimer of Warranty</a></strong>. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.</p> 
    <p><strong><a name="no-liability">8. Limitation of Liability</a></strong>. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.</p> 
    <p><strong><a name="additional">9. Accepting Warranty or Additional Liability</a></strong>. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.</p> 
    <p>END OF TERMS AND CONDITIONS</p> 
   </div> 
   <div class="page-header">
    <h1 id="how-to-apply-the-apache-license-to-your-work">How to apply the Apache License to your work<a class="headerlink" href="https://www.apache.org/licenses/#apply" title="Permanent link">¶</a></h1>
   </div> 
   <p>You should include a copy of the Apache License, typically in a file called LICENSE, in your work, and consider also including a NOTICE file.</p> 
   <p>To apply the Apache License to specific files in your work, attach the following boilerplate declaration, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.</p> 
   <div class="codehilite"> 
    <pre>Copyright [yyyy] [name of copyright owner]

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.
</pre> 
   </div> 
  </div> 
  <!-- Footer --> 
  <footer class="bg-primary"> 
   <div class="container"> 
    <div class="row"> 
     <br> 
     <div class="col-sm-1"> 
     </div> 
     <div class="col-sm-2"> 
      <h5 class="white" id="community">Community</h5> 
      <ul class="list-unstyled white" role="menu"> 
       <li><a href="http://community.apache.org/">Overview</a></li> 
       <li><a href="https://www.apache.org/foundation/conferences.html">Conferences</a></li> 
       <li><a href="http://community.apache.org/gsoc.html">Summer of Code</a></li> 
       <li><a href="http://community.apache.org/newcomers/">Getting Started</a></li> 
       <li><a href="https://www.apache.org/foundation/how-it-works.html">The Apache Way</a></li> 
       <li><a href="https://www.apache.org/travel/">Travel Assistance</a></li> 
       <li><a href="https://www.apache.org/foundation/getinvolved.html">Get Involved</a></li> 
       <li><a href="https://www.apache.org/foundation/policies/conduct.html">Code of Conduct</a></li> 
       <li><a href="http://community.apache.org/newbiefaq.html">Community FAQ</a></li> 
       <li><a href="https://www.apache.org/memorials/">Memorials</a></li> 
      </ul> 
     </div> 
     <div class="col-sm-2"> 
      <h5 class="white" id="innovation">Innovation</h5> 
      <ul class="list-unstyled white" role="menu"> 
       <li><a href="http://incubator.apache.org/">Incubator</a></li> 
       <li><a href="http://labs.apache.org/">Labs</a></li> 
       <li><a href="https://www.apache.org/licenses/">Licensing</a></li> 
       <li><a href="https://www.apache.org/foundation/license-faq.html">Licensing FAQ</a></li> 
       <li><a href="https://www.apache.org/foundation/marks/">Trademark Policy</a></li> 
       <li><a href="https://www.apache.org/foundation/contact.html">Contacts</a></li> 
      </ul> 
     </div> 
     <div class="col-sm-2"> 
      <h5 class="white" id="tech-operations">Tech Operations</h5> 
      <ul class="list-unstyled white" role="menu"> 
       <li><a href="https://www.apache.org/dev/">Developer Information</a></li> 
       <li><a href="https://www.apache.org/dev/infrastructure.html">Infrastructure</a></li> 
       <li><a href="https://www.apache.org/security/">Security</a></li> 
       <li><a href="http://status.apache.org">Status</a></li> 
       <li><a href="https://www.apache.org/foundation/contact.html">Contacts</a></li> 
      </ul> 
     </div> 
     <div class="col-sm-2"> 
      <h5 class="white" id="press">Press</h5> 
      <ul class="list-unstyled white" role="menu"> 
       <li><a href="https://www.apache.org/press/">Overview</a></li> 
       <li><a href="https://blogs.apache.org/">ASF News</a></li> 
       <li><a href="https://blogs.apache.org/foundation/">Announcements</a></li> 
       <li><a href="https://twitter.com/TheASF">Twitter Feed</a></li> 
       <li><a href="https://www.apache.org/press/#contact">Contacts</a></li> 
      </ul> 
     </div> 
     <div class="col-sm-2"> 
      <h5 class="white" id="legal">Legal</h5> 
      <ul class="list-unstyled white" role="menu"> 
       <li><a href="https://www.apache.org/legal/">Legal Affairs</a></li> 
       <li><a href="https://www.apache.org/legal/dmca.html">DMCA</a></li> 
       <li><a href="https://www.apache.org/licenses/">Licensing</a></li> 
       <li><a href="https://www.apache.org/foundation/marks/">Trademark Policy</a></li> 
       <li><a href="https://www.apache.org/foundation/records/">Public Records</a></li> 
       <li><a href="https://www.apache.org/foundation/policies/privacy.html">Privacy Policy</a></li> 
       <li><a href="https://www.apache.org/licenses/exports/">Export Information</a></li> 
       <li><a href="https://www.apache.org/foundation/license-faq.html">Licensing FAQ</a></li> 
       <li><a href="https://www.apache.org/foundation/contact.html">Contacts</a></li> 
      </ul> 
     </div> 
     <div class="col-sm-1"> 
     </div> 
    </div> 
    <hr class="col-lg-12 hr-white"> 
    <div class="row"> 
     <div class="col-lg-12"> 
      <p class="text-center">Copyright © 2019 The Apache Software Foundation, Licensed under the <a class="white" href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> 
      <p class="text-center">Apache and the Apache feather logo are trademarks of The Apache Software Foundation. </p> 
     </div> 
    </div> 
   </div> 
  </footer> 
  <!-- / Footer --> 
  <script src="/js/jquery-2.1.1.min.js"></script> 
  <script src="/js/bootstrap.js"></script> 
  <script>
    (function($){
    $(document).ready(function(){
    $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
    console.log('WOrked');
    });
    });
    })(jQuery);
  </script> 
 </section> 
</section>        </main>
        <div class="d-none d-sm-none d-md-none d-lg-none d-xl-block col-xl-2">
            <div id="m-toc-sidebar" class="d-print-none m-toc-sidebar-enabled m-toc-sidebar-expanded m-toc-sidebar-autoexpandable toc-sidebar-fixed">
                <nav id="m-toc-sidebar-nav flex-column">
                <ul class="m-nav--sidebar nav flex-column flex-nowrap">
    <li class="h2">
        <a class="nav-link" href="#overview1" title="Overview">Overview</a>
    </li>
        <li class="h2">
        <a class="nav-link" href="#project-licenses" title="Project Licenses">Project Licenses</a>
    </li>
    <ul class="nav flex-column flex-nowrap nav-collapsible">
            <li class="h3">
        <a class="nav-link" href="#the-apache-software-license-version-20" title="The Apache Software License, Version 2.0">The Apache Software License, Version 2.0</a>
    </li>
    </ul>
        <li class="h2">
        <a class="nav-link" href="#community-led-development-the-apache-way" title="Community-led development "The Apache Way"">Community-led development "The Apache Way"</a>
    </li>
    <ul class="nav flex-column flex-nowrap nav-collapsible">
            <li class="h3">
        <a class="nav-link" href="#apache-license-version-201" title="Apache License, Version 2.0¶">Apache License, Version 2.0¶</a>
    </li>
    </ul>
        <li class="h1">
        <a class="nav-link" href="#how-to-apply-the-apache-license-to-your-work" title="How to apply the Apache License to your work¶">How to apply the Apache License to your work¶</a>
    </li>
    <li class="h5">
        <a class="nav-link" href="#community" title="Community">Community</a>
    </li>
    <li class="h5">
        <a class="nav-link" href="#innovation" title="Innovation">Innovation</a>
    </li>
    <li class="h5">
        <a class="nav-link" href="#tech-operations" title="Tech Operations">Tech Operations</a>
    </li>
    <li class="h5">
        <a class="nav-link" href="#press" title="Press">Press</a>
    </li>
    <li class="h5">
        <a class="nav-link" href="#legal" title="Legal">Legal</a>
    </li>
                    </ul>
                </nav>
           </div>
        </div>
    </div> <!-- row: end -->
</div> <!-- .main-body: end -->
    <div id="m_scrolltop" class="m-scrolltop">
		<i class="fa fa-arrow-up"></i>
    </div>
  <!-- Footer -->
<footer class="footer-light bg-light">
    <div class="container">
        <div class="row">
                        <div class="col bottom-nav">
                <ul class="nav flex-column nav-list">
                    <li class="nav-header">
General
                    </li>
                    <li class="nav-item "><a  href="index.html"  title="Home"  class="nav-link" >Home</a></li>
                    <li class="nav-item "><a  href="https://www.apache.org/licenses/"  title="License"   class="externalLink nav-link" >License</a></li>
                    <li class="nav-item "><a  href="https://www.apache.org/"  title="ASF"   class="externalLink nav-link" >ASF</a></li>
                    <li class="nav-item "><a  href="https://www.apache.org/foundation/sponsorship"  title="Sponsorship"   class="externalLink nav-link" >Sponsorship</a></li>
                    <li class="nav-item "><a  href="https://www.apache.org/foundation/thanks"  title="Thanks"   class="externalLink nav-link" >Thanks</a></li>
                    <li class="nav-item "><a  href="CallForLogo.html"  title="Call For Logo"  class="nav-link" >Call For Logo</a></li>
                    <li class="nav-item "><a  href="NewsArchive.html"  title="News archive"  class="nav-link" >News archive</a></li>
                    <li class="nav-item "><a  href="security.html"  title="Security"  class="nav-link" >Security</a></li>
                    <li class="nav-item "><a  href="commercial-support.html"  title="Commercial Support"  class="nav-link" >Commercial Support</a></li>
                </ul>
            </div>
            <div class="col bottom-nav">
                <ul class="nav flex-column nav-list">
                    <li class="nav-header">
Installation
                    </li>
                    <li class="nav-item "><a  href="installation.html"  title="Installation"  class="nav-link" >Installation</a></li>
                    <li class="nav-item "><a  href="Upgrade.html"  title="Upgrade"  class="nav-link" >Upgrade</a></li>
                    <li class="nav-item "><a  href="InstallMediaServer.html"  title="Media Server Installation"  class="nav-link" >Media Server Installation</a></li>
                    <li class="nav-item "><a  href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools"  title="Tutorials"   class="externalLink nav-link" >Tutorials</a></li>
                    <li class="nav-item "><a  href="CommandLineAdmin.html"  title="Command Line Admin"  class="nav-link" >Command Line Admin</a></li>
                </ul>
            </div>
            <div class="col bottom-nav">
                <ul class="nav flex-column nav-list">
                    <li class="nav-header">
Community
                    </li>
                    <li class="nav-item "><a  href="get-involved.html"  title="Get Involved"  class="nav-link" >Get Involved</a></li>
                    <li class="nav-item "><a  href="team.html"  title="Committers"  class="nav-link" >Committers</a></li>
                    <li class="nav-item "><a  href="OurUsers.html"  title="Our Users"  class="nav-link" >Our Users</a></li>
                    <li class="nav-item "><a  href="mailing-lists.html"  title="Mailing Lists"  class="nav-link" >Mailing Lists</a></li>
                    <li class="nav-item "><a  href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/"  title="Wiki"   class="externalLink nav-link" >Wiki</a></li>
                </ul>
            </div>
            <div class="col bottom-nav">
                <ul class="nav flex-column nav-list">
                    <li class="nav-header">
Development
                    </li>
                    <li class="nav-item "><a  href="scm.html"  title="Source Code"  class="nav-link" >Source Code</a></li>
                    <li class="nav-item "><a  href="issue-management.html"  title="Bugs / Issues"  class="nav-link" >Bugs / Issues</a></li>
                    <li class="nav-item "><a  href="dependencies.html"  title="Dependencies"  class="nav-link" >Dependencies</a></li>
                    <li class="nav-item "><a  href="ci-management.html"  title="Continuous Integration"  class="nav-link" >Continuous Integration</a></li>
                    <li class="nav-item "><a  href="BuildInstructions.html"  title="Build Instructions"  class="nav-link" >Build Instructions</a></li>
                    <li class="nav-item "><a  href="JUnitTesting.html"  title="JUnit Testing"  class="nav-link" >JUnit Testing</a></li>
                    <li class="nav-item "><a  href="ManualTesting.html"  title="Manual Testing"  class="nav-link" >Manual Testing</a></li>
                    <li class="nav-item "><a  href="ReleaseGuide.html"  title="Release Guide"  class="nav-link" >Release Guide</a></li>
                    <li class="nav-item "><a  href="WebsiteGuide.html"  title="Website Guide"  class="nav-link" >Website Guide</a></li>
                </ul>
            </div>
        </div> <!-- END: .row -->
    </div> <!-- END: .container -->
</footer>
  <div class="container subfooter text-center">
    <div class="row">
      <div class="col-md-12">
        <p class="copyright">Copyright &copy;2012-2021
                 <a href="https://apache.org">Apache Software Foundation</a>
. All Rights Reserved.</p>
      </div>
    </div>
  </div>

  <!-- Le javascript
  ================================================== -->
  <!-- Placed at the end of the document so the pages load faster -->
    <script src="./js/jquery.min.js" crossorigin="anonymous"></script>
    <script src="./js/popper.min.js" crossorigin="anonymous"></script>
    <script src="./js/bootstrap.min.js" crossorigin="anonymous"></script>

  <script src="./js/lightbox.min.js" crossorigin="anonymous"></script>
            	<script src="./js/highlight.min.js" crossorigin="anonymous"></script>
                    
<script src="./js/site.js" type="text/javascript"></script>        
<script src="./js/jquery-ui.min.js" type="text/javascript"></script>        
<script src="./js/netcalc.js" type="text/javascript"></script>        
<p class="text-center">Apache OpenMeetings, OpenMeetings, Apache, the Apache feather, and the Apache OpenMeetings project logo</p>        
<p class="text-center">are trademarks of the Apache Software Foundation.</p>  <script src="./js/reflow-skin.js" crossorigin="anonymous"></script>
    <script src="./js/anchor.min.js" crossorigin="anonymous"></script>
    </body>
</html>
