diff --git a/.gitignore b/.gitignore
index fb23a1f31378cce575900e083e4179591effa425..665b11f9bb947d04a4ca0f4a25a39f66c47ab94a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,5 @@ vas/rest/class/!*.*
 vas/sql/*
 vas/sql/!*/
 vas/sql/!*.*
+
+utils - Copie/
diff --git a/README.md b/README.md
index 73a21c98f1cea1876231e24ce68d0dc5b7bca937..74f028f09749f9b761f2201dd3b24edc6496ae8f 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,13 @@
-Vitis framework
\ No newline at end of file
+# Extraction
+
+Application extraction
+
+## Install dev version (linux)
+
+To install the dev version of this project run the following steps:
+
+- Install the app via the VAI setup on var/www/[app name]
+- Clone this repo on var/wwww/[app name]\_dev
+- Run install.sh and give the var/www/[app name] path when asked to build your tree structure
+- Now you have the correct versioned tree structure, rename var/www/[app name] as var/www/[app name]\_vai and var/www/[app name]\_dev as var/www/[app name]
+- Run `git pull` and `git push` to update/post the project and his dependencies
diff --git a/conf/Gruntfile.js b/conf/Gruntfile.js
new file mode 100755
index 0000000000000000000000000000000000000000..28e9144ebb6cda02295de10949ee891e13c4958e
--- /dev/null
+++ b/conf/Gruntfile.js
@@ -0,0 +1,112 @@
+module.exports = function (grunt) {
+
+    var compilerPackage = require('google-closure-compiler');
+    compilerPackage.grunt(grunt);
+
+    var devMode = grunt.option('dev');
+
+    var sHome = '../';
+    if (devMode) {
+        sHome = '../client/';
+    }
+
+    var sClosureDepsHome = '../../../../../';
+
+    // Project configuration.
+    grunt.initConfig({
+        'closure-compiler': {
+            Extraction: {
+                files: {
+                    [sHome + '/javascript/extraction.min.js']: [
+                        // Fichiers Vitis
+                        sHome + 'javascript/require/*.js',
+                        sHome + 'javascript/app/**/*.js',
+                        sHome + 'javascript/externs/formReader/**/*.js',
+                        sHome + 'javascript/externs/mapJSON/**/*.js',
+                        sHome + 'modules/vitis/javascript/**/*.js',
+                        // OpenLayers
+                        sHome + 'javascript/externs/openLayers/**/*.js',
+                        // Fichiers Extraction
+                        sHome + 'conf/requires/*.js',
+                        sHome + 'modules/extraction/javascript/**/*.js'
+                    ]
+                },
+                options: {
+                    js: [
+                        'node_modules/google-closure-library/closure/goog/**.js',
+                        '!node_modules/google-closure-library/closure/goog/**_test.js'
+                    ],
+                    externs: [
+                        'closure/externs/angular-1.3.js',
+                        'closure/externs/bingmaps.js',
+                        'closure/externs/jquery-1.9.js',
+                        'closure/externs/bootstrap.js',
+                        'closure/externs/geojson.js',
+                        'closure/externs/jspdf.js',
+                        'closure/externs/html2canvas.js'
+                    ],
+                    compilation_level: 'ADVANCED',
+                    manage_closure_dependencies: true,
+                    generate_exports: true,
+                    angular_pass: true,
+                    debug: false,
+                    language_in: 'ECMASCRIPT5',
+                    language_out: 'ECMASCRIPT5',
+                    closure_entry_point: ['vitis'],
+                    create_source_map: sHome + '/javascript/extraction.min.js.map',
+                    output_wrapper: '(function(){\n%output%\n}).call(this)\n//# sourceMappingURL=../javascript/extraction.min.js.map'
+                }
+            },
+            formReader: {
+                files: {
+                    [sHome + '/javascript/externs/formReader/formReader.min.js']: [
+                        // Fichiers FormReader
+                        sHome + 'javascript/externs/formReader/**/*.js'
+                    ]
+                },
+                options: {
+                    compilation_level: 'WHITESPACE_ONLY',
+                    angular_pass: true,
+                    language_in: 'ECMASCRIPT5',
+                    language_out: 'ECMASCRIPT5'
+                }
+            }
+        },
+        'closureDepsWriter': {
+            options: {
+                depswriter: 'closure/depswriter/depswriter.py',
+                root_with_prefix: [
+                    // Fichiers Vitis
+                    '"' + sHome + 'javascript/app ' + sClosureDepsHome + 'javascript/app"',
+                    '"' + sHome + 'modules/vitis/javascript ' + sClosureDepsHome + 'modules/vitis/javascript"',
+                    '"' + sHome + 'javascript/externs/formReader ' + sClosureDepsHome + 'javascript/externs/formReader"',
+                    '"' + sHome + 'javascript/externs/mapJSON ' + sClosureDepsHome + 'javascript/externs/mapJSON"',
+                    '"' + sHome + 'conf/requires ' + sClosureDepsHome + 'conf/requires"',
+                    // OpenLayers
+                    '"' + sHome + 'javascript/externs/openLayers ' + sClosureDepsHome + 'javascript/externs/openLayers"',
+                    // Fichiers Extraction
+                    '"' + sHome + 'modules/extraction/javascript ' + sClosureDepsHome + 'modules/extraction/javascript"',
+                    // Closure library
+                    '"' + sHome + 'conf/node_modules/google-closure-library/closure/goog ' + sClosureDepsHome + 'conf/node_modules/google-closure-library/closure/goog"'
+                ]
+            },
+            targetName: {
+                dest: sHome + '/javascript/extraction.deps.js'
+            }
+        }
+    });
+
+    grunt.loadNpmTasks('grunt-closure-tools');
+
+    // Tache par défaut
+    // cmd: grunt
+    grunt.registerTask('default', ['closureDepsWriter', 'closure-compiler:Extraction']);
+    // cmd: grunt generate-deps
+    grunt.registerTask('generate-deps', ['closureDepsWriter']);
+    // cmd: grunt formReader minify
+    grunt.registerTask('minify-formReader', ['closure-compiler:formReader']);
+    // cmd: grunt formReader and studio minify
+    grunt.registerTask('minify-libs', ['closure-compiler:formReader']);
+    // cmd: grunt compile
+    grunt.registerTask('compile', ['closure-compiler:Extraction']);
+};
diff --git a/conf/_install/apache.conf b/conf/_install/apache.conf
new file mode 100755
index 0000000000000000000000000000000000000000..a57db00115b18fa7bd6372477c8df53b4eaa993d
--- /dev/null
+++ b/conf/_install/apache.conf
@@ -0,0 +1,6 @@
+Alias /extraction[ENV] "[APPDIRECTORY]"
+	<Directory "[APPDIRECTORY]">
+		AllowOverride FileInfo
+		Options FollowSymLinks
+		Require all granted
+	</Directory>
diff --git a/conf/_install/dependency.xml b/conf/_install/dependency.xml
new file mode 100755
index 0000000000000000000000000000000000000000..11848b0b9701ab7ada2328ecff5db9b5de2b8148
--- /dev/null
+++ b/conf/_install/dependency.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Application -->
+<installer>
+	<dependenciesCollection>
+		<dependency>
+			<nature>framework</nature>
+			<name>vitis</name>
+			<version>next_version</version>
+		</dependency>
+		<dependency>
+			<nature>modules</nature>
+			<name>module_extraction</name>
+			<version>next_version</version>
+		</dependency>
+	</dependenciesCollection>
+</installer>
diff --git a/conf/_install/fileToDelete.txt b/conf/_install/fileToDelete.txt
new file mode 100755
index 0000000000000000000000000000000000000000..5b05a50a454c651556fd9d44df2c88b53b1caf05
--- /dev/null
+++ b/conf/_install/fileToDelete.txt
@@ -0,0 +1,2 @@
+package.json
+Gruntfile.js
\ No newline at end of file
diff --git a/conf/_install/folderToDelete.txt b/conf/_install/folderToDelete.txt
new file mode 100755
index 0000000000000000000000000000000000000000..3ff9591f1c764874b1d17e92491d955cff82fb9f
--- /dev/null
+++ b/conf/_install/folderToDelete.txt
@@ -0,0 +1 @@
+requires
\ No newline at end of file
diff --git a/conf/credits.json b/conf/credits.json
new file mode 100755
index 0000000000000000000000000000000000000000..6e2a596b388c9464ddab0005244de976a285b4dc
--- /dev/null
+++ b/conf/credits.json
@@ -0,0 +1,156 @@
+[
+    {
+        "label": "CREDITS_SOFTWARE",
+        "rows": [
+            {
+                "type": "text",
+                "value": "vMap"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_VERSION",
+        "rows": [
+            {
+                "type": "text",
+                "value": "CREDITS_VERSION_CONTENT"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_DATE",
+        "rows": [
+            {
+                "type": "text",
+                "value": "CREDITS_DATE_CONTENT"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_EDITOR",
+        "rows": [
+            {
+                "type": "link",
+                "value": "Veremes",
+                "url": "http://www.veremes.com"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_AUTHOR",
+        "rows": [
+            {
+                "type": "text",
+                "value": "Armand Bahi"
+            },
+            {
+                "type": "text",
+                "value": "Alexandre Bizien"
+            },
+            {
+                "type": "text",
+                "value": "Anthony Borghi"
+            },
+            {
+                "type": "text",
+                "value": "Frédéric Carretero"
+            },
+            {
+                "type": "text",
+                "value": "Olivier Gayte"
+            },
+            {
+                "type": "text",
+                "value": "Sébastien Legrand"
+            },
+            {
+                "type": "text",
+                "value": "Laurent Panabieres"
+            },
+            {
+                "type": "text",
+                "value": "Yoann Perollet"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_GRAPHICS",
+        "rows": [
+            {
+                "type": "link",
+                "value": "Nematis",
+                "url": "http://www.nematis.com"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_LIBRARIES",
+        "rows": [
+            {
+                "type": "link",
+                "value": "Bootstrap",
+                "url": "http://getbootstrap.com"
+            },
+            {
+                "type": "link",
+                "value": "AngularJS",
+                "url": "https://angularjs.org"
+            },
+            {
+                "type": "link",
+                "value": "Google Closure",
+                "url": "https://developers.google.com/closure"
+            },
+            {
+                "type": "link",
+                "value": "jQuery",
+                "url": "http://jquery.com"
+            },
+            {
+                "type": "link",
+                "value": "Rgraph",
+                "url": "http://www.rgraph.net"
+            },
+            {
+                "type": "link",
+                "value": "CodeMirror",
+                "url": "http://codemirror.net"
+            },
+            {
+                "type": "link",
+                "value": "OpenLayers",
+                "url": "http://openlayers.org"
+            },
+            {
+                "type": "link",
+                "value": "TinyMCE",
+                "url": "https://www.tinymce.com"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_CONTACT",
+        "rows": [
+            {
+                "type": "link",
+                "value": "www.veremes.com",
+                "url": "http://www.veremes.com"
+            },
+            {
+                "type": "link",
+                "value": "www.veremes.com/nous-contacter#1",
+                "url": "http://www.veremes.com/nous-contacter#1"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_LICENSE",
+        "rows": [
+            {
+                "type": "link",
+                "value": "Cecill-B",
+                "url": "http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.html"
+            }
+        ]
+    }
+]
diff --git a/conf/less/variables.less b/conf/less/variables.less
new file mode 100755
index 0000000000000000000000000000000000000000..9636cd033e250a040d282d02129ea7e3f22e61e1
--- /dev/null
+++ b/conf/less/variables.less
@@ -0,0 +1,35 @@
+
+// user colors
+@user-color-theme-1: #23282D;
+@user-color-theme-2: #6F8456;
+
+
+// Veremes colors
+@veremes-gtf-color: #39468A;
+@veremes-majic-color: #CF461F;
+@veremes-qualigeo-color: #832C7A;
+@veremes-wab-color: #198D9F;
+/*@veremes-vmap-color: #CB0650;*/
+@veremes-vmap-color: #198D9F;
+
+@veremes-map-backgroud-color: #020237;
+@veremes-gray-backgroud-color: #3A3A3A;
+@veremes-light-gray-backgroud-color: #9A9A9A;
+
+
+// Application colors
+@application-color-theme: @veremes-vmap-color; // <- Change this color
+
+@application-lighen-color-theme: lighten(@application-color-theme, 20%);
+@application-darken-color-theme: darken(@application-color-theme, 10%);
+
+@application-action-1-color: #337ab7; // blue bootstrap
+@application-action-2-color: #5cb85c; // green bootstrap
+
+// Other variables
+@ui-grid-bg-image: "../images/ui-grid/wbg.gif";
+@font-color-purple: #020237;
+
+// Dimension des vignettes dans les listes.
+@ui-grid-thumbnail-width: 100px;
+@ui-grid-thumbnail-heigth: 60px;
\ No newline at end of file
diff --git a/conf/package.json b/conf/package.json
new file mode 100755
index 0000000000000000000000000000000000000000..5b5091d40728e547f4c50369734cf88ed10edef1
--- /dev/null
+++ b/conf/package.json
@@ -0,0 +1,4 @@
+{
+  "name": "Vitis",
+  "version": "0.1.0"
+}
diff --git a/conf/requires/config.js b/conf/requires/config.js
new file mode 100755
index 0000000000000000000000000000000000000000..6d0f540fe9ce3c78b73ce81ec4c05a3d853cdbc1
--- /dev/null
+++ b/conf/requires/config.js
@@ -0,0 +1,66 @@
+'use strict';
+
+goog.provide('vitis.application.config');
+
+// Fichiers js et css à charger pour l'application Extraction.
+var oApplicationFiles = {
+    'css': [
+        // Vitis
+        'css/lib/bootstrap/css/bootstrap.min.css',
+        'css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css',
+        'css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css',
+        'css/lib/ui-grid/ui-grid.min.css',
+        'css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css',
+        'css/lib/bootstrap-checkbox/build.css',
+        'css/lib/bootstrap-checkbox/font-awesome.css',
+        'css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css',
+        'css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css',
+        'css/lib/ui-grid/plugins/draggable-rows.less',
+        'less/main.less',
+        // App
+        'modules/vitis/less/main.less',
+        'modules/extraction/less/main.less',
+        'css/lib/codemirror/codemirror.css',
+        'css/lib/codemirror/codemirror_foldgutter.css',
+        'css/lib/codemirror/map.css',
+        'css/lib/codemirror/show-hint.css',
+        'css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css',
+        'css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css',
+        'css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css',
+        'css/lib/viewer/viewer.min.css'
+    ],
+    'js': {
+        'externs': [
+            // Studio
+            'javascript/externs/bootbox/bootbox.min.js',
+            'javascript/externs/codemirror/codemirror.min.js',
+            'javascript/externs/codemirror/htmlmixed.js',
+            'javascript/externs/codemirror/css.js',
+            'javascript/externs/codemirror/javascript.js',
+            'javascript/externs/codemirror/clike.js',
+            'javascript/externs/codemirror/php.js',
+            'javascript/externs/codemirror/xml.js',
+            'javascript/externs/codemirror/sql.js',
+            'javascript/externs/codemirror/map.js',
+            'javascript/externs/codemirror/show-hint.js',
+            'javascript/externs/codemirror/addon/fold/foldcode.js',
+            'javascript/externs/codemirror/addon/fold/foldgutter.js',
+            'javascript/externs/codemirror/addon/fold/brace-fold.js',
+            'javascript/externs/codemirror/addon/fold/xml-fold.js',
+            'javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js',
+            'javascript/externs/tinymce/tinymce.min.js',
+            'javascript/externs/angular/modules/ui-tinymce/tinymce.js',
+            'javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js',
+            'javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js',
+            'javascript/externs/scripts_cryptage.js',
+            'javascript/externs/moment/moment.min.js',
+            'javascript/externs/moment/min/moment-with-locales.min.js',
+            'javascript/externs/jquery/plugins/notify/notify.js',
+            'javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js',
+            'javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js',
+            'javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js',
+            'javascript/externs/viewer/viewer.min.js'
+        ]
+    },
+    'vitisModuleDependencies': ['ui.codemirror', 'ui.tinymce', 'ui.grid.draggable-rows']
+};
\ No newline at end of file
diff --git a/conf/requires/requiresApp.js b/conf/requires/requiresApp.js
new file mode 100755
index 0000000000000000000000000000000000000000..3417eb6f16157ed7199e004c095080b7c58043f5
--- /dev/null
+++ b/conf/requires/requiresApp.js
@@ -0,0 +1,11 @@
+/* global goog */
+
+/**
+ * Ce fichier permet de charger les fichiers de l'applicaiton
+ * de façon non compilée
+ * @author: Armand Bahi
+ */
+
+goog.provide('vitis.application.requires');
+//goog.require('vmap.script_module');
+goog.require('extraction.script_module');
\ No newline at end of file
diff --git a/install.bat b/install.bat
new file mode 100644
index 0000000000000000000000000000000000000000..d3123bf3fd1bea62aa71042192d9505b4fea7982
--- /dev/null
+++ b/install.bat
@@ -0,0 +1,18 @@
+@echo off
+title Install Vitis App
+echo Install Vitis App
+
+cd utils
+call init_tree.bat
+call copy_hooks.bat
+
+cd ../client/conf
+call npm install grunt --save
+call npm install grunt-cli
+call npm install grunt-closure-tools --save
+call npm install google-closure-compiler@20160911.0.0 --save
+call npm install google-closure-library@20160911.0.0 --save
+call grunt
+
+cd ..
+pause
diff --git a/install.sh b/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c67e39752717c3a5b10cb3d1b20c7e1d4304784b
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#	Initislise l'ensemble des dépendances sous forme de subtrees
+#   Crée des symlinks pour re-créer l'arborescence de l'application
+#
+#
+
+if [ `whoami` == "root" ]; then
+    echo "Please, do not run this script as sudo"
+else
+    cd utils/
+    ./init_symlinks.sh
+    ./pull_subtrees.sh
+    ./copy_hooks.sh
+
+    cd ../conf
+    npm install grunt --save
+    npm install grunt-cli
+    npm install grunt-closure-tools --save
+    npm install google-closure-compiler@20160911.0.0 --save
+    npm install google-closure-library@20160911.0.0 --save
+    grunt -dev
+fi
diff --git a/pull_subtrees.sh b/pull_subtrees.sh
new file mode 100755
index 0000000000000000000000000000000000000000..d9bc20cf9cd259704bdfb8e563ff8a3c0f2f78da
--- /dev/null
+++ b/pull_subtrees.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+#
+#
+# 	Récupère les modifications des modules sur l'application
+#
+#
+
+if [ `whoami` == "root" ]; then
+    echo "Please, do not run this script as sudo"
+else
+    cd utils/
+    ./pull_subtrees.sh
+fi
diff --git a/push_subtrees.sh b/push_subtrees.sh
new file mode 100644
index 0000000000000000000000000000000000000000..098911317857e59aa0e87fb002942c61ddfbc2c1
--- /dev/null
+++ b/push_subtrees.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+#
+#
+# 	Envoie les modifications de l'application sur les modules
+#
+#
+
+if [ `whoami` == "root" ]; then
+    echo "Please, do not run this script as sudo"
+else
+    cd utils/
+    ./push_subtrees.sh
+fi
diff --git a/src/closure/README.md b/src/closure/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..d28619bfbb0b10de706cd5985e7a7d042204b2d4
--- /dev/null
+++ b/src/closure/README.md
@@ -0,0 +1 @@
+Google closure exceptions
\ No newline at end of file
diff --git a/src/closure/conf/depswriter/closurebuilder.py b/src/closure/conf/depswriter/closurebuilder.py
new file mode 100755
index 0000000000000000000000000000000000000000..7be7661f76c4e9dad1b1ab31f01f88498eee81d3
--- /dev/null
+++ b/src/closure/conf/depswriter/closurebuilder.py
@@ -0,0 +1,293 @@
+#!/usr/bin/env python
+#
+# Copyright 2009 The Closure Library Authors. All Rights Reserved.
+#
+# 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.
+"""Utility for Closure Library dependency calculation.
+
+ClosureBuilder scans source files to build dependency info.  From the
+dependencies, the script can produce a manifest in dependency order,
+a concatenated script, or compiled output from the Closure Compiler.
+
+Paths to files can be expressed as individual arguments to the tool (intended
+for use with find and xargs).  As a convenience, --root can be used to specify
+all JS files below a directory.
+
+usage: %prog [options] [file1.js file2.js ...]
+"""
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+
+import io
+import logging
+import optparse
+import os
+import sys
+
+import depstree
+import jscompiler
+import source
+import treescan
+
+
+def _GetOptionsParser():
+  """Get the options parser."""
+
+  parser = optparse.OptionParser(__doc__)
+  parser.add_option('-i',
+                    '--input',
+                    dest='inputs',
+                    action='append',
+                    default=[],
+                    help='One or more input files to calculate dependencies '
+                    'for.  The namespaces in this file will be combined with '
+                    'those given with the -n flag to form the set of '
+                    'namespaces to find dependencies for.')
+  parser.add_option('-n',
+                    '--namespace',
+                    dest='namespaces',
+                    action='append',
+                    default=[],
+                    help='One or more namespaces to calculate dependencies '
+                    'for.  These namespaces will be combined with those given '
+                    'with the -i flag to form the set of namespaces to find '
+                    'dependencies for.  A Closure namespace is a '
+                    'dot-delimited path expression declared with a call to '
+                    'goog.provide() (e.g. "goog.array" or "foo.bar").')
+  parser.add_option('--root',
+                    dest='roots',
+                    action='append',
+                    default=[],
+                    help='The paths that should be traversed to build the '
+                    'dependencies.')
+  parser.add_option('-o',
+                    '--output_mode',
+                    dest='output_mode',
+                    type='choice',
+                    action='store',
+                    choices=['list', 'script', 'compiled'],
+                    default='list',
+                    help='The type of output to generate from this script. '
+                    'Options are "list" for a list of filenames, "script" '
+                    'for a single script containing the contents of all the '
+                    'files, or "compiled" to produce compiled output with '
+                    'the Closure Compiler.  Default is "list".')
+  parser.add_option('-c',
+                    '--compiler_jar',
+                    dest='compiler_jar',
+                    action='store',
+                    help='The location of the Closure compiler .jar file.')
+  parser.add_option('-f',
+                    '--compiler_flags',
+                    dest='compiler_flags',
+                    default=[],
+                    action='append',
+                    help='Additional flags to pass to the Closure compiler. '
+                    'To pass multiple flags, --compiler_flags has to be '
+                    'specified multiple times.')
+  parser.add_option('-j',
+                    '--jvm_flags',
+                    dest='jvm_flags',
+                    default=[],
+                    action='append',
+                    help='Additional flags to pass to the JVM compiler. '
+                    'To pass multiple flags, --jvm_flags has to be '
+                    'specified multiple times.')
+  parser.add_option('--output_file',
+                    dest='output_file',
+                    action='store',
+                    help=('If specified, write output to this path instead of '
+                          'writing to standard output.'))
+
+  return parser
+
+
+def _GetInputByPath(path, sources):
+  """Get the source identified by a path.
+
+  Args:
+    path: str, A path to a file that identifies a source.
+    sources: An iterable collection of source objects.
+
+  Returns:
+    The source from sources identified by path, if found.  Converts to
+    real paths for comparison.
+  """
+  for js_source in sources:
+    # Convert both to real paths for comparison.
+    if os.path.realpath(path) == os.path.realpath(js_source.GetPath()):
+      return js_source
+
+
+def _GetClosureBaseFile(sources):
+  """Given a set of sources, returns the one base.js file.
+
+  Note that if zero or two or more base.js files are found, an error message
+  will be written and the program will be exited.
+
+  Args:
+    sources: An iterable of _PathSource objects.
+
+  Returns:
+    The _PathSource representing the base Closure file.
+  """
+  base_files = [
+      js_source for js_source in sources if _IsClosureBaseFile(js_source)
+  ]
+
+  if not base_files:
+    logging.error('No Closure base.js file found.')
+    sys.exit(1)
+  if len(base_files) > 1:
+    logging.error('More than one Closure base.js files found at these paths:')
+    for base_file in base_files:
+      logging.error(base_file.GetPath())
+    sys.exit(1)
+  return base_files[0]
+
+
+def _IsClosureBaseFile(js_source):
+  """Returns true if the given _PathSource is the Closure base.js source."""
+  return (os.path.basename(js_source.GetPath()) == 'base.js' and
+          js_source.provides == set(['goog']))
+
+
+class _PathSource(source.Source):
+  """Source file subclass that remembers its file path."""
+
+  def __init__(self, path):
+    """Initialize a source.
+
+    Args:
+      path: str, Path to a JavaScript file.  The source string will be read
+        from this file.
+    """
+    super(_PathSource, self).__init__(source.GetFileContents(path))
+
+    self._path = path
+
+  def __str__(self):
+    return 'PathSource %s' % self._path
+
+  def GetPath(self):
+    """Returns the path."""
+    return self._path
+
+
+def _WrapGoogModuleSource(src):
+  return ('goog.loadModule(function(exports) {{'
+          '"use strict";'
+          '{0}'
+          '\n'  # terminate any trailing single line comment.
+          ';return exports'
+          '}});\n').format(src)
+
+
+def main():
+  logging.basicConfig(format=(sys.argv[0] + ': %(message)s'),
+                      level=logging.INFO)
+  options, args = _GetOptionsParser().parse_args()
+
+  # Make our output pipe.
+  if options.output_file:
+    out = io.open(options.output_file, 'wb')
+  else:
+    version = sys.version_info[:2]
+    if version >= (3, 0):
+      # Write bytes to stdout
+      out = sys.stdout.buffer
+    else:
+      out = sys.stdout
+
+  sources = set()
+
+  logging.info('Scanning paths...')
+  for path in options.roots:
+    for js_path in treescan.ScanTreeForJsFiles(path):
+      sources.add(_PathSource(js_path))
+
+  # Add scripts specified on the command line.
+  for js_path in args:
+    sources.add(_PathSource(js_path))
+
+  logging.info('%s sources scanned.', len(sources))
+
+  # Though deps output doesn't need to query the tree, we still build it
+  # to validate dependencies.
+  logging.info('Building dependency tree..')
+  tree = depstree.DepsTree(sources)
+
+  input_namespaces = set()
+  inputs = options.inputs or []
+  for input_path in inputs:
+    js_input = _GetInputByPath(input_path, sources)
+    if not js_input:
+      logging.error('No source matched input %s', input_path)
+      sys.exit(1)
+    input_namespaces.update(js_input.provides)
+
+  input_namespaces.update(options.namespaces)
+
+  if not input_namespaces:
+    logging.error('No namespaces found. At least one namespace must be '
+                  'specified with the --namespace or --input flags.')
+    sys.exit(2)
+
+  # The Closure Library base file must go first.
+  base = _GetClosureBaseFile(sources)
+  deps = [base] + tree.GetDependencies(input_namespaces)
+
+  output_mode = options.output_mode
+  if output_mode == 'list':
+    out.writelines([js_source.GetPath() + '\n' for js_source in deps])
+  elif output_mode == 'script':
+    for js_source in deps:
+      src = js_source.GetSource()
+      if js_source.is_goog_module:
+        src = _WrapGoogModuleSource(src)
+      out.write(src.encode('utf-8') + b'\n')
+  elif output_mode == 'compiled':
+    logging.warning("""\
+Closure Compiler now natively understands and orders Closure dependencies and
+is prefererred over using this script for performing JavaScript compilation.
+
+Please migrate your codebase.
+
+See:
+https://github.com/google/closure-compiler/wiki/Managing-Dependencies
+""")
+
+    # Make sure a .jar is specified.
+    if not options.compiler_jar:
+      logging.error('--compiler_jar flag must be specified if --output is '
+                    '"compiled"')
+      sys.exit(2)
+
+    # Will throw an error if the compilation fails.
+    compiled_source = jscompiler.Compile(options.compiler_jar,
+                                         [js_source.GetPath()
+                                          for js_source in deps],
+                                         jvm_flags=options.jvm_flags,
+                                         compiler_flags=options.compiler_flags)
+
+    logging.info('JavaScript compilation succeeded.')
+    out.write(compiled_source.encode('utf-8'))
+
+  else:
+    logging.error('Invalid value for --output flag.')
+    sys.exit(2)
+
+
+if __name__ == '__main__':
+  main()
diff --git a/src/closure/conf/depswriter/depstree.py b/src/closure/conf/depswriter/depstree.py
new file mode 100755
index 0000000000000000000000000000000000000000..f288dd3aa616a9a69390f5ac6dc4411a3a8a419b
--- /dev/null
+++ b/src/closure/conf/depswriter/depstree.py
@@ -0,0 +1,189 @@
+# Copyright 2009 The Closure Library Authors. All Rights Reserved.
+#
+# 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.
+
+
+"""Class to represent a full Closure Library dependency tree.
+
+Offers a queryable tree of dependencies of a given set of sources.  The tree
+will also do logical validation to prevent duplicate provides and circular
+dependencies.
+"""
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+
+class DepsTree(object):
+  """Represents the set of dependencies between source files."""
+
+  def __init__(self, sources):
+    """Initializes the tree with a set of sources.
+
+    Args:
+      sources: A set of JavaScript sources.
+
+    Raises:
+      MultipleProvideError: A namespace is provided by muplitple sources.
+      NamespaceNotFoundError: A namespace is required but never provided.
+    """
+
+    self._sources = sources
+    self._provides_map = dict()
+
+    # Ensure nothing was provided twice.
+    for source in sources:
+      for provide in source.provides:
+        if provide in self._provides_map:
+          raise MultipleProvideError(
+              provide, [self._provides_map[provide], source])
+
+        self._provides_map[provide] = source
+
+    # Check that all required namespaces are provided.
+    for source in sources:
+      for require in source.requires:
+        if require not in self._provides_map:
+          raise NamespaceNotFoundError(require, source)
+
+  def GetDependencies(self, required_namespaces):
+    """Get source dependencies, in order, for the given namespaces.
+
+    Args:
+      required_namespaces: A string (for one) or list (for one or more) of
+        namespaces.
+
+    Returns:
+      A list of source objects that provide those namespaces and all
+      requirements, in dependency order.
+
+    Raises:
+      NamespaceNotFoundError: A namespace is requested but doesn't exist.
+      CircularDependencyError: A cycle is detected in the dependency tree.
+    """
+    if isinstance(required_namespaces, str):
+      required_namespaces = [required_namespaces]
+
+    deps_sources = []
+
+    for namespace in required_namespaces:
+      for source in DepsTree._ResolveDependencies(
+          namespace, [], self._provides_map, []):
+        if source not in deps_sources:
+          deps_sources.append(source)
+
+    return deps_sources
+
+  @staticmethod
+  def _ResolveDependencies(required_namespace, deps_list, provides_map,
+                           traversal_path):
+    """Resolve dependencies for Closure source files.
+
+    Follows the dependency tree down and builds a list of sources in dependency
+    order.  This function will recursively call itself to fill all dependencies
+    below the requested namespaces, and then append its sources at the end of
+    the list.
+
+    Args:
+      required_namespace: String of required namespace.
+      deps_list: List of sources in dependency order.  This function will append
+        the required source once all of its dependencies are satisfied.
+      provides_map: Map from namespace to source that provides it.
+      traversal_path: List of namespaces of our path from the root down the
+        dependency/recursion tree.  Used to identify cyclical dependencies.
+        This is a list used as a stack -- when the function is entered, the
+        current namespace is pushed and popped right before returning.
+        Each recursive call will check that the current namespace does not
+        appear in the list, throwing a CircularDependencyError if it does.
+
+    Returns:
+      The given deps_list object filled with sources in dependency order.
+
+    Raises:
+      NamespaceNotFoundError: A namespace is requested but doesn't exist.
+      CircularDependencyError: A cycle is detected in the dependency tree.
+    """
+
+    source = provides_map.get(required_namespace)
+    if not source:
+      raise NamespaceNotFoundError(required_namespace)
+
+    if required_namespace in traversal_path:
+      traversal_path.append(required_namespace)  # do this *after* the test
+
+      # This must be a cycle.
+      raise CircularDependencyError(traversal_path)
+
+    # If we don't have the source yet, we'll have to visit this namespace and
+    # add the required dependencies to deps_list.
+    if source not in deps_list:
+      traversal_path.append(required_namespace)
+
+      for require in source.requires:
+
+        # Append all other dependencies before we append our own.
+        DepsTree._ResolveDependencies(require, deps_list, provides_map,
+                                      traversal_path)
+      deps_list.append(source)
+
+      traversal_path.pop()
+
+    return deps_list
+
+
+class BaseDepsTreeError(Exception):
+  """Base DepsTree error."""
+
+  def __init__(self):
+    Exception.__init__(self)
+
+
+class CircularDependencyError(BaseDepsTreeError):
+  """Raised when a dependency cycle is encountered."""
+
+  def __init__(self, dependency_list):
+    BaseDepsTreeError.__init__(self)
+    self._dependency_list = dependency_list
+
+  def __str__(self):
+    return ('Encountered circular dependency:\n%s\n' %
+            '\n'.join(self._dependency_list))
+
+
+class MultipleProvideError(BaseDepsTreeError):
+  """Raised when a namespace is provided more than once."""
+
+  def __init__(self, namespace, sources):
+    BaseDepsTreeError.__init__(self)
+    self._namespace = namespace
+    self._sources = sources
+
+  def __str__(self):
+    source_strs = map(str, self._sources)
+
+    return ('Namespace "%s" provided more than once in sources:\n%s\n' %
+            (self._namespace, '\n'.join(source_strs)))
+
+
+class NamespaceNotFoundError(BaseDepsTreeError):
+  """Raised when a namespace is requested but not provided."""
+
+  def __init__(self, namespace, source=None):
+    BaseDepsTreeError.__init__(self)
+    self._namespace = namespace
+    self._source = source
+
+  def __str__(self):
+    msg = 'Namespace "%s" never provided.' % self._namespace
+    if self._source:
+      msg += ' Required in %s' % self._source
+    return msg
diff --git a/src/closure/conf/depswriter/depstree_test.py b/src/closure/conf/depswriter/depstree_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..eb4c99958ec6cabaacd782e49b7a8a16e85c9f61
--- /dev/null
+++ b/src/closure/conf/depswriter/depstree_test.py
@@ -0,0 +1,127 @@
+#!/usr/bin/env python
+#
+# Copyright 2009 The Closure Library Authors. All Rights Reserved.
+#
+# 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.
+
+
+"""Unit test for depstree."""
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+
+import unittest
+
+import depstree
+
+
+def _GetProvides(sources):
+  """Get all namespaces provided by a collection of sources."""
+
+  provides = set()
+  for source in sources:
+    provides.update(source.provides)
+  return provides
+
+
+class MockSource(object):
+  """Mock Source file."""
+
+  def __init__(self, provides, requires):
+    self.provides = set(provides)
+    self.requires = set(requires)
+
+  def __repr__(self):
+    return 'MockSource %s' % self.provides
+
+
+class DepsTreeTestCase(unittest.TestCase):
+  """Unit test for DepsTree.  Tests several common situations and errors."""
+
+  def AssertValidDependencies(self, deps_list):
+    """Validates a dependency list.
+
+    Asserts that a dependency list is valid: For every source in the list,
+    ensure that every require is provided by a source earlier in the list.
+
+    Args:
+      deps_list: A list of sources that should be in dependency order.
+    """
+
+    for i in range(len(deps_list)):
+      source = deps_list[i]
+      previous_provides = _GetProvides(deps_list[:i])
+      for require in source.requires:
+        self.assertTrue(
+            require in previous_provides,
+            'Namespace "%s" not provided before required by %s' % (
+                require, source))
+
+  def testSimpleDepsTree(self):
+    a = MockSource(['A'], ['B', 'C'])
+    b = MockSource(['B'], [])
+    c = MockSource(['C'], ['D'])
+    d = MockSource(['D'], ['E'])
+    e = MockSource(['E'], [])
+
+    tree = depstree.DepsTree([a, b, c, d, e])
+
+    self.AssertValidDependencies(tree.GetDependencies('A'))
+    self.AssertValidDependencies(tree.GetDependencies('B'))
+    self.AssertValidDependencies(tree.GetDependencies('C'))
+    self.AssertValidDependencies(tree.GetDependencies('D'))
+    self.AssertValidDependencies(tree.GetDependencies('E'))
+
+  def testCircularDependency(self):
+    # Circular deps
+    a = MockSource(['A'], ['B'])
+    b = MockSource(['B'], ['C'])
+    c = MockSource(['C'], ['A'])
+
+    tree = depstree.DepsTree([a, b, c])
+
+    self.assertRaises(depstree.CircularDependencyError,
+                      tree.GetDependencies, 'A')
+
+  def testRequiresUndefinedNamespace(self):
+    a = MockSource(['A'], ['B'])
+    b = MockSource(['B'], ['C'])
+    c = MockSource(['C'], ['D'])  # But there is no D.
+
+    def MakeDepsTree():
+      return depstree.DepsTree([a, b, c])
+
+    self.assertRaises(depstree.NamespaceNotFoundError, MakeDepsTree)
+
+  def testDepsForMissingNamespace(self):
+    a = MockSource(['A'], ['B'])
+    b = MockSource(['B'], [])
+
+    tree = depstree.DepsTree([a, b])
+
+    # There is no C.
+    self.assertRaises(depstree.NamespaceNotFoundError,
+                      tree.GetDependencies, 'C')
+
+  def testMultipleRequires(self):
+    a = MockSource(['A'], ['B'])
+    b = MockSource(['B'], ['C'])
+    c = MockSource(['C'], [])
+    d = MockSource(['D'], ['B'])
+
+    tree = depstree.DepsTree([a, b, c, d])
+    self.AssertValidDependencies(tree.GetDependencies(['D', 'A']))
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/src/closure/conf/depswriter/depswriter.py b/src/closure/conf/depswriter/depswriter.py
new file mode 100755
index 0000000000000000000000000000000000000000..a78e0f83c1b315136b043bd6f32415dc881bbb4f
--- /dev/null
+++ b/src/closure/conf/depswriter/depswriter.py
@@ -0,0 +1,212 @@
+#!/usr/bin/env python
+#
+# Copyright 2009 The Closure Library Authors. All Rights Reserved.
+#
+# 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.
+
+
+"""Generates out a Closure deps.js file given a list of JavaScript sources.
+
+Paths can be specified as arguments or (more commonly) specifying trees
+with the flags (call with --help for descriptions).
+
+Usage: depswriter.py [path/to/js1.js [path/to/js2.js] ...]
+"""
+
+import json
+import logging
+import optparse
+import os
+import posixpath
+import shlex
+import sys
+
+import source
+import treescan
+
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+
+def MakeDepsFile(source_map):
+  """Make a generated deps file.
+
+  Args:
+    source_map: A dict map of the source path to source.Source object.
+
+  Returns:
+    str, A generated deps file source.
+  """
+
+  # Write in path alphabetical order
+  paths = sorted(source_map.keys())
+
+  lines = []
+
+  for path in paths:
+    js_source = source_map[path]
+
+    # We don't need to add entries that don't provide anything.
+    if js_source.provides:
+      lines.append(_GetDepsLine(path, js_source))
+
+  return ''.join(lines)
+
+
+def _GetDepsLine(path, js_source):
+  """Get a deps.js file string for a source."""
+
+  provides = _ToJsSrc(sorted(js_source.provides))
+  requires = _ToJsSrc(sorted(js_source.requires))
+  module = 'true' if js_source.is_goog_module else 'false'
+
+  return 'goog.addDependency(\'%s?_\' + sessionStorage[\'build\'], %s, %s, %s);\n' % (
+      path, provides, requires, module)
+
+
+def _ToJsSrc(arr):
+  """Convert a python arr to a js source string."""
+
+  return json.dumps(arr).replace('"', '\'')
+
+
+def _GetOptionsParser():
+  """Get the options parser."""
+
+  parser = optparse.OptionParser(__doc__)
+
+  parser.add_option('--output_file',
+                    dest='output_file',
+                    action='store',
+                    help=('If specified, write output to this path instead of '
+                          'writing to standard output.'))
+  parser.add_option('--root',
+                    dest='roots',
+                    default=[],
+                    action='append',
+                    help='A root directory to scan for JS source files. '
+                    'Paths of JS files in generated deps file will be '
+                    'relative to this path.  This flag may be specified '
+                    'multiple times.')
+  parser.add_option('--root_with_prefix',
+                    dest='roots_with_prefix',
+                    default=[],
+                    action='append',
+                    help='A root directory to scan for JS source files, plus '
+                    'a prefix (if either contains a space, surround with '
+                    'quotes).  Paths in generated deps file will be relative '
+                    'to the root, but preceded by the prefix.  This flag '
+                    'may be specified multiple times.')
+  parser.add_option('--path_with_depspath',
+                    dest='paths_with_depspath',
+                    default=[],
+                    action='append',
+                    help='A path to a source file and an alternate path to '
+                    'the file in the generated deps file (if either contains '
+                    'a space, surround with whitespace). This flag may be '
+                    'specified multiple times.')
+  return parser
+
+
+def _NormalizePathSeparators(path):
+  """Replaces OS-specific path separators with POSIX-style slashes.
+
+  Args:
+    path: str, A file path.
+
+  Returns:
+    str, The path with any OS-specific path separators (such as backslash on
+      Windows) replaced with URL-compatible forward slashes. A no-op on systems
+      that use POSIX paths.
+  """
+  return path.replace(os.sep, posixpath.sep)
+
+
+def _GetRelativePathToSourceDict(root, prefix=''):
+  """Scans a top root directory for .js sources.
+
+  Args:
+    root: str, Root directory.
+    prefix: str, Prefix for returned paths.
+
+  Returns:
+    dict, A map of relative paths (with prefix, if given), to source.Source
+      objects.
+  """
+  # Remember and restore the cwd when we're done. We work from the root so
+  # that paths are relative from the root.
+  start_wd = os.getcwd()
+  os.chdir(root)
+
+  path_to_source = {}
+  for path in treescan.ScanTreeForJsFiles('.'):
+    prefixed_path = _NormalizePathSeparators(os.path.join(prefix, path))
+    path_to_source[prefixed_path] = source.Source(source.GetFileContents(path))
+
+  os.chdir(start_wd)
+
+  return path_to_source
+
+
+def _GetPair(s):
+  """Return a string as a shell-parsed tuple.  Two values expected."""
+  try:
+    # shlex uses '\' as an escape character, so they must be escaped.
+    s = s.replace('\\', '\\\\')
+    first, second = shlex.split(s)
+    return (first, second)
+  except:
+    raise Exception('Unable to parse input line as a pair: %s' % s)
+
+
+def main():
+  """CLI frontend to MakeDepsFile."""
+  logging.basicConfig(format=(sys.argv[0] + ': %(message)s'),
+                      level=logging.INFO)
+  options, args = _GetOptionsParser().parse_args()
+
+  path_to_source = {}
+
+  # Roots without prefixes
+  for root in options.roots:
+    path_to_source.update(_GetRelativePathToSourceDict(root))
+
+  # Roots with prefixes
+  for root_and_prefix in options.roots_with_prefix:
+    root, prefix = _GetPair(root_and_prefix)
+    path_to_source.update(_GetRelativePathToSourceDict(root, prefix=prefix))
+
+  # Source paths
+  for path in args:
+    path_to_source[path] = source.Source(source.GetFileContents(path))
+
+  # Source paths with alternate deps paths
+  for path_with_depspath in options.paths_with_depspath:
+    srcpath, depspath = _GetPair(path_with_depspath)
+    path_to_source[depspath] = source.Source(source.GetFileContents(srcpath))
+
+  # Make our output pipe.
+  if options.output_file:
+    out = open(options.output_file, 'w')
+  else:
+    out = sys.stdout
+
+  out.write(('// This file was autogenerated by %s.\n' %
+             os.path.basename(__file__)))
+  out.write('// Please do not edit.\n')
+
+  out.write(MakeDepsFile(path_to_source))
+
+
+if __name__ == '__main__':
+  main()
diff --git a/src/closure/conf/depswriter/depswriter_test.py b/src/closure/conf/depswriter/depswriter_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..8d9bf3b26b093c53e1552993ae22d8dbd04748f9
--- /dev/null
+++ b/src/closure/conf/depswriter/depswriter_test.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python
+#
+# Copyright 2010 The Closure Library Authors. All Rights Reserved.
+#
+# 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.
+
+
+"""Unit test for depswriter."""
+
+__author__ = 'johnlenz@google.com (John Lenz)'
+
+
+import unittest
+
+import depswriter
+
+
+class MockSource(object):
+  """Mock Source file."""
+
+  def __init__(self, provides, requires):
+    self.provides = set(provides)
+    self.requires = set(requires)
+    self.is_goog_module = False
+
+  def __repr__(self):
+    return 'MockSource %s' % self.provides
+
+
+class DepsWriterTestCase(unittest.TestCase):
+  """Unit test for depswriter."""
+
+  def testMakeDepsFile(self):
+    sources = {}
+    sources['test.js'] = MockSource(['A'], ['B', 'C'])
+    deps = depswriter.MakeDepsFile(sources)
+
+    self.assertEqual(
+        'goog.addDependency(\'test.js\', [\'A\'], [\'B\', \'C\'], false);\n',
+        deps)
+
+  def testMakeDepsFileUnicode(self):
+    sources = {}
+    sources['test.js'] = MockSource([u'A'], [u'B', u'C'])
+    deps = depswriter.MakeDepsFile(sources)
+
+    self.assertEqual(
+        'goog.addDependency(\'test.js\', [\'A\'], [\'B\', \'C\'], false);\n',
+        deps)
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/src/closure/conf/depswriter/jscompiler.py b/src/closure/conf/depswriter/jscompiler.py
new file mode 100755
index 0000000000000000000000000000000000000000..76b0253707a76981e8be38d0bab2a10434911b18
--- /dev/null
+++ b/src/closure/conf/depswriter/jscompiler.py
@@ -0,0 +1,162 @@
+# Copyright 2010 The Closure Library Authors. All Rights Reserved.
+#
+# 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.
+"""Utility to use the Closure Compiler CLI from Python."""
+
+import logging
+import os
+import re
+import subprocess
+import tempfile
+
+# Pulls just the major and minor version numbers from the first line of
+# 'java -version'. Versions are in the format of [0-9]+\.[0-9]+\..* See:
+# http://www.oracle.com/technetwork/java/javase/versioning-naming-139433.html
+_VERSION_REGEX = re.compile(r'"([0-9]+)\.([0-9]+)')
+
+
+class JsCompilerError(Exception):
+  """Raised if there's an error in calling the compiler."""
+  pass
+
+
+def _GetJavaVersionString():
+  """Get the version string from the Java VM."""
+  return subprocess.check_output(['java', '-version'], stderr=subprocess.STDOUT)
+
+
+def _ParseJavaVersion(version_string):
+  """Returns a 2-tuple for the current version of Java installed.
+
+  Args:
+    version_string: String of the Java version (e.g. '1.7.2-ea').
+
+  Returns:
+    The major and minor versions, as a 2-tuple (e.g. (1, 7)).
+  """
+  match = _VERSION_REGEX.search(version_string)
+  if match:
+    version = tuple(int(x, 10) for x in match.groups())
+    assert len(version) == 2
+    return version
+
+
+def _JavaSupports32BitMode():
+  """Determines whether the JVM supports 32-bit mode on the platform."""
+  # Suppresses process output to stderr and stdout from showing up in the
+  # console as we're only trying to determine 32-bit JVM support.
+  supported = False
+  try:
+    devnull = open(os.devnull, 'wb')
+    return subprocess.call(['java', '-d32', '-version'],
+                           stdout=devnull,
+                           stderr=devnull) == 0
+  except IOError:
+    pass
+  else:
+    devnull.close()
+  return supported
+
+
+def _GetJsCompilerArgs(compiler_jar_path, java_version, jvm_flags):
+  """Assembles arguments for call to JsCompiler."""
+
+  if java_version < (1, 7):
+    raise JsCompilerError('Closure Compiler requires Java 1.7 or higher. '
+                          'Please visit http://www.java.com/getjava')
+
+  args = ['java']
+
+  # Add JVM flags we believe will produce the best performance.  See
+  # https://groups.google.com/forum/#!topic/closure-library-discuss/7w_O9-vzlj4
+
+  # Attempt 32-bit mode if available (Java 7 on Mac OS X does not support 32-bit
+  # mode, for example).
+  if _JavaSupports32BitMode():
+    args += ['-d32']
+
+  # Prefer the "client" VM.
+  args += ['-client']
+
+  # Add JVM flags, if any
+  if jvm_flags:
+    args += jvm_flags
+
+  # Add the application JAR.
+  args += ['-jar', compiler_jar_path]
+
+  return args
+
+
+def _GetFlagFile(source_paths, compiler_flags):
+  """Writes given source paths and compiler flags to a --flagfile.
+
+  The given source_paths will be written as '--js' flags and the compiler_flags
+  are written as-is.
+
+  Args:
+    source_paths: List of string js source paths.
+    compiler_flags: List of string compiler flags.
+
+  Returns:
+    The file to which the flags were written.
+  """
+  args = []
+  for path in source_paths:
+    args += ['--js', path]
+
+  # Add compiler flags, if any.
+  if compiler_flags:
+    args += compiler_flags
+
+  flags_file = tempfile.NamedTemporaryFile(delete=False)
+  flags_file.write(' '.join(args))
+  flags_file.close()
+
+  return flags_file
+
+
+def Compile(compiler_jar_path,
+            source_paths,
+            jvm_flags=None,
+            compiler_flags=None):
+  """Prepares command-line call to Closure Compiler.
+
+  Args:
+    compiler_jar_path: Path to the Closure compiler .jar file.
+    source_paths: Source paths to build, in order.
+    jvm_flags: A list of additional flags to pass on to JVM.
+    compiler_flags: A list of additional flags to pass on to Closure Compiler.
+
+  Returns:
+    The compiled source, as a string, or None if compilation failed.
+  """
+
+  java_version = _ParseJavaVersion(str(_GetJavaVersionString()))
+
+  args = _GetJsCompilerArgs(compiler_jar_path, java_version, jvm_flags)
+
+  # Write source path arguments to flag file for avoiding "The filename or
+  # extension is too long" error in big projects. See
+  # https://github.com/google/closure-library/pull/678
+  flags_file = _GetFlagFile(source_paths, compiler_flags)
+  args += ['--flagfile', flags_file.name]
+
+  logging.info('Compiling with the following command: %s', ' '.join(args))
+
+  try:
+    return subprocess.check_output(args)
+  except subprocess.CalledProcessError:
+    raise JsCompilerError('JavaScript compilation failed.')
+  finally:
+    os.remove(flags_file.name)
diff --git a/src/closure/conf/depswriter/jscompiler_test.py b/src/closure/conf/depswriter/jscompiler_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..6f63e414e852da6faed108b11a39dce8d66790c0
--- /dev/null
+++ b/src/closure/conf/depswriter/jscompiler_test.py
@@ -0,0 +1,114 @@
+#!/usr/bin/env python
+#
+# Copyright 2013 The Closure Library Authors. All Rights Reserved.
+#
+# 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.
+"""Unit test for depstree."""
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+import os
+import unittest
+
+import jscompiler
+
+
+class JsCompilerTestCase(unittest.TestCase):
+  """Unit tests for jscompiler module."""
+
+  def testGetFlagFile(self):
+    flags_file = jscompiler._GetFlagFile(
+        ['path/to/src1.js', 'path/to/src2.js'], ['--test_compiler_flag'])
+
+    def file_get_contents(filename):
+      with open(filename) as f:
+        content = f.read()
+        f.close()
+        return content
+
+    flags_file_content = file_get_contents(flags_file.name)
+    os.remove(flags_file.name)
+
+    self.assertEqual(
+        '--js path/to/src1.js --js path/to/src2.js --test_compiler_flag',
+        flags_file_content)
+
+  def testGetJsCompilerArgs(self):
+
+    original_check = jscompiler._JavaSupports32BitMode
+    jscompiler._JavaSupports32BitMode = lambda: False
+    args = jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 7),
+                                         ['--test_jvm_flag'])
+
+    self.assertEqual(
+        ['java', '-client', '--test_jvm_flag', '-jar',
+         'path/to/jscompiler.jar'], args)
+
+    def CheckJava15RaisesError():
+      jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 5),
+                                    ['--test_jvm_flag'])
+
+    self.assertRaises(jscompiler.JsCompilerError, CheckJava15RaisesError)
+    jscompiler._JavaSupports32BitMode = original_check
+
+  def testGetJsCompilerArgs32BitJava(self):
+
+    original_check = jscompiler._JavaSupports32BitMode
+
+    # Should include the -d32 flag only if 32-bit Java is supported by the
+    # system.
+    jscompiler._JavaSupports32BitMode = lambda: True
+    args = jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 7),
+                                         ['--test_jvm_flag'])
+
+    self.assertEqual(
+        ['java', '-d32', '-client', '--test_jvm_flag', '-jar',
+         'path/to/jscompiler.jar'], args)
+
+    # Should exclude the -d32 flag if 32-bit Java is not supported by the
+    # system.
+    jscompiler._JavaSupports32BitMode = lambda: False
+    args = jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 7),
+                                         ['--test_jvm_flag'])
+
+    self.assertEqual(
+        ['java', '-client', '--test_jvm_flag', '-jar',
+         'path/to/jscompiler.jar'], args)
+
+    jscompiler._JavaSupports32BitMode = original_check
+
+  def testGetJavaVersion(self):
+
+    def assertVersion(expected, version_string):
+      self.assertEquals(expected, jscompiler._ParseJavaVersion(version_string))
+
+    assertVersion((1, 7), _TEST_JAVA_VERSION_STRING)
+    assertVersion((1, 6), _TEST_JAVA_NESTED_VERSION_STRING)
+    assertVersion((1, 4), 'java version "1.4.0_03-ea"')
+
+
+_TEST_JAVA_VERSION_STRING = """\
+openjdk version "1.7.0-google-v5"
+OpenJDK Runtime Environment (build 1.7.0-google-v5-64327-39803485)
+OpenJDK Server VM (build 22.0-b10, mixed mode)
+"""
+
+_TEST_JAVA_NESTED_VERSION_STRING = """\
+Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
+java version "1.6.0_35"
+Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
+Java HotSpot(TM) Client VM (build 20.10-b01-428, mixed mode)
+"""
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/src/closure/conf/depswriter/source.py b/src/closure/conf/depswriter/source.py
new file mode 100755
index 0000000000000000000000000000000000000000..0610e6b644f33774336ea7b4d9f36e2d64c19561
--- /dev/null
+++ b/src/closure/conf/depswriter/source.py
@@ -0,0 +1,132 @@
+# Copyright 2009 The Closure Library Authors. All Rights Reserved.
+#
+# 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.
+
+
+"""Scans a source JS file for its provided and required namespaces.
+
+Simple class to scan a JavaScript file and express its dependencies.
+"""
+
+__author__ = 'nnaze@google.com'
+
+
+import codecs
+import re
+
+_BASE_REGEX_STRING = r'^\s*goog\.%s\(\s*[\'"](.+)[\'"]\s*\)'
+_MODULE_REGEX = re.compile(_BASE_REGEX_STRING % 'module')
+_PROVIDE_REGEX = re.compile(_BASE_REGEX_STRING % 'provide')
+
+_REQUIRE_REGEX_STRING = (r'^\s*(?:(?:var|let|const)\s+[a-zA-Z_$][a-zA-Z0-9$_]*'
+                         r'\s*=\s*)?goog\.require\(\s*[\'"](.+)[\'"]\s*\)')
+_REQUIRES_REGEX = re.compile(_REQUIRE_REGEX_STRING)
+
+class Source(object):
+  """Scans a JavaScript source for its provided and required namespaces."""
+
+  # Matches a "/* ... */" comment.
+  # Note: We can't definitively distinguish a "/*" in a string literal without a
+  # state machine tokenizer. We'll assume that a line starting with whitespace
+  # and "/*" is a comment.
+  _COMMENT_REGEX = re.compile(
+      r"""
+      ^\s*   # Start of a new line and whitespace
+      /\*    # Opening "/*"
+      .*?    # Non greedy match of any characters (including newlines)
+      \*/    # Closing "*/""",
+      re.MULTILINE | re.DOTALL | re.VERBOSE)
+
+  def __init__(self, source):
+    """Initialize a source.
+
+    Args:
+      source: str, The JavaScript source.
+    """
+
+    self.provides = set()
+    self.requires = set()
+    self.is_goog_module = False
+
+    self._source = source
+    self._ScanSource()
+
+  def GetSource(self):
+    """Get the source as a string."""
+    return self._source
+
+  @classmethod
+  def _StripComments(cls, source):
+    return cls._COMMENT_REGEX.sub('', source)
+
+  @classmethod
+  def _HasProvideGoogFlag(cls, source):
+    """Determines whether the @provideGoog flag is in a comment."""
+    for comment_content in cls._COMMENT_REGEX.findall(source):
+      if '@provideGoog' in comment_content:
+        return True
+
+    return False
+
+  def _ScanSource(self):
+    """Fill in provides and requires by scanning the source."""
+
+    stripped_source = self._StripComments(self.GetSource())
+
+    source_lines = stripped_source.splitlines()
+    for line in source_lines:
+      match = _PROVIDE_REGEX.match(line)
+      if match:
+        self.provides.add(match.group(1))
+      match = _MODULE_REGEX.match(line)
+      if match:
+        self.provides.add(match.group(1))
+        self.is_goog_module = True
+      match = _REQUIRES_REGEX.match(line)
+      if match:
+        self.requires.add(match.group(1))
+
+    # Closure's base file implicitly provides 'goog'.
+    # This is indicated with the @provideGoog flag.
+    if self._HasProvideGoogFlag(self.GetSource()):
+
+      if len(self.provides) or len(self.requires):
+        raise Exception(
+            'Base file should not provide or require namespaces.')
+
+      self.provides.add('goog')
+
+
+def GetFileContents(path):
+  """Get a file's contents as a string.
+
+  Args:
+    path: str, Path to file.
+
+  Returns:
+    str, Contents of file.
+
+  Raises:
+    IOError: An error occurred opening or reading the file.
+
+  """
+  fileobj = None
+  try:
+    fileobj = codecs.open(path, encoding='utf-8-sig')
+    return fileobj.read()
+  except IOError as error:
+    raise IOError('An error occurred opening or reading the file: %s. %s'
+                  % (path, error))
+  finally:
+    if fileobj is not None:
+      fileobj.close()
diff --git a/src/closure/conf/depswriter/source_test.py b/src/closure/conf/depswriter/source_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..eb1591b442c671578bea87ef611d631ce0a8335c
--- /dev/null
+++ b/src/closure/conf/depswriter/source_test.py
@@ -0,0 +1,152 @@
+#!/usr/bin/env python
+#
+# Copyright 2010 The Closure Library Authors. All Rights Reserved.
+#
+# 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.
+
+
+"""Unit test for source."""
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+
+import unittest
+
+import source
+
+
+class SourceTestCase(unittest.TestCase):
+  """Unit test for source.  Tests the parser on a known source input."""
+
+  def testSourceScan(self):
+    test_source = source.Source(_TEST_SOURCE)
+
+    self.assertEqual(set(['foo', 'foo.test']),
+                     test_source.provides)
+    self.assertEqual(set(['goog.dom', 'goog.events.EventType']),
+                     test_source.requires)
+    self.assertFalse(test_source.is_goog_module)
+
+  def testSourceScanBase(self):
+    test_source = source.Source(_TEST_BASE_SOURCE)
+
+    self.assertEqual(set(['goog']),
+                     test_source.provides)
+    self.assertEqual(test_source.requires, set())
+    self.assertFalse(test_source.is_goog_module)
+
+  def testSourceScanBadBase(self):
+
+    def MakeSource():
+      source.Source(_TEST_BAD_BASE_SOURCE)
+
+    self.assertRaises(Exception, MakeSource)
+
+  def testSourceScanGoogModule(self):
+    test_source = source.Source(_TEST_MODULE_SOURCE)
+
+    self.assertEqual(set(['foo']),
+                     test_source.provides)
+    self.assertEqual(set(['bar']),
+                     test_source.requires)
+    self.assertTrue(test_source.is_goog_module)
+
+  def testStripComments(self):
+    self.assertEquals(
+        '\nvar foo = function() {}',
+        source.Source._StripComments((
+            '/* This is\n'
+            '  a comment split\n'
+            '  over multiple lines\n'
+            '*/\n'
+            'var foo = function() {}')))
+
+  def testGoogStatementsInComments(self):
+    test_source = source.Source(_TEST_COMMENT_SOURCE)
+
+    self.assertEqual(set(['foo']),
+                     test_source.provides)
+    self.assertEqual(set(['goog.events.EventType']),
+                     test_source.requires)
+    self.assertFalse(test_source.is_goog_module)
+
+  def testHasProvideGoog(self):
+    self.assertTrue(source.Source._HasProvideGoogFlag(_TEST_BASE_SOURCE))
+    self.assertTrue(source.Source._HasProvideGoogFlag(_TEST_BAD_BASE_SOURCE))
+    self.assertFalse(source.Source._HasProvideGoogFlag(_TEST_COMMENT_SOURCE))
+
+
+_TEST_MODULE_SOURCE = """
+goog.module('foo');
+var b = goog.require('bar');
+"""
+
+
+_TEST_SOURCE = """// Fake copyright notice
+
+/** Very important comment. */
+
+goog.provide('foo');
+goog.provide('foo.test');
+
+goog.require('goog.dom');
+goog.require('goog.events.EventType');
+
+function foo() {
+  // Set bar to seventeen to increase performance.
+  this.bar = 17;
+}
+"""
+
+_TEST_COMMENT_SOURCE = """// Fake copyright notice
+
+goog.provide('foo');
+
+/*
+goog.provide('foo.test');
+ */
+
+/*
+goog.require('goog.dom');
+*/
+
+// goog.require('goog.dom');
+
+goog.require('goog.events.EventType');
+
+function bar() {
+  this.baz = 55;
+}
+"""
+
+_TEST_BASE_SOURCE = """
+/**
+ * @fileoverview The base file.
+ * @provideGoog
+ */
+
+var goog = goog || {};
+"""
+
+_TEST_BAD_BASE_SOURCE = """
+/**
+ * @fileoverview The base file.
+ * @provideGoog
+ */
+
+goog.provide('goog');
+"""
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/src/closure/conf/depswriter/treescan.py b/src/closure/conf/depswriter/treescan.py
new file mode 100755
index 0000000000000000000000000000000000000000..6694593aab0a3ae36a45429f9ca9dead2920b999
--- /dev/null
+++ b/src/closure/conf/depswriter/treescan.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+#
+# Copyright 2010 The Closure Library Authors. All Rights Reserved.
+#
+# 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.
+
+
+"""Shared utility functions for scanning directory trees."""
+
+import os
+import re
+
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+
+# Matches a .js file path.
+_JS_FILE_REGEX = re.compile(r'^.+\.js$')
+
+
+def ScanTreeForJsFiles(root):
+  """Scans a directory tree for JavaScript files.
+
+  Args:
+    root: str, Path to a root directory.
+
+  Returns:
+    An iterable of paths to JS files, relative to cwd.
+  """
+  return ScanTree(root, path_filter=_JS_FILE_REGEX)
+
+
+def ScanTree(root, path_filter=None, ignore_hidden=True):
+  """Scans a directory tree for files.
+
+  Args:
+    root: str, Path to a root directory.
+    path_filter: A regular expression filter.  If set, only paths matching
+      the path_filter are returned.
+    ignore_hidden: If True, do not follow or return hidden directories or files
+      (those starting with a '.' character).
+
+  Yields:
+    A string path to files, relative to cwd.
+  """
+
+  def OnError(os_error):
+    raise os_error
+
+  for dirpath, dirnames, filenames in os.walk(root, onerror=OnError):
+    # os.walk allows us to modify dirnames to prevent decent into particular
+    # directories.  Avoid hidden directories.
+    for dirname in dirnames:
+      if ignore_hidden and dirname.startswith('.'):
+        dirnames.remove(dirname)
+
+    for filename in filenames:
+
+      # nothing that starts with '.'
+      if ignore_hidden and filename.startswith('.'):
+        continue
+
+      fullpath = os.path.join(dirpath, filename)
+
+      if path_filter and not path_filter.match(fullpath):
+        continue
+
+      yield os.path.normpath(fullpath)
diff --git a/src/closure/conf/externs/angular-1.3.js b/src/closure/conf/externs/angular-1.3.js
new file mode 100755
index 0000000000000000000000000000000000000000..c3795d2988ff48a966db4c95bd2c112cb1c73f01
--- /dev/null
+++ b/src/closure/conf/externs/angular-1.3.js
@@ -0,0 +1,2392 @@
+/*
+ * Copyright 2012 The Closure Compiler Authors.
+ *
+ * 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.
+ */
+
+/**
+ * @fileoverview Externs for Angular 1.
+ *
+ * TODO: Mocks.
+ * TODO: Remaining Services:
+ *     $compileProvider
+ *     $cookies
+ *     $cookieStore
+ *     $document
+ *     $httpBackend
+ *     $interpolate
+ *     $locale
+ *     $resource
+ *     $rootElement
+ *     $rootScope
+ *     $rootScopeProvider
+ *
+ * TODO: Resolve two issues with angular.$http
+ *         1) angular.$http isn't declared as a
+ *            callable type. It should be declared as a function, and properties
+ *            added following the technique used by $timeout, $parse and
+ *            $interval.
+ *         2) angular.$http.delete cannot be added as an extern
+ *            as it is a reserved keyword.
+ *            Its use is potentially not supported in IE.
+ *            It may be aliased as 'remove' in a future version.
+ *
+ * @see http://angularjs.org/
+ * @externs
+ */
+
+/**
+ * @typedef {(Window|Document|Element|Array.<Element>|string|!angular.JQLite|
+ *     NodeList|{length: number})}
+ */
+var JQLiteSelector;
+
+/**
+ * @type {Object}
+ * @const
+ */
+var angular = {};
+
+/**
+ * @param {T} self Specifies the object which this should point to when the
+ *     function is run.
+ * @param {?function(this:T, ...)} fn A function to partially apply.
+ * @return {!Function} A partially-applied form of the function bind() was
+ *     invoked as a method of.
+ * @param {...*} args Additional arguments that are partially applied to the
+ *     function.
+ * @template T
+ */
+angular.bind = function(self, fn, args) {};
+
+/** @typedef {{strictDi: (boolean|undefined)}} */
+angular.BootstrapOptions;
+
+/**
+ * @param {Element|HTMLDocument} element
+ * @param {Array.<string|Function>=} opt_modules
+ * @param {angular.BootstrapOptions=} opt_config
+ * @return {!angular.$injector}
+ */
+angular.bootstrap = function(element, opt_modules, opt_config) {};
+
+/**
+ * @param {T} source
+ * @param {(Object|Array)=} opt_dest
+ * @return {T}
+ * @template T
+ */
+angular.copy = function(source, opt_dest) {};
+
+/**
+ * @param {(JQLiteSelector|Object)} element
+ * @param {(JQLiteSelector|Object)=} opt_context
+ * @return {!angular.JQLite}
+ */
+angular.element = function(element, opt_context) {};
+
+/**
+ * @param {*} o1
+ * @param {*} o2
+ * @return {boolean}
+ */
+angular.equals = function(o1, o2) {};
+
+/**
+ * @param {Object} dest
+ * @param {...Object} srcs
+ */
+angular.extend = function(dest, srcs) {};
+
+/**
+ * @param {Object|Array} obj
+ * @param {Function} iterator
+ * @param {Object=} opt_context
+ * @return {Object|Array}
+ */
+angular.forEach = function(obj, iterator, opt_context) {};
+
+/**
+ * @param {string|T} json
+ * @return {Object|Array|Date|T}
+ * @template T
+ */
+angular.fromJson = function(json) {};
+
+/**
+ * @param {*} arg
+ * @return {*}
+ */
+angular.identity = function(arg) {};
+
+/**
+ * @param {Array.<string|Function>} modules
+ * @return {!angular.$injector}
+ */
+angular.injector = function(modules) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isArray = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isDate = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isDefined = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isElement = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isFunction = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isNumber = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isObject = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isString = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isUndefined = function(value) {};
+
+/**
+ * @param {string} s
+ * @return {string}
+ */
+angular.lowercase = function(s) {};
+
+angular.mock = {};
+
+/**
+ * @param {string} name
+ * @param {Array.<string>=} opt_requires
+ * @param {(Function|Array.<string|Function>)=} opt_configFn
+ * @return {!angular.Module}
+ */
+angular.module = function(name, opt_requires, opt_configFn) {};
+
+angular.noop = function() {};
+
+/**
+ * @param {Object|Array|Date|string|number} obj
+ * @param {boolean=} opt_pretty
+ * @return {string}
+ */
+angular.toJson = function(obj, opt_pretty) {};
+
+/**
+ * @param {string} s
+ * @return {string}
+ */
+angular.uppercase = function(s) {};
+
+/**
+ * @typedef {{
+ *   enter: (function(!angular.JQLite, !Function): (!Function|undefined)|
+ *       undefined),
+ *   leave: (function(!angular.JQLite, !Function): (!Function|undefined)|
+ *       undefined),
+ *   move: (function(!angular.JQLite, !Function): (!Function|undefined)|
+ *       undefined),
+ *   addClass: (function(!angular.JQLite, !Function): (!Function|undefined)|
+ *       undefined),
+ *   removeClass: (function(!angular.JQLite, !Function): (!Function|undefined)|
+ *       undefined)
+ *   }}
+ */
+angular.Animation;
+
+/**
+ * @param {!angular.JQLite} element
+ * @param {!Function} done
+ * @return {(!Function|undefined)}
+ */
+angular.Animation.enter = function(element, done) {};
+
+/**
+ * @param {!angular.JQLite} element
+ * @param {!Function} done
+ * @return {(!Function|undefined)}
+ */
+angular.Animation.leave = function(element, done) {};
+
+/**
+ * @param {!angular.JQLite} element
+ * @param {!Function} done
+ * @return {(!Function|undefined)}
+ */
+angular.Animation.move = function(element, done) {};
+
+/**
+ * @param {!angular.JQLite} element
+ * @param {!Function} done
+ * @return {(!Function|undefined)}
+ */
+angular.Animation.addClass = function(element, done) {};
+
+/**
+ * @param {!angular.JQLite} element
+ * @param {!Function} done
+ * @return {(!Function|undefined)}
+ */
+angular.Animation.removeClass = function(element, done) {};
+
+/**
+ * @typedef {{
+ *   $attr: Object.<string,string>,
+ *   $normalize: function(string): string,
+ *   $observe: function(string, function(*)): function(),
+ *   $set: function(string, ?(string|boolean), boolean=, string=)
+ *   }}
+ */
+angular.Attributes;
+
+/**
+ * @type {Object.<string, string>}
+ */
+angular.Attributes.$attr;
+
+/**
+ * @param {string} classVal
+ */
+angular.Attributes.$addClass = function(classVal) {};
+
+/**
+ * @param {string} classVal
+ */
+angular.Attributes.$removeClass = function(classVal) {};
+
+/**
+ * @param {string} newClasses
+ * @param {string} oldClasses
+ */
+angular.Attributes.$updateClass = function(newClasses, oldClasses) {};
+
+/**
+ * @param {string} name
+ * @return {string}
+ */
+angular.Attributes.$normalize = function(name) {};
+
+/**
+ * @param {string} key
+ * @param {function(*)} fn
+ * @return {function()}
+ */
+angular.Attributes.$observe = function(key, fn) {};
+
+/**
+ * @param {string} key
+ * @param {?(string|boolean)} value
+ * @param {boolean=} opt_writeAttr
+ * @param {string=} opt_attrName
+ */
+angular.Attributes.$set = function(key, value, opt_writeAttr, opt_attrName) {};
+
+/**
+ * @typedef {{
+ *   pre: (function(
+ *           !angular.Scope=,
+ *           !angular.JQLite=,
+ *           !angular.Attributes=,
+ *           (!Object|!Array.<!Object>)=)|
+ *       undefined),
+ *   post: (function(
+ *           !angular.Scope=,
+ *           !angular.JQLite=,
+ *           !angular.Attributes=,
+ *           (!Object|Array.<!Object>)=)|
+ *       undefined)
+ *   }}
+ */
+angular.LinkingFunctions;
+
+/**
+ * @param {!angular.Scope=} scope
+ * @param {!angular.JQLite=} iElement
+ * @param {!angular.Attributes=} iAttrs
+ * @param {(!Object|!Array.<!Object>)=} controller
+ */
+angular.LinkingFunctions.pre = function(scope, iElement, iAttrs, controller) {};
+
+/**
+ * @param {!angular.Scope=} scope
+ * @param {!angular.JQLite=} iElement
+ * @param {!angular.Attributes=} iAttrs
+ * @param {(!Object|!Array.<!Object>)=} controller
+ */
+angular.LinkingFunctions.post = function(scope, iElement, iAttrs, controller) {
+};
+
+/**
+ * @typedef {{
+ *   bindToController: (boolean|undefined),
+ *   compile: (function(
+ *       !angular.JQLite=, !angular.Attributes=, Function=)|undefined),
+ *   controller: (Function|Array.<string|Function>|string|undefined),
+ *   controllerAs: (string|undefined),
+ *   link: (function(
+ *       !angular.Scope=, !angular.JQLite=, !angular.Attributes=,
+ *       (!Object|!Array.<!Object>)=)|
+ *       !angular.LinkingFunctions|
+ *       undefined),
+ *   name: (string|undefined),
+ *   priority: (number|undefined),
+ *   replace: (boolean|undefined),
+ *   require: (string|Array.<string>|undefined),
+ *   restrict: (string|undefined),
+ *   scope: (boolean|Object.<string, string>|undefined),
+ *   template: (string|
+ *       function(!angular.JQLite=,!angular.Attributes=): string|
+ *       undefined),
+ *   templateNamespace: (string|undefined),
+ *   templateUrl: (string|
+ *       function(!angular.JQLite=,!angular.Attributes=)|
+ *       undefined),
+ *   terminal: (boolean|undefined),
+ *   transclude: (boolean|string|undefined)
+ *   }}
+ */
+angular.Directive;
+
+/**
+ * @param {!angular.JQLite=} tElement
+ * @param {!angular.Attributes=} tAttrs
+ * @param {Function=} transclude
+ * @return {Function|angular.LinkingFunctions|undefined}
+ */
+angular.Directive.compile = function(tElement, tAttrs, transclude) {};
+
+angular.Directive.controller = function() {};
+
+/**
+ * @type {string|undefined}
+ */
+angular.Directive.controllerAs;
+
+/**
+ * @type {(
+ *   function(!angular.Scope=, !angular.JQLite=, !angular.Attributes=,
+ *     (!Object|!Array.<!Object>)=)|
+ *   !angular.LinkingFunctions|
+ *   undefined
+ * )}
+ */
+angular.Directive.link;
+
+/**
+ * @type {(string|undefined)}
+ */
+angular.Directive.name;
+
+/**
+ * @type {(number|undefined)}
+ */
+angular.Directive.priority;
+
+/**
+ * @type {(boolean|undefined)}
+ */
+angular.Directive.replace;
+
+/**
+ * @type {(string|Array.<string>|undefined)}
+ */
+angular.Directive.require;
+
+/**
+ * @type {(string|undefined)}
+ */
+angular.Directive.restrict;
+
+/**
+ * @type {(boolean|Object.<string, string>|undefined)}
+ */
+angular.Directive.scope;
+
+/**
+ * @type {(
+ *   string|
+ *   function(!angular.JQLite=,!angular.Attributes=): string|
+ *   undefined
+ * )}
+ */
+angular.Directive.template;
+
+/**
+ * @type {(string|function(!angular.JQLite=, !angular.Attributes=)|undefined)}
+ */
+angular.Directive.templateUrl;
+
+/**
+ * @type {(boolean|undefined)}
+ */
+angular.Directive.terminal;
+
+/**
+ * @type {(boolean|string|undefined)}
+ */
+angular.Directive.transclude;
+
+/**
+ * @typedef {{
+ *   addClass: function(string): !angular.JQLite,
+ *   after: function(JQLiteSelector): !angular.JQLite,
+ *   append: function(JQLiteSelector): !angular.JQLite,
+ *   attr: function(string, (string|boolean)=):
+ *       (!angular.JQLite|string|boolean),
+ *   bind: function(string, Function): !angular.JQLite,
+ *   children: function(): !angular.JQLite,
+ *   clone: function(): !angular.JQLite,
+ *   contents: function(): !angular.JQLite,
+ *   controller: function(string=): Object,
+ *   css: function((string|!Object), string=): (!angular.JQLite|string),
+ *   data: function(string=, *=): *,
+ *   detach: function(): !angular.JQLite,
+ *   empty: function(): !angular.JQLite,
+ *   eq: function(number): !angular.JQLite,
+ *   find: function(string): !angular.JQLite,
+ *   hasClass: function(string): boolean,
+ *   html: function(string=): (!angular.JQLite|string),
+ *   inheritedData: function(string=, *=): *,
+ *   injector: function(): !angular.$injector,
+ *   isolateScope: function(): (!angular.Scope|undefined),
+ *   length: number,
+ *   next: function(): !angular.JQLite,
+ *   on: function(string, Function): !angular.JQLite,
+ *   off: function(string=, Function=): !angular.JQLite,
+ *   one: function(string, Function): !angular.JQLite,
+ *   parent: function(): !angular.JQLite,
+ *   prepend: function(JQLiteSelector): !angular.JQLite,
+ *   prop: function(string, *=): *,
+ *   ready: function(Function): !angular.JQLite,
+ *   remove: function(): !angular.JQLite,
+ *   removeAttr: function(string): !angular.JQLite,
+ *   removeClass: function(string): !angular.JQLite,
+ *   removeData: function(string=): !angular.JQLite,
+ *   replaceWith: function(JQLiteSelector): !angular.JQLite,
+ *   scope: function(): !angular.Scope,
+ *   text: function(string=): (!angular.JQLite|string),
+ *   toggleClass: function(string, boolean=): !angular.JQLite,
+ *   triggerHandler: function(string, *=): !angular.JQLite,
+ *   unbind: function(string=, Function=): !angular.JQLite,
+ *   val: function(string=): (!angular.JQLite|string),
+ *   wrap: function(JQLiteSelector): !angular.JQLite
+ *   }}
+ */
+angular.JQLite;
+
+/**
+ * @param {string} name
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.addClass = function(name) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.after = function(element) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.append = function(element) {};
+
+/**
+ * @param {string} name
+ * @param {(string|boolean)=} opt_value
+ * @return {!angular.JQLite|string|boolean}
+ */
+angular.JQLite.attr = function(name, opt_value) {};
+
+/**
+ * @param {string} type
+ * @param {Function} fn
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.bind = function(type, fn) {};
+
+/**
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.children = function() {};
+
+/**
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.clone = function() {};
+
+/**
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.contents = function() {};
+
+/**
+ * @param {string=} opt_name
+ * @return {Object}
+ */
+angular.JQLite.controller = function(opt_name) {};
+
+/**
+ * @param {(string|!Object)} nameOrObject
+ * @param {string=} opt_value
+ * @return {!angular.JQLite|string}
+ */
+angular.JQLite.css = function(nameOrObject, opt_value) {};
+
+/**
+ * @param {string=} opt_key
+ * @param {*=} opt_value
+ * @return {*}
+ */
+angular.JQLite.data = function(opt_key, opt_value) {};
+
+/**
+ * @param {number} index
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.eq = function(index) {};
+
+/**
+ * @param {string} selector
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.find = function(selector) {};
+
+/**
+ * @param {string} name
+ * @return {boolean}
+ */
+angular.JQLite.hasClass = function(name) {};
+
+/**
+ * @param {string=} opt_value
+ * @return {!angular.JQLite|string}
+ */
+angular.JQLite.html = function(opt_value) {};
+
+/**
+ * @param {string=} opt_key
+ * @param {*=} opt_value
+ * @return {*}
+ */
+angular.JQLite.inheritedData = function(opt_key, opt_value) {};
+
+/**
+ * @return {!angular.$injector}
+ */
+angular.JQLite.injector = function() {};
+
+/** @type {number} */
+angular.JQLite.length;
+
+/**
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.next = function() {};
+
+/**
+ * @param {string} type
+ * @param {Function} fn
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.on = function(type, fn) {};
+
+/**
+ * @param {string=} opt_type
+ * @param {Function=} opt_fn
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.off = function(opt_type, opt_fn) {};
+
+/**
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.parent = function() {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.prepend = function(element) {};
+
+/**
+ * @param {string} name
+ * @param {*=} opt_value
+ * @return {*}
+ */
+angular.JQLite.prop = function(name, opt_value) {};
+
+/**
+ * @param {Function} fn
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.ready = function(fn) {};
+
+/**
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.remove = function() {};
+
+/**
+ * @param {string} name
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.removeAttr = function(name) {};
+
+/**
+ * @param {string} name
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.removeClass = function(name) {};
+
+/**
+ * @param {string=} opt_name
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.removeData = function(opt_name) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.replaceWith = function(element) {};
+
+/**
+ * @return {!angular.Scope}
+ */
+angular.JQLite.scope = function() {};
+
+/**
+ * @param {string=} opt_value
+ * @return {!angular.JQLite|string}
+ */
+angular.JQLite.text = function(opt_value) {};
+
+/**
+ * @param {string} name
+ * @param {boolean=} opt_condition
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.toggleClass = function(name, opt_condition) {};
+
+/**
+ * @param {string} type
+ * @param {*=} opt_value
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.triggerHandler = function(type, opt_value) {};
+
+/**
+ * @param {string=} opt_type
+ * @param {Function=} opt_fn
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.unbind = function(opt_type, opt_fn) {};
+
+/**
+ * @param {string=} opt_value
+ * @return {!angular.JQLite|string}
+ */
+angular.JQLite.val = function(opt_value) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.wrap = function(element) {};
+
+/**
+ * @typedef {{
+ *   animation:
+ *       function(string, function(...*):angular.Animation):!angular.Module,
+ *   config: function((Function|Array.<string|Function>)):!angular.Module,
+ *   constant: function(string, *):angular.Module,
+ *   controller:
+ *       (function(string, (Function|Array.<string|Function>)):!angular.Module|
+ *       function(!Object.<(Function|Array.<string|Function>)>):
+ *           !angular.Module),
+ *   directive:
+ *       (function(string, (Function|Array.<string|Function>)):!angular.Module|
+ *       function(!Object.<(Function|Array.<string|Function>)>):
+ *           !angular.Module),
+ *   factory:
+ *       function(string, (Function|Array.<string|Function>)):!angular.Module,
+ *   filter:
+ *       function(string, (Function|Array.<string|Function>)):!angular.Module,
+ *   name: string,
+ *   provider: function(string,
+ *       (Object|Function|Array.<string|Function>)):!angular.Module,
+ *   requires: !Array.<string>,
+ *   run: function((Function|Array.<string|Function>)):!angular.Module,
+ *   service:
+ *       function(string, (Function|Array.<string|Function>)):!angular.Module,
+ *   value: function(string, *):!angular.Module
+ *   }}
+ */
+angular.Module;
+
+/**
+ * @param {string} name
+ * @param {function(...*):angular.Animation} animationFactory
+ */
+angular.Module.animation = function(name, animationFactory) {};
+
+/**
+ * @param {Function|Array.<string|Function>} configFn
+ * @return {!angular.Module}
+ */
+angular.Module.config = function(configFn) {};
+
+/**
+ * @param {string} name
+ * @param {*} object
+ * @return {!angular.Module}
+ */
+angular.Module.constant = function(name, object) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} constructor
+ * @return {!angular.Module}
+ */
+angular.Module.controller = function(name, constructor) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} directiveFactory
+ * @return {!angular.Module}
+ */
+angular.Module.directive = function(name, directiveFactory) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} providerFunction
+ * @return {!angular.Module}
+ */
+angular.Module.factory = function(name, providerFunction) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} filterFactory
+ * @return {!angular.Module}
+ */
+angular.Module.filter = function(name, filterFactory) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} providerType
+ * @return {!angular.Module}
+ */
+angular.Module.provider = function(name, providerType) {};
+
+/**
+ * @param {Function|Array.<string|Function>} initializationFn
+ * @return {!angular.Module}
+ */
+angular.Module.run = function(initializationFn) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} constructor
+ * @return {!angular.Module}
+ */
+angular.Module.service = function(name, constructor) {};
+
+/**
+ * @param {string} name
+ * @param {*} object
+ * @return {!angular.Module}
+ */
+angular.Module.value = function(name, object) {};
+
+/**
+ * @type {string}
+ */
+angular.Module.name = '';
+
+/**
+ * @type {Array.<string>}
+ */
+angular.Module.requires;
+
+/**
+ * @typedef {{
+ *   $$phase: string,
+ *   $apply: function((string|function(!angular.Scope))=):*,
+ *   $applyAsync: function((string|function(!angular.Scope))=),
+ *   $broadcast: function(string, ...*),
+ *   $destroy: function(),
+ *   $digest: function(),
+ *   $emit: function(string, ...*),
+ *   $eval: function((string|function(!angular.Scope))=, Object=):*,
+ *   $evalAsync: function((string|function())=),
+ *   $id: string,
+ *   $new: function(boolean=):!angular.Scope,
+ *   $on: function(string, function(!angular.Scope.Event, ...?)):function(),
+ *   $parent: !angular.Scope,
+ *   $root: !angular.Scope,
+ *   $watch: function(
+ *       (string|Function), (string|Function)=, boolean=):function(),
+ *   $watchCollection: function(
+ *       (string|Function), (string|Function)=):function(),
+ *   $watchGroup: function(
+ *       Array.<string|Function>, (string|Function)=):function()
+ *   }}
+ */
+angular.Scope;
+
+/** @type {string} */
+angular.Scope.$$phase;
+
+/**
+ * @param {(string|function(!angular.Scope))=} opt_exp
+ * @return {*}
+ */
+angular.Scope.$apply = function(opt_exp) {};
+
+/**
+ * @param {string} name
+ * @param {...*} args
+ */
+angular.Scope.$broadcast = function(name, args) {};
+
+angular.Scope.$destroy = function() {};
+
+angular.Scope.$digest = function() {};
+
+/**
+ * @param {string} name
+ * @param {...*} args
+ */
+angular.Scope.$emit = function(name, args) {};
+
+/**
+ * @param {(string|function())=} opt_exp
+ * @param {Object=} opt_locals
+ * @return {*}
+ */
+angular.Scope.$eval = function(opt_exp, opt_locals) {};
+
+/**
+ * @param {(string|function())=} opt_exp
+ */
+angular.Scope.$evalAsync = function(opt_exp) {};
+
+/** @type {string} */
+angular.Scope.$id;
+
+/**
+ * @param {boolean=} opt_isolate
+ * @return {!angular.Scope}
+ */
+angular.Scope.$new = function(opt_isolate) {};
+
+/**
+ * @param {string} name
+ * @param {function(!angular.Scope.Event, ...?)} listener
+ * @return {function()}
+ */
+angular.Scope.$on = function(name, listener) {};
+
+/** @type {!angular.Scope} */
+angular.Scope.$parent;
+
+/** @type {!angular.Scope} */
+angular.Scope.$root;
+
+/**
+ * @param {string|!Function} exp
+ * @param {(string|Function)=} opt_listener
+ * @param {boolean=} opt_objectEquality
+ * @return {function()}
+ */
+angular.Scope.$watch = function(exp, opt_listener, opt_objectEquality) {};
+
+/**
+ * @param {string|!Function} exp
+ * @param {(string|Function)=} opt_listener
+ * @return {function()}
+ */
+angular.Scope.$watchCollection = function(exp, opt_listener) {};
+
+/**
+ * @typedef {{
+ *   currentScope: !angular.Scope,
+ *   defaultPrevented: boolean,
+ *   name: string,
+ *   preventDefault: function(),
+ *   stopPropagation: function(),
+ *   targetScope: !angular.Scope
+ *   }}
+ */
+angular.Scope.Event;
+
+/** @type {!angular.Scope} */
+angular.Scope.Event.currentScope;
+
+/** @type {boolean} */
+angular.Scope.Event.defaultPrevented;
+
+/** @type {string} */
+angular.Scope.Event.name;
+
+angular.Scope.Event.preventDefault = function() {};
+
+angular.Scope.Event.stopPropagation = function() {};
+
+/** @type {!angular.Scope} */
+angular.Scope.Event.targetScope;
+
+/**
+ * @type {Object}
+ */
+angular.version = {};
+
+/**
+ * @type {string}
+ */
+angular.version.full = '';
+
+/**
+ * @type {number}
+ */
+angular.version.major = 0;
+
+/**
+ * @type {number}
+ */
+angular.version.minor = 0;
+
+/**
+ * @type {number}
+ */
+angular.version.dot = 0;
+
+/**
+ * @type {string}
+ */
+angular.version.codeName = '';
+
+/******************************************************************************
+ * $anchorScroll Service
+ *****************************************************************************/
+
+/**
+ * @typedef {function()}
+ */
+angular.$anchorScroll;
+
+/******************************************************************************
+ * $anchorScrollProvider Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   disableAutoScrolling: function()
+ *   }}
+ */
+angular.$anchorScrollProvider;
+
+/**
+ * @type {function()}
+ */
+angular.$anchorScrollProvider.disableAutoScrolling = function() {};
+
+/******************************************************************************
+ * $animate Service
+ *****************************************************************************/
+
+/**
+ * @constructor
+ */
+angular.$animate;
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {Object} from
+ * @param {Object} to
+ * @param {string=} opt_className
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.animate = function(
+    element, from, to, opt_className, opt_options) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {JQLiteSelector} parentElement
+ * @param {JQLiteSelector} afterElement
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.enter = function(
+    element, parentElement, afterElement, opt_options) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.leave = function(element, opt_options) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {JQLiteSelector} parentElement
+ * @param {JQLiteSelector} afterElement
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.move = function(
+    element, parentElement, afterElement, opt_options) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {string} className
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.addClass = function(
+    element, className, opt_options) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {string} className
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.removeClass = function(
+    element, className, opt_options) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {string} add
+ * @param {string} remove
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.setClass = function(
+    element, add, remove, opt_options) {};
+
+/**
+ * @param {boolean=} opt_value
+ * @param {JQLiteSelector=} opt_element
+ * @return {boolean}
+ */
+angular.$animate.prototype.enabled = function(opt_value, opt_element) {};
+
+/**
+ * @param {angular.$q.Promise} animationPromise
+ */
+angular.$animate.prototype.cancel = function(animationPromise) {};
+
+/******************************************************************************
+ * $animateProvider Service
+ *****************************************************************************/
+
+/**
+ * @constructor
+ */
+angular.$animateProvider;
+
+/**
+ * @param {string} name
+ * @param {Function} factory
+ */
+angular.$animateProvider.prototype.register = function(name, factory) {};
+
+/**
+ * @param {RegExp=} opt_expression
+ */
+angular.$animateProvider.prototype.classNameFilter = function(
+    opt_expression) {};
+
+/******************************************************************************
+ * $compile Service
+ *****************************************************************************/
+
+/**
+ * @typedef {
+ *   function(
+ *       (JQLiteSelector|Object),
+ *       function(!angular.Scope, Function=)=, number=):
+ *           function(!angular.Scope,
+ *               function(!angular.JQLite, !angular.Scope=)=): !angular.JQLite}
+ */
+angular.$compile;
+
+/******************************************************************************
+ * $cacheFactory Service
+ *****************************************************************************/
+
+/**
+ * @typedef {
+ *   function(string, angular.$cacheFactory.Options=):
+ *       !angular.$cacheFactory.Cache}
+ */
+angular.$cacheFactory;
+
+/**
+ * @typedef {function(string): ?angular.$cacheFactory.Cache}
+ */
+angular.$cacheFactory.get;
+
+/** @typedef {{capacity: (number|undefined)}} */
+angular.$cacheFactory.Options;
+
+/**
+ * @template T
+ * @constructor
+ */
+angular.$cacheFactory.Cache = function() {};
+
+/**
+ * @return {!angular.$cacheFactory.Cache.Info}
+ */
+angular.$cacheFactory.Cache.prototype.info = function() {};
+
+/**
+ * @param {string} key
+ * @param {T} value
+ */
+angular.$cacheFactory.Cache.prototype.put = function(key, value) {};
+
+/**
+ * @param {string} key
+ * @return {T}
+ */
+angular.$cacheFactory.Cache.prototype.get = function(key) {};
+
+/**
+ * @param {string} key
+ */
+angular.$cacheFactory.Cache.prototype.remove = function(key) {};
+
+angular.$cacheFactory.Cache.prototype.removeAll = function() {};
+angular.$cacheFactory.Cache.prototype.destroy = function() {};
+
+/**
+ * @typedef {{
+ *   id: string,
+ *   size: number,
+ *   options: angular.$cacheFactory.Options
+ *   }}
+ */
+angular.$cacheFactory.Cache.Info;
+
+/******************************************************************************
+ * $controller Service
+ *****************************************************************************/
+
+/**
+ * @typedef {function((Function|string), Object):Object}
+ */
+angular.$controller;
+
+/******************************************************************************
+ * $controllerProvider Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   register: function((string|Object), (Function|Array)),
+ *   allowGlobals: function()
+ *   }}
+ */
+angular.$controllerProvider;
+
+/******************************************************************************
+ * $exceptionHandler Service
+ *****************************************************************************/
+
+/**
+ * @typedef {function(Error, string=)}
+ */
+angular.$exceptionHandler;
+
+/******************************************************************************
+ * $filter Service
+ *****************************************************************************/
+
+/**
+ * @typedef {function(string): !Function}
+ */
+angular.$filter;
+
+/**
+ * The 'orderBy' filter is available through $filterProvider and AngularJS
+ * injection; but is not accessed through a documented public API of AngularJS.
+ * <p>In current AngularJS version the injection is satisfied by
+ * angular.orderByFunction, where the implementation is found.
+ * <p>See http://docs.angularjs.org/api/ng.filter:orderBy.
+ * @typedef {function(Array,
+ *     (string|function(?):*|Array.<(string|function(?):*)>),
+ *     boolean=): Array}
+ */
+angular.$filter.orderBy;
+
+/******************************************************************************
+ * $filterProvider Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   register: function(string, (!Function|!Array.<string|!Function>))
+ *   }}
+ */
+angular.$filterProvider;
+
+/**
+ * @param {string} name
+ * @param {(!Function|!Array.<string|!Function>)} fn
+ */
+angular.$filterProvider.register = function(name, fn) {};
+
+/******************************************************************************
+ * $http Service
+ *****************************************************************************/
+
+/**
+ * This is a typedef because the closure compiler does not allow
+ * defining a type that is a function with properties.
+ * If you are trying to use the $http service as a function, try
+ * using one of the helper functions instead.
+ * @typedef {{
+ *   delete: function(string, angular.$http.Config=):!angular.$http.HttpPromise,
+ *   get: function(string, angular.$http.Config=):!angular.$http.HttpPromise,
+ *   head: function(string, angular.$http.Config=):!angular.$http.HttpPromise,
+ *   jsonp: function(string, angular.$http.Config=):!angular.$http.HttpPromise,
+ *   post: function(string, *, angular.$http.Config=):
+ *       !angular.$http.HttpPromise,
+ *   put: function(string, *, angular.$http.Config=):!angular.$http.HttpPromise,
+ *   defaults: angular.$http.Config,
+ *   pendingRequests: !Array.<angular.$http.Config>
+ * }}
+ */
+angular.$http;
+
+/**
+ * @typedef {{
+ *   cache: (boolean|!angular.$cacheFactory.Cache|undefined),
+ *   data: (string|Object|undefined),
+ *   headers: (Object|undefined),
+ *   method: (string|undefined),
+ *   params: (Object.<(string|Object)>|undefined),
+ *   responseType: (string|undefined),
+ *   timeout: (number|!angular.$q.Promise|undefined),
+ *   transformRequest:
+ *       (function((string|Object), Object):(string|Object)|
+ *       Array.<function((string|Object), Object):(string|Object)>|undefined),
+ *   transformResponse:
+ *       (function((string|Object), Object):(string|Object)|
+ *       Array.<function((string|Object), Object):(string|Object)>|undefined),
+ *   url: (string|undefined),
+ *   withCredentials: (boolean|undefined),
+ *   xsrfCookieName: (string|undefined),
+ *   xsrfHeaderName: (string|undefined)
+ * }}
+ */
+angular.$http.Config;
+
+angular.$http.Config.transformRequest;
+
+angular.$http.Config.transformResponse;
+
+// /**
+//  * This extern is currently incomplete as delete is a reserved word.
+//  * To use delete, index $http.
+//  * Example: $http['delete'](url, opt_config);
+//  * @param {string} url
+//  * @param {angular.$http.Config=} opt_config
+//  * @return {!angular.$http.HttpPromise}
+//  */
+// angular.$http.delete = function(url, opt_config) {};
+
+/**
+ * @param {string} url
+ * @param {angular.$http.Config=} opt_config
+ * @return {!angular.$http.HttpPromise}
+ */
+angular.$http.get = function(url, opt_config) {};
+
+/**
+ * @param {string} url
+ * @param {angular.$http.Config=} opt_config
+ * @return {!angular.$http.HttpPromise}
+ */
+angular.$http.head = function(url, opt_config) {};
+
+/**
+ * @param {string} url
+ * @param {angular.$http.Config=} opt_config
+ * @return {!angular.$http.HttpPromise}
+ */
+angular.$http.jsonp = function(url, opt_config) {};
+
+/**
+ * @param {string} url
+ * @param {*} data
+ * @param {angular.$http.Config=} opt_config
+ * @return {!angular.$http.HttpPromise}
+ */
+angular.$http.post = function(url, data, opt_config) {};
+
+/**
+ * @param {string} url
+ * @param {*} data
+ * @param {angular.$http.Config=} opt_config
+ * @return {!angular.$http.HttpPromise}
+ */
+angular.$http.put = function(url, data, opt_config) {};
+
+/**
+ * @type {angular.$http.Config}
+ */
+angular.$http.defaults;
+
+/**
+ * @type {Array.<angular.$http.Config>}
+ * @const
+ */
+angular.$http.pendingRequests;
+
+/**
+ * @typedef {{
+ *   request: (undefined|(function(!angular.$http.Config):
+ *       !angular.$http.Config|!angular.$q.Promise.<!angular.$http.Config>)),
+ *   requestError: (undefined|(function(Object): !angular.$q.Promise|Object)),
+ *   response: (undefined|(function(!angular.$http.Response):
+ *       !angular.$http.Response|!angular.$q.Promise.<!angular.$http.Response>)),
+ *   responseError: (undefined|(function(Object): !angular.$q.Promise|Object))
+ *   }}
+ */
+angular.$http.Interceptor;
+
+/**
+ * @typedef {{
+ *   defaults: !angular.$http.Config,
+ *   interceptors: !Array.<string|function(...*): !angular.$http.Interceptor>,
+ *   useApplyAsync: function(boolean=):(boolean|!angular.$HttpProvider)
+ * }}
+ */
+angular.$HttpProvider;
+
+/**
+ * @type {angular.$http.Config}
+ */
+angular.$HttpProvider.defaults;
+
+/**
+ * @type {!Array.<string|function(...*): !angular.$http.Interceptor>}
+ */
+angular.$HttpProvider.interceptors;
+
+/**
+ * @param {boolean=} opt_value
+ * @return {boolean|!angular.$HttpProvider}
+ */
+angular.$HttpProvider.useApplyAsync = function(opt_value) {};
+
+/******************************************************************************
+ * $injector Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   annotate: function((Function|Array.<string|Function>)):Array.<string>,
+ *   get: function(string):(?),
+ *   has: function(string):boolean,
+ *   instantiate: function(Function, Object=):Object,
+ *   invoke: function(
+ *       (!Function|Array.<string|!Function>), Object=, Object=):(?)
+ *   }}
+ */
+angular.$injector;
+
+/**
+ * @param {(!Function|Array.<string|!Function>)} fn
+ * @return {Array.<string>}
+ */
+angular.$injector.annotate = function(fn) {};
+
+/**
+ * @param {string} name
+ * @return {?}
+ */
+angular.$injector.get = function(name) {};
+
+/**
+ * @param {string} name
+ * @return {boolean}
+ */
+angular.$injector.has = function(name) {};
+
+/**
+ * @param {!Function} type
+ * @param {Object=} opt_locals
+ * @return {Object}
+ */
+angular.$injector.instantiate = function(type, opt_locals) {};
+
+/**
+ * @param {(!Function|Array.<string|!Function>)} fn
+ * @param {Object=} opt_self
+ * @param {Object=} opt_locals
+ * @return {?}
+ */
+angular.$injector.invoke = function(fn, opt_self, opt_locals) {};
+
+/******************************************************************************
+ * $interpolateProvider Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   startSymbol: function(string),
+ *   endSymbol: function(string)
+ *   }}
+ */
+angular.$interpolateProvider;
+
+/** @type {function(string)} */
+angular.$interpolateProvider.startSymbol;
+
+/** @type {function(string)} */
+angular.$interpolateProvider.endSymbol;
+
+/******************************************************************************
+ * $interval Service
+ *****************************************************************************/
+
+/**
+ * @typedef {
+ *  function(function(), number=, number=, boolean=):!angular.$q.Promise
+ * }
+ */
+angular.$interval;
+
+/**
+ * Augment the angular.$interval type definition by reopening the type via an
+ * artificial angular.$interval instance.
+ *
+ * This allows us to define methods on function objects which is something
+ * that can't be expressed via typical type annotations.
+ *
+ * @type {angular.$interval}
+ */
+angular.$interval_;
+
+/**
+ * @type {function(!angular.$q.Promise):boolean}
+ */
+angular.$interval_.cancel = function(promise) {};
+
+/******************************************************************************
+ * $location Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   absUrl: function():string,
+ *   hash: function(string=):string,
+ *   host: function():string,
+ *   path: function(string=):(string|!angular.$location),
+ *   port: function():number,
+ *   protocol: function():string,
+ *   replace: function(),
+ *   search: function((string|Object.<string, string>)=,
+ *       ?(string|Array.<string>|boolean)=): (!Object|angular.$location),
+ *   url: function(string=):string
+ *   }}
+ */
+angular.$location;
+
+/**
+ * @return {string}
+ */
+angular.$location.absUrl = function() {};
+
+/**
+ * @param {string=} opt_hash
+ * @return {string}
+ */
+angular.$location.hash = function(opt_hash) {};
+
+/**
+ * @return {string}
+ */
+angular.$location.host = function() {};
+
+/**
+ * @param {string=} opt_path
+ * @return {string|!angular.$location}
+ */
+angular.$location.path = function(opt_path) {};
+
+/**
+ * @return {number}
+ */
+angular.$location.port = function() {};
+
+/**
+ * @return {string}
+ */
+angular.$location.protocol = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.$location.replace = function() {};
+
+/**
+ * @param {(string|Object.<string, string>)=} opt_search
+ * @param {?(string|Array.<string>|boolean)=} opt_paramValue
+ * @return {(!Object|angular.$location)}
+ */
+angular.$location.search = function(opt_search, opt_paramValue) {};
+
+/**
+ * @param {string=} opt_url
+ * @return {string}
+ */
+angular.$location.url = function(opt_url) {};
+
+/******************************************************************************
+ * $locationProvider Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   enabled: (boolean|undefined),
+ *   requireBase: (boolean|undefined)
+ * }}
+ */
+angular.$locationProvider.html5ModeConfig;
+
+/**
+ * @typedef {{
+ *   hashPrefix:
+ *       function(string=): (string|!angular.$locationProvider),
+ *   html5Mode:
+ *       function(
+ *           (boolean|angular.$locationProvider.html5ModeConfig)=):
+ *               (boolean|!angular.$locationProvider)
+ *   }}
+ */
+angular.$locationProvider;
+
+/**
+ * @param {string=} opt_prefix
+ * @return {string|!angular.$locationProvider}
+ */
+angular.$locationProvider.hashPrefix = function(opt_prefix) {};
+
+/**
+ * @param {(boolean|angular.$locationProvider.html5ModeConfig)=} opt_mode
+ * @return {boolean|!angular.$locationProvider}
+ */
+angular.$locationProvider.html5Mode = function(opt_mode) {};
+
+/******************************************************************************
+ * $log Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   error: function(...*),
+ *   info: function(...*),
+ *   log: function(...*),
+ *   warn: function(...*)
+ *   }}
+ */
+angular.$log;
+
+/**
+ * @param {...*} var_args
+ */
+angular.$log.error = function(var_args) {};
+
+/**
+ * @param {...*} var_args
+ */
+angular.$log.info = function(var_args) {};
+
+/**
+ * @param {...*} var_args
+ */
+angular.$log.log = function(var_args) {};
+
+/**
+ * @param {...*} var_args
+ */
+angular.$log.warn = function(var_args) {};
+
+/******************************************************************************
+ * NgModelController
+ *****************************************************************************/
+
+/**
+ * @constructor
+ */
+angular.NgModelController = function() {};
+
+/**
+ * @type {?}
+ */
+angular.NgModelController.prototype.$modelValue;
+
+/**
+ * @type {boolean}
+ */
+angular.NgModelController.prototype.$dirty;
+
+/**
+ * @type {!Object.<boolean>}
+ */
+angular.NgModelController.prototype.$error;
+
+/**
+ * @type {!Array.<function(?):*>}
+ */
+angular.NgModelController.prototype.$formatters;
+
+/**
+ * @type {boolean}
+ */
+angular.NgModelController.prototype.$invalid;
+
+/**
+ * @type {!Array.<function(?):*>}
+ */
+angular.NgModelController.prototype.$parsers;
+
+/**
+ * @type {boolean}
+ */
+angular.NgModelController.prototype.$pristine;
+
+angular.NgModelController.prototype.$render = function() {};
+
+/**
+ * @param {string} key
+ * @param {boolean} isValid
+ */
+angular.NgModelController.prototype.$setValidity = function(key, isValid) {};
+
+/**
+ * @param {?} value
+ */
+angular.NgModelController.prototype.$setViewValue = function(value) {};
+
+/**
+ * @type {boolean}
+ */
+angular.NgModelController.prototype.$valid;
+
+/**
+ * @type {!Array.<function()>}
+ */
+angular.NgModelController.prototype.$viewChangeListeners;
+
+/**
+ * @type {?}
+ */
+angular.NgModelController.prototype.$viewValue;
+
+/**
+ * @type {!Object.<string, function(?, ?):*>}
+ */
+angular.NgModelController.prototype.$validators;
+
+/**
+ * @type {Object.<string, function(?, ?):*>}
+ */
+angular.NgModelController.prototype.$asyncValidators;
+
+/**
+ * @type {boolean}
+ */
+angular.NgModelController.prototype.$untouched;
+
+/**
+ * @type {boolean}
+ */
+angular.NgModelController.prototype.$touched;
+
+/**
+ * @param {?} value
+ */
+angular.NgModelController.prototype.$isEmpty = function(value) {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$setPristine = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$setDirty = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$setUntouched = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$setTouched = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$rollbackViewValue = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$validate = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$commitViewValue = function() {};
+
+/******************************************************************************
+ * FormController
+ *****************************************************************************/
+
+/**
+ * @constructor
+ */
+angular.FormController = function() {};
+
+/**
+ * @param {*} control
+ */
+angular.FormController.prototype.$addControl = function(control) {};
+
+/**
+ * @type {function()}
+ */
+angular.FormController.prototype.$rollbackViewValue = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.FormController.prototype.$commitViewValue = function() {};
+
+/**
+ * @type {boolean}
+ */
+angular.FormController.prototype.$dirty;
+
+/**
+ * @type {!Object.<boolean|!Array.<*>>}
+ */
+angular.FormController.prototype.$error;
+
+/**
+ * @type {boolean}
+ */
+angular.FormController.prototype.$invalid;
+
+/**
+ * @type {string}
+ */
+angular.FormController.prototype.$name;
+
+/**
+ * @type {boolean}
+ */
+angular.FormController.prototype.$pristine;
+
+/**
+ * @param {*} control
+ */
+angular.FormController.prototype.$removeControl = function(control) {};
+
+/**
+ * @type {function()}
+ */
+angular.FormController.prototype.$setDirty = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.FormController.prototype.$setPristine = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.FormController.prototype.$setUntouched = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.FormController.prototype.$setSubmitted = function() {};
+
+/**
+ * @type {boolean}
+ */
+angular.FormController.prototype.$submitted;
+
+/**
+ * @param {string} validationToken
+ * @param {boolean} isValid
+ * @param {*} control
+ */
+angular.FormController.prototype.$setValidity = function(
+    validationToken, isValid, control) {};
+
+/**
+ * @type {boolean}
+ */
+angular.FormController.prototype.$valid;
+
+/******************************************************************************
+ * $parse Service
+ *****************************************************************************/
+
+/**
+ * @typedef {function(string):!angular.$parse.Expression}
+ */
+angular.$parse;
+
+/**
+ * @typedef {function((!angular.Scope|!Object), Object=):*}
+ */
+angular.$parse.Expression;
+
+/**
+ * Augment the angular.$parse.Expression type definition by reopening the type
+ * via an artificial angular.$parse instance.
+ *
+ * This allows us to define methods on function objects which is something
+ * that can't be expressed via typical type annotations.
+ *
+ * @type {angular.$parse.Expression}
+ */
+angular.$parse_;
+
+/**
+ * @type {function((!angular.Scope|!Object), *)}
+ */
+angular.$parse_.assign = function(scope, newValue) {};
+
+/******************************************************************************
+ * $provide Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   constant: function(string, *): Object,
+ *   decorator: function(string, (!Function|Array.<string|!Function>)),
+ *   factory: function(string, (!Function|Array.<string|!Function>)): Object,
+ *   provider: function(string, (!Function|Array.<string|!Function>)): Object,
+ *   service: function(string, (!Function|Array.<string|!Function>)): Object,
+ *   value: function(string, *): Object
+ *   }}
+ */
+angular.$provide;
+
+/**
+ * @param {string} name
+ * @param {*} object
+ * @return {Object}
+ */
+angular.$provide.constant = function(name, object) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} decorator
+ */
+angular.$provide.decorator = function(name, decorator) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} providerFunction
+ * @return {Object}
+ */
+angular.$provide.factory = function(name, providerFunction) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} providerType
+ * @return {Object}
+ */
+angular.$provide.provider = function(name, providerType) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} constructor
+ * @return {Object}
+ */
+angular.$provide.service = function(name, constructor) {};
+
+/**
+ * @param {string} name
+ * @param {*} object
+ * @return {Object}
+ */
+angular.$provide.value = function(name, object) {};
+
+/******************************************************************************
+ * $route Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   reload: function(),
+ *   current: !angular.$route.Route,
+ *   routes: Array.<!angular.$route.Route>
+ * }}
+ */
+angular.$route;
+
+/** @type {function()} */
+angular.$route.reload = function() {};
+
+/**
+ * @param {!Object<string,string>} object
+ */
+angular.$route.updateParams = function(object) {};
+
+/** @type {!angular.$route.Route} */
+angular.$route.current;
+
+/** @type {Array.<!angular.$route.Route>} */
+angular.$route.routes;
+
+/**
+ * @typedef {{
+ *   $route: angular.$routeProvider.Params,
+ *   locals: Object.<string, *>,
+ *   params: Object.<string, string>,
+ *   pathParams: Object.<string, string>,
+ *   scope: Object.<string, *>,
+ *   originalPath: (string|undefined),
+ *   regexp: (RegExp|undefined)
+ * }}
+ */
+angular.$route.Route;
+
+/** @type {angular.$routeProvider.Params} */
+angular.$route.Route.$route;
+
+/** @type {Object.<string, *>} */
+angular.$route.Route.locals;
+
+/** @type {Object.<string, string>} */
+angular.$route.Route.params;
+
+/** @type {Object.<string, string>} */
+angular.$route.Route.pathParams;
+
+/** @type {Object.<string, *>} */
+angular.$route.Route.scope;
+
+/** @type {string|undefined} */
+angular.$route.Route.originalPath;
+
+/** @type {RegExp|undefined} */
+angular.$route.Route.regexp;
+
+/******************************************************************************
+ * $routeParams Service
+ *****************************************************************************/
+
+// TODO: This should be !Object.<string|boolean> because valueless query params
+// (without even an equal sign) come through as boolean "true".
+
+/** @typedef {!Object.<string>} */
+angular.$routeParams;
+
+/******************************************************************************
+ * $routeProvider Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   otherwise:
+ *       function(
+ *           (string|!angular.$routeProvider.Params)): !angular.$routeProvider,
+ *   when:
+ *       function(
+ *           string, angular.$routeProvider.Params): !angular.$routeProvider
+ *   }}
+ */
+angular.$routeProvider;
+
+/**
+ * @param {(string|!angular.$routeProvider.Params)} params
+ * @return {!angular.$routeProvider}
+ */
+angular.$routeProvider.otherwise = function(params) {};
+
+/**
+ * @param {string} path
+ * @param {angular.$routeProvider.Params} route
+ * @return {!angular.$routeProvider}
+ */
+angular.$routeProvider.when = function(path, route) {};
+
+/**
+ * @typedef {{
+ *   controller: (Function|Array.<string|Function>|string|undefined),
+ *   controllerAs: (string|undefined),
+ *   template: (string|undefined),
+ *   templateUrl: (string|function(!Object.<string,string>=)|undefined),
+ *   resolve: (Object.<string, (
+ *       string|Function|Array.<string|Function>|!angular.$q.Promise
+ *       )>|undefined),
+ *   redirectTo: (
+ *       string|function(Object.<string>, string, Object): string|undefined),
+ *   reloadOnSearch: (boolean|undefined)
+ *   }}
+ */
+angular.$routeProvider.Params;
+
+/** @type {Function|Array.<string|Function>|string} */
+angular.$routeProvider.Params.controller;
+
+/** @type {string} */
+angular.$routeProvider.Params.controllerAs;
+
+/** @type {string} */
+angular.$routeProvider.Params.template;
+
+/** @type {string|function(!Object.<string,string>=)} */
+angular.$routeProvider.Params.templateUrl;
+
+/**
+ * @type {
+ *   Object.<string, (
+ *       string|Function|Array.<string|Function>|!angular.$q.Promise
+ *       )>}
+ */
+angular.$routeProvider.Params.resolve;
+
+/** @type {string|function(Object.<string>, string, Object): string} */
+angular.$routeProvider.Params.redirectTo;
+
+/** @type {boolean} */
+angular.$routeProvider.Params.reloadOnSearch;
+
+/******************************************************************************
+ * $sanitize Service
+ *****************************************************************************/
+
+/** @typedef {function(string):string} */
+angular.$sanitize;
+
+/******************************************************************************
+ * $sce Service
+ *****************************************************************************/
+
+/**
+ * Ref: http://docs.angularjs.org/api/ng.$sce
+ *
+ * @typedef {{
+ *   HTML: string,
+ *   CSS: string,
+ *   URL: string,
+ *   JS: string,
+ *   RESOURCE_URL: string,
+ *   isEnabled: function(): boolean,
+ *   parseAs: function(string, string): !angular.$parse.Expression,
+ *   getTrusted: function(string, *): string,
+ *   trustAs: function(string, string): *,
+ *   parseAsHtml: function(string): !angular.$parse.Expression,
+ *   parseAsCss: function(string): !angular.$parse.Expression,
+ *   parseAsUrl: function(string): !angular.$parse.Expression,
+ *   parseAsJs: function(string): !angular.$parse.Expression,
+ *   parseAsResourceUrl: function(string): !angular.$parse.Expression,
+ *   getTrustedHtml: function(*): string,
+ *   getTrustedCss: function(*): string,
+ *   getTrustedUrl: function(*): string,
+ *   getTrustedJs: function(*): string,
+ *   getTrustedResourceUrl: function(*): string,
+ *   trustAsHtml: function(string): *,
+ *   trustAsCss: function(string): *,
+ *   trustAsUrl: function(string): *,
+ *   trustAsJs: function(string): *,
+ *   trustAsResourceUrl: function(string): *
+ *   }}
+ *****************************************************************************/
+angular.$sce;
+
+
+/** @const {string} */
+angular.$sce.HTML;
+
+/** @const {string} */
+angular.$sce.CSS;
+
+/** @const {string} */
+angular.$sce.URL;
+
+/** @const {string} */
+angular.$sce.JS;
+
+/** @const {string} */
+angular.$sce.RESOURCE_URL;
+
+/** @return {boolean} */
+angular.$sce.isEnabled = function() {};
+
+/**
+ * @param {string} type
+ * @param {string} expression
+ * @return {!angular.$parse.Expression}
+ */
+angular.$sce.parseAs = function(type, expression) {};
+
+/**
+ * @param {string} type
+ * @param {*} maybeTrusted
+ * @return {string}
+ */
+angular.$sce.getTrusted = function(type, maybeTrusted) {};
+
+/**
+ * @param {string} type
+ * @param {string} trustedValue
+ * @return {*}
+ */
+angular.$sce.trustAs = function(type, trustedValue) {};
+
+/**
+ * @param {string} expression
+ * @return {!angular.$parse.Expression}
+ */
+angular.$sce.parseAsHtml = function(expression) {};
+
+/**
+ * @param {string} expression
+ * @return {!angular.$parse.Expression}
+ */
+angular.$sce.parseAsCss = function(expression) {};
+
+/**
+ * @param {string} expression
+ * @return {!angular.$parse.Expression}
+ */
+angular.$sce.parseAsUrl = function(expression) {};
+
+/**
+ * @param {string} expression
+ * @return {!angular.$parse.Expression}
+ */
+angular.$sce.parseAsJs = function(expression) {};
+
+/**
+ * @param {string} expression
+ * @return {!angular.$parse.Expression}
+ */
+angular.$sce.parseAsResourceUrl = function(expression) {};
+
+/**
+ * @param {*} maybeTrusted
+ * @return {string}
+ */
+angular.$sce.getTrustedHtml = function(maybeTrusted) {};
+
+/**
+ * @param {*} maybeTrusted
+ * @return {string}
+ */
+angular.$sce.getTrustedCss = function(maybeTrusted) {};
+
+/**
+ * @param {*} maybeTrusted
+ * @return {string}
+ */
+angular.$sce.getTrustedUrl = function(maybeTrusted) {};
+
+/**
+ * @param {*} maybeTrusted
+ * @return {string}
+ */
+angular.$sce.getTrustedJs = function(maybeTrusted) {};
+
+/**
+ * @param {*} maybeTrusted
+ * @return {string}
+ */
+angular.$sce.getTrustedResourceUrl = function(maybeTrusted) {};
+
+/**
+ * @param {string} trustedValue
+ * @return {*}
+ */
+angular.$sce.trustAsHtml = function(trustedValue) {};
+
+/**
+ * @param {string} trustedValue
+ * @return {*}
+ */
+angular.$sce.trustAsCss = function(trustedValue) {};
+
+/**
+ * @param {string} trustedValue
+ * @return {*}
+ */
+angular.$sce.trustAsUrl = function(trustedValue) {};
+
+/**
+ * @param {string} trustedValue
+ * @return {*}
+ */
+angular.$sce.trustAsJs = function(trustedValue) {};
+
+/**
+ * @param {string} trustedValue
+ * @return {*}
+ */
+angular.$sce.trustAsResourceUrl = function(trustedValue) {};
+
+/******************************************************************************
+ * $sceDelegate Service
+ *****************************************************************************/
+
+/**
+ * Ref: http://docs.angularjs.org/api/ng/service/$sceDelegate
+ *
+ * @constructor
+ */
+angular.$sceDelegate = function() {};
+
+/**
+ * @param {string} type
+ * @param {*} value
+ * @return {*}
+ */
+angular.$sceDelegate.prototype.trustAs = function(type, value) {};
+
+/**
+ * Note: because this method overrides Object.prototype.valueOf, the value
+ * parameter needs to be annotated as optional to keep the compiler happy (as
+ * otherwise the signature won't match Object.prototype.valueOf).
+ *
+ * @override
+ * @param {*=} value
+ * @return {*}
+ */
+angular.$sceDelegate.prototype.valueOf = function(value) {};
+
+/**
+ * @param {string} type
+ * @param {*} maybeTrusted
+ * @return {*}
+ */
+angular.$sceDelegate.prototype.getTrusted = function(type, maybeTrusted) {};
+
+/******************************************************************************
+ * $sceDelegateProvider Service
+ *****************************************************************************/
+
+/**
+ * Ref: http://docs.angularjs.org/api/ng/provider/$sceDelegateProvider
+ *
+ * @constructor
+ */
+angular.$sceDelegateProvider = function() {};
+
+/**
+ * @param {Array.<string>=} opt_whitelist
+ * @return {!Array.<string>}
+ */
+angular.$sceDelegateProvider.prototype.resourceUrlWhitelist = function(
+    opt_whitelist) {};
+
+/**
+ * @param {Array.<string>=} opt_blacklist
+ * @return {!Array.<string>}
+ */
+angular.$sceDelegateProvider.prototype.resourceUrlBlacklist = function(
+    opt_blacklist) {};
+
+/******************************************************************************
+ * $templateCache Service
+ *****************************************************************************/
+
+/**
+ * @typedef {!angular.$cacheFactory.Cache.<string>}
+ */
+angular.$templateCache;
+
+/******************************************************************************
+ * $timeout Service
+ *****************************************************************************/
+
+/**
+ * @typedef {function(function(), number=, boolean=):!angular.$q.Promise}
+ */
+angular.$timeout;
+
+/**
+ * Augment the angular.$timeout type definition by reopening the type via an
+ * artificial angular.$timeout instance.
+ *
+ * This allows us to define methods on function objects which is something
+ * that can't be expressed via typical type annotations.
+ *
+ * @type {angular.$timeout}
+ */
+angular.$timeout_;
+
+/**
+ * @type {function(angular.$q.Promise=):boolean}
+ */
+angular.$timeout_.cancel = function(promise) {};
+
+/******************************************************************************
+ * $window Service
+ *****************************************************************************/
+
+/** @typedef {!Window} */
+angular.$window;
diff --git a/src/closure/conf/externs/bingmaps.js b/src/closure/conf/externs/bingmaps.js
new file mode 100755
index 0000000000000000000000000000000000000000..99da4d0224839e7e26651f37279d08f2927e73e9
--- /dev/null
+++ b/src/closure/conf/externs/bingmaps.js
@@ -0,0 +1,176 @@
+/**
+ * @externs
+ */
+
+
+
+/**
+ * @constructor
+ */
+var BingMapsCoverageArea = function() {};
+
+
+/**
+ * @type {Array.<number>}
+ */
+BingMapsCoverageArea.prototype.bbox;
+
+
+/**
+ * @type {number}
+ */
+BingMapsCoverageArea.prototype.zoomMax;
+
+
+/**
+ * @type {number}
+ */
+BingMapsCoverageArea.prototype.zoomMin;
+
+
+
+/**
+ * @constructor
+ */
+var BingMapsImageryProvider = function() {};
+
+
+/**
+ * @type {string}
+ */
+BingMapsImageryProvider.prototype.attribution;
+
+
+/**
+ * @type {Array.<BingMapsCoverageArea>}
+ */
+BingMapsImageryProvider.prototype.coverageAreas;
+
+
+
+/**
+ * @constructor
+ */
+var BingMapsImageryMetadataResponse = function() {};
+
+
+/**
+ * @type {string}
+ */
+BingMapsImageryMetadataResponse.prototype.authenticationResultCode;
+
+
+/**
+ * @type {string}
+ */
+BingMapsImageryMetadataResponse.prototype.brandLogoUri;
+
+
+/**
+ * @type {string}
+ */
+BingMapsImageryMetadataResponse.prototype.copyright;
+
+
+/**
+ * @type {Array.<BingMapsResourceSet>}
+ */
+BingMapsImageryMetadataResponse.prototype.resourceSets;
+
+
+/**
+ * @type {number}
+ */
+BingMapsImageryMetadataResponse.prototype.statusCode;
+
+
+/**
+ * @type {string}
+ */
+BingMapsImageryMetadataResponse.prototype.statusDescription;
+
+
+/**
+ * @type {string}
+ */
+BingMapsImageryMetadataResponse.prototype.traceId;
+
+
+
+/**
+ * @constructor
+ */
+var BingMapsResource = function() {};
+
+
+/**
+ * @type {number}
+ */
+BingMapsResource.prototype.imageHeight;
+
+
+/**
+ * @type {string}
+ */
+BingMapsResource.prototype.imageUrl;
+
+
+/**
+ * @type {Array.<string>}
+ */
+BingMapsResource.prototype.imageUrlSubdomains;
+
+
+/**
+ * @type {number}
+ */
+BingMapsResource.prototype.imageWidth;
+
+
+/**
+ * @type {Array.<BingMapsImageryProvider>}
+ */
+BingMapsResource.prototype.imageryProviders;
+
+
+/**
+ * @type {Object}
+ */
+BingMapsResource.prototype.vintageEnd;
+
+
+/**
+ * @type {Object}
+ */
+BingMapsResource.prototype.vintageStart;
+
+
+/**
+ * @type {number}
+ */
+BingMapsResource.prototype.zoomMax;
+
+
+/**
+ * @type {number}
+ */
+BingMapsResource.prototype.zoomMin;
+
+
+
+/**
+ * @constructor
+ */
+var BingMapsResourceSet = function() {};
+
+
+/**
+ * @type {number}
+ */
+BingMapsResourceSet.prototype.estimatedTotal;
+
+
+/**
+ * @type {Array.<BingMapsResource>}
+ */
+BingMapsResourceSet.prototype.resources;
\ No newline at end of file
diff --git a/src/closure/conf/externs/bootstrap.js b/src/closure/conf/externs/bootstrap.js
new file mode 100755
index 0000000000000000000000000000000000000000..fb49fcfded06a098b966e90649ddb20dbd69d2b5
--- /dev/null
+++ b/src/closure/conf/externs/bootstrap.js
@@ -0,0 +1,242 @@
+/**
+ * @fileoverview Externs for Twitter Bootstrap
+ * @see http://twitter.github.com/bootstrap/
+ * 
+ * @author Qamal Kosim-Satyaputra
+ * @externs
+ */
+
+
+
+// --- Modal ---
+
+
+
+/** @constructor */
+jQuery.modal.options = function() {};
+
+/** @type {boolean} */
+jQuery.modal.options.prototype.backdrop;
+
+/** @type {boolean} */
+jQuery.modal.options.prototype.keyboard;
+
+/** @type {boolean} */
+jQuery.modal.options.prototype.show;
+
+/**
+ * @param {=(string|jQuery.modal.options)} opt_eventOrOptions
+ * @return {jQuery}
+ */
+jQuery.prototype.modal = function(opt_eventOrOptions) {};
+
+
+
+// --- Dropdown ---
+
+
+
+/**
+ * @return {jQuery}
+ */
+jQuery.prototype.dropdown = function() {};
+
+
+
+// --- Scroll Spy ---
+
+
+
+/** @constructor */
+jQuery.scrollspy.options = function() {};
+
+/** @type {number} */
+jQuery.scrollspy.options.prototype.offset;
+
+/**
+ * @param {=jQuery.scrollspy.options} opt_options
+ * @return {jQuery}
+ */
+jQuery.prototype.scrollspy = function(opt_options) {};
+
+
+
+// --- Tabs ---
+
+
+
+/**
+ * @param {=string} opt_event
+ * @return {jQuery}
+ */
+jQuery.prototype.tab = function(opt_event) {};
+
+
+
+// --- Tooltips ---
+
+
+
+/** @constructor */
+jQuery.tooltip.options = function() {};
+
+/** @type {boolean} */
+jQuery.tooltip.prototype.animation;
+
+/** @type {string|function} */
+jQuery.tooltip.prototype.placement;
+
+/** @type {string} */
+jQuery.tooltip.prototype.selector;
+
+/** @type {string|function} */
+jQuery.tooltip.prototype.title;
+
+/** @type {string} */
+jQuery.tooltip.prototype.trigger;
+
+/** @type {number|{show: number, hide: number}} */
+jQuery.tooltip.prototype.delay;
+
+/**
+ * @param {=(string|jQuery.tooltip.options)} opt_eventOrOptions
+ * @return {jQuery}
+ */
+jQuery.prototype.tooltip = function(opt_eventOrOptions) {};
+
+
+
+// --- Popovers ---
+
+
+
+/** @constructor */
+jQuery.popover.options = function() {};
+
+/** @type {boolean} */
+jQuery.popover.prototype.animation;
+
+/** @type {string|function} */
+jQuery.popover.prototype.placement;
+
+/** @type {string} */
+jQuery.popover.prototype.selector;
+
+/** @type {string} */
+jQuery.popover.prototype.trigger;
+
+/** @type {string|function} */
+jQuery.popover.prototype.title;
+
+/** @type {string|function} */
+jQuery.popover.prototype.content;
+
+/** @type {number|{show: number, hide: number}} */
+jQuery.popover.prototype.delay;
+
+/**
+ * @param {=(string|jQuery.tooltip.options)} opt_eventOrOptions
+ * @return {jQuery}
+ */
+jQuery.prototype.popover = function(opt_eventOrOptions) {};
+
+
+
+// --- Alerts ---
+
+
+
+/**
+ * @param {=string} opt_event
+ * @return {jQuery}
+ */
+jQuery.prototype.alert = function(opt_event) {};
+
+
+
+// --- Buttons ---
+
+
+
+/**
+ * @param {=string} opt_state
+ * @return {jQuery}
+ */
+jQuery.prototype.button = function(opt_state) {};
+
+
+
+// --- Collapse ---
+
+
+
+/** @constructor */
+jQuery.collapse.options = function() {};
+
+/** @type {jQuerySelector} */
+jQuery.collapse.options.prototype.parent;
+
+/** @type {boolean} */
+jQuery.collapse.options.prototype.toggle;
+
+/**
+ * @param {=(string|jQuery.collapse.options)} opt_eventOrOptions
+ */
+jQuery.prototype.collapse = function(opt_eventOrOptions) {};
+
+
+
+// --- Carousel ---
+
+
+
+/** @constructor */
+jQuery.carousel.options = function() {};
+
+/** @type {number} */
+jQuery.carousel.options.prototype.interval;
+
+/** @type {string} */
+jQuery.carousel.options.prototype.pause;
+
+/**
+ * @param {=(string|jQuery.carousel.options})} opt_eventOrOptions
+ */
+jQuery.prototype.carousel = function(opt_eventOrOptions) {};
+
+
+
+// --- Typeahead ---
+
+
+
+/** @constructor */
+jQuery.typeahead.options = function() {};
+
+/** @type {Array} */
+jQuery.typeahead.options.prototype.source;
+
+/** @type {number} */
+jQuery.typeahead.options.prototype.items;
+
+/** @type {function} */
+jQuery.typeahead.options.prototype.matcher;
+
+/** @type {function} */
+jQuery.typeahead.options.prototype.sorter;
+
+/** @type {function} */
+jQuery.typeahead.options.prototype.highlighter;
+
+/**
+ * @param {=(string|jQuery.typeahead.options)} opt_options
+ * @return {jQuery}
+ */
+jQuery.prototype.typeahead = function(opt_options) {};
+
+/**
+ * @param {Element|jQuery|jQuerySelector}
+ * @param {=jQuery.typeahead.options} opt_options
+ * @return {jQuery}
+ */
+jQuery.prototype.typeahead.Constructor = function(element, opt_options) {};
\ No newline at end of file
diff --git a/src/closure/conf/externs/geojson.js b/src/closure/conf/externs/geojson.js
new file mode 100755
index 0000000000000000000000000000000000000000..6ddf03a3cc7ba7623d5442e065046ce92f482adc
--- /dev/null
+++ b/src/closure/conf/externs/geojson.js
@@ -0,0 +1,171 @@
+/**
+ * @fileoverview Externs for GeoJSON.
+ * @see http://geojson.org/geojson-spec.html
+ * @externs
+ */
+
+
+
+/**
+ * @constructor
+ */
+var GeoJSONObject = function() {};
+
+
+/**
+ * @type {!Array.<number>|undefined}
+ */
+GeoJSONObject.prototype.bbox;
+
+
+/**
+ * @type {string}
+ */
+GeoJSONObject.prototype.type;
+
+
+/**
+ * @type {!GeoJSONCRS|undefined}
+ */
+GeoJSONObject.prototype.crs;
+
+
+
+/**
+ * @constructor
+ */
+var GeoJSONCRS = function() {};
+
+
+/**
+ * CRS type. One of `link` or `name`.
+ * @type {string}
+ */
+GeoJSONCRS.prototype.type;
+
+
+/**
+ * TODO: remove GeoJSONCRSCode when http://jira.codehaus.org/browse/GEOS-5996
+ * is fixed and widely deployed.
+ * @type {!GeoJSONCRSCode|!GeoJSONCRSName|!GeoJSONLink}
+ */
+GeoJSONCRS.prototype.properties;
+
+
+
+/**
+ * `GeoJSONCRSCode` is not part of the GeoJSON specification, but is generated
+ * by GeoServer.
+ * TODO: remove GeoJSONCRSCode when http://jira.codehaus.org/browse/GEOS-5996
+ * is fixed and widely deployed.
+ * @constructor
+ */
+var GeoJSONCRSCode = function() {};
+
+
+
+/**
+ * @constructor
+ */
+var GeoJSONCRSName = function() {};
+
+
+/**
+ * TODO: remove this when http://jira.codehaus.org/browse/GEOS-5996 is fixed
+ * and widely deployed.
+ * @type {string}
+ */
+GeoJSONCRSName.prototype.code;
+
+
+/**
+ * @type {string}
+ */
+GeoJSONCRSName.prototype.name;
+
+
+
+/**
+ * @constructor
+ * @extends {GeoJSONObject}
+ */
+var GeoJSONGeometry = function() {};
+
+
+/**
+ * @type {!Array.<number>|!Array.<!Array.<number>>|
+ *        !Array.<!Array.<!Array.<number>>>}
+ */
+GeoJSONGeometry.prototype.coordinates;
+
+
+
+/**
+ * @constructor
+ * @extends {GeoJSONObject}
+ */
+var GeoJSONGeometryCollection = function() {};
+
+
+/**
+ * @type {!Array.<GeoJSONGeometry>}
+ */
+GeoJSONGeometryCollection.prototype.geometries;
+
+
+
+/**
+ * @constructor
+ * @extends {GeoJSONObject}
+ */
+var GeoJSONFeature = function() {};
+
+
+/**
+ * @type {GeoJSONGeometry|GeoJSONGeometryCollection}
+ */
+GeoJSONFeature.prototype.geometry;
+
+
+/**
+ * @type {number|string|undefined}
+ */
+GeoJSONFeature.prototype.id;
+
+
+/**
+ * @type {Object.<string, *>}
+ */
+GeoJSONFeature.prototype.properties;
+
+
+
+/**
+ * @constructor
+ * @extends {GeoJSONObject}
+ */
+var GeoJSONFeatureCollection = function() {};
+
+
+/**
+ * @type {!Array.<GeoJSONFeature>}
+ */
+GeoJSONFeatureCollection.prototype.features;
+
+
+
+/**
+ * @constructor
+ */
+var GeoJSONLink = function() {};
+
+
+/**
+ * @type {string}
+ */
+GeoJSONLink.prototype.href;
+
+/**
+ * @type {string}
+ */
+GeoJSONLink.prototype.type;
\ No newline at end of file
diff --git a/src/closure/conf/externs/html2canvas.js b/src/closure/conf/externs/html2canvas.js
new file mode 100755
index 0000000000000000000000000000000000000000..d12202e32f6fd2db7b14312b65d06e30b9e94c78
--- /dev/null
+++ b/src/closure/conf/externs/html2canvas.js
@@ -0,0 +1,8 @@
+/**
+ * 
+ * @param {type} arg1
+ * @param {type} arg2
+ * @returns {html2canvas}
+ */
+function html2canvas (arg1, arg2) {};
+
diff --git a/src/closure/conf/externs/jquery-1.9.js b/src/closure/conf/externs/jquery-1.9.js
new file mode 100755
index 0000000000000000000000000000000000000000..72b80b31763c2810407a6faf2644d318d8c34a5b
--- /dev/null
+++ b/src/closure/conf/externs/jquery-1.9.js
@@ -0,0 +1,2166 @@
+/*
+ * Copyright 2011 The Closure Compiler Authors.
+ *
+ * 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.
+ */
+
+/**
+ * @fileoverview Externs for jQuery 1.9.1
+ *
+ * Note that some functions use different return types depending on the number
+ * of parameters passed in. In these cases, you may need to annotate the type
+ * of the result in your code, so the JSCompiler understands which type you're
+ * expecting. For example:
+ *    <code>var elt = /** @type {Element} * / (foo.get(0));</code>
+ *
+ * @see http://api.jquery.com/
+ * @externs
+ */
+
+/**
+ * @typedef {(Window|Document|Element|Array.<Element>|string|jQuery|
+ *     NodeList)}
+ */
+var jQuerySelector;
+
+/** @typedef {function(...)|Array.<function(...)>} */
+var jQueryCallback;
+
+/** @typedef {
+              {
+               accepts: (Object.<string, string>|undefined),
+               async: (?boolean|undefined),
+               beforeSend: (function(jQuery.jqXHR, (jQueryAjaxSettings|Object.<string, *>))|undefined),
+               cache: (?boolean|undefined),
+               complete: (function(jQuery.jqXHR, string)|undefined),
+               contents: (Object.<string, RegExp>|undefined),
+               contentType: (?string|undefined),
+               context: (Object.<?, ?>|jQueryAjaxSettings|undefined),
+               converters: (Object.<string, Function>|undefined),
+               crossDomain: (?boolean|undefined),
+               data: (Object.<?, ?>|?string|Array.<?>|undefined),
+               dataFilter: (function(string, string):?|undefined),
+               dataType: (?string|undefined),
+               error: (function(jQuery.jqXHR, string, string)|undefined),
+               global: (?boolean|undefined),
+               headers: (Object.<?, ?>|undefined),
+               ifModified: (?boolean|undefined),
+               isLocal: (?boolean|undefined),
+               jsonp: (?string|undefined),
+               jsonpCallback: (?string|function()|undefined),
+               mimeType: (?string|undefined),
+               password: (?string|undefined),
+               processData: (?boolean|undefined),
+               scriptCharset: (?string|undefined),
+               statusCode: (Object.<number, function()>|undefined),
+               success: (function(?, string, jQuery.jqXHR)|undefined),
+               timeout: (?number|undefined),
+               traditional: (?boolean|undefined),
+               type: (?string|undefined),
+               url: (?string|undefined),
+               username: (?string|undefined),
+               xhr: (function():(ActiveXObject|XMLHttpRequest)|undefined),
+               xhrFields: (Object.<?, ?>|undefined)
+              }} */
+var jQueryAjaxSettings;
+
+/**
+ * @constructor
+ * @param {(jQuerySelector|Element|Object|Array.<Element>|jQuery|string|
+ *     function())=} arg1
+ * @param {(Element|jQuery|Document|
+ *     Object.<string, (string|function(!jQuery.event=))>)=} arg2
+ * @return {!jQuery}
+ */
+function jQuery(arg1, arg2) {}
+
+/**
+ * @constructor
+ * @extends {jQuery}
+ * @param {(jQuerySelector|Element|Object|Array.<Element>|jQuery|string|
+ *     function())=} arg1
+ * @param {(Element|jQuery|Document|
+ *     Object.<string, (string|function(!jQuery.event=))>)=} arg2
+ * @return {!jQuery}
+ */
+function $(arg1, arg2) {}
+
+/**
+ * @param {(jQuerySelector|Array.<Element>|string|jQuery)} arg1
+ * @param {Element=} context
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.add = function(arg1, context) {};
+
+/**
+ * @param {(jQuerySelector|Array.<Element>|string|jQuery)=} arg1
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.addBack = function(arg1) {};
+
+/**
+ * @param {(string|function(number,String))} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.addClass = function(arg1) {};
+
+/**
+ * @param {(string|Element|jQuery|function(number))} arg1
+ * @param {(string|Element|Array.<Element>|jQuery)=} content
+ * @return {!jQuery}
+ */
+jQuery.prototype.after = function(arg1, content) {};
+
+/**
+ * @param {(string|jQueryAjaxSettings|Object.<string,*>)} arg1
+ * @param {(jQueryAjaxSettings|Object.<string, *>)=} settings
+ * @return {jQuery.jqXHR}
+ */
+jQuery.ajax = function(arg1, settings) {};
+
+/**
+ * @param {(string|jQueryAjaxSettings|Object.<string, *>)} arg1
+ * @param {(jQueryAjaxSettings|Object.<string, *>)=} settings
+ * @return {jQuery.jqXHR}
+ */
+$.ajax = function(arg1, settings) {};
+
+/**
+ * @param {function(!jQuery.event,XMLHttpRequest,(jQueryAjaxSettings|Object.<string, *>))} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ajaxComplete = function(handler) {};
+
+/**
+ * @param {function(!jQuery.event,jQuery.jqXHR,(jQueryAjaxSettings|Object.<string, *>),*)} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ajaxError = function(handler) {};
+
+/**
+ * @param {(string|function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR))} dataTypes
+ * @param {function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR)=} handler
+ */
+jQuery.ajaxPrefilter = function(dataTypes, handler) {};
+
+/**
+ * @param {(string|function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR))} dataTypes
+ * @param {function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR)=} handler
+ */
+$.ajaxPrefilter = function(dataTypes, handler) {};
+
+/**
+ * @param {function(!jQuery.event,jQuery.jqXHR,(jQueryAjaxSettings|Object.<string, *>))} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ajaxSend = function(handler) {};
+
+/** @const {jQueryAjaxSettings|Object.<string, *>} */
+jQuery.ajaxSettings;
+
+/** @const {jQueryAjaxSettings|Object.<string, *>} */
+$.ajaxSettings = {};
+
+/** @type {Object.<string, boolean>} */
+jQuery.ajaxSettings.flatOptions = {};
+
+/** @type {Object.<string, boolean>} */
+$.ajaxSettings.flatOptions = {};
+
+/** @type {boolean} */
+jQuery.ajaxSettings.processData;
+
+/** @type {boolean} */
+$.ajaxSettings.processData;
+
+/** @type {Object.<string, string>} */
+jQuery.ajaxSettings.responseFields = {};
+
+/** @type {Object.<string, string>} */
+$.ajaxSettings.responseFields = {};
+
+/** @param {jQueryAjaxSettings|Object.<string, *>} options */
+jQuery.ajaxSetup = function(options) {};
+
+/** @param {jQueryAjaxSettings|Object.<string, *>} options */
+$.ajaxSetup = function(options) {};
+
+/**
+ * @param {function()} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ajaxStart = function(handler) {};
+
+/**
+ * @param {function()} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ajaxStop = function(handler) {};
+
+/**
+ * @param {function(!jQuery.event,XMLHttpRequest,(jQueryAjaxSettings|Object.<string, *>), ?)} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ajaxSuccess = function(handler) {};
+
+/**
+ * @deprecated Please use .addBack(selector) instead.
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.andSelf = function() {};
+
+/**
+ * @param {Object.<string,*>} properties
+ * @param {(string|number|function()|Object.<string,*>)=} arg2
+ * @param {(string|function())=} easing
+ * @param {function()=} complete
+ * @return {!jQuery}
+ */
+jQuery.prototype.animate = function(properties, arg2, easing, complete) {};
+
+/**
+ * @param {(string|Element|Array.<Element>|jQuery|function(number,string))} arg1
+ * @param {...(string|Element|Array.<Element>|jQuery)} content
+ * @return {!jQuery}
+ */
+jQuery.prototype.append = function(arg1, content) {};
+
+/**
+ * @param {(jQuerySelector|Element|jQuery)} target
+ * @return {!jQuery}
+ */
+jQuery.prototype.appendTo = function(target) {};
+
+/**
+ * @param {(string|Object.<string,*>)} arg1
+ * @param {(string|number|boolean|function(number,string))=} arg2
+ * @return {(string|!jQuery)}
+ */
+jQuery.prototype.attr = function(arg1, arg2) {};
+
+/**
+ * @param {(string|Element|jQuery|function())} arg1
+ * @param {(string|Element|Array.<Element>|jQuery)=} content
+ * @return {!jQuery}
+ */
+jQuery.prototype.before = function(arg1, content) {};
+
+/**
+ * @param {(string|Object.<string, function(!jQuery.event=)>)} arg1
+ * @param {(Object.<string, *>|function(!jQuery.event=)|boolean)=} eventData
+ * @param {(function(!jQuery.event=)|boolean)=} arg3
+ * @return {!jQuery}
+ */
+jQuery.prototype.bind = function(arg1, eventData, arg3) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.blur = function(arg1, handler) {};
+
+/**
+ * @constructor
+ * @private
+ */
+jQuery.callbacks = function () {};
+
+/**
+ * @param {string=} flags
+ * @return {jQuery.callbacks}
+ */
+jQuery.Callbacks = function (flags) {};
+
+/** @param {function()} callbacks */
+jQuery.callbacks.prototype.add = function(callbacks) {};
+
+/** @return {undefined} */
+jQuery.callbacks.prototype.disable = function() {};
+
+/** @return {undefined} */
+jQuery.callbacks.prototype.empty = function() {};
+
+/** @param {...*} var_args */
+jQuery.callbacks.prototype.fire = function(var_args) {};
+
+/** @return {boolean} */
+jQuery.callbacks.prototype.fired = function() {};
+
+/** @param {...*} var_args */
+jQuery.callbacks.prototype.fireWith = function(var_args) {};
+
+/**
+ * @param {function()} callback
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.callbacks.prototype.has = function(callback) {};
+
+/** @return {undefined} */
+jQuery.callbacks.prototype.lock = function() {};
+
+/** @return {boolean} */
+jQuery.callbacks.prototype.locked = function() {};
+
+/** @param {function()} callbacks */
+jQuery.callbacks.prototype.remove = function(callbacks) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.change = function(arg1, handler) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.children = function(selector) {};
+
+/**
+ * @param {string=} queueName
+ * @return {!jQuery}
+ */
+jQuery.prototype.clearQueue = function(queueName) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.click = function(arg1, handler) {};
+
+/**
+ * @param {boolean=} withDataAndEvents
+ * @param {boolean=} deepWithDataAndEvents
+ * @return {!jQuery}
+ * @suppress {checkTypes} see https://code.google.com/p/closure-compiler/issues/detail?id=583
+ */
+jQuery.prototype.clone = function(withDataAndEvents, deepWithDataAndEvents) {};
+
+/**
+ * @param {(jQuerySelector|jQuery|Element|string)} arg1
+ * @param {Element=} context
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.closest = function(arg1, context) {};
+
+/**
+ * @param {Element} container
+ * @param {Element} contained
+ * @return {boolean}
+ */
+jQuery.contains = function(container, contained) {};
+
+/**
+ * @param {Element} container
+ * @param {Element} contained
+ * @return {boolean}
+ */
+$.contains = function(container, contained) {};
+
+/**
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.contents = function() {};
+
+/** @type {Element|Document} */
+jQuery.prototype.context;
+
+/**
+ * @param {(string|Object.<string,*>)} arg1
+ * @param {(string|number|function(number,*))=} arg2
+ * @return {(string|!jQuery)}
+ */
+jQuery.prototype.css = function(arg1, arg2) {};
+
+/** @type {Object.<string, *>} */
+jQuery.cssHooks;
+
+/** @type {Object.<string, *>} */
+$.cssHooks;
+
+/**
+ * @param {Element} elem
+ * @param {string=} key
+ * @param {*=} value
+ * @return {*}
+ */
+jQuery.data = function(elem, key, value) {};
+
+/**
+ * @param {(string|Object.<string, *>)=} arg1
+ * @param {*=} value
+ * @return {*}
+ */
+jQuery.prototype.data = function(arg1, value) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} key
+ * @param {*=} value
+ * @return {*}
+ */
+$.data = function(elem, key, value) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.dblclick = function(arg1, handler) {};
+
+/**
+ * @constructor
+ * @implements {jQuery.Promise}
+ * @param {function()=} opt_fn
+ * @see http://api.jquery.com/category/deferred-object/
+ */
+jQuery.deferred = function(opt_fn) {};
+
+/**
+ * @constructor
+ * @extends {jQuery.deferred}
+ * @param {function()=} opt_fn
+ * @return {jQuery.Deferred}
+ */
+jQuery.Deferred = function(opt_fn) {};
+
+/**
+ * @constructor
+ * @extends {jQuery.deferred}
+ * @param {function()=} opt_fn
+ * @see http://api.jquery.com/category/deferred-object/
+ */
+$.deferred = function(opt_fn) {};
+
+/**
+ * @constructor
+ * @extends {jQuery.deferred}
+ * @param {function()=} opt_fn
+ * @return {jQuery.deferred}
+ */
+$.Deferred = function(opt_fn) {};
+
+/**
+ * @override
+ * @param {jQueryCallback} alwaysCallbacks
+ * @param {jQueryCallback=} alwaysCallbacks2
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.always
+    = function(alwaysCallbacks, alwaysCallbacks2) {};
+
+/**
+ * @override
+ * @param {jQueryCallback} doneCallbacks
+ * @param {jQueryCallback=} doneCallbacks2
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.done = function(doneCallbacks, doneCallbacks2) {};
+
+/**
+ * @override
+ * @param {jQueryCallback} failCallbacks
+ * @param {jQueryCallback=} failCallbacks2
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.fail = function(failCallbacks, failCallbacks2) {};
+
+/**
+ * @param {...*} var_args
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.notify = function(var_args) {};
+
+/**
+ * @param {Object} context
+ * @param {...*} var_args
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.notifyWith = function(context, var_args) {};
+
+/**
+ * @deprecated Please use deferred.then() instead.
+ * @override
+ * @param {function()=} doneFilter
+ * @param {function()=} failFilter
+ * @param {function()=} progressFilter
+ * @return {jQuery.Promise}
+ */
+jQuery.deferred.prototype.pipe =
+    function(doneFilter, failFilter, progressFilter) {};
+
+/**
+ * @param {jQueryCallback} progressCallbacks
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.progress = function(progressCallbacks) {};
+
+/**
+ * @param {Object=} target
+ * @return {jQuery.Promise}
+ */
+jQuery.deferred.prototype.promise = function(target) {};
+
+/**
+ * @param {...*} var_args
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.reject = function(var_args) {};
+
+/**
+ * @param {Object} context
+ * @param {Array.<*>=} args
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.rejectWith = function(context, args) {};
+
+/**
+ * @param {...*} var_args
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.resolve = function(var_args) {};
+
+/**
+ * @param {Object} context
+ * @param {Array.<*>=} args
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.resolveWith = function(context, args) {};
+
+/** @return {string} */
+jQuery.deferred.prototype.state = function() {};
+
+/**
+ * @override
+ * @param {jQueryCallback} doneCallbacks
+ * @param {jQueryCallback=} failCallbacks
+ * @param {jQueryCallback=} progressCallbacks
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.then
+    = function(doneCallbacks, failCallbacks, progressCallbacks) {};
+
+/**
+ * @param {number} duration
+ * @param {string=} queueName
+ * @return {!jQuery}
+ */
+jQuery.prototype.delay = function(duration, queueName) {};
+
+/**
+ * @param {string} selector
+ * @param {(string|Object.<string,*>)} arg2
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg3
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.delegate = function(selector, arg2, arg3, handler) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} queueName
+ */
+jQuery.dequeue = function(elem, queueName) {};
+
+/**
+ * @param {string=} queueName
+ * @return {!jQuery}
+ */
+jQuery.prototype.dequeue = function(queueName) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} queueName
+ */
+$.dequeue = function(elem, queueName) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ */
+jQuery.prototype.detach = function(selector) {};
+
+/**
+ * @param {Object} collection
+ * @param {function((number|string),?)} callback
+ * @return {Object}
+ */
+jQuery.each = function(collection, callback) {};
+
+/**
+ * @param {function(number,Element)} fnc
+ * @return {!jQuery}
+ */
+jQuery.prototype.each = function(fnc) {};
+
+/**
+ * @param {Object} collection
+ * @param {function((number|string),?)} callback
+ * @return {Object}
+ */
+$.each = function(collection, callback) {};
+
+/** @return {!jQuery} */
+jQuery.prototype.empty = function() {};
+
+/**
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.end = function() {};
+
+/**
+ * @param {number} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.eq = function(arg1) {};
+
+/** @param {string} message */
+jQuery.error = function(message) {};
+
+/**
+ * @deprecated Please use .on( "error", handler ) instead.
+ * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.error = function(arg1, handler) {};
+
+/** @param {string} message */
+$.error = function(message) {};
+
+/**
+ * @constructor
+ * @param {string} eventType
+ */
+jQuery.event = function(eventType) {};
+
+/**
+ * @constructor
+ * @extends {jQuery.event}
+ * @param {string} eventType
+ * @param {Object=} properties
+ * @return {jQuery.Event}
+ */
+jQuery.Event = function(eventType, properties) {};
+
+/**
+ * @constructor
+ * @extends {jQuery.event}
+ * @param {string} eventType
+ */
+$.event = function(eventType) {};
+
+/**
+ * @constructor
+ * @extends {jQuery.event}
+ * @param {string} eventType
+ * @param {Object=} properties
+ * @return {$.Event}
+ */
+$.Event = function(eventType, properties) {};
+
+/** @type {Element} */
+jQuery.event.prototype.currentTarget;
+
+/** @type {Object.<string, *>} */
+jQuery.event.prototype.data;
+
+/** @type {Element} */
+jQuery.event.prototype.delegateTarget;
+
+/**
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.event.prototype.isDefaultPrevented = function() {};
+
+/**
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.event.prototype.isImmediatePropagationStopped = function() {};
+
+/**
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.event.prototype.isPropagationStopped = function() {};
+
+/** @type {string} */
+jQuery.event.prototype.namespace;
+
+/** @type {Event} */
+jQuery.event.prototype.originalEvent;
+
+/** @type {number} */
+jQuery.event.prototype.pageX;
+
+/** @type {number} */
+jQuery.event.prototype.pageY;
+
+/** @return {undefined} */
+jQuery.event.prototype.preventDefault = function() {};
+
+/** @type {Object.<string, *>} */
+jQuery.event.prototype.props;
+
+/** @type {Element} */
+jQuery.event.prototype.relatedTarget;
+
+/** @type {*} */
+jQuery.event.prototype.result;
+
+/** @return {undefined} */
+jQuery.event.prototype.stopImmediatePropagation = function() {};
+
+/** @return {undefined} */
+jQuery.event.prototype.stopPropagation = function() {};
+
+/** @type {Element} */
+jQuery.event.prototype.target;
+
+/** @type {number} */
+jQuery.event.prototype.timeStamp;
+
+/** @type {string} */
+jQuery.event.prototype.type;
+
+/** @type {number} */
+jQuery.event.prototype.which;
+
+/**
+ * @param {(Object|boolean)} arg1
+ * @param {...*} var_args
+ * @return {Object}
+ */
+jQuery.extend = function(arg1, var_args) {};
+
+/**
+ * @param {(Object|boolean)} arg1
+ * @param {...*} var_args
+ * @return {Object}
+ */
+jQuery.prototype.extend = function(arg1, var_args) {};
+
+/**
+ * @param {(Object|boolean)} arg1
+ * @param {...*} var_args
+ * @return {Object}
+ */
+$.extend = function(arg1, var_args) {};
+
+/**
+ * @param {(string|number|function())=} duration
+ * @param {(function()|string)=} arg2
+ * @param {function()=} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.fadeIn = function(duration, arg2, callback) {};
+
+/**
+ * @param {(string|number|function())=} duration
+ * @param {(function()|string)=} arg2
+ * @param {function()=} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.fadeOut = function(duration, arg2, callback) {};
+
+/**
+ * @param {(string|number)} duration
+ * @param {number} opacity
+ * @param {(function()|string)=} arg3
+ * @param {function()=} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.fadeTo = function(duration, opacity, arg3, callback) {};
+
+/**
+ * @param {(string|number|function())=} duration
+ * @param {(string|function())=} easing
+ * @param {function()=} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.fadeToggle = function(duration, easing, callback) {};
+
+/**
+ * @param {(jQuerySelector|function(number,Element)|Element|jQuery)} arg1
+ * @return {!jQuery}
+ * @see http://api.jquery.com/filter/
+ */
+jQuery.prototype.filter = function(arg1) {};
+
+/**
+ * @param {(jQuerySelector|jQuery|Element)} arg1
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.find = function(arg1) {};
+
+/** @return {!jQuery} */
+jQuery.prototype.first = function() {};
+
+/** @see http://docs.jquery.com/Plugins/Authoring */
+jQuery.fn = jQuery.prototype;
+
+/** @see http://docs.jquery.com/Plugins/Authoring */
+$.fn = $.prototype;
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.focus = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.focusin = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.focusout = function(arg1, handler) {};
+
+/** @const */
+jQuery.fx = {};
+
+/** @const */
+$.fx = {};
+
+/** @type {number} */
+jQuery.fx.interval;
+
+/** @type {number} */
+$.fx.interval;
+
+/** @type {boolean} */
+jQuery.fx.off;
+
+/** @type {boolean} */
+$.fx.off;
+
+/**
+ * @param {string} url
+ * @param {(Object.<string,*>|string|
+ *     function(string,string,jQuery.jqXHR))=} data
+ * @param {(function(string,string,jQuery.jqXHR)|string)=} success
+ * @param {string=} dataType
+ * @return {jQuery.jqXHR}
+ */
+jQuery.get = function(url, data, success, dataType) {};
+
+/**
+ * @param {number=} index
+ * @return {(Element|Array.<Element>)}
+ * @nosideeffects
+ */
+jQuery.prototype.get = function(index) {};
+
+/**
+ * @param {string} url
+ * @param {(Object.<string,*>|string|
+ *     function(string,string,jQuery.jqXHR))=} data
+ * @param {(function(string,string,jQuery.jqXHR)|string)=} success
+ * @param {string=} dataType
+ * @return {jQuery.jqXHR}
+ */
+$.get = function(url, data, success, dataType) {};
+
+/**
+ * @param {string} url
+ * @param {(Object.<string,*>|
+ *     function(Object.<string,*>,string,jQuery.jqXHR))=} data
+ * @param {function(Object.<string,*>,string,jQuery.jqXHR)=} success
+ * @return {jQuery.jqXHR}
+ * @see http://api.jquery.com/jquery.getjson/#jQuery-getJSON-url-data-success
+ */
+jQuery.getJSON = function(url, data, success) {};
+
+/**
+ * @param {string} url
+ * @param {(Object.<string,*>|
+ *     function(Object.<string,*>,string,jQuery.jqXHR))=} data
+ * @param {function(Object.<string,*>,string,jQuery.jqXHR)=} success
+ * @return {jQuery.jqXHR}
+ * @see http://api.jquery.com/jquery.getjson/#jQuery-getJSON-url-data-success
+ */
+$.getJSON = function(url, data, success) {};
+
+/**
+ * @param {string} url
+ * @param {function(Node,string,jQuery.jqXHR)=} success
+ * @return {jQuery.jqXHR}
+ */
+jQuery.getScript = function(url, success) {};
+
+/**
+ * @param {string} url
+ * @param {function(Node,string,jQuery.jqXHR)=} success
+ * @return {jQuery.jqXHR}
+ */
+$.getScript = function(url, success) {};
+
+/** @param {string} code */
+jQuery.globalEval = function(code) {};
+
+/** @param {string} code */
+$.globalEval = function(code) {};
+
+/**
+ * @param {Array.<*>} arr
+ * @param {function(*,number)} fnc
+ * @param {boolean=} invert
+ * @return {Array.<*>}
+ */
+jQuery.grep = function(arr, fnc, invert) {};
+
+/**
+ * @param {Array.<*>} arr
+ * @param {function(*,number)} fnc
+ * @param {boolean=} invert
+ * @return {Array.<*>}
+ */
+$.grep = function(arr, fnc, invert) {};
+
+/**
+ * @param {(string|Element)} arg1
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.has = function(arg1) {};
+
+/**
+ * @param {string} className
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.prototype.hasClass = function(className) {};
+
+/**
+ * @param {Element} elem
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.hasData = function(elem) {};
+
+/**
+ * @param {Element} elem
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.hasData = function(elem) {};
+
+/**
+ * @param {(string|number|function(number,number))=} arg1
+ * @return {(number|!jQuery)}
+ */
+jQuery.prototype.height = function(arg1) {};
+
+/**
+ * @param {(string|number|function())=} duration
+ * @param {(function()|string)=} arg2
+ * @param {function()=} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.hide = function(duration, arg2, callback) {};
+
+/** @param {boolean} hold */
+jQuery.holdReady = function(hold) {};
+
+/** @param {boolean} hold */
+$.holdReady = function(hold) {};
+
+/**
+ * @param {function(!jQuery.event=)} arg1
+ * @param {function(!jQuery.event=)=} handlerOut
+ * @return {!jQuery}
+ */
+jQuery.prototype.hover = function(arg1, handlerOut) {};
+
+/**
+ * @param {(string|function(number,string))=} arg1
+ * @return {(string|!jQuery)}
+ */
+jQuery.prototype.html = function(arg1) {};
+
+/**
+ * @param {*} value
+ * @param {Array.<*>} arr
+ * @param {number=} fromIndex
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.inArray = function(value, arr, fromIndex) {};
+
+/**
+ * @param {*} value
+ * @param {Array.<*>} arr
+ * @param {number=} fromIndex
+ * @return {number}
+ * @nosideeffects
+ */
+$.inArray = function(value, arr, fromIndex) {};
+
+/**
+ * @param {(jQuerySelector|Element|jQuery)=} arg1
+ * @return {number}
+ */
+jQuery.prototype.index = function(arg1) {};
+
+/**
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.prototype.innerHeight = function() {};
+
+/**
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.prototype.innerWidth = function() {};
+
+/**
+ * @param {(jQuerySelector|Element|jQuery)} target
+ * @return {!jQuery}
+ */
+jQuery.prototype.insertAfter = function(target) {};
+
+/**
+ * @param {(jQuerySelector|Element|jQuery)} target
+ * @return {!jQuery}
+ */
+jQuery.prototype.insertBefore = function(target) {};
+
+/**
+ * @param {(jQuerySelector|function(number)|jQuery|Element)} arg1
+ * @return {boolean}
+ */
+jQuery.prototype.is = function(arg1) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isArray = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isArray = function(obj) {};
+
+/**
+ * @param {Object} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isEmptyObject = function(obj) {};
+
+/**
+ * @param {Object} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isEmptyObject = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isFunction = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isFunction = function(obj) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isNumeric = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isNumeric = function(value) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isPlainObject = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isPlainObject = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isWindow = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isWindow = function(obj) {};
+
+/**
+ * @param {Element} node
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isXMLDoc = function(node) {};
+
+/**
+ * @param {Element} node
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isXMLDoc = function(node) {};
+
+/** @type {string} */
+jQuery.prototype.jquery;
+
+/**
+ * @constructor
+ * @extends {XMLHttpRequest}
+ * @implements {jQuery.Promise}
+ * @private
+ * @see http://api.jquery.com/jQuery.ajax/#jqXHR
+ */
+jQuery.jqXHR = function () {};
+
+/**
+ * @override
+ * @param {jQueryCallback} alwaysCallbacks
+ * @param {jQueryCallback=} alwaysCallbacks2
+ * @return {jQuery.jqXHR}
+ */
+jQuery.jqXHR.prototype.always =
+    function(alwaysCallbacks, alwaysCallbacks2) {};
+
+/**
+ * @deprecated
+ * @param {function()} callback
+ * @return {jQuery.jqXHR}
+*/
+jQuery.jqXHR.prototype.complete = function (callback) {};
+
+/**
+ * @override
+ * @param {jQueryCallback} doneCallbacks
+ * @return {jQuery.jqXHR}
+ */
+jQuery.jqXHR.prototype.done = function(doneCallbacks) {};
+
+/**
+ * @deprecated
+ * @param {function()} callback
+ * @return {jQuery.jqXHR}
+*/
+jQuery.jqXHR.prototype.error = function (callback) {};
+
+/**
+ * @override
+ * @param {jQueryCallback} failCallbacks
+ * @return {jQuery.jqXHR}
+ */
+jQuery.jqXHR.prototype.fail = function(failCallbacks) {};
+
+/**
+ * @deprecated
+ * @override
+ */
+jQuery.jqXHR.prototype.onreadystatechange = function (callback) {};
+
+/**
+ * @override
+ * @param {function()=} doneFilter
+ * @param {function()=} failFilter
+ * @param {function()=} progressFilter
+ * @return {jQuery.jqXHR}
+ */
+jQuery.jqXHR.prototype.pipe =
+    function(doneFilter, failFilter, progressFilter) {};
+
+/**
+ * @deprecated
+ * @param {function()} callback
+ * @return {jQuery.jqXHR}
+*/
+jQuery.jqXHR.prototype.success = function (callback) {};
+
+/**
+ * @override
+ * @param {jQueryCallback} doneCallbacks
+ * @param {jQueryCallback=} failCallbacks
+ * @param {jQueryCallback=} progressCallbacks
+ * @return {jQuery.jqXHR}
+ */
+jQuery.jqXHR.prototype.then =
+    function(doneCallbacks, failCallbacks, progressCallbacks) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.keydown = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.keypress = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.keyup = function(arg1, handler) {};
+
+/** @return {!jQuery} */
+jQuery.prototype.last = function() {};
+
+/** @type {number} */
+jQuery.prototype.length;
+
+/**
+ * @deprecated Please avoid the document loading Event invocation of
+ *     .load() and use .on( "load", handler ) instead. (The AJAX
+ *     module invocation signature is OK.)
+ * @param {(function(!jQuery.event=)|Object.<string, *>|string)} arg1
+ * @param {(function(!jQuery.event=)|Object.<string,*>|string)=} arg2
+ * @param {function(string,string,XMLHttpRequest)=} complete
+ * @return {!jQuery}
+ */
+jQuery.prototype.load = function(arg1, arg2, complete) {};
+
+/**
+ * @param {*} obj
+ * @return {Array.<*>}
+ */
+jQuery.makeArray = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {Array.<*>}
+ */
+$.makeArray = function(obj) {};
+
+/**
+ * @param {(Array.<*>|Object.<string, *>)} arg1
+ * @param {(function(*,number)|function(*,(string|number)))} callback
+ * @return {Array.<*>}
+ */
+jQuery.map = function(arg1, callback) {};
+
+/**
+ * @param {function(number,Element)} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.map = function(callback) {};
+
+/**
+ * @param {(Array.<*>|Object.<string, *>)} arg1
+ * @param {(function(*,number)|function(*,(string|number)))} callback
+ * @return {Array.<*>}
+ */
+$.map = function(arg1, callback) {};
+
+/**
+ * @param {Array.<*>} first
+ * @param {Array.<*>} second
+ * @return {Array.<*>}
+ */
+jQuery.merge = function(first, second) {};
+
+/**
+ * @param {Array.<*>} first
+ * @param {Array.<*>} second
+ * @return {Array.<*>}
+ */
+$.merge = function(first, second) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mousedown = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mouseenter = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mouseleave = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mousemove = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mouseout = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mouseover = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mouseup = function(arg1, handler) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.next = function(selector) {};
+
+/**
+ * @param {string=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.nextAll = function(selector) {};
+
+/**
+ * @param {(jQuerySelector|Element)=} arg1
+ * @param {jQuerySelector=} filter
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.nextUntil = function(arg1, filter) {};
+
+/**
+ * @param {boolean=} removeAll
+ * @return {Object}
+ */
+jQuery.noConflict = function(removeAll) {};
+
+/**
+ * @param {boolean=} removeAll
+ * @return {Object}
+ */
+$.noConflict = function(removeAll) {};
+
+/**
+ * @return {function()}
+ * @nosideeffects
+ */
+jQuery.noop = function() {};
+
+/**
+ * @return {function()}
+ * @nosideeffects
+ */
+$.noop = function() {};
+
+/**
+ * @param {(jQuerySelector|Array.<Element>|function(number)|jQuery)} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.not = function(arg1) {};
+
+/**
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.now = function() {};
+
+/**
+ * @return {number}
+ * @nosideeffects
+ */
+$.now = function() {};
+
+/**
+ * @param {(string|Object.<string,*>)=} arg1
+ * @param {(string|function(!jQuery.event=))=} selector
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.off = function(arg1, selector, handler) {};
+
+/**
+ * @param {({left:number,top:number}|
+ *     function(number,{top:number,left:number}))=} arg1
+ * @return {({left:number,top:number}|!jQuery)}
+ */
+jQuery.prototype.offset = function(arg1) {};
+
+/**
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.offsetParent = function() {};
+
+/**
+ * @param {(string|Object.<string,*>)} arg1
+ * @param {*=} selector
+ * @param {*=} data
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.on = function(arg1, selector, data, handler) {};
+
+/**
+ * @param {(string|Object.<string,*>)} arg1
+ * @param {*=} arg2
+ * @param {*=} arg3
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.one = function(arg1, arg2, arg3, handler) {};
+
+/**
+ * @param {boolean=} includeMargin
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.prototype.outerHeight = function(includeMargin) {};
+
+/**
+ * @param {boolean=} includeMargin
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.prototype.outerWidth = function(includeMargin) {};
+
+/**
+ * @param {(Object.<string, *>|Array.<Object.<string, *>>)} obj
+ * @param {boolean=} traditional
+ * @return {string}
+ */
+jQuery.param = function(obj, traditional) {};
+
+/**
+ * @param {(Object.<string, *>|Array.<Object.<string, *>>)} obj
+ * @param {boolean=} traditional
+ * @return {string}
+ */
+$.param = function(obj, traditional) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.parent = function(selector) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.parents = function(selector) {};
+
+/**
+ * @param {(jQuerySelector|Element)=} arg1
+ * @param {jQuerySelector=} filter
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.parentsUntil = function(arg1, filter) {};
+
+/**
+ * @param {string} data
+ * @param {(Element|boolean)=} context
+ * @param {boolean=} keepScripts
+ * @return {Array.<Element>}
+ */
+jQuery.parseHTML = function(data, context, keepScripts) {};
+
+/**
+ * @param {string} data
+ * @param {(Element|boolean)=} context
+ * @param {boolean=} keepScripts
+ * @return {Array.<Element>}
+ */
+$.parseHTML = function(data, context, keepScripts) {};
+
+/**
+ * @param {string} json
+ * @return {string|number|Object.<string, *>|Array.<?>|boolean}
+ */
+jQuery.parseJSON = function(json) {};
+
+/**
+ * @param {string} json
+ * @return {Object.<string, *>}
+ */
+$.parseJSON = function(json) {};
+
+/**
+ * @param {string} data
+ * @return {Document}
+ */
+jQuery.parseXML = function(data) {};
+
+/**
+ * @param {string} data
+ * @return {Document}
+ */
+$.parseXML = function(data) {};
+
+/**
+ * @return {{left:number,top:number}}
+ * @nosideeffects
+ */
+jQuery.prototype.position = function() {};
+
+/**
+ * @param {string} url
+ * @param {(Object.<string,*>|string|
+ *     function(string,string,jQuery.jqXHR))=} data
+ * @param {(function(string,string,jQuery.jqXHR)|string|null)=} success
+ * @param {string=} dataType
+ * @return {jQuery.jqXHR}
+ */
+jQuery.post = function(url, data, success, dataType) {};
+
+/**
+ * @param {string} url
+ * @param {(Object.<string,*>|string|
+ *     function(string,string,jQuery.jqXHR))=} data
+ * @param {(function(string,string,jQuery.jqXHR)|string|null)=} success
+ * @param {string=} dataType
+ * @return {jQuery.jqXHR}
+ */
+$.post = function(url, data, success, dataType) {};
+
+/**
+ * @param {(string|Element|jQuery|function(number,string))} arg1
+ * @param {(string|Element|jQuery)=} content
+ * @return {!jQuery}
+ */
+jQuery.prototype.prepend = function(arg1, content) {};
+
+/**
+ * @param {(jQuerySelector|Element|jQuery)} target
+ * @return {!jQuery}
+ */
+jQuery.prototype.prependTo = function(target) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.prev = function(selector) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.prevAll = function(selector) {};
+
+/**
+ * @param {(jQuerySelector|Element)=} arg1
+ * @param {jQuerySelector=} filter
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.prevUntil = function(arg1, filter) {};
+
+/**
+ * @param {(string|Object)=} type
+ * @param {Object=} target
+ * @return {jQuery.Promise}
+ */
+jQuery.prototype.promise = function(type, target) {};
+
+/**
+ * @interface
+ * @private
+ * @see http://api.jquery.com/Types/#Promise
+ */
+jQuery.Promise = function () {};
+
+/**
+ * @param {jQueryCallback} alwaysCallbacks
+ * @param {jQueryCallback=} alwaysCallbacks2
+ * @return {jQuery.Promise}
+ */
+jQuery.Promise.prototype.always =
+    function(alwaysCallbacks, alwaysCallbacks2) {};
+
+/**
+ * @param {jQueryCallback} doneCallbacks
+ * @return {jQuery.Promise}
+ */
+jQuery.Promise.prototype.done = function(doneCallbacks) {};
+
+/**
+ * @param {jQueryCallback} failCallbacks
+ * @return {jQuery.Promise}
+ */
+jQuery.Promise.prototype.fail = function(failCallbacks) {};
+
+/**
+ * @param {function()=} doneFilter
+ * @param {function()=} failFilter
+ * @param {function()=} progressFilter
+ * @return {jQuery.Promise}
+ */
+jQuery.Promise.prototype.pipe =
+    function(doneFilter, failFilter, progressFilter) {};
+
+/**
+ * @param {jQueryCallback} doneCallbacks
+ * @param {jQueryCallback=} failCallbacks
+ * @param {jQueryCallback=} progressCallbacks
+ * @return {jQuery.Promise}
+ */
+jQuery.Promise.prototype.then =
+    function(doneCallbacks, failCallbacks, progressCallbacks) {};
+
+/**
+ * @param {(string|Object.<string,*>)} arg1
+ * @param {(string|number|boolean|function(number,String))=} arg2
+ * @return {(string|boolean|!jQuery)}
+ */
+jQuery.prototype.prop = function(arg1, arg2) {};
+
+/**
+ * @param {...*} var_args
+ * @return {function()}
+ */
+jQuery.proxy = function(var_args) {};
+
+/**
+ * @param {...*} var_args
+ * @return {function()}
+ */
+$.proxy = function(var_args) {};
+
+/**
+ * @param {Array.<Element>} elements
+ * @param {string=} name
+ * @param {Array.<*>=} args
+ * @return {!jQuery}
+ */
+jQuery.prototype.pushStack = function(elements, name, args) {};
+
+/**
+ * @param {(string|Array.<function()>|function(function()))=} queueName
+ * @param {(Array.<function()>|function(function()))=} arg2
+ * @return {(Array.<Element>|!jQuery)}
+ */
+jQuery.prototype.queue = function(queueName, arg2) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} queueName
+ * @param {(Array.<function()>|function())=} arg3
+ * @return {(Array.<Element>|!jQuery)}
+ */
+jQuery.queue = function(elem, queueName, arg3) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} queueName
+ * @param {(Array.<function()>|function())=} arg3
+ * @return {(Array.<Element>|!jQuery)}
+ */
+$.queue = function(elem, queueName, arg3) {};
+
+/**
+ * @param {function()} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ready = function(handler) {};
+
+/**
+ * @param {string=} selector
+ * @return {!jQuery}
+ */
+jQuery.prototype.remove = function(selector) {};
+
+/**
+ * @param {string} attributeName
+ * @return {!jQuery}
+ */
+jQuery.prototype.removeAttr = function(attributeName) {};
+
+/**
+ * @param {(string|function(number,string))=} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.removeClass = function(arg1) {};
+
+/**
+ * @param {(string|Array.<string>)=} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.removeData = function(arg1) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} name
+ * @return {!jQuery}
+ */
+jQuery.removeData = function(elem, name) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} name
+ * @return {!jQuery}
+ */
+$.removeData = function(elem, name) {};
+
+/**
+ * @param {string} propertyName
+ * @return {!jQuery}
+ */
+jQuery.prototype.removeProp = function(propertyName) {};
+
+/**
+ * @param {jQuerySelector} target
+ * @return {!jQuery}
+ */
+jQuery.prototype.replaceAll = function(target) {};
+
+/**
+ * @param {(string|Element|jQuery|function())} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.replaceWith = function(arg1) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.resize = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.scroll = function(arg1, handler) {};
+
+/**
+ * @param {number=} value
+ * @return {(number|!jQuery)}
+ */
+jQuery.prototype.scrollLeft = function(value) {};
+
+/**
+ * @param {number=} value
+ * @return {(number|!jQuery)}
+ */
+jQuery.prototype.scrollTop = function(value) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.select = function(arg1, handler) {};
+
+/**
+ * @return {string}
+ * @nosideeffects
+ */
+jQuery.prototype.serialize = function() {};
+
+/**
+ * @return {Array.<Object.<string, *>>}
+ * @nosideeffects
+ */
+jQuery.prototype.serializeArray = function() {};
+
+/**
+ * @param {(string|number|function())=} duration
+ * @param {(function()|string)=} arg2
+ * @param {function()=} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.show = function(duration, arg2, callback) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.siblings = function(selector) {};
+
+/**
+ * @deprecated Please use the .length property instead.
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.prototype.size = function() {};
+
+/**
+ * @param {number} start
+ * @param {number=} end
+ * @return {!jQuery}
+ */
+jQuery.prototype.slice = function(start, end) {};
+
+/**
+ * @param {(Object.<string,*>|string|number)=} optionsOrDuration
+ * @param {(function()|string)=} completeOrEasing
+ * @param {function()=} complete
+ * @return {!jQuery}
+ */
+jQuery.prototype.slideDown =
+    function(optionsOrDuration, completeOrEasing, complete) {};
+
+/**
+ * @param {(Object.<string,*>|string|number)=} optionsOrDuration
+ * @param {(function()|string)=} completeOrEasing
+ * @param {function()=} complete
+ * @return {!jQuery}
+ */
+jQuery.prototype.slideToggle =
+    function(optionsOrDuration, completeOrEasing, complete) {};
+
+/**
+ * @param {(Object.<string,*>|string|number)=} optionsOrDuration
+ * @param {(function()|string)=} completeOrEasing
+ * @param {function()=} complete
+ * @return {!jQuery}
+ */
+jQuery.prototype.slideUp =
+    function(optionsOrDuration, completeOrEasing, complete) {};
+
+/**
+ * @param {(boolean|string)=} arg1
+ * @param {boolean=} arg2
+ * @param {boolean=} jumpToEnd
+ * @return {!jQuery}
+ */
+jQuery.prototype.stop = function(arg1, arg2, jumpToEnd) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.submit = function(arg1, handler) {};
+
+/** @type {Object.<string, *>}
+ * @deprecated Please try to use feature detection instead.
+ */
+jQuery.support;
+
+/** @type {Object.<string, *>}
+ * @deprecated Please try to use feature detection instead.
+ */
+$.support;
+
+/**
+ * @deprecated Please try to use feature detection instead.
+ * @type {boolean}
+ */
+jQuery.support.boxModel;
+
+/**
+ * @deprecated Please try to use feature detection instead.
+ * @type {boolean}
+ */
+$.support.boxModel;
+
+/** @type {boolean} */
+jQuery.support.changeBubbles;
+
+/** @type {boolean} */
+$.support.changeBubbles;
+
+/** @type {boolean} */
+jQuery.support.cors;
+
+/** @type {boolean} */
+$.support.cors;
+
+/** @type {boolean} */
+jQuery.support.cssFloat;
+
+/** @type {boolean} */
+$.support.cssFloat;
+
+/** @type {boolean} */
+jQuery.support.hrefNormalized;
+
+/** @type {boolean} */
+$.support.hrefNormalized;
+
+/** @type {boolean} */
+jQuery.support.htmlSerialize;
+
+/** @type {boolean} */
+$.support.htmlSerialize;
+
+/** @type {boolean} */
+jQuery.support.leadingWhitespace;
+
+/** @type {boolean} */
+$.support.leadingWhitespace;
+
+/** @type {boolean} */
+jQuery.support.noCloneEvent;
+
+/** @type {boolean} */
+$.support.noCloneEvent;
+
+/** @type {boolean} */
+jQuery.support.opacity;
+
+/** @type {boolean} */
+$.support.opacity;
+
+/** @type {boolean} */
+jQuery.support.style;
+
+/** @type {boolean} */
+$.support.style;
+
+/** @type {boolean} */
+jQuery.support.submitBubbles;
+
+/** @type {boolean} */
+$.support.submitBubbles;
+
+/** @type {boolean} */
+jQuery.support.tbody;
+
+/** @type {boolean} */
+$.support.tbody;
+
+/**
+ * @param {(string|number|boolean|function(number,string))=} arg1
+ * @return {(string|!jQuery)}
+ */
+jQuery.prototype.text = function(arg1) {};
+
+/**
+ * @return {Array.<Element>}
+ * @nosideeffects
+ */
+jQuery.prototype.toArray = function() {};
+
+/**
+ * Refers to the method from the Effects category. There used to be a toggle
+ * method on the Events category which was removed starting version 1.9.
+ * @param {(number|string|Object.<string,*>|boolean)=} arg1
+ * @param {(function()|string)=} arg2
+ * @param {function()=} arg3
+ * @return {!jQuery}
+ */
+jQuery.prototype.toggle = function(arg1, arg2, arg3) {};
+
+/**
+ * @param {(string|boolean|function(number,string,boolean))=} arg1
+ * @param {boolean=} flag
+ * @return {!jQuery}
+ */
+jQuery.prototype.toggleClass = function(arg1, flag) {};
+
+/**
+ * @param {(string|jQuery.event)} arg1
+ * @param {...*} var_args
+ * @return {!jQuery}
+ */
+jQuery.prototype.trigger = function(arg1, var_args) {};
+
+/**
+ * @param {string|jQuery.event} eventType
+ * @param {Array.<*>=} extraParameters
+ * @return {*}
+ */
+jQuery.prototype.triggerHandler = function(eventType, extraParameters) {};
+
+/**
+ * @param {string} str
+ * @return {string}
+ * @nosideeffects
+ */
+jQuery.trim = function(str) {};
+
+/**
+ * @param {string} str
+ * @return {string}
+ * @nosideeffects
+ */
+$.trim = function(str) {};
+
+/**
+ * @param {*} obj
+ * @return {string}
+ * @nosideeffects
+ */
+jQuery.type = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {string}
+ * @nosideeffects
+ */
+$.type = function(obj) {};
+
+/**
+ * @param {(string|function(!jQuery.event=)|jQuery.event)=} arg1
+ * @param {(function(!jQuery.event=)|boolean)=} arg2
+ * @return {!jQuery}
+ */
+jQuery.prototype.unbind = function(arg1, arg2) {};
+
+/**
+ * @param {string=} arg1
+ * @param {(string|Object.<string,*>)=} arg2
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.undelegate = function(arg1, arg2, handler) {};
+
+/**
+ * @param {Array.<Element>} arr
+ * @return {Array.<Element>}
+ */
+jQuery.unique = function(arr) {};
+
+/**
+ * @param {Array.<Element>} arr
+ * @return {Array.<Element>}
+ */
+$.unique = function(arr) {};
+
+/**
+ * @deprecated Please use .on( "unload", handler ) instead.
+ * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.unload = function(arg1, handler) {};
+
+/** @return {!jQuery} */
+jQuery.prototype.unwrap = function() {};
+
+/**
+ * @param {(string|Array.<string>|function(number,*))=} arg1
+ * @return {(string|number|Array.<string>|!jQuery)}
+ */
+jQuery.prototype.val = function(arg1) {};
+
+/**
+ * Note: The official documentation (https://api.jquery.com/jQuery.when/) says
+ * jQuery.when accepts deferreds, but it actually accepts any type, e.g.:
+ *
+ * jQuery.when(jQuery.ready, jQuery.ajax(''), jQuery('#my-element'), 1)
+ *
+ * If an argument is not an "observable" (a promise-like object) it is wrapped
+ * into a promise.
+ * @param {*} deferred
+ * @param {...*} deferreds
+ * @return {jQuery.Promise}
+ */
+jQuery.when = function(deferred, deferreds) {};
+
+/**
+ * Note: See jQuery.when().
+ * @param {*} deferred
+ * @param {...*} deferreds
+ * @return {jQuery.Promise}
+ */
+$.when = function(deferred, deferreds) {};
+
+/**
+ * @param {(string|number|function(number,number))=} arg1
+ * @return {(number|!jQuery)}
+ */
+jQuery.prototype.width = function(arg1) {};
+
+/**
+ * @param {(string|jQuerySelector|Element|jQuery|function(number))} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.wrap = function(arg1) {};
+
+/**
+ * @param {(string|jQuerySelector|Element|jQuery)} wrappingElement
+ * @return {!jQuery}
+ */
+jQuery.prototype.wrapAll = function(wrappingElement) {};
+
+/**
+ * @param {(string|jQuerySelector|Element|jQuery|function(number))} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.wrapInner = function(arg1) {};
+
+/**
+ * @param {(string|number|function(number,number))=} arg1
+ * @return {(number|!jQuery)}
+ */
+jQuery.prototype.tooltip = function(arg1) {};
\ No newline at end of file
diff --git a/src/closure/conf/externs/jspdf.js b/src/closure/conf/externs/jspdf.js
new file mode 100755
index 0000000000000000000000000000000000000000..2b5ba6f00f45b775de5e4d9bd0666149dadbc650
--- /dev/null
+++ b/src/closure/conf/externs/jspdf.js
@@ -0,0 +1,51 @@
+/**
+ * 
+ * @param {type} arg1
+ * @returns {jsPDF}
+ */
+function jsPDF (arg1) {};
+
+/**
+ * 
+ * @param {type} arg1
+ * @param {type} arg2
+ * @param {type} arg3
+ * @param {type} arg4
+ * @returns {undefined}
+ */
+jsPDF.prototype.fromHTML = function (arg1, arg2, arg3, arg4) {};
+
+/**
+ * 
+ * @param {type} arg1
+ * @param {type} arg2
+ * @param {type} arg3
+ * @param {type} arg4
+ * @param {type} arg5
+ * @param {type} arg6
+ * @returns {undefined}
+ */
+jsPDF.prototype.addImage = function (arg1, arg2, arg3, arg4, arg5, arg6) {};
+
+/**
+ * 
+ * @param {type} arg1
+ * @returns {undefined}
+ */
+jsPDF.prototype.save = function (arg1) {};
+
+/**
+ * 
+ * @param {type} arg1
+ * @returns {undefined}
+ */
+jsPDF.prototype.setPage = function (arg1) {};
+
+/**
+ * 
+ * @param {type} arg1
+ * @param {type} arg2
+ * @returns {undefined}
+ */
+jsPDF.prototype.addHTML = function (arg1, arg2) {};
+
diff --git a/src/closure/conf/externs/vmap.js b/src/closure/conf/externs/vmap.js
new file mode 100755
index 0000000000000000000000000000000000000000..b799165a0202a74c3d1fe51fe8ad666558122205
--- /dev/null
+++ b/src/closure/conf/externs/vmap.js
@@ -0,0 +1,75 @@
+/**
+ * @author: Armand Bahi
+ * @Description: Fichier contenant les externs: fonctions à ne pas renommer durant la compilation
+ * @externs
+ */
+
+/**
+ * Function for initialise the bootstrap toggle switch checkbox plugin
+ * @constructor
+ * @param {object} arg1
+ */
+function bootstrapToggle(arg1) {}
+
+/**
+ * Function for initialise the bootstrap colorpicker plugin
+ * @constructor
+ * @param {object} arg1
+ */
+function colorpicker(arg1) {}
+
+/**
+ * Function for initialise the bootstrap table plugin
+ * @constructor
+ * @param {object} arg1
+ */
+function bootstrapTable(arg1) {}
+
+/**
+ * @param {object} arg1
+ * @return {!jQuery}
+ */
+function sortable(arg1) {}
+
+/**
+ * 
+ * @param {string} key
+ * @returns {undefined}
+ */
+ol.Object.prototype.get = function (key) {}
+
+/**
+ * Get the collection of layers associated with this map.
+ * @return {!ol.Collection.<ol.layer.Base>} Layers.
+ * @api stable
+ */
+ol.Map.prototype.getLayers = function () {}
+
+/**
+ * Return the visibility of the layer (`true` or `false`).
+ * @return {boolean} The visibility of the layer.
+ * @observable
+ * @api stable
+ */
+ol.layer.Base.prototype.getVisible = function () {}
+
+/**
+ * Set the visibility of the layer (`true` or `false`).
+ * @param {boolean} visible The visibility of the layer.
+ * @observable
+ * @api stable
+ */
+ol.layer.Base.prototype.setVisible = function (visible) {}
+
+/**
+ * The tile related to the event.
+ * @type {ol.Tile}
+ * @api
+ */
+ol.source.TileEvent.tile
+
+/**
+ * @type {string}
+ * @see http://www.w3.org/TR/pointerevents/#the-touch-action-css-property
+ */
+CSSProperties.prototype.touchAction;
\ No newline at end of file
diff --git a/src/module_extraction/README.md b/src/module_extraction/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2bf5eb5277169ad7162e37165eaf8313088b0882
--- /dev/null
+++ b/src/module_extraction/README.md
@@ -0,0 +1,3 @@
+# module_extraction
+
+Module extraction for Vitis
\ No newline at end of file
diff --git a/src/module_extraction/_install/dependency.xml b/src/module_extraction/_install/dependency.xml
new file mode 100755
index 0000000000000000000000000000000000000000..f8953c391d61601d251acb3624b2f30f5a0eb83d
--- /dev/null
+++ b/src/module_extraction/_install/dependency.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<installer>
+	<schema>
+		<name>s_extraction</name>
+		<dependenciesCollection>
+			<dependency>
+				<nature>schema</nature>
+				<name>s_vitis</name>
+				<object>vitis</object>
+			</dependency>
+		</dependenciesCollection>
+	</schema>
+	<dependenciesCollection>
+		<dependency>
+			<nature>framework</nature>
+			<name>vitis</name>
+		</dependency>
+	</dependenciesCollection>
+</installer>
diff --git a/src/module_extraction/_install/fileToDelete.txt b/src/module_extraction/_install/fileToDelete.txt
new file mode 100755
index 0000000000000000000000000000000000000000..0f43fe95ffffa53fcfefcacba2c2e5215d7b6a89
--- /dev/null
+++ b/src/module_extraction/_install/fileToDelete.txt
@@ -0,0 +1,6 @@
+javascript/deps.js
+javascript/script_module.js
+javascript/statistics.js
+javascript/widget/script_widget.js
+javascript/widget/widgetMod.js
+javascript/widget/deps.js
\ No newline at end of file
diff --git a/src/module_extraction/_install/folderToDelete.txt b/src/module_extraction/_install/folderToDelete.txt
new file mode 100755
index 0000000000000000000000000000000000000000..b92d8976db30897968846102e68520be453b8313
--- /dev/null
+++ b/src/module_extraction/_install/folderToDelete.txt
@@ -0,0 +1,2 @@
+javascript/controllers
+javascript/directives
\ No newline at end of file
diff --git a/src/module_extraction/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json b/src/module_extraction/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..f25d20c9b7b577b5afc23a8b5b42b768efc9d7cd
--- /dev/null
+++ b/src/module_extraction/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json
@@ -0,0 +1 @@
+{"insert":{"rows":[],"tabs":{"position":"top","list":[{"label":"Tab 0","elements":[]}]}},"search":{"rows":[]},"display":{"rows":[]},"update":{"name":"configuration_extraction_module-form","title":"","input_size":"xxs","nb_cols":7,"javascript":false,"rows":[{"fields":[{"name":"color_mutualized","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_MUTUALIZED","nb_cols":12,"id":"color_mutualized","default_value":"green"}]},{"fields":[{"name":"color_no_mutualized","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_NO_MUTUALIZED","nb_cols":12,"id":"color_no_mutualized","default_value":"red"}]},{"fields":[{"name":"sig","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SIG","nb_cols":12,"id":"sig","default_value":"*.shp|*.*"}]},{"fields":[{"name":"dao","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_DAO","nb_cols":12,"id":"dao","default_value":"*.dao"}]},{"fields":[{"type":"button","name":"form_submit","class":"btn-ungroup btn-group-sm","nb_cols":12,"buttons":[{"type":"submit","name":"form_submit","label":"FORM_UPDATE","class":"btn-primary"}],"id":"form_submit_6_1"}]}],"event":"updateProperties('extraction')","afterEvent":"editSectionForm()","tabs":{"position":"top","list":[{"label":"Tab 0","elements":["color_mutualized","color_no_mutualized","sig","dao","form_submit"]}]}},"datasources":{}}
\ No newline at end of file
diff --git a/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.js b/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.js
new file mode 100755
index 0000000000000000000000000000000000000000..2589e36082a4f0a4e83c27a9229e84018294ecc8
--- /dev/null
+++ b/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.js
@@ -0,0 +1,500 @@
+/* global angular, goog, vitisApp, bootbox */
+
+//bloque les delete du destructeur à éviter
+//'use strict';
+
+console.info("Generateur_wab_generator_1 loaded --> your functions are ready");
+/***********************************************************************************
+ Signaletique_Recap_0 Javascript
+ ***********************************************************************************/
+
+var oFormRequired = {
+    "sUrl": "",
+    "scope_": {},
+    "toDestructor": []
+};
+/**
+ * constructor_form
+ * Fonction appelé à l'initialisation du formulaire si dans la structure json javascript vaut "true"
+ * @param {type} scope
+ * @param {type} s_url
+ * @returns {undefined}
+ */
+var constructor_form = function (scope, s_url) {
+    //////////////////////////////////////////////////////////
+    //Ne pas toucher
+    console.log("Constructor");
+    
+    oFormRequired.sUrl = s_url;
+    oFormRequired.scope_ = scope;
+    //console.log(scope);
+    //////////////////////////////////////////////////////////
+    // Permet de recharge le javascript d'une section à une autre
+    var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+    var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+    //
+    var oElemDefCt = formSrvc["getFormElementDefinition"]("id_conseil", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]);
+    var oElemDefCom = formSrvc["getFormElementDefinition"]("id_com", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]);
+    var oElemDefExtent = formSrvc["getFormElementDefinition"]("extent", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]);
+    
+    
+    //Comportements différents selon le mode (insert, update, search, display) (GTF : accés uniquement au mode insert)
+    //if (oFormRequired.scope_.sFormDefinitionName.indexOf("insert") > -1 || (oFormRequired.scope_.sFormDefinitionName.indexOf("update") > -1)) {
+    oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".extent_method.selectedOption", function (value) {
+        //console.log(value);
+        if (value) {
+            if (value["value"]) {
+                //oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]["name"] = value["value"] + "_";
+                if (value["value"] == "id_conseil")
+                {
+                    oElemDefCt["visible"] = true;
+                    oElemDefCom["visible"] = false;
+                    oElemDefExtent["visible"] = false;
+                }
+                else if (value["value"] == "id_com")
+                {
+                    oElemDefCt["visible"] = false;
+                    oElemDefCom["visible"] = true;
+                    oElemDefExtent["visible"] = false;
+                }
+                else
+                {
+                    oElemDefCt["visible"] = false;
+                    oElemDefCom["visible"] = false;
+                    oElemDefExtent["visible"] = true;
+                }
+            }
+            else
+            {
+                oElemDefCt["visible"] = false;
+                oElemDefCom["visible"] = false;
+            }
+            
+        }
+    }));
+    //Evènement lorsqu'on choisie un CT
+    oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".id_conseil.selectedOption", function (value) {
+        if (value && typeof(oFormRequired) !== "undefined")
+        {
+            getLayerTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){
+                var oTreeview = $("#layers_9_1_treeview")["treeview"](true);
+                $("layers_9_1_treeview")["treeview"](true);
+                //On recréer un arbre
+                oTreeview["init"]({"data": aNodes,
+                    "onNodeChecked": oTreeview.options.onNodeChecked,
+                    "onNodeUnchecked": oTreeview.options.onNodeUnchecked,
+                    "showBorder": false,
+                    "levels": 0,
+                    "showCheckbox": true,
+                    "expandIcon": "glyphicon glyphicon-folder-close",
+                    "collapseIcon": "glyphicon glyphicon-folder-open",
+                    "highlightSelected": false,
+                    "multiSelect": true});
+                scope.$applyAsync();   
+            });
+            
+            getStatsTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){
+                var oTreeview = $("#statistique_9_1_treeview")["treeview"](true);
+                $("statistique_9_1_treeview")["treeview"](true);
+                //On recréer un arbre
+                oTreeview["init"]({"data": aNodes,
+                    "onNodeChecked": oTreeview.options.onNodeChecked,
+                    "onNodeUnchecked": oTreeview.options.onNodeUnchecked,
+                    "showBorder": false,
+                    "levels": 0,
+                    "showCheckbox": true,
+                    "expandIcon": "glyphicon glyphicon-folder-close",
+                    "collapseIcon": "glyphicon glyphicon-folder-open",
+                    "highlightSelected": false,
+                    "multiSelect": true});
+                scope.$applyAsync();   
+            });
+        }
+        
+    }));
+    //Evènement lorsqu'on choisie une commune
+    oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".id_com.selectedOption", function (value) {
+        if (value && typeof(oFormRequired) !== "undefined")
+        {
+            getLayerTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){
+                var oTreeview = $("#layers_9_1_treeview")["treeview"](true);
+                $("layers_9_1_treeview")["treeview"]({"data":aNodes});
+                //On recréer un arbre
+                oTreeview["init"]({"data": aNodes,
+                    "onNodeChecked": oTreeview.options.onNodeChecked,
+                    "onNodeUnchecked": oTreeview.options.onNodeUnchecked,
+                    "showBorder": false,
+                    "levels": 0,
+                    "showCheckbox": true,
+                    "expandIcon": "glyphicon glyphicon-folder-close",
+                    "collapseIcon": "glyphicon glyphicon-folder-open",
+                    "highlightSelected": false,
+                    "multiSelect": true});
+                scope.$applyAsync();
+                
+            });
+            
+            getStatsTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){
+                var oTreeview = $("#statistique_9_1_treeview")["treeview"](true);
+                $("statistique_9_1_treeview")["treeview"](true);
+                //On recréer un arbre
+                oTreeview["init"]({"data": aNodes,
+                    "onNodeChecked": oTreeview.options.onNodeChecked,
+                    "onNodeUnchecked": oTreeview.options.onNodeUnchecked,
+                    "showBorder": false,
+                    "levels": 0,
+                    "showCheckbox": true,
+                    "expandIcon": "glyphicon glyphicon-folder-close",
+                    "collapseIcon": "glyphicon glyphicon-folder-open",
+                    "highlightSelected": false,
+                    "multiSelect": true});
+                scope.$applyAsync();   
+            });
+        }
+    }));
+    //Evenement lorsqu'on saisie un nouveau polygone
+    oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".extent", function (value) {
+        if (value && typeof(oFormRequired) !== "undefined")
+        {
+            //getLayerTree(value, "geom");
+            getLayerTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){
+                //console.log(aNodes);
+                //layers_9_1_treeview
+                var oTreeview = $("#layers_9_1_treeview")["treeview"](true);
+                //$("layers_9_1_treeview")["treeview"]({"data":aNodes});
+                //On recréer un arbre
+                oTreeview["init"]({"data": aNodes,
+                    "onNodeChecked": oTreeview.options.onNodeChecked,
+                    "onNodeUnchecked": oTreeview.options.onNodeUnchecked,
+                    "showBorder": false,
+                    "levels": 0,
+                    "showCheckbox": true,
+                    "expandIcon": "glyphicon glyphicon-folder-close",
+                    "collapseIcon": "glyphicon glyphicon-folder-open",
+                    "highlightSelected": false,
+                    "multiSelect": true});
+                scope.$applyAsync();
+                
+            });
+            
+            getStatsTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){
+                var oTreeview = $("#statistique_9_1_treeview")["treeview"](true);
+                $("statistique_9_1_treeview")["treeview"](true);
+                //On recréer un arbre
+                oTreeview["init"]({"data": aNodes,
+                    "onNodeChecked": oTreeview.options.onNodeChecked,
+                    "onNodeUnchecked": oTreeview.options.onNodeUnchecked,
+                    "showBorder": false,
+                    "levels": 0,
+                    "showCheckbox": true,
+                    "expandIcon": "glyphicon glyphicon-folder-close",
+                    "collapseIcon": "glyphicon glyphicon-folder-open",
+                    "highlightSelected": false,
+                    "multiSelect": true});
+                scope.$applyAsync();   
+            });
+            
+            
+        }
+    }));
+};
+
+/**
+ * Fonction appelée lorsqu'on choisit la CT ou la commune ou si on saisit un polygone dans le formulaire
+ * @return undefined
+ */
+function getLayerTree(oFormValues) {
+    var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+    var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+    var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+    var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]);
+    //
+    $log.info("getLayerTree");
+    // Charge la liste des couches.    
+    
+    var deferred = $q.defer();
+    var promise = deferred.promise;
+    if (oFormValues.extent_method.selectedOption["value"] != "") {
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extractions/Layers",
+            "params": getUrlParams(),
+            "scope": angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(),
+            "success": function(response) {
+                if (response["data"]["status"] == 1) {
+                    console.log(response["data"]);
+                    var scope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope();
+                    // Création de l'arborescence des couches pour le champ "treeview".
+                    var aLayers = response["data"]["layers"];
+                    var aNodes = [];
+                    var stats = true;
+                    
+                    if (typeof(aLayers) != "undefined") {
+                        var aCategories = Object.keys(aLayers);
+                        for (var i in aCategories) {
+                            var aNode = {"text": aCategories[i], "nodes": []}
+                            for (var j in aLayers[aCategories[i]]) {
+                                if (aLayers[aCategories[i]][j]["statistique"] !== true)
+                                {
+                                    stats = false;
+                                    aNode["nodes"].push({"text": aLayers[aCategories[i]][j]["text"], "value": aLayers[aCategories[i]][j]["value"], "mutualized": aLayers[aCategories[i]][j]["mutualized"]});
+                                }
+                            }
+                            if (stats !== true)
+                            {
+                                aNodes.push(aNode);
+                            }
+                            stats = true;
+                        }
+                    }
+                    
+                    this["setTreeviewNodesState"] = function (aNodes) {
+                        for (var i in aNodes) {
+                            if (typeof (aNodes[i]["nodes"]) != "undefined")
+                                this["setTreeviewNodesState"](aNodes[i]["nodes"]);
+                            else {
+                                if (typeof (aNodes[i]["state"]) == "undefined")
+                                {
+                                    aNodes[i]["state"] = {};
+                                }
+                                var aCheckedItem = [];
+                                var sValue = scope["oFormValues"][envSrvc["sFormDefinitionName"]]["layers"];
+                                if (typeof (sValue) == "string" && sValue != "")
+                                {
+                                    aCheckedItem = sValue.split("|");
+                                }
+                                if (aCheckedItem.indexOf(String(aNodes[i]["value"])) != -1)
+                                {
+                                    aNodes[i]["state"]["checked"] = true;
+                                }
+                                //Si la couche est mutualisée
+                                if (aNodes[i]['mutualized'] == true)
+                                {
+                                    console.log(propertiesSrvc["color_mutualized"]);
+                                    aNodes[i]["color"] =  propertiesSrvc["color_mutualized"];
+                                } else if (aNodes[i]['mutualized'] == false) {
+                                    aNodes[i]["color"] =  propertiesSrvc["color_no_mutualized"];
+                                }
+                            }
+                        }
+                    }
+                    this["setTreeviewNodesState"](aNodes);
+                    deferred.resolve(aNodes);
+                } else {
+                    //
+                    var oOptions = {
+                        "className": "modal-danger"
+                    };
+                    // Message d'erreur ?
+                    if (response["data"]["errorMessage"] != null)
+                        oOptions["message"] = response["data"]["errorMessage"];
+                    scope.$root["modalWindow"]("alert", "REQUEST_ERROR", oOptions);
+                }
+            }
+        });
+    }
+    return promise;
+}
+
+/**
+ * Fonction appelée lorsqu'on choisit la CT ou la commune ou si on saisit un polygone dans le formulaire
+ * @return undefined
+ */
+function getStatsTree(oFormValues) {
+    var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+    var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+    var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+    var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]);
+    //
+    $log.info("getLayerTree");
+    // Charge la liste des couches.    
+    
+    var deferred = $q.defer();
+    var promise = deferred.promise;
+    if (oFormValues.extent_method.selectedOption["value"] != "") {
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extractions/Layers",
+            "params": getUrlParams(),
+            "scope": angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(),
+            "success": function(response) {
+                if (response["data"]["status"] == 1) {
+                    console.log(response["data"]);
+                    var scope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope();
+                    // Création de l'arborescence des statistiques pour le champ "treeview".
+                    var aLayers = response["data"]["layers"];
+                    var aNodes = [];
+                    var stats = false;
+                    
+                    if (typeof(aLayers) != "undefined") {
+                        var aCategories = Object.keys(aLayers);
+                        for (var i in aCategories) {
+                            var aNode = {"text": aCategories[i], "nodes": []}
+                            for (var j in aLayers[aCategories[i]]) {
+                                if (aLayers[aCategories[i]][j]["statistique"] === true)
+                                {
+                                    stats = true;
+                                    aNode["nodes"].push({"text": aLayers[aCategories[i]][j]["text"], "value": aLayers[aCategories[i]][j]["value"], "mutualized": aLayers[aCategories[i]][j]["mutualized"]});
+                                }
+                            }
+                            if (stats === true)
+                            {
+                                aNodes.push(aNode);
+                            }
+                            stats = false;
+                        }
+                    }
+                    
+                    this["setTreeviewNodesState"] = function (aNodes) {
+                        for (var i in aNodes) {
+                            if (typeof (aNodes[i]["nodes"]) != "undefined")
+                                this["setTreeviewNodesState"](aNodes[i]["nodes"]);
+                            else {
+                                if (typeof (aNodes[i]["state"]) == "undefined")
+                                {
+                                    aNodes[i]["state"] = {};
+                                }
+                                var aCheckedItem = [];
+                                var sValue = scope["oFormValues"][envSrvc["sFormDefinitionName"]]["statistique"];
+                                if (typeof (sValue) == "string" && sValue != "")
+                                {
+                                    aCheckedItem = sValue.split("|");
+                                }
+                                if (aCheckedItem.indexOf(String(aNodes[i]["value"])) != -1)
+                                {
+                                    aNodes[i]["state"]["checked"] = true;
+                                }
+                                //Si la couche est mutualisée
+                                if (aNodes[i]['mutualized'] == true)
+                                {
+                                    aNodes[i]["color"] =  propertiesSrvc["color_mutualized"];
+                                } else if (aNodes[i]['mutualized'] == false) {
+                                    aNodes[i]["color"] =  propertiesSrvc["color_no_mutualized"];
+                                }
+                            }
+                        }
+                    }
+                    this["setTreeviewNodesState"](aNodes);
+                    deferred.resolve(aNodes);
+                } else {
+                    //
+                    var oOptions = {
+                        "className": "modal-danger"
+                    };
+                    // Message d'erreur ?
+                    if (response["data"]["errorMessage"] != null)
+                        oOptions["message"] = response["data"]["errorMessage"];
+                    scope.$root["modalWindow"]("alert", "REQUEST_ERROR", oOptions);
+                }
+            }
+        });
+    }
+    return promise;
+}
+
+/**
+ * Fonction qui renvoie les paramètres pour effectuer la requête AJAX
+ * @returns {getUrlParams.oUrlParams}
+ */
+function getUrlParams() {
+    var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+    var sTable = "";
+    var sCompare_operator = "";
+    var sColumn = "";
+    var aValue = [];
+    var aValeur = [];
+    
+    if (oFormValues.extent_method.selectedOption["value"] == "id_conseil")
+    {
+        sTable = "ct";
+        sColumn = "ct_id";
+        sCompare_operator = "IN";
+        aValue = oFormValues.id_conseil.selectedOption;
+    }
+    else if (oFormValues.extent_method.selectedOption["value"] == "id_com")
+    {
+        sTable = "commune";
+        sColumn = "commune_id";
+        sCompare_operator = "IN";
+        aValue = oFormValues.id_com.selectedOption;
+    }
+    
+    if (oFormValues.extent_method.selectedOption["value"] == "extent")
+    {
+        sTable = "ct";
+        sColumn = "geom";
+        sCompare_operator = "INTERSECT";
+        aValeur = "SRID=2154;"+ oFormValues.extent;
+        //console.log('Compare_operator ' + compare_operator + ' valeur ' + valeur );
+    }
+    else
+    {
+        if(aValue)
+        {
+            for (var i = 0; i < aValue.length; i++) 
+            {     
+                //Si c'est une sélection vide
+                if(aValue[i]["value"] == "")
+                {
+                    //On remplace la valeur vide par un id négatif
+                    aValeur[i] = "-1";
+                }
+                else if (oFormValues.extent_method.selectedOption["value"] == "id_conseil")
+                {
+                    aValeur[i] = aValue[i]["value"];
+                }
+                else if (oFormValues.extent_method.selectedOption["value"] == "id_com")
+                {
+                    aValeur[i] = aValue[i]["value"];
+                }
+                else if (oFormValues.extent_method.selectedOption["value"] == "id_conseil")
+                {
+                    aValeur[i] = aValue[i]["value"];
+                }
+            }
+        }
+        else
+        {
+            aValeur[0] = "-1";
+        }
+    }
+    
+    var oUrlParams = {
+        "schema": propertiesSrvc["schema_extraction"],
+        "table": sTable,
+        "distinct": true,
+        "filter": {
+            "column": sColumn,
+            "compare_operator": sCompare_operator,
+            "value": aValeur
+        }
+    }
+    return oUrlParams;
+}
+
+/**
+ * destructor_form
+ * Fonction appelé quand on quitte le formulaire nettoie toute les fonctions pour les rendres inutilisable en dehors du formulaire
+ * @returns {undefined}
+ */
+var destructor_form = function () {
+    console.log("Destructor");
+    
+    for (var i = 0; i < oFormRequired.toDestructor.length; i++) {
+        oFormRequired.toDestructor[i] = undefined;
+        delete oFormRequired.toDestructor[i];
+    }
+    
+    //supprimer la balise script du js pour pouvoir le recharger si on reviens sur le formulaire plus tard
+    angular.element('[src="' + oFormRequired.sUrl + '?version=' + oFormRequired.scope_["oProperties"]["build"] + '"]').remove();
+    
+    oFormRequired = undefined;
+    delete oFormRequired;
+    
+    constructor_form = undefined;
+    delete constructor_form;
+    destructor_form = undefined;
+    delete destructor_form;
+};
+
+/**********************************************************************************/
\ No newline at end of file
diff --git a/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.json b/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.json
new file mode 100755
index 0000000000000000000000000000000000000000..7cd9f2928d152472153680eeb50e4059f471fa71
--- /dev/null
+++ b/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.json
@@ -0,0 +1,4838 @@
+{
+  "display": {
+    "name": "extraction_extraction_extraction-form",
+    "title": "EXTRACTION_EXTRACTION_EXTRACTION_TITLE",
+    "input_size": "xxs",
+    "initEvent": "initExtractionExtractionForm()",
+    "nb_cols": 12,
+    "javascript": true,
+    "rows": [
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "bo_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_BO_ID",
+            "required": false,
+            "nb_cols": 12,
+            "id": "bo_id_1_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "checkbox",
+            "name": "preco_tech",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE",
+            "nb_cols": 4,
+            "id": "Element_6_2_1"
+          },
+          {
+            "type": "checkbox",
+            "name": "chart_graph",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE",
+            "nb_cols": 4,
+            "id": "Element_6_2_2"
+          },
+          {
+            "type": "checkbox",
+            "name": "metadonnees",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO",
+            "nb_cols": 4,
+            "id": "Element_6_2_3"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "status",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATUS",
+            "required": false,
+            "nb_cols": 4,
+            "id": "status_2_1"
+          },
+          {
+            "type": "label",
+            "name": "creation_date",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE",
+            "required": false,
+            "nb_cols": 6,
+            "id": "creation_date_4_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "email",
+            "label": "FORM_EMAIL_USERS_USER",
+            "required": false,
+            "nb_cols": 4,
+            "id": "email_3_1"
+          },
+          {
+            "type": "label",
+            "name": "company",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY",
+            "required": false,
+            "nb_cols": 4,
+            "id": "company_8_1"
+          },
+          {
+            "type": "label",
+            "name": "requestor",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR",
+            "required": false,
+            "nb_cols": 4,
+            "id": "requestor_5_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "linkurl",
+            "name": "ae",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "ae_6_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "layers",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS",
+            "required": false,
+            "nb_cols": 12,
+            "id": "layers_9_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "coordsys_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID",
+            "required": false,
+            "nb_cols": 4,
+            "id": "coordsys_id_11_1"
+          },
+          {
+            "type": "label",
+            "name": "vector_format_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID",
+            "required": false,
+            "nb_cols": 4,
+            "id": "vector_format_id_10_1"
+          },
+          {
+            "type": "label",
+            "name": "raster_format_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID",
+            "required": false,
+            "nb_cols": 4,
+            "id": "raster_format_id_14_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "extent_method",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD",
+            "required": false,
+            "nb_cols": 12,
+            "id": "extent_method_15_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "id_com",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM",
+            "required": false,
+            "nb_cols": 12,
+            "id": "id_com_22_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "id_conseil",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL",
+            "required": false,
+            "nb_cols": 12,
+            "id": "id_conseil_23_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "map_vmap",
+            "name": "extent",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT",
+            "required": false,
+            "nb_cols": 12,
+            "id": "extent_7_1",
+            "style": {
+              "height": "250px"
+            },
+            "map_options": {
+              "proj": "EPSG:2154",
+              "type": "vmap",
+              "center": {
+                "extent": [
+                  4510838297753.592,
+                  313452152357706.75,
+                  4510842604414.408,
+                  313452153911336.25
+                ],
+                "coord": [
+                  4510840451084,
+                  313452153134521.5
+                ],
+                "scale": 23468294
+              },
+              "controls": {
+                "MP": true,
+                "ZO": true,
+                "SL": true,
+                "CP": true
+              },
+              "layers": [],
+              "interactions": {
+                "multi_geometry": false,
+                "full_screen": true,
+                "RA": true,
+                "RO": true,
+                "ED": true,
+                "DP": false,
+                "DL": false,
+                "DPol": true,
+                "SE": true
+              },
+              "draw_color": "rgba(54,184,255,0.6)",
+              "contour_color": "rgba(0,0,0,0.4)",
+              "contour_size": 2,
+              "circle_radius": 6,
+              "features": [],
+              "coord_accuracy": 8,
+              "tree": {
+                "name": "Tree",
+                "children": [
+                  {
+                    "view": {
+                      "center": [
+                        "902168",
+                        "6269043"
+                      ],
+                      "zoom": 7,
+                      "maxZoom": 28,
+                      "minZoom": 0,
+                      "projection": "EPSG:2154",
+                      "extent": [
+                        4510835482577.04,
+                        313452150322452.2,
+                        4510845419590.96,
+                        313452155946590.8
+                      ]
+                    }
+                  },
+                  {
+                    "name": "extraction",
+                    "children": [
+                      {
+                        "name": "REF_ortho2011",
+                        "layerType": "tilewms",
+                        "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_ortho2011/MapServer/WMSServer",
+                        "index": -1,
+                        "visible": true,
+                        "opacity": 1,
+                        "is_dynamic": false,
+                        "is_filtered": false,
+                        "version": "1.3.0",
+                        "params": {
+                          "LAYERS": "0",
+                          "VERSION": "1.3.0",
+                          "STYLES": ""
+                        },
+                        "bo_queryable": false,
+                        "layer_id": 1,
+                        "select": true
+                      },
+                      {
+                        "name": "REF_CPA_LIMITE_COMMUNE",
+                        "layerType": "tilewms",
+                        "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_CPA_LIMITE_COMMUNE/MapServer/WMSServer",
+                        "index": -1,
+                        "visible": true,
+                        "opacity": 1,
+                        "is_dynamic": false,
+                        "is_filtered": false,
+                        "version": "1.3.0",
+                        "params": {
+                          "LAYERS": "0,1",
+                          "VERSION": "1.3.0",
+                          "STYLES": ""
+                        },
+                        "bo_queryable": false,
+                        "layer_id": 2,
+                        "select": true
+                      }
+                    ],
+                    "visible": true
+                  }
+                ]
+              }
+            }
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "history",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY",
+            "required": false,
+            "nb_cols": 12,
+            "id": "history_3_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "note",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "note_12_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "note_line",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "note_line_13_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "options": {
+              "choices": [
+                {
+                  "label": "oui",
+                  "value": true
+                },
+                {
+                  "label": "non",
+                  "value": false
+                }
+              ]
+            },
+            "name": "signed",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED",
+            "required": false,
+            "nb_cols": 3,
+            "id": "signed_16_1"
+          },
+          {
+            "type": "label",
+            "options": {
+              "choices": [
+                {
+                  "label": "oui",
+                  "value": true
+                },
+                {
+                  "label": "non",
+                  "value": false
+                }
+              ]
+            },
+            "name": "accepted_by_cpa",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA",
+            "required": false,
+            "nb_cols": 3,
+            "id": "accepted_by_cpa_17_1"
+          },
+          {
+            "type": "label",
+            "options": {
+              "choices": [
+                {
+                  "label": "oui",
+                  "value": true
+                },
+                {
+                  "label": "non",
+                  "value": false
+                }
+              ]
+            },
+            "name": "identification_complete",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE",
+            "required": false,
+            "nb_cols": 3,
+            "id": "identification_complete_18_1"
+          },
+          {
+            "type": "label",
+            "options": {
+              "choices": [
+                {
+                  "label": "oui",
+                  "value": true
+                },
+                {
+                  "label": "non",
+                  "value": false
+                }
+              ]
+            },
+            "name": "definition_complete",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE",
+            "required": false,
+            "nb_cols": 3,
+            "id": "definition_complete_19_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "comment",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT",
+            "required": false,
+            "nb_cols": 12,
+            "id": "comment_20_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "priority_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID",
+            "required": false,
+            "nb_cols": 12,
+            "id": "priority_id_21_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "hidden",
+            "name": "status_name",
+            "nb_cols": 6,
+            "id": "Element_0_25_1"
+          },
+          {
+            "type": "hidden",
+            "name": "tr_status_method",
+            "nb_cols": 6,
+            "id": "Element_0_25_2"
+          }
+        ]
+      },
+      {
+        "class": "wab-method-button",
+        "fields": [
+          {
+            "type": "button",
+            "class": "btn-ungroup btn-group-sm",
+            "nb_cols": 1,
+            "name": "display_button",
+            "id": "display_button",
+            "buttons": [
+              {
+                "type": "button",
+                "name": "return_list",
+                "label": "FORM_RETURN_LIST",
+                "class": "btn-primary",
+                "event": "setMode(\"search\")",
+                "disabled": false
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_0",
+            "nb_cols": 1,
+            "id": "Element_0_25_2",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "button",
+                "name": "form_submit",
+                "label": "Autoriser l'extraction",
+                "class": "btn-primary",
+                "event": "setWabStatusMethod('trAutoriser')"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_1",
+            "nb_cols": 1,
+            "id": "Element_1_25_3",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "button",
+                "name": "form_submit",
+                "label": "Demander l'AE",
+                "class": "btn-primary",
+                "event": "setWabStatusMethod('trDemander')",
+                "disabled": false
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_2",
+            "nb_cols": 1,
+            "id": "Element_2_25_4",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "button",
+                "name": "form_submit",
+                "label": "Générer l'AE",
+                "class": "btn-primary",
+                "event": "setWabStatusMethod('trGenerer')"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_3",
+            "nb_cols": 1,
+            "id": "Element_3_25_5",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "button",
+                "name": "form_submit",
+                "label": "Créer",
+                "class": "btn-primary",
+                "event": "setWabStatusMethod('trNouveau')"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_4",
+            "nb_cols": 1,
+            "id": "Element_4_25_6",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "button",
+                "name": "form_submit",
+                "label": "Refuser l'extraction",
+                "class": "btn-primary",
+                "event": "setWabStatusMethod('trRefuser')",
+                "disabled": false
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_5",
+            "nb_cols": 1,
+            "id": "Element_5_25_7",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "button",
+                "name": "form_submit",
+                "label": "Recharger l'acte d'engagement",
+                "class": "btn-primary",
+                "event": "setWabStatusMethod('trResoumettre')"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_7",
+            "nb_cols": 1,
+            "id": "Element_7_25_9",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "button",
+                "name": "form_submit",
+                "label": "Soumettre l'AE",
+                "class": "btn-primary",
+                "event": "setWabStatusMethod('trSoumettre')"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_8",
+            "nb_cols": 1,
+            "id": "Element_8_25_10",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "button",
+                "name": "form_submit",
+                "label": "Terminer",
+                "class": "btn-primary",
+                "event": "setWabStatusMethod('trTerminer')"
+              }
+            ]
+          }
+        ]
+      }
+    ],
+    "wab": {
+      "START": {
+        "controleur": {
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "Element_1": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "rw",
+          "company": "rw",
+          "layers": "rw",
+          "coordsys_id": "rw",
+          "vector_format_id": "rw",
+          "raster_format_id": "rw",
+          "extent_method": "rw",
+          "id_com": "rw",
+          "id_conseil": "rw",
+          "extent": "rw",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "Element_1": "",
+          "statistique": ""
+        }
+      },
+      "Nouveau": {
+        "controleur": {
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "Element_1": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "rw",
+          "company": "rw",
+          "layers": "rw",
+          "coordsys_id": "rw",
+          "vector_format_id": "rw",
+          "raster_format_id": "rw",
+          "extent_method": "rw",
+          "id_com": "rw",
+          "id_conseil": "rw",
+          "extent": "rw",
+          "status": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "rw",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "r",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "r",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "Element_1": "",
+          "statistique": ""
+        }
+      },
+      "AE Demandé": {
+        "controleur": {
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "Element_1": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "r",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "Element_1": "",
+          "statistique": ""
+        }
+      },
+      "AE Généré": {
+        "controleur": {
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "Element_1": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "rw",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "r",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "r",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "Element_1": "",
+          "statistique": ""
+        }
+      },
+      "AE Soumis": {
+        "controleur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "r",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "rw",
+          "accepted_by_cpa": "rw",
+          "identification_complete": "rw",
+          "definition_complete": "rw",
+          "comment": "rw",
+          "priority_id": "r",
+          "bo_id": "r",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "r",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "Element_1": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "r",
+          "bo_id": "r",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "r",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "Element_1": "",
+          "statistique": ""
+        }
+      },
+      "Autorisée": {
+        "controleur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "r",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "r",
+          "note": "",
+          "note_line": "",
+          "signed": "r",
+          "accepted_by_cpa": "r",
+          "identification_complete": "r",
+          "definition_complete": "r",
+          "comment": "r",
+          "priority_id": "rw",
+          "bo_id": "r",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "r",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "Element_1": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "",
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "Element_1": "",
+          "statistique": ""
+        }
+      },
+      "Refusée": {
+        "controleur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "r",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "r",
+          "accepted_by_cpa": "r",
+          "identification_complete": "r",
+          "definition_complete": "r",
+          "comment": "r",
+          "priority_id": "r",
+          "bo_id": "r",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "r",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "Element_1": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "r",
+          "accepted_by_cpa": "r",
+          "identification_complete": "r",
+          "definition_complete": "r",
+          "comment": "r",
+          "priority_id": "r",
+          "bo_id": "r",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "r",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "Element_1": "",
+          "statistique": ""
+        }
+      },
+      "Terminée": {
+        "controleur": {
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "",
+          "raster_format_id": "r",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "r",
+          "status": "r",
+          "history": "r",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "r",
+          "priority_id": "",
+          "bo_id": "r",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "r",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "email": "",
+          "Element_1": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "",
+          "raster_format_id": "r",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "r",
+          "status": "r",
+          "history": "r",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "r",
+          "priority_id": "",
+          "bo_id": "r",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "display_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "preco_tech": "r",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "Element_1": "",
+          "statistique": ""
+        }
+      }
+    },
+    "tabs": {
+      "position": "top",
+      "list": [
+        {
+          "label": "Tab 0",
+          "elements": [
+            "bo_id",
+            "status",
+            "history",
+            "creation_date",
+            "requestor",
+            "ae",
+            "extent",
+            "email",
+            "company",
+            "layers",
+            "vector_format_id",
+            "coordsys_id",
+            "note",
+            "note_line",
+            "raster_format_id",
+            "extent_method",
+            "signed",
+            "accepted_by_cpa",
+            "identification_complete",
+            "definition_complete",
+            "comment",
+            "priority_id",
+            "id_com",
+            "id_conseil",
+            "display_button",
+            "status_name",
+            "ct_list",
+            "statistique",
+            "Element_3",
+            "Element_4",
+            "Element_5",
+            "Element_7",
+            "Element_8",
+            "tr_status_method",
+            "format",
+            "preco_tech",
+            "chart_graph",
+            "metadonnees"
+          ]
+        }
+      ]
+    }
+  },
+  "search": {
+    "name": "extraction_extraction_extraction-form",
+    "title": "EXTRACTION_EXTRACTION_EXTRACTION_TITLE",
+    "input_size": "xxs",
+    "nb_cols": 12,
+    "javascript": false,
+    "rows": [
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "company",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY",
+            "nb_cols": 12,
+            "id": "company_8_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "button",
+            "class": "btn-ungroup btn-group-xs",
+            "nb_cols": 12,
+            "name": "search_button",
+            "id": "search_button",
+            "buttons": [
+              {
+                "type": "button",
+                "name": "search",
+                "label": "FORM_SEARCH_BUTTON",
+                "class": "btn-primary",
+                "event": "setGridFilter()"
+              },
+              {
+                "type": "reset",
+                "name": "reset",
+                "label": "FORM_RESET_BUTTON",
+                "class": "btn-primary",
+                "event": "resetGridFilter()"
+              }
+            ]
+          }
+        ]
+      }
+    ],
+    "tabs": {
+      "position": "top",
+      "list": [
+        {
+          "label": "Tab 0",
+          "elements": [
+            "company",
+            "search_button"
+          ]
+        }
+      ]
+    }
+  },
+  "insert": {
+    "name": "extraction_extraction_extraction-form",
+    "title": "EXTRACTION_EXTRACTION_EXTRACTION_TITLE_INSERT",
+    "input_size": "xxs",
+    "nb_cols": 12,
+    "javascript": true,
+    "rows": [
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "bo_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE",
+            "nb_cols": 12,
+            "id": "Element_0_2_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "checkbox",
+            "name": "preco_tech",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE",
+            "required": false,
+            "nb_cols": 4,
+            "id": "checkbox_tech_2_1"
+          },
+          {
+            "type": "checkbox",
+            "name": "chart_graph",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE",
+            "required": false,
+            "nb_cols": 4,
+            "id": "checkbox_carto"
+          },
+          {
+            "type": "checkbox",
+            "name": "metadonnees",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO",
+            "required": false,
+            "nb_cols": 4,
+            "id": "checkbox_iso"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "email",
+            "name": "email",
+            "label": "FORM_EMAIL_USERS_USER",
+            "required": true,
+            "nb_cols": 6,
+            "id": "email_3_1",
+            "pattern": "^(([a-zA-Z]|[0-9])|([-]|[_]|[.]))+[@](([a-zA-Z]|[0-9])|([-]|[_]|[.])){2,63}[.](([a-zA-Z0-9]){2,63})+$"
+          },
+          {
+            "type": "text",
+            "name": "company",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY",
+            "required": true,
+            "nb_cols": 6,
+            "id": "company_8_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "select",
+            "name": "extent_method",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD",
+            "required": true,
+            "nb_cols": 12,
+            "id": "extent_method_15_1",
+            "options": [
+              "Commmunes|id_com",
+              "Conseils de Territoire|id_conseil",
+              "Etendue libre|extent"
+            ],
+            "id_from": "extent_method_15_1_from"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "list",
+            "name": "id_com",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM",
+            "required": false,
+            "nb_cols": 12,
+            "datasource": {
+              "datasource_id": "datasource_9",
+              "sort_order": "ASC",
+              "distinct": "true",
+              "label_key": "name",
+              "order_by": "name",
+              "id_key": "commune_id",
+              "attributs": "commune_id|name"
+            },
+            "id": "id_com_22_1",
+            "id_from": "id_com_22_1_from",
+            "size": 10
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "list",
+            "name": "id_conseil",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL",
+            "required": false,
+            "nb_cols": 12,
+            "datasource": {
+              "datasource_id": "datasource_8",
+              "sort_order": "ASC",
+              "distinct": "true",
+              "label_key": "name",
+              "order_by": "name",
+              "id_key": "ct_id",
+              "attributs": "ct_id|name"
+            },
+            "id": "id_conseil_23_1",
+            "id_from": "id_conseil_23_1_from",
+            "size": 10
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "map_vmap",
+            "name": "extent",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT",
+            "required": false,
+            "nb_cols": 12,
+            "id": "extent_7_1",
+            "style": {
+              "height": "250px"
+            },
+            "map_options": {
+              "proj": "EPSG:2154",
+              "type": "vmap",
+              "center": {
+                "extent": [
+                  -1736177.943496094,
+                  5863277.723320313,
+                  2570482.873496094,
+                  7416907.166679688
+                ],
+                "coord": [
+                  417152.46499999985,
+                  6640092.445
+                ],
+                "scale": 23468294
+              },
+              "controls": {
+                "MP": true,
+                "ZO": true,
+                "SL": true,
+                "CP": true
+              },
+              "layers": [],
+              "interactions": {
+                "multi_geometry": false,
+                "full_screen": true,
+                "RA": true,
+                "RO": true,
+                "ED": true,
+                "DP": false,
+                "DL": false,
+                "DPol": true,
+                "SE": true
+              },
+              "draw_color": "rgba(54,184,255,0.6)",
+              "contour_color": "rgba(0,0,0,0.4)",
+              "contour_size": 2,
+              "circle_radius": 6,
+              "features": [],
+              "coord_accuracy": 8,
+              "tree": {
+                "name": "Tree",
+                "children": [
+                  {
+                    "view": {
+                      "center": [
+                        "902168",
+                        "6269043"
+                      ],
+                      "zoom": 7,
+                      "maxZoom": 28,
+                      "minZoom": 0,
+                      "projection": "EPSG:2154",
+                      "extent": [
+                        4510835482577.04,
+                        313452150322452.2,
+                        4510845419590.96,
+                        313452155946590.8
+                      ]
+                    }
+                  },
+                  {
+                    "name": "extraction",
+                    "children": [
+                      {
+                        "name": "REF_ortho2011",
+                        "layerType": "tilewms",
+                        "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_ortho2011/MapServer/WMSServer",
+                        "index": -1,
+                        "visible": true,
+                        "opacity": 1,
+                        "is_dynamic": false,
+                        "is_filtered": false,
+                        "version": "1.3.0",
+                        "params": {
+                          "LAYERS": "0",
+                          "VERSION": "1.3.0",
+                          "STYLES": ""
+                        },
+                        "bo_queryable": false,
+                        "layer_id": 1,
+                        "select": true
+                      },
+                      {
+                        "name": "REF_CPA_LIMITE_COMMUNE",
+                        "layerType": "tilewms",
+                        "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_CPA_LIMITE_COMMUNE/MapServer/WMSServer",
+                        "index": -1,
+                        "visible": true,
+                        "opacity": 1,
+                        "is_dynamic": false,
+                        "is_filtered": false,
+                        "version": "1.3.0",
+                        "params": {
+                          "LAYERS": "0,1",
+                          "VERSION": "1.3.0",
+                          "STYLES": ""
+                        },
+                        "bo_queryable": false,
+                        "layer_id": 2,
+                        "select": true
+                      }
+                    ],
+                    "visible": true
+                  }
+                ]
+              }
+            }
+          }
+        ]
+      },
+      {
+        "class": "extraction-treeview",
+        "fields": [
+          {
+            "type": "treeview",
+            "name": "layers",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS",
+            "required": false,
+            "nb_cols": 12,
+            "id": "layers_9_1",
+            "size": 20,
+            "options": {
+              "showBorder": false,
+              "levels": 0,
+              "showCheckbox": true,
+              "expandIcon": "glyphicon glyphicon-folder-close",
+              "collapseIcon": "glyphicon glyphicon-folder-open",
+              "highlightSelected": false,
+              "multiSelect": true,
+              "data": "getExtractionLayersTree()"
+            }
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "treeview",
+            "name": "statistique",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATISTIQUE",
+            "required": false,
+            "pattern": "",
+            "nb_cols": 12,
+            "id": "statistique_9_1",
+            "options": {
+              "showBorder": false,
+              "levels": 0,
+              "showCheckbox": true,
+              "expandIcon": "glyphicon glyphicon-folder-close",
+              "collapseIcon": "glyphicon glyphicon-folder-open",
+              "highlightSelected": false,
+              "multiSelect": true,
+              "data": "getExtractionStatsTree()"
+            }
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "select",
+            "name": "coordsys_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID",
+            "required": false,
+            "nb_cols": 4,
+            "id": "coordsys_id_11_1",
+            "datasource": {
+              "datasource_id": "datasource_1",
+              "sort_order": "ASC",
+              "distinct": "true",
+              "label_key": "coordsys",
+              "order_by": "coordsys",
+              "id_key": "coordsys_id",
+              "attributs": "coordsys_id|coordsys"
+            },
+            "default_value": "Lambert93",
+            "id_from": "coordsys_id_11_1_from"
+          },
+          {
+            "type": "select",
+            "name": "vector_format_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID",
+            "required": false,
+            "nb_cols": 4,
+            "id": "vector_format_id_10_1",
+            "datasource": {
+              "datasource_id": "datasource_2",
+              "sort_order": "ASC",
+              "distinct": "true",
+              "label_key": "format",
+              "order_by": "format",
+              "id_key": "format_id",
+              "attributs": "format_id|format"
+            },
+            "default_value": "SHAPE",
+            "id_from": "vector_format_id_10_1_from"
+          },
+          {
+            "type": "select",
+            "name": "raster_format_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID",
+            "required": false,
+            "nb_cols": 4,
+            "id": "raster_format_id_14_1",
+            "datasource": {
+              "datasource_id": "datasource_3",
+              "sort_order": "ASC",
+              "distinct": "true",
+              "label_key": "format",
+              "order_by": "format",
+              "id_key": "format_id",
+              "attributs": "format_id|format"
+            },
+            "default_value": "ECW",
+            "id_from": "raster_format_id_14_1_from"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "status",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATUS",
+            "required": false,
+            "nb_cols": 12,
+            "id": "status_2_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "history",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY",
+            "required": false,
+            "nb_cols": 12,
+            "id": "history_3_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "creation_date",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "creation_date_4_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "requestor",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR",
+            "required": false,
+            "nb_cols": 12,
+            "id": "requestor_5_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "file_wsdata",
+            "name": "ae",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "ae_6_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "note",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "note_12_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "note_line",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "note_line_13_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "radio",
+            "options": {
+              "choices": [
+                {
+                  "label": "oui",
+                  "value": true
+                },
+                {
+                  "label": "non",
+                  "value": false
+                }
+              ]
+            },
+            "name": "signed",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED",
+            "required": false,
+            "nb_cols": 12,
+            "id": "signed_16_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "radio",
+            "options": {
+              "choices": [
+                {
+                  "label": "oui",
+                  "value": true
+                },
+                {
+                  "label": "non",
+                  "value": false
+                }
+              ]
+            },
+            "name": "accepted_by_cpa",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA",
+            "required": false,
+            "nb_cols": 12,
+            "id": "accepted_by_cpa_17_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "radio",
+            "options": {
+              "choices": [
+                {
+                  "label": "oui",
+                  "value": true
+                },
+                {
+                  "label": "non",
+                  "value": false
+                }
+              ]
+            },
+            "name": "identification_complete",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "identification_complete_18_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "radio",
+            "options": {
+              "choices": [
+                {
+                  "label": "oui",
+                  "value": true
+                },
+                {
+                  "label": "non",
+                  "value": false
+                }
+              ]
+            },
+            "name": "definition_complete",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "definition_complete_19_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "comment",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT",
+            "required": false,
+            "nb_cols": 12,
+            "id": "comment_20_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "integer",
+            "name": "priority_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID",
+            "required": false,
+            "nb_cols": 12,
+            "id": "priority_id_21_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "hidden",
+            "name": "status_name",
+            "nb_cols": 6,
+            "id": "Element_0_26_1",
+            "default_value": "START"
+          },
+          {
+            "type": "hidden",
+            "name": "tr_status_method",
+            "nb_cols": 6,
+            "id": "Element_0_25_2"
+          }
+        ]
+      },
+      {
+        "class": "wab-method-button",
+        "fields": [
+          {
+            "type": "button",
+            "class": "btn-ungroup btn-group-sm",
+            "nb_cols": 6,
+            "name": "insert_button",
+            "id": "insert_button",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "FORM_CREATE",
+                "class": "btn-primary"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "return_list_button",
+            "nb_cols": 6,
+            "id": "return_list_button",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "button",
+                "name": "return_list",
+                "label": "FORM_RETURN_LIST",
+                "class": "btn-primary",
+                "event": "setMode(\"search\")"
+              }
+            ]
+          }
+        ]
+      }
+    ],
+    "initEvent": "initExtractionExtractionForm()",
+    "beforeEvent": "setWabStatusMethod('trNouveau')",
+    "event": "sendSimpleForm()",
+    "afterEvent": "editSectionForm()",
+    "tabs": {
+      "position": "top",
+      "list": [
+        {
+          "label": "Tab 0",
+          "elements": [
+            "bo_id",
+            "status",
+            "history",
+            "creation_date",
+            "requestor",
+            "ae",
+            "email",
+            "extent",
+            "company",
+            "layers",
+            "vector_format_id",
+            "coordsys_id",
+            "note",
+            "note_line",
+            "raster_format_id",
+            "extent_method",
+            "signed",
+            "accepted_by_cpa",
+            "identification_complete",
+            "definition_complete",
+            "comment",
+            "priority_id",
+            "id_com",
+            "id_conseil",
+            "insert_button",
+            "bo_id",
+            "status_name",
+            "tr_status_method",
+            "return_list_button",
+            "statistique"
+          ]
+        }
+      ]
+    },
+    "wab": {
+      "START": {
+        "controleur": {
+          "email": "",
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "insert_button": "",
+          "bo_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "return_list_button": "rw",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "rw",
+          "company": "rw",
+          "layers": "rw",
+          "coordsys_id": "rw",
+          "vector_format_id": "rw",
+          "raster_format_id": "rw",
+          "extent_method": "rw",
+          "id_com": "rw",
+          "id_conseil": "rw",
+          "extent": "rw",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "insert_button": "rw",
+          "bo_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "return_list_button": "rw",
+          "chart_graph": "rw",
+          "metadonnees": "rw",
+          "preco_tech": "rw",
+          "statistique": "rw"
+        }
+      },
+      "Nouveau": {
+        "controleur": {
+          "email": "",
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "insert_button": "",
+          "bo_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "return_list_button": "rw",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "rw",
+          "company": "rw",
+          "layers": "rw",
+          "coordsys_id": "rw",
+          "vector_format_id": "rw",
+          "raster_format_id": "rw",
+          "extent_method": "rw",
+          "id_com": "rw",
+          "id_conseil": "rw",
+          "extent": "rw",
+          "status": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "insert_button": "",
+          "bo_id": "r",
+          "status_name": "",
+          "tr_status_method": "",
+          "return_list_button": "rw",
+          "chart_graph": "rw",
+          "metadonnees": "rw",
+          "preco_tech": "rw",
+          "statistique": "rw"
+        }
+      },
+      "AE Demandé": {
+        "controleur": {
+          "email": "",
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "insert_button": "",
+          "bo_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "return_list_button": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "insert_button": "",
+          "bo_id": "r",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "return_list_button": "rw",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "preco_tech": "r",
+          "statistique": "r"
+        }
+      },
+      "AE Généré": {
+        "controleur": {
+          "email": "",
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "insert_button": "",
+          "bo_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "return_list_button": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "rw",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "insert_button": "",
+          "bo_id": "r",
+          "status_name": "r",
+          "tr_status_method": "r",
+          "return_list_button": "rw",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "preco_tech": "r",
+          "statistique": "r"
+        }
+      },
+      "AE Soumis": {
+        "controleur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "r",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "rw",
+          "accepted_by_cpa": "rw",
+          "identification_complete": "rw",
+          "definition_complete": "rw",
+          "comment": "rw",
+          "priority_id": "r",
+          "insert_button": "",
+          "bo_id": "r",
+          "status_name": "r",
+          "tr_status_method": "r",
+          "return_list_button": "rw",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "r",
+          "insert_button": "",
+          "bo_id": "r",
+          "status_name": "r",
+          "tr_status_method": "r",
+          "return_list_button": "rw",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "preco_tech": "r",
+          "statistique": "r"
+        }
+      },
+      "Autorisée": {
+        "controleur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "r",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "r",
+          "note": "",
+          "note_line": "",
+          "signed": "r",
+          "accepted_by_cpa": "r",
+          "identification_complete": "r",
+          "definition_complete": "r",
+          "comment": "r",
+          "priority_id": "r",
+          "insert_button": "",
+          "bo_id": "r",
+          "status_name": "r",
+          "tr_status_method": "r",
+          "return_list_button": "rw",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "",
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "insert_button": "",
+          "bo_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "return_list_button": "rw",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "statistique": ""
+        }
+      },
+      "Refusée": {
+        "controleur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "r",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "r",
+          "accepted_by_cpa": "r",
+          "identification_complete": "r",
+          "definition_complete": "r",
+          "comment": "r",
+          "priority_id": "r",
+          "insert_button": "",
+          "bo_id": "r",
+          "status_name": "r",
+          "tr_status_method": "r",
+          "return_list_button": "rw",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "status": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "r",
+          "accepted_by_cpa": "r",
+          "identification_complete": "r",
+          "definition_complete": "r",
+          "comment": "r",
+          "priority_id": "r",
+          "insert_button": "",
+          "bo_id": "r",
+          "status_name": "rw",
+          "tr_status_method": "rw",
+          "return_list_button": "rw",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "preco_tech": "r",
+          "statistique": "r"
+        }
+      },
+      "Extraction terminée": {
+        "controleur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "company": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "insert_button": "",
+          "return_list_button": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "company": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "insert_button": "",
+          "return_list_button": "",
+          "statistique": ""
+        }
+      },
+      "Fichier invalidé": {
+        "controleur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "company": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "insert_button": "",
+          "return_list_button": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "company": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "insert_button": "",
+          "return_list_button": "",
+          "statistique": ""
+        }
+      },
+      "Fichier déposé": {
+        "controleur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "company": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "insert_button": "",
+          "return_list_button": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "company": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "insert_button": "",
+          "return_list_button": "",
+          "statistique": ""
+        }
+      },
+      "Fichier accepté": {
+        "controleur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "company": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "insert_button": "",
+          "return_list_button": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "company": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "insert_button": "",
+          "return_list_button": "",
+          "statistique": ""
+        }
+      },
+      "Dépôt terminé": {
+        "controleur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "company": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "insert_button": "",
+          "return_list_button": "",
+          "statistique": ""
+        },
+        "demandeur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "email": "",
+          "company": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "status": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "tr_status_method": "",
+          "insert_button": "",
+          "return_list_button": "",
+          "statistique": ""
+        }
+      }
+    }
+  },
+  "update": {
+    "name": "extraction_extraction_extraction-form",
+    "title": "EXTRACTION_EXTRACTION_EXTRACTION_TITLE",
+    "input_size": "xxs",
+    "nb_cols": 12,
+    "javascript": true,
+    "rows": [
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "bo_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_BO_ID",
+            "required": false,
+            "nb_cols": 12,
+            "id": "bo_id_1_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "label",
+            "name": "status_name",
+            "nb_cols": 12,
+            "id": "Element_6_25_1"
+          },
+          {
+            "type": "checkbox",
+            "name": "preco_tech",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE",
+            "required": false,
+            "nb_cols": 4,
+            "id": "checkbox_tech_2_1"
+          },
+          {
+            "type": "checkbox",
+            "name": "chart_graph",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE",
+            "required": false,
+            "nb_cols": 4,
+            "id": "checkbox_carto"
+          },
+          {
+            "type": "checkbox",
+            "name": "metadonnees",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO",
+            "required": false,
+            "nb_cols": 4,
+            "id": "checkbox_iso"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "creation_date",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "creation_date_4_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "email",
+            "name": "email",
+            "label": "FORM_EMAIL_USERS_USER",
+            "required": false,
+            "nb_cols": 4,
+            "id": "email_3_1",
+            "pattern": "^(([a-zA-Z]|[0-9])|([-]|[_]|[.]))+[@](([a-zA-Z]|[0-9])|([-]|[_]|[.])){2,63}[.](([a-zA-Z0-9]){2,63})+$"
+          },
+          {
+            "type": "text",
+            "name": "company",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY",
+            "required": true,
+            "nb_cols": 4,
+            "id": "company_8_1"
+          },
+          {
+            "type": "text",
+            "name": "requestor",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR",
+            "required": false,
+            "nb_cols": 4,
+            "id": "requestor_5_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "select",
+            "name": "extent_method",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD",
+            "required": true,
+            "nb_cols": 12,
+            "id": "extent_method_15_1",
+            "options": [
+              "Commmunes|id_com",
+              "Conseils de Territoire|id_conseil",
+              "Etendue libre|extent"
+            ],
+            "id_from": "extent_method_15_1_from"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "list",
+            "name": "id_com",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM",
+            "required": false,
+            "nb_cols": 12,
+            "datasource": {
+              "datasource_id": "datasource_9",
+              "sort_order": "ASC",
+              "distinct": "true",
+              "label_key": "name",
+              "order_by": "name",
+              "id_key": "commune_id",
+              "attributs": "commune_id|name"
+            },
+            "id": "id_com_22_1",
+            "id_from": "id_com_22_1_from",
+            "size": 10
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "list",
+            "name": "id_conseil",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL",
+            "required": false,
+            "nb_cols": 12,
+            "datasource": {
+              "datasource_id": "datasource_8",
+              "sort_order": "ASC",
+              "distinct": "true",
+              "label_key": "name",
+              "order_by": "name",
+              "id_key": "ct_id",
+              "attributs": "ct_id|name"
+            },
+            "id": "id_conseil_23_1",
+            "id_from": "id_conseil_23_1_from",
+            "size": 10
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "map_vmap",
+            "name": "extent",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT",
+            "required": false,
+            "nb_cols": 12,
+            "id": "extent_7_1",
+            "style": {
+              "height": "250px"
+            },
+            "map_options": {
+              "proj": "EPSG:2154",
+              "type": "vmap",
+              "center": {
+                "extent": [
+                  4510838297753.592,
+                  313452152357706.75,
+                  4510842604414.408,
+                  313452153911336.25
+                ],
+                "coord": [
+                  4510840451084,
+                  313452153134521.5
+                ],
+                "scale": 23468294
+              },
+              "controls": {
+                "MP": true,
+                "ZO": true,
+                "SL": true,
+                "CP": true
+              },
+              "layers": [],
+              "interactions": {
+                "multi_geometry": false,
+                "full_screen": true,
+                "RA": true,
+                "RO": true,
+                "ED": true,
+                "DP": false,
+                "DL": false,
+                "DPol": true,
+                "SE": true
+              },
+              "draw_color": "rgba(54,184,255,0.6)",
+              "contour_color": "rgba(0,0,0,0.4)",
+              "contour_size": 2,
+              "circle_radius": 6,
+              "features": [],
+              "coord_accuracy": 8,
+              "tree": {
+                "name": "Tree",
+                "children": [
+                  {
+                    "view": {
+                      "center": [
+                        "902168",
+                        "6269043"
+                      ],
+                      "zoom": 7,
+                      "maxZoom": 28,
+                      "minZoom": 0,
+                      "projection": "EPSG:2154",
+                      "extent": [
+                        4510835482577.04,
+                        313452150322452.2,
+                        4510845419590.96,
+                        313452155946590.8
+                      ]
+                    }
+                  },
+                  {
+                    "name": "extraction",
+                    "children": [
+                      {
+                        "name": "REF_ortho2011",
+                        "layerType": "tilewms",
+                        "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_ortho2011/MapServer/WMSServer",
+                        "index": -1,
+                        "visible": true,
+                        "opacity": 1,
+                        "is_dynamic": false,
+                        "is_filtered": false,
+                        "version": "1.3.0",
+                        "params": {
+                          "LAYERS": "0",
+                          "VERSION": "1.3.0",
+                          "STYLES": ""
+                        },
+                        "bo_queryable": false,
+                        "layer_id": 1,
+                        "select": true
+                      },
+                      {
+                        "name": "REF_CPA_LIMITE_COMMUNE",
+                        "layerType": "tilewms",
+                        "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_CPA_LIMITE_COMMUNE/MapServer/WMSServer",
+                        "index": -1,
+                        "visible": true,
+                        "opacity": 1,
+                        "is_dynamic": false,
+                        "is_filtered": false,
+                        "version": "1.3.0",
+                        "params": {
+                          "LAYERS": "0,1",
+                          "VERSION": "1.3.0",
+                          "STYLES": ""
+                        },
+                        "bo_queryable": false,
+                        "layer_id": 2,
+                        "select": true
+                      }
+                    ],
+                    "visible": true
+                  }
+                ]
+              }
+            }
+          }
+        ]
+      },
+      {
+        "class": "extraction-treeview",
+        "fields": [
+          {
+            "type": "treeview",
+            "name": "layers",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS",
+            "required": false,
+            "nb_cols": 12,
+            "id": "layers_9_1",
+            "size": 20,
+            "options": {
+              "showBorder": false,
+              "levels": 0,
+              "showCheckbox": true,
+              "expandIcon": "glyphicon glyphicon-folder-close",
+              "collapseIcon": "glyphicon glyphicon-folder-open",
+              "highlightSelected": false,
+              "multiSelect": true,
+              "data": "getExtractionLayersTree()"
+            }
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "treeview",
+            "name": "statistique",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATISTIQUE",
+            "required": false,
+            "pattern": "",
+            "nb_cols": 12,
+            "id": "statistique_9_1",
+            "options": {
+              "showBorder": false,
+              "levels": 0,
+              "showCheckbox": true,
+              "expandIcon": "glyphicon glyphicon-folder-close",
+              "collapseIcon": "glyphicon glyphicon-folder-open",
+              "highlightSelected": false,
+              "multiSelect": true,
+              "data": "getExtractionStatsTree()"
+            }
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "file_wsdata",
+            "name": "ae",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "ae_6_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "select",
+            "name": "coordsys_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID",
+            "required": false,
+            "nb_cols": 4,
+            "id": "coordsys_id_11_1",
+            "datasource": {
+              "datasource_id": "datasource_1",
+              "sort_order": "ASC",
+              "distinct": "true",
+              "label_key": "coordsys",
+              "order_by": "coordsys",
+              "id_key": "coordsys_id",
+              "attributs": "coordsys_id|coordsys"
+            },
+            "id_from": "coordsys_id_11_1_from"
+          },
+          {
+            "type": "select",
+            "name": "vector_format_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID",
+            "required": false,
+            "nb_cols": 4,
+            "id": "vector_format_id_10_1",
+            "datasource": {
+              "datasource_id": "datasource_2",
+              "sort_order": "ASC",
+              "distinct": "true",
+              "label_key": "format",
+              "order_by": "format",
+              "id_key": "format_id",
+              "attributs": "format_id|format"
+            },
+            "id_from": "vector_format_id_10_1_from"
+          },
+          {
+            "type": "select",
+            "name": "raster_format_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID",
+            "required": false,
+            "nb_cols": 4,
+            "id": "raster_format_id_14_1",
+            "datasource": {
+              "datasource_id": "datasource_3",
+              "sort_order": "ASC",
+              "distinct": "true",
+              "label_key": "format",
+              "order_by": "format",
+              "id_key": "format_id",
+              "attributs": "format_id|format"
+            },
+            "id_from": "raster_format_id_14_1_from"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "history",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY",
+            "required": false,
+            "nb_cols": 12,
+            "id": "history_3_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "note",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "note_12_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "note_line",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE",
+            "required": false,
+            "nb_cols": 12,
+            "id": "note_line_13_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "radio",
+            "options": {
+              "choices": [
+                {
+                  "label": "oui",
+                  "value": true,
+                  "$$hashKey": "object:2269"
+                },
+                {
+                  "label": "non",
+                  "value": false,
+                  "$$hashKey": "object:2270"
+                }
+              ]
+            },
+            "name": "signed",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED",
+            "required": false,
+            "nb_cols": 3,
+            "id": "signed_16_1"
+          },
+          {
+            "type": "radio",
+            "options": {
+              "choices": [
+                {
+                  "label": "oui",
+                  "value": true,
+                  "$$hashKey": "object:2277"
+                },
+                {
+                  "label": "non",
+                  "value": false,
+                  "$$hashKey": "object:2278"
+                }
+              ]
+            },
+            "name": "accepted_by_cpa",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA",
+            "required": false,
+            "nb_cols": 3,
+            "id": "accepted_by_cpa_17_1"
+          },
+          {
+            "type": "radio",
+            "options": {
+              "choices": [
+                {
+                  "label": "oui",
+                  "value": true,
+                  "$$hashKey": "object:2285"
+                },
+                {
+                  "label": "non",
+                  "value": false,
+                  "$$hashKey": "object:2286"
+                }
+              ]
+            },
+            "name": "identification_complete",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE",
+            "required": false,
+            "nb_cols": 3,
+            "id": "identification_complete_18_1"
+          },
+          {
+            "type": "radio",
+            "options": {
+              "choices": [
+                {
+                  "label": "oui",
+                  "value": true,
+                  "$$hashKey": "object:2293"
+                },
+                {
+                  "label": "non",
+                  "value": false,
+                  "$$hashKey": "object:2294"
+                }
+              ]
+            },
+            "name": "definition_complete",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE",
+            "required": false,
+            "nb_cols": 3,
+            "id": "definition_complete_19_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "comment",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT",
+            "required": false,
+            "nb_cols": 12,
+            "id": "comment_20_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "select",
+            "name": "priority_id",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID",
+            "required": false,
+            "nb_cols": 12,
+            "id": "priority_id_21_1",
+            "options": [
+              "Heures Pleines|1",
+              "Heures creuses|0"
+            ],
+            "id_from": "priority_id_21_1_from"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "file_wsdata",
+            "name": "input_deposit",
+            "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_INPUT_DEPOSIT",
+            "required": false,
+            "pattern": "",
+            "nb_cols": 12,
+            "id": "Element_6_19_1"
+          }
+        ]
+      },
+      {
+        "class": "wab-method-button",
+        "fields": [
+          {
+            "type": "button",
+            "class": "btn-ungroup btn-group-sm",
+            "nb_cols": 1,
+            "name": "update_button",
+            "id": "update_button",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "FORM_UPDATE",
+                "class": "btn-primary"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "return_list_button",
+            "nb_cols": 1,
+            "id": "return_list_button",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "button",
+                "name": "return_list",
+                "label": "FORM_RETURN_LIST",
+                "class": "btn-primary",
+                "event": "setMode(\"search\")"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_2",
+            "nb_cols": 1,
+            "id": "Element_2_20_1",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEPOSIT",
+                "class": "btn-primary",
+                "event": "callBoMethod('trDeposer')"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_0",
+            "nb_cols": 1,
+            "id": "Element_0_25_2",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ALLOW_EXTRACTION",
+                "class": "btn-primary",
+                "event": "callBoMethod('trAutoriser')"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_1",
+            "nb_cols": 1,
+            "id": "Element_1_25_3",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ASK_AE",
+                "class": "btn-primary",
+                "event": "callBoMethod('trDemander')",
+                "disabled": false
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_3",
+            "nb_cols": 1,
+            "id": "Element_3_25_5",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATE",
+                "class": "btn-primary",
+                "event": "callBoMethod('trNouveau')"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_4",
+            "nb_cols": 1,
+            "id": "Element_4_25_6",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REJECT_EXTRACTION",
+                "class": "btn-primary",
+                "event": "callBoMethod('trRefuser')"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_5",
+            "nb_cols": 1,
+            "id": "Element_5_25_7",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RELOAD_AE",
+                "class": "btn-primary",
+                "event": "callBoMethod('trResoumettre')"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_7",
+            "nb_cols": 1,
+            "id": "Element_7_25_9",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SEND_AE",
+                "class": "btn-primary",
+                "event": "callBoMethod('trSoumettre')"
+              }
+            ]
+          },
+          {
+            "type": "button",
+            "name": "Element_8",
+            "nb_cols": 1,
+            "id": "Element_8_25_10",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TERMINATE",
+                "class": "btn-primary",
+                "event": "callBoMethod('trTerminer')"
+              }
+            ]
+          }
+        ]
+      }
+    ],
+    "initEvent": "initExtractionExtractionForm()",
+    "event": "sendSimpleForm()",
+    "afterEvent": "editSectionForm()",
+    "tabs": {
+      "position": "top",
+      "list": [
+        {
+          "label": "Tab 0",
+          "elements": [
+            "bo_id",
+            "history",
+            "creation_date",
+            "requestor",
+            "ae",
+            "extent",
+            "company",
+            "layers",
+            "vector_format_id",
+            "coordsys_id",
+            "note",
+            "note_line",
+            "raster_format_id",
+            "extent_method",
+            "signed",
+            "accepted_by_cpa",
+            "identification_complete",
+            "definition_complete",
+            "comment",
+            "priority_id",
+            "id_com",
+            "id_conseil",
+            "update_button",
+            "status_name",
+            "Element_3",
+            "Element_4",
+            "Element_5",
+            "Element_7",
+            "Element_8",
+            "status_name",
+            "return_list_button",
+            "preco_tech",
+            "chart_graph",
+            "metadonnees",
+            "statistique",
+            "Element_2",
+            "input_deposit"
+          ]
+        }
+      ]
+    },
+    "wab": {
+      "START": {
+        "controleur": {
+          "email": "",
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "",
+          "status_name": "",
+          "update_button": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": ""
+        },
+        "demandeur": {
+          "email": "rw",
+          "company": "rw",
+          "layers": "rw",
+          "coordsys_id": "rw",
+          "vector_format_id": "rw",
+          "raster_format_id": "rw",
+          "extent_method": "rw",
+          "id_com": "rw",
+          "id_conseil": "rw",
+          "extent": "rw",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "",
+          "status_name": "",
+          "update_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "Element_0": "",
+          "statistique": "rw",
+          "Element_2": "",
+          "input_deposit": ""
+        }
+      },
+      "Nouveau": {
+        "controleur": {
+          "email": "",
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "",
+          "status_name": "",
+          "update_button": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": ""
+        },
+        "demandeur": {
+          "email": "rw",
+          "company": "rw",
+          "layers": "rw",
+          "coordsys_id": "rw",
+          "vector_format_id": "rw",
+          "raster_format_id": "rw",
+          "extent_method": "rw",
+          "id_com": "rw",
+          "id_conseil": "rw",
+          "extent": "rw",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "rw",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "r",
+          "status_name": "",
+          "update_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "rw",
+          "chart_graph": "rw",
+          "metadonnees": "rw",
+          "preco_tech": "rw",
+          "Element_0": "",
+          "statistique": "rw",
+          "Element_2": "",
+          "input_deposit": ""
+        }
+      },
+      "AE Demandé": {
+        "controleur": {
+          "email": "",
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "",
+          "status_name": "",
+          "update_button": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": ""
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "r",
+          "status_name": "",
+          "update_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "preco_tech": "r",
+          "Element_0": "",
+          "statistique": "r",
+          "Element_2": "",
+          "input_deposit": ""
+        }
+      },
+      "AE Généré": {
+        "controleur": {
+          "email": "",
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "",
+          "status_name": "",
+          "update_button": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": ""
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "rw",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "r",
+          "status_name": "",
+          "update_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "rw",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "preco_tech": "r",
+          "Element_0": "",
+          "statistique": "r",
+          "Element_2": "",
+          "input_deposit": ""
+        }
+      },
+      "AE Soumis": {
+        "controleur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "history": "r",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "r",
+          "note": "",
+          "note_line": "",
+          "signed": "rw",
+          "accepted_by_cpa": "rw",
+          "identification_complete": "rw",
+          "definition_complete": "rw",
+          "comment": "rw",
+          "priority_id": "r",
+          "bo_id": "r",
+          "status_name": "",
+          "update_button": "rw",
+          "Element_3": "",
+          "Element_4": "rw",
+          "Element_5": "rw",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "preco_tech": "r",
+          "Element_0": "rw",
+          "statistique": "r",
+          "Element_2": "",
+          "input_deposit": ""
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "r",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "r",
+          "bo_id": "r",
+          "status_name": "",
+          "update_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "preco_tech": "",
+          "Element_0": "",
+          "statistique": "r",
+          "Element_2": "",
+          "input_deposit": ""
+        }
+      },
+      "Autorisée": {
+        "controleur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "history": "r",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "r",
+          "note": "",
+          "note_line": "",
+          "signed": "r",
+          "accepted_by_cpa": "r",
+          "identification_complete": "r",
+          "definition_complete": "r",
+          "comment": "r",
+          "priority_id": "rw",
+          "bo_id": "r",
+          "status_name": "",
+          "update_button": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "preco_tech": "r",
+          "Element_0": "",
+          "statistique": "r",
+          "Element_2": "",
+          "input_deposit": ""
+        },
+        "demandeur": {
+          "email": "",
+          "company": "",
+          "layers": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "history": "",
+          "creation_date": "",
+          "requestor": "",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "bo_id": "",
+          "status_name": "",
+          "update_button": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": ""
+        }
+      },
+      "Refusée": {
+        "controleur": {
+          "email": "",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "history": "r",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "",
+          "note": "",
+          "note_line": "",
+          "signed": "r",
+          "accepted_by_cpa": "r",
+          "identification_complete": "r",
+          "definition_complete": "r",
+          "comment": "r",
+          "priority_id": "r",
+          "bo_id": "r",
+          "status_name": "",
+          "update_button": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "preco_tech": "r",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": "r"
+        },
+        "demandeur": {
+          "email": "r",
+          "company": "r",
+          "layers": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "history": "",
+          "creation_date": "r",
+          "requestor": "r",
+          "ae": "rw",
+          "note": "",
+          "note_line": "",
+          "signed": "r",
+          "accepted_by_cpa": "r",
+          "identification_complete": "r",
+          "definition_complete": "r",
+          "comment": "r",
+          "priority_id": "r",
+          "bo_id": "r",
+          "status_name": "",
+          "update_button": "rw",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "rw",
+          "Element_7": "",
+          "Element_8": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "preco_tech": "",
+          "Element_0": "",
+          "statistique": "r",
+          "Element_2": "",
+          "input_deposit": "r"
+        }
+      },
+      "Fichier invalidé": {
+        "controleur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "creation_date": "",
+          "email": "",
+          "company": "",
+          "requestor": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "ae": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "history": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "update_button": "",
+          "return_list_button": "",
+          "Element_1": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": "r"
+        },
+        "demandeur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "creation_date": "",
+          "email": "",
+          "company": "",
+          "requestor": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "ae": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "history": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "update_button": "",
+          "return_list_button": "",
+          "Element_1": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": "r"
+        }
+      },
+      "Fichier déposé": {
+        "controleur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "creation_date": "",
+          "email": "",
+          "company": "",
+          "requestor": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "ae": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "history": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "update_button": "",
+          "return_list_button": "",
+          "Element_1": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": "r"
+        },
+        "demandeur": {
+          "bo_id": "r",
+          "preco_tech": "r",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "creation_date": "r",
+          "email": "r",
+          "company": "r",
+          "requestor": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "layers": "r",
+          "ae": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "history": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "update_button": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "Element_0": "",
+          "statistique": "r",
+          "Element_2": "",
+          "input_deposit": "r"
+        }
+      },
+      "Fichier accepté": {
+        "controleur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "creation_date": "",
+          "email": "",
+          "company": "",
+          "requestor": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "ae": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "history": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "update_button": "",
+          "return_list_button": "",
+          "Element_1": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": "r"
+        },
+        "demandeur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "creation_date": "",
+          "email": "",
+          "company": "",
+          "requestor": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "ae": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "history": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "update_button": "",
+          "return_list_button": "",
+          "Element_1": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": "r"
+        }
+      },
+      "Dépôt terminé": {
+        "controleur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "creation_date": "",
+          "email": "",
+          "company": "",
+          "requestor": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "ae": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "history": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "update_button": "",
+          "return_list_button": "",
+          "Element_1": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": "r"
+        },
+        "demandeur": {
+          "bo_id": "",
+          "preco_tech": "",
+          "chart_graph": "",
+          "metadonnees": "",
+          "creation_date": "",
+          "email": "",
+          "company": "",
+          "requestor": "",
+          "extent_method": "",
+          "id_com": "",
+          "id_conseil": "",
+          "extent": "",
+          "layers": "",
+          "ae": "",
+          "coordsys_id": "",
+          "vector_format_id": "",
+          "raster_format_id": "",
+          "history": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "update_button": "",
+          "return_list_button": "",
+          "Element_1": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "Element_0": "",
+          "statistique": "",
+          "Element_2": "",
+          "input_deposit": "r"
+        }
+      },
+      "Extraction terminée": {
+        "controleur": {
+          "bo_id": "r",
+          "preco_tech": "r",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "creation_date": "r",
+          "email": "r",
+          "company": "r",
+          "requestor": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "layers": "r",
+          "ae": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "history": "r",
+          "note": "",
+          "note_line": "",
+          "signed": "r",
+          "accepted_by_cpa": "r",
+          "identification_complete": "r",
+          "definition_complete": "r",
+          "comment": "r",
+          "priority_id": "r",
+          "status_name": "",
+          "update_button": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "Element_0": "",
+          "statistique": "r",
+          "Element_2": "",
+          "input_deposit": "r"
+        },
+        "demandeur": {
+          "bo_id": "r",
+          "preco_tech": "r",
+          "chart_graph": "r",
+          "metadonnees": "r",
+          "creation_date": "r",
+          "email": "r",
+          "company": "r",
+          "requestor": "r",
+          "extent_method": "r",
+          "id_com": "r",
+          "id_conseil": "r",
+          "extent": "r",
+          "layers": "r",
+          "ae": "r",
+          "coordsys_id": "r",
+          "vector_format_id": "r",
+          "raster_format_id": "r",
+          "history": "",
+          "note": "",
+          "note_line": "",
+          "signed": "",
+          "accepted_by_cpa": "",
+          "identification_complete": "",
+          "definition_complete": "",
+          "comment": "",
+          "priority_id": "",
+          "status_name": "",
+          "update_button": "",
+          "return_list_button": "rw",
+          "Element_1": "",
+          "Element_3": "",
+          "Element_4": "",
+          "Element_5": "",
+          "Element_7": "",
+          "Element_8": "",
+          "Element_0": "",
+          "statistique": "r",
+          "Element_2": "rw",
+          "input_deposit": "rw"
+        }
+      }
+    }
+  },
+  "datasources": {
+    "datasource_1": {
+      "type": "web_service",
+      "dataType": "tableValue",
+      "name": "datasource_coordsys",
+      "description": "",
+      "parameters": {
+        "schema": "s_extraction",
+        "table": "rt_coordsys"
+      },
+      "ressource_id": "vitis/genericquerys",
+      "id": "datasource_1"
+    },
+    "datasource_2": {
+      "type": "web_service",
+      "dataType": "tableValue",
+      "name": "datasource_vector_format",
+      "description": "",
+      "parameters": {
+        "schema": "s_extraction",
+        "table": "rt_format",
+        "filter": {
+          "use_for_vector": true
+        }
+      },
+      "ressource_id": "vitis/genericquerys",
+      "id": "datasource_2"
+    },
+    "datasource_3": {
+      "type": "web_service",
+      "dataType": "tableValue",
+      "name": "datasource_raster_format",
+      "description": "",
+      "parameters": {
+        "schema": "s_extraction",
+        "table": "rt_format",
+        "filter": {
+          "use_for_raster": true
+        }
+      },
+      "ressource_id": "vitis/genericquerys",
+      "id": "datasource_3"
+    },
+    "datasource_4": {
+      "type": "web_service",
+      "dataType": "externalDatabase",
+      "name": "datasource_commune",
+      "description": "",
+      "parameters": {
+        "server": "scpa7717",
+        "port": "5432",
+        "sgbd": "pgsql",
+        "login": "sigl",
+        "password": "sigl28sig",
+        "database": "sig",
+        "schema": "cad93",
+        "table": "commune"
+      },
+      "ressource_id": "vitis/genericquerys",
+      "id": "datasource_4"
+    },
+    "datasource_5": {
+      "type": "web_service",
+      "dataType": "externalDatabase",
+      "name": "datasource_commune",
+      "description": "",
+      "parameters": {
+        "server": "scpa7717",
+        "port": "5432",
+        "sgbd": "pgsql",
+        "login": "sigl",
+        "password": "sigl28sig",
+        "database": "sig",
+        "schema": "ref93",
+        "table": "ref_amp_lim_ct"
+      },
+      "ressource_id": "vitis/genericquerys",
+      "id": "datasource_5"
+    },
+    "datasource_6": {
+      "type": "web_service",
+      "dataType": "externalDatabase",
+      "name": "datasource_ct",
+      "description": "",
+      "parameters": {
+        "filter": {
+          "relation": "AND",
+          "operators": []
+        },
+        "server": "scpa7717",
+        "port": "5432",
+        "sgbd": "pgsql",
+        "login": "sigl",
+        "password": "sigl28sig",
+        "database": "sig",
+        "schema": "ref93",
+        "table": "ct"
+      },
+      "ressource_id": "vitis/genericquerys/ct",
+      "id": "datasource_6"
+    },
+    "datasource_7": {
+      "type": "web_service",
+      "dataType": "externalDatabase",
+      "name": "datasource_com",
+      "description": "",
+      "parameters": {
+        "filter": {
+          "relation": "AND",
+          "operators": []
+        },
+        "server": "GEWURZTRAMINER",
+        "port": "5432",
+        "sgbd": "pgsql",
+        "login": "postgres",
+        "password": "postgres",
+        "database": "vitis_gtf",
+        "schema": "s_extraction",
+        "table": "commune"
+      },
+      "ressource_id": "vitis/genericquerys/commune",
+      "id": "datasource_7"
+    },
+    "datasource_8": {
+      "type": "web_service",
+      "dataType": "tableValue",
+      "name": "datasource_8",
+      "description": "",
+      "parameters": {
+        "filter": {
+          "relation": "AND",
+          "operators": []
+        },
+        "schema": "s_extraction",
+        "table": "ct"
+      },
+      "ressource_id": "vitis/genericquerys",
+      "id": "datasource_8"
+    },
+    "datasource_9": {
+      "type": "web_service",
+      "dataType": "tableValue",
+      "name": "datasource_9",
+      "description": "",
+      "parameters": {
+        "filter": {
+          "relation": "AND",
+          "operators": []
+        },
+        "schema": "s_extraction",
+        "table": "commune"
+      },
+      "ressource_id": "vitis/genericquerys",
+      "id": "datasource_9"
+    },
+    "datasource_10": {
+      "type": "object",
+      "dataType": "text",
+      "name": "datasource_format",
+      "description": "",
+      "options": [
+        "Vecteur|vector",
+        "Raster|raster"
+      ],
+      "id": "datasource_10"
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js b/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js
new file mode 100755
index 0000000000000000000000000000000000000000..b0b587e3d9efe94d43508b605c639499751b96ac
--- /dev/null
+++ b/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js
@@ -0,0 +1,253 @@
+/* global angular, goog, vitisApp, bootbox */
+
+//bloque les delete du destructeur à éviter
+//'use strict';
+
+console.info("Generateur_wab_generator_1 loaded --> your functions are ready");
+/***********************************************************************************
+ Signaletique_Recap_0 Javascript
+ ***********************************************************************************/
+
+var oFormRequired = {
+    "sUrl": "",
+    "scope_": {},
+    "toDestructor": []
+};
+/**
+ * constructor_form
+ * Fonction appelé à l'initialisation du formulaire si dans la structure json javascript vaut "true"
+ * @param {type} scope
+ * @param {type} s_url
+ * @returns {undefined}
+ */
+var constructor_form = function (scope, s_url) {
+    //////////////////////////////////////////////////////////
+    //Ne pas toucher
+    console.log("Constructor");
+    
+    oFormRequired.sUrl = s_url;
+    oFormRequired.scope_ = scope;
+    //console.log(scope);
+    //////////////////////////////////////////////////////////
+    // Permet de recharge le javascript d'une section à une autre
+    var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+    var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+    var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+    
+    /*oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".btn_refresh_treeview", function (value) {
+        console.log("DJFHVHJCHSJCJH");
+    }*/
+    
+    /**
+     * loadTreeview function.
+     * Crée le treeview des fichiers du projet fme.
+     **/
+    scope["loadTreeviewDepot"] = function() {
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        //
+        $log.info("loadTreeviewDepot");
+        
+        // Charge l'arborescence des logs.
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extraction_depots/Tree",
+            "scope": scope,
+            "success": function(response) {
+                if (response["data"]["status"] == 1) {
+                    var aNodes = [];
+                    data = response["data"]["tree"];
+                    scope["aSelectedWorkspaceFile"] = [];
+                    scope["aTreeviewLogs"] = data;
+                    // Crée l'arborescence dans l'élément.
+                    
+                    for (var i in response["data"]["content"]) {
+                        var aNode = {"text": response["data"]["content"][i]["filename"].split("/").pop(), "nodes": []}
+                        for (var j in response["data"]["content"][i]["content"]) {
+                            aNode["nodes"].push({"text": response["data"]["content"][i]["content"][j]["filename"].split("/").pop(), "tags": response["data"]["content"][i]["content"][j]["lastModification"].split(),});
+                        }
+                        aNodes.push(aNode);
+                    }
+                    
+                    $("#Element_0_2_1_treeview")["treeview"]({
+                        "showBorder": false,
+                        "expandIcon": "glyphicon glyphicon-folder-close",
+                        "collapseIcon": "glyphicon glyphicon-folder-open",
+                        "highlightSelected": true,
+                        "multiSelect": false,
+                        "showTags": true,
+                        "data": aNodes
+                    });
+                }
+            }
+        });
+    };
+    
+    scope["deleteFileDepot"] = function () {
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        //
+        $log.info("deleteFileDepot");
+        
+        var aSelectedNode = $("#Element_0_2_1_treeview")["treeview"]('getSelected')
+        
+        if (aSelectedNode.length > 0)
+        {       
+            var aNodeParent = $("#Element_0_2_1_treeview")["treeview"]('getNode', aSelectedNode[0]["parentId"]);
+            ajaxRequest({
+                "method": "DELETES",
+                "params": {
+                        "file_name": aNodeParent["text"] + "/" + aSelectedNode[0]["text"]
+                    },
+                "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extraction_depots",
+                "scope": scope,
+                "success": function(response) {
+                    if (response["data"]["status"] == 1) {
+                    }
+                }
+            });
+            scope["loadTreeviewDepot"]();
+        }
+        else
+        {
+            var sErrorMessage = "EXTRACTION_DEPOT_DELETE_SELECT_A_FILE";
+            var oOptions = {
+                "className": "modal-danger",
+                "message": sErrorMessage
+            };
+            //$('#myModal').modal('toggle');
+            scope.$root["modalWindow"]("dialog", "EXTRACTION_DEPORT_DELETE_NO_SELECTED", oOptions);
+            //$('#myModal').modal('hide');
+        }
+        
+    }
+    scope["loadTreeviewDepot"]();
+    
+    scope["downloadFileDepot"] = function () {
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        //
+        $log.info("downloadFileDepot");
+        
+        var aSelectedNode = $("#Element_0_2_1_treeview")["treeview"]('getSelected');
+        var sFileName = aSelectedNode[0]["text"];
+        var aNodeParent = $("#Element_0_2_1_treeview")["treeview"]('getNode', aSelectedNode[0]["parentId"]);
+        if (aSelectedNode[0]["parentId"] == "")
+        {
+            if (sFileName != "")
+            {
+                ajaxRequest({
+                    "method": "GET",
+                    "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extraction_depots/File",
+                    "scope": scope,
+                    "params": {
+                        "file_name": aNodeParent["text"] + "/" + aSelectedNode[0]["text"]
+                    },
+                    "responseType": 'blob',
+                    "success": function(response) {
+                        if (typeof(window.navigator.msSaveOrOpenBlob) == "undefined") {
+                            // Crée un lien et simule un click dessus.
+                            var link = document.createElement('a');
+                            link.href = window.URL.createObjectURL(response["data"]);
+                            link.download = sFileName;
+                            link.style.display = 'none';
+                            document.body.appendChild(link);
+                            link.click();
+                            document.body.removeChild(link);
+                        }
+                        else {
+                            // Pour Edge et IE.
+                            window.navigator.msSaveOrOpenBlob(response["data"], sFileName);
+                        }
+                    }
+                });
+            }
+        }
+    }
+    //var iMaxUploadFileSize = parseInt(propertiesSrvc["max_upload_file_size"]);
+    
+    /**
+     * beforeProjectDirectory function.
+     * Traitement avant l'envoi du formulaire de la section "Répertoire Projet" (publication > Projet FME).
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["beforeDepositDirectory"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("beforeDepositDirectory");
+        envSrvc.sMode = "update";
+        var scope = this;
+        var deferred = $q.defer();
+        var promise = deferred.promise;
+        //
+        var oFile = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["control_file"];
+        var iMaxUploadFileSize = parseInt(propertiesSrvc["max_upload_file_size"]);
+        var sErrorMessage;
+
+        // Vérification du fichier .fmw.
+        if (typeof (oFile) === "object" && typeof (oFile["aFiles"]) !== "undefined" && oFile["aFiles"].length > 0) {
+                // Taille maxi du fichier.
+                if (oFile["aFiles"][0]["size"] > iMaxUploadFileSize)
+                    sErrorMessage = "ERROR_FILE_SIZE_EXTRACTION_LOAD_DEPOSIT_DIRECTORY";
+        }
+        // Validation du formulaire.
+        if (typeof (sErrorMessage) === "undefined")
+            deferred.resolve();
+
+        // Affichage de la fenêtre modale d'erreur.
+        if (typeof (sErrorMessage) !== "undefined") {
+            var oOptions = {
+                "className": "modal-danger",
+                "message": sErrorMessage
+            };
+            scope.$root["modalWindow"]("dialog", "FORM_VALIDATION_ERROR", oOptions);
+        }
+        //
+        return promise;
+    };
+    
+    /**
+     * afterProjectDirectory function.
+     * Actions à effectuer après l'upload d'un fichier dans le répertoire d'un projet fme.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["afterDepositDirectory"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        //
+        $log.info("afterDepositDirectory");
+        // Remise à zéro du formulaire.
+        this["resetForm"]();
+        angular.element("input[type=file]")["fileinput"]("clear");
+        // Recharge la liste des fichiers.
+        this["loadTreeviewDepot"]();
+    }
+    //
+};
+
+
+/**
+ * destructor_form
+ * Fonction appelé quand on quitte le formulaire nettoie toute les fonctions pour les rendres inutilisable en dehors du formulaire
+ * @returns {undefined}
+ */
+var destructor_form = function () {
+    console.log("Destructor");
+    
+    for (var i = 0; i < oFormRequired.toDestructor.length; i++) {
+        oFormRequired.toDestructor[i] = undefined;
+        delete oFormRequired.toDestructor[i];
+    }
+    
+    //supprimer la balise script du js pour pouvoir le recharger si on reviens sur le formulaire plus tard
+    angular.element('[src="' + oFormRequired.sUrl + '?version=' + oFormRequired.scope_["oProperties"]["build"] + '"]').remove();
+    
+    oFormRequired = undefined;
+    delete oFormRequired;
+    
+    constructor_form = undefined;
+    delete constructor_form;
+    destructor_form = undefined;
+    delete destructor_form;
+};
+
+/**********************************************************************************/
\ No newline at end of file
diff --git a/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.json b/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.json
new file mode 100755
index 0000000000000000000000000000000000000000..6a36d947ec8e590d2577149e2020be105b55b46a
--- /dev/null
+++ b/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.json
@@ -0,0 +1,291 @@
+{
+  "search": {
+    "name": "extraction_deposit_directory_update_form",
+    "title": "EXTRACTION_DEPOT_TITLE",
+    "beforeEvent": "beforeDepositDirectory()",
+    "event": "sendSimpleForm()",
+    "afterEvent": "afterDepositDirectory()",
+    "input_size": "xs",
+    "nb_cols": 12,
+    "class": "project-directory-upload-form",
+    "javascript": true,
+    "rows": [
+      {
+        "fields": [
+          {
+            "type": "treeview",
+            "name": "FileTreeView",
+            "label": "",
+            "required": false,
+            "pattern": "",
+            "nb_cols": 12,
+            "id": "Element_0_2_1",
+            "options": {
+              "showBorder": false,
+              "levels": 0,
+              "showCheckbox": true,
+              "expandIcon": "glyphicon glyphicon-folder-close",
+              "collapseIcon": "glyphicon glyphicon-folder-open",
+              "highlightSelected": false,
+              "multiSelect": true,
+              "data": "",
+              "dataLoadingEvent": ""
+            }
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "button",
+            "class": "btn-ungroup btn-group-xs",
+            "name": "group-button",
+            "nb_cols": 12,
+            "buttons": [
+              {
+                "type": "button",
+                "name": "btn_download_file",
+                "glyphicon": "download",
+                "class": "btn-primary btn-xs",
+                "event": "downloadFileDepot()",
+                "tooltip": {
+                  "title": "FORM_DOWNLOAD_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                  "placement": "bottom",
+                  "trigger": "hover",
+                  "container": "body"
+                }
+              },
+              {
+                "type": "button",
+                "name": "btn_refresh_treeview",
+                "glyphicon": "refresh",
+                "class": "btn-primary btn-xs",
+                "event": "loadTreeviewDepot()",
+                "tooltip": {
+                  "title": "FORM_RELOAD_DIRECTORY_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                  "placement": "bottom",
+                  "trigger": "hover",
+                  "container": "body"
+                }
+              },
+              {
+                "type": "button",
+                "name": "btn_delete_file",
+                "glyphicon": "trash",
+                "class": "btn-primary btn-xs",
+                "event": "deleteFileDepot()",
+                "tooltip": {
+                  "title": "FORM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                  "placement": "bottom",
+                  "trigger": "hover"
+                }
+              }
+            ],
+            "id": "undefined_1_1"
+          }
+        ]
+      },
+      {
+        "class": "form-field-inline",
+        "fields": [
+          {
+            "type": "upload",
+            "name": "control_file",
+            "label": "EXTRACTION_DEPOT_FILE_UPLOAD",
+            "nb_cols": 6,
+            "id": "fmw_file_2_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "button",
+            "name": "Element_0",
+            "nb_cols": 12,
+            "id": "Element_0_5_1",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "EXTRACTION_DEPOT_FILE_UPDATE",
+                "class": "btn-primary"
+              }
+            ]
+          }
+        ]
+      }
+    ],
+    "tabs": {
+      "position": "top",
+      "list": [
+        {
+          "label": "Tab 0",
+          "elements": [
+            "btn_download_file",
+            "btn_refresh_treeview",
+            "btn_delete_file",
+            "control_file",
+            "btn_upload_fmw_file",
+            "FileTreeView",
+            "Element_0"
+          ]
+        }
+      ]
+    }
+  },
+  "update": {
+    "name": "extraction_deposit_directory_update_form",
+    "title": "EXTRACTION_DEPOT_TITLE",
+    "beforeEvent": "beforeProjectDirectory()",
+    "event": "sendSimpleForm()",
+    "afterEvent": "afterProjectDirectory()",
+    "input_size": "xs",
+    "nb_cols": 12,
+    "class": "project-directory-upload-form",
+    "rows": [
+      {
+        "fields": [
+          {
+            "type": "treeview",
+            "name": "FileTreeView",
+            "label": "",
+            "required": false,
+            "pattern": "",
+            "nb_cols": 12,
+            "id": "Element_0_2_1",
+            "options": {
+              "showBorder": false,
+              "levels": 0,
+              "showCheckbox": true,
+              "expandIcon": "glyphicon glyphicon-folder-close",
+              "collapseIcon": "glyphicon glyphicon-folder-open",
+              "highlightSelected": false,
+              "multiSelect": true,
+              "data": "",
+              "dataLoadingEvent": ""
+            }
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "button",
+            "class": "btn-ungroup btn-group-xs",
+            "name": "group-button",
+            "nb_cols": 12,
+            "buttons": [
+              {
+                "type": "button",
+                "name": "btn_download_file",
+                "glyphicon": "download",
+                "class": "btn-primary btn-xs",
+                "event": "downloadFile()",
+                "tooltip": {
+                  "title": "FORM_DOWNLOAD_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                  "placement": "bottom",
+                  "trigger": "hover",
+                  "container": "body"
+                }
+              },
+              {
+                "type": "button",
+                "name": "btn_refresh_treeview",
+                "glyphicon": "refresh",
+                "class": "btn-primary btn-xs",
+                "event": "loadTreeviewDepot()",
+                "tooltip": {
+                  "title": "FORM_RELOAD_DIRECTORY_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                  "placement": "bottom",
+                  "trigger": "hover",
+                  "container": "body"
+                }
+              },
+              {
+                "type": "button",
+                "name": "btn_delete_file",
+                "glyphicon": "trash",
+                "class": "btn-primary btn-xs",
+                "event": "deleteFile()",
+                "tooltip": {
+                  "title": "FORM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                  "placement": "bottom",
+                  "trigger": "hover"
+                }
+              }
+            ],
+            "id": "undefined_1_1"
+          }
+        ]
+      },
+      {
+        "class": "form-field-inline",
+        "fields": [
+          {
+            "type": "upload",
+            "name": "control_file",
+            "label": "EXTRACTION_DEPOT_FILE_UPLOAD",
+            "nb_cols": 6,
+            "id": "fmw_file_2_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "button",
+            "name": "Element_0",
+            "nb_cols": 12,
+            "id": "Element_0_5_1",
+            "class": "btn-ungroup btn-group-sm",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "FORM_UPLOAD_FILE_DEPOSIT",
+                "class": "btn-primary"
+              }
+            ]
+          }
+        ]
+      }
+    ],
+    "tabs": {
+      "position": "top",
+      "list": [
+        {
+          "label": "Tab 0",
+          "elements": [
+            "btn_download_file",
+            "btn_refresh_treeview",
+            "btn_delete_file",
+            "control_file",
+            "btn_upload_fmw_file",
+            "FileTreeView",
+            "Element_0"
+          ]
+        }
+      ]
+    }
+  },
+  "insert": {},
+  "display": {
+    "name": "gtf_workspace_project_directory_display_form",
+    "title": "EXTRACTION_DEPOT_TITLE",
+    "input_size": "xs",
+    "nb_cols": 8,
+    "rows": [],
+    "tabs": {
+      "position": "top",
+      "list": [
+        {
+          "label": "Tab 0",
+          "elements": []
+        }
+      ]
+    }
+  },
+  "datasources": {}
+}
\ No newline at end of file
diff --git a/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_coordsys.json b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_coordsys.json
new file mode 100755
index 0000000000000000000000000000000000000000..5aa5221df726feb7afc0c8c75288d33a75631585
--- /dev/null
+++ b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_coordsys.json
@@ -0,0 +1,240 @@
+{
+    "display":{
+        "name":"extraction_ref_extraction_coordsys-form",
+        "title":"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "javascript":false,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"coordsys_id",
+                        "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"coordsys",
+                        "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"display_button",
+                        "id":"display_button",
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "search":{
+        "name":"extraction_ref_extraction_coordsys-form",
+        "title":"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "javascript":false,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"coordsys",
+                        "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "name":"search_button",
+                        "id":"search_button",
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+        "name":"extraction_ref_extraction_coordsys-form",
+        "title":"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE_INSERT",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "javascript":false,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"coordsys_id",
+                        "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID",
+                        "disabled":false,
+                        "required":true,
+                        "nb_cols":12,
+                        "id":"coordsys_id_1_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"coordsys",
+                        "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12,
+                        "id":"coordsys_2_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"insert_button",
+                        "id":"insert_button",
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_CREATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ],
+        "event":"sendSimpleForm()",
+        "afterEvent":"editSectionForm()",
+        "tabs":{
+            "position":"top",
+            "list":[
+                {
+                    "label":"Tab 0",
+                    "elements":[
+                        "coordsys_id",
+                        "coordsys",
+                        "insert_button"
+                    ]
+                }
+            ]
+        }
+    },
+    "update":{
+        "name":"extraction_ref_extraction_coordsys-form",
+        "title":"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "javascript":false,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"coordsys_id",
+                        "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID",
+                        "disabled":false,
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"coordsys",
+                        "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"update_button",
+                        "id":"update_button",
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ],
+        "event":"sendSimpleForm()",
+        "afterEvent":"editSectionForm()"
+    }
+}
\ No newline at end of file
diff --git a/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_format.json b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_format.json
new file mode 100755
index 0000000000000000000000000000000000000000..115f79f1a2f83c0ddb5d0dcba014275b6f057f5d
--- /dev/null
+++ b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_format.json
@@ -0,0 +1,393 @@
+{
+    "display":{
+        "name":"extraction_ref_extraction_format-form",
+        "title":"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "javascript":false,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"format_id",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"format",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "options":{
+                            "choices":[
+                                {
+                                    "label":"oui",
+                                    "value":true
+                                },
+                                {
+                                    "label":"non",
+                                    "value":false
+                                }
+                            ]
+                        },
+                        "name":"use_for_raster",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "options":{
+                            "choices":[
+                                {
+                                    "label":"oui",
+                                    "value":true
+                                },
+                                {
+                                    "label":"non",
+                                    "value":false
+                                }
+                            ]
+                        },
+                        "name":"use_for_vector",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"display_button",
+                        "id":"display_button",
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "search":{
+        "name":"extraction_ref_extraction_format-form",
+        "title":"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "javascript":false,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"format",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":4,
+                        "id":"format_2_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "name":"search_button",
+                        "id":"search_button",
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+        "name":"extraction_ref_extraction_format-form",
+        "title":"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE_INSERT",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "javascript":false,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"format_id",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID",
+                        "disabled":false,
+                        "required":true,
+                        "nb_cols":12,
+                        "id":"format_id_1_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"format",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12,
+                        "id":"format_2_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"radio",
+                        "options":{
+                            "choices":[
+                                {
+                                    "label":"oui",
+                                    "value":true,
+                                    "$$hashKey":"object:1221"
+                                },
+                                {
+                                    "label":"non",
+                                    "value":false,
+                                    "$$hashKey":"object:1222"
+                                }
+                            ]
+                        },
+                        "name":"use_for_raster",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12,
+                        "id":"use_for_raster_3_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"radio",
+                        "options":{
+                            "choices":[
+                                {
+                                    "label":"oui",
+                                    "value":true,
+                                    "$$hashKey":"object:1234"
+                                },
+                                {
+                                    "label":"non",
+                                    "value":false,
+                                    "$$hashKey":"object:1235"
+                                }
+                            ]
+                        },
+                        "name":"use_for_vector",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12,
+                        "id":"use_for_vector_4_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"insert_button",
+                        "id":"insert_button",
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_CREATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ],
+        "event":"sendSimpleForm()",
+        "afterEvent":"editSectionForm()",
+        "tabs":{
+            "position":"top",
+            "list":[
+                {
+                    "label":"Tab 0",
+                    "elements":[
+                        "format_id",
+                        "format",
+                        "use_for_raster",
+                        "use_for_vector",
+                        "insert_button"
+                    ]
+                }
+            ]
+        }
+    },
+    "update":{
+        "name":"extraction_ref_extraction_format-form",
+        "title":"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "javascript":false,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"format_id",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID",
+                        "disabled":false,
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"format",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"radio",
+                        "options":{
+                            "choices":[
+                                {
+                                    "label":"oui",
+                                    "value":true
+                                },
+                                {
+                                    "label":"non",
+                                    "value":false
+                                }
+                            ]
+                        },
+                        "name":"use_for_raster",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"radio",
+                        "options":{
+                            "choices":[
+                                {
+                                    "label":"oui",
+                                    "value":true
+                                },
+                                {
+                                    "label":"non",
+                                    "value":false
+                                }
+                            ]
+                        },
+                        "name":"use_for_vector",
+                        "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"update_button",
+                        "id":"update_button",
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ],
+        "event":"sendSimpleForm()",
+        "afterEvent":"editSectionForm()"
+    }
+}
\ No newline at end of file
diff --git a/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_layer.json b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_layer.json
new file mode 100755
index 0000000000000000000000000000000000000000..0a47f292c15a1c2a35c13876c06025118848f201
--- /dev/null
+++ b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_layer.json
@@ -0,0 +1,355 @@
+{
+    "display":{
+        "name":"extraction_ref_extraction_layer-form",
+        "title":"EXTRACTION_REF_EXTRACTION_LAYER_TITLE",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "javascript":false,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"layer_id",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"layer",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"category",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"restriction",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"unused_attributes",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"display_button",
+                        "id":"display_button",
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "search":{
+        "name":"extraction_ref_extraction_layer-form",
+        "title":"EXTRACTION_REF_EXTRACTION_LAYER_TITLE",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "javascript":false,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"layer",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":4,
+                        "id":"layer_2_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "name":"search_button",
+                        "id":"search_button",
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+        "name":"extraction_ref_extraction_layer-form",
+        "title":"EXTRACTION_REF_EXTRACTION_LAYER_TITLE_INSERT",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "javascript":false,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"layer_id",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID",
+                        "disabled":false,
+                        "required":true,
+                        "nb_cols":12,
+                        "id":"layer_id_1_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"layer",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12,
+                        "id":"layer_2_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"category",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12,
+                        "id":"category_3_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"restriction",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12,
+                        "id":"restriction_4_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"unused_attributes",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12,
+                        "id":"unused_attributes_5_1"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"insert_button",
+                        "id":"insert_button",
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_CREATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ],
+        "event":"sendSimpleForm()",
+        "afterEvent":"editSectionForm()",
+        "tabs":{
+            "position":"top",
+            "list":[
+                {
+                    "label":"Tab 0",
+                    "elements":[
+                        "layer_id",
+                        "layer",
+                        "category",
+                        "restriction",
+                        "unused_attributes",
+                        "insert_button"
+                    ]
+                }
+            ]
+        }
+    },
+    "update":{
+        "name":"extraction_ref_extraction_layer-form",
+        "title":"EXTRACTION_REF_EXTRACTION_LAYER_TITLE",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "javascript":false,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"layer_id",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID",
+                        "disabled":false,
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"layer",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"category",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"restriction",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"unused_attributes",
+                        "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES",
+                        "disabled":false,
+                        "required":false,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"update_button",
+                        "id":"update_button",
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ],
+        "event":"sendSimpleForm()",
+        "afterEvent":"editSectionForm()"
+    }
+}
\ No newline at end of file
diff --git a/src/module_extraction/module/forms/login/sign_up.json b/src/module_extraction/module/forms/login/sign_up.json
new file mode 100755
index 0000000000000000000000000000000000000000..cc5bc1e559d8233dcbc5c1f679e74a23ba834094
--- /dev/null
+++ b/src/module_extraction/module/forms/login/sign_up.json
@@ -0,0 +1,230 @@
+{
+  "search": {
+    "name": "login_form",
+    "input_size": "xs",
+    "event": "sendInscriptionRequest()",
+    "rows": [
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "username",
+            "label": "SIGNUPUSERNAME",
+            "required": true,
+            "pattern": "^([a-zA-Z_0-9])+",
+            "nb_cols": 12,
+            "id": "Element_0_2_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "password",
+            "name": "password",
+            "label": "SIGNUPPASSWORD",
+            "required": true,
+            "pattern": "",
+            "nb_cols": 12,
+            "id": "Element_0_4_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "password",
+            "name": "signuppasswordconfirmation",
+            "label": "SIGNUPPASSWORDCONFIRMATION",
+            "required": true,
+            "pattern": "",
+            "nb_cols": 12,
+            "id": "Element_0_4_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "company",
+            "label": "SIGNUPORGANIZATION",
+            "required": true,
+            "pattern": "",
+            "nb_cols": 12,
+            "id": "Element_3_4_1",
+            "id_from": "Element_3_4_1_from"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "email",
+            "name": "mail",
+            "label": "SIGNUPMAIL",
+            "required": true,
+            "pattern": "^(([a-zA-Z]|[0-9])|([-]|[_]|[.]))+[@](([a-zA-Z]|[0-9])|([-]|[_]|[.])){2,63}[.](([a-zA-Z0-9]){2,63})+$",
+            "nb_cols": 12,
+            "id": "Element_2_3_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "phone",
+            "label": "SIGN_UP_PHONE",
+            "required": false,
+            "pattern": "^(\\+[0-9]{1,3})?([0-9]{8,15})$",
+            "nb_cols": 12,
+            "id": "Element_0_5_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "public_ip",
+            "label": "SIGN_UP_PUBLIC_IP",
+            "required": false,
+            "pattern": "^([0-9]{3}.[0-9]{3}.[0-9]{3})((/[0-9]+)?)$",
+            "nb_cols": 12,
+            "id": "Element_0_6_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "demandeur",
+            "label": "SIGN_UP_DEMANDEUR",
+            "required": false,
+            "pattern": "",
+            "nb_cols": 12,
+            "id": "Element_0_8_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "email",
+            "name": "mail_demandeur",
+            "label": "SIGN_UP_MAIL_DEMANDEUR",
+            "required": false,
+            "pattern": "^(([a-zA-Z]|[0-9])|([-]|[_]|[.]))+[@](([a-zA-Z]|[0-9])|([-]|[_]|[.])){2,63}[.](([a-zA-Z0-9]){2,63})+$",
+            "nb_cols": 12,
+            "id": "Element_0_9_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "text",
+            "name": "study_object",
+            "label": "SIGN_UP_STUDY_OBJECT",
+            "required": false,
+            "pattern": "",
+            "nb_cols": 12,
+            "id": "Element_0_7_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "date",
+            "name": "start_date",
+            "label": "SIGN_UP_START_DATE",
+            "nb_cols": 6,
+            "id": "Element_0_10_1"
+          },
+          {
+            "type": "date",
+            "name": "end_date",
+            "label": "SIGN_UP_END_DATE",
+            "nb_cols": 6,
+            "id": "Element_0_10_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "checkbox",
+            "name": "signupcgu",
+            "label": "ACCEPT_CGU",
+            "required": true,
+            "nb_cols": 12,
+            "id": "Element_5_5_1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "captcha",
+            "nb_cols": 12,
+            "name": "captcha",
+            "class": "center",
+            "id": "captcha",
+            "key": "6LdWLR8UAAAAAExA8zTXKFIsIwhacAJw1tdpuFw1"
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "button",
+            "name": "btn_signup",
+            "nb_cols": 12,
+            "id": "Element_42_5_1",
+            "class": "btn-ungroup btn-group-sm login-connect-btn",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_signup",
+                "label": "SIGNUP_BUTTON",
+                "class": "btn-primary"
+              }
+            ]
+          }
+        ]
+      }
+    ],
+    "tabs": {
+      "position": "top",
+      "list": [
+        {
+          "label": "Tab 0",
+          "elements": [
+            "username",
+            "password",
+            "signuppasswordconfirmation",
+            "mail",
+            "company",
+            "signupcgu",
+            "captcha",
+            "btn_signup",
+            "phone",
+            "public_ip",
+            "study_object",
+            "end_date",
+            "start_date",
+            "demandeur",
+            "mail_demandeur"
+          ]
+        }
+      ]
+    }
+  },
+  "update": {},
+  "insert": {},
+  "display": {},
+  "datasources": {}
+}
\ No newline at end of file
diff --git a/src/module_extraction/module/javascript/script_module.js b/src/module_extraction/module/javascript/script_module.js
new file mode 100755
index 0000000000000000000000000000000000000000..db7ca4c3c78f80cf00ae18e3f5255f805a0246e2
--- /dev/null
+++ b/src/module_extraction/module/javascript/script_module.js
@@ -0,0 +1,412 @@
+/* global vitisApp, goog, angular, bootbox, oVFB */
+
+'use strict';
+goog.provide('extraction.script_module');
+vitisApp.on('appMainDrtvLoaded', function () {
+    /**
+     * setWabStatusMethod function.
+     * Définition de la méthode de transition.
+     * @param {string} sMethodName Nom de la méthode wab.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["setWabStatusMethod"] = function (sMethodName) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        //var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("setWabStatusMethod", sMethodName);
+        envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["tr_status_method"] = sMethodName;
+        // Envoi le formulaire.
+        if (envSrvc["sMode"] != "display") {
+            var sFormElementName = envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"];
+            var formScope = angular.element("form[name='" + sFormElementName + "']").scope();
+            if (envSrvc["sMode"] == "update")
+                formScope["sendForm"]();
+        }
+    };
+
+    /**
+     * loadExtractionConfig function.
+     * Chargement de la section "Configuration EXTRACTION" dans l''''onglet "Configuration".
+     * @expose
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["loadExtractionConfig"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("loadExtractionConfig");
+        // Paramètres des properties dans les valeurs du formulaire de config de Extraction.
+        angular.element(vitisApp.appMainDrtv).scope()["setPropertiesFormValues"]();
+        // Surcharge l''''url du formulaire des properties de Extraction.
+        var scope = this;
+        var sTable = envSrvc["oSelectedObject"]["name"];
+        scope["oFormRequestParams"] = {
+            "sUrl": "modules/extraction/forms/" + envSrvc["oSelectedMode"]["mode_id"] + "/" + sTable + "_" + envSrvc["oSectionForm"][sTable]["sections"][envSrvc["oSectionForm"][sTable]["iSelectedSectionIndex"]]["name"] + ".json"
+        };
+    };
+    
+    /**
+     * initExtractionExtractionForm function.
+     * Traitements avant l'affichage du formulaire de l'onglet "Extraction".
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["initExtractionExtractionForm"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        //
+        $log.info("initExtractionExtractionForm");
+        var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]];
+        var oElemDef;
+        // Affiche le champ de form. correspondant au type de méthode choisie.
+        var aExtentMethod = ["id_com", "id_conseil", "extent"];
+        for (var i in aExtentMethod) {
+            var oElemDef = formSrvc["getFormElementDefinition"](aExtentMethod[i], envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]);
+            if (oFormValues["extent_method"] == aExtentMethod[i])
+                oElemDef["visible"] = true;
+            else
+                oElemDef["visible"] = false;
+        }
+        // Libellé des champs "Commune" et "Bassin de vie".
+        if (envSrvc["sMode"] == "display") {
+            oFormValues["id_com"] = oFormValues["id_com_label"];
+            oFormValues["id_conseil"] = oFormValues["id_conseil_label"];
+        }
+        // Attends la fin du chargement de tous les champs du formulaire.
+        var clearListener = $rootScope.$on('formExtracted', function (event, sFormDefinitionName) {
+            // Supprime le "listener".
+            clearListener();
+            // Evènement sur le <select> "méthode choisie" : affiche le champ de form. correspondant au choix.
+            var oExtentMethod = formSrvc["getFormElementDefinition"]("extent_method", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]);
+            if (oExtentMethod["type"] == "select" && document.getElementById(oExtentMethod["id"]) != null) {
+                document.getElementById(oExtentMethod["id"]).addEventListener("change", function () {
+                    for (var i in aExtentMethod) {
+                        var oElemDef = formSrvc["getFormElementDefinition"](aExtentMethod[i], envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]);
+                        if (this.value == aExtentMethod[i])
+                            oElemDef["visible"] = true;
+                        else
+                            oElemDef["visible"] = false;
+                    }
+                    var formScope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"]).scope();
+                    formScope.$apply();
+                });
+            }
+        });
+    };
+    
+    /**
+     * getExtractionLayersTree function.
+     * Retourne l'arborescence pour le champ treeview "layers".
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["getExtractionLayersTree"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]);
+        //
+        $log.info("getExtractionLayersTree");
+        var deferred = $q.defer();
+        var promise = deferred.promise;
+        // Charge la liste des couches.
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extractions/Layers",
+            "scope": angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(),
+            "success": function(response) {
+                if (response["data"]["status"] == 1) {
+                    // Création de l'arborescence des couches pour le champ "treeview".
+                    var aLayers = response["data"]["layers"];
+                    var aNodes = [];
+                    var stats = true;
+                    if (typeof(aLayers) != "undefined") {
+                        var aCategories = Object.keys(aLayers);
+                        for (var i in aCategories) {
+                            var aNode = {"text": aCategories[i], "nodes": []}
+                            for (var j in aLayers[aCategories[i]]) {
+                                if (aLayers[aCategories[i]][j]["statistique"] !== true)
+                                {
+                                    stats = false;
+                                    aNode["nodes"].push({"text": aLayers[aCategories[i]][j]["text"], "value": aLayers[aCategories[i]][j]["value"], "mutualized": aLayers[aCategories[i]][j]["mutualized"]});
+                                }
+                            }
+                            if (stats !== true)
+                            {
+                                aNodes.push(aNode);
+                            }
+                            stats = true;
+                        }
+                    }
+                    
+                    this["setTreeviewNodesState"] = function (aNodes) {
+                        for (var i in aNodes) {
+                            if (typeof (aNodes[i]["nodes"]) != "undefined")
+                            {
+                                this["setTreeviewNodesState"](aNodes[i]["nodes"]);
+                            }
+                            else {
+                                //Si la couche est mutualisée
+                                if (aNodes[i]['mutualized'] == true)
+                                {
+                                    aNodes[i]["color"] =  propertiesSrvc["color_mutualized"];
+                                } else if (aNodes[i]['mutualized'] == false) {
+                                    aNodes[i]["color"] =  propertiesSrvc["color_no_mutualized"];
+                                }
+                            }
+                        }
+                    }
+                    this["setTreeviewNodesState"](aNodes);
+                    
+                    deferred.resolve(aNodes);
+                } else {
+                    //
+                    var oOptions = {
+                        "className": "modal-danger"
+                    };
+                    // Message d'erreur ?
+                    if (response["data"]["errorMessage"] != null)
+                        oOptions["message"] = response["data"]["errorMessage"];
+                    scope.$root["modalWindow"]("alert", "REQUEST_ERROR", oOptions);
+                }
+            }
+        });
+        return promise;
+    };
+    
+    
+    /**
+     * getExtractionLayersTree function.
+     * Retourne l'arborescence pour le champ treeview "layers".
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["getExtractionStatsTree"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]);
+        //
+        $log.info("getExtractionStatsTree");
+        var deferred = $q.defer();
+        var promise = deferred.promise;
+        // Charge la liste des couches.
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extractions/Layers",
+            "scope": angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(),
+            "success": function(response) {
+                if (response["data"]["status"] == 1) {
+                    // Création de l'arborescence des couches pour le champ "treeview".
+                    var aLayers = response["data"]["layers"];
+                    var aNodes = [];
+                    var stats = false;
+                    if (typeof(aLayers) != "undefined") {
+                        var aCategories = Object.keys(aLayers);
+                        for (var i in aCategories) {
+                            var aNode = {"text": aCategories[i], "nodes": []}
+                            for (var j in aLayers[aCategories[i]]) {
+                                if (aLayers[aCategories[i]][j]["statistique"] === true)
+                                {
+                                    stats = true;
+                                    aNode["nodes"].push({"text": aLayers[aCategories[i]][j]["text"], "value": aLayers[aCategories[i]][j]["value"], "mutualized": aLayers[aCategories[i]][j]["mutualized"]});
+                                }
+                            }
+                            if (stats === true)
+                            {
+                                aNodes.push(aNode);
+                            }
+                            stats = false;
+                        }
+                    }
+                    
+                    this["setTreeviewNodesState"] = function (aNodes) {
+                        for (var i in aNodes) {
+                            if (typeof (aNodes[i]["nodes"]) != "undefined")
+                            {
+                                this["setTreeviewNodesState"](aNodes[i]["nodes"]);
+                            }
+                            else {
+                                //Si la couche est mutualisée
+                                if (aNodes[i]['mutualized'] == true)
+                                {
+                                    aNodes[i]["color"] =  propertiesSrvc["color_mutualized"];
+                                } else if (aNodes[i]['mutualized'] == false) {
+                                    aNodes[i]["color"] =  propertiesSrvc["color_no_mutualized"];
+                                }
+                            }
+                        }
+                    }
+                    this["setTreeviewNodesState"](aNodes);
+                    
+                    deferred.resolve(aNodes);
+                } else {
+                    //
+                    var oOptions = {
+                        "className": "modal-danger"
+                    };
+                    // Message d'erreur ?
+                    if (response["data"]["errorMessage"] != null)
+                        oOptions["message"] = response["data"]["errorMessage"];
+                    scope.$root["modalWindow"]("alert", "REQUEST_ERROR", oOptions);
+                }
+            }
+        });
+        return promise;
+    };
+    
+    /**
+     * appExtractionLayersColumn directive.
+     * Mise en forme de la colonne "layers" dans la liste de l'onglet "Extraction".
+     * @param {service} $translate Translate service.
+     * @ngInject
+     **/
+    vitisApp.appExtractionLayersColumnDrtv = function ($translate) {
+        return {
+            link: function (scope, element, attrs) {
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appExtractionLayersColumn", function (value) {
+                    // Si le champ est vide : supprime l'icône.
+                    if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "")
+                        element[0].className = "";
+                    else {
+                        // Classes css (ui-grid + spécifiques).
+                        element[0].className = "ui-grid-cell-contents info-icon";
+                        // Traduction du titre et du contenu.
+                        $translate(["EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE"]).then(function (translations) {
+                            // Création du "tooltip".
+                            $(element)["popover"]({
+                                "trigger": "hover",
+                                "container": "body",
+                                "title": function () {
+                                    return translations["EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE"];
+                                },
+                                "content": function () {
+                                    var sValue = scope["row"]["entity"][scope["col"]["field"]];
+                                    return sValue.replace(/\|/g, "<br>");
+                                },
+                                // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément.
+                                "placement": function (oPopoverNode, oElementNode) {
+                                    return scope.$root["workspaceTooltipPlacement"](oElementNode);
+                                },
+                                "html": true
+                            });
+                        });
+                    }
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime le tooltip.
+                    $(element)["popover"]("destroy");
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        }
+    };
+    vitisApp["compileProvider"].directive('appExtractionLayersColumn', vitisApp.appExtractionLayersColumnDrtv);
+    
+    /**
+     * appExtractionRefUnusedAttributesColumn directive.
+     * Mise en forme de la colonne "unused_attributes" dans la liste de l'onglet "Extraction".
+     * @param {service} $translate Translate service.
+     * @ngInject
+     **/
+    vitisApp.appExtractionRefUnusedAttributesColumnDrtv = function ($translate) {
+        return {
+            link: function (scope, element, attrs) {
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appExtractionRefUnusedAttributesColumn", function (value) {
+                    // Si le champ est vide : supprime l'icône.
+                    if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "")
+                        element[0].className = "";
+                    else {
+                        // Classes css (ui-grid + spécifiques).
+                        element[0].className = "ui-grid-cell-contents info-icon";
+                        // Traduction du titre et du contenu.
+                        $translate(["EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE"]).then(function (translations) {
+                            // Création du "tooltip".
+                            $(element)["popover"]({
+                                "trigger": "hover",
+                                "container": "body",
+                                "title": function () {
+                                    return translations["EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE"];
+                                },
+                                "content": function () {
+                                    var sValue = scope["row"]["entity"][scope["col"]["field"]];
+                                    return sValue.replace(/;/g, "<br>");
+                                },
+                                // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément.
+                                "placement": function (oPopoverNode, oElementNode) {
+                                    return scope.$root["workspaceTooltipPlacement"](oElementNode);
+                                },
+                                "html": true
+                            });
+                        });
+                    }
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime le tooltip.
+                    $(element)["popover"]("destroy");
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        }
+    };
+    vitisApp["compileProvider"].directive('appExtractionRefUnusedAttributesColumn', vitisApp.appExtractionRefUnusedAttributesColumnDrtv);
+    
+    angular.element(vitisApp.appMainDrtv).scope()["showModalSignUp"] = function () {
+        $("#modal_sign_up").modal('open');
+        
+        var oFormValues = {};
+        oFormValues["search"] = {};
+        ajaxRequest({
+            'method': 'GET',
+            'url': propertiesSrvc["web_server_name"] + '/' + propertiesSrvc["application"] + "/modules/extraction/forms/sign_up.json",
+            'success': function (response) {
+                hideAjaxLoader();
+                
+                var oFormReaderScope = angular.element($("#modal_sign_up_form_container").children()).scope();
+                oFormReaderScope.$evalAsync(function () {
+                    oFormReaderScope['ctrl']['setDefinitionName']("search");
+                    oFormReaderScope['ctrl']['setFormValues'](oFormValues);
+                    oFormReaderScope['ctrl']['setFormDefinition'](response["data"]);
+                    oFormReaderScope['ctrl']['loadForm']();
+                });
+                
+                $this.$timeout_(function () {
+                    //Materialize.updateTextFields();
+                    $(".checkbox").removeClass("checkbox checkbox-margin");
+                    
+                    //$this.cssSelectFormDefinitionListener(oFormReaderScope);
+                }, 100);
+            },
+            'error': function (response) {
+                hideAjaxLoader();
+                console.error("ERROR");
+            }
+        });
+    };
+});
+
+vitisApp.on('appInitCtrlLoaded', function () {
+    var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]);
+    var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+    var $translatePartialLoader = angular.element(vitisApp.appMainDrtv).injector().get(["$translatePartialLoader"]);
+    var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+    // Chargement du template de login et des formulaires spécifiques à Extraction.
+    //envSrvc["sLoginTemplate"] = "modules/calimap/templates/loginTpl.html";
+    //envSrvc["sLoginForm"] = "modules/extraction/forms/extraction/login.json";
+    //envSrvc["sForgottenPasswordForm"] = "modules/calimap/forms/login/forgotten_password.json";
+    envSrvc["sSignUpForm"] = "modules/extraction/forms/login/sign_up.json";
+    // Chargement du fichier less pour le login.
+    //loadExternalCss(["modules/calimap/less/login.less"]);
+    // Chargement des fichiers de langues du module.
+    var clearListener = $rootScope.$on('endFormNgRepeat', function (event) {
+        clearListener();
+        $translatePartialLoader["addPart"]("modules/extraction/lang");
+        $translate["refresh"]();
+    });
+});
\ No newline at end of file
diff --git a/src/module_extraction/module/lang/lang-en.json b/src/module_extraction/module/lang/lang-en.json
new file mode 100755
index 0000000000000000000000000000000000000000..de3d253d26b49e3f25fd4bb66b0425d87bcb3a5c
--- /dev/null
+++ b/src/module_extraction/module/lang/lang-en.json
@@ -0,0 +1,111 @@
+{
+		"TEXT_MODE_EXTRACTION" : "Gestion des extractions",
+		"TITLE_MODE_EXTRACTION" : "Extraction",
+		"TEXT_MODE_EXTRACTION_REF" : "Gestion références des extractions",
+		"TITLE_MODE_EXTRACTION_REF" : "extraction_ref",
+		"EXTRACTION_EXTRACTION_EXTRACTION_TITLE" : "Extraction",
+		"EXTRACTION_EXTRACTION_EXTRACTION_TITLE_INSERT" : "Extraction",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_BO_ID" : "Id métier",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATUS" : "Etat",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE" : "Date de création",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR" : "Demandeur",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE" : "Acte d'engagement",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT" : "Etendue",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY" : "Organisme",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS" : "Couches",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATISTIQUE" : "Données statistiques",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID" : "Format Vecteurs",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID" : "Système de coordonnées",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE" : "note",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE" : "note_line",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID" : "Format Images",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD" : "Méthode de saisie",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED" : "Acte d'engagement signé",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA" : "Validation de l'usage décrit pour les données",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE" : "Cadre d'identification complet",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE" : "Définition des traitements non renseignée",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATE" : "Créer",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_REJECT_EXTRACTION" : "Refuser l'extraction",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_RELOAD_AE" : "Recharger l'acte d'engagement",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_SEND_AE" : "Soumettre l'AE",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_TERMINATE" : "Terminer",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_ASK_AE" : "Demander l'AE",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_GENERATE_AE" : "Générer l'AE",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_ALLOW_EXTRACTION" : "Autoriser l'extraction",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT" : "Commentaires",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID" : "Priorité",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM" : "Commune",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL" : "Conseil de Territoire",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY" : "Historique",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE" : "Générer précaunisations techniques",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE" : "Générer charte cartographique",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_LISTE_TERRITOIRE" : "Liste des territoires",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_LISTE_COMMUNE" : "Liste des communes",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_FORMAT" : "Format",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO" : "Générer métadonnées isogéo",
+		"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE" : "Système de coordonnées {{::coordsys_id}}",
+		"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE_INSERT" : "Système de coordonnées",
+		"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID" : "ID",
+		"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS" : "Nom",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE" : "Format {{::format_id}}",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE_INSERT" : "Format",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_SELECT" : "Sélectionner un format :",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID" : "ID",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT" : "Nom",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER" : "Raster",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR" : "Vecteur",
+		"EXTRACTION_REF_EXTRACTION_LAYER_TITLE" : "Couche {{::layer_id}}",
+		"EXTRACTION_REF_EXTRACTION_LAYER_TITLE_INSERT" : "Couche",
+		"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID" : "ID",
+		"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER" : "Nom",
+		"EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY" : "Catégorie",
+		"EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION" : "Restriction",
+		"EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES" : "Attributs inutilisés",
+		"EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE" : "Couches",
+		"EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE" : "Attributs inutilisés",
+		"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SCHEMA_EXTRACTION" : "",
+		"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_MUTUALIZED" : "",
+		"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_NO_MUTUALIZED" : "",
+		"TEXT_MODE_EXTRACTION_FORM" : "",
+		"TITLE_MODE_EXTRACTION_FORM" : "extraction_form",
+		"SIGN_UP_END_DATE" : "Date de fin de contrat",
+		"SIGN_UP_START_DATE" : "Date de début de contrat",
+		"SIGN_UP_STUDY_OBJECT" : "Objet de l'étude",
+		"SIGN_UP_PUBLIC_IP" : "IP publique fixe",
+		"SIGN_UP_PHONE" : "Téléphone",
+		"SIGN_UP_DEMANDEUR" : "Nom du demandeur",
+		"SIGN_UP_MAIL_DEMANDEUR" : "Adresse mail du demandeur",
+		"TEXT_MODE_EXTRACTION_DEPOT" : "",
+		"TITLE_MODE_EXTRACTION_DEPOT" : "extraction_depot",
+		"EXTRACTION_EXTRACTION_CP_TITLE_INSERT" : "Extraction",
+		"EXTRACTION_EXTRACTION_CP_FORM_TECHNIQUE" : "Générer précaunisations techniques",
+		"EXTRACTION_EXTRACTION_CP_FORM_CARTOGRAPHIQUE" : "Générer charte cartographique",
+		"EXTRACTION_EXTRACTION_CP_FORM_ISOGEO" : "Générer métadonnées isogéo",
+		"EXTRACTION_EXTRACTION_CP_FORM_COMPANY" : "Organisme",
+		"EXTRACTION_EXTRACTION_CP_FORM_EXTENT_METHOD" : "Méthode de saisie",
+		"EXTRACTION_EXTRACTION_CP_FORM_ID_COM" : "Commune",
+		"EXTRACTION_EXTRACTION_CP_FORM_ID_CONSEIL" : "Conseil de Territoire",
+		"EXTRACTION_EXTRACTION_CP_FORM_EXTENT" : "Etendue",
+		"EXTRACTION_EXTRACTION_CP_FORM_LAYERS" : "Couches",
+		"EXTRACTION_EXTRACTION_CP_FORM_STATISTIQUE" : "Données statistiques",
+		"EXTRACTION_EXTRACTION_CP_FORM_COORDSYS_ID" : "Système de coordonnées",
+		"EXTRACTION_EXTRACTION_CP_FORM_VECTOR_FORMAT_ID" : "Format Vecteurs",
+		"EXTRACTION_EXTRACTION_CP_FORM_RASTER_FORMAT_ID" : "Format Images",
+		"EXTRACTION_EXTRACTION_CP_FORM_STATUS" : "Etat",
+		"EXTRACTION_EXTRACTION_CP_FORM_HISTORY" : "Historique",
+		"EXTRACTION_EXTRACTION_CP_FORM_CREATION_DATE" : "Date de création",
+		"EXTRACTION_EXTRACTION_CP_FORM_REQUESTOR" : "Demandeur",
+		"EXTRACTION_EXTRACTION_CP_FORM_AE" : "Acte d'engagement",
+		"EXTRACTION_EXTRACTION_CP_FORM_NOTE" : "note",
+		"EXTRACTION_EXTRACTION_CP_FORM_NOTE_LINE" : "note_line",
+		"EXTRACTION_EXTRACTION_CP_FORM_SIGNED" : "Acte d'engagement signé",
+		"EXTRACTION_EXTRACTION_CP_FORM_ACCEPTED_BY_CPA" : "Validation de l'usage décrit pour les données",
+		"EXTRACTION_EXTRACTION_CP_FORM_IDENTIFICATION_COMPLETE" : "Cadre d'identification complet",
+		"EXTRACTION_EXTRACTION_CP_FORM_DEFINITION_COMPLETE" : "Définition des traitements non renseignée",
+		"EXTRACTION_EXTRACTION_CP_FORM_COMMENT" : "Commentaires",
+		"EXTRACTION_EXTRACTION_CP_FORM_PRIORITY_ID" : "Priorité",
+		"EXTRACTION_EXTRACTION_CP_TITLE" : "Extraction",
+		"EXTRACTION_EXTRACTION_CP_FORM_BO_ID" : "Id métier",
+		"EXTRACTION_DEPOT_EXTRACTION_EXTRACTION_DEPOT_TITLE" : "",
+		"EXTRACTION_DEPOT_EXTRACTION_EXTRACTION_DEPOT_TITLE_INSERT" : ""
+}
\ No newline at end of file
diff --git a/src/module_extraction/module/lang/lang-fr.json b/src/module_extraction/module/lang/lang-fr.json
new file mode 100755
index 0000000000000000000000000000000000000000..883753687e6651af63d7cce0c7dfbbf188fa1a91
--- /dev/null
+++ b/src/module_extraction/module/lang/lang-fr.json
@@ -0,0 +1,123 @@
+{
+		"TEXT_MODE_EXTRACTION" : "Gestion des extractions",
+		"TITLE_MODE_EXTRACTION" : "Extraction",
+		"TEXT_MODE_EXTRACTION_REF" : "Gestion références des extractions",
+		"TITLE_MODE_EXTRACTION_REF" : "extraction_ref",
+		"EXTRACTION_EXTRACTION_EXTRACTION_TITLE" : "Extraction",
+		"EXTRACTION_EXTRACTION_EXTRACTION_TITLE_INSERT" : "Extraction",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_BO_ID" : "Id métier",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATUS" : "Etat",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE" : "Date de création",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR" : "Demandeur",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE" : "Acte d'engagement",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT" : "Etendue",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY" : "Organisme",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS" : "Couches",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATISTIQUE" : "Données statistiques",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID" : "Format Vecteurs",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID" : "Système de coordonnées",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE" : "note",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE" : "note_line",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID" : "Format Images",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD" : "Méthode de saisie",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED" : "Acte d'engagement signé",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA" : "Validation de l'usage décrit pour les données",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE" : "Cadre d'identification complet",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE" : "Définition des traitements non renseignée",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATE" : "Créer",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_REJECT_EXTRACTION" : "Refuser l'extraction",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_RELOAD_AE" : "Recharger l'acte d'engagement",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_SEND_AE" : "Soumettre l'AE",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_TERMINATE" : "Terminer",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_ASK_AE" : "Demander l'AE",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_GENERATE_AE" : "Générer l'AE",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_ALLOW_EXTRACTION" : "Autoriser l'extraction",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT" : "Commentaires",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID" : "Priorité",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM" : "Commune",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL" : "Conseil de Territoire",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY" : "Historique",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE" : "Générer précaunisations techniques",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE" : "Générer charte cartographique",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_LISTE_TERRITOIRE" : "Liste des territoires",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_LISTE_COMMUNE" : "Liste des communes",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_FORMAT" : "Format",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO" : "Générer métadonnées isogéo",
+		"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE" : "Système de coordonnées {{::coordsys_id}}",
+		"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE_INSERT" : "Système de coordonnées",
+		"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID" : "ID",
+		"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS" : "Nom",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE" : "Format {{::format_id}}",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE_INSERT" : "Format",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_SELECT" : "Sélectionner un format :",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID" : "ID",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT" : "Nom",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER" : "Raster",
+		"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR" : "Vecteur",
+		"EXTRACTION_REF_EXTRACTION_LAYER_TITLE" : "Couche {{::layer_id}}",
+		"EXTRACTION_REF_EXTRACTION_LAYER_TITLE_INSERT" : "Couche",
+		"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID" : "ID",
+		"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER" : "Nom",
+		"EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY" : "Catégorie",
+		"EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION" : "Restriction",
+		"EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES" : "Attributs inutilisés",
+		"EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE" : "Couches",
+		"EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE" : "Attributs inutilisés",
+		"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SCHEMA_EXTRACTION" : "",
+		"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_MUTUALIZED" : "Couleur des couches mutualisées",
+		"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_NO_MUTUALIZED" : "Couleur des couches non mutualisées",
+		"TEXT_MODE_EXTRACTION_FORM" : "",
+		"TITLE_MODE_EXTRACTION_FORM" : "extraction_form",
+		"SIGN_UP_END_DATE" : "Date de fin de contrat",
+		"SIGN_UP_START_DATE" : "Date de début de contrat",
+		"SIGN_UP_STUDY_OBJECT" : "Objet de l'étude",
+		"SIGN_UP_PUBLIC_IP" : "IP publique fixe",
+		"SIGN_UP_PHONE" : "Téléphone",
+		"SIGN_UP_DEMANDEUR" : "Nom du demandeur",
+		"SIGN_UP_MAIL_DEMANDEUR" : "Adresse mail du demandeur",
+		"TEXT_MODE_EXTRACTION_DEPOT" : "",
+		"TITLE_MODE_EXTRACTION_DEPOT" : "extraction_depot",
+		"EXTRACTION_EXTRACTION_CP_TITLE_INSERT" : "Extraction",
+		"EXTRACTION_EXTRACTION_CP_FORM_TECHNIQUE" : "Générer précaunisations techniques",
+		"EXTRACTION_EXTRACTION_CP_FORM_CARTOGRAPHIQUE" : "Générer charte cartographique",
+		"EXTRACTION_EXTRACTION_CP_FORM_ISOGEO" : "Générer métadonnées isogéo",
+		"EXTRACTION_EXTRACTION_CP_FORM_COMPANY" : "Organisme",
+		"EXTRACTION_EXTRACTION_CP_FORM_EXTENT_METHOD" : "Méthode de saisie",
+		"EXTRACTION_EXTRACTION_CP_FORM_ID_COM" : "Commune",
+		"EXTRACTION_EXTRACTION_CP_FORM_ID_CONSEIL" : "Conseil de Territoire",
+		"EXTRACTION_EXTRACTION_CP_FORM_EXTENT" : "Etendue",
+		"EXTRACTION_EXTRACTION_CP_FORM_LAYERS" : "Couches",
+		"EXTRACTION_EXTRACTION_CP_FORM_STATISTIQUE" : "Données statistiques",
+		"EXTRACTION_EXTRACTION_CP_FORM_COORDSYS_ID" : "Système de coordonnées",
+		"EXTRACTION_EXTRACTION_CP_FORM_VECTOR_FORMAT_ID" : "Format Vecteurs",
+		"EXTRACTION_EXTRACTION_CP_FORM_RASTER_FORMAT_ID" : "Format Images",
+		"EXTRACTION_EXTRACTION_CP_FORM_STATUS" : "Etat",
+		"EXTRACTION_EXTRACTION_CP_FORM_HISTORY" : "Historique",
+		"EXTRACTION_EXTRACTION_CP_FORM_CREATION_DATE" : "Date de création",
+		"EXTRACTION_EXTRACTION_CP_FORM_REQUESTOR" : "Demandeur",
+		"EXTRACTION_EXTRACTION_CP_FORM_AE" : "Acte d'engagement",
+		"EXTRACTION_EXTRACTION_CP_FORM_NOTE" : "note",
+		"EXTRACTION_EXTRACTION_CP_FORM_NOTE_LINE" : "note_line",
+		"EXTRACTION_EXTRACTION_CP_FORM_SIGNED" : "Acte d'engagement signé",
+		"EXTRACTION_EXTRACTION_CP_FORM_ACCEPTED_BY_CPA" : "Validation de l'usage décrit pour les données",
+		"EXTRACTION_EXTRACTION_CP_FORM_IDENTIFICATION_COMPLETE" : "Cadre d'identification complet",
+		"EXTRACTION_EXTRACTION_CP_FORM_DEFINITION_COMPLETE" : "Définition des traitements non renseignée",
+		"EXTRACTION_EXTRACTION_CP_FORM_COMMENT" : "Commentaires",
+		"EXTRACTION_EXTRACTION_CP_FORM_PRIORITY_ID" : "Priorité",
+		"EXTRACTION_EXTRACTION_CP_TITLE" : "Extraction",
+		"EXTRACTION_EXTRACTION_CP_FORM_BO_ID" : "Id métier",
+		"EXTRACTION_DEPOT_EXTRACTION_EXTRACTION_DEPOT_TITLE" : "",
+		"EXTRACTION_DEPOT_EXTRACTION_EXTRACTION_DEPOT_TITLE_INSERT" : "",
+		"EXTRACTION_DEPORT_DELETE_NO_SELECTED": "Aucun fichier sélectionné",
+		"EXTRACTION_DEPOT_DELETE_SELECT_A_FILE": "Veuillez sélectionner un fichier à supprimer",
+		"EXTRACTION_DEPOT_TITLE": "Dépot de fichiers",
+		"EXTRACTION_DEPOT_FILE_UPLOAD": "Fichier à envoyer",
+		"EXTRACTION_DEPOT_FILE_UPDATE": "Mettre à jour",
+		"ERROR_FILE_SIZE_EXTRACTION_LOAD_DEPOSIT_DIRECTORY" : "La taille du fichier est supérieure à la taille maximale autorisée.",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEPOSIT" : "Déposer",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_INPUT_DEPOSIT" : "Fichier à déposer",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_FORMAT_EXTENSION" : "Format du fichier",
+		"EXTRACTION_EXTRACTION_EXTRACTION_FORM_SCHEMA_CONSTRAINT" : "Schéma des contraintes",
+		"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SIG" : "Extensions SIG (séparées par |)",
+		"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_DAO" : "Extensions DAO (séparées par |)"
+}
\ No newline at end of file
diff --git a/src/module_extraction/module/less/main.less b/src/module_extraction/module/less/main.less
new file mode 100755
index 0000000000000000000000000000000000000000..6fc121e62751d3bec645ea2f90b4d2ae50b0a9a7
--- /dev/null
+++ b/src/module_extraction/module/less/main.less
@@ -0,0 +1,5 @@
+// LESS
+@ui-grid-bg-image: "../images/ui-grid/wbg.gif";
+@font-color-purple: #6d1a67;
+@test-color: black;
+@import 'projectDirectory.less';
\ No newline at end of file
diff --git a/src/module_extraction/module/templates/depositDirectoryTpl.html b/src/module_extraction/module/templates/depositDirectoryTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..14d9fd0cb85452098669a5ff971e9109af652e63
--- /dev/null
+++ b/src/module_extraction/module/templates/depositDirectoryTpl.html
@@ -0,0 +1,16 @@
+<div data-app-deposit-directory="" id="deposit-directory" class="row no-bs-row-margin deposit-directory">
+        <div class="col-xs-12 no_bs_padding">
+                <!-- Titre --> 
+                <div id="deposit_directory_title_container" class="row">
+                        <div class="col-xs-12 deposit-directory-title">Dépôt {{oFormValues[sFormDefinitionName].name}}</div>
+                </div>
+                <!-- Treeview --> 
+                <div id="deposit-directory-treeview-container" class="row deposit-directory-treeview-container">
+                        <div data-app-deposit-directory-treeview="" class="col-xs-12 deposit-directory-treeview"></div>
+                </div>
+                <!-- Formulaire (upload) --> 
+                <div id="deposit_directory_form_container" class="row deposit-directory-upload-form-container">
+                        <div data-app-deposit-directory-form="" class="col-xs-{{oFormDefinition[sFormDefinitionName].nb_cols}}"></div>
+                </div>
+        </div>
+</div>
\ No newline at end of file
diff --git a/vas/rest/ws/vitis/Accounts.class.mail.inc b/src/module_extraction/storage/Accounts.class.mail.inc
old mode 100755
new mode 100644
similarity index 98%
rename from vas/rest/ws/vitis/Accounts.class.mail.inc
rename to src/module_extraction/storage/Accounts.class.mail.inc
index ff03a0740fddd474e82aa2dadb8999e13c8ba028..bb977fddef9f8177b50895b88e5973253b4ce0b0
--- a/vas/rest/ws/vitis/Accounts.class.mail.inc
+++ b/src/module_extraction/storage/Accounts.class.mail.inc
@@ -1,617 +1,622 @@
-<?php
-
-$aMail["newUserTitle"] = "Un nouvel utilisateur vient juste de s'inscrire";
-$aMail["newUserTitleAutomated"] = "Vérification de votre adresse mail";
-$aMail["newUserBody"] = '<!-- 1 Column Text + Button : BEGIN -->
-    <tr>
-        <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;">
-            <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">[TITLE]</h1>
-        </td>
-    </tr>
-    <tr>
-        <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;">
-            <p style="width:100%; font-weight:bold; text-align: justify; font-size: 20px;">Bonjour [FULLNAME],</p>
-            <p style="width:100%; text-align: left;font-size: 18px;">Nous vous remercions d\'avoir créé votre compte sur <b>[HOSTNAME]</b>.</p>
-            <p style="width:100%; text-align: left;font-size: 18px;"><b>Informations sur votre compte :</b></p>
-            <p style="width:100%; text-align: left;font-size: 18px;">Identifiant : [USERNAME]</p>
-            <p style="width:100%; text-align: left;font-size: 18px;">Mail : [MAIL]</p>
-            <p style="width:100%; text-align: left;font-size: 18px;">Organisme : [COMPANY] </p>
-            <p style="width:100%; text-align: left;font-size: 18px;margin-top: 20px;">Cliquez sur le bouton ci-dessous pour finaliser votre inscription :</p>
-        </td>
-    </tr>
-    <tr>
-        <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 20px; line-height: 20px; color: #555555;">
-            <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto">
-                <tr>
-                    <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td">
-                        <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a">
-                            &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#ffffff;">Je confirme mon adresse mail</span>&nbsp;&nbsp;&nbsp;&nbsp;
-                        </a>
-                    </td>
-                </tr>
-            </table>
-            <!-- Button : END -->
-        </td>
-    </tr>
-    <tr>
-        <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;">
-            <p style="width:100%; text-align: justify;font-size: 18px;">Si vous ne vous êtes pas inscrit(e) sur notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p>
-        </td>
-    </tr>
-    <!-- 1 Column Text + Button : END -->';
-
-$aMail["confirmationSignUpTitle"] = "Confirmation d'inscription";
-$aMail["genericBody"] = '
-            <tr>
-                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
-                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">[MESSAGE]</h1>
-                </td>
-            </tr>';
-
-$aMail["SignUpOk"] = '<tr>
-                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
-                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur a été ajouté, connectez vous sur la base de données pour lui donner des droits (Defaut: [ROLES])</h1>
-                </td>
-            </tr>';
-$aMail["SignUpError"] = '<tr>
-                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
-                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur n\'a pas pu être ajouté consultez les fichiers de log pour plus d\'informations</h1>
-                </td>
-            </tr>';
-
-$aMail["signUpConfirmation"] = '<tr>
-                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
-                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal; margin-bottom: 15px;">Votre compte est maintenant activé, vous pouvez vous connecter. Pour avoir accès à plus de fonctionnalités contactez l\'administrateur</h1>
-                    <a style="margin: 0; font-family: sans-serif; font-size: 22px; font-weight: normal;" href="[REDIRECTION]"> Retourner vers l\'application </a>
-                </td>
-            </tr>';
-$aMail["fpwdTitle"] = "Changez votre mot de passe";
-$aMail["fpwdUpdateOk"] = '<tr>
-                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
-                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe a été mis à jour</h1>
-                </td>
-            </tr>';
-$aMail["fpwdUpdateError"] = '<tr>
-                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
-                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe n\'a pas pu être mis à jour</h1>
-                </td>
-            </tr>';
-$aMail["alreadyUpdate"] = '<tr>
-                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
-                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe à déjà été changé</h1>
-                </td>
-            </tr>';
-
-$aMail["fpwdBody"] = '<!-- 1 Column Text + Button : BEGIN -->
-            <tr>
-                <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;">
-                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Changez votre mot de passe</h1>
-                </td>
-            </tr>
-            <tr>
-                <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;">
-                    <p style="width:100%; font-weight:bold; text-align: left; font-size: 20px;">Bonjour [LOGIN],</p>
-                    <p style="width:100%; text-align: left;font-size: 18px;">Une tentative de récupération de votre compte à été effectué sur le site <b>[HOSTNAME]</b>.</p>
-                    <p style="width:100%; text-align: left;font-size: 18px;margin-top: 10px;">Cliquez sur le bouton ci-dessous pour changer votre mot de passe :</p>
-                </td>
-            </tr>
-            <tr>
-                <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555;">
-                    <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto">
-                        <tr>
-                            <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td">
-                                <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a">
-                                    &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#ffffff;">Changer mon mot de passe</span>&nbsp;&nbsp;&nbsp;&nbsp;
-                                </a>
-                            </td>
-                        </tr>
-                    </table>
-                    <!-- Button : END -->
-                </td>
-            </tr>
-            <tr>
-                <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;">
-                    <p style="width:100%; text-align: justify;font-size: 18px;">Si vous n\'avez pas perdu votre mot de passe pour vous connecter à notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p>
-                </td>
-            </tr>
-            <!-- 1 Column Text + Button : END -->';
-
-$aMail["fpwdForm"] = '<!-- 1 Column Text + Button : BEGIN -->
-            <tr>
-                <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;">
-                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Saisissez votre nouveau mot de passe</h1>
-                </td>
-            </tr>
-            <tr>
-                <td bgcolor="#ffffff" style="padding: 20px 40px 40px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555; text-align: center;">
-                    <form style="text-align:-webkit-right;">
-                        <div style="text-align:left;">
-                            <label for="password" style="font-weight: bold;">Nouveau mot de passe</label>
-                            <input type="password" id="password" name="password" class="input-text-control" required/>
-                        </div>
-                        <div style="text-align:left;margin-top:10px;">
-                            <label for="password_confirm" style="font-weight: bold;">Confirmer votre nouveau mot de passe</label>
-                            <input type="password" id="password_confirm" name="password_confirm" class="input-text-control" required/>
-                        </div>
-                        <div style="margin-top:20px;">
-                            <input type="hidden" name="token" value="[TOKEN]"/>
-                            <input type="hidden" name="output" value="text/html"/>
-                            <button style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 15px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a" type="button" onclick="sendRequest(\'[URL]\')"><span style="color:#ffffff;">Envoi</span></button>
-                        </div>
-                    </form>
-                </td>
-            </tr>';
-
-$aMail["passwordScript"] = '<script>
-    var password = document.getElementById("password"), confirm_password = document.getElementById("password_confirm");
-
-        function validatePassword(){
-          if(password.value != confirm_password.value) {
-            confirm_password.setCustomValidity("Les deux mots de passe doivent être identique");
-          } else {
-            confirm_password.setCustomValidity(\'\');
-          }
-        }
-
-        password.onchange = validatePassword;
-        confirm_password.onkeyup = validatePassword;
-
-        function sendRequest (sUrl){
-            if(typeof(password.value)!== "undefined"){
-                if(password.value != ""){
-                    var xhr = new XMLHttpRequest();
-                    xhr.open("PUT", sUrl);
-                    sParams = JSON.stringify({"password": password.value});
-                    xhr.onreadystatechange = function (aEvt) {
-                        if (xhr.readyState == 4) {
-                            if (xhr.status == 200) {
-                                    var oJson = JSON.parse(xhr.responseText);
-                                    window.location.replace(oJson.sUrl);
-                            } else {
-                                    //xhr.responseText;
-                            }
-                        }
-                    }
-                    xhr.send(sParams);
-                }else{console.log("saisissez un mot de passe2")}
-            }else{console.log("saisissez un mot de passe")}
-        }
-    </script>';
-
-$aMail["mainBody"] = '<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8"> <!-- utf-8 works for most cases -->
-    <meta name="viewport" content="width=device-width"> <!-- Forcing initial-scale shouldn\'t be necessary -->
-    <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Use the latest (edge) version of IE rendering engine -->
-    <meta name="x-apple-disable-message-reformatting">  <!-- Disable auto-scale in iOS 10 Mail entirely -->
-    <title>VAM</title> <!-- The title tag shows in email notifications, like Android 4.4. -->
-    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
-    <!-- Web Font / @font-face : BEGIN -->
-    <!-- NOTE: If web fonts are not required, lines 10 - 27 can be safely removed. -->
-
-    <!-- Desktop Outlook chokes on web font references and defaults to Times New Roman, so we force a safe fallback font. -->
-    <!--[if mso]>
-        <style>
-            * {
-                font-family: sans-serif !important;
-            }
-        </style>
-    <![endif]-->
-
-    <!-- All other clients get the webfont reference; some will render the font and others will silently fail to the fallbacks. More on that here: http://stylecampaign.com/blog/2015/02/webfont-support-in-email/ -->
-    <!--[if !mso]><!-->
-  <!-- insert web font reference, eg: <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet" type="text/css"> -->
-  <!--<![endif]-->
-
-  <!-- Web Font / @font-face : END -->
-
-  <!-- CSS Reset -->
-  <style>
-
-  /* What it does: Remove spaces around the email design added by some email clients. */
-  /* Beware: It can remove the padding / margin and add a background color to the compose a reply window. */
-  html,
-  body {
-     margin: 0 auto !important;
-     padding: 0 !important;
-     height: 100% !important;
-     width: 100% !important;
-     /*min-width: 600px;*/
- }
-
- /* What it does: Stops email clients resizing small text. */
- * {
-    -ms-text-size-adjust: 100%;
-    -webkit-text-size-adjust: 100%;
-}
-
-/* What it does: Centers email on Android 4.4 */
-div[style*="margin: 16px 0"] {
-    margin:0 !important;
-}
-
-/* What it does: Stops Outlook from adding extra spacing to tables. */
-table,
-td {
-    mso-table-lspace: 0pt !important;
-    mso-table-rspace: 0pt !important;
-}
-
-/* What it does: Fixes webkit padding issue. Fix for Yahoo mail table alignment bug. Applies table-layout to the first 2 tables then removes for anything nested deeper. */
-table {
-    border-spacing: 0 !important;
-    border-collapse: collapse !important;
-    table-layout: fixed !important;
-    margin: 0 auto !important;
-}
-table table table {
-    table-layout: auto;
-}
-
-/* What it does: Uses a better rendering method when resizing images in IE. */
-img {
-    -ms-interpolation-mode:bicubic;
-}
-
-/* What it does: A work-around for iOS meddling in triggered links. */
-*[x-apple-data-detectors] {
-    color: inherit !important;
-    text-decoration: none !important;
-}
-
-/* What it does: A work-around for Gmail meddling in triggered links. */
-.x-gmail-data-detectors,
-.x-gmail-data-detectors *,
-.aBn {
-    border-bottom: 0 !important;
-    //cursor: default !important;
-}
-
-/* What it does: Prevents Gmail from displaying an download button on large, non-linked images. */
-.a6S {
- display: none !important;
- opacity: 0.01 !important;
-}
-/* If the above doesn\'t work, add a .g-img class to any image in question. */
-img.g-img + div {
- display:none !important;
-}
-
-/* What it does: Prevents underlining the button text in Windows 10 */
-.button-link {
-    text-decoration: none !important;
-}
-
-blockquote {
-  font-style:normal;
-  text-align:left;
-  //margin-left: 32px!important;
-  margin: 5px 5px 0px 32px!important;
-  //padding-top:10px;
-  //font-family:"Segoe Print","Times New Roman", Verdana;
-  padding-left: 7px;
-  min-height: 30px;
-  //background-color: #EFEFEF;
-  border-left: 2px solid #8c8c8c;  
-}
-
-blockquote > p {
-   margin:4.5px;
-}
-
-.input-text-control{
-    display: block;
-    width: 100%;
-    height: 14px;
-    padding: 4px 5px;
-    font-size: 12px;
-    line-height: 1.5;
-    border-radius: 3px;
-    color: #555;
-    background-color: #fff;
-    background-image: none;
-    border: 1px solid #ccc;
-    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-    box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-    -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-    -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
-    transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
-}
-
-/* What it does: Removes right gutter in Gmail iOS app: https://github.com/TedGoas/Cerberus/issues/89  */
-/* Create one of these media queries for each additional viewport size you\'d like to fix */
-/* Thanks to Eric Lepetit (@ericlepetitsf) for help troubleshooting */
-@media only screen and (min-device-width: 375px) and (max-device-width: 413px) { /* iPhone 6 and 6+ */
-    .email-container {
-        min-width: 375px !important;
-    }
-}
-
-</style>
-
-<!-- What it does: Makes background images in 72ppi Outlook render at correct size. -->
-    <!--[if gte mso 9]>
-    <xml>
-        <o:OfficeDocumentSettings>
-            <o:AllowPNG/>
-            <o:PixelsPerInch>96</o:PixelsPerInch>
-        </o:OfficeDocumentSettings>
-    </xml>
-<![endif]-->
-
-<!-- Progressive Enhancements -->
-<style>
-
-/* What it does: Hover styles for buttons */
-.button-td,
-.button-a {
-    transition: all 100ms ease-in;
-}
-.button-td:hover,
-.button-a:hover {
-    background: #449D44 !important;
-    border-color: #449D44 !important;
-}
-
-.bottom-strip{
-    width: 120px !important;
-    height: 10px !important;
-    float: left !important;
-}
-
-.square-logo-layout{
-    width: 40px;
-    float: left !important;
-    background-color: #FFF;//#24292E;
-    border-radius: 50%;
-    font-size: 30px;
-    padding: 7.5px;
-    margin-right: 0px;
-    //color: #FFF;
-    cursor:pointer !important;
-}
-
-.square-logo-layout > svg{
-    cursor:pointer!important;
-}
-
-
-/* Media Queries */
-@media screen and (max-width: 600px) {
-
-    .email-container {
-        width: 100% !important;
-        margin: auto !important;
-    }
-
-    /* What it does: Forces elements to resize to the full width of their container. Useful for resizing images beyond their max-width. */
-    .fluid {
-        max-width: 100% !important;
-        height: auto !important;
-        margin-left: auto !important;
-        margin-right: auto !important;
-    }
-
-    /* What it does: Forces table cells into full-width rows. */
-    .stack-column,
-    .stack-column-center {
-        display: block !important;
-        width: 100% !important;
-        max-width: 100% !important;
-        direction: ltr !important;
-    }
-    /* And center justify these ones. */
-    .stack-column-center {
-        text-align: center !important;
-    }
-
-    /* What it does: Generic utility class for centering. Useful for images, buttons, and nested tables. */
-    .center-on-narrow {
-        text-align: center !important;
-        display: block !important;
-        margin-left: auto !important;
-        margin-right: auto !important;
-        float: none !important;
-    }
-    table.center-on-narrow {
-        display: inline-block !important;
-    }
-
-    .input-text-control{
-        display: block;
-        width: 100%;
-        height: 14px;
-        padding: 4px 5px;
-        font-size: 12px;
-        line-height: 1.5;
-        border-radius: 3px;
-        color: #555;
-        background-color: #fff;
-        background-image: none;
-        border: 1px solid #ccc;
-        -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-        box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-        -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-        -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
-        transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
-    }
-
-    /* What it does: Adjust typography on small screens to improve readability */
-    .email-container p {
-        font-size: 17px !important;
-        line-height: 22px !important;
-    }
-
-}
-
-</style>
-
-</head>
-<body width="100%" bgcolor="#E5E5E5" style="margin: 0px; mso-line-height-rule: exactly;">
-    <center style="width: 600px; margin: auto; background: #FFFFFF; text-align: left;">
-        <!-- Email Header : BEGIN -->
-        <table role="presentation" aria-hidden="true" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
-           <tr>
-            <td style="padding: 20px 0px; text-align: center">
-             <a href="http://www.veremes.com/" target="_blank">
-                <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="335px" height="100px" viewBox="0 0 335 100" enable-background="new 0 0 335 100" xml:space="preserve">
-                    <g>
-                        <rect fill="#FFFFFF" width="335" height="100"/>
-                        <g>
-                            <path fill="#1A171B" d="M308.774,60.788c-0.99-1.493-2.537-2.688-4.64-3.589c-0.533-0.224-1.577-0.57-3.142-1.042
-                                        c-1.563-0.47-2.75-0.959-3.567-1.472c-0.893-0.547-1.532-1.161-1.916-1.841c-0.386-0.682-0.577-1.517-0.577-2.511
-                                        c0-1.4,0.466-2.572,1.398-3.516c0.933-0.944,2.098-1.417,3.498-1.417c1.561,0,2.793,0.437,3.695,1.308
-                                        c0.901,0.873,1.402,2.1,1.505,3.681h4.622c-0.12-2.909-1.026-5.178-2.72-6.806c-1.69-1.626-3.972-2.439-6.845-2.439
-                                        c-2.71,0-5.016,0.916-6.921,2.744c-1.904,1.831-2.856,4.057-2.856,6.678c0,2.319,0.569,4.168,1.714,5.551
-                                        c1.143,1.383,3.582,2.734,7.318,4.056c2.334,0.858,3.947,1.775,4.838,2.754c0.891,0.98,1.336,2.274,1.336,3.884
-                                        c0,1.612-0.561,2.947-1.682,4.007c-1.121,1.063-2.526,1.592-4.219,1.592c-1.772,0-3.262-0.69-4.463-2.071
-                                        c-1.202-1.379-1.802-3.12-1.802-5.228v-0.122h-4.502c0.103,3.535,1.114,6.344,3.039,8.431c1.922,2.085,4.466,3.127,7.637,3.127
-                                        c3.108,0,5.674-0.952,7.698-2.853c2.025-1.899,3.038-4.301,3.038-7.205C310.261,64.182,309.764,62.279,308.774,60.788z
-                                         M118.462,41.021c-5.17,0-9.417,1.679-12.739,5.035c-3.32,3.357-4.979,7.607-4.979,12.742c0,4.912,1.693,9.118,5.084,12.617
-                                        c3.389,3.502,7.535,5.252,12.438,5.252c3.694,0,6.947-0.998,9.756-2.988c2.808-1.994,4.988-4.849,6.542-8.569h-4.866
-                                        c-1.103,2.332-2.666,4.151-4.688,5.459c-2.023,1.308-4.302,1.962-6.834,1.962c-3.575,0-6.558-1.131-8.947-3.394
-                                        c-2.391-2.263-3.718-5.226-3.983-8.894h30.413v-0.318c0-5.604-1.601-10.154-4.797-13.655
-                                        C127.662,42.771,123.529,41.021,118.462,41.021z M105.366,56.472c0.509-3.468,1.901-6.219,4.17-8.258
-                                        c2.27-2.037,5.04-3.056,8.313-3.056c3.517,0,6.368,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.509,8.47H105.366z M99.054,31.046
-                                        L84.898,69.101L72.402,35.38l0.007-0.047l-0.079-0.217c-0.401-1.095-0.841-2.3-1.34-3.546l-0.194-0.523h-0.021
-                                        c-2.108-5.143-5.249-10.879-10.817-12.957c-5.541-2.069-12.762-0.675-17.169,3.314c-3.422,3.096-5.471,7.843-6.089,14.111
-                                        c0-0.002-0.117,1.154-0.117,1.154c-0.239,2.31-0.481,4.665-0.354,7.034l0.047,0.874l0.875-0.048l2.31-0.124l0.876-0.046
-                                        l-0.049-0.876c-0.113-2.069,0.115-4.268,0.335-6.396c0-0.001,0.12-1.172,0.12-1.172c0.517-5.235,2.121-9.103,4.771-11.499
-                                        c3.349-3.03,8.825-4.09,13.024-2.522c4.294,1.604,6.994,6.964,8.88,11.717l1.387,3.688l0.208,0.57l0.005-0.004L83.24,75.692h3.407
-                                        l16.788-44.646H99.054z M268.755,41.021c-5.171,0-9.418,1.679-12.738,5.035c-3.32,3.357-4.979,7.607-4.979,12.742
-                                        c0,4.912,1.692,9.118,5.084,12.617c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.758-2.988
-                                        c2.807-1.994,4.986-4.849,6.54-8.569h-4.866c-1.102,2.332-2.666,4.151-4.688,5.459c-2.022,1.308-4.302,1.962-6.835,1.962
-                                        c-3.574,0-6.557-1.131-8.945-3.394c-2.392-2.263-3.72-5.226-3.984-8.894h30.415v-0.318c0-5.604-1.603-10.154-4.8-13.655
-                                        C277.955,42.771,273.821,41.021,268.755,41.021z M255.658,56.472c0.51-3.468,1.901-6.219,4.171-8.258
-                                        c2.27-2.037,5.039-3.056,8.314-3.056c3.516,0,6.367,0.948,8.555,2.844c2.187,1.897,3.692,4.719,4.509,8.47H255.658z
-                                         M148.164,42.625c-1.253,0.705-2.409,1.808-3.465,3.315v-3.946h-4.074v33.698h4.379V55.395c0-3.099,0.583-5.334,1.754-6.711
-                                        c1.17-1.376,3.11-2.187,5.821-2.431l-0.032-4.744C150.878,41.549,149.417,41.922,148.164,42.625z M172.22,41.021
-                                        c-5.171,0-9.418,1.679-12.738,5.035c-3.321,3.357-4.981,7.607-4.981,12.742c0,4.912,1.694,9.118,5.085,12.617
-                                        c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.757-2.988c2.808-1.994,4.988-4.849,6.541-8.569h-4.866
-                                        c-1.102,2.332-2.665,4.151-4.688,5.459c-2.023,1.308-4.303,1.962-6.834,1.962c-3.574,0-6.557-1.131-8.947-3.394
-                                        c-2.391-2.263-3.718-5.226-3.984-8.894h30.414v-0.318c0-5.604-1.6-10.154-4.799-13.655
-                                        C181.419,42.771,177.286,41.021,172.22,41.021z M159.124,56.472c0.51-3.468,1.901-6.219,4.17-8.258
-                                        c2.271-2.037,5.04-3.056,8.313-3.056c3.517,0,6.369,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.51,8.47H159.124z
-                                         M232.864,41.264c-2.51,0-4.779,0.509-6.809,1.518c-2.03,1.012-3.73,2.49-5.097,4.43c-1.106-1.818-2.712-3.264-4.82-4.338
-                                        c-2.108-1.072-4.441-1.61-7-1.61c-2.212,0-4.191,0.379-5.941,1.134c-1.748,0.756-3.27,1.88-4.558,3.372v-3.776h-4.258v33.698
-                                        h4.258V59.274c0-2.927,0.105-4.978,0.321-6.154c0.215-1.177,0.586-2.227,1.119-3.147c0.856-1.473,2.026-2.604,3.509-3.391
-                                        c1.481-0.787,3.203-1.182,5.165-1.182c3.248,0,5.66,0.926,7.233,2.777c1.573,1.852,2.36,4.722,2.36,8.61v18.905h4.136V59.274
-                                        c0-2.927,0.112-4.978,0.338-6.154c0.223-1.177,0.59-2.227,1.1-3.147c0.854-1.473,2.012-2.604,3.467-3.391
-                                        c1.457-0.787,3.143-1.182,5.06-1.182c3.318,0,5.711,0.947,7.178,2.84c1.469,1.894,2.202,5.07,2.202,9.529v17.923h4.137V58.658
-                                        c0-6.093-1.043-10.516-3.122-13.268C240.76,42.64,237.436,41.264,232.864,41.264z"/>
-                            <g>
-                            <path fill="#1A171B" d="M36.791,43.727c4.5,3.508,3.856-8.518,5.095-10.445c-0.251,0.39,1.045-0.227,1.359-0.68
-                                                c0.714-1.033,0.78-1.304,1.783-0.467c0.685,0.57,4.073-2.156,5.011-2.76c-0.206-0.223,0.68,1.338,0.68,0.764
-                                                c0,4.354-0.253,0.671,2.42,1.401c1.206,0.329,2.179-0.847,3.269,0.893c-0.283,0.31-0.566,0.621-0.849,0.933
-                                                c4.111,1.071,3.139,4.072,7.134,6.029c-1.239,0.545-2.304,1.363-2.463,2.803c1.169,0.267,2.366,0.422,3.566,0.424
-                                                c-0.34,0.311-0.679,0.622-1.02,0.934c2.158,0.346,2.307,2.235,4.671,1.699c-0.891,1.669-4.83,4.51-1.274,5.094
-                                                c-0.198,0.085-0.396,0.171-0.594,0.255c0.745,0.477,1.172,1.362,1.868,1.868c-0.946,0.11-1.794,0.679-2.802,0.68
-                                                c0.04,1.611,1.581,1.87,2.717,2.124c-2.577,1.72,0.311,0.894,0.722,2.122c-0.165-0.493,1.154,1.254,0.807,0.977
-                                                c-0.173-0.139-1.318,0.596-0.807,1.062c0.174,0.158,4.875,0.583,1.98,1.482c-1.714,0.534-4.447,0.456-3.679,2.763
-                                                c-1.174-0.126-1.886,0.235-2.845-0.083c0.154,0.687-0.067,0.846,0.213,1.442c-1.335,0.382-2.595-0.269-3.695-1.061
-                                                c-0.042,0.268-0.084,0.537-0.127,0.806c-0.368-0.325-0.736-0.649-1.104-0.976c0.016,0.536-0.255,1.096-0.212,1.656
-                                                c-0.877-0.677-5.258-4.209-2.972-1.189c0.905,1.195,1.842,1.439,2.93,2.463c-1.363,0.366-0.2,5.027,1.91,4.627
-                                                c-1.045,1.709-3.151-0.414-4.289,1.828c1.419,0.304,0.683,0.515,1.826,1.146c-0.596-0.139-1.35,0.109-1.996-0.043
-                                                c0.058,0.606,1.302,2.911,1.104,3.185c-0.761,1.05-2.778-1.146-3.949-1.146c-0.209,0.18-0.252,0.392-0.126,0.636
-                                                c1.264,0.254,0.742,0.52,0.976,1.698c-2.448-0.878-0.467,0.231-0.467,1.104c0,3.686-2.677-0.092-2.548,2.505
-                                                c-0.269-0.014-0.537-0.027-0.806-0.041c0.263,2.893-2.243-0.257-2.845,3.056c0.048,0.018-3.298-0.522-3.333-0.488
-                                                c-1.136,1.135-1.402-0.027-2.174,0.598c-1.87,1.514-1.024-1.807-1.552-1.998c-0.694-0.253-2.246,1.984-2.455,0.573
-                                                c-0.207-1.396-0.55-3.131-1.463-1.656c-0.954-0.37-3.546,0.314-3.842-0.572c-0.223-0.67-2.252-3.619-0.871-4.078
-                                                c-0.407,0.137-1.347,0.543-1.719,0.765c0.857-2.833-1.515-2.188-3.185-1.146c0.104-1.69,0.899-3.521-1.083-3.247
-                                                c0.293-0.662,0.337-1.645,0.828-2.356c-0.382,0.084-0.764,0.17-1.146,0.254c0.059-0.477,4.984-10.382,5.223-10.382
-                                                c-0.199-0.062-0.369-0.169-0.51-0.318c-1.236,3.129-3.048,5.804-5.095,8.534c0.046-0.52-0.061-1.008-0.318-1.464
-                                                c-0.23,0-1.983,2.339-2.548,2.61c0-0.253,0-0.509,0-0.763c-0.231,0.366-1.444,2.675-1.783,2.675c-0.329,0,0.481-1.796-0.51-1.467
-                                                c-0.944,0.315-1.458,0.54-2.292,0.701c0.99-1.181,1.719-2.432-0.446-1.783c0.204-0.955-0.191-1.231-0.191-1.974
-                                                c-0.159,0.41-0.393,0.771-0.7,1.084c-0.23-1.254-0.242-6.138-0.383-6.138c-1.46,0,0.123-2.937,0.341-3.312
-                                                c-0.17-0.142-0.341-0.282-0.51-0.425c0.05,1.16-0.433,1.305-0.764,2.293c-1.08-1.767,1.521-3.314-0.764-3.99
-                                                c0.311-0.256,0.623-0.51,0.934-0.765c-0.199-0.198-0.396-0.396-0.595-0.595c-0.269,0.61-0.729,1.216-1.02,1.783
-                                                c-0.154-0.479,0.034-2.888,0.51-2.888c-0.313-0.017-0.624-0.044-0.935-0.084c0.723-0.973,0.495-1.264,1.444-1.699
-                                                c-0.17-0.51-0.339-1.019-0.509-1.529c0.17,0.058,0.339,0.114,0.509,0.171c0.149,0.083-0.41-0.829-0.68-0.424
-                                                c0.503-0.754,1.123-1.223,1.868-1.614c-0.283-0.17-0.566-0.34-0.849-0.51c0.664-0.432,1.176-1.357,2.038-1.698
-                                                c-0.566-1.104-0.674-1.464-1.868-1.784c-0.033-2.104,1.163-9.234,2.717-8.407c-0.049-0.578-0.062-0.699,0.509-0.765
-                                                c-0.087-1.145-0.637-0.797,0.595-1.104c-0.979-4.102,1.847-2.083,3.651-1.104c0-0.341,0-0.68,0-1.02
-                                                c0.534,0.116,1.853,0.641,2.177,0.085c0.109-0.188-0.92-0.513-1.073-0.594c1.126-0.569,0.975-1.844,0.17-3.143
-                                                c1.503,0.075,3.008,0.738,3.482-0.594c0.613,0.591,1.188,0.584,1.697,1.358c0.284-0.481,0.566-0.963,0.85-1.443
-                                                c0.53,0.646,1.549,2.504,2.59,1.983c0.223-0.111,1.486,0.661,1.486,0.394c0-1.159,0.588-2.121,1.529-2.717
-                                                C35.584,34.716,35.005,38.027,36.791,43.727"/>
-                            </g>
-                        </g>
-                    </g>
-                </svg>
-            </a>
-        </td>
-    </tr>
-</table>
-<!-- Email Header : END -->
-
-<!-- Email Body : BEGIN -->
-<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
-
-    [CONTENT]
-
-</table>
-<!-- Email Body : END -->
-
-<!-- Email Footer : BEGIN -->
-<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
-    <tr>
-        <td style="padding: 0px;width: 100%;" class="x-gmail-data-detectors">
-            <div class="bottom-strip" style="background-color: #39468A;"></div>
-            <div class="bottom-strip" style="background-color: #E74F23;"></div>
-            <div class="bottom-strip" style="background-color: #923288;"></div>
-            <div class="bottom-strip" style="background-color: #1C9DB2;"></div>
-            <div class="bottom-strip" style="background-color: #E10759;"></div>
-        </td>
-    </tr>
-</table>
-<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
-    <tr>
-        <td style="padding: 10px;width: 50%;font-size: 12px; font-family: sans-serif; line-height:18px; text-align: center; color: #888888; cursor:pointer;" class="x-gmail-data-detectors">
-            <a class="square-logo-layout" href="https://twitter.com/Veremes_Info" target="_blank" style="color: #24292E; cursor:pointer;">
-                <!--<i class="fa fa-twitter" style=""></i>-->
-                <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;">
-                        <title>Twitter</title>
-                        <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.28,37c0,.56,0,1.12,0,1.68C75.32,56,62.2,75.83,38.21,75.83h0a37,37,0,0,1-20-5.86,24.62,24.62,0,0,0,3.11.18,26.13,26.13,0,0,0,16.2-5.58,13,13,0,0,1-12.18-9.06,12.34,12.34,0,0,0,2.45.24,13,13,0,0,0,3.44-.46A13,13,0,0,1,20.77,42.5v-.16A13.11,13.11,0,0,0,26.68,44a13.05,13.05,0,0,1-4-17.42A37,37,0,0,0,49.52,40.18a13.19,13.19,0,0,1-.34-3,13.05,13.05,0,0,1,22.57-8.92A26.11,26.11,0,0,0,80,25.12a13.08,13.08,0,0,1-5.73,7.22,26.23,26.23,0,0,0,7.49-2.06A26.49,26.49,0,0,1,75.28,37Z"/>
-                </svg>
-            </a>
-            <a class="square-logo-layout" href="https://www.linkedin.com/company/veremes/" target="_blank" style="color: #24292E; cursor:pointer;">
-                <!--<i class="fa fa-linkedin" style=""></i>-->
-                <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;">
-                        <title>LinkedIn</title>
-                        <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM60.71,51a6.48,6.48,0,0,0-6.33,6.32V79.68H41.74V41.74H54.38v5a13.63,13.63,0,0,1,10.54-5.9A15,15,0,0,1,79.68,55.65v24H67V57.33A6.48,6.48,0,0,0,60.71,51ZM27,34.57A7.59,7.59,0,1,1,34.57,27,7.55,7.55,0,0,1,27,34.57Zm6.32,7.17V79.68H20.66V41.74Z"/>
-                </svg>
-            </a>
-            <a class="square-logo-layout" href="http://vm09.veremes.net/" target="_blank" style="color: #24292E; cursor:pointer;">
-                <!--<i class="fa fa-github" style=""></i>-->
-                <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;">
-                    <title>GitLab</title>
-                    <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.18,15.1a1,1,0,0,1,2,0l9,27.81h-20Zm-52.34,0a1,1,0,0,1,2,0l9,27.81h-20ZM9.85,61A2.63,2.63,0,0,1,8.9,58l4.35-13.4L47.16,88.07Zm4.33-17h20l14.3,44Zm21.19,0H64.63L50,89Zm30.42,0h20L51.49,88ZM90.15,61,52.84,88.07,86.75,44.62,91.1,58A2.63,2.63,0,0,1,90.15,61Z"/>
-                </svg>
-            </a>
-            <a class="square-logo-layout" href="http://www.veremes.com/" target="_blank" style="color: #24292E; cursor:pointer;">
-                <!--<i class="fa fa-globe" style=""></i>-->
-                <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;">
-                        <defs>
-                                <style>.cls-1{fill:none;}</style>
-                        </defs>
-                        <title>Veremes</title>
-                        <path class="cls-1" d="M60.17,18.09h0S60.15,18.05,60.17,18.09Z"/>
-                        <path class="cls-1" d="M48.39,26.38c.66-6.65,2.7-11.56,6.06-14.6a11.45,11.45,0,0,1,1.82-1.29A40.5,40.5,0,0,0,50,10l-1,0c-3.18,3.87-5.13,9.17-5.79,15.85l-.15,1.47c-.21,2.06-.42,4.16-.47,6.28-1.35-5.7-.83-9.69-1.1-15.87A4,4,0,0,0,39.6,21.2c0,.34-1.6-.64-1.88-.5-1.33.67-2.62-1.69-3.29-2.51L33.35,20c-.65-1-1.38-1-2.16-1.73-.6,1.69-2.51.85-4.42.76,1,1.65,1.21,3.26-.21,4,.19.1,1.5.51,1.36.75-.41.71-2.09,0-2.77-.11V25c-2.29-1.25-5.88-3.81-4.63,1.4-1.57.39-.87-.05-.76,1.4-.72.09-.71.24-.64,1-2-1.05-3.5,8-3.45,10.68,1.51.4,1.65.86,2.37,2.26-1.1.43-1.75,1.61-2.59,2.16l1.08.64a6,6,0,0,0-2.37,2c.34-.51,1.05.65.86.54l-.65-.22c.22.65.43,1.3.65,2-1.21.55-.92.92-1.83,2.15.39,0,.78.09,1.18.11-.6,0-.84,3.06-.65,3.67.37-.72,1-1.49,1.3-2.27l.75.76-1.18,1c2.9.86-.4,2.82,1,5.06.42-1.25,1-1.43,1-2.91l.65.54c-.28.48-2.29,4.21-.44,4.21.18,0,.2,6.2.49,7.79a4,4,0,0,0,.89-1.38c0,.95.5,1.3.24,2.51,2.75-.82,1.82.76.57,2.26a20.92,20.92,0,0,0,2.91-.89c1.26-.41.23,1.86.64,1.86s2-2.93,2.27-3.39v1c.72-.35,2.94-3.32,3.23-3.32a3.11,3.11,0,0,1,.41,1.86,46.51,46.51,0,0,0,6.47-10.83,1.46,1.46,0,0,0,.65.4c-.31,0-6.56,12.58-6.64,13.18l1.46-.32c-.63.9-.68,2.15-1,3,2.51-.35,1.5,2,1.37,4.13,2.12-1.33,5.14-2.15,4.05,1.45a15.73,15.73,0,0,1,2.18-1c-1.76.58.82,4.33,1.11,5.17.37,1.13,3.66.26,4.87.73,1.16-1.87,1.6.33,1.86,2.11s2.24-1,3.12-.73c.67.24-.4,4.46,2,2.53,1-.79,1.32.68,2.76-.75,0,0,4.29.64,4.23.62.77-4.21,3.94-.21,3.61-3.88l1,0c-.16-3.3,3.24,1.5,3.24-3.18,0-1.11-2.52-2.52.59-1.4-.29-1.5.37-1.84-1.24-2.16a.62.62,0,0,1,.16-.81c1.49,0,4,2.79,5,1.46.25-.35-1.33-3.28-1.4-4,.82.2,1.77-.12,2.53.06-1.45-.8-.52-1.07-2.32-1.46,1.45-2.84,4.12-.15,5.45-2.32C70.78,71.9,69.3,66,71,65.52c-1.38-1.3-2.57-1.61-3.72-3.13-2.9-3.83,2.66.65,3.78,1.51-.06-.71.28-1.42.27-2.1L72.76,63c0-.34.11-.69.16-1,1.4,1,3,1.83,4.69,1.35-.35-.76-.08-1-.27-1.83,1.22.4,2.12-.06,3.61.11-1-2.93,2.5-2.84,4.67-3.51,3.68-1.15-2.29-1.68-2.51-1.88-.65-.6.8-1.53,1-1.35.44.35-1.23-1.87-1-1.24-.52-1.56-4.19-.51-.92-2.7-1.44-.32-3.4-.65-3.45-2.69,1.28,0,2.36-.73,3.56-.87-.89-.64-1.43-1.76-2.37-2.37l.75-.32c-4.51-.74.49-4.35,1.62-6.47-3,.68-3.19-1.72-5.93-2.16l1.29-1.18a20.84,20.84,0,0,1-4.52-.54c.19-1.83,1.55-2.87,3.12-3.56-5.07-2.49-3.84-6.3-9.06-7.66L68.28,22c-1.38-2.21-2.62-.72-4.15-1.13-3.39-.93-3.07,3.75-3.07-1.78,0,.62-.81-.72-.89-1-1.22.8-5.47,4.21-6.34,3.49-1.27-1.06-1.35-.72-2.26.59-.4.58-2,1.36-1.73.87-.9,1.41-1,7.1-2.05,10.79,0-2,.25-4,.45-6Z"/>
-                        <path d="M99.94,47.71l0-.64c0-.61-.08-1.23-.14-1.84,0-.16,0-.31,0-.46-.08-.74-.17-1.47-.28-2.2,0-.19-.06-.38-.1-.57q-.13-.86-.3-1.68l-.12-.64c-.15-.7-.31-1.39-.48-2.08,0-.15-.09-.3-.13-.45-.14-.56-.3-1.11-.46-1.65-.08-.24-.15-.49-.23-.73-.16-.51-.34-1-.52-1.54-.06-.17-.12-.35-.19-.53-.23-.62-.47-1.24-.73-1.85-.11-.27-.22-.53-.34-.8s-.35-.78-.53-1.17l-.38-.81c-.27-.56-.56-1.11-.85-1.66-.16-.3-.33-.59-.49-.88s-.35-.61-.53-.92-.37-.63-.57-.94L92,22.86q-.55-.86-1.14-1.68l-.45-.62c-.25-.35-.51-.69-.77-1-.13-.18-.27-.35-.41-.52q-1.36-1.74-2.9-3.35L86,15.35q-1.66-1.72-3.48-3.29L82.46,12a51.79,51.79,0,0,0-5.4-4h0a49.56,49.56,0,0,0-4.42-2.54h0A49.59,49.59,0,0,0,63.94,2h0c-1.56-.45-3.16-.83-4.78-1.13L58.49.73,57.21.52C56.59.43,56,.35,55.33.29L54.54.21,53,.1l-.73,0C51.51,0,50.76,0,50,0a50,50,0,1,0,50,50C100,49.23,100,48.47,99.94,47.71ZM49.84,23c-.31.49,1.33-.29,1.73-.87.91-1.31,1-1.65,2.26-.59.87.72,5.12-2.69,6.34-3.49,0,0,0-.06,0,0h0c.08.24.89,1.58.89,1,0,5.53-.32.85,3.07,1.78,1.53.41,2.77-1.08,4.15,1.13L67.2,23.14c5.22,1.36,4,5.17,9.06,7.66-1.57.69-2.93,1.73-3.12,3.56a20.84,20.84,0,0,0,4.52.54l-1.29,1.18c2.74.44,2.92,2.84,5.93,2.16-1.13,2.12-6.13,5.73-1.62,6.47l-.75.32c.94.61,1.48,1.73,2.37,2.37-1.2.14-2.28.86-3.56.87.05,2,2,2.37,3.45,2.69-3.27,2.19.4,1.14.92,2.7-.21-.63,1.46,1.59,1,1.24-.22-.18-1.67.75-1,1.35.22.2,6.19.73,2.51,1.88-2.17.67-5.64.58-4.67,3.51-1.49-.17-2.39.29-3.61-.11.19.87-.08,1.07.27,1.83-1.7.48-3.29-.34-4.69-1.35,0,.34-.11.69-.16,1l-1.4-1.24c0,.68-.33,1.39-.27,2.1C70,63,64.41,58.56,67.31,62.39c1.15,1.52,2.34,1.83,3.72,3.13-1.73.46-.25,6.38,2.43,5.87-1.33,2.17-4-.52-5.45,2.32,1.8.39.87.66,2.32,1.46-.76-.18-1.71.14-2.53-.06.07.77,1.65,3.7,1.4,4-1,1.33-3.53-1.46-5-1.46a.62.62,0,0,0-.16.81c1.61.32,1,.66,1.24,2.16-3.11-1.12-.59.29-.59,1.4,0,4.68-3.4-.12-3.24,3.18l-1,0c.33,3.67-2.84-.33-3.61,3.88.06,0-4.19-.67-4.23-.62-1.44,1.43-1.78,0-2.76.75-2.37,1.93-1.3-2.29-2-2.53-.88-.32-2.86,2.52-3.12.73s-.7-4-1.86-2.11c-1.21-.47-4.5.4-4.87-.73-.29-.84-2.87-4.59-1.11-5.17a15.73,15.73,0,0,0-2.18,1c1.09-3.6-1.93-2.78-4.05-1.45.13-2.15,1.14-4.48-1.37-4.13.37-.84.42-2.09,1-3l-1.46.32c.08-.6,6.33-13.18,6.64-13.18a1.46,1.46,0,0,1-.65-.4,46.51,46.51,0,0,1-6.47,10.83A3.11,3.11,0,0,0,28,67.51c-.29,0-2.51,3-3.23,3.32v-1c-.3.46-1.83,3.39-2.27,3.39s.62-2.27-.64-1.86a20.92,20.92,0,0,1-2.91.89c1.25-1.5,2.18-3.08-.57-2.26.26-1.21-.24-1.56-.24-2.51a4,4,0,0,1-.89,1.38c-.29-1.59-.31-7.79-.49-7.79-1.85,0,.16-3.73.44-4.21l-.65-.54c.06,1.48-.55,1.66-1,2.91-1.37-2.24,1.93-4.2-1-5.06l1.18-1L15,52.47c-.34.78-.93,1.55-1.3,2.27-.19-.61,0-3.67.65-3.67-.4,0-.79-.06-1.18-.11.91-1.23.62-1.6,1.83-2.15-.22-.65-.43-1.3-.65-2l.65.22c.19.11-.52-1-.86-.54a6,6,0,0,1,2.37-2l-1.08-.64c.84-.55,1.49-1.73,2.59-2.16-.72-1.4-.86-1.86-2.37-2.26-.05-2.68,1.47-11.73,3.45-10.68-.07-.73-.08-.88.64-1-.11-1.45-.81-1,.76-1.4-1.25-5.21,2.34-2.65,4.63-1.4v-1.3c.68.15,2.36.82,2.77.11.14-.24-1.17-.65-1.36-.75,1.42-.73,1.23-2.34.21-4,1.91.09,3.82.93,4.42-.76C32,19,32.7,19,33.35,20l1.08-1.83c.67.82,2,3.18,3.29,2.51.28-.14,1.88.84,1.88.5a4,4,0,0,1,1.94-3.45c.27,6.18-.25,10.17,1.1,15.87,0-2.12.26-4.22.47-6.28l.15-1.47c.66-6.68,2.61-12,5.79-15.85l1,0a40.5,40.5,0,0,1,6.27.49,11.45,11.45,0,0,0-1.82,1.29c-3.36,3-5.4,8-6.06,14.6l-.15,1.49c-.2,2-.41,4-.45,6C48.82,30.14,48.94,24.45,49.84,23Z"/>
-                </svg>
-            </a>
-        </td>
-        <td style="padding: 10px;width: 50%;font-size: 20px; font-family: sans-serif; line-height:18px; text-align: center; color: #000000;" class="x-gmail-data-detectors">
-            <div style="margin-bottom:10px;">Pour toute question :</div>
-            <div>support@veremes.com</div>
-        </td>
-    </tr>
-</table>
-<!-- Email Footer : END -->
-
-</center>
-[SCRIPT]
-</body>
-</html>';
+<?php
+
+$aMail["newUserTitle"] = "Un nouvel utilisateur vient juste de s'inscrire";
+$aMail["newUserTitleAutomated"] = "Vérification de votre adresse mail";
+$aMail["newUserBody"] = '<!-- 1 Column Text + Button : BEGIN -->
+    <tr>
+        <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;">
+            <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">[TITLE]</h1>
+        </td>
+    </tr>
+    <tr>
+        <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;">
+            <p style="width:100%; font-weight:bold; text-align: justify; font-size: 20px;">Bonjour [FULLNAME],</p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Nous vous remercions d\'avoir créé votre compte sur <b>[HOSTNAME]</b>.</p>
+            <p style="width:100%; text-align: left;font-size: 18px;"><b>Informations sur votre compte :</b></p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Identifiant : [USERNAME]</p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Organisme : [COMPANY] </p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Mail : [MAIL]</p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Téléphone : [PHONE] </p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Ip publique fixe : [PUBLIC_IP] </p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Nom du demandeur : [DEMANDEUR] </p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Adresse mail du demandeur : [MAIL_DEMANDEUR] </p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Objet de l\'étude : [STUDY_OBJECT] </p>
+            <p style="width:100%; text-align: left;font-size: 18px;margin-top: 20px;">Cliquez sur le bouton ci-dessous pour finaliser votre inscription :</p>
+        </td>
+    </tr>
+    <tr>
+        <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 20px; line-height: 20px; color: #555555;">
+            <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto">
+                <tr>
+                    <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td">
+                        <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a">
+                            &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#ffffff;">Je confirme mon adresse mail</span>&nbsp;&nbsp;&nbsp;&nbsp;
+                        </a>
+                    </td>
+                </tr>
+            </table>
+            <!-- Button : END -->
+        </td>
+    </tr>
+    <tr>
+        <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;">
+            <p style="width:100%; text-align: justify;font-size: 18px;">Si vous ne vous êtes pas inscrit(e) sur notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p>
+        </td>
+    </tr>
+    <!-- 1 Column Text + Button : END -->';
+
+$aMail["confirmationSignUpTitle"] = "Confirmation d'inscription";
+$aMail["genericBody"] = '
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">[MESSAGE]</h1>
+                </td>
+            </tr>';
+
+$aMail["SignUpOk"] = '<tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur a été ajouté, connectez vous sur la base de données pour lui donner des droits (Defaut: [ROLES])</h1>
+                </td>
+            </tr>';
+$aMail["SignUpError"] = '<tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur n\'a pas pu être ajouté consultez les fichiers de log pour plus d\'informations</h1>
+                </td>
+            </tr>';
+
+$aMail["signUpConfirmation"] = '<tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal; margin-bottom: 15px;">Votre compte est maintenant activé, vous pouvez vous connecter. Pour avoir accès à plus de fonctionnalités contactez l\'administrateur</h1>
+                    <a style="margin: 0; font-family: sans-serif; font-size: 22px; font-weight: normal;" href="[REDIRECTION]"> Retourner vers l\'application </a>
+                </td>
+            </tr>';
+$aMail["fpwdTitle"] = "Changez votre mot de passe";
+$aMail["fpwdUpdateOk"] = '<tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe a été mis à jour</h1>
+                </td>
+            </tr>';
+$aMail["fpwdUpdateError"] = '<tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe n\'a pas pu être mis à jour</h1>
+                </td>
+            </tr>';
+$aMail["alreadyUpdate"] = '<tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe à déjà été changé</h1>
+                </td>
+            </tr>';
+
+$aMail["fpwdBody"] = '<!-- 1 Column Text + Button : BEGIN -->
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Changez votre mot de passe</h1>
+                </td>
+            </tr>
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;">
+                    <p style="width:100%; font-weight:bold; text-align: left; font-size: 20px;">Bonjour [LOGIN],</p>
+                    <p style="width:100%; text-align: left;font-size: 18px;">Une tentative de récupération de votre compte à été effectué sur le site <b>[HOSTNAME]</b>.</p>
+                    <p style="width:100%; text-align: left;font-size: 18px;margin-top: 10px;">Cliquez sur le bouton ci-dessous pour changer votre mot de passe :</p>
+                </td>
+            </tr>
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555;">
+                    <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto">
+                        <tr>
+                            <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td">
+                                <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a">
+                                    &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#ffffff;">Changer mon mot de passe</span>&nbsp;&nbsp;&nbsp;&nbsp;
+                                </a>
+                            </td>
+                        </tr>
+                    </table>
+                    <!-- Button : END -->
+                </td>
+            </tr>
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;">
+                    <p style="width:100%; text-align: justify;font-size: 18px;">Si vous n\'avez pas perdu votre mot de passe pour vous connecter à notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p>
+                </td>
+            </tr>
+            <!-- 1 Column Text + Button : END -->';
+
+$aMail["fpwdForm"] = '<!-- 1 Column Text + Button : BEGIN -->
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Saisissez votre nouveau mot de passe</h1>
+                </td>
+            </tr>
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 20px 40px 40px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555; text-align: center;">
+                    <form style="text-align:-webkit-right;">
+                        <div style="text-align:left;">
+                            <label for="password" style="font-weight: bold;">Nouveau mot de passe</label>
+                            <input type="password" id="password" name="password" class="input-text-control" required/>
+                        </div>
+                        <div style="text-align:left;margin-top:10px;">
+                            <label for="password_confirm" style="font-weight: bold;">Confirmer votre nouveau mot de passe</label>
+                            <input type="password" id="password_confirm" name="password_confirm" class="input-text-control" required/>
+                        </div>
+                        <div style="margin-top:20px;">
+                            <input type="hidden" name="token" value="[TOKEN]"/>
+                            <input type="hidden" name="output" value="text/html"/>
+                            <button style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 15px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a" type="button" onclick="sendRequest(\'[URL]\')"><span style="color:#ffffff;">Envoi</span></button>
+                        </div>
+                    </form>
+                </td>
+            </tr>';
+
+$aMail["passwordScript"] = '<script>
+    var password = document.getElementById("password"), confirm_password = document.getElementById("password_confirm");
+
+        function validatePassword(){
+          if(password.value != confirm_password.value) {
+            confirm_password.setCustomValidity("Les deux mots de passe doivent être identique");
+          } else {
+            confirm_password.setCustomValidity(\'\');
+          }
+        }
+
+        password.onchange = validatePassword;
+        confirm_password.onkeyup = validatePassword;
+
+        function sendRequest (sUrl){
+            if(typeof(password.value)!== "undefined"){
+                if(password.value != ""){
+                    var xhr = new XMLHttpRequest();
+                    xhr.open("PUT", sUrl);
+                    sParams = JSON.stringify({"password": password.value});
+                    xhr.onreadystatechange = function (aEvt) {
+                        if (xhr.readyState == 4) {
+                            if (xhr.status == 200) {
+                                    var oJson = JSON.parse(xhr.responseText);
+                                    window.location.replace(oJson.sUrl);
+                            } else {
+                                    //xhr.responseText;
+                            }
+                        }
+                    }
+                    xhr.send(sParams);
+                }else{console.log("saisissez un mot de passe2")}
+            }else{console.log("saisissez un mot de passe")}
+        }
+    </script>';
+
+$aMail["mainBody"] = '<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8"> <!-- utf-8 works for most cases -->
+    <meta name="viewport" content="width=device-width"> <!-- Forcing initial-scale shouldn\'t be necessary -->
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Use the latest (edge) version of IE rendering engine -->
+    <meta name="x-apple-disable-message-reformatting">  <!-- Disable auto-scale in iOS 10 Mail entirely -->
+    <title>VAM</title> <!-- The title tag shows in email notifications, like Android 4.4. -->
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+    <!-- Web Font / @font-face : BEGIN -->
+    <!-- NOTE: If web fonts are not required, lines 10 - 27 can be safely removed. -->
+
+    <!-- Desktop Outlook chokes on web font references and defaults to Times New Roman, so we force a safe fallback font. -->
+    <!--[if mso]>
+        <style>
+            * {
+                font-family: sans-serif !important;
+            }
+        </style>
+    <![endif]-->
+
+    <!-- All other clients get the webfont reference; some will render the font and others will silently fail to the fallbacks. More on that here: http://stylecampaign.com/blog/2015/02/webfont-support-in-email/ -->
+    <!--[if !mso]><!-->
+  <!-- insert web font reference, eg: <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet" type="text/css"> -->
+  <!--<![endif]-->
+
+  <!-- Web Font / @font-face : END -->
+
+  <!-- CSS Reset -->
+  <style>
+
+  /* What it does: Remove spaces around the email design added by some email clients. */
+  /* Beware: It can remove the padding / margin and add a background color to the compose a reply window. */
+  html,
+  body {
+     margin: 0 auto !important;
+     padding: 0 !important;
+     height: 100% !important;
+     width: 100% !important;
+     /*min-width: 600px;*/
+ }
+
+ /* What it does: Stops email clients resizing small text. */
+ * {
+    -ms-text-size-adjust: 100%;
+    -webkit-text-size-adjust: 100%;
+}
+
+/* What it does: Centers email on Android 4.4 */
+div[style*="margin: 16px 0"] {
+    margin:0 !important;
+}
+
+/* What it does: Stops Outlook from adding extra spacing to tables. */
+table,
+td {
+    mso-table-lspace: 0pt !important;
+    mso-table-rspace: 0pt !important;
+}
+
+/* What it does: Fixes webkit padding issue. Fix for Yahoo mail table alignment bug. Applies table-layout to the first 2 tables then removes for anything nested deeper. */
+table {
+    border-spacing: 0 !important;
+    border-collapse: collapse !important;
+    table-layout: fixed !important;
+    margin: 0 auto !important;
+}
+table table table {
+    table-layout: auto;
+}
+
+/* What it does: Uses a better rendering method when resizing images in IE. */
+img {
+    -ms-interpolation-mode:bicubic;
+}
+
+/* What it does: A work-around for iOS meddling in triggered links. */
+*[x-apple-data-detectors] {
+    color: inherit !important;
+    text-decoration: none !important;
+}
+
+/* What it does: A work-around for Gmail meddling in triggered links. */
+.x-gmail-data-detectors,
+.x-gmail-data-detectors *,
+.aBn {
+    border-bottom: 0 !important;
+    //cursor: default !important;
+}
+
+/* What it does: Prevents Gmail from displaying an download button on large, non-linked images. */
+.a6S {
+ display: none !important;
+ opacity: 0.01 !important;
+}
+/* If the above doesn\'t work, add a .g-img class to any image in question. */
+img.g-img + div {
+ display:none !important;
+}
+
+/* What it does: Prevents underlining the button text in Windows 10 */
+.button-link {
+    text-decoration: none !important;
+}
+
+blockquote {
+  font-style:normal;
+  text-align:left;
+  //margin-left: 32px!important;
+  margin: 5px 5px 0px 32px!important;
+  //padding-top:10px;
+  //font-family:"Segoe Print","Times New Roman", Verdana;
+  padding-left: 7px;
+  min-height: 30px;
+  //background-color: #EFEFEF;
+  border-left: 2px solid #8c8c8c;  
+}
+
+blockquote > p {
+   margin:4.5px;
+}
+
+.input-text-control{
+    display: block;
+    width: 100%;
+    height: 14px;
+    padding: 4px 5px;
+    font-size: 12px;
+    line-height: 1.5;
+    border-radius: 3px;
+    color: #555;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #ccc;
+    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
+    box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
+    -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
+    -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
+    transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
+}
+
+/* What it does: Removes right gutter in Gmail iOS app: https://github.com/TedGoas/Cerberus/issues/89  */
+/* Create one of these media queries for each additional viewport size you\'d like to fix */
+/* Thanks to Eric Lepetit (@ericlepetitsf) for help troubleshooting */
+@media only screen and (min-device-width: 375px) and (max-device-width: 413px) { /* iPhone 6 and 6+ */
+    .email-container {
+        min-width: 375px !important;
+    }
+}
+
+</style>
+
+<!-- What it does: Makes background images in 72ppi Outlook render at correct size. -->
+    <!--[if gte mso 9]>
+    <xml>
+        <o:OfficeDocumentSettings>
+            <o:AllowPNG/>
+            <o:PixelsPerInch>96</o:PixelsPerInch>
+        </o:OfficeDocumentSettings>
+    </xml>
+<![endif]-->
+
+<!-- Progressive Enhancements -->
+<style>
+
+/* What it does: Hover styles for buttons */
+.button-td,
+.button-a {
+    transition: all 100ms ease-in;
+}
+.button-td:hover,
+.button-a:hover {
+    background: #449D44 !important;
+    border-color: #449D44 !important;
+}
+
+.bottom-strip{
+    width: 120px !important;
+    height: 10px !important;
+    float: left !important;
+}
+
+.square-logo-layout{
+    width: 40px;
+    float: left !important;
+    background-color: #FFF;//#24292E;
+    border-radius: 50%;
+    font-size: 30px;
+    padding: 7.5px;
+    margin-right: 0px;
+    //color: #FFF;
+    cursor:pointer !important;
+}
+
+.square-logo-layout > svg{
+    cursor:pointer!important;
+}
+
+
+/* Media Queries */
+@media screen and (max-width: 600px) {
+
+    .email-container {
+        width: 100% !important;
+        margin: auto !important;
+    }
+
+    /* What it does: Forces elements to resize to the full width of their container. Useful for resizing images beyond their max-width. */
+    .fluid {
+        max-width: 100% !important;
+        height: auto !important;
+        margin-left: auto !important;
+        margin-right: auto !important;
+    }
+
+    /* What it does: Forces table cells into full-width rows. */
+    .stack-column,
+    .stack-column-center {
+        display: block !important;
+        width: 100% !important;
+        max-width: 100% !important;
+        direction: ltr !important;
+    }
+    /* And center justify these ones. */
+    .stack-column-center {
+        text-align: center !important;
+    }
+
+    /* What it does: Generic utility class for centering. Useful for images, buttons, and nested tables. */
+    .center-on-narrow {
+        text-align: center !important;
+        display: block !important;
+        margin-left: auto !important;
+        margin-right: auto !important;
+        float: none !important;
+    }
+    table.center-on-narrow {
+        display: inline-block !important;
+    }
+
+    .input-text-control{
+        display: block;
+        width: 100%;
+        height: 14px;
+        padding: 4px 5px;
+        font-size: 12px;
+        line-height: 1.5;
+        border-radius: 3px;
+        color: #555;
+        background-color: #fff;
+        background-image: none;
+        border: 1px solid #ccc;
+        -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
+        box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
+        -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
+        -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
+        transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
+    }
+
+    /* What it does: Adjust typography on small screens to improve readability */
+    .email-container p {
+        font-size: 17px !important;
+        line-height: 22px !important;
+    }
+
+}
+
+</style>
+
+</head>
+<body width="100%" bgcolor="#E5E5E5" style="margin: 0px; mso-line-height-rule: exactly;">
+    <center style="width: 600px; margin: auto; background: #FFFFFF; text-align: left;">
+        <!-- Email Header : BEGIN -->
+        <table role="presentation" aria-hidden="true" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
+           <tr>
+            <td style="padding: 20px 0px; text-align: center">
+             <a href="http://www.veremes.com/" target="_blank">
+                <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="335px" height="100px" viewBox="0 0 335 100" enable-background="new 0 0 335 100" xml:space="preserve">
+                    <g>
+                        <rect fill="#FFFFFF" width="335" height="100"/>
+                        <g>
+                            <path fill="#1A171B" d="M308.774,60.788c-0.99-1.493-2.537-2.688-4.64-3.589c-0.533-0.224-1.577-0.57-3.142-1.042
+                                        c-1.563-0.47-2.75-0.959-3.567-1.472c-0.893-0.547-1.532-1.161-1.916-1.841c-0.386-0.682-0.577-1.517-0.577-2.511
+                                        c0-1.4,0.466-2.572,1.398-3.516c0.933-0.944,2.098-1.417,3.498-1.417c1.561,0,2.793,0.437,3.695,1.308
+                                        c0.901,0.873,1.402,2.1,1.505,3.681h4.622c-0.12-2.909-1.026-5.178-2.72-6.806c-1.69-1.626-3.972-2.439-6.845-2.439
+                                        c-2.71,0-5.016,0.916-6.921,2.744c-1.904,1.831-2.856,4.057-2.856,6.678c0,2.319,0.569,4.168,1.714,5.551
+                                        c1.143,1.383,3.582,2.734,7.318,4.056c2.334,0.858,3.947,1.775,4.838,2.754c0.891,0.98,1.336,2.274,1.336,3.884
+                                        c0,1.612-0.561,2.947-1.682,4.007c-1.121,1.063-2.526,1.592-4.219,1.592c-1.772,0-3.262-0.69-4.463-2.071
+                                        c-1.202-1.379-1.802-3.12-1.802-5.228v-0.122h-4.502c0.103,3.535,1.114,6.344,3.039,8.431c1.922,2.085,4.466,3.127,7.637,3.127
+                                        c3.108,0,5.674-0.952,7.698-2.853c2.025-1.899,3.038-4.301,3.038-7.205C310.261,64.182,309.764,62.279,308.774,60.788z
+                                         M118.462,41.021c-5.17,0-9.417,1.679-12.739,5.035c-3.32,3.357-4.979,7.607-4.979,12.742c0,4.912,1.693,9.118,5.084,12.617
+                                        c3.389,3.502,7.535,5.252,12.438,5.252c3.694,0,6.947-0.998,9.756-2.988c2.808-1.994,4.988-4.849,6.542-8.569h-4.866
+                                        c-1.103,2.332-2.666,4.151-4.688,5.459c-2.023,1.308-4.302,1.962-6.834,1.962c-3.575,0-6.558-1.131-8.947-3.394
+                                        c-2.391-2.263-3.718-5.226-3.983-8.894h30.413v-0.318c0-5.604-1.601-10.154-4.797-13.655
+                                        C127.662,42.771,123.529,41.021,118.462,41.021z M105.366,56.472c0.509-3.468,1.901-6.219,4.17-8.258
+                                        c2.27-2.037,5.04-3.056,8.313-3.056c3.517,0,6.368,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.509,8.47H105.366z M99.054,31.046
+                                        L84.898,69.101L72.402,35.38l0.007-0.047l-0.079-0.217c-0.401-1.095-0.841-2.3-1.34-3.546l-0.194-0.523h-0.021
+                                        c-2.108-5.143-5.249-10.879-10.817-12.957c-5.541-2.069-12.762-0.675-17.169,3.314c-3.422,3.096-5.471,7.843-6.089,14.111
+                                        c0-0.002-0.117,1.154-0.117,1.154c-0.239,2.31-0.481,4.665-0.354,7.034l0.047,0.874l0.875-0.048l2.31-0.124l0.876-0.046
+                                        l-0.049-0.876c-0.113-2.069,0.115-4.268,0.335-6.396c0-0.001,0.12-1.172,0.12-1.172c0.517-5.235,2.121-9.103,4.771-11.499
+                                        c3.349-3.03,8.825-4.09,13.024-2.522c4.294,1.604,6.994,6.964,8.88,11.717l1.387,3.688l0.208,0.57l0.005-0.004L83.24,75.692h3.407
+                                        l16.788-44.646H99.054z M268.755,41.021c-5.171,0-9.418,1.679-12.738,5.035c-3.32,3.357-4.979,7.607-4.979,12.742
+                                        c0,4.912,1.692,9.118,5.084,12.617c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.758-2.988
+                                        c2.807-1.994,4.986-4.849,6.54-8.569h-4.866c-1.102,2.332-2.666,4.151-4.688,5.459c-2.022,1.308-4.302,1.962-6.835,1.962
+                                        c-3.574,0-6.557-1.131-8.945-3.394c-2.392-2.263-3.72-5.226-3.984-8.894h30.415v-0.318c0-5.604-1.603-10.154-4.8-13.655
+                                        C277.955,42.771,273.821,41.021,268.755,41.021z M255.658,56.472c0.51-3.468,1.901-6.219,4.171-8.258
+                                        c2.27-2.037,5.039-3.056,8.314-3.056c3.516,0,6.367,0.948,8.555,2.844c2.187,1.897,3.692,4.719,4.509,8.47H255.658z
+                                         M148.164,42.625c-1.253,0.705-2.409,1.808-3.465,3.315v-3.946h-4.074v33.698h4.379V55.395c0-3.099,0.583-5.334,1.754-6.711
+                                        c1.17-1.376,3.11-2.187,5.821-2.431l-0.032-4.744C150.878,41.549,149.417,41.922,148.164,42.625z M172.22,41.021
+                                        c-5.171,0-9.418,1.679-12.738,5.035c-3.321,3.357-4.981,7.607-4.981,12.742c0,4.912,1.694,9.118,5.085,12.617
+                                        c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.757-2.988c2.808-1.994,4.988-4.849,6.541-8.569h-4.866
+                                        c-1.102,2.332-2.665,4.151-4.688,5.459c-2.023,1.308-4.303,1.962-6.834,1.962c-3.574,0-6.557-1.131-8.947-3.394
+                                        c-2.391-2.263-3.718-5.226-3.984-8.894h30.414v-0.318c0-5.604-1.6-10.154-4.799-13.655
+                                        C181.419,42.771,177.286,41.021,172.22,41.021z M159.124,56.472c0.51-3.468,1.901-6.219,4.17-8.258
+                                        c2.271-2.037,5.04-3.056,8.313-3.056c3.517,0,6.369,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.51,8.47H159.124z
+                                         M232.864,41.264c-2.51,0-4.779,0.509-6.809,1.518c-2.03,1.012-3.73,2.49-5.097,4.43c-1.106-1.818-2.712-3.264-4.82-4.338
+                                        c-2.108-1.072-4.441-1.61-7-1.61c-2.212,0-4.191,0.379-5.941,1.134c-1.748,0.756-3.27,1.88-4.558,3.372v-3.776h-4.258v33.698
+                                        h4.258V59.274c0-2.927,0.105-4.978,0.321-6.154c0.215-1.177,0.586-2.227,1.119-3.147c0.856-1.473,2.026-2.604,3.509-3.391
+                                        c1.481-0.787,3.203-1.182,5.165-1.182c3.248,0,5.66,0.926,7.233,2.777c1.573,1.852,2.36,4.722,2.36,8.61v18.905h4.136V59.274
+                                        c0-2.927,0.112-4.978,0.338-6.154c0.223-1.177,0.59-2.227,1.1-3.147c0.854-1.473,2.012-2.604,3.467-3.391
+                                        c1.457-0.787,3.143-1.182,5.06-1.182c3.318,0,5.711,0.947,7.178,2.84c1.469,1.894,2.202,5.07,2.202,9.529v17.923h4.137V58.658
+                                        c0-6.093-1.043-10.516-3.122-13.268C240.76,42.64,237.436,41.264,232.864,41.264z"/>
+                            <g>
+                            <path fill="#1A171B" d="M36.791,43.727c4.5,3.508,3.856-8.518,5.095-10.445c-0.251,0.39,1.045-0.227,1.359-0.68
+                                                c0.714-1.033,0.78-1.304,1.783-0.467c0.685,0.57,4.073-2.156,5.011-2.76c-0.206-0.223,0.68,1.338,0.68,0.764
+                                                c0,4.354-0.253,0.671,2.42,1.401c1.206,0.329,2.179-0.847,3.269,0.893c-0.283,0.31-0.566,0.621-0.849,0.933
+                                                c4.111,1.071,3.139,4.072,7.134,6.029c-1.239,0.545-2.304,1.363-2.463,2.803c1.169,0.267,2.366,0.422,3.566,0.424
+                                                c-0.34,0.311-0.679,0.622-1.02,0.934c2.158,0.346,2.307,2.235,4.671,1.699c-0.891,1.669-4.83,4.51-1.274,5.094
+                                                c-0.198,0.085-0.396,0.171-0.594,0.255c0.745,0.477,1.172,1.362,1.868,1.868c-0.946,0.11-1.794,0.679-2.802,0.68
+                                                c0.04,1.611,1.581,1.87,2.717,2.124c-2.577,1.72,0.311,0.894,0.722,2.122c-0.165-0.493,1.154,1.254,0.807,0.977
+                                                c-0.173-0.139-1.318,0.596-0.807,1.062c0.174,0.158,4.875,0.583,1.98,1.482c-1.714,0.534-4.447,0.456-3.679,2.763
+                                                c-1.174-0.126-1.886,0.235-2.845-0.083c0.154,0.687-0.067,0.846,0.213,1.442c-1.335,0.382-2.595-0.269-3.695-1.061
+                                                c-0.042,0.268-0.084,0.537-0.127,0.806c-0.368-0.325-0.736-0.649-1.104-0.976c0.016,0.536-0.255,1.096-0.212,1.656
+                                                c-0.877-0.677-5.258-4.209-2.972-1.189c0.905,1.195,1.842,1.439,2.93,2.463c-1.363,0.366-0.2,5.027,1.91,4.627
+                                                c-1.045,1.709-3.151-0.414-4.289,1.828c1.419,0.304,0.683,0.515,1.826,1.146c-0.596-0.139-1.35,0.109-1.996-0.043
+                                                c0.058,0.606,1.302,2.911,1.104,3.185c-0.761,1.05-2.778-1.146-3.949-1.146c-0.209,0.18-0.252,0.392-0.126,0.636
+                                                c1.264,0.254,0.742,0.52,0.976,1.698c-2.448-0.878-0.467,0.231-0.467,1.104c0,3.686-2.677-0.092-2.548,2.505
+                                                c-0.269-0.014-0.537-0.027-0.806-0.041c0.263,2.893-2.243-0.257-2.845,3.056c0.048,0.018-3.298-0.522-3.333-0.488
+                                                c-1.136,1.135-1.402-0.027-2.174,0.598c-1.87,1.514-1.024-1.807-1.552-1.998c-0.694-0.253-2.246,1.984-2.455,0.573
+                                                c-0.207-1.396-0.55-3.131-1.463-1.656c-0.954-0.37-3.546,0.314-3.842-0.572c-0.223-0.67-2.252-3.619-0.871-4.078
+                                                c-0.407,0.137-1.347,0.543-1.719,0.765c0.857-2.833-1.515-2.188-3.185-1.146c0.104-1.69,0.899-3.521-1.083-3.247
+                                                c0.293-0.662,0.337-1.645,0.828-2.356c-0.382,0.084-0.764,0.17-1.146,0.254c0.059-0.477,4.984-10.382,5.223-10.382
+                                                c-0.199-0.062-0.369-0.169-0.51-0.318c-1.236,3.129-3.048,5.804-5.095,8.534c0.046-0.52-0.061-1.008-0.318-1.464
+                                                c-0.23,0-1.983,2.339-2.548,2.61c0-0.253,0-0.509,0-0.763c-0.231,0.366-1.444,2.675-1.783,2.675c-0.329,0,0.481-1.796-0.51-1.467
+                                                c-0.944,0.315-1.458,0.54-2.292,0.701c0.99-1.181,1.719-2.432-0.446-1.783c0.204-0.955-0.191-1.231-0.191-1.974
+                                                c-0.159,0.41-0.393,0.771-0.7,1.084c-0.23-1.254-0.242-6.138-0.383-6.138c-1.46,0,0.123-2.937,0.341-3.312
+                                                c-0.17-0.142-0.341-0.282-0.51-0.425c0.05,1.16-0.433,1.305-0.764,2.293c-1.08-1.767,1.521-3.314-0.764-3.99
+                                                c0.311-0.256,0.623-0.51,0.934-0.765c-0.199-0.198-0.396-0.396-0.595-0.595c-0.269,0.61-0.729,1.216-1.02,1.783
+                                                c-0.154-0.479,0.034-2.888,0.51-2.888c-0.313-0.017-0.624-0.044-0.935-0.084c0.723-0.973,0.495-1.264,1.444-1.699
+                                                c-0.17-0.51-0.339-1.019-0.509-1.529c0.17,0.058,0.339,0.114,0.509,0.171c0.149,0.083-0.41-0.829-0.68-0.424
+                                                c0.503-0.754,1.123-1.223,1.868-1.614c-0.283-0.17-0.566-0.34-0.849-0.51c0.664-0.432,1.176-1.357,2.038-1.698
+                                                c-0.566-1.104-0.674-1.464-1.868-1.784c-0.033-2.104,1.163-9.234,2.717-8.407c-0.049-0.578-0.062-0.699,0.509-0.765
+                                                c-0.087-1.145-0.637-0.797,0.595-1.104c-0.979-4.102,1.847-2.083,3.651-1.104c0-0.341,0-0.68,0-1.02
+                                                c0.534,0.116,1.853,0.641,2.177,0.085c0.109-0.188-0.92-0.513-1.073-0.594c1.126-0.569,0.975-1.844,0.17-3.143
+                                                c1.503,0.075,3.008,0.738,3.482-0.594c0.613,0.591,1.188,0.584,1.697,1.358c0.284-0.481,0.566-0.963,0.85-1.443
+                                                c0.53,0.646,1.549,2.504,2.59,1.983c0.223-0.111,1.486,0.661,1.486,0.394c0-1.159,0.588-2.121,1.529-2.717
+                                                C35.584,34.716,35.005,38.027,36.791,43.727"/>
+                            </g>
+                        </g>
+                    </g>
+                </svg>
+            </a>
+        </td>
+    </tr>
+</table>
+<!-- Email Header : END -->
+
+<!-- Email Body : BEGIN -->
+<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
+
+    [CONTENT]
+
+</table>
+<!-- Email Body : END -->
+
+<!-- Email Footer : BEGIN -->
+<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
+    <tr>
+        <td style="padding: 0px;width: 100%;" class="x-gmail-data-detectors">
+            <div class="bottom-strip" style="background-color: #39468A;"></div>
+            <div class="bottom-strip" style="background-color: #E74F23;"></div>
+            <div class="bottom-strip" style="background-color: #923288;"></div>
+            <div class="bottom-strip" style="background-color: #1C9DB2;"></div>
+            <div class="bottom-strip" style="background-color: #E10759;"></div>
+        </td>
+    </tr>
+</table>
+<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
+    <tr>
+        <td style="padding: 10px;width: 50%;font-size: 12px; font-family: sans-serif; line-height:18px; text-align: center; color: #888888; cursor:pointer;" class="x-gmail-data-detectors">
+            <a class="square-logo-layout" href="https://twitter.com/Veremes_Info" target="_blank" style="color: #24292E; cursor:pointer;">
+                <!--<i class="fa fa-twitter" style=""></i>-->
+                <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;">
+                        <title>Twitter</title>
+                        <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.28,37c0,.56,0,1.12,0,1.68C75.32,56,62.2,75.83,38.21,75.83h0a37,37,0,0,1-20-5.86,24.62,24.62,0,0,0,3.11.18,26.13,26.13,0,0,0,16.2-5.58,13,13,0,0,1-12.18-9.06,12.34,12.34,0,0,0,2.45.24,13,13,0,0,0,3.44-.46A13,13,0,0,1,20.77,42.5v-.16A13.11,13.11,0,0,0,26.68,44a13.05,13.05,0,0,1-4-17.42A37,37,0,0,0,49.52,40.18a13.19,13.19,0,0,1-.34-3,13.05,13.05,0,0,1,22.57-8.92A26.11,26.11,0,0,0,80,25.12a13.08,13.08,0,0,1-5.73,7.22,26.23,26.23,0,0,0,7.49-2.06A26.49,26.49,0,0,1,75.28,37Z"/>
+                </svg>
+            </a>
+            <a class="square-logo-layout" href="https://www.linkedin.com/company/veremes/" target="_blank" style="color: #24292E; cursor:pointer;">
+                <!--<i class="fa fa-linkedin" style=""></i>-->
+                <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;">
+                        <title>LinkedIn</title>
+                        <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM60.71,51a6.48,6.48,0,0,0-6.33,6.32V79.68H41.74V41.74H54.38v5a13.63,13.63,0,0,1,10.54-5.9A15,15,0,0,1,79.68,55.65v24H67V57.33A6.48,6.48,0,0,0,60.71,51ZM27,34.57A7.59,7.59,0,1,1,34.57,27,7.55,7.55,0,0,1,27,34.57Zm6.32,7.17V79.68H20.66V41.74Z"/>
+                </svg>
+            </a>
+            <a class="square-logo-layout" href="http://vm09.veremes.net/" target="_blank" style="color: #24292E; cursor:pointer;">
+                <!--<i class="fa fa-github" style=""></i>-->
+                <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;">
+                    <title>GitLab</title>
+                    <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.18,15.1a1,1,0,0,1,2,0l9,27.81h-20Zm-52.34,0a1,1,0,0,1,2,0l9,27.81h-20ZM9.85,61A2.63,2.63,0,0,1,8.9,58l4.35-13.4L47.16,88.07Zm4.33-17h20l14.3,44Zm21.19,0H64.63L50,89Zm30.42,0h20L51.49,88ZM90.15,61,52.84,88.07,86.75,44.62,91.1,58A2.63,2.63,0,0,1,90.15,61Z"/>
+                </svg>
+            </a>
+            <a class="square-logo-layout" href="http://www.veremes.com/" target="_blank" style="color: #24292E; cursor:pointer;">
+                <!--<i class="fa fa-globe" style=""></i>-->
+                <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;">
+                        <defs>
+                                <style>.cls-1{fill:none;}</style>
+                        </defs>
+                        <title>Veremes</title>
+                        <path class="cls-1" d="M60.17,18.09h0S60.15,18.05,60.17,18.09Z"/>
+                        <path class="cls-1" d="M48.39,26.38c.66-6.65,2.7-11.56,6.06-14.6a11.45,11.45,0,0,1,1.82-1.29A40.5,40.5,0,0,0,50,10l-1,0c-3.18,3.87-5.13,9.17-5.79,15.85l-.15,1.47c-.21,2.06-.42,4.16-.47,6.28-1.35-5.7-.83-9.69-1.1-15.87A4,4,0,0,0,39.6,21.2c0,.34-1.6-.64-1.88-.5-1.33.67-2.62-1.69-3.29-2.51L33.35,20c-.65-1-1.38-1-2.16-1.73-.6,1.69-2.51.85-4.42.76,1,1.65,1.21,3.26-.21,4,.19.1,1.5.51,1.36.75-.41.71-2.09,0-2.77-.11V25c-2.29-1.25-5.88-3.81-4.63,1.4-1.57.39-.87-.05-.76,1.4-.72.09-.71.24-.64,1-2-1.05-3.5,8-3.45,10.68,1.51.4,1.65.86,2.37,2.26-1.1.43-1.75,1.61-2.59,2.16l1.08.64a6,6,0,0,0-2.37,2c.34-.51,1.05.65.86.54l-.65-.22c.22.65.43,1.3.65,2-1.21.55-.92.92-1.83,2.15.39,0,.78.09,1.18.11-.6,0-.84,3.06-.65,3.67.37-.72,1-1.49,1.3-2.27l.75.76-1.18,1c2.9.86-.4,2.82,1,5.06.42-1.25,1-1.43,1-2.91l.65.54c-.28.48-2.29,4.21-.44,4.21.18,0,.2,6.2.49,7.79a4,4,0,0,0,.89-1.38c0,.95.5,1.3.24,2.51,2.75-.82,1.82.76.57,2.26a20.92,20.92,0,0,0,2.91-.89c1.26-.41.23,1.86.64,1.86s2-2.93,2.27-3.39v1c.72-.35,2.94-3.32,3.23-3.32a3.11,3.11,0,0,1,.41,1.86,46.51,46.51,0,0,0,6.47-10.83,1.46,1.46,0,0,0,.65.4c-.31,0-6.56,12.58-6.64,13.18l1.46-.32c-.63.9-.68,2.15-1,3,2.51-.35,1.5,2,1.37,4.13,2.12-1.33,5.14-2.15,4.05,1.45a15.73,15.73,0,0,1,2.18-1c-1.76.58.82,4.33,1.11,5.17.37,1.13,3.66.26,4.87.73,1.16-1.87,1.6.33,1.86,2.11s2.24-1,3.12-.73c.67.24-.4,4.46,2,2.53,1-.79,1.32.68,2.76-.75,0,0,4.29.64,4.23.62.77-4.21,3.94-.21,3.61-3.88l1,0c-.16-3.3,3.24,1.5,3.24-3.18,0-1.11-2.52-2.52.59-1.4-.29-1.5.37-1.84-1.24-2.16a.62.62,0,0,1,.16-.81c1.49,0,4,2.79,5,1.46.25-.35-1.33-3.28-1.4-4,.82.2,1.77-.12,2.53.06-1.45-.8-.52-1.07-2.32-1.46,1.45-2.84,4.12-.15,5.45-2.32C70.78,71.9,69.3,66,71,65.52c-1.38-1.3-2.57-1.61-3.72-3.13-2.9-3.83,2.66.65,3.78,1.51-.06-.71.28-1.42.27-2.1L72.76,63c0-.34.11-.69.16-1,1.4,1,3,1.83,4.69,1.35-.35-.76-.08-1-.27-1.83,1.22.4,2.12-.06,3.61.11-1-2.93,2.5-2.84,4.67-3.51,3.68-1.15-2.29-1.68-2.51-1.88-.65-.6.8-1.53,1-1.35.44.35-1.23-1.87-1-1.24-.52-1.56-4.19-.51-.92-2.7-1.44-.32-3.4-.65-3.45-2.69,1.28,0,2.36-.73,3.56-.87-.89-.64-1.43-1.76-2.37-2.37l.75-.32c-4.51-.74.49-4.35,1.62-6.47-3,.68-3.19-1.72-5.93-2.16l1.29-1.18a20.84,20.84,0,0,1-4.52-.54c.19-1.83,1.55-2.87,3.12-3.56-5.07-2.49-3.84-6.3-9.06-7.66L68.28,22c-1.38-2.21-2.62-.72-4.15-1.13-3.39-.93-3.07,3.75-3.07-1.78,0,.62-.81-.72-.89-1-1.22.8-5.47,4.21-6.34,3.49-1.27-1.06-1.35-.72-2.26.59-.4.58-2,1.36-1.73.87-.9,1.41-1,7.1-2.05,10.79,0-2,.25-4,.45-6Z"/>
+                        <path d="M99.94,47.71l0-.64c0-.61-.08-1.23-.14-1.84,0-.16,0-.31,0-.46-.08-.74-.17-1.47-.28-2.2,0-.19-.06-.38-.1-.57q-.13-.86-.3-1.68l-.12-.64c-.15-.7-.31-1.39-.48-2.08,0-.15-.09-.3-.13-.45-.14-.56-.3-1.11-.46-1.65-.08-.24-.15-.49-.23-.73-.16-.51-.34-1-.52-1.54-.06-.17-.12-.35-.19-.53-.23-.62-.47-1.24-.73-1.85-.11-.27-.22-.53-.34-.8s-.35-.78-.53-1.17l-.38-.81c-.27-.56-.56-1.11-.85-1.66-.16-.3-.33-.59-.49-.88s-.35-.61-.53-.92-.37-.63-.57-.94L92,22.86q-.55-.86-1.14-1.68l-.45-.62c-.25-.35-.51-.69-.77-1-.13-.18-.27-.35-.41-.52q-1.36-1.74-2.9-3.35L86,15.35q-1.66-1.72-3.48-3.29L82.46,12a51.79,51.79,0,0,0-5.4-4h0a49.56,49.56,0,0,0-4.42-2.54h0A49.59,49.59,0,0,0,63.94,2h0c-1.56-.45-3.16-.83-4.78-1.13L58.49.73,57.21.52C56.59.43,56,.35,55.33.29L54.54.21,53,.1l-.73,0C51.51,0,50.76,0,50,0a50,50,0,1,0,50,50C100,49.23,100,48.47,99.94,47.71ZM49.84,23c-.31.49,1.33-.29,1.73-.87.91-1.31,1-1.65,2.26-.59.87.72,5.12-2.69,6.34-3.49,0,0,0-.06,0,0h0c.08.24.89,1.58.89,1,0,5.53-.32.85,3.07,1.78,1.53.41,2.77-1.08,4.15,1.13L67.2,23.14c5.22,1.36,4,5.17,9.06,7.66-1.57.69-2.93,1.73-3.12,3.56a20.84,20.84,0,0,0,4.52.54l-1.29,1.18c2.74.44,2.92,2.84,5.93,2.16-1.13,2.12-6.13,5.73-1.62,6.47l-.75.32c.94.61,1.48,1.73,2.37,2.37-1.2.14-2.28.86-3.56.87.05,2,2,2.37,3.45,2.69-3.27,2.19.4,1.14.92,2.7-.21-.63,1.46,1.59,1,1.24-.22-.18-1.67.75-1,1.35.22.2,6.19.73,2.51,1.88-2.17.67-5.64.58-4.67,3.51-1.49-.17-2.39.29-3.61-.11.19.87-.08,1.07.27,1.83-1.7.48-3.29-.34-4.69-1.35,0,.34-.11.69-.16,1l-1.4-1.24c0,.68-.33,1.39-.27,2.1C70,63,64.41,58.56,67.31,62.39c1.15,1.52,2.34,1.83,3.72,3.13-1.73.46-.25,6.38,2.43,5.87-1.33,2.17-4-.52-5.45,2.32,1.8.39.87.66,2.32,1.46-.76-.18-1.71.14-2.53-.06.07.77,1.65,3.7,1.4,4-1,1.33-3.53-1.46-5-1.46a.62.62,0,0,0-.16.81c1.61.32,1,.66,1.24,2.16-3.11-1.12-.59.29-.59,1.4,0,4.68-3.4-.12-3.24,3.18l-1,0c.33,3.67-2.84-.33-3.61,3.88.06,0-4.19-.67-4.23-.62-1.44,1.43-1.78,0-2.76.75-2.37,1.93-1.3-2.29-2-2.53-.88-.32-2.86,2.52-3.12.73s-.7-4-1.86-2.11c-1.21-.47-4.5.4-4.87-.73-.29-.84-2.87-4.59-1.11-5.17a15.73,15.73,0,0,0-2.18,1c1.09-3.6-1.93-2.78-4.05-1.45.13-2.15,1.14-4.48-1.37-4.13.37-.84.42-2.09,1-3l-1.46.32c.08-.6,6.33-13.18,6.64-13.18a1.46,1.46,0,0,1-.65-.4,46.51,46.51,0,0,1-6.47,10.83A3.11,3.11,0,0,0,28,67.51c-.29,0-2.51,3-3.23,3.32v-1c-.3.46-1.83,3.39-2.27,3.39s.62-2.27-.64-1.86a20.92,20.92,0,0,1-2.91.89c1.25-1.5,2.18-3.08-.57-2.26.26-1.21-.24-1.56-.24-2.51a4,4,0,0,1-.89,1.38c-.29-1.59-.31-7.79-.49-7.79-1.85,0,.16-3.73.44-4.21l-.65-.54c.06,1.48-.55,1.66-1,2.91-1.37-2.24,1.93-4.2-1-5.06l1.18-1L15,52.47c-.34.78-.93,1.55-1.3,2.27-.19-.61,0-3.67.65-3.67-.4,0-.79-.06-1.18-.11.91-1.23.62-1.6,1.83-2.15-.22-.65-.43-1.3-.65-2l.65.22c.19.11-.52-1-.86-.54a6,6,0,0,1,2.37-2l-1.08-.64c.84-.55,1.49-1.73,2.59-2.16-.72-1.4-.86-1.86-2.37-2.26-.05-2.68,1.47-11.73,3.45-10.68-.07-.73-.08-.88.64-1-.11-1.45-.81-1,.76-1.4-1.25-5.21,2.34-2.65,4.63-1.4v-1.3c.68.15,2.36.82,2.77.11.14-.24-1.17-.65-1.36-.75,1.42-.73,1.23-2.34.21-4,1.91.09,3.82.93,4.42-.76C32,19,32.7,19,33.35,20l1.08-1.83c.67.82,2,3.18,3.29,2.51.28-.14,1.88.84,1.88.5a4,4,0,0,1,1.94-3.45c.27,6.18-.25,10.17,1.1,15.87,0-2.12.26-4.22.47-6.28l.15-1.47c.66-6.68,2.61-12,5.79-15.85l1,0a40.5,40.5,0,0,1,6.27.49,11.45,11.45,0,0,0-1.82,1.29c-3.36,3-5.4,8-6.06,14.6l-.15,1.49c-.2,2-.41,4-.45,6C48.82,30.14,48.94,24.45,49.84,23Z"/>
+                </svg>
+            </a>
+        </td>
+        <td style="padding: 10px;width: 50%;font-size: 20px; font-family: sans-serif; line-height:18px; text-align: center; color: #000000;" class="x-gmail-data-detectors">
+            <div style="margin-bottom:10px;">Pour toute question :</div>
+            <div>support@veremes.com</div>
+        </td>
+    </tr>
+</table>
+<!-- Email Footer : END -->
+
+</center>
+[SCRIPT]
+</body>
+</html>';
 ?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/conf/properties.inc b/src/module_extraction/web_service/conf/properties.inc
new file mode 100755
index 0000000000000000000000000000000000000000..62a488a96ebc39a1632bb9a4b749d226d81dd6c7
--- /dev/null
+++ b/src/module_extraction/web_service/conf/properties.inc
@@ -0,0 +1,7 @@
+<?php
+$properties['color_mutualized'] = 'green';
+$properties['color_no_mutualized'] = 'red';
+$properties['sig'] = '*.shp';
+$properties['dao'] = '*.dao';
+$properties['shared_dir'] = 'D:/serveur/gtf/vas/shared';
+?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/conf/properties_server.inc b/src/module_extraction/web_service/conf/properties_server.inc
new file mode 100644
index 0000000000000000000000000000000000000000..1f67047d0d601b6ed6b6b417d8fb04f48b6d6ceb
--- /dev/null
+++ b/src/module_extraction/web_service/conf/properties_server.inc
@@ -0,0 +1,3 @@
+<?php
+    $properties['schema_extraction'] = 's_extraction';
+?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/conf/selected_properties.inc b/src/module_extraction/web_service/conf/selected_properties.inc
new file mode 100644
index 0000000000000000000000000000000000000000..90da243f98c3627294f8ffeace18aa019820f0ee
--- /dev/null
+++ b/src/module_extraction/web_service/conf/selected_properties.inc
@@ -0,0 +1,18 @@
+<?php
+
+$aAdminFields = Array(
+	'color_mutualized',
+	'color_no_mutualized',
+	'sig',
+	'dao'
+);
+$aUserFields = Array(
+	'color_mutualized',
+	'color_no_mutualized',
+	'sig',
+	'dao'
+);
+
+$properties['aAdminFields'] = array_merge($properties['aAdminFields'], $aAdminFields);
+$properties['aUserFields'] = array_merge($properties['aUserFields'], $aUserFields);
+?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/conf/version.inc b/src/module_extraction/web_service/conf/version.inc
new file mode 100755
index 0000000000000000000000000000000000000000..42fa9895a17ed042ce569792ff1b43fcd6d3d2ff
--- /dev/null
+++ b/src/module_extraction/web_service/conf/version.inc
@@ -0,0 +1,7 @@
+<?php
+// Numéro de la version de extraction
+define ("VM_VERSION", "20XX.XX.XX");
+define ("VM_BUILD", "XXXXX");
+define ("VM_MONTH_YEAR", "XX_20XX");
+define ("VM_STATUS", "STABLE");
+?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/sql/sqlQueries.xml b/src/module_extraction/web_service/sql/sqlQueries.xml
new file mode 100755
index 0000000000000000000000000000000000000000..04344a798894340f9fe84636ecf1877ed2aced9f
--- /dev/null
+++ b/src/module_extraction/web_service/sql/sqlQueries.xml
@@ -0,0 +1,493 @@
+<?xml version="1.0" encoding="utf-8"?>
+<sqlQueries>
+	<title>Scripts d'installation et de mises à jour de la base du VAS</title>
+	<queriesCollection>
+		<query>
+			<type>init</type>
+			<version>2017-01-00</version>
+			<code>
+				<![CDATA[
+					--Partie pour le module extraction version 2017-01-00 généré par WAB le 22/05/2018 à 09:09:32
+					--Partie pour le module extraction version 2017-01-01 généré par WAB le 18/07/2017 à 09:52:00
+					CREATE SCHEMA s_extraction AUTHORIZATION u_vitis;
+					GRANT ALL ON SCHEMA s_extraction TO u_vitis;
+					GRANT USAGE ON SCHEMA s_extraction TO extraction_admin;
+					GRANT USAGE ON SCHEMA s_extraction TO extraction_user;
+					CREATE SEQUENCE s_extraction.bo_id_extraction_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
+					ALTER TABLE s_extraction.bo_id_extraction_seq OWNER TO u_vitis;
+					GRANT ALL ON SEQUENCE s_extraction.bo_id_extraction_seq TO u_vitis;
+					GRANT ALL ON SEQUENCE s_extraction.bo_id_extraction_seq TO extraction_admin;
+					GRANT ALL ON SEQUENCE s_extraction.bo_id_extraction_seq TO extraction_user;
+					CREATE SEQUENCE s_extraction.seq_common START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
+					ALTER TABLE s_extraction.seq_common OWNER TO u_vitis;
+					GRANT ALL ON SEQUENCE s_extraction.seq_common TO u_vitis;
+					GRANT ALL ON SEQUENCE s_extraction.seq_common TO extraction_admin;
+					GRANT ALL ON SEQUENCE s_extraction.seq_common TO extraction_user;		
+					CREATE TABLE s_extraction.extraction (bo_id integer NOT NULL, status character varying(100), history text, creation_date date DEFAULT ('now'::text)::date, requestor character varying(50) DEFAULT "current_user"(), ae character varying(255), extent text, company character varying(50), layers text, vector_format_id character varying(100), coordsys_id character varying(50), note text, note_line text, raster_format_id character varying(100), extent_method character varying(50), signed boolean, accepted_by_cpa boolean, identification_complete boolean, definition_complete boolean, comment text, priority_id integer, id_com text, id_conseil text, email varchar(100),status_id integer);
+					ALTER TABLE s_extraction.extraction OWNER TO u_vitis;
+					CREATE TABLE s_extraction.rt_coordsys (coordsys_id character varying(50) NOT NULL, coordsys character varying(100));
+					ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis;
+					CREATE TABLE s_extraction.rt_feature_model (feature_type character varying(200) NOT NULL, attribute_name character varying(200) NOT NULL, attribute_data_type character varying(200), geometry_type character varying(200), "order" integer);
+					ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis;
+					CREATE TABLE s_extraction.rt_format (format_id character varying(100) NOT NULL, format character varying(255), use_for_raster boolean, use_for_vector boolean);
+					ALTER TABLE s_extraction.rt_format OWNER TO u_vitis;
+					CREATE TABLE s_extraction.rt_layer (layer_id character varying(100) NOT NULL, layer character varying(255), category character varying(50), restriction character varying(50), unused_attributes text);
+					ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis;
+					CREATE TABLE s_extraction.version(version character varying(100) NOT NULL, build integer NOT NULL, date timestamp with time zone NOT NULL, active boolean NOT NULL, CONSTRAINT version_pkey PRIMARY KEY (version));
+					ALTER TABLE s_extraction.version OWNER TO u_vitis;
+					INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:27572', 'Lambert 2 étendu');
+					INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('Lambert93', 'Lambert 93');
+					INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:3944', 'Lambert 93 CC44');
+					INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:4326', 'WGS 84');
+					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ECW', 'Er Mapper ECW', true, false);
+					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ACAD', 'Autocad DWG', false, true);
+					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('SHAPE', 'Esri Shapefile', false, true);
+					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MAPINFO', 'Mapinfo Tab', false, true);
+					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MIF', 'Mapinfo MIF/MID', false, true);
+					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GML', 'GML', false, true);
+					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('OGCKML', 'KML', false, true);
+					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GEOJSON', 'GEOJSON', false, true);
+					INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('TIFF', 'TIFF', true, false);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'id_geofla', 'fme_real64', 'fme_no_geom;fme_point;fme_line;fme_area;fme_surface;fme_collection', 1);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_arr', 'fme_varchar(1)', '', 2);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_chf', 'fme_varchar(3)', '', 3);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'nom_chf', 'fme_varchar(50)', '', 4);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'x_chf_lieu', 'fme_varchar(255)', '', 5);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'y_chf_lieu', 'fme_varchar(255)', '', 6);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_dept', 'fme_varchar(2)', '', 7);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'nom_dept', 'fme_varchar(30)', '', 8);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_reg', 'fme_varchar(2)', '', 9);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'nom_region', 'fme_varchar(30)', '', 10);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'id_geofla', 'fme_real64', 'fme_no_geom;fme_point;fme_line;fme_area;fme_surface;fme_collection', 1);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_cant', 'fme_varchar(2)', '', 2);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_chf', 'fme_varchar(3)', '', 3);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'nom_chf', 'fme_varchar(50)', '', 4);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'x_chf_lieu', 'fme_varchar(255)', '', 5);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'y_chf_lieu', 'fme_varchar(255)', '', 6);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_arr', 'fme_varchar(1)', '', 7);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_dept', 'fme_varchar(2)', '', 8);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'nom_dept', 'fme_varchar(30)', '', 9);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_reg', 'fme_varchar(2)', '', 10);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'nom_region', 'fme_varchar(30)', '', 11);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'id_geofla', 'fme_real64', 'fme_no_geom;fme_point;fme_line;fme_area;fme_surface;fme_collection', 1);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_comm', 'fme_varchar(3)', '', 2);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'insee_com', 'fme_varchar(5)', '', 3);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'nom_comm', 'fme_varchar(50)', '', 4);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'statut', 'fme_varchar(20)', '', 5);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'x_chf_lieu', 'fme_varchar(255)', '', 6);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'y_chf_lieu', 'fme_varchar(255)', '', 7);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'z_moyen', 'fme_varchar(255)', '', 8);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'superficie', 'fme_real64', '', 9);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'population', 'fme_real64', '', 10);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_cant', 'fme_varchar(2)', '', 11);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_arr', 'fme_varchar(1)', '', 12);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_dept', 'fme_varchar(2)', '', 13);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'nom_dept', 'fme_varchar(30)', '', 14);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_reg', 'fme_varchar(2)', '', 15);
+					INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'nom_region', 'fme_varchar(30)', '', 16);
+					INSERT INTO s_extraction.rt_layer (layer_id, layer, category, restriction, unused_attributes) VALUES ('geofla.arrondissement', 'Arrondissement', 'Arrondissement', 'interne', 'x_centroid;y_centroid');
+					INSERT INTO s_extraction.rt_layer (layer_id, layer, category, restriction, unused_attributes) VALUES ('geofla.canton', 'Canton', 'Arrondissement', 'restreinit', 'x_centroid;y_centroid');
+					INSERT INTO s_extraction.rt_layer (layer_id, layer, category, restriction, unused_attributes) VALUES ('geofla.commune', 'Commune', 'Commune', 'public', 'x_centroid;y_centroid');
+					ALTER TABLE ONLY s_extraction.extraction ADD CONSTRAINT pk_plan_bo_id PRIMARY KEY (bo_id);
+					ALTER TABLE ONLY s_extraction.rt_layer ADD CONSTRAINT pk_projet_type PRIMARY KEY (layer_id);
+					ALTER TABLE ONLY s_extraction.rt_format ADD CONSTRAINT pk_reseau PRIMARY KEY (format_id);
+					ALTER TABLE ONLY s_extraction.rt_coordsys ADD CONSTRAINT pk_rt_coordsys PRIMARY KEY (coordsys_id);
+					ALTER TABLE ONLY s_extraction.rt_feature_model ADD CONSTRAINT pk_rt_feature_model PRIMARY KEY (feature_type, attribute_name);
+					ALTER TABLE ONLY s_extraction.extraction ADD CONSTRAINT fk_coordsys_id FOREIGN KEY (coordsys_id) REFERENCES s_extraction.rt_coordsys(coordsys_id);
+					ALTER TABLE ONLY s_extraction.extraction ADD CONSTRAINT fk_format_id FOREIGN KEY (vector_format_id) REFERENCES s_extraction.rt_format(format_id);
+					GRANT ALL ON TABLE s_extraction.extraction TO u_vitis;
+					GRANT ALL ON TABLE s_extraction.extraction TO extraction_user;
+					GRANT ALL ON TABLE s_extraction.rt_coordsys TO u_vitis;
+					GRANT ALL ON TABLE s_extraction.rt_coordsys TO extraction_admin;
+					GRANT ALL ON TABLE s_extraction.rt_feature_model TO u_vitis;
+					GRANT ALL ON TABLE s_extraction.rt_feature_model TO extraction_admin;
+					GRANT ALL ON TABLE s_extraction.rt_format TO u_vitis;
+					GRANT ALL ON TABLE s_extraction.rt_format TO extraction_admin;
+					GRANT ALL ON TABLE s_extraction.rt_layer TO u_vitis;
+					GRANT ALL ON TABLE s_extraction.rt_layer TO extraction_admin;			
+					CREATE TABLE s_extraction.rt_extraction_status (status_id int4 NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), name varchar(50) NOT NULL, progress int4 NOT NULL, PRIMARY KEY (status_id));
+					ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis;
+					GRANT ALL ON TABLE s_extraction.rt_extraction_status TO extraction_admin;
+					CREATE TABLE s_extraction.rt_extraction_status_group(  status_id integer NOT NULL,  group_id integer NOT NULL,  extraction_status_group_id integer NOT NULL,  CONSTRAINT pk_workspace_group PRIMARY KEY (extraction_status_group_id),  CONSTRAINT fk_group_id_workspace FOREIGN KEY (group_id)      REFERENCES s_vitis."group" (group_id) MATCH SIMPLE      ON UPDATE RESTRICT ON DELETE CASCADE,  CONSTRAINT fk_status_id FOREIGN KEY (status_id)      REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE      ON UPDATE RESTRICT ON DELETE CASCADE)WITH (  OIDS=FALSE);
+					ALTER TABLE s_extraction.rt_extraction_status_group  OWNER TO u_vitis;
+					GRANT ALL ON TABLE s_extraction.rt_extraction_status_group TO u_vitis;
+					GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user;
+					GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_admin;
+					CREATE VIEW s_extraction.v_extraction AS SELECT DISTINCT extraction.bo_id, extraction.status_id, extraction.history, extraction.creation_date, extraction.requestor, extraction.ae, extraction.extent, extraction.company, extraction.layers, extraction.vector_format_id, extraction.vector_format_id AS format_id, extraction.coordsys_id, extraction.raster_format_id, extraction.extent_method, extraction.signed, extraction.accepted_by_cpa, extraction.identification_complete, extraction.definition_complete, extraction.priority_id, extraction.id_com, extraction.id_conseil, extraction.note, rt_extraction_status.progress AS progress_level, rt_extraction_status.name AS status_name, rt_extraction_status.name AS status FROM ((((s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON ((extraction.status_id = rt_extraction_status.status_id))) LEFT JOIN s_extraction.rt_extraction_status_group ON ((rt_extraction_status.status_id = rt_extraction_status_group.status_id))) LEFT JOIN s_vitis.user_group ON ((rt_extraction_status_group.group_id = user_group.group_id))) LEFT JOIN s_vitis."user" ON ((user_group.user_id = "user".user_id))) WHERE ((("user".login)::name = "current_user"()) AND (((extraction.requestor)::name = "current_user"()) OR (rt_extraction_status_group.group_id = 12)));
+					ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis;
+					GRANT ALL ON TABLE s_extraction.v_extraction TO u_vitis;
+					GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_admin;
+					GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_user;
+					GRANT ALL ON TABLE s_extraction.extraction TO extraction_admin;
+					GRANT ALL ON TABLE s_extraction.extraction TO extraction_user;
+					GRANT ALL ON TABLE s_extraction.rt_coordsys TO extraction_admin;
+					GRANT SELECT ON TABLE s_extraction.rt_coordsys TO extraction_user;
+					GRANT ALL ON TABLE s_extraction.rt_extraction_status TO extraction_admin;
+					GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user;
+					GRANT ALL ON TABLE s_extraction.rt_format TO extraction_admin;
+					GRANT SELECT ON TABLE s_extraction.rt_format TO extraction_user;
+					GRANT ALL ON TABLE s_extraction.rt_layer TO extraction_admin;
+					GRANT SELECT ON TABLE s_extraction.rt_layer TO extraction_user;
+					GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_admin;
+					GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_user;
+					--Partie WABSQL générée par WAB le 04/05/2018 à 14:31:04
+					-- Ces tables sont normalement prévues dans votre fichier VisualParadigm et sont necessaires pour le fonctionnement de vos objets WAB
+					--CREATE TABLE s_extraction.rt_extraction_status (status_id integer NOT NULL DEFAULT nextval('s_vitis.seq_common'::regclass), name character varying(50)  NOT NULL, progress integer NOT NULL, CONSTRAINT rt_extraction_status_pkey PRIMARY KEY (status_id));
+					--CREATE TABLE s_extraction.rt_extraction_status_group (status_id integer NOT NULL, group_id integer NOT NULL, link_id integer NOT NULL DEFAULT nextval('s_vitis.seq_common'::regclass), CONSTRAINT rt_extraction_status_group_pkey PRIMARY KEY (link_id), CONSTRAINT fk_extraction_status_group FOREIGN KEY (status_id) REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION);
+					CREATE TABLE s_extraction.extraction_history (history_id integer NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), date timestamp with time zone NOT NULL, login character varying(50) NOT NULL, comment text NOT NULL, bo_id integer NOT NULL, CONSTRAINT extraction_history_pkey PRIMARY KEY (history_id), CONSTRAINT fk_extraction_history FOREIGN KEY (bo_id) REFERENCES s_extraction.extraction (bo_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION);
+					-- Vue basique pour vos objets WAB tenant compte de la restriction groupe état
+					--CREATE OR REPLACE VIEW s_extraction.v_extraction AS SELECT extraction.* FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON rt_extraction_status.status_id = extraction.status_id JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id WHERE (rt_extraction_status_group.group_id IN ( SELECT user_group.group_id FROM s_vitis.user_group LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"()));
+					-- u_vitis est propriétaire de toutes vos tables
+					ALTER TABLE s_extraction.version OWNER TO u_vitis;
+					ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis;
+					ALTER TABLE s_extraction.extraction OWNER TO u_vitis;
+					--ALTER TABLE s_extraction.ct OWNER TO u_vitis;
+					--ALTER TABLE s_extraction.commune OWNER TO u_vitis;
+					ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis;
+					ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis;
+					ALTER TABLE s_extraction.rt_format OWNER TO u_vitis;
+					ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis;
+					ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis;
+					ALTER TABLE s_extraction.rt_extraction_status_group OWNER TO u_vitis;
+					ALTER TABLE s_extraction.extraction_history OWNER TO u_vitis;
+					-- u_vitis propriétaire sur les tables des objets WAB
+					--ALTER TABLE s_extraction.rt_extraction_status OWNER to u_vitis;
+					--ALTER TABLE s_extraction.rt_extraction_status_group OWNER to u_vitis;
+					--ALTER TABLE s_extraction.extraction_history OWNER to u_vitis;
+					-- Gestion des droits d'après les méthodes php saisies pour vos objets (annule et remplace)
+					REVOKE ALL ON TABLE s_extraction.rt_coordsys FROM extraction_admin;
+					REVOKE ALL ON TABLE s_extraction.v_extraction FROM extraction_user;
+					REVOKE ALL ON TABLE s_extraction.rt_format FROM extraction_admin;
+					REVOKE ALL ON TABLE s_extraction.rt_layer FROM extraction_admin;
+					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_coordsys TO extraction_admin;
+					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.v_extraction TO extraction_user;
+					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_format TO extraction_admin;
+					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_layer TO extraction_admin;
+					-- Droits sur les tables des objets WAB
+					GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user;
+					GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user;
+					GRANT SELECT, INSERT ON TABLE s_extraction.extraction_history TO extraction_user;
+					INSERT INTO s_gtf.messageclass (messageclass, messageclass_type) VALUES ('AE Généré','action');
+					INSERT INTO s_gtf.messageclass (messageclass, messageclass_type) VALUES ('Extraction Aix','action');
+					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','BoAction',0,'bo_id_attribute=''bo_id''|method=''trGenerer''|class=''Extractions''|module=''extraction''');
+					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur AE généré'));
+					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email controleur données extraites'));
+					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',2,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur données extraites'));
+					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','BoAction',0,'bo_id_attribute=''bo_id''|method=''trTerminerExtraction''|class=''Extractions''|module=''extraction''');
+					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur AE généré', NULL, NULL, NULL, NULL, NULL, '$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new orderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || 'error_log( print_r($this->aObjects[''oOrder''], true));' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Acte d\''Engagement pour l\''utilisation des données SIG'';' || chr(13) || '$this->body =  $image.''<p>Bonjour</p>' || chr(13) || '<p></p>' || chr(13) || '<p>Suite à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' pour l\''extraction des données, <u>merci de bien vouloir déposer l\''acte d\''engagement</u> ci-joint complété et signé, à l\''adresse suivante:<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>'';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || '    if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> (5*1024*1024)){' || chr(13) || '        $this->body .= ''<p>Le résultat est disponible par téléchargement :<br/><a href="'' . $this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || '    } else {' || chr(13) || '        $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || '    }' || chr(13) || 'error_log(print_r($this->aObjects["oOrder"]->aFields, true));', '1', 'gtf', NULL);
+					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur AE à resoumettre', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || '	if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || '		$this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || '	}' || chr(13) || '}' || chr(13) || '//$this->to = ''sig@agglo-paysdaix.fr'';' || chr(13) || '$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX- SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Acte d\''engagement non valide'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || '	<p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande n\''a pas encore été validée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || '	$this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || '	$this->body .= ''  - Le cadre d\''identification du dépositaire est incomplet<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || '	$this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject'']->aValues, true));' || chr(13) || '//$this->body .= ''<p>''.$this->aObjects[''oBusinessObject'']->aValues[''comment''].''</p>'';' || chr(13) || '$this->body .=''<p><u>Merci de bien vouloir déposer à nouveau l\''acte d\''engagement</u> à l\''adresse suivante :<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL);
+					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email controleur données extraites', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$aBo[''bo_id''].'' - Extraction des données'';' || chr(13) || '$this->body = ''<p>Les données concernant la demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' ont été envoyées au demandeur.</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || '', '1', 'gtf', NULL);
+					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('public', NULL, NULL, NULL, NULL, NULL, '$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'if ($this->aObjects["oOrder"]->aFields[''order_status_id''] == 3) {' || chr(13) || '	$this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || '	$this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';' || chr(13) || '	$this->cci = '''';' || chr(13) || '	$this->subject = ''[Pays d\''Aix - SIGAM] - Données extraites'';' || chr(13) || '	$this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || '	$this->body .=''<p></p><p>Les données correspondant à votre demande  en date du ''.date(''d/m/Y'',strtotime($this->aObjects["oOrder"]->aFields[''order_date''])).'' sont disponibles '';' || chr(13) || '	 if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || '			$this->body .= ''sur le lien de téléchargement suivant :<br/><a href="''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || '		} else {' || chr(13) || '			 $this->body .= ''en pièce jointe.</p>'';' || chr(13) || '			$this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || '		}' || chr(13) || '	$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '	<p>Cordialement,</p>' || chr(13) || '	<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || '	Conseil de Territoire du Pays d\''Aix<br/>' || chr(13) || '	Tel : 04 42 93 83 50<br/>' || chr(13) || '	Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>' || chr(13) || '' || chr(13) || '	'';' || chr(13) || '}else{' || chr(13) || '	$this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || '	$this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Echec du traitement'';' || chr(13) || '	$this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || '    $this->body .= ''<p>La demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> n\''a pu être exécutée correctement suite à une erreur.<br/> Veuillez contactez votre administrateur.<br/>'';' || chr(13) || '    $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''log_file''];' || chr(13) || '}', '1', 'gtf', NULL);
+					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email contrôleur AE soumis', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->to = ''sofian.pujo@veremes.com'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Dépôt de l\''Acte d\''Engagement à valider'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || '	<p> </p>' || chr(13) || '	<p>L\''acte d\''engagement correspondant à la demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' a été déposé sur le serveur par le demandeur.</p>' || chr(13) || '	<p></p>' || chr(13) || '	<p>Cordialement,</p>' || chr(13) || '	<p> </p>' || chr(13) || '	<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || 'error_log($this->body);' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL);
+					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur Extraction refusée', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_vitis.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || '/*if(!$oBd->erreurRencontree) {' || chr(13) || '	if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || '		$this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || '	}' || chr(13) || '}*/' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject''], true));' || chr(13) || '//$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Rejet de votre demande d\''extraction de données'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || '	<p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande a été rejetée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || '	$this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''accepted_by_cpa''] == "false"){' || chr(13) || '	$this->body .= '' - La CPA ne valide pas l\''usage décrit pour les données du cadastre<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || '	$this->body .= '' - Le cadre d\''identification du dépositaire est incomplet</p>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || '	$this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || '$this->body .= $this->aObjects[''oBusinessObject'']->aValues[''comment''].''<br/>'';' || chr(13) || '$this->body .=''<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL);
+					INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur données extraites', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$sUserLogin = $aBo[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || '	if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || '		$this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oMessage"]->aProperties);' || chr(13) || '	}' || chr(13) || '}' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Données SIG extraites'';' || chr(13) || '$this->body = ''<p>Bonjour</p>' || chr(13) || '<p></p><p>Les données correspondant à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || '        $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="https://sigdata.agglo-paysdaix.fr/public/gtf/''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || '    } else {' || chr(13) || '	 	 $this->body .= ''en pièce jointe.</p>'';' || chr(13) || '        $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || '    }' || chr(13) || '$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Terriroire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>' || chr(13) || '' || chr(13) || ''';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || '   ' || chr(13) || '', '1', 'gtf', NULL);
+					
+				]]>
+			</code>
+		</query>
+		<query>
+			<type>update</type>
+			<version>2018-00-00</version>
+			<code>
+				<![CDATA[
+					--Partie pour le module extraction version 2018-00-00 généré par WAB le 22/05/2018 à 09:09:32
+					ALTER TABLE s_extraction.rt_layer ADD COLUMN ct_id integer;
+										UPDATE s_extraction.rt_layer set ct_id = 2;	
+										ALTER TABLE s_extraction.rt_layer DROP CONSTRAINT pk_projet_type;
+										ALTER TABLE s_extraction.rt_layer ADD COLUMN layer_ct_id serial;
+										ALTER TABLE s_extraction.rt_layer ADD CONSTRAINT pk_layer_ct PRIMARY KEY (layer_ct_id);	
+										ALTER TABLE s_extraction.rt_layer ADD COLUMN mutualized boolean;	
+										ALTER TABLE s_extraction.rt_feature_model ADD COLUMN ct_id integer;
+										UPDATE s_extraction.rt_feature_model set ct_id = 2;	
+										ALTER TABLE s_extraction.rt_feature_model ADD COLUMN layer_ct_id integer;
+										UPDATE s_extraction.rt_feature_model SET layer_ct_id = s_extraction.rt_layer.layer_ct_id FROM s_extraction.rt_layer WHERE rt_feature_model.feature_type = s_extraction.rt_layer.layer_id and rt_feature_model.ct_id = s_extraction.rt_feature_model.ct_id;
+										ALTER TABLE s_extraction.rt_feature_model DROP COLUMN ct_id;
+										ALTER TABLE s_extraction.rt_feature_model ALTER COLUMN layer_ct_id SET NOT NULL;
+										ALTER TABLE s_extraction.rt_layer ADD CONSTRAINT rt_layer_layer_id_ct_id_key UNIQUE (layer_id, ct_id);
+										ALTER TABLE ONLY s_extraction.rt_feature_model  ADD CONSTRAINT fk_layer_ct_id FOREIGN KEY (layer_ct_id) REFERENCES s_extraction.rt_layer(layer_ct_id);
+										ALTER TABLE s_extraction.rt_feature_model ADD UNIQUE (feature_type, attribute_name, layer_ct_id);
+										ALTER TABLE s_extraction.extraction ADD COLUMN preco_tech boolean;
+										ALTER TABLE s_extraction.extraction ADD COLUMN chart_graph boolean;
+										ALTER TABLE s_extraction.extraction ADD COLUMN metadonnees boolean;
+										DROP VIEW s_extraction.v_extraction;
+										CREATE OR REPLACE VIEW s_extraction.v_extraction AS  SELECT DISTINCT extraction.bo_id,     extraction.status_id,     extraction.history,     extraction.creation_date,     extraction.requestor,     extraction.ae,     extraction.extent,     extraction.company,     extraction.layers,     extraction.vector_format_id,     extraction.vector_format_id AS format_id,     extraction.coordsys_id,     extraction.raster_format_id,     extraction.extent_method,     extraction.signed,     extraction.accepted_by_cpa,     extraction.identification_complete,     extraction.definition_complete,     extraction.priority_id,     extraction.id_com,     extraction.id_conseil,     extraction.email,     extraction.note,     extraction.preco_tech,     extraction.chart_graph,     extraction.metadonnees,     rt_extraction_status.progress AS progress_level,     rt_extraction_status.name AS status_name,     rt_extraction_status.name AS status    FROM s_extraction.extraction      LEFT JOIN s_extraction.rt_extraction_status ON extraction.status_id = rt_extraction_status.status_id      LEFT JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id      LEFT JOIN s_vitis.user_group ON rt_extraction_status_group.group_id = user_group.group_id      LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id   WHERE "user".login::name = "current_user"() AND (extraction.requestor::name = "current_user"() OR rt_extraction_status_group.group_id = 12);  
+										ALTER TABLE s_extraction.v_extraction     OWNER TO u_vitis;  
+										GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_user; 
+										GRANT ALL ON TABLE s_extraction.v_extraction TO u_vitis; 
+										GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_admin;
+										COMMENT ON COLUMN s_extraction.extraction.history is 'deprecated';
+										COMMENT ON COLUMN s_extraction.extraction.status is 'deprecated';
+										CREATE SEQUENCE s_extraction.ct_ct_id_seq;
+										ALTER SEQUENCE s_extraction.ct_ct_id_seq OWNER TO u_vitis;
+										CREATE TABLE s_extraction.ct(     ct_id integer NOT NULL DEFAULT nextval('s_extraction.ct_ct_id_seq'::regclass),     name character varying(50) COLLATE pg_catalog."default" NOT NULL,     format character varying(255) COLLATE pg_catalog."default",     namedconnection character varying(255) COLLATE pg_catalog."default",     geom geometry(MultiPolygon,2154),     CONSTRAINT pk_ct PRIMARY KEY (ct_id) );  
+										ALTER TABLE s_extraction.ct     OWNER to u_vitis;  
+										GRANT SELECT ON TABLE s_extraction.ct TO extraction_admin;  
+										GRANT SELECT ON TABLE s_extraction.ct TO extraction_user;  
+										GRANT ALL ON TABLE s_extraction.ct TO u_vitis; 
+										CREATE INDEX ct_ct_id     ON s_extraction.ct USING btree     (ct_id);
+										CREATE TABLE s_extraction.commune (commune_id character(6) COLLATE pg_catalog."default" NOT NULL,ct_id integer, name varchar(255) COLLATE pg_catalog."default" NOT NULL,geom geometry(Polygon,2154) NOT NULL,CONSTRAINT pk_commune PRIMARY KEY (commune_id), CONSTRAINT fk_ct_id FOREIGN KEY (ct_id) REFERENCES s_extraction.ct (ct_id) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE SET NULL);
+										ALTER TABLE s_extraction.commune OWNER to u_vitis;
+										GRANT SELECT ON TABLE s_extraction.commune TO extraction_admin;
+										GRANT SELECT ON TABLE s_extraction.commune TO extraction_user;
+										GRANT ALL ON TABLE s_extraction.commune TO u_vitis;
+					--Partie WABSQL générée par WAB le 04/05/2018 à 10:02:22
+					-- Ces tables sont normalement prévues dans votre fichier VisualParadigm et sont necessaires pour le fonctionnement de vos objets WAB
+					-- CREATE TABLE s_extraction.rt_extraction_status (status_id integer NOT NULL DEFAULT nextval('s_dtnet.seq_common'::regclass), name character varying(50)  NOT NULL, progress integer NOT NULL, CONSTRAINT rt_extraction_status_pkey PRIMARY KEY (status_id));
+					-- CREATE TABLE s_extraction.rt_extraction_status_group (status_id integer NOT NULL, group_id integer NOT NULL, link_id integer NOT NULL DEFAULT nextval('s_dtnet.seq_common'::regclass), CONSTRAINT rt_extraction_status_group_pkey PRIMARY KEY (link_id), CONSTRAINT fk_extraction_status_group FOREIGN KEY (status_id) REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION);
+					-- CREATE TABLE s_extraction.extraction_history (history_id integer NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), date timestamp with time zone NOT NULL, login character varying(50) NOT NULL, comment text NOT NULL, bo_id integer NOT NULL, CONSTRAINT extraction_history_pkey PRIMARY KEY (history_id), CONSTRAINT fk_extraction_history FOREIGN KEY (bo_id) REFERENCES s_extraction.extraction (bo_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION);
+					-- Vue basique pour vos objets WAB tenant compte de la restriction groupe état
+					--CREATE VIEW s_extraction.v_extraction AS SELECT extraction.* FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON rt_extraction_status.status_id = extraction.status_id JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id WHERE (rt_extraction_status_group.group_id IN ( SELECT user_group.group_id FROM s_vitis.user_group LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"()));
+					-- u_vitis est propriétaire de toutes vos tables
+					ALTER TABLE s_extraction.rt_extraction_status_group OWNER TO u_vitis;
+					ALTER TABLE s_extraction.rt_format OWNER TO u_vitis;
+					ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis;
+					ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis;
+					ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis;
+					ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis;
+					ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis;
+					ALTER TABLE s_extraction.extraction OWNER TO u_vitis;
+					ALTER TABLE s_extraction.version OWNER TO u_vitis;
+					-- u_vitis propriétaire sur les tables des objets WAB
+					--ALTER TABLE s_extraction.rt_extraction_status OWNER to u_vitis;
+					--ALTER TABLE s_extraction.rt_extraction_status_group OWNER to u_vitis;
+					--ALTER TABLE s_extraction.extraction_history OWNER to u_vitis;
+					-- Gestion des droits d'après les méthodes php saisies pour vos objets (annule et remplace)
+					REVOKE ALL ON TABLE s_extraction.rt_coordsys FROM extraction_admin;
+					REVOKE ALL ON TABLE s_extraction.v_extraction FROM extraction_user;
+					REVOKE ALL ON TABLE s_extraction.rt_format FROM extraction_admin;
+					REVOKE ALL ON TABLE s_extraction.rt_layer FROM extraction_admin;
+					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_coordsys TO extraction_admin;
+					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.v_extraction TO extraction_user;
+					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_format TO extraction_admin;
+					GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_layer TO extraction_admin;
+					-- Droits sur les tables des objets WAB
+					GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user;
+					GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user;
+					GRANT SELECT, INSERT ON TABLE s_extraction.extraction_history TO extraction_user;
+					
+
+					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new orderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || 'error_log( print_r($this->aObjects[''oOrder''], true));' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Acte d\''Engagement pour l\''utilisation des données SIG'';' || chr(13) || '$this->body =  $image.''<p>Bonjour</p>' || chr(13) || '<p></p>' || chr(13) || '<p>Suite à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' pour l\''extraction des données, <u>merci de bien vouloir déposer l\''acte d\''engagement</u> ci-joint complété et signé, à l\''adresse suivante:<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>'';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || '    if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> (5*1024*1024)){' || chr(13) || '        $this->body .= ''<p>Le résultat est disponible par téléchargement :<br/><a href="'' . $this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || '    } else {' || chr(13) || '        $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || '    }' || chr(13) || 'error_log(print_r($this->aObjects["oOrder"]->aFields, true));', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur AE généré';
+					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || '	if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || '		$this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || '	}' || chr(13) || '}' || chr(13) || '//$this->to = ''sig@agglo-paysdaix.fr'';' || chr(13) || '$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX- SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Acte d\''engagement non valide'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || '	<p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande n\''a pas encore été validée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || '	$this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || '	$this->body .= ''  - Le cadre d\''identification du dépositaire est incomplet<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || '	$this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject'']->aValues, true));' || chr(13) || '//$this->body .= ''<p>''.$this->aObjects[''oBusinessObject'']->aValues[''comment''].''</p>'';' || chr(13) || '$this->body .=''<p><u>Merci de bien vouloir déposer à nouveau l\''acte d\''engagement</u> à l\''adresse suivante :<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur AE à resoumettre';
+					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$aBo[''bo_id''].'' - Extraction des données'';' || chr(13) || '$this->body = ''<p>Les données concernant la demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' ont été envoyées au demandeur.</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email controleur données extraites';
+					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'if ($this->aObjects["oOrder"]->aFields[''order_status_id''] == 3) {' || chr(13) || '	$this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || '	$this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';' || chr(13) || '	$this->cci = '''';' || chr(13) || '	$this->subject = ''[Pays d\''Aix - SIGAM] - Données extraites'';' || chr(13) || '	$this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || '	$this->body .=''<p></p><p>Les données correspondant à votre demande  en date du ''.date(''d/m/Y'',strtotime($this->aObjects["oOrder"]->aFields[''order_date''])).'' sont disponibles '';' || chr(13) || '	 if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || '			$this->body .= ''sur le lien de téléchargement suivant :<br/><a href="''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || '		} else {' || chr(13) || '			 $this->body .= ''en pièce jointe.</p>'';' || chr(13) || '			$this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || '		}' || chr(13) || '	$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '	<p>Cordialement,</p>' || chr(13) || '	<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || '	Conseil de Territoire du Pays d\''Aix<br/>' || chr(13) || '	Tel : 04 42 93 83 50<br/>' || chr(13) || '	Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>' || chr(13) || '' || chr(13) || '	'';' || chr(13) || '}else{' || chr(13) || '	$this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || '	$this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Echec du traitement'';' || chr(13) || '	$this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || '    $this->body .= ''<p>La demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> n\''a pu être exécutée correctement suite à une erreur.<br/> Veuillez contactez votre administrateur.<br/>'';' || chr(13) || '    $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''log_file''];' || chr(13) || '}', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='public';
+					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->to = ''sofian.pujo@veremes.com'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Dépôt de l\''Acte d\''Engagement à valider'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || '	<p> </p>' || chr(13) || '	<p>L\''acte d\''engagement correspondant à la demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' a été déposé sur le serveur par le demandeur.</p>' || chr(13) || '	<p></p>' || chr(13) || '	<p>Cordialement,</p>' || chr(13) || '	<p> </p>' || chr(13) || '	<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || 'error_log($this->body);' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email contrôleur AE soumis';
+					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_vitis.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || '/*if(!$oBd->erreurRencontree) {' || chr(13) || '	if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || '		$this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || '	}' || chr(13) || '}*/' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject''], true));' || chr(13) || '//$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Rejet de votre demande d\''extraction de données'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || '	<p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande a été rejetée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || '	$this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''accepted_by_cpa''] == "false"){' || chr(13) || '	$this->body .= '' - La CPA ne valide pas l\''usage décrit pour les données du cadastre<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || '	$this->body .= '' - Le cadre d\''identification du dépositaire est incomplet</p>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || '	$this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || '$this->body .= $this->aObjects[''oBusinessObject'']->aValues[''comment''].''<br/>'';' || chr(13) || '$this->body .=''<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur Extraction refusée';
+					UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$sUserLogin = $aBo[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || '	if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || '		$this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oMessage"]->aProperties);' || chr(13) || '	}' || chr(13) || '}' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Données SIG extraites'';' || chr(13) || '$this->body = ''<p>Bonjour</p>' || chr(13) || '<p></p><p>Les données correspondant à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || '        $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="https://sigdata.agglo-paysdaix.fr/public/gtf/''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || '    } else {' || chr(13) || '	 	 $this->body .= ''en pièce jointe.</p>'';' || chr(13) || '        $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || '    }' || chr(13) || '$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Terriroire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a>  </p>' || chr(13) || '' || chr(13) || ''';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || '   ' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur données extraites';
+					DELETE FROM s_gtf.messageclass_action WHERE messageclass LIKE 'extraction_%';
+					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','BoAction',0,'bo_id_attribute=''bo_id''|method=''trGenerer''|class=''Extractions''|module=''extraction''');
+					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur AE généré'));
+					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email controleur données extraites'));
+					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',2,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur données extraites'));
+					INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','BoAction',0,'bo_id_attribute=''bo_id''|method=''trTerminerExtraction''|class=''Extractions''|module=''extraction''');
+					--Partie s_vitis généré par WAB le 22/05/2018 à 09:09:31
+					DELETE FROM s_vitis.vm_section WHERE label_id ~ '^extraction_([0-9]+)$';
+					DELETE FROM s_vitis.vm_table_field WHERE label_id ~ '^extraction_([0-9]+)$';
+					DELETE FROM s_vitis.vm_table_button WHERE label_id ~ '^extraction_([0-9]+)$';
+					DELETE FROM s_vitis.vm_module WHERE module_id='extraction';
+					DELETE FROM s_vitis.vm_string WHERE string_id ~ '^extraction_([0-9]+)$';
+					INSERT INTO s_vitis.vm_module (module_id, description, version, label) VALUES ('extraction','Module Extraction CG34',0.1,'Module Extraction');
+					INSERT INTO s_vitis.group (group_id, name) SELECT (SELECT nextval('s_vitis.seq_common'::regclass)), 'demandeur' WHERE NOT EXISTS (SELECT group_id FROM s_vitis.group WHERE name='demandeur');
+					INSERT INTO s_vitis.group (group_id, name) SELECT (SELECT nextval('s_vitis.seq_common'::regclass)), 'controleur' WHERE NOT EXISTS (SELECT group_id FROM s_vitis.group WHERE name='controleur');
+					INSERT INTO s_vitis.privileges (rolname, description) SELECT 'extraction_admin', 'administrateur extraction' WHERE NOT EXISTS (SELECT rolname FROM s_vitis.privileges WHERE rolname='extraction_admin');
+					INSERT INTO s_vitis.privileges (rolname, description) SELECT 'extraction_user', 'utilisateur extraction' WHERE NOT EXISTS (SELECT rolname FROM s_vitis.privileges WHERE rolname='extraction_user');
+					SELECT s_vitis.create_role_if_not_exists('extraction_admin', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION');
+					SELECT s_vitis.create_role_if_not_exists('extraction_user', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_1');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field bo_id', 'extraction_4');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field status', 'extraction_6');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_extraction', 'extraction_0');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field progress_level', 'extraction_7');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_2');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field company', 'extraction_8');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_3');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field requestor', 'extraction_5');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layers', 'extraction_9');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_coordsys', 'extraction_10');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_11');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_12');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_13');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_format', 'extraction_14');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_15');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_16');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_17');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_layer', 'extraction_18');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_19');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_20');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_21');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys_id', 'extraction_22');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys', 'extraction_23');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format_id', 'extraction_24');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format', 'extraction_25');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_raster', 'extraction_26');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_vector', 'extraction_27');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer_id', 'extraction_28');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer', 'extraction_29');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field category', 'extraction_30');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field restriction', 'extraction_31');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field unused_attributes', 'extraction_32');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_33');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_34');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_35');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_36');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_37');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_38');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_39');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_40');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_41');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_42');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_43');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_44');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field bo_id', 'extraction_45');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field status', 'extraction_46');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field requestor', 'extraction_47');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field company', 'extraction_48');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layers', 'extraction_49');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys_id', 'extraction_50');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys', 'extraction_51');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format_id', 'extraction_52');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format', 'extraction_53');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_raster', 'extraction_54');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_vector', 'extraction_55');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer_id', 'extraction_56');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer', 'extraction_57');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field category', 'extraction_58');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field restriction', 'extraction_59');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field unused_attributes', 'extraction_60');
+					INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('section extractionConfig', 'extraction_61');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_1','fr','Informations générales');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_1','en','General');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_4','fr','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_4','en','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_6','en','Status');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_6','fr','Etat');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_0','en','Extraction');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_0','fr','Extraction');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_7','en','Progress level');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_7','fr','Avancement');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_2','en','Supprimer les plans');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_2','fr','Supprimer les plans');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_8','en','Company');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_8','fr','Organisme');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_3','en','Ajouter une extraction');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_3','fr','Ajouter une extraction');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_5','fr','Demandeur');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_5','en','Demandeur');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_9','en','Layers');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_9','fr','Couches');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_10','fr','Systèmes de coordonnées');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_10','en','Coordinate systems');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_11','fr','Informations générales');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_11','en','General');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_12','fr','Supprimer les systèmes de coordonnées');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_12','en','Delete coordinate systems');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_13','fr','Ajouter un système de coordonnées');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_13','en','Add coordinate systems');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_14','fr','Formats');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_14','en','Formats');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_15','fr','Informations générales');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_15','en','General');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_16','fr','Supprimer les formats');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_16','en','Delete formats');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_17','fr','Ajouter un format');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_17','en','Add format');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_18','fr','Couches');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_18','en','Layers');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_19','fr','Informations générales');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_19','en','General');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_20','fr','Supprimer les couches');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_20','en','Delete layers');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_21','fr','Ajouter une couche');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_21','en','Add layer');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_22','fr','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_22','en','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_23','fr','Nom');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_23','en','Name');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_24','en','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_24','fr','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_25','fr','Nom');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_25','en','Name');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_26','fr','Raster');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_26','en','Raster');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_27','fr','Vecteur');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_27','en','Vector');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_28','fr','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_28','en','ID');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_29','fr','Nom');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_29','en','Name');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_30','fr','Catégorie');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_30','en','Category');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_31','fr','Restriction');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_31','en','Restriction');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_32','fr','Attributs inutilisés');
+					INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_32','en','Unused attributes');
+					INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('extraction','extraction');
+					INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('extraction_ref','extraction');
+					INSERT INTO s_vitis.vm_mode_rolname (index,mode_id, rolname) VALUES (0,'extraction','extraction_user');
+					INSERT INTO s_vitis.vm_mode_rolname (index,mode_id, rolname) VALUES (1,'extraction_ref','extraction_admin');
+					INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 1, 'extraction_ref', 'extraction_14', 'extraction/formats', 'editSectionForm', 'showSectionForm', 'format_id', 'ASC', 'extraction_format');
+					INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 0, 'extraction_ref', 'extraction_10', 'extraction/coordsyss', 'editSectionForm', 'showSectionForm', 'coordsys_id', 'ASC', 'extraction_coordsys');
+					INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 2, 'extraction_ref', 'extraction_18', 'extraction/layers', 'editSectionForm', 'showSectionForm', 'layer_id', 'ASC', 'extraction_layer');
+					INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 0, 'extraction', 'extraction_0', 'extraction/extractions', 'editSectionForm', 'showSectionForm', 'bo_id', 'ASC', 'extraction_extraction');
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_21', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_2', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_3', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_12', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_13', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_16', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_17', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
+					INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_20', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'bo_id', '1', '1', 0, 50, 'left', 'extraction_4', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'status', '1', '1', 2, 150, 'left', 'extraction_6', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'progress_level', '1', '1', 4, 150, 'center', 'extraction_7', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), '<div data-app-navbar data-mode="info" data-hidevalue data-striped data-active></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'company', '1', '1', 3, 200, 'left', 'extraction_8', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'requestor', '1', '1', 1, 200, 'left', 'extraction_5', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layers', '1', '1', 5, 60, 'left', 'extraction_9', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), '<div data-app-extraction-layers-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'coordsys_id', '1', '1', 0, 200, 'left', 'extraction_22', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'coordsys', '1', '1', 1, 200, 'left', 'extraction_23', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'format_id', '1', '1', 0, 100, 'left', 'extraction_24', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'format', '1', '1', 1, 200, 'left', 'extraction_25', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'use_for_raster', '1', '1', 2, 100, 'left', 'extraction_26', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'use_for_vector', '1', '1', 3, 100, 'left', 'extraction_27', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layer_id', '1', '1', 0, 150, 'left', 'extraction_28', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layer', '1', '1', 1, 150, 'left', 'extraction_29', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'category', '1', '1', 2, 150, 'left', 'extraction_30', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'restriction', '1', '1', 3, 100, 'left', 'extraction_31', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'unused_attributes', '1', '1', 4, 110, 'left', 'extraction_32', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), '<div data-app-extraction-ref-unused-attributes-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'));
+					INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_15', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), 'extraction');
+					INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_11', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), 'extraction');
+					INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_19', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), 'extraction');
+					INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_1', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), 'extraction');
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','START', 0);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Nouveau', 10);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Généré', 30);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Soumis', 40);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Demandé', 20);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Dépôt terminé', 100);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier déposé', 90);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Autorisée', 60);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier accepté', 100);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier invalidé', 80);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Extraction terminée', 80);
+					SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Refusée', 100);
+					TRUNCATE s_extraction.rt_extraction_status_group;
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='START'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 1);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Nouveau'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 2);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Demandé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 3);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Généré'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 4);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Soumis'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 5);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Soumis'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 6);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Autorisée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 7);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Autorisée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 8);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Refusée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 9);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Refusée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 10);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Extraction terminée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 11);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier déposé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 12);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier invalidé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 13);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier accepté'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 14);
+					INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Dépôt terminé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 15);
+
+				]]>
+			</code>
+		</query>
+	</queriesCollection>
+</sqlQueries>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/ws/Coordsys.class.inc b/src/module_extraction/web_service/ws/Coordsys.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..7e76be5b1486ecf62b8a03fe5ce65bba4de05df2
--- /dev/null
+++ b/src/module_extraction/web_service/ws/Coordsys.class.inc
@@ -0,0 +1,91 @@
+<?php
+
+require_once __DIR__ . '/ExtractionExtraction.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Coordsys.class.inc
+ * \class Coordsys
+ *
+ * \author WAB <support.wab@veremes.com>.
+ *
+ * 	\brief This file contains the Coordsys php class
+ *
+ * This class defines operation for one Coordsys
+ * 
+ */
+class Coordsys extends ExtractionExtraction {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+
+/**
+     * @SWG\Get(path="/coordsyss/{id_coordsys}", 
+     *   tags={"Coordsyss"},
+     *   summary="Get Coordsys",
+     *   description="Request to get Coordsys by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="id_coordsys",
+     *     in="path",
+     *     description="id_coordsys",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Coordsys Response",
+     *         @SWG\Schema(ref="#/definitions/coordsyss")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about mode
+     */
+    function GET() {
+        $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "rt_coordsys", "coordsys_id");
+    }
+
+/**
+     * delete a Point_situation
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_extraction'], 'rt_coordsys', 'coordsys_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new Error(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields["coordsys_id"] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/ws/Coordsyss.class.inc b/src/module_extraction/web_service/ws/Coordsyss.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..2ff9940840a6c6c2a87cf03bbb871a550f48f449
--- /dev/null
+++ b/src/module_extraction/web_service/ws/Coordsyss.class.inc
@@ -0,0 +1,268 @@
+<?php
+
+/**
+ * \file Coordsyss.class.inc
+ * \class Coordsyss
+ *
+ * \author WAB <support.wab@veremes.com>.
+ *
+ * 	\brief This file contains the Coordsyss php class
+ *
+ * This class defines Rest Api to Vitis Coordsyss
+ * 
+ */
+require_once __DIR__ . '/ExtractionExtraction.class.inc';
+require_once 'Coordsys.class.inc';
+
+
+class Coordsyss extends ExtractionExtraction {
+    /**
+     * @SWG\Definition(
+     *   definition="/coordsyss",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/coordsyss")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Coordsyss",
+     *   description="Operations about Coordsyss"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+
+/**
+     * @SWG\Get(path="/coordsyss",
+     *   tags={"Coordsyss"},
+     *   summary="Get Coordsyss",
+     *   description="Request to get Coordsyss",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort_order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="coordsys Response",
+     *         @SWG\Schema(ref="#/definitions/coordsyss")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Coordsyss
+     * @return  Coordsyss
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_extraction'], "rt_coordsys", "coordsys_id");
+        $sMessage = $aReturn['sMessage'];
+        return $sMessage;
+    }
+
+/**
+     * @SWG\Post(path="/coordsyss",
+     *   tags={"Coordsyss"},
+     *   summary="Add coordsys",
+     *   description="Request to add Coordsyss",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="coordsys Response",
+     *         @SWG\Schema(ref="#/definitions/coordsyss")
+     *     )
+     *  )
+     */
+
+    /**
+     * insert coordsys
+     * @return id of the coordsys created
+     */
+    function POST() {
+        $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'rt_coordsys', '', 'coordsys_id');
+        return $aReturn['sMessage'];
+    }
+
+/**
+     * @SWG\Put(path="/coordsyss/{id_coordsys}",
+     *   tags={"Coordsyss"},
+     *   summary="update Coordsyss",
+     *   description="Request to update Coordsyss",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="Coordsys token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="id_coordsys",
+     *     in="path",
+     *     description="id of the Coordsyss",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/coordsyss")
+     *     )
+     *  )
+     */
+
+    /**
+     * update coordsyss
+     * @return id of coordsyss updated or error object if a coordsyss is not updated
+     */
+    function PUT() {
+        $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'rt_coordsys', 'coordsys_id');
+        
+        return $aReturn['sMessage'];
+    }
+
+/**
+     * @SWG\Delete(path="/coordsyss",
+     *   tags={"Coordsyss"},
+     *   summary="delete Coordsyss",
+     *   description="Request to delete Coordsyss",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the coordsys",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="coordsys Response",
+     *         @SWG\Schema(ref="#/definitions/coordsyss")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/coordsyss/{id_coordsys}",
+     *   tags={"Coordsyss"},
+     *   summary="delete Coordsyss",
+     *   description="Request to delete Coordsyss",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="Coordsys token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="id_coordsys",
+     *     in="path",
+     *     description="id of the Coordsyss",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/coordsyss")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete coordsyss
+     * @return id of coordsyss deleted or error object if a coordsyss is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'rt_coordsys', 'coordsys_id');
+        return $aReturn['sMessage'];
+    }
+
+	
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/ws/Extraction.class.inc b/src/module_extraction/web_service/ws/Extraction.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..f1c76f9da80592270eb44d1dcf5a400fcd8fd4b7
--- /dev/null
+++ b/src/module_extraction/web_service/ws/Extraction.class.inc
@@ -0,0 +1,147 @@
+<?php
+
+require_once __DIR__ . '/ExtractionExtraction.class.inc';
+require_once __DIR__. '/../../class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Extraction.class.inc
+ * \class Extraction
+ *
+ * \author WAB <support.wab@veremes.com>.
+ *
+ * \brief This file contains the Extraction php class
+ *
+ * This class defines operation for one Extraction
+ *
+ */
+class Extraction extends ExtractionExtraction
+{
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    public function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false)
+    {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+
+/**
+ * @SWG\Get(path="/extractions/{id_extraction}",
+ *   tags={"Extractions"},
+ *   summary="Get Extraction",
+ *   description="Request to get Extraction by id",
+ *   operationId="GET",
+ *   produces={"application/xml", "application/json"},
+ *   @SWG\Parameter(
+ *     name="token",
+ *     in="query",
+ *     description="user token",
+ *     required=true,
+ *     type="string"
+ *   ),
+ * @SWG\Parameter(
+ *     name="id_extraction",
+ *     in="path",
+ *     description="id_extraction",
+ *     required=true,
+ *     type="integer",
+ *   format="int32"
+ *   ),
+ * @SWG\Parameter(
+ *     name="attributs",
+ *     in="query",
+ *     description="list of attributs",
+ *     required=false,
+ *     type="string"
+ *   ),
+ *   @SWG\Response(
+ *         response=200,
+ *         description="Extraction Response",
+ *         @SWG\Schema(ref="#/definitions/extractions")
+ *     )
+ *  )
+ */
+
+    /**
+     * get informations about mode
+     */
+    public function GET()
+    {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "v_extraction", "bo_id");
+        // Url vers l'acte d'engagement.
+        if (!empty($this->aFields['ae'])) {
+            $this->aFields['ae'] = $this->aProperties['web_server_name'] . '/' . $this->aProperties['ws_data_alias'] . '/extraction/extraction_extraction_extraction/documents/' . $this->aValues["my_vitis_id"] . '/ae/' . $this->aFields['ae'];
+        }
+
+        // Date au format Français.
+        if ($this->aProperties["language"] == 'fr') {
+            $oDate                          = new DateTime($this->aFields['creation_date']);
+            $this->aFields['creation_date'] = $oDate->format('d/m/Y');
+        }
+
+        // Libellés du champ "Commune".
+        if (!empty($this->aFields['id_com'])) {
+            //On donne les paramètres à remplacer dans la requête
+            $aSQLParams = array(
+                'id_com' => array('value' => $this->aFields['id_com'], 'type' => 'group'),
+            );
+
+            $sSql = $aSql['getCommuneLabel'];
+
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams);
+            if (!$this->oConnection->oBd->enErreur()) {
+                while ($aLine = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
+                    $aCommune[] = $aLine['nom_com'];
+                }
+                $this->aFields['id_com_label'] = implode(',', $aCommune);
+            }
+        }
+
+        // Libellés du champ "Conseil de Territoire".
+        if (!empty($this->aFields['id_conseil'])) {
+
+            $aSQLParams = array(
+                'id_conseil' => array('value' => $this->aFields['id_conseil'], 'type' => 'group'),
+            );
+            //$sSql = str_replace('[id_conseil]', str_replace('|', ',', $this->aFields['id_conseil']), $aSql['getConseilLabel']);
+            $aConseil = [];
+            $sSql       = $aSql['getConseilLabel'];
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams);
+            if (!$this->oConnection->oBd->enErreur()) {
+                while ($aLine = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
+                    $aConseil[] = $aLine['nom_epci'];
+                }
+                if (is_array($aConseil)) {
+                    $this->aFields['id_conseil_label'] = implode(',', $aConseil);
+                } else {
+                    $this->aFields['id_conseil_label'][0] = $aConseil;
+                }
+            }
+        }
+
+        // Nom de l'état de l'extraction.
+        $this->aFields['status_name'] = $this->aFields['status'];
+    }
+
+/**
+ * delete a Point_situation
+ */
+    public function DELETE()
+    {
+        $this->oConnection->oBd->delete($this->aProperties['schema_extraction'], 'extraction', 'bo_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new Error(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields["bo_id"] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
diff --git a/src/module_extraction/web_service/ws/ExtractionExtraction.class.inc b/src/module_extraction/web_service/ws/ExtractionExtraction.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..770729dd15262e596170ea80a2079aac314417a4
--- /dev/null
+++ b/src/module_extraction/web_service/ws/ExtractionExtraction.class.inc
@@ -0,0 +1,44 @@
+<?php
+    require_once __DIR__ . "/../../class/vitis_lib/DbClass.class.inc";
+    require_once __DIR__ . '/../vitis/Vitis.class.inc';
+require_once 'vmlib/logUtil.inc';
+
+class ExtractionExtraction extends Vitis
+{
+
+    //Chemin du fichier de ressources contenant les requêtes SQL
+    public $sRessourcesFile = 'ws/extraction/ExtractionExtraction.class.sql.inc';
+
+    /**
+     * Upload un document dans le ws_data du module Extraction.
+     * @param type $sIndex
+     * @param type $sFolder
+     */
+    public function uploadDocument($sIndex, $sFolder)
+    {
+        // Crée le répertoire si inexistant.
+        $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/' . $sFolder . '/documents/' . $this->aValues["my_vitis_id"] . '/' . $sIndex . '/';
+        if (!is_dir($sDirPath)) {
+            mkdir($sDirPath, 0777, true);
+        }
+
+        // Ecrit le fichier.
+        if (!empty($_FILES[$sIndex])) {
+            $sErrorMessage = uploadFile($sIndex, "", $sDirPath . $_FILES[$sIndex]["name"], $_FILES[$sIndex]['size'] + 1);
+            if ($sErrorMessage != "") {
+                writeToErrorLog($sErrorMessage);
+            }
+
+        } else {
+            $sfileContentIndex = $sIndex . '_file';
+            $sfileNameIndex    = $sIndex . '_name';
+            if (!empty($this->aValues[$sfileContentIndex])) {
+
+                $this->aValues[$sIndex] = $this->aValues[$sfileNameIndex];
+                $fp                     = fopen($sDirPath . $this->aValues[$sfileNameIndex], "w");
+                fwrite($fp, $this->aValues[$sfileContentIndex]);
+                fclose($fp);
+            }
+        }
+    }
+}
diff --git a/src/module_extraction/web_service/ws/ExtractionExtraction.class.sql.inc b/src/module_extraction/web_service/ws/ExtractionExtraction.class.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..bf92c6ac3a1a2b41d71419a93152f5a7c397adfd
--- /dev/null
+++ b/src/module_extraction/web_service/ws/ExtractionExtraction.class.sql.inc
@@ -0,0 +1,22 @@
+<?php
+//Définition des requêtes de l'api Vitis
+$aSql['checkIP'] = "SELECT user_id, ip_constraint FROM [sSchemaFramework].user WHERE login ='[sLogin]'";
+$aSql['getGroups'] = "SELECT group_id FROM [sSchemaFramework].user_group WHERE user_id = [user_id]";
+$aSql['loginUnique'] = 'SELECT UPPER("login") FROM [sSchemaFramework]."user" WHERE UPPER("login")=UPPER(\'sLoginUser\')';
+$aSql['getLoginbyId'] = 'SELECT "login" FROM [sSchemaFramework]."user" WHERE user_id=[user_id]';
+$aSql['getTableColumn'] = 'SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = \'[sSchemaFramework]\' and table_name= \'[sTable]\'';
+$aSql['getUserPrivileges'] = 'SELECT groname FROM pg_user s LEFT OUTER JOIN pg_group g on (s.usesysid = any(g.grolist) )inner join [sSchemaFramework].user on "user".login = usename WHERE user_id = [user_id]';
+$aSql['listDomain'] = 'SELECT distinct domain, alias FROM [sSchemaFramework].domain WHERE "type" = \'AD\'';
+$aSql['createRolname'] = 'CREATE ROLE "vitis_[sDomain]" NOSUPERUSER INHERIT NOCREATEDB CREATEROLE;';
+$aSql['getInfoRolname'] = 'SELECT * FROM pg_catalog.pg_roles WHERE rolname = \'vitis_[sDomain]\'';
+// Extraction
+$aSql['getCommuneLabel'] = 'SELECT nom_com FROM public.ref_cpa_limadm_commune WHERE id_com IN([id_com])';
+$aSql['getConseilLabel'] = 'SELECT nom_epci FROM public.ref_amp_lim_ct WHERE objectid IN([id_conseil])';
+$aSql['getCtId'] = 'SELECT distinct ct_id from [schema_extraction].commune';
+$aSql['getRtLayerWithCtId'] = 'SELECT distinct layer_id, layer, category, mutualized, statistique FROM [schema_extraction].rt_layer INNER JOIN s_extraction.commune ON rt_layer.ct_id = commune.ct_id WHERE (rt_layer."ct_id" IN ([aCtId]))';
+$aSql['getRtLayer'] = 'SELECT distinct layer_id, layer, category, mutualized, statistique FROM [schema_extraction].rt_layer INNER JOIN s_extraction.commune ON rt_layer.ct_id = commune.ct_id';
+
+$aSql['getUserGroups'] = 'SELECT name FROM [schema_framework]."group",[schema_framework].user_group WHERE "group".group_id = user_group.group_id AND user_group.user_id = [user_id]';
+
+$aSql['getFormat'] = 'SELECT id_format FROM q_control."format" WHERE "format".extensions like [extension]';
+?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/ws/Extraction_depot.class.inc b/src/module_extraction/web_service/ws/Extraction_depot.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..51e0c62ee46e290f1026da56738a1836a440961a
--- /dev/null
+++ b/src/module_extraction/web_service/ws/Extraction_depot.class.inc
@@ -0,0 +1,81 @@
+<?php
+
+require_once __DIR__ . '/ExtractionExtraction.class.inc';
+require_once __DIR__ . '/../../class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Extraction_depot.class.inc
+ * \class Extraction_depot
+ *
+ * \author WAB <support.wab@veremes.com>.
+ *
+ * 	\brief This file contains the Extraction_depot php class
+ *
+ * This class defines operation for one Extraction_depot
+ * 
+ */
+class Extraction_depot extends ExtractionExtraction {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+
+	/**
+     * @SWG\Get(path="/extraction_depots/{id_extraction_depot}", 
+     *   tags={"Extraction_depots"},
+     *   summary="Get Extraction_depot",
+     *   description="Request to get Extraction_depot by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="id_extraction_depot",
+     *     in="path",
+     *     description="id_extraction_depot",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Extraction_depot Response",
+     *         @SWG\Schema(ref="#/definitions/extraction_depots")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about mode
+     */
+    function GET() {
+        $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "", "");
+    }
+
+
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/ws/Extraction_depots.class.inc b/src/module_extraction/web_service/ws/Extraction_depots.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e424f2ce3af2e2606528fd45d84c2666d00bd2c0
--- /dev/null
+++ b/src/module_extraction/web_service/ws/Extraction_depots.class.inc
@@ -0,0 +1,440 @@
+<?php
+
+/**
+ * \file Extraction_depots.class.inc
+ * \class Extraction_depots
+ *
+ * \author WAB <support.wab@veremes.com>.
+ *
+ *     \brief This file contains the Extraction_depots php class
+ *
+ * This class defines Rest Api to Vitis Extraction_depots
+ *
+ */
+require_once __DIR__ . '/ExtractionExtraction.class.inc';
+require_once 'Extraction_depot.class.inc';
+require_once __DIR__ . '/../../class/wab_lib/BusinessObject.class.inc';
+require_once __DIR__ . '/Extractions.class.inc';
+
+class Extraction_depots extends ExtractionExtraction
+{
+    /**
+     * @SWG\Definition(
+     *   definition="/extraction_depots",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/extraction_depots")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Extraction_depots",
+     *   description="Operations about Extraction_depots"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    public function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false)
+    {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+
+    /**
+     * @SWG\Get(path="/extraction_depots",
+     *   tags={"Extraction_depots"},
+     *   summary="Get Extraction_depots",
+     *   description="Request to get Extraction_depots",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort_order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="extraction_depot Response",
+     *         @SWG\Schema(ref="#/definitions/extraction_depots")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Extraction_depots
+     * @return  Extraction_depots
+     */
+    public function GET()
+    {
+        if (!empty($this->aPath[2])) {
+            if ($this->aPath[2] == "Tree") {
+                $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot';
+                //Création du dossier extraction_depot
+                if (!is_dir($sDirPath)) {
+                    //Création du dossier du demandeur
+                    if (!mkdir($sDirPath)) {
+                        //Mettre une erreur dans le log d'erreur
+                    }
+                }
+                $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"];
+                if (!is_dir($sDirPath)) {
+                    if (!mkdir($sDirPath)) {
+                        //Mettre une erreur dans le log d'erreur
+                    }
+                }
+                $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Fichiers déposés";
+                if (!is_dir($sDirPath)) {
+                    if (!mkdir($sDirPath)) {
+                        //Mettre une erreur dans le log d'erreur
+                    }
+                }
+                $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Résultats";
+                if (!is_dir($sDirPath)) {
+                    if (!mkdir($sDirPath)) {
+                        //Mettre une erreur dans le log d'erreur
+                    }
+                }
+                $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"];
+                return json_encode($this->getFolderInfos($sDirPath));
+            } elseif ($this->aPath[2] == "File") {
+                $this->getWorkspaceFile();
+            }
+        }
+    }
+
+    /**
+     * Get file.
+     */
+    public function getWorkspaceFile()
+    {
+        $aReturn   = array('status' => 1, 'message' => '');
+        $sFilePath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/" . $this->aValues['file_name'];
+        // Le fichier existe ?
+        if (file_exists($sFilePath)) {
+            header("Content-Type: application/octet-stream");
+            header("Content-Transfer-Encoding: Binary");
+            header("Content-disposition: attachment; filename=\"" . $this->aValues['file_name'] . "\"");
+            header('Content-Length: ' . filesize($sFilePath));
+            error_log(readfile($sFilePath));
+        }
+    }
+
+    /**
+     *
+     * @param string $sDirectoryPath
+     * @return array $aTree
+     */
+    public function getFolderInfos($sDirectoryPath)
+    {
+
+        if (is_dir($sDirectoryPath)) {
+            $aContentDir = scandir($sDirectoryPath);
+            $aTree       = $this->getFileInfos($sDirectoryPath);
+            $aDir        = array();
+            for ($i = 0; $i < count($aContentDir); $i++) {
+                if ($aContentDir[$i] !== "." && $aContentDir[$i] !== "..") {
+                    array_push($aDir, $this->getFolderInfos($sDirectoryPath . "/" . $aContentDir[$i]));
+                }
+            }
+
+            $aTree["content"] = $aDir;
+            $aTree["status"]  = 1;
+            return $aTree;
+        } else {
+            return $this->getFileInfos($sDirectoryPath);
+        }
+    }
+
+    /**
+     *
+     * @param string $sFilePath
+     * @return array
+     */
+    public function getFileInfos($sFilePath)
+    {
+        $iFileSize = filesize($sFilePath);
+
+        $sFileSize = $iFileSize . "octets";
+        if ($iFileSize > 1024) {
+            if ($iFileSize > 1024 * 1024) {
+                if ($iFileSize > 1024 * 1024 * 1024) {
+                    $sFileSize = "-";
+                } else {
+                    $sFileSize = (ceil($iFileSize / (1024 * 1024))) . "Mo";
+                }
+            } else {
+                $sFileSize = (ceil($iFileSize / 1024)) . "Ko";
+            }
+        }
+
+        $aFileName = explode(DIRECTORY_SEPARATOR, $sFilePath);
+
+        return array("filename" => $aFileName[count($aFileName) - 1], "size" => $sFileSize, "lastModification" => date("d/m/Y H:i:s", filemtime($sFilePath)));
+    }
+
+    /**
+     * @SWG\Delete(path="/[Class_name]s",
+     *   tags={"[Class_name_upper]s"},
+     *   summary="delete [Class_name_upper]s",
+     *   description="Request to delete [Class_name_upper]s",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the [Class_name]",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="[Class_name] Response",
+     *         @SWG\Schema(ref="#/definitions/[Class_name]s")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/[Class_name]s/{id_[Class_name]}",
+     *   tags={"[Class_name_upper]s"},
+     *   summary="delete [Class_name_upper]s",
+     *   description="Request to delete [Class_name_upper]s",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="[Class_name_upper] token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="id_[Class_name]",
+     *     in="path",
+     *     description="id of the [Class_name_upper]s",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/[Class_name]s")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete [Class_name]s
+     * @return id of [Class_name]s deleted or error object if a [Class_name]s is not deleted
+     */
+    public function DELETES()
+    {
+        $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"];
+        //On supprime le fichier
+        $sMessage = unlink($sDirPath . "/" . $this->aValues['file_name']);
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Put(path="/[Class_name]s/{id_[Class_name]}",
+     *   tags={"[Class_name_upper]s"},
+     *   summary="update [Class_name_upper]s",
+     *   description="Request to update [Class_name_upper]s",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="[Class_name_upper] token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="id_[Class_name]",
+     *     in="path",
+     *     description="id of the [Class_name_upper]s",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/[Class_name]s")
+     *     )
+     *  )
+     */
+
+    /**
+     * update [Class_name]s
+     * @return id of [Class_name]s updated or error object if a [Class_name]s is not updated
+     */
+    public function PUT()
+    {
+        if (!empty($this->aValues["action"]) && $this->aValues["action"] == "Metadata") {
+            $aReturn = $this->reintegrateMetadata();
+
+            $aXmlRacineAttribute['status'] = $aReturn['status'];
+            $sMessage                      = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        } else {
+            $sDirName      = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"];
+            $error_message = "";
+
+            // Si le dossier {id} n'existe pas (Important pour gérer les erreurs)
+            if (!is_dir($sDirName)) {
+                $error_message .= $sDirName . " does not exist";
+                writeToErrorLog("WARNING: " . $error_message);
+
+                $aXmlRacineAttribute['status'] = 0;
+                $this->aFields                 = array();
+                $this->aFields['errorMessage'] = $error_message;
+                $sMessage                      = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                return $sMessage;
+            }
+            // Si le dossier {id}/Fichiers déposés n'existe pas (Important pour gérer les erreurs)
+            if (!is_dir($sDirName . "/Fichiers déposés")) {
+                $error_message .= $sDirName . "/Fichiers déposés does not exist";
+                writeToErrorLog("WARNING: " . $error_message);
+
+                $aXmlRacineAttribute['status'] = 0;
+                $this->aFields                 = array();
+                $this->aFields['errorMessage'] = $error_message;
+                $sMessage                      = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                return $sMessage;
+            }
+
+            // Si le dossier {id}/form n'existe pas il est crée
+            if (!is_dir($sDirName . "/Résultats")) {
+                writeToErrorLog("WARNING: " . $sDirName . "/Résultats");
+                @mkdir($sDirName . "/Résultats");
+            }
+
+            if (!empty($this->aValues["control_file_file"])) {
+                $this->aValues["control_file"] = $this->aValues["control_file_name"];
+            }
+            if (!empty($this->aValues["control_file_file"])) {
+                //if ($aReturn['sStatus'] == 1) {
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage                      = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                $sDirPath                      = $this->aProperties["upload_dir"] . "/" . getUniqRandomId();
+                while (is_dir($sDirPath)) {
+                    $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId();
+                }
+                if (!mkdir($sDirPath)) {
+                    return false;
+                }
+                // Sauvegarde le nouveau fichier.
+                $fp = fopen($sDirPath . '/' . utf8_decode($this->aValues["control_file_name"]), "w");
+                fwrite($fp, $this->aValues["control_file_file"]);
+                fclose($fp);
+
+                $sExtension = '*.' . end(explode(".", $this->aValues["control_file_name"]));
+                if (in_array($sExtension, explode("|", $this->aProperties['sig'])) or in_array($sExtension, explode("|", $this->aProperties['dao']))) {
+                    $sSchemaContrainte = "";
+                    if (in_array($sExtension, explode("|", $this->aProperties['sig']))) {
+                        $sSchemaContrainte = $this->aProperties["schema_sig"];
+                    } elseif (in_array($sExtension, explode("|", $this->aProperties['dao']))) {
+                        $sSchemaContrainte = $this->aProperties["schema_dao"];
+                    }
+
+                    $this->sRessourcesFile = "ExtractionExtraction.class.sql.inc";
+                    require $this->sRessourcesFile;
+                    $sSql       = $aSql['getFormat'];
+                    $aSQLParams = array(
+                        'extension' => array('type' => 'quoted_string', 'value' => '%' . $sExtension . '%'),
+                    );
+
+                    $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams);
+                    $sFormat    = "";
+                    if (!$this->oConnection->oBd->enErreur()) {
+                        $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult);
+                        foreach ($aResult as $sFormats) {
+                            $sFormat = $sFormats['id_format'];
+                        }
+                    }
+
+                    $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+                    //$this->oBO->insertOrder('EM0160AYYTK48', 'bo_id=' . $this->aValues["bo_id"]  . '|sourceDir=' . end(explode("/", $sDirPath)) . '/' . $this->aValues["control_file_name"] . '|sourceMotif=' . $sExtension . '|schema=' . $sSchemaContrainte . '|format=ACAD|destDir=' . $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Fichiers déposés");
+                    $this->oBO->insertOrder('EM0160AYYTK48', 'bo_id=' . $this->aValues["bo_id"] . '|sourceDir=' . $sDirPath . '/' . $this->aValues["control_file_name"] . '|sourceMotif=' . $sExtension . '|schema=' . $sSchemaContrainte . '|format='.$sFormat.'|depotDir=' . $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . '/Fichiers déposés/' . $this->aValues["control_file_name"]);
+                } else {
+                    //Si l'extension n'est pas bonne
+                    $error_message .= $this->aValues["control_file_name"] . " format is not authaurized (" . $sExtension . ")";
+                    writeToErrorLog("WARNING: " . $error_message);
+
+                    $aXmlRacineAttribute['status'] = 0;
+                    $this->aFields                 = array();
+                    $this->aFields['errorMessage'] = $error_message;
+                    $sMessage                      = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    return $sMessage;
+                }
+            }
+        }
+
+        return $sMessage;
+    }
+
+}
diff --git a/src/module_extraction/web_service/ws/Extractions.class.inc b/src/module_extraction/web_service/ws/Extractions.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..20ba20bbbbfcc4e5063383fb848f243897d150ff
--- /dev/null
+++ b/src/module_extraction/web_service/ws/Extractions.class.inc
@@ -0,0 +1,650 @@
+<?php
+
+/**
+ * \file Extractions.class.inc
+ * \class Extractions
+ *
+ * \author WAB <support.wab@veremes.com>.
+ *
+ *     \brief This file contains the Extractions php class
+ *
+ * This class defines Rest Api to Vitis Extractions
+ *
+ */
+require_once __DIR__ . '/ExtractionExtraction.class.inc';
+require_once 'Extraction.class.inc';
+
+require_once __DIR__ . '/../../class/wab_lib/BusinessObject.class.inc';
+
+class Extractions extends ExtractionExtraction
+{
+
+    protected $iIdExtraction;
+    /**
+     * @SWG\Definition(
+     *   definition="/extractions",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/extractions")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Extractions",
+     *   description="Operations about Extractions"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    public function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false)
+    {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+
+/**
+ * @SWG\Get(path="/extractions",
+ *   tags={"Extractions"},
+ *   summary="Get Extractions",
+ *   description="Request to get Extractions",
+ *   operationId="GET",
+ *   produces={"application/xml", "application/json", "application/x-vm-json"},
+ *   @SWG\Parameter(
+ *     name="token",
+ *     in="query",
+ *     description="user token",
+ *     required=true,
+ *     type="string"
+ *   ),
+ * @SWG\Parameter(
+ *     name="order_by",
+ *     in="query",
+ *     description="list of ordering fields",
+ *     required=false,
+ *     type="string"
+ *   ),
+ * @SWG\Parameter(
+ *     name="sort_order",
+ *     in="query",
+ *     description="sort_order",
+ *     required=false,
+ *     type="string"
+ *   ),
+ * @SWG\Parameter(
+ *     name="limit",
+ *     in="query",
+ *     description="number of element",
+ *     required=false,
+ *     type="integer",
+ *     format="int32"
+ *   ),
+ * @SWG\Parameter(
+ *     name="offset",
+ *     in="query",
+ *     description="index of first element",
+ *     required=false,
+ *     type="string",
+ *     format="int32"
+ *   ),
+ * @SWG\Parameter(
+ *     name="attributs",
+ *     in="query",
+ *     description="list of attributs",
+ *     required=false,
+ *     type="string"
+ *   ),
+ * @SWG\Parameter(
+ *     name="filter",
+ *     in="query",
+ *     description="filter results",
+ *     required=false,
+ *     type="string"
+ *   ),
+ * @SWG\Parameter(
+ *     name="distinct",
+ *     in="query",
+ *     description="delete duplicates",
+ *     required=false,
+ *     type="boolean"
+ *   ),
+ *   @SWG\Response(
+ *         response=200,
+ *         description="extraction Response",
+ *         @SWG\Schema(ref="#/definitions/extractions")
+ *     )
+ *  )
+ */
+    /**
+     * @SWG\Get(path="/extractions/Layers",
+     *   tags={"Extractions"},
+     *   summary="Get extraction layers",
+     *   description="Request to get the layers of the extractions",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/extractions")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Extractions
+     * @return  Extractions
+     */
+    public function GET()
+    {
+        if (!empty($this->aPath[2]) && $this->aPath[2] == "Layers") {
+            $sMessage = $this->getLayers();
+        } else {
+            $aReturn  = $this->genericGet($this->aProperties['schema_extraction'], "v_extraction", "bo_id");
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+/**
+ * @SWG\Post(path="/extractions",
+ *   tags={"Extractions"},
+ *   summary="Add extraction",
+ *   description="Request to add Extractions",
+ *   operationId="POST",
+ *   produces={"application/xml", "application/json"},
+ *   @SWG\Parameter(
+ *     name="token",
+ *     in="query",
+ *     description="user token",
+ *     required=true,
+ *     type="string"
+ *   ),
+ *   @SWG\Response(
+ *         response=200,
+ *         description="extraction Response",
+ *         @SWG\Schema(ref="#/definitions/extractions")
+ *     )
+ *  )
+ */
+
+    /**
+     * insert extraction
+     * @return id of the extraction created
+     */
+    public function POST()
+    {
+        $aReturn                = $this->genericPost($this->aProperties['schema_extraction'], 'extraction', $this->aProperties['schema_extraction'] . '.bo_id_extraction_seq', 'bo_id');
+        $this->aValues["bo_id"] = $this->aValues['my_vitis_id'];
+        eval('$this->' . $this->aValues['tr_status_method'] . '();');
+        return $aReturn['sMessage'];
+    }
+
+/**
+ * @SWG\Put(path="/extractions/{id_extraction}",
+ *   tags={"Extractions"},
+ *   summary="update Extractions",
+ *   description="Request to update Extractions",
+ *   operationId="PUT",
+ *   produces={"application/xml", "application/json"},
+ *   @SWG\Parameter(
+ *     name="token",
+ *     in="query",
+ *     description="Extraction token",
+ *     required=true,
+ *     type="string"
+ *   ),
+ * * @SWG\Parameter(
+ *     name="id_extraction",
+ *     in="path",
+ *     description="id of the Extractions",
+ *     required=true,
+ *     type="integer",
+ *     format = "int32"
+ *   ),
+ * @SWG\Response(
+ *         response=200,
+ *         description="Poprerties Response",
+ *         @SWG\Schema(ref="#/definitions/extractions")
+ *     )
+ *  )
+ */
+
+    /**
+     * update extractions
+     * @return id of extractions updated or error object if a extractions is not updated
+     */
+    public function PUT()
+    {
+        // Upload l'acte d'engagement.
+        $this->uploadDocument('ae', 'extraction_extraction_extraction');
+        //
+        $aReturn                = $this->genericPut($this->aProperties['schema_extraction'], 'extraction', 'bo_id');
+        $this->aValues["bo_id"] = $this->aValues['my_vitis_id'];
+
+        //On vérifie que le fichier existe et ne soit pas vide
+        if (!empty($this->aValues['input_deposit_file'])) {
+            //On va déplacer le fichier dans un dossier temporaire
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage                      = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $sDirPath                      = $this->aProperties["upload_dir"] . "/" . getUniqRandomId();
+            //Récupération de sDirPath pour trDéposer
+            $this->sDirPath = $sDirPath;
+
+            $sExtension = '*.' . end(explode(".", $this->aValues["input_deposit_name"]));
+
+            //Si l'extension est autorisée
+            if (in_array($sExtension, explode("|", $this->aProperties['sig'])) || in_array($sExtension, explode("|", $this->aProperties['dao']))) {
+
+                // Méthode de transition.
+                if (!empty($this->aValues['tr_status_method'])) {
+                    eval('$this->' . $this->aValues['tr_status_method'] . '();');
+                }
+
+                $sSchemaContrainte = "";
+                if (in_array($sExtension, explode("|", $this->aProperties['sig']))) {
+                    $sSchemaContrainte = $this->aProperties["schema_sig"];
+                } elseif (in_array($sExtension, explode("|", $this->aProperties['dao']))) {
+                    $sSchemaContrainte = $this->aProperties["schema_dao"];
+                }
+
+                while (is_dir($sDirPath)) {
+                    $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId();
+                }
+                if (!mkdir($sDirPath)) {
+                    return false;
+                }
+                // Sauvegarde le nouveau fichier.
+                $fp = fopen($sDirPath . '/' . utf8_decode($this->aValues["input_deposit_name"]), "w");
+                fwrite($fp, $this->aValues["input_deposit_file"]);
+                fclose($fp);
+
+                $this->sRessourcesFile = "ExtractionExtraction.class.sql.inc";
+                require $this->sRessourcesFile;
+                $sSql       = $aSql['getFormat'];
+                $aSQLParams = array(
+                    'extension' => array('type' => 'quoted_string', 'value' => '%' . $sExtension . '%'),
+                );
+
+                $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams);
+                $sFormat = "";
+                if (!$this->oConnection->oBd->enErreur()) {
+                    $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult);
+                    foreach ($aResult as $sFormats) {
+                        $sFormat = $sFormats['id_format'];
+                    }
+                }
+
+                //Demande GTF
+                $this->oBO->insertOrder('EM0160AYYTK48', 'bo_id=' . $this->aValues["bo_id"] . '|sourceDir=' . end(explode("/", $sDirPath)) . '/' . $this->aValues["input_deposit_name"] . '|sourceMotif=' . $sExtension . '|depotDir=' . $sSchemaContrainte . '|format=' . $sFormat . '|depotDir=' . $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Fichiers déposés/" . $this->aValues["input_deposit_name"]);
+            } else {
+                //Si l'extension n'est pas bonne
+                $error_message .= $this->aValues["input_deposit_name"] . " format is not authaurized (" . $sExtension . ")";
+                writeToErrorLog("WARNING: " . $error_message);
+
+                $aXmlRacineAttribute['status'] = 0;
+                $this->aFields                 = array();
+                $this->aFields['errorMessage'] = $error_message;
+                $sMessage                      = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                return $sMessage;
+            }
+        }
+        return $aReturn['sMessage'];
+    }
+
+/**
+ * @SWG\Delete(path="/extractions",
+ *   tags={"Extractions"},
+ *   summary="delete Extractions",
+ *   description="Request to delete Extractions",
+ *   operationId="DELETE",
+ *   produces={"application/xml", "application/json"},
+ *   @SWG\Parameter(
+ *     name="token",
+ *     in="query",
+ *     description="token",
+ *     required=true,
+ *     type="string"
+ *   ),
+ * * @SWG\Parameter(
+ *     name="idList",
+ *     in="query",
+ *     description="id of the extraction",
+ *     required=true,
+ *     type="string"
+ *   ),
+ * @SWG\Response(
+ *         response=200,
+ *         description="extraction Response",
+ *         @SWG\Schema(ref="#/definitions/extractions")
+ *     )
+ *  )
+ */
+    /**
+     * @SWG\Delete(path="/extractions/{id_extraction}",
+     *   tags={"Extractions"},
+     *   summary="delete Extractions",
+     *   description="Request to delete Extractions",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="Extraction token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="id_extraction",
+     *     in="path",
+     *     description="id of the Extractions",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/extractions")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete extractions
+     * @return id of extractions deleted or error object if a extractions is not deleted
+     */
+    public function DELETE()
+    {
+        $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'extraction', 'bo_id');
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * Liste des couches.
+     */
+    public function getLayers()
+    {
+        require $this->sRessourcesFile;
+        //On décode le json récupéré via le filtre
+        if (!empty($this->aValues["filter"])) {
+            $decode = $this->decodeJSONFilter($this->aValues["filter"], $this->aProperties['schema_extraction'], $this->aValues["table"]);
+        }
+
+        if (is_object($this->aValues) || is_array($this->aValues)) {
+            $sJSONFilter = json_encode($this->aValues);
+        }
+
+        if (!empty($sJSONFilter)) {
+            $aJSONFilter = json_decode($sJSONFilter, true);
+
+            if (!empty($aJSONFilter["filter"])) {
+                if (is_object($aJSONFilter["filter"]) || is_array($aJSONFilter["filter"])) {
+                    $sJSONFilter = json_encode($aJSONFilter["filter"]);
+                }
+            }
+        }
+        $aSQLParams = array(
+            'schema_framework' => array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'),
+            'user_id'          => array('value' => $_SESSION['ses_user_id'], 'type' => 'string'),
+        );
+
+        $sSql       = $aSql['getUserGroups'];
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams);
+        if (!$this->oConnection->oBd->enErreur()) {
+            $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult);
+            foreach ($aResult as $aUserGroup) {
+                $aUserGroups[] = $aUserGroup['name'];
+            }
+
+            if (!empty($aValues["filter"])) {
+                $aSQLParams = array(
+                    'schema_extraction' => array('value' => $this->aProperties['schema_extraction'], 'type' => 'schema_name'),
+                );
+
+                $sSql = $aSql['getCtId'];
+                //On donne la condition
+                if ($decode["request"]) {
+                    $sSql .= " WHERE ";
+                    $sSql .= $decode["request"];
+                    $sSql .= 'ORDER BY ct_id;';
+                }
+                //error_log(print_r($sSql, true));
+                $merge = array_merge($aSQLParams, $decode["params"]);
+
+                $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $merge);
+
+                $aCtResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult);
+            }
+            // Restriction de l'utilisateur suivant ses groupes.
+            if (in_array('interne', $aUserGroups)) {
+                $sSqlParams = " ORDER BY category, layer_id;";
+            } else if (in_array('restreint', $aUserGroups)) {
+                $sSqlParams = " AND restriction <> 'interne' ORDER BY category, layer_id;";
+            } else {
+                $sSqlParams = " AND restriction = 'public' ORDER BY category, layer_id;";
+            }
+
+            // Liste des cartes.
+            $this->aFields['treeview_layers'] = array();
+
+            //Requête pour récupérer les couches
+            if (!empty($aValues["filter"])) {
+                $sSql = $aSql['getRtLayerWithCtId'] . $sSqlParams;
+            } else {
+                $sSql = $aSql['getRtLayer'] . $sSqlParams;
+            }
+            $ct_id;
+            if (!empty($aCtResult)) {
+                for ($i = 0; $i < sizeof($aCtResult); $i++) {
+                    $ct_id .= $aCtResult[$i]["ct_id"] . "|";
+                }
+                //On retire la dernière pipe qui ne sert à rien
+                $ct_idToSend = substr($ct_id, 0, -1);
+            } else {
+                //On donne un id qui n'existe pas pour éviter une erreur dans la requête SQL
+                $ct_idToSend = -1;
+            }
+            //error_log(print_r($aCtResult[$i]["ct_id"], true));
+            $aSQLParams = array(
+                'schema_extraction' => array('value' => $this->aProperties['schema_extraction'], 'type' => 'schema_name'),
+                'aCtId'             => array('value' => $ct_idToSend, 'type' => 'group'),
+            );
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams);
+            if (!$this->oConnection->oBd->enErreur()) {
+                $aRtLayer = $this->oConnection->oBd->getResultTableAssoc($oPDOresult);
+                $aLayers  = array();
+                if (!empty($aRtLayer)) {
+                    foreach ($aRtLayer as $aLayer) {
+
+                        $aLayers[$aLayer['category']][] = array("text" => $aLayer['layer'], "value" => $aLayer['layer_id'], "mutualized" => $aLayer['mutualized'], "statistique" => $aLayer['statistique']);
+
+                    }
+                }
+                $this->aFields['layers']       = $aLayers;
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage                      = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            } else {
+                $aXmlRacineAttribute['status'] = 0;
+                $this->aFields['error']        = "Request error.";
+                $sMessage                      = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+        } else {
+            $aXmlRacineAttribute['status'] = 0;
+            $this->aFields['error']        = "Request error.";
+            $sMessage                      = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        }
+        //error_log(print_r($sMessage, true));
+        return $sMessage;
+    }
+
+    /**
+     * Transition Method trNouveau
+     */
+    public function trNouveau()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Nouveau");
+
+    }
+
+    /**
+     * Transition Method trGenerer
+     */
+    public function trGenerer()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Généré");
+
+    }
+
+    /**
+     * Transition Method trResoumettre
+     */
+    public function trResoumettre()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Généré");
+        //$this->sendmail(9904);
+        $this->sendmail(171);
+    }
+
+    /**
+     * Transition Method trSoumettre
+     */
+    public function trSoumettre()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Soumis");
+        //$this->oBO->sendmail(39);
+        $this->oBO->sendmail(174);
+    }
+
+    /**
+     * Transition Method trDemander
+     */
+    public function trDemander()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+        $this->oBO->insertOrder('832HZ8J2PTCSG', 'bo_id=' . $this->aValues['bo_id']);
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Demandé");
+
+    }
+
+    /**
+     * Transition Method trReception
+     */
+    public function trReception()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Dépôt terminé");
+
+    }
+
+    /**
+     * Transition Method trDeposer
+     */
+    public function trDeposer()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier déposé");
+
+    }
+
+    /**
+     * Transition Method trAutoriser
+     */
+    public function trAutoriser()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+        $this->oBO->insertOrder('8BCP8WGIOW4KO', 'bo_id=' . $this->aValues['bo_id']);
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Autorisée");
+
+    }
+
+    /**
+     * Transition Method trAccepter
+     */
+    public function trAccepter()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier accepté");
+
+        //$this->oBO->sendmail(id_du_mail_pour_dire_que_le_fichier_est_accepté);
+        $this->trReception();
+
+    }
+
+    /**
+     * Transition Method trInvalider
+     */
+    public function trInvalider()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier invalidé");
+        $this->oBO->sendmail(1057);
+        $this->trRetour();
+
+    }
+
+    /**
+     * Transition Method trRetour
+     */
+    public function trRetour()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Extraction terminée");
+
+    }
+
+    /**
+     * Transition Method trTerminerExtraction
+     */
+    public function trTerminerExtraction()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Extraction terminée");
+
+    }
+
+    /**
+     * Transition Method trRefuser
+     */
+    public function trRefuser()
+    {
+        $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']);
+
+        // Check si la table existe si oui change l'état
+        $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Refusée");
+//$this->sendmail(9902);
+        $this->oBO->sendmail(175);
+    }
+
+}
diff --git a/src/module_extraction/web_service/ws/Format.class.inc b/src/module_extraction/web_service/ws/Format.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..6c9d733bf2f890a5ff4785bb6ca46b57949f2dc3
--- /dev/null
+++ b/src/module_extraction/web_service/ws/Format.class.inc
@@ -0,0 +1,91 @@
+<?php
+
+require_once __DIR__ . '/ExtractionExtraction.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Format.class.inc
+ * \class Format
+ *
+ * \author WAB <support.wab@veremes.com>.
+ *
+ * 	\brief This file contains the Format php class
+ *
+ * This class defines operation for one Format
+ * 
+ */
+class Format extends ExtractionExtraction {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+
+/**
+     * @SWG\Get(path="/formats/{id_format}", 
+     *   tags={"Formats"},
+     *   summary="Get Format",
+     *   description="Request to get Format by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="id_format",
+     *     in="path",
+     *     description="id_format",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Format Response",
+     *         @SWG\Schema(ref="#/definitions/formats")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about mode
+     */
+    function GET() {
+        $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "rt_format", "format_id");
+    }
+
+/**
+     * delete a Point_situation
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_extraction'], 'rt_format', 'format_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new Error(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields["format_id"] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/ws/Formats.class.inc b/src/module_extraction/web_service/ws/Formats.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..141f0fd44f42b395c2af3580cea2f783aa107cfc
--- /dev/null
+++ b/src/module_extraction/web_service/ws/Formats.class.inc
@@ -0,0 +1,269 @@
+<?php
+
+/**
+ * \file Formats.class.inc
+ * \class Formats
+ *
+ * \author WAB <support.wab@veremes.com>.
+ *
+ * 	\brief This file contains the Formats php class
+ *
+ * This class defines Rest Api to Vitis Formats
+ * 
+ */
+require_once __DIR__ . '/ExtractionExtraction.class.inc';
+require_once 'Format.class.inc';
+
+
+class Formats extends ExtractionExtraction {
+    /**
+     * @SWG\Definition(
+     *   definition="/formats",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/formats")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Formats",
+     *   description="Operations about Formats"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+
+/**
+     * @SWG\Get(path="/formats",
+     *   tags={"Formats"},
+     *   summary="Get Formats",
+     *   description="Request to get Formats",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort_order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="format Response",
+     *         @SWG\Schema(ref="#/definitions/formats")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Formats
+     * @return  Formats
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_extraction'], "rt_format", "format_id");
+        $sMessage = $aReturn['sMessage'];
+        return $sMessage;
+    }
+
+/**
+     * @SWG\Post(path="/formats",
+     *   tags={"Formats"},
+     *   summary="Add format",
+     *   description="Request to add Formats",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="format Response",
+     *         @SWG\Schema(ref="#/definitions/formats")
+     *     )
+     *  )
+     */
+
+    /**
+     * insert format
+     * @return id of the format created
+     */
+    function POST() {
+        $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'rt_format', '', 'format_id');
+        
+        return $aReturn['sMessage'];
+    }
+
+/**
+     * @SWG\Put(path="/formats/{id_format}",
+     *   tags={"Formats"},
+     *   summary="update Formats",
+     *   description="Request to update Formats",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="Format token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="id_format",
+     *     in="path",
+     *     description="id of the Formats",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/formats")
+     *     )
+     *  )
+     */
+
+    /**
+     * update formats
+     * @return id of formats updated or error object if a formats is not updated
+     */
+    function PUT() {
+        $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'rt_format', 'format_id');
+        
+        return $aReturn['sMessage'];
+    }
+
+/**
+     * @SWG\Delete(path="/formats",
+     *   tags={"Formats"},
+     *   summary="delete Formats",
+     *   description="Request to delete Formats",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the format",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="format Response",
+     *         @SWG\Schema(ref="#/definitions/formats")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/formats/{id_format}",
+     *   tags={"Formats"},
+     *   summary="delete Formats",
+     *   description="Request to delete Formats",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="Format token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="id_format",
+     *     in="path",
+     *     description="id of the Formats",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/formats")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete formats
+     * @return id of formats deleted or error object if a formats is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'rt_format', 'format_id');
+        return $aReturn['sMessage'];
+    }
+
+	
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/ws/Layer.class.inc b/src/module_extraction/web_service/ws/Layer.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..af7d4af185880fac5854217b8020fe2792193245
--- /dev/null
+++ b/src/module_extraction/web_service/ws/Layer.class.inc
@@ -0,0 +1,91 @@
+<?php
+
+require_once __DIR__ . '/ExtractionExtraction.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Layer.class.inc
+ * \class Layer
+ *
+ * \author WAB <support.wab@veremes.com>.
+ *
+ * 	\brief This file contains the Layer php class
+ *
+ * This class defines operation for one Layer
+ * 
+ */
+class Layer extends ExtractionExtraction {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+
+/**
+     * @SWG\Get(path="/layers/{id_layer}", 
+     *   tags={"Layers"},
+     *   summary="Get Layer",
+     *   description="Request to get Layer by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="id_layer",
+     *     in="path",
+     *     description="id_layer",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Layer Response",
+     *         @SWG\Schema(ref="#/definitions/layers")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about mode
+     */
+    function GET() {
+        $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "rt_layer", "layer_id");
+    }
+
+/**
+     * delete a Point_situation
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_extraction'], 'rt_layer', 'layer_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new Error(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields["layer_id"] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/ws/Layers.class.inc b/src/module_extraction/web_service/ws/Layers.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..0cdb17b292f172ec2958a222ec0b3ca17f69b23c
--- /dev/null
+++ b/src/module_extraction/web_service/ws/Layers.class.inc
@@ -0,0 +1,269 @@
+<?php
+
+/**
+ * \file Layers.class.inc
+ * \class Layers
+ *
+ * \author WAB <support.wab@veremes.com>.
+ *
+ * 	\brief This file contains the Layers php class
+ *
+ * This class defines Rest Api to Vitis Layers
+ * 
+ */
+require_once __DIR__ . '/ExtractionExtraction.class.inc';
+require_once 'Layer.class.inc';
+
+
+class Layers extends ExtractionExtraction {
+    /**
+     * @SWG\Definition(
+     *   definition="/layers",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/layers")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Layers",
+     *   description="Operations about Layers"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+
+/**
+     * @SWG\Get(path="/layers",
+     *   tags={"Layers"},
+     *   summary="Get Layers",
+     *   description="Request to get Layers",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort_order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="layer Response",
+     *         @SWG\Schema(ref="#/definitions/layers")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Layers
+     * @return  Layers
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_extraction'], $this->aValues["table"], $this->aValues["filter"]["column"]);
+        $sMessage = $aReturn['sMessage'];
+        return $sMessage;
+    }
+
+/**
+     * @SWG\Post(path="/layers",
+     *   tags={"Layers"},
+     *   summary="Add layer",
+     *   description="Request to add Layers",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="layer Response",
+     *         @SWG\Schema(ref="#/definitions/layers")
+     *     )
+     *  )
+     */
+
+    /**
+     * insert layer
+     * @return id of the layer created
+     */
+    function POST() {
+        $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'rt_layer', '', 'layer_id');
+        
+        return $aReturn['sMessage'];
+    }
+
+/**
+     * @SWG\Put(path="/layers/{id_layer}",
+     *   tags={"Layers"},
+     *   summary="update Layers",
+     *   description="Request to update Layers",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="Layer token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="id_layer",
+     *     in="path",
+     *     description="id of the Layers",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/layers")
+     *     )
+     *  )
+     */
+
+    /**
+     * update layers
+     * @return id of layers updated or error object if a layers is not updated
+     */
+    function PUT() {
+        $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'rt_layer', 'layer_id');
+        
+        return $aReturn['sMessage'];
+    }
+
+/**
+     * @SWG\Delete(path="/layers",
+     *   tags={"Layers"},
+     *   summary="delete Layers",
+     *   description="Request to delete Layers",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the layer",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="layer Response",
+     *         @SWG\Schema(ref="#/definitions/layers")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/layers/{id_layer}",
+     *   tags={"Layers"},
+     *   summary="delete Layers",
+     *   description="Request to delete Layers",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="Layer token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="id_layer",
+     *     in="path",
+     *     description="id of the Layers",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/layers")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete layers
+     * @return id of layers deleted or error object if a layers is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'rt_layer', 'layer_id');
+        return $aReturn['sMessage'];
+    }
+
+	
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_extraction/web_service/ws/overview.phtml b/src/module_extraction/web_service/ws/overview.phtml
new file mode 100755
index 0000000000000000000000000000000000000000..27e165d375458404f3a66e7ee8864f745b7ee923
--- /dev/null
+++ b/src/module_extraction/web_service/ws/overview.phtml
@@ -0,0 +1,24 @@
+<?php
+/**
+ * @SWG\Swagger(
+ *      basePath="/[service_alias]/extraction",
+ *     	host="[server]",
+ *    	schemes={"[protocol]"},
+ *     	produces={  
+ *          "application/json",
+            "application/xml",
+            "text/html"
+ * 		},
+ *     @SWG\Info(
+ *         version="1.0.0",
+ *         title="Extraction Test Rest",
+ *         description="All fetaures to access server operation for extraction",
+ *     )
+ * )
+ */
+?>
+
+<h1 class="titleOverview">Service Extraction</h1>
+<p>
+	<a class="linkOverview" href="javascript:sService='extraction';LoadApi()">Extraction</a>: this is the most comprehensive service which should be used as a preference when developing applications communicating with Extraction. Those services allow you to administrate Extraction applications.
+</p>
\ No newline at end of file
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat b/src/vitis/.gitignore
old mode 100755
new mode 100644
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat
rename to src/vitis/.gitignore
diff --git a/src/vitis/README.md b/src/vitis/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..73a21c98f1cea1876231e24ce68d0dc5b7bca937
--- /dev/null
+++ b/src/vitis/README.md
@@ -0,0 +1 @@
+Vitis framework
\ No newline at end of file
diff --git a/src/vitis/_install/client/fileToDelete.txt b/src/vitis/_install/client/fileToDelete.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ca3a9114882b45d4b55b25a40380235fc553ceb9
--- /dev/null
+++ b/src/vitis/_install/client/fileToDelete.txt
@@ -0,0 +1,4 @@
+javascript/externs/formreader/formreader.js
+javascript/externs/formreader/formreaderCtrl.js
+javascript/externs/formreader/formreaderDrtv.js
+javascript/externs/formreader/formreaderSrvc.js
\ No newline at end of file
diff --git a/src/vitis/_install/client/folderToDelete.txt b/src/vitis/_install/client/folderToDelete.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a0e7984dc0bc0ee6987ebffa481549c126c7ef9b
--- /dev/null
+++ b/src/vitis/_install/client/folderToDelete.txt
@@ -0,0 +1,8 @@
+javascript/app
+javascript/require
+javascript/test
+javascript/externs/openLayers/ol
+javascript/externs/openLayers/ol.ext
+javascript/externs/studio/properties
+javascript/externs/studio/javascript
+modules/vitis/javascript
\ No newline at end of file
diff --git a/src/vitis/_install/client/listModuleApache.txt b/src/vitis/_install/client/listModuleApache.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2c0309e320b509b2ba74dc5f3ddd6a211245e922
--- /dev/null
+++ b/src/vitis/_install/client/listModuleApache.txt
@@ -0,0 +1,5 @@
+alias
+deflate
+headers
+rewrite
+ssl
\ No newline at end of file
diff --git a/_install/dependencies/mapserver/.htaccess b/src/vitis/_install/dependencies/mapserver/.htaccess
similarity index 100%
rename from _install/dependencies/mapserver/.htaccess
rename to src/vitis/_install/dependencies/mapserver/.htaccess
diff --git a/_install/dependencies/mapserver/linux/apache.conf b/src/vitis/_install/dependencies/mapserver/linux/apache.conf
similarity index 100%
rename from _install/dependencies/mapserver/linux/apache.conf
rename to src/vitis/_install/dependencies/mapserver/linux/apache.conf
diff --git a/_install/dependencies/mapserver/windows/apache.conf b/src/vitis/_install/dependencies/mapserver/windows/apache.conf
similarity index 100%
rename from _install/dependencies/mapserver/windows/apache.conf
rename to src/vitis/_install/dependencies/mapserver/windows/apache.conf
diff --git a/_install/dependencies/php/linux/apache.conf b/src/vitis/_install/dependencies/php/linux/apache.conf
similarity index 100%
rename from _install/dependencies/php/linux/apache.conf
rename to src/vitis/_install/dependencies/php/linux/apache.conf
diff --git a/_install/dependencies/php/php.ini b/src/vitis/_install/dependencies/php/php.ini
similarity index 100%
rename from _install/dependencies/php/php.ini
rename to src/vitis/_install/dependencies/php/php.ini
diff --git a/_install/dependencies/php/windows/apache.conf b/src/vitis/_install/dependencies/php/windows/apache.conf
similarity index 100%
rename from _install/dependencies/php/windows/apache.conf
rename to src/vitis/_install/dependencies/php/windows/apache.conf
diff --git a/_install/dependencies/pycron/crontab.txt b/src/vitis/_install/dependencies/pycron/crontab.txt
similarity index 100%
rename from _install/dependencies/pycron/crontab.txt
rename to src/vitis/_install/dependencies/pycron/crontab.txt
diff --git a/_install/dependencies/websocket/apache.conf b/src/vitis/_install/dependencies/websocket/apache.conf
similarity index 100%
rename from _install/dependencies/websocket/apache.conf
rename to src/vitis/_install/dependencies/websocket/apache.conf
diff --git a/_install/dependencies/websocket/linux/websocket_vitis b/src/vitis/_install/dependencies/websocket/linux/websocket_vitis
similarity index 100%
rename from _install/dependencies/websocket/linux/websocket_vitis
rename to src/vitis/_install/dependencies/websocket/linux/websocket_vitis
diff --git a/_install/dependencies/websocket/websocket.cfg b/src/vitis/_install/dependencies/websocket/websocket.cfg
similarity index 100%
rename from _install/dependencies/websocket/websocket.cfg
rename to src/vitis/_install/dependencies/websocket/websocket.cfg
diff --git a/_install/dependency.xml b/src/vitis/_install/dependency.xml
similarity index 100%
rename from _install/dependency.xml
rename to src/vitis/_install/dependency.xml
diff --git a/src/vitis/_install/vas/apache.conf b/src/vitis/_install/vas/apache.conf
new file mode 100644
index 0000000000000000000000000000000000000000..2281b2e2673c513df20924e94a224bfa45673fad
--- /dev/null
+++ b/src/vitis/_install/vas/apache.conf
@@ -0,0 +1,70 @@
+PassEnv TEMP
+Alias /rest[ENV] "[VASDIRECTORY]/rest"
+	<Directory "[VASDIRECTORY]/rest">
+		<FilesMatch ".+\.ph(p[345]?|t|tml)$">
+			SetHandler application/x-httpd-php_vitis[ENV]
+		</FilesMatch>
+		AllowOverride FileInfo
+		Options FollowSymLinks
+		Require all granted
+		<Files ~ "\.(map|log|inc|php)$">
+			Order allow,deny
+			Deny from all
+		</Files>
+	</Directory>
+
+Alias /doc[ENV] "[VASDIRECTORY]/doc"
+	<Directory "[VASDIRECTORY]/doc">
+		<FilesMatch ".+\.ph(p[345]?|t|tml)$">
+			SetHandler application/x-httpd-php_vitis[ENV]
+		</FilesMatch>
+		AllowOverride FileInfo
+		Options FollowSymLinks
+		Require all granted
+	</Directory>
+
+Alias /public[ENV] "[VASDIRECTORY]/public"
+	<Directory "[VASDIRECTORY]/public">
+		AllowOverride FileInfo
+		Options FollowSymLinks
+		Require all granted
+		<Files ~ "\.(map|inc|php)$">
+			Order allow,deny
+			Deny from all
+		</Files>
+		SetHandler application/x-download
+	</Directory>
+Alias /ws_data[ENV] "[VASDIRECTORY]/ws_data"
+	<Directory "[VASDIRECTORY]/ws_data">
+		AllowOverride All
+		Options FollowSymLinks
+		Require all granted
+		<Files ~ "\.(map|log|inc|php)$">
+			Order allow,deny
+			Deny from all
+		</Files>
+		SetHandler application/x-download
+	</Directory>
+Alias /proxy[ENV] "[VASDIRECTORY]/util/proxy"
+	<Directory "[VASDIRECTORY]/util/proxy">
+		<FilesMatch ".+\.ph(p[345]?|t|tml)$">
+			SetHandler application/x-httpd-php_vitis[ENV]
+		</FilesMatch>
+		AllowOverride FileInfo
+		Options FollowSymLinks
+		Require all granted
+		<Files ~ "\.(map|log|inc)$">
+			Order allow,deny
+			Deny from all
+		</Files>
+	</Directory>
+Alias /printserver[ENV] "[VASDIRECTORY]/util/printserver"
+	<Directory "[VASDIRECTORY]/util/printserver">
+		AllowOverride FileInfo
+		Options FollowSymLinks
+		Require all granted
+		<Files ~ "\.(map|log|inc|php)$">
+			Order allow,deny
+			Deny from all
+		</Files>
+	</Directory>
\ No newline at end of file
diff --git a/src/vitis/_install/vas/listModuleApache.txt b/src/vitis/_install/vas/listModuleApache.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c2626d946f4a9bbaad4d7ca16423af23007c0ca3
--- /dev/null
+++ b/src/vitis/_install/vas/listModuleApache.txt
@@ -0,0 +1,16 @@
+actions
+alias
+cgi
+deflate
+headers
+ldap
+rewrite
+ssl
+proxy
+proxy_ajp
+proxy_connect
+proxy_fcgi
+proxy_ftp
+proxy_http
+proxy_scgi
+proxy_wstunnel
\ No newline at end of file
diff --git a/client/.htaccess b/src/vitis/client/.htaccess
similarity index 100%
rename from client/.htaccess
rename to src/vitis/client/.htaccess
diff --git a/client/css/icons/fonts/veremes.eot b/src/vitis/client/css/icons/fonts/veremes.eot
similarity index 100%
rename from client/css/icons/fonts/veremes.eot
rename to src/vitis/client/css/icons/fonts/veremes.eot
diff --git a/client/css/icons/fonts/veremes.svg b/src/vitis/client/css/icons/fonts/veremes.svg
similarity index 100%
rename from client/css/icons/fonts/veremes.svg
rename to src/vitis/client/css/icons/fonts/veremes.svg
diff --git a/client/css/icons/fonts/veremes.ttf b/src/vitis/client/css/icons/fonts/veremes.ttf
similarity index 100%
rename from client/css/icons/fonts/veremes.ttf
rename to src/vitis/client/css/icons/fonts/veremes.ttf
diff --git a/client/css/icons/fonts/veremes.woff b/src/vitis/client/css/icons/fonts/veremes.woff
similarity index 100%
rename from client/css/icons/fonts/veremes.woff
rename to src/vitis/client/css/icons/fonts/veremes.woff
diff --git a/client/css/icons/selection.json b/src/vitis/client/css/icons/selection.json
similarity index 100%
rename from client/css/icons/selection.json
rename to src/vitis/client/css/icons/selection.json
diff --git a/client/css/icons/style.css b/src/vitis/client/css/icons/style.css
similarity index 100%
rename from client/css/icons/style.css
rename to src/vitis/client/css/icons/style.css
diff --git a/client/css/lib/awesome-bootstrap-checkbox.css b/src/vitis/client/css/lib/awesome-bootstrap-checkbox.css
similarity index 100%
rename from client/css/lib/awesome-bootstrap-checkbox.css
rename to src/vitis/client/css/lib/awesome-bootstrap-checkbox.css
diff --git a/client/css/lib/bootstrap-checkbox/build.css b/src/vitis/client/css/lib/bootstrap-checkbox/build.css
similarity index 100%
rename from client/css/lib/bootstrap-checkbox/build.css
rename to src/vitis/client/css/lib/bootstrap-checkbox/build.css
diff --git a/client/css/lib/bootstrap-checkbox/font-awesome.css b/src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.css
similarity index 100%
rename from client/css/lib/bootstrap-checkbox/font-awesome.css
rename to src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.css
diff --git a/client/css/lib/bootstrap-checkbox/font-awesome.min.css b/src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.min.css
similarity index 100%
rename from client/css/lib/bootstrap-checkbox/font-awesome.min.css
rename to src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.min.css
diff --git a/client/css/lib/bootstrap/css/bootstrap-theme.css b/src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css
similarity index 100%
rename from client/css/lib/bootstrap/css/bootstrap-theme.css
rename to src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css
diff --git a/client/css/lib/bootstrap/css/bootstrap-theme.css.map b/src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css.map
similarity index 100%
rename from client/css/lib/bootstrap/css/bootstrap-theme.css.map
rename to src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css.map
diff --git a/client/css/lib/bootstrap/css/bootstrap-theme.min.css b/src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.min.css
similarity index 100%
rename from client/css/lib/bootstrap/css/bootstrap-theme.min.css
rename to src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.min.css
diff --git a/client/css/lib/bootstrap/css/bootstrap.css b/src/vitis/client/css/lib/bootstrap/css/bootstrap.css
similarity index 100%
rename from client/css/lib/bootstrap/css/bootstrap.css
rename to src/vitis/client/css/lib/bootstrap/css/bootstrap.css
diff --git a/client/css/lib/bootstrap/css/bootstrap.css.map b/src/vitis/client/css/lib/bootstrap/css/bootstrap.css.map
similarity index 100%
rename from client/css/lib/bootstrap/css/bootstrap.css.map
rename to src/vitis/client/css/lib/bootstrap/css/bootstrap.css.map
diff --git a/client/css/lib/bootstrap/css/bootstrap.min.css b/src/vitis/client/css/lib/bootstrap/css/bootstrap.min.css
similarity index 100%
rename from client/css/lib/bootstrap/css/bootstrap.min.css
rename to src/vitis/client/css/lib/bootstrap/css/bootstrap.min.css
diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
similarity index 100%
rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg
similarity index 100%
rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg
rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg
diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
similarity index 100%
rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
similarity index 100%
rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
similarity index 100%
rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
diff --git a/client/css/lib/codemirror/codemirror.css b/src/vitis/client/css/lib/codemirror/codemirror.css
similarity index 100%
rename from client/css/lib/codemirror/codemirror.css
rename to src/vitis/client/css/lib/codemirror/codemirror.css
diff --git a/client/css/lib/codemirror/codemirror_foldgutter.css b/src/vitis/client/css/lib/codemirror/codemirror_foldgutter.css
similarity index 100%
rename from client/css/lib/codemirror/codemirror_foldgutter.css
rename to src/vitis/client/css/lib/codemirror/codemirror_foldgutter.css
diff --git a/client/css/lib/codemirror/dialog.css b/src/vitis/client/css/lib/codemirror/dialog.css
similarity index 100%
rename from client/css/lib/codemirror/dialog.css
rename to src/vitis/client/css/lib/codemirror/dialog.css
diff --git a/client/css/lib/codemirror/docs.css b/src/vitis/client/css/lib/codemirror/docs.css
similarity index 100%
rename from client/css/lib/codemirror/docs.css
rename to src/vitis/client/css/lib/codemirror/docs.css
diff --git a/client/css/lib/codemirror/map.css b/src/vitis/client/css/lib/codemirror/map.css
similarity index 100%
rename from client/css/lib/codemirror/map.css
rename to src/vitis/client/css/lib/codemirror/map.css
diff --git a/client/css/lib/codemirror/show-hint.css b/src/vitis/client/css/lib/codemirror/show-hint.css
similarity index 100%
rename from client/css/lib/codemirror/show-hint.css
rename to src/vitis/client/css/lib/codemirror/show-hint.css
diff --git a/client/css/lib/codemirror/theme/3024-day.css b/src/vitis/client/css/lib/codemirror/theme/3024-day.css
similarity index 100%
rename from client/css/lib/codemirror/theme/3024-day.css
rename to src/vitis/client/css/lib/codemirror/theme/3024-day.css
diff --git a/client/css/lib/codemirror/theme/3024-night.css b/src/vitis/client/css/lib/codemirror/theme/3024-night.css
similarity index 100%
rename from client/css/lib/codemirror/theme/3024-night.css
rename to src/vitis/client/css/lib/codemirror/theme/3024-night.css
diff --git a/client/css/lib/codemirror/theme/Veremes.css b/src/vitis/client/css/lib/codemirror/theme/Veremes.css
similarity index 100%
rename from client/css/lib/codemirror/theme/Veremes.css
rename to src/vitis/client/css/lib/codemirror/theme/Veremes.css
diff --git a/client/css/lib/codemirror/theme/abcdef.css b/src/vitis/client/css/lib/codemirror/theme/abcdef.css
similarity index 100%
rename from client/css/lib/codemirror/theme/abcdef.css
rename to src/vitis/client/css/lib/codemirror/theme/abcdef.css
diff --git a/client/css/lib/codemirror/theme/ambiance-mobile.css b/src/vitis/client/css/lib/codemirror/theme/ambiance-mobile.css
similarity index 100%
rename from client/css/lib/codemirror/theme/ambiance-mobile.css
rename to src/vitis/client/css/lib/codemirror/theme/ambiance-mobile.css
diff --git a/client/css/lib/codemirror/theme/ambiance.css b/src/vitis/client/css/lib/codemirror/theme/ambiance.css
similarity index 100%
rename from client/css/lib/codemirror/theme/ambiance.css
rename to src/vitis/client/css/lib/codemirror/theme/ambiance.css
diff --git a/client/css/lib/codemirror/theme/base16-dark.css b/src/vitis/client/css/lib/codemirror/theme/base16-dark.css
similarity index 100%
rename from client/css/lib/codemirror/theme/base16-dark.css
rename to src/vitis/client/css/lib/codemirror/theme/base16-dark.css
diff --git a/client/css/lib/codemirror/theme/base16-light.css b/src/vitis/client/css/lib/codemirror/theme/base16-light.css
similarity index 100%
rename from client/css/lib/codemirror/theme/base16-light.css
rename to src/vitis/client/css/lib/codemirror/theme/base16-light.css
diff --git a/client/css/lib/codemirror/theme/bespin.css b/src/vitis/client/css/lib/codemirror/theme/bespin.css
similarity index 100%
rename from client/css/lib/codemirror/theme/bespin.css
rename to src/vitis/client/css/lib/codemirror/theme/bespin.css
diff --git a/client/css/lib/codemirror/theme/blackboard.css b/src/vitis/client/css/lib/codemirror/theme/blackboard.css
similarity index 100%
rename from client/css/lib/codemirror/theme/blackboard.css
rename to src/vitis/client/css/lib/codemirror/theme/blackboard.css
diff --git a/client/css/lib/codemirror/theme/cobalt.css b/src/vitis/client/css/lib/codemirror/theme/cobalt.css
similarity index 100%
rename from client/css/lib/codemirror/theme/cobalt.css
rename to src/vitis/client/css/lib/codemirror/theme/cobalt.css
diff --git a/client/css/lib/codemirror/theme/colorforth.css b/src/vitis/client/css/lib/codemirror/theme/colorforth.css
similarity index 100%
rename from client/css/lib/codemirror/theme/colorforth.css
rename to src/vitis/client/css/lib/codemirror/theme/colorforth.css
diff --git a/client/css/lib/codemirror/theme/dracula.css b/src/vitis/client/css/lib/codemirror/theme/dracula.css
similarity index 100%
rename from client/css/lib/codemirror/theme/dracula.css
rename to src/vitis/client/css/lib/codemirror/theme/dracula.css
diff --git a/client/css/lib/codemirror/theme/eclipse.css b/src/vitis/client/css/lib/codemirror/theme/eclipse.css
similarity index 100%
rename from client/css/lib/codemirror/theme/eclipse.css
rename to src/vitis/client/css/lib/codemirror/theme/eclipse.css
diff --git a/client/css/lib/codemirror/theme/elegant.css b/src/vitis/client/css/lib/codemirror/theme/elegant.css
similarity index 100%
rename from client/css/lib/codemirror/theme/elegant.css
rename to src/vitis/client/css/lib/codemirror/theme/elegant.css
diff --git a/client/css/lib/codemirror/theme/erlang-dark.css b/src/vitis/client/css/lib/codemirror/theme/erlang-dark.css
similarity index 100%
rename from client/css/lib/codemirror/theme/erlang-dark.css
rename to src/vitis/client/css/lib/codemirror/theme/erlang-dark.css
diff --git a/client/css/lib/codemirror/theme/hopscotch.css b/src/vitis/client/css/lib/codemirror/theme/hopscotch.css
similarity index 100%
rename from client/css/lib/codemirror/theme/hopscotch.css
rename to src/vitis/client/css/lib/codemirror/theme/hopscotch.css
diff --git a/client/css/lib/codemirror/theme/icecoder.css b/src/vitis/client/css/lib/codemirror/theme/icecoder.css
similarity index 100%
rename from client/css/lib/codemirror/theme/icecoder.css
rename to src/vitis/client/css/lib/codemirror/theme/icecoder.css
diff --git a/client/css/lib/codemirror/theme/isotope.css b/src/vitis/client/css/lib/codemirror/theme/isotope.css
similarity index 100%
rename from client/css/lib/codemirror/theme/isotope.css
rename to src/vitis/client/css/lib/codemirror/theme/isotope.css
diff --git a/client/css/lib/codemirror/theme/lesser-dark.css b/src/vitis/client/css/lib/codemirror/theme/lesser-dark.css
similarity index 100%
rename from client/css/lib/codemirror/theme/lesser-dark.css
rename to src/vitis/client/css/lib/codemirror/theme/lesser-dark.css
diff --git a/client/css/lib/codemirror/theme/liquibyte.css b/src/vitis/client/css/lib/codemirror/theme/liquibyte.css
similarity index 100%
rename from client/css/lib/codemirror/theme/liquibyte.css
rename to src/vitis/client/css/lib/codemirror/theme/liquibyte.css
diff --git a/client/css/lib/codemirror/theme/material.css b/src/vitis/client/css/lib/codemirror/theme/material.css
similarity index 100%
rename from client/css/lib/codemirror/theme/material.css
rename to src/vitis/client/css/lib/codemirror/theme/material.css
diff --git a/client/css/lib/codemirror/theme/mbo.css b/src/vitis/client/css/lib/codemirror/theme/mbo.css
similarity index 100%
rename from client/css/lib/codemirror/theme/mbo.css
rename to src/vitis/client/css/lib/codemirror/theme/mbo.css
diff --git a/client/css/lib/codemirror/theme/mdn-like.css b/src/vitis/client/css/lib/codemirror/theme/mdn-like.css
similarity index 100%
rename from client/css/lib/codemirror/theme/mdn-like.css
rename to src/vitis/client/css/lib/codemirror/theme/mdn-like.css
diff --git a/client/css/lib/codemirror/theme/midnight.css b/src/vitis/client/css/lib/codemirror/theme/midnight.css
similarity index 100%
rename from client/css/lib/codemirror/theme/midnight.css
rename to src/vitis/client/css/lib/codemirror/theme/midnight.css
diff --git a/client/css/lib/codemirror/theme/monokai.css b/src/vitis/client/css/lib/codemirror/theme/monokai.css
similarity index 100%
rename from client/css/lib/codemirror/theme/monokai.css
rename to src/vitis/client/css/lib/codemirror/theme/monokai.css
diff --git a/client/css/lib/codemirror/theme/neat.css b/src/vitis/client/css/lib/codemirror/theme/neat.css
similarity index 100%
rename from client/css/lib/codemirror/theme/neat.css
rename to src/vitis/client/css/lib/codemirror/theme/neat.css
diff --git a/client/css/lib/codemirror/theme/neo.css b/src/vitis/client/css/lib/codemirror/theme/neo.css
similarity index 100%
rename from client/css/lib/codemirror/theme/neo.css
rename to src/vitis/client/css/lib/codemirror/theme/neo.css
diff --git a/client/css/lib/codemirror/theme/night.css b/src/vitis/client/css/lib/codemirror/theme/night.css
similarity index 100%
rename from client/css/lib/codemirror/theme/night.css
rename to src/vitis/client/css/lib/codemirror/theme/night.css
diff --git a/client/css/lib/codemirror/theme/paraiso-dark.css b/src/vitis/client/css/lib/codemirror/theme/paraiso-dark.css
similarity index 100%
rename from client/css/lib/codemirror/theme/paraiso-dark.css
rename to src/vitis/client/css/lib/codemirror/theme/paraiso-dark.css
diff --git a/client/css/lib/codemirror/theme/paraiso-light.css b/src/vitis/client/css/lib/codemirror/theme/paraiso-light.css
similarity index 100%
rename from client/css/lib/codemirror/theme/paraiso-light.css
rename to src/vitis/client/css/lib/codemirror/theme/paraiso-light.css
diff --git a/client/css/lib/codemirror/theme/pastel-on-dark.css b/src/vitis/client/css/lib/codemirror/theme/pastel-on-dark.css
similarity index 100%
rename from client/css/lib/codemirror/theme/pastel-on-dark.css
rename to src/vitis/client/css/lib/codemirror/theme/pastel-on-dark.css
diff --git a/client/css/lib/codemirror/theme/railscasts.css b/src/vitis/client/css/lib/codemirror/theme/railscasts.css
similarity index 100%
rename from client/css/lib/codemirror/theme/railscasts.css
rename to src/vitis/client/css/lib/codemirror/theme/railscasts.css
diff --git a/client/css/lib/codemirror/theme/rubyblue.css b/src/vitis/client/css/lib/codemirror/theme/rubyblue.css
similarity index 100%
rename from client/css/lib/codemirror/theme/rubyblue.css
rename to src/vitis/client/css/lib/codemirror/theme/rubyblue.css
diff --git a/client/css/lib/codemirror/theme/seti.css b/src/vitis/client/css/lib/codemirror/theme/seti.css
similarity index 100%
rename from client/css/lib/codemirror/theme/seti.css
rename to src/vitis/client/css/lib/codemirror/theme/seti.css
diff --git a/client/css/lib/codemirror/theme/solarized.css b/src/vitis/client/css/lib/codemirror/theme/solarized.css
similarity index 100%
rename from client/css/lib/codemirror/theme/solarized.css
rename to src/vitis/client/css/lib/codemirror/theme/solarized.css
diff --git a/client/css/lib/codemirror/theme/the-matrix.css b/src/vitis/client/css/lib/codemirror/theme/the-matrix.css
similarity index 100%
rename from client/css/lib/codemirror/theme/the-matrix.css
rename to src/vitis/client/css/lib/codemirror/theme/the-matrix.css
diff --git a/client/css/lib/codemirror/theme/tomorrow-night-bright.css b/src/vitis/client/css/lib/codemirror/theme/tomorrow-night-bright.css
similarity index 100%
rename from client/css/lib/codemirror/theme/tomorrow-night-bright.css
rename to src/vitis/client/css/lib/codemirror/theme/tomorrow-night-bright.css
diff --git a/client/css/lib/codemirror/theme/tomorrow-night-eighties.css b/src/vitis/client/css/lib/codemirror/theme/tomorrow-night-eighties.css
similarity index 100%
rename from client/css/lib/codemirror/theme/tomorrow-night-eighties.css
rename to src/vitis/client/css/lib/codemirror/theme/tomorrow-night-eighties.css
diff --git a/client/css/lib/codemirror/theme/ttcn.css b/src/vitis/client/css/lib/codemirror/theme/ttcn.css
similarity index 100%
rename from client/css/lib/codemirror/theme/ttcn.css
rename to src/vitis/client/css/lib/codemirror/theme/ttcn.css
diff --git a/client/css/lib/codemirror/theme/twilight.css b/src/vitis/client/css/lib/codemirror/theme/twilight.css
similarity index 100%
rename from client/css/lib/codemirror/theme/twilight.css
rename to src/vitis/client/css/lib/codemirror/theme/twilight.css
diff --git a/client/css/lib/codemirror/theme/vibrant-ink.css b/src/vitis/client/css/lib/codemirror/theme/vibrant-ink.css
similarity index 100%
rename from client/css/lib/codemirror/theme/vibrant-ink.css
rename to src/vitis/client/css/lib/codemirror/theme/vibrant-ink.css
diff --git a/client/css/lib/codemirror/theme/xq-dark.css b/src/vitis/client/css/lib/codemirror/theme/xq-dark.css
similarity index 100%
rename from client/css/lib/codemirror/theme/xq-dark.css
rename to src/vitis/client/css/lib/codemirror/theme/xq-dark.css
diff --git a/client/css/lib/codemirror/theme/xq-light.css b/src/vitis/client/css/lib/codemirror/theme/xq-light.css
similarity index 100%
rename from client/css/lib/codemirror/theme/xq-light.css
rename to src/vitis/client/css/lib/codemirror/theme/xq-light.css
diff --git a/client/css/lib/codemirror/theme/yeti.css b/src/vitis/client/css/lib/codemirror/theme/yeti.css
similarity index 100%
rename from client/css/lib/codemirror/theme/yeti.css
rename to src/vitis/client/css/lib/codemirror/theme/yeti.css
diff --git a/client/css/lib/codemirror/theme/zenburn.css b/src/vitis/client/css/lib/codemirror/theme/zenburn.css
similarity index 100%
rename from client/css/lib/codemirror/theme/zenburn.css
rename to src/vitis/client/css/lib/codemirror/theme/zenburn.css
diff --git a/client/css/lib/font-awesome/HELP-US-OUT.txt b/src/vitis/client/css/lib/font-awesome/HELP-US-OUT.txt
similarity index 100%
rename from client/css/lib/font-awesome/HELP-US-OUT.txt
rename to src/vitis/client/css/lib/font-awesome/HELP-US-OUT.txt
diff --git a/client/css/lib/font-awesome/css/font-awesome.css b/src/vitis/client/css/lib/font-awesome/css/font-awesome.css
similarity index 100%
rename from client/css/lib/font-awesome/css/font-awesome.css
rename to src/vitis/client/css/lib/font-awesome/css/font-awesome.css
diff --git a/client/css/lib/font-awesome/css/font-awesome.min.css b/src/vitis/client/css/lib/font-awesome/css/font-awesome.min.css
similarity index 100%
rename from client/css/lib/font-awesome/css/font-awesome.min.css
rename to src/vitis/client/css/lib/font-awesome/css/font-awesome.min.css
diff --git a/client/css/lib/font-awesome/fonts/FontAwesome.otf b/src/vitis/client/css/lib/font-awesome/fonts/FontAwesome.otf
similarity index 100%
rename from client/css/lib/font-awesome/fonts/FontAwesome.otf
rename to src/vitis/client/css/lib/font-awesome/fonts/FontAwesome.otf
diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.eot b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.eot
similarity index 100%
rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.eot
rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.eot
diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.svg b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.svg
similarity index 100%
rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.svg
rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.svg
diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf
similarity index 100%
rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf
rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf
diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff
similarity index 100%
rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.woff
rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff
diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2 b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2
similarity index 100%
rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2
rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2
diff --git a/client/css/lib/font-awesome/less/animated.less b/src/vitis/client/css/lib/font-awesome/less/animated.less
similarity index 100%
rename from client/css/lib/font-awesome/less/animated.less
rename to src/vitis/client/css/lib/font-awesome/less/animated.less
diff --git a/client/css/lib/font-awesome/less/bordered-pulled.less b/src/vitis/client/css/lib/font-awesome/less/bordered-pulled.less
similarity index 100%
rename from client/css/lib/font-awesome/less/bordered-pulled.less
rename to src/vitis/client/css/lib/font-awesome/less/bordered-pulled.less
diff --git a/client/css/lib/font-awesome/less/core.less b/src/vitis/client/css/lib/font-awesome/less/core.less
similarity index 100%
rename from client/css/lib/font-awesome/less/core.less
rename to src/vitis/client/css/lib/font-awesome/less/core.less
diff --git a/client/css/lib/font-awesome/less/fixed-width.less b/src/vitis/client/css/lib/font-awesome/less/fixed-width.less
similarity index 100%
rename from client/css/lib/font-awesome/less/fixed-width.less
rename to src/vitis/client/css/lib/font-awesome/less/fixed-width.less
diff --git a/client/css/lib/font-awesome/less/font-awesome.less b/src/vitis/client/css/lib/font-awesome/less/font-awesome.less
similarity index 100%
rename from client/css/lib/font-awesome/less/font-awesome.less
rename to src/vitis/client/css/lib/font-awesome/less/font-awesome.less
diff --git a/client/css/lib/font-awesome/less/icons.less b/src/vitis/client/css/lib/font-awesome/less/icons.less
similarity index 100%
rename from client/css/lib/font-awesome/less/icons.less
rename to src/vitis/client/css/lib/font-awesome/less/icons.less
diff --git a/client/css/lib/font-awesome/less/larger.less b/src/vitis/client/css/lib/font-awesome/less/larger.less
similarity index 100%
rename from client/css/lib/font-awesome/less/larger.less
rename to src/vitis/client/css/lib/font-awesome/less/larger.less
diff --git a/client/css/lib/font-awesome/less/list.less b/src/vitis/client/css/lib/font-awesome/less/list.less
similarity index 100%
rename from client/css/lib/font-awesome/less/list.less
rename to src/vitis/client/css/lib/font-awesome/less/list.less
diff --git a/client/css/lib/font-awesome/less/mixins.less b/src/vitis/client/css/lib/font-awesome/less/mixins.less
similarity index 100%
rename from client/css/lib/font-awesome/less/mixins.less
rename to src/vitis/client/css/lib/font-awesome/less/mixins.less
diff --git a/client/css/lib/font-awesome/less/path.less b/src/vitis/client/css/lib/font-awesome/less/path.less
similarity index 100%
rename from client/css/lib/font-awesome/less/path.less
rename to src/vitis/client/css/lib/font-awesome/less/path.less
diff --git a/client/css/lib/font-awesome/less/rotated-flipped.less b/src/vitis/client/css/lib/font-awesome/less/rotated-flipped.less
similarity index 100%
rename from client/css/lib/font-awesome/less/rotated-flipped.less
rename to src/vitis/client/css/lib/font-awesome/less/rotated-flipped.less
diff --git a/client/css/lib/font-awesome/less/stacked.less b/src/vitis/client/css/lib/font-awesome/less/stacked.less
similarity index 100%
rename from client/css/lib/font-awesome/less/stacked.less
rename to src/vitis/client/css/lib/font-awesome/less/stacked.less
diff --git a/client/css/lib/font-awesome/less/variables.less b/src/vitis/client/css/lib/font-awesome/less/variables.less
similarity index 100%
rename from client/css/lib/font-awesome/less/variables.less
rename to src/vitis/client/css/lib/font-awesome/less/variables.less
diff --git a/client/css/lib/font-awesome/scss/_animated.scss b/src/vitis/client/css/lib/font-awesome/scss/_animated.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_animated.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_animated.scss
diff --git a/client/css/lib/font-awesome/scss/_bordered-pulled.scss b/src/vitis/client/css/lib/font-awesome/scss/_bordered-pulled.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_bordered-pulled.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_bordered-pulled.scss
diff --git a/client/css/lib/font-awesome/scss/_core.scss b/src/vitis/client/css/lib/font-awesome/scss/_core.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_core.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_core.scss
diff --git a/client/css/lib/font-awesome/scss/_fixed-width.scss b/src/vitis/client/css/lib/font-awesome/scss/_fixed-width.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_fixed-width.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_fixed-width.scss
diff --git a/client/css/lib/font-awesome/scss/_icons.scss b/src/vitis/client/css/lib/font-awesome/scss/_icons.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_icons.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_icons.scss
diff --git a/client/css/lib/font-awesome/scss/_larger.scss b/src/vitis/client/css/lib/font-awesome/scss/_larger.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_larger.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_larger.scss
diff --git a/client/css/lib/font-awesome/scss/_list.scss b/src/vitis/client/css/lib/font-awesome/scss/_list.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_list.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_list.scss
diff --git a/client/css/lib/font-awesome/scss/_mixins.scss b/src/vitis/client/css/lib/font-awesome/scss/_mixins.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_mixins.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_mixins.scss
diff --git a/client/css/lib/font-awesome/scss/_path.scss b/src/vitis/client/css/lib/font-awesome/scss/_path.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_path.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_path.scss
diff --git a/client/css/lib/font-awesome/scss/_rotated-flipped.scss b/src/vitis/client/css/lib/font-awesome/scss/_rotated-flipped.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_rotated-flipped.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_rotated-flipped.scss
diff --git a/client/css/lib/font-awesome/scss/_stacked.scss b/src/vitis/client/css/lib/font-awesome/scss/_stacked.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_stacked.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_stacked.scss
diff --git a/client/css/lib/font-awesome/scss/_variables.scss b/src/vitis/client/css/lib/font-awesome/scss/_variables.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_variables.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_variables.scss
diff --git a/client/css/lib/font-awesome/scss/font-awesome.scss b/src/vitis/client/css/lib/font-awesome/scss/font-awesome.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/font-awesome.scss
rename to src/vitis/client/css/lib/font-awesome/scss/font-awesome.scss
diff --git a/client/css/lib/fonts/FontAwesome.otf b/src/vitis/client/css/lib/fonts/FontAwesome.otf
similarity index 100%
rename from client/css/lib/fonts/FontAwesome.otf
rename to src/vitis/client/css/lib/fonts/FontAwesome.otf
diff --git a/client/css/lib/fonts/fontawesome-webfont.eot b/src/vitis/client/css/lib/fonts/fontawesome-webfont.eot
similarity index 100%
rename from client/css/lib/fonts/fontawesome-webfont.eot
rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.eot
diff --git a/client/css/lib/fonts/fontawesome-webfont.svg b/src/vitis/client/css/lib/fonts/fontawesome-webfont.svg
similarity index 100%
rename from client/css/lib/fonts/fontawesome-webfont.svg
rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.svg
diff --git a/client/css/lib/fonts/fontawesome-webfont.ttf b/src/vitis/client/css/lib/fonts/fontawesome-webfont.ttf
similarity index 100%
rename from client/css/lib/fonts/fontawesome-webfont.ttf
rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.ttf
diff --git a/client/css/lib/fonts/fontawesome-webfont.woff b/src/vitis/client/css/lib/fonts/fontawesome-webfont.woff
similarity index 100%
rename from client/css/lib/fonts/fontawesome-webfont.woff
rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.woff
diff --git a/client/css/lib/fonts/fontawesome-webfont.woff2 b/src/vitis/client/css/lib/fonts/fontawesome-webfont.woff2
similarity index 100%
rename from client/css/lib/fonts/fontawesome-webfont.woff2
rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.woff2
diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.eot b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.eot
similarity index 100%
rename from client/css/lib/fonts/glyphicons-halflings-regular.eot
rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.eot
diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.svg b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.svg
similarity index 100%
rename from client/css/lib/fonts/glyphicons-halflings-regular.svg
rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.svg
diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.ttf b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.ttf
similarity index 100%
rename from client/css/lib/fonts/glyphicons-halflings-regular.ttf
rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.ttf
diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.woff b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff
similarity index 100%
rename from client/css/lib/fonts/glyphicons-halflings-regular.woff
rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff
diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.woff2 b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff2
similarity index 100%
rename from client/css/lib/fonts/glyphicons-halflings-regular.woff2
rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff2
diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png
diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png
diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png
diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png
diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png
diff --git a/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif b/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif
diff --git a/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif b/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif
diff --git a/client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css
diff --git a/client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css b/src/vitis/client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css
similarity index 100%
rename from client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css
rename to src/vitis/client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css
diff --git a/client/css/lib/materialize/materialize.css b/src/vitis/client/css/lib/materialize/materialize.css
similarity index 100%
rename from client/css/lib/materialize/materialize.css
rename to src/vitis/client/css/lib/materialize/materialize.css
diff --git a/client/css/lib/materialize/materialize.min.css b/src/vitis/client/css/lib/materialize/materialize.min.css
similarity index 100%
rename from client/css/lib/materialize/materialize.min.css
rename to src/vitis/client/css/lib/materialize/materialize.min.css
diff --git a/client/css/lib/openlayers/ol.css b/src/vitis/client/css/lib/openlayers/ol.css
similarity index 100%
rename from client/css/lib/openlayers/ol.css
rename to src/vitis/client/css/lib/openlayers/ol.css
diff --git a/client/css/lib/ui-grid/plugins/draggable-rows.less b/src/vitis/client/css/lib/ui-grid/plugins/draggable-rows.less
similarity index 100%
rename from client/css/lib/ui-grid/plugins/draggable-rows.less
rename to src/vitis/client/css/lib/ui-grid/plugins/draggable-rows.less
diff --git a/client/css/lib/ui-grid/ui-grid.css b/src/vitis/client/css/lib/ui-grid/ui-grid.css
similarity index 100%
rename from client/css/lib/ui-grid/ui-grid.css
rename to src/vitis/client/css/lib/ui-grid/ui-grid.css
diff --git a/client/css/lib/ui-grid/ui-grid.eot b/src/vitis/client/css/lib/ui-grid/ui-grid.eot
similarity index 100%
rename from client/css/lib/ui-grid/ui-grid.eot
rename to src/vitis/client/css/lib/ui-grid/ui-grid.eot
diff --git a/client/css/lib/ui-grid/ui-grid.min.css b/src/vitis/client/css/lib/ui-grid/ui-grid.min.css
similarity index 100%
rename from client/css/lib/ui-grid/ui-grid.min.css
rename to src/vitis/client/css/lib/ui-grid/ui-grid.min.css
diff --git a/client/css/lib/ui-grid/ui-grid.svg b/src/vitis/client/css/lib/ui-grid/ui-grid.svg
similarity index 100%
rename from client/css/lib/ui-grid/ui-grid.svg
rename to src/vitis/client/css/lib/ui-grid/ui-grid.svg
diff --git a/client/css/lib/ui-grid/ui-grid.ttf b/src/vitis/client/css/lib/ui-grid/ui-grid.ttf
similarity index 100%
rename from client/css/lib/ui-grid/ui-grid.ttf
rename to src/vitis/client/css/lib/ui-grid/ui-grid.ttf
diff --git a/client/css/lib/ui-grid/ui-grid.woff b/src/vitis/client/css/lib/ui-grid/ui-grid.woff
similarity index 100%
rename from client/css/lib/ui-grid/ui-grid.woff
rename to src/vitis/client/css/lib/ui-grid/ui-grid.woff
diff --git a/client/css/lib/viewer/viewer.min.css b/src/vitis/client/css/lib/viewer/viewer.min.css
similarity index 100%
rename from client/css/lib/viewer/viewer.min.css
rename to src/vitis/client/css/lib/viewer/viewer.min.css
diff --git a/client/forms/forgotten_password.json b/src/vitis/client/forms/forgotten_password.json
similarity index 100%
rename from client/forms/forgotten_password.json
rename to src/vitis/client/forms/forgotten_password.json
diff --git a/client/forms/login.js b/src/vitis/client/forms/login.js
similarity index 100%
rename from client/forms/login.js
rename to src/vitis/client/forms/login.js
diff --git a/client/forms/login.json b/src/vitis/client/forms/login.json
similarity index 100%
rename from client/forms/login.json
rename to src/vitis/client/forms/login.json
diff --git a/client/forms/sign_up.json b/src/vitis/client/forms/sign_up.json
similarity index 100%
rename from client/forms/sign_up.json
rename to src/vitis/client/forms/sign_up.json
diff --git a/client/images/ajax-big-loader.GIF b/src/vitis/client/images/ajax-big-loader.GIF
similarity index 100%
rename from client/images/ajax-big-loader.GIF
rename to src/vitis/client/images/ajax-big-loader.GIF
diff --git a/client/images/ajax-load-big.gif b/src/vitis/client/images/ajax-load-big.gif
similarity index 100%
rename from client/images/ajax-load-big.gif
rename to src/vitis/client/images/ajax-load-big.gif
diff --git a/client/images/ajax-load.gif b/src/vitis/client/images/ajax-load.gif
similarity index 100%
rename from client/images/ajax-load.gif
rename to src/vitis/client/images/ajax-load.gif
diff --git a/client/images/bandeau.png b/src/vitis/client/images/bandeau.png
similarity index 100%
rename from client/images/bandeau.png
rename to src/vitis/client/images/bandeau.png
diff --git a/client/images/custom.png b/src/vitis/client/images/custom.png
similarity index 100%
rename from client/images/custom.png
rename to src/vitis/client/images/custom.png
diff --git a/client/images/disconnect_button.png b/src/vitis/client/images/disconnect_button.png
similarity index 100%
rename from client/images/disconnect_button.png
rename to src/vitis/client/images/disconnect_button.png
diff --git a/client/images/download.png b/src/vitis/client/images/download.png
similarity index 100%
rename from client/images/download.png
rename to src/vitis/client/images/download.png
diff --git a/client/images/editer.png b/src/vitis/client/images/editer.png
similarity index 100%
rename from client/images/editer.png
rename to src/vitis/client/images/editer.png
diff --git a/client/images/enveloppe.png b/src/vitis/client/images/enveloppe.png
similarity index 100%
rename from client/images/enveloppe.png
rename to src/vitis/client/images/enveloppe.png
diff --git a/client/images/false.png b/src/vitis/client/images/false.png
similarity index 100%
rename from client/images/false.png
rename to src/vitis/client/images/false.png
diff --git a/client/images/favicon.ico b/src/vitis/client/images/favicon.ico
similarity index 100%
rename from client/images/favicon.ico
rename to src/vitis/client/images/favicon.ico
diff --git a/client/images/i.png b/src/vitis/client/images/i.png
similarity index 100%
rename from client/images/i.png
rename to src/vitis/client/images/i.png
diff --git a/client/images/icons/geolocation_marker.png b/src/vitis/client/images/icons/geolocation_marker.png
similarity index 100%
rename from client/images/icons/geolocation_marker.png
rename to src/vitis/client/images/icons/geolocation_marker.png
diff --git a/client/images/icons/geolocation_marker_heading.png b/src/vitis/client/images/icons/geolocation_marker_heading.png
similarity index 100%
rename from client/images/icons/geolocation_marker_heading.png
rename to src/vitis/client/images/icons/geolocation_marker_heading.png
diff --git a/client/images/icons/icon-arrow-FME.png b/src/vitis/client/images/icons/icon-arrow-FME.png
similarity index 100%
rename from client/images/icons/icon-arrow-FME.png
rename to src/vitis/client/images/icons/icon-arrow-FME.png
diff --git a/client/images/icons/icon-arrow-FME2.png b/src/vitis/client/images/icons/icon-arrow-FME2.png
similarity index 100%
rename from client/images/icons/icon-arrow-FME2.png
rename to src/vitis/client/images/icons/icon-arrow-FME2.png
diff --git a/client/images/icons/icon-filtrage.png b/src/vitis/client/images/icons/icon-filtrage.png
similarity index 100%
rename from client/images/icons/icon-filtrage.png
rename to src/vitis/client/images/icons/icon-filtrage.png
diff --git a/client/images/icons/icons-down-search-arrow.png b/src/vitis/client/images/icons/icons-down-search-arrow.png
similarity index 100%
rename from client/images/icons/icons-down-search-arrow.png
rename to src/vitis/client/images/icons/icons-down-search-arrow.png
diff --git a/client/images/icons/icons-right-search-arrow.png b/src/vitis/client/images/icons/icons-right-search-arrow.png
similarity index 100%
rename from client/images/icons/icons-right-search-arrow.png
rename to src/vitis/client/images/icons/icons-right-search-arrow.png
diff --git a/client/images/logo-veremes.jpg b/src/vitis/client/images/logo-veremes.jpg
similarity index 100%
rename from client/images/logo-veremes.jpg
rename to src/vitis/client/images/logo-veremes.jpg
diff --git a/client/images/logo-veremes.png b/src/vitis/client/images/logo-veremes.png
similarity index 100%
rename from client/images/logo-veremes.png
rename to src/vitis/client/images/logo-veremes.png
diff --git a/client/images/mode/configuration.png b/src/vitis/client/images/mode/configuration.png
similarity index 100%
rename from client/images/mode/configuration.png
rename to src/vitis/client/images/mode/configuration.png
diff --git a/client/images/mode/development.png b/src/vitis/client/images/mode/development.png
similarity index 100%
rename from client/images/mode/development.png
rename to src/vitis/client/images/mode/development.png
diff --git a/client/images/mode/engine.png b/src/vitis/client/images/mode/engine.png
similarity index 100%
rename from client/images/mode/engine.png
rename to src/vitis/client/images/mode/engine.png
diff --git a/client/images/mode/help.png b/src/vitis/client/images/mode/help.png
similarity index 100%
rename from client/images/mode/help.png
rename to src/vitis/client/images/mode/help.png
diff --git a/client/images/mode/logs.png b/src/vitis/client/images/mode/logs.png
similarity index 100%
rename from client/images/mode/logs.png
rename to src/vitis/client/images/mode/logs.png
diff --git a/client/images/mode/my_work.png b/src/vitis/client/images/mode/my_work.png
similarity index 100%
rename from client/images/mode/my_work.png
rename to src/vitis/client/images/mode/my_work.png
diff --git a/client/images/mode/publication.png b/src/vitis/client/images/mode/publication.png
similarity index 100%
rename from client/images/mode/publication.png
rename to src/vitis/client/images/mode/publication.png
diff --git a/client/images/mode/statistics.png b/src/vitis/client/images/mode/statistics.png
similarity index 100%
rename from client/images/mode/statistics.png
rename to src/vitis/client/images/mode/statistics.png
diff --git a/client/images/mode/supervision.png b/src/vitis/client/images/mode/supervision.png
similarity index 100%
rename from client/images/mode/supervision.png
rename to src/vitis/client/images/mode/supervision.png
diff --git a/client/images/mode/user.png b/src/vitis/client/images/mode/user.png
similarity index 100%
rename from client/images/mode/user.png
rename to src/vitis/client/images/mode/user.png
diff --git a/client/images/mode/users.png b/src/vitis/client/images/mode/users.png
similarity index 100%
rename from client/images/mode/users.png
rename to src/vitis/client/images/mode/users.png
diff --git a/client/images/mode/vmap.png b/src/vitis/client/images/mode/vmap.png
similarity index 100%
rename from client/images/mode/vmap.png
rename to src/vitis/client/images/mode/vmap.png
diff --git a/client/images/page.png b/src/vitis/client/images/page.png
similarity index 100%
rename from client/images/page.png
rename to src/vitis/client/images/page.png
diff --git a/client/images/sql_list/st1.gif b/src/vitis/client/images/sql_list/st1.gif
similarity index 100%
rename from client/images/sql_list/st1.gif
rename to src/vitis/client/images/sql_list/st1.gif
diff --git a/client/images/sql_list/st1.png b/src/vitis/client/images/sql_list/st1.png
similarity index 100%
rename from client/images/sql_list/st1.png
rename to src/vitis/client/images/sql_list/st1.png
diff --git a/client/images/sql_list/st2.png b/src/vitis/client/images/sql_list/st2.png
similarity index 100%
rename from client/images/sql_list/st2.png
rename to src/vitis/client/images/sql_list/st2.png
diff --git a/client/images/sql_list/st3.png b/src/vitis/client/images/sql_list/st3.png
similarity index 100%
rename from client/images/sql_list/st3.png
rename to src/vitis/client/images/sql_list/st3.png
diff --git a/client/images/sql_list/st4.png b/src/vitis/client/images/sql_list/st4.png
similarity index 100%
rename from client/images/sql_list/st4.png
rename to src/vitis/client/images/sql_list/st4.png
diff --git a/client/images/sql_list/st5.gif b/src/vitis/client/images/sql_list/st5.gif
similarity index 100%
rename from client/images/sql_list/st5.gif
rename to src/vitis/client/images/sql_list/st5.gif
diff --git a/client/images/sql_list/st6.png b/src/vitis/client/images/sql_list/st6.png
similarity index 100%
rename from client/images/sql_list/st6.png
rename to src/vitis/client/images/sql_list/st6.png
diff --git a/client/images/true.png b/src/vitis/client/images/true.png
similarity index 100%
rename from client/images/true.png
rename to src/vitis/client/images/true.png
diff --git a/client/images/ui-grid/wbg.gif b/src/vitis/client/images/ui-grid/wbg.gif
similarity index 100%
rename from client/images/ui-grid/wbg.gif
rename to src/vitis/client/images/ui-grid/wbg.gif
diff --git a/client/images/visualiser.png b/src/vitis/client/images/visualiser.png
similarity index 100%
rename from client/images/visualiser.png
rename to src/vitis/client/images/visualiser.png
diff --git a/client/images/wk_params.png b/src/vitis/client/images/wk_params.png
similarity index 100%
rename from client/images/wk_params.png
rename to src/vitis/client/images/wk_params.png
diff --git a/client/index.html b/src/vitis/client/index.html
similarity index 100%
rename from client/index.html
rename to src/vitis/client/index.html
diff --git a/client/javascript/app/app.js b/src/vitis/client/javascript/app/app.js
similarity index 100%
rename from client/javascript/app/app.js
rename to src/vitis/client/javascript/app/app.js
diff --git a/client/javascript/app/config.js b/src/vitis/client/javascript/app/config.js
similarity index 100%
rename from client/javascript/app/config.js
rename to src/vitis/client/javascript/app/config.js
diff --git a/client/javascript/app/controllers/doubleFormCtrl.js b/src/vitis/client/javascript/app/controllers/doubleFormCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/doubleFormCtrl.js
rename to src/vitis/client/javascript/app/controllers/doubleFormCtrl.js
diff --git a/client/javascript/app/controllers/htmlFormCtrl.js b/src/vitis/client/javascript/app/controllers/htmlFormCtrl.js
old mode 100755
new mode 100644
similarity index 100%
rename from client/javascript/app/controllers/htmlFormCtrl.js
rename to src/vitis/client/javascript/app/controllers/htmlFormCtrl.js
diff --git a/client/javascript/app/controllers/initCtrl.js b/src/vitis/client/javascript/app/controllers/initCtrl.js
old mode 100755
new mode 100644
similarity index 85%
rename from client/javascript/app/controllers/initCtrl.js
rename to src/vitis/client/javascript/app/controllers/initCtrl.js
index 48855c56c2092018d46d95c1faa98e94bc383767..70431eefb04a8ac083d1575ba2a078ca0641527f
--- a/client/javascript/app/controllers/initCtrl.js
+++ b/src/vitis/client/javascript/app/controllers/initCtrl.js
@@ -20,6 +20,7 @@ goog.require("vitis.modules.main");
 vitisApp.initCtrl = function ($scope, $log, $q, envSrvc, sessionSrvc, propertiesSrvc, userSrvc, $translate) {
     // Informe l'application que le contrôleur a été chargée.
     vitisApp.broadcast('appInitCtrlLoaded');
+
     /**
      * getMainTemplateUrl function.
      * Change le template de l'élément principal de l'application.
@@ -98,6 +99,43 @@ vitisApp.initCtrl = function ($scope, $log, $q, envSrvc, sessionSrvc, properties
         });
     };
 
+
+    /**
+     * connectFromUrl function.
+     * Connexion à l'application avec les identifiants passés dans l'url.
+     * @param {string} oConnexionId Identifiants de connexion
+     **/
+    $scope.$root["connectWithTokenUrl"] = function () {
+        $log.info("connectFromUrl");
+        // Demande de token pour l'utilisateur.
+        ajaxRequest({
+            "method": "POST",
+            "url": oClientProperties["web_server_name"] + "/" + oClientProperties["services_alias"] + "/" + sessionSrvc["web_service"] + "/" + sessionSrvc["web_service_controller"],
+            "scope": $scope,
+            "success": function (response) {
+                if (response["data"]["status"] == 1) {
+                    // Cache le message d'erreur.
+                    //$scope["hideErrorAlert"]();
+                    // Sauve les données du token.
+                    //sessionSrvc["token"] = oUrlParams['token'];
+                    sessionSrvc["validity_date"] = response["data"]["validity_date"];
+                    sessionStorage["session_token"] = sessionSrvc["token"];
+                    // Sauve les données de l'utilisateur.
+                    userSrvc["login"] = response["data"]["user"];
+                    userSrvc["id"] = parseInt(response["data"]["user_id"]);
+                    userSrvc["privileges"] = response["data"]["privileges"];
+                    sessionStorage["user_login"] = response["data"]["user"];
+                    sessionStorage["user_id"] = userSrvc["id"];
+                    sessionStorage["privileges"] = userSrvc["privileges"];
+                    sessionSrvc["saveSessionToLocalStorage"]();
+                    //
+                    deferred.resolve();
+                } else
+                    sessionSrvc["disconnect"]();
+            }
+        });
+    };
+
     // Sauve le nom de l'application (pour les modes de l'utilisateur)
     //sessionStorage["application"] = document.location.pathname.split("/").pop();
 
@@ -114,6 +152,14 @@ vitisApp.initCtrl = function ($scope, $log, $q, envSrvc, sessionSrvc, properties
     var deferred = $q.defer();
     var promise = deferred.promise;
 
+    if (goog.isDefAndNotNull(oUrlParams['token'])){
+        sessionStorage['session_token'] = oUrlParams['token'];
+        sessionSrvc["token"] = oUrlParams['token'];
+        sessionSrvc["saveSessionToLocalStorage"]();
+        $scope.$root["connectWithTokenUrl"]();
+    } else
+        deferred.resolve();
+
     // Connexion avec les identifiants passés dans l'url (si le cookie avec le token n'existe pas).
     var aUrlParamsKeys = Object.keys(oUrlParams);
     if (sessionSrvc["getAppLocalStorageItem"]("session_token") === null && aUrlParamsKeys.indexOf("login") !== -1 && aUrlParamsKeys.indexOf("password") !== -1)
diff --git a/client/javascript/app/controllers/loginCtrl.js b/src/vitis/client/javascript/app/controllers/loginCtrl.js
similarity index 98%
rename from client/javascript/app/controllers/loginCtrl.js
rename to src/vitis/client/javascript/app/controllers/loginCtrl.js
index 4e6e14618cdf92462865f9f573dbee866c13f221..a5456b97fd5b71d25c13cb4c0405b816fa331263 100644
--- a/client/javascript/app/controllers/loginCtrl.js
+++ b/src/vitis/client/javascript/app/controllers/loginCtrl.js
@@ -432,6 +432,7 @@ vitisApp.loginCtrl = function ($scope, $translate, $rootScope, $q, sessionSrvc,
                                 $translate([sConnectionErrorMessage]).then(function (translations) {
                                     sConnectionErrorMessage = translations[sConnectionErrorMessage];
                                     $scope["showErrorAlert"](sConnectionErrorMessage.replace('[IPAddress]', ipAddress));
+                        deferred.reject();
                                     sConnectionErrorMessage = undefined;
                                     deferred.reject();
                                 });
@@ -440,6 +441,12 @@ vitisApp.loginCtrl = function ($scope, $translate, $rootScope, $q, sessionSrvc,
                             case 18:
                                 sConnectionErrorMessage = "FORM_LOGIN_CONNECTION_ERROR_MISSING_PRIVILEGES";
                                 break;
+                            // Base de données injoignable.
+                            case 19:
+                                sConnectionErrorMessage = "FORM_LOGIN_CONNECTION_ERROR_UNREACHABLE_DATABASE";
+                                $scope["showErrorAlert"](sConnectionErrorMessage);
+                                deferred.reject();
+                                break;
                             default:
                                 sConnectionErrorMessage = "FORM_LOGIN_CONNECTION_ERROR";
                         }
diff --git a/client/javascript/app/controllers/mainCtrl.js b/src/vitis/client/javascript/app/controllers/mainCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/mainCtrl.js
rename to src/vitis/client/javascript/app/controllers/mainCtrl.js
diff --git a/client/javascript/app/controllers/sectionFormCtrl.js b/src/vitis/client/javascript/app/controllers/sectionFormCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/sectionFormCtrl.js
rename to src/vitis/client/javascript/app/controllers/sectionFormCtrl.js
diff --git a/client/javascript/app/controllers/simpleFormCtrl.js b/src/vitis/client/javascript/app/controllers/simpleFormCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/simpleFormCtrl.js
rename to src/vitis/client/javascript/app/controllers/simpleFormCtrl.js
diff --git a/client/javascript/app/controllers/workspaceListCtrl.js b/src/vitis/client/javascript/app/controllers/workspaceListCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/workspaceListCtrl.js
rename to src/vitis/client/javascript/app/controllers/workspaceListCtrl.js
diff --git a/client/javascript/app/directives/doubleFormDrtv.js b/src/vitis/client/javascript/app/directives/doubleFormDrtv.js
similarity index 100%
rename from client/javascript/app/directives/doubleFormDrtv.js
rename to src/vitis/client/javascript/app/directives/doubleFormDrtv.js
diff --git a/client/javascript/app/directives/htmlFormDrtv.js b/src/vitis/client/javascript/app/directives/htmlFormDrtv.js
similarity index 100%
rename from client/javascript/app/directives/htmlFormDrtv.js
rename to src/vitis/client/javascript/app/directives/htmlFormDrtv.js
diff --git a/client/javascript/app/directives/initDrtv.js b/src/vitis/client/javascript/app/directives/initDrtv.js
similarity index 100%
rename from client/javascript/app/directives/initDrtv.js
rename to src/vitis/client/javascript/app/directives/initDrtv.js
diff --git a/client/javascript/app/directives/loginDrtv.js b/src/vitis/client/javascript/app/directives/loginDrtv.js
similarity index 100%
rename from client/javascript/app/directives/loginDrtv.js
rename to src/vitis/client/javascript/app/directives/loginDrtv.js
diff --git a/client/javascript/app/directives/mainDrtv.js b/src/vitis/client/javascript/app/directives/mainDrtv.js
similarity index 100%
rename from client/javascript/app/directives/mainDrtv.js
rename to src/vitis/client/javascript/app/directives/mainDrtv.js
diff --git a/client/javascript/app/directives/sectionFormDrtv.js b/src/vitis/client/javascript/app/directives/sectionFormDrtv.js
similarity index 100%
rename from client/javascript/app/directives/sectionFormDrtv.js
rename to src/vitis/client/javascript/app/directives/sectionFormDrtv.js
diff --git a/client/javascript/app/directives/simpleFormDrtv.js b/src/vitis/client/javascript/app/directives/simpleFormDrtv.js
similarity index 100%
rename from client/javascript/app/directives/simpleFormDrtv.js
rename to src/vitis/client/javascript/app/directives/simpleFormDrtv.js
diff --git a/client/javascript/app/directives/workspaceListDrtv.js b/src/vitis/client/javascript/app/directives/workspaceListDrtv.js
similarity index 100%
rename from client/javascript/app/directives/workspaceListDrtv.js
rename to src/vitis/client/javascript/app/directives/workspaceListDrtv.js
diff --git a/client/javascript/app/loadApp.js b/src/vitis/client/javascript/app/loadApp.js
similarity index 100%
rename from client/javascript/app/loadApp.js
rename to src/vitis/client/javascript/app/loadApp.js
diff --git a/client/javascript/app/loadExternalFiles.js b/src/vitis/client/javascript/app/loadExternalFiles.js
similarity index 100%
rename from client/javascript/app/loadExternalFiles.js
rename to src/vitis/client/javascript/app/loadExternalFiles.js
diff --git a/client/javascript/app/modules/mainMod.js b/src/vitis/client/javascript/app/modules/mainMod.js
similarity index 100%
rename from client/javascript/app/modules/mainMod.js
rename to src/vitis/client/javascript/app/modules/mainMod.js
diff --git a/client/javascript/app/script_client.js b/src/vitis/client/javascript/app/script_client.js
similarity index 98%
rename from client/javascript/app/script_client.js
rename to src/vitis/client/javascript/app/script_client.js
index 1f56beac66fa8b60adbae277624b4c216d4d7af5..02bda1b163d823f778c284e186dd91a290c803f2 100644
--- a/client/javascript/app/script_client.js
+++ b/src/vitis/client/javascript/app/script_client.js
@@ -1725,4 +1725,34 @@ vitisApp.on('appInitCtrlLoaded', function () {
         }
     });
     vitisApp.module.directive("appHideColumn", vitisApp.appHideColumn);
+    
+    /**
+     * addAjaxLoaderToElement function.
+     * Ajoute un loader Ajax à côté d'un élément HTML.
+     * @param {string} sElementId Id de l'élément html.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["addAjaxLoaderToElement"] = function (sElementId) {
+        $log.info("addAjaxLoaderToElement");
+        var oElem = document.getElementById(sElementId);
+        if (oElem !== null) {
+            var oAjaxLoaderElem = document.createElement('span');
+            oAjaxLoaderElem.className = "icon-refresh form-glyphicon-refresh-animate";
+            oElem.parentNode.appendChild(oAjaxLoaderElem);
+        }
+    };
+    
+    /**
+     * removeAjaxLoaderFromElement function.
+     * Supprime un loader Ajax placé à côté d'un élément HTML.
+     * @param {string} sElementId Id de l'élément html.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["removeAjaxLoaderFromElement"] = function (sElementId) {
+        $log.info("removeAjaxLoaderFromElement");
+        var oElem = document.getElementById(sElementId);
+        if (oElem !== null) {
+            var oAjaxLoaderElem = oElem.parentNode.querySelector(".form-glyphicon-refresh-animate");
+            if (oAjaxLoaderElem !== null)
+                oElem.parentNode.removeChild(oAjaxLoaderElem);
+        }
+    };
 });
diff --git a/client/javascript/app/services/formSrvc.js b/src/vitis/client/javascript/app/services/formSrvc.js
similarity index 100%
rename from client/javascript/app/services/formSrvc.js
rename to src/vitis/client/javascript/app/services/formSrvc.js
diff --git a/client/javascript/app/services/mainSrvc.js b/src/vitis/client/javascript/app/services/mainSrvc.js
similarity index 100%
rename from client/javascript/app/services/mainSrvc.js
rename to src/vitis/client/javascript/app/services/mainSrvc.js
diff --git a/client/javascript/app/vitiswebsocket.js b/src/vitis/client/javascript/app/vitiswebsocket.js
similarity index 100%
rename from client/javascript/app/vitiswebsocket.js
rename to src/vitis/client/javascript/app/vitiswebsocket.js
diff --git a/client/javascript/externs/LICENSE b/src/vitis/client/javascript/externs/LICENSE
similarity index 100%
rename from client/javascript/externs/LICENSE
rename to src/vitis/client/javascript/externs/LICENSE
diff --git a/client/javascript/externs/alasql/alasql.min.js b/src/vitis/client/javascript/externs/alasql/alasql.min.js
similarity index 100%
rename from client/javascript/externs/alasql/alasql.min.js
rename to src/vitis/client/javascript/externs/alasql/alasql.min.js
diff --git a/client/javascript/externs/alasql/xlsx.core.min.js b/src/vitis/client/javascript/externs/alasql/xlsx.core.min.js
similarity index 100%
rename from client/javascript/externs/alasql/xlsx.core.min.js
rename to src/vitis/client/javascript/externs/alasql/xlsx.core.min.js
diff --git a/client/javascript/externs/angular-bind-notifier/LICENSE b/src/vitis/client/javascript/externs/angular-bind-notifier/LICENSE
similarity index 100%
rename from client/javascript/externs/angular-bind-notifier/LICENSE
rename to src/vitis/client/javascript/externs/angular-bind-notifier/LICENSE
diff --git a/client/javascript/externs/angular-bind-notifier/bindNotifier.js b/src/vitis/client/javascript/externs/angular-bind-notifier/bindNotifier.js
similarity index 100%
rename from client/javascript/externs/angular-bind-notifier/bindNotifier.js
rename to src/vitis/client/javascript/externs/angular-bind-notifier/bindNotifier.js
diff --git a/client/javascript/externs/angular-ui-codemirror/LICENSE b/src/vitis/client/javascript/externs/angular-ui-codemirror/LICENSE
similarity index 100%
rename from client/javascript/externs/angular-ui-codemirror/LICENSE
rename to src/vitis/client/javascript/externs/angular-ui-codemirror/LICENSE
diff --git a/client/javascript/externs/angular-ui-codemirror/ui-codemirror.js b/src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.js
similarity index 100%
rename from client/javascript/externs/angular-ui-codemirror/ui-codemirror.js
rename to src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.js
diff --git a/client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js b/src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js
similarity index 100%
rename from client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js
rename to src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js
diff --git a/client/javascript/externs/angular/LICENSE b/src/vitis/client/javascript/externs/angular/LICENSE
similarity index 100%
rename from client/javascript/externs/angular/LICENSE
rename to src/vitis/client/javascript/externs/angular/LICENSE
diff --git a/client/javascript/externs/angular/angular.js b/src/vitis/client/javascript/externs/angular/angular.js
similarity index 100%
rename from client/javascript/externs/angular/angular.js
rename to src/vitis/client/javascript/externs/angular/angular.js
diff --git a/client/javascript/externs/angular/angular.min.js b/src/vitis/client/javascript/externs/angular/angular.min.js
similarity index 100%
rename from client/javascript/externs/angular/angular.min.js
rename to src/vitis/client/javascript/externs/angular/angular.min.js
diff --git a/client/javascript/externs/angular/angular.min.js.map b/src/vitis/client/javascript/externs/angular/angular.min.js.map
similarity index 100%
rename from client/javascript/externs/angular/angular.min.js.map
rename to src/vitis/client/javascript/externs/angular/angular.min.js.map
diff --git a/client/javascript/externs/angular/modules/angular-translate/LICENSE b/src/vitis/client/javascript/externs/angular/modules/angular-translate/LICENSE
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/LICENSE
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/LICENSE
diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js
diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js
diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js
diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js
diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.js
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/angular-translate.js
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.js
diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js
diff --git a/client/javascript/externs/angular/modules/sanitize/angular-sanitize.js b/src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.js
similarity index 100%
rename from client/javascript/externs/angular/modules/sanitize/angular-sanitize.js
rename to src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.js
diff --git a/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js b/src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js
similarity index 100%
rename from client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js
rename to src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js
diff --git a/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map b/src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map
similarity index 100%
rename from client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map
rename to src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map
diff --git a/client/javascript/externs/angular/modules/ui-codemirror/LICENSE b/src/vitis/client/javascript/externs/angular/modules/ui-codemirror/LICENSE
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-codemirror/LICENSE
rename to src/vitis/client/javascript/externs/angular/modules/ui-codemirror/LICENSE
diff --git a/client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js b/src/vitis/client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js
rename to src/vitis/client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js
diff --git a/client/javascript/externs/angular/modules/ui-grid/LICENSE.md b/src/vitis/client/javascript/externs/angular/modules/ui-grid/LICENSE.md
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-grid/LICENSE.md
rename to src/vitis/client/javascript/externs/angular/modules/ui-grid/LICENSE.md
diff --git a/client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js b/src/vitis/client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js
rename to src/vitis/client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js
diff --git a/client/javascript/externs/angular/modules/ui-grid/ui-grid.js b/src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.js
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-grid/ui-grid.js
rename to src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.js
diff --git a/client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js b/src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js
rename to src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js
diff --git a/client/javascript/externs/angular/modules/ui-tinymce/LICENSE b/src/vitis/client/javascript/externs/angular/modules/ui-tinymce/LICENSE
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-tinymce/LICENSE
rename to src/vitis/client/javascript/externs/angular/modules/ui-tinymce/LICENSE
diff --git a/client/javascript/externs/angular/modules/ui-tinymce/tinymce.js b/src/vitis/client/javascript/externs/angular/modules/ui-tinymce/tinymce.js
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-tinymce/tinymce.js
rename to src/vitis/client/javascript/externs/angular/modules/ui-tinymce/tinymce.js
diff --git a/client/javascript/externs/bootbox/LICENSE.md b/src/vitis/client/javascript/externs/bootbox/LICENSE.md
similarity index 100%
rename from client/javascript/externs/bootbox/LICENSE.md
rename to src/vitis/client/javascript/externs/bootbox/LICENSE.md
diff --git a/client/javascript/externs/bootbox/bootbox.min.js b/src/vitis/client/javascript/externs/bootbox/bootbox.min.js
similarity index 100%
rename from client/javascript/externs/bootbox/bootbox.min.js
rename to src/vitis/client/javascript/externs/bootbox/bootbox.min.js
diff --git a/client/javascript/externs/bootstrap/LICENSE b/src/vitis/client/javascript/externs/bootstrap/LICENSE
similarity index 100%
rename from client/javascript/externs/bootstrap/LICENSE
rename to src/vitis/client/javascript/externs/bootstrap/LICENSE
diff --git a/client/javascript/externs/bootstrap/bootstrap.js b/src/vitis/client/javascript/externs/bootstrap/bootstrap.js
similarity index 100%
rename from client/javascript/externs/bootstrap/bootstrap.js
rename to src/vitis/client/javascript/externs/bootstrap/bootstrap.js
diff --git a/client/javascript/externs/bootstrap/bootstrap.min.js b/src/vitis/client/javascript/externs/bootstrap/bootstrap.min.js
similarity index 100%
rename from client/javascript/externs/bootstrap/bootstrap.min.js
rename to src/vitis/client/javascript/externs/bootstrap/bootstrap.min.js
diff --git a/client/javascript/externs/codemirror/LICENSE b/src/vitis/client/javascript/externs/codemirror/LICENSE
similarity index 100%
rename from client/javascript/externs/codemirror/LICENSE
rename to src/vitis/client/javascript/externs/codemirror/LICENSE
diff --git a/client/javascript/externs/codemirror/addon/comment/comment.js b/src/vitis/client/javascript/externs/codemirror/addon/comment/comment.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/comment/comment.js
rename to src/vitis/client/javascript/externs/codemirror/addon/comment/comment.js
diff --git a/client/javascript/externs/codemirror/addon/comment/continuecomment.js b/src/vitis/client/javascript/externs/codemirror/addon/comment/continuecomment.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/comment/continuecomment.js
rename to src/vitis/client/javascript/externs/codemirror/addon/comment/continuecomment.js
diff --git a/client/javascript/externs/codemirror/addon/dialog/dialog.css b/src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/dialog/dialog.css
rename to src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.css
diff --git a/client/javascript/externs/codemirror/addon/dialog/dialog.js b/src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/dialog/dialog.js
rename to src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.js
diff --git a/client/javascript/externs/codemirror/addon/display/autorefresh.js b/src/vitis/client/javascript/externs/codemirror/addon/display/autorefresh.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/display/autorefresh.js
rename to src/vitis/client/javascript/externs/codemirror/addon/display/autorefresh.js
diff --git a/client/javascript/externs/codemirror/addon/display/fullscreen.css b/src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/display/fullscreen.css
rename to src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.css
diff --git a/client/javascript/externs/codemirror/addon/display/fullscreen.js b/src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/display/fullscreen.js
rename to src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.js
diff --git a/client/javascript/externs/codemirror/addon/display/panel.js b/src/vitis/client/javascript/externs/codemirror/addon/display/panel.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/display/panel.js
rename to src/vitis/client/javascript/externs/codemirror/addon/display/panel.js
diff --git a/client/javascript/externs/codemirror/addon/display/placeholder.js b/src/vitis/client/javascript/externs/codemirror/addon/display/placeholder.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/display/placeholder.js
rename to src/vitis/client/javascript/externs/codemirror/addon/display/placeholder.js
diff --git a/client/javascript/externs/codemirror/addon/display/rulers.js b/src/vitis/client/javascript/externs/codemirror/addon/display/rulers.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/display/rulers.js
rename to src/vitis/client/javascript/externs/codemirror/addon/display/rulers.js
diff --git a/client/javascript/externs/codemirror/addon/edit/closebrackets.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/closebrackets.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/edit/closebrackets.js
rename to src/vitis/client/javascript/externs/codemirror/addon/edit/closebrackets.js
diff --git a/client/javascript/externs/codemirror/addon/edit/closetag.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/closetag.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/edit/closetag.js
rename to src/vitis/client/javascript/externs/codemirror/addon/edit/closetag.js
diff --git a/client/javascript/externs/codemirror/addon/edit/continuelist.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/continuelist.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/edit/continuelist.js
rename to src/vitis/client/javascript/externs/codemirror/addon/edit/continuelist.js
diff --git a/client/javascript/externs/codemirror/addon/edit/matchbrackets.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/matchbrackets.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/edit/matchbrackets.js
rename to src/vitis/client/javascript/externs/codemirror/addon/edit/matchbrackets.js
diff --git a/client/javascript/externs/codemirror/addon/edit/matchtags.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/matchtags.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/edit/matchtags.js
rename to src/vitis/client/javascript/externs/codemirror/addon/edit/matchtags.js
diff --git a/client/javascript/externs/codemirror/addon/edit/trailingspace.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/trailingspace.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/edit/trailingspace.js
rename to src/vitis/client/javascript/externs/codemirror/addon/edit/trailingspace.js
diff --git a/client/javascript/externs/codemirror/addon/fold/brace-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/brace-fold.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/brace-fold.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/brace-fold.js
diff --git a/client/javascript/externs/codemirror/addon/fold/comment-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/comment-fold.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/comment-fold.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/comment-fold.js
diff --git a/client/javascript/externs/codemirror/addon/fold/foldcode.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/foldcode.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/foldcode.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/foldcode.js
diff --git a/client/javascript/externs/codemirror/addon/fold/foldgutter.css b/src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/foldgutter.css
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.css
diff --git a/client/javascript/externs/codemirror/addon/fold/foldgutter.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/foldgutter.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.js
diff --git a/client/javascript/externs/codemirror/addon/fold/indent-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/indent-fold.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/indent-fold.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/indent-fold.js
diff --git a/client/javascript/externs/codemirror/addon/fold/markdown-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/markdown-fold.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/markdown-fold.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/markdown-fold.js
diff --git a/client/javascript/externs/codemirror/addon/fold/xml-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/xml-fold.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/xml-fold.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/xml-fold.js
diff --git a/client/javascript/externs/codemirror/addon/hint/anyword-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/anyword-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/anyword-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/anyword-hint.js
diff --git a/client/javascript/externs/codemirror/addon/hint/css-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/css-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/css-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/css-hint.js
diff --git a/client/javascript/externs/codemirror/addon/hint/html-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/html-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/html-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/html-hint.js
diff --git a/client/javascript/externs/codemirror/addon/hint/javascript-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/javascript-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/javascript-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/javascript-hint.js
diff --git a/client/javascript/externs/codemirror/addon/hint/show-hint.css b/src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/show-hint.css
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.css
diff --git a/client/javascript/externs/codemirror/addon/hint/show-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/show-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.js
diff --git a/client/javascript/externs/codemirror/addon/hint/sql-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/sql-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/sql-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/sql-hint.js
diff --git a/client/javascript/externs/codemirror/addon/hint/xml-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/xml-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/xml-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/xml-hint.js
diff --git a/client/javascript/externs/codemirror/addon/keymap/sublime.js b/src/vitis/client/javascript/externs/codemirror/addon/keymap/sublime.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/keymap/sublime.js
rename to src/vitis/client/javascript/externs/codemirror/addon/keymap/sublime.js
diff --git a/client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js
diff --git a/client/javascript/externs/codemirror/addon/lint/css-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/css-lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/css-lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/css-lint.js
diff --git a/client/javascript/externs/codemirror/addon/lint/html-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/html-lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/html-lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/html-lint.js
diff --git a/client/javascript/externs/codemirror/addon/lint/javascript-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/javascript-lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/javascript-lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/javascript-lint.js
diff --git a/client/javascript/externs/codemirror/addon/lint/json-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/json-lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/json-lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/json-lint.js
diff --git a/client/javascript/externs/codemirror/addon/lint/lint.css b/src/vitis/client/javascript/externs/codemirror/addon/lint/lint.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/lint.css
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/lint.css
diff --git a/client/javascript/externs/codemirror/addon/lint/lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/lint.js
diff --git a/client/javascript/externs/codemirror/addon/lint/yaml-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/yaml-lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/yaml-lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/yaml-lint.js
diff --git a/client/javascript/externs/codemirror/addon/merge/merge.css b/src/vitis/client/javascript/externs/codemirror/addon/merge/merge.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/merge/merge.css
rename to src/vitis/client/javascript/externs/codemirror/addon/merge/merge.css
diff --git a/client/javascript/externs/codemirror/addon/merge/merge.js b/src/vitis/client/javascript/externs/codemirror/addon/merge/merge.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/merge/merge.js
rename to src/vitis/client/javascript/externs/codemirror/addon/merge/merge.js
diff --git a/client/javascript/externs/codemirror/addon/mode/loadmode.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/loadmode.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/mode/loadmode.js
rename to src/vitis/client/javascript/externs/codemirror/addon/mode/loadmode.js
diff --git a/client/javascript/externs/codemirror/addon/mode/multiplex.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/mode/multiplex.js
rename to src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex.js
diff --git a/client/javascript/externs/codemirror/addon/mode/multiplex_test.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex_test.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/mode/multiplex_test.js
rename to src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex_test.js
diff --git a/client/javascript/externs/codemirror/addon/mode/overlay.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/overlay.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/mode/overlay.js
rename to src/vitis/client/javascript/externs/codemirror/addon/mode/overlay.js
diff --git a/client/javascript/externs/codemirror/addon/mode/simple.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/simple.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/mode/simple.js
rename to src/vitis/client/javascript/externs/codemirror/addon/mode/simple.js
diff --git a/client/javascript/externs/codemirror/addon/runmode/colorize.js b/src/vitis/client/javascript/externs/codemirror/addon/runmode/colorize.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/runmode/colorize.js
rename to src/vitis/client/javascript/externs/codemirror/addon/runmode/colorize.js
diff --git a/client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js b/src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js
rename to src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js
diff --git a/client/javascript/externs/codemirror/addon/runmode/runmode.js b/src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/runmode/runmode.js
rename to src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.js
diff --git a/client/javascript/externs/codemirror/addon/runmode/runmode.node.js b/src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.node.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/runmode/runmode.node.js
rename to src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.node.js
diff --git a/client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js b/src/vitis/client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js
rename to src/vitis/client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js
diff --git a/client/javascript/externs/codemirror/addon/scroll/scrollpastend.js b/src/vitis/client/javascript/externs/codemirror/addon/scroll/scrollpastend.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/scroll/scrollpastend.js
rename to src/vitis/client/javascript/externs/codemirror/addon/scroll/scrollpastend.js
diff --git a/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css b/src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css
rename to src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css
diff --git a/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js b/src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js
rename to src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js
diff --git a/client/javascript/externs/codemirror/addon/search/jump-to-line.js b/src/vitis/client/javascript/externs/codemirror/addon/search/jump-to-line.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/search/jump-to-line.js
rename to src/vitis/client/javascript/externs/codemirror/addon/search/jump-to-line.js
diff --git a/client/javascript/externs/codemirror/addon/search/match-highlighter.js b/src/vitis/client/javascript/externs/codemirror/addon/search/match-highlighter.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/search/match-highlighter.js
rename to src/vitis/client/javascript/externs/codemirror/addon/search/match-highlighter.js
diff --git a/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css b/src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css
rename to src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css
diff --git a/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js b/src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js
rename to src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js
diff --git a/client/javascript/externs/codemirror/addon/search/search.js b/src/vitis/client/javascript/externs/codemirror/addon/search/search.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/search/search.js
rename to src/vitis/client/javascript/externs/codemirror/addon/search/search.js
diff --git a/client/javascript/externs/codemirror/addon/search/searchcursor.js b/src/vitis/client/javascript/externs/codemirror/addon/search/searchcursor.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/search/searchcursor.js
rename to src/vitis/client/javascript/externs/codemirror/addon/search/searchcursor.js
diff --git a/client/javascript/externs/codemirror/addon/selection/active-line.js b/src/vitis/client/javascript/externs/codemirror/addon/selection/active-line.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/selection/active-line.js
rename to src/vitis/client/javascript/externs/codemirror/addon/selection/active-line.js
diff --git a/client/javascript/externs/codemirror/addon/selection/mark-selection.js b/src/vitis/client/javascript/externs/codemirror/addon/selection/mark-selection.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/selection/mark-selection.js
rename to src/vitis/client/javascript/externs/codemirror/addon/selection/mark-selection.js
diff --git a/client/javascript/externs/codemirror/addon/selection/selection-pointer.js b/src/vitis/client/javascript/externs/codemirror/addon/selection/selection-pointer.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/selection/selection-pointer.js
rename to src/vitis/client/javascript/externs/codemirror/addon/selection/selection-pointer.js
diff --git a/client/javascript/externs/codemirror/addon/tern/tern.css b/src/vitis/client/javascript/externs/codemirror/addon/tern/tern.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/tern/tern.css
rename to src/vitis/client/javascript/externs/codemirror/addon/tern/tern.css
diff --git a/client/javascript/externs/codemirror/addon/tern/tern.js b/src/vitis/client/javascript/externs/codemirror/addon/tern/tern.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/tern/tern.js
rename to src/vitis/client/javascript/externs/codemirror/addon/tern/tern.js
diff --git a/client/javascript/externs/codemirror/addon/tern/worker.js b/src/vitis/client/javascript/externs/codemirror/addon/tern/worker.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/tern/worker.js
rename to src/vitis/client/javascript/externs/codemirror/addon/tern/worker.js
diff --git a/client/javascript/externs/codemirror/addon/wrap/hardwrap.js b/src/vitis/client/javascript/externs/codemirror/addon/wrap/hardwrap.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/wrap/hardwrap.js
rename to src/vitis/client/javascript/externs/codemirror/addon/wrap/hardwrap.js
diff --git a/client/javascript/externs/codemirror/clike.js b/src/vitis/client/javascript/externs/codemirror/clike.js
similarity index 100%
rename from client/javascript/externs/codemirror/clike.js
rename to src/vitis/client/javascript/externs/codemirror/clike.js
diff --git a/client/javascript/externs/codemirror/codemirror.js b/src/vitis/client/javascript/externs/codemirror/codemirror.js
similarity index 100%
rename from client/javascript/externs/codemirror/codemirror.js
rename to src/vitis/client/javascript/externs/codemirror/codemirror.js
diff --git a/client/javascript/externs/codemirror/codemirror.min.js b/src/vitis/client/javascript/externs/codemirror/codemirror.min.js
similarity index 100%
rename from client/javascript/externs/codemirror/codemirror.min.js
rename to src/vitis/client/javascript/externs/codemirror/codemirror.min.js
diff --git a/client/javascript/externs/codemirror/css.js b/src/vitis/client/javascript/externs/codemirror/css.js
similarity index 100%
rename from client/javascript/externs/codemirror/css.js
rename to src/vitis/client/javascript/externs/codemirror/css.js
diff --git a/client/javascript/externs/codemirror/htmlmixed.js b/src/vitis/client/javascript/externs/codemirror/htmlmixed.js
similarity index 100%
rename from client/javascript/externs/codemirror/htmlmixed.js
rename to src/vitis/client/javascript/externs/codemirror/htmlmixed.js
diff --git a/client/javascript/externs/codemirror/javascript.js b/src/vitis/client/javascript/externs/codemirror/javascript.js
similarity index 100%
rename from client/javascript/externs/codemirror/javascript.js
rename to src/vitis/client/javascript/externs/codemirror/javascript.js
diff --git a/client/javascript/externs/codemirror/map.js b/src/vitis/client/javascript/externs/codemirror/map.js
similarity index 100%
rename from client/javascript/externs/codemirror/map.js
rename to src/vitis/client/javascript/externs/codemirror/map.js
diff --git a/client/javascript/externs/codemirror/php.js b/src/vitis/client/javascript/externs/codemirror/php.js
similarity index 100%
rename from client/javascript/externs/codemirror/php.js
rename to src/vitis/client/javascript/externs/codemirror/php.js
diff --git a/client/javascript/externs/codemirror/show-hint.js b/src/vitis/client/javascript/externs/codemirror/show-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/show-hint.js
rename to src/vitis/client/javascript/externs/codemirror/show-hint.js
diff --git a/client/javascript/externs/codemirror/sql.js b/src/vitis/client/javascript/externs/codemirror/sql.js
similarity index 100%
rename from client/javascript/externs/codemirror/sql.js
rename to src/vitis/client/javascript/externs/codemirror/sql.js
diff --git a/client/javascript/externs/codemirror/xml.js b/src/vitis/client/javascript/externs/codemirror/xml.js
similarity index 100%
rename from client/javascript/externs/codemirror/xml.js
rename to src/vitis/client/javascript/externs/codemirror/xml.js
diff --git a/client/javascript/externs/formReader/component/component.js b/src/vitis/client/javascript/externs/formReader/component/component.js
similarity index 100%
rename from client/javascript/externs/formReader/component/component.js
rename to src/vitis/client/javascript/externs/formReader/component/component.js
diff --git a/client/javascript/externs/formReader/component/map.js b/src/vitis/client/javascript/externs/formReader/component/map.js
similarity index 100%
rename from client/javascript/externs/formReader/component/map.js
rename to src/vitis/client/javascript/externs/formReader/component/map.js
diff --git a/client/javascript/externs/formReader/component/map_workbench/map_workbench.html b/src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.html
similarity index 100%
rename from client/javascript/externs/formReader/component/map_workbench/map_workbench.html
rename to src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.html
diff --git a/client/javascript/externs/formReader/component/map_workbench/map_workbench.js b/src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.js
similarity index 100%
rename from client/javascript/externs/formReader/component/map_workbench/map_workbench.js
rename to src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.js
diff --git a/client/javascript/externs/formReader/formReader.html b/src/vitis/client/javascript/externs/formReader/formReader.html
similarity index 100%
rename from client/javascript/externs/formReader/formReader.html
rename to src/vitis/client/javascript/externs/formReader/formReader.html
diff --git a/client/javascript/externs/formReader/formReader.js b/src/vitis/client/javascript/externs/formReader/formReader.js
similarity index 100%
rename from client/javascript/externs/formReader/formReader.js
rename to src/vitis/client/javascript/externs/formReader/formReader.js
diff --git a/client/javascript/externs/formReader/formReaderCtrl.js b/src/vitis/client/javascript/externs/formReader/formReaderCtrl.js
old mode 100755
new mode 100644
similarity index 100%
rename from client/javascript/externs/formReader/formReaderCtrl.js
rename to src/vitis/client/javascript/externs/formReader/formReaderCtrl.js
diff --git a/client/javascript/externs/formReader/formReaderDrtv.js b/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js
similarity index 100%
rename from client/javascript/externs/formReader/formReaderDrtv.js
rename to src/vitis/client/javascript/externs/formReader/formReaderDrtv.js
diff --git a/client/javascript/externs/formReader/formReaderSrvc.js b/src/vitis/client/javascript/externs/formReader/formReaderSrvc.js
similarity index 100%
rename from client/javascript/externs/formReader/formReaderSrvc.js
rename to src/vitis/client/javascript/externs/formReader/formReaderSrvc.js
diff --git a/client/javascript/externs/jquery/LICENSE.txt b/src/vitis/client/javascript/externs/jquery/LICENSE.txt
similarity index 100%
rename from client/javascript/externs/jquery/LICENSE.txt
rename to src/vitis/client/javascript/externs/jquery/LICENSE.txt
diff --git a/client/javascript/externs/jquery/jquery-1.11.3.js b/src/vitis/client/javascript/externs/jquery/jquery-1.11.3.js
similarity index 100%
rename from client/javascript/externs/jquery/jquery-1.11.3.js
rename to src/vitis/client/javascript/externs/jquery/jquery-1.11.3.js
diff --git a/client/javascript/externs/jquery/jquery-1.11.3.min.js b/src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.js
similarity index 100%
rename from client/javascript/externs/jquery/jquery-1.11.3.min.js
rename to src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.js
diff --git a/client/javascript/externs/jquery/jquery-1.11.3.min.map b/src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.map
similarity index 100%
rename from client/javascript/externs/jquery/jquery-1.11.3.min.map
rename to src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.map
diff --git a/client/javascript/externs/jquery/plugins/bootbox/bootbox.js b/src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootbox/bootbox.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.js
diff --git a/client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js
diff --git a/client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js b/src/vitis/client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js
diff --git a/client/javascript/externs/jquery/plugins/notify/notify.js b/src/vitis/client/javascript/externs/jquery/plugins/notify/notify.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/notify/notify.js
rename to src/vitis/client/javascript/externs/jquery/plugins/notify/notify.js
diff --git a/client/javascript/externs/jquery/plugins/notify/notify.min.js b/src/vitis/client/javascript/externs/jquery/plugins/notify/notify.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/notify/notify.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/notify/notify.min.js
diff --git a/client/javascript/externs/less/LICENSE b/src/vitis/client/javascript/externs/less/LICENSE
similarity index 100%
rename from client/javascript/externs/less/LICENSE
rename to src/vitis/client/javascript/externs/less/LICENSE
diff --git a/client/javascript/externs/less/less.min.js b/src/vitis/client/javascript/externs/less/less.min.js
similarity index 100%
rename from client/javascript/externs/less/less.min.js
rename to src/vitis/client/javascript/externs/less/less.min.js
diff --git a/client/javascript/externs/letter-avatar/ngletteravatar.js b/src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.js
similarity index 100%
rename from client/javascript/externs/letter-avatar/ngletteravatar.js
rename to src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.js
diff --git a/client/javascript/externs/letter-avatar/ngletteravatar.min.js b/src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.min.js
similarity index 100%
rename from client/javascript/externs/letter-avatar/ngletteravatar.min.js
rename to src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.min.js
diff --git a/client/javascript/externs/mapJSON/MapJSON.js b/src/vitis/client/javascript/externs/mapJSON/MapJSON.js
similarity index 100%
rename from client/javascript/externs/mapJSON/MapJSON.js
rename to src/vitis/client/javascript/externs/mapJSON/MapJSON.js
diff --git a/client/javascript/externs/materialize/materialize.js b/src/vitis/client/javascript/externs/materialize/materialize.js
similarity index 100%
rename from client/javascript/externs/materialize/materialize.js
rename to src/vitis/client/javascript/externs/materialize/materialize.js
diff --git a/client/javascript/externs/materialize/materialize.min.js b/src/vitis/client/javascript/externs/materialize/materialize.min.js
similarity index 100%
rename from client/javascript/externs/materialize/materialize.min.js
rename to src/vitis/client/javascript/externs/materialize/materialize.min.js
diff --git a/client/javascript/externs/mobile-detect/LICENSE b/src/vitis/client/javascript/externs/mobile-detect/LICENSE
similarity index 100%
rename from client/javascript/externs/mobile-detect/LICENSE
rename to src/vitis/client/javascript/externs/mobile-detect/LICENSE
diff --git a/client/javascript/externs/mobile-detect/mobile-detect.js b/src/vitis/client/javascript/externs/mobile-detect/mobile-detect.js
similarity index 100%
rename from client/javascript/externs/mobile-detect/mobile-detect.js
rename to src/vitis/client/javascript/externs/mobile-detect/mobile-detect.js
diff --git a/client/javascript/externs/mobile-detect/mobile-detect.min.js b/src/vitis/client/javascript/externs/mobile-detect/mobile-detect.min.js
similarity index 100%
rename from client/javascript/externs/mobile-detect/mobile-detect.min.js
rename to src/vitis/client/javascript/externs/mobile-detect/mobile-detect.min.js
diff --git a/client/javascript/externs/moment/LICENSE b/src/vitis/client/javascript/externs/moment/LICENSE
similarity index 100%
rename from client/javascript/externs/moment/LICENSE
rename to src/vitis/client/javascript/externs/moment/LICENSE
diff --git a/client/javascript/externs/moment/locale/af.js b/src/vitis/client/javascript/externs/moment/locale/af.js
similarity index 100%
rename from client/javascript/externs/moment/locale/af.js
rename to src/vitis/client/javascript/externs/moment/locale/af.js
diff --git a/client/javascript/externs/moment/locale/ar-ma.js b/src/vitis/client/javascript/externs/moment/locale/ar-ma.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ar-ma.js
rename to src/vitis/client/javascript/externs/moment/locale/ar-ma.js
diff --git a/client/javascript/externs/moment/locale/ar-sa.js b/src/vitis/client/javascript/externs/moment/locale/ar-sa.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ar-sa.js
rename to src/vitis/client/javascript/externs/moment/locale/ar-sa.js
diff --git a/client/javascript/externs/moment/locale/ar-tn.js b/src/vitis/client/javascript/externs/moment/locale/ar-tn.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ar-tn.js
rename to src/vitis/client/javascript/externs/moment/locale/ar-tn.js
diff --git a/client/javascript/externs/moment/locale/ar.js b/src/vitis/client/javascript/externs/moment/locale/ar.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ar.js
rename to src/vitis/client/javascript/externs/moment/locale/ar.js
diff --git a/client/javascript/externs/moment/locale/az.js b/src/vitis/client/javascript/externs/moment/locale/az.js
similarity index 100%
rename from client/javascript/externs/moment/locale/az.js
rename to src/vitis/client/javascript/externs/moment/locale/az.js
diff --git a/client/javascript/externs/moment/locale/be.js b/src/vitis/client/javascript/externs/moment/locale/be.js
similarity index 100%
rename from client/javascript/externs/moment/locale/be.js
rename to src/vitis/client/javascript/externs/moment/locale/be.js
diff --git a/client/javascript/externs/moment/locale/bg.js b/src/vitis/client/javascript/externs/moment/locale/bg.js
similarity index 100%
rename from client/javascript/externs/moment/locale/bg.js
rename to src/vitis/client/javascript/externs/moment/locale/bg.js
diff --git a/client/javascript/externs/moment/locale/bn.js b/src/vitis/client/javascript/externs/moment/locale/bn.js
similarity index 100%
rename from client/javascript/externs/moment/locale/bn.js
rename to src/vitis/client/javascript/externs/moment/locale/bn.js
diff --git a/client/javascript/externs/moment/locale/bo.js b/src/vitis/client/javascript/externs/moment/locale/bo.js
similarity index 100%
rename from client/javascript/externs/moment/locale/bo.js
rename to src/vitis/client/javascript/externs/moment/locale/bo.js
diff --git a/client/javascript/externs/moment/locale/br.js b/src/vitis/client/javascript/externs/moment/locale/br.js
similarity index 100%
rename from client/javascript/externs/moment/locale/br.js
rename to src/vitis/client/javascript/externs/moment/locale/br.js
diff --git a/client/javascript/externs/moment/locale/bs.js b/src/vitis/client/javascript/externs/moment/locale/bs.js
similarity index 100%
rename from client/javascript/externs/moment/locale/bs.js
rename to src/vitis/client/javascript/externs/moment/locale/bs.js
diff --git a/client/javascript/externs/moment/locale/ca.js b/src/vitis/client/javascript/externs/moment/locale/ca.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ca.js
rename to src/vitis/client/javascript/externs/moment/locale/ca.js
diff --git a/client/javascript/externs/moment/locale/cs.js b/src/vitis/client/javascript/externs/moment/locale/cs.js
similarity index 100%
rename from client/javascript/externs/moment/locale/cs.js
rename to src/vitis/client/javascript/externs/moment/locale/cs.js
diff --git a/client/javascript/externs/moment/locale/cv.js b/src/vitis/client/javascript/externs/moment/locale/cv.js
similarity index 100%
rename from client/javascript/externs/moment/locale/cv.js
rename to src/vitis/client/javascript/externs/moment/locale/cv.js
diff --git a/client/javascript/externs/moment/locale/cy.js b/src/vitis/client/javascript/externs/moment/locale/cy.js
similarity index 100%
rename from client/javascript/externs/moment/locale/cy.js
rename to src/vitis/client/javascript/externs/moment/locale/cy.js
diff --git a/client/javascript/externs/moment/locale/da.js b/src/vitis/client/javascript/externs/moment/locale/da.js
similarity index 100%
rename from client/javascript/externs/moment/locale/da.js
rename to src/vitis/client/javascript/externs/moment/locale/da.js
diff --git a/client/javascript/externs/moment/locale/de-at.js b/src/vitis/client/javascript/externs/moment/locale/de-at.js
similarity index 100%
rename from client/javascript/externs/moment/locale/de-at.js
rename to src/vitis/client/javascript/externs/moment/locale/de-at.js
diff --git a/client/javascript/externs/moment/locale/de.js b/src/vitis/client/javascript/externs/moment/locale/de.js
similarity index 100%
rename from client/javascript/externs/moment/locale/de.js
rename to src/vitis/client/javascript/externs/moment/locale/de.js
diff --git a/client/javascript/externs/moment/locale/dv.js b/src/vitis/client/javascript/externs/moment/locale/dv.js
similarity index 100%
rename from client/javascript/externs/moment/locale/dv.js
rename to src/vitis/client/javascript/externs/moment/locale/dv.js
diff --git a/client/javascript/externs/moment/locale/el.js b/src/vitis/client/javascript/externs/moment/locale/el.js
similarity index 100%
rename from client/javascript/externs/moment/locale/el.js
rename to src/vitis/client/javascript/externs/moment/locale/el.js
diff --git a/client/javascript/externs/moment/locale/en-au.js b/src/vitis/client/javascript/externs/moment/locale/en-au.js
similarity index 100%
rename from client/javascript/externs/moment/locale/en-au.js
rename to src/vitis/client/javascript/externs/moment/locale/en-au.js
diff --git a/client/javascript/externs/moment/locale/en-ca.js b/src/vitis/client/javascript/externs/moment/locale/en-ca.js
similarity index 100%
rename from client/javascript/externs/moment/locale/en-ca.js
rename to src/vitis/client/javascript/externs/moment/locale/en-ca.js
diff --git a/client/javascript/externs/moment/locale/en-gb.js b/src/vitis/client/javascript/externs/moment/locale/en-gb.js
similarity index 100%
rename from client/javascript/externs/moment/locale/en-gb.js
rename to src/vitis/client/javascript/externs/moment/locale/en-gb.js
diff --git a/client/javascript/externs/moment/locale/en-ie.js b/src/vitis/client/javascript/externs/moment/locale/en-ie.js
similarity index 100%
rename from client/javascript/externs/moment/locale/en-ie.js
rename to src/vitis/client/javascript/externs/moment/locale/en-ie.js
diff --git a/client/javascript/externs/moment/locale/en-nz.js b/src/vitis/client/javascript/externs/moment/locale/en-nz.js
similarity index 100%
rename from client/javascript/externs/moment/locale/en-nz.js
rename to src/vitis/client/javascript/externs/moment/locale/en-nz.js
diff --git a/client/javascript/externs/moment/locale/eo.js b/src/vitis/client/javascript/externs/moment/locale/eo.js
similarity index 100%
rename from client/javascript/externs/moment/locale/eo.js
rename to src/vitis/client/javascript/externs/moment/locale/eo.js
diff --git a/client/javascript/externs/moment/locale/es.js b/src/vitis/client/javascript/externs/moment/locale/es.js
similarity index 100%
rename from client/javascript/externs/moment/locale/es.js
rename to src/vitis/client/javascript/externs/moment/locale/es.js
diff --git a/client/javascript/externs/moment/locale/et.js b/src/vitis/client/javascript/externs/moment/locale/et.js
similarity index 100%
rename from client/javascript/externs/moment/locale/et.js
rename to src/vitis/client/javascript/externs/moment/locale/et.js
diff --git a/client/javascript/externs/moment/locale/eu.js b/src/vitis/client/javascript/externs/moment/locale/eu.js
similarity index 100%
rename from client/javascript/externs/moment/locale/eu.js
rename to src/vitis/client/javascript/externs/moment/locale/eu.js
diff --git a/client/javascript/externs/moment/locale/fa.js b/src/vitis/client/javascript/externs/moment/locale/fa.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fa.js
rename to src/vitis/client/javascript/externs/moment/locale/fa.js
diff --git a/client/javascript/externs/moment/locale/fi.js b/src/vitis/client/javascript/externs/moment/locale/fi.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fi.js
rename to src/vitis/client/javascript/externs/moment/locale/fi.js
diff --git a/client/javascript/externs/moment/locale/fo.js b/src/vitis/client/javascript/externs/moment/locale/fo.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fo.js
rename to src/vitis/client/javascript/externs/moment/locale/fo.js
diff --git a/client/javascript/externs/moment/locale/fr-ca.js b/src/vitis/client/javascript/externs/moment/locale/fr-ca.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fr-ca.js
rename to src/vitis/client/javascript/externs/moment/locale/fr-ca.js
diff --git a/client/javascript/externs/moment/locale/fr-ch.js b/src/vitis/client/javascript/externs/moment/locale/fr-ch.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fr-ch.js
rename to src/vitis/client/javascript/externs/moment/locale/fr-ch.js
diff --git a/client/javascript/externs/moment/locale/fr.js b/src/vitis/client/javascript/externs/moment/locale/fr.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fr.js
rename to src/vitis/client/javascript/externs/moment/locale/fr.js
diff --git a/client/javascript/externs/moment/locale/fy.js b/src/vitis/client/javascript/externs/moment/locale/fy.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fy.js
rename to src/vitis/client/javascript/externs/moment/locale/fy.js
diff --git a/client/javascript/externs/moment/locale/gd.js b/src/vitis/client/javascript/externs/moment/locale/gd.js
similarity index 100%
rename from client/javascript/externs/moment/locale/gd.js
rename to src/vitis/client/javascript/externs/moment/locale/gd.js
diff --git a/client/javascript/externs/moment/locale/gl.js b/src/vitis/client/javascript/externs/moment/locale/gl.js
similarity index 100%
rename from client/javascript/externs/moment/locale/gl.js
rename to src/vitis/client/javascript/externs/moment/locale/gl.js
diff --git a/client/javascript/externs/moment/locale/he.js b/src/vitis/client/javascript/externs/moment/locale/he.js
similarity index 100%
rename from client/javascript/externs/moment/locale/he.js
rename to src/vitis/client/javascript/externs/moment/locale/he.js
diff --git a/client/javascript/externs/moment/locale/hi.js b/src/vitis/client/javascript/externs/moment/locale/hi.js
similarity index 100%
rename from client/javascript/externs/moment/locale/hi.js
rename to src/vitis/client/javascript/externs/moment/locale/hi.js
diff --git a/client/javascript/externs/moment/locale/hr.js b/src/vitis/client/javascript/externs/moment/locale/hr.js
similarity index 100%
rename from client/javascript/externs/moment/locale/hr.js
rename to src/vitis/client/javascript/externs/moment/locale/hr.js
diff --git a/client/javascript/externs/moment/locale/hu.js b/src/vitis/client/javascript/externs/moment/locale/hu.js
similarity index 100%
rename from client/javascript/externs/moment/locale/hu.js
rename to src/vitis/client/javascript/externs/moment/locale/hu.js
diff --git a/client/javascript/externs/moment/locale/hy-am.js b/src/vitis/client/javascript/externs/moment/locale/hy-am.js
similarity index 100%
rename from client/javascript/externs/moment/locale/hy-am.js
rename to src/vitis/client/javascript/externs/moment/locale/hy-am.js
diff --git a/client/javascript/externs/moment/locale/id.js b/src/vitis/client/javascript/externs/moment/locale/id.js
similarity index 100%
rename from client/javascript/externs/moment/locale/id.js
rename to src/vitis/client/javascript/externs/moment/locale/id.js
diff --git a/client/javascript/externs/moment/locale/is.js b/src/vitis/client/javascript/externs/moment/locale/is.js
similarity index 100%
rename from client/javascript/externs/moment/locale/is.js
rename to src/vitis/client/javascript/externs/moment/locale/is.js
diff --git a/client/javascript/externs/moment/locale/it.js b/src/vitis/client/javascript/externs/moment/locale/it.js
similarity index 100%
rename from client/javascript/externs/moment/locale/it.js
rename to src/vitis/client/javascript/externs/moment/locale/it.js
diff --git a/client/javascript/externs/moment/locale/ja.js b/src/vitis/client/javascript/externs/moment/locale/ja.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ja.js
rename to src/vitis/client/javascript/externs/moment/locale/ja.js
diff --git a/client/javascript/externs/moment/locale/jv.js b/src/vitis/client/javascript/externs/moment/locale/jv.js
similarity index 100%
rename from client/javascript/externs/moment/locale/jv.js
rename to src/vitis/client/javascript/externs/moment/locale/jv.js
diff --git a/client/javascript/externs/moment/locale/ka.js b/src/vitis/client/javascript/externs/moment/locale/ka.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ka.js
rename to src/vitis/client/javascript/externs/moment/locale/ka.js
diff --git a/client/javascript/externs/moment/locale/kk.js b/src/vitis/client/javascript/externs/moment/locale/kk.js
similarity index 100%
rename from client/javascript/externs/moment/locale/kk.js
rename to src/vitis/client/javascript/externs/moment/locale/kk.js
diff --git a/client/javascript/externs/moment/locale/km.js b/src/vitis/client/javascript/externs/moment/locale/km.js
similarity index 100%
rename from client/javascript/externs/moment/locale/km.js
rename to src/vitis/client/javascript/externs/moment/locale/km.js
diff --git a/client/javascript/externs/moment/locale/ko.js b/src/vitis/client/javascript/externs/moment/locale/ko.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ko.js
rename to src/vitis/client/javascript/externs/moment/locale/ko.js
diff --git a/client/javascript/externs/moment/locale/lb.js b/src/vitis/client/javascript/externs/moment/locale/lb.js
similarity index 100%
rename from client/javascript/externs/moment/locale/lb.js
rename to src/vitis/client/javascript/externs/moment/locale/lb.js
diff --git a/client/javascript/externs/moment/locale/lo.js b/src/vitis/client/javascript/externs/moment/locale/lo.js
similarity index 100%
rename from client/javascript/externs/moment/locale/lo.js
rename to src/vitis/client/javascript/externs/moment/locale/lo.js
diff --git a/client/javascript/externs/moment/locale/lt.js b/src/vitis/client/javascript/externs/moment/locale/lt.js
similarity index 100%
rename from client/javascript/externs/moment/locale/lt.js
rename to src/vitis/client/javascript/externs/moment/locale/lt.js
diff --git a/client/javascript/externs/moment/locale/lv.js b/src/vitis/client/javascript/externs/moment/locale/lv.js
similarity index 100%
rename from client/javascript/externs/moment/locale/lv.js
rename to src/vitis/client/javascript/externs/moment/locale/lv.js
diff --git a/client/javascript/externs/moment/locale/me.js b/src/vitis/client/javascript/externs/moment/locale/me.js
similarity index 100%
rename from client/javascript/externs/moment/locale/me.js
rename to src/vitis/client/javascript/externs/moment/locale/me.js
diff --git a/client/javascript/externs/moment/locale/mk.js b/src/vitis/client/javascript/externs/moment/locale/mk.js
similarity index 100%
rename from client/javascript/externs/moment/locale/mk.js
rename to src/vitis/client/javascript/externs/moment/locale/mk.js
diff --git a/client/javascript/externs/moment/locale/ml.js b/src/vitis/client/javascript/externs/moment/locale/ml.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ml.js
rename to src/vitis/client/javascript/externs/moment/locale/ml.js
diff --git a/client/javascript/externs/moment/locale/mr.js b/src/vitis/client/javascript/externs/moment/locale/mr.js
similarity index 100%
rename from client/javascript/externs/moment/locale/mr.js
rename to src/vitis/client/javascript/externs/moment/locale/mr.js
diff --git a/client/javascript/externs/moment/locale/ms-my.js b/src/vitis/client/javascript/externs/moment/locale/ms-my.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ms-my.js
rename to src/vitis/client/javascript/externs/moment/locale/ms-my.js
diff --git a/client/javascript/externs/moment/locale/ms.js b/src/vitis/client/javascript/externs/moment/locale/ms.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ms.js
rename to src/vitis/client/javascript/externs/moment/locale/ms.js
diff --git a/client/javascript/externs/moment/locale/my.js b/src/vitis/client/javascript/externs/moment/locale/my.js
similarity index 100%
rename from client/javascript/externs/moment/locale/my.js
rename to src/vitis/client/javascript/externs/moment/locale/my.js
diff --git a/client/javascript/externs/moment/locale/nb.js b/src/vitis/client/javascript/externs/moment/locale/nb.js
similarity index 100%
rename from client/javascript/externs/moment/locale/nb.js
rename to src/vitis/client/javascript/externs/moment/locale/nb.js
diff --git a/client/javascript/externs/moment/locale/ne.js b/src/vitis/client/javascript/externs/moment/locale/ne.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ne.js
rename to src/vitis/client/javascript/externs/moment/locale/ne.js
diff --git a/client/javascript/externs/moment/locale/nl.js b/src/vitis/client/javascript/externs/moment/locale/nl.js
similarity index 100%
rename from client/javascript/externs/moment/locale/nl.js
rename to src/vitis/client/javascript/externs/moment/locale/nl.js
diff --git a/client/javascript/externs/moment/locale/nn.js b/src/vitis/client/javascript/externs/moment/locale/nn.js
similarity index 100%
rename from client/javascript/externs/moment/locale/nn.js
rename to src/vitis/client/javascript/externs/moment/locale/nn.js
diff --git a/client/javascript/externs/moment/locale/pl.js b/src/vitis/client/javascript/externs/moment/locale/pl.js
similarity index 100%
rename from client/javascript/externs/moment/locale/pl.js
rename to src/vitis/client/javascript/externs/moment/locale/pl.js
diff --git a/client/javascript/externs/moment/locale/pt-br.js b/src/vitis/client/javascript/externs/moment/locale/pt-br.js
similarity index 100%
rename from client/javascript/externs/moment/locale/pt-br.js
rename to src/vitis/client/javascript/externs/moment/locale/pt-br.js
diff --git a/client/javascript/externs/moment/locale/pt.js b/src/vitis/client/javascript/externs/moment/locale/pt.js
similarity index 100%
rename from client/javascript/externs/moment/locale/pt.js
rename to src/vitis/client/javascript/externs/moment/locale/pt.js
diff --git a/client/javascript/externs/moment/locale/ro.js b/src/vitis/client/javascript/externs/moment/locale/ro.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ro.js
rename to src/vitis/client/javascript/externs/moment/locale/ro.js
diff --git a/client/javascript/externs/moment/locale/ru.js b/src/vitis/client/javascript/externs/moment/locale/ru.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ru.js
rename to src/vitis/client/javascript/externs/moment/locale/ru.js
diff --git a/client/javascript/externs/moment/locale/se.js b/src/vitis/client/javascript/externs/moment/locale/se.js
similarity index 100%
rename from client/javascript/externs/moment/locale/se.js
rename to src/vitis/client/javascript/externs/moment/locale/se.js
diff --git a/client/javascript/externs/moment/locale/si.js b/src/vitis/client/javascript/externs/moment/locale/si.js
similarity index 100%
rename from client/javascript/externs/moment/locale/si.js
rename to src/vitis/client/javascript/externs/moment/locale/si.js
diff --git a/client/javascript/externs/moment/locale/sk.js b/src/vitis/client/javascript/externs/moment/locale/sk.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sk.js
rename to src/vitis/client/javascript/externs/moment/locale/sk.js
diff --git a/client/javascript/externs/moment/locale/sl.js b/src/vitis/client/javascript/externs/moment/locale/sl.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sl.js
rename to src/vitis/client/javascript/externs/moment/locale/sl.js
diff --git a/client/javascript/externs/moment/locale/sq.js b/src/vitis/client/javascript/externs/moment/locale/sq.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sq.js
rename to src/vitis/client/javascript/externs/moment/locale/sq.js
diff --git a/client/javascript/externs/moment/locale/sr-cyrl.js b/src/vitis/client/javascript/externs/moment/locale/sr-cyrl.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sr-cyrl.js
rename to src/vitis/client/javascript/externs/moment/locale/sr-cyrl.js
diff --git a/client/javascript/externs/moment/locale/sr.js b/src/vitis/client/javascript/externs/moment/locale/sr.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sr.js
rename to src/vitis/client/javascript/externs/moment/locale/sr.js
diff --git a/client/javascript/externs/moment/locale/sv.js b/src/vitis/client/javascript/externs/moment/locale/sv.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sv.js
rename to src/vitis/client/javascript/externs/moment/locale/sv.js
diff --git a/client/javascript/externs/moment/locale/sw.js b/src/vitis/client/javascript/externs/moment/locale/sw.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sw.js
rename to src/vitis/client/javascript/externs/moment/locale/sw.js
diff --git a/client/javascript/externs/moment/locale/ta.js b/src/vitis/client/javascript/externs/moment/locale/ta.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ta.js
rename to src/vitis/client/javascript/externs/moment/locale/ta.js
diff --git a/client/javascript/externs/moment/locale/te.js b/src/vitis/client/javascript/externs/moment/locale/te.js
similarity index 100%
rename from client/javascript/externs/moment/locale/te.js
rename to src/vitis/client/javascript/externs/moment/locale/te.js
diff --git a/client/javascript/externs/moment/locale/th.js b/src/vitis/client/javascript/externs/moment/locale/th.js
similarity index 100%
rename from client/javascript/externs/moment/locale/th.js
rename to src/vitis/client/javascript/externs/moment/locale/th.js
diff --git a/client/javascript/externs/moment/locale/tl-ph.js b/src/vitis/client/javascript/externs/moment/locale/tl-ph.js
similarity index 100%
rename from client/javascript/externs/moment/locale/tl-ph.js
rename to src/vitis/client/javascript/externs/moment/locale/tl-ph.js
diff --git a/client/javascript/externs/moment/locale/tlh.js b/src/vitis/client/javascript/externs/moment/locale/tlh.js
similarity index 100%
rename from client/javascript/externs/moment/locale/tlh.js
rename to src/vitis/client/javascript/externs/moment/locale/tlh.js
diff --git a/client/javascript/externs/moment/locale/tr.js b/src/vitis/client/javascript/externs/moment/locale/tr.js
similarity index 100%
rename from client/javascript/externs/moment/locale/tr.js
rename to src/vitis/client/javascript/externs/moment/locale/tr.js
diff --git a/client/javascript/externs/moment/locale/tzl.js b/src/vitis/client/javascript/externs/moment/locale/tzl.js
similarity index 100%
rename from client/javascript/externs/moment/locale/tzl.js
rename to src/vitis/client/javascript/externs/moment/locale/tzl.js
diff --git a/client/javascript/externs/moment/locale/tzm-latn.js b/src/vitis/client/javascript/externs/moment/locale/tzm-latn.js
similarity index 100%
rename from client/javascript/externs/moment/locale/tzm-latn.js
rename to src/vitis/client/javascript/externs/moment/locale/tzm-latn.js
diff --git a/client/javascript/externs/moment/locale/tzm.js b/src/vitis/client/javascript/externs/moment/locale/tzm.js
similarity index 100%
rename from client/javascript/externs/moment/locale/tzm.js
rename to src/vitis/client/javascript/externs/moment/locale/tzm.js
diff --git a/client/javascript/externs/moment/locale/uk.js b/src/vitis/client/javascript/externs/moment/locale/uk.js
similarity index 100%
rename from client/javascript/externs/moment/locale/uk.js
rename to src/vitis/client/javascript/externs/moment/locale/uk.js
diff --git a/client/javascript/externs/moment/locale/uz.js b/src/vitis/client/javascript/externs/moment/locale/uz.js
similarity index 100%
rename from client/javascript/externs/moment/locale/uz.js
rename to src/vitis/client/javascript/externs/moment/locale/uz.js
diff --git a/client/javascript/externs/moment/locale/vi.js b/src/vitis/client/javascript/externs/moment/locale/vi.js
similarity index 100%
rename from client/javascript/externs/moment/locale/vi.js
rename to src/vitis/client/javascript/externs/moment/locale/vi.js
diff --git a/client/javascript/externs/moment/locale/zh-cn.js b/src/vitis/client/javascript/externs/moment/locale/zh-cn.js
similarity index 100%
rename from client/javascript/externs/moment/locale/zh-cn.js
rename to src/vitis/client/javascript/externs/moment/locale/zh-cn.js
diff --git a/client/javascript/externs/moment/locale/zh-tw.js b/src/vitis/client/javascript/externs/moment/locale/zh-tw.js
similarity index 100%
rename from client/javascript/externs/moment/locale/zh-tw.js
rename to src/vitis/client/javascript/externs/moment/locale/zh-tw.js
diff --git a/client/javascript/externs/moment/min/locales.js b/src/vitis/client/javascript/externs/moment/min/locales.js
similarity index 100%
rename from client/javascript/externs/moment/min/locales.js
rename to src/vitis/client/javascript/externs/moment/min/locales.js
diff --git a/client/javascript/externs/moment/min/locales.min.js b/src/vitis/client/javascript/externs/moment/min/locales.min.js
similarity index 100%
rename from client/javascript/externs/moment/min/locales.min.js
rename to src/vitis/client/javascript/externs/moment/min/locales.min.js
diff --git a/client/javascript/externs/moment/min/moment-with-locales.js b/src/vitis/client/javascript/externs/moment/min/moment-with-locales.js
similarity index 100%
rename from client/javascript/externs/moment/min/moment-with-locales.js
rename to src/vitis/client/javascript/externs/moment/min/moment-with-locales.js
diff --git a/client/javascript/externs/moment/min/moment-with-locales.min.js b/src/vitis/client/javascript/externs/moment/min/moment-with-locales.min.js
similarity index 100%
rename from client/javascript/externs/moment/min/moment-with-locales.min.js
rename to src/vitis/client/javascript/externs/moment/min/moment-with-locales.min.js
diff --git a/client/javascript/externs/moment/min/moment.min.js b/src/vitis/client/javascript/externs/moment/min/moment.min.js
similarity index 100%
rename from client/javascript/externs/moment/min/moment.min.js
rename to src/vitis/client/javascript/externs/moment/min/moment.min.js
diff --git a/client/javascript/externs/moment/min/tests.js b/src/vitis/client/javascript/externs/moment/min/tests.js
similarity index 100%
rename from client/javascript/externs/moment/min/tests.js
rename to src/vitis/client/javascript/externs/moment/min/tests.js
diff --git a/client/javascript/externs/moment/moment.min.js b/src/vitis/client/javascript/externs/moment/moment.min.js
similarity index 100%
rename from client/javascript/externs/moment/moment.min.js
rename to src/vitis/client/javascript/externs/moment/moment.min.js
diff --git a/client/javascript/externs/moment/src/lib/create/check-overflow.js b/src/vitis/client/javascript/externs/moment/src/lib/create/check-overflow.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/check-overflow.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/check-overflow.js
diff --git a/client/javascript/externs/moment/src/lib/create/date-from-array.js b/src/vitis/client/javascript/externs/moment/src/lib/create/date-from-array.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/date-from-array.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/date-from-array.js
diff --git a/client/javascript/externs/moment/src/lib/create/from-anything.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-anything.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/from-anything.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-anything.js
diff --git a/client/javascript/externs/moment/src/lib/create/from-array.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-array.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/from-array.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-array.js
diff --git a/client/javascript/externs/moment/src/lib/create/from-object.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-object.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/from-object.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-object.js
diff --git a/client/javascript/externs/moment/src/lib/create/from-string-and-array.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-array.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/from-string-and-array.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-array.js
diff --git a/client/javascript/externs/moment/src/lib/create/from-string-and-format.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-format.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/from-string-and-format.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-format.js
diff --git a/client/javascript/externs/moment/src/lib/create/from-string.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-string.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/from-string.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-string.js
diff --git a/client/javascript/externs/moment/src/lib/create/local.js b/src/vitis/client/javascript/externs/moment/src/lib/create/local.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/local.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/local.js
diff --git a/client/javascript/externs/moment/src/lib/create/parsing-flags.js b/src/vitis/client/javascript/externs/moment/src/lib/create/parsing-flags.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/parsing-flags.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/parsing-flags.js
diff --git a/client/javascript/externs/moment/src/lib/create/utc.js b/src/vitis/client/javascript/externs/moment/src/lib/create/utc.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/utc.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/utc.js
diff --git a/client/javascript/externs/moment/src/lib/create/valid.js b/src/vitis/client/javascript/externs/moment/src/lib/create/valid.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/valid.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/valid.js
diff --git a/client/javascript/externs/moment/src/lib/duration/abs.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/abs.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/abs.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/abs.js
diff --git a/client/javascript/externs/moment/src/lib/duration/add-subtract.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/add-subtract.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/add-subtract.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/add-subtract.js
diff --git a/client/javascript/externs/moment/src/lib/duration/as.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/as.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/as.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/as.js
diff --git a/client/javascript/externs/moment/src/lib/duration/bubble.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/bubble.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/bubble.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/bubble.js
diff --git a/client/javascript/externs/moment/src/lib/duration/constructor.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/constructor.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/constructor.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/constructor.js
diff --git a/client/javascript/externs/moment/src/lib/duration/create.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/create.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/create.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/create.js
diff --git a/client/javascript/externs/moment/src/lib/duration/duration.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/duration.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/duration.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/duration.js
diff --git a/client/javascript/externs/moment/src/lib/duration/get.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/get.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/get.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/get.js
diff --git a/client/javascript/externs/moment/src/lib/duration/humanize.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/humanize.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/humanize.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/humanize.js
diff --git a/client/javascript/externs/moment/src/lib/duration/iso-string.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/iso-string.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/iso-string.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/iso-string.js
diff --git a/client/javascript/externs/moment/src/lib/duration/prototype.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/prototype.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/prototype.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/prototype.js
diff --git a/client/javascript/externs/moment/src/lib/format/format.js b/src/vitis/client/javascript/externs/moment/src/lib/format/format.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/format/format.js
rename to src/vitis/client/javascript/externs/moment/src/lib/format/format.js
diff --git a/client/javascript/externs/moment/src/lib/locale/calendar.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/calendar.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/calendar.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/calendar.js
diff --git a/client/javascript/externs/moment/src/lib/locale/constructor.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/constructor.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/constructor.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/constructor.js
diff --git a/client/javascript/externs/moment/src/lib/locale/en.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/en.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/en.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/en.js
diff --git a/client/javascript/externs/moment/src/lib/locale/formats.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/formats.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/formats.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/formats.js
diff --git a/client/javascript/externs/moment/src/lib/locale/invalid.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/invalid.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/invalid.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/invalid.js
diff --git a/client/javascript/externs/moment/src/lib/locale/lists.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/lists.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/lists.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/lists.js
diff --git a/client/javascript/externs/moment/src/lib/locale/locale.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/locale.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/locale.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/locale.js
diff --git a/client/javascript/externs/moment/src/lib/locale/locales.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/locales.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/locales.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/locales.js
diff --git a/client/javascript/externs/moment/src/lib/locale/ordinal.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/ordinal.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/ordinal.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/ordinal.js
diff --git a/client/javascript/externs/moment/src/lib/locale/pre-post-format.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/pre-post-format.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/pre-post-format.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/pre-post-format.js
diff --git a/client/javascript/externs/moment/src/lib/locale/prototype.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/prototype.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/prototype.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/prototype.js
diff --git a/client/javascript/externs/moment/src/lib/locale/relative.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/relative.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/relative.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/relative.js
diff --git a/client/javascript/externs/moment/src/lib/locale/set.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/set.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/set.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/set.js
diff --git a/client/javascript/externs/moment/src/lib/moment/add-subtract.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/add-subtract.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/add-subtract.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/add-subtract.js
diff --git a/client/javascript/externs/moment/src/lib/moment/calendar.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/calendar.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/calendar.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/calendar.js
diff --git a/client/javascript/externs/moment/src/lib/moment/clone.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/clone.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/clone.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/clone.js
diff --git a/client/javascript/externs/moment/src/lib/moment/compare.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/compare.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/compare.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/compare.js
diff --git a/client/javascript/externs/moment/src/lib/moment/constructor.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/constructor.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/constructor.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/constructor.js
diff --git a/client/javascript/externs/moment/src/lib/moment/creation-data.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/creation-data.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/creation-data.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/creation-data.js
diff --git a/client/javascript/externs/moment/src/lib/moment/diff.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/diff.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/diff.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/diff.js
diff --git a/client/javascript/externs/moment/src/lib/moment/format.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/format.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/format.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/format.js
diff --git a/client/javascript/externs/moment/src/lib/moment/from.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/from.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/from.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/from.js
diff --git a/client/javascript/externs/moment/src/lib/moment/get-set.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/get-set.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/get-set.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/get-set.js
diff --git a/client/javascript/externs/moment/src/lib/moment/locale.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/locale.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/locale.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/locale.js
diff --git a/client/javascript/externs/moment/src/lib/moment/min-max.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/min-max.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/min-max.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/min-max.js
diff --git a/client/javascript/externs/moment/src/lib/moment/moment.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/moment.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/moment.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/moment.js
diff --git a/client/javascript/externs/moment/src/lib/moment/now.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/now.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/now.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/now.js
diff --git a/client/javascript/externs/moment/src/lib/moment/prototype.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/prototype.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/prototype.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/prototype.js
diff --git a/client/javascript/externs/moment/src/lib/moment/start-end-of.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/start-end-of.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/start-end-of.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/start-end-of.js
diff --git a/client/javascript/externs/moment/src/lib/moment/to-type.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/to-type.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/to-type.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/to-type.js
diff --git a/client/javascript/externs/moment/src/lib/moment/to.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/to.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/to.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/to.js
diff --git a/client/javascript/externs/moment/src/lib/moment/valid.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/valid.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/valid.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/valid.js
diff --git a/client/javascript/externs/moment/src/lib/parse/regex.js b/src/vitis/client/javascript/externs/moment/src/lib/parse/regex.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/parse/regex.js
rename to src/vitis/client/javascript/externs/moment/src/lib/parse/regex.js
diff --git a/client/javascript/externs/moment/src/lib/parse/token.js b/src/vitis/client/javascript/externs/moment/src/lib/parse/token.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/parse/token.js
rename to src/vitis/client/javascript/externs/moment/src/lib/parse/token.js
diff --git a/client/javascript/externs/moment/src/lib/units/aliases.js b/src/vitis/client/javascript/externs/moment/src/lib/units/aliases.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/aliases.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/aliases.js
diff --git a/client/javascript/externs/moment/src/lib/units/constants.js b/src/vitis/client/javascript/externs/moment/src/lib/units/constants.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/constants.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/constants.js
diff --git a/client/javascript/externs/moment/src/lib/units/day-of-month.js b/src/vitis/client/javascript/externs/moment/src/lib/units/day-of-month.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/day-of-month.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/day-of-month.js
diff --git a/client/javascript/externs/moment/src/lib/units/day-of-week.js b/src/vitis/client/javascript/externs/moment/src/lib/units/day-of-week.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/day-of-week.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/day-of-week.js
diff --git a/client/javascript/externs/moment/src/lib/units/day-of-year.js b/src/vitis/client/javascript/externs/moment/src/lib/units/day-of-year.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/day-of-year.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/day-of-year.js
diff --git a/client/javascript/externs/moment/src/lib/units/hour.js b/src/vitis/client/javascript/externs/moment/src/lib/units/hour.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/hour.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/hour.js
diff --git a/client/javascript/externs/moment/src/lib/units/millisecond.js b/src/vitis/client/javascript/externs/moment/src/lib/units/millisecond.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/millisecond.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/millisecond.js
diff --git a/client/javascript/externs/moment/src/lib/units/minute.js b/src/vitis/client/javascript/externs/moment/src/lib/units/minute.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/minute.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/minute.js
diff --git a/client/javascript/externs/moment/src/lib/units/month.js b/src/vitis/client/javascript/externs/moment/src/lib/units/month.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/month.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/month.js
diff --git a/client/javascript/externs/moment/src/lib/units/offset.js b/src/vitis/client/javascript/externs/moment/src/lib/units/offset.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/offset.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/offset.js
diff --git a/client/javascript/externs/moment/src/lib/units/quarter.js b/src/vitis/client/javascript/externs/moment/src/lib/units/quarter.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/quarter.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/quarter.js
diff --git a/client/javascript/externs/moment/src/lib/units/second.js b/src/vitis/client/javascript/externs/moment/src/lib/units/second.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/second.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/second.js
diff --git a/client/javascript/externs/moment/src/lib/units/timestamp.js b/src/vitis/client/javascript/externs/moment/src/lib/units/timestamp.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/timestamp.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/timestamp.js
diff --git a/client/javascript/externs/moment/src/lib/units/timezone.js b/src/vitis/client/javascript/externs/moment/src/lib/units/timezone.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/timezone.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/timezone.js
diff --git a/client/javascript/externs/moment/src/lib/units/units.js b/src/vitis/client/javascript/externs/moment/src/lib/units/units.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/units.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/units.js
diff --git a/client/javascript/externs/moment/src/lib/units/week-calendar-utils.js b/src/vitis/client/javascript/externs/moment/src/lib/units/week-calendar-utils.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/week-calendar-utils.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/week-calendar-utils.js
diff --git a/client/javascript/externs/moment/src/lib/units/week-year.js b/src/vitis/client/javascript/externs/moment/src/lib/units/week-year.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/week-year.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/week-year.js
diff --git a/client/javascript/externs/moment/src/lib/units/week.js b/src/vitis/client/javascript/externs/moment/src/lib/units/week.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/week.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/week.js
diff --git a/client/javascript/externs/moment/src/lib/units/year.js b/src/vitis/client/javascript/externs/moment/src/lib/units/year.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/year.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/year.js
diff --git a/client/javascript/externs/moment/src/lib/utils/abs-ceil.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/abs-ceil.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/abs-ceil.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/abs-ceil.js
diff --git a/client/javascript/externs/moment/src/lib/utils/abs-floor.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/abs-floor.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/abs-floor.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/abs-floor.js
diff --git a/client/javascript/externs/moment/src/lib/utils/compare-arrays.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/compare-arrays.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/compare-arrays.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/compare-arrays.js
diff --git a/client/javascript/externs/moment/src/lib/utils/defaults.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/defaults.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/defaults.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/defaults.js
diff --git a/client/javascript/externs/moment/src/lib/utils/deprecate.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/deprecate.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/deprecate.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/deprecate.js
diff --git a/client/javascript/externs/moment/src/lib/utils/extend.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/extend.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/extend.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/extend.js
diff --git a/client/javascript/externs/moment/src/lib/utils/has-own-prop.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/has-own-prop.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/has-own-prop.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/has-own-prop.js
diff --git a/client/javascript/externs/moment/src/lib/utils/hooks.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/hooks.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/hooks.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/hooks.js
diff --git a/client/javascript/externs/moment/src/lib/utils/is-array.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/is-array.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/is-array.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/is-array.js
diff --git a/client/javascript/externs/moment/src/lib/utils/is-date.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/is-date.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/is-date.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/is-date.js
diff --git a/client/javascript/externs/moment/src/lib/utils/is-function.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/is-function.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/is-function.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/is-function.js
diff --git a/client/javascript/externs/moment/src/lib/utils/is-undefined.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/is-undefined.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/is-undefined.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/is-undefined.js
diff --git a/client/javascript/externs/moment/src/lib/utils/map.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/map.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/map.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/map.js
diff --git a/client/javascript/externs/moment/src/lib/utils/to-int.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/to-int.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/to-int.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/to-int.js
diff --git a/client/javascript/externs/moment/src/lib/utils/zero-fill.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/zero-fill.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/zero-fill.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/zero-fill.js
diff --git a/client/javascript/externs/moment/src/locale/af.js b/src/vitis/client/javascript/externs/moment/src/locale/af.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/af.js
rename to src/vitis/client/javascript/externs/moment/src/locale/af.js
diff --git a/client/javascript/externs/moment/src/locale/ar-ma.js b/src/vitis/client/javascript/externs/moment/src/locale/ar-ma.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ar-ma.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ar-ma.js
diff --git a/client/javascript/externs/moment/src/locale/ar-sa.js b/src/vitis/client/javascript/externs/moment/src/locale/ar-sa.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ar-sa.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ar-sa.js
diff --git a/client/javascript/externs/moment/src/locale/ar-tn.js b/src/vitis/client/javascript/externs/moment/src/locale/ar-tn.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ar-tn.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ar-tn.js
diff --git a/client/javascript/externs/moment/src/locale/ar.js b/src/vitis/client/javascript/externs/moment/src/locale/ar.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ar.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ar.js
diff --git a/client/javascript/externs/moment/src/locale/az.js b/src/vitis/client/javascript/externs/moment/src/locale/az.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/az.js
rename to src/vitis/client/javascript/externs/moment/src/locale/az.js
diff --git a/client/javascript/externs/moment/src/locale/be.js b/src/vitis/client/javascript/externs/moment/src/locale/be.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/be.js
rename to src/vitis/client/javascript/externs/moment/src/locale/be.js
diff --git a/client/javascript/externs/moment/src/locale/bg.js b/src/vitis/client/javascript/externs/moment/src/locale/bg.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/bg.js
rename to src/vitis/client/javascript/externs/moment/src/locale/bg.js
diff --git a/client/javascript/externs/moment/src/locale/bn.js b/src/vitis/client/javascript/externs/moment/src/locale/bn.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/bn.js
rename to src/vitis/client/javascript/externs/moment/src/locale/bn.js
diff --git a/client/javascript/externs/moment/src/locale/bo.js b/src/vitis/client/javascript/externs/moment/src/locale/bo.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/bo.js
rename to src/vitis/client/javascript/externs/moment/src/locale/bo.js
diff --git a/client/javascript/externs/moment/src/locale/br.js b/src/vitis/client/javascript/externs/moment/src/locale/br.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/br.js
rename to src/vitis/client/javascript/externs/moment/src/locale/br.js
diff --git a/client/javascript/externs/moment/src/locale/bs.js b/src/vitis/client/javascript/externs/moment/src/locale/bs.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/bs.js
rename to src/vitis/client/javascript/externs/moment/src/locale/bs.js
diff --git a/client/javascript/externs/moment/src/locale/ca.js b/src/vitis/client/javascript/externs/moment/src/locale/ca.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ca.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ca.js
diff --git a/client/javascript/externs/moment/src/locale/cs.js b/src/vitis/client/javascript/externs/moment/src/locale/cs.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/cs.js
rename to src/vitis/client/javascript/externs/moment/src/locale/cs.js
diff --git a/client/javascript/externs/moment/src/locale/cv.js b/src/vitis/client/javascript/externs/moment/src/locale/cv.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/cv.js
rename to src/vitis/client/javascript/externs/moment/src/locale/cv.js
diff --git a/client/javascript/externs/moment/src/locale/cy.js b/src/vitis/client/javascript/externs/moment/src/locale/cy.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/cy.js
rename to src/vitis/client/javascript/externs/moment/src/locale/cy.js
diff --git a/client/javascript/externs/moment/src/locale/da.js b/src/vitis/client/javascript/externs/moment/src/locale/da.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/da.js
rename to src/vitis/client/javascript/externs/moment/src/locale/da.js
diff --git a/client/javascript/externs/moment/src/locale/de-at.js b/src/vitis/client/javascript/externs/moment/src/locale/de-at.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/de-at.js
rename to src/vitis/client/javascript/externs/moment/src/locale/de-at.js
diff --git a/client/javascript/externs/moment/src/locale/de.js b/src/vitis/client/javascript/externs/moment/src/locale/de.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/de.js
rename to src/vitis/client/javascript/externs/moment/src/locale/de.js
diff --git a/client/javascript/externs/moment/src/locale/dv.js b/src/vitis/client/javascript/externs/moment/src/locale/dv.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/dv.js
rename to src/vitis/client/javascript/externs/moment/src/locale/dv.js
diff --git a/client/javascript/externs/moment/src/locale/el.js b/src/vitis/client/javascript/externs/moment/src/locale/el.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/el.js
rename to src/vitis/client/javascript/externs/moment/src/locale/el.js
diff --git a/client/javascript/externs/moment/src/locale/en-au.js b/src/vitis/client/javascript/externs/moment/src/locale/en-au.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/en-au.js
rename to src/vitis/client/javascript/externs/moment/src/locale/en-au.js
diff --git a/client/javascript/externs/moment/src/locale/en-ca.js b/src/vitis/client/javascript/externs/moment/src/locale/en-ca.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/en-ca.js
rename to src/vitis/client/javascript/externs/moment/src/locale/en-ca.js
diff --git a/client/javascript/externs/moment/src/locale/en-gb.js b/src/vitis/client/javascript/externs/moment/src/locale/en-gb.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/en-gb.js
rename to src/vitis/client/javascript/externs/moment/src/locale/en-gb.js
diff --git a/client/javascript/externs/moment/src/locale/en-ie.js b/src/vitis/client/javascript/externs/moment/src/locale/en-ie.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/en-ie.js
rename to src/vitis/client/javascript/externs/moment/src/locale/en-ie.js
diff --git a/client/javascript/externs/moment/src/locale/en-nz.js b/src/vitis/client/javascript/externs/moment/src/locale/en-nz.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/en-nz.js
rename to src/vitis/client/javascript/externs/moment/src/locale/en-nz.js
diff --git a/client/javascript/externs/moment/src/locale/eo.js b/src/vitis/client/javascript/externs/moment/src/locale/eo.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/eo.js
rename to src/vitis/client/javascript/externs/moment/src/locale/eo.js
diff --git a/client/javascript/externs/moment/src/locale/es.js b/src/vitis/client/javascript/externs/moment/src/locale/es.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/es.js
rename to src/vitis/client/javascript/externs/moment/src/locale/es.js
diff --git a/client/javascript/externs/moment/src/locale/et.js b/src/vitis/client/javascript/externs/moment/src/locale/et.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/et.js
rename to src/vitis/client/javascript/externs/moment/src/locale/et.js
diff --git a/client/javascript/externs/moment/src/locale/eu.js b/src/vitis/client/javascript/externs/moment/src/locale/eu.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/eu.js
rename to src/vitis/client/javascript/externs/moment/src/locale/eu.js
diff --git a/client/javascript/externs/moment/src/locale/fa.js b/src/vitis/client/javascript/externs/moment/src/locale/fa.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fa.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fa.js
diff --git a/client/javascript/externs/moment/src/locale/fi.js b/src/vitis/client/javascript/externs/moment/src/locale/fi.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fi.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fi.js
diff --git a/client/javascript/externs/moment/src/locale/fo.js b/src/vitis/client/javascript/externs/moment/src/locale/fo.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fo.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fo.js
diff --git a/client/javascript/externs/moment/src/locale/fr-ca.js b/src/vitis/client/javascript/externs/moment/src/locale/fr-ca.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fr-ca.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fr-ca.js
diff --git a/client/javascript/externs/moment/src/locale/fr-ch.js b/src/vitis/client/javascript/externs/moment/src/locale/fr-ch.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fr-ch.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fr-ch.js
diff --git a/client/javascript/externs/moment/src/locale/fr.js b/src/vitis/client/javascript/externs/moment/src/locale/fr.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fr.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fr.js
diff --git a/client/javascript/externs/moment/src/locale/fy.js b/src/vitis/client/javascript/externs/moment/src/locale/fy.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fy.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fy.js
diff --git a/client/javascript/externs/moment/src/locale/gd.js b/src/vitis/client/javascript/externs/moment/src/locale/gd.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/gd.js
rename to src/vitis/client/javascript/externs/moment/src/locale/gd.js
diff --git a/client/javascript/externs/moment/src/locale/gl.js b/src/vitis/client/javascript/externs/moment/src/locale/gl.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/gl.js
rename to src/vitis/client/javascript/externs/moment/src/locale/gl.js
diff --git a/client/javascript/externs/moment/src/locale/he.js b/src/vitis/client/javascript/externs/moment/src/locale/he.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/he.js
rename to src/vitis/client/javascript/externs/moment/src/locale/he.js
diff --git a/client/javascript/externs/moment/src/locale/hi.js b/src/vitis/client/javascript/externs/moment/src/locale/hi.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/hi.js
rename to src/vitis/client/javascript/externs/moment/src/locale/hi.js
diff --git a/client/javascript/externs/moment/src/locale/hr.js b/src/vitis/client/javascript/externs/moment/src/locale/hr.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/hr.js
rename to src/vitis/client/javascript/externs/moment/src/locale/hr.js
diff --git a/client/javascript/externs/moment/src/locale/hu.js b/src/vitis/client/javascript/externs/moment/src/locale/hu.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/hu.js
rename to src/vitis/client/javascript/externs/moment/src/locale/hu.js
diff --git a/client/javascript/externs/moment/src/locale/hy-am.js b/src/vitis/client/javascript/externs/moment/src/locale/hy-am.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/hy-am.js
rename to src/vitis/client/javascript/externs/moment/src/locale/hy-am.js
diff --git a/client/javascript/externs/moment/src/locale/id.js b/src/vitis/client/javascript/externs/moment/src/locale/id.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/id.js
rename to src/vitis/client/javascript/externs/moment/src/locale/id.js
diff --git a/client/javascript/externs/moment/src/locale/is.js b/src/vitis/client/javascript/externs/moment/src/locale/is.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/is.js
rename to src/vitis/client/javascript/externs/moment/src/locale/is.js
diff --git a/client/javascript/externs/moment/src/locale/it.js b/src/vitis/client/javascript/externs/moment/src/locale/it.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/it.js
rename to src/vitis/client/javascript/externs/moment/src/locale/it.js
diff --git a/client/javascript/externs/moment/src/locale/ja.js b/src/vitis/client/javascript/externs/moment/src/locale/ja.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ja.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ja.js
diff --git a/client/javascript/externs/moment/src/locale/jv.js b/src/vitis/client/javascript/externs/moment/src/locale/jv.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/jv.js
rename to src/vitis/client/javascript/externs/moment/src/locale/jv.js
diff --git a/client/javascript/externs/moment/src/locale/ka.js b/src/vitis/client/javascript/externs/moment/src/locale/ka.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ka.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ka.js
diff --git a/client/javascript/externs/moment/src/locale/kk.js b/src/vitis/client/javascript/externs/moment/src/locale/kk.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/kk.js
rename to src/vitis/client/javascript/externs/moment/src/locale/kk.js
diff --git a/client/javascript/externs/moment/src/locale/km.js b/src/vitis/client/javascript/externs/moment/src/locale/km.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/km.js
rename to src/vitis/client/javascript/externs/moment/src/locale/km.js
diff --git a/client/javascript/externs/moment/src/locale/ko.js b/src/vitis/client/javascript/externs/moment/src/locale/ko.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ko.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ko.js
diff --git a/client/javascript/externs/moment/src/locale/lb.js b/src/vitis/client/javascript/externs/moment/src/locale/lb.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/lb.js
rename to src/vitis/client/javascript/externs/moment/src/locale/lb.js
diff --git a/client/javascript/externs/moment/src/locale/lo.js b/src/vitis/client/javascript/externs/moment/src/locale/lo.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/lo.js
rename to src/vitis/client/javascript/externs/moment/src/locale/lo.js
diff --git a/client/javascript/externs/moment/src/locale/lt.js b/src/vitis/client/javascript/externs/moment/src/locale/lt.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/lt.js
rename to src/vitis/client/javascript/externs/moment/src/locale/lt.js
diff --git a/client/javascript/externs/moment/src/locale/lv.js b/src/vitis/client/javascript/externs/moment/src/locale/lv.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/lv.js
rename to src/vitis/client/javascript/externs/moment/src/locale/lv.js
diff --git a/client/javascript/externs/moment/src/locale/me.js b/src/vitis/client/javascript/externs/moment/src/locale/me.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/me.js
rename to src/vitis/client/javascript/externs/moment/src/locale/me.js
diff --git a/client/javascript/externs/moment/src/locale/mk.js b/src/vitis/client/javascript/externs/moment/src/locale/mk.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/mk.js
rename to src/vitis/client/javascript/externs/moment/src/locale/mk.js
diff --git a/client/javascript/externs/moment/src/locale/ml.js b/src/vitis/client/javascript/externs/moment/src/locale/ml.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ml.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ml.js
diff --git a/client/javascript/externs/moment/src/locale/mr.js b/src/vitis/client/javascript/externs/moment/src/locale/mr.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/mr.js
rename to src/vitis/client/javascript/externs/moment/src/locale/mr.js
diff --git a/client/javascript/externs/moment/src/locale/ms-my.js b/src/vitis/client/javascript/externs/moment/src/locale/ms-my.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ms-my.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ms-my.js
diff --git a/client/javascript/externs/moment/src/locale/ms.js b/src/vitis/client/javascript/externs/moment/src/locale/ms.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ms.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ms.js
diff --git a/client/javascript/externs/moment/src/locale/my.js b/src/vitis/client/javascript/externs/moment/src/locale/my.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/my.js
rename to src/vitis/client/javascript/externs/moment/src/locale/my.js
diff --git a/client/javascript/externs/moment/src/locale/nb.js b/src/vitis/client/javascript/externs/moment/src/locale/nb.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/nb.js
rename to src/vitis/client/javascript/externs/moment/src/locale/nb.js
diff --git a/client/javascript/externs/moment/src/locale/ne.js b/src/vitis/client/javascript/externs/moment/src/locale/ne.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ne.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ne.js
diff --git a/client/javascript/externs/moment/src/locale/nl.js b/src/vitis/client/javascript/externs/moment/src/locale/nl.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/nl.js
rename to src/vitis/client/javascript/externs/moment/src/locale/nl.js
diff --git a/client/javascript/externs/moment/src/locale/nn.js b/src/vitis/client/javascript/externs/moment/src/locale/nn.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/nn.js
rename to src/vitis/client/javascript/externs/moment/src/locale/nn.js
diff --git a/client/javascript/externs/moment/src/locale/pl.js b/src/vitis/client/javascript/externs/moment/src/locale/pl.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/pl.js
rename to src/vitis/client/javascript/externs/moment/src/locale/pl.js
diff --git a/client/javascript/externs/moment/src/locale/pt-br.js b/src/vitis/client/javascript/externs/moment/src/locale/pt-br.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/pt-br.js
rename to src/vitis/client/javascript/externs/moment/src/locale/pt-br.js
diff --git a/client/javascript/externs/moment/src/locale/pt.js b/src/vitis/client/javascript/externs/moment/src/locale/pt.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/pt.js
rename to src/vitis/client/javascript/externs/moment/src/locale/pt.js
diff --git a/client/javascript/externs/moment/src/locale/ro.js b/src/vitis/client/javascript/externs/moment/src/locale/ro.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ro.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ro.js
diff --git a/client/javascript/externs/moment/src/locale/ru.js b/src/vitis/client/javascript/externs/moment/src/locale/ru.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ru.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ru.js
diff --git a/client/javascript/externs/moment/src/locale/se.js b/src/vitis/client/javascript/externs/moment/src/locale/se.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/se.js
rename to src/vitis/client/javascript/externs/moment/src/locale/se.js
diff --git a/client/javascript/externs/moment/src/locale/si.js b/src/vitis/client/javascript/externs/moment/src/locale/si.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/si.js
rename to src/vitis/client/javascript/externs/moment/src/locale/si.js
diff --git a/client/javascript/externs/moment/src/locale/sk.js b/src/vitis/client/javascript/externs/moment/src/locale/sk.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sk.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sk.js
diff --git a/client/javascript/externs/moment/src/locale/sl.js b/src/vitis/client/javascript/externs/moment/src/locale/sl.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sl.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sl.js
diff --git a/client/javascript/externs/moment/src/locale/sq.js b/src/vitis/client/javascript/externs/moment/src/locale/sq.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sq.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sq.js
diff --git a/client/javascript/externs/moment/src/locale/sr-cyrl.js b/src/vitis/client/javascript/externs/moment/src/locale/sr-cyrl.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sr-cyrl.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sr-cyrl.js
diff --git a/client/javascript/externs/moment/src/locale/sr.js b/src/vitis/client/javascript/externs/moment/src/locale/sr.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sr.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sr.js
diff --git a/client/javascript/externs/moment/src/locale/sv.js b/src/vitis/client/javascript/externs/moment/src/locale/sv.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sv.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sv.js
diff --git a/client/javascript/externs/moment/src/locale/sw.js b/src/vitis/client/javascript/externs/moment/src/locale/sw.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sw.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sw.js
diff --git a/client/javascript/externs/moment/src/locale/ta.js b/src/vitis/client/javascript/externs/moment/src/locale/ta.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ta.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ta.js
diff --git a/client/javascript/externs/moment/src/locale/te.js b/src/vitis/client/javascript/externs/moment/src/locale/te.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/te.js
rename to src/vitis/client/javascript/externs/moment/src/locale/te.js
diff --git a/client/javascript/externs/moment/src/locale/th.js b/src/vitis/client/javascript/externs/moment/src/locale/th.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/th.js
rename to src/vitis/client/javascript/externs/moment/src/locale/th.js
diff --git a/client/javascript/externs/moment/src/locale/tl-ph.js b/src/vitis/client/javascript/externs/moment/src/locale/tl-ph.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/tl-ph.js
rename to src/vitis/client/javascript/externs/moment/src/locale/tl-ph.js
diff --git a/client/javascript/externs/moment/src/locale/tlh.js b/src/vitis/client/javascript/externs/moment/src/locale/tlh.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/tlh.js
rename to src/vitis/client/javascript/externs/moment/src/locale/tlh.js
diff --git a/client/javascript/externs/moment/src/locale/tr.js b/src/vitis/client/javascript/externs/moment/src/locale/tr.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/tr.js
rename to src/vitis/client/javascript/externs/moment/src/locale/tr.js
diff --git a/client/javascript/externs/moment/src/locale/tzl.js b/src/vitis/client/javascript/externs/moment/src/locale/tzl.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/tzl.js
rename to src/vitis/client/javascript/externs/moment/src/locale/tzl.js
diff --git a/client/javascript/externs/moment/src/locale/tzm-latn.js b/src/vitis/client/javascript/externs/moment/src/locale/tzm-latn.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/tzm-latn.js
rename to src/vitis/client/javascript/externs/moment/src/locale/tzm-latn.js
diff --git a/client/javascript/externs/moment/src/locale/tzm.js b/src/vitis/client/javascript/externs/moment/src/locale/tzm.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/tzm.js
rename to src/vitis/client/javascript/externs/moment/src/locale/tzm.js
diff --git a/client/javascript/externs/moment/src/locale/uk.js b/src/vitis/client/javascript/externs/moment/src/locale/uk.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/uk.js
rename to src/vitis/client/javascript/externs/moment/src/locale/uk.js
diff --git a/client/javascript/externs/moment/src/locale/uz.js b/src/vitis/client/javascript/externs/moment/src/locale/uz.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/uz.js
rename to src/vitis/client/javascript/externs/moment/src/locale/uz.js
diff --git a/client/javascript/externs/moment/src/locale/vi.js b/src/vitis/client/javascript/externs/moment/src/locale/vi.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/vi.js
rename to src/vitis/client/javascript/externs/moment/src/locale/vi.js
diff --git a/client/javascript/externs/moment/src/locale/zh-cn.js b/src/vitis/client/javascript/externs/moment/src/locale/zh-cn.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/zh-cn.js
rename to src/vitis/client/javascript/externs/moment/src/locale/zh-cn.js
diff --git a/client/javascript/externs/moment/src/locale/zh-tw.js b/src/vitis/client/javascript/externs/moment/src/locale/zh-tw.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/zh-tw.js
rename to src/vitis/client/javascript/externs/moment/src/locale/zh-tw.js
diff --git a/client/javascript/externs/moment/src/moment.js b/src/vitis/client/javascript/externs/moment/src/moment.js
similarity index 100%
rename from client/javascript/externs/moment/src/moment.js
rename to src/vitis/client/javascript/externs/moment/src/moment.js
diff --git a/client/javascript/externs/moment/templates/amd-named.js b/src/vitis/client/javascript/externs/moment/templates/amd-named.js
similarity index 100%
rename from client/javascript/externs/moment/templates/amd-named.js
rename to src/vitis/client/javascript/externs/moment/templates/amd-named.js
diff --git a/client/javascript/externs/moment/templates/amd.js b/src/vitis/client/javascript/externs/moment/templates/amd.js
similarity index 100%
rename from client/javascript/externs/moment/templates/amd.js
rename to src/vitis/client/javascript/externs/moment/templates/amd.js
diff --git a/client/javascript/externs/moment/templates/default.js b/src/vitis/client/javascript/externs/moment/templates/default.js
similarity index 100%
rename from client/javascript/externs/moment/templates/default.js
rename to src/vitis/client/javascript/externs/moment/templates/default.js
diff --git a/client/javascript/externs/moment/templates/globals.js b/src/vitis/client/javascript/externs/moment/templates/globals.js
similarity index 100%
rename from client/javascript/externs/moment/templates/globals.js
rename to src/vitis/client/javascript/externs/moment/templates/globals.js
diff --git a/client/javascript/externs/moment/templates/locale-header.js b/src/vitis/client/javascript/externs/moment/templates/locale-header.js
similarity index 100%
rename from client/javascript/externs/moment/templates/locale-header.js
rename to src/vitis/client/javascript/externs/moment/templates/locale-header.js
diff --git a/client/javascript/externs/moment/templates/test-header.js b/src/vitis/client/javascript/externs/moment/templates/test-header.js
similarity index 100%
rename from client/javascript/externs/moment/templates/test-header.js
rename to src/vitis/client/javascript/externs/moment/templates/test-header.js
diff --git a/client/javascript/externs/openLayers/licenses/APACHE-2.0.txt b/src/vitis/client/javascript/externs/openLayers/licenses/APACHE-2.0.txt
similarity index 100%
rename from client/javascript/externs/openLayers/licenses/APACHE-2.0.txt
rename to src/vitis/client/javascript/externs/openLayers/licenses/APACHE-2.0.txt
diff --git a/client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt b/src/vitis/client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt
similarity index 100%
rename from client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt
rename to src/vitis/client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt
diff --git a/client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt b/src/vitis/client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt
similarity index 100%
rename from client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt
rename to src/vitis/client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt
diff --git a/client/javascript/externs/openLayers/ol.ext/pbf.js b/src/vitis/client/javascript/externs/openLayers/ol.ext/pbf.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol.ext/pbf.js
rename to src/vitis/client/javascript/externs/openLayers/ol.ext/pbf.js
diff --git a/client/javascript/externs/openLayers/ol.ext/pixelworks.js b/src/vitis/client/javascript/externs/openLayers/ol.ext/pixelworks.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol.ext/pixelworks.js
rename to src/vitis/client/javascript/externs/openLayers/ol.ext/pixelworks.js
diff --git a/client/javascript/externs/openLayers/ol.ext/rbush.js b/src/vitis/client/javascript/externs/openLayers/ol.ext/rbush.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol.ext/rbush.js
rename to src/vitis/client/javascript/externs/openLayers/ol.ext/rbush.js
diff --git a/client/javascript/externs/openLayers/ol.ext/vectortile.js b/src/vitis/client/javascript/externs/openLayers/ol.ext/vectortile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol.ext/vectortile.js
rename to src/vitis/client/javascript/externs/openLayers/ol.ext/vectortile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/array.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/array.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/array.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/array.js
diff --git a/client/javascript/externs/openLayers/ol/ol/assertionerror.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/assertionerror.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/assertionerror.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/assertionerror.js
diff --git a/client/javascript/externs/openLayers/ol/ol/asserts.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/asserts.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/asserts.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/asserts.js
diff --git a/client/javascript/externs/openLayers/ol/ol/attribution.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/attribution.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/attribution.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/attribution.js
diff --git a/client/javascript/externs/openLayers/ol/ol/canvasmap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/canvasmap.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/canvasmap.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/canvasmap.js
diff --git a/client/javascript/externs/openLayers/ol/ol/centerconstraint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/centerconstraint.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/centerconstraint.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/centerconstraint.js
diff --git a/client/javascript/externs/openLayers/ol/ol/collection.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/collection.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/collection.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/collection.js
diff --git a/client/javascript/externs/openLayers/ol/ol/collectioneventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/collectioneventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/collectioneventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/collectioneventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/color.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/color.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/color.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/color.js
diff --git a/client/javascript/externs/openLayers/ol/ol/color.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/color.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/color.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/color.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/colorlike.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/colorlike.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.js
diff --git a/client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/control.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/attribution.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/attribution.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/attribution.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/attribution.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/control.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/control.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/control.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/control.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/fullscreen.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/fullscreen.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/fullscreen.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/fullscreen.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/control/mouseposition.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/mouseposition.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/mouseposition.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/mouseposition.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/overviewmap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/overviewmap.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/overviewmap.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/overviewmap.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/rotate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/rotate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/rotate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/rotate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/scaleline.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/scaleline.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/scaleline.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/scaleline.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/zoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/zoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/zoomslider.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomslider.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/zoomslider.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomslider.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/coordinate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/coordinate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/css.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/css.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/css.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/css.js
diff --git a/client/javascript/externs/openLayers/ol/ol/deviceorientation.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/deviceorientation.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/deviceorientation.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/deviceorientation.js
diff --git a/client/javascript/externs/openLayers/ol/ol/disposable.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/disposable.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/disposable.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/disposable.js
diff --git a/client/javascript/externs/openLayers/ol/ol/dom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/dom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/dom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/dom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/easing.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/easing.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/easing.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/easing.js
diff --git a/client/javascript/externs/openLayers/ol/ol/easing.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/easing.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/easing.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/easing.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/events.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events.js
diff --git a/client/javascript/externs/openLayers/ol/ol/events/condition.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events/condition.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.js
diff --git a/client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/events/event.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/event.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events/event.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/event.js
diff --git a/client/javascript/externs/openLayers/ol/ol/events/eventtarget.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtarget.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events/eventtarget.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtarget.js
diff --git a/client/javascript/externs/openLayers/ol/ol/events/eventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events/eventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/events/keycode.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/keycode.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events/keycode.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/keycode.js
diff --git a/client/javascript/externs/openLayers/ol/ol/extent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/extent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/extent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/extent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/extent.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/extent.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/extent.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/extent.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/extent/corner.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/extent/corner.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/extent/corner.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/extent/corner.js
diff --git a/client/javascript/externs/openLayers/ol/ol/extent/relationship.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/extent/relationship.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/extent/relationship.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/extent/relationship.js
diff --git a/client/javascript/externs/openLayers/ol/ol/feature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/feature.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/feature.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/feature.js
diff --git a/client/javascript/externs/openLayers/ol/ol/featureloader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/featureloader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/format/esrijson.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/esrijson.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/esrijson.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/esrijson.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/feature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/feature.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/feature.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/feature.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/and.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/and.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/and.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/and.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/contains.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/contains.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/contains.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/contains.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/during.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/during.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/during.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/during.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/filter.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/filter.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/filter.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/filter.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/islike.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/islike.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/islike.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/islike.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/not.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/not.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/not.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/not.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/or.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/or.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/or.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/or.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/within.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/within.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/within.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/within.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/formattype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/formattype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/formattype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/formattype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/geojson.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/geojson.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/geojson.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/geojson.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/gml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/gml.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/gml2.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml2.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/gml2.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml2.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/gml3.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml3.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/gml3.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml3.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/gmlbase.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gmlbase.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/gmlbase.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gmlbase.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/gpx.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gpx.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/gpx.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gpx.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/igc.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/igc.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/igc.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/igc.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/igcz.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/igcz.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/igcz.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/igcz.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/kml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/kml.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/kml.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/kml.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/mvt.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/mvt.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/mvt.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/mvt.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/osmxml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/osmxml.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/osmxml.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/osmxml.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/ows.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/ows.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/ows.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/ows.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/polyline.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/polyline.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/polyline.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/polyline.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/readme.md b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/readme.md
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/readme.md
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/readme.md
diff --git a/client/javascript/externs/openLayers/ol/ol/format/textfeature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/textfeature.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/textfeature.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/textfeature.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/topojson.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/topojson.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/topojson.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/topojson.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/wfs.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wfs.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/wfs.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wfs.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/wkt.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wkt.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/wkt.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wkt.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/xlink.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xlink.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/xlink.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/xlink.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/xml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xml.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/xml.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/xml.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/xsd.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xsd.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/xsd.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/xsd.js
diff --git a/client/javascript/externs/openLayers/ol/ol/functions.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/functions.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/functions.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/functions.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geolocation.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geolocation.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geolocation.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geolocation.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geolocationproperty.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geolocationproperty.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geolocationproperty.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geolocationproperty.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/circle.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/circle.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/circle.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/circle.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/area.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/area.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/area.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/area.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/center.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/center.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/center.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/center.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/length.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/length.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/length.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/length.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geometry.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometry.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/geometry.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometry.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/linearring.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linearring.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/linearring.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linearring.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/linestring.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linestring.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/linestring.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linestring.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/multipoint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipoint.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/multipoint.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipoint.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/point.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/point.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/point.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/point.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/polygon.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/polygon.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/polygon.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/polygon.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js
diff --git a/client/javascript/externs/openLayers/ol/ol/graticule.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/graticule.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/graticule.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/graticule.js
diff --git a/client/javascript/externs/openLayers/ol/ol/has.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/has.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/has.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/has.js
diff --git a/client/javascript/externs/openLayers/ol/ol/has.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/has.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/has.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/has.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/image.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/image.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/image.js
diff --git a/client/javascript/externs/openLayers/ol/ol/imagebase.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/imagebase.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/imagebase.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/imagebase.js
diff --git a/client/javascript/externs/openLayers/ol/ol/imagecanvas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/imagecanvas.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/imagecanvas.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/imagecanvas.js
diff --git a/client/javascript/externs/openLayers/ol/ol/imagestate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/imagestate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/imagestate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/imagestate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/imagetile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/imagetile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/imagetile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/imagetile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/index.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/index.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/index.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/index.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/draw.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draw.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/draw.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draw.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/extent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/extent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/interaction.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/interaction.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/modify.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modify.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/modify.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modify.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/pointer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pointer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/pointer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pointer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/property.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/property.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/property.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/property.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/select.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/select.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/select.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/select.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/snap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/snap.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/snap.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/snap.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/translate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/translate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/kinetic.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/kinetic.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/kinetic.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/kinetic.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/base.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/base.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/base.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/base.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/group.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/group.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/group.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/group.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/heatmap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/heatmap.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/heatmap.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/heatmap.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/image.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/image.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/image.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/layer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/layer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/property.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/property.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/property.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/property.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/tile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/tile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/vector.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vector.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/vector.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vector.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/vectortile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/vectortile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layertype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layertype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layertype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layertype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/loadingstrategy.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/loadingstrategy.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.js
diff --git a/client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/map.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/map.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/map.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/map.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapevent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapevent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapevent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapevent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapeventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapeventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapeventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapeventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapproperty.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapproperty.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapproperty.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapproperty.js
diff --git a/client/javascript/externs/openLayers/ol/ol/math.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/math.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/math.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/math.js
diff --git a/client/javascript/externs/openLayers/ol/ol/net.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/net.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/net.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/net.js
diff --git a/client/javascript/externs/openLayers/ol/ol/obj.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/obj.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/obj.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/obj.js
diff --git a/client/javascript/externs/openLayers/ol/ol/object.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/object.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/object.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/object.js
diff --git a/client/javascript/externs/openLayers/ol/ol/objecteventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/objecteventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/objecteventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/objecteventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/observable.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/observable.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/observable.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/observable.js
diff --git a/client/javascript/externs/openLayers/ol/ol/overlay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/overlay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/overlay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/overlay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/overlaypositioning.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/overlaypositioning.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/overlaypositioning.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/overlaypositioning.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pluggablemap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pluggablemap.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pluggablemap.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pluggablemap.js
diff --git a/client/javascript/externs/openLayers/ol/ol/plugins.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/plugins.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/plugins.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/plugins.js
diff --git a/client/javascript/externs/openLayers/ol/ol/plugintype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/plugintype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/plugintype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/plugintype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/mssource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mssource.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/mssource.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mssource.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/common.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/common.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/common.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/common.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/proj4.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/proj4.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/proj4.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/proj4.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/projection.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projection.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/projection.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projection.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/projections.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projections.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/projections.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projections.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/transforms.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/transforms.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/transforms.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/transforms.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/units.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/units.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/units.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/units.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/render.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/render/box.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/box.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/box.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/box.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/event.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/event.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/event.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/event.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/eventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/eventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/eventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/eventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/feature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/feature.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/feature.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/feature.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/replay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/replay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/replay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/replay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/replaygroup.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaygroup.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/replaygroup.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaygroup.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/replaytype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaytype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/replaytype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaytype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/layer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/layer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/layer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/layer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/map.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/map.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/map.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/map.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/type.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/type.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/type.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/type.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/vector.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/vector.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/vector.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/vector.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/reproj.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/reproj.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/reproj.js
diff --git a/client/javascript/externs/openLayers/ol/ol/reproj/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/image.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/reproj/image.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/image.js
diff --git a/client/javascript/externs/openLayers/ol/ol/reproj/tile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/tile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/reproj/tile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/tile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js
diff --git a/client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js
diff --git a/client/javascript/externs/openLayers/ol/ol/rotationconstraint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/rotationconstraint.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/rotationconstraint.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/rotationconstraint.js
diff --git a/client/javascript/externs/openLayers/ol/ol/size.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/size.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/size.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/size.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/source.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/source/bingmaps.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/bingmaps.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/bingmaps.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/bingmaps.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/cartodb.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/cartodb.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/cartodb.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/cartodb.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/cluster.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/cluster.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/cluster.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/cluster.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/image.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/image.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/image.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagestatic.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagestatic.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/imagestatic.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagestatic.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagevector.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagevector.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/imagevector.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagevector.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagewms.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagewms.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/imagewms.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagewms.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/osm.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/osm.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/osm.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/osm.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/raster.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/raster.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/raster.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/raster.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/source.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/source.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/source.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/source.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/stamen.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/stamen.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/stamen.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/stamen.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/state.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/state.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/state.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/state.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tiledebug.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tiledebug.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tiledebug.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tiledebug.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tileimage.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileimage.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tileimage.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileimage.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tilejson.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilejson.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tilejson.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilejson.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tilewms.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilewms.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tilewms.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilewms.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/urltile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/urltile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/urltile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/urltile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/vector.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/vector.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/vector.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/vector.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/vectortile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectortile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/vectortile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectortile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/wmts.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmts.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/wmts.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmts.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/xyz.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/xyz.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/xyz.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/xyz.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/zoomify.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/zoomify.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/zoomify.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/zoomify.js
diff --git a/client/javascript/externs/openLayers/ol/ol/sphere.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/sphere.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/sphere.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/sphere.js
diff --git a/client/javascript/externs/openLayers/ol/ol/string.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/string.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/string.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/string.js
diff --git a/client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js
diff --git a/client/javascript/externs/openLayers/ol/ol/structs/lrucache.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/lrucache.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/structs/lrucache.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/structs/lrucache.js
diff --git a/client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js
diff --git a/client/javascript/externs/openLayers/ol/ol/structs/rbush.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/rbush.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/structs/rbush.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/structs/rbush.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/atlas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlas.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/atlas.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlas.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/circle.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/circle.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/circle.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/circle.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/fill.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/fill.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/fill.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/fill.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/icon.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/icon.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/icon.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/icon.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/iconimage.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimage.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/iconimage.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimage.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/iconorigin.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconorigin.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/iconorigin.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconorigin.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/image.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/image.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/image.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/style/regularshape.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/regularshape.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/regularshape.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/regularshape.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/stroke.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/stroke.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/stroke.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/stroke.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/style.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/style.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/style.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/style.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/text.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/text.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/text.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/text.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/textplacement.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/textplacement.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/textplacement.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/textplacement.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilecache.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilecache.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilecache.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilecache.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilecoord.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilecoord.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilecoord.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilecoord.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilegrid.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilegrid.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilequeue.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilequeue.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilequeue.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilequeue.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilerange.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilerange.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilerange.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilerange.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilestate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilestate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilestate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilestate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tileurlfunction.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tileurlfunction.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tileurlfunction.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tileurlfunction.js
diff --git a/client/javascript/externs/openLayers/ol/ol/transform.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/transform.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/transform.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/transform.js
diff --git a/client/javascript/externs/openLayers/ol/ol/typedefs.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/typedefs.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/typedefs.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/typedefs.js
diff --git a/client/javascript/externs/openLayers/ol/ol/uri.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/uri.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/uri.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/uri.js
diff --git a/client/javascript/externs/openLayers/ol/ol/vec/mat4.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/vec/mat4.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/vec/mat4.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/vec/mat4.js
diff --git a/client/javascript/externs/openLayers/ol/ol/vectorimagetile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/vectorimagetile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/vectorimagetile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/vectorimagetile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/vectortile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/vectortile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/vectortile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/vectortile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/view.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/view.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/view.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/view.js
diff --git a/client/javascript/externs/openLayers/ol/ol/viewhint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/viewhint.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/viewhint.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/viewhint.js
diff --git a/client/javascript/externs/openLayers/ol/ol/viewproperty.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/viewproperty.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/viewproperty.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/viewproperty.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/buffer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/buffer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/buffer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/buffer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/context.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/context.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/context.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/context.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/fragment.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/fragment.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/fragment.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/fragment.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/shader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/shader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/vertex.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/vertex.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/vertex.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/vertex.js
diff --git a/client/javascript/externs/openLayers/ol/ol/xml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/xml.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/xml.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/xml.js
diff --git a/client/javascript/externs/openLayers/ol3-ext/licence.txt b/src/vitis/client/javascript/externs/openLayers/ol3-ext/licence.txt
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/licence.txt
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/licence.txt
diff --git a/client/javascript/externs/openLayers/ol3-ext/readme.txt b/src/vitis/client/javascript/externs/openLayers/ol3-ext/readme.txt
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/readme.txt
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/readme.txt
diff --git a/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js
diff --git a/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js
diff --git a/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js
diff --git a/client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js
diff --git a/client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js
diff --git a/client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js
diff --git a/client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js b/src/vitis/client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js
diff --git a/client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js b/src/vitis/client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js
diff --git a/client/javascript/externs/rgraph/RGraph.bar_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.bar_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.bar_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.bar_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.common.context_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.context_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.common.context_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.context_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.common.core_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.core_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.common.core_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.core_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.common.dynamic_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.dynamic_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.common.dynamic_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.dynamic_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.common.effects_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.effects_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.common.effects_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.effects_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.common.key_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.key_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.common.key_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.key_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.common.tooltips_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.tooltips_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.common.tooltips_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.tooltips_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.drawing.rect_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.drawing.rect_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.drawing.rect_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.drawing.rect_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.drawing.text_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.drawing.text_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.drawing.text_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.drawing.text_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.pie_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.pie_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.pie_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.pie_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.scatter_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.scatter_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.scatter_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.scatter_min.js
diff --git a/client/javascript/externs/scripts_cryptage.js b/src/vitis/client/javascript/externs/scripts_cryptage.js
similarity index 100%
rename from client/javascript/externs/scripts_cryptage.js
rename to src/vitis/client/javascript/externs/scripts_cryptage.js
diff --git a/client/javascript/externs/showdown/showdown.js b/src/vitis/client/javascript/externs/showdown/showdown.js
similarity index 100%
rename from client/javascript/externs/showdown/showdown.js
rename to src/vitis/client/javascript/externs/showdown/showdown.js
diff --git a/client/javascript/externs/showdown/showdown.js.map b/src/vitis/client/javascript/externs/showdown/showdown.js.map
similarity index 100%
rename from client/javascript/externs/showdown/showdown.js.map
rename to src/vitis/client/javascript/externs/showdown/showdown.js.map
diff --git a/client/javascript/externs/showdown/showdown.min.js b/src/vitis/client/javascript/externs/showdown/showdown.min.js
similarity index 100%
rename from client/javascript/externs/showdown/showdown.min.js
rename to src/vitis/client/javascript/externs/showdown/showdown.min.js
diff --git a/client/javascript/externs/showdown/showdown.min.js.map b/src/vitis/client/javascript/externs/showdown/showdown.min.js.map
similarity index 100%
rename from client/javascript/externs/showdown/showdown.min.js.map
rename to src/vitis/client/javascript/externs/showdown/showdown.min.js.map
diff --git a/client/javascript/externs/studio/javascript/app/ElementForm.js b/src/vitis/client/javascript/externs/studio/javascript/app/ElementForm.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/ElementForm.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/ElementForm.js
diff --git a/client/javascript/externs/studio/javascript/app/FormBuilder.js b/src/vitis/client/javascript/externs/studio/javascript/app/FormBuilder.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/FormBuilder.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/FormBuilder.js
diff --git a/client/javascript/externs/studio/javascript/app/FormTools.js b/src/vitis/client/javascript/externs/studio/javascript/app/FormTools.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/FormTools.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/FormTools.js
diff --git a/client/javascript/externs/studio/javascript/app/JsonLoader.js b/src/vitis/client/javascript/externs/studio/javascript/app/JsonLoader.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/JsonLoader.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/JsonLoader.js
diff --git a/client/javascript/externs/studio/javascript/app/Utils.js b/src/vitis/client/javascript/externs/studio/javascript/app/Utils.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/Utils.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/Utils.js
diff --git a/client/javascript/externs/studio/javascript/app/Visualizer.js b/src/vitis/client/javascript/externs/studio/javascript/app/Visualizer.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/Visualizer.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/Visualizer.js
diff --git a/client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js
diff --git a/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js
diff --git a/client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js
diff --git a/client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js
diff --git a/client/javascript/externs/studio/lang/lang-en.json b/src/vitis/client/javascript/externs/studio/lang/lang-en.json
similarity index 100%
rename from client/javascript/externs/studio/lang/lang-en.json
rename to src/vitis/client/javascript/externs/studio/lang/lang-en.json
diff --git a/client/javascript/externs/studio/lang/lang-fr.json b/src/vitis/client/javascript/externs/studio/lang/lang-fr.json
similarity index 100%
rename from client/javascript/externs/studio/lang/lang-fr.json
rename to src/vitis/client/javascript/externs/studio/lang/lang-fr.json
diff --git a/client/javascript/externs/studio/less/CodeMirror.less b/src/vitis/client/javascript/externs/studio/less/CodeMirror.less
similarity index 100%
rename from client/javascript/externs/studio/less/CodeMirror.less
rename to src/vitis/client/javascript/externs/studio/less/CodeMirror.less
diff --git a/client/javascript/externs/studio/less/studio.less b/src/vitis/client/javascript/externs/studio/less/studio.less
similarity index 100%
rename from client/javascript/externs/studio/less/studio.less
rename to src/vitis/client/javascript/externs/studio/less/studio.less
diff --git a/client/javascript/externs/studio/properties/properties.js b/src/vitis/client/javascript/externs/studio/properties/properties.js
similarity index 100%
rename from client/javascript/externs/studio/properties/properties.js
rename to src/vitis/client/javascript/externs/studio/properties/properties.js
diff --git a/client/javascript/externs/studio/templates/Componant/Map.html b/src/vitis/client/javascript/externs/studio/templates/Componant/Map.html
similarity index 100%
rename from client/javascript/externs/studio/templates/Componant/Map.html
rename to src/vitis/client/javascript/externs/studio/templates/Componant/Map.html
diff --git a/client/javascript/externs/studio/templates/ElementForm.html b/src/vitis/client/javascript/externs/studio/templates/ElementForm.html
similarity index 100%
rename from client/javascript/externs/studio/templates/ElementForm.html
rename to src/vitis/client/javascript/externs/studio/templates/ElementForm.html
diff --git a/client/javascript/externs/studio/templates/FormTools.html b/src/vitis/client/javascript/externs/studio/templates/FormTools.html
similarity index 100%
rename from client/javascript/externs/studio/templates/FormTools.html
rename to src/vitis/client/javascript/externs/studio/templates/FormTools.html
diff --git a/client/javascript/externs/studio/templates/JsonLoader.html b/src/vitis/client/javascript/externs/studio/templates/JsonLoader.html
similarity index 100%
rename from client/javascript/externs/studio/templates/JsonLoader.html
rename to src/vitis/client/javascript/externs/studio/templates/JsonLoader.html
diff --git a/client/javascript/externs/studio/templates/MainTemplate.html b/src/vitis/client/javascript/externs/studio/templates/MainTemplate.html
similarity index 100%
rename from client/javascript/externs/studio/templates/MainTemplate.html
rename to src/vitis/client/javascript/externs/studio/templates/MainTemplate.html
diff --git a/client/javascript/externs/studio/templates/Visualizer.html b/src/vitis/client/javascript/externs/studio/templates/Visualizer.html
similarity index 100%
rename from client/javascript/externs/studio/templates/Visualizer.html
rename to src/vitis/client/javascript/externs/studio/templates/Visualizer.html
diff --git a/client/javascript/externs/studio/templates/VisualizerMode/CssMode.html b/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/CssMode.html
similarity index 100%
rename from client/javascript/externs/studio/templates/VisualizerMode/CssMode.html
rename to src/vitis/client/javascript/externs/studio/templates/VisualizerMode/CssMode.html
diff --git a/client/javascript/externs/studio/templates/VisualizerMode/FormMode.html b/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/FormMode.html
similarity index 100%
rename from client/javascript/externs/studio/templates/VisualizerMode/FormMode.html
rename to src/vitis/client/javascript/externs/studio/templates/VisualizerMode/FormMode.html
diff --git a/client/javascript/externs/studio/templates/VisualizerMode/JsMode.html b/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsMode.html
similarity index 100%
rename from client/javascript/externs/studio/templates/VisualizerMode/JsMode.html
rename to src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsMode.html
diff --git a/client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html b/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html
similarity index 100%
rename from client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html
rename to src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html
diff --git a/client/javascript/externs/tinymce/LICENSE.TXT b/src/vitis/client/javascript/externs/tinymce/LICENSE.TXT
similarity index 100%
rename from client/javascript/externs/tinymce/LICENSE.TXT
rename to src/vitis/client/javascript/externs/tinymce/LICENSE.TXT
diff --git a/client/javascript/externs/tinymce/langs/fr_FR.js b/src/vitis/client/javascript/externs/tinymce/langs/fr_FR.js
similarity index 100%
rename from client/javascript/externs/tinymce/langs/fr_FR.js
rename to src/vitis/client/javascript/externs/tinymce/langs/fr_FR.js
diff --git a/client/javascript/externs/tinymce/plugins/image/plugin.min.js b/src/vitis/client/javascript/externs/tinymce/plugins/image/plugin.min.js
similarity index 100%
rename from client/javascript/externs/tinymce/plugins/image/plugin.min.js
rename to src/vitis/client/javascript/externs/tinymce/plugins/image/plugin.min.js
diff --git a/client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css
diff --git a/client/javascript/externs/tinymce/skins/lightgray/content.min.css b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.min.css
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/content.min.css
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.min.css
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff
diff --git a/client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif
diff --git a/client/javascript/externs/tinymce/skins/lightgray/img/loader.gif b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/loader.gif
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/img/loader.gif
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/loader.gif
diff --git a/client/javascript/externs/tinymce/skins/lightgray/img/object.gif b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/object.gif
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/img/object.gif
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/object.gif
diff --git a/client/javascript/externs/tinymce/skins/lightgray/img/trans.gif b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/trans.gif
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/img/trans.gif
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/trans.gif
diff --git a/client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css
diff --git a/client/javascript/externs/tinymce/skins/lightgray/skin.min.css b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.min.css
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/skin.min.css
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.min.css
diff --git a/client/javascript/externs/tinymce/themes/modern/theme.min.js b/src/vitis/client/javascript/externs/tinymce/themes/modern/theme.min.js
similarity index 100%
rename from client/javascript/externs/tinymce/themes/modern/theme.min.js
rename to src/vitis/client/javascript/externs/tinymce/themes/modern/theme.min.js
diff --git a/client/javascript/externs/tinymce/tinymce.min.js b/src/vitis/client/javascript/externs/tinymce/tinymce.min.js
similarity index 100%
rename from client/javascript/externs/tinymce/tinymce.min.js
rename to src/vitis/client/javascript/externs/tinymce/tinymce.min.js
diff --git a/client/javascript/externs/underscore-min.js b/src/vitis/client/javascript/externs/underscore-min.js
similarity index 100%
rename from client/javascript/externs/underscore-min.js
rename to src/vitis/client/javascript/externs/underscore-min.js
diff --git a/client/javascript/externs/underscore.js b/src/vitis/client/javascript/externs/underscore.js
similarity index 100%
rename from client/javascript/externs/underscore.js
rename to src/vitis/client/javascript/externs/underscore.js
diff --git a/client/javascript/externs/viewer/Apache-License-2.0.txt b/src/vitis/client/javascript/externs/viewer/Apache-License-2.0.txt
similarity index 100%
rename from client/javascript/externs/viewer/Apache-License-2.0.txt
rename to src/vitis/client/javascript/externs/viewer/Apache-License-2.0.txt
diff --git a/client/javascript/externs/viewer/viewer.min.js b/src/vitis/client/javascript/externs/viewer/viewer.min.js
similarity index 100%
rename from client/javascript/externs/viewer/viewer.min.js
rename to src/vitis/client/javascript/externs/viewer/viewer.min.js
diff --git a/client/javascript/require/requireVitis.js b/src/vitis/client/javascript/require/requireVitis.js
similarity index 100%
rename from client/javascript/require/requireVitis.js
rename to src/vitis/client/javascript/require/requireVitis.js
diff --git a/client/javascript/test/e2e/Output/order/htmlReport.html b/src/vitis/client/javascript/test/e2e/Output/order/htmlReport.html
similarity index 100%
rename from client/javascript/test/e2e/Output/order/htmlReport.html
rename to src/vitis/client/javascript/test/e2e/Output/order/htmlReport.html
diff --git a/client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png b/src/vitis/client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png
diff --git a/client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png b/src/vitis/client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png
diff --git a/client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png b/src/vitis/client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png
diff --git a/client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png b/src/vitis/client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png
diff --git a/client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png b/src/vitis/client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png
diff --git a/client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png b/src/vitis/client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png
diff --git a/client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png b/src/vitis/client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png
diff --git a/client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png b/src/vitis/client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png
diff --git a/client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png b/src/vitis/client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png
diff --git a/client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png b/src/vitis/client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png
diff --git a/client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png b/src/vitis/client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png
diff --git a/client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png b/src/vitis/client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png
diff --git a/client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png b/src/vitis/client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png
diff --git a/client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png b/src/vitis/client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png
diff --git a/client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png b/src/vitis/client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png
diff --git a/client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png b/src/vitis/client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png
diff --git a/client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png b/src/vitis/client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png
diff --git a/client/javascript/test/e2e/Output/publication/htmlReport.html b/src/vitis/client/javascript/test/e2e/Output/publication/htmlReport.html
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/htmlReport.html
rename to src/vitis/client/javascript/test/e2e/Output/publication/htmlReport.html
diff --git a/client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png
diff --git a/client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png
diff --git a/client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png
diff --git a/client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png
diff --git a/client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png
diff --git a/client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png
diff --git a/client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png
diff --git a/client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png
diff --git a/client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png
diff --git a/client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png
diff --git a/client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png
diff --git a/client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png
diff --git a/client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png
diff --git a/client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png
diff --git a/client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png
diff --git a/client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png
diff --git a/client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png
diff --git a/client/javascript/test/e2e/VeremesTest.js b/src/vitis/client/javascript/test/e2e/VeremesTest.js
similarity index 100%
rename from client/javascript/test/e2e/VeremesTest.js
rename to src/vitis/client/javascript/test/e2e/VeremesTest.js
diff --git a/client/javascript/test/e2e/cu_vitis_abonnement.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_abonnement.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_abonnement.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_abonnement.bat
diff --git a/client/javascript/test/e2e/cu_vitis_ad.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_ad.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_ad.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_ad.bat
diff --git a/client/javascript/test/e2e/cu_vitis_categorie.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_categorie.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_categorie.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_categorie.bat
diff --git a/client/javascript/test/e2e/cu_vitis_depot.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_depot.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_depot.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_depot.bat
diff --git a/client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat
diff --git a/client/javascript/test/e2e/cu_vitis_filter.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_filter.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_filter.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_filter.bat
diff --git a/client/javascript/test/e2e/cu_vitis_formulaire.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_formulaire.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_formulaire.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_formulaire.bat
diff --git a/client/javascript/test/e2e/cu_vitis_import_export.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_import_export.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_import_export.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_import_export.bat
diff --git a/client/javascript/test/e2e/cu_vitis_ip.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_ip.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_ip.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_ip.bat
diff --git a/client/javascript/test/e2e/cu_vitis_lot.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_lot.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_lot.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_lot.bat
diff --git a/client/javascript/test/e2e/cu_vitis_metadata.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_metadata.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_metadata.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_metadata.bat
diff --git a/client/javascript/test/e2e/cu_vitis_moteurs.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_moteurs.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_moteurs.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_moteurs.bat
diff --git a/client/javascript/test/e2e/cu_vitis_order.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_order.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_order.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_order.bat
diff --git a/client/javascript/test/e2e/cu_vitis_publication.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_publication.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_publication.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_publication.bat
diff --git a/client/javascript/test/e2e/cu_vitis_unicite.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_unicite.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_unicite.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_unicite.bat
diff --git a/client/javascript/test/e2e/cu_vitis_upload.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_upload.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_upload.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_upload.bat
diff --git a/client/javascript/test/e2e/cu_vitis_upload_fmw.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_upload_fmw.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_upload_fmw.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_upload_fmw.bat
diff --git a/client/javascript/test/e2e/cu_vitis_upload_zip.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_upload_zip.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_upload_zip.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_upload_zip.bat
diff --git a/client/javascript/test/e2e/cu_vitis_user_existant.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_user_existant.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_user_existant.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_user_existant.bat
diff --git a/client/javascript/test/e2e/cu_vitis_users.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_users.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_users.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_users.bat
diff --git a/client/javascript/test/e2e/cu_vitis_users_linux.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_users_linux.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_users_linux.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_users_linux.bat
diff --git a/client/javascript/test/e2e/cu_vitis_users_speciaux.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_users_speciaux.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_users_speciaux.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_users_speciaux.bat
diff --git a/client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js
diff --git a/client/javascript/test/e2e/protractor.conf.abonnement.js b/src/vitis/client/javascript/test/e2e/protractor.conf.abonnement.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.abonnement.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.abonnement.js
diff --git a/client/javascript/test/e2e/protractor.conf.ad.js b/src/vitis/client/javascript/test/e2e/protractor.conf.ad.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.ad.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.ad.js
diff --git a/client/javascript/test/e2e/protractor.conf.categorie.js b/src/vitis/client/javascript/test/e2e/protractor.conf.categorie.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.categorie.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.categorie.js
diff --git a/client/javascript/test/e2e/protractor.conf.depot.js b/src/vitis/client/javascript/test/e2e/protractor.conf.depot.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.depot.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.depot.js
diff --git a/client/javascript/test/e2e/protractor.conf.fichiers_interdits.js b/src/vitis/client/javascript/test/e2e/protractor.conf.fichiers_interdits.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.fichiers_interdits.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.fichiers_interdits.js
diff --git a/client/javascript/test/e2e/protractor.conf.filter.js b/src/vitis/client/javascript/test/e2e/protractor.conf.filter.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.filter.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.filter.js
diff --git a/client/javascript/test/e2e/protractor.conf.formulaire.js b/src/vitis/client/javascript/test/e2e/protractor.conf.formulaire.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.formulaire.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.formulaire.js
diff --git a/client/javascript/test/e2e/protractor.conf.import.export.js b/src/vitis/client/javascript/test/e2e/protractor.conf.import.export.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.import.export.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.import.export.js
diff --git a/client/javascript/test/e2e/protractor.conf.ip.js b/src/vitis/client/javascript/test/e2e/protractor.conf.ip.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.ip.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.ip.js
diff --git a/client/javascript/test/e2e/protractor.conf.js b/src/vitis/client/javascript/test/e2e/protractor.conf.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.js
diff --git a/client/javascript/test/e2e/protractor.conf.lot.js b/src/vitis/client/javascript/test/e2e/protractor.conf.lot.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.lot.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.lot.js
diff --git a/client/javascript/test/e2e/protractor.conf.metada.js b/src/vitis/client/javascript/test/e2e/protractor.conf.metada.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.metada.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.metada.js
diff --git a/client/javascript/test/e2e/protractor.conf.metadata.js b/src/vitis/client/javascript/test/e2e/protractor.conf.metadata.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.metadata.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.metadata.js
diff --git a/client/javascript/test/e2e/protractor.conf.moteurs.js b/src/vitis/client/javascript/test/e2e/protractor.conf.moteurs.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.moteurs.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.moteurs.js
diff --git a/client/javascript/test/e2e/protractor.conf.order.js b/src/vitis/client/javascript/test/e2e/protractor.conf.order.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.order.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.order.js
diff --git a/client/javascript/test/e2e/protractor.conf.publication.js b/src/vitis/client/javascript/test/e2e/protractor.conf.publication.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.publication.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.publication.js
diff --git a/client/javascript/test/e2e/protractor.conf.unicite.js b/src/vitis/client/javascript/test/e2e/protractor.conf.unicite.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.unicite.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.unicite.js
diff --git a/client/javascript/test/e2e/protractor.conf.upload.js b/src/vitis/client/javascript/test/e2e/protractor.conf.upload.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.upload.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.upload.js
diff --git a/client/javascript/test/e2e/protractor.conf.upload_fmw.js b/src/vitis/client/javascript/test/e2e/protractor.conf.upload_fmw.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.upload_fmw.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.upload_fmw.js
diff --git a/client/javascript/test/e2e/protractor.conf.upload_zip.js b/src/vitis/client/javascript/test/e2e/protractor.conf.upload_zip.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.upload_zip.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.upload_zip.js
diff --git a/client/javascript/test/e2e/protractor.conf.user_existant.js b/src/vitis/client/javascript/test/e2e/protractor.conf.user_existant.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.user_existant.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.user_existant.js
diff --git a/client/javascript/test/e2e/protractor.conf.users.js b/src/vitis/client/javascript/test/e2e/protractor.conf.users.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.users.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.users.js
diff --git a/client/javascript/test/e2e/protractor.conf.users_speciaux.js b/src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.users_speciaux.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.js
diff --git a/client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js b/src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js
diff --git a/client/javascript/test/e2e/protractor.conf.verrouillage_projet.js b/src/vitis/client/javascript/test/e2e/protractor.conf.verrouillage_projet.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.verrouillage_projet.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.verrouillage_projet.js
diff --git a/client/javascript/test/e2e/resource/DATE.gex b/src/vitis/client/javascript/test/e2e/resource/DATE.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/DATE.gex
rename to src/vitis/client/javascript/test/e2e/resource/DATE.gex
diff --git a/client/javascript/test/e2e/resource/DPT.DBF b/src/vitis/client/javascript/test/e2e/resource/DPT.DBF
similarity index 100%
rename from client/javascript/test/e2e/resource/DPT.DBF
rename to src/vitis/client/javascript/test/e2e/resource/DPT.DBF
diff --git a/client/javascript/test/e2e/resource/DPT.SHP b/src/vitis/client/javascript/test/e2e/resource/DPT.SHP
similarity index 100%
rename from client/javascript/test/e2e/resource/DPT.SHP
rename to src/vitis/client/javascript/test/e2e/resource/DPT.SHP
diff --git a/client/javascript/test/e2e/resource/DPT.SHX b/src/vitis/client/javascript/test/e2e/resource/DPT.SHX
similarity index 100%
rename from client/javascript/test/e2e/resource/DPT.SHX
rename to src/vitis/client/javascript/test/e2e/resource/DPT.SHX
diff --git a/client/javascript/test/e2e/resource/DPT.prj b/src/vitis/client/javascript/test/e2e/resource/DPT.prj
similarity index 100%
rename from client/javascript/test/e2e/resource/DPT.prj
rename to src/vitis/client/javascript/test/e2e/resource/DPT.prj
diff --git a/client/javascript/test/e2e/resource/DPT.zip b/src/vitis/client/javascript/test/e2e/resource/DPT.zip
similarity index 100%
rename from client/javascript/test/e2e/resource/DPT.zip
rename to src/vitis/client/javascript/test/e2e/resource/DPT.zip
diff --git a/client/javascript/test/e2e/resource/choix_multiple.fmw b/src/vitis/client/javascript/test/e2e/resource/choix_multiple.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/choix_multiple.fmw
rename to src/vitis/client/javascript/test/e2e/resource/choix_multiple.fmw
diff --git a/client/javascript/test/e2e/resource/choix_multiple.log b/src/vitis/client/javascript/test/e2e/resource/choix_multiple.log
similarity index 100%
rename from client/javascript/test/e2e/resource/choix_multiple.log
rename to src/vitis/client/javascript/test/e2e/resource/choix_multiple.log
diff --git a/client/javascript/test/e2e/resource/controle_quali.gex b/src/vitis/client/javascript/test/e2e/resource/controle_quali.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/controle_quali.gex
rename to src/vitis/client/javascript/test/e2e/resource/controle_quali.gex
diff --git a/client/javascript/test/e2e/resource/dep dep.zip b/src/vitis/client/javascript/test/e2e/resource/dep dep.zip
similarity index 100%
rename from client/javascript/test/e2e/resource/dep dep.zip
rename to src/vitis/client/javascript/test/e2e/resource/dep dep.zip
diff --git a/client/javascript/test/e2e/resource/depts.zip b/src/vitis/client/javascript/test/e2e/resource/depts.zip
similarity index 100%
rename from client/javascript/test/e2e/resource/depts.zip
rename to src/vitis/client/javascript/test/e2e/resource/depts.zip
diff --git a/client/javascript/test/e2e/resource/dpt2.dbf b/src/vitis/client/javascript/test/e2e/resource/dpt2.dbf
similarity index 100%
rename from client/javascript/test/e2e/resource/dpt2.dbf
rename to src/vitis/client/javascript/test/e2e/resource/dpt2.dbf
diff --git a/client/javascript/test/e2e/resource/dpt2.prj b/src/vitis/client/javascript/test/e2e/resource/dpt2.prj
similarity index 100%
rename from client/javascript/test/e2e/resource/dpt2.prj
rename to src/vitis/client/javascript/test/e2e/resource/dpt2.prj
diff --git a/client/javascript/test/e2e/resource/dpt2.shp b/src/vitis/client/javascript/test/e2e/resource/dpt2.shp
similarity index 100%
rename from client/javascript/test/e2e/resource/dpt2.shp
rename to src/vitis/client/javascript/test/e2e/resource/dpt2.shp
diff --git a/client/javascript/test/e2e/resource/dpt2.shx b/src/vitis/client/javascript/test/e2e/resource/dpt2.shx
similarity index 100%
rename from client/javascript/test/e2e/resource/dpt2.shx
rename to src/vitis/client/javascript/test/e2e/resource/dpt2.shx
diff --git a/client/javascript/test/e2e/resource/dpt2.zip b/src/vitis/client/javascript/test/e2e/resource/dpt2.zip
similarity index 100%
rename from client/javascript/test/e2e/resource/dpt2.zip
rename to src/vitis/client/javascript/test/e2e/resource/dpt2.zip
diff --git "a/client/javascript/test/e2e/resource/d\303\251p.zip" "b/src/vitis/client/javascript/test/e2e/resource/d\303\251p.zip"
similarity index 100%
rename from "client/javascript/test/e2e/resource/d\303\251p.zip"
rename to "src/vitis/client/javascript/test/e2e/resource/d\303\251p.zip"
diff --git a/client/javascript/test/e2e/resource/ee aa.fmw b/src/vitis/client/javascript/test/e2e/resource/ee aa.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/ee aa.fmw
rename to src/vitis/client/javascript/test/e2e/resource/ee aa.fmw
diff --git a/client/javascript/test/e2e/resource/exemples.gex b/src/vitis/client/javascript/test/e2e/resource/exemples.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/exemples.gex
rename to src/vitis/client/javascript/test/e2e/resource/exemples.gex
diff --git "a/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" "b/src/vitis/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex"
similarity index 100%
rename from "client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex"
rename to "src/vitis/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex"
diff --git a/client/javascript/test/e2e/resource/import_export.gex b/src/vitis/client/javascript/test/e2e/resource/import_export.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/import_export.gex
rename to src/vitis/client/javascript/test/e2e/resource/import_export.gex
diff --git a/client/javascript/test/e2e/resource/import_export2.gex b/src/vitis/client/javascript/test/e2e/resource/import_export2.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/import_export2.gex
rename to src/vitis/client/javascript/test/e2e/resource/import_export2.gex
diff --git a/client/javascript/test/e2e/resource/it3/ARDECHE.dbf b/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.dbf
similarity index 100%
rename from client/javascript/test/e2e/resource/it3/ARDECHE.dbf
rename to src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.dbf
diff --git a/client/javascript/test/e2e/resource/it3/ARDECHE.prj b/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.prj
similarity index 100%
rename from client/javascript/test/e2e/resource/it3/ARDECHE.prj
rename to src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.prj
diff --git a/client/javascript/test/e2e/resource/it3/ARDECHE.shp b/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shp
similarity index 100%
rename from client/javascript/test/e2e/resource/it3/ARDECHE.shp
rename to src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shp
diff --git a/client/javascript/test/e2e/resource/it3/ARDECHE.shx b/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shx
similarity index 100%
rename from client/javascript/test/e2e/resource/it3/ARDECHE.shx
rename to src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shx
diff --git a/client/javascript/test/e2e/resource/metadata.fmw b/src/vitis/client/javascript/test/e2e/resource/metadata.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/metadata.fmw
rename to src/vitis/client/javascript/test/e2e/resource/metadata.fmw
diff --git a/client/javascript/test/e2e/resource/metadata.log b/src/vitis/client/javascript/test/e2e/resource/metadata.log
similarity index 100%
rename from client/javascript/test/e2e/resource/metadata.log
rename to src/vitis/client/javascript/test/e2e/resource/metadata.log
diff --git a/client/javascript/test/e2e/resource/metadata2.fmw b/src/vitis/client/javascript/test/e2e/resource/metadata2.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/metadata2.fmw
rename to src/vitis/client/javascript/test/e2e/resource/metadata2.fmw
diff --git a/client/javascript/test/e2e/resource/selection_villes.gex b/src/vitis/client/javascript/test/e2e/resource/selection_villes.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/selection_villes.gex
rename to src/vitis/client/javascript/test/e2e/resource/selection_villes.gex
diff --git a/client/javascript/test/e2e/resource/shp2mif.fmw b/src/vitis/client/javascript/test/e2e/resource/shp2mif.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/shp2mif.fmw
rename to src/vitis/client/javascript/test/e2e/resource/shp2mif.fmw
diff --git a/client/javascript/test/e2e/resource/t_abonnement.fmw b/src/vitis/client/javascript/test/e2e/resource/t_abonnement.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/t_abonnement.fmw
rename to src/vitis/client/javascript/test/e2e/resource/t_abonnement.fmw
diff --git a/client/javascript/test/e2e/resource/t_formulaire.fmw b/src/vitis/client/javascript/test/e2e/resource/t_formulaire.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/t_formulaire.fmw
rename to src/vitis/client/javascript/test/e2e/resource/t_formulaire.fmw
diff --git a/client/javascript/test/e2e/resource/t_importparlot1.fmw b/src/vitis/client/javascript/test/e2e/resource/t_importparlot1.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/t_importparlot1.fmw
rename to src/vitis/client/javascript/test/e2e/resource/t_importparlot1.fmw
diff --git a/client/javascript/test/e2e/resource/t_importparlot2.fmw b/src/vitis/client/javascript/test/e2e/resource/t_importparlot2.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/t_importparlot2.fmw
rename to src/vitis/client/javascript/test/e2e/resource/t_importparlot2.fmw
diff --git a/client/javascript/test/e2e/resource/t_unicite.fmw b/src/vitis/client/javascript/test/e2e/resource/t_unicite.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/t_unicite.fmw
rename to src/vitis/client/javascript/test/e2e/resource/t_unicite.fmw
diff --git a/client/javascript/test/e2e/resource/test_gex.gex b/src/vitis/client/javascript/test/e2e/resource/test_gex.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/test_gex.gex
rename to src/vitis/client/javascript/test/e2e/resource/test_gex.gex
diff --git a/client/javascript/test/e2e/resource/test_param_choice_villes.fmw b/src/vitis/client/javascript/test/e2e/resource/test_param_choice_villes.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/test_param_choice_villes.fmw
rename to src/vitis/client/javascript/test/e2e/resource/test_param_choice_villes.fmw
diff --git a/client/javascript/test/e2e/resource/test_param_couleur.fmw b/src/vitis/client/javascript/test/e2e/resource/test_param_couleur.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/test_param_couleur.fmw
rename to src/vitis/client/javascript/test/e2e/resource/test_param_couleur.fmw
diff --git a/client/javascript/test/e2e/resource/test_param_date_time.fmw b/src/vitis/client/javascript/test/e2e/resource/test_param_date_time.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/test_param_date_time.fmw
rename to src/vitis/client/javascript/test/e2e/resource/test_param_date_time.fmw
diff --git a/client/javascript/test/e2e/resource/test_param_date_time.log b/src/vitis/client/javascript/test/e2e/resource/test_param_date_time.log
similarity index 100%
rename from client/javascript/test/e2e/resource/test_param_date_time.log
rename to src/vitis/client/javascript/test/e2e/resource/test_param_date_time.log
diff --git a/client/javascript/test/e2e/resource/villes.zip b/src/vitis/client/javascript/test/e2e/resource/villes.zip
similarity index 100%
rename from client/javascript/test/e2e/resource/villes.zip
rename to src/vitis/client/javascript/test/e2e/resource/villes.zip
diff --git a/client/javascript/test/e2e/resource/vse.jpg b/src/vitis/client/javascript/test/e2e/resource/vse.jpg
similarity index 100%
rename from client/javascript/test/e2e/resource/vse.jpg
rename to src/vitis/client/javascript/test/e2e/resource/vse.jpg
diff --git "a/client/javascript/test/e2e/resource/\303\251\303\240.fmw" "b/src/vitis/client/javascript/test/e2e/resource/\303\251\303\240.fmw"
similarity index 100%
rename from "client/javascript/test/e2e/resource/\303\251\303\240.fmw"
rename to "src/vitis/client/javascript/test/e2e/resource/\303\251\303\240.fmw"
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_abonnement.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_abonnement.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_abonnement.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_abonnement.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_ad.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ad.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_ad.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ad.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_categorie.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_categorie.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_categorie.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_categorie.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_depot.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_depot.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_depot.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_depot.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_filter.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_filter.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_filter.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_filter.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_fme_params.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fme_params.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_fme_params.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fme_params.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_formulaire.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_formulaire.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_formulaire.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_formulaire.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_import_export.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_import_export.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_import_export.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_import_export.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_ip.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ip.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_ip.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ip.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_lot.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_lot.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_lot.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_lot.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_metadata.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_metadata.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_metadata.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_metadata.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_moteurs.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_moteurs.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_moteurs.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_moteurs.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_order.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_order.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_order.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_order.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_publication.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_publication.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_publication.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_publication.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_unicite.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_unicite.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_unicite.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_unicite.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_upload.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_upload.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_user_existant.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_user_existant.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_user_existant.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_user_existant.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_users.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_users.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_users_linux.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_linux.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_users_linux.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_linux.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js
diff --git a/client/lang/lang-en.json b/src/vitis/client/lang/lang-en.json
similarity index 95%
rename from client/lang/lang-en.json
rename to src/vitis/client/lang/lang-en.json
index 349fcf07df20a59f918709e36e4db469d4cfcffb..0038b8111b023f79ac39954b3ddc1e892fbeeb59 100644
--- a/client/lang/lang-en.json
+++ b/src/vitis/client/lang/lang-en.json
@@ -7,6 +7,7 @@
     "FORM_LOGIN_CONNECTION_ERROR": "Connection failed. Incorrect user / password / domain or database not available",
     "FORM_LOGIN_CONNECTION_ERROR_FORBIDDEN_IP": "Connection failed. IP [IPAddress] forbiden",
     "FORM_LOGIN_CONNECTION_ERROR_MISSING_PRIVILEGES": "Connection failed. The user does not have the required privileges. Please contact your administrator.",
+    "FORM_LOGIN_CONNECTION_ERROR_UNREACHABLE_DATABASE": "The application is currently unavailable (database unreachable).",
     "FORM_LOGIN_REMEMBER_ME": "Remember connection?",
     "FORM_APP_STATUS_ERROR": "Unstable application",
     "FORM_VAS_STATUS_ERROR": "Unstable VAS",
diff --git a/client/lang/lang-fr.json b/src/vitis/client/lang/lang-fr.json
similarity index 96%
rename from client/lang/lang-fr.json
rename to src/vitis/client/lang/lang-fr.json
index 5c5eb178de24b151ef22b6b2e7c0701363bc0297..7dfe445bb0d0440f1fc6b9a0b41d979c21b9a308 100644
--- a/client/lang/lang-fr.json
+++ b/src/vitis/client/lang/lang-fr.json
@@ -7,6 +7,7 @@
     "FORM_LOGIN_CONNECTION_ERROR": "Connexion refusée. Utilisateur / Mot de passe / domaine incorrect ou base de données non disponible.",
     "FORM_LOGIN_CONNECTION_ERROR_FORBIDDEN_IP": "Connexion refusée. Adresse IP [IPAddress] non autorisée",
     "FORM_LOGIN_CONNECTION_ERROR_MISSING_PRIVILEGES": "Connexion refusée. L'utilisateur ne dispose pas des privilèges requis. Merci de contacter votre administrateur.",
+    "FORM_LOGIN_CONNECTION_ERROR_UNREACHABLE_DATABASE": "L'application est actuellement indisponible (base de données injoignable).",
     "FORM_LOGIN_REMEMBER_ME": "Se souvenir de moi ?",
     "FORM_APP_STATUS_ERROR": "Application instable",
     "FORM_VAS_STATUS_ERROR": "VAS instable",
diff --git a/client/less/doubleForm.less b/src/vitis/client/less/doubleForm.less
similarity index 100%
rename from client/less/doubleForm.less
rename to src/vitis/client/less/doubleForm.less
diff --git a/client/less/htmlForm.less b/src/vitis/client/less/htmlForm.less
similarity index 97%
rename from client/less/htmlForm.less
rename to src/vitis/client/less/htmlForm.less
index 10480f56b30c5eefffc323ea0264d948b3675294..99e18c281d2a56bae257aa96f5758214cc3b46c9 100755
--- a/client/less/htmlForm.less
+++ b/src/vitis/client/less/htmlForm.less
@@ -595,3 +595,16 @@ form .checkbox {
 .timepicker-picker > table, .bootstrap-datetimepicker-widget .picker-switch .table-condensed {
     margin: auto
 }
+
+// Loader ajax pour un element de formulaire.
+.form-glyphicon-refresh-animate {
+    display: inline-block;
+    top: 3px !important;
+    left: 3px;
+    font-size: large;
+    font-weight: 800;
+    color: black;
+    -webkit-animation:spin 1.5s linear infinite;
+    -moz-animation:spin 1.5s linear infinite;
+    animation:spin 1.5s linear infinite;
+}
diff --git a/client/less/login.less b/src/vitis/client/less/login.less
similarity index 100%
rename from client/less/login.less
rename to src/vitis/client/less/login.less
diff --git a/client/less/main.less b/src/vitis/client/less/main.less
old mode 100755
new mode 100644
similarity index 100%
rename from client/less/main.less
rename to src/vitis/client/less/main.less
diff --git a/client/less/mobile.less b/src/vitis/client/less/mobile.less
similarity index 100%
rename from client/less/mobile.less
rename to src/vitis/client/less/mobile.less
diff --git a/client/less/sectionForm.less b/src/vitis/client/less/sectionForm.less
similarity index 100%
rename from client/less/sectionForm.less
rename to src/vitis/client/less/sectionForm.less
diff --git a/client/less/simpleForm.less b/src/vitis/client/less/simpleForm.less
similarity index 100%
rename from client/less/simpleForm.less
rename to src/vitis/client/less/simpleForm.less
diff --git a/client/less/workspaceList.less b/src/vitis/client/less/workspaceList.less
similarity index 100%
rename from client/less/workspaceList.less
rename to src/vitis/client/less/workspaceList.less
diff --git a/client/modules/vitis/data/proj.json b/src/vitis/client/modules/vitis/data/proj.json
similarity index 100%
rename from client/modules/vitis/data/proj.json
rename to src/vitis/client/modules/vitis/data/proj.json
diff --git a/client/modules/vitis/forms/configuration/configuration_vitis_configuration.json b/src/vitis/client/modules/vitis/forms/configuration/configuration_vitis_configuration.json
old mode 100755
new mode 100644
similarity index 100%
rename from client/modules/vitis/forms/configuration/configuration_vitis_configuration.json
rename to src/vitis/client/modules/vitis/forms/configuration/configuration_vitis_configuration.json
diff --git a/src/vitis/client/modules/vitis/forms/exploitation/exploitation_exploitation.json b/src/vitis/client/modules/vitis/forms/exploitation/exploitation_exploitation.json
new file mode 100755
index 0000000000000000000000000000000000000000..a7b4cde99ba8412476eb7ffe7a66a37f9c7c9bed
--- /dev/null
+++ b/src/vitis/client/modules/vitis/forms/exploitation/exploitation_exploitation.json
@@ -0,0 +1,160 @@
+{
+    "search":{
+            
+    },
+    "update":{
+        "name":"gtf_exploitation_shared_directory_update_form",
+        "title":"FORM_TITLE_EXPLOITATION_EXPLOITATION",
+        "initEvent":"initExploitationSharedDirectoryForm()",
+        "event":"",
+        "input_size":"xs",
+        "nb_cols":12,
+        "class":"project-directory-upload-form",
+        "rows":[
+            {
+                "class":"shared-directory-treeview",
+                "fields":[
+                    {
+                        "type":"treeview",
+                        "name":"shared_directory",
+                        "label":"",
+                        "required":false,
+                        "pattern":"",
+                        "nb_cols":12,
+                        "id":"shared_directory",
+                        "options":{
+                            "showBorder":false,
+                            "levels":0,
+                            "showCheckbox":true,
+                            "expandIcon":"glyphicon glyphicon-folder-close",
+                            "collapseIcon":"glyphicon glyphicon-folder-open",
+                            "highlightSelected":true,
+                            "multiSelect":false,
+                            "dataLoadingEvent": "sharedDirectoryTreeviewDataLoaded"
+                        }
+                    }
+                ]
+            },            
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"btn_download_file",
+                                "glyphicon":"download",
+                                "class":"btn-primary btn-xs",
+                                "event":"downloadFile()",
+                                "tooltip": {
+                                        "title":"FORM_DOWNLOAD_FILE_EXPLOITATION_EXPLOITATION",
+                                        "placement": "bottom",
+                                        "trigger": "hover",
+                                        "container": "body"
+                                },
+                                "visible":false
+                            },
+                            {
+                                "type":"button",
+                                "name":"btn_refresh_treeview",
+                                "glyphicon":"refresh",
+                                "class":"btn-primary btn-xs",
+                                "event":"refreshExploitationSharedDirectoryTreeview()",
+                                "tooltip": {
+                                        "title":"FORM_RELOAD_DIRECTORY_EXPLOITATION_EXPLOITATION",
+                                        "placement": "bottom",
+                                        "trigger": "hover",
+                                        "container": "body"
+                                }
+                            },
+                            {
+                                "type":"button",
+                                "name":"btn_delete_file",
+                                "glyphicon":"trash",
+                                "class":"btn-primary btn-xs",
+                                "event":"deleteSharedDirectoryFiles()",
+                                "tooltip": {
+                                        "title":"FORM_DELETE_FILES_EXPLOITATION_EXPLOITATION",
+                                        "placement": "bottom",
+                                        "trigger": "hover"
+                                }
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "class":"form-field-inline",
+                "fields":[
+                    {
+                        "type":"upload",
+                        "name":"file",
+                        "label":"FORM_FILE_EXPLOITATION_EXPLOITATION",
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"text",
+                        "name":"directory_name",
+                        "label":"FORM_DIRECTORY_EXPLOITATION_EXPLOITATION",
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "class":"form-field-inline",
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":4,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"btn_upload_file",
+                                "label":"FORM_UPLOAD_FMW_FILE_EXPLOITATION_EXPLOITATION",
+                                "event":"uploadSharedDirectoryFile()",
+                                "class":"btn-primary"
+                            }
+                        ]
+                    },
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":4,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"btn_create_directory",
+                                "label":"FORM_BTN_CREATE_DIRECTORY_EXPLOITATION_EXPLOITATION",
+                                "event":"createSharedDirectoryFolder()",
+                                "class":"btn-primary"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+            
+    },
+    "display":{
+        "name":"gtf_exploitation_shared_directory_display_form",
+        "title":"FORM_TITLE_EXPLOITATION_EXPLOITATION",
+        "input_size":"xs",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"hidden",
+                        "name":"fmw_file",
+                        "nb_cols":12
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/client/modules/vitis/forms/logs/logs_vitis_log.json b/src/vitis/client/modules/vitis/forms/logs/logs_vitis_log.json
similarity index 100%
rename from client/modules/vitis/forms/logs/logs_vitis_log.json
rename to src/vitis/client/modules/vitis/forms/logs/logs_vitis_log.json
diff --git a/client/modules/vitis/forms/user/user_vitis_user.js b/src/vitis/client/modules/vitis/forms/user/user_vitis_user.js
similarity index 100%
rename from client/modules/vitis/forms/user/user_vitis_user.js
rename to src/vitis/client/modules/vitis/forms/user/user_vitis_user.js
diff --git a/client/modules/vitis/forms/user/user_vitis_user.json b/src/vitis/client/modules/vitis/forms/user/user_vitis_user.json
old mode 100755
new mode 100644
similarity index 100%
rename from client/modules/vitis/forms/user/user_vitis_user.json
rename to src/vitis/client/modules/vitis/forms/user/user_vitis_user.json
diff --git a/client/modules/vitis/forms/users/active_directory_connection.json b/src/vitis/client/modules/vitis/forms/users/active_directory_connection.json
similarity index 100%
rename from client/modules/vitis/forms/users/active_directory_connection.json
rename to src/vitis/client/modules/vitis/forms/users/active_directory_connection.json
diff --git a/client/modules/vitis/forms/users/search_active_directory_group.json b/src/vitis/client/modules/vitis/forms/users/search_active_directory_group.json
similarity index 100%
rename from client/modules/vitis/forms/users/search_active_directory_group.json
rename to src/vitis/client/modules/vitis/forms/users/search_active_directory_group.json
diff --git a/client/modules/vitis/forms/users/search_active_directory_person.json b/src/vitis/client/modules/vitis/forms/users/search_active_directory_person.json
similarity index 100%
rename from client/modules/vitis/forms/users/search_active_directory_person.json
rename to src/vitis/client/modules/vitis/forms/users/search_active_directory_person.json
diff --git a/client/modules/vitis/forms/users/users_vitis_billinggroup.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_billinggroup.json
similarity index 100%
rename from client/modules/vitis/forms/users/users_vitis_billinggroup.json
rename to src/vitis/client/modules/vitis/forms/users/users_vitis_billinggroup.json
diff --git a/client/modules/vitis/forms/users/users_vitis_domain.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_domain.json
similarity index 100%
rename from client/modules/vitis/forms/users/users_vitis_domain.json
rename to src/vitis/client/modules/vitis/forms/users/users_vitis_domain.json
diff --git a/client/modules/vitis/forms/users/users_vitis_group.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_group.json
similarity index 100%
rename from client/modules/vitis/forms/users/users_vitis_group.json
rename to src/vitis/client/modules/vitis/forms/users/users_vitis_group.json
diff --git a/client/modules/vitis/forms/users/users_vitis_privilege.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_privilege.json
similarity index 100%
rename from client/modules/vitis/forms/users/users_vitis_privilege.json
rename to src/vitis/client/modules/vitis/forms/users/users_vitis_privilege.json
diff --git a/client/modules/vitis/forms/users/users_vitis_users.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_users.json
old mode 100755
new mode 100644
similarity index 100%
rename from client/modules/vitis/forms/users/users_vitis_users.json
rename to src/vitis/client/modules/vitis/forms/users/users_vitis_users.json
diff --git a/client/modules/vitis/images/administrator.png b/src/vitis/client/modules/vitis/images/administrator.png
similarity index 100%
rename from client/modules/vitis/images/administrator.png
rename to src/vitis/client/modules/vitis/images/administrator.png
diff --git a/client/modules/vitis/images/button_green.gif b/src/vitis/client/modules/vitis/images/button_green.gif
similarity index 100%
rename from client/modules/vitis/images/button_green.gif
rename to src/vitis/client/modules/vitis/images/button_green.gif
diff --git a/client/modules/vitis/images/button_red.gif b/src/vitis/client/modules/vitis/images/button_red.gif
similarity index 100%
rename from client/modules/vitis/images/button_red.gif
rename to src/vitis/client/modules/vitis/images/button_red.gif
diff --git a/client/modules/vitis/images/user.png b/src/vitis/client/modules/vitis/images/user.png
similarity index 100%
rename from client/modules/vitis/images/user.png
rename to src/vitis/client/modules/vitis/images/user.png
diff --git a/client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js
similarity index 100%
rename from client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js
rename to src/vitis/client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js
diff --git a/client/modules/vitis/javascript/controllers/logsCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/logsCtrl.js
similarity index 100%
rename from client/modules/vitis/javascript/controllers/logsCtrl.js
rename to src/vitis/client/modules/vitis/javascript/controllers/logsCtrl.js
diff --git a/client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js
similarity index 100%
rename from client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js
rename to src/vitis/client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js
diff --git a/client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js
similarity index 100%
rename from client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js
rename to src/vitis/client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js
diff --git a/client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js
similarity index 100%
rename from client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js
rename to src/vitis/client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js
diff --git a/client/modules/vitis/javascript/deps.js b/src/vitis/client/modules/vitis/javascript/deps.js
similarity index 100%
rename from client/modules/vitis/javascript/deps.js
rename to src/vitis/client/modules/vitis/javascript/deps.js
diff --git a/client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js
similarity index 100%
rename from client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js
rename to src/vitis/client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js
diff --git a/client/modules/vitis/javascript/directives/logsDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/logsDrtv.js
similarity index 100%
rename from client/modules/vitis/javascript/directives/logsDrtv.js
rename to src/vitis/client/modules/vitis/javascript/directives/logsDrtv.js
diff --git a/client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js
similarity index 100%
rename from client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js
rename to src/vitis/client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js
diff --git a/client/modules/vitis/javascript/directives/versionConfigurationDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/versionConfigurationDrtv.js
similarity index 100%
rename from client/modules/vitis/javascript/directives/versionConfigurationDrtv.js
rename to src/vitis/client/modules/vitis/javascript/directives/versionConfigurationDrtv.js
diff --git a/client/modules/vitis/javascript/directives/webServiceHelpDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/webServiceHelpDrtv.js
similarity index 100%
rename from client/modules/vitis/javascript/directives/webServiceHelpDrtv.js
rename to src/vitis/client/modules/vitis/javascript/directives/webServiceHelpDrtv.js
diff --git a/client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js
similarity index 100%
rename from client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js
rename to src/vitis/client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js
diff --git a/client/modules/vitis/javascript/script_module.js b/src/vitis/client/modules/vitis/javascript/script_module.js
old mode 100755
new mode 100644
similarity index 85%
rename from client/modules/vitis/javascript/script_module.js
rename to src/vitis/client/modules/vitis/javascript/script_module.js
index 1f0e99b41d538a838143044510f0016012a6f4ce..716b8de908bc4dfb057afe25e838d92aa2463531
--- a/client/modules/vitis/javascript/script_module.js
+++ b/src/vitis/client/modules/vitis/javascript/script_module.js
@@ -1211,7 +1211,9 @@ vitisApp.on('appMainDrtvLoaded', function () {
                     '</div>',
             link: function (scope, element, attrs) {
 
-                scope.textValue = (goog.isDefAndNotNull(attrs["hidevalue"])) ? "" : scope["row"]["entity"][scope["col"]["field"]] + "%";
+                scope.$watch("row.entity." + scope["col"]["field"], function(val){
+                    scope.textValue = (goog.isDefAndNotNull(attrs["hidevalue"])) ? "" : val + "%";
+                });
 
                 if (goog.isDefAndNotNull(attrs["mode"]))
                     element[0].firstChild.className = element[0].firstChild.className + " progress-bar-" + attrs["mode"];
@@ -1693,4 +1695,261 @@ vitisApp.on('appMainDrtvLoaded', function () {
         envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["tr_status_method"] = sMethod;
         // l'event submit du formulaire sera appelé après cette fonction 
     };
+    
+    /**
+     * loadVitisExploitation function.
+     * Chargement des sections du mode "exploitation".
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["loadVitisExploitation"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("loadVitisExploitation");
+        // Passage en mode "Update" (pour afficher les sections).
+        envSrvc["sMode"] = "update";
+    };
+    
+    /**
+     * initExploitationSharedDirectoryForm function.
+     * Chargement de l'arborescence du répertoire partagé.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["initExploitationSharedDirectoryForm"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]);
+        var $timeout = angular.element(vitisApp.appMainDrtv).injector().get(["$timeout"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("initExploitationSharedDirectoryForm");
+        // Attends la fin de l'affichage du 1er formulaire.
+        var clearListener = $rootScope.$on('formExtracted', function (event) {
+            // Supprime le "listener".
+            clearListener();
+            //
+            $timeout(function () {
+                $rootScope["loadExploitationSharedDirectoryTreeviewData"]().then(function(aNodes){
+                    $rootScope.$emit("sharedDirectoryTreeviewDataLoaded", aNodes);
+                });
+            });
+            // Huteur du treeview.
+            var oFormElementDefinition = formSrvc["getFormElementDefinition"]("shared_directory", envSrvc["sFormDefinitionName"]);
+            document.getElementById(oFormElementDefinition["id"] + "_treeview").style.height = document.getElementById("container_mode_exploitation").clientHeight - 221 + "px";
+        });
+    };
+    
+    /**
+     * refreshExploitationSharedDirectoryTreeview function.
+     * Recharge les données du treeview du répertoire partagé.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["refreshExploitationSharedDirectoryTreeview"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        //
+        $log.info("refreshExploitationSharedDirectoryTreeview");
+        $rootScope["loadExploitationSharedDirectoryTreeviewData"]().then(function(aNodes){
+            var oFormElementDefinition = formSrvc["getFormElementDefinition"]("shared_directory", envSrvc["sFormDefinitionName"]);
+            var oTreeviewOptions = $("#" + oFormElementDefinition["id"] + "_treeview")["treeview"](true)["options"];
+            $("#" + oFormElementDefinition["id"] + "_treeview")["treeview"](true)["remove"]();
+            oTreeviewOptions["data"] = aNodes;
+            $("#" + oFormElementDefinition["id"] + "_treeview")["treeview"](oTreeviewOptions);
+            // Huteur du treeview.
+            document.getElementById(oFormElementDefinition["id"] + "_treeview").style.height = document.getElementById("container_mode_exploitation").parentElement.clientHeight - 221 + "px";
+        });
+    };
+    
+    /**
+     * loadExploitationSharedDirectoryTreeviewData function.
+     * Charge les données du treeview du répertoire partagé.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["loadExploitationSharedDirectoryTreeviewData"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $q = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$q"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("loadExploitationSharedDirectoryTreeviewData");
+        var deferred = $q.defer();
+        var promise = deferred.promise;
+        // Charge l'arborescence du répertoire partagé.
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/exploitations/SharedDirectory",
+            "success": function(response) {
+                if (response["data"]["status"] === 1) {
+                    if (typeof (response["data"]) !== "undefined")
+                        deferred.resolve(response["data"]["tree"]["data"]);
+                }
+            }
+        });
+        return promise;
+    };
+    
+    /**
+     * deleteSharedDirectoryFiles function.
+     * Charge les données du treeview du répertoire partagé.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["deleteSharedDirectoryFiles"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        //
+        $log.info("deleteSharedDirectoryFiles");
+        var oFormElementDefinition = formSrvc["getFormElementDefinition"]("shared_directory", envSrvc["sFormDefinitionName"]);
+        var aFileList = $("#" + oFormElementDefinition["id"] + "_treeview")["treeview"](true)["getChecked"]();
+        if (aFileList.length > 0) {
+            var oOptions = {
+                "className": "modal-warning",
+                "message": "CONFIRM_DELETE_FILES_EXPLOITATION_EXPLOITATION",
+                "callback": function(bResponse) {
+                    if (bResponse) {
+                        // Liste des fichiers et répertoires à supprimer.
+                        var aFilePathList = [];
+                        for (var i = 0; i < aFileList.length; i++) {
+                            if (typeof(aFileList[i]["path"]["nodes"] != "undefined"))
+                                aFilePathList.push(aFileList[i]["path"]);
+                            else
+                                aFilePathList.push(aFileList[i]["path"] + "/" + aFileList[i]["name"]);
+                        }
+                        // Suppression des fichiers et répertoires.
+                        ajaxRequest({
+                            "method": "DELETE",
+                            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/exploitations/SharedDirectory",
+                            "params": {
+                                "idList": aFilePathList.join("|")
+                            },
+                            "success": function(response) {
+                                if (response["data"]["status"] == 1) {
+                                    // Message et rechargement du treeview.
+                                    $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) {
+                                        $.notify(sTranslation, "success");
+                                        $rootScope["refreshExploitationSharedDirectoryTreeview"]();
+                                    });
+                                }
+                                else {
+                                    // Affichage de la fenêtre modale d'erreur.
+                                    $rootScope["modalWindow"]("dialog", response["data"]["errorMessage"], {"className": "modal-danger"});
+                                }
+                            }
+                        });
+                    }
+                }
+            }
+            $rootScope["modalWindow"]("confirm", "", oOptions);
+        }
+    };
+    
+    /**
+     * createSharedDirectoryFolder function.
+     * Création d'un répertoire dans le répertoire partagé.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["createSharedDirectoryFolder"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        //
+        $log.info("createSharedDirectoryFolder");
+        // Si un répertoire est sélectionné -> création à l'intérieur.
+        var sDirectoryPath = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["directory_name"];
+        if (typeof(sDirectoryPath) == "string" && sDirectoryPath != "") {
+            var oFormElementDefinition = formSrvc["getFormElementDefinition"]("shared_directory", envSrvc["sFormDefinitionName"]);
+            var aFileList = $("#" + oFormElementDefinition["id"] + "_treeview")["treeview"](true)["getSelected"]();
+            if (aFileList.length > 0)
+                sDirectoryPath = aFileList[0]["path"] + "/" + sDirectoryPath;
+            //
+            var formData = new FormData();
+            formData.append("directory_path", sDirectoryPath);
+            ajaxRequest({
+                "method": "POST",
+                "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/exploitations/SharedDirectory/Directory",
+                "data": formData,
+                "success": function(response) {
+                    if (response["data"]["status"] == 1) {
+                        // Message et rechargement du treeview.
+                        $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) {
+                            $.notify(sTranslation, "success");
+                            $rootScope["refreshExploitationSharedDirectoryTreeview"]();
+                            var sFormElementName = envSrvc['oFormDefinition'][envSrvc['sFormDefinitionName']]['name'];
+                            document.querySelector("form[name='" + sFormElementName + "']").reset();
+                        });
+                    }
+                    else {
+                        // Affichage de la fenêtre modale d'erreur.
+                        $rootScope["modalWindow"]("dialog", response["data"]["errorMessage"], {"className": "modal-danger"});
+                    }
+                }
+            });
+        }
+        else {
+            // Affichage de la fenêtre modale d'erreur.
+            $rootScope["modalWindow"]("dialog", "FORM_NO_DIRECTORY_EXPLOITATION_EXPLOITATION", {"className": "modal-danger"});
+        }
+    };
+    
+    /**
+     * uploadSharedDirectoryFile function.
+     * Upload d'un fichier dans le répertoire partagé.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["uploadSharedDirectoryFile"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        //
+        $log.info("uploadSharedDirectoryFile");
+        // Si un fichier est sélectionné -> upload.
+        var oFile = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["file"];
+        if (typeof(oFile) != "undefined" && oFile["aFiles"].length > 0) {
+            // Upload dans un répertoire.
+            var sDirectoryPath = "";
+            var oFormElementDefinition = formSrvc["getFormElementDefinition"]("shared_directory", envSrvc["sFormDefinitionName"]);
+            var aFileList = $("#" + oFormElementDefinition["id"] + "_treeview")["treeview"](true)["getSelected"]();
+            if (aFileList.length > 0)
+                sDirectoryPath = aFileList[0]["path"];
+            // Création du formdata.
+            var formData = new FormData();
+            formData.append("file", oFile["aFiles"][0]);
+            formData.append("directory_path", sDirectoryPath);
+            //
+            ajaxRequest({
+                "method": "POST",
+                "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/exploitations/SharedDirectory/File",
+                "data": formData,
+                "success": function(response) {
+                    if (response["data"]["status"] == 1) {
+                        // Message, rechargement du treeview, vidage du formulaire.
+                        $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) {
+                            $.notify(sTranslation, "success");
+                            $rootScope["refreshExploitationSharedDirectoryTreeview"]();
+                            var sFormElementName = envSrvc['oFormDefinition'][envSrvc['sFormDefinitionName']]['name'];
+                            document.querySelector("form[name='" + sFormElementName + "']").reset();
+                        });
+                    }
+                    else {
+                        // Affichage de la fenêtre modale d'erreur.
+                        $rootScope["modalWindow"]("dialog", response["data"]["errorMessage"], {"className": "modal-danger"});
+                    }
+                }
+            });
+        }
+        else {
+            // Affichage de la fenêtre modale d'erreur.
+            $rootScope["modalWindow"]("dialog", "FORM_NO_FILE_EXPLOITATION_EXPLOITATION", {"className": "modal-danger"});
+        }
+    };
 });
\ No newline at end of file
diff --git a/client/modules/vitis/lang/lang-en.json b/src/vitis/client/modules/vitis/lang/lang-en.json
old mode 100755
new mode 100644
similarity index 93%
rename from client/modules/vitis/lang/lang-en.json
rename to src/vitis/client/modules/vitis/lang/lang-en.json
index c8132242ba9258b6005e2fd7d9f502e8311efd72..dc98a487ebd474dde8d906521ce10687fd6b5a2f
--- a/client/modules/vitis/lang/lang-en.json
+++ b/src/vitis/client/modules/vitis/lang/lang-en.json
@@ -326,5 +326,21 @@
     "FORM_BILLINGGROUP_USERS_BILLINGGROUP": "Name",
     "FORM_DESCRIPTION_USERS_BILLINGGROUP": "Description",
     "FORM_AVAILABLE_USER_USERS_BILLINGGROUP": "Available users",
-    "FORM_LINKED_USER_USERS_BILLINGGROUP": "Users linked to group"
+    "FORM_LINKED_USER_USERS_BILLINGGROUP": "Users linked to group",
+    "" : "",
+    "FORM_TITLE_EXPLOITATION_EXPLOITATION" : "Shared directory",
+    "FORM_DOWNLOAD_FILE_EXPLOITATION_EXPLOITATION" : "Download file",
+    "FORM_RELOAD_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Reload directory",
+    "FORM_DELETE_FILES_EXPLOITATION_EXPLOITATION" : "Delete files",
+    "FORM_UPLOAD_FMW_FILE_EXPLOITATION_EXPLOITATION" : "Upload",
+    "FORM_FILE_EXPLOITATION_EXPLOITATION" : "File to upload",
+    "CONFIRM_DELETE_FILES_EXPLOITATION_EXPLOITATION" : "Delete selected files and directories ?",
+    "FORM_CREATE_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Create a directory",
+    "FORM_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Name of the directory to create",
+    "FORM_BTN_UPLOAD_FILE_EXPLOITATION_EXPLOITATION" : "Upload",
+    "FORM_BTN_CREATE_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Create",
+    "FORM_NO_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Please specify a name for the directory to create",
+    "FORM_NO_FILE_EXPLOITATION_EXPLOITATION" : "Please select a file to upload",
+    "DIRECTORY_CREATION_ERROR_EXPLOITATION_EXPLOITATION" : "Directory creation error",
+    "FILE_UPLOAD_ERROR_EXPLOITATION_EXPLOITATION" : "File creation error"
 }
diff --git a/client/modules/vitis/lang/lang-fr.json b/src/vitis/client/modules/vitis/lang/lang-fr.json
old mode 100755
new mode 100644
similarity index 93%
rename from client/modules/vitis/lang/lang-fr.json
rename to src/vitis/client/modules/vitis/lang/lang-fr.json
index a25cbd86a472840b7cd34f0aeb4db57686e83610..c752c00a89122b4ccf90a5bb275a952f7ebfc775
--- a/client/modules/vitis/lang/lang-fr.json
+++ b/src/vitis/client/modules/vitis/lang/lang-fr.json
@@ -328,5 +328,21 @@
     "FORM_BILLINGGROUP_USERS_BILLINGGROUP": "Nom",
     "FORM_DESCRIPTION_USERS_BILLINGGROUP": "Description",
     "FORM_AVAILABLE_USER_USERS_BILLINGGROUP": "Utilisateurs disponibles",
-    "FORM_LINKED_USER_USERS_BILLINGGROUP": "Utilisateurs liés au groupe"
+    "FORM_LINKED_USER_USERS_BILLINGGROUP": "Utilisateurs liés au groupe",
+    "" : "",
+    "FORM_TITLE_EXPLOITATION_EXPLOITATION" : "Répertoire partagé",
+    "FORM_DOWNLOAD_FILE_EXPLOITATION_EXPLOITATION" : "Télécharger le fichier",
+    "FORM_RELOAD_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Recharger le répertoire",
+    "FORM_DELETE_FILES_EXPLOITATION_EXPLOITATION" : "Supprimer les fichiers",
+    "FORM_UPLOAD_FMW_FILE_EXPLOITATION_EXPLOITATION" : "Uploader",
+    "FORM_FILE_EXPLOITATION_EXPLOITATION" : "Fichier à uploader",
+    "CONFIRM_DELETE_FILES_EXPLOITATION_EXPLOITATION" : "Supprimer les fichiers et répertoires sélectionnés ?",
+    "FORM_CREATE_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Créer un dossier",
+    "FORM_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Nom du dossier à créer",
+    "FORM_BTN_UPLOAD_FILE_EXPLOITATION_EXPLOITATION" : "Uploader",
+    "FORM_BTN_CREATE_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Créer",
+    "FORM_NO_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Veuiller spécifier un nom pour le dossier à créer",
+    "FORM_NO_FILE_EXPLOITATION_EXPLOITATION" : "Veuiller sélectionner un fichier à uploader",
+    "DIRECTORY_CREATION_ERROR_EXPLOITATION_EXPLOITATION" : "Erreur de création du dossier",
+    "FILE_UPLOAD_ERROR_EXPLOITATION_EXPLOITATION" : "Erreur pendant l'upload du fichier"
 }
diff --git a/client/modules/vitis/less/activeDirectoryTree.less b/src/vitis/client/modules/vitis/less/activeDirectoryTree.less
similarity index 100%
rename from client/modules/vitis/less/activeDirectoryTree.less
rename to src/vitis/client/modules/vitis/less/activeDirectoryTree.less
diff --git a/client/modules/vitis/less/logs.less b/src/vitis/client/modules/vitis/less/logs.less
similarity index 100%
rename from client/modules/vitis/less/logs.less
rename to src/vitis/client/modules/vitis/less/logs.less
diff --git a/client/modules/vitis/less/main.less b/src/vitis/client/modules/vitis/less/main.less
similarity index 81%
rename from client/modules/vitis/less/main.less
rename to src/vitis/client/modules/vitis/less/main.less
index 66adeeb6954871428c3685880d1a6a9bbb8ee302..bbfd6cb88daa780124cac53154b6278d493816d8 100755
--- a/client/modules/vitis/less/main.less
+++ b/src/vitis/client/modules/vitis/less/main.less
@@ -7,4 +7,5 @@
 @import 'updateConfiguration.less';
 @import 'users.less';
 @import 'activeDirectoryTree.less';
-@import 'webServiceHelp.less';
\ No newline at end of file
+@import 'webServiceHelp.less';
+@import 'sharedDirectory.less';
\ No newline at end of file
diff --git a/client/modules/vitis/less/phpInfoConfiguration.less b/src/vitis/client/modules/vitis/less/phpInfoConfiguration.less
similarity index 100%
rename from client/modules/vitis/less/phpInfoConfiguration.less
rename to src/vitis/client/modules/vitis/less/phpInfoConfiguration.less
diff --git a/src/vitis/client/modules/vitis/less/sharedDirectory.less b/src/vitis/client/modules/vitis/less/sharedDirectory.less
new file mode 100755
index 0000000000000000000000000000000000000000..7672659599a8c4ad76d0f469e8114d4202d7a937
--- /dev/null
+++ b/src/vitis/client/modules/vitis/less/sharedDirectory.less
@@ -0,0 +1,3 @@
+.shared-directory-treeview .treeview {
+    overflow-y: auto;
+}
\ No newline at end of file
diff --git a/client/modules/vitis/less/updateConfiguration.less b/src/vitis/client/modules/vitis/less/updateConfiguration.less
similarity index 100%
rename from client/modules/vitis/less/updateConfiguration.less
rename to src/vitis/client/modules/vitis/less/updateConfiguration.less
diff --git a/client/modules/vitis/less/users.less b/src/vitis/client/modules/vitis/less/users.less
similarity index 100%
rename from client/modules/vitis/less/users.less
rename to src/vitis/client/modules/vitis/less/users.less
diff --git a/client/modules/vitis/less/versionConfiguration.less b/src/vitis/client/modules/vitis/less/versionConfiguration.less
similarity index 100%
rename from client/modules/vitis/less/versionConfiguration.less
rename to src/vitis/client/modules/vitis/less/versionConfiguration.less
diff --git a/client/modules/vitis/less/webServiceHelp.less b/src/vitis/client/modules/vitis/less/webServiceHelp.less
similarity index 100%
rename from client/modules/vitis/less/webServiceHelp.less
rename to src/vitis/client/modules/vitis/less/webServiceHelp.less
diff --git a/client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html b/src/vitis/client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html
similarity index 100%
rename from client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html
rename to src/vitis/client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html
diff --git a/client/modules/vitis/templates/activeDirectoryTreeRightTpl.html b/src/vitis/client/modules/vitis/templates/activeDirectoryTreeRightTpl.html
similarity index 100%
rename from client/modules/vitis/templates/activeDirectoryTreeRightTpl.html
rename to src/vitis/client/modules/vitis/templates/activeDirectoryTreeRightTpl.html
diff --git a/client/modules/vitis/templates/logsLeftTpl.html b/src/vitis/client/modules/vitis/templates/logsLeftTpl.html
similarity index 100%
rename from client/modules/vitis/templates/logsLeftTpl.html
rename to src/vitis/client/modules/vitis/templates/logsLeftTpl.html
diff --git a/client/modules/vitis/templates/logsRightTpl.html b/src/vitis/client/modules/vitis/templates/logsRightTpl.html
similarity index 100%
rename from client/modules/vitis/templates/logsRightTpl.html
rename to src/vitis/client/modules/vitis/templates/logsRightTpl.html
diff --git a/client/modules/vitis/templates/phpInfoConfigurationTpl.html b/src/vitis/client/modules/vitis/templates/phpInfoConfigurationTpl.html
similarity index 100%
rename from client/modules/vitis/templates/phpInfoConfigurationTpl.html
rename to src/vitis/client/modules/vitis/templates/phpInfoConfigurationTpl.html
diff --git a/client/modules/vitis/templates/updateConfigurationTpl.html b/src/vitis/client/modules/vitis/templates/updateConfigurationTpl.html
similarity index 100%
rename from client/modules/vitis/templates/updateConfigurationTpl.html
rename to src/vitis/client/modules/vitis/templates/updateConfigurationTpl.html
diff --git a/client/modules/vitis/templates/versionConfigurationTpl.html b/src/vitis/client/modules/vitis/templates/versionConfigurationTpl.html
similarity index 100%
rename from client/modules/vitis/templates/versionConfigurationTpl.html
rename to src/vitis/client/modules/vitis/templates/versionConfigurationTpl.html
diff --git a/client/modules/vitis/templates/webServiceHelpTpl.html b/src/vitis/client/modules/vitis/templates/webServiceHelpTpl.html
similarity index 100%
rename from client/modules/vitis/templates/webServiceHelpTpl.html
rename to src/vitis/client/modules/vitis/templates/webServiceHelpTpl.html
diff --git a/client/modules/vitis/templates/websocketConfigurationTpl.html b/src/vitis/client/modules/vitis/templates/websocketConfigurationTpl.html
similarity index 100%
rename from client/modules/vitis/templates/websocketConfigurationTpl.html
rename to src/vitis/client/modules/vitis/templates/websocketConfigurationTpl.html
diff --git a/client/templates/clientDocumentationTpl.html b/src/vitis/client/templates/clientDocumentationTpl.html
similarity index 100%
rename from client/templates/clientDocumentationTpl.html
rename to src/vitis/client/templates/clientDocumentationTpl.html
diff --git a/client/templates/creditsTpl.html b/src/vitis/client/templates/creditsTpl.html
similarity index 100%
rename from client/templates/creditsTpl.html
rename to src/vitis/client/templates/creditsTpl.html
diff --git a/client/templates/doubleFormTpl.html b/src/vitis/client/templates/doubleFormTpl.html
similarity index 100%
rename from client/templates/doubleFormTpl.html
rename to src/vitis/client/templates/doubleFormTpl.html
diff --git a/client/templates/formTpl.html b/src/vitis/client/templates/formTpl.html
similarity index 100%
rename from client/templates/formTpl.html
rename to src/vitis/client/templates/formTpl.html
diff --git a/client/templates/loginTpl.html b/src/vitis/client/templates/loginTpl.html
similarity index 100%
rename from client/templates/loginTpl.html
rename to src/vitis/client/templates/loginTpl.html
diff --git a/client/templates/mainTpl.html b/src/vitis/client/templates/mainTpl.html
similarity index 100%
rename from client/templates/mainTpl.html
rename to src/vitis/client/templates/mainTpl.html
diff --git a/client/templates/sectionFormTpl.html b/src/vitis/client/templates/sectionFormTpl.html
similarity index 100%
rename from client/templates/sectionFormTpl.html
rename to src/vitis/client/templates/sectionFormTpl.html
diff --git a/client/templates/simpleFormTpl.html b/src/vitis/client/templates/simpleFormTpl.html
similarity index 100%
rename from client/templates/simpleFormTpl.html
rename to src/vitis/client/templates/simpleFormTpl.html
diff --git a/client/templates/uiGridActionTpl.html b/src/vitis/client/templates/uiGridActionTpl.html
similarity index 100%
rename from client/templates/uiGridActionTpl.html
rename to src/vitis/client/templates/uiGridActionTpl.html
diff --git a/client/templates/uiGridPaginationTpl.html b/src/vitis/client/templates/uiGridPaginationTpl.html
similarity index 100%
rename from client/templates/uiGridPaginationTpl.html
rename to src/vitis/client/templates/uiGridPaginationTpl.html
diff --git a/client/templates/workspaceListTpl.html b/src/vitis/client/templates/workspaceListTpl.html
similarity index 100%
rename from client/templates/workspaceListTpl.html
rename to src/vitis/client/templates/workspaceListTpl.html
diff --git a/vas/doc/composer.json b/src/vitis/vas/doc/composer.json
similarity index 100%
rename from vas/doc/composer.json
rename to src/vitis/vas/doc/composer.json
diff --git a/vas/doc/composer.lock b/src/vitis/vas/doc/composer.lock
similarity index 100%
rename from vas/doc/composer.lock
rename to src/vitis/vas/doc/composer.lock
diff --git a/vas/doc/css/reset.css b/src/vitis/vas/doc/css/reset.css
similarity index 100%
rename from vas/doc/css/reset.css
rename to src/vitis/vas/doc/css/reset.css
diff --git a/vas/doc/css/screen.css b/src/vitis/vas/doc/css/screen.css
similarity index 100%
rename from vas/doc/css/screen.css
rename to src/vitis/vas/doc/css/screen.css
diff --git a/vas/doc/css/style.css b/src/vitis/vas/doc/css/style.css
similarity index 100%
rename from vas/doc/css/style.css
rename to src/vitis/vas/doc/css/style.css
diff --git a/vas/doc/images/gtf_ws.png b/src/vitis/vas/doc/images/gtf_ws.png
similarity index 100%
rename from vas/doc/images/gtf_ws.png
rename to src/vitis/vas/doc/images/gtf_ws.png
diff --git a/vas/doc/images/order.png b/src/vitis/vas/doc/images/order.png
similarity index 100%
rename from vas/doc/images/order.png
rename to src/vitis/vas/doc/images/order.png
diff --git a/vas/doc/images/overview.png b/src/vitis/vas/doc/images/overview.png
similarity index 100%
rename from vas/doc/images/overview.png
rename to src/vitis/vas/doc/images/overview.png
diff --git a/vas/doc/images/rest.png b/src/vitis/vas/doc/images/rest.png
similarity index 100%
rename from vas/doc/images/rest.png
rename to src/vitis/vas/doc/images/rest.png
diff --git a/vas/doc/images/throbber.gif b/src/vitis/vas/doc/images/throbber.gif
similarity index 100%
rename from vas/doc/images/throbber.gif
rename to src/vitis/vas/doc/images/throbber.gif
diff --git a/vas/doc/images/token.png b/src/vitis/vas/doc/images/token.png
similarity index 100%
rename from vas/doc/images/token.png
rename to src/vitis/vas/doc/images/token.png
diff --git a/vas/doc/images/workspace.png b/src/vitis/vas/doc/images/workspace.png
similarity index 100%
rename from vas/doc/images/workspace.png
rename to src/vitis/vas/doc/images/workspace.png
diff --git a/vas/doc/index.phtml b/src/vitis/vas/doc/index.phtml
similarity index 100%
rename from vas/doc/index.phtml
rename to src/vitis/vas/doc/index.phtml
diff --git a/vas/doc/javascript/backbone-min.js b/src/vitis/vas/doc/javascript/backbone-min.js
similarity index 100%
rename from vas/doc/javascript/backbone-min.js
rename to src/vitis/vas/doc/javascript/backbone-min.js
diff --git a/vas/doc/javascript/handlebars-1.0.0.js b/src/vitis/vas/doc/javascript/handlebars-1.0.0.js
similarity index 100%
rename from vas/doc/javascript/handlebars-1.0.0.js
rename to src/vitis/vas/doc/javascript/handlebars-1.0.0.js
diff --git a/vas/doc/javascript/handlebars-2.0.0.js b/src/vitis/vas/doc/javascript/handlebars-2.0.0.js
similarity index 100%
rename from vas/doc/javascript/handlebars-2.0.0.js
rename to src/vitis/vas/doc/javascript/handlebars-2.0.0.js
diff --git a/vas/doc/javascript/highlight.7.3.pack.js b/src/vitis/vas/doc/javascript/highlight.7.3.pack.js
similarity index 100%
rename from vas/doc/javascript/highlight.7.3.pack.js
rename to src/vitis/vas/doc/javascript/highlight.7.3.pack.js
diff --git a/vas/doc/javascript/jquery-1.8.0.min.js b/src/vitis/vas/doc/javascript/jquery-1.8.0.min.js
similarity index 100%
rename from vas/doc/javascript/jquery-1.8.0.min.js
rename to src/vitis/vas/doc/javascript/jquery-1.8.0.min.js
diff --git a/vas/doc/javascript/jquery.ba-bbq.min.js b/src/vitis/vas/doc/javascript/jquery.ba-bbq.min.js
similarity index 100%
rename from vas/doc/javascript/jquery.ba-bbq.min.js
rename to src/vitis/vas/doc/javascript/jquery.ba-bbq.min.js
diff --git a/vas/doc/javascript/jquery.slideto.min.js b/src/vitis/vas/doc/javascript/jquery.slideto.min.js
similarity index 100%
rename from vas/doc/javascript/jquery.slideto.min.js
rename to src/vitis/vas/doc/javascript/jquery.slideto.min.js
diff --git a/vas/doc/javascript/jquery.wiggle.min.js b/src/vitis/vas/doc/javascript/jquery.wiggle.min.js
similarity index 100%
rename from vas/doc/javascript/jquery.wiggle.min.js
rename to src/vitis/vas/doc/javascript/jquery.wiggle.min.js
diff --git a/vas/doc/javascript/marked.js b/src/vitis/vas/doc/javascript/marked.js
similarity index 100%
rename from vas/doc/javascript/marked.js
rename to src/vitis/vas/doc/javascript/marked.js
diff --git a/vas/doc/javascript/shred.bundle.js b/src/vitis/vas/doc/javascript/shred.bundle.js
similarity index 100%
rename from vas/doc/javascript/shred.bundle.js
rename to src/vitis/vas/doc/javascript/shred.bundle.js
diff --git a/vas/doc/javascript/shred/content.js b/src/vitis/vas/doc/javascript/shred/content.js
similarity index 100%
rename from vas/doc/javascript/shred/content.js
rename to src/vitis/vas/doc/javascript/shred/content.js
diff --git a/vas/doc/javascript/swagger-oauth.js b/src/vitis/vas/doc/javascript/swagger-oauth.js
similarity index 100%
rename from vas/doc/javascript/swagger-oauth.js
rename to src/vitis/vas/doc/javascript/swagger-oauth.js
diff --git a/vas/doc/javascript/swagger-ui.js b/src/vitis/vas/doc/javascript/swagger-ui.js
similarity index 100%
rename from vas/doc/javascript/swagger-ui.js
rename to src/vitis/vas/doc/javascript/swagger-ui.js
diff --git a/vas/doc/javascript/swagger-ui.min.js b/src/vitis/vas/doc/javascript/swagger-ui.min.js
similarity index 100%
rename from vas/doc/javascript/swagger-ui.min.js
rename to src/vitis/vas/doc/javascript/swagger-ui.min.js
diff --git a/vas/doc/javascript/underscore-min.js b/src/vitis/vas/doc/javascript/underscore-min.js
similarity index 100%
rename from vas/doc/javascript/underscore-min.js
rename to src/vitis/vas/doc/javascript/underscore-min.js
diff --git a/vas/doc/javascript/underscore-min.map b/src/vitis/vas/doc/javascript/underscore-min.map
similarity index 100%
rename from vas/doc/javascript/underscore-min.map
rename to src/vitis/vas/doc/javascript/underscore-min.map
diff --git a/vas/doc/swagger.php b/src/vitis/vas/doc/swagger.php
similarity index 100%
rename from vas/doc/swagger.php
rename to src/vitis/vas/doc/swagger.php
diff --git a/vas/doc/vendor/autoload.php b/src/vitis/vas/doc/vendor/autoload.php
similarity index 100%
rename from vas/doc/vendor/autoload.php
rename to src/vitis/vas/doc/vendor/autoload.php
diff --git a/vas/doc/vendor/bin/swagger b/src/vitis/vas/doc/vendor/bin/swagger
similarity index 100%
rename from vas/doc/vendor/bin/swagger
rename to src/vitis/vas/doc/vendor/bin/swagger
diff --git a/vas/doc/vendor/composer/ClassLoader.php b/src/vitis/vas/doc/vendor/composer/ClassLoader.php
similarity index 100%
rename from vas/doc/vendor/composer/ClassLoader.php
rename to src/vitis/vas/doc/vendor/composer/ClassLoader.php
diff --git a/vas/doc/vendor/composer/LICENSE b/src/vitis/vas/doc/vendor/composer/LICENSE
similarity index 100%
rename from vas/doc/vendor/composer/LICENSE
rename to src/vitis/vas/doc/vendor/composer/LICENSE
diff --git a/vas/doc/vendor/composer/autoload_classmap.php b/src/vitis/vas/doc/vendor/composer/autoload_classmap.php
similarity index 100%
rename from vas/doc/vendor/composer/autoload_classmap.php
rename to src/vitis/vas/doc/vendor/composer/autoload_classmap.php
diff --git a/vas/doc/vendor/composer/autoload_files.php b/src/vitis/vas/doc/vendor/composer/autoload_files.php
similarity index 100%
rename from vas/doc/vendor/composer/autoload_files.php
rename to src/vitis/vas/doc/vendor/composer/autoload_files.php
diff --git a/vas/doc/vendor/composer/autoload_namespaces.php b/src/vitis/vas/doc/vendor/composer/autoload_namespaces.php
similarity index 100%
rename from vas/doc/vendor/composer/autoload_namespaces.php
rename to src/vitis/vas/doc/vendor/composer/autoload_namespaces.php
diff --git a/vas/doc/vendor/composer/autoload_psr4.php b/src/vitis/vas/doc/vendor/composer/autoload_psr4.php
similarity index 100%
rename from vas/doc/vendor/composer/autoload_psr4.php
rename to src/vitis/vas/doc/vendor/composer/autoload_psr4.php
diff --git a/vas/doc/vendor/composer/autoload_real.php b/src/vitis/vas/doc/vendor/composer/autoload_real.php
similarity index 100%
rename from vas/doc/vendor/composer/autoload_real.php
rename to src/vitis/vas/doc/vendor/composer/autoload_real.php
diff --git a/vas/doc/vendor/composer/autoload_static.php b/src/vitis/vas/doc/vendor/composer/autoload_static.php
similarity index 100%
rename from vas/doc/vendor/composer/autoload_static.php
rename to src/vitis/vas/doc/vendor/composer/autoload_static.php
diff --git a/vas/doc/vendor/composer/installed.json b/src/vitis/vas/doc/vendor/composer/installed.json
similarity index 100%
rename from vas/doc/vendor/composer/installed.json
rename to src/vitis/vas/doc/vendor/composer/installed.json
diff --git a/vas/doc/vendor/doctrine/annotations/LICENSE b/src/vitis/vas/doc/vendor/doctrine/annotations/LICENSE
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/LICENSE
rename to src/vitis/vas/doc/vendor/doctrine/annotations/LICENSE
diff --git a/vas/doc/vendor/doctrine/annotations/README.md b/src/vitis/vas/doc/vendor/doctrine/annotations/README.md
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/README.md
rename to src/vitis/vas/doc/vendor/doctrine/annotations/README.md
diff --git a/vas/doc/vendor/doctrine/annotations/composer.json b/src/vitis/vas/doc/vendor/doctrine/annotations/composer.json
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/composer.json
rename to src/vitis/vas/doc/vendor/doctrine/annotations/composer.json
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php
diff --git a/vas/doc/vendor/doctrine/lexer/LICENSE b/src/vitis/vas/doc/vendor/doctrine/lexer/LICENSE
similarity index 100%
rename from vas/doc/vendor/doctrine/lexer/LICENSE
rename to src/vitis/vas/doc/vendor/doctrine/lexer/LICENSE
diff --git a/vas/doc/vendor/doctrine/lexer/README.md b/src/vitis/vas/doc/vendor/doctrine/lexer/README.md
similarity index 100%
rename from vas/doc/vendor/doctrine/lexer/README.md
rename to src/vitis/vas/doc/vendor/doctrine/lexer/README.md
diff --git a/vas/doc/vendor/doctrine/lexer/composer.json b/src/vitis/vas/doc/vendor/doctrine/lexer/composer.json
similarity index 100%
rename from vas/doc/vendor/doctrine/lexer/composer.json
rename to src/vitis/vas/doc/vendor/doctrine/lexer/composer.json
diff --git a/vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php b/src/vitis/vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php
similarity index 100%
rename from vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php
rename to src/vitis/vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php
diff --git a/vas/doc/vendor/symfony/finder/.gitignore b/src/vitis/vas/doc/vendor/symfony/finder/.gitignore
similarity index 100%
rename from vas/doc/vendor/symfony/finder/.gitignore
rename to src/vitis/vas/doc/vendor/symfony/finder/.gitignore
diff --git a/vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php
diff --git a/vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/CHANGELOG.md b/src/vitis/vas/doc/vendor/symfony/finder/CHANGELOG.md
similarity index 100%
rename from vas/doc/vendor/symfony/finder/CHANGELOG.md
rename to src/vitis/vas/doc/vendor/symfony/finder/CHANGELOG.md
diff --git a/vas/doc/vendor/symfony/finder/Comparator/Comparator.php b/src/vitis/vas/doc/vendor/symfony/finder/Comparator/Comparator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Comparator/Comparator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Comparator/Comparator.php
diff --git a/vas/doc/vendor/symfony/finder/Comparator/DateComparator.php b/src/vitis/vas/doc/vendor/symfony/finder/Comparator/DateComparator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Comparator/DateComparator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Comparator/DateComparator.php
diff --git a/vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php b/src/vitis/vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php
diff --git a/vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php
diff --git a/vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php
diff --git a/vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php
diff --git a/vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php
diff --git a/vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php
diff --git a/vas/doc/vendor/symfony/finder/Expression/Expression.php b/src/vitis/vas/doc/vendor/symfony/finder/Expression/Expression.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Expression/Expression.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Expression/Expression.php
diff --git a/vas/doc/vendor/symfony/finder/Expression/Glob.php b/src/vitis/vas/doc/vendor/symfony/finder/Expression/Glob.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Expression/Glob.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Expression/Glob.php
diff --git a/vas/doc/vendor/symfony/finder/Expression/Regex.php b/src/vitis/vas/doc/vendor/symfony/finder/Expression/Regex.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Expression/Regex.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Expression/Regex.php
diff --git a/vas/doc/vendor/symfony/finder/Expression/ValueInterface.php b/src/vitis/vas/doc/vendor/symfony/finder/Expression/ValueInterface.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Expression/ValueInterface.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Expression/ValueInterface.php
diff --git a/vas/doc/vendor/symfony/finder/Finder.php b/src/vitis/vas/doc/vendor/symfony/finder/Finder.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Finder.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Finder.php
diff --git a/vas/doc/vendor/symfony/finder/Glob.php b/src/vitis/vas/doc/vendor/symfony/finder/Glob.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Glob.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Glob.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php
diff --git a/vas/doc/vendor/symfony/finder/LICENSE b/src/vitis/vas/doc/vendor/symfony/finder/LICENSE
similarity index 100%
rename from vas/doc/vendor/symfony/finder/LICENSE
rename to src/vitis/vas/doc/vendor/symfony/finder/LICENSE
diff --git a/vas/doc/vendor/symfony/finder/README.md b/src/vitis/vas/doc/vendor/symfony/finder/README.md
similarity index 100%
rename from vas/doc/vendor/symfony/finder/README.md
rename to src/vitis/vas/doc/vendor/symfony/finder/README.md
diff --git a/vas/doc/vendor/symfony/finder/Shell/Command.php b/src/vitis/vas/doc/vendor/symfony/finder/Shell/Command.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Shell/Command.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Shell/Command.php
diff --git a/vas/doc/vendor/symfony/finder/Shell/Shell.php b/src/vitis/vas/doc/vendor/symfony/finder/Shell/Shell.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Shell/Shell.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Shell/Shell.php
diff --git a/vas/doc/vendor/symfony/finder/SplFileInfo.php b/src/vitis/vas/doc/vendor/symfony/finder/SplFileInfo.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/SplFileInfo.php
rename to src/vitis/vas/doc/vendor/symfony/finder/SplFileInfo.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/FinderTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FinderTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/FinderTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FinderTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat
diff --git a/vas/tmp/file_to_delete.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt
similarity index 100%
rename from vas/tmp/file_to_delete.txt
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt
diff --git a/vas/doc/vendor/symfony/finder/Tests/GlobTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/GlobTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/GlobTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/GlobTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php
diff --git a/vas/doc/vendor/symfony/finder/composer.json b/src/vitis/vas/doc/vendor/symfony/finder/composer.json
similarity index 100%
rename from vas/doc/vendor/symfony/finder/composer.json
rename to src/vitis/vas/doc/vendor/symfony/finder/composer.json
diff --git a/vas/doc/vendor/symfony/finder/phpunit.xml.dist b/src/vitis/vas/doc/vendor/symfony/finder/phpunit.xml.dist
similarity index 100%
rename from vas/doc/vendor/symfony/finder/phpunit.xml.dist
rename to src/vitis/vas/doc/vendor/symfony/finder/phpunit.xml.dist
diff --git a/vas/doc/vendor/zircote/swagger-php/.gitignore b/src/vitis/vas/doc/vendor/zircote/swagger-php/.gitignore
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/.gitignore
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/.gitignore
diff --git a/vas/doc/vendor/zircote/swagger-php/.travis.yml b/src/vitis/vas/doc/vendor/zircote/swagger-php/.travis.yml
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/.travis.yml
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/.travis.yml
diff --git a/vas/doc/vendor/zircote/swagger-php/Changelog.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/Changelog.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Changelog.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Changelog.md
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/Examples.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/Examples.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/Examples.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/Examples.md
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php
diff --git a/vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt b/src/vitis/vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt
diff --git a/vas/doc/vendor/zircote/swagger-php/README.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/README.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/README.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/README.md
diff --git a/vas/doc/vendor/zircote/swagger-php/VERSION b/src/vitis/vas/doc/vendor/zircote/swagger-php/VERSION
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/VERSION
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/VERSION
diff --git a/vas/doc/vendor/zircote/swagger-php/bin/swagger b/src/vitis/vas/doc/vendor/zircote/swagger-php/bin/swagger
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/bin/swagger
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/bin/swagger
diff --git a/vas/doc/vendor/zircote/swagger-php/composer.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/composer.json
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/composer.json
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/composer.json
diff --git a/vas/doc/vendor/zircote/swagger-php/docs/Advanced.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Advanced.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/docs/Advanced.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Advanced.md
diff --git a/vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md
diff --git a/vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md
diff --git a/vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md
diff --git a/vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist b/src/vitis/vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Analyser.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analyser.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Analyser.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analyser.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Analysis.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analysis.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Analysis.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analysis.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Context.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Context.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Context.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Context.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Logger.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Logger.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Logger.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Logger.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Serializer.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Serializer.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Serializer.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Serializer.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Util.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Util.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Util.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Util.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/functions.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/functions.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/functions.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/functions.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php
diff --git a/vas/public/studio/default.js b/src/vitis/vas/public/studio/default.js
similarity index 100%
rename from vas/public/studio/default.js
rename to src/vitis/vas/public/studio/default.js
diff --git a/vas/rest/.htaccess b/src/vitis/vas/rest/.htaccess
similarity index 100%
rename from vas/rest/.htaccess
rename to src/vitis/vas/rest/.htaccess
diff --git a/vas/rest/class/.htaccess b/src/vitis/vas/rest/class/.htaccess
similarity index 100%
rename from vas/rest/class/.htaccess
rename to src/vitis/vas/rest/class/.htaccess
diff --git a/vas/rest/class/Ldap.class.inc b/src/vitis/vas/rest/class/Ldap.class.inc
similarity index 100%
rename from vas/rest/class/Ldap.class.inc
rename to src/vitis/vas/rest/class/Ldap.class.inc
diff --git a/vas/rest/class/PEAR/Autoloader.php b/src/vitis/vas/rest/class/PEAR/Autoloader.php
similarity index 100%
rename from vas/rest/class/PEAR/Autoloader.php
rename to src/vitis/vas/rest/class/PEAR/Autoloader.php
diff --git a/vas/rest/class/PEAR/Builder.php b/src/vitis/vas/rest/class/PEAR/Builder.php
similarity index 100%
rename from vas/rest/class/PEAR/Builder.php
rename to src/vitis/vas/rest/class/PEAR/Builder.php
diff --git a/vas/rest/class/PEAR/ChannelFile.php b/src/vitis/vas/rest/class/PEAR/ChannelFile.php
similarity index 100%
rename from vas/rest/class/PEAR/ChannelFile.php
rename to src/vitis/vas/rest/class/PEAR/ChannelFile.php
diff --git a/vas/rest/class/PEAR/ChannelFile/Parser.php b/src/vitis/vas/rest/class/PEAR/ChannelFile/Parser.php
similarity index 100%
rename from vas/rest/class/PEAR/ChannelFile/Parser.php
rename to src/vitis/vas/rest/class/PEAR/ChannelFile/Parser.php
diff --git a/vas/rest/class/PEAR/Command.php b/src/vitis/vas/rest/class/PEAR/Command.php
similarity index 100%
rename from vas/rest/class/PEAR/Command.php
rename to src/vitis/vas/rest/class/PEAR/Command.php
diff --git a/vas/rest/class/PEAR/Command/Auth.php b/src/vitis/vas/rest/class/PEAR/Command/Auth.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Auth.php
rename to src/vitis/vas/rest/class/PEAR/Command/Auth.php
diff --git a/vas/rest/class/PEAR/Command/Auth.xml b/src/vitis/vas/rest/class/PEAR/Command/Auth.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Auth.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Auth.xml
diff --git a/vas/rest/class/PEAR/Command/Build.php b/src/vitis/vas/rest/class/PEAR/Command/Build.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Build.php
rename to src/vitis/vas/rest/class/PEAR/Command/Build.php
diff --git a/vas/rest/class/PEAR/Command/Build.xml b/src/vitis/vas/rest/class/PEAR/Command/Build.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Build.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Build.xml
diff --git a/vas/rest/class/PEAR/Command/Channels.php b/src/vitis/vas/rest/class/PEAR/Command/Channels.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Channels.php
rename to src/vitis/vas/rest/class/PEAR/Command/Channels.php
diff --git a/vas/rest/class/PEAR/Command/Channels.xml b/src/vitis/vas/rest/class/PEAR/Command/Channels.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Channels.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Channels.xml
diff --git a/vas/rest/class/PEAR/Command/Common.php b/src/vitis/vas/rest/class/PEAR/Command/Common.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Common.php
rename to src/vitis/vas/rest/class/PEAR/Command/Common.php
diff --git a/vas/rest/class/PEAR/Command/Config.php b/src/vitis/vas/rest/class/PEAR/Command/Config.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Config.php
rename to src/vitis/vas/rest/class/PEAR/Command/Config.php
diff --git a/vas/rest/class/PEAR/Command/Config.xml b/src/vitis/vas/rest/class/PEAR/Command/Config.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Config.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Config.xml
diff --git a/vas/rest/class/PEAR/Command/Install.php b/src/vitis/vas/rest/class/PEAR/Command/Install.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Install.php
rename to src/vitis/vas/rest/class/PEAR/Command/Install.php
diff --git a/vas/rest/class/PEAR/Command/Install.xml b/src/vitis/vas/rest/class/PEAR/Command/Install.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Install.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Install.xml
diff --git a/vas/rest/class/PEAR/Command/Mirror.php b/src/vitis/vas/rest/class/PEAR/Command/Mirror.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Mirror.php
rename to src/vitis/vas/rest/class/PEAR/Command/Mirror.php
diff --git a/vas/rest/class/PEAR/Command/Mirror.xml b/src/vitis/vas/rest/class/PEAR/Command/Mirror.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Mirror.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Mirror.xml
diff --git a/vas/rest/class/PEAR/Command/Package.php b/src/vitis/vas/rest/class/PEAR/Command/Package.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Package.php
rename to src/vitis/vas/rest/class/PEAR/Command/Package.php
diff --git a/vas/rest/class/PEAR/Command/Package.xml b/src/vitis/vas/rest/class/PEAR/Command/Package.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Package.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Package.xml
diff --git a/vas/rest/class/PEAR/Command/Pickle.php b/src/vitis/vas/rest/class/PEAR/Command/Pickle.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Pickle.php
rename to src/vitis/vas/rest/class/PEAR/Command/Pickle.php
diff --git a/vas/rest/class/PEAR/Command/Pickle.xml b/src/vitis/vas/rest/class/PEAR/Command/Pickle.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Pickle.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Pickle.xml
diff --git a/vas/rest/class/PEAR/Command/Registry.php b/src/vitis/vas/rest/class/PEAR/Command/Registry.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Registry.php
rename to src/vitis/vas/rest/class/PEAR/Command/Registry.php
diff --git a/vas/rest/class/PEAR/Command/Registry.xml b/src/vitis/vas/rest/class/PEAR/Command/Registry.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Registry.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Registry.xml
diff --git a/vas/rest/class/PEAR/Command/Remote.php b/src/vitis/vas/rest/class/PEAR/Command/Remote.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Remote.php
rename to src/vitis/vas/rest/class/PEAR/Command/Remote.php
diff --git a/vas/rest/class/PEAR/Command/Remote.xml b/src/vitis/vas/rest/class/PEAR/Command/Remote.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Remote.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Remote.xml
diff --git a/vas/rest/class/PEAR/Command/Test.php b/src/vitis/vas/rest/class/PEAR/Command/Test.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Test.php
rename to src/vitis/vas/rest/class/PEAR/Command/Test.php
diff --git a/vas/rest/class/PEAR/Command/Test.xml b/src/vitis/vas/rest/class/PEAR/Command/Test.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Test.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Test.xml
diff --git a/vas/rest/class/PEAR/Common.php b/src/vitis/vas/rest/class/PEAR/Common.php
similarity index 100%
rename from vas/rest/class/PEAR/Common.php
rename to src/vitis/vas/rest/class/PEAR/Common.php
diff --git a/vas/rest/class/PEAR/Config.php b/src/vitis/vas/rest/class/PEAR/Config.php
similarity index 100%
rename from vas/rest/class/PEAR/Config.php
rename to src/vitis/vas/rest/class/PEAR/Config.php
diff --git a/vas/rest/class/PEAR/Dependency.php b/src/vitis/vas/rest/class/PEAR/Dependency.php
similarity index 100%
rename from vas/rest/class/PEAR/Dependency.php
rename to src/vitis/vas/rest/class/PEAR/Dependency.php
diff --git a/vas/rest/class/PEAR/Dependency2.php b/src/vitis/vas/rest/class/PEAR/Dependency2.php
similarity index 100%
rename from vas/rest/class/PEAR/Dependency2.php
rename to src/vitis/vas/rest/class/PEAR/Dependency2.php
diff --git a/vas/rest/class/PEAR/DependencyDB.php b/src/vitis/vas/rest/class/PEAR/DependencyDB.php
similarity index 100%
rename from vas/rest/class/PEAR/DependencyDB.php
rename to src/vitis/vas/rest/class/PEAR/DependencyDB.php
diff --git a/vas/rest/class/PEAR/Downloader.php b/src/vitis/vas/rest/class/PEAR/Downloader.php
similarity index 100%
rename from vas/rest/class/PEAR/Downloader.php
rename to src/vitis/vas/rest/class/PEAR/Downloader.php
diff --git a/vas/rest/class/PEAR/Downloader/Package.php b/src/vitis/vas/rest/class/PEAR/Downloader/Package.php
similarity index 100%
rename from vas/rest/class/PEAR/Downloader/Package.php
rename to src/vitis/vas/rest/class/PEAR/Downloader/Package.php
diff --git a/vas/rest/class/PEAR/ErrorStack.php b/src/vitis/vas/rest/class/PEAR/ErrorStack.php
similarity index 100%
rename from vas/rest/class/PEAR/ErrorStack.php
rename to src/vitis/vas/rest/class/PEAR/ErrorStack.php
diff --git a/vas/rest/class/PEAR/Exception.php b/src/vitis/vas/rest/class/PEAR/Exception.php
similarity index 100%
rename from vas/rest/class/PEAR/Exception.php
rename to src/vitis/vas/rest/class/PEAR/Exception.php
diff --git a/vas/rest/class/PEAR/FixPHP5PEARWarnings.php b/src/vitis/vas/rest/class/PEAR/FixPHP5PEARWarnings.php
similarity index 100%
rename from vas/rest/class/PEAR/FixPHP5PEARWarnings.php
rename to src/vitis/vas/rest/class/PEAR/FixPHP5PEARWarnings.php
diff --git a/vas/rest/class/PEAR/Frontend.php b/src/vitis/vas/rest/class/PEAR/Frontend.php
similarity index 100%
rename from vas/rest/class/PEAR/Frontend.php
rename to src/vitis/vas/rest/class/PEAR/Frontend.php
diff --git a/vas/rest/class/PEAR/Frontend/CLI.php b/src/vitis/vas/rest/class/PEAR/Frontend/CLI.php
similarity index 100%
rename from vas/rest/class/PEAR/Frontend/CLI.php
rename to src/vitis/vas/rest/class/PEAR/Frontend/CLI.php
diff --git a/vas/rest/class/PEAR/Installer.php b/src/vitis/vas/rest/class/PEAR/Installer.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer.php
rename to src/vitis/vas/rest/class/PEAR/Installer.php
diff --git a/vas/rest/class/PEAR/Installer/Role.php b/src/vitis/vas/rest/class/PEAR/Installer/Role.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Cfg.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Cfg.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Cfg.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Cfg.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Common.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Common.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Common.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Common.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Data.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Data.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Data.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Data.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Data.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Data.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Data.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Data.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Doc.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Doc.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Doc.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Doc.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Ext.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Ext.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Ext.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Ext.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Php.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Php.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Php.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Php.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Php.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Php.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Php.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Php.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Script.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Script.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Script.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Script.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Script.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Script.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Script.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Script.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Src.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Src.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Src.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Src.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Src.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Src.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Src.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Src.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Test.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Test.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Test.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Test.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Test.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Test.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Test.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Test.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Www.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Www.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Www.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Www.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Www.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Www.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Www.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Www.xml
diff --git a/vas/rest/class/PEAR/Mail.php b/src/vitis/vas/rest/class/PEAR/Mail.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail.php
rename to src/vitis/vas/rest/class/PEAR/Mail.php
diff --git a/vas/rest/class/PEAR/Mail/RFC822.php b/src/vitis/vas/rest/class/PEAR/Mail/RFC822.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/RFC822.php
rename to src/vitis/vas/rest/class/PEAR/Mail/RFC822.php
diff --git a/vas/rest/class/PEAR/Mail/mail.php b/src/vitis/vas/rest/class/PEAR/Mail/mail.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/mail.php
rename to src/vitis/vas/rest/class/PEAR/Mail/mail.php
diff --git a/vas/rest/class/PEAR/Mail/mime.php b/src/vitis/vas/rest/class/PEAR/Mail/mime.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/mime.php
rename to src/vitis/vas/rest/class/PEAR/Mail/mime.php
diff --git a/vas/rest/class/PEAR/Mail/mimePart.php b/src/vitis/vas/rest/class/PEAR/Mail/mimePart.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/mimePart.php
rename to src/vitis/vas/rest/class/PEAR/Mail/mimePart.php
diff --git a/vas/rest/class/PEAR/Mail/mock.php b/src/vitis/vas/rest/class/PEAR/Mail/mock.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/mock.php
rename to src/vitis/vas/rest/class/PEAR/Mail/mock.php
diff --git a/vas/rest/class/PEAR/Mail/net/SMTP.php b/src/vitis/vas/rest/class/PEAR/Mail/net/SMTP.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/SMTP.php
rename to src/vitis/vas/rest/class/PEAR/Mail/net/SMTP.php
diff --git a/vas/rest/class/PEAR/Mail/net/Socket.php b/src/vitis/vas/rest/class/PEAR/Mail/net/Socket.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/Socket.php
rename to src/vitis/vas/rest/class/PEAR/Mail/net/Socket.php
diff --git a/vas/rest/class/PEAR/Mail/net/docs/guide.txt b/src/vitis/vas/rest/class/PEAR/Mail/net/docs/guide.txt
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/docs/guide.txt
rename to src/vitis/vas/rest/class/PEAR/Mail/net/docs/guide.txt
diff --git a/vas/rest/class/PEAR/Mail/net/examples/basic.php b/src/vitis/vas/rest/class/PEAR/Mail/net/examples/basic.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/examples/basic.php
rename to src/vitis/vas/rest/class/PEAR/Mail/net/examples/basic.php
diff --git a/vas/rest/class/PEAR/Mail/net/tests/auth.phpt b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/auth.phpt
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/tests/auth.phpt
rename to src/vitis/vas/rest/class/PEAR/Mail/net/tests/auth.phpt
diff --git a/vas/rest/class/PEAR/Mail/net/tests/basic.phpt b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/basic.phpt
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/tests/basic.phpt
rename to src/vitis/vas/rest/class/PEAR/Mail/net/tests/basic.phpt
diff --git a/vas/rest/class/PEAR/Mail/net/tests/config.php.dist b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/config.php.dist
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/tests/config.php.dist
rename to src/vitis/vas/rest/class/PEAR/Mail/net/tests/config.php.dist
diff --git a/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt
rename to src/vitis/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt
diff --git a/vas/rest/class/PEAR/Mail/null.php b/src/vitis/vas/rest/class/PEAR/Mail/null.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/null.php
rename to src/vitis/vas/rest/class/PEAR/Mail/null.php
diff --git a/vas/rest/class/PEAR/Mail/sendmail.php b/src/vitis/vas/rest/class/PEAR/Mail/sendmail.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/sendmail.php
rename to src/vitis/vas/rest/class/PEAR/Mail/sendmail.php
diff --git a/vas/rest/class/PEAR/Mail/smtp.php b/src/vitis/vas/rest/class/PEAR/Mail/smtp.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/smtp.php
rename to src/vitis/vas/rest/class/PEAR/Mail/smtp.php
diff --git a/vas/rest/class/PEAR/Mail/smtpmx.php b/src/vitis/vas/rest/class/PEAR/Mail/smtpmx.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/smtpmx.php
rename to src/vitis/vas/rest/class/PEAR/Mail/smtpmx.php
diff --git a/vas/rest/class/PEAR/PEAR.php b/src/vitis/vas/rest/class/PEAR/PEAR.php
similarity index 100%
rename from vas/rest/class/PEAR/PEAR.php
rename to src/vitis/vas/rest/class/PEAR/PEAR.php
diff --git a/vas/rest/class/PEAR/PackageFile.php b/src/vitis/vas/rest/class/PEAR/PackageFile.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile.php
diff --git a/vas/rest/class/PEAR/PackageFile/Generator/v1.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v1.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/Generator/v1.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v1.php
diff --git a/vas/rest/class/PEAR/PackageFile/Generator/v2.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v2.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/Generator/v2.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v2.php
diff --git a/vas/rest/class/PEAR/PackageFile/Parser/v1.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v1.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/Parser/v1.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v1.php
diff --git a/vas/rest/class/PEAR/PackageFile/Parser/v2.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v2.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/Parser/v2.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v2.php
diff --git a/vas/rest/class/PEAR/PackageFile/v1.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v1.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/v1.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/v1.php
diff --git a/vas/rest/class/PEAR/PackageFile/v2.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v2.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/v2.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/v2.php
diff --git a/vas/rest/class/PEAR/PackageFile/v2/Validator.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v2/Validator.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/v2/Validator.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/v2/Validator.php
diff --git a/vas/rest/class/PEAR/PackageFile/v2/rw.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v2/rw.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/v2/rw.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/v2/rw.php
diff --git a/vas/rest/class/PEAR/Packager.php b/src/vitis/vas/rest/class/PEAR/Packager.php
similarity index 100%
rename from vas/rest/class/PEAR/Packager.php
rename to src/vitis/vas/rest/class/PEAR/Packager.php
diff --git a/vas/rest/class/PEAR/REST.php b/src/vitis/vas/rest/class/PEAR/REST.php
similarity index 100%
rename from vas/rest/class/PEAR/REST.php
rename to src/vitis/vas/rest/class/PEAR/REST.php
diff --git a/vas/rest/class/PEAR/REST/10.php b/src/vitis/vas/rest/class/PEAR/REST/10.php
similarity index 100%
rename from vas/rest/class/PEAR/REST/10.php
rename to src/vitis/vas/rest/class/PEAR/REST/10.php
diff --git a/vas/rest/class/PEAR/REST/11.php b/src/vitis/vas/rest/class/PEAR/REST/11.php
similarity index 100%
rename from vas/rest/class/PEAR/REST/11.php
rename to src/vitis/vas/rest/class/PEAR/REST/11.php
diff --git a/vas/rest/class/PEAR/REST/13.php b/src/vitis/vas/rest/class/PEAR/REST/13.php
similarity index 100%
rename from vas/rest/class/PEAR/REST/13.php
rename to src/vitis/vas/rest/class/PEAR/REST/13.php
diff --git a/vas/rest/class/PEAR/Registry.php b/src/vitis/vas/rest/class/PEAR/Registry.php
similarity index 100%
rename from vas/rest/class/PEAR/Registry.php
rename to src/vitis/vas/rest/class/PEAR/Registry.php
diff --git a/vas/rest/class/PEAR/Remote.php b/src/vitis/vas/rest/class/PEAR/Remote.php
similarity index 100%
rename from vas/rest/class/PEAR/Remote.php
rename to src/vitis/vas/rest/class/PEAR/Remote.php
diff --git a/vas/rest/class/PEAR/RunTest.php b/src/vitis/vas/rest/class/PEAR/RunTest.php
similarity index 100%
rename from vas/rest/class/PEAR/RunTest.php
rename to src/vitis/vas/rest/class/PEAR/RunTest.php
diff --git a/vas/rest/class/PEAR/Task/Common.php b/src/vitis/vas/rest/class/PEAR/Task/Common.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Common.php
rename to src/vitis/vas/rest/class/PEAR/Task/Common.php
diff --git a/vas/rest/class/PEAR/Task/Postinstallscript.php b/src/vitis/vas/rest/class/PEAR/Task/Postinstallscript.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Postinstallscript.php
rename to src/vitis/vas/rest/class/PEAR/Task/Postinstallscript.php
diff --git a/vas/rest/class/PEAR/Task/Postinstallscript/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Postinstallscript/rw.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Postinstallscript/rw.php
rename to src/vitis/vas/rest/class/PEAR/Task/Postinstallscript/rw.php
diff --git a/vas/rest/class/PEAR/Task/Replace.php b/src/vitis/vas/rest/class/PEAR/Task/Replace.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Replace.php
rename to src/vitis/vas/rest/class/PEAR/Task/Replace.php
diff --git a/vas/rest/class/PEAR/Task/Replace/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Replace/rw.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Replace/rw.php
rename to src/vitis/vas/rest/class/PEAR/Task/Replace/rw.php
diff --git a/vas/rest/class/PEAR/Task/Unixeol.php b/src/vitis/vas/rest/class/PEAR/Task/Unixeol.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Unixeol.php
rename to src/vitis/vas/rest/class/PEAR/Task/Unixeol.php
diff --git a/vas/rest/class/PEAR/Task/Unixeol/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Unixeol/rw.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Unixeol/rw.php
rename to src/vitis/vas/rest/class/PEAR/Task/Unixeol/rw.php
diff --git a/vas/rest/class/PEAR/Task/Windowseol.php b/src/vitis/vas/rest/class/PEAR/Task/Windowseol.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Windowseol.php
rename to src/vitis/vas/rest/class/PEAR/Task/Windowseol.php
diff --git a/vas/rest/class/PEAR/Task/Windowseol/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Windowseol/rw.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Windowseol/rw.php
rename to src/vitis/vas/rest/class/PEAR/Task/Windowseol/rw.php
diff --git a/vas/rest/class/PEAR/Validate.php b/src/vitis/vas/rest/class/PEAR/Validate.php
similarity index 100%
rename from vas/rest/class/PEAR/Validate.php
rename to src/vitis/vas/rest/class/PEAR/Validate.php
diff --git a/vas/rest/class/PEAR/Validator/PECL.php b/src/vitis/vas/rest/class/PEAR/Validator/PECL.php
similarity index 100%
rename from vas/rest/class/PEAR/Validator/PECL.php
rename to src/vitis/vas/rest/class/PEAR/Validator/PECL.php
diff --git a/vas/rest/class/PEAR/XMLParser.php b/src/vitis/vas/rest/class/PEAR/XMLParser.php
similarity index 100%
rename from vas/rest/class/PEAR/XMLParser.php
rename to src/vitis/vas/rest/class/PEAR/XMLParser.php
diff --git a/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php b/src/vitis/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php
similarity index 100%
rename from vas/rest/class/PHPMailer/extras/EasyPeasyICS.php
rename to src/vitis/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php
diff --git a/vas/rest/class/PHPMailer/extras/README.md b/src/vitis/vas/rest/class/PHPMailer/extras/README.md
similarity index 100%
rename from vas/rest/class/PHPMailer/extras/README.md
rename to src/vitis/vas/rest/class/PHPMailer/extras/README.md
diff --git a/vas/rest/class/PHPMailer/extras/htmlfilter.php b/src/vitis/vas/rest/class/PHPMailer/extras/htmlfilter.php
similarity index 100%
rename from vas/rest/class/PHPMailer/extras/htmlfilter.php
rename to src/vitis/vas/rest/class/PHPMailer/extras/htmlfilter.php
diff --git a/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php b/src/vitis/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php
similarity index 100%
rename from vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php
rename to src/vitis/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-am.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-az.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-be.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-da.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-de.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-el.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-es.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-et.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-he.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-id.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-it.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php
diff --git a/vas/rest/class/PHPMailer/src/Exception.php b/src/vitis/vas/rest/class/PHPMailer/src/Exception.php
similarity index 100%
rename from vas/rest/class/PHPMailer/src/Exception.php
rename to src/vitis/vas/rest/class/PHPMailer/src/Exception.php
diff --git a/vas/rest/class/PHPMailer/src/OAuth.php b/src/vitis/vas/rest/class/PHPMailer/src/OAuth.php
similarity index 100%
rename from vas/rest/class/PHPMailer/src/OAuth.php
rename to src/vitis/vas/rest/class/PHPMailer/src/OAuth.php
diff --git a/vas/rest/class/PHPMailer/src/PHPMailer.php b/src/vitis/vas/rest/class/PHPMailer/src/PHPMailer.php
similarity index 100%
rename from vas/rest/class/PHPMailer/src/PHPMailer.php
rename to src/vitis/vas/rest/class/PHPMailer/src/PHPMailer.php
diff --git a/vas/rest/class/PHPMailer/src/POP3.php b/src/vitis/vas/rest/class/PHPMailer/src/POP3.php
similarity index 100%
rename from vas/rest/class/PHPMailer/src/POP3.php
rename to src/vitis/vas/rest/class/PHPMailer/src/POP3.php
diff --git a/vas/rest/class/PHPMailer/src/SMTP.php b/src/vitis/vas/rest/class/PHPMailer/src/SMTP.php
similarity index 100%
rename from vas/rest/class/PHPMailer/src/SMTP.php
rename to src/vitis/vas/rest/class/PHPMailer/src/SMTP.php
diff --git a/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc b/src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc
similarity index 100%
rename from vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc
rename to src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc
diff --git a/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc b/src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc
similarity index 100%
rename from vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc
rename to src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc
diff --git a/vas/rest/class/aws_lib/AmazonAWS.class.inc b/src/vitis/vas/rest/class/aws_lib/AmazonAWS.class.inc
old mode 100755
new mode 100644
similarity index 94%
rename from vas/rest/class/aws_lib/AmazonAWS.class.inc
rename to src/vitis/vas/rest/class/aws_lib/AmazonAWS.class.inc
index 67f30140fb630544249a97969ea0e7b51f7259c1..223a0534b6262627e65631e7905eb9256825f8b9
--- a/vas/rest/class/aws_lib/AmazonAWS.class.inc
+++ b/src/vitis/vas/rest/class/aws_lib/AmazonAWS.class.inc
@@ -13,6 +13,7 @@ Class AmazonAWS {
     public $sAwsRegion;
     public $aLastCurlRequestInfo;
     public $sHost;
+    public $sLogFilePath;   // Chemin optionnel vers le fichier de log pour Amazon S3.
     private $sAwsAccessKeyId;
     private $sAwsSecretAccessKey;
     private $sHashingAlgorithmString;
@@ -467,5 +468,18 @@ Class AmazonAWS {
     function generateAuthorizationHeader($sAlgorithm, $sCredentialScope, $sSignedHeaders, $sSignature) {
         return $sAlgorithm . ' Credential=' . $this->sAwsAccessKeyId . '/' . $sCredentialScope . ', SignedHeaders=' . $sSignedHeaders . ', Signature=' . $sSignature;
     }
+    
+    /**
+     * Write a message to the error log file.
+     * @param {string} $sMessage Message to write to the log file.
+     */
+    function writeToErrorLog($sMessage) {
+        $aDebugBacktrace = debug_backtrace();
+        $sLogMessage = '|ERROR|' . $aDebugBacktrace[1]['class'] . '::' . $aDebugBacktrace[1]['function'] . '| ' . $sMessage;
+        if (empty($this->sLogFilePath))
+            writeToErrorLog($sLogMessage);
+        else
+            writeToLog($sLogMessage, $this->sLogFilePath);
+    }
 }
 ?>
\ No newline at end of file
diff --git a/vas/rest/class/aws_lib/AmazonApiGateway.class.inc b/src/vitis/vas/rest/class/aws_lib/AmazonApiGateway.class.inc
similarity index 100%
rename from vas/rest/class/aws_lib/AmazonApiGateway.class.inc
rename to src/vitis/vas/rest/class/aws_lib/AmazonApiGateway.class.inc
diff --git a/vas/rest/class/aws_lib/AmazonS3.class.inc b/src/vitis/vas/rest/class/aws_lib/AmazonS3.class.inc
old mode 100755
new mode 100644
similarity index 85%
rename from vas/rest/class/aws_lib/AmazonS3.class.inc
rename to src/vitis/vas/rest/class/aws_lib/AmazonS3.class.inc
index f9bfdb4dcc555ceb4122ffec2b794e4a3180b82f..32c7ed76f933ba2499f7cfa63c4a943cb4fa6bd9
--- a/vas/rest/class/aws_lib/AmazonS3.class.inc
+++ b/src/vitis/vas/rest/class/aws_lib/AmazonS3.class.inc
@@ -102,9 +102,6 @@ Class AmazonS3 extends AmazonAWS {
         }
 
         $sFullUrl = $sMethod . ' ' . $sUrl . ' HTTP/1.1';
-
-        error_log($sFullUrl);
-
         return $this->generateAwsSignedHeaders($sFullUrl, $sBucketHost, self::API_COMPONENT_SERVICE, $aHeaders, $sRequestPayload, true, 'Now', true);
     }
 
@@ -171,8 +168,10 @@ Class AmazonS3 extends AmazonAWS {
         // Transfert cURL.
         $sRequestResult = $this->curlRequest($sUrl, $sMethod, null, $aHeaders);
         //
-        if ($this->aLastCurlRequestInfo['http_code'] != 200)
-            writeToErrorLog($sRequestResult);
+        if ($this->aLastCurlRequestInfo['http_code'] != 200) {
+            $this->writeToErrorLog($this->formatS3ErrorMessage($sRequestResult));
+            return false;
+        }
         else {
             if (!empty($sFilePath))
                 file_put_contents($sFilePath, $sRequestResult);
@@ -191,24 +190,23 @@ Class AmazonS3 extends AmazonAWS {
     function uploadFile($sBucket, $sKey, $sFilePath) {
         if (file_exists($sFilePath)) {
             $sFileName = pathinfo($sFilePath, PATHINFO_BASENAME);
-
             // Url vers le fichier.
             $sUrl = 'https://' . $sBucket . '.' . $this->sHost;
-
             // Génération des entêtes pour la requete.
             $aPostData = $this->generatePostData($sBucket, $sKey);
             $aPostData['Content-Type'] = mime_content_type($sFilePath);
             $aPostData['file'] = new CurlFile(realpath($sFilePath), $aPostData['Content-Type'], $sFileName);
-
             $aHeaders = array(
                 'Content-Type: multipart/form-data',
             );
-
             $sRequestResult = $this->curlRequest($sUrl, 'post', $aPostData, $aHeaders, true);
-
-            if ($this->aLastCurlRequestInfo['http_code'] != 204)
-                writeToErrorLog($sRequestResult);
+            if ($this->aLastCurlRequestInfo['http_code'] != 204) {
+                $this->writeToErrorLog($this->formatS3ErrorMessage($sRequestResult));
+                return false;
+            }
         }
+        else
+            return false;
     }
 
     /**
@@ -229,10 +227,12 @@ Class AmazonS3 extends AmazonAWS {
         $aHeaders = $this->generateS3requestHeaders($sMethod, $sUrl, $sBucket, array('Content-Type: application/x-www-form-urlencoded'), '');
         // Transfert cURL.
         $sRequestResult = $this->curlRequest($sUrl, $sMethod, null, $aHeaders);
-        //error_log($sRequestResult);
-        if ($this->aLastCurlRequestInfo['http_code'] != 200){
-            writeToErrorLog("ERROR: ScanDir can't scan this prefix or this bucket");
-        } else {
+        if ($this->aLastCurlRequestInfo['http_code'] != 200) {
+            $this->writeToErrorLog("ERROR: ScanDir can't scan this prefix or this bucket");
+            $this->writeToErrorLog($this->formatS3ErrorMessage($sRequestResult));
+            return false;
+        }
+        else {
             $oXMLContent= json_decode(json_encode(simplexml_load_string($sRequestResult)), true);
             $oFiles = $this->awsObjectListXmlToTree($oXMLContent, $bWithFileInfos);
         }
@@ -332,14 +332,44 @@ Class AmazonS3 extends AmazonAWS {
         // Transfert cURL.
         $sRequestResult = $this->curlRequest($sUrl, $sMethod, null, $aHeaders);
         
-        if ($this->aLastCurlRequestInfo['http_code'] != 200){
-            writeToErrorLog("ERROR: it's impossible to delete this key in this bucket");
-        } else {
+        if ($this->aLastCurlRequestInfo['http_code'] != 200) {
+            $this->writeToErrorLog("ERROR: it's impossible to delete this key in this bucket");
+            $this->writeToErrorLog($this->formatS3ErrorMessage($sRequestResult));
+        } else
             $bReturn = true;
-            error_log($sRequestResult);
-        }
 
         return $bReturn;
     }
+    
+    /**
+     * Convert an error message returned by s3 (xml to object).
+     * @param {string} $sXmlErrorMessage Error message returned by s3 (xml format).
+     * @return object S3 Error 
+     */
+    function getS3ErrorObject($sXmlErrorMessage) {
+        $oSimpleXmlElement = simplexml_load_string($sXmlErrorMessage);
+        if (is_object($oSimpleXmlElement)) {
+            $oErrorMessage = new stdClass();
+            foreach ($oSimpleXmlElement as $sProperty => $oValue) {
+                $oErrorMessage->$sProperty = $oValue->__toString();
+            }
+            return $oErrorMessage;
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Format an error message returned by s3.
+     * @param {string} $sXmlErrorMessage Error message returned by s3 (xml format).
+     * @return string Error message
+     */
+    function formatS3ErrorMessage($sXmlErrorMessage) {
+        $oErrorMessage = $this->getS3ErrorObject($sXmlErrorMessage);
+        if ($oErrorMessage !== false)
+            return ($oErrorMessage->Code . ' : ' . $oErrorMessage->Message);
+        else
+            return $sXmlErrorMessage;
+    }
 }
 ?>
\ No newline at end of file
diff --git a/vas/rest/class/treeview/LdapTree.php b/src/vitis/vas/rest/class/treeview/LdapTree.php
similarity index 100%
rename from vas/rest/class/treeview/LdapTree.php
rename to src/vitis/vas/rest/class/treeview/LdapTree.php
diff --git a/vas/rest/class/treeview/Tree.php b/src/vitis/vas/rest/class/treeview/Tree.php
similarity index 100%
rename from vas/rest/class/treeview/Tree.php
rename to src/vitis/vas/rest/class/treeview/Tree.php
diff --git a/vas/rest/class/treeview/aciTree.php b/src/vitis/vas/rest/class/treeview/aciTree.php
similarity index 100%
rename from vas/rest/class/treeview/aciTree.php
rename to src/vitis/vas/rest/class/treeview/aciTree.php
diff --git a/vas/rest/class/vitis_lib/Connection.class.inc b/src/vitis/vas/rest/class/vitis_lib/Connection.class.inc
similarity index 100%
rename from vas/rest/class/vitis_lib/Connection.class.inc
rename to src/vitis/vas/rest/class/vitis_lib/Connection.class.inc
diff --git a/vas/rest/class/vitis_lib/DbClass.class.inc b/src/vitis/vas/rest/class/vitis_lib/DbClass.class.inc
similarity index 100%
rename from vas/rest/class/vitis_lib/DbClass.class.inc
rename to src/vitis/vas/rest/class/vitis_lib/DbClass.class.inc
diff --git a/vas/rest/class/vitis_lib/Form.class.inc b/src/vitis/vas/rest/class/vitis_lib/Form.class.inc
similarity index 100%
rename from vas/rest/class/vitis_lib/Form.class.inc
rename to src/vitis/vas/rest/class/vitis_lib/Form.class.inc
diff --git a/vas/rest/class/vitis_lib/VitisError.class.inc b/src/vitis/vas/rest/class/vitis_lib/VitisError.class.inc
similarity index 75%
rename from vas/rest/class/vitis_lib/VitisError.class.inc
rename to src/vitis/vas/rest/class/vitis_lib/VitisError.class.inc
index 0d61f69fcd02cf3cf89e8758a57bb2723d85eef4..1c52cfaa95a3a0479a910281e35cde8f25376703 100644
--- a/vas/rest/class/vitis_lib/VitisError.class.inc
+++ b/src/vitis/vas/rest/class/vitis_lib/VitisError.class.inc
@@ -4,7 +4,7 @@ require_once(__DIR__."/DbClass.class.inc");
 
 class VitisError extends DbClass  {
 		
-    function __construct($iErrorId, $sMessage=""){
+    function __construct($iErrorId, $sErrorMessage="", $sMessage = ''){
 		$this->aFields['errorCode']=$iErrorId;	
 		switch ($iErrorId){
 			case 1 :
@@ -57,9 +57,17 @@ class VitisError extends DbClass  {
 			break;
 			case 18 :
 				$this->aFields['errorType']="Missing privileges";
+			case 17 :
+				$this->aFields['errorType']="The request returned an error";
+			break;
+			case 19 :
+				$this->aFields['errorType']="The database is unreachable";
 			break;
 		}
-		$this->aFields['errorMessage']=$sMessage; //Message renvoyé par la base de donnée
+		$this->aFields['errorMessage']=$sErrorMessage; //Message renvoyé par la base de donnée
+		// Message d'erreur additionnel.
+		if (!empty($sMessage))
+		    $this->aFields['message'] = $sMessage;
     }
 }
 ?>
\ No newline at end of file
diff --git a/vas/rest/class/vitis_lib/XmlAbstract.class.inc b/src/vitis/vas/rest/class/vitis_lib/XmlAbstract.class.inc
similarity index 100%
rename from vas/rest/class/vitis_lib/XmlAbstract.class.inc
rename to src/vitis/vas/rest/class/vitis_lib/XmlAbstract.class.inc
diff --git a/vas/rest/class/vmlib/BD.class.inc b/src/vitis/vas/rest/class/vmlib/BD.class.inc
old mode 100755
new mode 100644
similarity index 100%
rename from vas/rest/class/vmlib/BD.class.inc
rename to src/vitis/vas/rest/class/vmlib/BD.class.inc
diff --git a/vas/rest/class/vmlib/BdDataAccess.inc b/src/vitis/vas/rest/class/vmlib/BdDataAccess.inc
similarity index 100%
rename from vas/rest/class/vmlib/BdDataAccess.inc
rename to src/vitis/vas/rest/class/vmlib/BdDataAccess.inc
diff --git a/vas/rest/class/vmlib/Email.class.inc b/src/vitis/vas/rest/class/vmlib/Email.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/Email.class.inc
rename to src/vitis/vas/rest/class/vmlib/Email.class.inc
diff --git a/vas/rest/class/vmlib/EmailTemplate.class.inc b/src/vitis/vas/rest/class/vmlib/EmailTemplate.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/EmailTemplate.class.inc
rename to src/vitis/vas/rest/class/vmlib/EmailTemplate.class.inc
diff --git a/vas/rest/class/vmlib/EmailTemplate.class.sql.inc b/src/vitis/vas/rest/class/vmlib/EmailTemplate.class.sql.inc
similarity index 100%
rename from vas/rest/class/vmlib/EmailTemplate.class.sql.inc
rename to src/vitis/vas/rest/class/vmlib/EmailTemplate.class.sql.inc
diff --git a/vas/rest/class/vmlib/Ldap.class.inc b/src/vitis/vas/rest/class/vmlib/Ldap.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/Ldap.class.inc
rename to src/vitis/vas/rest/class/vmlib/Ldap.class.inc
diff --git a/vas/rest/class/vmlib/PgsqlDataAccess.class.inc b/src/vitis/vas/rest/class/vmlib/PgsqlDataAccess.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/PgsqlDataAccess.class.inc
rename to src/vitis/vas/rest/class/vmlib/PgsqlDataAccess.class.inc
diff --git a/vas/rest/class/vmlib/PostgisUtil.class.inc b/src/vitis/vas/rest/class/vmlib/PostgisUtil.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/PostgisUtil.class.inc
rename to src/vitis/vas/rest/class/vmlib/PostgisUtil.class.inc
diff --git a/vas/rest/class/vmlib/Vm.class.inc b/src/vitis/vas/rest/class/vmlib/Vm.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/Vm.class.inc
rename to src/vitis/vas/rest/class/vmlib/Vm.class.inc
diff --git a/vas/rest/class/vmlib/Vm.class.sql.inc b/src/vitis/vas/rest/class/vmlib/Vm.class.sql.inc
similarity index 100%
rename from vas/rest/class/vmlib/Vm.class.sql.inc
rename to src/vitis/vas/rest/class/vmlib/Vm.class.sql.inc
diff --git a/vas/rest/class/vmlib/class.websocket_client.php b/src/vitis/vas/rest/class/vmlib/class.websocket_client.php
similarity index 100%
rename from vas/rest/class/vmlib/class.websocket_client.php
rename to src/vitis/vas/rest/class/vmlib/class.websocket_client.php
diff --git a/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php b/src/vitis/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/class.jstocoffee.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/errors.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/errors.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/errors.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/errors.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/helpers.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/helpers.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/helpers.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/helpers.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/lexer.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/lexer.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/lexer.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/lexer.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/access.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/base.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/block.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/call.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/class.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/code.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/for.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/if.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/in.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/index.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/op.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/param.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/push.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/range.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/return.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/try.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/value.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/while.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/parser.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/parser.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/parser.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/parser.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/rewriter.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/rewriter.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/rewriter.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/rewriter.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/scope.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/scope.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/scope.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/scope.php
diff --git a/vas/rest/class/vmlib/coffeescript/coffeescript.php b/src/vitis/vas/rest/class/vmlib/coffeescript/coffeescript.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/coffeescript.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/coffeescript.php
diff --git a/vas/rest/class/vmlib/coffeescript/jsmaker.php b/src/vitis/vas/rest/class/vmlib/coffeescript/jsmaker.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/jsmaker.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/jsmaker.php
diff --git a/vas/rest/class/vmlib/context/covage.inc b/src/vitis/vas/rest/class/vmlib/context/covage.inc
similarity index 100%
rename from vas/rest/class/vmlib/context/covage.inc
rename to src/vitis/vas/rest/class/vmlib/context/covage.inc
diff --git a/vas/rest/class/vmlib/context/gtf.inc b/src/vitis/vas/rest/class/vmlib/context/gtf.inc
similarity index 100%
rename from vas/rest/class/vmlib/context/gtf.inc
rename to src/vitis/vas/rest/class/vmlib/context/gtf.inc
diff --git a/vas/rest/class/vmlib/context/message.inc b/src/vitis/vas/rest/class/vmlib/context/message.inc
similarity index 100%
rename from vas/rest/class/vmlib/context/message.inc
rename to src/vitis/vas/rest/class/vmlib/context/message.inc
diff --git a/vas/rest/class/vmlib/cryptUtil.inc b/src/vitis/vas/rest/class/vmlib/cryptUtil.inc
similarity index 100%
rename from vas/rest/class/vmlib/cryptUtil.inc
rename to src/vitis/vas/rest/class/vmlib/cryptUtil.inc
diff --git a/vas/rest/class/vmlib/dateUtil.class.inc b/src/vitis/vas/rest/class/vmlib/dateUtil.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/dateUtil.class.inc
rename to src/vitis/vas/rest/class/vmlib/dateUtil.class.inc
diff --git a/vas/rest/class/vmlib/dbUtil.inc b/src/vitis/vas/rest/class/vmlib/dbUtil.inc
similarity index 100%
rename from vas/rest/class/vmlib/dbUtil.inc
rename to src/vitis/vas/rest/class/vmlib/dbUtil.inc
diff --git a/vas/rest/class/vmlib/error.inc b/src/vitis/vas/rest/class/vmlib/error.inc
old mode 100755
new mode 100644
similarity index 89%
rename from vas/rest/class/vmlib/error.inc
rename to src/vitis/vas/rest/class/vmlib/error.inc
index b36e043d301409462ee479bed0ea211463bb8a54..13db7b08ff362840fee0ef2bd2d8b84d0c63b52b
--- a/vas/rest/class/vmlib/error.inc
+++ b/src/vitis/vas/rest/class/vmlib/error.inc
@@ -19,6 +19,10 @@ define('ERROR_0008', "ERROR - Aucune méthode n'a permis d'affecté un moteur au
 // define('ERROR_0009', "ERROR - L'algorithme ne permet pas de retourner un numéro de moteur exploitable. Le numéro de moteur retourné n'est pas de type entier. Type de la valeur retournée par la méthode : ");
 // define('ERROR_0010', "ERROR - Le numéro du moteur retourné par l'algorithme n'existe pas dans la liste des moteurs disponible dans GTF.");
 define('ERROR_0011', "Erreur Le fichier [_FILES[sNomObjet][name]] n'est pas téléchargé sur le serveur");
+define('ERROR_0035', "Erreur de la suppression d'un processus d'une demande stoppée");
+define('ERROR_0036', "Erreur de la commande d'information d'un processus d'une demande stoppée");
+define('ERROR_0037', "Erreur pendant l'arrêt de la demande sur Fme Desktop.");
+define('ERROR_0038', "Erreur pendant l'arrêt de la demande sur Fme Server.");
 
 // veremap/DownloadMaj.class.inc
 define('ERROR_0012', "Unable to write file");
diff --git a/vas/rest/class/vmlib/lang_vmlib/en-lang.inc b/src/vitis/vas/rest/class/vmlib/lang_vmlib/en-lang.inc
similarity index 100%
rename from vas/rest/class/vmlib/lang_vmlib/en-lang.inc
rename to src/vitis/vas/rest/class/vmlib/lang_vmlib/en-lang.inc
diff --git a/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc b/src/vitis/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc
similarity index 100%
rename from vas/rest/class/vmlib/lang_vmlib/fr-lang.inc
rename to src/vitis/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc
diff --git a/vas/rest/class/vmlib/logUtil.inc b/src/vitis/vas/rest/class/vmlib/logUtil.inc
old mode 100755
new mode 100644
similarity index 75%
rename from vas/rest/class/vmlib/logUtil.inc
rename to src/vitis/vas/rest/class/vmlib/logUtil.inc
index f1334250b8024768910a30fecc9ac5a58b72f681..d7474ff379d5a0cf1850ac78f8ab2f5712560450
--- a/vas/rest/class/vmlib/logUtil.inc
+++ b/src/vitis/vas/rest/class/vmlib/logUtil.inc
@@ -7,7 +7,7 @@
  * Fonctions de mise en place de logs
  *
  * \author Olivier Gayte <olivier.gayte@veremes.com>
- * \author Fr�d�ric Mauro
+ * \author Frédéric Mauro
  */
 /*
  * Variable globale stockant une erreur.
@@ -20,8 +20,8 @@ $sMessageLogError = "";
 $sFolderLib = "vmlib";
 /**
  * Converti une chaine ISO-8859-1 en UTF-8
- * \param $sString Cha�ne de caract�res � convertir.
- * \return une chaine encod�e en UTF-8
+ * \param $sString Chaîne de caractères à convertir.
+ * \return une chaine encodée en UTF-8
  */
 /* function Latin1ToUtf8($sString){ 
   if( mb_detect_encoding($sString,"UTF-8, ISO-8859-1")!="UTF-8" ){
@@ -52,22 +52,45 @@ function writeToLog($sString, $sFileName) {
         return false;
     global $properties, $sMessageLogError, $sFolderLib;
 
-    // Fred 05/06/2013 : Si le r�pertoire de log n'existe pas : cr�ation	
+    // Si le répertoire de log n'existe pas : création	
     if (!is_dir(dirname($sFileName)))
         mkdir(dirname($sFileName), 0777, true);
     if (empty(pathinfo($sFileName, PATHINFO_EXTENSION)))
         return false;
- 
+
+    // Add Date and User informations before writing message in log file
     loadLang($sFolderLib, $properties["language"], $sFolderLib . "/");
     $sString = str_replace(chr(13), '[\n]', $sString);
     $sString = str_replace(chr(10), '[\n]', $sString);
-    $handle = fopen($sFileName, 'a');
     if(isset($_SESSION['ses_Login']) && isset($_SERVER['REMOTE_ADDR']) && isset($_SERVER['REMOTE_PORT'])){
         $sPrelog = date("d/n/Y H:i:s").' '.$_SESSION['ses_Login'].' '.$_SERVER['REMOTE_ADDR'] . ':' . $_SERVER['REMOTE_PORT'];
     } else {
         $sPrelog = date("d/n/Y H:i:s");
     }
-    if (fwrite($handle, $sPrelog . $properties["log_delim"] . $sString . CR . LF) === false) {
+
+    $sMessageLogtoWrite = $sPrelog . $properties["log_delim"] . $sString . CR . LF;
+
+    // Rename old file if greater than porperties log_size (maximum log size to open it through app in Kb)
+    // Get size of Log file in bytes
+    $iLogFileSize = filesize($sFileName);
+
+    if($iLogFileSize !== false){
+        // get size of log message
+        $iMessageLength = strlen($sMessageLogtoWrite);
+        $iTotalSizeKb = ($iLogFileSize + $iMessageLength) / 1024;
+        // compare with porperties log_size (maximum log size to open it through app in Kb)
+        if($iTotalSizeKb >= $properties['log_size'] - 1){
+            // Rename of the original file to split log and keep the possibility to read it through application
+            $sFileSplitName = str_replace(".log", "." . date("Y_m_d_U") . ".log", $sFileName);
+            if(!rename($sFileName, $sFileSplitName)){
+                $sMessageLogError = ERROR_IMPOSSIBLE_WRITE . $sFileName . ERROR_RIGHTS_ON_FILE . " (" . $sString . ").";
+            }
+        }
+    }
+
+    // create if needed and open log file to write log message inside. 
+    $handle = fopen($sFileName, 'a');
+    if (fwrite($handle, $sMessageLogtoWrite) === false) {
         fclose($handle);
         if (is_writable($sFileName)) {
             $sMessageLogError = ERROR_IMPOSSIBLE_WRITE . $sFileName . ERROR_RIGHTS_ON_FILE . " (" . $sString . ").";
diff --git a/vas/rest/class/vmlib/phpUtil.inc b/src/vitis/vas/rest/class/vmlib/phpUtil.inc
similarity index 94%
rename from vas/rest/class/vmlib/phpUtil.inc
rename to src/vitis/vas/rest/class/vmlib/phpUtil.inc
index 08c287ba00d806bb737927d08cdc2a9f5ca93229..dee4b832527ccda3d2af6ca01b50acc49085d063 100755
--- a/vas/rest/class/vmlib/phpUtil.inc
+++ b/src/vitis/vas/rest/class/vmlib/phpUtil.inc
@@ -203,9 +203,10 @@ function getFileName($sFullFileName) {
  *@file vmlib/phpUtil.inc
  *@param string $sFolder
  *@param string $sDestination
+ *@param string $sPassword
  *@return boolean
  */
-function createZip($sFolder, $sDestination, $sExtensionToExclude = '') {
+function createZip($sFolder, $sDestination, $sExtensionToExclude = '', $sPassword = '', $bDeleteFiles = false) {
     if (!empty($sExtensionToExclude)) {
         $aExtensionToExclude = explode('|', $sExtensionToExclude);
     } else {
@@ -222,6 +223,7 @@ function createZip($sFolder, $sDestination, $sExtensionToExclude = '') {
     $files = new RecursiveIteratorIterator(
             new RecursiveDirectoryIterator($sFolder), RecursiveIteratorIterator::LEAVES_ONLY
     );
+    $aCompressedFiles = array();
     foreach ($files as $name => $file) {
         if (!$file->isDir()) {
             $filePath = $file->getRealPath();
@@ -234,12 +236,23 @@ function createZip($sFolder, $sDestination, $sExtensionToExclude = '') {
             if (in_array($sExtension, $aExtensionToExclude)) {
                 continue;
             }
-            $zip->addFile($filePath, $relativePath);
+            if ($zip->addFile($filePath, $relativePath))
+                $aCompressedFiles[] = $filePath;
+            // Mot de passe.
+            if (!empty($sPassword))
+                $zip->setEncryptionName($oFileInfo->getFilename(), ZipArchive::EM_AES_256, $sPassword);
         }
     }
 
-    $zip->close();
-
+    if ($zip->close()) {
+        // Suppression des fichiers compressés.
+        if ($bDeleteFiles) {
+            foreach ($aCompressedFiles as $sFilePath) {
+                if (file_exists($sFilePath))
+                    unlink($sFilePath);
+            }
+        }
+    }
     return file_exists($sDestination);
 }
 
diff --git a/vas/rest/class/vmlib/stringUtil.inc b/src/vitis/vas/rest/class/vmlib/stringUtil.inc
similarity index 100%
rename from vas/rest/class/vmlib/stringUtil.inc
rename to src/vitis/vas/rest/class/vmlib/stringUtil.inc
diff --git a/vas/rest/class/wab_lib/BusinessObject.class.inc b/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.inc
similarity index 54%
rename from vas/rest/class/wab_lib/BusinessObject.class.inc
rename to src/vitis/vas/rest/class/wab_lib/BusinessObject.class.inc
index 34c24838743268ee7a5b0f40694ddb4094775403..36ae854ee3dd0789c11f938c6eba90dda09a36bf 100755
--- a/vas/rest/class/wab_lib/BusinessObject.class.inc
+++ b/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.inc
@@ -21,7 +21,6 @@ class WabBusinessObject {
     protected $aSql = array();
     protected $bNoError = true;
     protected $sErrorMessage;
-    protected $aLastCurlRequestInfo = "";
 
     /*     * ****************************************************
       Class constructor
@@ -32,7 +31,7 @@ class WabBusinessObject {
 
     public function __construct($oBd, $aTableInfo, $aValues, $aProperties, $className, $iId = null) {
         require 'BusinessObject.class.sql.inc';
-        $this->aTableInfo = $aTableInfo;
+        //$this->aTableInfo = $aTableInfo;
         $this->oBd = $oBd;
         $this->aValues = $aValues;
         $this->aProperties = $aProperties;
@@ -41,12 +40,30 @@ class WabBusinessObject {
         $this->history = "";
     }
 
+    /*     * ****************************************************
+      Sauve l'action réalisé par l'utilisateur
+      \sEvent : action réalisé (changement de statut...)
+     * **************************************************** */
+
+    private function addHistoryEvent($sEvent) {
+        $this->history .= date('d/m/Y H:i') . ' | ' . $_SESSION['ses_Login'] . ' | ' . $sEvent . PHP_EOL;
+    }
 
-     /* *****************************************************
+    /*     * ****************************************************
       Change le statut
       \sStatus : statut
      * **************************************************** */
-
+/*
+    protected function setStatus($sStatus) {
+        // Mode insertion ?	
+        if (!empty($this->iId))
+            $this->bo_id = $this->iId;
+        //	
+        $this->status = $sStatus;
+        $this->addHistoryEvent($this->status);
+        $this->save();
+    }
+*/
     public function wabSetStatus($sSchema, $sTable, $sBoNameField, $mBoIdValue, $sStatusName, $sView = '') {
         require 'BusinessObject.class.sql.inc';
 
@@ -62,24 +79,20 @@ class WabBusinessObject {
           );
         $oResultat = $this->oBd->executeWithParams($aSQL["getStatusId"], $aParams);
 
-        //$this->status = $this->oBd->objetSuivant($oResultat)->status_id;
-		$oStatus = $this->oBd->objetSuivant($oResultat);
+        $this->status = $this->oBd->objetSuivant($oResultat)->status_id;
         // ajout historique
-        //$this->addHistoryEvent($this->status);
-        //$this->addHistoryEvent($oStatus->name);
-		// UPDATE dans la table avec le boName
+        $this->addHistoryEvent($this->status);
+        // UPDATE dans la table avec le boName
         $sSql = $aSQL["updateStatus"];
         $aParams = array(
           "SCHEMA" => array("value"=> $sSchema, "type"=> 'column_name'),
           "TABLE" => array("value"=> $sView, "type"=> 'column_name'),
-          "STATUS_ID" => array("value"=> $oStatus->status_id, "type"=> 'number'),
+          "STATUS_ID" => array("value"=> $this->status, "type"=> 'number'),
           "BOIDFIELD" => array("value"=> $sBoNameField, "type"=> 'column_name'),
           "BOID" => array("value"=> $mBoIdValue, "type"=> 'number')
           );
 
         $this->oBd->executeWithParams($sSql, $aParams);
-		
-		$this->aValues["status_id"] = $oStatus->status_id;
     }
 
     public function wabGetStatus($sSchema, $sTable, $sBoNameField, $mBoIdValue) {
@@ -96,28 +109,13 @@ class WabBusinessObject {
         $oResultat = $this->oBd->executeWithParams($sSql, $aParams);
         return $this->oBd->objetSuivant($oResultat)->name;
     }
-	
-	public function wabGetObject($sSchema, $sTable, $sBoNameField, $mBoIdValue){
-		require 'BusinessObject.class.sql.inc';
-		$aParams = array(
-          "SCHEMA" => array("value"=> $sSchema, "type"=> 'column_name'),
-          "TABLE" => array("value"=> $sTable, "type"=> 'column_name'),
-          "BOIDFIELD" => array("value"=> $sBoNameField, "type"=> 'column_name'),
-          "BOID" => array("value"=> $mBoIdValue, "type"=> 'number')
-          );
-
-        $oResultat = $this->oBd->executeWithParams($aSQL["getBoValues"], $aParams);
-		$oFields = (array) $this->oBd->objetSuivant($oResultat);
-		
-		return $oFields;
-	}
     /*     * ********************************************************************
       Ajoute une note
       \sLineAttribute : Champ de form. contenant la note à ajouter
       \sNoteAttribute : Champ de form. contenant l'historique des notes
      * ******************************************************************** */
 
-    public function addNote($sLineAttribute, $sNoteAttribute) {
+    protected function addNote($sLineAttribute, $sNoteAttribute) {
         if (!empty($this->aValues[$sLineAttribute])) {
             // Mode insertion ?
             if (!empty($this->iId))
@@ -223,10 +221,8 @@ class WabBusinessObject {
      * ******************************************************************** */
 
     function save() {
-        //$aValues = $this->getClassParameters();
-        //$this->oBd->update($this->aTableInfo['schema_name'], str_replace($this->aTableInfo["module"] . "_", "", $this->aTableInfo['name']), $aValues, $this->aTableInfo['id_field'], $this->bo_id, $this->aTableInfo['id_field_type']);
-		$aValues = $this->getClassParameters();
-        $this->oBd->update($this->aTableInfo['schema_name'], $this->aTableInfo['name'], $aValues, $this->aTableInfo['id_field'], $this->bo_id, $this->aTableInfo['id_field_type']);
+        $aValues = $this->getClassParameters();
+        $this->oBd->update($this->aTableInfo['schema_name'], str_replace($this->aTableInfo["module"] . "_", "", $this->aTableInfo['name']), $aValues, $this->aTableInfo['id_field'], $this->bo_id, $this->aTableInfo['id_field_type']);
     }
 
     /*     * ********************************************************************
@@ -257,38 +253,44 @@ class WabBusinessObject {
         
       $bNoError = true;
 
-      //get workspace id
-      $sSQL = "SELECT workspace_id FROM [SCHEMA_GTF].workspace WHERE key = [WK_KEY];";
-      $aParams = array(
-        "SCHEMA_GTF" => array('value'=> $this->aProperties["schema_gtf"], 'type' => 'column_name'),
-        "WK_KEY" => array('value'=> $sWorkspaceKey, 'type' => 'string'),
-      );
-      $oWK = $this->oBd->executeWithParams($sSQL, $aParams);
-      // oBd en erreur
-      $iWKid = $this->oBd->objetSuivant ($oWK)->workspace_id;
-      // Insertion de la demande
-      $sUrl = $this->aProperties['web_server_name'] . '/' . $this->aProperties['services_alias'] . '/gtf/userorders';
-      $postfields = array(
-      //'token'=>$sToken, 
-        'order_date' => date('Y-m-d'),
-        'workspace_id'=>$iWKid, 
-        'priority_id'=>$iPriorityId,
-        'email_option_id'=>$iEmailOptionId,
-        'wk_params'=>$sWkParams,
-        'xslstylesheet'=>$sXslStyleSheet
-      );
-        
-      if ( $sEmailNotifications != null){
-        $postfields['email_notifications'] = $sEmailNotifications;
+      if($properties['web_server_name'] === "[HTTP_HOST]"){
+        $properties['web_server_name'] = "https://localhost";
       }
-      
-      $oReturn = $this->contactCurrentApi("POST", 'gtf/userorders', $postfields , $sMode="json");
-	  
-	  error_log(print_r($oReturn, true));
 
-      if($oReturn === false){
+      // Get token  
+      $sToken = $this->getToken();
+
+      if ($sToken !== false) {
+
+        //get workspace id
+        $sSQL = "SELECT workspace_id FROM [SCHEMA_GTF].workspace WHERE key = [WK_KEY];";
+        $aParams = array(
+          "SCHEMA_GTF" => array('value'=> $this->aProperties["schema_gtf"], 'type' => 'column_name'),
+          "WK_KEY" => array('value'=> $sWorkspaceKey, 'type' => 'string'),
+        );
+        $oWK = $this->oBd->executeWithParams($sSQL, $aParams);
+        // oBd en erreur
+        $iWKid = $this->oBd->objetSuivant ($oWK)->workspace_id;
+        // Insertion de la demande
+        $sUrl = $this->aProperties['web_server_name'] . '/' . $this->aProperties['services_alias'] . '/gtf/userorders';
+        $postfields = array(
+          'token'=>$sToken, 
+          'order_date' => date('Y-m-d'),
+          'workspace_id'=>$iWKid, 
+          'priority_id'=>$iPriorityId,
+          'email_option_id'=>$iEmailOptionId,
+          'wk_params'=>$sWkParams,
+          'xslstylesheet'=>$sXslStyleSheet
+        );
+        
+        if ( $sEmailNotifications != null){
+          $postfields['email_notifications'] = $sEmailNotifications;
+        }
+
+        $oReturn = $this->postCurlRequest ($sUrl, $postfields);
+                 
+      } else
         $sErrorMsg = 'Error while performing a cURL session (' . __METHOD__ . ' (get token))';
-      }
 
       if ($sErrorMsg != '') {
         writeToErrorLog($sErrorMsg);
@@ -347,41 +349,32 @@ class WabBusinessObject {
       /Retour : string token
      * ******************************************************************** */
 
-    function getToken ($sServerRestUrl = '', $aAuthParams = null) {
-
-        if($this->aProperties['web_server_name'] === "[HTTP_HOST]"){
-          $this->aProperties['web_server_name'] = "https://localhost";
-        }
+    function getToken () {
 
-        if(empty($sServerRestUrl)){
-          $sServerRestUrl = $this->aProperties['web_server_name'] . '/' . $this->aProperties['services_alias'];
-        }
+      if($this->aProperties['web_server_name'] === "[HTTP_HOST]"){
+        $this->aProperties['web_server_name'] = "https://localhost";
+      }
+        $sUrl = $this->aProperties['web_server_name'] . '/' . $this->aProperties['services_alias'] . '/vitis/privatetoken';
 
-        $sUrl = $sServerRestUrl . '/vitis/privatetoken';
-		
-        if(!empty($aAuthParams)){
-          $postfields = $aAuthParams;
-        } else if(!empty($_SESSION["ses_Login"])){
+        if(!empty($_SESSION["ses_Login"])){
           $sUserPassword = trim(des(rtrim(utf8_decode($_SESSION['ses_Login'])), hexToString(rtrim($_SESSION['ses_Password'])), 0, 0, null));
           $postfields = array('user'=>$_SESSION["ses_Login"], 'password'=>$sUserPassword);
         } else {
           $postfields = array('user'=>$this->aProperties["login_bot"], 'password'=>$this->aProperties["pass_bot"]);
         }
 
-        //$oToken = json_decode($this->postCurlRequest ($sUrl, $postfields));
-        $oToken = json_decode($this->sendCurlRequest ("POST", $sUrl, json_encode($postfields), array("Accept: applicaton/json", "Content-Type: application/json")));
-		
+        $oToken = json_decode($this->postCurlRequest ($sUrl, $postfields));
         return $oToken->token;
     }
 
     /*     * ********************************************************************
-      envoi une requete curl en POST (DEPRECATED)
+      envoi une requete curl en POST
       \$sUrl : Url pour envoyer la requete
       \$postfields : array contenant les paramètres à envoyer
       /Retour : string token
      * ******************************************************************** */
     function postCurlRequest ($sUrl, $postfields) {
-		/*$ch = curl_init($sUrl);
+      $ch = curl_init($sUrl);
         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
         curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: application/json"));
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@@ -389,153 +382,9 @@ class WabBusinessObject {
         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
         curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
-        return curl_exec($ch);*/
-		$this->sendCurlRequest("POST", $sUrl, $postfield, array("Accept: application/json"));
-    }
-
-    function sendCurlRequest($sMethod, $sUrl, $aParams=array(), $aHeaders=array()){
-
-        $this->aLastCurlRequestInfo = '';
-        //
-        $ch = curl_init();
-        $sType = strtoupper($sMethod);
-        // Force la méthode de requête utilisée (GET, POST...).
-        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $sType);
-        // Url à utiliser.
-        if (($sType == 'GET' || $sType == 'DELETE') && !empty($aParams))
-            $sUrl .= '?' . http_build_query($aParams);
-        curl_setopt($ch, CURLOPT_URL, $sUrl);
-        // ajout des en-tête
-        curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeaders);
-        // Retour sous forme de texte. 
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-        // Requête POST PUT parameters.
-
-        if ($sType == 'POST' || $sType == 'PUT') {
-			if($sType == 'POST'){
-				curl_setopt($ch, CURLOPT_POST, true);
-			}
-            // Chaîne de requête en encodage URL.
-            //if (is_array($aParamsaParams) && !$bMultipartFormData)
-            //    $aParams = http_build_query($aParams);
-            // Données de la requête.
-            curl_setopt($ch, CURLOPT_POSTFIELDS, $aParams);
-            //
-            //curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
-            // Entête pour la requête en POST.
-            //$aHeaders[] = 'Content-Type: application/x-www-form-urlencoded';
-        }
-
-        curl_setopt($ch, CURLINFO_HEADER_OUT, true);
-        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
-        // Curl error: SSL certificate problem: unable to get local issuer certificate
-        // Curl error n°60
-        curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
-		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
-        //
-        $output = curl_exec($ch);
-        // Erreur de la requête CURL.
-        if(curl_errno($ch)) {
-            writeToErrorLog('Curl error: ' . curl_error($ch));
-            writeToErrorLog('Curl error n°' . curl_errno($ch));
-        }
-        // Informations de la requête.
-        $aCurlInfo = curl_getinfo($ch);
-        $this->aLastCurlRequestInfo = $aCurlInfo;
-        
-        // Ferme la session CURL.
-        curl_close($ch);
-        return $output;
-    }
-
-    function contactCurrentApi($sMethod, $sUrlPath, $aParams=array(), $sMode="json", $aAuthParams = null){
-
-      if($this->aProperties['web_server_name'] === "[HTTP_HOST]"){
-          $this->aProperties['web_server_name'] = "https://localhost";
-        }
-
-      $sRestUrl = $this->aProperties['web_server_name'] . '/' . $this->aProperties['services_alias'];
-
-      $this->contactAnotherApi($sMethod, $sRestUrl, $sUrlPath, $aParams, $sMode, $aAuthParams);
+        return curl_exec($ch);
     }
 
-    function contactAnotherApi($sMethod, $sRestUrl, $sUrlPath, $aParams=array(), $sMode="json", $aAuthParams = null){
-        $mToken = $this->getToken($sRestUrl, $aAuthParams);
-		
-        $sUrl = $sRestUrl . "/" . $sUrlPath;
-
-        if($mToken !== false){
-
-            // modification des paramètres si besoin
-            $aSendParams = array();
-            $aHeaders = array("token: " . $mToken);
-
-            switch ($sMode) {
-                case 'json':
-                    $aSendParams = json_encode($aParams);
-                    $aHeaders[] = "Content-Type: application/json";
-                    $aHeaders[] = "Accept: application/json";
-                    break;
-                case 'query':
-                    $sUrl .= '?' . http_build_query($aParams);
-                    $aHeaders[] = "Accept: application/x-vm-json";
-                    break;
-                case 'urlencode':
-                    $aSendParams = http_build_query($aParams);
-                    $aHeaders[] = "Accept: application/x-www-form-urlencoded";
-                    break;
-                case 'formdata' :
-                    $aSendParams = $aParams;
-                    break;
-            }
-
-            $sOutput = $this->sendCurlRequest($sMethod, $sUrl, $aSendParams, $aHeaders);
-			error_log(print_r($this->aLastCurlRequestInfo, true));
-            return $sOutput;
-        } else {
-            writeToErrorLog("This user can't have a token on Calimap at URL : " . $sRestUrl);
-            return false;
-        }
-    }
-	
-	/**********************************************************************
-      Sauve l'historique deprecated
-    **********************************************************************/
-    function saveHistory() {
-        $aHistoryValues = array('bo_id' => $this->aValues["my_vitis_id"], 'login' => $_SESSION['ses_Login'], 'comment' => $this->status, 'date' => date('Y-m-d H:i:s'));
-        $this->oBd->insert($this->aTableInfo['schema_name'], 'history', $aHistoryValues, $this->aTableInfo['schema_name'] . '.history_history_id_seq', 'history_id');
-    }
-	/**********************************************************************
-      Sauve une note ou commentaire (history sert d'historique)
-    **********************************************************************/
-	function addHistoryLine($sComment, $sHistoryTable, $iBoId){
-		$sUser = 'u_scheduler';
-		if(isset($_SESSION['ses_Login']) && !empty($_SESSION['ses_Login'])){
-			$sUser = $_SESSION['ses_Login'];
-		}
-		
-		$aHistoryValues = array('bo_id' => $iBoId, 'login' => $sUser, 'comment' => $sComment, 'date' => date('Y-m-d H:i:s'));
-        $this->oBd->insert($this->aTableInfo['schema_name'], $sHistoryTable, $aHistoryValues, $this->aTableInfo['schema_name'] . '.seq_' . $sHistoryTable . "_id" , 'history_id');
-	}
-	
-	function commitNoteLine($sNoteLineField, $sNoteTable, $sBoTable, $sFieldId, $iBoId){
-		// get note line
-		$aFields = $this->wabGetObject($this->aTableInfo['schema_name'], $sBoTable, $sFieldId, $iBoId);
-		
-		if(!empty($aFields[$sNoteLineField])){
-			$sUser = 'u_scheduler';
-			if(isset($_SESSION['ses_Login']) && !empty($_SESSION['ses_Login'])){
-				$sUser = $_SESSION['ses_Login'];
-			}
-			$aNoteValues = array('bo_id' => $iBoId, 'login' => $sUser, 'comment' => $aFields[$sNoteLineField], 'date' => date('Y-m-d H:i:s'));
-			$this->oBd->insert($this->aTableInfo['schema_name'], $sNoteTable, $aNoteValues, $this->aTableInfo['schema_name'] . '.seq_' . $sNoteTable . "_id", 'history_id');
-		}
-		
-		// reset note line
-		$this->aValues[$sNoteLineField] = "";
-		$this->save();
-	}
-	
 }
 
 ?>
diff --git a/vas/rest/class/wab_lib/BusinessObject.class.sql.inc b/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.sql.inc
similarity index 56%
rename from vas/rest/class/wab_lib/BusinessObject.class.sql.inc
rename to src/vitis/vas/rest/class/wab_lib/BusinessObject.class.sql.inc
index a18ed1f2df0594917c4cdf5ec15499b422dd2273..bf02e36db648547116d594e3689cc070a8d36fc8 100755
--- a/vas/rest/class/wab_lib/BusinessObject.class.sql.inc
+++ b/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.sql.inc
@@ -1,6 +1,5 @@
 <?php
     $aSQL["getStatusId"] = 'SELECT * FROM [SCHEMA].rt_[TABLE]_status WHERE name = [STATUS_NAME]';
-	$aSQL["getBoValues"] = 'SELECT * FROM [SCHEMA].[TABLE] WHERE [TABLE].[BOIDFIELD]=[BOID]';
-    $aSQL["updateStatus"] = 'UPDATE [SCHEMA].[TABLE] SET status_id=[STATUS_ID] WHERE [TABLE].[BOIDFIELD]=[BOID]';
+    $aSQL["updateStatus"] = 'UPDATE [SCHEMA].v_[TABLE] SET status_id=[STATUS_ID] WHERE v_[TABLE].[BOIDFIELD]=[BOID]';
     $aSQL["getStatusName"] = 'SELECT name FROM [SCHEMA].rt_[TABLE]_status WHERE status_id = (SELECT status_id FROM [SCHEMA].[TABLE] WHERE [TABLE].[BOIDFIELD]=[BOID])';
 ?>
\ No newline at end of file
diff --git a/vas/rest/conf/constants.inc b/src/vitis/vas/rest/conf/constants.inc
similarity index 100%
rename from vas/rest/conf/constants.inc
rename to src/vitis/vas/rest/conf/constants.inc
diff --git a/vas/rest/conf/php_conf.inc b/src/vitis/vas/rest/conf/php_conf.inc
similarity index 100%
rename from vas/rest/conf/php_conf.inc
rename to src/vitis/vas/rest/conf/php_conf.inc
diff --git a/vas/rest/conf/properties.inc b/src/vitis/vas/rest/conf/properties.inc
old mode 100755
new mode 100644
similarity index 100%
rename from vas/rest/conf/properties.inc
rename to src/vitis/vas/rest/conf/properties.inc
diff --git a/vas/rest/conf/properties_domain.inc b/src/vitis/vas/rest/conf/properties_domain.inc
similarity index 100%
rename from vas/rest/conf/properties_domain.inc
rename to src/vitis/vas/rest/conf/properties_domain.inc
diff --git a/vas/rest/conf/properties_post.inc b/src/vitis/vas/rest/conf/properties_post.inc
similarity index 100%
rename from vas/rest/conf/properties_post.inc
rename to src/vitis/vas/rest/conf/properties_post.inc
diff --git a/vas/rest/conf/properties_server.inc b/src/vitis/vas/rest/conf/properties_server.inc
similarity index 100%
rename from vas/rest/conf/properties_server.inc
rename to src/vitis/vas/rest/conf/properties_server.inc
diff --git a/vas/rest/conf/selected_properties.inc b/src/vitis/vas/rest/conf/selected_properties.inc
old mode 100755
new mode 100644
similarity index 100%
rename from vas/rest/conf/selected_properties.inc
rename to src/vitis/vas/rest/conf/selected_properties.inc
diff --git a/vas/rest/conf/version.inc b/src/vitis/vas/rest/conf/version.inc
similarity index 100%
rename from vas/rest/conf/version.inc
rename to src/vitis/vas/rest/conf/version.inc
diff --git a/vas/rest/inc/MetadataAccess.class.inc b/src/vitis/vas/rest/inc/MetadataAccess.class.inc
similarity index 100%
rename from vas/rest/inc/MetadataAccess.class.inc
rename to src/vitis/vas/rest/inc/MetadataAccess.class.inc
diff --git a/vas/rest/inc/MetadataAccess.sql.inc b/src/vitis/vas/rest/inc/MetadataAccess.sql.inc
similarity index 100%
rename from vas/rest/inc/MetadataAccess.sql.inc
rename to src/vitis/vas/rest/inc/MetadataAccess.sql.inc
diff --git a/vas/rest/index.phtml b/src/vitis/vas/rest/index.phtml
similarity index 100%
rename from vas/rest/index.phtml
rename to src/vitis/vas/rest/index.phtml
diff --git a/vas/rest/index.vhtml b/src/vitis/vas/rest/index.vhtml
similarity index 100%
rename from vas/rest/index.vhtml
rename to src/vitis/vas/rest/index.vhtml
diff --git a/vas/rest/ws/vitis/Accounts.class.inc b/src/vitis/vas/rest/ws/vitis/Accounts.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Accounts.class.inc
rename to src/vitis/vas/rest/ws/vitis/Accounts.class.inc
diff --git a/src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc b/src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc
new file mode 100755
index 0000000000000000000000000000000000000000..fef01a79071cca69302125072cd43ad789e10a85
--- /dev/null
+++ b/src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc
@@ -0,0 +1,622 @@
+<?php
+
+$aMail["newUserTitle"] = "Un nouvel utilisateur vient juste de s'inscrire";
+$aMail["newUserTitleAutomated"] = "Vérification de votre adresse mail";
+$aMail["newUserBody"] = '<!-- 1 Column Text + Button : BEGIN -->
+    <tr>
+        <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;">
+            <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">[TITLE]</h1>
+        </td>
+    </tr>
+    <tr>
+        <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;">
+            <p style="width:100%; font-weight:bold; text-align: justify; font-size: 20px;">Bonjour [FULLNAME],</p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Nous vous remercions d\'avoir créé votre compte sur <b>[HOSTNAME]</b>.</p>
+            <p style="width:100%; text-align: left;font-size: 18px;"><b>Informations sur votre compte :</b></p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Identifiant : [USERNAME]</p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Organisme : [COMPANY] </p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Mail : [MAIL]</p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Téléphone : [PHONE] </p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Ip publique fixe : [PUBLIC_IP] </p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Nom du demandeur : [DEMANDEUR] </p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Adresse mail du demandeur : [MAIL_DEMANDEUR] </p>
+            <p style="width:100%; text-align: left;font-size: 18px;">Objet de l\'étude : [STUDY_OBJECT] </p>
+            <p style="width:100%; text-align: left;font-size: 18px;margin-top: 20px;">Cliquez sur le bouton ci-dessous pour finaliser votre inscription :</p>
+        </td>
+    </tr>
+    <tr>
+        <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 20px; line-height: 20px; color: #555555;">
+            <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto">
+                <tr>
+                    <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td">
+                        <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a">
+                            &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#ffffff;">Je confirme mon adresse mail</span>&nbsp;&nbsp;&nbsp;&nbsp;
+                        </a>
+                    </td>
+                </tr>
+            </table>
+            <!-- Button : END -->
+        </td>
+    </tr>
+    <tr>
+        <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;">
+            <p style="width:100%; text-align: justify;font-size: 18px;">Si vous ne vous êtes pas inscrit(e) sur notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p>
+        </td>
+    </tr>
+    <!-- 1 Column Text + Button : END -->';
+
+$aMail["confirmationSignUpTitle"] = "Confirmation d'inscription";
+$aMail["genericBody"] = '
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">[MESSAGE]</h1>
+                </td>
+            </tr>';
+
+$aMail["SignUpOk"] = '<tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur a été ajouté, connectez vous sur la base de données pour lui donner des droits (Defaut: [ROLES])</h1>
+                </td>
+            </tr>';
+$aMail["SignUpError"] = '<tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur n\'a pas pu être ajouté consultez les fichiers de log pour plus d\'informations</h1>
+                </td>
+            </tr>';
+
+$aMail["signUpConfirmation"] = '<tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal; margin-bottom: 15px;">Votre compte est maintenant activé, vous pouvez vous connecter. Pour avoir accès à plus de fonctionnalités contactez l\'administrateur</h1>
+                    <a style="margin: 0; font-family: sans-serif; font-size: 22px; font-weight: normal;" href="[REDIRECTION]"> Retourner vers l\'application </a>
+                </td>
+            </tr>';
+$aMail["fpwdTitle"] = "Changez votre mot de passe";
+$aMail["fpwdUpdateOk"] = '<tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe a été mis à jour</h1>
+                </td>
+            </tr>';
+$aMail["fpwdUpdateError"] = '<tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe n\'a pas pu être mis à jour</h1>
+                </td>
+            </tr>';
+$aMail["alreadyUpdate"] = '<tr>
+                <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe à déjà été changé</h1>
+                </td>
+            </tr>';
+
+$aMail["fpwdBody"] = '<!-- 1 Column Text + Button : BEGIN -->
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Changez votre mot de passe</h1>
+                </td>
+            </tr>
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;">
+                    <p style="width:100%; font-weight:bold; text-align: left; font-size: 20px;">Bonjour [LOGIN],</p>
+                    <p style="width:100%; text-align: left;font-size: 18px;">Une tentative de récupération de votre compte à été effectué sur le site <b>[HOSTNAME]</b>.</p>
+                    <p style="width:100%; text-align: left;font-size: 18px;margin-top: 10px;">Cliquez sur le bouton ci-dessous pour changer votre mot de passe :</p>
+                </td>
+            </tr>
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555;">
+                    <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto">
+                        <tr>
+                            <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td">
+                                <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a">
+                                    &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#ffffff;">Changer mon mot de passe</span>&nbsp;&nbsp;&nbsp;&nbsp;
+                                </a>
+                            </td>
+                        </tr>
+                    </table>
+                    <!-- Button : END -->
+                </td>
+            </tr>
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;">
+                    <p style="width:100%; text-align: justify;font-size: 18px;">Si vous n\'avez pas perdu votre mot de passe pour vous connecter à notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p>
+                </td>
+            </tr>
+            <!-- 1 Column Text + Button : END -->';
+
+$aMail["fpwdForm"] = '<!-- 1 Column Text + Button : BEGIN -->
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;">
+                    <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Saisissez votre nouveau mot de passe</h1>
+                </td>
+            </tr>
+            <tr>
+                <td bgcolor="#ffffff" style="padding: 20px 40px 40px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555; text-align: center;">
+                    <form style="text-align:-webkit-right;">
+                        <div style="text-align:left;">
+                            <label for="password" style="font-weight: bold;">Nouveau mot de passe</label>
+                            <input type="password" id="password" name="password" class="input-text-control" required/>
+                        </div>
+                        <div style="text-align:left;margin-top:10px;">
+                            <label for="password_confirm" style="font-weight: bold;">Confirmer votre nouveau mot de passe</label>
+                            <input type="password" id="password_confirm" name="password_confirm" class="input-text-control" required/>
+                        </div>
+                        <div style="margin-top:20px;">
+                            <input type="hidden" name="token" value="[TOKEN]"/>
+                            <input type="hidden" name="output" value="text/html"/>
+                            <button style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 15px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a" type="button" onclick="sendRequest(\'[URL]\')"><span style="color:#ffffff;">Envoi</span></button>
+                        </div>
+                    </form>
+                </td>
+            </tr>';
+
+$aMail["passwordScript"] = '<script>
+    var password = document.getElementById("password"), confirm_password = document.getElementById("password_confirm");
+
+        function validatePassword(){
+          if(password.value != confirm_password.value) {
+            confirm_password.setCustomValidity("Les deux mots de passe doivent être identique");
+          } else {
+            confirm_password.setCustomValidity(\'\');
+          }
+        }
+
+        password.onchange = validatePassword;
+        confirm_password.onkeyup = validatePassword;
+
+        function sendRequest (sUrl){
+            if(typeof(password.value)!== "undefined"){
+                if(password.value != ""){
+                    var xhr = new XMLHttpRequest();
+                    xhr.open("PUT", sUrl);
+                    sParams = JSON.stringify({"password": password.value});
+                    xhr.onreadystatechange = function (aEvt) {
+                        if (xhr.readyState == 4) {
+                            if (xhr.status == 200) {
+                                    var oJson = JSON.parse(xhr.responseText);
+                                    window.location.replace(oJson.sUrl);
+                            } else {
+                                    //xhr.responseText;
+                            }
+                        }
+                    }
+                    xhr.send(sParams);
+                }else{console.log("saisissez un mot de passe2")}
+            }else{console.log("saisissez un mot de passe")}
+        }
+    </script>';
+
+$aMail["mainBody"] = '<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8"> <!-- utf-8 works for most cases -->
+    <meta name="viewport" content="width=device-width"> <!-- Forcing initial-scale shouldn\'t be necessary -->
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Use the latest (edge) version of IE rendering engine -->
+    <meta name="x-apple-disable-message-reformatting">  <!-- Disable auto-scale in iOS 10 Mail entirely -->
+    <title>VAM</title> <!-- The title tag shows in email notifications, like Android 4.4. -->
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+    <!-- Web Font / @font-face : BEGIN -->
+    <!-- NOTE: If web fonts are not required, lines 10 - 27 can be safely removed. -->
+
+    <!-- Desktop Outlook chokes on web font references and defaults to Times New Roman, so we force a safe fallback font. -->
+    <!--[if mso]>
+        <style>
+            * {
+                font-family: sans-serif !important;
+            }
+        </style>
+    <![endif]-->
+
+    <!-- All other clients get the webfont reference; some will render the font and others will silently fail to the fallbacks. More on that here: http://stylecampaign.com/blog/2015/02/webfont-support-in-email/ -->
+    <!--[if !mso]><!-->
+  <!-- insert web font reference, eg: <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet" type="text/css"> -->
+  <!--<![endif]-->
+
+  <!-- Web Font / @font-face : END -->
+
+  <!-- CSS Reset -->
+  <style>
+
+  /* What it does: Remove spaces around the email design added by some email clients. */
+  /* Beware: It can remove the padding / margin and add a background color to the compose a reply window. */
+  html,
+  body {
+     margin: 0 auto !important;
+     padding: 0 !important;
+     height: 100% !important;
+     width: 100% !important;
+     /*min-width: 600px;*/
+ }
+
+ /* What it does: Stops email clients resizing small text. */
+ * {
+    -ms-text-size-adjust: 100%;
+    -webkit-text-size-adjust: 100%;
+}
+
+/* What it does: Centers email on Android 4.4 */
+div[style*="margin: 16px 0"] {
+    margin:0 !important;
+}
+
+/* What it does: Stops Outlook from adding extra spacing to tables. */
+table,
+td {
+    mso-table-lspace: 0pt !important;
+    mso-table-rspace: 0pt !important;
+}
+
+/* What it does: Fixes webkit padding issue. Fix for Yahoo mail table alignment bug. Applies table-layout to the first 2 tables then removes for anything nested deeper. */
+table {
+    border-spacing: 0 !important;
+    border-collapse: collapse !important;
+    table-layout: fixed !important;
+    margin: 0 auto !important;
+}
+table table table {
+    table-layout: auto;
+}
+
+/* What it does: Uses a better rendering method when resizing images in IE. */
+img {
+    -ms-interpolation-mode:bicubic;
+}
+
+/* What it does: A work-around for iOS meddling in triggered links. */
+*[x-apple-data-detectors] {
+    color: inherit !important;
+    text-decoration: none !important;
+}
+
+/* What it does: A work-around for Gmail meddling in triggered links. */
+.x-gmail-data-detectors,
+.x-gmail-data-detectors *,
+.aBn {
+    border-bottom: 0 !important;
+    //cursor: default !important;
+}
+
+/* What it does: Prevents Gmail from displaying an download button on large, non-linked images. */
+.a6S {
+ display: none !important;
+ opacity: 0.01 !important;
+}
+/* If the above doesn\'t work, add a .g-img class to any image in question. */
+img.g-img + div {
+ display:none !important;
+}
+
+/* What it does: Prevents underlining the button text in Windows 10 */
+.button-link {
+    text-decoration: none !important;
+}
+
+blockquote {
+  font-style:normal;
+  text-align:left;
+  //margin-left: 32px!important;
+  margin: 5px 5px 0px 32px!important;
+  //padding-top:10px;
+  //font-family:"Segoe Print","Times New Roman", Verdana;
+  padding-left: 7px;
+  min-height: 30px;
+  //background-color: #EFEFEF;
+  border-left: 2px solid #8c8c8c;  
+}
+
+blockquote > p {
+   margin:4.5px;
+}
+
+.input-text-control{
+    display: block;
+    width: 100%;
+    height: 14px;
+    padding: 4px 5px;
+    font-size: 12px;
+    line-height: 1.5;
+    border-radius: 3px;
+    color: #555;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #ccc;
+    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
+    box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
+    -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
+    -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
+    transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
+}
+
+/* What it does: Removes right gutter in Gmail iOS app: https://github.com/TedGoas/Cerberus/issues/89  */
+/* Create one of these media queries for each additional viewport size you\'d like to fix */
+/* Thanks to Eric Lepetit (@ericlepetitsf) for help troubleshooting */
+@media only screen and (min-device-width: 375px) and (max-device-width: 413px) { /* iPhone 6 and 6+ */
+    .email-container {
+        min-width: 375px !important;
+    }
+}
+
+</style>
+
+<!-- What it does: Makes background images in 72ppi Outlook render at correct size. -->
+    <!--[if gte mso 9]>
+    <xml>
+        <o:OfficeDocumentSettings>
+            <o:AllowPNG/>
+            <o:PixelsPerInch>96</o:PixelsPerInch>
+        </o:OfficeDocumentSettings>
+    </xml>
+<![endif]-->
+
+<!-- Progressive Enhancements -->
+<style>
+
+/* What it does: Hover styles for buttons */
+.button-td,
+.button-a {
+    transition: all 100ms ease-in;
+}
+.button-td:hover,
+.button-a:hover {
+    background: #449D44 !important;
+    border-color: #449D44 !important;
+}
+
+.bottom-strip{
+    width: 120px !important;
+    height: 10px !important;
+    float: left !important;
+}
+
+.square-logo-layout{
+    width: 40px;
+    float: left !important;
+    background-color: #FFF;//#24292E;
+    border-radius: 50%;
+    font-size: 30px;
+    padding: 7.5px;
+    margin-right: 0px;
+    //color: #FFF;
+    cursor:pointer !important;
+}
+
+.square-logo-layout > svg{
+    cursor:pointer!important;
+}
+
+
+/* Media Queries */
+@media screen and (max-width: 600px) {
+
+    .email-container {
+        width: 100% !important;
+        margin: auto !important;
+    }
+
+    /* What it does: Forces elements to resize to the full width of their container. Useful for resizing images beyond their max-width. */
+    .fluid {
+        max-width: 100% !important;
+        height: auto !important;
+        margin-left: auto !important;
+        margin-right: auto !important;
+    }
+
+    /* What it does: Forces table cells into full-width rows. */
+    .stack-column,
+    .stack-column-center {
+        display: block !important;
+        width: 100% !important;
+        max-width: 100% !important;
+        direction: ltr !important;
+    }
+    /* And center justify these ones. */
+    .stack-column-center {
+        text-align: center !important;
+    }
+
+    /* What it does: Generic utility class for centering. Useful for images, buttons, and nested tables. */
+    .center-on-narrow {
+        text-align: center !important;
+        display: block !important;
+        margin-left: auto !important;
+        margin-right: auto !important;
+        float: none !important;
+    }
+    table.center-on-narrow {
+        display: inline-block !important;
+    }
+
+    .input-text-control{
+        display: block;
+        width: 100%;
+        height: 14px;
+        padding: 4px 5px;
+        font-size: 12px;
+        line-height: 1.5;
+        border-radius: 3px;
+        color: #555;
+        background-color: #fff;
+        background-image: none;
+        border: 1px solid #ccc;
+        -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
+        box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
+        -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
+        -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
+        transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
+    }
+
+    /* What it does: Adjust typography on small screens to improve readability */
+    .email-container p {
+        font-size: 17px !important;
+        line-height: 22px !important;
+    }
+
+}
+
+</style>
+
+</head>
+<body width="100%" bgcolor="#E5E5E5" style="margin: 0px; mso-line-height-rule: exactly;">
+    <center style="width: 600px; margin: auto; background: #FFFFFF; text-align: left;">
+        <!-- Email Header : BEGIN -->
+        <table role="presentation" aria-hidden="true" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
+           <tr>
+            <td style="padding: 20px 0px; text-align: center">
+             <a href="http://www.veremes.com/" target="_blank">
+                <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="335px" height="100px" viewBox="0 0 335 100" enable-background="new 0 0 335 100" xml:space="preserve">
+                    <g>
+                        <rect fill="#FFFFFF" width="335" height="100"/>
+                        <g>
+                            <path fill="#1A171B" d="M308.774,60.788c-0.99-1.493-2.537-2.688-4.64-3.589c-0.533-0.224-1.577-0.57-3.142-1.042
+                                        c-1.563-0.47-2.75-0.959-3.567-1.472c-0.893-0.547-1.532-1.161-1.916-1.841c-0.386-0.682-0.577-1.517-0.577-2.511
+                                        c0-1.4,0.466-2.572,1.398-3.516c0.933-0.944,2.098-1.417,3.498-1.417c1.561,0,2.793,0.437,3.695,1.308
+                                        c0.901,0.873,1.402,2.1,1.505,3.681h4.622c-0.12-2.909-1.026-5.178-2.72-6.806c-1.69-1.626-3.972-2.439-6.845-2.439
+                                        c-2.71,0-5.016,0.916-6.921,2.744c-1.904,1.831-2.856,4.057-2.856,6.678c0,2.319,0.569,4.168,1.714,5.551
+                                        c1.143,1.383,3.582,2.734,7.318,4.056c2.334,0.858,3.947,1.775,4.838,2.754c0.891,0.98,1.336,2.274,1.336,3.884
+                                        c0,1.612-0.561,2.947-1.682,4.007c-1.121,1.063-2.526,1.592-4.219,1.592c-1.772,0-3.262-0.69-4.463-2.071
+                                        c-1.202-1.379-1.802-3.12-1.802-5.228v-0.122h-4.502c0.103,3.535,1.114,6.344,3.039,8.431c1.922,2.085,4.466,3.127,7.637,3.127
+                                        c3.108,0,5.674-0.952,7.698-2.853c2.025-1.899,3.038-4.301,3.038-7.205C310.261,64.182,309.764,62.279,308.774,60.788z
+                                         M118.462,41.021c-5.17,0-9.417,1.679-12.739,5.035c-3.32,3.357-4.979,7.607-4.979,12.742c0,4.912,1.693,9.118,5.084,12.617
+                                        c3.389,3.502,7.535,5.252,12.438,5.252c3.694,0,6.947-0.998,9.756-2.988c2.808-1.994,4.988-4.849,6.542-8.569h-4.866
+                                        c-1.103,2.332-2.666,4.151-4.688,5.459c-2.023,1.308-4.302,1.962-6.834,1.962c-3.575,0-6.558-1.131-8.947-3.394
+                                        c-2.391-2.263-3.718-5.226-3.983-8.894h30.413v-0.318c0-5.604-1.601-10.154-4.797-13.655
+                                        C127.662,42.771,123.529,41.021,118.462,41.021z M105.366,56.472c0.509-3.468,1.901-6.219,4.17-8.258
+                                        c2.27-2.037,5.04-3.056,8.313-3.056c3.517,0,6.368,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.509,8.47H105.366z M99.054,31.046
+                                        L84.898,69.101L72.402,35.38l0.007-0.047l-0.079-0.217c-0.401-1.095-0.841-2.3-1.34-3.546l-0.194-0.523h-0.021
+                                        c-2.108-5.143-5.249-10.879-10.817-12.957c-5.541-2.069-12.762-0.675-17.169,3.314c-3.422,3.096-5.471,7.843-6.089,14.111
+                                        c0-0.002-0.117,1.154-0.117,1.154c-0.239,2.31-0.481,4.665-0.354,7.034l0.047,0.874l0.875-0.048l2.31-0.124l0.876-0.046
+                                        l-0.049-0.876c-0.113-2.069,0.115-4.268,0.335-6.396c0-0.001,0.12-1.172,0.12-1.172c0.517-5.235,2.121-9.103,4.771-11.499
+                                        c3.349-3.03,8.825-4.09,13.024-2.522c4.294,1.604,6.994,6.964,8.88,11.717l1.387,3.688l0.208,0.57l0.005-0.004L83.24,75.692h3.407
+                                        l16.788-44.646H99.054z M268.755,41.021c-5.171,0-9.418,1.679-12.738,5.035c-3.32,3.357-4.979,7.607-4.979,12.742
+                                        c0,4.912,1.692,9.118,5.084,12.617c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.758-2.988
+                                        c2.807-1.994,4.986-4.849,6.54-8.569h-4.866c-1.102,2.332-2.666,4.151-4.688,5.459c-2.022,1.308-4.302,1.962-6.835,1.962
+                                        c-3.574,0-6.557-1.131-8.945-3.394c-2.392-2.263-3.72-5.226-3.984-8.894h30.415v-0.318c0-5.604-1.603-10.154-4.8-13.655
+                                        C277.955,42.771,273.821,41.021,268.755,41.021z M255.658,56.472c0.51-3.468,1.901-6.219,4.171-8.258
+                                        c2.27-2.037,5.039-3.056,8.314-3.056c3.516,0,6.367,0.948,8.555,2.844c2.187,1.897,3.692,4.719,4.509,8.47H255.658z
+                                         M148.164,42.625c-1.253,0.705-2.409,1.808-3.465,3.315v-3.946h-4.074v33.698h4.379V55.395c0-3.099,0.583-5.334,1.754-6.711
+                                        c1.17-1.376,3.11-2.187,5.821-2.431l-0.032-4.744C150.878,41.549,149.417,41.922,148.164,42.625z M172.22,41.021
+                                        c-5.171,0-9.418,1.679-12.738,5.035c-3.321,3.357-4.981,7.607-4.981,12.742c0,4.912,1.694,9.118,5.085,12.617
+                                        c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.757-2.988c2.808-1.994,4.988-4.849,6.541-8.569h-4.866
+                                        c-1.102,2.332-2.665,4.151-4.688,5.459c-2.023,1.308-4.303,1.962-6.834,1.962c-3.574,0-6.557-1.131-8.947-3.394
+                                        c-2.391-2.263-3.718-5.226-3.984-8.894h30.414v-0.318c0-5.604-1.6-10.154-4.799-13.655
+                                        C181.419,42.771,177.286,41.021,172.22,41.021z M159.124,56.472c0.51-3.468,1.901-6.219,4.17-8.258
+                                        c2.271-2.037,5.04-3.056,8.313-3.056c3.517,0,6.369,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.51,8.47H159.124z
+                                         M232.864,41.264c-2.51,0-4.779,0.509-6.809,1.518c-2.03,1.012-3.73,2.49-5.097,4.43c-1.106-1.818-2.712-3.264-4.82-4.338
+                                        c-2.108-1.072-4.441-1.61-7-1.61c-2.212,0-4.191,0.379-5.941,1.134c-1.748,0.756-3.27,1.88-4.558,3.372v-3.776h-4.258v33.698
+                                        h4.258V59.274c0-2.927,0.105-4.978,0.321-6.154c0.215-1.177,0.586-2.227,1.119-3.147c0.856-1.473,2.026-2.604,3.509-3.391
+                                        c1.481-0.787,3.203-1.182,5.165-1.182c3.248,0,5.66,0.926,7.233,2.777c1.573,1.852,2.36,4.722,2.36,8.61v18.905h4.136V59.274
+                                        c0-2.927,0.112-4.978,0.338-6.154c0.223-1.177,0.59-2.227,1.1-3.147c0.854-1.473,2.012-2.604,3.467-3.391
+                                        c1.457-0.787,3.143-1.182,5.06-1.182c3.318,0,5.711,0.947,7.178,2.84c1.469,1.894,2.202,5.07,2.202,9.529v17.923h4.137V58.658
+                                        c0-6.093-1.043-10.516-3.122-13.268C240.76,42.64,237.436,41.264,232.864,41.264z"/>
+                            <g>
+                            <path fill="#1A171B" d="M36.791,43.727c4.5,3.508,3.856-8.518,5.095-10.445c-0.251,0.39,1.045-0.227,1.359-0.68
+                                                c0.714-1.033,0.78-1.304,1.783-0.467c0.685,0.57,4.073-2.156,5.011-2.76c-0.206-0.223,0.68,1.338,0.68,0.764
+                                                c0,4.354-0.253,0.671,2.42,1.401c1.206,0.329,2.179-0.847,3.269,0.893c-0.283,0.31-0.566,0.621-0.849,0.933
+                                                c4.111,1.071,3.139,4.072,7.134,6.029c-1.239,0.545-2.304,1.363-2.463,2.803c1.169,0.267,2.366,0.422,3.566,0.424
+                                                c-0.34,0.311-0.679,0.622-1.02,0.934c2.158,0.346,2.307,2.235,4.671,1.699c-0.891,1.669-4.83,4.51-1.274,5.094
+                                                c-0.198,0.085-0.396,0.171-0.594,0.255c0.745,0.477,1.172,1.362,1.868,1.868c-0.946,0.11-1.794,0.679-2.802,0.68
+                                                c0.04,1.611,1.581,1.87,2.717,2.124c-2.577,1.72,0.311,0.894,0.722,2.122c-0.165-0.493,1.154,1.254,0.807,0.977
+                                                c-0.173-0.139-1.318,0.596-0.807,1.062c0.174,0.158,4.875,0.583,1.98,1.482c-1.714,0.534-4.447,0.456-3.679,2.763
+                                                c-1.174-0.126-1.886,0.235-2.845-0.083c0.154,0.687-0.067,0.846,0.213,1.442c-1.335,0.382-2.595-0.269-3.695-1.061
+                                                c-0.042,0.268-0.084,0.537-0.127,0.806c-0.368-0.325-0.736-0.649-1.104-0.976c0.016,0.536-0.255,1.096-0.212,1.656
+                                                c-0.877-0.677-5.258-4.209-2.972-1.189c0.905,1.195,1.842,1.439,2.93,2.463c-1.363,0.366-0.2,5.027,1.91,4.627
+                                                c-1.045,1.709-3.151-0.414-4.289,1.828c1.419,0.304,0.683,0.515,1.826,1.146c-0.596-0.139-1.35,0.109-1.996-0.043
+                                                c0.058,0.606,1.302,2.911,1.104,3.185c-0.761,1.05-2.778-1.146-3.949-1.146c-0.209,0.18-0.252,0.392-0.126,0.636
+                                                c1.264,0.254,0.742,0.52,0.976,1.698c-2.448-0.878-0.467,0.231-0.467,1.104c0,3.686-2.677-0.092-2.548,2.505
+                                                c-0.269-0.014-0.537-0.027-0.806-0.041c0.263,2.893-2.243-0.257-2.845,3.056c0.048,0.018-3.298-0.522-3.333-0.488
+                                                c-1.136,1.135-1.402-0.027-2.174,0.598c-1.87,1.514-1.024-1.807-1.552-1.998c-0.694-0.253-2.246,1.984-2.455,0.573
+                                                c-0.207-1.396-0.55-3.131-1.463-1.656c-0.954-0.37-3.546,0.314-3.842-0.572c-0.223-0.67-2.252-3.619-0.871-4.078
+                                                c-0.407,0.137-1.347,0.543-1.719,0.765c0.857-2.833-1.515-2.188-3.185-1.146c0.104-1.69,0.899-3.521-1.083-3.247
+                                                c0.293-0.662,0.337-1.645,0.828-2.356c-0.382,0.084-0.764,0.17-1.146,0.254c0.059-0.477,4.984-10.382,5.223-10.382
+                                                c-0.199-0.062-0.369-0.169-0.51-0.318c-1.236,3.129-3.048,5.804-5.095,8.534c0.046-0.52-0.061-1.008-0.318-1.464
+                                                c-0.23,0-1.983,2.339-2.548,2.61c0-0.253,0-0.509,0-0.763c-0.231,0.366-1.444,2.675-1.783,2.675c-0.329,0,0.481-1.796-0.51-1.467
+                                                c-0.944,0.315-1.458,0.54-2.292,0.701c0.99-1.181,1.719-2.432-0.446-1.783c0.204-0.955-0.191-1.231-0.191-1.974
+                                                c-0.159,0.41-0.393,0.771-0.7,1.084c-0.23-1.254-0.242-6.138-0.383-6.138c-1.46,0,0.123-2.937,0.341-3.312
+                                                c-0.17-0.142-0.341-0.282-0.51-0.425c0.05,1.16-0.433,1.305-0.764,2.293c-1.08-1.767,1.521-3.314-0.764-3.99
+                                                c0.311-0.256,0.623-0.51,0.934-0.765c-0.199-0.198-0.396-0.396-0.595-0.595c-0.269,0.61-0.729,1.216-1.02,1.783
+                                                c-0.154-0.479,0.034-2.888,0.51-2.888c-0.313-0.017-0.624-0.044-0.935-0.084c0.723-0.973,0.495-1.264,1.444-1.699
+                                                c-0.17-0.51-0.339-1.019-0.509-1.529c0.17,0.058,0.339,0.114,0.509,0.171c0.149,0.083-0.41-0.829-0.68-0.424
+                                                c0.503-0.754,1.123-1.223,1.868-1.614c-0.283-0.17-0.566-0.34-0.849-0.51c0.664-0.432,1.176-1.357,2.038-1.698
+                                                c-0.566-1.104-0.674-1.464-1.868-1.784c-0.033-2.104,1.163-9.234,2.717-8.407c-0.049-0.578-0.062-0.699,0.509-0.765
+                                                c-0.087-1.145-0.637-0.797,0.595-1.104c-0.979-4.102,1.847-2.083,3.651-1.104c0-0.341,0-0.68,0-1.02
+                                                c0.534,0.116,1.853,0.641,2.177,0.085c0.109-0.188-0.92-0.513-1.073-0.594c1.126-0.569,0.975-1.844,0.17-3.143
+                                                c1.503,0.075,3.008,0.738,3.482-0.594c0.613,0.591,1.188,0.584,1.697,1.358c0.284-0.481,0.566-0.963,0.85-1.443
+                                                c0.53,0.646,1.549,2.504,2.59,1.983c0.223-0.111,1.486,0.661,1.486,0.394c0-1.159,0.588-2.121,1.529-2.717
+                                                C35.584,34.716,35.005,38.027,36.791,43.727"/>
+                            </g>
+                        </g>
+                    </g>
+                </svg>
+            </a>
+        </td>
+    </tr>
+</table>
+<!-- Email Header : END -->
+
+<!-- Email Body : BEGIN -->
+<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
+
+    [CONTENT]
+
+</table>
+<!-- Email Body : END -->
+
+<!-- Email Footer : BEGIN -->
+<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
+    <tr>
+        <td style="padding: 0px;width: 100%;" class="x-gmail-data-detectors">
+            <div class="bottom-strip" style="background-color: #39468A;"></div>
+            <div class="bottom-strip" style="background-color: #E74F23;"></div>
+            <div class="bottom-strip" style="background-color: #923288;"></div>
+            <div class="bottom-strip" style="background-color: #1C9DB2;"></div>
+            <div class="bottom-strip" style="background-color: #E10759;"></div>
+        </td>
+    </tr>
+</table>
+<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
+    <tr>
+        <td style="padding: 10px;width: 50%;font-size: 12px; font-family: sans-serif; line-height:18px; text-align: center; color: #888888; cursor:pointer;" class="x-gmail-data-detectors">
+            <a class="square-logo-layout" href="https://twitter.com/Veremes_Info" target="_blank" style="color: #24292E; cursor:pointer;">
+                <!--<i class="fa fa-twitter" style=""></i>-->
+                <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;">
+                        <title>Twitter</title>
+                        <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.28,37c0,.56,0,1.12,0,1.68C75.32,56,62.2,75.83,38.21,75.83h0a37,37,0,0,1-20-5.86,24.62,24.62,0,0,0,3.11.18,26.13,26.13,0,0,0,16.2-5.58,13,13,0,0,1-12.18-9.06,12.34,12.34,0,0,0,2.45.24,13,13,0,0,0,3.44-.46A13,13,0,0,1,20.77,42.5v-.16A13.11,13.11,0,0,0,26.68,44a13.05,13.05,0,0,1-4-17.42A37,37,0,0,0,49.52,40.18a13.19,13.19,0,0,1-.34-3,13.05,13.05,0,0,1,22.57-8.92A26.11,26.11,0,0,0,80,25.12a13.08,13.08,0,0,1-5.73,7.22,26.23,26.23,0,0,0,7.49-2.06A26.49,26.49,0,0,1,75.28,37Z"/>
+                </svg>
+            </a>
+            <a class="square-logo-layout" href="https://www.linkedin.com/company/veremes/" target="_blank" style="color: #24292E; cursor:pointer;">
+                <!--<i class="fa fa-linkedin" style=""></i>-->
+                <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;">
+                        <title>LinkedIn</title>
+                        <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM60.71,51a6.48,6.48,0,0,0-6.33,6.32V79.68H41.74V41.74H54.38v5a13.63,13.63,0,0,1,10.54-5.9A15,15,0,0,1,79.68,55.65v24H67V57.33A6.48,6.48,0,0,0,60.71,51ZM27,34.57A7.59,7.59,0,1,1,34.57,27,7.55,7.55,0,0,1,27,34.57Zm6.32,7.17V79.68H20.66V41.74Z"/>
+                </svg>
+            </a>
+            <a class="square-logo-layout" href="http://vm09.veremes.net/" target="_blank" style="color: #24292E; cursor:pointer;">
+                <!--<i class="fa fa-github" style=""></i>-->
+                <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;">
+                    <title>GitLab</title>
+                    <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.18,15.1a1,1,0,0,1,2,0l9,27.81h-20Zm-52.34,0a1,1,0,0,1,2,0l9,27.81h-20ZM9.85,61A2.63,2.63,0,0,1,8.9,58l4.35-13.4L47.16,88.07Zm4.33-17h20l14.3,44Zm21.19,0H64.63L50,89Zm30.42,0h20L51.49,88ZM90.15,61,52.84,88.07,86.75,44.62,91.1,58A2.63,2.63,0,0,1,90.15,61Z"/>
+                </svg>
+            </a>
+            <a class="square-logo-layout" href="http://www.veremes.com/" target="_blank" style="color: #24292E; cursor:pointer;">
+                <!--<i class="fa fa-globe" style=""></i>-->
+                <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;">
+                        <defs>
+                                <style>.cls-1{fill:none;}</style>
+                        </defs>
+                        <title>Veremes</title>
+                        <path class="cls-1" d="M60.17,18.09h0S60.15,18.05,60.17,18.09Z"/>
+                        <path class="cls-1" d="M48.39,26.38c.66-6.65,2.7-11.56,6.06-14.6a11.45,11.45,0,0,1,1.82-1.29A40.5,40.5,0,0,0,50,10l-1,0c-3.18,3.87-5.13,9.17-5.79,15.85l-.15,1.47c-.21,2.06-.42,4.16-.47,6.28-1.35-5.7-.83-9.69-1.1-15.87A4,4,0,0,0,39.6,21.2c0,.34-1.6-.64-1.88-.5-1.33.67-2.62-1.69-3.29-2.51L33.35,20c-.65-1-1.38-1-2.16-1.73-.6,1.69-2.51.85-4.42.76,1,1.65,1.21,3.26-.21,4,.19.1,1.5.51,1.36.75-.41.71-2.09,0-2.77-.11V25c-2.29-1.25-5.88-3.81-4.63,1.4-1.57.39-.87-.05-.76,1.4-.72.09-.71.24-.64,1-2-1.05-3.5,8-3.45,10.68,1.51.4,1.65.86,2.37,2.26-1.1.43-1.75,1.61-2.59,2.16l1.08.64a6,6,0,0,0-2.37,2c.34-.51,1.05.65.86.54l-.65-.22c.22.65.43,1.3.65,2-1.21.55-.92.92-1.83,2.15.39,0,.78.09,1.18.11-.6,0-.84,3.06-.65,3.67.37-.72,1-1.49,1.3-2.27l.75.76-1.18,1c2.9.86-.4,2.82,1,5.06.42-1.25,1-1.43,1-2.91l.65.54c-.28.48-2.29,4.21-.44,4.21.18,0,.2,6.2.49,7.79a4,4,0,0,0,.89-1.38c0,.95.5,1.3.24,2.51,2.75-.82,1.82.76.57,2.26a20.92,20.92,0,0,0,2.91-.89c1.26-.41.23,1.86.64,1.86s2-2.93,2.27-3.39v1c.72-.35,2.94-3.32,3.23-3.32a3.11,3.11,0,0,1,.41,1.86,46.51,46.51,0,0,0,6.47-10.83,1.46,1.46,0,0,0,.65.4c-.31,0-6.56,12.58-6.64,13.18l1.46-.32c-.63.9-.68,2.15-1,3,2.51-.35,1.5,2,1.37,4.13,2.12-1.33,5.14-2.15,4.05,1.45a15.73,15.73,0,0,1,2.18-1c-1.76.58.82,4.33,1.11,5.17.37,1.13,3.66.26,4.87.73,1.16-1.87,1.6.33,1.86,2.11s2.24-1,3.12-.73c.67.24-.4,4.46,2,2.53,1-.79,1.32.68,2.76-.75,0,0,4.29.64,4.23.62.77-4.21,3.94-.21,3.61-3.88l1,0c-.16-3.3,3.24,1.5,3.24-3.18,0-1.11-2.52-2.52.59-1.4-.29-1.5.37-1.84-1.24-2.16a.62.62,0,0,1,.16-.81c1.49,0,4,2.79,5,1.46.25-.35-1.33-3.28-1.4-4,.82.2,1.77-.12,2.53.06-1.45-.8-.52-1.07-2.32-1.46,1.45-2.84,4.12-.15,5.45-2.32C70.78,71.9,69.3,66,71,65.52c-1.38-1.3-2.57-1.61-3.72-3.13-2.9-3.83,2.66.65,3.78,1.51-.06-.71.28-1.42.27-2.1L72.76,63c0-.34.11-.69.16-1,1.4,1,3,1.83,4.69,1.35-.35-.76-.08-1-.27-1.83,1.22.4,2.12-.06,3.61.11-1-2.93,2.5-2.84,4.67-3.51,3.68-1.15-2.29-1.68-2.51-1.88-.65-.6.8-1.53,1-1.35.44.35-1.23-1.87-1-1.24-.52-1.56-4.19-.51-.92-2.7-1.44-.32-3.4-.65-3.45-2.69,1.28,0,2.36-.73,3.56-.87-.89-.64-1.43-1.76-2.37-2.37l.75-.32c-4.51-.74.49-4.35,1.62-6.47-3,.68-3.19-1.72-5.93-2.16l1.29-1.18a20.84,20.84,0,0,1-4.52-.54c.19-1.83,1.55-2.87,3.12-3.56-5.07-2.49-3.84-6.3-9.06-7.66L68.28,22c-1.38-2.21-2.62-.72-4.15-1.13-3.39-.93-3.07,3.75-3.07-1.78,0,.62-.81-.72-.89-1-1.22.8-5.47,4.21-6.34,3.49-1.27-1.06-1.35-.72-2.26.59-.4.58-2,1.36-1.73.87-.9,1.41-1,7.1-2.05,10.79,0-2,.25-4,.45-6Z"/>
+                        <path d="M99.94,47.71l0-.64c0-.61-.08-1.23-.14-1.84,0-.16,0-.31,0-.46-.08-.74-.17-1.47-.28-2.2,0-.19-.06-.38-.1-.57q-.13-.86-.3-1.68l-.12-.64c-.15-.7-.31-1.39-.48-2.08,0-.15-.09-.3-.13-.45-.14-.56-.3-1.11-.46-1.65-.08-.24-.15-.49-.23-.73-.16-.51-.34-1-.52-1.54-.06-.17-.12-.35-.19-.53-.23-.62-.47-1.24-.73-1.85-.11-.27-.22-.53-.34-.8s-.35-.78-.53-1.17l-.38-.81c-.27-.56-.56-1.11-.85-1.66-.16-.3-.33-.59-.49-.88s-.35-.61-.53-.92-.37-.63-.57-.94L92,22.86q-.55-.86-1.14-1.68l-.45-.62c-.25-.35-.51-.69-.77-1-.13-.18-.27-.35-.41-.52q-1.36-1.74-2.9-3.35L86,15.35q-1.66-1.72-3.48-3.29L82.46,12a51.79,51.79,0,0,0-5.4-4h0a49.56,49.56,0,0,0-4.42-2.54h0A49.59,49.59,0,0,0,63.94,2h0c-1.56-.45-3.16-.83-4.78-1.13L58.49.73,57.21.52C56.59.43,56,.35,55.33.29L54.54.21,53,.1l-.73,0C51.51,0,50.76,0,50,0a50,50,0,1,0,50,50C100,49.23,100,48.47,99.94,47.71ZM49.84,23c-.31.49,1.33-.29,1.73-.87.91-1.31,1-1.65,2.26-.59.87.72,5.12-2.69,6.34-3.49,0,0,0-.06,0,0h0c.08.24.89,1.58.89,1,0,5.53-.32.85,3.07,1.78,1.53.41,2.77-1.08,4.15,1.13L67.2,23.14c5.22,1.36,4,5.17,9.06,7.66-1.57.69-2.93,1.73-3.12,3.56a20.84,20.84,0,0,0,4.52.54l-1.29,1.18c2.74.44,2.92,2.84,5.93,2.16-1.13,2.12-6.13,5.73-1.62,6.47l-.75.32c.94.61,1.48,1.73,2.37,2.37-1.2.14-2.28.86-3.56.87.05,2,2,2.37,3.45,2.69-3.27,2.19.4,1.14.92,2.7-.21-.63,1.46,1.59,1,1.24-.22-.18-1.67.75-1,1.35.22.2,6.19.73,2.51,1.88-2.17.67-5.64.58-4.67,3.51-1.49-.17-2.39.29-3.61-.11.19.87-.08,1.07.27,1.83-1.7.48-3.29-.34-4.69-1.35,0,.34-.11.69-.16,1l-1.4-1.24c0,.68-.33,1.39-.27,2.1C70,63,64.41,58.56,67.31,62.39c1.15,1.52,2.34,1.83,3.72,3.13-1.73.46-.25,6.38,2.43,5.87-1.33,2.17-4-.52-5.45,2.32,1.8.39.87.66,2.32,1.46-.76-.18-1.71.14-2.53-.06.07.77,1.65,3.7,1.4,4-1,1.33-3.53-1.46-5-1.46a.62.62,0,0,0-.16.81c1.61.32,1,.66,1.24,2.16-3.11-1.12-.59.29-.59,1.4,0,4.68-3.4-.12-3.24,3.18l-1,0c.33,3.67-2.84-.33-3.61,3.88.06,0-4.19-.67-4.23-.62-1.44,1.43-1.78,0-2.76.75-2.37,1.93-1.3-2.29-2-2.53-.88-.32-2.86,2.52-3.12.73s-.7-4-1.86-2.11c-1.21-.47-4.5.4-4.87-.73-.29-.84-2.87-4.59-1.11-5.17a15.73,15.73,0,0,0-2.18,1c1.09-3.6-1.93-2.78-4.05-1.45.13-2.15,1.14-4.48-1.37-4.13.37-.84.42-2.09,1-3l-1.46.32c.08-.6,6.33-13.18,6.64-13.18a1.46,1.46,0,0,1-.65-.4,46.51,46.51,0,0,1-6.47,10.83A3.11,3.11,0,0,0,28,67.51c-.29,0-2.51,3-3.23,3.32v-1c-.3.46-1.83,3.39-2.27,3.39s.62-2.27-.64-1.86a20.92,20.92,0,0,1-2.91.89c1.25-1.5,2.18-3.08-.57-2.26.26-1.21-.24-1.56-.24-2.51a4,4,0,0,1-.89,1.38c-.29-1.59-.31-7.79-.49-7.79-1.85,0,.16-3.73.44-4.21l-.65-.54c.06,1.48-.55,1.66-1,2.91-1.37-2.24,1.93-4.2-1-5.06l1.18-1L15,52.47c-.34.78-.93,1.55-1.3,2.27-.19-.61,0-3.67.65-3.67-.4,0-.79-.06-1.18-.11.91-1.23.62-1.6,1.83-2.15-.22-.65-.43-1.3-.65-2l.65.22c.19.11-.52-1-.86-.54a6,6,0,0,1,2.37-2l-1.08-.64c.84-.55,1.49-1.73,2.59-2.16-.72-1.4-.86-1.86-2.37-2.26-.05-2.68,1.47-11.73,3.45-10.68-.07-.73-.08-.88.64-1-.11-1.45-.81-1,.76-1.4-1.25-5.21,2.34-2.65,4.63-1.4v-1.3c.68.15,2.36.82,2.77.11.14-.24-1.17-.65-1.36-.75,1.42-.73,1.23-2.34.21-4,1.91.09,3.82.93,4.42-.76C32,19,32.7,19,33.35,20l1.08-1.83c.67.82,2,3.18,3.29,2.51.28-.14,1.88.84,1.88.5a4,4,0,0,1,1.94-3.45c.27,6.18-.25,10.17,1.1,15.87,0-2.12.26-4.22.47-6.28l.15-1.47c.66-6.68,2.61-12,5.79-15.85l1,0a40.5,40.5,0,0,1,6.27.49,11.45,11.45,0,0,0-1.82,1.29c-3.36,3-5.4,8-6.06,14.6l-.15,1.49c-.2,2-.41,4-.45,6C48.82,30.14,48.94,24.45,49.84,23Z"/>
+                </svg>
+            </a>
+        </td>
+        <td style="padding: 10px;width: 50%;font-size: 20px; font-family: sans-serif; line-height:18px; text-align: center; color: #000000;" class="x-gmail-data-detectors">
+            <div style="margin-bottom:10px;">Pour toute question :</div>
+            <div>support@veremes.com</div>
+        </td>
+    </tr>
+</table>
+<!-- Email Footer : END -->
+
+</center>
+[SCRIPT]
+</body>
+</html>';
+?>
\ No newline at end of file
diff --git a/vas/rest/ws/vitis/Accounts.class.sql.inc b/src/vitis/vas/rest/ws/vitis/Accounts.class.sql.inc
similarity index 100%
rename from vas/rest/ws/vitis/Accounts.class.sql.inc
rename to src/vitis/vas/rest/ws/vitis/Accounts.class.sql.inc
diff --git a/vas/rest/ws/vitis/Action.class.inc b/src/vitis/vas/rest/ws/vitis/Action.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Action.class.inc
rename to src/vitis/vas/rest/ws/vitis/Action.class.inc
diff --git a/vas/rest/ws/vitis/Actions.class.inc b/src/vitis/vas/rest/ws/vitis/Actions.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Actions.class.inc
rename to src/vitis/vas/rest/ws/vitis/Actions.class.inc
diff --git a/vas/rest/ws/vitis/ActiveDirectory.class.inc b/src/vitis/vas/rest/ws/vitis/ActiveDirectory.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/ActiveDirectory.class.inc
rename to src/vitis/vas/rest/ws/vitis/ActiveDirectory.class.inc
diff --git a/vas/rest/ws/vitis/BillingGroup.class.inc b/src/vitis/vas/rest/ws/vitis/BillingGroup.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/BillingGroup.class.inc
rename to src/vitis/vas/rest/ws/vitis/BillingGroup.class.inc
diff --git a/vas/rest/ws/vitis/BillingGroups.class.inc b/src/vitis/vas/rest/ws/vitis/BillingGroups.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/BillingGroups.class.inc
rename to src/vitis/vas/rest/ws/vitis/BillingGroups.class.inc
diff --git a/vas/rest/ws/vitis/Column.class.inc b/src/vitis/vas/rest/ws/vitis/Column.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Column.class.inc
rename to src/vitis/vas/rest/ws/vitis/Column.class.inc
diff --git a/vas/rest/ws/vitis/Columns.class.inc b/src/vitis/vas/rest/ws/vitis/Columns.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Columns.class.inc
rename to src/vitis/vas/rest/ws/vitis/Columns.class.inc
diff --git a/vas/rest/ws/vitis/Database.class.inc b/src/vitis/vas/rest/ws/vitis/Database.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Database.class.inc
rename to src/vitis/vas/rest/ws/vitis/Database.class.inc
diff --git a/vas/rest/ws/vitis/Domain.class.inc b/src/vitis/vas/rest/ws/vitis/Domain.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Domain.class.inc
rename to src/vitis/vas/rest/ws/vitis/Domain.class.inc
diff --git a/vas/rest/ws/vitis/Domains.class.inc b/src/vitis/vas/rest/ws/vitis/Domains.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Domains.class.inc
rename to src/vitis/vas/rest/ws/vitis/Domains.class.inc
diff --git a/src/vitis/vas/rest/ws/vitis/Exploitations.class.inc b/src/vitis/vas/rest/ws/vitis/Exploitations.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..1703c2ce5b6eed19237293c8444271e3d0e4a709
--- /dev/null
+++ b/src/vitis/vas/rest/ws/vitis/Exploitations.class.inc
@@ -0,0 +1,362 @@
+<?php
+
+/**
+ * \file Exploitations.class.inc
+ * \class Exploitations
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Exploitations php class
+ *
+ * This class defines Rest Api to Vitis exploitations
+ * 
+ */
+require_once 'Vitis.class.inc';
+require_once __DIR__ . '/../../class/vitis_lib/Connection.class.inc';
+require_once(__DIR__ . '/../../class/vmlib/BdDataAccess.inc');
+
+class Exploitations extends Vitis {
+    /**
+     * @SWG\Definition(
+     *   definition="/exploitations",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/exploitations")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Exploitations",
+     *   description="Operations about Exploitations"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array();
+    }
+
+    /**
+     * @SWG\Get(path="/exploitations/SharedDirectory",
+     *   tags={"Exploitations"},
+     *   summary="Get shared directory tree",
+     *   description="Request to get the shared directory tree",
+     *   operationId="GET",
+     *   produces={"application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/exploitations")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Exploitations
+     * @return  Exploitations
+     */
+    function GET() {
+        // Arborescence du répertoire partagé.
+        if (strtolower($this->aPath[2]) == 'shareddirectory') {
+            $aTreeview = $this->getDirectoryTree($this->aProperties['shared_dir']);
+            if (!empty($aTreeview["data"][0]["nodes"]))
+                $this->aFields['tree']['data'] = $aTreeview["data"][0]["nodes"];
+            else
+                $this->aFields['tree']['data'] = [];
+        }
+        //
+        $aXmlRacineAttribute['status'] = 1;
+        $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        return $sMessage;
+    }
+
+    /**
+     * Get directory tree.
+     */
+    function getDirectoryTree($sDirectoryPath) {
+        $aReturn = array('status' => 1, 'message' => '');
+        // Création de l'arborescence des fichiers du répertoire.
+        if (!empty($sDirectoryPath)) {
+            $sDirectoryName = 'Downloads';
+            if (is_string($sDirectoryPath)) {
+                if (is_dir($sDirectoryPath)) {
+                    $aDirStructure = $this->getDirStructure($sDirectoryPath, $sDirectoryName, $sDirectoryName, "");
+                    $aTreeview["data"][] = $aDirStructure["data"];
+                    if (!empty($aDirStructure["files"])) {
+                        foreach ($aDirStructure["files"] as $aFiles) {
+                            $aTreeview["files"][] = $aFiles;
+                        }
+                    }
+                } else
+                    writeToErrorLog('scandir(' . $sDirectoryPath . '): failed to open dir');
+            }
+        }
+        return $aTreeview;
+    }
+
+    /*
+     * Retourne l'arborescence d'un répertoire formaté pour "bootstrap-treeview".
+     */
+
+    function getDirStructure($sDirectoryPath, $sSubDirectoryName, $sDirectoryName, $sFolder) {
+        $aFilteredDir['data'] = array('text' => $sSubDirectoryName, 'selectable' => true, 'path' => $sFolder . '/' . $sSubDirectoryName);
+        $aDir = scandir($sDirectoryPath);
+        // Les répertoires sont affichés avant les fichiers (idem windows).
+        $aSortedDir = array();
+        $aSortedFiles = array();
+        foreach ($aDir as $sName) {
+            $sPath = $sDirectoryPath . '/' . $sName;
+            $sFileType = filetype($sPath);
+            if ($sFileType == 'dir')
+                $aSortedDir[] = $sName;
+            else
+                $aSortedFiles[] = $sName;
+        }
+        sort($aSortedDir, SORT_STRING|SORT_FLAG_CASE);
+        sort($aSortedFiles, SORT_STRING|SORT_FLAG_CASE);
+        $aDir = array_merge($aSortedDir, $aSortedFiles);
+        //
+        if ($sSubDirectoryName !== $sDirectoryName)
+            $sFolder .= '/' . $sSubDirectoryName;
+
+        foreach ($aDir as $sName) {
+            $sPath = $sDirectoryPath . '/' . $sName;
+            $sFileType = filetype($sPath);
+            // Répertoire ?
+            if ($sFileType == 'dir') {
+                if ($sName != '.' && $sName != '..') {
+                    if (is_dir($sPath)) {
+                        $aDirStructure = $this->getDirStructure($sPath . '/', $sName, $sDirectoryName, $sFolder);
+                        //if (!empty($aDirStructure['data']['nodes'])) {
+                            // Structure du répertoire.
+                            $aFilteredDir['data']['nodes'][] = $aDirStructure['data'];
+                            // Liste des fichiers du répertoire.
+                            if (!empty($aDirStructure["files"])) {
+                                foreach ($aDirStructure["files"] as $aFiles) {
+                                    $aFilteredDir["files"][] = $aFiles;
+                                }
+                            }
+                        //}
+                    } else
+                        writeToErrorLog('scandir(' . $sPath . '): failed to open dir');
+                }
+            }
+            // fichier ?
+            if ($sFileType == 'file') {
+                // Taille + unité du fichier.
+                //$iFileSize = filesize($sPath);
+                $aFileInfos = stat($sPath);
+                $iFileSizeLabel = $aFileInfos['size'];
+                $aFileSizeUnity = array('o', 'Ko', 'Mo', 'Go', 'To');
+                $i = 0;
+                while ($iFileSizeLabel > 1024) {
+                    $iFileSizeLabel /= 1024;
+                    $i++;
+                }
+                // Sauve la structure du fichier pour le treeview.
+                $sFileLabel = $sName . ' (' . round($iFileSizeLabel) . ' ' . $aFileSizeUnity[$i] . ')';
+                $aFilteredDir['data']['nodes'][] = array(
+                    'folder' => $sFolder,
+                    'directory' => $sDirectoryName,
+                    'name' => $sName,
+                    'text' => $sFileLabel,
+                    'icon' => 'glyphicon glyphicon-file',
+                    'path' => str_replace('//', '/', $sFolder . '/' . '/' . $sName),
+                    //'tags' => array('<span class="glyphicon glyphicon-trash"></span>'),
+                    'size' => $aFileInfos['size'],
+                    'selectable' => false
+                );
+                // Sauve le nom et la date du fichier.
+                $aFilteredDir['files'][] = array(
+                    'path' => str_replace('//', '/', $sFolder . '/' . '/' . $sName),
+                    //'last_modif' => floor((time() - $aFileInfos['mtime']) / (24 * 3600))    // dernière modif. (Nb jours). 
+                );
+            }
+        }
+        return $aFilteredDir;
+    }
+    
+    /**
+     * @SWG\Post(path="/exploitations/SharedDirectory/Directory",
+     *   tags={"Exploitations"},
+     *   summary="Create directory",
+     *   description="Request to create a directory",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *  @SWG\Parameter(
+     *     name="directory_path",
+     *     in="formData",
+     *     description="path of the directory",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/exploitations/SharedDirectory")
+     *    )
+     *  )
+     */
+
+    /**
+     * @SWG\Post(path="/exploitations/SharedDirectory/File",
+     *   tags={"Exploitations"},
+     *   summary="Ulpload file",
+     *   description="Request to upload a file",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *  @SWG\Parameter(
+     *     name="directory_path",
+     *     in="formData",
+     *     description="path of the directory",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/exploitations/SharedDirectory")
+     *    )
+     *  )
+     */
+    
+    /**
+     * insert user
+     * @return id of the user created
+     */
+    function POST() {
+        // Répertoire partagé.
+        if (strtolower($this->aPath[2]) == 'shareddirectory') {
+            // Création d'un répertoire.
+            if (strtolower($this->aPath[3]) == 'directory') {
+                if (!empty($this->aValues['directory_path'])) {
+                    if (mkdir($this->aProperties['shared_dir'] . '/' . $this->aValues['directory_path'])) {
+                        $aXmlRacineAttribute['status'] = 1;
+                        $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    }
+                    else {
+                        $oError = new VitisError(1, 'DIRECTORY_CREATION_ERROR_EXPLOITATION_EXPLOITATION');
+                        $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    }
+                }
+            }
+            // Upload d'un fichier.
+            else if (strtolower($this->aPath[3]) == 'file') {
+                if (!empty($_FILES["file"])) {
+                    if (!empty($this->aValues['directory_path']))
+                        $sFilePath = $this->aProperties['shared_dir'] . '/' . $this->aValues['directory_path'] . '/' . $_FILES["file"]["name"];
+                    else
+                        $sFilePath = $this->aProperties['shared_dir'] . '/' . $_FILES["file"]["name"];
+                    if (!move_uploaded_file($_FILES['file']['tmp_name'], $sFilePath)) {
+                        $oError = new VitisError(1, 'FILE_CREATION_ERROR_EXPLOITATION_EXPLOITATION');
+                        $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    }
+                    else {
+                        $aXmlRacineAttribute['status'] = 1;
+                        $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    }
+                }
+            }
+        }
+        return $sMessage;
+    }
+    
+    /**
+     * @SWG\Delete(path="/exploitations/SharedDirectory",
+     *   tags={"Exploitations"},
+     *   summary="delete shared directory files",
+     *   description="Request to delete shared directory files",
+     *   operationId="DELETE",
+     *   produces={"application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="path of the files",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/exploitations/SharedDirectory")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete exploitation files
+     */
+    function DELETE() {
+        // Verify connection.
+        if (!empty($this->oConnection->oError)) {
+            $oError = $this->oConnection->oError;
+            $aXmlRacineAttribute['status'] = 0;
+            $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            return $sMessage;
+        }
+        // Privilège "vitis_admin" requis.
+        if (!in_array('vitis_admin', $this->oConnection->aPrivileges)) {
+            $oError = new VitisError(1, "Rights problem : you don't have right to delete shared directory files");
+            $aXmlRacineAttribute['status'] = 0;
+            $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            return $sMessage;
+        }
+        // Suppression des fichiers.
+        $aXmlRacineAttribute['status'] = 1;
+        $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        if (!empty($this->aValues['idList'])) {
+            $aPathsToDelete = explode('|', $this->aValues['idList']);
+            $aDirToDelete = array();
+            foreach ($aPathsToDelete as $sPath) {
+                $sPath = str_replace('//', '/', $this->aProperties['shared_dir'] . $sPath);
+                if (file_exists($sPath)) {
+                    if (is_dir($sPath))
+                        array_unshift($aDirToDelete, $sPath);
+                    else
+                        unlink($sPath);
+                }
+            }
+        }
+        // Suppression des répertoires.
+        foreach ($aDirToDelete as $sPath) {
+            rmdir($sPath);
+        }
+        //
+        return $sMessage;
+    }
+}
+?>
\ No newline at end of file
diff --git a/vas/rest/ws/vitis/FormatDate.class.inc b/src/vitis/vas/rest/ws/vitis/FormatDate.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/FormatDate.class.inc
rename to src/vitis/vas/rest/ws/vitis/FormatDate.class.inc
diff --git a/vas/rest/ws/vitis/FormatDates.class.inc b/src/vitis/vas/rest/ws/vitis/FormatDates.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/FormatDates.class.inc
rename to src/vitis/vas/rest/ws/vitis/FormatDates.class.inc
diff --git a/vas/rest/ws/vitis/GenericQuery.class.inc b/src/vitis/vas/rest/ws/vitis/GenericQuery.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/GenericQuery.class.inc
rename to src/vitis/vas/rest/ws/vitis/GenericQuery.class.inc
diff --git a/vas/rest/ws/vitis/GenericQuerys.class.inc b/src/vitis/vas/rest/ws/vitis/GenericQuerys.class.inc
old mode 100755
new mode 100644
similarity index 100%
rename from vas/rest/ws/vitis/GenericQuerys.class.inc
rename to src/vitis/vas/rest/ws/vitis/GenericQuerys.class.inc
diff --git a/vas/rest/ws/vitis/GenericQuerys.class.sql.inc b/src/vitis/vas/rest/ws/vitis/GenericQuerys.class.sql.inc
similarity index 100%
rename from vas/rest/ws/vitis/GenericQuerys.class.sql.inc
rename to src/vitis/vas/rest/ws/vitis/GenericQuerys.class.sql.inc
diff --git a/vas/rest/ws/vitis/Group.class.inc b/src/vitis/vas/rest/ws/vitis/Group.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Group.class.inc
rename to src/vitis/vas/rest/ws/vitis/Group.class.inc
diff --git a/vas/rest/ws/vitis/Groups.class.inc b/src/vitis/vas/rest/ws/vitis/Groups.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Groups.class.inc
rename to src/vitis/vas/rest/ws/vitis/Groups.class.inc
diff --git a/vas/rest/ws/vitis/Logs.class.inc b/src/vitis/vas/rest/ws/vitis/Logs.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Logs.class.inc
rename to src/vitis/vas/rest/ws/vitis/Logs.class.inc
diff --git a/vas/rest/ws/vitis/Mode.class.inc b/src/vitis/vas/rest/ws/vitis/Mode.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Mode.class.inc
rename to src/vitis/vas/rest/ws/vitis/Mode.class.inc
diff --git a/vas/rest/ws/vitis/Modes.class.inc b/src/vitis/vas/rest/ws/vitis/Modes.class.inc
old mode 100755
new mode 100644
similarity index 93%
rename from vas/rest/ws/vitis/Modes.class.inc
rename to src/vitis/vas/rest/ws/vitis/Modes.class.inc
index f9754ec0d4f3c9291507b34474333f70bcac1b52..c838ebe1c37627b79b3783a89d8f601904e94653
--- a/vas/rest/ws/vitis/Modes.class.inc
+++ b/src/vitis/vas/rest/ws/vitis/Modes.class.inc
@@ -34,8 +34,8 @@ class Modes extends Vitis {
      * construct
      * @param type $aPath url of the request
      * @param type $aValues parameters of the request
-     * @param type $properties properties
-     * @param type $bShortcut false to reinit variables
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
      * @param type $oConnection connection object
      */
     function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
@@ -131,6 +131,11 @@ class Modes extends Vitis {
      */
     function GET() {
         if ($this->oConnection->oError == null) {
+            if (!empty($this->aProperties["public_token"]) && $this->aProperties["allow_public_connection"] === true){
+                if($this->aProperties["public_token"] === $this->aValues['token']){
+                    $this->aValues["filter"] = '{"relation": "AND","operators":[{"column": "mode_id","compare_operator": "<>","value": "user"}]}';
+                }
+            }
             if (isset($this->aValues['action']) && !empty($this->aValues['action'])) {
                 if ($this->aValues['action'] == 'getAll') {
                     $aReturn = $this->genericGet($this->aProperties['schema_framework'], "vm_mode_rolname", "mode_id", true);
diff --git a/vas/rest/ws/vitis/PhpInfo.class.inc b/src/vitis/vas/rest/ws/vitis/PhpInfo.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/PhpInfo.class.inc
rename to src/vitis/vas/rest/ws/vitis/PhpInfo.class.inc
diff --git a/vas/rest/ws/vitis/PrivateToken.class.inc b/src/vitis/vas/rest/ws/vitis/PrivateToken.class.inc
similarity index 66%
rename from vas/rest/ws/vitis/PrivateToken.class.inc
rename to src/vitis/vas/rest/ws/vitis/PrivateToken.class.inc
index 649dc10c0bc7100d38721af81cab49b19706eab2..8295dcb302800b3391b9833d953d442b1070f955 100644
--- a/vas/rest/ws/vitis/PrivateToken.class.inc
+++ b/src/vitis/vas/rest/ws/vitis/PrivateToken.class.inc
@@ -134,76 +134,85 @@ class PrivateToken extends Vitis {
         }
 
         if (!$bXMLError) {
-            //connect to database
-            $oBd = new BD($this->aValues["user"], $this->aValues["password"], $this->aProperties["database"], $this->aProperties["server"], $this->aProperties["port"], $this->aProperties["sgbd"], $this->aProperties["page_encoding"]);
-            $_SESSION["ses_Login"] = $this->aValues["user"];
-            $ciphertext = stringToHex(des($this->aValues["user"], $this->aValues["password"], 1, 0));
-            $_SESSION["ses_Password"] = $ciphertext;
-            $_SESSION["ses_Remember"] = false;
-            $_SESSION["ses_Date"] = date('Y-m-d H:i:s', time() + ($this->aValues['duration'] * 60));
-            if ($oBd->erreurRencontree) {
-                $oError = new VitisError(1, $oBd->sMessage);
+            // Teste si la base de données est joignable.
+            if (fsockopen($this->aProperties["server"], $this->aProperties["port"], $errno, $errstr) === false) {
+                $oError = new VitisError(19, "The database is unreachable");
                 $aXmlRacineAttribute['status'] = 0;
                 $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
-                $bXMLError = true;
-            } else {
-                // Privilège 'vitis_user' obligatoire.
-                $aParams['sLogin'] = array('value' => $this->aValues["user"], 'type' => 'string');
-                $oPDOresult = $oBd->executeWithParams($aSql['getUserConnectionPrivileges'], $aParams);
-                if ($oBd->nombreLigne($oPDOresult) == 0) {
-                    $oError = new VitisError(18, "No 'vitis_user' privilege.");
+                writeToErrorLog("ERROR : " . $errstr . ' ' . $this->aValues["user"] . "'.");
+            }
+            else {
+                //connect to database
+                $oBd = new BD($this->aValues["user"], $this->aValues["password"], $this->aProperties["database"], $this->aProperties["server"], $this->aProperties["port"], $this->aProperties["sgbd"], $this->aProperties["page_encoding"]);
+                $_SESSION["ses_Login"] = $this->aValues["user"];
+                $ciphertext = stringToHex(des($this->aValues["user"], $this->aValues["password"], 1, 0));
+                $_SESSION["ses_Password"] = $ciphertext;
+                $_SESSION["ses_Remember"] = false;
+                $_SESSION["ses_Date"] = date('Y-m-d H:i:s', time() + ($this->aValues['duration'] * 60));
+                if ($oBd->erreurRencontree) {
+                    $oError = new VitisError(1, $oBd->sMessage);
                     $aXmlRacineAttribute['status'] = 0;
                     $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
-                    writeToErrorLog("ERROR : No 'vitis_user' privilege for user '" . $this->aValues["user"] . "'.");
+                    $bXMLError = true;
                 } else {
-                    // L'utilisateur doit exister dans la table s_vitis.user
-                    $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name');
-                    $aParams['sLogin'] = array('value' => $_SESSION["ses_Login"], 'type' => 'string');
-                    $oPDOresult = $oBd->executeWithParams($aSql['checkUser'], $aParams);
+                    // Privilège 'vitis_user' obligatoire.
+                    $aParams['sLogin'] = array('value' => $this->aValues["user"], 'type' => 'string');
+                    $oPDOresult = $oBd->executeWithParams($aSql['getUserConnectionPrivileges'], $aParams);
                     if ($oBd->nombreLigne($oPDOresult) == 0) {
-                        $oError = new VitisError(1, 'The user ' . $_SESSION["ses_Login"] . ' does not exist');
+                    $oError = new VitisError(18, "No 'vitis_user' privilege.");
                         $aXmlRacineAttribute['status'] = 0;
                         $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
-                        writeToErrorLog('ERROR : The user ' . $_SESSION["ses_Login"] . ' does not exist.');
+                        writeToErrorLog("ERROR : No 'vitis_user' privilege for user '" . $this->aValues["user"] . "'.");
                     } else {
-                        //verify the ip from wich the user is connected
-                        $aParams = array();
+                        // L'utilisateur doit exister dans la table s_vitis.user
                         $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name');
                         $aParams['sLogin'] = array('value' => $_SESSION["ses_Login"], 'type' => 'string');
-                        $oPDOresult = $oBd->executeWithParams($aSql['checkIP'], $aParams);
-                        $aFields = $oBd->ligneSuivante($oPDOresult);
-                        $oMetadataAccess = new MetadataAccess($oBd, $_SESSION["ses_Login"], $_SESSION["ses_Password"], session_id(), $this->aProperties);
-                        $bAuthorizedIp = $oMetadataAccess->checkUserIp($_SERVER['REMOTE_ADDR']);
-                        if (!$bAuthorizedIp) {
-                            $oError = new VitisError(11, 'Connection to the database forbidden with the ip \'' . $_SERVER['REMOTE_ADDR'] . '\'.');
+                        $oPDOresult = $oBd->executeWithParams($aSql['checkUser'], $aParams);
+                        if ($oBd->nombreLigne($oPDOresult) == 0) {
+                            $oError = new VitisError(1, 'The user ' . $_SESSION["ses_Login"] . ' does not exist');
                             $aXmlRacineAttribute['status'] = 0;
                             $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
-                            $bXMLError = true;
-                            writeToErrorLog('ERROR : Connection to the database forbidden with the ip \'' . $_SERVER['REMOTE_ADDR'] . '\'.');
+                            writeToErrorLog('ERROR : The user ' . $_SESSION["ses_Login"] . ' does not exist.');
                         } else {
+                            //verify the ip from wich the user is connected
+                            $aParams = array();
+                            $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name');
+                            $aParams['sLogin'] = array('value' => $_SESSION["ses_Login"], 'type' => 'string');
+                            $oPDOresult = $oBd->executeWithParams($aSql['checkIP'], $aParams);
+                            $aFields = $oBd->ligneSuivante($oPDOresult);
+                            $oMetadataAccess = new MetadataAccess($oBd, $_SESSION["ses_Login"], $_SESSION["ses_Password"], session_id(), $this->aProperties);
+                            $bAuthorizedIp = $oMetadataAccess->checkUserIp($_SERVER['REMOTE_ADDR']);
+                            if (!$bAuthorizedIp) {
+                                $oError = new VitisError(11, 'Connection to the database forbidden with the ip \'' . $_SERVER['REMOTE_ADDR'] . '\'.');
+                                $aXmlRacineAttribute['status'] = 0;
+                                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                                $bXMLError = true;
+                                writeToErrorLog('ERROR : Connection to the database forbidden with the ip \'' . $_SERVER['REMOTE_ADDR'] . '\'.');
+                            } else {
 
-                            error_log('session_id():' . session_id());
+                                error_log('session_id():' . session_id());
 
-                            $oConnection = new Connection(Array('token' => session_id()), $this->aProperties);
-                            $this->aFields['token'] = session_id();
-                            $this->aFields['user'] = $_SESSION["ses_Login"];
-                            $this->aFields['validity_date'] = date('Y-m-d H:i:s', time() + ($this->aValues['duration'] * 60));
-                            $this->aFields['user_id'] = $aFields['user_id'];
-                            $this->aFields['privileges'] = $oConnection->aPrivileges;
-                            if ($this->aValues['output'] === 'application/xml') {
-                                $this->aFields['privileges'] = implode(',', $this->aFields['privileges']);
+                                $oConnection = new Connection(Array('token' => session_id()), $this->aProperties);
+                                $this->aFields['token'] = session_id();
+                                $this->aFields['user'] = $_SESSION["ses_Login"];
+                                $this->aFields['validity_date'] = date('Y-m-d H:i:s', time() + ($this->aValues['duration'] * 60));
+                                $this->aFields['user_id'] = $aFields['user_id'];
+                                $this->aFields['privileges'] = $oConnection->aPrivileges;
+                                if ($this->aValues['output'] === 'application/xml') {
+                                    $this->aFields['privileges'] = implode(',', $this->aFields['privileges']);
+                                }
+                                $_SESSION["ses_user_id"] = $aFields['user_id'];
+                                $_SESSION["ses_restriction"] = $aFields['restriction'];
+                                $aXmlRacineAttribute['status'] = 1;
+                                $aParams = array();
+                                $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name');
+                                $aParams['user_id'] = array('value' => $aFields['user_id'], 'type' => 'number');
+                                $aParams['date'] = array('value' => gmdate('Y-m-d H:i:s'), 'type' => 'string');
+                                $oPDOresult = $oBd->executeWithParams($aSql['updateLastConnection'], $aParams);
+                                $sLogString = "connection" . $this->aProperties["log_delim"] . $_SESSION["ses_Login"] . $this->aProperties["log_delim"] . session_id();
+                                writeToLog($sLogString, $this->aProperties["connexion_log_file"]);
+                                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
                             }
-                            $_SESSION["ses_user_id"] = $aFields['user_id'];
-                            $_SESSION["ses_restriction"] = $aFields['restriction'];
-                            $aXmlRacineAttribute['status'] = 1;
-                            $aParams = array();
-                            $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name');
-                            $aParams['user_id'] = array('value' => $aFields['user_id'], 'type' => 'number');
-                            $aParams['date'] = array('value' => gmdate('Y-m-d H:i:s'), 'type' => 'string');
-                            $oPDOresult = $oBd->executeWithParams($aSql['updateLastConnection'], $aParams);
-                            $sLogString = "connection" . $this->aProperties["log_delim"] . $_SESSION["ses_Login"] . $this->aProperties["log_delim"] . session_id();
-                            writeToLog($sLogString, $this->aProperties["connexion_log_file"]);
-                            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
                         }
                     }
                 }
diff --git a/vas/rest/ws/vitis/Privilege.class.inc b/src/vitis/vas/rest/ws/vitis/Privilege.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Privilege.class.inc
rename to src/vitis/vas/rest/ws/vitis/Privilege.class.inc
diff --git a/vas/rest/ws/vitis/Privileges.class.inc b/src/vitis/vas/rest/ws/vitis/Privileges.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Privileges.class.inc
rename to src/vitis/vas/rest/ws/vitis/Privileges.class.inc
diff --git a/vas/rest/ws/vitis/Properties.class.inc b/src/vitis/vas/rest/ws/vitis/Properties.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Properties.class.inc
rename to src/vitis/vas/rest/ws/vitis/Properties.class.inc
diff --git a/vas/rest/ws/vitis/PublicToken.class.inc b/src/vitis/vas/rest/ws/vitis/PublicToken.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/PublicToken.class.inc
rename to src/vitis/vas/rest/ws/vitis/PublicToken.class.inc
diff --git a/vas/rest/ws/vitis/Ressources.class.inc b/src/vitis/vas/rest/ws/vitis/Ressources.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Ressources.class.inc
rename to src/vitis/vas/rest/ws/vitis/Ressources.class.inc
diff --git a/vas/rest/ws/vitis/Schema.class.inc b/src/vitis/vas/rest/ws/vitis/Schema.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Schema.class.inc
rename to src/vitis/vas/rest/ws/vitis/Schema.class.inc
diff --git a/vas/rest/ws/vitis/SmtpServer.class.inc b/src/vitis/vas/rest/ws/vitis/SmtpServer.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/SmtpServer.class.inc
rename to src/vitis/vas/rest/ws/vitis/SmtpServer.class.inc
diff --git a/vas/rest/ws/vitis/Tab.class.inc b/src/vitis/vas/rest/ws/vitis/Tab.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Tab.class.inc
rename to src/vitis/vas/rest/ws/vitis/Tab.class.inc
diff --git a/vas/rest/ws/vitis/Table.class.inc b/src/vitis/vas/rest/ws/vitis/Table.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Table.class.inc
rename to src/vitis/vas/rest/ws/vitis/Table.class.inc
diff --git a/vas/rest/ws/vitis/Tabs.class.inc b/src/vitis/vas/rest/ws/vitis/Tabs.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Tabs.class.inc
rename to src/vitis/vas/rest/ws/vitis/Tabs.class.inc
diff --git a/vas/rest/ws/vitis/TimeZone.class.inc b/src/vitis/vas/rest/ws/vitis/TimeZone.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/TimeZone.class.inc
rename to src/vitis/vas/rest/ws/vitis/TimeZone.class.inc
diff --git a/vas/rest/ws/vitis/TimeZones.class.inc b/src/vitis/vas/rest/ws/vitis/TimeZones.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/TimeZones.class.inc
rename to src/vitis/vas/rest/ws/vitis/TimeZones.class.inc
diff --git a/vas/rest/ws/vitis/User.class.inc b/src/vitis/vas/rest/ws/vitis/User.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/User.class.inc
rename to src/vitis/vas/rest/ws/vitis/User.class.inc
diff --git a/vas/rest/ws/vitis/Users.class.inc b/src/vitis/vas/rest/ws/vitis/Users.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Users.class.inc
rename to src/vitis/vas/rest/ws/vitis/Users.class.inc
diff --git a/vas/rest/ws/vitis/Versions.class.inc b/src/vitis/vas/rest/ws/vitis/Versions.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Versions.class.inc
rename to src/vitis/vas/rest/ws/vitis/Versions.class.inc
diff --git a/vas/rest/ws/vitis/Vitis.class.inc b/src/vitis/vas/rest/ws/vitis/Vitis.class.inc
old mode 100755
new mode 100644
similarity index 100%
rename from vas/rest/ws/vitis/Vitis.class.inc
rename to src/vitis/vas/rest/ws/vitis/Vitis.class.inc
diff --git a/vas/rest/ws/vitis/Vitis.class.sql.inc b/src/vitis/vas/rest/ws/vitis/Vitis.class.sql.inc
similarity index 100%
rename from vas/rest/ws/vitis/Vitis.class.sql.inc
rename to src/vitis/vas/rest/ws/vitis/Vitis.class.sql.inc
diff --git a/vas/rest/ws/vitis/VitisSection.class.inc b/src/vitis/vas/rest/ws/vitis/VitisSection.class.inc
similarity index 96%
rename from vas/rest/ws/vitis/VitisSection.class.inc
rename to src/vitis/vas/rest/ws/vitis/VitisSection.class.inc
index cd1e1840875aac99b320e6738dbeeb319528b0d4..1328958b8b1cf354a4bfa83ad2e96c06d3d89afb 100755
--- a/vas/rest/ws/vitis/VitisSection.class.inc
+++ b/src/vitis/vas/rest/ws/vitis/VitisSection.class.inc
@@ -30,7 +30,7 @@ class VitisSection extends Vitis {
      */
     function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
         parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
-        $this->aSelectedFields = Array("section_id", "tab_id", "event", "index", "label", "name", "link_table_name", "template", "ressource_id");
+        $this->aSelectedFields = Array("section_id", "tab_id", "event", "index", "label", "name", "link_table_name", "template", "ressource_id", "module_name");
     }
 
     /**
diff --git a/vas/rest/ws/vitis/VitisSections.class.inc b/src/vitis/vas/rest/ws/vitis/VitisSections.class.inc
similarity index 95%
rename from vas/rest/ws/vitis/VitisSections.class.inc
rename to src/vitis/vas/rest/ws/vitis/VitisSections.class.inc
index fb91cfe1ed733f0a04683f7921e7db9b9cf13dd0..3e7710cee087f81790610a140527bf029d79887e 100755
--- a/vas/rest/ws/vitis/VitisSections.class.inc
+++ b/src/vitis/vas/rest/ws/vitis/VitisSections.class.inc
@@ -45,7 +45,7 @@ class VitisSections extends Vitis {
      */
     function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
         parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
-        $this->aSelectedFields = Array("section_id", "tab_id", "event", "index", "label", "name", "link_table_name", "template", "ressource_id", "tab_name", "mode_id");
+        $this->aSelectedFields = Array("section_id", "tab_id", "event", "index", "label", "name", "link_table_name", "template", "ressource_id", "tab_name", "mode_id", "module_name");
     }
 
     /**
diff --git a/vas/rest/ws/vitis/WebServices.class.inc b/src/vitis/vas/rest/ws/vitis/WebServices.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/WebServices.class.inc
rename to src/vitis/vas/rest/ws/vitis/WebServices.class.inc
diff --git a/vas/rest/ws/vitis/overview.phtml b/src/vitis/vas/rest/ws/vitis/overview.phtml
similarity index 100%
rename from vas/rest/ws/vitis/overview.phtml
rename to src/vitis/vas/rest/ws/vitis/overview.phtml
diff --git a/vas/sql/sqlQueries.xml b/src/vitis/vas/sql/sqlQueries.xml
old mode 100755
new mode 100644
similarity index 100%
rename from vas/sql/sqlQueries.xml
rename to src/vitis/vas/sql/sqlQueries.xml
diff --git a/src/vitis/vas/tmp/file_to_delete.txt b/src/vitis/vas/tmp/file_to_delete.txt
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/vas/util/coordsys.txt b/src/vitis/vas/util/coordsys.txt
similarity index 100%
rename from vas/util/coordsys.txt
rename to src/vitis/vas/util/coordsys.txt
diff --git a/vas/util/migration/anc/SplitAddress.fmx b/src/vitis/vas/util/migration/anc/SplitAddress.fmx
similarity index 100%
rename from vas/util/migration/anc/SplitAddress.fmx
rename to src/vitis/vas/util/migration/anc/SplitAddress.fmx
diff --git a/vas/util/migration/anc/lisez-moi.txt b/src/vitis/vas/util/migration/anc/lisez-moi.txt
similarity index 100%
rename from vas/util/migration/anc/lisez-moi.txt
rename to src/vitis/vas/util/migration/anc/lisez-moi.txt
diff --git a/vas/util/migration/anc/migration_anc_veremap__vmap.fmw b/src/vitis/vas/util/migration/anc/migration_anc_veremap__vmap.fmw
similarity index 100%
rename from vas/util/migration/anc/migration_anc_veremap__vmap.fmw
rename to src/vitis/vas/util/migration/anc/migration_anc_veremap__vmap.fmw
diff --git a/vas/util/migration/migration_user_and_group.fmw b/src/vitis/vas/util/migration/migration_user_and_group.fmw
similarity index 100%
rename from vas/util/migration/migration_user_and_group.fmw
rename to src/vitis/vas/util/migration/migration_user_and_group.fmw
diff --git a/vas/util/migration/migration_veremap_layer.fmw b/src/vitis/vas/util/migration/migration_veremap_layer.fmw
similarity index 100%
rename from vas/util/migration/migration_veremap_layer.fmw
rename to src/vitis/vas/util/migration/migration_veremap_layer.fmw
diff --git a/vas/util/printserver/client/lib/angular/LICENSE b/src/vitis/vas/util/printserver/client/lib/angular/LICENSE
similarity index 100%
rename from vas/util/printserver/client/lib/angular/LICENSE
rename to src/vitis/vas/util/printserver/client/lib/angular/LICENSE
diff --git a/vas/util/printserver/client/lib/angular/angular.js b/src/vitis/vas/util/printserver/client/lib/angular/angular.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/angular.js
rename to src/vitis/vas/util/printserver/client/lib/angular/angular.js
diff --git a/vas/util/printserver/client/lib/angular/angular.min.js b/src/vitis/vas/util/printserver/client/lib/angular/angular.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/angular.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/angular.min.js
diff --git a/vas/util/printserver/client/lib/angular/angular.min.js.map b/src/vitis/vas/util/printserver/client/lib/angular/angular.min.js.map
similarity index 100%
rename from vas/util/printserver/client/lib/angular/angular.min.js.map
rename to src/vitis/vas/util/printserver/client/lib/angular/angular.min.js.map
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js
diff --git a/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js
diff --git a/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js
diff --git a/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map b/src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js
diff --git a/vas/util/printserver/client/lib/bootstrap/LICENSE b/src/vitis/vas/util/printserver/client/lib/bootstrap/LICENSE
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/LICENSE
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/LICENSE
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap.css
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map
diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg
diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
diff --git a/vas/util/printserver/client/lib/bootstrap/js/bootstrap.js b/src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.js
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/js/bootstrap.js
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.js
diff --git a/vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js b/src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js
diff --git a/vas/util/printserver/client/lib/bootstrap/js/npm.js b/src/vitis/vas/util/printserver/client/lib/bootstrap/js/npm.js
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/js/npm.js
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/js/npm.js
diff --git a/vas/util/printserver/client/lib/closure/goog/base.js b/src/vitis/vas/util/printserver/client/lib/closure/goog/base.js
similarity index 100%
rename from vas/util/printserver/client/lib/closure/goog/base.js
rename to src/vitis/vas/util/printserver/client/lib/closure/goog/base.js
diff --git a/vas/util/printserver/client/lib/jquery/LICENSE.txt b/src/vitis/vas/util/printserver/client/lib/jquery/LICENSE.txt
similarity index 100%
rename from vas/util/printserver/client/lib/jquery/LICENSE.txt
rename to src/vitis/vas/util/printserver/client/lib/jquery/LICENSE.txt
diff --git a/vas/util/printserver/client/lib/jquery/jquery-1.11.3.js b/src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.js
similarity index 100%
rename from vas/util/printserver/client/lib/jquery/jquery-1.11.3.js
rename to src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.js
diff --git a/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js b/src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js
rename to src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js
diff --git a/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map b/src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map
similarity index 100%
rename from vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map
rename to src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map
diff --git a/vas/util/printserver/client/lib/mapJSON/MapJSON.js b/src/vitis/vas/util/printserver/client/lib/mapJSON/MapJSON.js
similarity index 100%
rename from vas/util/printserver/client/lib/mapJSON/MapJSON.js
rename to src/vitis/vas/util/printserver/client/lib/mapJSON/MapJSON.js
diff --git a/vas/util/printserver/client/lib/ol/ol-debug.js b/src/vitis/vas/util/printserver/client/lib/ol/ol-debug.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol-debug.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol-debug.js
diff --git a/vas/util/printserver/client/lib/ol/ol.css b/src/vitis/vas/util/printserver/client/lib/ol/ol.css
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol.css
rename to src/vitis/vas/util/printserver/client/lib/ol/ol.css
diff --git a/vas/util/printserver/client/lib/ol/ol.js b/src/vitis/vas/util/printserver/client/lib/ol/ol.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol.js
diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/licence.txt b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/licence.txt
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-ext/licence.txt
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/licence.txt
diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/readme.txt b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/readme.txt
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-ext/readme.txt
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/readme.txt
diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js
diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js
diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js
diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js
diff --git a/vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js
diff --git a/vas/util/printserver/client/map/index.html b/src/vitis/vas/util/printserver/client/map/index.html
similarity index 100%
rename from vas/util/printserver/client/map/index.html
rename to src/vitis/vas/util/printserver/client/map/index.html
diff --git a/vas/util/printserver/client/map/index.js b/src/vitis/vas/util/printserver/client/map/index.js
similarity index 100%
rename from vas/util/printserver/client/map/index.js
rename to src/vitis/vas/util/printserver/client/map/index.js
diff --git a/vas/util/printserver/client/map/map.js b/src/vitis/vas/util/printserver/client/map/map.js
similarity index 100%
rename from vas/util/printserver/client/map/map.js
rename to src/vitis/vas/util/printserver/client/map/map.js
diff --git a/vas/util/printserver/client/map/progress.js b/src/vitis/vas/util/printserver/client/map/progress.js
similarity index 100%
rename from vas/util/printserver/client/map/progress.js
rename to src/vitis/vas/util/printserver/client/map/progress.js
diff --git a/vas/util/printserver/client/map/projections.js b/src/vitis/vas/util/printserver/client/map/projections.js
similarity index 100%
rename from vas/util/printserver/client/map/projections.js
rename to src/vitis/vas/util/printserver/client/map/projections.js
diff --git a/vas/util/printserver/client/map/scale.js b/src/vitis/vas/util/printserver/client/map/scale.js
similarity index 100%
rename from vas/util/printserver/client/map/scale.js
rename to src/vitis/vas/util/printserver/client/map/scale.js
diff --git a/vas/util/printserver/client/report/index.html b/src/vitis/vas/util/printserver/client/report/index.html
similarity index 100%
rename from vas/util/printserver/client/report/index.html
rename to src/vitis/vas/util/printserver/client/report/index.html
diff --git a/vas/util/printserver/client/report/index.js b/src/vitis/vas/util/printserver/client/report/index.js
similarity index 100%
rename from vas/util/printserver/client/report/index.js
rename to src/vitis/vas/util/printserver/client/report/index.js
diff --git a/vas/util/printserver/client/report/report.js b/src/vitis/vas/util/printserver/client/report/report.js
similarity index 100%
rename from vas/util/printserver/client/report/report.js
rename to src/vitis/vas/util/printserver/client/report/report.js
diff --git a/vas/util/printserver/client/template/index.html b/src/vitis/vas/util/printserver/client/template/index.html
similarity index 100%
rename from vas/util/printserver/client/template/index.html
rename to src/vitis/vas/util/printserver/client/template/index.html
diff --git a/vas/util/printserver/client/template/index.js b/src/vitis/vas/util/printserver/client/template/index.js
similarity index 100%
rename from vas/util/printserver/client/template/index.js
rename to src/vitis/vas/util/printserver/client/template/index.js
diff --git a/vas/util/printserver/client/template/template.js b/src/vitis/vas/util/printserver/client/template/template.js
similarity index 100%
rename from vas/util/printserver/client/template/template.js
rename to src/vitis/vas/util/printserver/client/template/template.js
diff --git a/vas/util/printserver/client/utils/http.js b/src/vitis/vas/util/printserver/client/utils/http.js
similarity index 100%
rename from vas/util/printserver/client/utils/http.js
rename to src/vitis/vas/util/printserver/client/utils/http.js
diff --git a/vas/util/printserver/client/utils/properties.js b/src/vitis/vas/util/printserver/client/utils/properties.js
similarity index 100%
rename from vas/util/printserver/client/utils/properties.js
rename to src/vitis/vas/util/printserver/client/utils/properties.js
diff --git a/vas/util/printserver/client/utils/utils.js b/src/vitis/vas/util/printserver/client/utils/utils.js
similarity index 100%
rename from vas/util/printserver/client/utils/utils.js
rename to src/vitis/vas/util/printserver/client/utils/utils.js
diff --git a/vas/util/printserver/server/printmap.js b/src/vitis/vas/util/printserver/server/printmap.js
similarity index 100%
rename from vas/util/printserver/server/printmap.js
rename to src/vitis/vas/util/printserver/server/printmap.js
diff --git a/vas/util/printserver/server/printreport.js b/src/vitis/vas/util/printserver/server/printreport.js
similarity index 100%
rename from vas/util/printserver/server/printreport.js
rename to src/vitis/vas/util/printserver/server/printreport.js
diff --git a/vas/util/printserver/server/printtemplate.js b/src/vitis/vas/util/printserver/server/printtemplate.js
similarity index 100%
rename from vas/util/printserver/server/printtemplate.js
rename to src/vitis/vas/util/printserver/server/printtemplate.js
diff --git a/vas/util/printserver/server/saveimage.js b/src/vitis/vas/util/printserver/server/saveimage.js
similarity index 100%
rename from vas/util/printserver/server/saveimage.js
rename to src/vitis/vas/util/printserver/server/saveimage.js
diff --git a/vas/util/printserver/server/targetsize.js b/src/vitis/vas/util/printserver/server/targetsize.js
similarity index 100%
rename from vas/util/printserver/server/targetsize.js
rename to src/vitis/vas/util/printserver/server/targetsize.js
diff --git a/vas/util/proxy/proxy.php b/src/vitis/vas/util/proxy/proxy.php
similarity index 100%
rename from vas/util/proxy/proxy.php
rename to src/vitis/vas/util/proxy/proxy.php
diff --git a/vas/util/webSocket/server/lib/SplClassLoader.php b/src/vitis/vas/util/webSocket/server/lib/SplClassLoader.php
similarity index 100%
rename from vas/util/webSocket/server/lib/SplClassLoader.php
rename to src/vitis/vas/util/webSocket/server/lib/SplClassLoader.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/Application.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Application.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/Application.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Application.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/Status.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Status.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/Status.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Status.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Connection.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Connection.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Connection.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Connection.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Server.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Server.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Server.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Server.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Socket.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Socket.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Socket.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Socket.php
diff --git a/vas/util/webSocket/server/server.pem b/src/vitis/vas/util/webSocket/server/server.pem
similarity index 100%
rename from vas/util/webSocket/server/server.pem
rename to src/vitis/vas/util/webSocket/server/server.pem
diff --git a/vas/util/webSocket/server/server.php b/src/vitis/vas/util/webSocket/server/server.php
similarity index 100%
rename from vas/util/webSocket/server/server.php
rename to src/vitis/vas/util/webSocket/server/server.php
diff --git a/vas/util/writerpick.txt b/src/vitis/vas/util/writerpick.txt
similarity index 100%
rename from vas/util/writerpick.txt
rename to src/vitis/vas/util/writerpick.txt
diff --git a/update.bat b/update.bat
new file mode 100644
index 0000000000000000000000000000000000000000..46ef323f0223fbdc2a151c7c4b1395ee786ca135
--- /dev/null
+++ b/update.bat
@@ -0,0 +1,10 @@
+@echo off
+title Update Vitis App
+echo Update Vitis App
+
+call utils/update_tree.bat
+
+cd client/conf
+call grunt
+
+pause
diff --git a/utils/copy_hooks.sh b/utils/copy_hooks.sh
new file mode 100755
index 0000000000000000000000000000000000000000..f5bed2f2552ef3440e7e9589197c0922a1875927
--- /dev/null
+++ b/utils/copy_hooks.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+#
+#
+# 	Script de mise à jour des hooks client
+#
+#
+#
+
+
+if [ -d "githooks" ]; then
+	if [ -d "../.git/hooks" ]; then
+	    cp -f githooks/* ../.git/hooks/
+	fi
+fi
diff --git a/utils/get_deps.sh b/utils/get_deps.sh
new file mode 100755
index 0000000000000000000000000000000000000000..92b0273980ef5ae8db6eea7268fd3a5c406243b9
--- /dev/null
+++ b/utils/get_deps.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+#
+#	Récupère l'ensemble des dépendances depuis conf/_install/dependency.xml
+#	Nécessite xmllint : sudo apt install libxml2-utils
+#
+#
+#
+#
+
+
+if [ "../conf/_install/dependency.xml" ]; then
+
+	let depsCount=$(xmllint --xpath 'count(//dependenciesCollection/dependency/name)' ../conf/_install/dependency.xml)
+	declare -A aDeps
+	vitisVersion=master
+
+	for (( i=1; i <= $depsCount; i++ )); do
+
+		sName="$(xmllint --xpath 'string(//dependenciesCollection/dependency['$i']/name)' ../conf/_install/dependency.xml)"
+		sVersion="$(xmllint --xpath 'string(//dependenciesCollection/dependency['$i']/version)' ../conf/_install/dependency.xml)"
+		sNature="$(xmllint --xpath 'string(//dependenciesCollection/dependency['$i']/nature)' ../conf/_install/dependency.xml)"
+
+		if [ $sName == "vitis" ]; then
+			vitisVersion=$sVersion
+		fi
+		if [ $sNature == "modules" ] || [ $sNature == "web_services" ] || [ $sName == "vitis" ]; then
+			aDeps[$i, name]=$sName
+			aDeps[$i, version]=$sVersion
+			aDeps[$i, nature]=$sNature
+		fi
+
+	done
+
+	echo "[INFO] dependencies:"
+	echo "vitis : $vitisVersion"
+	for (( i=1; i <= $depsCount; i++ )); do
+
+		echo "name: ${aDeps[$i, name]}"
+		echo "version: ${aDeps[$i, version]}"
+
+	done
+
+	export vitisVersion
+	export depsCount
+	export aDeps
+else
+	echo "[ERROR] ../conf/_install/dependency.xml not found"
+fi
diff --git a/utils/githooks/post-merge b/utils/githooks/post-merge
new file mode 100755
index 0000000000000000000000000000000000000000..548e6ae56f6a55c2d1acab88308e336c06e71616
--- /dev/null
+++ b/utils/githooks/post-merge
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+#   Hook qui permet de pull toutes les dépendances
+#   quand on fait un pull sur l'application
+#
+#
+#
+#
+#
+
+echo "****** Post-merge Hook ******"
+echo "****** Pull subtrees ******"
+echo "$(pwd)"
+
+if [ -d "$(pwd)/utils" ]; then
+    cd utils
+    ./pull_subtrees.sh
+fi
diff --git a/utils/githooks/pre-push b/utils/githooks/pre-push
new file mode 100755
index 0000000000000000000000000000000000000000..50401f9e2df8033763628124e1445afe66e9bad5
--- /dev/null
+++ b/utils/githooks/pre-push
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+#   Hook qui permet de push toutes les dépendances
+#   quand on fait un push sur l'application
+#
+#
+#
+#
+#
+
+remote="$1"
+url="$2"
+if [ $remote != $url ]; then
+
+    echo "****** Pre-push Hook ******"
+    echo "****** Push subtrees ******"
+    if [ -d "$(pwd)/utils" ]; then
+        cd utils
+        ./push_subtrees.sh
+    fi
+fi
diff --git a/utils/init_subtrees.sh b/utils/init_subtrees.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f9c2abf14978552d1ae88ca6b9b119d51c71578
--- /dev/null
+++ b/utils/init_subtrees.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#	Initislise l'ensemble des dépendances sous forme de subtrees
+#
+#	Nécessite xmllint : sudo apt install libxml2-utils
+#
+
+
+APP_NAME="vmap"
+
+# Récupère la liste des dépendances
+. ./get_deps.sh
+
+cd ..
+if [ -d "$(pwd)/client" ]; then
+	rm client
+fi
+if [ -d "$(pwd)/vas" ]; then
+	rm vas
+fi
+if [ -d "$(pwd)/src" ]; then
+	git rm -r src
+	git commit -a -m "Reset sources"
+fi
+mkdir src
+
+if [[ $depsCount > 0 ]]; then
+
+	# Vitis
+	echo "---- Init vitis ----"
+	git subtree add --squash -m "add subtree" --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion
+
+	echo "---- Init conf ----"
+	git subtree add --squash -m "add subtree" --prefix src/closure "git@gitlab.veremes.net:Development/vitis_apps/sources/closure.git" master
+
+	# Modules
+	for (( i=1; i <= $depsCount; i++ )); do
+		if [ ${aDeps[$i, nature]} == "modules" ]; then
+			echo "---- Init ${aDeps[$i, name]} : ${aDeps[$i, version]}----"
+
+		    # Ajoute le dépôt
+			git subtree add --squash -m "add subtree" --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]}
+		fi
+	done
+
+fi
diff --git a/utils/init_symlinks.sh b/utils/init_symlinks.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c98ed30e162c2d81c8b90e5b6755bb5602941b5e
--- /dev/null
+++ b/utils/init_symlinks.sh
@@ -0,0 +1,129 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#
+#   Split repo
+#   git subtree split -P module/ -b module_split_branch
+#
+#   Add subtree
+#   git subtree add --prefix vmap "git@gitlab.veremes.net:Development/vitis_apps/sources/Vitis.git" master
+#
+#
+
+echo -n "Existing app path (path/empty)? "
+read APP_EXISTING_PATH
+
+# Récupère la liste des dépendances
+. ./get_deps.sh
+
+cd ..
+
+# Vitis
+echo "---- Link vitis ----"
+if ! [ -e "$(pwd)/client" ]; then
+	echo "---- Link vitis 2 ----"
+	ln -rsf src/vitis/client client
+fi
+if ! [ -e "$(pwd)/vas" ]; then
+	ln -rsf src/vitis/vas vas
+fi
+
+# Conf
+echo "---- Link conf ----"
+if ! [ -e "src/vitis/client/conf" ]; then
+	ln -rsf conf src/vitis/client/conf
+fi
+if ! [ -e "conf/closure" ]; then
+	ln -rsf src/closure/conf conf/closure
+fi
+
+# Modules
+if [[ $depsCount > 0 ]]; then
+	for (( i=1; i <= $depsCount; i++ )); do
+		if [ ${aDeps[$i, nature]} == "modules" ]; then
+			if [ ${aDeps[$i, name]:0:7} == "module_" ]; then
+				module=${aDeps[$i, name]:7}
+				echo "---- Link module_${module} ----"
+				if [ -d "$(pwd)/src/module_${module}/module" ]; then
+					if ! [ -e "src/vitis/client/modules/${module}" ]; then
+						ln -rsf src/module_${module}/module src/vitis/client/modules/${module}
+					fi
+				fi
+				if [ -d "$(pwd)/src/module_${module}/web_service/ws" ]; then
+					if ! [ -e "src/vitis/vas/rest/ws/${module}" ]; then
+						ln -rsf src/module_${module}/web_service/ws src/vitis/vas/rest/ws/${module}
+					fi
+				fi
+				if [ -d "$(pwd)/src/module_${module}/web_service/conf" ]; then
+					if ! [ -e "src/vitis/vas/rest/conf/${module}" ]; then
+						ln -rsf src/module_${module}/web_service/conf src/vitis/vas/rest/conf/${module}
+					fi
+				fi
+				if [ -d "$(pwd)/src/module_${module}/web_service/sql" ]; then
+					if ! [ -e "src/vitis/vas/sql/${module}" ]; then
+						ln -rsf src/module_${module}/web_service/sql src/vitis/vas/sql/${module}
+					fi
+				fi
+				if [ -d "$(pwd)/src/module_${module}/web_service/class" ]; then
+					for class_dir in $( ls "$(pwd)/src/module_${module}/web_service/class"); do
+						if [ -d "$(pwd)/src/module_${module}/web_service/class/${class_dir}" ]; then
+							echo "---- Link module_${module}/${class_dir} ----"
+							if ! [ -e "src/vitis/vas/rest/class/${class_dir}" ]; then
+								ln -rsf src/module_${module}/web_service/class/${class_dir} src/vitis/vas/rest/class/${class_dir}
+							fi
+						fi
+					done
+				fi
+			fi
+		fi
+	done
+
+	# Utilisation d'une install déjà existante
+	if [ -d "${APP_EXISTING_PATH}" ]; then
+		echo "---- Link exixting app ${APP_EXISTING_PATH} ----"
+
+		declare -a existing_folders_path=("vas/server"
+		                "vas/log"
+						"vas/public"
+						"vas/shared"
+						"vas/tmp"
+						"vas/upload"
+		                "vas/ws_data")
+		for folder_path in "${existing_folders_path[@]}"; do
+			if [ -d "${APP_EXISTING_PATH}/$folder_path" ]; then
+				echo "copy $folder_path"
+				cp -Rf "${APP_EXISTING_PATH}/$folder_path" "$(pwd)/$folder_path"
+				chmod 777 -R "$(pwd)/$folder_path"
+			fi
+		done
+
+		declare -a existing_files_path=("client/conf/properties.json"
+										"vas/rest/conf/properties.inc"
+										"vas/rest/conf/properties_domain.inc"
+										"vas/rest/conf/properties_post.inc"
+										"vas/rest/conf/properties_server.inc"
+										"vas/rest/conf/version.inc"
+										"vas/rest/.htaccess")
+		for file_path in "${existing_files_path[@]}"; do
+			if [ -f "${APP_EXISTING_PATH}/$file_path" ]; then
+				echo "copy $file_path"
+				cp -f "${APP_EXISTING_PATH}/$file_path" "$(pwd)/$file_path"
+			fi
+		done
+
+		for properties_dir in $( ls "${APP_EXISTING_PATH}/vas/rest/conf"); do
+			if [ -d "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}" ]; then
+				if [ -d "$(pwd)/vas/rest/conf/${properties_dir}" ]; then
+					for properties_file in $( ls "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}"); do
+						# if [ ${properties_file:0:10}=="properties"  ||  ${properties_file}=="version.inc" ]; then
+						if [[ $properties_file == "properties"* ]] || [[ $properties_file == "version.inc" ]]; then
+							echo "copy vas/rest/conf/${properties_dir}/${properties_file}"
+							cp -f "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}/${properties_file}" "$(pwd)/vas/rest/conf/${properties_dir}/${properties_file}"
+						fi
+					done
+				fi
+			fi
+		done
+	fi
+fi
diff --git a/utils/pull_subtrees.sh b/utils/pull_subtrees.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c2793f2ee9ad6e0f53da243fb1b6d26dd9baa20b
--- /dev/null
+++ b/utils/pull_subtrees.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#	Initislise l'ensemble des dépendances sous forme de subtrees
+#
+#
+#
+
+
+APP_NAME="vmap"
+
+# Récupère la liste des dépendances
+. ./get_deps.sh
+
+cd ..
+
+# Vitis
+echo "---- Pull vitis ----"
+git subtree pull --prefix src/vitis --squash -m "pull subtree"  "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" master
+
+# fichiers à ignorer
+git update-index --assume-unchanged conf/properties.json
+git update-index --assume-unchanged conf/package.json
+git update-index --assume-unchanged src/vitis/vas/rest/.htaccess
+git update-index --assume-unchanged src/vitis/vas/rest/conf/properties.inc
+git update-index --assume-unchanged src/vitis/vas/rest/conf/properties_domain.inc
+git update-index --assume-unchanged src/vitis/vas/rest/conf/properties_post.inc
+git update-index --assume-unchanged src/vitis/vas/rest/conf/properties_server.inc
+git update-index --assume-unchanged src/vitis/vas/rest/conf/version.inc
+
+# Modules
+if [[ $depsCount > 0 ]]; then
+	for (( i=1; i <= $depsCount; i++ )); do
+		if [ ${aDeps[$i, nature]} == "modules" ]; then
+			echo "---- Pull ${aDeps[$i, name]} ----"
+
+			# Ajoute le dépôt
+			git subtree pull --prefix src/${aDeps[$i, name]} --squash -m "pull subtree" "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" master
+			# fichiers à ignorer
+			git update-index --assume-unchanged src/${aDeps[$i, name]}/web_service/conf/properties.inc
+			git update-index --assume-unchanged src/${aDeps[$i, name]}/web_service/conf/properties_server.inc
+			git update-index --assume-unchanged src/${aDeps[$i, name]}/web_service/conf/version.inc
+		fi
+	done
+fi
diff --git a/utils/push_subtrees.sh b/utils/push_subtrees.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b4949ea2dca1465c2cc0282d59442c158d7138e1
--- /dev/null
+++ b/utils/push_subtrees.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#	Initislise l'ensemble des dépendances sous forme de subtrees
+#
+#
+#
+
+
+APP_NAME="vmap"
+
+# Récupère la liste des dépendances
+. ./get_deps.sh
+
+cd ..
+
+# Vitis
+echo "---- Push vitis ----"
+git subtree push --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" master
+
+# Modules
+if [[ $depsCount > 0 ]]; then
+	for (( i=1; i <= $depsCount; i++ )); do
+		if [ ${aDeps[$i, nature]} == "modules" ]; then
+			echo "---- Push ${aDeps[$i, name]} ----"
+
+			# Push le dépôt
+
+			{ # 'try' block
+				git subtree push --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" master
+			} || { # 'catch' block
+			    echo "could not push ${aDeps[$i, name]}"
+			}
+		fi
+	done
+fi
diff --git a/utils/utils/copy_hooks.bat b/utils/utils/copy_hooks.bat
new file mode 100644
index 0000000000000000000000000000000000000000..a24ac68b0f099047b546b33d77a4fab3d99c0247
--- /dev/null
+++ b/utils/utils/copy_hooks.bat
@@ -0,0 +1,3 @@
+
+
+robocopy "githooks" "../.git/hooks" /E /NFL /NDL /NJH /NJS /nc /ns /np
diff --git a/utils/utils/copy_hooks.sh b/utils/utils/copy_hooks.sh
new file mode 100755
index 0000000000000000000000000000000000000000..f5bed2f2552ef3440e7e9589197c0922a1875927
--- /dev/null
+++ b/utils/utils/copy_hooks.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+#
+#
+# 	Script de mise à jour des hooks client
+#
+#
+#
+
+
+if [ -d "githooks" ]; then
+	if [ -d "../.git/hooks" ]; then
+	    cp -f githooks/* ../.git/hooks/
+	fi
+fi
diff --git a/utils/utils/get_deps.sh b/utils/utils/get_deps.sh
new file mode 100755
index 0000000000000000000000000000000000000000..0a26177f9d9a4d746b39799eff421477c4d6ebd8
--- /dev/null
+++ b/utils/utils/get_deps.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+#
+#	Récupère l'ensemble des dépendances depuis conf/_install/dependency.xml
+#
+#
+#
+#
+
+if [ "../conf/_install/dependency.xml" ]; then
+
+	declare -A aDeps
+	vitisVersion=master
+	depsCount=0
+	dependencies=($(cat "../conf/_install/dependency.xml" | tr -d '\040\011\012\015' | grep -oP '<dependency>([\s\S]*?)<\/dependency>'))
+
+	for i in ${!dependencies[*]}; do
+
+		sName=$(grep -oP '(?<=name>)[^<]+' <<< ${dependencies[$i]})
+		sVersion=$(grep -oP '(?<=version>)[^<]+' <<< ${dependencies[$i]})
+		sNature=$(grep -oP '(?<=nature>)[^<]+' <<< ${dependencies[$i]})
+
+		if [ $sName == "vitis" ]; then
+			vitisVersion=$sVersion
+		fi
+		if [ $sNature == "modules" ] || [ $sNature == "web_services" ] || [ $sName == "vitis" ]; then
+			aDeps[$i, name]=$sName
+			aDeps[$i, version]=$sVersion
+			aDeps[$i, nature]=$sNature
+			let depsCount++
+		fi
+
+	done
+
+	echo "[INFO] dependencies:"
+	echo "vitis : $vitisVersion"
+	for i in ${!dependencies[*]}; do
+		echo "(${aDeps[$i, nature]}) ${aDeps[$i, name]} : ${aDeps[$i, version]}"
+	done
+	echo "depsCount : ${depsCount}"
+
+	export vitisVersion
+	export depsCount
+	export aDeps
+
+else
+	echo "[ERROR] ../conf/_install/dependency.xml not found"
+fi
diff --git a/utils/utils/githooks/post-merge b/utils/utils/githooks/post-merge
new file mode 100755
index 0000000000000000000000000000000000000000..45b38b216aa67e69223d8bea9440665e898168f2
--- /dev/null
+++ b/utils/utils/githooks/post-merge
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+#   Hook qui permet de pull toutes les dépendances
+#   quand on fait un pull sur l'application
+#
+#
+#
+#
+#
+
+echo "****** Post-merge Hook ******"
+echo "****** Pull ******"
+# echo "****** Pull subtrees ******"
+# echo "$(pwd)"
+#
+# if [ -d "$(pwd)/utils" ]; then
+#     cd utils
+#     ./pull_subtrees.sh
+# fi
diff --git a/utils/utils/githooks/pre-push b/utils/utils/githooks/pre-push
new file mode 100755
index 0000000000000000000000000000000000000000..c5e4e9536803f05a55dce10289d9bd9299350a7d
--- /dev/null
+++ b/utils/utils/githooks/pre-push
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+#   Hook qui permet de push toutes les dépendances
+#   quand on fait un push sur l'application
+#
+#
+#
+#
+#
+
+remote="$1"
+url="$2"
+if [ $remote != $url ]; then
+
+    echo "****** Pre-push Hook ******"
+    echo "****** Push ******"
+    # echo "****** Push subtrees ******"
+    # if [ -d "$(pwd)/utils" ]; then
+    #     cd utils
+    #     ./push_subtrees.sh
+    # fi
+fi
diff --git a/utils/utils/init_subtrees.sh b/utils/utils/init_subtrees.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f9c2abf14978552d1ae88ca6b9b119d51c71578
--- /dev/null
+++ b/utils/utils/init_subtrees.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#	Initislise l'ensemble des dépendances sous forme de subtrees
+#
+#	Nécessite xmllint : sudo apt install libxml2-utils
+#
+
+
+APP_NAME="vmap"
+
+# Récupère la liste des dépendances
+. ./get_deps.sh
+
+cd ..
+if [ -d "$(pwd)/client" ]; then
+	rm client
+fi
+if [ -d "$(pwd)/vas" ]; then
+	rm vas
+fi
+if [ -d "$(pwd)/src" ]; then
+	git rm -r src
+	git commit -a -m "Reset sources"
+fi
+mkdir src
+
+if [[ $depsCount > 0 ]]; then
+
+	# Vitis
+	echo "---- Init vitis ----"
+	git subtree add --squash -m "add subtree" --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion
+
+	echo "---- Init conf ----"
+	git subtree add --squash -m "add subtree" --prefix src/closure "git@gitlab.veremes.net:Development/vitis_apps/sources/closure.git" master
+
+	# Modules
+	for (( i=1; i <= $depsCount; i++ )); do
+		if [ ${aDeps[$i, nature]} == "modules" ]; then
+			echo "---- Init ${aDeps[$i, name]} : ${aDeps[$i, version]}----"
+
+		    # Ajoute le dépôt
+			git subtree add --squash -m "add subtree" --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]}
+		fi
+	done
+
+fi
diff --git a/utils/utils/init_symlinks.sh b/utils/utils/init_symlinks.sh
new file mode 100755
index 0000000000000000000000000000000000000000..562c7ddb343ad70e85c86d8300080d6eb2c7f7fa
--- /dev/null
+++ b/utils/utils/init_symlinks.sh
@@ -0,0 +1,159 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#
+#   Split repo
+#   git subtree split -P module/ -b module_split_branch
+#
+#   Add subtree
+#   git subtree add --prefix vmap "git@gitlab.veremes.net:Development/vitis_apps/sources/Vitis.git" master
+#
+#
+
+echo -n "Existing app path (path/empty)? "
+read APP_EXISTING_PATH
+
+# Récupère la liste des dépendances
+. ./get_deps.sh
+
+cd ..
+
+# Supprime les anciens symlinks
+if [ -d "client" ]; then
+	rm -Rf client
+fi
+if [ -d "vas" ]; then
+	rm -Rf vas
+fi
+find src/vitis/client -type l -delete
+find src/vitis/vas/sql -type l -delete
+find src/vitis/vas/rest -type l -delete
+
+# Vitis
+echo "---- Link vitis ----"
+if ! [ -e "$(pwd)/client" ]; then
+
+	mkdir client
+	mkdir client/javascript
+	mkdir client/modules
+	ln -rsf src/vitis/client/css client/css
+	ln -rsf src/vitis/client/forms client/forms
+	ln -rsf src/vitis/client/images client/images
+	ln -rsf src/vitis/client/javascript/app client/javascript/app
+	ln -rsf src/vitis/client/javascript/externs client/javascript/externs
+	ln -rsf src/vitis/client/javascript/require client/javascript/require
+	ln -rsf src/vitis/client/lang client/lang
+	ln -rsf src/vitis/client/less client/less
+	ln -rsf src/vitis/client/modules/vitis client/modules/vitis
+	ln -rsf src/vitis/client/templates client/templates
+	ln -rsf src/vitis/client/.htaccess client/.htaccess
+	ln -rsf src/vitis/client/index.html client/index.html
+fi
+if ! [ -e "$(pwd)/vas" ]; then
+
+	mkdir vas
+	mkdir vas/rest
+	mkdir vas/rest/ws
+	ln -rsf src/vitis/vas/doc vas/doc
+	ln -rsf src/vitis/vas/rest/class vas/rest/class
+	ln -rsf src/vitis/vas/rest/inc vas/rest/inc
+	ln -rsf src/vitis/vas/rest/ws/vitis vas/rest/ws/vitis
+	ln -rsf src/vitis/vas/rest/index.phtml vas/rest/index.phtml
+	ln -rsf src/vitis/vas/rest/index.vhtml vas/rest/index.vhtml
+	ln -rsf src/vitis/vas/sql vas/sql
+	ln -rsf src/vitis/vas/util vas/util
+fi
+
+# Conf
+echo "---- Link conf ----"
+if ! [ -e "src/vitis/client/conf" ]; then
+	# ln -rsf conf client/conf
+
+	mkdir client/conf
+	for elem in $( ls "conf"); do
+		if [[ $elem != 'properties.json' ]]; then
+			if [[ -d "conf/${elem}" || -f "conf/${elem}" ]]; then
+				echo "---- Link conf/$elem"
+				ln -rsf conf/$elem client/conf/$elem
+			fi
+		fi
+	done
+fi
+if ! [ -e "conf/closure" ]; then
+	ln -rsf src/closure/conf conf/closure
+fi
+
+# Modules
+if [[ $depsCount > 0 ]]; then
+	for (( i=1; i <= $depsCount; i++ )); do
+		if [ ${aDeps[$i, nature]} == "modules" ]; then
+			if [ ${aDeps[$i, name]:0:7} == "module_" ]; then
+				module=${aDeps[$i, name]:7}
+				echo "---- Link module_${module} ----"
+				if [ -d "$(pwd)/src/module_${module}/module" ]; then
+					if ! [ -e "src/vitis/client/modules/${module}" ]; then
+						ln -rsf src/module_${module}/module client/modules/${module}
+					fi
+				fi
+				if [ -d "$(pwd)/src/module_${module}/web_service/ws" ]; then
+					if ! [ -e "src/vitis/vas/rest/ws/${module}" ]; then
+						ln -rsf src/module_${module}/web_service/ws vas/rest/ws/${module}
+					fi
+				fi
+				if [ -d "$(pwd)/src/module_${module}/web_service/sql" ]; then
+					if ! [ -e "src/vitis/vas/sql/${module}" ]; then
+						ln -rsf src/module_${module}/web_service/sql vas/sql/${module}
+					fi
+				fi
+				if [ -d "$(pwd)/src/module_${module}/web_service/class" ]; then
+					for class_dir in $( ls "$(pwd)/src/module_${module}/web_service/class"); do
+						if [ -d "$(pwd)/src/module_${module}/web_service/class/${class_dir}" ]; then
+							echo "---- Link module_${module}/${class_dir} ----"
+							if ! [ -e "src/vitis/vas/rest/class/${class_dir}" ]; then
+								ln -rsf src/module_${module}/web_service/class/${class_dir} vas/rest/class/${class_dir}
+							fi
+						fi
+					done
+				fi
+			fi
+		fi
+	done
+
+	# Utilisation d'une install déjà existante
+	if [ -d "${APP_EXISTING_PATH}" ]; then
+		echo "---- Link exixting app ${APP_EXISTING_PATH} ----"
+
+		declare -a existing_folders_path=("vas/server"
+		                "vas/rest/conf"
+		                "vas/log"
+						"vas/public"
+						"vas/shared"
+						"vas/tmp"
+						"vas/upload"
+		                "vas/ws_data")
+		for folder_path in "${existing_folders_path[@]}"; do
+			if [ -d "${APP_EXISTING_PATH}/$folder_path" ]; then
+				echo "copy $folder_path"
+				cp -Rf "${APP_EXISTING_PATH}/$folder_path" "$(pwd)/$folder_path"
+				chmod 777 -R "$(pwd)/$folder_path"
+			fi
+		done
+
+		declare -a existing_files_path=("client/conf/properties.json"
+										"vas/rest/.htaccess")
+		for file_path in "${existing_files_path[@]}"; do
+			if [ -f "${APP_EXISTING_PATH}/$file_path" ]; then
+				echo "copy $file_path"
+				cp -f "${APP_EXISTING_PATH}/$file_path" "$(pwd)/$file_path"
+			fi
+		done
+
+		for properties_dir in $( ls "${APP_EXISTING_PATH}/vas/rest/conf"); do
+			if [ -d "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}" ]; then
+				echo "copy ${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}/ > $(pwd)/vas/rest/conf/"
+				cp -Rf "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}/" "$(pwd)/vas/rest/conf/"
+			fi
+		done
+	fi
+fi
diff --git a/utils/utils/init_tree.bat b/utils/utils/init_tree.bat
new file mode 100644
index 0000000000000000000000000000000000000000..d8e6956ca21d8e9e7a4d4d46c77657f1153fb8b9
--- /dev/null
+++ b/utils/utils/init_tree.bat
@@ -0,0 +1,99 @@
+@echo off
+title Install Vitis App
+setlocal EnableDelayedExpansion
+
+cd ..
+
+set /p existing_path="Existing app path: "
+
+REM Client Dir
+echo Create client directory
+if exist "client" (
+  rmdir /S /Q "client"
+)
+echo copy client
+robocopy "src/vitis/client" "client" /E /NFL /NDL /NJH /NJS /nc /ns /np
+echo copy client/conf
+robocopy "conf" "client/conf" /E /NFL /NDL /NJH /NJS /nc /ns /np
+echo copy client/conf/closure
+robocopy "src/closure/conf" "client/conf/closure" /E /NFL /NDL /NJH /NJS /nc /ns /np
+
+echo Copy client modules
+for /d %%g in ("src/module_*") do (
+  set x=%%g
+  echo !x:~7!
+  if exist "src/%%g/module" (
+    echo copy client/modules/!x:~7!
+    robocopy "src/%%g/module" "client/modules/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+)
+
+REM VAS dir
+echo Create vas directory
+echo Create client directory
+if exist "vas" (
+  rmdir /S /Q "vas"
+)
+echo copy vas
+robocopy "src/vitis/vas" "vas" /E /NFL /NDL /NJH /NJS /nc /ns /np
+
+echo Copy vas web_services
+for /d %%g in ("src/module_*") do (
+  set x=%%g
+  echo !x:~7!
+  if exist "src/%%g/web_service/conf" (
+    echo copy vas/rest/conf/!x:~7!
+    robocopy "src/%%g/web_service/conf" "vas/rest/conf/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "src/%%g/web_service/sql" (
+    echo copy vas/sql/!x:~7!
+    robocopy "src/%%g/web_service/sql" "vas/sql/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "src/%%g/web_service/ws" (
+    echo copy vas/rest/ws/!x:~7!
+    robocopy "src/%%g/web_service/ws" "vas/rest/ws/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "src/%%g/web_service/class" (
+    echo copy vas/rest/class
+    robocopy "src/%%g/web_service/class" "vas/rest/class" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "src/%%g/web_service/ws_data" (
+    echo copy vas/ws_data
+    robocopy "src/%%g/web_service/ws_data" "vas/ws_data" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "src/%%g/web_service/public" (
+    echo copy vas/public
+    robocopy "src/%%g/web_service/public" "vas/public" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "src/%%g/web_service/upload" (
+    echo copy vas/upload
+    robocopy "src/%%g/web_service/upload" "vas/upload" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+)
+
+REM Copy from existing path
+if exist %existing_path% (
+  echo copy properties from %existing_path%
+
+  for %%G in (vas\server,vas\rest\conf,vas\log,vas\public,vas\shared,vas\tmp,vas\upload,vas\ws_data) do (
+    echo %%G
+    if exist %existing_path%\%%G (
+      echo copy %%G
+      robocopy "%existing_path%\%%G" "%%G" /E /NFL /NDL /NJH /NJS /nc /ns /np
+    )
+  )
+
+  if exist %existing_path%\client\conf\properties.json (
+    echo copy properties.json
+    robocopy "%existing_path%\client\conf" "client\conf" "properties.json" /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist %existing_path%\vas\rest\.htaccess (
+    echo copy .htaccess
+    robocopy "%existing_path%\vas\rest" "vas\rest" ".htaccess" /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+
+  if exist "%existing_path%\vas\rest\conf" (
+    echo copy vas\rest\conf
+    robocopy "%existing_path%\vas\rest\conf" "vas\rest\conf" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+)
diff --git a/utils/utils/pull_subtrees.sh b/utils/utils/pull_subtrees.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5cac1ba0c4a626761809103e822793ec694068a4
--- /dev/null
+++ b/utils/utils/pull_subtrees.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#	Initislise l'ensemble des dépendances sous forme de subtrees
+#
+#
+#
+
+
+APP_NAME="vmap"
+
+# Récupère la liste des dépendances
+. ./get_deps.sh
+
+cd ..
+
+# Vitis
+echo "---- Pull vitis ----"
+git subtree pull --prefix src/vitis --squash -m "pull subtree"  "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion
+
+# Modules
+if [[ $depsCount > 0 ]]; then
+	for (( i=1; i <= $depsCount; i++ )); do
+		if [ ${aDeps[$i, nature]} == "modules" ]; then
+			echo "---- Pull ${aDeps[$i, name]} ----"
+
+			# Ajoute le dépôt
+			git subtree pull --prefix src/${aDeps[$i, name]} --squash -m "pull subtree" "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]}
+		fi
+	done
+fi
diff --git a/utils/utils/push_subtrees.sh b/utils/utils/push_subtrees.sh
new file mode 100755
index 0000000000000000000000000000000000000000..18a9d3bdac1f0d8d3f6af3e16af06d7337ddf9f6
--- /dev/null
+++ b/utils/utils/push_subtrees.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#	Initislise l'ensemble des dépendances sous forme de subtrees
+#
+#
+#
+
+
+APP_NAME="vmap"
+
+# Récupère la liste des dépendances
+. ./get_deps.sh
+
+cd ..
+
+# Vitis
+echo "---- Push vitis ----"
+{ # 'try' block
+	git subtree push --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion
+} || { # 'catch' block
+	echo "could not push vitis"
+}
+
+# Modules
+if [[ $depsCount > 0 ]]; then
+	for (( i=1; i <= $depsCount; i++ )); do
+		if [ ${aDeps[$i, nature]} == "modules" ]; then
+			echo "---- Push ${aDeps[$i, name]} ----"
+
+			# Push le dépôt
+
+			{ # 'try' block
+				git subtree push --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]}
+			} || { # 'catch' block
+			    echo "could not push ${aDeps[$i, name]}"
+			}
+		fi
+	done
+fi
diff --git a/utils/utils/update_tree.bat b/utils/utils/update_tree.bat
new file mode 100644
index 0000000000000000000000000000000000000000..3c3c5dc356d7cc5922c046ea95f6787f80faa363
--- /dev/null
+++ b/utils/utils/update_tree.bat
@@ -0,0 +1,80 @@
+@echo off
+title Update Vitis tree
+echo Update Vitis tree
+setlocal EnableDelayedExpansion
+
+cd utils
+
+REM Pull repo
+"C:\Program Files\Git\bin\sh.exe" --login -i -c "git pull"
+
+REM Pull subtrees
+"C:\Program Files\Git\bin\sh.exe" --login -i -c "./pull_subtrees.sh"
+
+REM Save important files
+if exist "../vas/rest/sql" (
+  robocopy "../vas/rest/sql" "../vas/rest/sql_bak" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+if exist "../vas/rest/conf" (
+  robocopy "../vas/rest/conf" "../vas/rest/conf_bak" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+
+REM Replace Vitis files
+for /d %%g in ("../src/vitis/client/*") do (
+  set x=%%g
+  echo copy client/!x!
+  rmdir /S /Q "../client/!x!"
+  robocopy "../src/vitis/client/!x!" "../client/!x!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+for /d %%g in ("../src/vitis/vas/sql") do (
+  echo copy vas/sql
+  rmdir /S /Q "../vas/sql"
+  robocopy "../src/vitis/vas/sql" "../vas/sql" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+for /d %%g in ("../src/vitis/vas/rest/class") do (
+  echo copy vas/rest/class
+  rmdir /S /Q "../vas/rest/class"
+  robocopy "../src/vitis/vas/rest/class" "../vas/rest/class" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+for /d %%g in ("../src/vitis/vas/rest/conf") do (
+  echo copy vas/rest/conf
+  robocopy "../src/vitis/vas/rest/conf" "../vas/rest/conf_veremes" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+for /d %%g in ("../src/vitis/vas/rest/inc") do (
+  echo copy vas/rest/inc
+  rmdir /S /Q "../vas/rest/inc"
+  robocopy "../src/vitis/vas/rest/inc" "../vas/rest/inc" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+for /d %%g in ("../src/vitis/vas/rest/ws") do (
+  echo copy vas/rest/ws
+  rmdir /S /Q "../vas/rest/ws"
+  robocopy "../src/vitis/vas/rest/ws" "../vas/rest/ws" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+
+REM Replace modules files
+for /d %%g in ("../src/module_*") do (
+  set x=%%g
+  if exist "../src/%%g/module" (
+    echo copy client/modules/!x:~7!
+    robocopy "../src/%%g/module" "../client/modules/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "../src/%%g/web_service/conf" (
+    echo copy vas/rest/conf_veremes/!x:~7!
+    robocopy "../src/%%g/web_service/conf" "../vas/rest/conf_veremes/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "../src/%%g/web_service/sql" (
+    echo copy vas/sql/!x:~7!
+    robocopy "../src/%%g/web_service/sql" "../vas/sql/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "../src/%%g/web_service/ws" (
+    echo copy vas/rest/ws/!x:~7!
+    robocopy "../src/%%g/web_service/ws" "../vas/rest/ws/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "../src/%%g/web_service/class" (
+    echo copy vas/rest/class
+    robocopy "../src/%%g/web_service/class" "../vas/rest/class" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+)
+
+
+cd ..