diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/conf.json
deleted file mode 100644
index 0b1aeb9a0..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/conf.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "chart-conf": {
- "chart-name": "arc-chart",
- "color": "owner",
- "gadget-name": "Android Headset Usage Chart",
- "maxLength": "2",
- "x": "duration"
- },
- "provider-conf": {
- "limit": "1",
- "provider-name": "batch",
- "query": "",
- "tableName": "ANDROID_HEADSET_STAT_PER_DAY"
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/gadget-controller.jag
deleted file mode 100644
index f84538a40..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/gadget-controller.jag
+++ /dev/null
@@ -1,42 +0,0 @@
-<%
-/**
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-(function () {
-
- response.contentType = 'application/json';
- var PROVIDER_CONF = 'provider-conf';
- var PROVIDER_NAME = 'provider-name';
-
- var action = request.getParameter("action");
- var data = request.getContent();
- var providerConf = data[PROVIDER_CONF];
- var providerAPI = require('js/core/' + providerConf[PROVIDER_NAME] + '-provider-api.js');
-
- if (action === 'getSchema') {
- print(providerAPI.getSchema(providerConf));
- return;
- } else if(action === 'getData'){
- print(providerAPI.getData(providerConf));
- return;
- }
-
-}());
-
-
-%>
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/gadget.json
deleted file mode 100644
index f3dee9e43..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/gadget.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "id": "Android_Headset_Usage_Chart",
- "title": "Android Headset Usage Chart",
- "type": "gadget",
- "thumbnail": "gadget/Android_Headset_Usage_Chart/thumbnail.png",
- "data": {
- "url": "gadget/Android_Headset_Usage_Chart/gadget.xml"
- }
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/gadget.xml
deleted file mode 100644
index 5bebedd5a..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/gadget.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/js/core/batch-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/js/core/batch-provider-api.js
deleted file mode 100644
index d0391eb57..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/js/core/batch-provider-api.js
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, getMode, getSchema, getData, registerCallBackforPush;
-
-(function() {
-
- var PROVIDERS_LOCATION = '/extensions/providers/';
-
- var PROVIDER_NAME = 'batch';
- var TYPE = "type";
- var TABLE_NAME = "tableName";
- var HTTPS_TRANSPORT = "https";
- var CONTENT_TYPE_JSON = "application/json";
- var AUTHORIZATION_HEADER = "Authorization";
- var USER_TOKEN = "user";
- var TENANT_DOMAIN = "domain";
- var CONST_AT = "@";
- var USERNAME = "username";
- var HTTP_USER_NOT_AUTHENTICATED = 403;
- var JS_MAX_VALUE = "9007199254740992";
- var JS_MIN_VALUE = "-9007199254740992";
-
- var typeMap = {
- "bool" : "string",
- "boolean" : "string",
- "string" : "string",
- "int" : "number",
- "integer" : "number",
- "long" : "number",
- "double" : "number",
- "float" : "number",
- "time": "time"
- };
-
- var log = new Log();
- var carbon = require('carbon');
- var configs = require('/configs/designer.json');
- var utils = require('/modules/utils.js');
- var JSUtils = Packages.org.wso2.carbon.analytics.jsservice.Utils;
- var AnalyticsCachedJSServiceConnector = Packages.org.wso2.carbon.analytics.jsservice.AnalyticsCachedJSServiceConnector;
- var AnalyticsCache = Packages.org.wso2.carbon.analytics.jsservice.AnalyticsCachedJSServiceConnector.AnalyticsCache;
- var cacheTimeoutSeconds = 5;
- var loggedInUser = null;
-
- if (configs.cacheTimeoutSeconds) {
- cacheTimeoutSeconds = parseInt(configs.cacheTimeoutSeconds);
- }
- var cacheSizeBytes = 1024 * 1024 * 1024; // 1GB
- if (configs.cacheSizeBytes) {
- cacheSizeBytes = parseInt(configs.cacheSizeBytes);
- }
- response.contentType = CONTENT_TYPE_JSON;
-
- var authParam = request.getHeader(AUTHORIZATION_HEADER);
- if (authParam != null) {
- credentials = JSUtils.authenticate(authParam);
- loggedInUser = credentials[0];
- } else {
- var token = session.get(USER_TOKEN);
- if (token != null) {
- loggedInUser = token[USERNAME] + CONST_AT + token[TENANT_DOMAIN];
- } else {
- log.error("user is not authenticated!");
- response.status = HTTP_USER_NOT_AUTHENTICATED;
- print('{ "status": "Failed", "message": "User is not authenticated." }');
- return;
- }
- }
-
- var cache = application.get("AnalyticsWebServiceCache");
- if (cache == null) {
- cache = new AnalyticsCache(cacheTimeoutSeconds, cacheSizeBytes);
- application.put("AnalyticsWebServiceCache", cache);
- }
- var connector = new AnalyticsCachedJSServiceConnector(cache);
-
- /**
- * require the existing config.json and push any dynamic fields that needs to be populated in the UI
- */
- getConfig = function() {
- var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json');
- var tables;
- try {
- tables = JSON.parse(connector.getTableList(loggedInUser).getMessage());
- } catch (e) {
- log.error(e);
- }
- var configs = formConfig.config;
- configs.forEach(function(config) {
- if (config.fieldName === TABLE_NAME) {
- config.valueSet = tables;
- }
- });
- return formConfig;
- }
-
- /**
- * validate the user input of provider configuration
- * @param providerConfig
- */
- validate = function(providerConfig) {
- /*
- validate the form and return
-
- */
- return true;
- }
-
- /**
- * returns the data mode either push or pull
- */
- getMode = function() {
- return "PULL";
- }
-
- /**
- * returns an array of column names & types
- * @param providerConfig
- */
- getSchema = function(providerConfig) {
- var schema = [];
- var tableName = providerConfig["tableName"];
- var result = connector.getTableSchema(loggedInUser, tableName).getMessage();
- result = JSON.parse(result);
-
- var columns = result.columns;
- Object.getOwnPropertyNames(columns).forEach(function(name, idx, array) {
- var type = "ordinal";
- if(columns[name]['type']) {
- type = columns[name]['type'];
- }
- schema.push({
- fieldName: name,
- fieldType: typeMap[type.toLowerCase()]
- });
- });
- // log.info(schema);
- return schema;
- };
-
- /**
- * returns the actual data
- * @param providerConfig
- * @param limit
- */
- getData = function(providerConfig, limit) {
- // log.info(providerConfig);
- var tableName = providerConfig.tableName;
- var query = providerConfig.query;
- var limit = 100;
- if (providerConfig.limit) {
- limit = providerConfig.limit;
- }
- var result;
- //if there's a filter present, we should perform a Lucene search instead of reading the table
- if (query) {
- var filter = {
- "query": query,
- "start": 0,
- "count": limit
- };
- result = connector.search(loggedInUser, tableName, stringify(filter)).getMessage();
- } else {
- var from = JS_MIN_VALUE;
- var to = JS_MAX_VALUE;
- result = connector.getRecordsByRange(loggedInUser, tableName, from, to, 0, limit, null).getMessage();
-
- }
- result = JSON.parse(result);
- var data = [];
- for (var i = 0; i < result.length; i++) {
- var values = result[i].values;
- data.push(values);
- }
- return data;
- };
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/js/core/donut-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/js/core/donut-chart-api.js
deleted file mode 100644
index a0243b2b8..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/js/core/donut-chart-api.js
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, isProviderRequired, draw, update;
-
-(function() {
-
- var CHART_LOCATION = '/extensions/chart-templates/';
-
- /**
- * return the config to be populated in the chart configuration UI
- * @param schema
- */
- getConfig = function(schema) {
- var chartConf = require(CHART_LOCATION + '/donut-chart/config.json').config;
- /*
- dynamic logic goes here
- */
- return chartConf;
-
- };
-
- /**
- * validate the user inout for the chart configuration
- * @param chartConfig
- */
- validate = function(chartConfig) {
- return true;
- };
-
- /**
- * TO be used when provider configuration steps need to be skipped
- */
- isProviderRequired = function() {
-
- }
-
-
- /**
- * return the gadget content
- * @param chartConfig
- * @param schema
- * @param data
- */
- draw = function(placeholder, chartConfig, _schema, data) {
- var schema = toVizGrammarSchema(_schema);
- var view = {
- id: "chart-0",
- schema: schema,
- chartConfig: buildChartConfig(chartConfig),
- data: function() {
- if(data) {
- var result = [];
- data.forEach(function(item) {
- var row = [];
- schema[0].metadata.names.forEach(function(name) {
- row.push(item[name]);
- });
- result.push(row);
- });
- wso2gadgets.onDataReady(result);
- }
- }
-
- };
-
- try {
- wso2gadgets.init(placeholder, view);
- var view = wso2gadgets.load("chart-0");
- } catch (e) {
- console.error(e);
- }
-
- };
-
- /**
- *
- * @param data
- */
- update = function(data) {
- wso2gadgets.onDataReady(data,"append");
- }
-
- buildChartConfig = function (_chartConfig) {
- var conf = {};
- conf.x = _chartConfig.x;
- conf.maxLength = _chartConfig.maxLength;
- conf.charts = [];
- conf.charts[0] = {
- type : "arc",
- color: _chartConfig.color
- };
- conf.tooltip = {"enabled":false}
- conf.legend = false;
- conf.percentage = true;
- conf.colorScale = ["#4db8ff", "#e6f5ff"];
- return conf;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/js/core/gadget-core.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/js/core/gadget-core.js
deleted file mode 100644
index 70728d043..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/js/core/gadget-core.js
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-$(function() {
- var gadgetLocation;
- var conf;
- var schema;
- var pref = new gadgets.Prefs();
-
- var refreshInterval;
- var providerData;
-
- var CHART_CONF = 'chart-conf';
- var PROVIDER_CONF = 'provider-conf';
-
- var REFRESH_INTERVAL = 'refreshInterval';
-
- var init = function() {
- $.ajax({
- url: gadgetLocation + '/conf.json',
- method: "GET",
- contentType: "application/json",
- async: false,
- success: function(data) {
- conf = JSON.parse(data);
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getSchema',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function(data) {
- schema = data;
- }
- });
-
- getProviderData();
-
- }
- });
- };
-
- var getProviderData = function() {
- console.log(gadgetLocation);
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getData',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function(data) {
- console.log(data);
- var duration = data[0].duration / 60000; // Convert to minutes
- var newData = [{
- "duration": duration,
- "owner": "YES"
- }, {
- "duration": (1440 - duration),
- "owner": "NO"
- }
- ];
- // data.forEach(function(entry) {
- // entry.duration = entry.duration / 60000 % 100; // Convert to minutes
- // });
- // providerData = data;
- providerData = newData;
- }
- });
- return providerData;
-};
-
-
-var drawGadget = function() {
-
- draw('#canvas', conf[CHART_CONF], schema, providerData);
- setInterval(function() {
- draw('#canvas', conf[CHART_CONF], schema, getProviderData());
- }, pref.getInt(REFRESH_INTERVAL));
-
-};
-
-getGadgetLocation(function(gadget_Location) {
- gadgetLocation = gadget_Location;
- init();
- drawGadget();
-
-});
-});
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/js/core/gadget-util.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/js/core/gadget-util.js
deleted file mode 100644
index 23866bfe7..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/js/core/gadget-util.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getGadgetLocation = function (callback) {
- var gadgetLocation = "/portal/store/carbon.super/fs/gadget/Android_Headset_Usage_Chart";
- var PATH_SEPERATOR = "/";
- if (gadgetLocation.search("store") != -1) {
- wso2.gadgets.identity.getTenantDomain(function (tenantDomain) {
- var gadgetPath = gadgetLocation.split(PATH_SEPERATOR);
- var modifiedPath = '';
- for (var i = 1; i < gadgetPath.length; i++) {
- if (i === 3) {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, tenantDomain);
- } else {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, gadgetPath[i])
- }
- }
- callback(modifiedPath);
- });
- } else {
- callback(gadgetLocation);
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/thumbnail.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/thumbnail.png
deleted file mode 100644
index 2a4409fbe..000000000
Binary files a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/Android_Headset_Usage_Chart/thumbnail.png and /dev/null differ
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/artifact.xml
deleted file mode 100644
index c491cc53c..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_headset_usage_chart_gadget/artifact.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- Android_Headset_Usage_Chart
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_light_ui_event_publisher/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_light_ui_event_publisher/artifact.xml
deleted file mode 100644
index 63ea4431a..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_light_ui_event_publisher/artifact.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- org.wso2.iot.android.light.ui.publisher.xml
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_light_ui_event_publisher/org.wso2.iot.android.light.ui.publisher.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_light_ui_event_publisher/org.wso2.iot.android.light.ui.publisher.xml
deleted file mode 100644
index 779e6bf42..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_light_ui_event_publisher/org.wso2.iot.android.light.ui.publisher.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/conf.json
deleted file mode 100644
index 95df5ee94..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/conf.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "chart-conf": {
- "chart-name": "number-chart",
- "gadget-name": "Android Location Map",
- "maxLength": "30",
- "title": "Android Location Map",
- "x": "TIMESTAMP"
- },
- "provider-conf": {
- "provider-name": "realtime",
- "streamName": "org.wso2.iot.android.location:1.0.0"
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/css/map-style.css b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/css/map-style.css
deleted file mode 100644
index 589cfbea7..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/css/map-style.css
+++ /dev/null
@@ -1,37 +0,0 @@
-#map {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 120px;
-}
-
-#tool_box {
- z-index: 10000;
- position: absolute;
- left: 50px;
- top: 10px;
-}
-
-#bottomBox {
- height: 120px;
- position: absolute;
- left: 0;
- right: 0;
- bottom: 0;
-}
-
-body {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-}
-
-h1 {
- font-size: 36px;
- font-weight: 300;
- line-height: 1.1;
-}
-
-.datetimeControl p {
- margin: 0;
- font-size: 16px;
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/css/number-chart.css b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/css/number-chart.css
deleted file mode 100644
index 5dde0413a..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/css/number-chart.css
+++ /dev/null
@@ -1,35 +0,0 @@
-#canvas {
- height: 100%;
- width: 100%;
-}
-
-p {
- margin: 0;
- display: block;
- text-align: center;
- font-weight: bold;
-}
-
-.titlecanvasContent {
- color:steelblue;
- font-size:18px;
- font-weight: normal;
- padding: 10px 0;
-}
-
-.valcanvasContent {
- color:#438CAD;
- font-size:50px;
- font-weight: normal;
-}
-
-
-.diffcanvasContent {
- color:#438CAD;
- font-size:14px;
-}
-
-.diffPercentagecanvasContent {
- color:#ff944d;
- font-size:14px;
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/data/demo-tracks.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/data/demo-tracks.js
deleted file mode 100644
index 7122953e2..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/data/demo-tracks.js
+++ /dev/null
@@ -1,10135 +0,0 @@
-var tillicum = {
- "type": "Feature",
- "geometry": {
- "type": "MultiPoint",
- "coordinates": [
- [
- -123.77252789,
- 44.37857221
- ],
- [
- -123.77317087,
- 44.37864694
- ],
- [
- -123.77383407,
- 44.37875853
- ],
- [
- -123.7744676,
- 44.37886305
- ],
- [
- -123.77507677,
- 44.37893017
- ],
- [
- -123.77566451,
- 44.37901047
- ],
- [
- -123.77605842,
- 44.37892161
- ],
- [
- -123.77660114,
- 44.37895724
- ],
- [
- -123.77720403,
- 44.37897655
- ],
- [
- -123.77781983,
- 44.37900344
- ],
- [
- -123.77838906,
- 44.37898221
- ],
- [
- -123.7789954,
- 44.37899854
- ],
- [
- -123.77951988,
- 44.37891571
- ],
- [
- -123.78004217,
- 44.37883105
- ],
- [
- -123.78056503,
- 44.37875077
- ],
- [
- -123.78105914,
- 44.37868172
- ],
- [
- -123.78156765,
- 44.37852908
- ],
- [
- -123.78211778,
- 44.37847079
- ],
- [
- -123.78269313,
- 44.37840336
- ],
- [
- -123.78319893,
- 44.37834025
- ],
- [
- -123.79013846,
- 44.37675321
- ],
- [
- -123.79067206,
- 44.37666117
- ],
- [
- -123.79122235,
- 44.37667708
- ],
- [
- -123.79156935,
- 44.37655781
- ],
- [
- -123.79231801,
- 44.37652196
- ],
- [
- -123.79301538,
- 44.37651473
- ],
- [
- -123.79359988,
- 44.37656075
- ],
- [
- -123.79428722,
- 44.37655133
- ],
- [
- -123.79487322,
- 44.37661456
- ],
- [
- -123.79548606,
- 44.37666101
- ],
- [
- -123.79603541,
- 44.37670013
- ],
- [
- -123.79660795,
- 44.37662235
- ],
- [
- -123.79718365,
- 44.37650581
- ],
- [
- -123.79780967,
- 44.37653439
- ],
- [
- -123.79831292,
- 44.37685522
- ],
- [
- -123.79883296,
- 44.37696685
- ],
- [
- -123.7993581,
- 44.37709195
- ],
- [
- -123.79988118,
- 44.37718879
- ],
- [
- -123.80039793,
- 44.37728202
- ],
- [
- -123.80089376,
- 44.37738925
- ],
- [
- -123.80142092,
- 44.37766936
- ],
- [
- -123.80179753,
- 44.37789379
- ],
- [
- -123.80233272,
- 44.37795562
- ],
- [
- -123.80277717,
- 44.37816047
- ],
- [
- -123.80331138,
- 44.3783486
- ],
- [
- -123.80381643,
- 44.37850233
- ],
- [
- -123.80420021,
- 44.37865152
- ],
- [
- -123.80474815,
- 44.37882091
- ],
- [
- -123.80522525,
- 44.37906232
- ],
- [
- -123.80570349,
- 44.37922411
- ],
- [
- -123.80620571,
- 44.37941275
- ],
- [
- -123.80673037,
- 44.37965326
- ],
- [
- -123.80735339,
- 44.37979863
- ],
- [
- -123.80784469,
- 44.37999957
- ],
- [
- -123.80837458,
- 44.37998017
- ],
- [
- -123.80899232,
- 44.380014
- ],
- [
- -123.80952307,
- 44.37993165
- ],
- [
- -123.80987634,
- 44.37978153
- ],
- [
- -123.81017161,
- 44.37953295
- ],
- [
- -123.81074873,
- 44.37925199
- ],
- [
- -123.81119243,
- 44.37897587
- ],
- [
- -123.81154793,
- 44.37873989
- ],
- [
- -123.81198778,
- 44.37842102
- ],
- [
- -123.81235373,
- 44.37816192
- ],
- [
- -123.81275348,
- 44.37788448
- ],
- [
- -123.81310351,
- 44.37766604
- ],
- [
- -123.81337983,
- 44.37730145
- ],
- [
- -123.81357531,
- 44.37692989
- ],
- [
- -123.81361254,
- 44.37647844
- ],
- [
- -123.81353376,
- 44.37594116
- ],
- [
- -123.813198,
- 44.37561605
- ],
- [
- -123.81284754,
- 44.37547955
- ],
- [
- -123.81254975,
- 44.37524719
- ],
- [
- -123.81227721,
- 44.37500803
- ],
- [
- -123.81207289,
- 44.3746695
- ],
- [
- -123.81171276,
- 44.37434638
- ],
- [
- -123.81097859,
- 44.37413431
- ],
- [
- -123.81041401,
- 44.37394429
- ],
- [
- -123.80976458,
- 44.37373029
- ],
- [
- -123.80923389,
- 44.37352906
- ],
- [
- -123.80863022,
- 44.37335692
- ],
- [
- -123.80827452,
- 44.37322894
- ],
- [
- -123.8079216,
- 44.37304699
- ],
- [
- -123.80755687,
- 44.37290854
- ],
- [
- -123.80710749,
- 44.37269837
- ],
- [
- -123.80659847,
- 44.37245911
- ],
- [
- -123.80613857,
- 44.37221401
- ],
- [
- -123.80573546,
- 44.37193255
- ],
- [
- -123.80540784,
- 44.37151577
- ],
- [
- -123.80511308,
- 44.37120469
- ],
- [
- -123.80500888,
- 44.37078896
- ],
- [
- -123.80529524,
- 44.37037566
- ],
- [
- -123.80558562,
- 44.37019806
- ],
- [
- -123.80585412,
- 44.36996992
- ],
- [
- -123.80610692,
- 44.36970942
- ],
- [
- -123.80661414,
- 44.36946727
- ],
- [
- -123.80708477,
- 44.36926607
- ],
- [
- -123.80747679,
- 44.36907467
- ],
- [
- -123.80784949,
- 44.368733
- ],
- [
- -123.80826348,
- 44.36838459
- ],
- [
- -123.80868817,
- 44.36802111
- ],
- [
- -123.80912729,
- 44.36773598
- ],
- [
- -123.80960812,
- 44.36738742
- ],
- [
- -123.81008551,
- 44.36707347
- ],
- [
- -123.81063481,
- 44.36684946
- ],
- [
- -123.81115119,
- 44.36661789
- ],
- [
- -123.811705,
- 44.36640043
- ],
- [
- -123.81227943,
- 44.36624681
- ],
- [
- -123.81272103,
- 44.36622733
- ],
- [
- -123.81348991,
- 44.36635102
- ],
- [
- -123.81411031,
- 44.36622347
- ],
- [
- -123.81475065,
- 44.3661859
- ],
- [
- -123.81536292,
- 44.36625908
- ],
- [
- -123.8160232,
- 44.36634012
- ],
- [
- -123.81661561,
- 44.36646415
- ],
- [
- -123.81719049,
- 44.36652826
- ],
- [
- -123.81784426,
- 44.36665079
- ],
- [
- -123.81846565,
- 44.36680154
- ],
- [
- -123.81905878,
- 44.36690594
- ],
- [
- -123.81970058,
- 44.36704457
- ],
- [
- -123.82030833,
- 44.36728783
- ],
- [
- -123.82091327,
- 44.36747762
- ],
- [
- -123.82156675,
- 44.36747158
- ],
- [
- -123.82213205,
- 44.36750236
- ],
- [
- -123.8227688,
- 44.36753587
- ],
- [
- -123.82339934,
- 44.36749609
- ],
- [
- -123.82400308,
- 44.36747441
- ],
- [
- -123.82437384,
- 44.36736178
- ],
- [
- -123.82498006,
- 44.36711433
- ],
- [
- -123.82554355,
- 44.36692204
- ],
- [
- -123.82599663,
- 44.36659999
- ],
- [
- -123.82653738,
- 44.36631833
- ],
- [
- -123.82687629,
- 44.36595919
- ],
- [
- -123.82730895,
- 44.36559104
- ],
- [
- -123.82752535,
- 44.36508675
- ],
- [
- -123.82778797,
- 44.36466732
- ],
- [
- -123.8280572,
- 44.36424929
- ],
- [
- -123.82826364,
- 44.36381812
- ],
- [
- -123.8284935,
- 44.36337296
- ],
- [
- -123.82872595,
- 44.36288338
- ],
- [
- -123.82894503,
- 44.36243078
- ],
- [
- -123.82914801,
- 44.36196883
- ],
- [
- -123.82942984,
- 44.36158184
- ],
- [
- -123.82967989,
- 44.36114209
- ],
- [
- -123.82984482,
- 44.36067615
- ],
- [
- -123.83000072,
- 44.36021653
- ],
- [
- -123.8302136,
- 44.35975596
- ],
- [
- -123.83043508,
- 44.35927715
- ],
- [
- -123.83043676,
- 44.35897974
- ],
- [
- -123.83066164,
- 44.3585452
- ],
- [
- -123.83087389,
- 44.35808419
- ],
- [
- -123.83123077,
- 44.35771716
- ],
- [
- -123.83149219,
- 44.35730191
- ],
- [
- -123.8317935,
- 44.35689183
- ],
- [
- -123.83221309,
- 44.35652466
- ],
- [
- -123.83264602,
- 44.35620468
- ],
- [
- -123.83295909,
- 44.35604074
- ],
- [
- -123.83322863,
- 44.35582838
- ],
- [
- -123.83363274,
- 44.35546781
- ],
- [
- -123.8339284,
- 44.35504505
- ],
- [
- -123.83421101,
- 44.35462757
- ],
- [
- -123.83441642,
- 44.35420053
- ],
- [
- -123.83459364,
- 44.35374425
- ],
- [
- -123.83484153,
- 44.35328064
- ],
- [
- -123.83503992,
- 44.35279836
- ],
- [
- -123.83532486,
- 44.35239401
- ],
- [
- -123.83558141,
- 44.35190388
- ],
- [
- -123.83584591,
- 44.35144822
- ],
- [
- -123.8362086,
- 44.35106632
- ],
- [
- -123.83646984,
- 44.35061601
- ],
- [
- -123.83682396,
- 44.35027306
- ],
- [
- -123.83741823,
- 44.35002993
- ],
- [
- -123.83797977,
- 44.34977041
- ],
- [
- -123.8384272,
- 44.34973236
- ],
- [
- -123.83891831,
- 44.34973886
- ],
- [
- -123.8393342,
- 44.34980157
- ],
- [
- -123.83983914,
- 44.34970795
- ],
- [
- -123.8402702,
- 44.34971164
- ],
- [
- -123.84067923,
- 44.34973058
- ],
- [
- -123.8410633,
- 44.34970312
- ],
- [
- -123.84147372,
- 44.34971455
- ],
- [
- -123.84204825,
- 44.3498711
- ],
- [
- -123.84264285,
- 44.34994949
- ],
- [
- -123.84321946,
- 44.35001037
- ],
- [
- -123.84377642,
- 44.35003907
- ],
- [
- -123.84432658,
- 44.35025777
- ],
- [
- -123.84203507,
- 44.35487086
- ],
- [
- -123.84165892,
- 44.35522761
- ],
- [
- -123.84141926,
- 44.35562524
- ],
- [
- -123.8411565,
- 44.35599439
- ],
- [
- -123.8410185,
- 44.3562787
- ],
- [
- -123.84055746,
- 44.35664891
- ],
- [
- -123.8402963,
- 44.35698133
- ],
- [
- -123.83992088,
- 44.35727933
- ],
- [
- -123.83973137,
- 44.35754806
- ],
- [
- -123.83932875,
- 44.35773088
- ],
- [
- -123.83914337,
- 44.3580173
- ],
- [
- -123.83895031,
- 44.35825633
- ],
- [
- -123.83850815,
- 44.35862331
- ],
- [
- -123.83822746,
- 44.35907347
- ],
- [
- -123.83796045,
- 44.35949625
- ],
- [
- -123.83768553,
- 44.35990376
- ],
- [
- -123.83745996,
- 44.3604108
- ],
- [
- -123.83714948,
- 44.36078632
- ],
- [
- -123.83691018,
- 44.36125106
- ],
- [
- -123.83671357,
- 44.36176473
- ],
- [
- -123.83643361,
- 44.36221479
- ],
- [
- -123.83615206,
- 44.36264813
- ],
- [
- -123.83578463,
- 44.36307576
- ],
- [
- -123.83542661,
- 44.36349149
- ],
- [
- -123.83506758,
- 44.36384017
- ],
- [
- -123.83472312,
- 44.36423027
- ],
- [
- -123.83433282,
- 44.36461474
- ],
- [
- -123.83404859,
- 44.36509528
- ],
- [
- -123.83375641,
- 44.36552674
- ],
- [
- -123.83348665,
- 44.36592645
- ],
- [
- -123.83352719,
- 44.36641625
- ],
- [
- -123.83354167,
- 44.36687226
- ],
- [
- -123.83352598,
- 44.36733983
- ],
- [
- -123.83357856,
- 44.36781268
- ],
- [
- -123.83358707,
- 44.36828114
- ],
- [
- -123.83361502,
- 44.36877025
- ],
- [
- -123.83363983,
- 44.36924809
- ],
- [
- -123.83386927,
- 44.36974131
- ],
- [
- -123.83398366,
- 44.37020602
- ],
- [
- -123.83411017,
- 44.37066634
- ],
- [
- -123.83422771,
- 44.37115498
- ],
- [
- -123.83440837,
- 44.37157793
- ],
- [
- -123.83451758,
- 44.37203463
- ],
- [
- -123.83466984,
- 44.37246002
- ],
- [
- -123.83476675,
- 44.3729088
- ],
- [
- -123.834789,
- 44.37317881
- ],
- [
- -123.8346991,
- 44.37369173
- ],
- [
- -123.83454395,
- 44.37417495
- ],
- [
- -123.83441269,
- 44.37465505
- ],
- [
- -123.83417986,
- 44.37507302
- ],
- [
- -123.83364152,
- 44.37526
- ],
- [
- -123.83321353,
- 44.37557739
- ],
- [
- -123.83285218,
- 44.37595532
- ],
- [
- -123.83248264,
- 44.37637684
- ],
- [
- -123.83225679,
- 44.37665008
- ],
- [
- -123.83191251,
- 44.37707752
- ],
- [
- -123.83159357,
- 44.37751562
- ],
- [
- -123.83134601,
- 44.37796816
- ],
- [
- -123.83118921,
- 44.37842778
- ],
- [
- -123.83090169,
- 44.37889258
- ],
- [
- -123.83070078,
- 44.37934341
- ],
- [
- -123.83056763,
- 44.37979938
- ],
- [
- -123.83053986,
- 44.38025897
- ],
- [
- -123.83063844,
- 44.38064949
- ],
- [
- -123.8307725,
- 44.38109651
- ],
- [
- -123.83083629,
- 44.38148235
- ],
- [
- -123.83082114,
- 44.3819181
- ],
- [
- -123.83065815,
- 44.38231241
- ],
- [
- -123.83050646,
- 44.38273143
- ],
- [
- -123.83030168,
- 44.38315663
- ],
- [
- -123.82998372,
- 44.38356024
- ],
- [
- -123.82974685,
- 44.38396369
- ],
- [
- -123.82954343,
- 44.38431339
- ],
- [
- -123.82937698,
- 44.38464023
- ],
- [
- -123.82929339,
- 44.38499412
- ],
- [
- -123.82929866,
- 44.38537351
- ],
- [
- -123.82929649,
- 44.38572262
- ],
- [
- -123.82939712,
- 44.3861449
- ],
- [
- -123.82974721,
- 44.38640976
- ],
- [
- -123.83006661,
- 44.38665424
- ],
- [
- -123.83047099,
- 44.38693426
- ],
- [
- -123.83085114,
- 44.38712547
- ],
- [
- -123.83131994,
- 44.38731023
- ],
- [
- -123.83186324,
- 44.38761938
- ],
- [
- -123.83217948,
- 44.38780359
- ],
- [
- -123.83273301,
- 44.3880341
- ],
- [
- -123.83332735,
- 44.38824105
- ],
- [
- -123.8340571,
- 44.38841128
- ],
- [
- -123.83465999,
- 44.38859294
- ],
- [
- -123.83528877,
- 44.38859602
- ],
- [
- -123.83569405,
- 44.38844339
- ],
- [
- -123.83638628,
- 44.3884207
- ],
- [
- -123.8370251,
- 44.38844967
- ],
- [
- -123.83739577,
- 44.38837795
- ],
- [
- -123.83776722,
- 44.38831733
- ],
- [
- -123.83837884,
- 44.38836701
- ],
- [
- -123.83900529,
- 44.38838659
- ],
- [
- -123.83961918,
- 44.38831371
- ],
- [
- -123.84021405,
- 44.38829042
- ],
- [
- -123.84086954,
- 44.38828232
- ],
- [
- -123.84151231,
- 44.3883489
- ],
- [
- -123.84204361,
- 44.38864686
- ],
- [
- -123.84250872,
- 44.38883971
- ],
- [
- -123.84286235,
- 44.38913828
- ],
- [
- -123.84327839,
- 44.38943857
- ],
- [
- -123.84351162,
- 44.38965811
- ],
- [
- -123.8437019,
- 44.38990892
- ],
- [
- -123.84414825,
- 44.39024774
- ],
- [
- -123.84457698,
- 44.39057986
- ],
- [
- -123.8450298,
- 44.39091025
- ],
- [
- -123.84540377,
- 44.39127727
- ],
- [
- -123.84576513,
- 44.39169169
- ],
- [
- -123.84620505,
- 44.3920822
- ],
- [
- -123.84662036,
- 44.39243773
- ],
- [
- -123.84701835,
- 44.39281331
- ],
- [
- -123.84736426,
- 44.39303992
- ],
- [
- -123.84774171,
- 44.39336675
- ],
- [
- -123.84750211,
- 44.39375524
- ],
- [
- -123.84730976,
- 44.39415078
- ],
- [
- -123.84716074,
- 44.39450914
- ],
- [
- -123.83325795,
- 44.39231346
- ],
- [
- -123.83287897,
- 44.39233478
- ],
- [
- -123.83242812,
- 44.39225423
- ],
- [
- -123.8320242,
- 44.39214754
- ],
- [
- -123.831443,
- 44.39216949
- ],
- [
- -123.83081285,
- 44.39222948
- ],
- [
- -123.83042339,
- 44.39237674
- ],
- [
- -123.8298725,
- 44.39246101
- ],
- [
- -123.82948222,
- 44.39289454
- ],
- [
- -123.82948876,
- 44.39341478
- ],
- [
- -123.82929042,
- 44.39364585
- ],
- [
- -123.82889206,
- 44.39403331
- ],
- [
- -123.82849602,
- 44.39438788
- ],
- [
- -123.82814269,
- 44.39466477
- ],
- [
- -123.82774371,
- 44.39497413
- ],
- [
- -123.82797044,
- 44.39558031
- ],
- [
- -123.82824962,
- 44.39610349
- ],
- [
- -123.82823647,
- 44.39653022
- ],
- [
- -123.82841452,
- 44.3970331
- ],
- [
- -123.82846666,
- 44.39744215
- ],
- [
- -123.82881905,
- 44.39761326
- ],
- [
- -123.82910502,
- 44.39782317
- ],
- [
- -123.82933156,
- 44.39827824
- ],
- [
- -123.82958303,
- 44.39860292
- ],
- [
- -123.82970897,
- 44.39887799
- ],
- [
- -123.82998729,
- 44.39910031
- ],
- [
- -123.83048205,
- 44.39929464
- ],
- [
- -123.83095576,
- 44.3995244
- ],
- [
- -123.83147986,
- 44.39985473
- ],
- [
- -123.83202919,
- 44.40011745
- ],
- [
- -123.83272727,
- 44.40023748
- ],
- [
- -123.83340891,
- 44.40029896
- ],
- [
- -123.8340274,
- 44.40029109
- ],
- [
- -123.83472264,
- 44.40026772
- ],
- [
- -123.83508238,
- 44.40017841
- ],
- [
- -123.83575472,
- 44.40010627
- ],
- [
- -123.83643769,
- 44.40001533
- ],
- [
- -123.8370988,
- 44.39997518
- ],
- [
- -123.83747722,
- 44.39992662
- ],
- [
- -123.83818459,
- 44.39988528
- ],
- [
- -123.83883679,
- 44.3997823
- ],
- [
- -123.8394548,
- 44.39967891
- ],
- [
- -123.84008445,
- 44.39954732
- ],
- [
- -123.84070208,
- 44.39939815
- ],
- [
- -123.84131372,
- 44.39917183
- ],
- [
- -123.84187299,
- 44.39896379
- ],
- [
- -123.84244572,
- 44.39868752
- ],
- [
- -123.84296973,
- 44.3984023
- ],
- [
- -123.84350996,
- 44.3981352
- ],
- [
- -123.84392876,
- 44.39799545
- ],
- [
- -123.8447125,
- 44.39786568
- ],
- [
- -123.84510842,
- 44.39787915
- ],
- [
- -123.84579844,
- 44.39787518
- ],
- [
- -123.84650467,
- 44.39794333
- ],
- [
- -123.84717138,
- 44.39808825
- ],
- [
- -123.84788597,
- 44.39825368
- ],
- [
- -123.84843146,
- 44.3984778
- ],
- [
- -123.84908022,
- 44.39868748
- ],
- [
- -123.84973524,
- 44.39883781
- ],
- [
- -123.85018943,
- 44.39913399
- ],
- [
- -123.85072511,
- 44.39937269
- ],
- [
- -123.85126588,
- 44.39963369
- ],
- [
- -123.85183667,
- 44.39984811
- ],
- [
- -123.85253322,
- 44.39995526
- ],
- [
- -123.85315519,
- 44.40007652
- ],
- [
- -123.85383831,
- 44.40018159
- ],
- [
- -123.85422651,
- 44.4002215
- ],
- [
- -123.85489009,
- 44.40030811
- ],
- [
- -123.85557778,
- 44.40030578
- ],
- [
- -123.85617964,
- 44.40025503
- ],
- [
- -123.85685093,
- 44.40020889
- ],
- [
- -123.85749307,
- 44.40014005
- ],
- [
- -123.85815502,
- 44.39999251
- ],
- [
- -123.85878967,
- 44.39987297
- ],
- [
- -123.85940186,
- 44.39975461
- ],
- [
- -123.86014717,
- 44.39970844
- ],
- [
- -123.86067393,
- 44.39969683
- ],
- [
- -123.86126228,
- 44.39957493
- ],
- [
- -123.86187423,
- 44.39946623
- ],
- [
- -123.86252734,
- 44.39941413
- ],
- [
- -123.86316943,
- 44.39930916
- ],
- [
- -123.86376752,
- 44.39917205
- ],
- [
- -123.86436596,
- 44.39901877
- ],
- [
- -123.86498829,
- 44.39890866
- ],
- [
- -123.86564018,
- 44.39889606
- ],
- [
- -123.86633351,
- 44.39891627
- ],
- [
- -123.86693144,
- 44.39910351
- ],
- [
- -123.86755934,
- 44.39920612
- ],
- [
- -123.86821285,
- 44.39938466
- ],
- [
- -123.86888417,
- 44.39956356
- ],
- [
- -123.86935838,
- 44.3997763
- ],
- [
- -123.86982656,
- 44.40003146
- ],
- [
- -123.87021351,
- 44.40040625
- ],
- [
- -123.87070082,
- 44.40066815
- ],
- [
- -123.8712128,
- 44.40097838
- ],
- [
- -123.87173204,
- 44.40127655
- ],
- [
- -123.8722167,
- 44.40153571
- ],
- [
- -123.87257382,
- 44.40162574
- ],
- [
- -123.87310406,
- 44.40189762
- ],
- [
- -123.87359914,
- 44.40206826
- ],
- [
- -123.87412929,
- 44.40230976
- ],
- [
- -123.87488722,
- 44.40247685
- ],
- [
- -123.87547359,
- 44.40268243
- ],
- [
- -123.87591649,
- 44.40303744
- ],
- [
- -123.87639193,
- 44.40329141
- ],
- [
- -123.87685593,
- 44.403575
- ],
- [
- -123.8773683,
- 44.40388809
- ],
- [
- -123.87787402,
- 44.40421161
- ],
- [
- -123.87830627,
- 44.40450556
- ],
- [
- -123.87875463,
- 44.40481816
- ],
- [
- -123.87921462,
- 44.4051345
- ],
- [
- -123.87965761,
- 44.40550009
- ],
- [
- -123.88006274,
- 44.40581375
- ],
- [
- -123.880311,
- 44.40601844
- ],
- [
- -123.88050868,
- 44.40625212
- ],
- [
- -123.88092865,
- 44.40670517
- ],
- [
- -123.88140728,
- 44.40695894
- ],
- [
- -123.88196001,
- 44.40719543
- ],
- [
- -123.88246063,
- 44.40746501
- ],
- [
- -123.88290241,
- 44.40761001
- ],
- [
- -123.88326407,
- 44.40770471
- ],
- [
- -123.88369986,
- 44.4077935
- ],
- [
- -123.88410483,
- 44.40781332
- ],
- [
- -123.88477941,
- 44.40788478
- ],
- [
- -123.88546521,
- 44.40792777
- ],
- [
- -123.88613991,
- 44.40800486
- ],
- [
- -123.88679371,
- 44.40802335
- ],
- [
- -123.88743945,
- 44.40803797
- ],
- [
- -123.88778308,
- 44.40792528
- ],
- [
- -123.88816662,
- 44.40788622
- ],
- [
- -123.88878509,
- 44.4077292
- ],
- [
- -123.88939277,
- 44.40746818
- ],
- [
- -123.88992761,
- 44.40728381
- ],
- [
- -123.89042965,
- 44.40706805
- ],
- [
- -123.89091789,
- 44.40679144
- ],
- [
- -123.89146513,
- 44.40661118
- ],
- [
- -123.89204869,
- 44.40645954
- ],
- [
- -123.8924492,
- 44.40642341
- ],
- [
- -123.89306481,
- 44.40632346
- ],
- [
- -123.89363697,
- 44.4061784
- ],
- [
- -123.89424605,
- 44.40607274
- ],
- [
- -123.89472907,
- 44.40585515
- ],
- [
- -123.89529258,
- 44.4055676
- ],
- [
- -123.89577479,
- 44.40534867
- ],
- [
- -123.89623146,
- 44.40510029
- ],
- [
- -123.89669813,
- 44.4049264
- ],
- [
- -123.89703676,
- 44.40479792
- ],
- [
- -123.89759604,
- 44.40489638
- ],
- [
- -123.89796954,
- 44.40480068
- ],
- [
- -123.89776908,
- 44.40510428
- ],
- [
- -123.89763026,
- 44.40537959
- ],
- [
- -123.89775748,
- 44.40570888
- ],
- [
- -123.89798825,
- 44.40635395
- ],
- [
- -123.89807914,
- 44.40680006
- ],
- [
- -123.8981605,
- 44.40723602
- ],
- [
- -123.89851731,
- 44.40788018
- ],
- [
- -123.89870319,
- 44.40827993
- ],
- [
- -123.89885188,
- 44.40854481
- ],
- [
- -123.89912201,
- 44.4090699
- ],
- [
- -123.89931266,
- 44.40932872
- ],
- [
- -123.89955343,
- 44.40989939
- ],
- [
- -123.89964612,
- 44.41020136
- ],
- [
- -123.89998865,
- 44.41067162
- ],
- [
- -123.90009915,
- 44.41095871
- ],
- [
- -123.90046547,
- 44.41136472
- ],
- [
- -123.90081575,
- 44.41179523
- ],
- [
- -123.90126973,
- 44.41207393
- ],
- [
- -123.90161867,
- 44.41223466
- ],
- [
- -123.90219707,
- 44.41242756
- ],
- [
- -123.90279124,
- 44.41262141
- ],
- [
- -123.90336856,
- 44.41283241
- ],
- [
- -123.90394765,
- 44.41301175
- ],
- [
- -123.90452798,
- 44.4132305
- ],
- [
- -123.90508748,
- 44.41340748
- ],
- [
- -123.90568275,
- 44.41360401
- ],
- [
- -123.90619128,
- 44.41366257
- ],
- [
- -123.90681799,
- 44.41364594
- ],
- [
- -123.90740832,
- 44.41355112
- ],
- [
- -123.90794155,
- 44.41343054
- ],
- [
- -123.9084303,
- 44.41325435
- ],
- [
- -123.90894564,
- 44.41307826
- ],
- [
- -123.90948204,
- 44.41291141
- ],
- [
- -123.90995774,
- 44.41274009
- ],
- [
- -123.91036825,
- 44.41253823
- ],
- [
- -123.91080595,
- 44.41227071
- ],
- [
- -123.91134941,
- 44.41206608
- ],
- [
- -123.91180342,
- 44.41179606
- ],
- [
- -123.91209543,
- 44.41147776
- ],
- [
- -123.91238624,
- 44.41111112
- ],
- [
- -123.91263172,
- 44.41080515
- ],
- [
- -123.91286336,
- 44.41047062
- ],
- [
- -123.91307648,
- 44.41010501
- ],
- [
- -123.91325976,
- 44.40971712
- ],
- [
- -123.91339298,
- 44.4093358
- ],
- [
- -123.91354334,
- 44.40889929
- ],
- [
- -123.91359042,
- 44.40842761
- ],
- [
- -123.9136534,
- 44.40793958
- ],
- [
- -123.91371997,
- 44.40748378
- ],
- [
- -123.91383764,
- 44.40705641
- ],
- [
- -123.91391104,
- 44.40664034
- ],
- [
- -123.91409615,
- 44.40628875
- ],
- [
- -123.91423042,
- 44.40591397
- ],
- [
- -123.91436732,
- 44.40559092
- ],
- [
- -123.91472252,
- 44.40528978
- ],
- [
- -123.91508271,
- 44.40495322
- ],
- [
- -123.91541287,
- 44.40453829
- ],
- [
- -123.91587899,
- 44.40423021
- ],
- [
- -123.91632563,
- 44.40388354
- ],
- [
- -123.91680777,
- 44.40357231
- ],
- [
- -123.91735984,
- 44.40326839
- ],
- [
- -123.91772488,
- 44.40295815
- ],
- [
- -123.91819859,
- 44.4026917
- ],
- [
- -123.91869704,
- 44.40248751
- ],
- [
- -123.91955809,
- 44.40241698
- ],
- [
- -123.92028749,
- 44.40232218
- ],
- [
- -123.92093335,
- 44.4022829
- ],
- [
- -123.92157021,
- 44.40219044
- ],
- [
- -123.92214399,
- 44.40207362
- ],
- [
- -123.92273745,
- 44.40191332
- ],
- [
- -123.92329758,
- 44.40173306
- ],
- [
- -123.92374441,
- 44.40145561
- ],
- [
- -123.92426761,
- 44.4011692
- ],
- [
- -123.92461559,
- 44.40083517
- ],
- [
- -123.92494488,
- 44.40048791
- ],
- [
- -123.92525406,
- 44.40014004
- ],
- [
- -123.92551382,
- 44.39976282
- ],
- [
- -123.92590109,
- 44.3994442
- ],
- [
- -123.92633895,
- 44.399155
- ],
- [
- -123.92704252,
- 44.39905127
- ],
- [
- -123.92769566,
- 44.39898868
- ],
- [
- -123.92830885,
- 44.39900414
- ],
- [
- -123.92892625,
- 44.39895612
- ],
- [
- -123.92954142,
- 44.39893004
- ],
- [
- -123.93014359,
- 44.39889021
- ],
- [
- -123.93069157,
- 44.3987535
- ],
- [
- -123.93121382,
- 44.39858483
- ],
- [
- -123.93179926,
- 44.39837244
- ],
- [
- -123.9323001,
- 44.39811884
- ],
- [
- -123.93286139,
- 44.39791318
- ],
- [
- -123.93343306,
- 44.39771814
- ],
- [
- -123.93402862,
- 44.39752484
- ],
- [
- -123.93445539,
- 44.3974262
- ],
- [
- -123.93507567,
- 44.39720532
- ],
- [
- -123.93566616,
- 44.39703623
- ],
- [
- -123.93608247,
- 44.39695579
- ],
- [
- -123.93680653,
- 44.3968801
- ],
- [
- -123.93748702,
- 44.39688852
- ],
- [
- -123.93801284,
- 44.39704153
- ],
- [
- -123.93862307,
- 44.39713536
- ],
- [
- -123.93909178,
- 44.39738882
- ],
- [
- -123.93958546,
- 44.39763696
- ],
- [
- -123.94004078,
- 44.39791133
- ],
- [
- -123.93992079,
- 44.39849658
- ],
- [
- -123.93951288,
- 44.39911698
- ],
- [
- -123.93937417,
- 44.39938235
- ],
- [
- -123.93930383,
- 44.39977924
- ],
- [
- -123.93916448,
- 44.4000305
- ],
- [
- -123.93901945,
- 44.4003674
- ],
- [
- -123.93904872,
- 44.40078397
- ],
- [
- -123.93909322,
- 44.40129273
- ],
- [
- -123.93915007,
- 44.40175556
- ],
- [
- -123.93925609,
- 44.4022171
- ],
- [
- -123.93943907,
- 44.40268108
- ],
- [
- -123.93960631,
- 44.40322234
- ],
- [
- -123.93982983,
- 44.40361487
- ],
- [
- -123.94014536,
- 44.40397834
- ],
- [
- -123.94026341,
- 44.40429241
- ],
- [
- -123.94057373,
- 44.40447186
- ],
- [
- -123.94105541,
- 44.40474705
- ],
- [
- -123.94160399,
- 44.40494901
- ],
- [
- -123.94220706,
- 44.40502569
- ],
- [
- -123.94279816,
- 44.40506358
- ],
- [
- -123.94340299,
- 44.40507666
- ],
- [
- -123.94402474,
- 44.40510153
- ],
- [
- -123.94462844,
- 44.40520934
- ],
- [
- -123.94524185,
- 44.40526414
- ],
- [
- -123.94588166,
- 44.40528919
- ],
- [
- -123.94651777,
- 44.40533917
- ],
- [
- -123.94717463,
- 44.40539583
- ],
- [
- -123.94782596,
- 44.40545025
- ],
- [
- -123.94847524,
- 44.40549078
- ],
- [
- -123.94908205,
- 44.40554706
- ],
- [
- -123.94968558,
- 44.40556505
- ],
- [
- -123.95032322,
- 44.40564387
- ],
- [
- -123.95088722,
- 44.40579685
- ],
- [
- -123.951475,
- 44.40591513
- ],
- [
- -123.95203642,
- 44.40600215
- ],
- [
- -123.95262381,
- 44.40610039
- ],
- [
- -123.95320377,
- 44.40618497
- ],
- [
- -123.95380631,
- 44.40626162
- ],
- [
- -123.95437712,
- 44.40634471
- ],
- [
- -123.95493238,
- 44.40645369
- ],
- [
- -123.95548339,
- 44.40657689
- ],
- [
- -123.95596045,
- 44.40677881
- ],
- [
- -123.95634357,
- 44.40692054
- ],
- [
- -123.95678154,
- 44.40725095
- ],
- [
- -123.95728515,
- 44.40745667
- ],
- [
- -123.9578236,
- 44.4076733
- ],
- [
- -123.95841299,
- 44.40795093
- ],
- [
- -123.95895545,
- 44.40818203
- ],
- [
- -123.95949965,
- 44.40842223
- ],
- [
- -123.95978424,
- 44.40863051
- ],
- [
- -123.96033444,
- 44.40888121
- ],
- [
- -123.96087367,
- 44.4091309
- ],
- [
- -123.96145696,
- 44.40940761
- ],
- [
- -123.96197166,
- 44.4096763
- ],
- [
- -123.96254326,
- 44.40995239
- ],
- [
- -123.96291887,
- 44.41004019
- ],
- [
- -123.96345949,
- 44.41039994
- ],
- [
- -123.96382274,
- 44.4104883
- ],
- [
- -123.96448741,
- 44.41064768
- ],
- [
- -123.96507192,
- 44.41089011
- ],
- [
- -123.96567255,
- 44.41110579
- ],
- [
- -123.96628875,
- 44.41130712
- ],
- [
- -123.96687554,
- 44.4115252
- ],
- [
- -123.96748682,
- 44.41170485
- ],
- [
- -123.96812516,
- 44.4118425
- ],
- [
- -123.96879175,
- 44.41195063
- ],
- [
- -123.96940244,
- 44.41210901
- ],
- [
- -123.96998386,
- 44.41215632
- ],
- [
- -123.97070257,
- 44.41207678
- ],
- [
- -123.97121878,
- 44.41188922
- ],
- [
- -123.9719615,
- 44.41184233
- ],
- [
- -123.97264813,
- 44.41178434
- ],
- [
- -123.97333195,
- 44.41170379
- ],
- [
- -123.9740139,
- 44.41166369
- ],
- [
- -123.974735,
- 44.41159337
- ],
- [
- -123.97534859,
- 44.41154521
- ],
- [
- -123.97597454,
- 44.41151545
- ],
- [
- -123.97657051,
- 44.41142758
- ],
- [
- -123.977225,
- 44.41141165
- ],
- [
- -123.97789065,
- 44.41136242
- ],
- [
- -123.97855006,
- 44.411291
- ],
- [
- -123.97922159,
- 44.41131766
- ],
- [
- -123.97987871,
- 44.41131188
- ],
- [
- -123.98055407,
- 44.41134369
- ],
- [
- -123.98121029,
- 44.41132718
- ],
- [
- -123.98184957,
- 44.4114154
- ],
- [
- -123.98245005,
- 44.41138605
- ],
- [
- -123.98307313,
- 44.41141705
- ],
- [
- -123.98369401,
- 44.41139145
- ],
- [
- -123.98440539,
- 44.41135395
- ],
- [
- -123.98511358,
- 44.4113503
- ],
- [
- -123.98671941,
- 44.41152246
- ],
- [
- -123.98748945,
- 44.41152462
- ],
- [
- -123.9882401,
- 44.41152883
- ],
- [
- -123.98889219,
- 44.41159485
- ],
- [
- -123.98946553,
- 44.41174715
- ],
- [
- -123.99005421,
- 44.41187194
- ],
- [
- -123.99053595,
- 44.41199176
- ],
- [
- -123.99112282,
- 44.41208699
- ],
- [
- -123.9917098,
- 44.41221487
- ],
- [
- -123.9923444,
- 44.41227068
- ],
- [
- -123.99298967,
- 44.41233859
- ],
- [
- -123.99366116,
- 44.4123239
- ],
- [
- -123.99425938,
- 44.41231871
- ],
- [
- -123.99488136,
- 44.41231232
- ],
- [
- -123.99551957,
- 44.41230265
- ],
- [
- -123.99616306,
- 44.41226539
- ],
- [
- -123.99679546,
- 44.41222111
- ],
- [
- -123.99739403,
- 44.41220866
- ],
- [
- -123.99802346,
- 44.41219235
- ],
- [
- -123.99863466,
- 44.41223578
- ],
- [
- -123.99926345,
- 44.41228427
- ],
- [
- -123.99984754,
- 44.41237385
- ],
- [
- -124.00048214,
- 44.41239248
- ],
- [
- -124.00114048,
- 44.41245646
- ],
- [
- -124.00178649,
- 44.41250322
- ],
- [
- -124.00242568,
- 44.41254112
- ],
- [
- -124.00302101,
- 44.41260424
- ],
- [
- -124.00366056,
- 44.41272726
- ],
- [
- -124.00431346,
- 44.41279803
- ],
- [
- -124.00495665,
- 44.4128499
- ],
- [
- -124.00579352,
- 44.41288924
- ],
- [
- -124.00624914,
- 44.41287201
- ],
- [
- -124.0068697,
- 44.41285621
- ],
- [
- -124.00755761,
- 44.41290728
- ],
- [
- -124.00823004,
- 44.41289992
- ],
- [
- -124.00860708,
- 44.41299905
- ],
- [
- -124.00932836,
- 44.41308644
- ],
- [
- -124.00997898,
- 44.41306819
- ],
- [
- -124.01056621,
- 44.41316267
- ],
- [
- -124.0111938,
- 44.41317779
- ],
- [
- -124.01185685,
- 44.41324235
- ],
- [
- -124.01249612,
- 44.41327547
- ],
- [
- -124.01314373,
- 44.41326774
- ],
- [
- -124.01379886,
- 44.41329262
- ],
- [
- -124.01443035,
- 44.41329667
- ],
- [
- -124.01504742,
- 44.41325602
- ],
- [
- -124.01567696,
- 44.41326543
- ],
- [
- -124.0163176,
- 44.41323321
- ],
- [
- -124.01697681,
- 44.41320211
- ],
- [
- -124.0176808,
- 44.41319297
- ],
- [
- -124.01830344,
- 44.41318806
- ],
- [
- -124.01892875,
- 44.41316995
- ],
- [
- -124.01957479,
- 44.41310311
- ],
- [
- -124.02028666,
- 44.41296881
- ],
- [
- -124.02096835,
- 44.41287308
- ],
- [
- -124.02159251,
- 44.41281857
- ],
- [
- -124.02222162,
- 44.41283223
- ],
- [
- -124.02293347,
- 44.41285626
- ],
- [
- -124.02358937,
- 44.4128672
- ],
- [
- -124.02419598,
- 44.41289626
- ],
- [
- -124.02482112,
- 44.41293497
- ],
- [
- -124.02548339,
- 44.41297929
- ],
- [
- -124.02611148,
- 44.41299481
- ],
- [
- -124.0266979,
- 44.41313225
- ],
- [
- -124.02736855,
- 44.41333595
- ],
- [
- -124.02783454,
- 44.41368598
- ],
- [
- -124.02836911,
- 44.41389146
- ],
- [
- -124.02897219,
- 44.41403678
- ],
- [
- -124.029629,
- 44.41416364
- ],
- [
- -124.03033955,
- 44.41430962
- ],
- [
- -124.03100129,
- 44.41447188
- ],
- [
- -124.03157854,
- 44.4145831
- ],
- [
- -124.03213505,
- 44.41468656
- ],
- [
- -124.03269749,
- 44.41490901
- ],
- [
- -124.033154,
- 44.41508231
- ],
- [
- -124.03359996,
- 44.41520344
- ],
- [
- -124.03408523,
- 44.41530917
- ],
- [
- -124.0346166,
- 44.41543075
- ],
- [
- -124.03512713,
- 44.41554203
- ],
- [
- -124.03564424,
- 44.41566261
- ],
- [
- -124.03605195,
- 44.41585219
- ],
- [
- -124.03654838,
- 44.41591092
- ],
- [
- -124.03701368,
- 44.41610872
- ],
- [
- -124.03751824,
- 44.41637551
- ],
- [
- -124.03799254,
- 44.41658715
- ],
- [
- -124.0384103,
- 44.41683276
- ],
- [
- -124.03883734,
- 44.41708857
- ],
- [
- -124.03925739,
- 44.41737799
- ],
- [
- -124.03971456,
- 44.41764979
- ],
- [
- -124.04013647,
- 44.41789315
- ],
- [
- -124.04054395,
- 44.41813668
- ],
- [
- -124.04097723,
- 44.41838177
- ],
- [
- -124.04146112,
- 44.4186056
- ],
- [
- -124.04185121,
- 44.41889254
- ],
- [
- -124.04228709,
- 44.41915181
- ],
- [
- -124.04260596,
- 44.41950951
- ],
- [
- -124.04295319,
- 44.41978532
- ],
- [
- -124.0433162,
- 44.42011499
- ],
- [
- -124.0436819,
- 44.42043111
- ],
- [
- -124.04408065,
- 44.42071266
- ],
- [
- -124.04439889,
- 44.42100308
- ],
- [
- -124.04478977,
- 44.4212684
- ],
- [
- -124.04517681,
- 44.42157563
- ],
- [
- -124.04553017,
- 44.42187406
- ],
- [
- -124.04588278,
- 44.42214059
- ],
- [
- -124.04625229,
- 44.42241312
- ],
- [
- -124.04662308,
- 44.42269237
- ],
- [
- -124.04695262,
- 44.42303343
- ],
- [
- -124.04714038,
- 44.42343828
- ],
- [
- -124.04741315,
- 44.42376849
- ],
- [
- -124.04768053,
- 44.42407676
- ],
- [
- -124.04780435,
- 44.42435651
- ],
- [
- -124.04732634,
- 44.42489447
- ],
- [
- -124.04702656,
- 44.42523888
- ],
- [
- -124.04687808,
- 44.4257034
- ],
- [
- -124.04689221,
- 44.42611206
- ],
- [
- -124.04694745,
- 44.42650644
- ],
- [
- -124.04699714,
- 44.42683515
- ],
- [
- -124.04711255,
- 44.42722664
- ],
- [
- -124.04718166,
- 44.42755012
- ],
- [
- -124.04735098,
- 44.42792237
- ],
- [
- -124.04744022,
- 44.42823233
- ],
- [
- -124.04763186,
- 44.42858768
- ],
- [
- -124.04782294,
- 44.42893506
- ],
- [
- -124.04795772,
- 44.42927056
- ],
- [
- -124.04812008,
- 44.42954357
- ],
- [
- -124.0482655,
- 44.42985726
- ],
- [
- -124.04841015,
- 44.43016916
- ],
- [
- -124.04959029,
- 44.43019059
- ],
- [
- -124.04958402,
- 44.43058002
- ],
- [
- -124.05003768,
- 44.43060595
- ],
- [
- -124.05056385,
- 44.43056855
- ],
- [
- -124.0509838,
- 44.43054737
- ],
- [
- -124.05142502,
- 44.4304973
- ],
- [
- -124.05188644,
- 44.43042265
- ],
- [
- -124.05234342,
- 44.4303942
- ],
- [
- -124.05285804,
- 44.43048907
- ],
- [
- -124.05322937,
- 44.43062561
- ],
- [
- -124.05355872,
- 44.43079039
- ],
- [
- -124.05393383,
- 44.43093127
- ],
- [
- -124.05434019,
- 44.4310527
- ],
- [
- -124.05478282,
- 44.43112744
- ],
- [
- -124.05524487,
- 44.43116655
- ],
- [
- -124.05570963,
- 44.43125383
- ],
- [
- -124.05620541,
- 44.43119684
- ],
- [
- -124.0566196,
- 44.43110111
- ],
- [
- -124.05700451,
- 44.43095856
- ],
- [
- -124.05735068,
- 44.4308297
- ],
- [
- -124.0576967,
- 44.4306475
- ],
- [
- -124.05806766,
- 44.43046741
- ],
- [
- -124.05842788,
- 44.43029024
- ],
- [
- -124.0587761,
- 44.43014354
- ],
- [
- -124.05919087,
- 44.42992754
- ],
- [
- -124.05955409,
- 44.42970128
- ],
- [
- -124.05993269,
- 44.42959332
- ],
- [
- -124.0600291,
- 44.42991412
- ],
- [
- -124.06039563,
- 44.42997867
- ],
- [
- -124.06040845,
- 44.42966802
- ],
- [
- -124.06039705,
- 44.42937148
- ],
- [
- -124.06062818,
- 44.42914606
- ],
- [
- -124.06099005,
- 44.42900989
- ],
- [
- -124.06106585,
- 44.42873816
- ],
- [
- -124.06133563,
- 44.42851991
- ],
- [
- -124.06164997,
- 44.42832205
- ],
- [
- -124.06198476,
- 44.42810412
- ],
- [
- -124.06232868,
- 44.42788506
- ],
- [
- -124.0626385,
- 44.42768829
- ],
- [
- -124.06294375,
- 44.42749466
- ],
- [
- -124.06324718,
- 44.42728655
- ],
- [
- -124.06356995,
- 44.42711808
- ],
- [
- -124.06394055,
- 44.42699164
- ],
- [
- -124.06434683,
- 44.42693523
- ],
- [
- -124.06477167,
- 44.42693652
- ],
- [
- -124.06518523,
- 44.42695944
- ],
- [
- -124.06558096,
- 44.42698015
- ],
- [
- -124.0659813,
- 44.42700063
- ],
- [
- -124.06638206,
- 44.42699874
- ],
- [
- -124.066768,
- 44.42700564
- ],
- [
- -124.06714626,
- 44.42700383
- ],
- [
- -124.06733695,
- 44.42673471
- ],
- [
- -124.06735524,
- 44.42643001
- ],
- [
- -124.06741351,
- 44.42614907
- ],
- [
- -124.06751697,
- 44.42582062
- ],
- [
- -124.06767438,
- 44.42549643
- ],
- [
- -124.06783809,
- 44.42525326
- ],
- [
- -124.06804478,
- 44.42500646
- ],
- [
- -124.06828641,
- 44.42478841
- ],
- [
- -124.06867087,
- 44.42453262
- ],
- [
- -124.06911546,
- 44.42428148
- ],
- [
- -124.06962386,
- 44.42408709
- ],
- [
- -124.0699778,
- 44.42397249
- ],
- [
- -124.07046375,
- 44.42374579
- ],
- [
- -124.07076916,
- 44.4235611
- ],
- [
- -124.07104161,
- 44.42335428
- ],
- [
- -124.07130694,
- 44.42312002
- ],
- [
- -124.07160346,
- 44.42287778
- ],
- [
- -124.07193864,
- 44.42264133
- ],
- [
- -124.07229798,
- 44.42242491
- ],
- [
- -124.07268246,
- 44.42218728
- ],
- [
- -124.0730827,
- 44.42194548
- ],
- [
- -124.07350536,
- 44.42171291
- ],
- [
- -124.07391474,
- 44.42147584
- ],
- [
- -124.07431838,
- 44.42125
- ],
- [
- -124.07469786,
- 44.42101658
- ],
- [
- -124.07507283,
- 44.4207555
- ],
- [
- -124.07544303,
- 44.42051063
- ],
- [
- -124.07584042,
- 44.42027326
- ],
- [
- -124.07619407,
- 44.42003165
- ],
- [
- -124.07656189,
- 44.41980864
- ],
- [
- -124.07690587,
- 44.41959394
- ],
- [
- -124.07721702,
- 44.41933004
- ],
- [
- -124.07750715,
- 44.41906131
- ],
- [
- -124.07779686,
- 44.41879036
- ],
- [
- -124.07809044,
- 44.41852666
- ],
- [
- -124.07838983,
- 44.41828726
- ],
- [
- -124.07869746,
- 44.41803038
- ],
- [
- -124.07899261,
- 44.41776279
- ],
- [
- -124.07928888,
- 44.41749579
- ],
- [
- -124.07959817,
- 44.4172429
- ],
- [
- -124.07991585,
- 44.41697402
- ],
- [
- -124.08021911,
- 44.41670149
- ],
- [
- -124.08051445,
- 44.41644058
- ],
- [
- -124.08081398,
- 44.41617324
- ],
- [
- -124.08111657,
- 44.41591081
- ],
- [
- -124.08140945,
- 44.41563878
- ],
- [
- -124.08169799,
- 44.41537443
- ],
- [
- -124.08196931,
- 44.41511894
- ],
- [
- -124.08223731,
- 44.41484764
- ],
- [
- -124.08248837,
- 44.41455977
- ],
- [
- -124.08273127,
- 44.41426732
- ],
- [
- -124.08295988,
- 44.41394897
- ],
- [
- -124.08318646,
- 44.41361575
- ],
- [
- -124.08339613,
- 44.41326079
- ],
- [
- -124.08360565,
- 44.41286803
- ],
- [
- -124.08378138,
- 44.41243915
- ],
- [
- -124.08392812,
- 44.41199675
- ],
- [
- -124.08407669,
- 44.41155153
- ],
- [
- -124.08416379,
- 44.41110435
- ],
- [
- -124.08424807,
- 44.41065802
- ],
- [
- -124.08433027,
- 44.41021677
- ],
- [
- -124.08440363,
- 44.40977697
- ],
- [
- -124.0844971,
- 44.40934979
- ],
- [
- -124.08457662,
- 44.40890334
- ],
- [
- -124.08463357,
- 44.40843865
- ],
- [
- -124.08470493,
- 44.40798972
- ],
- [
- -124.08478255,
- 44.40755327
- ],
- [
- -124.08485464,
- 44.40710002
- ],
- [
- -124.084937,
- 44.40665373
- ],
- [
- -124.08500794,
- 44.4062263
- ],
- [
- -124.08509662,
- 44.40579608
- ],
- [
- -124.0851855,
- 44.40537637
- ],
- [
- -124.08526469,
- 44.40493355
- ],
- [
- -124.0853604,
- 44.40448814
- ],
- [
- -124.0854256,
- 44.40405236
- ],
- [
- -124.08549662,
- 44.40364048
- ],
- [
- -124.08556736,
- 44.40322146
- ],
- [
- -124.08563999,
- 44.40282071
- ],
- [
- -124.08569912,
- 44.40241828
- ],
- [
- -124.08575541,
- 44.40200769
- ],
- [
- -124.08579996,
- 44.40158931
- ],
- [
- -124.08583788,
- 44.40116359
- ],
- [
- -124.08586248,
- 44.40074857
- ],
- [
- -124.08588751,
- 44.40032682
- ],
- [
- -124.08591715,
- 44.39990584
- ],
- [
- -124.08594765,
- 44.3994889
- ],
- [
- -124.08598338,
- 44.39907611
- ],
- [
- -124.08601174,
- 44.39866195
- ],
- [
- -124.08602915,
- 44.3982504
- ],
- [
- -124.08605424,
- 44.39785357
- ],
- [
- -124.08608075,
- 44.39746382
- ],
- [
- -124.08610102,
- 44.39706608
- ],
- [
- -124.08612618,
- 44.39666548
- ],
- [
- -124.08614935,
- 44.3962578
- ],
- [
- -124.08617283,
- 44.3958356
- ],
- [
- -124.08619864,
- 44.39539612
- ],
- [
- -124.08622245,
- 44.39494482
- ],
- [
- -124.08625353,
- 44.39448402
- ],
- [
- -124.08627856,
- 44.39402613
- ],
- [
- -124.08632344,
- 44.39356685
- ],
- [
- -124.08635422,
- 44.39310132
- ],
- [
- -124.08641151,
- 44.39265309
- ],
- [
- -124.08655568,
- 44.39222757
- ],
- [
- -124.0867262,
- 44.39180388
- ],
- [
- -124.08690547,
- 44.39139068
- ],
- [
- -124.08709086,
- 44.39098651
- ],
- [
- -124.0872532,
- 44.39059634
- ],
- [
- -124.0874169,
- 44.39021887
- ],
- [
- -124.08759701,
- 44.38985034
- ],
- [
- -124.08773617,
- 44.38947703
- ],
- [
- -124.08786768,
- 44.38909557
- ],
- [
- -124.08799708,
- 44.38870543
- ],
- [
- -124.08812654,
- 44.38832237
- ],
- [
- -124.08824476,
- 44.38795648
- ],
- [
- -124.08836949,
- 44.38759741
- ],
- [
- -124.08848898,
- 44.38723755
- ],
- [
- -124.0886004,
- 44.38688288
- ],
- [
- -124.08868703,
- 44.38652479
- ],
- [
- -124.0887235,
- 44.38615643
- ],
- [
- -124.0887073,
- 44.38578298
- ],
- [
- -124.08866765,
- 44.3854133
- ],
- [
- -124.08862364,
- 44.38502272
- ],
- [
- -124.08857869,
- 44.38464463
- ],
- [
- -124.08852475,
- 44.38428098
- ],
- [
- -124.08848203,
- 44.383933
- ],
- [
- -124.08842158,
- 44.383597
- ],
- [
- -124.08835965,
- 44.3832785
- ],
- [
- -124.08830479,
- 44.38294095
- ],
- [
- -124.08826863,
- 44.38260108
- ],
- [
- -124.08820845,
- 44.3822522
- ],
- [
- -124.08816678,
- 44.38191104
- ],
- [
- -124.08809489,
- 44.38155442
- ],
- [
- -124.08801834,
- 44.38118953
- ],
- [
- -124.08799307,
- 44.38083131
- ],
- [
- -124.08798255,
- 44.38046027
- ],
- [
- -124.08795659,
- 44.38011778
- ],
- [
- -124.08794419,
- 44.37976553
- ],
- [
- -124.08797682,
- 44.37942379
- ],
- [
- -124.08800555,
- 44.37907677
- ],
- [
- -124.08807389,
- 44.37872006
- ],
- [
- -124.08815757,
- 44.37836394
- ],
- [
- -124.08825646,
- 44.37800067
- ],
- [
- -124.08831758,
- 44.37758827
- ],
- [
- -124.0884206,
- 44.37717262
- ],
- [
- -124.08853293,
- 44.37672522
- ],
- [
- -124.08862997,
- 44.37627187
- ],
- [
- -124.0887306,
- 44.37582995
- ],
- [
- -124.08882129,
- 44.37538556
- ],
- [
- -124.08891044,
- 44.37493614
- ],
- [
- -124.08902176,
- 44.37449193
- ],
- [
- -124.08912412,
- 44.37403556
- ],
- [
- -124.08922632,
- 44.37359816
- ],
- [
- -124.08932993,
- 44.37315501
- ],
- [
- -124.08943379,
- 44.37270285
- ],
- [
- -124.08953036,
- 44.37224868
- ],
- [
- -124.08962632,
- 44.37178984
- ],
- [
- -124.0897062,
- 44.37134743
- ],
- [
- -124.08979663,
- 44.37090437
- ],
- [
- -124.08989389,
- 44.37045203
- ],
- [
- -124.08998729,
- 44.36999483
- ],
- [
- -124.09008152,
- 44.36954793
- ],
- [
- -124.09017757,
- 44.36911563
- ],
- [
- -124.09026309,
- 44.36870016
- ],
- [
- -124.09033758,
- 44.36829176
- ],
- [
- -124.09042925,
- 44.36791484
- ],
- [
- -124.09051605,
- 44.36755222
- ],
- [
- -124.09059652,
- 44.36722549
- ],
- [
- -124.09067102,
- 44.36688946
- ],
- [
- -124.09073613,
- 44.36658666
- ],
- [
- -124.0908498,
- 44.3663165
- ],
- [
- -124.09123576,
- 44.36621449
- ],
- [
- -124.09152652,
- 44.3664172
- ],
- [
- -124.09150175,
- 44.36675248
- ],
- [
- -124.09151938,
- 44.36705164
- ],
- [
- -124.0918594,
- 44.36718891
- ],
- [
- -124.0922132,
- 44.36698833
- ],
- [
- -124.09238998,
- 44.3666993
- ],
- [
- -124.0924104,
- 44.36642336
- ],
- [
- -124.09232828,
- 44.36610462
- ],
- [
- -124.09243297,
- 44.36578117
- ],
- [
- -124.0925485,
- 44.36547432
- ]
- ]
- },
- "properties": {
- "title" : "tillicum",
- "path_options" : { "color" : "red" },
- "time": [
- 1369786338000,
- 1369786340000,
- 1369786342000,
- 1369786344000,
- 1369786346000,
- 1369786348000,
- 1369786349000,
- 1369786351000,
- 1369786353000,
- 1369786355000,
- 1369786357000,
- 1369786359000,
- 1369786361000,
- 1369786363000,
- 1369786365000,
- 1369786367000,
- 1369786369000,
- 1369786371000,
- 1369786373000,
- 1369786375000,
- 1369786399000,
- 1369786401000,
- 1369786403000,
- 1369786404000,
- 1369786406000,
- 1369786408000,
- 1369786410000,
- 1369786412000,
- 1369786414000,
- 1369786416000,
- 1369786418000,
- 1369786420000,
- 1369786422000,
- 1369786424000,
- 1369786426000,
- 1369786428000,
- 1369786430000,
- 1369786432000,
- 1369786434000,
- 1369786436000,
- 1369786438000,
- 1369786440000,
- 1369786442000,
- 1369786444000,
- 1369786446000,
- 1369786448000,
- 1369786449000,
- 1369786451000,
- 1369786453000,
- 1369786455000,
- 1369786457000,
- 1369786459000,
- 1369786461000,
- 1369786463000,
- 1369786465000,
- 1369786467000,
- 1369786469000,
- 1369786471000,
- 1369786472000,
- 1369786474000,
- 1369786476000,
- 1369786478000,
- 1369786480000,
- 1369786482000,
- 1369786484000,
- 1369786486000,
- 1369786488000,
- 1369786490000,
- 1369786492000,
- 1369786494000,
- 1369786495000,
- 1369786496000,
- 1369786498000,
- 1369786500000,
- 1369786502000,
- 1369786504000,
- 1369786506000,
- 1369786508000,
- 1369786510000,
- 1369786512000,
- 1369786514000,
- 1369786515000,
- 1369786516000,
- 1369786517000,
- 1369786519000,
- 1369786521000,
- 1369786523000,
- 1369786525000,
- 1369786527000,
- 1369786529000,
- 1369786531000,
- 1369786533000,
- 1369786534000,
- 1369786536000,
- 1369786537000,
- 1369786539000,
- 1369786541000,
- 1369786542000,
- 1369786544000,
- 1369786546000,
- 1369786548000,
- 1369786550000,
- 1369786552000,
- 1369786554000,
- 1369786556000,
- 1369786558000,
- 1369786560000,
- 1369786562000,
- 1369786563000,
- 1369786564000,
- 1369786566000,
- 1369786568000,
- 1369786570000,
- 1369786572000,
- 1369786574000,
- 1369786576000,
- 1369786578000,
- 1369786580000,
- 1369786582000,
- 1369786584000,
- 1369786586000,
- 1369786588000,
- 1369786590000,
- 1369786592000,
- 1369786594000,
- 1369786596000,
- 1369786598000,
- 1369786599000,
- 1369786601000,
- 1369786603000,
- 1369786605000,
- 1369786607000,
- 1369786609000,
- 1369786611000,
- 1369786613000,
- 1369786615000,
- 1369786617000,
- 1369786619000,
- 1369786621000,
- 1369786623000,
- 1369786625000,
- 1369786627000,
- 1369786629000,
- 1369786631000,
- 1369786633000,
- 1369786635000,
- 1369786637000,
- 1369786639000,
- 1369786640000,
- 1369786642000,
- 1369786644000,
- 1369786646000,
- 1369786648000,
- 1369786650000,
- 1369786652000,
- 1369786654000,
- 1369786655000,
- 1369786656000,
- 1369786658000,
- 1369786660000,
- 1369786662000,
- 1369786664000,
- 1369786666000,
- 1369786668000,
- 1369786670000,
- 1369786672000,
- 1369786674000,
- 1369786676000,
- 1369786678000,
- 1369786680000,
- 1369786682000,
- 1369786684000,
- 1369786686000,
- 1369786687000,
- 1369786688000,
- 1369786689000,
- 1369786691000,
- 1369786692000,
- 1369786693000,
- 1369786694000,
- 1369786695000,
- 1369786697000,
- 1369786699000,
- 1369786701000,
- 1369786703000,
- 1369786705000,
- 1369786715000,
- 1369786716000,
- 1369786717000,
- 1369786718000,
- 1369786719000,
- 1369786720000,
- 1369786721000,
- 1369786722000,
- 1369786723000,
- 1369786724000,
- 1369786725000,
- 1369786726000,
- 1369786728000,
- 1369786730000,
- 1369786732000,
- 1369786734000,
- 1369786736000,
- 1369786738000,
- 1369786740000,
- 1369786742000,
- 1369786744000,
- 1369786746000,
- 1369786748000,
- 1369786750000,
- 1369786752000,
- 1369786754000,
- 1369786756000,
- 1369786758000,
- 1369786760000,
- 1369786762000,
- 1369786764000,
- 1369786766000,
- 1369786768000,
- 1369786770000,
- 1369786772000,
- 1369786774000,
- 1369786776000,
- 1369786778000,
- 1369786780000,
- 1369786782000,
- 1369786784000,
- 1369786786000,
- 1369786788000,
- 1369786790000,
- 1369786792000,
- 1369786793000,
- 1369786795000,
- 1369786797000,
- 1369786799000,
- 1369786801000,
- 1369786803000,
- 1369786805000,
- 1369786807000,
- 1369786809000,
- 1369786810000,
- 1369786812000,
- 1369786814000,
- 1369786816000,
- 1369786818000,
- 1369786820000,
- 1369786822000,
- 1369786824000,
- 1369786826000,
- 1369786828000,
- 1369786830000,
- 1369786832000,
- 1369786834000,
- 1369786836000,
- 1369786838000,
- 1369786840000,
- 1369786842000,
- 1369786844000,
- 1369786846000,
- 1369786848000,
- 1369786850000,
- 1369786852000,
- 1369786854000,
- 1369786856000,
- 1369786857000,
- 1369786859000,
- 1369786861000,
- 1369786862000,
- 1369786864000,
- 1369786866000,
- 1369786867000,
- 1369786869000,
- 1369786871000,
- 1369786873000,
- 1369786875000,
- 1369786877000,
- 1369786878000,
- 1369786880000,
- 1369786882000,
- 1369786883000,
- 1369786884000,
- 1369786886000,
- 1369786888000,
- 1369786890000,
- 1369786892000,
- 1369786894000,
- 1369786896000,
- 1369786898000,
- 1369786900000,
- 1369786902000,
- 1369786904000,
- 1369786905000,
- 1369786906000,
- 1369786908000,
- 1369786910000,
- 1369786912000,
- 1369786914000,
- 1369786916000,
- 1369786918000,
- 1369786920000,
- 1369786922000,
- 1369786924000,
- 1369786926000,
- 1369786927000,
- 1369786928000,
- 1369786929000,
- 1369786960000,
- 1369786961000,
- 1369786962000,
- 1369786963000,
- 1369786965000,
- 1369786967000,
- 1369786969000,
- 1369786971000,
- 1369786972000,
- 1369786973000,
- 1369786974000,
- 1369786976000,
- 1369786978000,
- 1369786980000,
- 1369786982000,
- 1369786984000,
- 1369786986000,
- 1369786988000,
- 1369786990000,
- 1369786992000,
- 1369786993000,
- 1369786994000,
- 1369786996000,
- 1369786998000,
- 1369786999000,
- 1369787000000,
- 1369787001000,
- 1369787003000,
- 1369787005000,
- 1369787007000,
- 1369787009000,
- 1369787011000,
- 1369787013000,
- 1369787015000,
- 1369787016000,
- 1369787018000,
- 1369787020000,
- 1369787022000,
- 1369787023000,
- 1369787025000,
- 1369787027000,
- 1369787029000,
- 1369787031000,
- 1369787033000,
- 1369787035000,
- 1369787037000,
- 1369787039000,
- 1369787041000,
- 1369787043000,
- 1369787045000,
- 1369787047000,
- 1369787048000,
- 1369787050000,
- 1369787052000,
- 1369787054000,
- 1369787056000,
- 1369787058000,
- 1369787060000,
- 1369787062000,
- 1369787064000,
- 1369787066000,
- 1369787068000,
- 1369787070000,
- 1369787072000,
- 1369787074000,
- 1369787076000,
- 1369787077000,
- 1369787079000,
- 1369787081000,
- 1369787083000,
- 1369787085000,
- 1369787087000,
- 1369787089000,
- 1369787091000,
- 1369787093000,
- 1369787095000,
- 1369787097000,
- 1369787099000,
- 1369787101000,
- 1369787103000,
- 1369787105000,
- 1369787107000,
- 1369787109000,
- 1369787111000,
- 1369787113000,
- 1369787115000,
- 1369787117000,
- 1369787119000,
- 1369787121000,
- 1369787123000,
- 1369787125000,
- 1369787127000,
- 1369787129000,
- 1369787131000,
- 1369787133000,
- 1369787135000,
- 1369787137000,
- 1369787138000,
- 1369787140000,
- 1369787142000,
- 1369787144000,
- 1369787146000,
- 1369787148000,
- 1369787150000,
- 1369787152000,
- 1369787154000,
- 1369787156000,
- 1369787158000,
- 1369787160000,
- 1369787162000,
- 1369787164000,
- 1369787166000,
- 1369787168000,
- 1369787169000,
- 1369787170000,
- 1369787172000,
- 1369787174000,
- 1369787176000,
- 1369787178000,
- 1369787180000,
- 1369787181000,
- 1369787182000,
- 1369787183000,
- 1369787185000,
- 1369787187000,
- 1369787189000,
- 1369787191000,
- 1369787193000,
- 1369787194000,
- 1369787195000,
- 1369787197000,
- 1369787199000,
- 1369787201000,
- 1369787203000,
- 1369787205000,
- 1369787207000,
- 1369787209000,
- 1369787210000,
- 1369787212000,
- 1369787214000,
- 1369787216000,
- 1369787218000,
- 1369787220000,
- 1369787222000,
- 1369787224000,
- 1369787226000,
- 1369787228000,
- 1369787230000,
- 1369787232000,
- 1369787236000,
- 1369787238000,
- 1369787240000,
- 1369787243000,
- 1369787244000,
- 1369787245000,
- 1369787247000,
- 1369787248000,
- 1369787249000,
- 1369787251000,
- 1369787252000,
- 1369787254000,
- 1369787255000,
- 1369787257000,
- 1369787258000,
- 1369787260000,
- 1369787262000,
- 1369787264000,
- 1369787265000,
- 1369787267000,
- 1369787269000,
- 1369787271000,
- 1369787273000,
- 1369787275000,
- 1369787277000,
- 1369787279000,
- 1369787281000,
- 1369787283000,
- 1369787285000,
- 1369787287000,
- 1369787289000,
- 1369787291000,
- 1369787293000,
- 1369787295000,
- 1369787297000,
- 1369787299000,
- 1369787301000,
- 1369787303000,
- 1369787305000,
- 1369787307000,
- 1369787309000,
- 1369787311000,
- 1369787313000,
- 1369787315000,
- 1369787317000,
- 1369787319000,
- 1369787321000,
- 1369787323000,
- 1369787325000,
- 1369787327000,
- 1369787329000,
- 1369787331000,
- 1369787333000,
- 1369787335000,
- 1369787337000,
- 1369787339000,
- 1369787341000,
- 1369787343000,
- 1369787345000,
- 1369787347000,
- 1369787349000,
- 1369787351000,
- 1369787353000,
- 1369787355000,
- 1369787357000,
- 1369787359000,
- 1369787361000,
- 1369787363000,
- 1369787365000,
- 1369787367000,
- 1369787369000,
- 1369787371000,
- 1369787373000,
- 1369787375000,
- 1369787377000,
- 1369787379000,
- 1369787381000,
- 1369787383000,
- 1369787385000,
- 1369787387000,
- 1369787389000,
- 1369787391000,
- 1369787393000,
- 1369787395000,
- 1369787397000,
- 1369787399000,
- 1369787401000,
- 1369787403000,
- 1369787405000,
- 1369787407000,
- 1369787409000,
- 1369787411000,
- 1369787412000,
- 1369787414000,
- 1369787416000,
- 1369787417000,
- 1369787419000,
- 1369787421000,
- 1369787423000,
- 1369787425000,
- 1369787427000,
- 1369787429000,
- 1369787431000,
- 1369787435000,
- 1369787436000,
- 1369787437000,
- 1369787439000,
- 1369787440000,
- 1369787441000,
- 1369787443000,
- 1369787445000,
- 1369787447000,
- 1369787449000,
- 1369787451000,
- 1369787453000,
- 1369787454000,
- 1369787456000,
- 1369787457000,
- 1369787458000,
- 1369787460000,
- 1369787462000,
- 1369787464000,
- 1369787466000,
- 1369787468000,
- 1369787470000,
- 1369787472000,
- 1369787474000,
- 1369787476000,
- 1369787478000,
- 1369787480000,
- 1369787482000,
- 1369787484000,
- 1369787486000,
- 1369787488000,
- 1369787490000,
- 1369787492000,
- 1369787494000,
- 1369787496000,
- 1369787498000,
- 1369787500000,
- 1369787502000,
- 1369787504000,
- 1369787506000,
- 1369787508000,
- 1369787510000,
- 1369787512000,
- 1369787514000,
- 1369787516000,
- 1369787518000,
- 1369787520000,
- 1369787522000,
- 1369787524000,
- 1369787525000,
- 1369787527000,
- 1369787529000,
- 1369787531000,
- 1369787533000,
- 1369787535000,
- 1369787536000,
- 1369787538000,
- 1369787539000,
- 1369787541000,
- 1369787543000,
- 1369787545000,
- 1369787547000,
- 1369787549000,
- 1369787551000,
- 1369787553000,
- 1369787555000,
- 1369787557000,
- 1369787559000,
- 1369787561000,
- 1369787562000,
- 1369787564000,
- 1369787566000,
- 1369787568000,
- 1369787570000,
- 1369787572000,
- 1369787574000,
- 1369787576000,
- 1369787578000,
- 1369787580000,
- 1369787582000,
- 1369787584000,
- 1369787586000,
- 1369787588000,
- 1369787590000,
- 1369787592000,
- 1369787594000,
- 1369787596000,
- 1369787598000,
- 1369787600000,
- 1369787602000,
- 1369787604000,
- 1369787610000,
- 1369787612000,
- 1369787614000,
- 1369787616000,
- 1369787618000,
- 1369787620000,
- 1369787622000,
- 1369787624000,
- 1369787626000,
- 1369787628000,
- 1369787630000,
- 1369787632000,
- 1369787634000,
- 1369787636000,
- 1369787638000,
- 1369787640000,
- 1369787642000,
- 1369787644000,
- 1369787646000,
- 1369787648000,
- 1369787650000,
- 1369787652000,
- 1369787654000,
- 1369787656000,
- 1369787658000,
- 1369787660000,
- 1369787662000,
- 1369787664000,
- 1369787666000,
- 1369787668000,
- 1369787670000,
- 1369787671000,
- 1369787673000,
- 1369787675000,
- 1369787677000,
- 1369787678000,
- 1369787680000,
- 1369787682000,
- 1369787684000,
- 1369787686000,
- 1369787688000,
- 1369787690000,
- 1369787692000,
- 1369787694000,
- 1369787696000,
- 1369787698000,
- 1369787700000,
- 1369787702000,
- 1369787704000,
- 1369787706000,
- 1369787708000,
- 1369787710000,
- 1369787712000,
- 1369787714000,
- 1369787716000,
- 1369787718000,
- 1369787720000,
- 1369787722000,
- 1369787724000,
- 1369787726000,
- 1369787728000,
- 1369787730000,
- 1369787732000,
- 1369787734000,
- 1369787736000,
- 1369787738000,
- 1369787740000,
- 1369787742000,
- 1369787744000,
- 1369787746000,
- 1369787748000,
- 1369787750000,
- 1369787752000,
- 1369787754000,
- 1369787756000,
- 1369787758000,
- 1369787760000,
- 1369787762000,
- 1369787764000,
- 1369787766000,
- 1369787768000,
- 1369787770000,
- 1369787772000,
- 1369787774000,
- 1369787776000,
- 1369787778000,
- 1369787780000,
- 1369787782000,
- 1369787784000,
- 1369787786000,
- 1369787788000,
- 1369787790000,
- 1369787792000,
- 1369787794000,
- 1369787796000,
- 1369787798000,
- 1369787800000,
- 1369787802000,
- 1369787804000,
- 1369787806000,
- 1369787808000,
- 1369787810000,
- 1369787812000,
- 1369787814000,
- 1369787816000,
- 1369787818000,
- 1369787820000,
- 1369787822000,
- 1369787824000,
- 1369787826000,
- 1369787828000,
- 1369787830000,
- 1369787832000,
- 1369787833000,
- 1369787835000,
- 1369787837000,
- 1369787839000,
- 1369787841000,
- 1369787843000,
- 1369787845000,
- 1369787847000,
- 1369787849000,
- 1369787851000,
- 1369787853000,
- 1369787855000,
- 1369787857000,
- 1369787859000,
- 1369787861000,
- 1369787865000,
- 1369787866000,
- 1369787867000,
- 1369787869000,
- 1369787871000,
- 1369787873000,
- 1369787875000,
- 1369787877000,
- 1369787880000,
- 1369787882000,
- 1369787884000,
- 1369787886000,
- 1369787888000,
- 1369787890000,
- 1369787892000,
- 1369787895000,
- 1369787898000,
- 1369787901000,
- 1369787904000,
- 1369787906000,
- 1369787908000,
- 1369787910000,
- 1369787912000,
- 1369787914000,
- 1369787917000,
- 1369787920000,
- 1369787925000,
- 1369787930000,
- 1369787937000,
- 1369788765000,
- 1369788771000,
- 1369788777000,
- 1369788782000,
- 1369788789000,
- 1369788793000,
- 1369788796000,
- 1369788799000,
- 1369788802000,
- 1369788805000,
- 1369788808000,
- 1369788811000,
- 1369788814000,
- 1369788817000,
- 1369788820000,
- 1369788823000,
- 1369788826000,
- 1369788829000,
- 1369788832000,
- 1369788835000,
- 1369788839000,
- 1369788857000,
- 1369788864000,
- 1369788870000,
- 1369788874000,
- 1369788878000,
- 1369788882000,
- 1369788885000,
- 1369788889000,
- 1369788892000,
- 1369788895000,
- 1369788898000,
- 1369788901000,
- 1369788903000,
- 1369788906000,
- 1369788908000,
- 1369788910000,
- 1369788912000,
- 1369788914000,
- 1369788916000,
- 1369788918000,
- 1369788920000,
- 1369788922000,
- 1369788924000,
- 1369788926000,
- 1369788928000,
- 1369788930000,
- 1369788932000,
- 1369788934000,
- 1369788936000,
- 1369788938000,
- 1369788940000,
- 1369788942000,
- 1369788944000,
- 1369788946000,
- 1369788948000,
- 1369788950000,
- 1369788952000,
- 1369788954000,
- 1369788956000,
- 1369788958000,
- 1369788960000,
- 1369788962000,
- 1369788964000,
- 1369788966000,
- 1369788968000,
- 1369788970000,
- 1369788972000,
- 1369788974000,
- 1369788976000,
- 1369788978000,
- 1369788980000,
- 1369788982000,
- 1369788984000,
- 1369788986000,
- 1369788988000,
- 1369788990000,
- 1369788992000,
- 1369788994000,
- 1369788996000,
- 1369788998000,
- 1369789000000,
- 1369789002000,
- 1369789004000,
- 1369789006000,
- 1369789008000,
- 1369789010000,
- 1369789012000,
- 1369789014000,
- 1369789016000,
- 1369789018000,
- 1369789020000,
- 1369789022000,
- 1369789024000,
- 1369789026000,
- 1369789028000,
- 1369789030000,
- 1369789032000,
- 1369789034000,
- 1369789036000,
- 1369789038000,
- 1369789040000,
- 1369789042000,
- 1369789044000,
- 1369789046000,
- 1369789048000,
- 1369789050000,
- 1369789052000,
- 1369789054000,
- 1369789056000,
- 1369789058000,
- 1369789060000,
- 1369789062000,
- 1369789064000,
- 1369789066000,
- 1369789068000,
- 1369789070000,
- 1369789072000,
- 1369789074000,
- 1369789076000,
- 1369789078000,
- 1369789080000,
- 1369789082000,
- 1369789084000,
- 1369789086000,
- 1369789088000,
- 1369789090000,
- 1369789092000,
- 1369789094000,
- 1369789096000,
- 1369789098000,
- 1369789100000,
- 1369789102000,
- 1369789104000,
- 1369789106000,
- 1369789108000,
- 1369789110000,
- 1369789112000,
- 1369789114000,
- 1369789116000,
- 1369789118000,
- 1369789120000,
- 1369789122000,
- 1369789124000,
- 1369789126000,
- 1369789128000,
- 1369789130000,
- 1369789132000,
- 1369789134000,
- 1369789136000,
- 1369789138000,
- 1369789140000,
- 1369789142000,
- 1369789144000,
- 1369789146000,
- 1369789148000,
- 1369789150000,
- 1369789152000,
- 1369789154000,
- 1369789156000,
- 1369789158000,
- 1369789160000,
- 1369789162000,
- 1369789164000,
- 1369789166000,
- 1369789168000,
- 1369789170000,
- 1369789172000,
- 1369789174000,
- 1369789176000,
- 1369789178000,
- 1369789180000,
- 1369789182000,
- 1369789184000,
- 1369789186000,
- 1369789188000,
- 1369789190000,
- 1369789192000,
- 1369789194000,
- 1369789196000,
- 1369789198000,
- 1369789200000,
- 1369789202000,
- 1369789204000,
- 1369789206000,
- 1369789208000,
- 1369789210000,
- 1369789212000,
- 1369789214000,
- 1369789216000,
- 1369789218000,
- 1369789221000,
- 1369789226000,
- 1369789233000,
- 1369789244000,
- 1369789249000,
- 1369789255000,
- 1369789260000,
- 1369789265000,
- 1369789270000,
- 1369789275000,
- 1369789280000,
- 1369789285000
- ],
- "speed": [
- 85,
- 88,
- 90,
- 91,
- 91,
- 89,
- 88,
- 87,
- 88,
- 88,
- 88,
- 86,
- 85,
- 82,
- 80,
- 79,
- 79,
- 79,
- 80,
- 79,
- 85,
- 86,
- 85,
- 86,
- 88,
- 89,
- 88,
- 86,
- 87,
- 87,
- 82,
- 79,
- 82,
- 85,
- 80,
- 77,
- 77,
- 77,
- 77,
- 77,
- 77,
- 77,
- 77,
- 76,
- 79,
- 79,
- 86,
- 86,
- 85,
- 81,
- 80,
- 80,
- 78,
- 78,
- 79,
- 85,
- 81,
- 71,
- 77,
- 85,
- 84,
- 77,
- 78,
- 77,
- 77,
- 75,
- 77,
- 77,
- 78,
- 83,
- 86,
- 81,
- 77,
- 71,
- 70,
- 69,
- 76,
- 77,
- 80,
- 81,
- 83,
- 85,
- 84,
- 85,
- 83,
- 82,
- 82,
- 80,
- 85,
- 81,
- 79,
- 71,
- 69,
- 63,
- 68,
- 69,
- 70,
- 75,
- 76,
- 82,
- 84,
- 84,
- 86,
- 87,
- 87,
- 86,
- 88,
- 87,
- 92,
- 95,
- 94,
- 95,
- 93,
- 93,
- 91,
- 90,
- 93,
- 93,
- 92,
- 94,
- 93,
- 90,
- 90,
- 88,
- 89,
- 89,
- 87,
- 93,
- 93,
- 91,
- 94,
- 96,
- 94,
- 95,
- 95,
- 95,
- 94,
- 92,
- 93,
- 95,
- 95,
- 95,
- 93,
- 94,
- 93,
- 93,
- 95,
- 95,
- 95,
- 95,
- 95,
- 94,
- 91,
- 90,
- 92,
- 92,
- 95,
- 95,
- 92,
- 92,
- 92,
- 90,
- 90,
- 92,
- 95,
- 94,
- 97,
- 98,
- 97,
- 95,
- 90,
- 91,
- 90,
- 94,
- 95,
- 93,
- 91,
- 95,
- 97,
- 99,
- 102,
- 88,
- 87,
- 86,
- 85,
- 85,
- 89,
- 92,
- 93,
- 95,
- 95,
- 99,
- 100,
- 99,
- 99,
- 98,
- 97,
- 97,
- 95,
- 97,
- 95,
- 95,
- 95,
- 95,
- 97,
- 97,
- 97,
- 96,
- 99,
- 99,
- 98,
- 95,
- 95,
- 96,
- 96,
- 94,
- 91,
- 90,
- 92,
- 95,
- 95,
- 95,
- 95,
- 98,
- 97,
- 96,
- 97,
- 95,
- 94,
- 92,
- 94,
- 95,
- 97,
- 97,
- 100,
- 95,
- 86,
- 88,
- 89,
- 94,
- 95,
- 95,
- 97,
- 96,
- 95,
- 95,
- 96,
- 93,
- 89,
- 83,
- 85,
- 81,
- 86,
- 84,
- 85,
- 88,
- 88,
- 86,
- 82,
- 79,
- 77,
- 77,
- 74,
- 78,
- 82,
- 79,
- 76,
- 83,
- 80,
- 86,
- 89,
- 89,
- 90,
- 89,
- 88,
- 86,
- 88,
- 91,
- 91,
- 94,
- 94,
- 91,
- 90,
- 88,
- 89,
- 91,
- 93,
- 91,
- 86,
- 80,
- 80,
- 86,
- 90,
- 92,
- 92,
- 92,
- 92,
- 93,
- 95,
- 95,
- 95,
- 87,
- 87,
- 86,
- 88,
- 91,
- 93,
- 91,
- 92,
- 90,
- 88,
- 90,
- 79,
- 79,
- 89,
- 86,
- 86,
- 89,
- 90,
- 86,
- 86,
- 82,
- 85,
- 86,
- 90,
- 90,
- 91,
- 92,
- 92,
- 88,
- 89,
- 93,
- 96,
- 94,
- 96,
- 95,
- 95,
- 95,
- 92,
- 94,
- 95,
- 96,
- 98,
- 96,
- 96,
- 96,
- 94,
- 91,
- 93,
- 94,
- 96,
- 94,
- 95,
- 95,
- 94,
- 87,
- 88,
- 93,
- 95,
- 100,
- 99,
- 102,
- 96,
- 98,
- 98,
- 95,
- 94,
- 96,
- 97,
- 96,
- 96,
- 96,
- 96,
- 95,
- 97,
- 95,
- 95,
- 94,
- 95,
- 95,
- 93,
- 96,
- 93,
- 92,
- 92,
- 91,
- 92,
- 91,
- 92,
- 91,
- 92,
- 94,
- 89,
- 92,
- 95,
- 98,
- 93,
- 87,
- 86,
- 86,
- 88,
- 90,
- 92,
- 94,
- 92,
- 87,
- 87,
- 90,
- 92,
- 92,
- 93,
- 94,
- 94,
- 95,
- 91,
- 89,
- 90,
- 93,
- 92,
- 94,
- 94,
- 96,
- 95,
- 93,
- 90,
- 85,
- 88,
- 94,
- 95,
- 94,
- 95,
- 95,
- 93,
- 92,
- 91,
- 95,
- 94,
- 95,
- 96,
- 95,
- 93,
- 89,
- 91,
- 91,
- 90,
- 89,
- 86,
- 85,
- 87,
- 85,
- 83,
- 80,
- 71,
- 72,
- 71,
- 29,
- 23,
- 30,
- 53,
- 67,
- 78,
- 94,
- 98,
- 100,
- 101,
- 103,
- 103,
- 103,
- 103,
- 103,
- 101,
- 97,
- 89,
- 93,
- 92,
- 93,
- 95,
- 94,
- 95,
- 94,
- 92,
- 85,
- 84,
- 82,
- 79,
- 77,
- 77,
- 80,
- 79,
- 77,
- 77,
- 82,
- 85,
- 83,
- 85,
- 85,
- 84,
- 83,
- 83,
- 81,
- 86,
- 88,
- 91,
- 90,
- 90,
- 86,
- 83,
- 84,
- 82,
- 83,
- 86,
- 87,
- 88,
- 90,
- 89,
- 92,
- 90,
- 86,
- 83,
- 88,
- 90,
- 89,
- 89,
- 87,
- 88,
- 86,
- 83,
- 89,
- 90,
- 93,
- 91,
- 91,
- 87,
- 86,
- 86,
- 87,
- 86,
- 86,
- 86,
- 86,
- 85,
- 86,
- 89,
- 89,
- 89,
- 91,
- 92,
- 96,
- 97,
- 97,
- 99,
- 100,
- 95,
- 85,
- 86,
- 81,
- 84,
- 83,
- 59,
- 72,
- 74,
- 74,
- 75,
- 80,
- 81,
- 86,
- 87,
- 88,
- 88,
- 90,
- 95,
- 89,
- 92,
- 92,
- 90,
- 86,
- 85,
- 85,
- 85,
- 86,
- 89,
- 89,
- 91,
- 91,
- 94,
- 94,
- 94,
- 92,
- 91,
- 93,
- 91,
- 91,
- 88,
- 87,
- 86,
- 87,
- 86,
- 85,
- 83,
- 82,
- 81,
- 81,
- 82,
- 85,
- 89,
- 90,
- 90,
- 94,
- 95,
- 95,
- 97,
- 97,
- 98,
- 100,
- 102,
- 101,
- 100,
- 100,
- 98,
- 97,
- 95,
- 96,
- 96,
- 95,
- 94,
- 89,
- 89,
- 92,
- 95,
- 94,
- 94,
- 96,
- 98,
- 95,
- 94,
- 92,
- 94,
- 95,
- 95,
- 95,
- 95,
- 95,
- 95,
- 94,
- 93,
- 93,
- 92,
- 94,
- 96,
- 92,
- 92,
- 95,
- 93,
- 93,
- 91,
- 88,
- 87,
- 89,
- 89,
- 90,
- 93,
- 91,
- 90,
- 91,
- 91,
- 88,
- 89,
- 89,
- 89,
- 89,
- 91,
- 91,
- 93,
- 93,
- 93,
- 90,
- 93,
- 95,
- 95,
- 100,
- 101,
- 97,
- 97,
- 96,
- 97,
- 96,
- 96,
- 92,
- 91,
- 93,
- 92,
- 92,
- 92,
- 90,
- 90,
- 91,
- 90,
- 92,
- 94,
- 93,
- 91,
- 91,
- 93,
- 94,
- 94,
- 92,
- 92,
- 91,
- 91,
- 92,
- 94,
- 92,
- 89,
- 93,
- 92,
- 93,
- 95,
- 97,
- 100,
- 98,
- 94,
- 90,
- 87,
- 82,
- 79,
- 77,
- 79,
- 78,
- 78,
- 75,
- 76,
- 79,
- 78,
- 79,
- 77,
- 77,
- 78,
- 79,
- 78,
- 77,
- 77,
- 78,
- 79,
- 79,
- 78,
- 77,
- 78,
- 78,
- 80,
- 79,
- 78,
- 80,
- 81,
- 77,
- 79,
- 77,
- 77,
- 77,
- 77,
- 77,
- 71,
- 76,
- 80,
- 79,
- 77,
- 77,
- 73,
- 73,
- 69,
- 68,
- 69,
- 70,
- 70,
- 70,
- 67,
- 67,
- 67,
- 60,
- 62,
- 64,
- 67,
- 62,
- 63,
- 66,
- 65,
- 57,
- 60,
- 59,
- 61,
- 60,
- 64,
- 60,
- 50,
- 52,
- 42,
- 43,
- 53,
- 59,
- 61,
- 58,
- 55,
- 50,
- 45,
- 23,
- 30,
- 18,
- 21,
- 17,
- 26,
- 20,
- 21,
- 34,
- 41,
- 45,
- 41,
- 40,
- 39,
- 40,
- 39,
- 40,
- 41,
- 41,
- 40,
- 38,
- 39,
- 37,
- 21,
- 16,
- 16,
- 23,
- 32,
- 33,
- 36,
- 35,
- 24,
- 41,
- 52,
- 54,
- 57,
- 56,
- 56,
- 57,
- 59,
- 61,
- 64,
- 68,
- 68,
- 72,
- 74,
- 75,
- 75,
- 74,
- 73,
- 72,
- 72,
- 72,
- 69,
- 69,
- 68,
- 68,
- 68,
- 68,
- 67,
- 68,
- 68,
- 68,
- 68,
- 69,
- 69,
- 70,
- 69,
- 69,
- 68,
- 68,
- 65,
- 65,
- 67,
- 68,
- 71,
- 73,
- 73,
- 78,
- 86,
- 89,
- 91,
- 91,
- 90,
- 89,
- 89,
- 88,
- 87,
- 89,
- 90,
- 89,
- 90,
- 91,
- 89,
- 88,
- 86,
- 86,
- 88,
- 89,
- 86,
- 85,
- 83,
- 81,
- 82,
- 83,
- 85,
- 86,
- 85,
- 84,
- 85,
- 85,
- 84,
- 83,
- 82,
- 79,
- 79,
- 79,
- 81,
- 82,
- 86,
- 88,
- 91,
- 93,
- 92,
- 92,
- 94,
- 91,
- 88,
- 87,
- 87,
- 84,
- 81,
- 79,
- 77,
- 77,
- 79,
- 80,
- 78,
- 76,
- 75,
- 73,
- 73,
- 73,
- 73,
- 75,
- 74,
- 77,
- 76,
- 74,
- 69,
- 68,
- 68,
- 66,
- 68,
- 70,
- 70,
- 72,
- 74,
- 71,
- 70,
- 70,
- 70,
- 68,
- 68,
- 72,
- 74,
- 75,
- 81,
- 85,
- 87,
- 89,
- 90,
- 89,
- 90,
- 90,
- 91,
- 89,
- 91,
- 91,
- 92,
- 92,
- 90,
- 92,
- 91,
- 91,
- 90,
- 86,
- 83,
- 82,
- 78,
- 75,
- 70,
- 68,
- 63,
- 41,
- 23,
- 14,
- 20,
- 21,
- 22,
- 26,
- 23,
- 23,
- 26,
- 26,
- 25
- ],
- "altitude": [
- 49,
- 50,
- 49,
- 50,
- 50,
- 50,
- 49,
- 49,
- 49,
- 49,
- 49,
- 50,
- 49,
- 49,
- 49,
- 48,
- 48,
- 48,
- 48,
- 48,
- 47,
- 46,
- 47,
- 47,
- 46,
- 45,
- 45,
- 44,
- 45,
- 45,
- 44,
- 43,
- 43,
- 43,
- 42,
- 42,
- 43,
- 43,
- 43,
- 43,
- 41,
- 41,
- 41,
- 41,
- 41,
- 41,
- 40,
- 40,
- 41,
- 40,
- 40,
- 41,
- 40,
- 39,
- 39,
- 39,
- 38,
- 39,
- 39,
- 39,
- 40,
- 38,
- 34,
- 32,
- 33,
- 32,
- 31,
- 31,
- 30,
- 29,
- 27,
- 24,
- 24,
- 24,
- 24,
- 24,
- 24,
- 25,
- 25,
- 25,
- 26,
- 28,
- 31,
- 34,
- 34,
- 36,
- 36,
- 36,
- 35,
- 36,
- 37,
- 39,
- 40,
- 40,
- 40,
- 40,
- 40,
- 37,
- 36,
- 35,
- 35,
- 35,
- 33,
- 30,
- 30,
- 30,
- 30,
- 30,
- 30,
- 24,
- 23,
- 22,
- 23,
- 24,
- 23,
- 23,
- 24,
- 25,
- 24,
- 24,
- 24,
- 23,
- 25,
- 26,
- 26,
- 26,
- 26,
- 26,
- 25,
- 25,
- 22,
- 23,
- 24,
- 24,
- 24,
- 23,
- 23,
- 23,
- 23,
- 23,
- 21,
- 21,
- 21,
- 20,
- 19,
- 18,
- 18,
- 17,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 17,
- 16,
- 16,
- 16,
- 16,
- 15,
- 16,
- 16,
- 16,
- 17,
- 15,
- 15,
- 14,
- 14,
- 13,
- 13,
- 13,
- 13,
- 13,
- 12,
- 13,
- 13,
- 13,
- 14,
- 14,
- 14,
- 15,
- 15,
- 15,
- 15,
- 17,
- 17,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 19,
- 19,
- 19,
- 19,
- 20,
- 20,
- 21,
- 19,
- 20,
- 21,
- 21,
- 22,
- 22,
- 22,
- 23,
- 23,
- 23,
- 24,
- 24,
- 24,
- 25,
- 25,
- 25,
- 25,
- 25,
- 25,
- 26,
- 26,
- 26,
- 26,
- 26,
- 26,
- 26,
- 25,
- 26,
- 28,
- 30,
- 30,
- 29,
- 29,
- 29,
- 30,
- 30,
- 30,
- 29,
- 30,
- 30,
- 30,
- 30,
- 30,
- 31,
- 30,
- 30,
- 30,
- 31,
- 31,
- 32,
- 33,
- 35,
- 35,
- 35,
- 34,
- 34,
- 35,
- 35,
- 36,
- 36,
- 36,
- 36,
- 36,
- 36,
- 33,
- 32,
- 31,
- 32,
- 32,
- 31,
- 31,
- 31,
- 31,
- 31,
- 31,
- 31,
- 30,
- 30,
- 30,
- 30,
- 29,
- 29,
- 29,
- 29,
- 29,
- 29,
- 30,
- 30,
- 30,
- 30,
- 30,
- 30,
- 30,
- 30,
- 30,
- 30,
- 30,
- 29,
- 26,
- 26,
- 26,
- 27,
- 27,
- 27,
- 28,
- 28,
- 28,
- 29,
- 29,
- 29,
- 29,
- 28,
- 28,
- 28,
- 27,
- 27,
- 27,
- 27,
- 27,
- 27,
- 28,
- 28,
- 28,
- 28,
- 28,
- 28,
- 29,
- 29,
- 30,
- 30,
- 31,
- 30,
- 30,
- 28,
- 27,
- 27,
- 26,
- 25,
- 25,
- 25,
- 25,
- 24,
- 24,
- 24,
- 24,
- 24,
- 23,
- 23,
- 23,
- 23,
- 23,
- 23,
- 24,
- 24,
- 24,
- 24,
- 24,
- 24,
- 23,
- 23,
- 23,
- 22,
- 22,
- 22,
- 20,
- 20,
- 20,
- 19,
- 18,
- 18,
- 18,
- 17,
- 16,
- 16,
- 17,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 18,
- 17,
- 17,
- 17,
- 17,
- 17,
- 16,
- 15,
- 15,
- 16,
- 15,
- 15,
- 15,
- 15,
- 16,
- 16,
- 15,
- 14,
- 15,
- 14,
- 15,
- 14,
- 13,
- 13,
- 13,
- 13,
- 14,
- 15,
- 15,
- 14,
- 14,
- 14,
- 14,
- 14,
- 14,
- 14,
- 14,
- 23,
- 23,
- 23,
- 23,
- 23,
- 23,
- 23,
- 23,
- 23,
- 23,
- 22,
- 22,
- 22,
- 22,
- 22,
- 22,
- 22,
- 22,
- 23,
- 23,
- 23,
- 23,
- 23,
- 23,
- 24,
- 24,
- 25,
- 27,
- 28,
- 28,
- 29,
- 29,
- 29,
- 29,
- 29,
- 29,
- 30,
- 30,
- 30,
- 30,
- 30,
- 31,
- 31,
- 31,
- 31,
- 32,
- 31,
- 30,
- 28,
- 28,
- 27,
- 26,
- 26,
- 26,
- 26,
- 25,
- 25,
- 26,
- 25,
- 25,
- 25,
- 25,
- 25,
- 25,
- 25,
- 23,
- 20,
- 16,
- 13,
- 11,
- 10,
- 10,
- 10,
- 9,
- 9,
- 9,
- 9,
- 8,
- 8,
- 7,
- 6,
- 5,
- 6,
- 5,
- 5,
- 4,
- 4,
- 3,
- 22,
- 22,
- 22,
- 21,
- 20,
- 20,
- 20,
- 20,
- 20,
- 20,
- 19,
- 19,
- 18,
- 16,
- 15,
- 13,
- 12,
- 12,
- 12,
- 11,
- 12,
- 11,
- 11,
- 11,
- 10,
- 10,
- 10,
- 9,
- 9,
- 9,
- 9,
- 8,
- 8,
- 8,
- 7,
- 7,
- 7,
- 7,
- 7,
- 7,
- 7,
- 7,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 9,
- 9,
- 9,
- 9,
- 10,
- 10,
- 10,
- 11,
- 11,
- 12,
- 12,
- 13,
- 11,
- 11,
- 11,
- 8,
- 7,
- 6,
- 6,
- 6,
- 7,
- 7,
- 7,
- 7,
- 7,
- 9,
- 10,
- 10,
- 10,
- 9,
- 10,
- 9,
- 9,
- 9,
- 9,
- 10,
- 12,
- 12,
- 12,
- 11,
- 11,
- 12,
- 11,
- 11,
- 12,
- 12,
- 12,
- 12,
- 12,
- 12,
- 12,
- 12,
- 12,
- 13,
- 13,
- 13,
- 13,
- 13,
- 13,
- 13,
- 13,
- 13,
- 10,
- 9,
- 9,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 9,
- 9,
- 9,
- 9,
- 9,
- 9,
- 10,
- 10,
- 12,
- 14,
- 13,
- 11,
- 9,
- 9,
- 6,
- 6,
- 7,
- 7,
- 7,
- 8,
- 8,
- 9,
- 9,
- 10,
- 10,
- 10,
- 10,
- 9,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 9,
- 9,
- 9,
- 9,
- 9,
- 9,
- 9,
- 8,
- 9,
- 9,
- 9,
- 9,
- 9,
- 9,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 8,
- 9,
- 9,
- 9,
- 9,
- 9,
- 9,
- 9,
- 9,
- 9,
- 9,
- 10,
- 10,
- 9,
- 10,
- 10,
- 10,
- 10,
- 10,
- 11,
- 11,
- 11,
- 11,
- 11,
- 12,
- 12,
- 12,
- 11,
- 12,
- 11,
- 6,
- 3,
- 5,
- 4,
- 3,
- 2,
- 4,
- 3,
- 3,
- 3,
- 3,
- 5,
- 3,
- 1,
- -4,
- 0,
- 0,
- -1,
- -2,
- -4,
- -3,
- -4,
- -6,
- -8,
- -8,
- -8,
- -10,
- 4,
- 2,
- 1,
- 1,
- -2,
- -3,
- -3,
- -4,
- -2,
- -3,
- -3,
- -4,
- -5,
- -5,
- -6,
- -6,
- -6,
- -7,
- -8,
- -8,
- -8,
- -7,
- -6,
- -10,
- -11,
- -11,
- -10,
- -10,
- -10,
- -11,
- -12,
- -11,
- -11,
- -12,
- -12,
- -12,
- -12,
- -12,
- -13,
- -13,
- -13,
- -12,
- -13,
- -12,
- -12,
- -12,
- -12,
- -12,
- -12,
- -13,
- -12,
- -12,
- -11,
- -11,
- -11,
- -10,
- -10,
- -9,
- -8,
- -9,
- -9,
- -9,
- -10,
- -9,
- -9,
- -8,
- -7,
- -6,
- -6,
- -5,
- -5,
- -6,
- -6,
- -5,
- -7,
- -8,
- -9,
- -8,
- -7,
- -8,
- -8,
- -7,
- -8,
- -8,
- -7,
- -8,
- -8,
- -9,
- -10,
- -10,
- -11,
- -11,
- -12,
- -12,
- -11,
- -11,
- -11,
- -8,
- -6,
- -6,
- -6,
- -7,
- -7,
- -8,
- -9,
- -10,
- -11,
- -10,
- -10,
- -10,
- -8,
- -7,
- -6,
- -6,
- -7,
- -9,
- -10,
- -12,
- -13,
- -14,
- -15,
- -15,
- -16,
- -17,
- -17,
- -16,
- -15,
- -13,
- -12,
- -11,
- -11,
- -10,
- -11,
- -11,
- -10,
- -9,
- -9,
- -8,
- -9,
- -9,
- -9,
- -9,
- -10,
- -10,
- -11,
- -10,
- -11,
- -11,
- -10,
- -10,
- -10,
- -10,
- -10,
- -10,
- -10,
- -10,
- -10,
- -10,
- -9,
- -9,
- -9,
- -8,
- -8,
- -9,
- -10,
- -10,
- -11,
- -12,
- -12,
- -13,
- -14,
- -13,
- -14,
- -14,
- -15,
- -15,
- -15,
- -15,
- -13,
- -14,
- -14,
- -13,
- -13,
- -11,
- -11,
- -12,
- -12,
- -12,
- -12,
- -12,
- -12,
- -12,
- -13,
- -11,
- -11,
- -12,
- -13,
- -12,
- -11,
- -9,
- -9,
- -10,
- -10
- ],
- "heading": [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
- "horizontal_accuracy": [
- 87,
- 79,
- 59,
- 43,
- 54,
- 55,
- 40,
- 33,
- 30,
- 32,
- 29,
- 33,
- 40,
- 53,
- 77,
- 92,
- 93,
- 103,
- 114,
- 139,
- 121,
- 130,
- 127,
- 102,
- 46,
- 28,
- 24,
- 22,
- 21,
- 28,
- 29,
- 30,
- 29,
- 30,
- 22,
- 21,
- 26,
- 30,
- 41,
- 61,
- 39,
- 34,
- 36,
- 39,
- 38,
- 38,
- 35,
- 41,
- 45,
- 44,
- 45,
- 45,
- 50,
- 45,
- 27,
- 22,
- 24,
- 25,
- 24,
- 22,
- 20,
- 15,
- 14,
- 13,
- 15,
- 15,
- 17,
- 22,
- 29,
- 34,
- 30,
- 29,
- 24,
- 23,
- 26,
- 27,
- 22,
- 19,
- 18,
- 15,
- 13,
- 13,
- 11,
- 10,
- 8,
- 9,
- 11,
- 13,
- 13,
- 16,
- 20,
- 23,
- 24,
- 27,
- 27,
- 27,
- 31,
- 27,
- 25,
- 22,
- 17,
- 18,
- 17,
- 14,
- 15,
- 13,
- 14,
- 18,
- 16,
- 11,
- 10,
- 11,
- 12,
- 12,
- 11,
- 11,
- 12,
- 14,
- 17,
- 17,
- 17,
- 12,
- 9,
- 10,
- 11,
- 13,
- 16,
- 16,
- 15,
- 16,
- 14,
- 12,
- 10,
- 11,
- 10,
- 11,
- 13,
- 12,
- 13,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 18,
- 15,
- 15,
- 15,
- 17,
- 19,
- 20,
- 20,
- 19,
- 18,
- 16,
- 13,
- 13,
- 13,
- 12,
- 12,
- 13,
- 14,
- 15,
- 19,
- 20,
- 20,
- 21,
- 22,
- 20,
- 19,
- 20,
- 23,
- 22,
- 21,
- 20,
- 26,
- 30,
- 35,
- 40,
- 47,
- 50,
- 64,
- 84,
- 109,
- 138,
- 147,
- 140,
- 136,
- 129,
- 116,
- 97,
- 86,
- 70,
- 65,
- 62,
- 58,
- 52,
- 29,
- 25,
- 24,
- 25,
- 29,
- 21,
- 21,
- 19,
- 16,
- 15,
- 15,
- 16,
- 16,
- 18,
- 21,
- 19,
- 18,
- 18,
- 17,
- 16,
- 16,
- 13,
- 12,
- 11,
- 11,
- 12,
- 13,
- 15,
- 18,
- 16,
- 16,
- 17,
- 16,
- 14,
- 12,
- 12,
- 13,
- 15,
- 12,
- 11,
- 10,
- 9,
- 10,
- 9,
- 10,
- 9,
- 7,
- 7,
- 7,
- 7,
- 7,
- 7,
- 8,
- 9,
- 9,
- 9,
- 10,
- 11,
- 14,
- 14,
- 14,
- 14,
- 18,
- 20,
- 22,
- 22,
- 21,
- 24,
- 28,
- 27,
- 28,
- 21,
- 19,
- 18,
- 18,
- 18,
- 19,
- 18,
- 17,
- 18,
- 22,
- 21,
- 20,
- 19,
- 16,
- 15,
- 17,
- 18,
- 23,
- 26,
- 33,
- 37,
- 40,
- 36,
- 30,
- 26,
- 24,
- 24,
- 30,
- 32,
- 35,
- 37,
- 50,
- 77,
- 113,
- 117,
- 123,
- 129,
- 107,
- 87,
- 70,
- 62,
- 62,
- 79,
- 98,
- 96,
- 80,
- 62,
- 48,
- 34,
- 28,
- 27,
- 31,
- 28,
- 21,
- 21,
- 24,
- 34,
- 38,
- 41,
- 46,
- 40,
- 38,
- 36,
- 29,
- 21,
- 18,
- 19,
- 17,
- 18,
- 15,
- 14,
- 14,
- 14,
- 14,
- 12,
- 13,
- 11,
- 9,
- 9,
- 8,
- 8,
- 8,
- 10,
- 11,
- 14,
- 18,
- 20,
- 22,
- 19,
- 24,
- 23,
- 22,
- 27,
- 32,
- 42,
- 50,
- 37,
- 26,
- 17,
- 16,
- 13,
- 12,
- 10,
- 10,
- 9,
- 8,
- 8,
- 9,
- 10,
- 11,
- 13,
- 14,
- 16,
- 20,
- 20,
- 16,
- 15,
- 15,
- 18,
- 21,
- 27,
- 29,
- 22,
- 19,
- 19,
- 19,
- 23,
- 33,
- 25,
- 22,
- 21,
- 18,
- 18,
- 16,
- 15,
- 15,
- 17,
- 19,
- 17,
- 17,
- 16,
- 14,
- 10,
- 9,
- 10,
- 10,
- 10,
- 11,
- 13,
- 19,
- 21,
- 19,
- 18,
- 17,
- 16,
- 16,
- 18,
- 19,
- 17,
- 19,
- 24,
- 27,
- 28,
- 32,
- 32,
- 28,
- 24,
- 19,
- 17,
- 18,
- 21,
- 26,
- 24,
- 25,
- 22,
- 19,
- 15,
- 13,
- 11,
- 10,
- 11,
- 12,
- 14,
- 14,
- 16,
- 24,
- 42,
- 58,
- 61,
- 59,
- 56,
- 51,
- 46,
- 43,
- 42,
- 40,
- 40,
- 34,
- 31,
- 26,
- 24,
- 23,
- 28,
- 26,
- 21,
- 17,
- 16,
- 14,
- 13,
- 12,
- 13,
- 15,
- 14,
- 12,
- 12,
- 13,
- 16,
- 16,
- 15,
- 17,
- 21,
- 25,
- 24,
- 19,
- 14,
- 11,
- 11,
- 11,
- 9,
- 10,
- 10,
- 12,
- 13,
- 15,
- 18,
- 19,
- 20,
- 20,
- 18,
- 14,
- 13,
- 11,
- 12,
- 12,
- 12,
- 13,
- 12,
- 11,
- 10,
- 10,
- 9,
- 8,
- 9,
- 11,
- 14,
- 15,
- 12,
- 10,
- 10,
- 11,
- 12,
- 12,
- 13,
- 13,
- 14,
- 12,
- 12,
- 10,
- 9,
- 9,
- 9,
- 9,
- 10,
- 9,
- 10,
- 12,
- 14,
- 18,
- 17,
- 23,
- 17,
- 15,
- 11,
- 10,
- 11,
- 14,
- 17,
- 21,
- 27,
- 51,
- 47,
- 48,
- 54,
- 56,
- 49,
- 49,
- 53,
- 56,
- 57,
- 46,
- 39,
- 36,
- 30,
- 24,
- 20,
- 15,
- 12,
- 11,
- 9,
- 7,
- 7,
- 6,
- 6,
- 6,
- 7,
- 8,
- 10,
- 12,
- 14,
- 14,
- 15,
- 13,
- 12,
- 11,
- 11,
- 11,
- 12,
- 14,
- 15,
- 16,
- 17,
- 14,
- 16,
- 21,
- 26,
- 29,
- 28,
- 30,
- 29,
- 30,
- 35,
- 38,
- 42,
- 45,
- 39,
- 32,
- 26,
- 20,
- 16,
- 15,
- 15,
- 17,
- 17,
- 14,
- 16,
- 16,
- 19,
- 21,
- 20,
- 20,
- 23,
- 26,
- 30,
- 39,
- 36,
- 33,
- 33,
- 34,
- 36,
- 40,
- 37,
- 48,
- 66,
- 78,
- 87,
- 76,
- 77,
- 88,
- 107,
- 148,
- 131,
- 63,
- 37,
- 25,
- 19,
- 15,
- 13,
- 12,
- 11,
- 9,
- 7,
- 7,
- 8,
- 9,
- 9,
- 9,
- 11,
- 12,
- 13,
- 12,
- 9,
- 9,
- 10,
- 13,
- 15,
- 19,
- 24,
- 36,
- 52,
- 77,
- 64,
- 47,
- 28,
- 23,
- 15,
- 14,
- 13,
- 13,
- 13,
- 11,
- 10,
- 10,
- 9,
- 11,
- 10,
- 10,
- 11,
- 10,
- 9,
- 8,
- 9,
- 10,
- 11,
- 12,
- 14,
- 15,
- 15,
- 12,
- 12,
- 15,
- 18,
- 25,
- 34,
- 39,
- 36,
- 28,
- 22,
- 22,
- 21,
- 17,
- 15,
- 13,
- 11,
- 11,
- 10,
- 10,
- 10,
- 9,
- 11,
- 11,
- 13,
- 14,
- 11,
- 10,
- 8,
- 8,
- 8,
- 9,
- 9,
- 10,
- 9,
- 8,
- 8,
- 8,
- 9,
- 10,
- 9,
- 8,
- 9,
- 9,
- 10,
- 10,
- 11,
- 12,
- 10,
- 10,
- 11,
- 11,
- 12,
- 14,
- 17,
- 20,
- 24,
- 18,
- 15,
- 16,
- 19,
- 20,
- 22,
- 24,
- 22,
- 24,
- 27,
- 32,
- 48,
- 69,
- 99,
- 138,
- 58,
- 18,
- 14,
- 10,
- 9,
- 8,
- 9,
- 7,
- 7,
- 6,
- 6,
- 7,
- 6,
- 6,
- 7,
- 7,
- 5,
- 5,
- 5,
- 5,
- 5,
- 5,
- 4,
- 4,
- 4,
- 3,
- 3,
- 4,
- 3,
- 4,
- 3,
- 4,
- 4,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 4,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 4,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 4,
- 3,
- 4,
- 4,
- 4,
- 3,
- 3,
- 3,
- 3,
- 3,
- 4,
- 4,
- 4,
- 4,
- 4,
- 5,
- 5,
- 5,
- 5,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 3,
- 3,
- 4,
- 3,
- 3,
- 4,
- 4,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 4,
- 3,
- 3,
- 4,
- 4,
- 4,
- 4,
- 4,
- 3,
- 4,
- 4,
- 3,
- 3,
- 4,
- 4,
- 3,
- 4,
- 4,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 4,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 4,
- 4,
- 3,
- 4,
- 3,
- 3,
- 3,
- 4,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 4,
- 3,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 3,
- 3,
- 3,
- 4,
- 4,
- 3,
- 3,
- 4,
- 4,
- 4,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 3,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 4,
- 3,
- 3,
- 3,
- 4,
- 3,
- 4,
- 4,
- 3,
- 3
- ],
- "vertical_accuracy": [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
- "raw": []
- },
- "bbox": [
- [
- -124.09386637,
- 44.34348063
- ],
- [
- -124.09386637,
- 44.56531305
- ],
- [
- -123.26148271,
- 44.56531305
- ],
- [
- -123.26148271,
- 44.34348063
- ]
- ]
-};
-
-var demoTracks = [tillicum];
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/gadget-controller.jag
deleted file mode 100644
index f84538a40..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/gadget-controller.jag
+++ /dev/null
@@ -1,42 +0,0 @@
-<%
-/**
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-(function () {
-
- response.contentType = 'application/json';
- var PROVIDER_CONF = 'provider-conf';
- var PROVIDER_NAME = 'provider-name';
-
- var action = request.getParameter("action");
- var data = request.getContent();
- var providerConf = data[PROVIDER_CONF];
- var providerAPI = require('js/core/' + providerConf[PROVIDER_NAME] + '-provider-api.js');
-
- if (action === 'getSchema') {
- print(providerAPI.getSchema(providerConf));
- return;
- } else if(action === 'getData'){
- print(providerAPI.getData(providerConf));
- return;
- }
-
-}());
-
-
-%>
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/gadget.json
deleted file mode 100644
index 39a2bbacc..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/gadget.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "id": "Android_Location_Map",
- "title": "Android Location Map",
- "type": "gadget",
- "thumbnail": "gadget/Android_Location_Map/thumbnail.png",
- "data": {
- "url": "gadget/Android_Location_Map/gadget.xml"
- }
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/gadget.xml
deleted file mode 100644
index 18df1d726..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/gadget.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Current Location
- History
- Heat Map
-
-
-
-
-
-
-
- ]]>
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/img/marker/marker-icon-2x.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/img/marker/marker-icon-2x.png
deleted file mode 100644
index e2e9f757f..000000000
Binary files a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/img/marker/marker-icon-2x.png and /dev/null differ
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/img/marker/marker-icon.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/img/marker/marker-icon.png
deleted file mode 100644
index e2e9f757f..000000000
Binary files a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/img/marker/marker-icon.png and /dev/null differ
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/img/marker/marker-shadow.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/img/marker/marker-shadow.png
deleted file mode 100644
index d1e773c71..000000000
Binary files a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/img/marker/marker-shadow.png and /dev/null differ
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/LeafletPlayback.min.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/LeafletPlayback.min.js
deleted file mode 100644
index 4f7edadaa..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/LeafletPlayback.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(a){var b;if("function"==typeof define&&define.amd)define(["leaflet"],a);else if("object"==typeof module&&"object"==typeof module.exports)b=require("leaflet"),module.exports=a(b);else{if("undefined"==typeof window.L)throw"Leaflet must be loaded first";a(window.L)}}(function(a){return a.Playback=a.Playback||{},a.Playback.Util=a.Class.extend({statics:{DateStr:function(a){return new Date(a).toDateString()},TimeStr:function(a){var b=new Date(a),c=b.getHours(),d=b.getMinutes(),e=b.getSeconds(),f=a/1e3,g=(f-Math.floor(f)).toFixed(2).slice(1),h="AM";return c>11&&(c%=12,h="PM"),0===c&&(c=12),10>d&&(d="0"+d),10>e&&(e="0"+e),c+":"+d+":"+e+g+" "+h},ParseGPX:function(a){for(var b={type:"Feature",geometry:{type:"MultiPoint",coordinates:[]},properties:{time:[],speed:[],altitude:[]},bbox:[]},c=$.parseXML(a),d=$(c).find("trkpt"),e=0,f=d.length;f>e;e++){var g=d[e],h=parseFloat(g.getAttribute("lat")),i=parseFloat(g.getAttribute("lon")),j=$(g).find("time").text(),k=$(g).find("ele").text(),l=new Date(j).getTime(),m=parseFloat(k),n=b.geometry.coordinates,o=b.properties,p=o.time,q=b.properties.altitude;n.push([i,h]),p.push(l),q.push(m)}return b}}}),a.Playback=a.Playback||{},a.Playback.MoveableMarker=a.Marker.extend({initialize:function(b,c,d){var e=c.marker||{};jQuery.isFunction(e)&&(e=e(d)),a.Marker.prototype.initialize.call(this,b,e),this.popupContent="",this.feature=d,e.getPopup&&(this.popupContent=e.getPopup(d)),c.popups&&this.bindPopup(this.getPopupContent()+b.toString()),c.labels&&(this.bindLabel?this.bindLabel(this.getPopupContent()):console.log("Label binding requires leaflet-label (https://github.com/Leaflet/Leaflet.label)"))},getPopupContent:function(){return""!==this.popupContent?""+this.popupContent+" ":""},move:function(b,c){a.DomUtil.TRANSITION&&(this._icon&&(this._icon.style[a.DomUtil.TRANSITION]="all "+c+"ms linear",this._popup&&this._popup._wrapper&&(this._popup._wrapper.style[a.DomUtil.TRANSITION]="all "+c+"ms linear")),this._shadow&&(this._shadow.style[a.DomUtil.TRANSITION]="all "+c+"ms linear")),this.setLatLng(b),this._popup&&this._popup.setContent(this.getPopupContent()+this._latlng.toString())},_old__setPos:a.Marker.prototype._setPos,_updateImg:function(b,c,d){c=a.point(d).divideBy(2)._subtract(a.point(c));var e="";e+=" translate("+-c.x+"px, "+-c.y+"px)",e+=" rotate("+this.options.iconAngle+"deg)",e+=" translate("+c.x+"px, "+c.y+"px)",b.style[a.DomUtil.TRANSFORM]+=e},setIconAngle:function(a){this.options.iconAngle=a,this._map&&this.update()},_setPos:function(b){if(this._icon&&(this._icon.style[a.DomUtil.TRANSFORM]=""),this._shadow&&(this._shadow.style[a.DomUtil.TRANSFORM]=""),this._old__setPos.apply(this,[b]),this.options.iconAngle){var c,d=this.options.icon.options.iconAnchor,e=this.options.icon.options.iconSize;this._icon&&(c=this._icon,this._updateImg(c,d,e)),this._shadow&&(e=this.options.icon.options.shadowSize,c=this._shadow,this._updateImg(c,d,e))}}}),a.Playback=a.Playback||{},a.Playback.Track=a.Class.extend({initialize:function(a,b){b=b||{};var c=b.tickLen||250;this._staleTime=b.staleTime||36e5,this._fadeMarkersWhenStale=b.fadeMarkersWhenStale||!1,this._geoJSON=a,this._tickLen=c,this._ticks=[],this._marker=null,this._orientations=[];var d=a.properties.time;this._orientIcon=b.orientIcons;var e,f,g,h=a.geometry.coordinates,i=h[0],j=h[1],k=d[0],l=k,m=d[1],n=l%c;if(1===d.length)return 0!==n&&(l+=c-n),this._ticks[l]=h[0],this._orientations[l]=0,this._startTime=l,void(this._endTime=l);for(0!==n?(f=c-n,g=f/(m-k),l+=f,this._ticks[l]=this._interpolatePoint(i,j,g),this._orientations[l]=this._directionOfPoint(i,j),e=this._orientations[l]):(this._ticks[l]=i,this._orientations[l]=this._directionOfPoint(i,j),e=this._orientations[l]),this._startTime=l,l+=c;m>l;)g=(l-k)/(m-k),this._ticks[l]=this._interpolatePoint(i,j,g),this._orientations[l]=this._directionOfPoint(i,j),e=this._orientations[l],l+=c;for(var o=1,p=h.length;p>o;o++)for(i=h[o],j=h[o+1],l=k=d[o],m=d[o+1],n=l%c,0!==n&&m?(f=c-n,g=f/(m-k),l+=f,this._ticks[l]=this._interpolatePoint(i,j,g),j?(this._orientations[l]=this._directionOfPoint(i,j),e=this._orientations[l]):this._orientations[l]=e):(this._ticks[l]=i,j?(this._orientations[l]=this._directionOfPoint(i,j),e=this._orientations[l]):this._orientations[l]=e),l+=c;m>l;)g=(l-k)/(m-k),m-k>b.maxInterpolationTime?(this._ticks[l]=i,j?(this._orientations[l]=this._directionOfPoint(i,j),e=this._orientations[l]):this._orientations[l]=e):(this._ticks[l]=this._interpolatePoint(i,j,g),j?(this._orientations[l]=this._directionOfPoint(i,j),e=this._orientations[l]):this._orientations[l]=e),l+=c;this._endTime=l-c,this._lastTick=this._ticks[this._endTime]},_interpolatePoint:function(a,b,c){try{var d=[b[0]-a[0],b[1]-a[1]],e=[d[0]*c,d[1]*c];return[a[0]+e[0],a[1]+e[1]]}catch(f){console.log("err: cant interpolate a point"),console.log(["start",a]),console.log(["end",b]),console.log(["ratio",c])}},_directionOfPoint:function(a,b){return this._getBearing(a[1],a[0],b[1],b[0])},_getBearing:function(a,b,c,d){a=this._radians(a),b=this._radians(b),c=this._radians(c),d=this._radians(d);var e=d-b,f=Math.log(Math.tan(c/2+Math.PI/4)/Math.tan(a/2+Math.PI/4));return Math.abs(e)>Math.PI&&(e=e>0?-(2*Math.PI-e):2*Math.PI+e),(this._degrees(Math.atan2(e,f))+360)%360},_radians:function(a){return a*(Math.PI/180)},_degrees:function(a){return a*(180/Math.PI)},getFirstTick:function(){return this._ticks[this._startTime]},getLastTick:function(){return this._ticks[this._endTime]},getStartTime:function(){return this._startTime},getEndTime:function(){return this._endTime},getTickMultiPoint:function(){for(var a=this.getStartTime(),b=this.getEndTime(),c=[],d=[];b>=a;)d.push(a),c.push(this.tick(a)),a+=this._tickLen;return{type:"Feature",geometry:{type:"MultiPoint",coordinates:c},properties:{time:d}}},trackPresentAtTick:function(a){return a>=this._startTime},trackStaleAtTick:function(a){return this._endTime+this._staleTime<=a},tick:function(a){return a>this._endTime&&(a=this._endTime),athis._endTime&&(a=this._endTime),a0;){var a=this._tracks.pop(),b=a.getMarker();b&&this._map.removeLayer(b)}},setTracks:function(a){this.clearTracks(),this.addTracks(a)},addTracks:function(a){if(a)if(a instanceof Array)for(var b=0,c=a.length;c>b;b++)this.addTrack(a[b]);else this.addTrack(a)},addTrack:function(a,b){if(a){var c=a.setMarker(b,this.options);c&&(c.addTo(this._map),this._tracks.push(a))}},tock:function(b,c){for(var d=0,e=this._tracks.length;e>d;d++){var f=this._tracks[d].tick(b),g=new a.LatLng(f[1],f[0]);this._tracks[d].moveMarker(g,c,b)}},getStartTime:function(){var a=0;if(this._tracks.length>0){a=this._tracks[0].getStartTime();for(var b=1,c=this._tracks.length;c>b;b++){var d=this._tracks[b].getStartTime();a>d&&(a=d)}}return a},getEndTime:function(){var a=0;if(this._tracks.length>0){a=this._tracks[0].getEndTime();for(var b=1,c=this._tracks.length;c>b;b++){var d=this._tracks[b].getEndTime();d>a&&(a=d)}}return a},getTracks:function(){return this._tracks}}),a.Playback=a.Playback||{},a.Playback.Clock=a.Class.extend({initialize:function(b,c,d){this._trackController=b,this._callbacksArry=[],c&&this.addCallback(c),a.setOptions(this,d),this._speed=this.options.speed,this._tickLen=this.options.tickLen,this._cursor=b.getStartTime(),this._transitionTime=this._tickLen/this._speed},_tick:function(a){return a._cursor>a._trackController.getEndTime()?void clearInterval(a._intervalID):(a._trackController.tock(a._cursor,a._transitionTime),a._callbacks(a._cursor),void(a._cursor+=a._tickLen))},_callbacks:function(a){for(var b=this._callbacksArry,c=0,d=b.length;d>c;c++)b[c](a)},addCallback:function(a){this._callbacksArry.push(a)},start:function(){this._intervalID||(this._intervalID=window.setInterval(this._tick,this._transitionTime,this))},stop:function(){this._intervalID&&(clearInterval(this._intervalID),this._intervalID=null)},getSpeed:function(){return this._speed},isPlaying:function(){return this._intervalID?!0:!1},setSpeed:function(a){this._speed=a,this._transitionTime=this._tickLen/a,this._intervalID&&(this.stop(),this.start())},setCursor:function(a){var b=parseInt(a);if(b){var c=b%this._tickLen;0!==c&&(b+=this._tickLen-c),this._cursor=b,this._trackController.tock(this._cursor,0),this._callbacks(this._cursor)}},getTime:function(){return this._cursor},getStartTime:function(){return this._trackController.getStartTime()},getEndTime:function(){return this._trackController.getEndTime()},getTickLen:function(){return this._tickLen}}),a.Playback=a.Playback||{},a.Playback.TracksLayer=a.Class.extend({initialize:function(b,c){var d=c.layer||{};jQuery.isFunction(d)&&(d=d(feature)),d.pointToLayer||(d.pointToLayer=function(b,c){return new a.CircleMarker(c,{radius:5})}),this.layer=new a.GeoJSON(null,d);var e={"GPS Tracks":this.layer};a.control.layers(null,e,{collapsed:!1}).addTo(b)},clearLayer:function(){for(var a in this.layer._layers)this.layer.removeLayer(this.layer._layers[a])},addLayer:function(a){this.layer.addData(a)}}),a.Playback=a.Playback||{},a.Playback.DateControl=a.Control.extend({options:{position:"bottomleft",dateFormatFn:a.Playback.Util.DateStr,timeFormatFn:a.Playback.Util.TimeStr},initialize:function(b,c){a.setOptions(this,c),this.playback=b},onAdd:function(b){this._container=a.DomUtil.create("div","leaflet-control-layers leaflet-control-layers-expanded");var c=this,d=this.playback,e=d.getTime(),f=a.DomUtil.create("div","datetimeControl",this._container);return this._date=a.DomUtil.create("p","",f),this._time=a.DomUtil.create("p","",f),this._date.innerHTML=this.options.dateFormatFn(e),this._time.innerHTML=this.options.timeFormatFn(e),d.addCallback(function(a){c._date.innerHTML=c.options.dateFormatFn(a),c._time.innerHTML=c.options.timeFormatFn(a)}),this._container}}),a.Playback.PlayControl=a.Control.extend({options:{position:"bottomright"},initialize:function(a){this.playback=a},onAdd:function(b){function c(){e.isPlaying()?(e.stop(),d._button.innerHTML="Play"):(e.start(),d._button.innerHTML="Stop")}this._container=a.DomUtil.create("div","leaflet-control-layers leaflet-control-layers-expanded");var d=this,e=this.playback;e.setSpeed(100);var f=a.DomUtil.create("div","playControl",this._container);this._button=a.DomUtil.create("button","",f),this._button.innerHTML="Play";var g=a.DomEvent.stopPropagation;return a.DomEvent.on(this._button,"click",g).on(this._button,"mousedown",g).on(this._button,"dblclick",g).on(this._button,"click",a.DomEvent.preventDefault).on(this._button,"click",c,this),this._container}}),a.Playback.SliderControl=a.Control.extend({options:{position:"bottomleft"},initialize:function(a){this.playback=a},onAdd:function(b){function c(a){var b=Number(a.target.value);e.setCursor(b)}this._container=a.DomUtil.create("div","leaflet-control-layers leaflet-control-layers-expanded");var d=this,e=this.playback;this._slider=a.DomUtil.create("input","slider",this._container),this._slider.type="range",this._slider.min=e.getStartTime(),this._slider.max=e.getEndTime(),this._slider.value=e.getTime();var f=a.DomEvent.stopPropagation;return a.DomEvent.on(this._slider,"click",f).on(this._slider,"mousedown",f).on(this._slider,"dblclick",f).on(this._slider,"click",a.DomEvent.preventDefault).on(this._slider,"change",c,this).on(this._slider,"mousemove",c,this),e.addCallback(function(a){d._slider.value=a}),b.on("playback:add_tracks",function(){d._slider.min=e.getStartTime(),d._slider.max=e.getEndTime(),d._slider.value=e.getTime()}),this._container}}),a.Playback=a.Playback.Clock.extend({statics:{MoveableMarker:a.Playback.MoveableMarker,Track:a.Playback.Track,TrackController:a.Playback.TrackController,Clock:a.Playback.Clock,Util:a.Playback.Util,TracksLayer:a.Playback.TracksLayer,PlayControl:a.Playback.PlayControl,DateControl:a.Playback.DateControl,SliderControl:a.Playback.SliderControl},options:{tickLen:250,speed:1,maxInterpolationTime:3e5,tracksLayer:!0,playControl:!1,dateControl:!1,sliderControl:!1,layer:{},marker:{}},initialize:function(b,c,d,e){a.setOptions(this,e),this._map=b,this._trackController=new a.Playback.TrackController(b,null,this.options),a.Playback.Clock.prototype.initialize.call(this,this._trackController,d,this.options),this.options.tracksLayer&&(this._tracksLayer=new a.Playback.TracksLayer(b,e)),this.setData(c),this.options.playControl&&(this.playControl=new a.Playback.PlayControl(this),this.playControl.addTo(b)),this.options.sliderControl&&(this.sliderControl=new a.Playback.SliderControl(this),this.sliderControl.addTo(b)),this.options.dateControl&&(this.dateControl=new a.Playback.DateControl(this,e),this.dateControl.addTo(b))},clearData:function(){this._trackController.clearTracks(),this._tracksLayer&&this._tracksLayer.clearLayer()},setData:function(a){this.clearData(),this.addData(a,this.getTime()),this.setCursor(this.getStartTime())},addData:function(b,c){if(b){if(b instanceof Array)for(var d=0,e=b.length;e>d;d++)this._trackController.addTrack(new a.Playback.Track(b[d],this.options),c);else this._trackController.addTrack(new a.Playback.Track(b,this.options),c);this._map.fire("playback:set:data"),this.options.tracksLayer&&this._tracksLayer.addLayer(b)}},destroy:function(){this.clearData(),this.playControl&&this._map.removeControl(this.playControl),this.sliderControl&&this._map.removeControl(this.sliderControl),this.dateControl&&this._map.removeControl(this.dateControl)}}),a.Map.addInitHook(function(){this.options.playback&&(this.playback=new a.Playback(this))}),a.playback=function(b,c,d,e){return new a.Playback(b,c,d,e)},a.Playback});
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/android-geo.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/android-geo.js
deleted file mode 100644
index 861e58778..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/android-geo.js
+++ /dev/null
@@ -1,153 +0,0 @@
-function GeoMap(divId, latitude, longitude, zoom) {
- this.divId = divId;
- this.latitude = latitude;
- this.longitude = longitude;
- this.zoom = zoom;
- this.markers = new Object();
-
- // Create the map
- this.map = L.map(divId).setView([latitude, longitude], zoom);
-
- L.Icon.Default.imagePath = '/portal/store/carbon.super/fs/gadget/Android_Location_Map/img/marker';
-
- L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpandmbXliNDBjZWd2M2x6bDk3c2ZtOTkifQ._QA7i5Mpkd_m30IGElHziw', {
- maxZoom: 18,
- attribution: 'Map data © OpenStreetMap contributors, ' +
- 'CC-BY-SA , ' +
- 'Imagery © Mapbox ',
- id: 'mapbox.streets'
- }).addTo(this.map);
-
- this.addMarker = function(id, latitude, longitude, message) {
-
- // Move the map to keep the current location at the center
- this.center(latitude, longitude);
-
- if (!this.markers[id]) {
- marker = L.marker([latitude, longitude])
- marker.bindPopup(message).openPopup();
-
- // Add to the list of this.markers
- this.markers[id] = marker;
-
- // Add to the map
- this.map.addLayer(marker)
- } else {
- marker = this.markers[id];
- marker.setLatLng([latitude, longitude]);
- marker.setPopupContent(message);
- marker.update();
- }
- };
-
- this.removeMarker = function(id) {
- if (this.markers[id]) {
- this.map.removeLayer(this.markers[id])
- delete this.markers[id];
- }
- };
-
- this.center = function(latitude, longitude) {
- this.map.panTo([latitude, longitude]);
- };
-
- this.remove = function() {
- this.map.remove();
- document.getElementById('bottomBox').innerHTML = "";
- };
-
- this.showCurrentLocation = function(id, latitude, longitude, message) {
- this.addMarker(id, latitude, longitude, message);
- };
-
- this.showHeatMap = function(data) {
- this.heat = L.heatLayer(data).addTo(this.map);
- }
-
- this.showTimeline = function(data) {
- // Move the map to keep the current location at the center
- this.center(data.geometry.coordinates[0][1], data.geometry.coordinates[0][0]);
-
- // Get start/end times
- var startTime = new Date(data.properties.time[0]);
- var endTime = new Date(data.properties.time[data.properties.time.length - 1]);
-
- // Create a DataSet with data
- var timelineData = new vis.DataSet([{ start: startTime, end: endTime }]);
-
- // Set timeline options
- var timelineOptions = {
- "width": "100%",
- "height": "120px",
- "style": "box",
- "axisOnTop": true,
- "showCustomTime": true
- };
-
- // Setup timeline
- var timeline = new vis.Timeline(document.getElementById('bottomBox'), timelineData, timelineOptions);
-
- // Set custom time marker (blue)
- timeline.setCustomTime(startTime);
-
- // Playback options
- var playbackOptions = {
- playControl: true,
- dateControl: true,
-
- // layer and marker options
- layer: {
- pointToLayer: function(featureData, latlng) {
- var result = {};
-
- if (featureData && featureData.properties && featureData.properties.path_options) {
- result = featureData.properties.path_options;
- }
-
- if (!result.radius) {
- result.radius = 1;
- }
-
- return new L.CircleMarker(latlng, result);
- }
- },
-
- marker: {
- getPopup: function(featureData) {
- var result = '';
-
- if (featureData && featureData.properties && featureData.properties.title) {
- result = featureData.properties.title;
- }
-
- return result;
- }
- }
-
- };
-
- // Initialize playback
- var playback = new L.Playback(this.map, null, onPlaybackTimeChange, playbackOptions);
-
- playback.setData(data);
- // playback.addData(blueMountain);
-
- // Uncomment to test data reset;
- //playback.setData(blueMountain);
-
- // Set timeline time change event, so cursor is set after moving custom time (blue)
- timeline.on('timechange', onCustomTimeChange);
-
- // A callback so timeline is set after changing playback time
- function onPlaybackTimeChange(ms) {
- timeline.setCustomTime(new Date(ms));
- };
-
- //
- function onCustomTimeChange(properties) {
- if (!playback.isPlaying()) {
- playback.setCursor(properties.time.getTime());
- }
- }
- };
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/angular-leaflet-directive.min.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/angular-leaflet-directive.min.js
deleted file mode 100644
index cbcd8406b..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/angular-leaflet-directive.min.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/**!
- * The MIT License
- *
- * Copyright (c) 2013 the angular-leaflet-directive Team, http://tombatossals.github.io/angular-leaflet-directive
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * angular-leaflet-directive
- * https://github.com/tombatossals/angular-leaflet-directive
- *
- * @authors https://github.com/tombatossals/angular-leaflet-directive/graphs/contributors
- */
-
-/*!
-* angular-leaflet-directive 2015-11-06
-* angular-leaflet-directive - An AngularJS directive to easily interact with Leaflet maps
-* git: https://github.com/tombatossals/angular-leaflet-directive
-*/
-(function(angular){
-'use strict';
-!function(angular){"use strict";angular.module("leaflet-directive",[]).directive("leaflet",["$q","leafletData","leafletMapDefaults","leafletHelpers","leafletMapEvents",function(a,b,c,d,e){return{restrict:"EA",replace:!0,scope:{center:"=",lfCenter:"=",defaults:"=",maxbounds:"=",bounds:"=",markers:"=",legend:"=",geojson:"=",paths:"=",tiles:"=",layers:"=",controls:"=",decorations:"=",eventBroadcast:"=",markersWatchOptions:"=",geojsonWatchOptions:"="},transclude:!0,template:'',controller:["$scope",function(b){this._leafletMap=a.defer(),this.getMap=function(){return this._leafletMap.promise},this.getLeafletScope=function(){return b}}],link:function(a,f,g,h){function i(){isNaN(g.width)?f.css("width",g.width):f.css("width",g.width+"px")}function j(){isNaN(g.height)?f.css("height",g.height):f.css("height",g.height+"px")}var k=d.isDefined,l=c.setDefaults(a.defaults,g.id),m=e.getAvailableMapEvents(),n=e.addEvents;a.mapId=g.id,b.setDirectiveControls({},g.id),k(g.width)&&(i(),a.$watch(function(){return f[0].getAttribute("width")},function(){i(),o.invalidateSize()})),k(g.height)&&(j(),a.$watch(function(){return f[0].getAttribute("height")},function(){j(),o.invalidateSize()}));var o=new L.Map(f[0],c.getMapCreationDefaults(g.id));if(h._leafletMap.resolve(o),k(g.center)||k(g.lfCenter)||o.setView([l.center.lat,l.center.lng],l.center.zoom),!k(g.tiles)&&!k(g.layers)){var p=L.tileLayer(l.tileLayer,l.tileLayerOptions);p.addTo(o),b.setTiles(p,g.id)}if(k(o.zoomControl)&&k(l.zoomControlPosition)&&o.zoomControl.setPosition(l.zoomControlPosition),k(o.zoomControl)&&l.zoomControl===!1&&o.zoomControl.removeFrom(o),k(o.zoomsliderControl)&&k(l.zoomsliderControl)&&l.zoomsliderControl===!1&&o.zoomsliderControl.removeFrom(o),!k(g.eventBroadcast)){var q="broadcast";n(o,m,"eventName",a,q)}o.whenReady(function(){b.setMap(o,g.id)}),a.$on("$destroy",function(){c.reset(),o.remove(),b.unresolveMap(g.id)}),a.$on("invalidateSize",function(){o.invalidateSize()})}}}]),angular.module("leaflet-directive").factory("leafletBoundsHelpers",["$log","leafletHelpers",function(a,b){function c(a){return angular.isDefined(a)&&angular.isDefined(a.southWest)&&angular.isDefined(a.northEast)&&angular.isNumber(a.southWest.lat)&&angular.isNumber(a.southWest.lng)&&angular.isNumber(a.northEast.lat)&&angular.isNumber(a.northEast.lng)}var d=b.isArray,e=b.isNumber,f=b.isFunction,g=b.isDefined;return{createLeafletBounds:function(a){return c(a)?L.latLngBounds([a.southWest.lat,a.southWest.lng],[a.northEast.lat,a.northEast.lng]):void 0},isValidBounds:c,createBoundsFromArray:function(b){return d(b)&&2===b.length&&d(b[0])&&d(b[1])&&2===b[0].length&&2===b[1].length&&e(b[0][0])&&e(b[0][1])&&e(b[1][0])&&e(b[1][1])?{northEast:{lat:b[0][0],lng:b[0][1]},southWest:{lat:b[1][0],lng:b[1][1]}}:void a.error("[AngularJS - Leaflet] The bounds array is not valid.")},createBoundsFromLeaflet:function(b){if(!(g(b)&&f(b.getNorthEast)&&f(b.getSouthWest)))return void a.error("[AngularJS - Leaflet] The leaflet bounds is not valid object.");var c=b.getNorthEast(),d=b.getSouthWest();return{northEast:{lat:c.lat,lng:c.lng},southWest:{lat:d.lat,lng:d.lng}}}}}]),angular.module("leaflet-directive").factory("leafletControlHelpers",["$rootScope","$log","leafletHelpers","leafletLayerHelpers","leafletMapDefaults",function(a,b,c,d,e){var f=c.isDefined,g=c.isObject,h=d.createLayer,i={},j=c.errorHeader+" [Controls] ",k=function(a,b,c){var d=e.getDefaults(c);if(!d.controls.layers.visible)return!1;var h=!1;return g(a)&&Object.keys(a).forEach(function(b){var c=a[b];f(c.layerOptions)&&c.layerOptions.showOnSelector===!1||(h=!0)}),g(b)&&Object.keys(b).forEach(function(a){var c=b[a];f(c.layerParams)&&c.layerParams.showOnSelector===!1||(h=!0)}),h},l=function(a){var b=e.getDefaults(a),c={collapsed:b.controls.layers.collapsed,position:b.controls.layers.position,autoZIndex:!1};angular.extend(c,b.controls.layers.options);var d;return d=b.controls.layers&&f(b.controls.layers.control)?b.controls.layers.control.apply(this,[[],[],c]):new L.control.layers([],[],c)},m={draw:{isPluginLoaded:function(){return angular.isDefined(L.Control.Draw)?!0:(b.error(j+" Draw plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(a){return new L.Control.Draw(a)}},scale:{isPluginLoaded:function(){return!0},checkValidParams:function(){return!0},createControl:function(a){return new L.control.scale(a)}},fullscreen:{isPluginLoaded:function(){return angular.isDefined(L.Control.Fullscreen)?!0:(b.error(j+" Fullscreen plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(a){return new L.Control.Fullscreen(a)}},search:{isPluginLoaded:function(){return angular.isDefined(L.Control.Search)?!0:(b.error(j+" Search plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(a){return new L.Control.Search(a)}},custom:{},minimap:{isPluginLoaded:function(){return angular.isDefined(L.Control.MiniMap)?!0:(b.error(j+" Minimap plugin is not loaded."),!1)},checkValidParams:function(a){return f(a.layer)?!0:(b.warn(j+' minimap "layer" option should be defined.'),!1)},createControl:function(a){var c=h(a.layer);return f(c)?new L.Control.MiniMap(c,a):void b.warn(j+' minimap control "layer" could not be created.')}}};return{layersControlMustBeVisible:k,isValidControlType:function(a){return-1!==Object.keys(m).indexOf(a)},createControl:function(a,b){return m[a].checkValidParams(b)?m[a].createControl(b):void 0},updateLayersControl:function(a,b,c,d,e,g){var h,j=i[b],m=k(d,e,b);if(f(j)&&c){for(h in g.baselayers)j.removeLayer(g.baselayers[h]);for(h in g.overlays)j.removeLayer(g.overlays[h]);a.removeControl(j),delete i[b]}if(m){j=l(b),i[b]=j;for(h in d){var n=f(d[h].layerOptions)&&d[h].layerOptions.showOnSelector===!1;!n&&f(g.baselayers[h])&&j.addBaseLayer(g.baselayers[h],d[h].name)}for(h in e){var o=f(e[h].layerParams)&&e[h].layerParams.showOnSelector===!1;!o&&f(g.overlays[h])&&j.addOverlay(g.overlays[h],e[h].name)}a.addControl(j)}return m}}}]),angular.module("leaflet-directive").service("leafletData",["$log","$q","leafletHelpers",function(a,b,c){var d=c.getDefer,e=c.getUnresolvedDefer,f=c.setResolvedDefer,g={},h=this,i=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},j=["map","tiles","layers","paths","markers","geoJSON","UTFGrid","decorations","directiveControls"];j.forEach(function(a){g[a]={}}),this.unresolveMap=function(a){var b=c.obtainEffectiveMapId(g.map,a);j.forEach(function(a){g[a][b]=void 0})},j.forEach(function(a){var b=i(a);h["set"+b]=function(b,c){var d=e(g[a],c);d.resolve(b),f(g[a],c)},h["get"+b]=function(b){var c=d(g[a],b);return c.promise}})}]),angular.module("leaflet-directive").service("leafletDirectiveControlsHelpers",["$log","leafletData","leafletHelpers",function(a,b,c){var d=c.isDefined,e=c.isString,f=c.isObject,g=c.errorHeader,h=g+"[leafletDirectiveControlsHelpers",i=function(c,g,i,j){var k=h+".extend] ",l={};if(!d(g))return void a.error(k+"thingToAddName cannot be undefined");if(e(g)&&d(i)&&d(j))l[g]={create:i,clean:j};else{if(!f(g)||d(i)||d(j))return void a.error(k+"incorrect arguments");l=g}b.getDirectiveControls().then(function(a){angular.extend(a,l),b.setDirectiveControls(a,c)})};return{extend:i}}]),angular.module("leaflet-directive").service("leafletGeoJsonHelpers",["leafletHelpers","leafletIterators",function(a,b){var c=a,d=b,e=function(a,b){return this.lat=a,this.lng=b,this},f=function(a){return Array.isArray(a)&&2===a.length?a[1]:c.isDefined(a.type)&&"Point"===a.type?+a.coordinates[1]:+a.lat},g=function(a){return Array.isArray(a)&&2===a.length?a[0]:c.isDefined(a.type)&&"Point"===a.type?+a.coordinates[0]:+a.lng},h=function(a){if(c.isUndefined(a))return!1;if(c.isArray(a)){if(2===a.length&&c.isNumber(a[0])&&c.isNumber(a[1]))return!0}else if(c.isDefined(a.type)&&"Point"===a.type&&c.isArray(a.coordinates)&&2===a.coordinates.length&&c.isNumber(a.coordinates[0])&&c.isNumber(a.coordinates[1]))return!0;var b=d.all(["lat","lng"],function(b){return c.isDefined(a[b])&&c.isNumber(a[b])});return b},i=function(a){if(a&&h(a)){var b=null;if(Array.isArray(a)&&2===a.length)b=new e(a[1],a[0]);else{if(!c.isDefined(a.type)||"Point"!==a.type)return a;b=new e(a.coordinates[1],a.coordinates[0])}return angular.extend(a,b)}};return{getLat:f,getLng:g,validateCoords:h,getCoords:i}}]),angular.module("leaflet-directive").service("leafletHelpers",["$q","$log",function(a,b){function c(a,c){var d,f;if(angular.isDefined(c))d=c;else if(0===Object.keys(a).length)d="main";else if(Object.keys(a).length>=1)for(f in a)a.hasOwnProperty(f)&&(d=f);else b.error(e+"- You have more than 1 map on the DOM, you must provide the map ID to the leafletData.getXXX call");return d}function d(b,d){var e,f=c(b,d);return angular.isDefined(b[f])&&b[f].resolvedDefer!==!0?e=b[f].defer:(e=a.defer(),b[f]={defer:e,resolvedDefer:!1}),e}var e="[AngularJS - Leaflet] ",f=angular.copy,g=f,h=function(a,b){var c;if(a&&angular.isObject(a))return null!==b&&angular.isString(b)?(c=a,b.split(".").forEach(function(a){c&&(c=c[a])}),c):b},i=function(a){return a.split(".").reduce(function(a,b){return a+'["'+b+'"]'})},j=function(a){return a.reduce(function(a,b){return a+"."+b})},k=function(a){return angular.isDefined(a)&&null!==a},l=function(a){return!k(a)},m=/([\:\-\_]+(.))/g,n=/^moz([A-Z])/,o=/^((?:x|data)[\:\-_])/i,p=function(a){return a.replace(m,function(a,b,c,d){return d?c.toUpperCase():c}).replace(n,"Moz$1")},q=function(a){return p(a.replace(o,""))};return{camelCase:p,directiveNormalize:q,copy:f,clone:g,errorHeader:e,getObjectValue:h,getObjectArrayPath:i,getObjectDotPath:j,defaultTo:function(a,b){return k(a)?a:b},isTruthy:function(a){return"true"===a||a===!0},isEmpty:function(a){return 0===Object.keys(a).length},isUndefinedOrEmpty:function(a){return angular.isUndefined(a)||null===a||0===Object.keys(a).length},isDefined:k,isUndefined:l,isNumber:angular.isNumber,isString:angular.isString,isArray:angular.isArray,isObject:angular.isObject,isFunction:angular.isFunction,equals:angular.equals,isValidCenter:function(a){return angular.isDefined(a)&&angular.isNumber(a.lat)&&angular.isNumber(a.lng)&&angular.isNumber(a.zoom)},isValidPoint:function(a){return angular.isDefined(a)?angular.isArray(a)?2===a.length&&angular.isNumber(a[0])&&angular.isNumber(a[1]):angular.isNumber(a.lat)&&angular.isNumber(a.lng):!1},isSameCenterOnMap:function(a,b){var c=b.getCenter(),d=b.getZoom();return a.lat&&a.lng&&c.lat.toFixed(4)===a.lat.toFixed(4)&&c.lng.toFixed(4)===a.lng.toFixed(4)&&d===a.zoom?!0:!1},safeApply:function(a,b){var c=a.$root.$$phase;"$apply"===c||"$digest"===c?a.$eval(b):a.$evalAsync(b)},obtainEffectiveMapId:c,getDefer:function(a,b){var e,f=c(a,b);return e=angular.isDefined(a[f])&&a[f].resolvedDefer!==!1?a[f].defer:d(a,b)},getUnresolvedDefer:d,setResolvedDefer:function(a,b){var d=c(a,b);a[d].resolvedDefer=!0},rangeIsSupported:function(){var a=document.createElement("input");return a.setAttribute("type","range"),"range"===a.type},FullScreenControlPlugin:{isLoaded:function(){return angular.isDefined(L.Control.Fullscreen)}},MiniMapControlPlugin:{isLoaded:function(){return angular.isDefined(L.Control.MiniMap)}},AwesomeMarkersPlugin:{isLoaded:function(){return angular.isDefined(L.AwesomeMarkers)&&angular.isDefined(L.AwesomeMarkers.Icon)},is:function(a){return this.isLoaded()?a instanceof L.AwesomeMarkers.Icon:!1},equal:function(a,b){return this.isLoaded()&&this.is(a)?angular.equals(a,b):!1}},VectorMarkersPlugin:{isLoaded:function(){return angular.isDefined(L.VectorMarkers)&&angular.isDefined(L.VectorMarkers.Icon)},is:function(a){return this.isLoaded()?a instanceof L.VectorMarkers.Icon:!1},equal:function(a,b){return this.isLoaded()&&this.is(a)?angular.equals(a,b):!1}},DomMarkersPlugin:{isLoaded:function(){return angular.isDefined(L.DomMarkers)&&angular.isDefined(L.DomMarkers.Icon)?!0:!1},is:function(a){return this.isLoaded()?a instanceof L.DomMarkers.Icon:!1},equal:function(a,b){return this.isLoaded()&&this.is(a)?angular.equals(a,b):!1}},PolylineDecoratorPlugin:{isLoaded:function(){return angular.isDefined(L.PolylineDecorator)?!0:!1},is:function(a){return this.isLoaded()?a instanceof L.PolylineDecorator:!1},equal:function(a,b){return this.isLoaded()&&this.is(a)?angular.equals(a,b):!1}},MakiMarkersPlugin:{isLoaded:function(){return angular.isDefined(L.MakiMarkers)&&angular.isDefined(L.MakiMarkers.Icon)?!0:!1},is:function(a){return this.isLoaded()?a instanceof L.MakiMarkers.Icon:!1},equal:function(a,b){return this.isLoaded()&&this.is(a)?angular.equals(a,b):!1}},ExtraMarkersPlugin:{isLoaded:function(){return angular.isDefined(L.ExtraMarkers)&&angular.isDefined(L.ExtraMarkers.Icon)?!0:!1},is:function(a){return this.isLoaded()?a instanceof L.ExtraMarkers.Icon:!1},equal:function(a,b){return this.isLoaded()&&this.is(a)?angular.equals(a,b):!1}},LabelPlugin:{isLoaded:function(){return angular.isDefined(L.Label)},is:function(a){return this.isLoaded()?a instanceof L.MarkerClusterGroup:!1}},MarkerClusterPlugin:{isLoaded:function(){return angular.isDefined(L.MarkerClusterGroup)},is:function(a){return this.isLoaded()?a instanceof L.MarkerClusterGroup:!1}},GoogleLayerPlugin:{isLoaded:function(){return angular.isDefined(L.Google)},is:function(a){return this.isLoaded()?a instanceof L.Google:!1}},LeafletProviderPlugin:{isLoaded:function(){return angular.isDefined(L.TileLayer.Provider)},is:function(a){return this.isLoaded()?a instanceof L.TileLayer.Provider:!1}},ChinaLayerPlugin:{isLoaded:function(){return angular.isDefined(L.tileLayer.chinaProvider)}},HeatLayerPlugin:{isLoaded:function(){return angular.isDefined(L.heatLayer)}},WebGLHeatMapLayerPlugin:{isLoaded:function(){return angular.isDefined(L.TileLayer.WebGLHeatMap)}},BingLayerPlugin:{isLoaded:function(){return angular.isDefined(L.BingLayer)},is:function(a){return this.isLoaded()?a instanceof L.BingLayer:!1}},WFSLayerPlugin:{isLoaded:function(){return void 0!==L.GeoJSON.WFS},is:function(a){return this.isLoaded()?a instanceof L.GeoJSON.WFS:!1}},AGSBaseLayerPlugin:{isLoaded:function(){return void 0!==L.esri&&void 0!==L.esri.basemapLayer},is:function(a){return this.isLoaded()?a instanceof L.esri.basemapLayer:!1}},AGSLayerPlugin:{isLoaded:function(){return void 0!==lvector&&void 0!==lvector.AGS},is:function(a){return this.isLoaded()?a instanceof lvector.AGS:!1}},AGSFeatureLayerPlugin:{isLoaded:function(){return void 0!==L.esri&&void 0!==L.esri.featureLayer},is:function(a){return this.isLoaded()?a instanceof L.esri.featureLayer:!1}},AGSTiledMapLayerPlugin:{isLoaded:function(){return void 0!==L.esri&&void 0!==L.esri.tiledMapLayer},is:function(a){return this.isLoaded()?a instanceof L.esri.tiledMapLayer:!1}},AGSDynamicMapLayerPlugin:{isLoaded:function(){return void 0!==L.esri&&void 0!==L.esri.dynamicMapLayer},is:function(a){return this.isLoaded()?a instanceof L.esri.dynamicMapLayer:!1}},AGSImageMapLayerPlugin:{isLoaded:function(){return void 0!==L.esri&&void 0!==L.esri.imageMapLayer},is:function(a){return this.isLoaded()?a instanceof L.esri.imageMapLayer:!1}},AGSClusteredLayerPlugin:{isLoaded:function(){return void 0!==L.esri&&void 0!==L.esri.clusteredFeatureLayer},is:function(a){return this.isLoaded()?a instanceof L.esri.clusteredFeatureLayer:!1}},AGSHeatmapLayerPlugin:{isLoaded:function(){return void 0!==L.esri&&void 0!==L.esri.heatmapFeatureLayer},is:function(a){return this.isLoaded()?a instanceof L.esri.heatmapFeatureLayer:!1}},YandexLayerPlugin:{isLoaded:function(){return angular.isDefined(L.Yandex)},is:function(a){return this.isLoaded()?a instanceof L.Yandex:!1}},GeoJSONPlugin:{isLoaded:function(){return angular.isDefined(L.TileLayer.GeoJSON)},is:function(a){return this.isLoaded()?a instanceof L.TileLayer.GeoJSON:!1}},UTFGridPlugin:{isLoaded:function(){return angular.isDefined(L.UtfGrid)},is:function(a){return this.isLoaded()?a instanceof L.UtfGrid:(b.error("[AngularJS - Leaflet] No UtfGrid plugin found."),!1)}},CartoDB:{isLoaded:function(){return cartodb},is:function(){return!0}},Leaflet:{DivIcon:{is:function(a){return a instanceof L.DivIcon},equal:function(a,b){return this.is(a)?angular.equals(a,b):!1}},Icon:{is:function(a){return a instanceof L.Icon},equal:function(a,b){return this.is(a)?angular.equals(a,b):!1}}},watchOptions:{doWatch:!0,isDeep:!0,individual:{doWatch:!0,isDeep:!0}}}}]),angular.module("leaflet-directive").service("leafletIterators",["$log","leafletHelpers",function(a,b){var c,d=b,e=b.errorHeader+"leafletIterators: ",f=Object.keys,g=d.isFunction,h=d.isObject,i=Math.pow(2,53)-1,j=function(a){var b=null!==a&&a.length;return d.isNumber(b)&&b>=0&&i>=b},k=function(a){return a},l=function(a){return function(b){return null===b?void 0:b[a]}},m=function(a,b,c){if(void 0===b)return a;switch(null===c?3:c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)};case 4:return function(c,d,e,f){return a.call(b,c,d,e,f)}}return function(){return a.apply(b,arguments)}},n=function(a,b){return function(c){var d=arguments.length;if(2>d||null===c)return c;for(var e=1;d>e;e++)for(var f=arguments[e],g=a(f),h=g.length,i=0;h>i;i++){var j=g[i];b&&void 0!==c[j]||(c[j]=f[j])}return c}},o=null;c=o=n(f);var p,q=function(a,b){var c=f(b),d=c.length;if(null===a)return!d;for(var e=Object(a),g=0;d>g;g++){var h=c[g];if(b[h]!==e[h]||!(h in e))return!1}return!0},r=null;p=r=function(a){return a=c({},a),function(b){return q(b,a)}};var s,t=function(a,b,c){return null===a?k:g(a)?m(a,b,c):h(a)?p(a):l(a)},u=null;s=u=function(a,b,c){b=t(b,c);for(var d=!j(a)&&f(a),e=(d||a).length,g=0;e>g;g++){var h=d?d[g]:g;if(!b(a[h],h,a))return!1}return!0};var v=function(b,c,f,g){return f||d.isDefined(b)&&d.isDefined(c)?d.isFunction(c)?!1:(g=d.defaultTo(c,"cb"),a.error(e+g+" is not a function"),!0):!0},w=function(a,b,c){if(!v(void 0,c,!0,"internalCb")&&!v(a,b))for(var d in a)a.hasOwnProperty(d)&&c(a[d],d)},x=function(a,b){w(a,b,function(a,c){b(a,c)})};return{each:x,forEach:x,every:s,all:u}}]),angular.module("leaflet-directive").factory("leafletLayerHelpers",["$rootScope","$log","$q","leafletHelpers","leafletIterators",function($rootScope,$log,$q,leafletHelpers,leafletIterators){function isValidLayerType(a){return isString(a.type)?-1===Object.keys(layerTypes).indexOf(a.type)?($log.error("[AngularJS - Leaflet] A layer must have a valid type: "+Object.keys(layerTypes)),!1):layerTypes[a.type].mustHaveUrl&&!isString(a.url)?($log.error("[AngularJS - Leaflet] A base layer must have an url"),!1):layerTypes[a.type].mustHaveData&&!isDefined(a.data)?($log.error('[AngularJS - Leaflet] The base layer must have a "data" array attribute'),!1):layerTypes[a.type].mustHaveLayer&&!isDefined(a.layer)?($log.error("[AngularJS - Leaflet] The type of layer "+a.type+" must have an layer defined"),!1):layerTypes[a.type].mustHaveBounds&&!isDefined(a.bounds)?($log.error("[AngularJS - Leaflet] The type of layer "+a.type+" must have bounds defined"),!1):layerTypes[a.type].mustHaveKey&&!isDefined(a.key)?($log.error("[AngularJS - Leaflet] The type of layer "+a.type+" must have key defined"),!1):!0:($log.error("[AngularJS - Leaflet] A layer must have a valid type defined."),!1)}function createLayer(a){if(isValidLayerType(a)){if(!isString(a.name))return void $log.error("[AngularJS - Leaflet] A base layer must have a name");isObject(a.layerParams)||(a.layerParams={}),isObject(a.layerOptions)||(a.layerOptions={});for(var b in a.layerParams)a.layerOptions[b]=a.layerParams[b];var c={url:a.url,data:a.data,options:a.layerOptions,layer:a.layer,icon:a.icon,type:a.layerType,bounds:a.bounds,key:a.key,apiKey:a.apiKey,pluginOptions:a.pluginOptions,user:a.user};return layerTypes[a.type].createLayer(c)}}function safeAddLayer(a,b){b&&"function"==typeof b.addTo?b.addTo(a):a.addLayer(b)}function safeRemoveLayer(a,b,c){if(isDefined(c)&&isDefined(c.loadedDefer))if(angular.isFunction(c.loadedDefer)){var d=c.loadedDefer();$log.debug("Loaded Deferred",d);var e=d.length;if(e>0)for(var f=function(){e--,0===e&&a.removeLayer(b)},g=0;g'+b.error.message+"";else if("arcgis"===c)for(var e=0;e'+f.layerName+"";for(var g=0;g'+h.label+"
"}}else"image"===c&&(a.innerHTML=' ')},b=function(b,c,d,e){return function(){var f=L.DomUtil.create("div",c);return L.Browser.touch?L.DomEvent.on(f,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(f),L.DomEvent.on(f,"mousewheel",L.DomEvent.stopPropagation)),a(f,b,d,e),f}},c=function(a,b){return function(){for(var c=L.DomUtil.create("div",b),d=0;d'+a.labels[d]+"
";return L.Browser.touch?L.DomEvent.on(c,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(c),L.DomEvent.on(c,"mousewheel",L.DomEvent.stopPropagation)),c}};return{getOnAddLegend:b,getOnAddArrayLegend:c,updateLegend:a}}),angular.module("leaflet-directive").factory("leafletMapDefaults",["$q","leafletHelpers",function(a,b){function c(){return{keyboard:!0,dragging:!0,worldCopyJump:!1,doubleClickZoom:!0,scrollWheelZoom:!0,tap:!0,touchZoom:!0,zoomControl:!0,zoomsliderControl:!1,zoomControlPosition:"topleft",attributionControl:!0,controls:{layers:{visible:!0,position:"topright",collapsed:!0}},nominatim:{server:" http://nominatim.openstreetmap.org/search"},crs:L.CRS.EPSG3857,tileLayer:"//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",tileLayerOptions:{attribution:'© OpenStreetMap contributors'},path:{weight:10,opacity:1,color:"#0000ff"},center:{lat:0,lng:0,zoom:1}}}var d=b.isDefined,e=b.isObject,f=b.obtainEffectiveMapId,g={};return{reset:function(){g={}},getDefaults:function(a){var b=f(g,a);return g[b]},getMapCreationDefaults:function(a){var b=f(g,a),c=g[b],e={maxZoom:c.maxZoom,keyboard:c.keyboard,dragging:c.dragging,zoomControl:c.zoomControl,doubleClickZoom:c.doubleClickZoom,scrollWheelZoom:c.scrollWheelZoom,tap:c.tap,touchZoom:c.touchZoom,attributionControl:c.attributionControl,worldCopyJump:c.worldCopyJump,crs:c.crs};if(d(c.minZoom)&&(e.minZoom=c.minZoom),d(c.zoomAnimation)&&(e.zoomAnimation=c.zoomAnimation),d(c.fadeAnimation)&&(e.fadeAnimation=c.fadeAnimation),d(c.markerZoomAnimation)&&(e.markerZoomAnimation=c.markerZoomAnimation),c.map)for(var h in c.map)e[h]=c.map[h];return e},setDefaults:function(a,b){var h=c();d(a)&&(h.doubleClickZoom=d(a.doubleClickZoom)?a.doubleClickZoom:h.doubleClickZoom,h.scrollWheelZoom=d(a.scrollWheelZoom)?a.scrollWheelZoom:h.doubleClickZoom,h.tap=d(a.tap)?a.tap:h.tap,h.touchZoom=d(a.touchZoom)?a.touchZoom:h.doubleClickZoom,h.zoomControl=d(a.zoomControl)?a.zoomControl:h.zoomControl,h.zoomsliderControl=d(a.zoomsliderControl)?a.zoomsliderControl:h.zoomsliderControl,h.attributionControl=d(a.attributionControl)?a.attributionControl:h.attributionControl,h.tileLayer=d(a.tileLayer)?a.tileLayer:h.tileLayer,h.zoomControlPosition=d(a.zoomControlPosition)?a.zoomControlPosition:h.zoomControlPosition,h.keyboard=d(a.keyboard)?a.keyboard:h.keyboard,h.dragging=d(a.dragging)?a.dragging:h.dragging,d(a.controls)&&angular.extend(h.controls,a.controls),e(a.crs)?h.crs=a.crs:d(L.CRS[a.crs])&&(h.crs=L.CRS[a.crs]),d(a.center)&&angular.copy(a.center,h.center),d(a.tileLayerOptions)&&angular.copy(a.tileLayerOptions,h.tileLayerOptions),d(a.maxZoom)&&(h.maxZoom=a.maxZoom),d(a.minZoom)&&(h.minZoom=a.minZoom),d(a.zoomAnimation)&&(h.zoomAnimation=a.zoomAnimation),d(a.fadeAnimation)&&(h.fadeAnimation=a.fadeAnimation),d(a.markerZoomAnimation)&&(h.markerZoomAnimation=a.markerZoomAnimation),d(a.worldCopyJump)&&(h.worldCopyJump=a.worldCopyJump),d(a.map)&&(h.map=a.map),d(a.path)&&(h.path=a.path));var i=f(g,b);return g[i]=h,h}}}]),angular.module("leaflet-directive").service("leafletMarkersHelpers",["$rootScope","$timeout","leafletHelpers","$log","$compile","leafletGeoJsonHelpers",function(a,b,c,d,e,f){var g=c.isDefined,h=c.defaultTo,i=c.MarkerClusterPlugin,j=c.AwesomeMarkersPlugin,k=c.VectorMarkersPlugin,l=c.MakiMarkersPlugin,m=c.ExtraMarkersPlugin,n=c.DomMarkersPlugin,o=c.safeApply,p=c,q=c.isString,r=c.isNumber,s=c.isObject,t={},u=f,v=c.errorHeader,w=function(a){
-var b="";return["_icon","_latlng","_leaflet_id","_map","_shadow"].forEach(function(c){b+=c+": "+h(a[c],"undefined")+" \n"}),"[leafletMarker] : \n"+b},x=function(a,b){var c=b?console:d;c.debug(w(a))},y=function(b){if(g(b)&&g(b.type)&&"awesomeMarker"===b.type)return j.isLoaded()||d.error(v+" The AwesomeMarkers Plugin is not loaded."),new L.AwesomeMarkers.icon(b);if(g(b)&&g(b.type)&&"vectorMarker"===b.type)return k.isLoaded()||d.error(v+" The VectorMarkers Plugin is not loaded."),new L.VectorMarkers.icon(b);if(g(b)&&g(b.type)&&"makiMarker"===b.type)return l.isLoaded()||d.error(v+"The MakiMarkers Plugin is not loaded."),new L.MakiMarkers.icon(b);if(g(b)&&g(b.type)&&"extraMarker"===b.type)return m.isLoaded()||d.error(v+"The ExtraMarkers Plugin is not loaded."),new L.ExtraMarkers.icon(b);if(g(b)&&g(b.type)&&"div"===b.type)return new L.divIcon(b);if(g(b)&&g(b.type)&&"dom"===b.type){n.isLoaded()||d.error(v+"The DomMarkers Plugin is not loaded.");var c=angular.isFunction(b.getMarkerScope)?b.getMarkerScope():a,f=e(b.template)(c),h=angular.copy(b);return h.element=f[0],new L.DomMarkers.icon(h)}if(g(b)&&g(b.type)&&"icon"===b.type)return b.icon;var i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAGmklEQVRYw7VXeUyTZxjvNnfELFuyIzOabermMZEeQC/OclkO49CpOHXOLJl/CAURuYbQi3KLgEhbrhZ1aDwmaoGqKII6odATmH/scDFbdC7LvFqOCc+e95s2VG50X/LLm/f4/Z7neY/ne18aANCmAr5E/xZf1uDOkTcGcWR6hl9247tT5U7Y6SNvWsKT63P58qbfeLJG8M5qcgTknrvvrdDbsT7Ml+tv82X6vVxJE33aRmgSyYtcWVMqX97Yv2JvW39UhRE2HuyBL+t+gK1116ly06EeWFNlAmHxlQE0OMiV6mQCScusKRlhS3QLeVJdl1+23h5dY4FNB3thrbYboqptEFlphTC1hSpJnbRvxP4NWgsE5Jyz86QNNi/5qSUTGuFk1gu54tN9wuK2wc3o+Wc13RCmsoBwEqzGcZsxsvCSy/9wJKf7UWf1mEY8JWfewc67UUoDbDjQC+FqK4QqLVMGGR9d2wurKzqBk3nqIT/9zLxRRjgZ9bqQgub+DdoeCC03Q8j+0QhFhBHR/eP3U/zCln7Uu+hihJ1+bBNffLIvmkyP0gpBZWYXhKussK6mBz5HT6M1Nqpcp+mBCPXosYQfrekGvrjewd59/GvKCE7TbK/04/ZV5QZYVWmDwH1mF3xa2Q3ra3DBC5vBT1oP7PTj4C0+CcL8c7C2CtejqhuCnuIQHaKHzvcRfZpnylFfXsYJx3pNLwhKzRAwAhEqG0SpusBHfAKkxw3w4627MPhoCH798z7s0ZnBJ/MEJbZSbXPhER2ih7p2ok/zSj2cEJDd4CAe+5WYnBCgR2uruyEw6zRoW6/DWJ/OeAP8pd/BGtzOZKpG8oke0SX6GMmRk6GFlyAc59K32OTEinILRJRchah8HQwND8N435Z9Z0FY1EqtxUg+0SO6RJ/mmXz4VuS+DpxXC3gXmZwIL7dBSH4zKE50wESf8qwVgrP1EIlTO5JP9Igu0aexdh28F1lmAEGJGfh7jE6ElyM5Rw/FDcYJjWhbeiBYoYNIpc2FT/SILivp0F1ipDWk4BIEo2VuodEJUifhbiltnNBIXPUFCMpthtAyqws/BPlEF/VbaIxErdxPphsU7rcCp8DohC+GvBIPJS/tW2jtvTmmAeuNO8BNOYQeG8G/2OzCJ3q+soYB5i6NhMaKr17FSal7GIHheuV3uSCY8qYVuEm1cOzqdWr7ku/R0BDoTT+DT+ohCM6/CCvKLKO4RI+dXPeAuaMqksaKrZ7L3FE5FIFbkIceeOZ2OcHO6wIhTkNo0ffgjRGxEqogXHYUPHfWAC/lADpwGcLRY3aeK4/oRGCKYcZXPVoeX/kelVYY8dUGf8V5EBRbgJXT5QIPhP9ePJi428JKOiEYhYXFBqou2Guh+p/mEB1/RfMw6rY7cxcjTrneI1FrDyuzUSRm9miwEJx8E/gUmqlyvHGkneiwErR21F3tNOK5Tf0yXaT+O7DgCvALTUBXdM4YhC/IawPU+2PduqMvuaR6eoxSwUk75ggqsYJ7VicsnwGIkZBSXKOUww73WGXyqP+J2/b9c+gi1YAg/xpwck3gJuucNrh5JvDPvQr0WFXf0piyt8f8/WI0hV4pRxxkQZdJDfDJNOAmM0Ag8jyT6hz0WGXWuP94Yh2jcfjmXAGvHCMslRimDHYuHuDsy2QtHuIavznhbYURq5R57KpzBBRZKPJi8eQg48h4j8SDdowifdIrEVdU+gbO6QNvRRt4ZBthUaZhUnjlYObNagV3keoeru3rU7rcuceqU1mJBxy+BWZYlNEBH+0eH4vRiB+OYybU2hnblYlTvkHinM4m54YnxSyaZYSF6R3jwgP7udKLGIX6r/lbNa9N6y5MFynjWDtrHd75ZvTYAPO/6RgF0k76mQla3FGq7dO+cH8sKn0Vo7nDllwAhqwLPkxrHwWmHJOo+AKJ4rab5OgrM7rVu8eWb2Pu0Dh4eDgXoOfvp7Y7QeqknRmvcTBEyq9m/HQQSCSz6LHq3z0yzsNySRfMS253wl2KyRDbcZPcfJKjZmSEOjcxyi+Y8dUOtsIEH6R2wNykdqrkYJ0RV92H0W58pkfQk7cKevsLK10Py8SdMGfXNXATY+pPbyJR/ET6n9nIfztNtZYRV9XniQu9IA2vOVgy4ir7GCLVmmd+zjkH0eAF9Po6K61pmCXHxU5rHMYd1ftc3owjwRSVRzLjKvqZEty6cRUD7jGqiOdu5HG6MdHjNcNYGqfDm5YRzLBBCCDl/2bk8a8gdbqcfwECu62Fg/HrggAAAABJRU5ErkJggg==",o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAYAAACoYAD2AAAC5ElEQVRYw+2YW4/TMBCF45S0S1luXZCABy5CgLQgwf//S4BYBLTdJLax0fFqmB07nnQfEGqkIydpVH85M+NLjPe++dcPc4Q8Qh4hj5D/AaQJx6H/4TMwB0PeBNwU7EGQAmAtsNfAzoZkgIa0ZgLMa4Aj6CxIAsjhjOCoL5z7Glg1JAOkaicgvQBXuncwJAWjksLtBTWZe04CnYRktUGdilALppZBOgHGZcBzL6OClABvMSVIzyBjazOgrvACf1ydC5mguqAVg6RhdkSWQFj2uxfaq/BrIZOLEWgZdALIDvcMcZLD8ZbLC9de4yR1sYMi4G20S4Q/PWeJYxTOZn5zJXANZHIxAd4JWhPIloTJZhzMQduM89WQ3MUVAE/RnhAXpTycqys3NZALOBbB7kFrgLesQl2h45Fcj8L1tTSohUwuxhy8H/Qg6K7gIs+3kkaigQCOcyEXCHN07wyQazhrmIulvKMQAwMcmLNqyCVyMAI+BuxSMeTk3OPikLY2J1uE+VHQk6ANrhds+tNARqBeaGc72cK550FP4WhXmFmcMGhTwAR1ifOe3EvPqIegFmF+C8gVy0OfAaWQPMR7gF1OQKqGoBjq90HPMP01BUjPOqGFksC4emE48tWQAH0YmvOgF3DST6xieJgHAWxPAHMuNhrImIdvoNOKNWIOcE+UXE0pYAnkX6uhWsgVXDxHdTfCmrEEmMB2zMFimLVOtiiajxiGWrbU52EeCdyOwPEQD8LqyPH9Ti2kgYMf4OhSKB7qYILbBv3CuVTJ11Y80oaseiMWOONc/Y7kJYe0xL2f0BaiFTxknHO5HaMGMublKwxFGzYdWsBF174H/QDknhTHmHHN39iWFnkZx8lPyM8WHfYELmlLKtgWNmFNzQcC1b47gJ4hL19i7o65dhH0Negbca8vONZoP7doIeOC9zXm8RjuL0Gf4d4OYaU5ljo3GYiqzrWQHfJxA6ALhDpVKv9qYeZA8eM3EhfPSCmpuD0AAAAASUVORK5CYII=";return g(b)&&g(b.iconUrl)?new L.Icon(b):new L.Icon.Default({iconUrl:i,shadowUrl:o,iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]})},z=function(a){g(t[a])&&t.splice(a,1)},A=function(){t={}},B=function(a,b,c){if(a.closePopup(),g(c)&&g(c.overlays))for(var d in c.overlays)if((c.overlays[d]instanceof L.LayerGroup||c.overlays[d]instanceof L.FeatureGroup)&&c.overlays[d].hasLayer(a))return void c.overlays[d].removeLayer(a);if(g(t))for(var e in t)t[e].hasLayer(a)&&t[e].removeLayer(a);b.hasLayer(a)&&b.removeLayer(a)},C=function(a,b){var c=a._popup._container.offsetHeight,d=new L.Point(a._popup._containerLeft,-c-a._popup._containerBottom),e=b.layerPointToContainerPoint(d);null!==e&&a._popup._adjustPan()},D=function(a,b){e(a._popup._contentNode)(b)},E=function(a,c,d){var e=a._popup._contentNode.innerText||a._popup._contentNode.textContent;e.length<1&&b(function(){E(a,c,d)});var f=a._popup._contentNode.offsetWidth;return a._popup._updateLayout(),a._popup._updatePosition(),a._popup.options.autoPan&&C(a,d),f},F=function(b,c,e){var f=angular.isFunction(c.getMessageScope)?c.getMessageScope():a,h=g(c.compileMessage)?c.compileMessage:!0;if(h){if(!g(b._popup)||!g(b._popup._contentNode))return d.error(v+"Popup is invalid or does not have any content."),!1;D(b,f),E(b,c,e)}},G=function(b,c){var d=angular.isFunction(c.getMessageScope)?c.getMessageScope():a,f=angular.isFunction(c.getLabelScope)?c.getLabelScope():d,h=g(c.compileMessage)?c.compileMessage:!0;p.LabelPlugin.isLoaded()&&g(c.label)&&(g(c.label.options)&&c.label.options.noHide===!0&&b.showLabel(),h&&g(b.label)&&e(b.label._container)(f))},H=function(a,b,c,e,f,h,i){if(g(b)){if(!u.validateCoords(a))return d.warn("There are problems with lat-lng data, please verify your marker model"),void B(c,i,h);var j=a===b;if(g(a.iconAngle)&&b.iconAngle!==a.iconAngle&&c.setIconAngle(a.iconAngle),q(a.layer)||q(b.layer)&&(g(h.overlays[b.layer])&&h.overlays[b.layer].hasLayer(c)&&(h.overlays[b.layer].removeLayer(c),c.closePopup()),i.hasLayer(c)||i.addLayer(c)),(r(a.opacity)||r(parseFloat(a.opacity)))&&a.opacity!==b.opacity&&c.setOpacity(a.opacity),q(a.layer)&&b.layer!==a.layer){if(q(b.layer)&&g(h.overlays[b.layer])&&h.overlays[b.layer].hasLayer(c)&&h.overlays[b.layer].removeLayer(c),c.closePopup(),i.hasLayer(c)&&i.removeLayer(c),!g(h.overlays[a.layer]))return void d.error(v+"You must use a name of an existing layer");var k=h.overlays[a.layer];if(!(k instanceof L.LayerGroup||k instanceof L.FeatureGroup))return void d.error(v+'A marker can only be added to a layer of type "group" or "featureGroup"');k.addLayer(c),i.hasLayer(c)&&a.focus===!0&&c.openPopup()}if(a.draggable!==!0&&b.draggable===!0&&g(c.dragging)&&c.dragging.disable(),a.draggable===!0&&b.draggable!==!0&&(c.dragging?c.dragging.enable():L.Handler.MarkerDrag&&(c.dragging=new L.Handler.MarkerDrag(c),c.options.draggable=!0,c.dragging.enable())),s(a.icon)||s(b.icon)&&(c.setIcon(y()),c.closePopup(),c.unbindPopup(),q(a.message)&&c.bindPopup(a.message,a.popupOptions)),s(a.icon)&&s(b.icon)&&!angular.equals(a.icon,b.icon)){var l=!1;c.dragging&&(l=c.dragging.enabled()),c.setIcon(y(a.icon)),l&&c.dragging.enable(),c.closePopup(),c.unbindPopup(),q(a.message)&&(c.bindPopup(a.message,a.popupOptions),i.hasLayer(c)&&a.focus===!0&&c.openPopup())}!q(a.message)&&q(b.message)&&(c.closePopup(),c.unbindPopup()),p.LabelPlugin.isLoaded()&&(g(a.label)&&g(a.label.message)?"label"in b&&"message"in b.label&&!angular.equals(a.label.message,b.label.message)?c.updateLabelContent(a.label.message):!angular.isFunction(c.getLabel)||angular.isFunction(c.getLabel)&&!g(c.getLabel())?(c.bindLabel(a.label.message,a.label.options),G(c,a)):G(c,a):(!("label"in a)||"message"in a.label)&&angular.isFunction(c.unbindLabel)&&c.unbindLabel()),q(a.message)&&!q(b.message)&&c.bindPopup(a.message,a.popupOptions),q(a.message)&&q(b.message)&&a.message!==b.message&&c.setPopupContent(a.message);var m=!1;a.focus!==!0&&b.focus===!0&&(c.closePopup(),m=!0),(a.focus===!0&&(!g(b.focus)||b.focus===!1)||j&&a.focus===!0)&&(c.openPopup(),m=!0),b.zIndexOffset!==a.zIndexOffset&&c.setZIndexOffset(a.zIndexOffset);var n=c.getLatLng(),o=q(a.layer)&&p.MarkerClusterPlugin.is(h.overlays[a.layer]);o?m?(a.lat!==b.lat||a.lng!==b.lng)&&(h.overlays[a.layer].removeLayer(c),c.setLatLng([a.lat,a.lng]),h.overlays[a.layer].addLayer(c)):n.lat!==a.lat||n.lng!==a.lng?(h.overlays[a.layer].removeLayer(c),c.setLatLng([a.lat,a.lng]),h.overlays[a.layer].addLayer(c)):a.lat!==b.lat||a.lng!==b.lng?(h.overlays[a.layer].removeLayer(c),c.setLatLng([a.lat,a.lng]),h.overlays[a.layer].addLayer(c)):s(a.icon)&&s(b.icon)&&!angular.equals(a.icon,b.icon)&&(h.overlays[a.layer].removeLayer(c),h.overlays[a.layer].addLayer(c)):(n.lat!==a.lat||n.lng!==a.lng)&&c.setLatLng([a.lat,a.lng])}};return{resetMarkerGroup:z,resetMarkerGroups:A,deleteMarker:B,manageOpenPopup:F,manageOpenLabel:G,createMarker:function(a){if(!g(a)||!u.validateCoords(a))return void d.error(v+"The marker definition is not valid.");var b=u.getCoords(a);if(!g(b))return void d.error(v+"Unable to get coordinates from markerData.");var c={icon:y(a.icon),title:g(a.title)?a.title:"",draggable:g(a.draggable)?a.draggable:!1,clickable:g(a.clickable)?a.clickable:!0,riseOnHover:g(a.riseOnHover)?a.riseOnHover:!1,zIndexOffset:g(a.zIndexOffset)?a.zIndexOffset:0,iconAngle:g(a.iconAngle)?a.iconAngle:0};for(var e in a)a.hasOwnProperty(e)&&!c.hasOwnProperty(e)&&(c[e]=a[e]);var f=new L.marker(b,c);return q(a.message)||f.unbindPopup(),f},addMarkerToGroup:function(a,b,c,e){return q(b)?i.isLoaded()?(g(t[b])||(t[b]=new L.MarkerClusterGroup(c),e.addLayer(t[b])),void t[b].addLayer(a)):void d.error(v+"The MarkerCluster plugin is not loaded."):void d.error(v+"The marker group you have specified is invalid.")},listenMarkerEvents:function(a,b,c,d,e){a.on("popupopen",function(){o(c,function(){(g(a._popup)||g(a._popup._contentNode))&&(b.focus=!0,F(a,b,e))})}),a.on("popupclose",function(){o(c,function(){b.focus=!1})}),a.on("add",function(){o(c,function(){"label"in b&&G(a,b)})})},updateMarker:H,addMarkerWatcher:function(a,b,c,d,e,f){var i=p.getObjectArrayPath("markers."+b);f=h(f,!0);var j=c.$watch(i,function(f,h){return g(f)?void H(f,h,a,b,c,d,e):(B(a,e,d),void j())},f)},string:w,log:x}}]),angular.module("leaflet-directive").factory("leafletPathsHelpers",["$rootScope","$log","leafletHelpers",function(a,b,c){function d(a){return a.filter(function(a){return k(a)}).map(function(a){return e(a)})}function e(a){return i(a)?new L.LatLng(a[0],a[1]):new L.LatLng(a.lat,a.lng)}function f(a){return a.map(function(a){return d(a)})}function g(a,b){for(var c={},d=0;d0&&e(a[0].boundingbox)?i.resolve(a[0]):i.reject("[Nominatim] Invalid address")}),i.promise}}}]),angular.module("leaflet-directive").directive("bounds",["$log","$timeout","$http","leafletHelpers","nominatimService","leafletBoundsHelpers",function(a,b,c,d,e,f){return{restrict:"A",scope:!1,replace:!1,require:["leaflet"],link:function(c,g,h,i){var j=d.isDefined,k=f.createLeafletBounds,l=i[0].getLeafletScope(),m=i[0],n=d.errorHeader+" [Bounds] ",o=function(a){return 0===a._southWest.lat&&0===a._southWest.lng&&0===a._northEast.lat&&0===a._northEast.lng};m.getMap().then(function(d){l.$on("boundsChanged",function(a){var c=a.currentScope,e=d.getBounds();if(!o(e)&&!c.settingBoundsFromScope){c.settingBoundsFromLeaflet=!0;var f={northEast:{lat:e._northEast.lat,lng:e._northEast.lng},southWest:{lat:e._southWest.lat,lng:e._southWest.lng},options:e.options};angular.equals(c.bounds,f)||(c.bounds=f),b(function(){c.settingBoundsFromLeaflet=!1})}});var f;l.$watch("bounds",function(g){if(!c.settingBoundsFromLeaflet){if(j(g.address)&&g.address!==f)return c.settingBoundsFromScope=!0,e.query(g.address,h.id).then(function(a){var b=a.boundingbox,c=[[b[0],b[2]],[b[1],b[3]]];d.fitBounds(c)},function(b){a.error(n+" "+b+".")}),f=g.address,void b(function(){c.settingBoundsFromScope=!1});var i=k(g);i&&!d.getBounds().equals(i)&&(c.settingBoundsFromScope=!0,d.fitBounds(i,g.options),b(function(){c.settingBoundsFromScope=!1}))}},!0)})}}}]);var centerDirectiveTypes=["center","lfCenter"],centerDirectives={};centerDirectiveTypes.forEach(function(a){centerDirectives[a]=["$log","$q","$location","$timeout","leafletMapDefaults","leafletHelpers","leafletBoundsHelpers","leafletMapEvents",function(b,c,d,e,f,g,h,i){var j,k=g.isDefined,l=g.isNumber,m=g.isSameCenterOnMap,n=g.safeApply,o=g.isValidCenter,p=h.isValidBounds,q=g.isUndefinedOrEmpty,r=g.errorHeader,s=function(a,b){return k(a)&&p(a)&&q(b)};return{restrict:"A",scope:!1,replace:!1,require:"leaflet",controller:function(){j=c.defer(),this.getCenter=function(){return j.promise}},link:function(c,g,p,q){var t=q.getLeafletScope(),u=t[a];q.getMap().then(function(c){var g=f.getDefaults(p.id);if(-1!==p[a].search("-"))return b.error(r+' The "center" variable can\'t use a "-" on its key name: "'+p[a]+'".'),void c.setView([g.center.lat,g.center.lng],g.center.zoom);if(s(t.bounds,u))c.fitBounds(h.createLeafletBounds(t.bounds),t.bounds.options),u=c.getCenter(),n(t,function(b){angular.extend(b[a],{lat:c.getCenter().lat,lng:c.getCenter().lng,zoom:c.getZoom(),autoDiscover:!1})}),n(t,function(a){var b=c.getBounds();a.bounds={northEast:{lat:b._northEast.lat,lng:b._northEast.lng},southWest:{lat:b._southWest.lat,lng:b._southWest.lng}}});else{if(!k(u))return b.error(r+' The "center" property is not defined in the main scope'),void c.setView([g.center.lat,g.center.lng],g.center.zoom);k(u.lat)&&k(u.lng)||k(u.autoDiscover)||angular.copy(g.center,u)}var q,v;if("yes"===p.urlHashCenter){var w=function(){var a,b=d.search();if(k(b.c)){var c=b.c.split(":");3===c.length&&(a={lat:parseFloat(c[0]),lng:parseFloat(c[1]),zoom:parseInt(c[2],10)})}return a};q=w(),t.$on("$locationChangeSuccess",function(b){var d=b.currentScope,e=w();k(e)&&!m(e,c)&&angular.extend(d[a],{lat:e.lat,lng:e.lng,zoom:e.zoom})})}t.$watch(a,function(a){return t.settingCenterFromLeaflet?void 0:(k(q)&&(angular.copy(q,a),q=void 0),o(a)||a.autoDiscover===!0?a.autoDiscover===!0?(l(a.zoom)||c.setView([g.center.lat,g.center.lng],g.center.zoom),void(l(a.zoom)&&a.zoom>g.center.zoom?c.locate({setView:!0,maxZoom:a.zoom}):k(g.maxZoom)?c.locate({setView:!0,maxZoom:g.maxZoom}):c.locate({setView:!0}))):void(v&&m(a,c)||(t.settingCenterFromScope=!0,c.setView([a.lat,a.lng],a.zoom),i.notifyCenterChangedToBounds(t,c),e(function(){t.settingCenterFromScope=!1}))):void b.warn(r+" invalid 'center'"))},!0),c.whenReady(function(){v=!0}),c.on("moveend",function(){j.resolve(),i.notifyCenterUrlHashChanged(t,c,p,d.search()),m(u,c)||t.settingCenterFromScope||(t.settingCenterFromLeaflet=!0,n(t,function(b){t.settingCenterFromScope||angular.extend(b[a],{lat:c.getCenter().lat,lng:c.getCenter().lng,zoom:c.getZoom(),autoDiscover:!1}),i.notifyCenterChangedToBounds(t,c),e(function(){t.settingCenterFromLeaflet=!1})}))}),u.autoDiscover===!0&&c.on("locationerror",function(){b.warn(r+" The Geolocation API is unauthorized on this page."),o(u)?(c.setView([u.lat,u.lng],u.zoom),i.notifyCenterChangedToBounds(t,c)):(c.setView([g.center.lat,g.center.lng],g.center.zoom),i.notifyCenterChangedToBounds(t,c))})})}}}]}),centerDirectiveTypes.forEach(function(a){angular.module("leaflet-directive").directive(a,centerDirectives[a])}),angular.module("leaflet-directive").directive("controls",["$log","leafletHelpers","leafletControlHelpers",function(a,b,c){return{restrict:"A",scope:!1,replace:!1,require:"?^leaflet",link:function(d,e,f,g){if(g){var h=c.createControl,i=c.isValidControlType,j=g.getLeafletScope(),k=b.isDefined,l=b.isArray,m={},n=b.errorHeader+" [Controls] ";g.getMap().then(function(b){j.$watchCollection("controls",function(c){for(var d in m)k(c[d])||(b.hasControl(m[d])&&b.removeControl(m[d]),delete m[d]);for(var e in c){var f,g=k(c[e].type)?c[e].type:e;if(!i(g))return void a.error(n+" Invalid control type: "+g+".");if("custom"!==g)f=h(g,c[e]),b.addControl(f),m[e]=f;else{var j=c[e];if(l(j))for(var o in j){var p=j[o];b.addControl(p),m[e]=k(m[e])?m[e].concat([p]):[p]}else b.addControl(j),m[e]=j}}})})}}}}]),angular.module("leaflet-directive").directive("decorations",["$log","leafletHelpers",function(a,b){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(c,d,e,f){function g(b){return k(b)&&k(b.coordinates)&&(j.isLoaded()||a.error("[AngularJS - Leaflet] The PolylineDecorator Plugin is not loaded.")),L.polylineDecorator(b.coordinates)}function h(a,b){return k(a)&&k(b)&&k(b.coordinates)&&k(b.patterns)?(a.setPaths(b.coordinates),a.setPatterns(b.patterns),a):void 0}var i=f.getLeafletScope(),j=b.PolylineDecoratorPlugin,k=b.isDefined,l={};f.getMap().then(function(a){i.$watch("decorations",function(b){for(var c in l)k(b[c])&&angular.equals(b[c],l)||(a.removeLayer(l[c]),delete l[c]);for(var d in b){var e=b[d],f=g(e);k(f)&&(l[d]=f,a.addLayer(f),h(f,e))}},!0)})}}}]),angular.module("leaflet-directive").directive("eventBroadcast",["$log","$rootScope","leafletHelpers","leafletMapEvents","leafletIterators",function(a,b,c,d,e){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(b,f,g,h){var i=c.isObject,j=c.isDefined,k=h.getLeafletScope(),l=k.eventBroadcast,m=d.getAvailableMapEvents(),n=d.addEvents;h.getMap().then(function(b){var c=[],d="broadcast";j(l.map)?i(l.map)?("emit"!==l.map.logic&&"broadcast"!==l.map.logic?a.warn("[AngularJS - Leaflet] Available event propagation logic are: 'emit' or 'broadcast'."):d=l.map.logic,i(l.map.enable)&&l.map.enable.length>=0?e.each(l.map.enable,function(a){-1===c.indexOf(a)&&-1!==m.indexOf(a)&&c.push(a)}):a.warn("[AngularJS - Leaflet] event-broadcast.map.enable must be an object check your model.")):a.warn("[AngularJS - Leaflet] event-broadcast.map must be an object check your model."):c=m,n(b,c,"eventName",k,d)})}}}]),angular.module("leaflet-directive").directive("geojson",["$log","$rootScope","leafletData","leafletHelpers","leafletWatchHelpers","leafletDirectiveControlsHelpers","leafletIterators","leafletGeoJsonEvents",function(a,b,c,d,e,f,g,h){var i=e.maybeWatch,j=d.watchOptions,k=f.extend,l=d,m=g;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(a,b,e,f){var g=d.isDefined,n=f.getLeafletScope(),o={},p=!1;f.getMap().then(function(a){var b=n.geojsonWatchOptions||j,f=function(a,b){var c;return c=angular.isFunction(a.onEachFeature)?a.onEachFeature:function(c,f){d.LabelPlugin.isLoaded()&&g(c.properties.description)&&f.bindLabel(c.properties.description),h.bindEvents(e.id,f,null,c,n,b,{resetStyleOnMouseout:a.resetStyleOnMouseout,mapId:e.id})}},q=l.isDefined(e.geojsonNested)&&l.isTruthy(e.geojsonNested),r=function(){if(o){var b=function(b){g(b)&&a.hasLayer(b)&&a.removeLayer(b)};return q?void m.each(o,function(a){b(a)}):void b(o)}},s=function(b,d){var h=angular.copy(b);if(g(h)&&g(h.data)){var i=f(h,d);g(h.options)||(h.options={style:h.style,filter:h.filter,onEachFeature:i,pointToLayer:h.pointToLayer});var j=L.geoJson(h.data,h.options);d&&l.isString(d)?o[d]=j:o=j,j.addTo(a),p||(p=!0,c.setGeoJSON(o,e.id))}},t=function(a){if(r(),q){if(!a||!Object.keys(a).length)return;return void m.each(a,function(a,b){s(a,b)})}s(a)};k(e.id,"geojson",t,r),i(n,"geojson",b,function(a){t(a)})})}}}]),angular.module("leaflet-directive").directive("layercontrol",["$filter","$log","leafletData","leafletHelpers",function(a,b,c,d){return{restrict:"E",scope:{icons:"=?",autoHideOpacity:"=?",showGroups:"=?",title:"@",baseTitle:"@",overlaysTitle:"@"},replace:!0,transclude:!1,require:"^leaflet",controller:["$scope","$element","$sce",function(a,e,f){b.debug("[Angular Directive - Layers] layers",a,e);var g=d.safeApply,h=d.isDefined;angular.extend(a,{baselayer:"",oldGroup:"",layerProperties:{},groupProperties:{},rangeIsSupported:d.rangeIsSupported(),changeBaseLayer:function(b,e){d.safeApply(a,function(d){d.baselayer=b,c.getMap().then(function(e){c.getLayers().then(function(c){if(!e.hasLayer(c.baselayers[b])){for(var f in d.layers.baselayers)d.layers.baselayers[f].icon=d.icons.unradio,e.hasLayer(c.baselayers[f])&&e.removeLayer(c.baselayers[f]);e.addLayer(c.baselayers[b]),d.layers.baselayers[b].icon=a.icons.radio}})})}),e.preventDefault()},moveLayer:function(b,c,d){var e=Object.keys(a.layers.baselayers).length;if(c>=1+e&&c<=a.overlaysArray.length+e){var f;for(var h in a.layers.overlays)if(a.layers.overlays[h].index===c){f=a.layers.overlays[h];break}f&&g(a,function(){f.index=b.index,b.index=c})}d.stopPropagation(),d.preventDefault()},initIndex:function(b,c){var d=Object.keys(a.layers.baselayers).length;b.index=h(b.index)?b.index:c+d+1},initGroup:function(b){a.groupProperties[b]=a.groupProperties[b]?a.groupProperties[b]:{}},toggleOpacity:function(b,c){if(c.visible){if(a.autoHideOpacity&&!a.layerProperties[c.name].opacityControl)for(var d in a.layerProperties)a.layerProperties[d].opacityControl=!1;a.layerProperties[c.name].opacityControl=!a.layerProperties[c.name].opacityControl}b.stopPropagation(),b.preventDefault()},toggleLegend:function(b){a.layerProperties[b.name].showLegend=!a.layerProperties[b.name].showLegend},showLegend:function(b){return b.legend&&a.layerProperties[b.name].showLegend},unsafeHTML:function(a){return f.trustAsHtml(a)},getOpacityIcon:function(b){return b.visible&&a.layerProperties[b.name].opacityControl?a.icons.close:a.icons.open},getGroupIcon:function(b){return b.visible?a.icons.check:a.icons.uncheck},changeOpacity:function(b){var d=a.layerProperties[b.name].opacity;c.getMap().then(function(e){c.getLayers().then(function(c){var f;for(var g in a.layers.overlays)if(a.layers.overlays[g]===b){f=c.overlays[g];break}e.hasLayer(f)&&(f.setOpacity&&f.setOpacity(d/100),f.getLayers&&f.eachLayer&&f.eachLayer(function(a){a.setOpacity&&a.setOpacity(d/100)}))})})},changeGroupVisibility:function(b){if(h(a.groupProperties[b])){var c=a.groupProperties[b].visible;for(var d in a.layers.overlays){var e=a.layers.overlays[d];e.group===b&&(e.visible=c)}}}});var i=e.get(0);L.Browser.touch?L.DomEvent.on(i,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(i),L.DomEvent.on(i,"mousewheel",L.DomEvent.stopPropagation))}],template:'',link:function(a,b,e,f){var g=d.isDefined,h=f.getLeafletScope(),i=h.layers;a.$watch("icons",function(){var b={uncheck:"fa fa-square-o",check:"fa fa-check-square-o",radio:"fa fa-dot-circle-o",unradio:"fa fa-circle-o",up:"fa fa-angle-up",down:"fa fa-angle-down",open:"fa fa-angle-double-down",close:"fa fa-angle-double-up",toggleLegend:"fa fa-pencil-square-o"};g(a.icons)?(angular.extend(b,a.icons),angular.extend(a.icons,b)):a.icons=b}),e.order=!g(e.order)||"normal"!==e.order&&"reverse"!==e.order?"normal":e.order,a.order="normal"===e.order,a.orderNumber="normal"===e.order?-1:1,a.layers=i,f.getMap().then(function(b){h.$watch("layers.baselayers",function(d){var e={};c.getLayers().then(function(c){var f;for(f in d){var g=d[f];g.icon=a.icons[b.hasLayer(c.baselayers[f])?"radio":"unradio"],e[f]=g}a.baselayersArray=e})}),h.$watch("layers.overlays",function(b){var d=[],e={};c.getLayers().then(function(c){var f;for(f in b){var h=b[f];h.icon=a.icons[h.visible?"check":"uncheck"],d.push(h),g(a.layerProperties[h.name])||(a.layerProperties[h.name]={opacity:g(h.layerOptions.opacity)?100*h.layerOptions.opacity:100,opacityControl:!1,showLegend:!0}),g(h.group)&&(g(a.groupProperties[h.group])||(a.groupProperties[h.group]={visible:!1}),e[h.group]=g(e[h.group])?e[h.group]:{count:0,visibles:0},e[h.group].count++,h.visible&&e[h.group].visibles++),g(h.index)&&c.overlays[f].setZIndex&&c.overlays[f].setZIndex(b[f].index)}for(f in e)a.groupProperties[f].visible=e[f].visibles===e[f].count;a.overlaysArray=d})},!0)})}}}]),angular.module("leaflet-directive").directive("layers",["$log","$q","leafletData","leafletHelpers","leafletLayerHelpers","leafletControlHelpers",function(a,b,c,d,e,f){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",controller:["$scope",function(a){a._leafletLayers=b.defer(),this.getLayers=function(){return a._leafletLayers.promise}}],link:function(a,b,g,h){var i=d.isDefined,j={},k=h.getLeafletScope(),l=k.layers,m=e.createLayer,n=e.safeAddLayer,o=e.safeRemoveLayer,p=f.updateLayersControl,q=!1;h.getMap().then(function(b){a._leafletLayers.resolve(j),c.setLayers(j,g.id),j.baselayers={},j.overlays={};var d=g.id,e=!1;for(var f in l.baselayers){var h=m(l.baselayers[f]);i(h)?(j.baselayers[f]=h,l.baselayers[f].top===!0&&(n(b,j.baselayers[f]),e=!0)):delete l.baselayers[f]}!e&&Object.keys(j.baselayers).length>0&&n(b,j.baselayers[Object.keys(l.baselayers)[0]]);for(f in l.overlays){var r=m(l.overlays[f]);i(r)?(j.overlays[f]=r,l.overlays[f].visible===!0&&n(b,j.overlays[f])):delete l.overlays[f]}k.$watch("layers.baselayers",function(a,c){if(angular.equals(a,c))return q=p(b,d,q,a,l.overlays,j),!0;for(var e in j.baselayers)(!i(a[e])||a[e].doRefresh)&&(b.hasLayer(j.baselayers[e])&&b.removeLayer(j.baselayers[e]),delete j.baselayers[e],a[e]&&a[e].doRefresh&&(a[e].doRefresh=!1));for(var f in a)if(i(j.baselayers[f]))a[f].top!==!0||b.hasLayer(j.baselayers[f])?a[f].top===!1&&b.hasLayer(j.baselayers[f])&&b.removeLayer(j.baselayers[f]):n(b,j.baselayers[f]);else{var g=m(a[f]);i(g)&&(j.baselayers[f]=g,a[f].top===!0&&n(b,j.baselayers[f]))}var h=!1;for(var k in j.baselayers)if(b.hasLayer(j.baselayers[k])){h=!0;break}!h&&Object.keys(j.baselayers).length>0&&n(b,j.baselayers[Object.keys(j.baselayers)[0]]),q=p(b,d,q,a,l.overlays,j)},!0),k.$watch("layers.overlays",function(a,c){if(angular.equals(a,c))return q=p(b,d,q,l.baselayers,a,j),!0;for(var e in j.overlays)if(!i(a[e])||a[e].doRefresh){if(b.hasLayer(j.overlays[e])){var f=i(a[e])?a[e].layerOptions:null;o(b,j.overlays[e],f)}delete j.overlays[e],a[e]&&a[e].doRefresh&&(a[e].doRefresh=!1)}for(var g in a){if(i(j.overlays[g]))a[g].visible&&!b.hasLayer(j.overlays[g])?n(b,j.overlays[g]):a[g].visible===!1&&b.hasLayer(j.overlays[g])&&o(b,j.overlays[g],a[g].layerOptions);else{
-var h=m(a[g]);if(!i(h))continue;j.overlays[g]=h,a[g].visible===!0&&n(b,j.overlays[g])}a[g].visible&&b._loaded&&a[g].data&&"heatmap"===a[g].type&&(j.overlays[g].setData(a[g].data),j.overlays[g].update())}q=p(b,d,q,l.baselayers,a,j)},!0)})}}}]),angular.module("leaflet-directive").directive("legend",["$log","$http","leafletHelpers","leafletLegendHelpers",function(a,b,c,d){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(e,f,g,h){var i,j,k,l,m=c.isArray,n=c.isDefined,o=c.isFunction,p=h.getLeafletScope(),q=p.legend;p.$watch("legend",function(a){n(a)&&(i=a.legendClass?a.legendClass:"legend",j=a.position||"bottomright",l=a.type||"arcgis")},!0),h.getMap().then(function(c){p.$watch("legend",function(b){return n(b)?n(b.url)||"arcgis"!==l||m(b.colors)&&m(b.labels)&&b.colors.length===b.labels.length?n(b.url)?void a.info("[AngularJS - Leaflet] loading legend service."):(n(k)&&(k.removeFrom(c),k=null),k=L.control({position:j}),"arcgis"===l&&(k.onAdd=d.getOnAddArrayLegend(b,i)),void k.addTo(c)):void a.warn("[AngularJS - Leaflet] legend.colors and legend.labels must be set."):void(n(k)&&(k.removeFrom(c),k=null))}),p.$watch("legend.url",function(e){n(e)&&b.get(e).success(function(a){n(k)?d.updateLegend(k.getContainer(),a,l,e):(k=L.control({position:j}),k.onAdd=d.getOnAddLegend(a,i,l,e),k.addTo(c)),n(q.loadedData)&&o(q.loadedData)&&q.loadedData()}).error(function(){a.warn("[AngularJS - Leaflet] legend.url not loaded.")})})})}}}]),angular.module("leaflet-directive").directive("markers",["$log","$rootScope","$q","leafletData","leafletHelpers","leafletMapDefaults","leafletMarkersHelpers","leafletMarkerEvents","leafletIterators","leafletWatchHelpers","leafletDirectiveControlsHelpers",function(a,b,c,d,e,f,g,h,i,j,k){var l=e.isDefined,m=e.errorHeader,n=e,o=e.isString,p=g.addMarkerWatcher,q=g.updateMarker,r=g.listenMarkerEvents,s=g.addMarkerToGroup,t=g.createMarker,u=g.deleteMarker,v=i,w=e.watchOptions,x=j.maybeWatch,y=k.extend,z=function(a,b,c){if(Object.keys(a).length){if(c&&o(c)){if(!a[c]||!Object.keys(a[c]).length)return;return a[c][b]}return a[b]}},A=function(a,b,c,d){return d&&o(d)?(l(b[d])||(b[d]={}),b[d][c]=a):b[c]=a,a},B=function(b,c,d,e,f,g){if(!o(b))return a.error(m+" A layername must be a string"),!1;if(!l(c))return a.error(m+" You must add layers to the directive if the markers are going to use this functionality."),!1;if(!l(c.overlays)||!l(c.overlays[b]))return a.error(m+' A marker can only be added to a layer of type "group"'),!1;var h=c.overlays[b];return h instanceof L.LayerGroup||h instanceof L.FeatureGroup?(h.addLayer(e),!f&&g.hasLayer(e)&&d.focus===!0&&e.openPopup(),!0):(a.error(m+' Adding a marker to an overlay needs a overlay of the type "group" or "featureGroup"'),!1)},C=function(b,c,d,e,f,g,i,j,k,o){for(var u in c)if(!o[u])if(-1===u.search("-")){var v=n.copy(c[u]),w=n.getObjectDotPath(k?[k,u]:[u]),x=z(g,u,k);if(l(x)){var y=l(y)?d[u]:void 0;q(v,y,x,w,i,f,e)}else{var C=t(v),D=(v?v.layer:void 0)||k;if(!l(C)){a.error(m+" Received invalid data on the marker "+u+".");continue}if(A(C,g,u,k),l(v.message)&&C.bindPopup(v.message,v.popupOptions),l(v.group)){var E=l(v.groupOption)?v.groupOption:null;s(C,v.group,E,e)}if(n.LabelPlugin.isLoaded()&&l(v.label)&&l(v.label.message)&&C.bindLabel(v.label.message,v.label.options),l(v)&&(l(v.layer)||l(k))){var F=B(D,f,v,C,j.individual.doWatch,e);if(!F)continue}else l(v.group)||(e.addLayer(C),j.individual.doWatch||v.focus!==!0||C.openPopup());j.individual.doWatch&&p(C,w,i,f,e,j.individual.isDeep),r(C,v,i,j.individual.doWatch,e),h.bindEvents(b,C,w,v,i,D)}}else a.error('The marker can\'t use a "-" on his key name: "'+u+'".')},D=function(b,c,d,e,f){var g,h,i=!1,j=!1,k=l(c);for(var o in d)i||(a.debug(m+"[markers] destroy: "),i=!0),k&&(h=b[o],g=c[o],j=angular.equals(h,g)&&e),l(b)&&Object.keys(b).length&&l(b[o])&&Object.keys(b[o]).length&&!j||f&&n.isFunction(f)&&f(h,g,o)},E=function(b,c,d,e,f){D(b,c,d,!1,function(b,c,g){a.debug(m+"[marker] is deleting marker: "+g),u(d[g],e,f),delete d[g]})},F=function(b,c,d){var e={};return D(b,c,d,!0,function(b,c,d){a.debug(m+"[marker] is already rendered, marker: "+d),e[d]=b}),e};return{restrict:"A",scope:!1,replace:!1,require:["leaflet","?layers"],link:function(a,b,e,f){var g=f[0],h=g.getLeafletScope();g.getMap().then(function(a){var b,g={};b=l(f[1])?f[1].getLayers:function(){var a=c.defer();return a.resolve(),a.promise};var i=h.markersWatchOptions||w;l(e.watchMarkers)&&(i.doWatch=i.individual.doWatch=!l(e.watchMarkers)||n.isTruthy(e.watchMarkers));var j=l(e.markersNested)&&n.isTruthy(e.markersNested);b().then(function(b){var c=function(c,d){return j?void v.each(c,function(c,e){var f=l(f)?d[e]:void 0;E(c,f,g[e],a,b)}):void E(c,d,g,a,b)},f=function(d,f){c(d,f);var k=null;return j?void v.each(d,function(c,j){var m=l(m)?f[j]:void 0;k=F(d[j],m,g[j]),C(e.id,c,f,a,b,g,h,i,j,k)}):(k=F(d,f,g),void C(e.id,d,f,a,b,g,h,i,void 0,k))};y(e.id,"markers",f,c),d.setMarkers(g,e.id),x(h,"markers",i,function(a,b){f(a,b)})})})}}}]),angular.module("leaflet-directive").directive("maxbounds",["$log","leafletMapDefaults","leafletBoundsHelpers","leafletHelpers",function(a,b,c,d){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(a,b,e,f){var g=f.getLeafletScope(),h=c.isValidBounds,i=d.isNumber;f.getMap().then(function(a){g.$watch("maxbounds",function(b){if(!h(b))return void a.setMaxBounds();var d=c.createLeafletBounds(b);i(b.pad)&&(d=d.pad(b.pad)),a.setMaxBounds(d),e.center||e.lfCenter||a.fitBounds(d)})})}}}]),angular.module("leaflet-directive").directive("paths",["$log","$q","leafletData","leafletMapDefaults","leafletHelpers","leafletPathsHelpers","leafletPathEvents",function(a,b,c,d,e,f,g){return{restrict:"A",scope:!1,replace:!1,require:["leaflet","?layers"],link:function(h,i,j,k){var l=k[0],m=e.isDefined,n=e.isString,o=l.getLeafletScope(),p=o.paths,q=f.createPath,r=g.bindPathEvents,s=f.setPathOptions;l.getMap().then(function(f){var g,h=d.getDefaults(j.id);g=m(k[1])?k[1].getLayers:function(){var a=b.defer();return a.resolve(),a.promise},m(p)&&g().then(function(b){var d={};c.setPaths(d,j.id);var g=!m(j.watchPaths)||"true"===j.watchPaths,i=function(a,c){var d=o.$watch('paths["'+c+'"]',function(c,e){if(!m(c)){if(m(e.layer))for(var g in b.overlays){var h=b.overlays[g];h.removeLayer(a)}return f.removeLayer(a),void d()}s(a,c.type,c)},!0)};o.$watchCollection("paths",function(c){for(var k in d)m(c[k])||(f.removeLayer(d[k]),delete d[k]);for(var l in c)if(0!==l.search("\\$"))if(-1===l.search("-")){if(!m(d[l])){var p=c[l],t=q(l,c[l],h);if(m(t)&&m(p.message)&&t.bindPopup(p.message,p.popupOptions),e.LabelPlugin.isLoaded()&&m(p.label)&&m(p.label.message)&&t.bindLabel(p.label.message,p.label.options),m(p)&&m(p.layer)){if(!n(p.layer)){a.error("[AngularJS - Leaflet] A layername must be a string");continue}if(!m(b)){a.error("[AngularJS - Leaflet] You must add layers to the directive if the markers are going to use this functionality.");continue}if(!m(b.overlays)||!m(b.overlays[p.layer])){a.error('[AngularJS - Leaflet] A path can only be added to a layer of type "group"');continue}var u=b.overlays[p.layer];if(!(u instanceof L.LayerGroup||u instanceof L.FeatureGroup)){a.error('[AngularJS - Leaflet] Adding a path to an overlay needs a overlay of the type "group" or "featureGroup"');continue}d[l]=t,u.addLayer(t),g?i(t,l):s(t,p.type,p)}else m(t)&&(d[l]=t,f.addLayer(t),g?i(t,l):s(t,p.type,p));r(j.id,t,l,p,o)}}else a.error('[AngularJS - Leaflet] The path name "'+l+'" is not valid. It must not include "-" and a number.')})})})}}}]),angular.module("leaflet-directive").directive("tiles",["$log","leafletData","leafletMapDefaults","leafletHelpers",function(a,b,c,d){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(e,f,g,h){var i=d.isDefined,j=h.getLeafletScope(),k=j.tiles;return i(k)&&i(k.url)?void h.getMap().then(function(a){var d,e=c.getDefaults(g.id);j.$watch("tiles",function(c,f){var h=e.tileLayerOptions,j=e.tileLayer;return!i(c.url)&&i(d)?void a.removeLayer(d):i(d)?!i(c.url)||!i(c.options)||c.type===f.type&&angular.equals(c.options,h)?void(i(c.url)&&d.setUrl(c.url)):(a.removeLayer(d),h=e.tileLayerOptions,angular.copy(c.options,h),j=c.url,d="wms"===c.type?L.tileLayer.wms(j,h):L.tileLayer(j,h),d.addTo(a),void b.setTiles(d,g.id)):(i(c.options)&&angular.copy(c.options,h),i(c.url)&&(j=c.url),d="wms"===c.type?L.tileLayer.wms(j,h):L.tileLayer(j,h),d.addTo(a),void b.setTiles(d,g.id))},!0)}):void a.warn("[AngularJS - Leaflet] The 'tiles' definition doesn't have the 'url' property.")}}}]),["markers","geojson"].forEach(function(a){angular.module("leaflet-directive").directive(a+"WatchOptions",["$log","$rootScope","$q","leafletData","leafletHelpers",function(b,c,d,e,f){var g=f.isDefined,h=f.errorHeader,i=f.isObject,j=f.watchOptions;return{restrict:"A",scope:!1,replace:!1,require:["leaflet"],link:function(c,d,e,f){var k=f[0],l=k.getLeafletScope();k.getMap().then(function(){g(c[a+"WatchOptions"])&&(i(c[a+"WatchOptions"])?angular.extend(j,c[a+"WatchOptions"]):b.error(h+"["+a+"WatchOptions] is not an object"),l[a+"WatchOptions"]=j)})}}}])}),angular.module("leaflet-directive").factory("LeafletEventsHelpersFactory",["$rootScope","$q","$log","leafletHelpers",function(a,b,c,d){var e=d.safeApply,f=d.isDefined,g=d.isObject,h=d.isArray,i=d.errorHeader,j=function(a,b){this.rootBroadcastName=a,c.debug("LeafletEventsHelpersFactory: lObjectType: "+b+"rootBroadcastName: "+a),this.lObjectType=b};return j.prototype.getAvailableEvents=function(){return[]},j.prototype.genDispatchEvent=function(a,b,d,e,f,g,h,i,j){var k=this;return a=a||"",a&&(a="."+a),function(l){var m=k.rootBroadcastName+a+"."+b;c.debug(m),k.fire(e,m,d,l,l.target||f,h,g,i,j)}},j.prototype.fire=function(b,c,d,g,h,i,j,k){e(b,function(){var e={leafletEvent:g,leafletObject:h,modelName:j,model:i};f(k)&&angular.extend(e,{layerName:k}),"emit"===d?b.$emit(c,e):a.$broadcast(c,e)})},j.prototype.bindEvents=function(a,b,d,e,j,k,l){var m=[],n="emit",o=this;if(f(j.eventBroadcast))if(g(j.eventBroadcast))if(f(j.eventBroadcast[o.lObjectType]))if(g(j.eventBroadcast[o.lObjectType])){f(j.eventBroadcast[this.lObjectType].logic)&&"emit"!==j.eventBroadcast[o.lObjectType].logic&&"broadcast"!==j.eventBroadcast[o.lObjectType].logic&&c.warn(i+"Available event propagation logic are: 'emit' or 'broadcast'.");var p=!1,q=!1;f(j.eventBroadcast[o.lObjectType].enable)&&h(j.eventBroadcast[o.lObjectType].enable)&&(p=!0),f(j.eventBroadcast[o.lObjectType].disable)&&h(j.eventBroadcast[o.lObjectType].disable)&&(q=!0),p&&q?c.warn(i+"can not enable and disable events at the same time"):p||q?p?j.eventBroadcast[this.lObjectType].enable.forEach(function(a){-1!==m.indexOf(a)?c.warn(i+"This event "+a+" is already enabled"):-1===o.getAvailableEvents().indexOf(a)?c.warn(i+"This event "+a+" does not exist"):m.push(a)}):(m=this.getAvailableEvents(),j.eventBroadcast[o.lObjectType].disable.forEach(function(a){var b=m.indexOf(a);-1===b?c.warn(i+"This event "+a+" does not exist or has been already disabled"):m.splice(b,1)})):c.warn(i+"must enable or disable events")}else c.warn(i+"event-broadcast."+[o.lObjectType]+" must be an object check your model.");else m=this.getAvailableEvents();else c.error(i+"event-broadcast must be an object check your model.");else m=this.getAvailableEvents();return m.forEach(function(c){b.on(c,o.genDispatchEvent(a,c,n,j,b,d,e,k,l))}),n},j}]).service("leafletEventsHelpers",["LeafletEventsHelpersFactory",function(a){return new a}]),angular.module("leaflet-directive").factory("leafletGeoJsonEvents",["$rootScope","$q","$log","leafletHelpers","LeafletEventsHelpersFactory","leafletData",function(a,b,c,d,e,f){var g=d.safeApply,h=e,i=function(){h.call(this,"leafletDirectiveGeoJson","geojson")};return i.prototype=new h,i.prototype.genDispatchEvent=function(b,c,d,e,i,j,k,l,m){var n=h.prototype.genDispatchEvent.call(this,b,c,d,e,i,j,k,l),o=this;return function(b){"mouseout"===c&&(m.resetStyleOnMouseout&&f.getGeoJSON(m.mapId).then(function(a){var c=l?a[l]:a;c.resetStyle(b.target)}),g(e,function(){a.$broadcast(o.rootBroadcastName+".mouseout",b)})),n(b)}},i.prototype.getAvailableEvents=function(){return["click","dblclick","mouseover","mouseout"]},new i}]),angular.module("leaflet-directive").factory("leafletLabelEvents",["$rootScope","$q","$log","leafletHelpers","LeafletEventsHelpersFactory",function(a,b,c,d,e){var f=d,g=e,h=function(){g.call(this,"leafletDirectiveLabel","markers")};return h.prototype=new g,h.prototype.genDispatchEvent=function(a,b,c,d,e,f,h,i){var j=f.replace("markers.","");return g.prototype.genDispatchEvent.call(this,a,b,c,d,e,j,h,i)},h.prototype.getAvailableEvents=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu"]},h.prototype.genEvents=function(a,b,c,d,e,g,h,i){var j=this,k=this.getAvailableEvents(),l=f.getObjectArrayPath("markers."+g);k.forEach(function(b){e.label.on(b,j.genDispatchEvent(a,b,c,d,e.label,l,h,i))})},h.prototype.bindEvents=function(){},new h}]),angular.module("leaflet-directive").factory("leafletMapEvents",["$rootScope","$q","$log","leafletHelpers","leafletEventsHelpers","leafletIterators",function(a,b,c,d,e,f){var g=d.isDefined,h=e.fire,i=function(){return["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","contextmenu","focus","blur","preclick","load","unload","viewreset","movestart","move","moveend","dragstart","drag","dragend","zoomstart","zoomanim","zoomend","zoomlevelschange","resize","autopanstart","layeradd","layerremove","baselayerchange","overlayadd","overlayremove","locationfound","locationerror","popupopen","popupclose","draw:created","draw:edited","draw:deleted","draw:drawstart","draw:drawstop","draw:editstart","draw:editstop","draw:deletestart","draw:deletestop"]},j=function(a,b,d,e){return e&&(e+="."),function(f){var g="leafletDirectiveMap."+e+b;c.debug(g),h(a,g,d,f,f.target,a)}},k=function(a){a.$broadcast("boundsChanged")},l=function(a,b,c,d){if(g(c.urlHashCenter)){var e=b.getCenter(),f=e.lat.toFixed(4)+":"+e.lng.toFixed(4)+":"+b.getZoom();g(d.c)&&d.c===f||a.$emit("centerUrlHash",f)}},m=function(a,b,c,d,e){f.each(b,function(b){var f={};f[c]=b,a.on(b,j(d,b,e,a._container.id||""),f)})};return{getAvailableMapEvents:i,genDispatchMapEvent:j,notifyCenterChangedToBounds:k,notifyCenterUrlHashChanged:l,addEvents:m}}]),angular.module("leaflet-directive").factory("leafletMarkerEvents",["$rootScope","$q","$log","leafletHelpers","LeafletEventsHelpersFactory","leafletLabelEvents",function(a,b,c,d,e,f){var g=d.safeApply,h=d.isDefined,i=d,j=f,k=e,l=function(){k.call(this,"leafletDirectiveMarker","markers")};return l.prototype=new k,l.prototype.genDispatchEvent=function(b,c,d,e,f,h,i,j){var l=k.prototype.genDispatchEvent.call(this,b,c,d,e,f,h,i,j);return function(b){"click"===c?g(e,function(){a.$broadcast("leafletDirectiveMarkersClick",h)}):"dragend"===c&&(g(e,function(){i.lat=f.getLatLng().lat,i.lng=f.getLatLng().lng}),i.message&&i.focus===!0&&f.openPopup()),l(b)}},l.prototype.getAvailableEvents=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu","dragstart","drag","dragend","move","remove","popupopen","popupclose","touchend","touchstart","touchmove","touchcancel","touchleave"]},l.prototype.bindEvents=function(a,b,c,d,e,f){var g=k.prototype.bindEvents.call(this,a,b,c,d,e,f);i.LabelPlugin.isLoaded()&&h(b.label)&&j.genEvents(a,c,g,e,b,d,f)},new l}]),angular.module("leaflet-directive").factory("leafletPathEvents",["$rootScope","$q","$log","leafletHelpers","leafletLabelEvents","leafletEventsHelpers",function(a,b,c,d,e,f){var g=d.isDefined,h=d.isObject,i=d,j=d.errorHeader,k=e,l=f.fire,m=function(a,b,d,e,f,g,h,i){return a=a||"",a&&(a="."+a),function(j){var k="leafletDirectivePath"+a+"."+b;c.debug(k),l(e,k,d,j,j.target||f,h,g,i)}},n=function(a,b,d,e,f){var l,n,p=[],q="broadcast";if(g(f.eventBroadcast))if(h(f.eventBroadcast))if(g(f.eventBroadcast.path))if(h(f.eventBroadcast.paths))c.warn(j+"event-broadcast.path must be an object check your model.");else{void 0!==f.eventBroadcast.path.logic&&null!==f.eventBroadcast.path.logic&&("emit"!==f.eventBroadcast.path.logic&&"broadcast"!==f.eventBroadcast.path.logic?c.warn(j+"Available event propagation logic are: 'emit' or 'broadcast'."):"emit"===f.eventBroadcast.path.logic&&(q="emit"));var r=!1,s=!1;if(void 0!==f.eventBroadcast.path.enable&&null!==f.eventBroadcast.path.enable&&"object"==typeof f.eventBroadcast.path.enable&&(r=!0),void 0!==f.eventBroadcast.path.disable&&null!==f.eventBroadcast.path.disable&&"object"==typeof f.eventBroadcast.path.disable&&(s=!0),r&&s)c.warn(j+"can not enable and disable events at the same time");else if(r||s)if(r)for(l=0;l [" + latitude + ", " + longitude + "]
";
- if (currentView == "current-location") {
- geoMap.showCurrentLocation(deviceId, latitude, longitude, message);
- }
- }
-
- buildChartConfig = function(_chartConfig) {
- var conf = {};
- conf.x = _chartConfig.x;
- conf.maxLength = _chartConfig.maxLength;
- conf.charts = [];
- conf.charts[0] = {
- type: "number",
- title: _chartConfig.title
- };
- return conf;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/batch-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/batch-provider-api.js
deleted file mode 100644
index 30c96902a..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/batch-provider-api.js
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, getMode, getSchema, getData, registerCallBackforPush;
-
-(function() {
-
- var PROVIDERS_LOCATION = '/extensions/providers/';
-
- var PROVIDER_NAME = 'batch';
- var TYPE = "type";
- var TABLE_NAME = "tableName";
- var HTTPS_TRANSPORT = "https";
- var CONTENT_TYPE_JSON = "application/json";
- var AUTHORIZATION_HEADER = "Authorization";
- var USER_TOKEN = "user";
- var TENANT_DOMAIN = "domain";
- var CONST_AT = "@";
- var USERNAME = "username";
- var HTTP_USER_NOT_AUTHENTICATED = 403;
- var JS_MAX_VALUE = "9007199254740992";
- var JS_MIN_VALUE = "-9007199254740992";
-
- var typeMap = {
- "bool" : "string",
- "boolean" : "string",
- "string" : "string",
- "int" : "number",
- "integer" : "number",
- "long" : "number",
- "double" : "number",
- "float" : "number",
- "time": "time"
- };
-
- var log = new Log();
- var carbon = require('carbon');
- var configs = require('/configs/designer.json');
- var utils = require('/modules/utils.js');
- var JSUtils = Packages.org.wso2.carbon.analytics.jsservice.Utils;
- var AnalyticsCachedJSServiceConnector = Packages.org.wso2.carbon.analytics.jsservice.AnalyticsCachedJSServiceConnector;
- var AnalyticsCache = Packages.org.wso2.carbon.analytics.jsservice.AnalyticsCachedJSServiceConnector.AnalyticsCache;
- var cacheTimeoutSeconds = 5;
- var loggedInUser = null;
-
- if (configs.cacheTimeoutSeconds) {
- cacheTimeoutSeconds = parseInt(configs.cacheTimeoutSeconds);
- }
- var cacheSizeBytes = 1024 * 1024 * 1024; // 1GB
- if (configs.cacheSizeBytes) {
- cacheSizeBytes = parseInt(configs.cacheSizeBytes);
- }
- response.contentType = CONTENT_TYPE_JSON;
-
- var authParam = request.getHeader(AUTHORIZATION_HEADER);
- if (authParam != null) {
- credentials = JSUtils.authenticate(authParam);
- loggedInUser = credentials[0];
- } else {
- var token = session.get(USER_TOKEN);
- if (token != null) {
- loggedInUser = token[USERNAME] + CONST_AT + token[TENANT_DOMAIN];
- } else {
- log.error("user is not authenticated!");
- response.status = HTTP_USER_NOT_AUTHENTICATED;
- print('{ "status": "Failed", "message": "User is not authenticated." }');
- return;
- }
- }
-
- var cache = application.get("AnalyticsWebServiceCache");
- if (cache == null) {
- cache = new AnalyticsCache(cacheTimeoutSeconds, cacheSizeBytes);
- application.put("AnalyticsWebServiceCache", cache);
- }
- var connector = new AnalyticsCachedJSServiceConnector(cache);
-
- /**
- * require the existing config.json and push any dynamic fields that needs to be populated in the UI
- */
- getConfig = function() {
- var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json');
- var tables;
- try {
- tables = JSON.parse(connector.getTableList(loggedInUser).getMessage());
- } catch (e) {
- log.error(e);
- }
- var configs = formConfig.config;
- configs.forEach(function(config) {
- if (config.fieldName === TABLE_NAME) {
- config.valueSet = tables;
- }
- });
- return formConfig;
- }
-
- /**
- * validate the user input of provider configuration
- * @param providerConfig
- */
- validate = function(providerConfig) {
- /*
- validate the form and return
-
- */
- return true;
- }
-
- /**
- * returns the data mode either push or pull
- */
- getMode = function() {
- return "PULL";
- }
-
- /**
- * returns an array of column names & types
- * @param providerConfig
- */
- getSchema = function(providerConfig) {
- var schema = [];
- var tableName = providerConfig["tableName"];
- var result = connector.getTableSchema(loggedInUser, tableName).getMessage();
- result = JSON.parse(result);
-
- var columns = result.columns;
- Object.getOwnPropertyNames(columns).forEach(function(name, idx, array) {
- var type = "ordinal";
- if(columns[name]['type']) {
- type = columns[name]['type'];
- }
- schema.push({
- fieldName: name,
- fieldType: typeMap[type.toLowerCase()]
- });
- });
- // log.info(schema);
- return schema;
- };
-
- /**
- * returns the actual data
- * @param providerConfig
- * @param limit
- */
- getData = function(providerConfig, limit) {
- var tableName = providerConfig.tableName;
- var query = providerConfig.query;
- var limit = 100;
- if (providerConfig.limit) {
- limit = providerConfig.limit;
- }
- var result;
- //if there's a filter present, we should perform a Lucene search instead of reading the table
- if (query) {
- var filter = {
- "query": query,
- "start": 0,
- "count": limit
- };
- result = connector.search(loggedInUser, tableName, stringify(filter)).getMessage();
- } else {
- var from = JS_MIN_VALUE;
- var to = JS_MAX_VALUE;
- result = connector.getRecordsByRange(loggedInUser, tableName, from, to, 0, limit, null).getMessage();
-
- }
- result = JSON.parse(result);
- var data = [];
- for (var i = 0; i < result.length; i++) {
- var values = result[i].values;
- data.push(values);
- }
- return data;
- };
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/gadget-core.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/gadget-core.js
deleted file mode 100644
index f30ec9828..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/gadget-core.js
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-
-var locationHistory;
-var locationFrequency;
-var gadgetLocation;
-
-$(function() {
- var conf;
- var schema;
- var pref = new gadgets.Prefs();
-
- var refreshInterval;
- var providerData;
-
-
- var CHART_CONF = 'chart-conf';
- var PROVIDER_CONF = 'provider-conf';
-
- var REFRESH_INTERVAL = 'refreshInterval';
-
- var init = function() {
- $.ajax({
- url: gadgetLocation + '/conf.json',
- method: "GET",
- contentType: "application/json",
- async: false,
- success: function(data) {
- conf = JSON.parse(data);
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getSchema',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function(data) {
- schema = data;
- }
- });
- // getLocationHistory();
- }
- });
- };
-
-
- var drawGadget = function() {
- // Realtime data
- registerCallBackforPush(conf[PROVIDER_CONF], schema, function(data) {
- user = data[0][1];
- deviceId = data[0][2];
- latitude = data[0][4];
- longitude = data[0][5];
- message = "" + user + " [" + latitude + ", " + longitude + "]
";
- if (currentView == "current-location") {
- geoMap.showCurrentLocation(deviceId, latitude, longitude, message);
- }
- });
- };
-
- getGadgetLocation(function(gadget_Location) {
- gadgetLocation = gadget_Location;
- init();
- drawGadget();
- });
-});
-
-var getLocationHistory = function() {
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getData',
- method: "POST",
- data: '{ "chart-conf": { "chart-name": "number-chart", "gadget-name": "Android Location Map", "maxLength": "10000", "title": "Android Location Map", "x": "duration" }, "provider-conf": { "limit": "10000", "provider-name": "batch", "query": "", "tableName": "ORG_WSO2_IOT_ANDROID_LOCATION" } }',
- contentType: "application/json",
- async: false,
- success: function(data) {
- locationHistory = {
- type: "Feature",
- geometry: {
- type: "MultiPoint",
- coordinates: [],
- },
- properties: {
- time: []
- }
- };
- data.forEach(function(entry) {
- locationHistory.geometry.coordinates.push([entry.longitude, entry.latitude]);
- locationHistory.properties.time.push(entry.meta_timestamp);
- });
- }
- });
- return locationHistory;
-};
-
-
-var getLocationFrequency = function() {
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getData',
- method: "POST",
- data: '{ "chart-conf": { "chart-name": "number-chart", "gadget-name": "Android Location Map", "maxLength": "10000", "title": "Android Location Map", "x": "duration" }, "provider-conf": { "limit": "10000", "provider-name": "batch", "query": "", "tableName": "ANDROID_LOCATION_STATS_PER_YEAR" } }',
- contentType: "application/json",
- async: false,
- success: function(data) {
- locationFrequency = [];
- data.forEach(function(entry) {
- locationFrequency.push([entry.latitude, entry.longitude, entry.noOfVisits]);
- });
- }
- });
- return locationFrequency;
-};
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/gadget-util.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/gadget-util.js
deleted file mode 100644
index a3b5e20cd..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/gadget-util.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getGadgetLocation = function (callback) {
- var gadgetLocation = "/portal/store/carbon.super/fs/gadget/Android_Location_Map";
- var PATH_SEPERATOR = "/";
- if (gadgetLocation.search("store") != -1) {
- wso2.gadgets.identity.getTenantDomain(function (tenantDomain) {
- var gadgetPath = gadgetLocation.split(PATH_SEPERATOR);
- var modifiedPath = '';
- for (var i = 1; i < gadgetPath.length; i++) {
- if (i === 3) {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, tenantDomain);
- } else {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, gadgetPath[i])
- }
- }
- callback(modifiedPath);
- });
- } else {
- callback(gadgetLocation);
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/provider-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/provider-client.js
deleted file mode 100644
index 6196677f6..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/provider-client.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-// var registerCallBackforPush;
-
-(function() {
-
- var callback;
-
- /**
- * TODO Need to read hostname,port, and tenantId from providerConfig
- * @param providerConfig
- * @param schema
- */
- registerCallBackforPush = function(providerConfig, schema, _callback) {
- var streamId = providerConfig['streamName'];
- var hostname = window.parent.location.hostname;
- var port = window.parent.location.port;
-
- subscribe(streamId.split(":")[0], streamId.split(":")[1],
- '10',
- onData, onError,
- hostname,
- port,
- 'WEBSOCKET'
- );
- callback = _callback;
- };
-
- function onData(streamId, data) {
- callback(data);
- };
-
- function onError(error) {
- console.error(error);
- };
-
-}());
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/realtime-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/realtime-provider-api.js
deleted file mode 100644
index 7cf59af77..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/core/realtime-provider-api.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, getMode, getSchema, getData, registerCallBackforPush;
-
-(function() {
-
- var PROVIDERS_LOCATION = '/extensions/providers/';
- var PROVIDER_NAME = 'realtime';
-
- var log = new Log();
- var utils = require('/modules/utils.js');
- var carbon = require("carbon");
- var EventPublisherConstants = Packages.org.wso2.carbon.event.publisher.core.config.EventPublisherConstants;
- var eventPublisherService = carbon.server.osgiService('org.wso2.carbon.event.publisher.core.EventPublisherService');
- var eventStreamService = carbon.server.osgiService('org.wso2.carbon.event.stream.core.EventStreamService');
-
- var typeMap = {
- "bool": "string",
- "boolean": "string",
- "string": "string",
- "int": "number",
- "integer": "number",
- "long": "number",
- "double": "number",
- "float": "number",
- "time": "time"
- };
-
- getConfig = function() {
- var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json');
- var datasources = [];
- try {
- var eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations();
- for (var i = 0; i < eventPublisherConfigurationList.size(); i++) {
- var eventPublisherConfiguration = eventPublisherService.getActiveEventPublisherConfiguration(
- eventPublisherConfigurationList.get(i).getEventPublisherName());;
-
- var mappingTypeIsWso2 = eventPublisherConfiguration.getOutputMapping()
- .getMappingType().equals(EventPublisherConstants.EF_WSO2EVENT_MAPPING_TYPE);
-
- var adapterType = null;
- if (eventPublisherConfiguration.getToAdapterConfiguration() != null) {
- adapterType = eventPublisherConfiguration.getToAdapterConfiguration().getType();
- }
- if (mappingTypeIsWso2 && adapterType.trim() == "ui") {
- var streamName = eventPublisherConfiguration.getFromStreamName();
- var streamVersion = eventPublisherConfiguration.getFromStreamVersion();
- var streamId = streamName + ":" + streamVersion;
- datasources.push(streamId);
- }
- }
- var datasourceCfg = {
- "fieldLabel": "Event Stream",
- "fieldName": "streamName",
- "fieldType": "dropDown"
- };
- datasourceCfg['valueSet'] = datasources;
- } catch (e) {
- log.error(e);
- }
- formConfig.config.push(datasourceCfg);
- return formConfig;
- };
-
- /**
- * validate the user input of provider configuration
- * @param providerConfig
- */
- validate = function(providerConfig) {
- /*
- validate the form and return
-
- */
- return true;
- };
-
- /**
- * returns the data mode either push or pull
- */
- getMode = function() {
- return 'push';
- };
-
- /**
- * returns an array of column names & types
- * @param providerConfig
- */
- getSchema = function(providerConfig) {
- var streamId = providerConfig["streamName"];
- var output = [];
-
- output.push({
- fieldName: "TIMESTAMP",
- fieldType: "time"
- });
-
- if (eventStreamService != null) {
- var eventStreamConfiguration = eventStreamService.getEventStreamConfiguration(streamId);
- if (eventStreamConfiguration != null) {
- var metaData = eventStreamConfiguration.getStreamDefinition().getMetaData();
- var correlationData = eventStreamConfiguration.getStreamDefinition().getCorrelationData();
- var payloadData = eventStreamConfiguration.getStreamDefinition().getPayloadData();
- if (metaData != null) {
- for (var i = 0; i < metaData.size(); i++) {
- var type = metaData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: metaData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (correlationData != null) {
- for (var i = 0; i < correlationData.size(); i++) {
- var type = correlationData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: correlationData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (payloadData != null) {
- for (var i = 0; i < payloadData.size(); i++) {
- var type = payloadData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: payloadData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- }
- }
- return output;
- };
-
- getData = function(providerConfig,limit) {
- var data = [];
- return data;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/leaflet-heat.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/leaflet-heat.js
deleted file mode 100644
index aa8031ab5..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/leaflet-heat.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- (c) 2014, Vladimir Agafonkin
- simpleheat, a tiny JavaScript library for drawing heatmaps with Canvas
- https://github.com/mourner/simpleheat
-*/
-!function(){"use strict";function t(i){return this instanceof t?(this._canvas=i="string"==typeof i?document.getElementById(i):i,this._ctx=i.getContext("2d"),this._width=i.width,this._height=i.height,this._max=1,void this.clear()):new t(i)}t.prototype={defaultRadius:25,defaultGradient:{.4:"blue",.6:"cyan",.7:"lime",.8:"yellow",1:"red"},data:function(t,i){return this._data=t,this},max:function(t){return this._max=t,this},add:function(t){return this._data.push(t),this},clear:function(){return this._data=[],this},radius:function(t,i){i=i||15;var a=this._circle=document.createElement("canvas"),s=a.getContext("2d"),e=this._r=t+i;return a.width=a.height=2*e,s.shadowOffsetX=s.shadowOffsetY=200,s.shadowBlur=i,s.shadowColor="black",s.beginPath(),s.arc(e-200,e-200,t,0,2*Math.PI,!0),s.closePath(),s.fill(),this},gradient:function(t){var i=document.createElement("canvas"),a=i.getContext("2d"),s=a.createLinearGradient(0,0,0,256);i.width=1,i.height=256;for(var e in t)s.addColorStop(e,t[e]);return a.fillStyle=s,a.fillRect(0,0,1,256),this._grad=a.getImageData(0,0,1,256).data,this},draw:function(t){this._circle||this.radius(this.defaultRadius),this._grad||this.gradient(this.defaultGradient);var i=this._ctx;i.clearRect(0,0,this._width,this._height);for(var a,s=0,e=this._data.length;e>s;s++)a=this._data[s],i.globalAlpha=Math.max(a[2]/this._max,t||.05),i.drawImage(this._circle,a[0]-this._r,a[1]-this._r);var n=i.getImageData(0,0,this._width,this._height);return this._colorize(n.data,this._grad),i.putImageData(n,0,0),this},_colorize:function(t,i){for(var a,s=3,e=t.length;e>s;s+=4)a=4*t[s],a&&(t[s-3]=i[a],t[s-2]=i[a+1],t[s-1]=i[a+2])}},window.simpleheat=t}(),/*
- (c) 2014, Vladimir Agafonkin
- Leaflet.heat, a tiny and fast heatmap plugin for Leaflet.
- https://github.com/Leaflet/Leaflet.heat
-*/
-L.HeatLayer=(L.Layer?L.Layer:L.Class).extend({initialize:function(t,i){this._latlngs=t,L.setOptions(this,i)},setLatLngs:function(t){return this._latlngs=t,this.redraw()},addLatLng:function(t){return this._latlngs.push(t),this.redraw()},setOptions:function(t){return L.setOptions(this,t),this._heat&&this._updateOptions(),this.redraw()},redraw:function(){return!this._heat||this._frame||this._map._animating||(this._frame=L.Util.requestAnimFrame(this._redraw,this)),this},onAdd:function(t){this._map=t,this._canvas||this._initCanvas(),t._panes.overlayPane.appendChild(this._canvas),t.on("moveend",this._reset,this),t.options.zoomAnimation&&L.Browser.any3d&&t.on("zoomanim",this._animateZoom,this),this._reset()},onRemove:function(t){t.getPanes().overlayPane.removeChild(this._canvas),t.off("moveend",this._reset,this),t.options.zoomAnimation&&t.off("zoomanim",this._animateZoom,this)},addTo:function(t){return t.addLayer(this),this},_initCanvas:function(){var t=this._canvas=L.DomUtil.create("canvas","leaflet-heatmap-layer leaflet-layer"),i=L.DomUtil.testProp(["transformOrigin","WebkitTransformOrigin","msTransformOrigin"]);t.style[i]="50% 50%";var a=this._map.getSize();t.width=a.x,t.height=a.y;var s=this._map.options.zoomAnimation&&L.Browser.any3d;L.DomUtil.addClass(t,"leaflet-zoom-"+(s?"animated":"hide")),this._heat=simpleheat(t),this._updateOptions()},_updateOptions:function(){this._heat.radius(this.options.radius||this._heat.defaultRadius,this.options.blur),this.options.gradient&&this._heat.gradient(this.options.gradient),this.options.max&&this._heat.max(this.options.max)},_reset:function(){var t=this._map.containerPointToLayerPoint([0,0]);L.DomUtil.setPosition(this._canvas,t);var i=this._map.getSize();this._heat._width!==i.x&&(this._canvas.width=this._heat._width=i.x),this._heat._height!==i.y&&(this._canvas.height=this._heat._height=i.y),this._redraw()},_redraw:function(){var t,i,a,s,e,n,h,o,r,d=[],_=this._heat._r,l=this._map.getSize(),m=new L.Bounds(L.point([-_,-_]),l.add([_,_])),c=void 0===this.options.max?1:this.options.max,u=void 0===this.options.maxZoom?this._map.getMaxZoom():this.options.maxZoom,f=1/Math.pow(2,Math.max(0,Math.min(u-this._map.getZoom(),12))),g=_/2,p=[],v=this._map._getMapPanePos(),w=v.x%g,y=v.y%g;for(t=0,i=this._latlngs.length;i>t;t++)if(a=this._map.latLngToContainerPoint(this._latlngs[t]),m.contains(a)){e=Math.floor((a.x-w)/g)+2,n=Math.floor((a.y-y)/g)+2;var x=void 0!==this._latlngs[t].alt?this._latlngs[t].alt:void 0!==this._latlngs[t][2]?+this._latlngs[t][2]:1;r=x*f,p[n]=p[n]||[],s=p[n][e],s?(s[0]=(s[0]*s[2]+a.x*r)/(s[2]+r),s[1]=(s[1]*s[2]+a.y*r)/(s[2]+r),s[2]+=r):p[n][e]=[a.x,a.y,r]}for(t=0,i=p.length;i>t;t++)if(p[t])for(h=0,o=p[t].length;o>h;h++)s=p[t][h],s&&d.push([Math.round(s[0]),Math.round(s[1]),Math.min(s[2],c)]);this._heat.data(d).draw(this.options.minOpacity),this._frame=null},_animateZoom:function(t){var i=this._map.getZoomScale(t.zoom),a=this._map._getCenterOffset(t.center)._multiplyBy(-i).subtract(this._map._getMapPanePos());L.DomUtil.setTransform?L.DomUtil.setTransform(this._canvas,a,i):this._canvas.style[L.DomUtil.TRANSFORM]=L.DomUtil.getTranslateString(a)+" scale("+i+")"}}),L.heatLayer=function(t,i){return new L.HeatLayer(t,i)};
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/provider-libs/ws-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/provider-libs/ws-client.js
deleted file mode 100644
index c4b8a7dea..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/js/provider-libs/ws-client.js
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var CONSTANTS = {
- urlSeperator: '/',
- queryParamStreamName: '?streamname=',
- queryParamStreamVersion: '&version=',
- queryParamLastUpdatedTime: '&lastUpdatedTime=',
- urlSecureTransportWebsocket: 'wss://',
- urlSecureTransportHttp: 'https://',
- colon: ':',
- defaultIntervalTime: 10 * 1000,
- defaultHostName: 'localhost',
- defaultSecurePortNumber: '9443',
- defaultMode: 'AUTO',
- processModeHTTP: 'HTTP',
- processModeWebSocket: 'WEBSOCKET',
- processModeAuto: 'AUTO',
- numThousand: 1000,
- websocketTimeAppender: 400,
- websocketSubscriptionEndpoint: 'portal/uipublisher/websocketSubscriptionEndpoint.jag',
- httpEventRetrievalEndpoint: 'portal/uipublisher/httpEventRetrievalEndpoint.jag'
-};
-
-
-var websocket = null;
-var webSocketUrl;
-var httpUrl;
-var cepHostName;
-var cepPortNumber;
-var isErrorOccured = false;
-var lastUpdatedtime = -1;
-var polingInterval;
-var stream;
-var streamVersion;
-var firstPollingAttempt;
-var processMode;
-var onSuccessFunction;
-var onErrorFunction;
-var terminateWebsocketInstance = false;
-var pollingContinue = true;
-
-function subscribe(streamName, version, intervalTime,
- listeningFuncSuccessData, listeningFuncErrorData, cepHost, cepPort, mode) {
- stopPollingProcesses();
- stream = streamName;
- streamVersion = version;
- onSuccessFunction = listeningFuncSuccessData;
- onErrorFunction = listeningFuncErrorData;
-
- if (intervalTime == null || intervalTime == "") {
- polingInterval = CONSTANTS.defaultIntervalTime;
- } else {
- polingInterval = intervalTime * CONSTANTS.numThousand;
- }
-
- if (cepHost == null || cepHost == "") {
- cepHostName = CONSTANTS.defaultHostName;
- } else {
- cepHostName = cepHost;
- }
-
- if (cepPort == null || cepPort == "") {
- cepPortNumber = CONSTANTS.defaultSecurePortNumber;
- } else {
- cepPortNumber = cepPort;
- }
-
- if (mode == null || mode == "") {
- processMode = CONSTANTS.defaultMode;
- } else {
- processMode = mode;
- }
-
- webSocketUrl = CONSTANTS.urlSecureTransportWebsocket + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.websocketSubscriptionEndpoint;
-
- if (processMode == CONSTANTS.processModeHTTP) {
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- } else {
- initializeWebSocket(webSocketUrl);
- }
-}
-
-
-/**
- * Initializing Web Socket
- */
-function initializeWebSocket(webSocketUrl) {
- websocket = new WebSocket(webSocketUrl);
- websocket.onopen = webSocketOnOpen;
- websocket.onmessage = webSocketOnMessage;
- websocket.onclose = webSocketOnClose;
- websocket.onerror = webSocketOnError;
-}
-
-function getWebsocketSubscriptionMessage(streamName, streamVersion, streamProperties, streamValues) {
- if (streamProperties.length === streamValues.length) {
- var message = {};
- message.streamName = streamName;
- message.streamVersion = streamVersion;
- var i;
- for (i = 0; i < streamProperties.length; i++) {
- message.filterProps = [];
- message.filterProps.push({
- 'name': streamProperties[i],
- 'value': streamValues[i]
- });
- }
- return JSON.stringify(message);
- } else {
- console.log('stream properties and values are not in equal size');
- }
-}
-
-/**
- * Get the parameters as query parameters.
- * This method parses those parameters and returns.
- * */
-function getAllQueryParamsFromURL() {
- var queryParamList = {}, qParam;
- var urlQueryString = decodeURIComponent(window.top.location.search.substring(1));
-
- if (urlQueryString) {
- var queryStringPairs = urlQueryString.split('&');
- for (var i = 0; i < queryStringPairs.length; i++) {
- qParam = queryStringPairs[i].split('=');
- queryParamList[qParam[0]] = qParam[1];
- }
- return queryParamList;
-
- } else {
- return null;
- }
-}
-
-/**
- * Web socket On Open
- */
-var webSocketOnOpen = function () {
- var params = getAllQueryParamsFromURL();
- var deviceId;
- var owner;
- if (params != null) {
- owner = params["owner"];
- deviceId = params["deviceId"];
-
- }
- var filterPropNames = ["meta_owner", "meta_deviceId"];
- var filterPropVals = [owner, deviceId];
- var data = getWebsocketSubscriptionMessage(stream, streamVersion, filterPropNames, filterPropVals);
- websocket.send(data);
-};
-
-/**
- * On server sends a message
- */
-var webSocketOnMessage = function (evt) {
- var event = evt.data;
- var array = JSON.parse(event);
- constructPayload(array);
-};
-
-/**
- * On server close
- */
-var webSocketOnClose = function (e) {
-
- if (isErrorOccured) {
- if (processMode != CONSTANTS.processModeWebSocket) {
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- }
- } else {
- if (!terminateWebsocketInstance) {
- waitForSocketConnection(websocket);
- } else {
- terminateWebsocketInstance = false;
- }
-
- }
-};
-
-/**
- * On server Error
- */
-var webSocketOnError = function (err) {
- var error = "Error: Cannot connect to Websocket URL:" + webSocketUrl + " .Hence closing the connection!";
-
- onErrorFunction(error);
- isErrorOccured = true;
-
-};
-
-/**
- * Gracefully increments the connection retry
- */
-var waitTime = CONSTANTS.numThousand;
-function waitForSocketConnection(socket, callback) {
- setTimeout(
- function () {
- if (socket.readyState === 1) {
- initializeWebSocket(webSocketUrl);
- console.log("Connection is made");
- if (callback != null) {
- callback();
- }
- return;
- } else {
- websocket = new WebSocket(webSocketUrl);
- waitTime += CONSTANTS.websocketTimeAppender;
- waitForSocketConnection(websocket, callback);
- }
- }, waitTime);
-}
-
-/**
- * Polling to retrieve events from http request periodically
- */
-function startPoll() {
-
- (function poll() {
- setTimeout(function () {
- httpUrl = CONSTANTS.urlSecureTransportHttp + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.httpEventRetrievalEndpoint + CONSTANTS.queryParamStreamName + stream +
- CONSTANTS.queryParamStreamVersion + streamVersion + CONSTANTS.queryParamLastUpdatedTime + lastUpdatedtime;
- ;
- $.getJSON(httpUrl, function (responseText) {
- if (firstPollingAttempt) {
- /*var data = $("textarea#idConsole").val();
- $("textarea#idConsole").val(data + "Successfully connected to HTTP.");*/
- firstPollingAttempt = false;
- }
- var eventList = $.parseJSON(responseText.events);
- if (eventList.length != 0) {
- lastUpdatedtime = responseText.lastEventTime;
- for (var i = 0; i < eventList.length; i++) {
- var arr = eventList[i];
- constructPayload(arr);
- }
- }
- if (pollingContinue) {
- startPoll();
- }
- })
- .fail(function (errorData) {
- var errorData = JSON.parse(errorData.responseText);
- onErrorFunction(errorData.error);
- });
- }, polingInterval);
- })()
-}
-
-function stopPollingProcesses() {
-
- //stopping the Websocket
- if (websocket != null) {
- terminateWebsocketInstance = true;
- websocket.close();
- }
- //stopping the HTTPS Request
- pollingContinue = false;
-
-}
-
-function constructPayload(eventsArray) {
-
- var streamId = stream + CONSTANTS.colon + streamVersion;
- var twoDimentionalArray = [eventsArray];
- onSuccessFunction(streamId, twoDimentionalArray);
-
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/thumbnail.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/thumbnail.png
deleted file mode 100644
index 6d6807635..000000000
Binary files a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/Android_Location_Map/thumbnail.png and /dev/null differ
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/artifact.xml
deleted file mode 100644
index 4279618a1..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_map_gadget/artifact.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- Android_Location_Map
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_ui_event_publisher/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_ui_event_publisher/artifact.xml
deleted file mode 100644
index 7da8652c8..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_ui_event_publisher/artifact.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- org.wso2.iot.android.location.ui.publisher.xml
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_ui_event_publisher/org.wso2.iot.android.location.ui.publisher.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_ui_event_publisher/org.wso2.iot.android.location.ui.publisher.xml
deleted file mode 100755
index 3a7394768..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_location_ui_event_publisher/org.wso2.iot.android.location.ui.publisher.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/conf.json
deleted file mode 100644
index 57f20a257..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/conf.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "provider-conf": {
- "streamName": "org.wso2.iot.android.filtered.audio:1.0.0",
- "provider-name": "realtime"
- },
- "chart-conf": {
- "key": "timestamp",
- "color": "audio",
- "grid": "on",
- "maxLength": "10",
- "gadget-name": "Android Realtime Audio",
- "chart-name": "table-chart"
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/css/dataTables.bootstrap.min.css b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/css/dataTables.bootstrap.min.css
deleted file mode 100644
index 745f2996f..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/css/dataTables.bootstrap.min.css
+++ /dev/null
@@ -1 +0,0 @@
-table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable{border-collapse:separate !important}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:last-child{padding-right:0}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/gadget-controller.jag
deleted file mode 100644
index f84538a40..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/gadget-controller.jag
+++ /dev/null
@@ -1,42 +0,0 @@
-<%
-/**
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-(function () {
-
- response.contentType = 'application/json';
- var PROVIDER_CONF = 'provider-conf';
- var PROVIDER_NAME = 'provider-name';
-
- var action = request.getParameter("action");
- var data = request.getContent();
- var providerConf = data[PROVIDER_CONF];
- var providerAPI = require('js/core/' + providerConf[PROVIDER_NAME] + '-provider-api.js');
-
- if (action === 'getSchema') {
- print(providerAPI.getSchema(providerConf));
- return;
- } else if(action === 'getData'){
- print(providerAPI.getData(providerConf));
- return;
- }
-
-}());
-
-
-%>
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/gadget.json
deleted file mode 100644
index 36b714507..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/gadget.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "id": "Android_Realtime_Audio",
- "title": "Android Realtime Audio",
- "type": "gadget",
- "thumbnail": "gadget/Android_Realtime_Audio/thumbnail.png",
- "data": {
- "url": "gadget/Android_Realtime_Audio/gadget.xml"
- }
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/gadget.xml
deleted file mode 100644
index cde265670..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/gadget.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/gadget-core.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/gadget-core.js
deleted file mode 100644
index 8bfc5f742..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/gadget-core.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
-*/
-$(function () {
- var gadgetLocation;
- var conf;
- var schema;
- var pref = new gadgets.Prefs();
-
- var CHART_CONF = 'chart-conf';
- var PROVIDER_CONF = 'provider-conf';
-
-var init = function () {
- $.ajax({
- url: gadgetLocation + '/conf.json',
- method: "GET",
- contentType: "application/json",
- async: false,
- success: function (data) {
- conf = JSON.parse(data);
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getSchema',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function (data) {
- schema = data;
- }
- });
-
- }
- });
-};
-
-
-var drawGadget = function (){
-
- draw('#canvas', conf[CHART_CONF], schema, null);
- registerCallBackforPush(conf[PROVIDER_CONF], schema, function(providerData) {
- update(providerData);
- });
-
-};
-
-getGadgetLocation(function (gadget_Location) {
- gadgetLocation = gadget_Location;
- init();
- drawGadget();
-
-});
-});
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/gadget-util.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/gadget-util.js
deleted file mode 100644
index 3bcb516f1..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/gadget-util.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getGadgetLocation = function (callback) {
- var gadgetLocation = "/portal/store/carbon.super/fs/gadget/Android_Realtime_Audio";
- var PATH_SEPERATOR = "/";
- if (gadgetLocation.search("store") != -1) {
- wso2.gadgets.identity.getTenantDomain(function (tenantDomain) {
- var gadgetPath = gadgetLocation.split(PATH_SEPERATOR);
- var modifiedPath = '';
- for (var i = 1; i < gadgetPath.length; i++) {
- if (i === 3) {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, tenantDomain);
- } else {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, gadgetPath[i])
- }
- }
- callback(modifiedPath);
- });
- } else {
- callback(gadgetLocation);
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/provider-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/provider-client.js
deleted file mode 100644
index 6196677f6..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/provider-client.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-// var registerCallBackforPush;
-
-(function() {
-
- var callback;
-
- /**
- * TODO Need to read hostname,port, and tenantId from providerConfig
- * @param providerConfig
- * @param schema
- */
- registerCallBackforPush = function(providerConfig, schema, _callback) {
- var streamId = providerConfig['streamName'];
- var hostname = window.parent.location.hostname;
- var port = window.parent.location.port;
-
- subscribe(streamId.split(":")[0], streamId.split(":")[1],
- '10',
- onData, onError,
- hostname,
- port,
- 'WEBSOCKET'
- );
- callback = _callback;
- };
-
- function onData(streamId, data) {
- callback(data);
- };
-
- function onError(error) {
- console.error(error);
- };
-
-}());
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/realtime-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/realtime-provider-api.js
deleted file mode 100644
index 7cf59af77..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/realtime-provider-api.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, getMode, getSchema, getData, registerCallBackforPush;
-
-(function() {
-
- var PROVIDERS_LOCATION = '/extensions/providers/';
- var PROVIDER_NAME = 'realtime';
-
- var log = new Log();
- var utils = require('/modules/utils.js');
- var carbon = require("carbon");
- var EventPublisherConstants = Packages.org.wso2.carbon.event.publisher.core.config.EventPublisherConstants;
- var eventPublisherService = carbon.server.osgiService('org.wso2.carbon.event.publisher.core.EventPublisherService');
- var eventStreamService = carbon.server.osgiService('org.wso2.carbon.event.stream.core.EventStreamService');
-
- var typeMap = {
- "bool": "string",
- "boolean": "string",
- "string": "string",
- "int": "number",
- "integer": "number",
- "long": "number",
- "double": "number",
- "float": "number",
- "time": "time"
- };
-
- getConfig = function() {
- var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json');
- var datasources = [];
- try {
- var eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations();
- for (var i = 0; i < eventPublisherConfigurationList.size(); i++) {
- var eventPublisherConfiguration = eventPublisherService.getActiveEventPublisherConfiguration(
- eventPublisherConfigurationList.get(i).getEventPublisherName());;
-
- var mappingTypeIsWso2 = eventPublisherConfiguration.getOutputMapping()
- .getMappingType().equals(EventPublisherConstants.EF_WSO2EVENT_MAPPING_TYPE);
-
- var adapterType = null;
- if (eventPublisherConfiguration.getToAdapterConfiguration() != null) {
- adapterType = eventPublisherConfiguration.getToAdapterConfiguration().getType();
- }
- if (mappingTypeIsWso2 && adapterType.trim() == "ui") {
- var streamName = eventPublisherConfiguration.getFromStreamName();
- var streamVersion = eventPublisherConfiguration.getFromStreamVersion();
- var streamId = streamName + ":" + streamVersion;
- datasources.push(streamId);
- }
- }
- var datasourceCfg = {
- "fieldLabel": "Event Stream",
- "fieldName": "streamName",
- "fieldType": "dropDown"
- };
- datasourceCfg['valueSet'] = datasources;
- } catch (e) {
- log.error(e);
- }
- formConfig.config.push(datasourceCfg);
- return formConfig;
- };
-
- /**
- * validate the user input of provider configuration
- * @param providerConfig
- */
- validate = function(providerConfig) {
- /*
- validate the form and return
-
- */
- return true;
- };
-
- /**
- * returns the data mode either push or pull
- */
- getMode = function() {
- return 'push';
- };
-
- /**
- * returns an array of column names & types
- * @param providerConfig
- */
- getSchema = function(providerConfig) {
- var streamId = providerConfig["streamName"];
- var output = [];
-
- output.push({
- fieldName: "TIMESTAMP",
- fieldType: "time"
- });
-
- if (eventStreamService != null) {
- var eventStreamConfiguration = eventStreamService.getEventStreamConfiguration(streamId);
- if (eventStreamConfiguration != null) {
- var metaData = eventStreamConfiguration.getStreamDefinition().getMetaData();
- var correlationData = eventStreamConfiguration.getStreamDefinition().getCorrelationData();
- var payloadData = eventStreamConfiguration.getStreamDefinition().getPayloadData();
- if (metaData != null) {
- for (var i = 0; i < metaData.size(); i++) {
- var type = metaData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: metaData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (correlationData != null) {
- for (var i = 0; i < correlationData.size(); i++) {
- var type = correlationData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: correlationData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (payloadData != null) {
- for (var i = 0; i < payloadData.size(); i++) {
- var type = payloadData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: payloadData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- }
- }
- return output;
- };
-
- getData = function(providerConfig,limit) {
- var data = [];
- return data;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/table-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/table-chart-api.js
deleted file mode 100644
index cd751d7bd..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/core/table-chart-api.js
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, isProviderRequired, draw, update;
-
-(function () {
-
- var CHART_LOCATION = '/extensions/chart-templates/';
-
- var tableFieldsOrder = ['timestamp', 'audio', 'headset', 'music_volume'];
- /**
- * return the config to be populated in the chart configuration UI
- * @param schema
- */
- getConfig = function (schema) {
- var chartConf = require(CHART_LOCATION + '/table-chart/config.json').config;
- /*
- dynamic logic goes here
- */
-
- var columns = [];
-
- columns.push("None");
- columns.push("All");
- for (var i = 0; i < schema.length; i++) {
- columns.push(schema[i]["fieldName"]);
- }
-
- for (var i = 0; i < chartConf.length; i++) {
- if (chartConf[i]["fieldName"] == "color") {
- chartConf[i]["valueSet"] = columns;
- break;
- }
- }
-
- return chartConf;
- };
-
- /**
- * validate the user inout for the chart configuration
- * @param chartConfig
- */
- validate = function (chartConfig) {
- return true;
- };
-
- /**
- * TO be used when provider configuration steps need to be skipped
- */
- isProviderRequired = function () {
-
- }
-
-
- /**
- * return the gadget content
- * @param chartConfig
- * @param schema
- * @param data
- */
- draw = function (placeholder, chartConfig, _schema, data) {
-
- var schema = toVizGrammarSchema(_schema);
- var grid = chartConfig.grid;
-
- chartConfig.columns = tableFieldsOrder;
-
- var view = {
- id: "chart-0",
- schema: schema,
- chartConfig: buildChartConfig(chartConfig),
- data: function () {
- if (data) {
- var result = [];
- data.forEach(function (item) {
- var row = [];
- schema[0].metadata.names.forEach(function (name) {
- row.push(item[name]);
- });
- result.push(row);
- });
- wso2gadgets.onDataReady(result);
- }
- }
-
- };
-
- try {
- wso2gadgets.init(placeholder, view);
- var view = wso2gadgets.load("chart-0");
- if (grid) {
- $(document).ready(function () {
- $('#table').DataTable();
- });
- }
-
- } catch (e) {
- console.error(e);
- }
-
- };
-
- /**
- *
- * @param data
- */
- update = function (data) {
- data[0][3] = getDateString(data[0][3]);
- wso2gadgets.onDataReady(data, "append");
- };
-
- buildChartConfig = function (_chartConfig) {
- var conf = {};
- conf.charts = [];
- conf.charts[0] = {
- type: "table",
- key: _chartConfig.key,
- grid: _chartConfig.grid
- };
- conf.maxLength = _chartConfig.maxLength;
-
- if (_chartConfig.color == "All") {
- conf.charts[0].color = "*";
- } else if (_chartConfig.color != "None") {
- conf.charts[0].color = _chartConfig.color;
- }
-
- conf.charts[0].columns = _chartConfig.columns;
- conf.columnTitles = ['Time', 'Audio', 'Headset', 'Music Volume Level'];
- return conf;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/jquery.dataTables.min.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/jquery.dataTables.min.js
deleted file mode 100644
index d87780456..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/jquery.dataTables.min.js
+++ /dev/null
@@ -1,164 +0,0 @@
-/*!
- DataTables 1.10.10
- ©2008-2015 SpryMedia Ltd - datatables.net/license
-*/
-(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Y(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
-d[c]=e,"o"===b[1]&&Y(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Y(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Fa(a){var b=m.defaults.oLanguage,c=a.sZeroRecords;!a.sEmptyTable&&(c&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(c&&"Loading..."===b.sLoadingRecords)&&F(a,a,"sZeroRecords","sLoadingRecords");
-a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&db(a)}function eb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":"");"boolean"===typeof a.scrollX&&(a.scrollX=
-a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b").css({position:"fixed",top:0,left:0,height:1,width:1,overflow:"hidden"}).append(h("
").css({position:"absolute",top:1,left:1,
-width:100,overflow:"scroll"}).append(h("
").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,m.__browser);a.oScroll.iBarWidth=m.__browser.barWidth}function hb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&&
-(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ga(a,b){var c=m.defaults.column,d=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},m.models.oSearch,c[d]);la(a,d,h(b).data())}function la(a,b,c){var b=a.aoColumns[b],d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=
-(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(fb(c),J(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=Q(g),i=b.mRender?Q(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&
-(c(g.sort)||c(g.type)||c(g.filter));b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return R(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=
-d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function U(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ha(a);for(var c=0,d=b.length;cq[f])d(l.length+q[f],o);else if("string"===typeof q[f]){j=0;for(i=l.length;jb&&a[e]--; -1!=d&&c===k&&a.splice(d,1)}function ea(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=
-Ka(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c ").appendTo(g));b=0;for(c=l.length;btr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(o.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(o.sFooterTH);if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);var g=a._iDisplayStart,o=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&
-!lb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:o;for(j=j?0:g;j",{"class":e?d[0]:""}).append(h(" ",{valign:"top",colSpan:ca(a),
-"class":a.oClasses.sRowEmpty}).html(c))[0];v(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ma(a),g,o,i]);v(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ma(a),g,o,i]);d=h(a.nTBody);d.children().detach();d.append(h(b));v(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&mb(a);d?ha(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;O(a);a._drawHold=
-!1}function nb(a){var b=a.oClasses,c=h(a.nTable),c=h("
").insertBefore(c),d=a.oFeatures,e=h("
",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,o,l,q,u=0;u ")[0];o=f[u+1];if("'"==o||'"'==o){l="";for(q=2;f[u+q]!=o;)l+=f[u+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(o=l.split("."),
-i.id=o[0].substr(1,o[0].length-1),i.className=o[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;u+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=ob(a);else if("f"==j&&d.bFilter)g=pb(a);else if("r"==j&&d.bProcessing)g=qb(a);else if("t"==j)g=rb(a);else if("i"==j&&d.bInfo)g=sb(a);else if("p"==j&&d.bPaginate)g=tb(a);else if(0!==m.ext.feature.length){i=m.ext.feature;q=0;for(o=i.length;q ',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",g):j+g,b=h("
",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h(" ").append(j)),f=function(){var b=!this.value?"":this.value;b!=e.sSearch&&(ha(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,O(a))},g=null!==
-a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT",g?ua(f,g):f).bind("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}});return b[0]}function ha(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;
-d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ia(a);if("ssp"!=y(a)){wb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b=b.length)a.aiDisplay=f.slice();else{if(g||c||e.length>b.length||0!==b.indexOf(e)||a.bSorted)a.aiDisplay=f.slice();b=a.aiDisplay;for(c=b.length-1;0<=
-c;c--)d.test(a.aoData[b[c]]._sFilterRow)||b.splice(c,1)}}function Qa(a,b,c,d){a=b?a:va(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function va(a){return a.replace(Yb,"\\$1")}function zb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=m.ext.type.search;c=!1;d=0;for(f=a.aoData.length;d",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Cb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Cb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&
-(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Db(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Db(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/
-e)))}function ia(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){nb(a);kb(a);ga(a,a.aoHeader);ga(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Ha(a);b=0;for(c=e.length;b",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g ").addClass(b.sLength);
-a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).bind("change.DT",function(){Ra(a,h(this).val());O(a)});h(a.nTable).bind("length.dt.DT",function(b,c,d){a===c&&h("select",i).val(d)});return i[0]}function tb(a){var b=a.sPaginationType,c=m.ext.pager[b],d="function"===typeof c,e=function(a){O(a)},b=h("
").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+
-"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;lf&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==
-b?d+e ",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");v(a,null,"processing",[a,b])}function rb(a){var b=h(a.nTable);b.attr("role",
-"grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),o=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("
",{"class":f.sScrollWrapper}).append(h("
",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?!d?null:w(d):"100%"}).append(h("
",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||
-"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("
",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:w(d)}).append(b));l&&i.append(h("
",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:w(d):"100%"}).append(h("
",{"class":f.sScrollFootInner}).append(o.removeAttr("id").css("margin-left",0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),
-k=b[0],f=b[1],u=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(u.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=u;a.aoDrawCallback.push({fn:Z,sName:"scrolling"});return i[0]}function Z(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,o=j.children("table"),j=a.nScrollBody,l=h(j),q=j.style,u=h(a.nScrollFoot).children("div"),
-m=u.children("table"),n=h(a.nTHead),p=h(a.nTable),t=p[0],v=t.style,r=a.nTFoot?h(a.nTFoot):null,Eb=a.oBrowser,Ua=Eb.bScrollOversize,s,L,P,x,y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==L&&a.scrollBarVis!==k)a.scrollBarVis=L,U(a);else{a.scrollBarVis=L;p.children("thead, tfoot").remove();x=n.clone().prependTo(p);n=n.find("tr");L=x.find("tr");x.find("th, td").removeAttr("tabindex");
-r&&(P=r.clone().prependTo(p),s=r.find("tr"),P=P.find("tr"));c||(q.width="100%",f[0].style.width="100%");h.each(qa(a,x),function(b,c){B=$(a,b);c.style.width=a.aoColumns[B].sWidth});r&&I(function(a){a.style.width=""},P);f=p.outerWidth();if(""===c){v.width="100%";if(Ua&&(p.find("tbody").height()>j.offsetHeight||"scroll"==l.css("overflow-y")))v.width=w(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(v.width=w(d),f=p.outerWidth());I(C,L);I(function(a){A.push(a.innerHTML);y.push(w(h(a).css("width")))},
-L);I(function(a,b){a.style.width=y[b]},n);h(L).height(0);r&&(I(C,P),I(function(a){z.push(w(h(a).css("width")))},P),I(function(a,b){a.style.width=z[b]},s),h(P).height(0));I(function(a,b){a.innerHTML=''+A[b]+"
";a.style.width=y[b]},L);r&&I(function(a,b){a.innerHTML="";a.style.width=z[b]},P);if(p.outerWidth()j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(Ua&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))v.width=
-w(s-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else s="100%";q.width=w(s);g.width=w(s);r&&(a.nScrollFoot.style.width=w(s));!e&&Ua&&(q.height=w(t.offsetHeight+b));c=p.outerWidth();o[0].style.width=w(c);i.width=w(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+(Eb.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";r&&(m[0].style.width=w(c),u[0].style.width=w(c),u[0].style[e]=d?b+"px":"0px");l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=
-0}}function I(a,b,c){for(var d=0,e=0,f=b.length,g,j;e").appendTo(j.find("tbody"));j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");o=qa(a,j.find("thead")[0]);for(m=0;m ").css({width:n.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(m=0;m ").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()").css("width",w(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Gb(a,b){var c=Hb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h(" ").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Hb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;fd&&(d=c.length,e=f);return e}function w(a){return null===
-a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function W(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var o=[];f=function(a){a.length&&!h.isArray(a[0])?o.push(a):h.merge(o,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;ae?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];
-return ce?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,m=f[a]._aSortData,p=f[b]._aSortData;for(j=0;jg?1:0})}a.bSorted=!0}function Jb(a){for(var b,c,d=a.aoColumns,e=W(a),a=a.oLanguage.oAria,f=0,g=d.length;f/g,"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0e?e+1:3));e=0;for(f=d.length;ee?e+1:3))}a.aLastSort=d}function Ib(a,b){var c=a.aoColumns[b],d=m.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ba(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j=d.length?[0,c[1]]:c)}));e.search!==k&&h.extend(a.oPreviousSearch,Bb(e.search));b=0;for(c=e.columns.length;b=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Pa(a,b){var c=
-a.renderer,d=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function Aa(a,b){var c=[],c=Mb.numbers_length,d=Math.floor(c/2);b<=c?c=X(0,b):a<=d?(c=X(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=X(b-(c-2),b):(c=X(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function db(a){h.each({num:function(b){return Ba(b,
-a)},"num-fmt":function(b){return Ba(b,a,Xa)},"html-num":function(b){return Ba(b,a,Ca)},"html-num-fmt":function(b){return Ba(b,a,Ca,Xa)}},function(b,c){s.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(s.type.search[b+a]=s.type.search.html)})}function Nb(a){return function(){var b=[za(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return m.ext.internal[a].apply(this,b)}}var m,s,t,p,r,Ya={},Ob=/[\r\n]/g,Ca=/<.*?>/g,ac=/^[\w\+\-]/,bc=/[\w\+\-]$/,Yb=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)",
-"g"),Xa=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Pb=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},Qb=function(a,b){Ya[b]||(Ya[b]=RegExp(va(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Ya[b],"."):a},Za=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Qb(a,b));c&&d&&(a=a.replace(Xa,""));return!isNaN(parseFloat(a))&&isFinite(a)},Rb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===
-typeof a)?null:Za(a.replace(Ca,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e")[0],Zb=wa.textContent!==k,$b=/<.*?>/g;m=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new t(za(this[s.iApiIndex])):new t(this)};this.fnAddData=function(a,b){var c=this.api(!0),
-d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&Z(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],
-h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};
-this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);
-(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return za(this[s.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();(d===k||d)&&h.draw();return 0};this.fnVersionCheck=
-s.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=s.internal;for(var e in m.ext.internal)e&&(this[e]=Nb(e));this.each(function(){var e={},e=1t<"F"ip>'),n.renderer)?h.isPlainObject(n.renderer)&&!n.renderer.header&&(n.renderer.header="jqueryui"):n.renderer="jqueryui":h.extend(i,m.ext.classes,e.oClasses);q.addClass(i.sTable);n.iInitDisplayStart===k&&(n.iInitDisplayStart=e.iDisplayStart,n._iDisplayStart=e.iDisplayStart);null!==e.iDeferLoading&&(n.bDeferLoading=!0,g=h.isArray(e.iDeferLoading),
-n._iRecordsDisplay=g?e.iDeferLoading[0]:e.iDeferLoading,n._iRecordsTotal=g?e.iDeferLoading[1]:e.iDeferLoading);var t=n.oLanguage;h.extend(!0,t,e.oLanguage);""!==t.sUrl&&(h.ajax({dataType:"json",url:t.sUrl,success:function(a){Fa(a);J(l.oLanguage,a);h.extend(true,t,a);ia(n)},error:function(){ia(n)}}),o=!0);null===e.asStripeClasses&&(n.asStripeClasses=[i.sStripeOdd,i.sStripeEven]);var g=n.asStripeClasses,r=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(g,function(a){return r.hasClass(a)}))&&
-(h("tbody tr",this).removeClass(g.join(" ")),n.asDestroyStripes=g.slice());u=[];g=this.getElementsByTagName("thead");0!==g.length&&(fa(n.aoHeader,g[0]),u=qa(n));if(null===e.aoColumns){p=[];g=0;for(j=u.length;g ").appendTo(this));n.nTHead=j[0];j=q.children("tbody");0===j.length&&(j=h(" ").appendTo(this));n.nTBody=j[0];j=q.children("tfoot");if(0===j.length&&0 ").appendTo(this);
-0===j.length||0===j.children().length?q.addClass(i.sNoFooter):0a?new t(b[a],this[a]):null},filter:function(a){var b=[];if(x.filter)b=x.filter.call(this,a,this);else for(var c=0,d=this.length;c ").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=ca(d),e.push(c[0]))};f(a,b);c._details&&c._details.remove();c._details=h(e);c._detailsShow&&c._details.insertAfter(c.nTr)}return this});p(["row().child.show()","row().child().show()"],function(){Vb(this,
-!0);return this});p(["row().child.hide()","row().child().hide()"],function(){Vb(this,!1);return this});p(["row().child.remove()","row().child().remove()"],function(){cb(this);return this});p("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var dc=/^(.+):(name|visIdx|visible)$/,Wb=function(a,b,c,d,e){for(var c=[],d=0,f=e.length;d=0?b:g.length+b];if(typeof a==="function"){var e=Da(c,f);return h.map(g,function(b,f){return a(f,Wb(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(dc):"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null});
-return[m[m.length+b]]}return[$(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null})}else return h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray()},c,f)},1);c.selector.cols=a;c.selector.opts=b;return c});r("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});r("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});r("columns().data()",
-"column().data()",function(){return this.iterator("column-rows",Wb,1)});r("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});r("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});r("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,
-e,"anCells",b)},1)});r("columns().visible()","column().visible()",function(a,b){return this.iterator("column",function(c,d){if(a===k)return c.aoColumns[d].bVisible;var e=c.aoColumns,f=e[d],g=c.aoData,j,i,m;if(a!==k&&f.bVisible!==a){if(a){var l=h.inArray(!0,D(e,"bVisible"),d+1);j=0;for(i=g.length;jd;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;h.each(m.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:
-null;if(e.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(m.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new t(c):c};m.util={throttle:ua,escapeRegex:va};m.camelToHungarian=J;p("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){p(b+"()",function(){var a=Array.prototype.slice.call(arguments);
-a[0].match(/\.dt\b/)||(a[0]+=".dt");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});p("clear()",function(){return this.iterator("table",function(a){na(a)})});p("settings()",function(){return new t(this.context,this.context)});p("init()",function(){var a=this.context;return a.length?a[0].oInit:null});p("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});p("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=
-b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),p;b.bDestroying=!0;v(b,"aoDestroyCallback","destroy",[b]);a||(new t(b)).columns().visible(!0);k.unbind(".DT").find(":not(tbody *)").unbind(".DT");h(E).unbind(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];xa(b);
-h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);b.bJUI&&(h("th span."+d.sSortIcon+", td span."+d.sSortIcon,g).detach(),h("th, td",g).each(function(){var a=h("div."+d.sSortJUIWrapper,this);h(this).append(a.contents());a.detach()}));f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),(p=
-b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%p])}));c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){p(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});p("i18n()",function(a,b,c){var d=this.context[0],a=Q(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:a._);
-return a.replace("%d",c)});m.version="1.10.10";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,
-sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};m.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,
-bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+
-a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
-oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},
-m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};Y(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};
-Y(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],
-aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",
-iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?
-1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};
-m.ext=s={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(s,{afnFiltering:s.search,aTypes:s.type.detect,ofnSearch:s.type.search,oSort:s.type.order,afnSortData:s.order,aoFeatures:s.feature,oApi:s.internal,oStdClasses:s.classes,
-oPagination:s.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",
-sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
-sJUIHeader:"",sJUIFooter:""});var Ea="",Ea="",G=Ea+"ui-state-default",ka=Ea+"css_right ui-icon ui-icon-",Xb=Ea+"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";h.extend(m.ext.oJUIClasses,m.ext.classes,{sPageButton:"fg-button ui-button "+G,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:G+" sorting_asc",sSortDesc:G+" sorting_desc",sSortable:G+" sorting",
-sSortableAsc:G+" sorting_asc_disabled",sSortableDesc:G+" sorting_desc_disabled",sSortableNone:G+" sorting_disabled",sSortJUIAsc:ka+"triangle-1-n",sSortJUIDesc:ka+"triangle-1-s",sSortJUI:ka+"carat-2-n-s",sSortJUIAscAllowed:ka+"carat-1-n",sSortJUIDescAllowed:ka+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+G,sScrollFoot:"dataTables_scrollFoot "+G,sHeaderTH:G,sFooterTH:G,sJUIHeader:Xb+" ui-corner-tl ui-corner-tr",sJUIFooter:Xb+
-" ui-corner-bl ui-corner-br"});var Mb=m.ext.pager;h.extend(Mb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[Aa(a,b)]},simple_numbers:function(a,b){return["previous",Aa(a,b),"next"]},full_numbers:function(a,b){return["first","previous",Aa(a,b),"next","last"]},_numbers:Aa,numbers_length:7});h.extend(!0,m.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||
-{},k,l,m=0,p=function(b,d){var n,r,t,s,v=function(b){Ta(a,b.data.action,true)};n=0;for(r=d.length;n ").appendTo(b);p(t,s)}else{k=null;l="";switch(s){case "ellipsis":b.append('… ');break;case "first":k=j.sFirst;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":k=j.sPrevious;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":k=j.sNext;l=s+(e",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[s],"data-dt-idx":m,tabindex:a.iTabIndex,id:c===0&&typeof s==="string"?a.sTableId+"_"+s:null}).html(k).appendTo(b);Wa(t,{action:s},v);m++}}}},r;try{r=h(b).find(H.activeElement).data("dt-idx")}catch(n){}p(h(b).empty(),d);r&&h(b).find("[data-dt-idx="+r+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=
-b.oLanguage.sDecimal;return Za(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&(!ac.test(a)||!bc.test(a)))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return Za(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":
-null}]);h.extend(m.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob," ").replace(Ca,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob," "):a}});var Ba=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Qb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(s.type.order,{"date-pre":function(a){return Date.parse(a)||0},"html-pre":function(a){return M(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():
-a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return ab?1:0},"string-desc":function(a,b){return ab?-1:0}});db("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,
-b,c,d){h("
").addClass(d.sSortJUIWrapper).append(b.contents()).append(h(" ").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]=="asc"?d.sSortJUIAsc:
-h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});m.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return f;f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:function(a){return"string"===typeof a?a.replace(/ /g,">").replace(/"/g,"""):
-a}}}};h.extend(m.ext.internal,{_fnExternApiFunc:Nb,_fnBuildAjax:ra,_fnAjaxUpdate:lb,_fnAjaxParameters:ub,_fnAjaxUpdateDraw:vb,_fnAjaxDataSrc:sa,_fnAddColumn:Ga,_fnColumnOptions:la,_fnAdjustColumnSizing:U,_fnVisibleToColumnIndex:$,_fnColumnIndexToVisible:ba,_fnVisbleColumns:ca,_fnGetColumns:aa,_fnColumnTypes:Ia,_fnApplyColumnDefs:ib,_fnHungarianMap:Y,_fnCamelToHungarian:J,_fnLanguageCompat:Fa,_fnBrowserDetect:gb,_fnAddData:N,_fnAddTr:ma,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:
-null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:jb,_fnSplitObjNotation:La,_fnGetObjectDataFn:Q,_fnSetObjectDataFn:R,_fnGetDataMaster:Ma,_fnClearTable:na,_fnDeleteIndex:oa,_fnInvalidate:ea,_fnGetRowElements:Ka,_fnCreateTr:Ja,_fnBuildHead:kb,_fnDrawHead:ga,_fnDraw:O,_fnReDraw:T,_fnAddOptionsHtml:nb,_fnDetectHeader:fa,_fnGetUniqueThs:qa,_fnFeatureHtmlFilter:pb,_fnFilterComplete:ha,_fnFilterCustom:yb,_fnFilterColumn:xb,_fnFilter:wb,_fnFilterCreateSearch:Qa,
-_fnEscapeRegex:va,_fnFilterData:zb,_fnFeatureHtmlInfo:sb,_fnUpdateInfo:Cb,_fnInfoMacros:Db,_fnInitialise:ia,_fnInitComplete:ta,_fnLengthChange:Ra,_fnFeatureHtmlLength:ob,_fnFeatureHtmlPaginate:tb,_fnPageChange:Ta,_fnFeatureHtmlProcessing:qb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:rb,_fnScrollDraw:Z,_fnApplyToChildren:I,_fnCalculateColumnWidths:Ha,_fnThrottle:ua,_fnConvertToWidth:Fb,_fnGetWidestNode:Gb,_fnGetMaxLenString:Hb,_fnStringToCss:w,_fnSortFlatten:W,_fnSort:mb,_fnSortAria:Jb,_fnSortListener:Va,
-_fnSortAttachListener:Oa,_fnSortingClasses:xa,_fnSortData:Ib,_fnSaveState:ya,_fnLoadState:Kb,_fnSettingsFromNode:za,_fnLog:K,_fnMap:F,_fnBindAction:Wa,_fnCallbackReg:z,_fnCallbackFire:v,_fnLengthOverflow:Sa,_fnRenderer:Pa,_fnDataSource:y,_fnRowAttributes:Na,_fnCalculateEnd:function(){}});h.fn.dataTable=m;m.$=h;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt=m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/provider-libs/ws-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/provider-libs/ws-client.js
deleted file mode 100644
index ab7263155..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_audio_gadget/Android_Realtime_Audio/js/provider-libs/ws-client.js
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var CONSTANTS = {
- urlSeperator: '/',
- queryParamStreamName : '?streamname=',
- queryParamStreamVersion : '&version=',
- queryParamLastUpdatedTime : '&lastUpdatedTime=',
- urlSecureTransportWebsocket : 'wss://',
- urlSecureTransportHttp : 'https://',
- colon : ':',
- defaultIntervalTime : 10 * 1000,
- defaultHostName : 'localhost',
- defaultSecurePortNumber : '9443',
- defaultMode : 'AUTO',
- processModeHTTP : 'HTTP',
- processModeWebSocket : 'WEBSOCKET',
- processModeAuto : 'AUTO',
- numThousand : 1000,
- websocketTimeAppender : 400,
- websocketSubscriptionEndpoint : 'portal/uipublisher/websocketSubscriptionEndpoint.jag',
- httpEventRetrievalEndpoint : 'portal/uipublisher/httpEventRetrievalEndpoint.jag'
-};
-
-
-var websocket = null;
-var webSocketUrl;
-var httpUrl;
-var cepHostName;
-var cepPortNumber;
-var isErrorOccured = false;
-var lastUpdatedtime = -1;
-var polingInterval;
-var stream;
-var streamVersion;
-var firstPollingAttempt;
-var processMode;
-var onSuccessFunction;
-var onErrorFunction;
-var terminateWebsocketInstance = false;
-var pollingContinue = true;
-
-function subscribe(streamName,version,intervalTime,
- listeningFuncSuccessData,listeningFuncErrorData,cepHost,cepPort,mode){
- stopPollingProcesses();
- stream = streamName;
- streamVersion = version;
- onSuccessFunction = listeningFuncSuccessData;
- onErrorFunction = listeningFuncErrorData;
-
- if(intervalTime == null || intervalTime == ""){
- polingInterval = CONSTANTS.defaultIntervalTime;
- } else{
- polingInterval = intervalTime * CONSTANTS.numThousand;
- }
-
- if(cepHost == null || cepHost == ""){
- cepHostName = CONSTANTS.defaultHostName;
- } else{
- cepHostName = cepHost;
- }
-
- if(cepPort == null || cepPort == ""){
- cepPortNumber = CONSTANTS.defaultSecurePortNumber;
- } else{
- cepPortNumber = cepPort;
- }
-
- if(mode == null || mode == ""){
- processMode = CONSTANTS.defaultMode;
- } else{
- processMode = mode;
- }
-
- webSocketUrl = CONSTANTS.urlSecureTransportWebsocket + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.websocketSubscriptionEndpoint;
-
- if(processMode == CONSTANTS.processModeHTTP){
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- } else{
- initializeWebSocket(webSocketUrl);
- }
-}
-
-
-/**
- * Initializing Web Socket
- */
-function initializeWebSocket(webSocketUrl){
- websocket = new WebSocket(webSocketUrl);
- websocket.onopen = webSocketOnOpen;
- websocket.onmessage = webSocketOnMessage;
- websocket.onclose = webSocketOnClose;
- websocket.onerror = webSocketOnError;
-}
-
-function getWebsocketSubscriptionMessage(streamName, streamVersion, streamProperties, streamValues) {
- if (streamProperties.length === streamValues.length) {
- var message = {};
- message.streamName = streamName;
- message.streamVersion = streamVersion;
- var i;
- for (i = 0; i < streamProperties.length; i++) {
- message.filterProps = [];
- message.filterProps.push({
- 'name': streamProperties[i],
- 'value': streamValues[i]
- });
- }
- return JSON.stringify(message);
- } else {
- console.log('stream properties and values are not in equal size');
- }
-}
-
-/**
- * Get the parameters as query parameters.
- * This method parses those parameters and returns.
- * */
-function getAllQueryParamsFromURL() {
- var queryParamList = {}, qParam;
- var urlQueryString = decodeURIComponent(window.top.location.search.substring(1));
-
- if (urlQueryString) {
- var queryStringPairs = urlQueryString.split('&');
- for (var i = 0; i < queryStringPairs.length; i++) {
- qParam = queryStringPairs[i].split('=');
- queryParamList[qParam[0]] = qParam[1];
- }
- return queryParamList;
-
- } else {
- return null;
- }
-}
-
-/**
- * Web socket On Open
- */
-var webSocketOnOpen = function () {
- var params = getAllQueryParamsFromURL();
- var deviceId;
- var owner;
- if (params) {
- owner = params["owner"];
- deviceId = params["deviceId"];
- }
- var filterPropNames = ["meta_owner", "meta_deviceId"];
- var filterPropVals = [owner, deviceId];
- var data = getWebsocketSubscriptionMessage(stream, streamVersion, filterPropNames, filterPropVals);
- websocket.send(data);
-};
-
-/**
- * On server sends a message
- */
-var webSocketOnMessage = function (evt) {
- var event = evt.data;
- var array = JSON.parse(event);
- constructPayload(array);
-};
-
-/**
- * On server close
- */
-var webSocketOnClose =function (e) {
-
- if(isErrorOccured){
- if(processMode != CONSTANTS.processModeWebSocket){
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- }
- } else{
- if(!terminateWebsocketInstance){
- waitForSocketConnection(websocket);
- } else{
- terminateWebsocketInstance = false;
- }
-
- }
-};
-
-/**
- * On server Error
- */
-var webSocketOnError = function (err) {
- var error = "Error: Cannot connect to Websocket URL:" + webSocketUrl + " .Hence closing the connection!";
-
- onErrorFunction(error);
- isErrorOccured = true;
-
-};
-
-/**
- * Gracefully increments the connection retry
- */
-var waitTime = CONSTANTS.numThousand;
-function waitForSocketConnection(socket, callback){
- setTimeout(
- function () {
- if (socket.readyState === 1) {
- initializeWebSocket(webSocketUrl);
- console.log("Connection is made");
- if(callback != null){
- callback();
- }
- return;
- } else {
- websocket = new WebSocket(webSocketUrl);
- waitTime += CONSTANTS.websocketTimeAppender;
- waitForSocketConnection(websocket, callback);
- }
- }, waitTime);
-}
-
-/**
- * Polling to retrieve events from http request periodically
- */
-function startPoll(){
-
- (function poll(){
- setTimeout(function(){
- httpUrl = CONSTANTS.urlSecureTransportHttp + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.httpEventRetrievalEndpoint + CONSTANTS.queryParamStreamName + stream +
- CONSTANTS.queryParamStreamVersion + streamVersion + CONSTANTS.queryParamLastUpdatedTime + lastUpdatedtime;;
- $.getJSON(httpUrl, function(responseText) {
- if(firstPollingAttempt){
- /*var data = $("textarea#idConsole").val();
- $("textarea#idConsole").val(data + "Successfully connected to HTTP.");*/
- firstPollingAttempt = false;
- }
- var eventList = $.parseJSON(responseText.events);
- if(eventList.length != 0){
- lastUpdatedtime = responseText.lastEventTime;
- for(var i=0;i
-
-
-
- Android_Realtime_Audio
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/conf.json
deleted file mode 100644
index aca2d38b7..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/conf.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "provider-conf": {
- "streamName": "org.wso2.iot.android.call.stats:1.0.0",
- "provider-name": "realtime"
- },
- "chart-conf": {
- "key": "timestamp",
- "color": "type",
- "grid": "on",
- "maxLength": "15",
- "gadget-name": "Android Realtime Call",
- "chart-name": "table-chart"
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/css/dataTables.bootstrap.min.css b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/css/dataTables.bootstrap.min.css
deleted file mode 100644
index 745f2996f..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/css/dataTables.bootstrap.min.css
+++ /dev/null
@@ -1 +0,0 @@
-table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable{border-collapse:separate !important}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:last-child{padding-right:0}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/gadget-controller.jag
deleted file mode 100644
index f84538a40..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/gadget-controller.jag
+++ /dev/null
@@ -1,42 +0,0 @@
-<%
-/**
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-(function () {
-
- response.contentType = 'application/json';
- var PROVIDER_CONF = 'provider-conf';
- var PROVIDER_NAME = 'provider-name';
-
- var action = request.getParameter("action");
- var data = request.getContent();
- var providerConf = data[PROVIDER_CONF];
- var providerAPI = require('js/core/' + providerConf[PROVIDER_NAME] + '-provider-api.js');
-
- if (action === 'getSchema') {
- print(providerAPI.getSchema(providerConf));
- return;
- } else if(action === 'getData'){
- print(providerAPI.getData(providerConf));
- return;
- }
-
-}());
-
-
-%>
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/gadget.json
deleted file mode 100644
index b1a8764e8..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/gadget.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "id": "Android_Realtime_Call",
- "title": "Android Realtime Call",
- "type": "gadget",
- "thumbnail": "gadget/Android_Realtime_Call/thumbnail.png",
- "data": {
- "url": "gadget/Android_Realtime_Call/gadget.xml"
- }
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/gadget.xml
deleted file mode 100644
index d05839859..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/gadget.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/gadget-core.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/gadget-core.js
deleted file mode 100644
index 8bfc5f742..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/gadget-core.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
-*/
-$(function () {
- var gadgetLocation;
- var conf;
- var schema;
- var pref = new gadgets.Prefs();
-
- var CHART_CONF = 'chart-conf';
- var PROVIDER_CONF = 'provider-conf';
-
-var init = function () {
- $.ajax({
- url: gadgetLocation + '/conf.json',
- method: "GET",
- contentType: "application/json",
- async: false,
- success: function (data) {
- conf = JSON.parse(data);
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getSchema',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function (data) {
- schema = data;
- }
- });
-
- }
- });
-};
-
-
-var drawGadget = function (){
-
- draw('#canvas', conf[CHART_CONF], schema, null);
- registerCallBackforPush(conf[PROVIDER_CONF], schema, function(providerData) {
- update(providerData);
- });
-
-};
-
-getGadgetLocation(function (gadget_Location) {
- gadgetLocation = gadget_Location;
- init();
- drawGadget();
-
-});
-});
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/gadget-util.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/gadget-util.js
deleted file mode 100644
index 628e76c80..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/gadget-util.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getGadgetLocation = function (callback) {
- var gadgetLocation = "/portal/store/carbon.super/fs/gadget/Android_Realtime_Call";
- var PATH_SEPERATOR = "/";
- if (gadgetLocation.search("store") != -1) {
- wso2.gadgets.identity.getTenantDomain(function (tenantDomain) {
- var gadgetPath = gadgetLocation.split(PATH_SEPERATOR);
- var modifiedPath = '';
- for (var i = 1; i < gadgetPath.length; i++) {
- if (i === 3) {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, tenantDomain);
- } else {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, gadgetPath[i])
- }
- }
- callback(modifiedPath);
- });
- } else {
- callback(gadgetLocation);
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/provider-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/provider-client.js
deleted file mode 100644
index 6196677f6..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/provider-client.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-// var registerCallBackforPush;
-
-(function() {
-
- var callback;
-
- /**
- * TODO Need to read hostname,port, and tenantId from providerConfig
- * @param providerConfig
- * @param schema
- */
- registerCallBackforPush = function(providerConfig, schema, _callback) {
- var streamId = providerConfig['streamName'];
- var hostname = window.parent.location.hostname;
- var port = window.parent.location.port;
-
- subscribe(streamId.split(":")[0], streamId.split(":")[1],
- '10',
- onData, onError,
- hostname,
- port,
- 'WEBSOCKET'
- );
- callback = _callback;
- };
-
- function onData(streamId, data) {
- callback(data);
- };
-
- function onError(error) {
- console.error(error);
- };
-
-}());
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/realtime-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/realtime-provider-api.js
deleted file mode 100644
index 7cf59af77..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/realtime-provider-api.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, getMode, getSchema, getData, registerCallBackforPush;
-
-(function() {
-
- var PROVIDERS_LOCATION = '/extensions/providers/';
- var PROVIDER_NAME = 'realtime';
-
- var log = new Log();
- var utils = require('/modules/utils.js');
- var carbon = require("carbon");
- var EventPublisherConstants = Packages.org.wso2.carbon.event.publisher.core.config.EventPublisherConstants;
- var eventPublisherService = carbon.server.osgiService('org.wso2.carbon.event.publisher.core.EventPublisherService');
- var eventStreamService = carbon.server.osgiService('org.wso2.carbon.event.stream.core.EventStreamService');
-
- var typeMap = {
- "bool": "string",
- "boolean": "string",
- "string": "string",
- "int": "number",
- "integer": "number",
- "long": "number",
- "double": "number",
- "float": "number",
- "time": "time"
- };
-
- getConfig = function() {
- var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json');
- var datasources = [];
- try {
- var eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations();
- for (var i = 0; i < eventPublisherConfigurationList.size(); i++) {
- var eventPublisherConfiguration = eventPublisherService.getActiveEventPublisherConfiguration(
- eventPublisherConfigurationList.get(i).getEventPublisherName());;
-
- var mappingTypeIsWso2 = eventPublisherConfiguration.getOutputMapping()
- .getMappingType().equals(EventPublisherConstants.EF_WSO2EVENT_MAPPING_TYPE);
-
- var adapterType = null;
- if (eventPublisherConfiguration.getToAdapterConfiguration() != null) {
- adapterType = eventPublisherConfiguration.getToAdapterConfiguration().getType();
- }
- if (mappingTypeIsWso2 && adapterType.trim() == "ui") {
- var streamName = eventPublisherConfiguration.getFromStreamName();
- var streamVersion = eventPublisherConfiguration.getFromStreamVersion();
- var streamId = streamName + ":" + streamVersion;
- datasources.push(streamId);
- }
- }
- var datasourceCfg = {
- "fieldLabel": "Event Stream",
- "fieldName": "streamName",
- "fieldType": "dropDown"
- };
- datasourceCfg['valueSet'] = datasources;
- } catch (e) {
- log.error(e);
- }
- formConfig.config.push(datasourceCfg);
- return formConfig;
- };
-
- /**
- * validate the user input of provider configuration
- * @param providerConfig
- */
- validate = function(providerConfig) {
- /*
- validate the form and return
-
- */
- return true;
- };
-
- /**
- * returns the data mode either push or pull
- */
- getMode = function() {
- return 'push';
- };
-
- /**
- * returns an array of column names & types
- * @param providerConfig
- */
- getSchema = function(providerConfig) {
- var streamId = providerConfig["streamName"];
- var output = [];
-
- output.push({
- fieldName: "TIMESTAMP",
- fieldType: "time"
- });
-
- if (eventStreamService != null) {
- var eventStreamConfiguration = eventStreamService.getEventStreamConfiguration(streamId);
- if (eventStreamConfiguration != null) {
- var metaData = eventStreamConfiguration.getStreamDefinition().getMetaData();
- var correlationData = eventStreamConfiguration.getStreamDefinition().getCorrelationData();
- var payloadData = eventStreamConfiguration.getStreamDefinition().getPayloadData();
- if (metaData != null) {
- for (var i = 0; i < metaData.size(); i++) {
- var type = metaData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: metaData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (correlationData != null) {
- for (var i = 0; i < correlationData.size(); i++) {
- var type = correlationData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: correlationData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (payloadData != null) {
- for (var i = 0; i < payloadData.size(); i++) {
- var type = payloadData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: payloadData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- }
- }
- return output;
- };
-
- getData = function(providerConfig,limit) {
- var data = [];
- return data;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/table-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/table-chart-api.js
deleted file mode 100644
index 992d5235f..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/core/table-chart-api.js
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, isProviderRequired, draw, update;
-
-(function() {
-
- var CHART_LOCATION = '/extensions/chart-templates/';
-
- var tableFieldsOrder = ['timestamp', 'number', 'type', 'duration'];
- /**
- * return the config to be populated in the chart configuration UI
- * @param schema
- */
- getConfig = function(schema) {
- var chartConf = require(CHART_LOCATION + '/table-chart/config.json').config;
- /*
- dynamic logic goes here
- */
-
- var columns = [];
-
- columns.push("None");
- columns.push("All");
- for(var i=0; i < schema.length; i++) {
- columns.push(schema[i]["fieldName"]);
- }
-
- for(var i=0; i < chartConf.length; i++) {
- if (chartConf[i]["fieldName"] == "color") {
- chartConf[i]["valueSet"] = columns;
- break;
- }
- }
-
- return chartConf;
- };
-
- /**
- * validate the user inout for the chart configuration
- * @param chartConfig
- */
- validate = function(chartConfig) {
- return true;
- };
-
- /**
- * TO be used when provider configuration steps need to be skipped
- */
- isProviderRequired = function() {
-
- }
-
-
- /**
- * return the gadget content
- * @param chartConfig
- * @param schema
- * @param data
- */
- draw = function(placeholder, chartConfig, _schema, data) {
-
- var schema = toVizGrammarSchema(_schema);
- var grid = chartConfig.grid;
-
- chartConfig.columns = tableFieldsOrder;
-
- var view = {
- id: "chart-0",
- schema: schema,
- chartConfig: buildChartConfig(chartConfig),
- data: function() {
- if(data) {
- var result = [];
- data.forEach(function(item) {
- var row = [];
- schema[0].metadata.names.forEach(function(name) {
- row.push(item[name]);
- });
- result.push(row);
- });
- wso2gadgets.onDataReady(result);
- }
- }
-
- };
-
- try {
- wso2gadgets.init(placeholder, view);
- var view = wso2gadgets.load("chart-0");
-
- if (grid) {
- $(document).ready(function() {
- $('#table').DataTable();
- } );
- }
-
- } catch (e) {
- console.error(e);
- }
-
- };
-
- /**
- *
- * @param data
- */
- update = function(data) {
- //Change the timestamp field in Datetime format.
- data[0][3] = getDateString(data[0][3]);
- data[0][6] = getDuration(data[0][6]);
- wso2gadgets.onDataReady(data,"append");
- };
-
- buildChartConfig = function (_chartConfig) {
- var conf = {};
- conf.charts = [];
- conf.charts[0] = {
- type : "table",
- key : _chartConfig.key,
- grid: _chartConfig.grid
- };
- conf.maxLength = _chartConfig.maxLength;
-
- if (_chartConfig.color == "All") {
- conf.charts[0].color = "*";
- } else if (_chartConfig.color != "None") {
- conf.charts[0].color = _chartConfig.color;
- }
-
- conf.charts[0].columns = _chartConfig.columns;
- conf.columnTitles = ['Time', 'Recipient Number', 'Type', 'Call Duration'];
- return conf;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/jquery.dataTables.min.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/jquery.dataTables.min.js
deleted file mode 100644
index d87780456..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/jquery.dataTables.min.js
+++ /dev/null
@@ -1,164 +0,0 @@
-/*!
- DataTables 1.10.10
- ©2008-2015 SpryMedia Ltd - datatables.net/license
-*/
-(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Y(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
-d[c]=e,"o"===b[1]&&Y(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Y(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Fa(a){var b=m.defaults.oLanguage,c=a.sZeroRecords;!a.sEmptyTable&&(c&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(c&&"Loading..."===b.sLoadingRecords)&&F(a,a,"sZeroRecords","sLoadingRecords");
-a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&db(a)}function eb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":"");"boolean"===typeof a.scrollX&&(a.scrollX=
-a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b").css({position:"fixed",top:0,left:0,height:1,width:1,overflow:"hidden"}).append(h("
").css({position:"absolute",top:1,left:1,
-width:100,overflow:"scroll"}).append(h("
").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,m.__browser);a.oScroll.iBarWidth=m.__browser.barWidth}function hb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&&
-(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ga(a,b){var c=m.defaults.column,d=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},m.models.oSearch,c[d]);la(a,d,h(b).data())}function la(a,b,c){var b=a.aoColumns[b],d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=
-(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(fb(c),J(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=Q(g),i=b.mRender?Q(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&
-(c(g.sort)||c(g.type)||c(g.filter));b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return R(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=
-d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function U(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ha(a);for(var c=0,d=b.length;cq[f])d(l.length+q[f],o);else if("string"===typeof q[f]){j=0;for(i=l.length;jb&&a[e]--; -1!=d&&c===k&&a.splice(d,1)}function ea(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=
-Ka(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c ").appendTo(g));b=0;for(c=l.length;btr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(o.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(o.sFooterTH);if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);var g=a._iDisplayStart,o=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&
-!lb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:o;for(j=j?0:g;j",{"class":e?d[0]:""}).append(h(" ",{valign:"top",colSpan:ca(a),
-"class":a.oClasses.sRowEmpty}).html(c))[0];v(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ma(a),g,o,i]);v(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ma(a),g,o,i]);d=h(a.nTBody);d.children().detach();d.append(h(b));v(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&mb(a);d?ha(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;O(a);a._drawHold=
-!1}function nb(a){var b=a.oClasses,c=h(a.nTable),c=h("
").insertBefore(c),d=a.oFeatures,e=h("
",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,o,l,q,u=0;u ")[0];o=f[u+1];if("'"==o||'"'==o){l="";for(q=2;f[u+q]!=o;)l+=f[u+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(o=l.split("."),
-i.id=o[0].substr(1,o[0].length-1),i.className=o[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;u+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=ob(a);else if("f"==j&&d.bFilter)g=pb(a);else if("r"==j&&d.bProcessing)g=qb(a);else if("t"==j)g=rb(a);else if("i"==j&&d.bInfo)g=sb(a);else if("p"==j&&d.bPaginate)g=tb(a);else if(0!==m.ext.feature.length){i=m.ext.feature;q=0;for(o=i.length;q ',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",g):j+g,b=h("
",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h(" ").append(j)),f=function(){var b=!this.value?"":this.value;b!=e.sSearch&&(ha(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,O(a))},g=null!==
-a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT",g?ua(f,g):f).bind("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}});return b[0]}function ha(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;
-d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ia(a);if("ssp"!=y(a)){wb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b=b.length)a.aiDisplay=f.slice();else{if(g||c||e.length>b.length||0!==b.indexOf(e)||a.bSorted)a.aiDisplay=f.slice();b=a.aiDisplay;for(c=b.length-1;0<=
-c;c--)d.test(a.aoData[b[c]]._sFilterRow)||b.splice(c,1)}}function Qa(a,b,c,d){a=b?a:va(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function va(a){return a.replace(Yb,"\\$1")}function zb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=m.ext.type.search;c=!1;d=0;for(f=a.aoData.length;d",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Cb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Cb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&
-(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Db(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Db(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/
-e)))}function ia(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){nb(a);kb(a);ga(a,a.aoHeader);ga(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Ha(a);b=0;for(c=e.length;b",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g ").addClass(b.sLength);
-a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).bind("change.DT",function(){Ra(a,h(this).val());O(a)});h(a.nTable).bind("length.dt.DT",function(b,c,d){a===c&&h("select",i).val(d)});return i[0]}function tb(a){var b=a.sPaginationType,c=m.ext.pager[b],d="function"===typeof c,e=function(a){O(a)},b=h("
").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+
-"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;lf&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==
-b?d+e ",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");v(a,null,"processing",[a,b])}function rb(a){var b=h(a.nTable);b.attr("role",
-"grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),o=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("
",{"class":f.sScrollWrapper}).append(h("
",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?!d?null:w(d):"100%"}).append(h("
",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||
-"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("
",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:w(d)}).append(b));l&&i.append(h("
",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:w(d):"100%"}).append(h("
",{"class":f.sScrollFootInner}).append(o.removeAttr("id").css("margin-left",0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),
-k=b[0],f=b[1],u=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(u.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=u;a.aoDrawCallback.push({fn:Z,sName:"scrolling"});return i[0]}function Z(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,o=j.children("table"),j=a.nScrollBody,l=h(j),q=j.style,u=h(a.nScrollFoot).children("div"),
-m=u.children("table"),n=h(a.nTHead),p=h(a.nTable),t=p[0],v=t.style,r=a.nTFoot?h(a.nTFoot):null,Eb=a.oBrowser,Ua=Eb.bScrollOversize,s,L,P,x,y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==L&&a.scrollBarVis!==k)a.scrollBarVis=L,U(a);else{a.scrollBarVis=L;p.children("thead, tfoot").remove();x=n.clone().prependTo(p);n=n.find("tr");L=x.find("tr");x.find("th, td").removeAttr("tabindex");
-r&&(P=r.clone().prependTo(p),s=r.find("tr"),P=P.find("tr"));c||(q.width="100%",f[0].style.width="100%");h.each(qa(a,x),function(b,c){B=$(a,b);c.style.width=a.aoColumns[B].sWidth});r&&I(function(a){a.style.width=""},P);f=p.outerWidth();if(""===c){v.width="100%";if(Ua&&(p.find("tbody").height()>j.offsetHeight||"scroll"==l.css("overflow-y")))v.width=w(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(v.width=w(d),f=p.outerWidth());I(C,L);I(function(a){A.push(a.innerHTML);y.push(w(h(a).css("width")))},
-L);I(function(a,b){a.style.width=y[b]},n);h(L).height(0);r&&(I(C,P),I(function(a){z.push(w(h(a).css("width")))},P),I(function(a,b){a.style.width=z[b]},s),h(P).height(0));I(function(a,b){a.innerHTML=''+A[b]+"
";a.style.width=y[b]},L);r&&I(function(a,b){a.innerHTML="";a.style.width=z[b]},P);if(p.outerWidth()j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(Ua&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))v.width=
-w(s-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else s="100%";q.width=w(s);g.width=w(s);r&&(a.nScrollFoot.style.width=w(s));!e&&Ua&&(q.height=w(t.offsetHeight+b));c=p.outerWidth();o[0].style.width=w(c);i.width=w(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+(Eb.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";r&&(m[0].style.width=w(c),u[0].style.width=w(c),u[0].style[e]=d?b+"px":"0px");l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=
-0}}function I(a,b,c){for(var d=0,e=0,f=b.length,g,j;e").appendTo(j.find("tbody"));j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");o=qa(a,j.find("thead")[0]);for(m=0;m ").css({width:n.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(m=0;m ").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()").css("width",w(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Gb(a,b){var c=Hb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h(" ").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Hb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;fd&&(d=c.length,e=f);return e}function w(a){return null===
-a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function W(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var o=[];f=function(a){a.length&&!h.isArray(a[0])?o.push(a):h.merge(o,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;ae?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];
-return ce?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,m=f[a]._aSortData,p=f[b]._aSortData;for(j=0;jg?1:0})}a.bSorted=!0}function Jb(a){for(var b,c,d=a.aoColumns,e=W(a),a=a.oLanguage.oAria,f=0,g=d.length;f/g,"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0e?e+1:3));e=0;for(f=d.length;ee?e+1:3))}a.aLastSort=d}function Ib(a,b){var c=a.aoColumns[b],d=m.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ba(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j=d.length?[0,c[1]]:c)}));e.search!==k&&h.extend(a.oPreviousSearch,Bb(e.search));b=0;for(c=e.columns.length;b=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Pa(a,b){var c=
-a.renderer,d=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function Aa(a,b){var c=[],c=Mb.numbers_length,d=Math.floor(c/2);b<=c?c=X(0,b):a<=d?(c=X(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=X(b-(c-2),b):(c=X(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function db(a){h.each({num:function(b){return Ba(b,
-a)},"num-fmt":function(b){return Ba(b,a,Xa)},"html-num":function(b){return Ba(b,a,Ca)},"html-num-fmt":function(b){return Ba(b,a,Ca,Xa)}},function(b,c){s.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(s.type.search[b+a]=s.type.search.html)})}function Nb(a){return function(){var b=[za(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return m.ext.internal[a].apply(this,b)}}var m,s,t,p,r,Ya={},Ob=/[\r\n]/g,Ca=/<.*?>/g,ac=/^[\w\+\-]/,bc=/[\w\+\-]$/,Yb=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)",
-"g"),Xa=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Pb=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},Qb=function(a,b){Ya[b]||(Ya[b]=RegExp(va(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Ya[b],"."):a},Za=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Qb(a,b));c&&d&&(a=a.replace(Xa,""));return!isNaN(parseFloat(a))&&isFinite(a)},Rb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===
-typeof a)?null:Za(a.replace(Ca,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e")[0],Zb=wa.textContent!==k,$b=/<.*?>/g;m=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new t(za(this[s.iApiIndex])):new t(this)};this.fnAddData=function(a,b){var c=this.api(!0),
-d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&Z(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],
-h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};
-this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);
-(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return za(this[s.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();(d===k||d)&&h.draw();return 0};this.fnVersionCheck=
-s.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=s.internal;for(var e in m.ext.internal)e&&(this[e]=Nb(e));this.each(function(){var e={},e=1t<"F"ip>'),n.renderer)?h.isPlainObject(n.renderer)&&!n.renderer.header&&(n.renderer.header="jqueryui"):n.renderer="jqueryui":h.extend(i,m.ext.classes,e.oClasses);q.addClass(i.sTable);n.iInitDisplayStart===k&&(n.iInitDisplayStart=e.iDisplayStart,n._iDisplayStart=e.iDisplayStart);null!==e.iDeferLoading&&(n.bDeferLoading=!0,g=h.isArray(e.iDeferLoading),
-n._iRecordsDisplay=g?e.iDeferLoading[0]:e.iDeferLoading,n._iRecordsTotal=g?e.iDeferLoading[1]:e.iDeferLoading);var t=n.oLanguage;h.extend(!0,t,e.oLanguage);""!==t.sUrl&&(h.ajax({dataType:"json",url:t.sUrl,success:function(a){Fa(a);J(l.oLanguage,a);h.extend(true,t,a);ia(n)},error:function(){ia(n)}}),o=!0);null===e.asStripeClasses&&(n.asStripeClasses=[i.sStripeOdd,i.sStripeEven]);var g=n.asStripeClasses,r=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(g,function(a){return r.hasClass(a)}))&&
-(h("tbody tr",this).removeClass(g.join(" ")),n.asDestroyStripes=g.slice());u=[];g=this.getElementsByTagName("thead");0!==g.length&&(fa(n.aoHeader,g[0]),u=qa(n));if(null===e.aoColumns){p=[];g=0;for(j=u.length;g ").appendTo(this));n.nTHead=j[0];j=q.children("tbody");0===j.length&&(j=h(" ").appendTo(this));n.nTBody=j[0];j=q.children("tfoot");if(0===j.length&&0 ").appendTo(this);
-0===j.length||0===j.children().length?q.addClass(i.sNoFooter):0a?new t(b[a],this[a]):null},filter:function(a){var b=[];if(x.filter)b=x.filter.call(this,a,this);else for(var c=0,d=this.length;c ").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=ca(d),e.push(c[0]))};f(a,b);c._details&&c._details.remove();c._details=h(e);c._detailsShow&&c._details.insertAfter(c.nTr)}return this});p(["row().child.show()","row().child().show()"],function(){Vb(this,
-!0);return this});p(["row().child.hide()","row().child().hide()"],function(){Vb(this,!1);return this});p(["row().child.remove()","row().child().remove()"],function(){cb(this);return this});p("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var dc=/^(.+):(name|visIdx|visible)$/,Wb=function(a,b,c,d,e){for(var c=[],d=0,f=e.length;d=0?b:g.length+b];if(typeof a==="function"){var e=Da(c,f);return h.map(g,function(b,f){return a(f,Wb(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(dc):"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null});
-return[m[m.length+b]]}return[$(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null})}else return h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray()},c,f)},1);c.selector.cols=a;c.selector.opts=b;return c});r("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});r("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});r("columns().data()",
-"column().data()",function(){return this.iterator("column-rows",Wb,1)});r("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});r("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});r("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,
-e,"anCells",b)},1)});r("columns().visible()","column().visible()",function(a,b){return this.iterator("column",function(c,d){if(a===k)return c.aoColumns[d].bVisible;var e=c.aoColumns,f=e[d],g=c.aoData,j,i,m;if(a!==k&&f.bVisible!==a){if(a){var l=h.inArray(!0,D(e,"bVisible"),d+1);j=0;for(i=g.length;jd;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;h.each(m.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:
-null;if(e.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(m.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new t(c):c};m.util={throttle:ua,escapeRegex:va};m.camelToHungarian=J;p("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){p(b+"()",function(){var a=Array.prototype.slice.call(arguments);
-a[0].match(/\.dt\b/)||(a[0]+=".dt");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});p("clear()",function(){return this.iterator("table",function(a){na(a)})});p("settings()",function(){return new t(this.context,this.context)});p("init()",function(){var a=this.context;return a.length?a[0].oInit:null});p("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});p("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=
-b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),p;b.bDestroying=!0;v(b,"aoDestroyCallback","destroy",[b]);a||(new t(b)).columns().visible(!0);k.unbind(".DT").find(":not(tbody *)").unbind(".DT");h(E).unbind(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];xa(b);
-h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);b.bJUI&&(h("th span."+d.sSortIcon+", td span."+d.sSortIcon,g).detach(),h("th, td",g).each(function(){var a=h("div."+d.sSortJUIWrapper,this);h(this).append(a.contents());a.detach()}));f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),(p=
-b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%p])}));c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){p(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});p("i18n()",function(a,b,c){var d=this.context[0],a=Q(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:a._);
-return a.replace("%d",c)});m.version="1.10.10";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,
-sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};m.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,
-bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+
-a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
-oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},
-m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};Y(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};
-Y(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],
-aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",
-iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?
-1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};
-m.ext=s={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(s,{afnFiltering:s.search,aTypes:s.type.detect,ofnSearch:s.type.search,oSort:s.type.order,afnSortData:s.order,aoFeatures:s.feature,oApi:s.internal,oStdClasses:s.classes,
-oPagination:s.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",
-sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
-sJUIHeader:"",sJUIFooter:""});var Ea="",Ea="",G=Ea+"ui-state-default",ka=Ea+"css_right ui-icon ui-icon-",Xb=Ea+"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";h.extend(m.ext.oJUIClasses,m.ext.classes,{sPageButton:"fg-button ui-button "+G,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:G+" sorting_asc",sSortDesc:G+" sorting_desc",sSortable:G+" sorting",
-sSortableAsc:G+" sorting_asc_disabled",sSortableDesc:G+" sorting_desc_disabled",sSortableNone:G+" sorting_disabled",sSortJUIAsc:ka+"triangle-1-n",sSortJUIDesc:ka+"triangle-1-s",sSortJUI:ka+"carat-2-n-s",sSortJUIAscAllowed:ka+"carat-1-n",sSortJUIDescAllowed:ka+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+G,sScrollFoot:"dataTables_scrollFoot "+G,sHeaderTH:G,sFooterTH:G,sJUIHeader:Xb+" ui-corner-tl ui-corner-tr",sJUIFooter:Xb+
-" ui-corner-bl ui-corner-br"});var Mb=m.ext.pager;h.extend(Mb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[Aa(a,b)]},simple_numbers:function(a,b){return["previous",Aa(a,b),"next"]},full_numbers:function(a,b){return["first","previous",Aa(a,b),"next","last"]},_numbers:Aa,numbers_length:7});h.extend(!0,m.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||
-{},k,l,m=0,p=function(b,d){var n,r,t,s,v=function(b){Ta(a,b.data.action,true)};n=0;for(r=d.length;n ").appendTo(b);p(t,s)}else{k=null;l="";switch(s){case "ellipsis":b.append('… ');break;case "first":k=j.sFirst;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":k=j.sPrevious;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":k=j.sNext;l=s+(e",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[s],"data-dt-idx":m,tabindex:a.iTabIndex,id:c===0&&typeof s==="string"?a.sTableId+"_"+s:null}).html(k).appendTo(b);Wa(t,{action:s},v);m++}}}},r;try{r=h(b).find(H.activeElement).data("dt-idx")}catch(n){}p(h(b).empty(),d);r&&h(b).find("[data-dt-idx="+r+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=
-b.oLanguage.sDecimal;return Za(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&(!ac.test(a)||!bc.test(a)))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return Za(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":
-null}]);h.extend(m.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob," ").replace(Ca,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob," "):a}});var Ba=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Qb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(s.type.order,{"date-pre":function(a){return Date.parse(a)||0},"html-pre":function(a){return M(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():
-a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return ab?1:0},"string-desc":function(a,b){return ab?-1:0}});db("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,
-b,c,d){h("
").addClass(d.sSortJUIWrapper).append(b.contents()).append(h(" ").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]=="asc"?d.sSortJUIAsc:
-h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});m.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return f;f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:function(a){return"string"===typeof a?a.replace(/ /g,">").replace(/"/g,"""):
-a}}}};h.extend(m.ext.internal,{_fnExternApiFunc:Nb,_fnBuildAjax:ra,_fnAjaxUpdate:lb,_fnAjaxParameters:ub,_fnAjaxUpdateDraw:vb,_fnAjaxDataSrc:sa,_fnAddColumn:Ga,_fnColumnOptions:la,_fnAdjustColumnSizing:U,_fnVisibleToColumnIndex:$,_fnColumnIndexToVisible:ba,_fnVisbleColumns:ca,_fnGetColumns:aa,_fnColumnTypes:Ia,_fnApplyColumnDefs:ib,_fnHungarianMap:Y,_fnCamelToHungarian:J,_fnLanguageCompat:Fa,_fnBrowserDetect:gb,_fnAddData:N,_fnAddTr:ma,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:
-null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:jb,_fnSplitObjNotation:La,_fnGetObjectDataFn:Q,_fnSetObjectDataFn:R,_fnGetDataMaster:Ma,_fnClearTable:na,_fnDeleteIndex:oa,_fnInvalidate:ea,_fnGetRowElements:Ka,_fnCreateTr:Ja,_fnBuildHead:kb,_fnDrawHead:ga,_fnDraw:O,_fnReDraw:T,_fnAddOptionsHtml:nb,_fnDetectHeader:fa,_fnGetUniqueThs:qa,_fnFeatureHtmlFilter:pb,_fnFilterComplete:ha,_fnFilterCustom:yb,_fnFilterColumn:xb,_fnFilter:wb,_fnFilterCreateSearch:Qa,
-_fnEscapeRegex:va,_fnFilterData:zb,_fnFeatureHtmlInfo:sb,_fnUpdateInfo:Cb,_fnInfoMacros:Db,_fnInitialise:ia,_fnInitComplete:ta,_fnLengthChange:Ra,_fnFeatureHtmlLength:ob,_fnFeatureHtmlPaginate:tb,_fnPageChange:Ta,_fnFeatureHtmlProcessing:qb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:rb,_fnScrollDraw:Z,_fnApplyToChildren:I,_fnCalculateColumnWidths:Ha,_fnThrottle:ua,_fnConvertToWidth:Fb,_fnGetWidestNode:Gb,_fnGetMaxLenString:Hb,_fnStringToCss:w,_fnSortFlatten:W,_fnSort:mb,_fnSortAria:Jb,_fnSortListener:Va,
-_fnSortAttachListener:Oa,_fnSortingClasses:xa,_fnSortData:Ib,_fnSaveState:ya,_fnLoadState:Kb,_fnSettingsFromNode:za,_fnLog:K,_fnMap:F,_fnBindAction:Wa,_fnCallbackReg:z,_fnCallbackFire:v,_fnLengthOverflow:Sa,_fnRenderer:Pa,_fnDataSource:y,_fnRowAttributes:Na,_fnCalculateEnd:function(){}});h.fn.dataTable=m;m.$=h;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt=m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/provider-libs/ws-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/provider-libs/ws-client.js
deleted file mode 100644
index 85f23c101..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/js/provider-libs/ws-client.js
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var CONSTANTS = {
- urlSeperator: '/',
- queryParamStreamName: '?streamname=',
- queryParamStreamVersion: '&version=',
- queryParamLastUpdatedTime: '&lastUpdatedTime=',
- urlSecureTransportWebsocket: 'wss://',
- urlSecureTransportHttp: 'https://',
- colon: ':',
- defaultIntervalTime: 10 * 1000,
- defaultHostName: 'localhost',
- defaultSecurePortNumber: '9443',
- defaultMode: 'AUTO',
- processModeHTTP: 'HTTP',
- processModeWebSocket: 'WEBSOCKET',
- processModeAuto: 'AUTO',
- numThousand: 1000,
- websocketTimeAppender: 400,
- websocketSubscriptionEndpoint: 'portal/uipublisher/websocketSubscriptionEndpoint.jag',
- httpEventRetrievalEndpoint: 'portal/uipublisher/httpEventRetrievalEndpoint.jag'
-};
-
-
-var websocket = null;
-var webSocketUrl;
-var httpUrl;
-var cepHostName;
-var cepPortNumber;
-var isErrorOccured = false;
-var lastUpdatedtime = -1;
-var polingInterval;
-var stream;
-var streamVersion;
-var firstPollingAttempt;
-var processMode;
-var onSuccessFunction;
-var onErrorFunction;
-var terminateWebsocketInstance = false;
-var pollingContinue = true;
-
-function subscribe(streamName, version, intervalTime,
- listeningFuncSuccessData, listeningFuncErrorData, cepHost, cepPort, mode) {
- stopPollingProcesses();
- stream = streamName;
- streamVersion = version;
- onSuccessFunction = listeningFuncSuccessData;
- onErrorFunction = listeningFuncErrorData;
-
- if (intervalTime == null || intervalTime == "") {
- polingInterval = CONSTANTS.defaultIntervalTime;
- } else {
- polingInterval = intervalTime * CONSTANTS.numThousand;
- }
-
- if (cepHost == null || cepHost == "") {
- cepHostName = CONSTANTS.defaultHostName;
- } else {
- cepHostName = cepHost;
- }
-
- if (cepPort == null || cepPort == "") {
- cepPortNumber = CONSTANTS.defaultSecurePortNumber;
- } else {
- cepPortNumber = cepPort;
- }
-
- if (mode == null || mode == "") {
- processMode = CONSTANTS.defaultMode;
- } else {
- processMode = mode;
- }
-
- webSocketUrl = CONSTANTS.urlSecureTransportWebsocket + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.websocketSubscriptionEndpoint;
-
- if (processMode == CONSTANTS.processModeHTTP) {
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- } else {
- initializeWebSocket(webSocketUrl);
- }
-}
-
-
-/**
- * Initializing Web Socket
- */
-function initializeWebSocket(webSocketUrl) {
- websocket = new WebSocket(webSocketUrl);
- websocket.onopen = webSocketOnOpen;
- websocket.onmessage = webSocketOnMessage;
- websocket.onclose = webSocketOnClose;
- websocket.onerror = webSocketOnError;
-}
-
-function getWebsocketSubscriptionMessage(streamName, streamVersion, streamProperties, streamValues) {
- if (streamProperties.length === streamValues.length) {
- var message = {};
- message.streamName = streamName;
- message.streamVersion = streamVersion;
- var i;
- for (i = 0; i < streamProperties.length; i++) {
- message.filterProps = [];
- message.filterProps.push({
- 'name': streamProperties[i],
- 'value': streamValues[i]
- });
- }
- return JSON.stringify(message);
- } else {
- console.log('stream properties and values are not in equal size');
- }
-}
-
-/**
- * Get the parameters as query parameters.
- * This method parses those parameters and returns.
- * */
-function getAllQueryParamsFromURL() {
- var queryParamList = {}, qParam;
- var urlQueryString = decodeURIComponent(window.top.location.search.substring(1));
-
- if (urlQueryString) {
- var queryStringPairs = urlQueryString.split('&');
- for (var i = 0; i < queryStringPairs.length; i++) {
- qParam = queryStringPairs[i].split('=');
- queryParamList[qParam[0]] = qParam[1];
- }
- return queryParamList;
-
- } else {
- return null;
- }
-}
-
-/**
- * Web socket On Open
- */
-var webSocketOnOpen = function () {
- var params = getAllQueryParamsFromURL();
- var deviceId;
- var owner;
- if (params) {
- owner = params["owner"];
- deviceId = params["deviceId"];
- }
- var filterPropNames = ["meta_owner", "meta_deviceId"];
- var filterPropVals = [owner, deviceId];
- var data = getWebsocketSubscriptionMessage(stream, streamVersion, filterPropNames, filterPropVals);
- websocket.send(data);
-};
-
-/**
- * On server sends a message
- */
-var webSocketOnMessage = function (evt) {
- var event = evt.data;
- var array = JSON.parse(event);
- constructPayload(array);
-};
-
-/**
- * On server close
- */
-var webSocketOnClose = function (e) {
-
- if (isErrorOccured) {
- if (processMode != CONSTANTS.processModeWebSocket) {
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- }
- } else {
- if (!terminateWebsocketInstance) {
- waitForSocketConnection(websocket);
- } else {
- terminateWebsocketInstance = false;
- }
-
- }
-};
-
-/**
- * On server Error
- */
-var webSocketOnError = function (err) {
- var error = "Error: Cannot connect to Websocket URL:" + webSocketUrl + " .Hence closing the connection!";
- onErrorFunction(error);
- isErrorOccured = true;
-
-};
-
-/**
- * Gracefully increments the connection retry
- */
-var waitTime = CONSTANTS.numThousand;
-function waitForSocketConnection(socket, callback) {
- setTimeout(
- function () {
- if (socket.readyState === 1) {
- initializeWebSocket(webSocketUrl);
- console.log("Connection is made");
- if (callback != null) {
- callback();
- }
- return;
- } else {
- websocket = new WebSocket(webSocketUrl);
- waitTime += CONSTANTS.websocketTimeAppender;
- waitForSocketConnection(websocket, callback);
- }
- }, waitTime);
-}
-
-/**
- * Polling to retrieve events from http request periodically
- */
-function startPoll() {
-
- (function poll() {
- setTimeout(function () {
- httpUrl = CONSTANTS.urlSecureTransportHttp + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.httpEventRetrievalEndpoint + CONSTANTS.queryParamStreamName + stream +
- CONSTANTS.queryParamStreamVersion + streamVersion + CONSTANTS.queryParamLastUpdatedTime + lastUpdatedtime;
- ;
- $.getJSON(httpUrl, function (responseText) {
- if (firstPollingAttempt) {
- /*var data = $("textarea#idConsole").val();
- $("textarea#idConsole").val(data + "Successfully connected to HTTP.");*/
- firstPollingAttempt = false;
- }
- var eventList = $.parseJSON(responseText.events);
- if (eventList.length != 0) {
- lastUpdatedtime = responseText.lastEventTime;
- for (var i = 0; i < eventList.length; i++) {
- var arr = eventList[i];
- constructPayload(arr);
- }
- }
- if (pollingContinue) {
- startPoll();
- }
- })
- .fail(function (errorData) {
- var errorData = JSON.parse(errorData.responseText);
- onErrorFunction(errorData.error);
- });
- }, polingInterval);
- })()
-}
-
-function stopPollingProcesses() {
-
- //stopping the Websocket
- if (websocket != null) {
- terminateWebsocketInstance = true;
- websocket.close();
- }
- //stopping the HTTPS Request
- pollingContinue = false;
-
-}
-
-function constructPayload(eventsArray) {
-
- var streamId = stream + CONSTANTS.colon + streamVersion;
- var twoDimentionalArray = [eventsArray];
- onSuccessFunction(streamId, twoDimentionalArray);
-
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/thumbnail.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/thumbnail.png
deleted file mode 100644
index 8b3f43540..000000000
Binary files a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/Android_Realtime_Call/thumbnail.png and /dev/null differ
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/artifact.xml
deleted file mode 100644
index f9d4ed08d..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_call_gadget/artifact.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- Android_Realtime_Call
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/conf.json
deleted file mode 100644
index 57daee232..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/conf.json
+++ /dev/null
@@ -1 +0,0 @@
-{"provider-conf" : {"streamName" : "org.wso2.iot.android.data:1.0.0", "provider-name" : "realtime"}, "chart-conf" : {"key" : "TIMESTAMP", "color" : "None", "grid" : "on", "maxLength" : "10", "gadget-name" : "Android Realtime Data", "chart-name" : "table-chart"}}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/css/dataTables.bootstrap.min.css b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/css/dataTables.bootstrap.min.css
deleted file mode 100644
index 745f2996f..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/css/dataTables.bootstrap.min.css
+++ /dev/null
@@ -1 +0,0 @@
-table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable{border-collapse:separate !important}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:last-child{padding-right:0}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/gadget-controller.jag
deleted file mode 100644
index f84538a40..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/gadget-controller.jag
+++ /dev/null
@@ -1,42 +0,0 @@
-<%
-/**
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-(function () {
-
- response.contentType = 'application/json';
- var PROVIDER_CONF = 'provider-conf';
- var PROVIDER_NAME = 'provider-name';
-
- var action = request.getParameter("action");
- var data = request.getContent();
- var providerConf = data[PROVIDER_CONF];
- var providerAPI = require('js/core/' + providerConf[PROVIDER_NAME] + '-provider-api.js');
-
- if (action === 'getSchema') {
- print(providerAPI.getSchema(providerConf));
- return;
- } else if(action === 'getData'){
- print(providerAPI.getData(providerConf));
- return;
- }
-
-}());
-
-
-%>
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/gadget.json
deleted file mode 100644
index c41db62ea..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/gadget.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "id": "Android_Realtime_Data",
- "title": "Android Realtime Data",
- "type": "gadget",
- "thumbnail": "gadget/Android_Realtime_Data/thumbnail.png",
- "data": {
- "url": "gadget/Android_Realtime_Data/gadget.xml"
- }
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/gadget.xml
deleted file mode 100644
index f0029bc7b..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/gadget.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/gadget-core.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/gadget-core.js
deleted file mode 100644
index 8bfc5f742..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/gadget-core.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
-*/
-$(function () {
- var gadgetLocation;
- var conf;
- var schema;
- var pref = new gadgets.Prefs();
-
- var CHART_CONF = 'chart-conf';
- var PROVIDER_CONF = 'provider-conf';
-
-var init = function () {
- $.ajax({
- url: gadgetLocation + '/conf.json',
- method: "GET",
- contentType: "application/json",
- async: false,
- success: function (data) {
- conf = JSON.parse(data);
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getSchema',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function (data) {
- schema = data;
- }
- });
-
- }
- });
-};
-
-
-var drawGadget = function (){
-
- draw('#canvas', conf[CHART_CONF], schema, null);
- registerCallBackforPush(conf[PROVIDER_CONF], schema, function(providerData) {
- update(providerData);
- });
-
-};
-
-getGadgetLocation(function (gadget_Location) {
- gadgetLocation = gadget_Location;
- init();
- drawGadget();
-
-});
-});
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/gadget-util.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/gadget-util.js
deleted file mode 100644
index dc84eec53..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/gadget-util.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getGadgetLocation = function (callback) {
- var gadgetLocation = "/portal/store/carbon.super/fs/gadget/Android_Realtime_Data";
- var PATH_SEPERATOR = "/";
- if (gadgetLocation.search("store") != -1) {
- wso2.gadgets.identity.getTenantDomain(function (tenantDomain) {
- var gadgetPath = gadgetLocation.split(PATH_SEPERATOR);
- var modifiedPath = '';
- for (var i = 1; i < gadgetPath.length; i++) {
- if (i === 3) {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, tenantDomain);
- } else {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, gadgetPath[i])
- }
- }
- callback(modifiedPath);
- });
- } else {
- callback(gadgetLocation);
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/provider-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/provider-client.js
deleted file mode 100644
index 6196677f6..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/provider-client.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-// var registerCallBackforPush;
-
-(function() {
-
- var callback;
-
- /**
- * TODO Need to read hostname,port, and tenantId from providerConfig
- * @param providerConfig
- * @param schema
- */
- registerCallBackforPush = function(providerConfig, schema, _callback) {
- var streamId = providerConfig['streamName'];
- var hostname = window.parent.location.hostname;
- var port = window.parent.location.port;
-
- subscribe(streamId.split(":")[0], streamId.split(":")[1],
- '10',
- onData, onError,
- hostname,
- port,
- 'WEBSOCKET'
- );
- callback = _callback;
- };
-
- function onData(streamId, data) {
- callback(data);
- };
-
- function onError(error) {
- console.error(error);
- };
-
-}());
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/realtime-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/realtime-provider-api.js
deleted file mode 100644
index 7cf59af77..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/realtime-provider-api.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, getMode, getSchema, getData, registerCallBackforPush;
-
-(function() {
-
- var PROVIDERS_LOCATION = '/extensions/providers/';
- var PROVIDER_NAME = 'realtime';
-
- var log = new Log();
- var utils = require('/modules/utils.js');
- var carbon = require("carbon");
- var EventPublisherConstants = Packages.org.wso2.carbon.event.publisher.core.config.EventPublisherConstants;
- var eventPublisherService = carbon.server.osgiService('org.wso2.carbon.event.publisher.core.EventPublisherService');
- var eventStreamService = carbon.server.osgiService('org.wso2.carbon.event.stream.core.EventStreamService');
-
- var typeMap = {
- "bool": "string",
- "boolean": "string",
- "string": "string",
- "int": "number",
- "integer": "number",
- "long": "number",
- "double": "number",
- "float": "number",
- "time": "time"
- };
-
- getConfig = function() {
- var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json');
- var datasources = [];
- try {
- var eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations();
- for (var i = 0; i < eventPublisherConfigurationList.size(); i++) {
- var eventPublisherConfiguration = eventPublisherService.getActiveEventPublisherConfiguration(
- eventPublisherConfigurationList.get(i).getEventPublisherName());;
-
- var mappingTypeIsWso2 = eventPublisherConfiguration.getOutputMapping()
- .getMappingType().equals(EventPublisherConstants.EF_WSO2EVENT_MAPPING_TYPE);
-
- var adapterType = null;
- if (eventPublisherConfiguration.getToAdapterConfiguration() != null) {
- adapterType = eventPublisherConfiguration.getToAdapterConfiguration().getType();
- }
- if (mappingTypeIsWso2 && adapterType.trim() == "ui") {
- var streamName = eventPublisherConfiguration.getFromStreamName();
- var streamVersion = eventPublisherConfiguration.getFromStreamVersion();
- var streamId = streamName + ":" + streamVersion;
- datasources.push(streamId);
- }
- }
- var datasourceCfg = {
- "fieldLabel": "Event Stream",
- "fieldName": "streamName",
- "fieldType": "dropDown"
- };
- datasourceCfg['valueSet'] = datasources;
- } catch (e) {
- log.error(e);
- }
- formConfig.config.push(datasourceCfg);
- return formConfig;
- };
-
- /**
- * validate the user input of provider configuration
- * @param providerConfig
- */
- validate = function(providerConfig) {
- /*
- validate the form and return
-
- */
- return true;
- };
-
- /**
- * returns the data mode either push or pull
- */
- getMode = function() {
- return 'push';
- };
-
- /**
- * returns an array of column names & types
- * @param providerConfig
- */
- getSchema = function(providerConfig) {
- var streamId = providerConfig["streamName"];
- var output = [];
-
- output.push({
- fieldName: "TIMESTAMP",
- fieldType: "time"
- });
-
- if (eventStreamService != null) {
- var eventStreamConfiguration = eventStreamService.getEventStreamConfiguration(streamId);
- if (eventStreamConfiguration != null) {
- var metaData = eventStreamConfiguration.getStreamDefinition().getMetaData();
- var correlationData = eventStreamConfiguration.getStreamDefinition().getCorrelationData();
- var payloadData = eventStreamConfiguration.getStreamDefinition().getPayloadData();
- if (metaData != null) {
- for (var i = 0; i < metaData.size(); i++) {
- var type = metaData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: metaData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (correlationData != null) {
- for (var i = 0; i < correlationData.size(); i++) {
- var type = correlationData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: correlationData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (payloadData != null) {
- for (var i = 0; i < payloadData.size(); i++) {
- var type = payloadData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: payloadData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- }
- }
- return output;
- };
-
- getData = function(providerConfig,limit) {
- var data = [];
- return data;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/table-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/table-chart-api.js
deleted file mode 100644
index 3a2015172..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/core/table-chart-api.js
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, isProviderRequired, draw, update;
-
-(function() {
-
- var CHART_LOCATION = '/extensions/chart-templates/';
-
- /**
- * return the config to be populated in the chart configuration UI
- * @param schema
- */
- getConfig = function(schema) {
- var chartConf = require(CHART_LOCATION + '/table-chart/config.json').config;
- /*
- dynamic logic goes here
- */
-
- var columns = [];
-
- columns.push("None");
- columns.push("All");
- for(var i=0; i < schema.length; i++) {
- columns.push(schema[i]["fieldName"]);
- }
-
- for(var i=0; i < chartConf.length; i++) {
- if (chartConf[i]["fieldName"] == "color") {
- chartConf[i]["valueSet"] = columns;
- break;
- }
- }
-
- return chartConf;
- };
-
- /**
- * validate the user inout for the chart configuration
- * @param chartConfig
- */
- validate = function(chartConfig) {
- return true;
- };
-
- /**
- * TO be used when provider configuration steps need to be skipped
- */
- isProviderRequired = function() {
-
- }
-
-
- /**
- * return the gadget content
- * @param chartConfig
- * @param schema
- * @param data
- */
- draw = function(placeholder, chartConfig, _schema, data) {
-
- var schema = toVizGrammarSchema(_schema);
- var grid = chartConfig.grid;
- var columns = [];
-
- for(var i=0; i < _schema.length; i++) {
- columns.push(_schema[i]["fieldName"]);
- }
-
- chartConfig.columns = columns;
-
- var view = {
- id: "chart-0",
- schema: schema,
- chartConfig: buildChartConfig(chartConfig),
- data: function() {
- if(data) {
- var result = [];
- data.forEach(function(item) {
- var row = [];
- schema[0].metadata.names.forEach(function(name) {
- row.push(item[name]);
- });
- result.push(row);
- });
- wso2gadgets.onDataReady(result);
- }
- }
-
- };
-
- try {
- wso2gadgets.init(placeholder, view);
- var view = wso2gadgets.load("chart-0");
-
- if (grid) {
- $(document).ready(function() {
- $('#table').DataTable();
- } );
- }
-
- } catch (e) {
- console.error(e);
- }
-
- };
-
- /**
- *
- * @param data
- */
- update = function(data) {
- wso2gadgets.onDataReady(data,"append");
- }
-
- buildChartConfig = function (_chartConfig) {
- var conf = {};
- conf.charts = [];
- conf.charts[0] = {
- type : "table",
- key : _chartConfig.key,
- grid: _chartConfig.grid
- };
- conf.maxLength = _chartConfig.maxLength;
-
- if (_chartConfig.color == "All") {
- conf.charts[0].color = "*";
- } else if (_chartConfig.color != "None") {
- conf.charts[0].color = _chartConfig.color;
- }
-
- conf.charts[0].columns = _chartConfig.columns;
-
- return conf;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/jquery.dataTables.min.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/jquery.dataTables.min.js
deleted file mode 100644
index d87780456..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/jquery.dataTables.min.js
+++ /dev/null
@@ -1,164 +0,0 @@
-/*!
- DataTables 1.10.10
- ©2008-2015 SpryMedia Ltd - datatables.net/license
-*/
-(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Y(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
-d[c]=e,"o"===b[1]&&Y(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Y(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Fa(a){var b=m.defaults.oLanguage,c=a.sZeroRecords;!a.sEmptyTable&&(c&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(c&&"Loading..."===b.sLoadingRecords)&&F(a,a,"sZeroRecords","sLoadingRecords");
-a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&db(a)}function eb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":"");"boolean"===typeof a.scrollX&&(a.scrollX=
-a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b").css({position:"fixed",top:0,left:0,height:1,width:1,overflow:"hidden"}).append(h("
").css({position:"absolute",top:1,left:1,
-width:100,overflow:"scroll"}).append(h("
").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,m.__browser);a.oScroll.iBarWidth=m.__browser.barWidth}function hb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&&
-(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ga(a,b){var c=m.defaults.column,d=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},m.models.oSearch,c[d]);la(a,d,h(b).data())}function la(a,b,c){var b=a.aoColumns[b],d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=
-(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(fb(c),J(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=Q(g),i=b.mRender?Q(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&
-(c(g.sort)||c(g.type)||c(g.filter));b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return R(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=
-d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function U(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ha(a);for(var c=0,d=b.length;cq[f])d(l.length+q[f],o);else if("string"===typeof q[f]){j=0;for(i=l.length;jb&&a[e]--; -1!=d&&c===k&&a.splice(d,1)}function ea(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=
-Ka(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c ").appendTo(g));b=0;for(c=l.length;btr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(o.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(o.sFooterTH);if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);var g=a._iDisplayStart,o=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&
-!lb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:o;for(j=j?0:g;j",{"class":e?d[0]:""}).append(h(" ",{valign:"top",colSpan:ca(a),
-"class":a.oClasses.sRowEmpty}).html(c))[0];v(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ma(a),g,o,i]);v(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ma(a),g,o,i]);d=h(a.nTBody);d.children().detach();d.append(h(b));v(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&mb(a);d?ha(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;O(a);a._drawHold=
-!1}function nb(a){var b=a.oClasses,c=h(a.nTable),c=h("
").insertBefore(c),d=a.oFeatures,e=h("
",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,o,l,q,u=0;u ")[0];o=f[u+1];if("'"==o||'"'==o){l="";for(q=2;f[u+q]!=o;)l+=f[u+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(o=l.split("."),
-i.id=o[0].substr(1,o[0].length-1),i.className=o[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;u+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=ob(a);else if("f"==j&&d.bFilter)g=pb(a);else if("r"==j&&d.bProcessing)g=qb(a);else if("t"==j)g=rb(a);else if("i"==j&&d.bInfo)g=sb(a);else if("p"==j&&d.bPaginate)g=tb(a);else if(0!==m.ext.feature.length){i=m.ext.feature;q=0;for(o=i.length;q ',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",g):j+g,b=h("
",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h(" ").append(j)),f=function(){var b=!this.value?"":this.value;b!=e.sSearch&&(ha(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,O(a))},g=null!==
-a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT",g?ua(f,g):f).bind("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}});return b[0]}function ha(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;
-d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ia(a);if("ssp"!=y(a)){wb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b=b.length)a.aiDisplay=f.slice();else{if(g||c||e.length>b.length||0!==b.indexOf(e)||a.bSorted)a.aiDisplay=f.slice();b=a.aiDisplay;for(c=b.length-1;0<=
-c;c--)d.test(a.aoData[b[c]]._sFilterRow)||b.splice(c,1)}}function Qa(a,b,c,d){a=b?a:va(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function va(a){return a.replace(Yb,"\\$1")}function zb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=m.ext.type.search;c=!1;d=0;for(f=a.aoData.length;d",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Cb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Cb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&
-(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Db(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Db(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/
-e)))}function ia(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){nb(a);kb(a);ga(a,a.aoHeader);ga(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Ha(a);b=0;for(c=e.length;b",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g ").addClass(b.sLength);
-a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).bind("change.DT",function(){Ra(a,h(this).val());O(a)});h(a.nTable).bind("length.dt.DT",function(b,c,d){a===c&&h("select",i).val(d)});return i[0]}function tb(a){var b=a.sPaginationType,c=m.ext.pager[b],d="function"===typeof c,e=function(a){O(a)},b=h("
").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+
-"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;lf&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==
-b?d+e ",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");v(a,null,"processing",[a,b])}function rb(a){var b=h(a.nTable);b.attr("role",
-"grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),o=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("
",{"class":f.sScrollWrapper}).append(h("
",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?!d?null:w(d):"100%"}).append(h("
",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||
-"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("
",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:w(d)}).append(b));l&&i.append(h("
",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:w(d):"100%"}).append(h("
",{"class":f.sScrollFootInner}).append(o.removeAttr("id").css("margin-left",0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),
-k=b[0],f=b[1],u=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(u.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=u;a.aoDrawCallback.push({fn:Z,sName:"scrolling"});return i[0]}function Z(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,o=j.children("table"),j=a.nScrollBody,l=h(j),q=j.style,u=h(a.nScrollFoot).children("div"),
-m=u.children("table"),n=h(a.nTHead),p=h(a.nTable),t=p[0],v=t.style,r=a.nTFoot?h(a.nTFoot):null,Eb=a.oBrowser,Ua=Eb.bScrollOversize,s,L,P,x,y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==L&&a.scrollBarVis!==k)a.scrollBarVis=L,U(a);else{a.scrollBarVis=L;p.children("thead, tfoot").remove();x=n.clone().prependTo(p);n=n.find("tr");L=x.find("tr");x.find("th, td").removeAttr("tabindex");
-r&&(P=r.clone().prependTo(p),s=r.find("tr"),P=P.find("tr"));c||(q.width="100%",f[0].style.width="100%");h.each(qa(a,x),function(b,c){B=$(a,b);c.style.width=a.aoColumns[B].sWidth});r&&I(function(a){a.style.width=""},P);f=p.outerWidth();if(""===c){v.width="100%";if(Ua&&(p.find("tbody").height()>j.offsetHeight||"scroll"==l.css("overflow-y")))v.width=w(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(v.width=w(d),f=p.outerWidth());I(C,L);I(function(a){A.push(a.innerHTML);y.push(w(h(a).css("width")))},
-L);I(function(a,b){a.style.width=y[b]},n);h(L).height(0);r&&(I(C,P),I(function(a){z.push(w(h(a).css("width")))},P),I(function(a,b){a.style.width=z[b]},s),h(P).height(0));I(function(a,b){a.innerHTML=''+A[b]+"
";a.style.width=y[b]},L);r&&I(function(a,b){a.innerHTML="";a.style.width=z[b]},P);if(p.outerWidth()j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(Ua&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))v.width=
-w(s-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else s="100%";q.width=w(s);g.width=w(s);r&&(a.nScrollFoot.style.width=w(s));!e&&Ua&&(q.height=w(t.offsetHeight+b));c=p.outerWidth();o[0].style.width=w(c);i.width=w(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+(Eb.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";r&&(m[0].style.width=w(c),u[0].style.width=w(c),u[0].style[e]=d?b+"px":"0px");l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=
-0}}function I(a,b,c){for(var d=0,e=0,f=b.length,g,j;e").appendTo(j.find("tbody"));j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");o=qa(a,j.find("thead")[0]);for(m=0;m ").css({width:n.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(m=0;m ").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()").css("width",w(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Gb(a,b){var c=Hb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h(" ").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Hb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;fd&&(d=c.length,e=f);return e}function w(a){return null===
-a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function W(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var o=[];f=function(a){a.length&&!h.isArray(a[0])?o.push(a):h.merge(o,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;ae?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];
-return ce?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,m=f[a]._aSortData,p=f[b]._aSortData;for(j=0;jg?1:0})}a.bSorted=!0}function Jb(a){for(var b,c,d=a.aoColumns,e=W(a),a=a.oLanguage.oAria,f=0,g=d.length;f/g,"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0e?e+1:3));e=0;for(f=d.length;ee?e+1:3))}a.aLastSort=d}function Ib(a,b){var c=a.aoColumns[b],d=m.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ba(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j=d.length?[0,c[1]]:c)}));e.search!==k&&h.extend(a.oPreviousSearch,Bb(e.search));b=0;for(c=e.columns.length;b=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Pa(a,b){var c=
-a.renderer,d=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function Aa(a,b){var c=[],c=Mb.numbers_length,d=Math.floor(c/2);b<=c?c=X(0,b):a<=d?(c=X(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=X(b-(c-2),b):(c=X(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function db(a){h.each({num:function(b){return Ba(b,
-a)},"num-fmt":function(b){return Ba(b,a,Xa)},"html-num":function(b){return Ba(b,a,Ca)},"html-num-fmt":function(b){return Ba(b,a,Ca,Xa)}},function(b,c){s.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(s.type.search[b+a]=s.type.search.html)})}function Nb(a){return function(){var b=[za(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return m.ext.internal[a].apply(this,b)}}var m,s,t,p,r,Ya={},Ob=/[\r\n]/g,Ca=/<.*?>/g,ac=/^[\w\+\-]/,bc=/[\w\+\-]$/,Yb=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)",
-"g"),Xa=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Pb=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},Qb=function(a,b){Ya[b]||(Ya[b]=RegExp(va(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Ya[b],"."):a},Za=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Qb(a,b));c&&d&&(a=a.replace(Xa,""));return!isNaN(parseFloat(a))&&isFinite(a)},Rb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===
-typeof a)?null:Za(a.replace(Ca,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e")[0],Zb=wa.textContent!==k,$b=/<.*?>/g;m=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new t(za(this[s.iApiIndex])):new t(this)};this.fnAddData=function(a,b){var c=this.api(!0),
-d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&Z(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],
-h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};
-this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);
-(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return za(this[s.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();(d===k||d)&&h.draw();return 0};this.fnVersionCheck=
-s.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=s.internal;for(var e in m.ext.internal)e&&(this[e]=Nb(e));this.each(function(){var e={},e=1t<"F"ip>'),n.renderer)?h.isPlainObject(n.renderer)&&!n.renderer.header&&(n.renderer.header="jqueryui"):n.renderer="jqueryui":h.extend(i,m.ext.classes,e.oClasses);q.addClass(i.sTable);n.iInitDisplayStart===k&&(n.iInitDisplayStart=e.iDisplayStart,n._iDisplayStart=e.iDisplayStart);null!==e.iDeferLoading&&(n.bDeferLoading=!0,g=h.isArray(e.iDeferLoading),
-n._iRecordsDisplay=g?e.iDeferLoading[0]:e.iDeferLoading,n._iRecordsTotal=g?e.iDeferLoading[1]:e.iDeferLoading);var t=n.oLanguage;h.extend(!0,t,e.oLanguage);""!==t.sUrl&&(h.ajax({dataType:"json",url:t.sUrl,success:function(a){Fa(a);J(l.oLanguage,a);h.extend(true,t,a);ia(n)},error:function(){ia(n)}}),o=!0);null===e.asStripeClasses&&(n.asStripeClasses=[i.sStripeOdd,i.sStripeEven]);var g=n.asStripeClasses,r=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(g,function(a){return r.hasClass(a)}))&&
-(h("tbody tr",this).removeClass(g.join(" ")),n.asDestroyStripes=g.slice());u=[];g=this.getElementsByTagName("thead");0!==g.length&&(fa(n.aoHeader,g[0]),u=qa(n));if(null===e.aoColumns){p=[];g=0;for(j=u.length;g ").appendTo(this));n.nTHead=j[0];j=q.children("tbody");0===j.length&&(j=h(" ").appendTo(this));n.nTBody=j[0];j=q.children("tfoot");if(0===j.length&&0 ").appendTo(this);
-0===j.length||0===j.children().length?q.addClass(i.sNoFooter):0a?new t(b[a],this[a]):null},filter:function(a){var b=[];if(x.filter)b=x.filter.call(this,a,this);else for(var c=0,d=this.length;c ").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=ca(d),e.push(c[0]))};f(a,b);c._details&&c._details.remove();c._details=h(e);c._detailsShow&&c._details.insertAfter(c.nTr)}return this});p(["row().child.show()","row().child().show()"],function(){Vb(this,
-!0);return this});p(["row().child.hide()","row().child().hide()"],function(){Vb(this,!1);return this});p(["row().child.remove()","row().child().remove()"],function(){cb(this);return this});p("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var dc=/^(.+):(name|visIdx|visible)$/,Wb=function(a,b,c,d,e){for(var c=[],d=0,f=e.length;d=0?b:g.length+b];if(typeof a==="function"){var e=Da(c,f);return h.map(g,function(b,f){return a(f,Wb(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(dc):"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null});
-return[m[m.length+b]]}return[$(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null})}else return h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray()},c,f)},1);c.selector.cols=a;c.selector.opts=b;return c});r("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});r("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});r("columns().data()",
-"column().data()",function(){return this.iterator("column-rows",Wb,1)});r("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});r("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});r("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,
-e,"anCells",b)},1)});r("columns().visible()","column().visible()",function(a,b){return this.iterator("column",function(c,d){if(a===k)return c.aoColumns[d].bVisible;var e=c.aoColumns,f=e[d],g=c.aoData,j,i,m;if(a!==k&&f.bVisible!==a){if(a){var l=h.inArray(!0,D(e,"bVisible"),d+1);j=0;for(i=g.length;jd;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;h.each(m.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:
-null;if(e.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(m.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new t(c):c};m.util={throttle:ua,escapeRegex:va};m.camelToHungarian=J;p("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){p(b+"()",function(){var a=Array.prototype.slice.call(arguments);
-a[0].match(/\.dt\b/)||(a[0]+=".dt");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});p("clear()",function(){return this.iterator("table",function(a){na(a)})});p("settings()",function(){return new t(this.context,this.context)});p("init()",function(){var a=this.context;return a.length?a[0].oInit:null});p("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});p("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=
-b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),p;b.bDestroying=!0;v(b,"aoDestroyCallback","destroy",[b]);a||(new t(b)).columns().visible(!0);k.unbind(".DT").find(":not(tbody *)").unbind(".DT");h(E).unbind(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];xa(b);
-h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);b.bJUI&&(h("th span."+d.sSortIcon+", td span."+d.sSortIcon,g).detach(),h("th, td",g).each(function(){var a=h("div."+d.sSortJUIWrapper,this);h(this).append(a.contents());a.detach()}));f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),(p=
-b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%p])}));c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){p(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});p("i18n()",function(a,b,c){var d=this.context[0],a=Q(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:a._);
-return a.replace("%d",c)});m.version="1.10.10";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,
-sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};m.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,
-bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+
-a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
-oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},
-m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};Y(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};
-Y(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],
-aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",
-iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?
-1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};
-m.ext=s={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(s,{afnFiltering:s.search,aTypes:s.type.detect,ofnSearch:s.type.search,oSort:s.type.order,afnSortData:s.order,aoFeatures:s.feature,oApi:s.internal,oStdClasses:s.classes,
-oPagination:s.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",
-sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
-sJUIHeader:"",sJUIFooter:""});var Ea="",Ea="",G=Ea+"ui-state-default",ka=Ea+"css_right ui-icon ui-icon-",Xb=Ea+"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";h.extend(m.ext.oJUIClasses,m.ext.classes,{sPageButton:"fg-button ui-button "+G,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:G+" sorting_asc",sSortDesc:G+" sorting_desc",sSortable:G+" sorting",
-sSortableAsc:G+" sorting_asc_disabled",sSortableDesc:G+" sorting_desc_disabled",sSortableNone:G+" sorting_disabled",sSortJUIAsc:ka+"triangle-1-n",sSortJUIDesc:ka+"triangle-1-s",sSortJUI:ka+"carat-2-n-s",sSortJUIAscAllowed:ka+"carat-1-n",sSortJUIDescAllowed:ka+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+G,sScrollFoot:"dataTables_scrollFoot "+G,sHeaderTH:G,sFooterTH:G,sJUIHeader:Xb+" ui-corner-tl ui-corner-tr",sJUIFooter:Xb+
-" ui-corner-bl ui-corner-br"});var Mb=m.ext.pager;h.extend(Mb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[Aa(a,b)]},simple_numbers:function(a,b){return["previous",Aa(a,b),"next"]},full_numbers:function(a,b){return["first","previous",Aa(a,b),"next","last"]},_numbers:Aa,numbers_length:7});h.extend(!0,m.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||
-{},k,l,m=0,p=function(b,d){var n,r,t,s,v=function(b){Ta(a,b.data.action,true)};n=0;for(r=d.length;n ").appendTo(b);p(t,s)}else{k=null;l="";switch(s){case "ellipsis":b.append('… ');break;case "first":k=j.sFirst;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":k=j.sPrevious;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":k=j.sNext;l=s+(e",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[s],"data-dt-idx":m,tabindex:a.iTabIndex,id:c===0&&typeof s==="string"?a.sTableId+"_"+s:null}).html(k).appendTo(b);Wa(t,{action:s},v);m++}}}},r;try{r=h(b).find(H.activeElement).data("dt-idx")}catch(n){}p(h(b).empty(),d);r&&h(b).find("[data-dt-idx="+r+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=
-b.oLanguage.sDecimal;return Za(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&(!ac.test(a)||!bc.test(a)))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return Za(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":
-null}]);h.extend(m.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob," ").replace(Ca,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob," "):a}});var Ba=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Qb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(s.type.order,{"date-pre":function(a){return Date.parse(a)||0},"html-pre":function(a){return M(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():
-a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return ab?1:0},"string-desc":function(a,b){return ab?-1:0}});db("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,
-b,c,d){h("
").addClass(d.sSortJUIWrapper).append(b.contents()).append(h(" ").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]=="asc"?d.sSortJUIAsc:
-h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});m.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return f;f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:function(a){return"string"===typeof a?a.replace(/ /g,">").replace(/"/g,"""):
-a}}}};h.extend(m.ext.internal,{_fnExternApiFunc:Nb,_fnBuildAjax:ra,_fnAjaxUpdate:lb,_fnAjaxParameters:ub,_fnAjaxUpdateDraw:vb,_fnAjaxDataSrc:sa,_fnAddColumn:Ga,_fnColumnOptions:la,_fnAdjustColumnSizing:U,_fnVisibleToColumnIndex:$,_fnColumnIndexToVisible:ba,_fnVisbleColumns:ca,_fnGetColumns:aa,_fnColumnTypes:Ia,_fnApplyColumnDefs:ib,_fnHungarianMap:Y,_fnCamelToHungarian:J,_fnLanguageCompat:Fa,_fnBrowserDetect:gb,_fnAddData:N,_fnAddTr:ma,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:
-null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:jb,_fnSplitObjNotation:La,_fnGetObjectDataFn:Q,_fnSetObjectDataFn:R,_fnGetDataMaster:Ma,_fnClearTable:na,_fnDeleteIndex:oa,_fnInvalidate:ea,_fnGetRowElements:Ka,_fnCreateTr:Ja,_fnBuildHead:kb,_fnDrawHead:ga,_fnDraw:O,_fnReDraw:T,_fnAddOptionsHtml:nb,_fnDetectHeader:fa,_fnGetUniqueThs:qa,_fnFeatureHtmlFilter:pb,_fnFilterComplete:ha,_fnFilterCustom:yb,_fnFilterColumn:xb,_fnFilter:wb,_fnFilterCreateSearch:Qa,
-_fnEscapeRegex:va,_fnFilterData:zb,_fnFeatureHtmlInfo:sb,_fnUpdateInfo:Cb,_fnInfoMacros:Db,_fnInitialise:ia,_fnInitComplete:ta,_fnLengthChange:Ra,_fnFeatureHtmlLength:ob,_fnFeatureHtmlPaginate:tb,_fnPageChange:Ta,_fnFeatureHtmlProcessing:qb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:rb,_fnScrollDraw:Z,_fnApplyToChildren:I,_fnCalculateColumnWidths:Ha,_fnThrottle:ua,_fnConvertToWidth:Fb,_fnGetWidestNode:Gb,_fnGetMaxLenString:Hb,_fnStringToCss:w,_fnSortFlatten:W,_fnSort:mb,_fnSortAria:Jb,_fnSortListener:Va,
-_fnSortAttachListener:Oa,_fnSortingClasses:xa,_fnSortData:Ib,_fnSaveState:ya,_fnLoadState:Kb,_fnSettingsFromNode:za,_fnLog:K,_fnMap:F,_fnBindAction:Wa,_fnCallbackReg:z,_fnCallbackFire:v,_fnLengthOverflow:Sa,_fnRenderer:Pa,_fnDataSource:y,_fnRowAttributes:Na,_fnCalculateEnd:function(){}});h.fn.dataTable=m;m.$=h;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt=m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/provider-libs/ws-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/provider-libs/ws-client.js
deleted file mode 100644
index ab7263155..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_data_gadget/Android_Realtime_Data/js/provider-libs/ws-client.js
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var CONSTANTS = {
- urlSeperator: '/',
- queryParamStreamName : '?streamname=',
- queryParamStreamVersion : '&version=',
- queryParamLastUpdatedTime : '&lastUpdatedTime=',
- urlSecureTransportWebsocket : 'wss://',
- urlSecureTransportHttp : 'https://',
- colon : ':',
- defaultIntervalTime : 10 * 1000,
- defaultHostName : 'localhost',
- defaultSecurePortNumber : '9443',
- defaultMode : 'AUTO',
- processModeHTTP : 'HTTP',
- processModeWebSocket : 'WEBSOCKET',
- processModeAuto : 'AUTO',
- numThousand : 1000,
- websocketTimeAppender : 400,
- websocketSubscriptionEndpoint : 'portal/uipublisher/websocketSubscriptionEndpoint.jag',
- httpEventRetrievalEndpoint : 'portal/uipublisher/httpEventRetrievalEndpoint.jag'
-};
-
-
-var websocket = null;
-var webSocketUrl;
-var httpUrl;
-var cepHostName;
-var cepPortNumber;
-var isErrorOccured = false;
-var lastUpdatedtime = -1;
-var polingInterval;
-var stream;
-var streamVersion;
-var firstPollingAttempt;
-var processMode;
-var onSuccessFunction;
-var onErrorFunction;
-var terminateWebsocketInstance = false;
-var pollingContinue = true;
-
-function subscribe(streamName,version,intervalTime,
- listeningFuncSuccessData,listeningFuncErrorData,cepHost,cepPort,mode){
- stopPollingProcesses();
- stream = streamName;
- streamVersion = version;
- onSuccessFunction = listeningFuncSuccessData;
- onErrorFunction = listeningFuncErrorData;
-
- if(intervalTime == null || intervalTime == ""){
- polingInterval = CONSTANTS.defaultIntervalTime;
- } else{
- polingInterval = intervalTime * CONSTANTS.numThousand;
- }
-
- if(cepHost == null || cepHost == ""){
- cepHostName = CONSTANTS.defaultHostName;
- } else{
- cepHostName = cepHost;
- }
-
- if(cepPort == null || cepPort == ""){
- cepPortNumber = CONSTANTS.defaultSecurePortNumber;
- } else{
- cepPortNumber = cepPort;
- }
-
- if(mode == null || mode == ""){
- processMode = CONSTANTS.defaultMode;
- } else{
- processMode = mode;
- }
-
- webSocketUrl = CONSTANTS.urlSecureTransportWebsocket + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.websocketSubscriptionEndpoint;
-
- if(processMode == CONSTANTS.processModeHTTP){
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- } else{
- initializeWebSocket(webSocketUrl);
- }
-}
-
-
-/**
- * Initializing Web Socket
- */
-function initializeWebSocket(webSocketUrl){
- websocket = new WebSocket(webSocketUrl);
- websocket.onopen = webSocketOnOpen;
- websocket.onmessage = webSocketOnMessage;
- websocket.onclose = webSocketOnClose;
- websocket.onerror = webSocketOnError;
-}
-
-function getWebsocketSubscriptionMessage(streamName, streamVersion, streamProperties, streamValues) {
- if (streamProperties.length === streamValues.length) {
- var message = {};
- message.streamName = streamName;
- message.streamVersion = streamVersion;
- var i;
- for (i = 0; i < streamProperties.length; i++) {
- message.filterProps = [];
- message.filterProps.push({
- 'name': streamProperties[i],
- 'value': streamValues[i]
- });
- }
- return JSON.stringify(message);
- } else {
- console.log('stream properties and values are not in equal size');
- }
-}
-
-/**
- * Get the parameters as query parameters.
- * This method parses those parameters and returns.
- * */
-function getAllQueryParamsFromURL() {
- var queryParamList = {}, qParam;
- var urlQueryString = decodeURIComponent(window.top.location.search.substring(1));
-
- if (urlQueryString) {
- var queryStringPairs = urlQueryString.split('&');
- for (var i = 0; i < queryStringPairs.length; i++) {
- qParam = queryStringPairs[i].split('=');
- queryParamList[qParam[0]] = qParam[1];
- }
- return queryParamList;
-
- } else {
- return null;
- }
-}
-
-/**
- * Web socket On Open
- */
-var webSocketOnOpen = function () {
- var params = getAllQueryParamsFromURL();
- var deviceId;
- var owner;
- if (params) {
- owner = params["owner"];
- deviceId = params["deviceId"];
- }
- var filterPropNames = ["meta_owner", "meta_deviceId"];
- var filterPropVals = [owner, deviceId];
- var data = getWebsocketSubscriptionMessage(stream, streamVersion, filterPropNames, filterPropVals);
- websocket.send(data);
-};
-
-/**
- * On server sends a message
- */
-var webSocketOnMessage = function (evt) {
- var event = evt.data;
- var array = JSON.parse(event);
- constructPayload(array);
-};
-
-/**
- * On server close
- */
-var webSocketOnClose =function (e) {
-
- if(isErrorOccured){
- if(processMode != CONSTANTS.processModeWebSocket){
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- }
- } else{
- if(!terminateWebsocketInstance){
- waitForSocketConnection(websocket);
- } else{
- terminateWebsocketInstance = false;
- }
-
- }
-};
-
-/**
- * On server Error
- */
-var webSocketOnError = function (err) {
- var error = "Error: Cannot connect to Websocket URL:" + webSocketUrl + " .Hence closing the connection!";
-
- onErrorFunction(error);
- isErrorOccured = true;
-
-};
-
-/**
- * Gracefully increments the connection retry
- */
-var waitTime = CONSTANTS.numThousand;
-function waitForSocketConnection(socket, callback){
- setTimeout(
- function () {
- if (socket.readyState === 1) {
- initializeWebSocket(webSocketUrl);
- console.log("Connection is made");
- if(callback != null){
- callback();
- }
- return;
- } else {
- websocket = new WebSocket(webSocketUrl);
- waitTime += CONSTANTS.websocketTimeAppender;
- waitForSocketConnection(websocket, callback);
- }
- }, waitTime);
-}
-
-/**
- * Polling to retrieve events from http request periodically
- */
-function startPoll(){
-
- (function poll(){
- setTimeout(function(){
- httpUrl = CONSTANTS.urlSecureTransportHttp + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.httpEventRetrievalEndpoint + CONSTANTS.queryParamStreamName + stream +
- CONSTANTS.queryParamStreamVersion + streamVersion + CONSTANTS.queryParamLastUpdatedTime + lastUpdatedtime;;
- $.getJSON(httpUrl, function(responseText) {
- if(firstPollingAttempt){
- /*var data = $("textarea#idConsole").val();
- $("textarea#idConsole").val(data + "Successfully connected to HTTP.");*/
- firstPollingAttempt = false;
- }
- var eventList = $.parseJSON(responseText.events);
- if(eventList.length != 0){
- lastUpdatedtime = responseText.lastEventTime;
- for(var i=0;i
-
-
-
- Android_Realtime_Data
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/conf.json
deleted file mode 100644
index bba076626..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/conf.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "provider-conf": {
- "streamName": "org.wso2.iot.android.screen:1.0.0",
- "provider-name": "realtime"
- },
- "chart-conf": {
- "key": "timestamp",
- "color": "state",
- "grid": "on",
- "maxLength": "15",
- "gadget-name": "Android Realtime Screen",
- "chart-name": "table-chart"
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/css/dataTables.bootstrap.min.css b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/css/dataTables.bootstrap.min.css
deleted file mode 100644
index 745f2996f..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/css/dataTables.bootstrap.min.css
+++ /dev/null
@@ -1 +0,0 @@
-table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable{border-collapse:separate !important}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:last-child{padding-right:0}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/gadget-controller.jag
deleted file mode 100644
index f84538a40..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/gadget-controller.jag
+++ /dev/null
@@ -1,42 +0,0 @@
-<%
-/**
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-(function () {
-
- response.contentType = 'application/json';
- var PROVIDER_CONF = 'provider-conf';
- var PROVIDER_NAME = 'provider-name';
-
- var action = request.getParameter("action");
- var data = request.getContent();
- var providerConf = data[PROVIDER_CONF];
- var providerAPI = require('js/core/' + providerConf[PROVIDER_NAME] + '-provider-api.js');
-
- if (action === 'getSchema') {
- print(providerAPI.getSchema(providerConf));
- return;
- } else if(action === 'getData'){
- print(providerAPI.getData(providerConf));
- return;
- }
-
-}());
-
-
-%>
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/gadget.json
deleted file mode 100644
index 3dcbddd2b..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/gadget.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "id": "Android_Realtime_Screen",
- "title": "Android Realtime Screen",
- "type": "gadget",
- "thumbnail": "gadget/Android_Realtime_Screen/thumbnail.png",
- "data": {
- "url": "gadget/Android_Realtime_Screen/gadget.xml"
- }
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/gadget.xml
deleted file mode 100644
index e7243f551..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/gadget.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/gadget-core.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/gadget-core.js
deleted file mode 100644
index f47e9bffa..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/gadget-core.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-$(function () {
- var gadgetLocation;
- var conf;
- var schema;
- var pref = new gadgets.Prefs();
-
- var CHART_CONF = 'chart-conf';
- var PROVIDER_CONF = 'provider-conf';
-
- var init = function () {
- $.ajax({
- url: gadgetLocation + '/conf.json',
- method: "GET",
- contentType: "application/json",
- async: false,
- success: function (data) {
- conf = JSON.parse(data);
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getSchema',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function (data) {
- schema = data;
- }
- });
-
- }
- });
- };
-
-
- var drawGadget = function () {
- draw('#canvas', conf[CHART_CONF], schema, null);
- registerCallBackforPush(conf[PROVIDER_CONF], schema, function (providerData) {
- update(providerData);
- });
- };
-
- getGadgetLocation(function (gadget_Location) {
- gadgetLocation = gadget_Location;
- init();
- drawGadget();
-
- });
-});
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/gadget-util.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/gadget-util.js
deleted file mode 100644
index 8c43200bb..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/gadget-util.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getGadgetLocation = function (callback) {
- var gadgetLocation = "/portal/store/carbon.super/fs/gadget/Android_Realtime_Screen";
- var PATH_SEPERATOR = "/";
- if (gadgetLocation.search("store") != -1) {
- wso2.gadgets.identity.getTenantDomain(function (tenantDomain) {
- var gadgetPath = gadgetLocation.split(PATH_SEPERATOR);
- var modifiedPath = '';
- for (var i = 1; i < gadgetPath.length; i++) {
- if (i === 3) {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, tenantDomain);
- } else {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, gadgetPath[i])
- }
- }
- callback(modifiedPath);
- });
- } else {
- callback(gadgetLocation);
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/provider-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/provider-client.js
deleted file mode 100644
index 6196677f6..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/provider-client.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-// var registerCallBackforPush;
-
-(function() {
-
- var callback;
-
- /**
- * TODO Need to read hostname,port, and tenantId from providerConfig
- * @param providerConfig
- * @param schema
- */
- registerCallBackforPush = function(providerConfig, schema, _callback) {
- var streamId = providerConfig['streamName'];
- var hostname = window.parent.location.hostname;
- var port = window.parent.location.port;
-
- subscribe(streamId.split(":")[0], streamId.split(":")[1],
- '10',
- onData, onError,
- hostname,
- port,
- 'WEBSOCKET'
- );
- callback = _callback;
- };
-
- function onData(streamId, data) {
- callback(data);
- };
-
- function onError(error) {
- console.error(error);
- };
-
-}());
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/realtime-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/realtime-provider-api.js
deleted file mode 100644
index 7cf59af77..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/realtime-provider-api.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, getMode, getSchema, getData, registerCallBackforPush;
-
-(function() {
-
- var PROVIDERS_LOCATION = '/extensions/providers/';
- var PROVIDER_NAME = 'realtime';
-
- var log = new Log();
- var utils = require('/modules/utils.js');
- var carbon = require("carbon");
- var EventPublisherConstants = Packages.org.wso2.carbon.event.publisher.core.config.EventPublisherConstants;
- var eventPublisherService = carbon.server.osgiService('org.wso2.carbon.event.publisher.core.EventPublisherService');
- var eventStreamService = carbon.server.osgiService('org.wso2.carbon.event.stream.core.EventStreamService');
-
- var typeMap = {
- "bool": "string",
- "boolean": "string",
- "string": "string",
- "int": "number",
- "integer": "number",
- "long": "number",
- "double": "number",
- "float": "number",
- "time": "time"
- };
-
- getConfig = function() {
- var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json');
- var datasources = [];
- try {
- var eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations();
- for (var i = 0; i < eventPublisherConfigurationList.size(); i++) {
- var eventPublisherConfiguration = eventPublisherService.getActiveEventPublisherConfiguration(
- eventPublisherConfigurationList.get(i).getEventPublisherName());;
-
- var mappingTypeIsWso2 = eventPublisherConfiguration.getOutputMapping()
- .getMappingType().equals(EventPublisherConstants.EF_WSO2EVENT_MAPPING_TYPE);
-
- var adapterType = null;
- if (eventPublisherConfiguration.getToAdapterConfiguration() != null) {
- adapterType = eventPublisherConfiguration.getToAdapterConfiguration().getType();
- }
- if (mappingTypeIsWso2 && adapterType.trim() == "ui") {
- var streamName = eventPublisherConfiguration.getFromStreamName();
- var streamVersion = eventPublisherConfiguration.getFromStreamVersion();
- var streamId = streamName + ":" + streamVersion;
- datasources.push(streamId);
- }
- }
- var datasourceCfg = {
- "fieldLabel": "Event Stream",
- "fieldName": "streamName",
- "fieldType": "dropDown"
- };
- datasourceCfg['valueSet'] = datasources;
- } catch (e) {
- log.error(e);
- }
- formConfig.config.push(datasourceCfg);
- return formConfig;
- };
-
- /**
- * validate the user input of provider configuration
- * @param providerConfig
- */
- validate = function(providerConfig) {
- /*
- validate the form and return
-
- */
- return true;
- };
-
- /**
- * returns the data mode either push or pull
- */
- getMode = function() {
- return 'push';
- };
-
- /**
- * returns an array of column names & types
- * @param providerConfig
- */
- getSchema = function(providerConfig) {
- var streamId = providerConfig["streamName"];
- var output = [];
-
- output.push({
- fieldName: "TIMESTAMP",
- fieldType: "time"
- });
-
- if (eventStreamService != null) {
- var eventStreamConfiguration = eventStreamService.getEventStreamConfiguration(streamId);
- if (eventStreamConfiguration != null) {
- var metaData = eventStreamConfiguration.getStreamDefinition().getMetaData();
- var correlationData = eventStreamConfiguration.getStreamDefinition().getCorrelationData();
- var payloadData = eventStreamConfiguration.getStreamDefinition().getPayloadData();
- if (metaData != null) {
- for (var i = 0; i < metaData.size(); i++) {
- var type = metaData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: metaData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (correlationData != null) {
- for (var i = 0; i < correlationData.size(); i++) {
- var type = correlationData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: correlationData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (payloadData != null) {
- for (var i = 0; i < payloadData.size(); i++) {
- var type = payloadData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: payloadData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- }
- }
- return output;
- };
-
- getData = function(providerConfig,limit) {
- var data = [];
- return data;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/table-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/table-chart-api.js
deleted file mode 100644
index 1f51b18cd..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/core/table-chart-api.js
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, isProviderRequired, draw, update;
-
-(function() {
-
- var CHART_LOCATION = '/extensions/chart-templates/';
-
- var tableFieldsOrder = ['timestamp', 'state'];
- /**
- * return the config to be populated in the chart configuration UI
- * @param schema
- */
- getConfig = function(schema) {
- var chartConf = require(CHART_LOCATION + '/table-chart/config.json').config;
- /*
- dynamic logic goes here
- */
-
- var columns = [];
-
- columns.push("None");
- columns.push("All");
- for(var i=0; i < schema.length; i++) {
- columns.push(schema[i]["fieldName"]);
- }
-
- for(var i=0; i < chartConf.length; i++) {
- if (chartConf[i]["fieldName"] == "color") {
- chartConf[i]["valueSet"] = columns;
- break;
- }
- }
-
- return chartConf;
- };
-
- /**
- * validate the user inout for the chart configuration
- * @param chartConfig
- */
- validate = function(chartConfig) {
- return true;
- };
-
- /**
- * TO be used when provider configuration steps need to be skipped
- */
- isProviderRequired = function() {
-
- }
-
-
- /**
- * return the gadget content
- * @param chartConfig
- * @param schema
- * @param data
- */
- draw = function(placeholder, chartConfig, _schema, data) {
-
- var schema = toVizGrammarSchema(_schema);
- var grid = chartConfig.grid;
-
- chartConfig.columns = tableFieldsOrder;
-
- var view = {
- id: "chart-0",
- schema: schema,
- chartConfig: buildChartConfig(chartConfig),
- data: function() {
- if(data) {
- var result = [];
- data.forEach(function(item) {
- var row = [];
- schema[0].metadata.names.forEach(function(name) {
- row.push(item[name]);
- });
- result.push(row);
- });
- wso2gadgets.onDataReady(result);
- }
- }
-
- };
-
- try {
- wso2gadgets.init(placeholder, view);
- var view = wso2gadgets.load("chart-0");
-
- if (grid) {
- $(document).ready(function() {
- $('#table').DataTable();
- } );
- }
-
- } catch (e) {
- console.error(e);
- }
-
- };
-
- /**
- *
- * @param data
- */
- update = function(data) {
- //Change the timestamp field in Datetime format.
- data[0][3] = getDateString(data[0][3]);
- data[0][4] = data[0][4].toUpperCase();
- wso2gadgets.onDataReady(data,"append");
- };
-
- buildChartConfig = function (_chartConfig) {
- var conf = {};
- conf.charts = [];
- conf.charts[0] = {
- type : "table",
- key : _chartConfig.key,
- grid: _chartConfig.grid
- };
- conf.maxLength = _chartConfig.maxLength;
-
- if (_chartConfig.color == "All") {
- conf.charts[0].color = "*";
- } else if (_chartConfig.color != "None") {
- conf.charts[0].color = _chartConfig.color;
- }
- conf.charts[0].columns = _chartConfig.columns;
- conf.columnTitles = ['Time','State'];
- return conf;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/jquery.dataTables.min.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/jquery.dataTables.min.js
deleted file mode 100644
index d87780456..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/jquery.dataTables.min.js
+++ /dev/null
@@ -1,164 +0,0 @@
-/*!
- DataTables 1.10.10
- ©2008-2015 SpryMedia Ltd - datatables.net/license
-*/
-(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Y(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
-d[c]=e,"o"===b[1]&&Y(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Y(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Fa(a){var b=m.defaults.oLanguage,c=a.sZeroRecords;!a.sEmptyTable&&(c&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(c&&"Loading..."===b.sLoadingRecords)&&F(a,a,"sZeroRecords","sLoadingRecords");
-a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&db(a)}function eb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":"");"boolean"===typeof a.scrollX&&(a.scrollX=
-a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b").css({position:"fixed",top:0,left:0,height:1,width:1,overflow:"hidden"}).append(h("
").css({position:"absolute",top:1,left:1,
-width:100,overflow:"scroll"}).append(h("
").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,m.__browser);a.oScroll.iBarWidth=m.__browser.barWidth}function hb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&&
-(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ga(a,b){var c=m.defaults.column,d=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},m.models.oSearch,c[d]);la(a,d,h(b).data())}function la(a,b,c){var b=a.aoColumns[b],d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=
-(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(fb(c),J(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=Q(g),i=b.mRender?Q(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&
-(c(g.sort)||c(g.type)||c(g.filter));b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return R(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=
-d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function U(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ha(a);for(var c=0,d=b.length;cq[f])d(l.length+q[f],o);else if("string"===typeof q[f]){j=0;for(i=l.length;jb&&a[e]--; -1!=d&&c===k&&a.splice(d,1)}function ea(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=
-Ka(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c ").appendTo(g));b=0;for(c=l.length;btr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(o.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(o.sFooterTH);if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);var g=a._iDisplayStart,o=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&
-!lb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:o;for(j=j?0:g;j",{"class":e?d[0]:""}).append(h(" ",{valign:"top",colSpan:ca(a),
-"class":a.oClasses.sRowEmpty}).html(c))[0];v(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ma(a),g,o,i]);v(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ma(a),g,o,i]);d=h(a.nTBody);d.children().detach();d.append(h(b));v(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&mb(a);d?ha(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;O(a);a._drawHold=
-!1}function nb(a){var b=a.oClasses,c=h(a.nTable),c=h("
").insertBefore(c),d=a.oFeatures,e=h("
",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,o,l,q,u=0;u ")[0];o=f[u+1];if("'"==o||'"'==o){l="";for(q=2;f[u+q]!=o;)l+=f[u+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(o=l.split("."),
-i.id=o[0].substr(1,o[0].length-1),i.className=o[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;u+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=ob(a);else if("f"==j&&d.bFilter)g=pb(a);else if("r"==j&&d.bProcessing)g=qb(a);else if("t"==j)g=rb(a);else if("i"==j&&d.bInfo)g=sb(a);else if("p"==j&&d.bPaginate)g=tb(a);else if(0!==m.ext.feature.length){i=m.ext.feature;q=0;for(o=i.length;q ',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",g):j+g,b=h("
",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h(" ").append(j)),f=function(){var b=!this.value?"":this.value;b!=e.sSearch&&(ha(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,O(a))},g=null!==
-a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT",g?ua(f,g):f).bind("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}});return b[0]}function ha(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;
-d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ia(a);if("ssp"!=y(a)){wb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b=b.length)a.aiDisplay=f.slice();else{if(g||c||e.length>b.length||0!==b.indexOf(e)||a.bSorted)a.aiDisplay=f.slice();b=a.aiDisplay;for(c=b.length-1;0<=
-c;c--)d.test(a.aoData[b[c]]._sFilterRow)||b.splice(c,1)}}function Qa(a,b,c,d){a=b?a:va(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function va(a){return a.replace(Yb,"\\$1")}function zb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=m.ext.type.search;c=!1;d=0;for(f=a.aoData.length;d",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Cb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Cb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&
-(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Db(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Db(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/
-e)))}function ia(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){nb(a);kb(a);ga(a,a.aoHeader);ga(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Ha(a);b=0;for(c=e.length;b",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g ").addClass(b.sLength);
-a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).bind("change.DT",function(){Ra(a,h(this).val());O(a)});h(a.nTable).bind("length.dt.DT",function(b,c,d){a===c&&h("select",i).val(d)});return i[0]}function tb(a){var b=a.sPaginationType,c=m.ext.pager[b],d="function"===typeof c,e=function(a){O(a)},b=h("
").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+
-"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;lf&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==
-b?d+e ",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");v(a,null,"processing",[a,b])}function rb(a){var b=h(a.nTable);b.attr("role",
-"grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),o=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("
",{"class":f.sScrollWrapper}).append(h("
",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?!d?null:w(d):"100%"}).append(h("
",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||
-"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("
",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:w(d)}).append(b));l&&i.append(h("
",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:w(d):"100%"}).append(h("
",{"class":f.sScrollFootInner}).append(o.removeAttr("id").css("margin-left",0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),
-k=b[0],f=b[1],u=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(u.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=u;a.aoDrawCallback.push({fn:Z,sName:"scrolling"});return i[0]}function Z(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,o=j.children("table"),j=a.nScrollBody,l=h(j),q=j.style,u=h(a.nScrollFoot).children("div"),
-m=u.children("table"),n=h(a.nTHead),p=h(a.nTable),t=p[0],v=t.style,r=a.nTFoot?h(a.nTFoot):null,Eb=a.oBrowser,Ua=Eb.bScrollOversize,s,L,P,x,y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==L&&a.scrollBarVis!==k)a.scrollBarVis=L,U(a);else{a.scrollBarVis=L;p.children("thead, tfoot").remove();x=n.clone().prependTo(p);n=n.find("tr");L=x.find("tr");x.find("th, td").removeAttr("tabindex");
-r&&(P=r.clone().prependTo(p),s=r.find("tr"),P=P.find("tr"));c||(q.width="100%",f[0].style.width="100%");h.each(qa(a,x),function(b,c){B=$(a,b);c.style.width=a.aoColumns[B].sWidth});r&&I(function(a){a.style.width=""},P);f=p.outerWidth();if(""===c){v.width="100%";if(Ua&&(p.find("tbody").height()>j.offsetHeight||"scroll"==l.css("overflow-y")))v.width=w(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(v.width=w(d),f=p.outerWidth());I(C,L);I(function(a){A.push(a.innerHTML);y.push(w(h(a).css("width")))},
-L);I(function(a,b){a.style.width=y[b]},n);h(L).height(0);r&&(I(C,P),I(function(a){z.push(w(h(a).css("width")))},P),I(function(a,b){a.style.width=z[b]},s),h(P).height(0));I(function(a,b){a.innerHTML=''+A[b]+"
";a.style.width=y[b]},L);r&&I(function(a,b){a.innerHTML="";a.style.width=z[b]},P);if(p.outerWidth()j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(Ua&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))v.width=
-w(s-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else s="100%";q.width=w(s);g.width=w(s);r&&(a.nScrollFoot.style.width=w(s));!e&&Ua&&(q.height=w(t.offsetHeight+b));c=p.outerWidth();o[0].style.width=w(c);i.width=w(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+(Eb.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";r&&(m[0].style.width=w(c),u[0].style.width=w(c),u[0].style[e]=d?b+"px":"0px");l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=
-0}}function I(a,b,c){for(var d=0,e=0,f=b.length,g,j;e").appendTo(j.find("tbody"));j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");o=qa(a,j.find("thead")[0]);for(m=0;m ").css({width:n.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(m=0;m ").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()").css("width",w(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Gb(a,b){var c=Hb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h(" ").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Hb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;fd&&(d=c.length,e=f);return e}function w(a){return null===
-a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function W(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var o=[];f=function(a){a.length&&!h.isArray(a[0])?o.push(a):h.merge(o,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;ae?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];
-return ce?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,m=f[a]._aSortData,p=f[b]._aSortData;for(j=0;jg?1:0})}a.bSorted=!0}function Jb(a){for(var b,c,d=a.aoColumns,e=W(a),a=a.oLanguage.oAria,f=0,g=d.length;f/g,"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0e?e+1:3));e=0;for(f=d.length;ee?e+1:3))}a.aLastSort=d}function Ib(a,b){var c=a.aoColumns[b],d=m.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ba(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j=d.length?[0,c[1]]:c)}));e.search!==k&&h.extend(a.oPreviousSearch,Bb(e.search));b=0;for(c=e.columns.length;b=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Pa(a,b){var c=
-a.renderer,d=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function Aa(a,b){var c=[],c=Mb.numbers_length,d=Math.floor(c/2);b<=c?c=X(0,b):a<=d?(c=X(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=X(b-(c-2),b):(c=X(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function db(a){h.each({num:function(b){return Ba(b,
-a)},"num-fmt":function(b){return Ba(b,a,Xa)},"html-num":function(b){return Ba(b,a,Ca)},"html-num-fmt":function(b){return Ba(b,a,Ca,Xa)}},function(b,c){s.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(s.type.search[b+a]=s.type.search.html)})}function Nb(a){return function(){var b=[za(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return m.ext.internal[a].apply(this,b)}}var m,s,t,p,r,Ya={},Ob=/[\r\n]/g,Ca=/<.*?>/g,ac=/^[\w\+\-]/,bc=/[\w\+\-]$/,Yb=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)",
-"g"),Xa=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Pb=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},Qb=function(a,b){Ya[b]||(Ya[b]=RegExp(va(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Ya[b],"."):a},Za=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Qb(a,b));c&&d&&(a=a.replace(Xa,""));return!isNaN(parseFloat(a))&&isFinite(a)},Rb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===
-typeof a)?null:Za(a.replace(Ca,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e")[0],Zb=wa.textContent!==k,$b=/<.*?>/g;m=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new t(za(this[s.iApiIndex])):new t(this)};this.fnAddData=function(a,b){var c=this.api(!0),
-d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&Z(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],
-h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};
-this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);
-(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return za(this[s.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();(d===k||d)&&h.draw();return 0};this.fnVersionCheck=
-s.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=s.internal;for(var e in m.ext.internal)e&&(this[e]=Nb(e));this.each(function(){var e={},e=1t<"F"ip>'),n.renderer)?h.isPlainObject(n.renderer)&&!n.renderer.header&&(n.renderer.header="jqueryui"):n.renderer="jqueryui":h.extend(i,m.ext.classes,e.oClasses);q.addClass(i.sTable);n.iInitDisplayStart===k&&(n.iInitDisplayStart=e.iDisplayStart,n._iDisplayStart=e.iDisplayStart);null!==e.iDeferLoading&&(n.bDeferLoading=!0,g=h.isArray(e.iDeferLoading),
-n._iRecordsDisplay=g?e.iDeferLoading[0]:e.iDeferLoading,n._iRecordsTotal=g?e.iDeferLoading[1]:e.iDeferLoading);var t=n.oLanguage;h.extend(!0,t,e.oLanguage);""!==t.sUrl&&(h.ajax({dataType:"json",url:t.sUrl,success:function(a){Fa(a);J(l.oLanguage,a);h.extend(true,t,a);ia(n)},error:function(){ia(n)}}),o=!0);null===e.asStripeClasses&&(n.asStripeClasses=[i.sStripeOdd,i.sStripeEven]);var g=n.asStripeClasses,r=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(g,function(a){return r.hasClass(a)}))&&
-(h("tbody tr",this).removeClass(g.join(" ")),n.asDestroyStripes=g.slice());u=[];g=this.getElementsByTagName("thead");0!==g.length&&(fa(n.aoHeader,g[0]),u=qa(n));if(null===e.aoColumns){p=[];g=0;for(j=u.length;g ").appendTo(this));n.nTHead=j[0];j=q.children("tbody");0===j.length&&(j=h(" ").appendTo(this));n.nTBody=j[0];j=q.children("tfoot");if(0===j.length&&0 ").appendTo(this);
-0===j.length||0===j.children().length?q.addClass(i.sNoFooter):0a?new t(b[a],this[a]):null},filter:function(a){var b=[];if(x.filter)b=x.filter.call(this,a,this);else for(var c=0,d=this.length;c ").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=ca(d),e.push(c[0]))};f(a,b);c._details&&c._details.remove();c._details=h(e);c._detailsShow&&c._details.insertAfter(c.nTr)}return this});p(["row().child.show()","row().child().show()"],function(){Vb(this,
-!0);return this});p(["row().child.hide()","row().child().hide()"],function(){Vb(this,!1);return this});p(["row().child.remove()","row().child().remove()"],function(){cb(this);return this});p("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var dc=/^(.+):(name|visIdx|visible)$/,Wb=function(a,b,c,d,e){for(var c=[],d=0,f=e.length;d=0?b:g.length+b];if(typeof a==="function"){var e=Da(c,f);return h.map(g,function(b,f){return a(f,Wb(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(dc):"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null});
-return[m[m.length+b]]}return[$(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null})}else return h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray()},c,f)},1);c.selector.cols=a;c.selector.opts=b;return c});r("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});r("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});r("columns().data()",
-"column().data()",function(){return this.iterator("column-rows",Wb,1)});r("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});r("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});r("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,
-e,"anCells",b)},1)});r("columns().visible()","column().visible()",function(a,b){return this.iterator("column",function(c,d){if(a===k)return c.aoColumns[d].bVisible;var e=c.aoColumns,f=e[d],g=c.aoData,j,i,m;if(a!==k&&f.bVisible!==a){if(a){var l=h.inArray(!0,D(e,"bVisible"),d+1);j=0;for(i=g.length;jd;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;h.each(m.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:
-null;if(e.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(m.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new t(c):c};m.util={throttle:ua,escapeRegex:va};m.camelToHungarian=J;p("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){p(b+"()",function(){var a=Array.prototype.slice.call(arguments);
-a[0].match(/\.dt\b/)||(a[0]+=".dt");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});p("clear()",function(){return this.iterator("table",function(a){na(a)})});p("settings()",function(){return new t(this.context,this.context)});p("init()",function(){var a=this.context;return a.length?a[0].oInit:null});p("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});p("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=
-b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),p;b.bDestroying=!0;v(b,"aoDestroyCallback","destroy",[b]);a||(new t(b)).columns().visible(!0);k.unbind(".DT").find(":not(tbody *)").unbind(".DT");h(E).unbind(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];xa(b);
-h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);b.bJUI&&(h("th span."+d.sSortIcon+", td span."+d.sSortIcon,g).detach(),h("th, td",g).each(function(){var a=h("div."+d.sSortJUIWrapper,this);h(this).append(a.contents());a.detach()}));f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),(p=
-b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%p])}));c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){p(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});p("i18n()",function(a,b,c){var d=this.context[0],a=Q(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:a._);
-return a.replace("%d",c)});m.version="1.10.10";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,
-sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};m.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,
-bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+
-a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
-oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},
-m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};Y(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};
-Y(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],
-aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",
-iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?
-1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};
-m.ext=s={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(s,{afnFiltering:s.search,aTypes:s.type.detect,ofnSearch:s.type.search,oSort:s.type.order,afnSortData:s.order,aoFeatures:s.feature,oApi:s.internal,oStdClasses:s.classes,
-oPagination:s.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",
-sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
-sJUIHeader:"",sJUIFooter:""});var Ea="",Ea="",G=Ea+"ui-state-default",ka=Ea+"css_right ui-icon ui-icon-",Xb=Ea+"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";h.extend(m.ext.oJUIClasses,m.ext.classes,{sPageButton:"fg-button ui-button "+G,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:G+" sorting_asc",sSortDesc:G+" sorting_desc",sSortable:G+" sorting",
-sSortableAsc:G+" sorting_asc_disabled",sSortableDesc:G+" sorting_desc_disabled",sSortableNone:G+" sorting_disabled",sSortJUIAsc:ka+"triangle-1-n",sSortJUIDesc:ka+"triangle-1-s",sSortJUI:ka+"carat-2-n-s",sSortJUIAscAllowed:ka+"carat-1-n",sSortJUIDescAllowed:ka+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+G,sScrollFoot:"dataTables_scrollFoot "+G,sHeaderTH:G,sFooterTH:G,sJUIHeader:Xb+" ui-corner-tl ui-corner-tr",sJUIFooter:Xb+
-" ui-corner-bl ui-corner-br"});var Mb=m.ext.pager;h.extend(Mb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[Aa(a,b)]},simple_numbers:function(a,b){return["previous",Aa(a,b),"next"]},full_numbers:function(a,b){return["first","previous",Aa(a,b),"next","last"]},_numbers:Aa,numbers_length:7});h.extend(!0,m.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||
-{},k,l,m=0,p=function(b,d){var n,r,t,s,v=function(b){Ta(a,b.data.action,true)};n=0;for(r=d.length;n ").appendTo(b);p(t,s)}else{k=null;l="";switch(s){case "ellipsis":b.append('… ');break;case "first":k=j.sFirst;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":k=j.sPrevious;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":k=j.sNext;l=s+(e",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[s],"data-dt-idx":m,tabindex:a.iTabIndex,id:c===0&&typeof s==="string"?a.sTableId+"_"+s:null}).html(k).appendTo(b);Wa(t,{action:s},v);m++}}}},r;try{r=h(b).find(H.activeElement).data("dt-idx")}catch(n){}p(h(b).empty(),d);r&&h(b).find("[data-dt-idx="+r+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=
-b.oLanguage.sDecimal;return Za(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&(!ac.test(a)||!bc.test(a)))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return Za(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":
-null}]);h.extend(m.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob," ").replace(Ca,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob," "):a}});var Ba=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Qb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(s.type.order,{"date-pre":function(a){return Date.parse(a)||0},"html-pre":function(a){return M(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():
-a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return ab?1:0},"string-desc":function(a,b){return ab?-1:0}});db("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,
-b,c,d){h("
").addClass(d.sSortJUIWrapper).append(b.contents()).append(h(" ").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]=="asc"?d.sSortJUIAsc:
-h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});m.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return f;f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:function(a){return"string"===typeof a?a.replace(/ /g,">").replace(/"/g,"""):
-a}}}};h.extend(m.ext.internal,{_fnExternApiFunc:Nb,_fnBuildAjax:ra,_fnAjaxUpdate:lb,_fnAjaxParameters:ub,_fnAjaxUpdateDraw:vb,_fnAjaxDataSrc:sa,_fnAddColumn:Ga,_fnColumnOptions:la,_fnAdjustColumnSizing:U,_fnVisibleToColumnIndex:$,_fnColumnIndexToVisible:ba,_fnVisbleColumns:ca,_fnGetColumns:aa,_fnColumnTypes:Ia,_fnApplyColumnDefs:ib,_fnHungarianMap:Y,_fnCamelToHungarian:J,_fnLanguageCompat:Fa,_fnBrowserDetect:gb,_fnAddData:N,_fnAddTr:ma,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:
-null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:jb,_fnSplitObjNotation:La,_fnGetObjectDataFn:Q,_fnSetObjectDataFn:R,_fnGetDataMaster:Ma,_fnClearTable:na,_fnDeleteIndex:oa,_fnInvalidate:ea,_fnGetRowElements:Ka,_fnCreateTr:Ja,_fnBuildHead:kb,_fnDrawHead:ga,_fnDraw:O,_fnReDraw:T,_fnAddOptionsHtml:nb,_fnDetectHeader:fa,_fnGetUniqueThs:qa,_fnFeatureHtmlFilter:pb,_fnFilterComplete:ha,_fnFilterCustom:yb,_fnFilterColumn:xb,_fnFilter:wb,_fnFilterCreateSearch:Qa,
-_fnEscapeRegex:va,_fnFilterData:zb,_fnFeatureHtmlInfo:sb,_fnUpdateInfo:Cb,_fnInfoMacros:Db,_fnInitialise:ia,_fnInitComplete:ta,_fnLengthChange:Ra,_fnFeatureHtmlLength:ob,_fnFeatureHtmlPaginate:tb,_fnPageChange:Ta,_fnFeatureHtmlProcessing:qb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:rb,_fnScrollDraw:Z,_fnApplyToChildren:I,_fnCalculateColumnWidths:Ha,_fnThrottle:ua,_fnConvertToWidth:Fb,_fnGetWidestNode:Gb,_fnGetMaxLenString:Hb,_fnStringToCss:w,_fnSortFlatten:W,_fnSort:mb,_fnSortAria:Jb,_fnSortListener:Va,
-_fnSortAttachListener:Oa,_fnSortingClasses:xa,_fnSortData:Ib,_fnSaveState:ya,_fnLoadState:Kb,_fnSettingsFromNode:za,_fnLog:K,_fnMap:F,_fnBindAction:Wa,_fnCallbackReg:z,_fnCallbackFire:v,_fnLengthOverflow:Sa,_fnRenderer:Pa,_fnDataSource:y,_fnRowAttributes:Na,_fnCalculateEnd:function(){}});h.fn.dataTable=m;m.$=h;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt=m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/provider-libs/ws-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/provider-libs/ws-client.js
deleted file mode 100644
index ab7263155..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_screen_gadget/Android_Realtime_Screen/js/provider-libs/ws-client.js
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var CONSTANTS = {
- urlSeperator: '/',
- queryParamStreamName : '?streamname=',
- queryParamStreamVersion : '&version=',
- queryParamLastUpdatedTime : '&lastUpdatedTime=',
- urlSecureTransportWebsocket : 'wss://',
- urlSecureTransportHttp : 'https://',
- colon : ':',
- defaultIntervalTime : 10 * 1000,
- defaultHostName : 'localhost',
- defaultSecurePortNumber : '9443',
- defaultMode : 'AUTO',
- processModeHTTP : 'HTTP',
- processModeWebSocket : 'WEBSOCKET',
- processModeAuto : 'AUTO',
- numThousand : 1000,
- websocketTimeAppender : 400,
- websocketSubscriptionEndpoint : 'portal/uipublisher/websocketSubscriptionEndpoint.jag',
- httpEventRetrievalEndpoint : 'portal/uipublisher/httpEventRetrievalEndpoint.jag'
-};
-
-
-var websocket = null;
-var webSocketUrl;
-var httpUrl;
-var cepHostName;
-var cepPortNumber;
-var isErrorOccured = false;
-var lastUpdatedtime = -1;
-var polingInterval;
-var stream;
-var streamVersion;
-var firstPollingAttempt;
-var processMode;
-var onSuccessFunction;
-var onErrorFunction;
-var terminateWebsocketInstance = false;
-var pollingContinue = true;
-
-function subscribe(streamName,version,intervalTime,
- listeningFuncSuccessData,listeningFuncErrorData,cepHost,cepPort,mode){
- stopPollingProcesses();
- stream = streamName;
- streamVersion = version;
- onSuccessFunction = listeningFuncSuccessData;
- onErrorFunction = listeningFuncErrorData;
-
- if(intervalTime == null || intervalTime == ""){
- polingInterval = CONSTANTS.defaultIntervalTime;
- } else{
- polingInterval = intervalTime * CONSTANTS.numThousand;
- }
-
- if(cepHost == null || cepHost == ""){
- cepHostName = CONSTANTS.defaultHostName;
- } else{
- cepHostName = cepHost;
- }
-
- if(cepPort == null || cepPort == ""){
- cepPortNumber = CONSTANTS.defaultSecurePortNumber;
- } else{
- cepPortNumber = cepPort;
- }
-
- if(mode == null || mode == ""){
- processMode = CONSTANTS.defaultMode;
- } else{
- processMode = mode;
- }
-
- webSocketUrl = CONSTANTS.urlSecureTransportWebsocket + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.websocketSubscriptionEndpoint;
-
- if(processMode == CONSTANTS.processModeHTTP){
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- } else{
- initializeWebSocket(webSocketUrl);
- }
-}
-
-
-/**
- * Initializing Web Socket
- */
-function initializeWebSocket(webSocketUrl){
- websocket = new WebSocket(webSocketUrl);
- websocket.onopen = webSocketOnOpen;
- websocket.onmessage = webSocketOnMessage;
- websocket.onclose = webSocketOnClose;
- websocket.onerror = webSocketOnError;
-}
-
-function getWebsocketSubscriptionMessage(streamName, streamVersion, streamProperties, streamValues) {
- if (streamProperties.length === streamValues.length) {
- var message = {};
- message.streamName = streamName;
- message.streamVersion = streamVersion;
- var i;
- for (i = 0; i < streamProperties.length; i++) {
- message.filterProps = [];
- message.filterProps.push({
- 'name': streamProperties[i],
- 'value': streamValues[i]
- });
- }
- return JSON.stringify(message);
- } else {
- console.log('stream properties and values are not in equal size');
- }
-}
-
-/**
- * Get the parameters as query parameters.
- * This method parses those parameters and returns.
- * */
-function getAllQueryParamsFromURL() {
- var queryParamList = {}, qParam;
- var urlQueryString = decodeURIComponent(window.top.location.search.substring(1));
-
- if (urlQueryString) {
- var queryStringPairs = urlQueryString.split('&');
- for (var i = 0; i < queryStringPairs.length; i++) {
- qParam = queryStringPairs[i].split('=');
- queryParamList[qParam[0]] = qParam[1];
- }
- return queryParamList;
-
- } else {
- return null;
- }
-}
-
-/**
- * Web socket On Open
- */
-var webSocketOnOpen = function () {
- var params = getAllQueryParamsFromURL();
- var deviceId;
- var owner;
- if (params) {
- owner = params["owner"];
- deviceId = params["deviceId"];
- }
- var filterPropNames = ["meta_owner", "meta_deviceId"];
- var filterPropVals = [owner, deviceId];
- var data = getWebsocketSubscriptionMessage(stream, streamVersion, filterPropNames, filterPropVals);
- websocket.send(data);
-};
-
-/**
- * On server sends a message
- */
-var webSocketOnMessage = function (evt) {
- var event = evt.data;
- var array = JSON.parse(event);
- constructPayload(array);
-};
-
-/**
- * On server close
- */
-var webSocketOnClose =function (e) {
-
- if(isErrorOccured){
- if(processMode != CONSTANTS.processModeWebSocket){
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- }
- } else{
- if(!terminateWebsocketInstance){
- waitForSocketConnection(websocket);
- } else{
- terminateWebsocketInstance = false;
- }
-
- }
-};
-
-/**
- * On server Error
- */
-var webSocketOnError = function (err) {
- var error = "Error: Cannot connect to Websocket URL:" + webSocketUrl + " .Hence closing the connection!";
-
- onErrorFunction(error);
- isErrorOccured = true;
-
-};
-
-/**
- * Gracefully increments the connection retry
- */
-var waitTime = CONSTANTS.numThousand;
-function waitForSocketConnection(socket, callback){
- setTimeout(
- function () {
- if (socket.readyState === 1) {
- initializeWebSocket(webSocketUrl);
- console.log("Connection is made");
- if(callback != null){
- callback();
- }
- return;
- } else {
- websocket = new WebSocket(webSocketUrl);
- waitTime += CONSTANTS.websocketTimeAppender;
- waitForSocketConnection(websocket, callback);
- }
- }, waitTime);
-}
-
-/**
- * Polling to retrieve events from http request periodically
- */
-function startPoll(){
-
- (function poll(){
- setTimeout(function(){
- httpUrl = CONSTANTS.urlSecureTransportHttp + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.httpEventRetrievalEndpoint + CONSTANTS.queryParamStreamName + stream +
- CONSTANTS.queryParamStreamVersion + streamVersion + CONSTANTS.queryParamLastUpdatedTime + lastUpdatedtime;;
- $.getJSON(httpUrl, function(responseText) {
- if(firstPollingAttempt){
- /*var data = $("textarea#idConsole").val();
- $("textarea#idConsole").val(data + "Successfully connected to HTTP.");*/
- firstPollingAttempt = false;
- }
- var eventList = $.parseJSON(responseText.events);
- if(eventList.length != 0){
- lastUpdatedtime = responseText.lastEventTime;
- for(var i=0;i
-
-
-
- Android_Realtime_Screen
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/conf.json
deleted file mode 100644
index 75951998a..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/conf.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "provider-conf": {
- "streamName": "org.wso2.iot.android.sms:1.0.0",
- "provider-name": "realtime"
- },
- "chart-conf": {
- "key": "timestamp",
- "color": "type",
- "grid": "on",
- "maxLength": "10",
- "gadget-name": "Android Realtime SMS",
- "chart-name": "table-chart"
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/css/dataTables.bootstrap.min.css b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/css/dataTables.bootstrap.min.css
deleted file mode 100644
index 745f2996f..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/css/dataTables.bootstrap.min.css
+++ /dev/null
@@ -1 +0,0 @@
-table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable{border-collapse:separate !important}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:last-child{padding-right:0}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/gadget-controller.jag
deleted file mode 100644
index f84538a40..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/gadget-controller.jag
+++ /dev/null
@@ -1,42 +0,0 @@
-<%
-/**
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-(function () {
-
- response.contentType = 'application/json';
- var PROVIDER_CONF = 'provider-conf';
- var PROVIDER_NAME = 'provider-name';
-
- var action = request.getParameter("action");
- var data = request.getContent();
- var providerConf = data[PROVIDER_CONF];
- var providerAPI = require('js/core/' + providerConf[PROVIDER_NAME] + '-provider-api.js');
-
- if (action === 'getSchema') {
- print(providerAPI.getSchema(providerConf));
- return;
- } else if(action === 'getData'){
- print(providerAPI.getData(providerConf));
- return;
- }
-
-}());
-
-
-%>
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/gadget.json
deleted file mode 100644
index ecf9c0138..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/gadget.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "id": "Android_Realtime_SMS",
- "title": "Android Realtime SMS",
- "type": "gadget",
- "thumbnail": "gadget/Android_Realtime_SMS/thumbnail.png",
- "data": {
- "url": "gadget/Android_Realtime_SMS/gadget.xml"
- }
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/gadget.xml
deleted file mode 100644
index ed4e50008..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/gadget.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/gadget-core.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/gadget-core.js
deleted file mode 100644
index 8bfc5f742..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/gadget-core.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
-*/
-$(function () {
- var gadgetLocation;
- var conf;
- var schema;
- var pref = new gadgets.Prefs();
-
- var CHART_CONF = 'chart-conf';
- var PROVIDER_CONF = 'provider-conf';
-
-var init = function () {
- $.ajax({
- url: gadgetLocation + '/conf.json',
- method: "GET",
- contentType: "application/json",
- async: false,
- success: function (data) {
- conf = JSON.parse(data);
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getSchema',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function (data) {
- schema = data;
- }
- });
-
- }
- });
-};
-
-
-var drawGadget = function (){
-
- draw('#canvas', conf[CHART_CONF], schema, null);
- registerCallBackforPush(conf[PROVIDER_CONF], schema, function(providerData) {
- update(providerData);
- });
-
-};
-
-getGadgetLocation(function (gadget_Location) {
- gadgetLocation = gadget_Location;
- init();
- drawGadget();
-
-});
-});
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/gadget-util.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/gadget-util.js
deleted file mode 100644
index bba133e3c..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/gadget-util.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getGadgetLocation = function (callback) {
- var gadgetLocation = "/portal/store/carbon.super/fs/gadget/Android_Realtime_SMS";
- var PATH_SEPERATOR = "/";
- if (gadgetLocation.search("store") != -1) {
- wso2.gadgets.identity.getTenantDomain(function (tenantDomain) {
- var gadgetPath = gadgetLocation.split(PATH_SEPERATOR);
- var modifiedPath = '';
- for (var i = 1; i < gadgetPath.length; i++) {
- if (i === 3) {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, tenantDomain);
- } else {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, gadgetPath[i])
- }
- }
- callback(modifiedPath);
- });
- } else {
- callback(gadgetLocation);
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/provider-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/provider-client.js
deleted file mode 100644
index 6196677f6..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/provider-client.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-// var registerCallBackforPush;
-
-(function() {
-
- var callback;
-
- /**
- * TODO Need to read hostname,port, and tenantId from providerConfig
- * @param providerConfig
- * @param schema
- */
- registerCallBackforPush = function(providerConfig, schema, _callback) {
- var streamId = providerConfig['streamName'];
- var hostname = window.parent.location.hostname;
- var port = window.parent.location.port;
-
- subscribe(streamId.split(":")[0], streamId.split(":")[1],
- '10',
- onData, onError,
- hostname,
- port,
- 'WEBSOCKET'
- );
- callback = _callback;
- };
-
- function onData(streamId, data) {
- callback(data);
- };
-
- function onError(error) {
- console.error(error);
- };
-
-}());
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/realtime-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/realtime-provider-api.js
deleted file mode 100644
index 7cf59af77..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/realtime-provider-api.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, getMode, getSchema, getData, registerCallBackforPush;
-
-(function() {
-
- var PROVIDERS_LOCATION = '/extensions/providers/';
- var PROVIDER_NAME = 'realtime';
-
- var log = new Log();
- var utils = require('/modules/utils.js');
- var carbon = require("carbon");
- var EventPublisherConstants = Packages.org.wso2.carbon.event.publisher.core.config.EventPublisherConstants;
- var eventPublisherService = carbon.server.osgiService('org.wso2.carbon.event.publisher.core.EventPublisherService');
- var eventStreamService = carbon.server.osgiService('org.wso2.carbon.event.stream.core.EventStreamService');
-
- var typeMap = {
- "bool": "string",
- "boolean": "string",
- "string": "string",
- "int": "number",
- "integer": "number",
- "long": "number",
- "double": "number",
- "float": "number",
- "time": "time"
- };
-
- getConfig = function() {
- var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json');
- var datasources = [];
- try {
- var eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations();
- for (var i = 0; i < eventPublisherConfigurationList.size(); i++) {
- var eventPublisherConfiguration = eventPublisherService.getActiveEventPublisherConfiguration(
- eventPublisherConfigurationList.get(i).getEventPublisherName());;
-
- var mappingTypeIsWso2 = eventPublisherConfiguration.getOutputMapping()
- .getMappingType().equals(EventPublisherConstants.EF_WSO2EVENT_MAPPING_TYPE);
-
- var adapterType = null;
- if (eventPublisherConfiguration.getToAdapterConfiguration() != null) {
- adapterType = eventPublisherConfiguration.getToAdapterConfiguration().getType();
- }
- if (mappingTypeIsWso2 && adapterType.trim() == "ui") {
- var streamName = eventPublisherConfiguration.getFromStreamName();
- var streamVersion = eventPublisherConfiguration.getFromStreamVersion();
- var streamId = streamName + ":" + streamVersion;
- datasources.push(streamId);
- }
- }
- var datasourceCfg = {
- "fieldLabel": "Event Stream",
- "fieldName": "streamName",
- "fieldType": "dropDown"
- };
- datasourceCfg['valueSet'] = datasources;
- } catch (e) {
- log.error(e);
- }
- formConfig.config.push(datasourceCfg);
- return formConfig;
- };
-
- /**
- * validate the user input of provider configuration
- * @param providerConfig
- */
- validate = function(providerConfig) {
- /*
- validate the form and return
-
- */
- return true;
- };
-
- /**
- * returns the data mode either push or pull
- */
- getMode = function() {
- return 'push';
- };
-
- /**
- * returns an array of column names & types
- * @param providerConfig
- */
- getSchema = function(providerConfig) {
- var streamId = providerConfig["streamName"];
- var output = [];
-
- output.push({
- fieldName: "TIMESTAMP",
- fieldType: "time"
- });
-
- if (eventStreamService != null) {
- var eventStreamConfiguration = eventStreamService.getEventStreamConfiguration(streamId);
- if (eventStreamConfiguration != null) {
- var metaData = eventStreamConfiguration.getStreamDefinition().getMetaData();
- var correlationData = eventStreamConfiguration.getStreamDefinition().getCorrelationData();
- var payloadData = eventStreamConfiguration.getStreamDefinition().getPayloadData();
- if (metaData != null) {
- for (var i = 0; i < metaData.size(); i++) {
- var type = metaData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: metaData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (correlationData != null) {
- for (var i = 0; i < correlationData.size(); i++) {
- var type = correlationData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: correlationData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (payloadData != null) {
- for (var i = 0; i < payloadData.size(); i++) {
- var type = payloadData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: payloadData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- }
- }
- return output;
- };
-
- getData = function(providerConfig,limit) {
- var data = [];
- return data;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/table-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/table-chart-api.js
deleted file mode 100644
index cb7f81643..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/core/table-chart-api.js
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, isProviderRequired, draw, update;
-
-(function() {
-
- var CHART_LOCATION = '/extensions/chart-templates/';
-
- var tableFieldsOrder = ['timestamp', 'number', 'type', 'body'];
-
- /**
- * return the config to be populated in the chart configuration UI
- * @param schema
- */
- getConfig = function(schema) {
- var chartConf = require(CHART_LOCATION + '/table-chart/config.json').config;
- /*
- dynamic logic goes here
- */
-
- var columns = [];
-
- columns.push("None");
- columns.push("All");
- for(var i=0; i < schema.length; i++) {
- columns.push(schema[i]["fieldName"]);
- }
-
- for(var i=0; i < chartConf.length; i++) {
- if (chartConf[i]["fieldName"] == "color") {
- chartConf[i]["valueSet"] = columns;
- break;
- }
- }
-
- return chartConf;
- };
-
- /**
- * validate the user inout for the chart configuration
- * @param chartConfig
- */
- validate = function(chartConfig) {
- return true;
- };
-
- /**
- * TO be used when provider configuration steps need to be skipped
- */
- isProviderRequired = function() {
-
- }
-
-
- /**
- * return the gadget content
- * @param chartConfig
- * @param schema
- * @param data
- */
- draw = function(placeholder, chartConfig, _schema, data) {
-
- var schema = toVizGrammarSchema(_schema);
- var grid = chartConfig.grid;
- // var columns = [];
-
- // for(var i=0; i < _schema.length; i++) {
- // columns.push(_schema[i]["fieldName"]);
- // }
-
- chartConfig.columns = tableFieldsOrder;
-
- var view = {
- id: "chart-0",
- schema: schema,
- chartConfig: buildChartConfig(chartConfig),
- data: function() {
- if(data) {
- var result = [];
- data.forEach(function(item) {
- var row = [];
- schema[0].metadata.names.forEach(function(name) {
- row.push(item[name]);
- });
- result.push(row);
- });
- wso2gadgets.onDataReady(result);
- }
- }
-
- };
-
- try {
- wso2gadgets.init(placeholder, view);
- var view = wso2gadgets.load("chart-0");
-
- if (grid) {
- $(document).ready(function() {
- $('#table').DataTable();
- } );
- }
-
- } catch (e) {
- console.error(e);
- }
-
- };
-
- /**
- *
- * @param data
- */
- update = function(data) {
- data[0][3] = getDateString(data[0][3]);
- wso2gadgets.onDataReady(data,"append");
- };
-
- buildChartConfig = function (_chartConfig) {
- var conf = {};
- conf.charts = [];
- conf.charts[0] = {
- type : "table",
- key : _chartConfig.key,
- grid: _chartConfig.grid
- };
- conf.maxLength = _chartConfig.maxLength;
-
- if (_chartConfig.color == "All") {
- conf.charts[0].color = "*";
- } else if (_chartConfig.color != "None") {
- conf.charts[0].color = _chartConfig.color;
- }
-
- conf.charts[0].columns = _chartConfig.columns;
- conf.columnTitles = ['Time', 'Recipient Number', 'Type', 'Message Body'];
- return conf;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/jquery.dataTables.min.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/jquery.dataTables.min.js
deleted file mode 100644
index d87780456..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/jquery.dataTables.min.js
+++ /dev/null
@@ -1,164 +0,0 @@
-/*!
- DataTables 1.10.10
- ©2008-2015 SpryMedia Ltd - datatables.net/license
-*/
-(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Y(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
-d[c]=e,"o"===b[1]&&Y(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Y(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Fa(a){var b=m.defaults.oLanguage,c=a.sZeroRecords;!a.sEmptyTable&&(c&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(c&&"Loading..."===b.sLoadingRecords)&&F(a,a,"sZeroRecords","sLoadingRecords");
-a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&db(a)}function eb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":"");"boolean"===typeof a.scrollX&&(a.scrollX=
-a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b").css({position:"fixed",top:0,left:0,height:1,width:1,overflow:"hidden"}).append(h("
").css({position:"absolute",top:1,left:1,
-width:100,overflow:"scroll"}).append(h("
").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,m.__browser);a.oScroll.iBarWidth=m.__browser.barWidth}function hb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&&
-(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ga(a,b){var c=m.defaults.column,d=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},m.models.oSearch,c[d]);la(a,d,h(b).data())}function la(a,b,c){var b=a.aoColumns[b],d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=
-(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(fb(c),J(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=Q(g),i=b.mRender?Q(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&
-(c(g.sort)||c(g.type)||c(g.filter));b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return R(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=
-d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function U(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ha(a);for(var c=0,d=b.length;cq[f])d(l.length+q[f],o);else if("string"===typeof q[f]){j=0;for(i=l.length;jb&&a[e]--; -1!=d&&c===k&&a.splice(d,1)}function ea(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=
-Ka(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c ").appendTo(g));b=0;for(c=l.length;btr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(o.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(o.sFooterTH);if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);var g=a._iDisplayStart,o=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&
-!lb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:o;for(j=j?0:g;j",{"class":e?d[0]:""}).append(h(" ",{valign:"top",colSpan:ca(a),
-"class":a.oClasses.sRowEmpty}).html(c))[0];v(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ma(a),g,o,i]);v(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ma(a),g,o,i]);d=h(a.nTBody);d.children().detach();d.append(h(b));v(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&mb(a);d?ha(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;O(a);a._drawHold=
-!1}function nb(a){var b=a.oClasses,c=h(a.nTable),c=h("
").insertBefore(c),d=a.oFeatures,e=h("
",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,o,l,q,u=0;u ")[0];o=f[u+1];if("'"==o||'"'==o){l="";for(q=2;f[u+q]!=o;)l+=f[u+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(o=l.split("."),
-i.id=o[0].substr(1,o[0].length-1),i.className=o[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;u+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=ob(a);else if("f"==j&&d.bFilter)g=pb(a);else if("r"==j&&d.bProcessing)g=qb(a);else if("t"==j)g=rb(a);else if("i"==j&&d.bInfo)g=sb(a);else if("p"==j&&d.bPaginate)g=tb(a);else if(0!==m.ext.feature.length){i=m.ext.feature;q=0;for(o=i.length;q ',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",g):j+g,b=h("
",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h(" ").append(j)),f=function(){var b=!this.value?"":this.value;b!=e.sSearch&&(ha(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,O(a))},g=null!==
-a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT",g?ua(f,g):f).bind("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}});return b[0]}function ha(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;
-d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ia(a);if("ssp"!=y(a)){wb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b=b.length)a.aiDisplay=f.slice();else{if(g||c||e.length>b.length||0!==b.indexOf(e)||a.bSorted)a.aiDisplay=f.slice();b=a.aiDisplay;for(c=b.length-1;0<=
-c;c--)d.test(a.aoData[b[c]]._sFilterRow)||b.splice(c,1)}}function Qa(a,b,c,d){a=b?a:va(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function va(a){return a.replace(Yb,"\\$1")}function zb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=m.ext.type.search;c=!1;d=0;for(f=a.aoData.length;d",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Cb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Cb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&
-(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Db(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Db(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/
-e)))}function ia(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){nb(a);kb(a);ga(a,a.aoHeader);ga(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Ha(a);b=0;for(c=e.length;b",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g ").addClass(b.sLength);
-a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).bind("change.DT",function(){Ra(a,h(this).val());O(a)});h(a.nTable).bind("length.dt.DT",function(b,c,d){a===c&&h("select",i).val(d)});return i[0]}function tb(a){var b=a.sPaginationType,c=m.ext.pager[b],d="function"===typeof c,e=function(a){O(a)},b=h("
").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+
-"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;lf&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==
-b?d+e ",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");v(a,null,"processing",[a,b])}function rb(a){var b=h(a.nTable);b.attr("role",
-"grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),o=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("
",{"class":f.sScrollWrapper}).append(h("
",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?!d?null:w(d):"100%"}).append(h("
",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||
-"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("
",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:w(d)}).append(b));l&&i.append(h("
",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:w(d):"100%"}).append(h("
",{"class":f.sScrollFootInner}).append(o.removeAttr("id").css("margin-left",0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),
-k=b[0],f=b[1],u=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(u.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=u;a.aoDrawCallback.push({fn:Z,sName:"scrolling"});return i[0]}function Z(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,o=j.children("table"),j=a.nScrollBody,l=h(j),q=j.style,u=h(a.nScrollFoot).children("div"),
-m=u.children("table"),n=h(a.nTHead),p=h(a.nTable),t=p[0],v=t.style,r=a.nTFoot?h(a.nTFoot):null,Eb=a.oBrowser,Ua=Eb.bScrollOversize,s,L,P,x,y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==L&&a.scrollBarVis!==k)a.scrollBarVis=L,U(a);else{a.scrollBarVis=L;p.children("thead, tfoot").remove();x=n.clone().prependTo(p);n=n.find("tr");L=x.find("tr");x.find("th, td").removeAttr("tabindex");
-r&&(P=r.clone().prependTo(p),s=r.find("tr"),P=P.find("tr"));c||(q.width="100%",f[0].style.width="100%");h.each(qa(a,x),function(b,c){B=$(a,b);c.style.width=a.aoColumns[B].sWidth});r&&I(function(a){a.style.width=""},P);f=p.outerWidth();if(""===c){v.width="100%";if(Ua&&(p.find("tbody").height()>j.offsetHeight||"scroll"==l.css("overflow-y")))v.width=w(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(v.width=w(d),f=p.outerWidth());I(C,L);I(function(a){A.push(a.innerHTML);y.push(w(h(a).css("width")))},
-L);I(function(a,b){a.style.width=y[b]},n);h(L).height(0);r&&(I(C,P),I(function(a){z.push(w(h(a).css("width")))},P),I(function(a,b){a.style.width=z[b]},s),h(P).height(0));I(function(a,b){a.innerHTML=''+A[b]+"
";a.style.width=y[b]},L);r&&I(function(a,b){a.innerHTML="";a.style.width=z[b]},P);if(p.outerWidth()j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(Ua&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))v.width=
-w(s-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else s="100%";q.width=w(s);g.width=w(s);r&&(a.nScrollFoot.style.width=w(s));!e&&Ua&&(q.height=w(t.offsetHeight+b));c=p.outerWidth();o[0].style.width=w(c);i.width=w(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+(Eb.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";r&&(m[0].style.width=w(c),u[0].style.width=w(c),u[0].style[e]=d?b+"px":"0px");l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=
-0}}function I(a,b,c){for(var d=0,e=0,f=b.length,g,j;e").appendTo(j.find("tbody"));j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");o=qa(a,j.find("thead")[0]);for(m=0;m ").css({width:n.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(m=0;m ").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()").css("width",w(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Gb(a,b){var c=Hb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h(" ").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Hb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;fd&&(d=c.length,e=f);return e}function w(a){return null===
-a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function W(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var o=[];f=function(a){a.length&&!h.isArray(a[0])?o.push(a):h.merge(o,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;ae?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];
-return ce?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,m=f[a]._aSortData,p=f[b]._aSortData;for(j=0;jg?1:0})}a.bSorted=!0}function Jb(a){for(var b,c,d=a.aoColumns,e=W(a),a=a.oLanguage.oAria,f=0,g=d.length;f/g,"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0e?e+1:3));e=0;for(f=d.length;ee?e+1:3))}a.aLastSort=d}function Ib(a,b){var c=a.aoColumns[b],d=m.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ba(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j=d.length?[0,c[1]]:c)}));e.search!==k&&h.extend(a.oPreviousSearch,Bb(e.search));b=0;for(c=e.columns.length;b=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Pa(a,b){var c=
-a.renderer,d=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function Aa(a,b){var c=[],c=Mb.numbers_length,d=Math.floor(c/2);b<=c?c=X(0,b):a<=d?(c=X(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=X(b-(c-2),b):(c=X(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function db(a){h.each({num:function(b){return Ba(b,
-a)},"num-fmt":function(b){return Ba(b,a,Xa)},"html-num":function(b){return Ba(b,a,Ca)},"html-num-fmt":function(b){return Ba(b,a,Ca,Xa)}},function(b,c){s.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(s.type.search[b+a]=s.type.search.html)})}function Nb(a){return function(){var b=[za(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return m.ext.internal[a].apply(this,b)}}var m,s,t,p,r,Ya={},Ob=/[\r\n]/g,Ca=/<.*?>/g,ac=/^[\w\+\-]/,bc=/[\w\+\-]$/,Yb=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)",
-"g"),Xa=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Pb=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},Qb=function(a,b){Ya[b]||(Ya[b]=RegExp(va(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Ya[b],"."):a},Za=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Qb(a,b));c&&d&&(a=a.replace(Xa,""));return!isNaN(parseFloat(a))&&isFinite(a)},Rb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===
-typeof a)?null:Za(a.replace(Ca,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e")[0],Zb=wa.textContent!==k,$b=/<.*?>/g;m=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new t(za(this[s.iApiIndex])):new t(this)};this.fnAddData=function(a,b){var c=this.api(!0),
-d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&Z(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],
-h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};
-this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);
-(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return za(this[s.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();(d===k||d)&&h.draw();return 0};this.fnVersionCheck=
-s.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=s.internal;for(var e in m.ext.internal)e&&(this[e]=Nb(e));this.each(function(){var e={},e=1t<"F"ip>'),n.renderer)?h.isPlainObject(n.renderer)&&!n.renderer.header&&(n.renderer.header="jqueryui"):n.renderer="jqueryui":h.extend(i,m.ext.classes,e.oClasses);q.addClass(i.sTable);n.iInitDisplayStart===k&&(n.iInitDisplayStart=e.iDisplayStart,n._iDisplayStart=e.iDisplayStart);null!==e.iDeferLoading&&(n.bDeferLoading=!0,g=h.isArray(e.iDeferLoading),
-n._iRecordsDisplay=g?e.iDeferLoading[0]:e.iDeferLoading,n._iRecordsTotal=g?e.iDeferLoading[1]:e.iDeferLoading);var t=n.oLanguage;h.extend(!0,t,e.oLanguage);""!==t.sUrl&&(h.ajax({dataType:"json",url:t.sUrl,success:function(a){Fa(a);J(l.oLanguage,a);h.extend(true,t,a);ia(n)},error:function(){ia(n)}}),o=!0);null===e.asStripeClasses&&(n.asStripeClasses=[i.sStripeOdd,i.sStripeEven]);var g=n.asStripeClasses,r=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(g,function(a){return r.hasClass(a)}))&&
-(h("tbody tr",this).removeClass(g.join(" ")),n.asDestroyStripes=g.slice());u=[];g=this.getElementsByTagName("thead");0!==g.length&&(fa(n.aoHeader,g[0]),u=qa(n));if(null===e.aoColumns){p=[];g=0;for(j=u.length;g ").appendTo(this));n.nTHead=j[0];j=q.children("tbody");0===j.length&&(j=h(" ").appendTo(this));n.nTBody=j[0];j=q.children("tfoot");if(0===j.length&&0 ").appendTo(this);
-0===j.length||0===j.children().length?q.addClass(i.sNoFooter):0a?new t(b[a],this[a]):null},filter:function(a){var b=[];if(x.filter)b=x.filter.call(this,a,this);else for(var c=0,d=this.length;c ").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=ca(d),e.push(c[0]))};f(a,b);c._details&&c._details.remove();c._details=h(e);c._detailsShow&&c._details.insertAfter(c.nTr)}return this});p(["row().child.show()","row().child().show()"],function(){Vb(this,
-!0);return this});p(["row().child.hide()","row().child().hide()"],function(){Vb(this,!1);return this});p(["row().child.remove()","row().child().remove()"],function(){cb(this);return this});p("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var dc=/^(.+):(name|visIdx|visible)$/,Wb=function(a,b,c,d,e){for(var c=[],d=0,f=e.length;d=0?b:g.length+b];if(typeof a==="function"){var e=Da(c,f);return h.map(g,function(b,f){return a(f,Wb(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(dc):"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null});
-return[m[m.length+b]]}return[$(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null})}else return h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray()},c,f)},1);c.selector.cols=a;c.selector.opts=b;return c});r("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});r("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});r("columns().data()",
-"column().data()",function(){return this.iterator("column-rows",Wb,1)});r("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});r("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});r("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,
-e,"anCells",b)},1)});r("columns().visible()","column().visible()",function(a,b){return this.iterator("column",function(c,d){if(a===k)return c.aoColumns[d].bVisible;var e=c.aoColumns,f=e[d],g=c.aoData,j,i,m;if(a!==k&&f.bVisible!==a){if(a){var l=h.inArray(!0,D(e,"bVisible"),d+1);j=0;for(i=g.length;jd;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;h.each(m.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:
-null;if(e.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(m.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new t(c):c};m.util={throttle:ua,escapeRegex:va};m.camelToHungarian=J;p("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){p(b+"()",function(){var a=Array.prototype.slice.call(arguments);
-a[0].match(/\.dt\b/)||(a[0]+=".dt");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});p("clear()",function(){return this.iterator("table",function(a){na(a)})});p("settings()",function(){return new t(this.context,this.context)});p("init()",function(){var a=this.context;return a.length?a[0].oInit:null});p("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});p("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=
-b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),p;b.bDestroying=!0;v(b,"aoDestroyCallback","destroy",[b]);a||(new t(b)).columns().visible(!0);k.unbind(".DT").find(":not(tbody *)").unbind(".DT");h(E).unbind(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];xa(b);
-h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);b.bJUI&&(h("th span."+d.sSortIcon+", td span."+d.sSortIcon,g).detach(),h("th, td",g).each(function(){var a=h("div."+d.sSortJUIWrapper,this);h(this).append(a.contents());a.detach()}));f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),(p=
-b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%p])}));c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){p(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});p("i18n()",function(a,b,c){var d=this.context[0],a=Q(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:a._);
-return a.replace("%d",c)});m.version="1.10.10";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,
-sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};m.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,
-bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+
-a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
-oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},
-m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};Y(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};
-Y(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],
-aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",
-iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?
-1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};
-m.ext=s={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(s,{afnFiltering:s.search,aTypes:s.type.detect,ofnSearch:s.type.search,oSort:s.type.order,afnSortData:s.order,aoFeatures:s.feature,oApi:s.internal,oStdClasses:s.classes,
-oPagination:s.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",
-sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
-sJUIHeader:"",sJUIFooter:""});var Ea="",Ea="",G=Ea+"ui-state-default",ka=Ea+"css_right ui-icon ui-icon-",Xb=Ea+"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";h.extend(m.ext.oJUIClasses,m.ext.classes,{sPageButton:"fg-button ui-button "+G,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:G+" sorting_asc",sSortDesc:G+" sorting_desc",sSortable:G+" sorting",
-sSortableAsc:G+" sorting_asc_disabled",sSortableDesc:G+" sorting_desc_disabled",sSortableNone:G+" sorting_disabled",sSortJUIAsc:ka+"triangle-1-n",sSortJUIDesc:ka+"triangle-1-s",sSortJUI:ka+"carat-2-n-s",sSortJUIAscAllowed:ka+"carat-1-n",sSortJUIDescAllowed:ka+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+G,sScrollFoot:"dataTables_scrollFoot "+G,sHeaderTH:G,sFooterTH:G,sJUIHeader:Xb+" ui-corner-tl ui-corner-tr",sJUIFooter:Xb+
-" ui-corner-bl ui-corner-br"});var Mb=m.ext.pager;h.extend(Mb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[Aa(a,b)]},simple_numbers:function(a,b){return["previous",Aa(a,b),"next"]},full_numbers:function(a,b){return["first","previous",Aa(a,b),"next","last"]},_numbers:Aa,numbers_length:7});h.extend(!0,m.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||
-{},k,l,m=0,p=function(b,d){var n,r,t,s,v=function(b){Ta(a,b.data.action,true)};n=0;for(r=d.length;n ").appendTo(b);p(t,s)}else{k=null;l="";switch(s){case "ellipsis":b.append('… ');break;case "first":k=j.sFirst;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":k=j.sPrevious;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":k=j.sNext;l=s+(e",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[s],"data-dt-idx":m,tabindex:a.iTabIndex,id:c===0&&typeof s==="string"?a.sTableId+"_"+s:null}).html(k).appendTo(b);Wa(t,{action:s},v);m++}}}},r;try{r=h(b).find(H.activeElement).data("dt-idx")}catch(n){}p(h(b).empty(),d);r&&h(b).find("[data-dt-idx="+r+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=
-b.oLanguage.sDecimal;return Za(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&(!ac.test(a)||!bc.test(a)))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return Za(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":
-null}]);h.extend(m.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob," ").replace(Ca,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob," "):a}});var Ba=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Qb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(s.type.order,{"date-pre":function(a){return Date.parse(a)||0},"html-pre":function(a){return M(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():
-a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return ab?1:0},"string-desc":function(a,b){return ab?-1:0}});db("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,
-b,c,d){h("
").addClass(d.sSortJUIWrapper).append(b.contents()).append(h(" ").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]=="asc"?d.sSortJUIAsc:
-h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});m.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return f;f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:function(a){return"string"===typeof a?a.replace(/ /g,">").replace(/"/g,"""):
-a}}}};h.extend(m.ext.internal,{_fnExternApiFunc:Nb,_fnBuildAjax:ra,_fnAjaxUpdate:lb,_fnAjaxParameters:ub,_fnAjaxUpdateDraw:vb,_fnAjaxDataSrc:sa,_fnAddColumn:Ga,_fnColumnOptions:la,_fnAdjustColumnSizing:U,_fnVisibleToColumnIndex:$,_fnColumnIndexToVisible:ba,_fnVisbleColumns:ca,_fnGetColumns:aa,_fnColumnTypes:Ia,_fnApplyColumnDefs:ib,_fnHungarianMap:Y,_fnCamelToHungarian:J,_fnLanguageCompat:Fa,_fnBrowserDetect:gb,_fnAddData:N,_fnAddTr:ma,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:
-null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:jb,_fnSplitObjNotation:La,_fnGetObjectDataFn:Q,_fnSetObjectDataFn:R,_fnGetDataMaster:Ma,_fnClearTable:na,_fnDeleteIndex:oa,_fnInvalidate:ea,_fnGetRowElements:Ka,_fnCreateTr:Ja,_fnBuildHead:kb,_fnDrawHead:ga,_fnDraw:O,_fnReDraw:T,_fnAddOptionsHtml:nb,_fnDetectHeader:fa,_fnGetUniqueThs:qa,_fnFeatureHtmlFilter:pb,_fnFilterComplete:ha,_fnFilterCustom:yb,_fnFilterColumn:xb,_fnFilter:wb,_fnFilterCreateSearch:Qa,
-_fnEscapeRegex:va,_fnFilterData:zb,_fnFeatureHtmlInfo:sb,_fnUpdateInfo:Cb,_fnInfoMacros:Db,_fnInitialise:ia,_fnInitComplete:ta,_fnLengthChange:Ra,_fnFeatureHtmlLength:ob,_fnFeatureHtmlPaginate:tb,_fnPageChange:Ta,_fnFeatureHtmlProcessing:qb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:rb,_fnScrollDraw:Z,_fnApplyToChildren:I,_fnCalculateColumnWidths:Ha,_fnThrottle:ua,_fnConvertToWidth:Fb,_fnGetWidestNode:Gb,_fnGetMaxLenString:Hb,_fnStringToCss:w,_fnSortFlatten:W,_fnSort:mb,_fnSortAria:Jb,_fnSortListener:Va,
-_fnSortAttachListener:Oa,_fnSortingClasses:xa,_fnSortData:Ib,_fnSaveState:ya,_fnLoadState:Kb,_fnSettingsFromNode:za,_fnLog:K,_fnMap:F,_fnBindAction:Wa,_fnCallbackReg:z,_fnCallbackFire:v,_fnLengthOverflow:Sa,_fnRenderer:Pa,_fnDataSource:y,_fnRowAttributes:Na,_fnCalculateEnd:function(){}});h.fn.dataTable=m;m.$=h;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt=m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/provider-libs/ws-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/provider-libs/ws-client.js
deleted file mode 100644
index 357c2995b..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/js/provider-libs/ws-client.js
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var CONSTANTS = {
- urlSeperator: '/',
- queryParamStreamName: '?streamname=',
- queryParamStreamVersion: '&version=',
- queryParamLastUpdatedTime: '&lastUpdatedTime=',
- urlSecureTransportWebsocket: 'wss://',
- urlSecureTransportHttp: 'https://',
- colon: ':',
- defaultIntervalTime: 10 * 1000,
- defaultHostName: 'localhost',
- defaultSecurePortNumber: '9443',
- defaultMode: 'AUTO',
- processModeHTTP: 'HTTP',
- processModeWebSocket: 'WEBSOCKET',
- processModeAuto: 'AUTO',
- numThousand: 1000,
- websocketTimeAppender: 400,
- websocketSubscriptionEndpoint: 'portal/uipublisher/websocketSubscriptionEndpoint.jag',
- httpEventRetrievalEndpoint: 'portal/uipublisher/httpEventRetrievalEndpoint.jag'
-};
-
-
-var websocket = null;
-var webSocketUrl;
-var httpUrl;
-var cepHostName;
-var cepPortNumber;
-var isErrorOccured = false;
-var lastUpdatedtime = -1;
-var polingInterval;
-var stream;
-var streamVersion;
-var firstPollingAttempt;
-var processMode;
-var onSuccessFunction;
-var onErrorFunction;
-var terminateWebsocketInstance = false;
-var pollingContinue = true;
-
-function subscribe(streamName, version, intervalTime,
- listeningFuncSuccessData, listeningFuncErrorData, cepHost, cepPort, mode) {
- stopPollingProcesses();
- stream = streamName;
- streamVersion = version;
- onSuccessFunction = listeningFuncSuccessData;
- onErrorFunction = listeningFuncErrorData;
-
- if (intervalTime == null || intervalTime == "") {
- polingInterval = CONSTANTS.defaultIntervalTime;
- } else {
- polingInterval = intervalTime * CONSTANTS.numThousand;
- }
-
- if (cepHost == null || cepHost == "") {
- cepHostName = CONSTANTS.defaultHostName;
- } else {
- cepHostName = cepHost;
- }
-
- if (cepPort == null || cepPort == "") {
- cepPortNumber = CONSTANTS.defaultSecurePortNumber;
- } else {
- cepPortNumber = cepPort;
- }
-
- if (mode == null || mode == "") {
- processMode = CONSTANTS.defaultMode;
- } else {
- processMode = mode;
- }
-
- webSocketUrl = CONSTANTS.urlSecureTransportWebsocket + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.websocketSubscriptionEndpoint;
-
- if (processMode == CONSTANTS.processModeHTTP) {
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- } else {
- initializeWebSocket(webSocketUrl);
- }
-}
-
-
-/**
- * Initializing Web Socket
- */
-function initializeWebSocket(webSocketUrl) {
- websocket = new WebSocket(webSocketUrl);
- websocket.onopen = webSocketOnOpen;
- websocket.onmessage = webSocketOnMessage;
- websocket.onclose = webSocketOnClose;
- websocket.onerror = webSocketOnError;
-}
-
-function getWebsocketSubscriptionMessage(streamName, streamVersion, streamProperties, streamValues) {
- if (streamProperties.length === streamValues.length) {
- var message = {};
- message.streamName = streamName;
- message.streamVersion = streamVersion;
- var i;
- for (i = 0; i < streamProperties.length; i++) {
- message.filterProps = [];
- message.filterProps.push({
- 'name': streamProperties[i],
- 'value': streamValues[i]
- });
- }
- return JSON.stringify(message);
- } else {
- console.log('stream properties and values are not in equal size');
- }
-}
-
-/**
- * Get the parameters as query parameters.
- * This method parses those parameters and returns.
- * */
-function getAllQueryParamsFromURL() {
- var queryParamList = {}, qParam;
- var urlQueryString = decodeURIComponent(window.top.location.search.substring(1));
-
- if (urlQueryString) {
- var queryStringPairs = urlQueryString.split('&');
- for (var i = 0; i < queryStringPairs.length; i++) {
- qParam = queryStringPairs[i].split('=');
- queryParamList[qParam[0]] = qParam[1];
- }
- return queryParamList;
-
- } else {
- return null;
- }
-}
-
-/**
- * Web socket On Open
- */
-var webSocketOnOpen = function () {
- var params = getAllQueryParamsFromURL();
- var deviceId;
- var owner;
- if (params) {
- owner = params["owner"];
- deviceId = params["deviceId"];
- }
- var filterPropNames = ["meta_owner", "meta_deviceId"];
- var filterPropVals = [owner, deviceId];
- var data = getWebsocketSubscriptionMessage(stream, streamVersion, filterPropNames, filterPropVals);
- websocket.send(data);
-};
-
-/**
- * On server sends a message
- */
-var webSocketOnMessage = function (evt) {
- var event = evt.data;
- var array = JSON.parse(event);
- constructPayload(array);
-};
-
-/**
- * On server close
- */
-var webSocketOnClose = function (e) {
-
- if (isErrorOccured) {
- if (processMode != CONSTANTS.processModeWebSocket) {
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- }
- } else {
- if (!terminateWebsocketInstance) {
- waitForSocketConnection(websocket);
- } else {
- terminateWebsocketInstance = false;
- }
-
- }
-};
-
-/**
- * On server Error
- */
-var webSocketOnError = function (err) {
- var error = "Error: Cannot connect to Websocket URL:" + webSocketUrl + " .Hence closing the connection!";
-
- onErrorFunction(error);
- isErrorOccured = true;
-
-};
-
-/**
- * Gracefully increments the connection retry
- */
-var waitTime = CONSTANTS.numThousand;
-function waitForSocketConnection(socket, callback) {
- setTimeout(
- function () {
- if (socket.readyState === 1) {
- initializeWebSocket(webSocketUrl);
- console.log("Connection is made");
- if (callback != null) {
- callback();
- }
- return;
- } else {
- websocket = new WebSocket(webSocketUrl);
- waitTime += CONSTANTS.websocketTimeAppender;
- waitForSocketConnection(websocket, callback);
- }
- }, waitTime);
-}
-
-/**
- * Polling to retrieve events from http request periodically
- */
-function startPoll() {
-
- (function poll() {
- setTimeout(function () {
- httpUrl = CONSTANTS.urlSecureTransportHttp + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.httpEventRetrievalEndpoint + CONSTANTS.queryParamStreamName + stream +
- CONSTANTS.queryParamStreamVersion + streamVersion + CONSTANTS.queryParamLastUpdatedTime + lastUpdatedtime;
- ;
- $.getJSON(httpUrl, function (responseText) {
- if (firstPollingAttempt) {
- /*var data = $("textarea#idConsole").val();
- $("textarea#idConsole").val(data + "Successfully connected to HTTP.");*/
- firstPollingAttempt = false;
- }
- var eventList = $.parseJSON(responseText.events);
- if (eventList.length != 0) {
- lastUpdatedtime = responseText.lastEventTime;
- for (var i = 0; i < eventList.length; i++) {
- var arr = eventList[i];
- constructPayload(arr);
- }
- }
- if (pollingContinue) {
- startPoll();
- }
- })
- .fail(function (errorData) {
- var errorData = JSON.parse(errorData.responseText);
- onErrorFunction(errorData.error);
- });
- }, polingInterval);
- })()
-}
-
-function stopPollingProcesses() {
-
- //stopping the Websocket
- if (websocket != null) {
- terminateWebsocketInstance = true;
- websocket.close();
- }
- //stopping the HTTPS Request
- pollingContinue = false;
-
-}
-
-function constructPayload(eventsArray) {
-
- var streamId = stream + CONSTANTS.colon + streamVersion;
- var twoDimentionalArray = [eventsArray];
- onSuccessFunction(streamId, twoDimentionalArray);
-
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/thumbnail.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/thumbnail.png
deleted file mode 100644
index 8b3f43540..000000000
Binary files a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/Android_Realtime_SMS/thumbnail.png and /dev/null differ
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/artifact.xml
deleted file mode 100644
index 7075e6754..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_realtime_sms_gadget/artifact.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- Android_Realtime_SMS
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/conf.json
deleted file mode 100644
index aa1954d40..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/conf.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "provider-conf": {
- "streamName": "org.wso2.iot.android.rotation:1.0.0",
- "provider-name": "realtime"
- },
- "chart-conf": {
- "x": "TIMESTAMP",
- "xType": "time",
- "y": "value",
- "yType": "number",
- "color": "axis",
- "maxLength": "30",
- "gadget-name": "ANDROID_ROTATION_GADGET",
- "chart-name": "line-chart"
- }
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget-controller.jag
deleted file mode 100644
index f84538a40..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget-controller.jag
+++ /dev/null
@@ -1,42 +0,0 @@
-<%
-/**
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-(function () {
-
- response.contentType = 'application/json';
- var PROVIDER_CONF = 'provider-conf';
- var PROVIDER_NAME = 'provider-name';
-
- var action = request.getParameter("action");
- var data = request.getContent();
- var providerConf = data[PROVIDER_CONF];
- var providerAPI = require('js/core/' + providerConf[PROVIDER_NAME] + '-provider-api.js');
-
- if (action === 'getSchema') {
- print(providerAPI.getSchema(providerConf));
- return;
- } else if(action === 'getData'){
- print(providerAPI.getData(providerConf));
- return;
- }
-
-}());
-
-
-%>
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget.json
deleted file mode 100644
index 1fbb053b4..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "id": "ANDROID_ROTATION_GADGET",
- "title": "ANDROID_ROTATION_GADGET",
- "type": "gadget",
- "thumbnail": "gadget/ANDROID_ROTATION_GADGET/thumbnail.png",
- "data": {
- "url": "gadget/ANDROID_ROTATION_GADGET/gadget.xml"
- }
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget.xml
deleted file mode 100644
index 3f050f24c..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/gadget-core.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/gadget-core.js
deleted file mode 100644
index 8bfc5f742..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/gadget-core.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
-*/
-$(function () {
- var gadgetLocation;
- var conf;
- var schema;
- var pref = new gadgets.Prefs();
-
- var CHART_CONF = 'chart-conf';
- var PROVIDER_CONF = 'provider-conf';
-
-var init = function () {
- $.ajax({
- url: gadgetLocation + '/conf.json',
- method: "GET",
- contentType: "application/json",
- async: false,
- success: function (data) {
- conf = JSON.parse(data);
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getSchema',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function (data) {
- schema = data;
- }
- });
-
- }
- });
-};
-
-
-var drawGadget = function (){
-
- draw('#canvas', conf[CHART_CONF], schema, null);
- registerCallBackforPush(conf[PROVIDER_CONF], schema, function(providerData) {
- update(providerData);
- });
-
-};
-
-getGadgetLocation(function (gadget_Location) {
- gadgetLocation = gadget_Location;
- init();
- drawGadget();
-
-});
-});
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/gadget-util.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/gadget-util.js
deleted file mode 100644
index 8277d6ace..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/gadget-util.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getGadgetLocation = function (callback) {
- var gadgetLocation = "/portal/store/carbon.super/fs/gadget/ANDROID_ROTATION_GADGET";
- var PATH_SEPERATOR = "/";
- if (gadgetLocation.search("store") != -1) {
- wso2.gadgets.identity.getTenantDomain(function (tenantDomain) {
- var gadgetPath = gadgetLocation.split(PATH_SEPERATOR);
- var modifiedPath = '';
- for (var i = 1; i < gadgetPath.length; i++) {
- if (i === 3) {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, tenantDomain);
- } else {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, gadgetPath[i])
- }
- }
- callback(modifiedPath);
- });
- } else {
- callback(gadgetLocation);
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/line-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/line-chart-api.js
deleted file mode 100644
index 18f363a32..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/line-chart-api.js
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, isProviderRequired, draw, update;
-
-(function() {
-
- var CHART_LOCATION = '/extensions/chart-templates/';
-
- /**
- * return the config to be populated in the chart configuration UI
- * @param schema
- */
- getConfig = function(schema) {
- var chartConf = require(CHART_LOCATION + '/line-chart/config.json').config;
- /*
- dynamic logic goes here
- */
-
- var columns = [];
-
- columns.push("None");
- for(var i=0; i < schema.length; i++) {
- columns.push(schema[i]["fieldName"]);
- }
-
- for(var i=0; i < chartConf.length; i++) {
- if (chartConf[i]["fieldName"] == "color") {
- chartConf[i]["valueSet"] = columns;
- break;
- }
- }
-
- return chartConf;
- };
-
- /**
- * validate the user inout for the chart configuration
- * @param chartConfig
- */
- validate = function(chartConfig) {
- return true;
- };
-
- /**
- * TO be used when provider configuration steps need to be skipped
- */
- isProviderRequired = function() {
-
- }
-
-
- /**
- * return the gadget content
- * @param chartConfig
- * @param schema
- * @param data
- */
- draw = function(placeholder, chartConfig, _schema, data) {
- _schema = updateUserPrefXYTypes(_schema, chartConfig);
- var schema = toVizGrammarSchema(_schema);
-
- var view = {
- id: "chart-0",
- schema: schema,
- chartConfig: buildChartConfig(chartConfig),
- data: function() {
- if(data) {
- var result = [];
- console.log(data);
- data.forEach(function(item) {
- var row = [];
- schema[0].metadata.names.forEach(function(name) {
- row.push(item[name]);
- });
- result.push(row);
- });
- console.log(result);
- wso2gadgets.onDataReady(result);
- }
- }
-
- };
-
- try {
- wso2gadgets.init(placeholder, view);
- var view = wso2gadgets.load("chart-0");
- } catch (e) {
- console.error(e);
- }
-
- };
-
- /**
- *
- * @param data
- */
- update = function(data) {
- wso2gadgets.onDataReady(data,"append");
- };
-
- buildChartConfig = function (_chartConfig) {
- var conf = {};
- conf.x = _chartConfig.x;
- conf.xType = _chartConfig.xType;
- conf.yType = _chartConfig.yType;
- conf.maxLength = _chartConfig.maxLength;
- conf.charts = [];
- conf.charts[0] = {
- type : "line",
- y: _chartConfig.y
- };
-
- if (_chartConfig.color != "None") {
- conf.charts[0].color = _chartConfig.color;
- }
-
- return conf;
- };
-
-
-}());
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/provider-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/provider-client.js
deleted file mode 100644
index 6196677f6..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/provider-client.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-// var registerCallBackforPush;
-
-(function() {
-
- var callback;
-
- /**
- * TODO Need to read hostname,port, and tenantId from providerConfig
- * @param providerConfig
- * @param schema
- */
- registerCallBackforPush = function(providerConfig, schema, _callback) {
- var streamId = providerConfig['streamName'];
- var hostname = window.parent.location.hostname;
- var port = window.parent.location.port;
-
- subscribe(streamId.split(":")[0], streamId.split(":")[1],
- '10',
- onData, onError,
- hostname,
- port,
- 'WEBSOCKET'
- );
- callback = _callback;
- };
-
- function onData(streamId, data) {
- callback(data);
- };
-
- function onError(error) {
- console.error(error);
- };
-
-}());
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/realtime-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/realtime-provider-api.js
deleted file mode 100644
index 7cf59af77..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/realtime-provider-api.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, getMode, getSchema, getData, registerCallBackforPush;
-
-(function() {
-
- var PROVIDERS_LOCATION = '/extensions/providers/';
- var PROVIDER_NAME = 'realtime';
-
- var log = new Log();
- var utils = require('/modules/utils.js');
- var carbon = require("carbon");
- var EventPublisherConstants = Packages.org.wso2.carbon.event.publisher.core.config.EventPublisherConstants;
- var eventPublisherService = carbon.server.osgiService('org.wso2.carbon.event.publisher.core.EventPublisherService');
- var eventStreamService = carbon.server.osgiService('org.wso2.carbon.event.stream.core.EventStreamService');
-
- var typeMap = {
- "bool": "string",
- "boolean": "string",
- "string": "string",
- "int": "number",
- "integer": "number",
- "long": "number",
- "double": "number",
- "float": "number",
- "time": "time"
- };
-
- getConfig = function() {
- var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json');
- var datasources = [];
- try {
- var eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations();
- for (var i = 0; i < eventPublisherConfigurationList.size(); i++) {
- var eventPublisherConfiguration = eventPublisherService.getActiveEventPublisherConfiguration(
- eventPublisherConfigurationList.get(i).getEventPublisherName());;
-
- var mappingTypeIsWso2 = eventPublisherConfiguration.getOutputMapping()
- .getMappingType().equals(EventPublisherConstants.EF_WSO2EVENT_MAPPING_TYPE);
-
- var adapterType = null;
- if (eventPublisherConfiguration.getToAdapterConfiguration() != null) {
- adapterType = eventPublisherConfiguration.getToAdapterConfiguration().getType();
- }
- if (mappingTypeIsWso2 && adapterType.trim() == "ui") {
- var streamName = eventPublisherConfiguration.getFromStreamName();
- var streamVersion = eventPublisherConfiguration.getFromStreamVersion();
- var streamId = streamName + ":" + streamVersion;
- datasources.push(streamId);
- }
- }
- var datasourceCfg = {
- "fieldLabel": "Event Stream",
- "fieldName": "streamName",
- "fieldType": "dropDown"
- };
- datasourceCfg['valueSet'] = datasources;
- } catch (e) {
- log.error(e);
- }
- formConfig.config.push(datasourceCfg);
- return formConfig;
- };
-
- /**
- * validate the user input of provider configuration
- * @param providerConfig
- */
- validate = function(providerConfig) {
- /*
- validate the form and return
-
- */
- return true;
- };
-
- /**
- * returns the data mode either push or pull
- */
- getMode = function() {
- return 'push';
- };
-
- /**
- * returns an array of column names & types
- * @param providerConfig
- */
- getSchema = function(providerConfig) {
- var streamId = providerConfig["streamName"];
- var output = [];
-
- output.push({
- fieldName: "TIMESTAMP",
- fieldType: "time"
- });
-
- if (eventStreamService != null) {
- var eventStreamConfiguration = eventStreamService.getEventStreamConfiguration(streamId);
- if (eventStreamConfiguration != null) {
- var metaData = eventStreamConfiguration.getStreamDefinition().getMetaData();
- var correlationData = eventStreamConfiguration.getStreamDefinition().getCorrelationData();
- var payloadData = eventStreamConfiguration.getStreamDefinition().getPayloadData();
- if (metaData != null) {
- for (var i = 0; i < metaData.size(); i++) {
- var type = metaData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: metaData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (correlationData != null) {
- for (var i = 0; i < correlationData.size(); i++) {
- var type = correlationData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: correlationData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- if (payloadData != null) {
- for (var i = 0; i < payloadData.size(); i++) {
- var type = payloadData.get(i).getType().toString().toLowerCase();
- output.push({
- fieldName: payloadData.get(i).getName(),
- fieldType: typeMap[type.toLowerCase()]
- });
- }
- }
- }
- }
- return output;
- };
-
- getData = function(providerConfig,limit) {
- var data = [];
- return data;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/provider-libs/ws-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/provider-libs/ws-client.js
deleted file mode 100644
index e498158c6..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/provider-libs/ws-client.js
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var CONSTANTS = {
- urlSeperator: '/',
- queryParamStreamName : '?streamname=',
- queryParamStreamVersion : '&version=',
- queryParamLastUpdatedTime : '&lastUpdatedTime=',
- urlSecureTransportWebsocket : 'wss://',
- urlSecureTransportHttp : 'https://',
- colon : ':',
- defaultIntervalTime : 10 * 1000,
- defaultHostName : 'localhost',
- defaultSecurePortNumber : '9443',
- defaultMode : 'AUTO',
- processModeHTTP : 'HTTP',
- processModeWebSocket : 'WEBSOCKET',
- processModeAuto : 'AUTO',
- numThousand : 1000,
- websocketTimeAppender : 400,
- websocketSubscriptionEndpoint : 'portal/uipublisher/websocketSubscriptionEndpoint.jag',
- httpEventRetrievalEndpoint : 'portal/uipublisher/httpEventRetrievalEndpoint.jag'
-};
-
-
-var websocket = null;
-var webSocketUrl;
-var httpUrl;
-var cepHostName;
-var cepPortNumber;
-var isErrorOccured = false;
-var lastUpdatedtime = -1;
-var polingInterval;
-var stream;
-var streamVersion;
-var firstPollingAttempt;
-var processMode;
-var onSuccessFunction;
-var onErrorFunction;
-var terminateWebsocketInstance = false;
-var pollingContinue = true;
-
-function subscribe(streamName,version,intervalTime,
- listeningFuncSuccessData,listeningFuncErrorData,cepHost,cepPort,mode){
- stopPollingProcesses();
- stream = streamName;
- streamVersion = version;
- onSuccessFunction = listeningFuncSuccessData;
- onErrorFunction = listeningFuncErrorData;
-
- if(intervalTime == null || intervalTime == ""){
- polingInterval = CONSTANTS.defaultIntervalTime;
- } else{
- polingInterval = intervalTime * CONSTANTS.numThousand;
- }
-
- if(cepHost == null || cepHost == ""){
- cepHostName = CONSTANTS.defaultHostName;
- } else{
- cepHostName = cepHost;
- }
-
- if(cepPort == null || cepPort == ""){
- cepPortNumber = CONSTANTS.defaultSecurePortNumber;
- } else{
- cepPortNumber = cepPort;
- }
-
- if(mode == null || mode == ""){
- processMode = CONSTANTS.defaultMode;
- } else{
- processMode = mode;
- }
-
- webSocketUrl = CONSTANTS.urlSecureTransportWebsocket + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.websocketSubscriptionEndpoint;
-
- if(processMode == CONSTANTS.processModeHTTP){
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- } else{
- initializeWebSocket(webSocketUrl);
- }
-}
-
-/**
- * Initializing Web Socket
- */
-function initializeWebSocket(webSocketUrl){
- websocket = new WebSocket(webSocketUrl);
- websocket.onopen = webSocketOnOpen;
- websocket.onmessage = webSocketOnMessage;
- websocket.onclose = webSocketOnClose;
- websocket.onerror = webSocketOnError;
-}
-
-function getWebsocketSubscriptionMessage(streamName, streamVersion, streamProperties, streamValues) {
- if (streamProperties.length === streamValues.length) {
- var message = {};
- message.streamName = streamName;
- message.streamVersion = streamVersion;
- var i;
- for (i = 0; i < streamProperties.length; i++) {
- message.filterProps = [];
- message.filterProps.push({
- 'name': streamProperties[i],
- 'value': streamValues[i]
- });
- }
- return JSON.stringify(message);
- } else {
- console.log('stream properties and values are not in equal size');
- }
-}
-
-/**
- * Get the parameters as query parameters.
- * This method parses those parameters and returns.
- * */
-function getAllQueryParamsFromURL() {
- var queryParamList = {}, qParam;
- var urlQueryString = decodeURIComponent(window.top.location.search.substring(1));
-
- if (urlQueryString) {
- var queryStringPairs = urlQueryString.split('&');
- for (var i = 0; i < queryStringPairs.length; i++) {
- qParam = queryStringPairs[i].split('=');
- queryParamList[qParam[0]] = qParam[1];
- }
- return queryParamList;
-
- } else {
- return null;
- }
-}
-
-/**
- * Web socket On Open
- */
-var webSocketOnOpen = function () {
- var params = getAllQueryParamsFromURL();
- var deviceId;
- var owner;
- if (params) {
- owner = params["owner"];
- deviceId = params["deviceId"];
- }
- var filterPropNames = ["meta_owner", "meta_deviceId"];
- var filterPropVals = [owner, deviceId];
- var data = getWebsocketSubscriptionMessage(stream, streamVersion, filterPropNames, filterPropVals);
- websocket.send(data);
-};
-
-/**
- * On server sends a message
- */
-var webSocketOnMessage = function (evt) {
- var event = evt.data;
- var array = JSON.parse(event);
- constructPayload(array);
-};
-
-/**
- * On server close
- */
-var webSocketOnClose =function (e) {
-
- if(isErrorOccured){
- if(processMode != CONSTANTS.processModeWebSocket){
- firstPollingAttempt = true;
- pollingContinue = true;
- startPoll();
- }
- } else{
- if(!terminateWebsocketInstance){
- waitForSocketConnection(websocket);
- } else{
- terminateWebsocketInstance = false;
- }
-
- }
-};
-
-/**
- * On server Error
- */
-var webSocketOnError = function (err) {
- var error = "Error: Cannot connect to Websocket URL:" + webSocketUrl + " .Hence closing the connection!";
-
- onErrorFunction(error);
- isErrorOccured = true;
-
-};
-
-/**
- * Gracefully increments the connection retry
- */
-var waitTime = CONSTANTS.numThousand;
-function waitForSocketConnection(socket, callback){
- setTimeout(
- function () {
- if (socket.readyState === 1) {
- initializeWebSocket(webSocketUrl);
- console.log("Connection is made");
- if(callback != null){
- callback();
- }
- return;
- } else {
- websocket = new WebSocket(webSocketUrl);
- waitTime += CONSTANTS.websocketTimeAppender;
- waitForSocketConnection(websocket, callback);
- }
- }, waitTime);
-}
-
-/**
- * Polling to retrieve events from http request periodically
- */
-function startPoll(){
-
- (function poll(){
- setTimeout(function(){
- httpUrl = CONSTANTS.urlSecureTransportHttp + cepHostName + CONSTANTS.colon + cepPortNumber +
- CONSTANTS.urlSeperator + CONSTANTS.httpEventRetrievalEndpoint + CONSTANTS.queryParamStreamName + stream +
- CONSTANTS.queryParamStreamVersion + streamVersion + CONSTANTS.queryParamLastUpdatedTime + lastUpdatedtime;;
- $.getJSON(httpUrl, function(responseText) {
- if(firstPollingAttempt){
- /*var data = $("textarea#idConsole").val();
- $("textarea#idConsole").val(data + "Successfully connected to HTTP.");*/
- firstPollingAttempt = false;
- }
- var eventList = $.parseJSON(responseText.events);
- if(eventList.length != 0){
- lastUpdatedtime = responseText.lastEventTime;
- for(var i=0;i
-
-
-
- ANDROID_ROTATION_GADGET
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_ui_event_publisher/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_ui_event_publisher/artifact.xml
deleted file mode 100644
index 428aa7a8d..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_ui_event_publisher/artifact.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- org.wso2.iot.android.rotation.ui.publisher.xml
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_ui_event_publisher/org.wso2.iot.android.rotation.ui.publisher.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_ui_event_publisher/org.wso2.iot.android.rotation.ui.publisher.xml
deleted file mode 100644
index 7209a1af1..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_ui_event_publisher/org.wso2.iot.android.rotation.ui.publisher.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/conf.json
deleted file mode 100644
index dddb338a7..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/conf.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "chart-conf": {
- "chart-name": "arc-chart",
- "color": "owner",
- "gadget-name": "Android Screen On Chart",
- "maxLength": "2",
- "x": "duration"
- },
- "provider-conf": {
- "limit": "1",
- "provider-name": "batch",
- "query": "",
- "tableName": "ANDROID_SCREEN_STAT_PER_DAY"
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/gadget-controller.jag
deleted file mode 100644
index f84538a40..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/gadget-controller.jag
+++ /dev/null
@@ -1,42 +0,0 @@
-<%
-/**
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-(function () {
-
- response.contentType = 'application/json';
- var PROVIDER_CONF = 'provider-conf';
- var PROVIDER_NAME = 'provider-name';
-
- var action = request.getParameter("action");
- var data = request.getContent();
- var providerConf = data[PROVIDER_CONF];
- var providerAPI = require('js/core/' + providerConf[PROVIDER_NAME] + '-provider-api.js');
-
- if (action === 'getSchema') {
- print(providerAPI.getSchema(providerConf));
- return;
- } else if(action === 'getData'){
- print(providerAPI.getData(providerConf));
- return;
- }
-
-}());
-
-
-%>
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/gadget.json
deleted file mode 100644
index c037a0582..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/gadget.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "id": "Android_Screen_On_Chart",
- "title": "Android Screen On Chart",
- "type": "gadget",
- "thumbnail": "gadget/Android_Screen_On_Chart/thumbnail.png",
- "data": {
- "url": "gadget/Android_Screen_On_Chart/gadget.xml"
- }
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/gadget.xml
deleted file mode 100644
index e58b3410e..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/gadget.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/js/core/batch-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/js/core/batch-provider-api.js
deleted file mode 100644
index 30c96902a..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/js/core/batch-provider-api.js
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, getMode, getSchema, getData, registerCallBackforPush;
-
-(function() {
-
- var PROVIDERS_LOCATION = '/extensions/providers/';
-
- var PROVIDER_NAME = 'batch';
- var TYPE = "type";
- var TABLE_NAME = "tableName";
- var HTTPS_TRANSPORT = "https";
- var CONTENT_TYPE_JSON = "application/json";
- var AUTHORIZATION_HEADER = "Authorization";
- var USER_TOKEN = "user";
- var TENANT_DOMAIN = "domain";
- var CONST_AT = "@";
- var USERNAME = "username";
- var HTTP_USER_NOT_AUTHENTICATED = 403;
- var JS_MAX_VALUE = "9007199254740992";
- var JS_MIN_VALUE = "-9007199254740992";
-
- var typeMap = {
- "bool" : "string",
- "boolean" : "string",
- "string" : "string",
- "int" : "number",
- "integer" : "number",
- "long" : "number",
- "double" : "number",
- "float" : "number",
- "time": "time"
- };
-
- var log = new Log();
- var carbon = require('carbon');
- var configs = require('/configs/designer.json');
- var utils = require('/modules/utils.js');
- var JSUtils = Packages.org.wso2.carbon.analytics.jsservice.Utils;
- var AnalyticsCachedJSServiceConnector = Packages.org.wso2.carbon.analytics.jsservice.AnalyticsCachedJSServiceConnector;
- var AnalyticsCache = Packages.org.wso2.carbon.analytics.jsservice.AnalyticsCachedJSServiceConnector.AnalyticsCache;
- var cacheTimeoutSeconds = 5;
- var loggedInUser = null;
-
- if (configs.cacheTimeoutSeconds) {
- cacheTimeoutSeconds = parseInt(configs.cacheTimeoutSeconds);
- }
- var cacheSizeBytes = 1024 * 1024 * 1024; // 1GB
- if (configs.cacheSizeBytes) {
- cacheSizeBytes = parseInt(configs.cacheSizeBytes);
- }
- response.contentType = CONTENT_TYPE_JSON;
-
- var authParam = request.getHeader(AUTHORIZATION_HEADER);
- if (authParam != null) {
- credentials = JSUtils.authenticate(authParam);
- loggedInUser = credentials[0];
- } else {
- var token = session.get(USER_TOKEN);
- if (token != null) {
- loggedInUser = token[USERNAME] + CONST_AT + token[TENANT_DOMAIN];
- } else {
- log.error("user is not authenticated!");
- response.status = HTTP_USER_NOT_AUTHENTICATED;
- print('{ "status": "Failed", "message": "User is not authenticated." }');
- return;
- }
- }
-
- var cache = application.get("AnalyticsWebServiceCache");
- if (cache == null) {
- cache = new AnalyticsCache(cacheTimeoutSeconds, cacheSizeBytes);
- application.put("AnalyticsWebServiceCache", cache);
- }
- var connector = new AnalyticsCachedJSServiceConnector(cache);
-
- /**
- * require the existing config.json and push any dynamic fields that needs to be populated in the UI
- */
- getConfig = function() {
- var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json');
- var tables;
- try {
- tables = JSON.parse(connector.getTableList(loggedInUser).getMessage());
- } catch (e) {
- log.error(e);
- }
- var configs = formConfig.config;
- configs.forEach(function(config) {
- if (config.fieldName === TABLE_NAME) {
- config.valueSet = tables;
- }
- });
- return formConfig;
- }
-
- /**
- * validate the user input of provider configuration
- * @param providerConfig
- */
- validate = function(providerConfig) {
- /*
- validate the form and return
-
- */
- return true;
- }
-
- /**
- * returns the data mode either push or pull
- */
- getMode = function() {
- return "PULL";
- }
-
- /**
- * returns an array of column names & types
- * @param providerConfig
- */
- getSchema = function(providerConfig) {
- var schema = [];
- var tableName = providerConfig["tableName"];
- var result = connector.getTableSchema(loggedInUser, tableName).getMessage();
- result = JSON.parse(result);
-
- var columns = result.columns;
- Object.getOwnPropertyNames(columns).forEach(function(name, idx, array) {
- var type = "ordinal";
- if(columns[name]['type']) {
- type = columns[name]['type'];
- }
- schema.push({
- fieldName: name,
- fieldType: typeMap[type.toLowerCase()]
- });
- });
- // log.info(schema);
- return schema;
- };
-
- /**
- * returns the actual data
- * @param providerConfig
- * @param limit
- */
- getData = function(providerConfig, limit) {
- var tableName = providerConfig.tableName;
- var query = providerConfig.query;
- var limit = 100;
- if (providerConfig.limit) {
- limit = providerConfig.limit;
- }
- var result;
- //if there's a filter present, we should perform a Lucene search instead of reading the table
- if (query) {
- var filter = {
- "query": query,
- "start": 0,
- "count": limit
- };
- result = connector.search(loggedInUser, tableName, stringify(filter)).getMessage();
- } else {
- var from = JS_MIN_VALUE;
- var to = JS_MAX_VALUE;
- result = connector.getRecordsByRange(loggedInUser, tableName, from, to, 0, limit, null).getMessage();
-
- }
- result = JSON.parse(result);
- var data = [];
- for (var i = 0; i < result.length; i++) {
- var values = result[i].values;
- data.push(values);
- }
- return data;
- };
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/js/core/donut-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/js/core/donut-chart-api.js
deleted file mode 100644
index fa0b327ce..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/js/core/donut-chart-api.js
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, isProviderRequired, draw, update;
-
-(function() {
-
- var CHART_LOCATION = '/extensions/chart-templates/';
-
- /**
- * return the config to be populated in the chart configuration UI
- * @param schema
- */
- getConfig = function(schema) {
- var chartConf = require(CHART_LOCATION + '/donut-chart/config.json').config;
- /*
- dynamic logic goes here
- */
- return chartConf;
-
- };
-
- /**
- * validate the user inout for the chart configuration
- * @param chartConfig
- */
- validate = function(chartConfig) {
- return true;
- };
-
- /**
- * TO be used when provider configuration steps need to be skipped
- */
- isProviderRequired = function() {
-
- }
-
-
- /**
- * return the gadget content
- * @param chartConfig
- * @param schema
- * @param data
- */
- draw = function(placeholder, chartConfig, _schema, data) {
- var schema = toVizGrammarSchema(_schema);
- var view = {
- id: "chart-0",
- schema: schema,
- chartConfig: buildChartConfig(chartConfig),
- data: function() {
- if(data) {
- var result = [];
- data.forEach(function(item) {
- var row = [];
- schema[0].metadata.names.forEach(function(name) {
- row.push(item[name]);
- });
- result.push(row);
- });
- wso2gadgets.onDataReady(result);
- }
- }
- };
- try {
- wso2gadgets.init(placeholder, view);
- var view = wso2gadgets.load("chart-0");
- } catch (e) {
- console.error(e);
- }
-
- };
-
- /**
- *
- * @param data
- */
- update = function(data) {
- wso2gadgets.onDataReady(data,"append");
- }
-
- buildChartConfig = function (_chartConfig) {
- var conf = {};
- conf.x = _chartConfig.x;
- conf.maxLength = _chartConfig.maxLength;
- conf.charts = [];
- conf.charts[0] = {
- type : "arc",
- color: _chartConfig.color
- };
- conf.color=2;
- conf.tooltip = {"enabled":false};
- conf.legend = false;
- conf.percentage = true;
- conf.colorScale = ["#50B432", "#eefaeb"];
- console.log(conf);
- return conf;
- };
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/js/core/gadget-core.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/js/core/gadget-core.js
deleted file mode 100644
index 893d71637..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/js/core/gadget-core.js
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-$(function() {
- var gadgetLocation;
- var conf;
- var schema;
- var pref = new gadgets.Prefs();
-
- var refreshInterval;
- var providerData;
-
- var CHART_CONF = 'chart-conf';
- var PROVIDER_CONF = 'provider-conf';
-
- var REFRESH_INTERVAL = 'refreshInterval';
-
- var init = function() {
- $.ajax({
- url: gadgetLocation + '/conf.json',
- method: "GET",
- contentType: "application/json",
- async: false,
- success: function(data) {
- conf = JSON.parse(data);
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getSchema',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function(data) {
- schema = data;
- }
- });
-
- getProviderData();
-
- }
- });
- };
-
- var getProviderData = function() {
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getData',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function(data) {
- if(typeof data[0].duration == 'undefined'){
- console.log("Currently data can't be retrieved...");
- console.log(JSON.stringify(data));
- }else{
- var duration = data[0].duration / 60000; // Convert to minutes
- var newData = [{
- "duration": duration,
- "owner": "YES"
- }, {
- "duration": (1440 - duration),
- "owner": "NO"
- }
- ];
- }
- providerData = newData;
- }
- });
- return providerData;
-};
-
-
-var drawGadget = function() {
- draw('#canvas', conf[CHART_CONF], schema, providerData);
- setInterval(function() {
- draw('#canvas', conf[CHART_CONF], schema, getProviderData());
- }, pref.getInt(REFRESH_INTERVAL));
-};
-
-getGadgetLocation(function(gadget_Location) {
- gadgetLocation = gadget_Location;
- init();
- drawGadget();
-});
-});
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/js/core/gadget-util.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/js/core/gadget-util.js
deleted file mode 100644
index 307a964ee..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/js/core/gadget-util.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getGadgetLocation = function (callback) {
- var gadgetLocation = "/portal/store/carbon.super/fs/gadget/Android_Screen_On_Chart";
- var PATH_SEPERATOR = "/";
- if (gadgetLocation.search("store") != -1) {
- wso2.gadgets.identity.getTenantDomain(function (tenantDomain) {
- var gadgetPath = gadgetLocation.split(PATH_SEPERATOR);
- var modifiedPath = '';
- for (var i = 1; i < gadgetPath.length; i++) {
- if (i === 3) {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, tenantDomain);
- } else {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, gadgetPath[i])
- }
- }
- callback(modifiedPath);
- });
- } else {
- callback(gadgetLocation);
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/thumbnail.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/thumbnail.png
deleted file mode 100644
index 869b86b28..000000000
Binary files a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_on_chart_gadget/Android_Screen_On_Chart/thumbnail.png and /dev/null differ
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_ui_event_publisher/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_ui_event_publisher/artifact.xml
deleted file mode 100644
index ebca4792f..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_ui_event_publisher/artifact.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- org.wso2.iot.android.screen.ui.publisher.xml
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_ui_event_publisher/org.wso2.iot.android.screen.ui.publisher.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_ui_event_publisher/org.wso2.iot.android.screen.ui.publisher.xml
deleted file mode 100755
index a6302a600..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_screen_ui_event_publisher/org.wso2.iot.android.screen.ui.publisher.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/conf.json
deleted file mode 100644
index 603f8c48c..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/conf.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "chart-conf": {
- "chart-name": "donut-chart",
- "color": "type",
- "gadget-name": "Android SMS Chart",
- "maxLength": "2",
- "x": "count"
- },
- "provider-conf": {
- "limit": "2",
- "provider-name": "batch",
- "query": "",
- "tableName": "ANDROID_SMS_STAT_PER_DAY"
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/gadget-controller.jag
deleted file mode 100644
index f84538a40..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/gadget-controller.jag
+++ /dev/null
@@ -1,42 +0,0 @@
-<%
-/**
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-(function () {
-
- response.contentType = 'application/json';
- var PROVIDER_CONF = 'provider-conf';
- var PROVIDER_NAME = 'provider-name';
-
- var action = request.getParameter("action");
- var data = request.getContent();
- var providerConf = data[PROVIDER_CONF];
- var providerAPI = require('js/core/' + providerConf[PROVIDER_NAME] + '-provider-api.js');
-
- if (action === 'getSchema') {
- print(providerAPI.getSchema(providerConf));
- return;
- } else if(action === 'getData'){
- print(providerAPI.getData(providerConf));
- return;
- }
-
-}());
-
-
-%>
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/gadget.json
deleted file mode 100644
index 57f269206..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/gadget.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "id": "Android_SMS_Chart",
- "title": "Android SMS Chart",
- "type": "gadget",
- "thumbnail": "gadget/Android_SMS_Chart/thumbnail.png",
- "data": {
- "url": "gadget/Android_SMS_Chart/gadget.xml"
- }
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/gadget.xml
deleted file mode 100644
index c55103985..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/gadget.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/js/core/batch-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/js/core/batch-provider-api.js
deleted file mode 100644
index 30c96902a..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/js/core/batch-provider-api.js
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, getMode, getSchema, getData, registerCallBackforPush;
-
-(function() {
-
- var PROVIDERS_LOCATION = '/extensions/providers/';
-
- var PROVIDER_NAME = 'batch';
- var TYPE = "type";
- var TABLE_NAME = "tableName";
- var HTTPS_TRANSPORT = "https";
- var CONTENT_TYPE_JSON = "application/json";
- var AUTHORIZATION_HEADER = "Authorization";
- var USER_TOKEN = "user";
- var TENANT_DOMAIN = "domain";
- var CONST_AT = "@";
- var USERNAME = "username";
- var HTTP_USER_NOT_AUTHENTICATED = 403;
- var JS_MAX_VALUE = "9007199254740992";
- var JS_MIN_VALUE = "-9007199254740992";
-
- var typeMap = {
- "bool" : "string",
- "boolean" : "string",
- "string" : "string",
- "int" : "number",
- "integer" : "number",
- "long" : "number",
- "double" : "number",
- "float" : "number",
- "time": "time"
- };
-
- var log = new Log();
- var carbon = require('carbon');
- var configs = require('/configs/designer.json');
- var utils = require('/modules/utils.js');
- var JSUtils = Packages.org.wso2.carbon.analytics.jsservice.Utils;
- var AnalyticsCachedJSServiceConnector = Packages.org.wso2.carbon.analytics.jsservice.AnalyticsCachedJSServiceConnector;
- var AnalyticsCache = Packages.org.wso2.carbon.analytics.jsservice.AnalyticsCachedJSServiceConnector.AnalyticsCache;
- var cacheTimeoutSeconds = 5;
- var loggedInUser = null;
-
- if (configs.cacheTimeoutSeconds) {
- cacheTimeoutSeconds = parseInt(configs.cacheTimeoutSeconds);
- }
- var cacheSizeBytes = 1024 * 1024 * 1024; // 1GB
- if (configs.cacheSizeBytes) {
- cacheSizeBytes = parseInt(configs.cacheSizeBytes);
- }
- response.contentType = CONTENT_TYPE_JSON;
-
- var authParam = request.getHeader(AUTHORIZATION_HEADER);
- if (authParam != null) {
- credentials = JSUtils.authenticate(authParam);
- loggedInUser = credentials[0];
- } else {
- var token = session.get(USER_TOKEN);
- if (token != null) {
- loggedInUser = token[USERNAME] + CONST_AT + token[TENANT_DOMAIN];
- } else {
- log.error("user is not authenticated!");
- response.status = HTTP_USER_NOT_AUTHENTICATED;
- print('{ "status": "Failed", "message": "User is not authenticated." }');
- return;
- }
- }
-
- var cache = application.get("AnalyticsWebServiceCache");
- if (cache == null) {
- cache = new AnalyticsCache(cacheTimeoutSeconds, cacheSizeBytes);
- application.put("AnalyticsWebServiceCache", cache);
- }
- var connector = new AnalyticsCachedJSServiceConnector(cache);
-
- /**
- * require the existing config.json and push any dynamic fields that needs to be populated in the UI
- */
- getConfig = function() {
- var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json');
- var tables;
- try {
- tables = JSON.parse(connector.getTableList(loggedInUser).getMessage());
- } catch (e) {
- log.error(e);
- }
- var configs = formConfig.config;
- configs.forEach(function(config) {
- if (config.fieldName === TABLE_NAME) {
- config.valueSet = tables;
- }
- });
- return formConfig;
- }
-
- /**
- * validate the user input of provider configuration
- * @param providerConfig
- */
- validate = function(providerConfig) {
- /*
- validate the form and return
-
- */
- return true;
- }
-
- /**
- * returns the data mode either push or pull
- */
- getMode = function() {
- return "PULL";
- }
-
- /**
- * returns an array of column names & types
- * @param providerConfig
- */
- getSchema = function(providerConfig) {
- var schema = [];
- var tableName = providerConfig["tableName"];
- var result = connector.getTableSchema(loggedInUser, tableName).getMessage();
- result = JSON.parse(result);
-
- var columns = result.columns;
- Object.getOwnPropertyNames(columns).forEach(function(name, idx, array) {
- var type = "ordinal";
- if(columns[name]['type']) {
- type = columns[name]['type'];
- }
- schema.push({
- fieldName: name,
- fieldType: typeMap[type.toLowerCase()]
- });
- });
- // log.info(schema);
- return schema;
- };
-
- /**
- * returns the actual data
- * @param providerConfig
- * @param limit
- */
- getData = function(providerConfig, limit) {
- var tableName = providerConfig.tableName;
- var query = providerConfig.query;
- var limit = 100;
- if (providerConfig.limit) {
- limit = providerConfig.limit;
- }
- var result;
- //if there's a filter present, we should perform a Lucene search instead of reading the table
- if (query) {
- var filter = {
- "query": query,
- "start": 0,
- "count": limit
- };
- result = connector.search(loggedInUser, tableName, stringify(filter)).getMessage();
- } else {
- var from = JS_MIN_VALUE;
- var to = JS_MAX_VALUE;
- result = connector.getRecordsByRange(loggedInUser, tableName, from, to, 0, limit, null).getMessage();
-
- }
- result = JSON.parse(result);
- var data = [];
- for (var i = 0; i < result.length; i++) {
- var values = result[i].values;
- data.push(values);
- }
- return data;
- };
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/js/core/donut-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/js/core/donut-chart-api.js
deleted file mode 100644
index 0a4278939..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/js/core/donut-chart-api.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getConfig, validate, isProviderRequired, draw, update;
-
-(function() {
-
- var CHART_LOCATION = '/extensions/chart-templates/';
-
- /**
- * return the config to be populated in the chart configuration UI
- * @param schema
- */
- getConfig = function(schema) {
- var chartConf = require(CHART_LOCATION + '/donut-chart/config.json').config;
- /*
- dynamic logic goes here
- */
- return chartConf;
-
- };
-
- /**
- * validate the user inout for the chart configuration
- * @param chartConfig
- */
- validate = function(chartConfig) {
- return true;
- };
-
- /**
- * TO be used when provider configuration steps need to be skipped
- */
- isProviderRequired = function() {
-
- }
-
-
- /**
- * return the gadget content
- * @param chartConfig
- * @param schema
- * @param data
- */
- draw = function(placeholder, chartConfig, _schema, data) {
- var schema = toVizGrammarSchema(_schema);
- var view = {
- id: "chart-0",
- schema: schema,
- chartConfig: buildChartConfig(chartConfig),
- data: function() {
- if(data) {
- var result = [];
- data.forEach(function(item) {
- var row = [];
- schema[0].metadata.names.forEach(function(name) {
- row.push(item[name]);
- });
- result.push(row);
- });
- wso2gadgets.onDataReady(result);
- }
- }
-
- };
-
- try {
- wso2gadgets.init(placeholder, view);
- var view = wso2gadgets.load("chart-0");
- } catch (e) {
- console.error(e);
- }
-
- };
-
- /**
- *
- * @param data
- */
- update = function(data) {
- wso2gadgets.onDataReady(data,"append");
- }
-
- buildChartConfig = function (_chartConfig) {
- var conf = {};
- conf.x = _chartConfig.x;
- conf.maxLength = _chartConfig.maxLength;
- conf.charts = [];
- conf.charts[0] = {
- type : "arc",
- color: _chartConfig.color,
- mode: "donut"
- };
- conf.legendOffset = -30;
- conf.colorScale = ["#50B432", "#6699ff"];
- return conf;
- };
-
-
-}());
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/js/core/gadget-core.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/js/core/gadget-core.js
deleted file mode 100644
index a4b3c7971..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/js/core/gadget-core.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
-*/
-$(function () {
- var gadgetLocation;
- var conf;
- var schema;
- var pref = new gadgets.Prefs();
-
- var refreshInterval;
- var providerData;
-
- var CHART_CONF = 'chart-conf';
- var PROVIDER_CONF = 'provider-conf';
-
- var REFRESH_INTERVAL = 'refreshInterval';
-
-var init = function () {
- $.ajax({
- url: gadgetLocation + '/conf.json',
- method: "GET",
- contentType: "application/json",
- async: false,
- success: function (data) {
- conf = JSON.parse(data);
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getSchema',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function (data) {
- schema = data;
- }
- });
-
- getProviderData();
-
- }
- });
-};
-
-var getProviderData = function (){
- $.ajax({
- url: gadgetLocation + '/gadget-controller.jag?action=getData',
- method: "POST",
- data: JSON.stringify(conf),
- contentType: "application/json",
- async: false,
- success: function (data) {
- if(data.length == 2) {
- if(data[0].timestamp == data[1].timestamp) {
- providerData = data;
- } else if(data[0].timestamp > data[1].timestamp) {
- providerData = [data[0]];
- } else {
- providerData = [data[1]];
- }
- } else {
- providerData = data;
- }
- }
- });
- return providerData;
-};
-
-
-var drawGadget = function (){
-
- draw('#canvas', conf[CHART_CONF], schema, providerData);
- setInterval(function() {
- draw('#canvas', conf[CHART_CONF], schema, getProviderData());
- },pref.getInt(REFRESH_INTERVAL));
-
-};
-
-getGadgetLocation(function (gadget_Location) {
- gadgetLocation = gadget_Location;
- init();
- drawGadget();
-
-});
-});
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/js/core/gadget-util.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/js/core/gadget-util.js
deleted file mode 100644
index d895e1602..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/js/core/gadget-util.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) 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.
- */
-var getGadgetLocation = function (callback) {
- var gadgetLocation = "/portal/store/carbon.super/fs/gadget/Android_SMS_Chart";
- var PATH_SEPERATOR = "/";
- if (gadgetLocation.search("store") != -1) {
- wso2.gadgets.identity.getTenantDomain(function (tenantDomain) {
- var gadgetPath = gadgetLocation.split(PATH_SEPERATOR);
- var modifiedPath = '';
- for (var i = 1; i < gadgetPath.length; i++) {
- if (i === 3) {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, tenantDomain);
- } else {
- modifiedPath = modifiedPath.concat(PATH_SEPERATOR, gadgetPath[i])
- }
- }
- callback(modifiedPath);
- });
- } else {
- callback(gadgetLocation);
- }
-}
\ No newline at end of file
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/thumbnail.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/thumbnail.png
deleted file mode 100644
index 59c53f9cd..000000000
Binary files a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_chart_gadget/Android_SMS_Chart/thumbnail.png and /dev/null differ
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_ui_event_publisher/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_ui_event_publisher/artifact.xml
deleted file mode 100644
index 6b2245caf..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_ui_event_publisher/artifact.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- org.wso2.iot.android.sms.ui.publisher.xml
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_ui_event_publisher/org.wso2.iot.android.sms.ui.publisher.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_ui_event_publisher/org.wso2.iot.android.sms.ui.publisher.xml
deleted file mode 100644
index 29191ad87..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_ui_event_publisher/org.wso2.iot.android.sms.ui.publisher.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/artifact.xml
deleted file mode 100644
index 26919e398..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/artifact.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- un-secured-devices
-
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/css/bootstrap.min.css b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/css/bootstrap.min.css
deleted file mode 100644
index c10c7f417..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/css/bootstrap.min.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Bootstrap v2.3.1
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/css/style.css b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/css/style.css
deleted file mode 100644
index 8ef8b847b..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/css/style.css
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-.list-group-item {
- background-color: transparent;
- line-height: 2;
-}
-
-.list-group-item .label {
- display: inline-block;
- vertical-align: text-bottom;
- float: right;
- font-size: 110%;
- border-radius: 0;
-}
-
-.list-group-item > h1 {
- font-size: 20px;
- margin: 0;
- text-transform: uppercase;
-}
-
-.list-group-item .icon {
- margin-right: 8px;
-}
-
-.list-group-item > h1 > .label {
- margin-left: 7px;
- display: inline-block;
- vertical-align: text-bottom;
- border-radius: 0;
-}
-
-.list-group-item > .icon {
- margin-right: 5px;
- margin-bottom: 2px;
-}
-
-.list-group-item:hover {
- background-color: #e4e4e4;
- cursor: pointer;
-}
-
-body.dark .list-group-item {
- border-color: #353C48;
-}
-
-body.dark .list-group-item:hover {
- background-color: #353C48;
-}
-
-.items-group {
- border: 1px solid #fff;
- height: 100%;
-}
-
-body.dark .items-group {
- border: none;
-}
-
-.items-group > .group-item {
- border-right: 1px solid #E3E5E6;
- padding: 10px;
- cursor: pointer;
- height: 100%;
- position: relative;
-}
-
-.items-group > .group-item > div {
- position: absolute;
- /*noinspection CssUnknownProperty*/
- transform: translate(0, 10%);
- left: 0;
- right: 0;
-}
-
-body.dark .items-group > .group-item {
- border-right: 1px solid #353C48;
-}
-
-.items-group > .group-item:last-child {
- border-right: none;
-}
-
-body.dark .items-group > .group-item:last-child {
- border-right: none;
-}
-
-.items-group > .group-item h1, .items-group > .group-item h2 {
- font-weight: 100;
- margin: 0;
-}
-
-.items-group > .group-item h1 {
- font-size: 75px;
-}
-
-.items-group > .group-item h2 {
- font-size: 18px;
-}
-
-.items-group > .group-item .icon {
- font-size: 12px;
- font-weight: 100 !important;
-}
-
-.items-group > .group-item:hover {
- background-color: #E3E5E6;
-}
-
-body.dark .items-group > .group-item:hover {
- background-color: #353C48;
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/gadget.json
deleted file mode 100644
index 06d49b326..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/gadget.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "id": "un-secured-devices",
- "title": "Un-secured Devices",
- "type": "gadget",
- "thumbnail": "gadget/un-secured-devices/img/thumbnail.png",
- "data": {
- "url": "gadget/un-secured-devices/index.xml"
- },
- "notify": {
- "publisher": {
- "type": "filter",
- "description": "This notifies selected filter"
- }
- },
- "listen": {
- "subscriber": {
- "type": "filter",
- "description": "Used to listen to any filters"
- }
- }
-}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/img/phone.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/img/phone.png
deleted file mode 100644
index 14a79e1c0..000000000
Binary files a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/img/phone.png and /dev/null differ
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/img/thumbnail.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/img/thumbnail.png
deleted file mode 100644
index 8b3f43540..000000000
Binary files a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/img/thumbnail.png and /dev/null differ
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/index.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/index.xml
deleted file mode 100644
index 7a48acdb0..000000000
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_un_secured_devices_gadget/un-secured-devices/index.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
0
-
-
-
-
-
- Non-compliant
-
-
-
-
-
-
0
-
-
-
-
-
- Unmonitored
-
-
-
-
-
-