/**
  * @param \Composer\Autoload\ClassLoader $loader
  * @param bool                           $takePriority
  * @param null                           $basePath
  *
  * @return \Composer\Autoload\ClassLoader
  */
 function get(Composer\Autoload\ClassLoader $loader, $takePriority = true, $basePath = null)
 {
     // The default base path assumes /base/group/repo/src
     if (!$basePath) {
         $basePath = dirname(dirname(dirname(__DIR__)));
     }
     foreach ($loader->getPrefixes() as $namespace => $paths) {
         $path = trim($namespace, '\\');
         $path = str_replace('\\', '/', $path);
         // Add original case
         $loader->add($namespace, sprintf('%s/%s/src', $basePath, $path), $takePriority);
         // Add lowercase
         if (strtolower($path) !== $path) {
             $loader->add($namespace, sprintf('%s/%s/src', $basePath, strtolower($path)), $takePriority);
         }
     }
     return $loader;
 }
// Enable nethgui javascript files auto inclusion:
define('NETHGUI_ENABLE_INCLUDE_WIDGET', TRUE);
// Disable caching:
// define('NETHGUI_ENABLE_HTTP_CACHE_HEADERS', FALSE);
// Enable debug mode (produces more verbose log
// output and uses non-minified js & css)
define('NETHGUI_DEBUG', TRUE);
define('NETHGUI_MENU_CATEGORIES', 'Status, Management, Administration, Security, Configuration, Gateway');
$namespaces = array();
include_once "autoload.php";
$nsbase = dirname(__DIR__);
$loader = new \Composer\Autoload\ClassLoader();
$loader->add('Nethgui', $nsbase);
$loader->add('NethServer', $nsbase);
$loader->register();
foreach ($loader->getPrefixes() as $nsName => $paths) {
    $namespaces[trim($nsName, '\\')] = reset($paths) . DIRECTORY_SEPARATOR . trim($nsName, '\\');
}
$loader->add('Pimple', $nsbase);
$loader->add('Mustache', $nsbase);
$loader->add('Symfony', $nsbase);
$FW = new \Nethgui\Framework();
$FW->setLogLevel(E_WARNING | E_ERROR | E_NOTICE)->registerNamespace($namespaces[__NAMESPACE__])->setDefaultModule('Dashboard')->setDecoratorTemplate('NethServer\\Template\\NethServer')->setForcedLoginModule(function ($dc) {
    return $dc['Platform']->getDatabase('configuration')->getProp('httpd-admin', 'ForcedLoginModule');
})->setAuthenticationValidator(function ($dc) {
    $v = new \NethServer\Tool\PamValidator();
    $v->setLog($dc['Log']);
    return $v;
});
try {
    $R = $FW->createRequest();